JPH0776922B2 - データ処理システム - Google Patents

データ処理システム

Info

Publication number
JPH0776922B2
JPH0776922B2 JP1329412A JP32941289A JPH0776922B2 JP H0776922 B2 JPH0776922 B2 JP H0776922B2 JP 1329412 A JP1329412 A JP 1329412A JP 32941289 A JP32941289 A JP 32941289A JP H0776922 B2 JPH0776922 B2 JP H0776922B2
Authority
JP
Japan
Prior art keywords
instruction
unit
instructions
register
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP1329412A
Other languages
English (en)
Other versions
JPH02224124A (ja
Inventor
ミン―ツザー・ミウ
トーマス・エフ・ジョイス
Original Assignee
ブル・エッチエヌ・インフォメーション・システムズ・インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ブル・エッチエヌ・インフォメーション・システムズ・インコーポレーテッド filed Critical ブル・エッチエヌ・インフォメーション・システムズ・インコーポレーテッド
Publication of JPH02224124A publication Critical patent/JPH02224124A/ja
Publication of JPH0776922B2 publication Critical patent/JPH0776922B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3873Variable length pipelines, e.g. elastic pipeline
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Programmable Controllers (AREA)
  • General Factory Administration (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Processing (AREA)

Description

【発明の詳細な説明】 (関連出願) 下記の米国特許出願は、本願と同日付で出願され本願と
同じ譲受け人に譲渡された関連出願である。
1.R.P.Kelly、Jian−Kuo Shen、R.V.LedouxおよびD.K.S
taplinの米国特許出願第 号「多重ソースからの制
御ストアのアドレス指定」 2.R.P.Kelly、Jian−Kuo Shen、R.V.LedouxおよびC.M.N
ibbyの米国特許出願第 号「制御ストアの2倍ポン
プ・オペレーション」 3.R.P.KellyおよびR.V.Ledouxの米国特許出願第
号「一義的な命令実行介しアドレスを生成する制御スト
ア・アドレス・ジェネレータ」 4.D.E.Cushing、R.Kharileh、Jian−Kuo ShenおよびMin
g−Tzer Miuの米国特許出願第 号「2重ポート読
出し/書込みレジスタ・ファイル・メモリー」 5.D.E.Cushing、R.P.Kelly、R.V.LedouxおよびJian−Ku
o Shenの米国特許出願第 号「多重ユニットのレジ
スタ・ファイル・メモリーを自動的に更新する機構」 (技術分野) 本発明は、データ処理システムに関し、特にパイプライ
ン方式で命令を実行するシステムに関する。
(従来技術) データ処理システムが、命令およびオペランドを格納す
るためのメモリーおよび命令を実行するための処理装置
を含むことは周知である。この処理装置は、メモリーか
ら命令を取り出し、オペランドアドレスを生成し、オペ
ランド(単数または複数)をメモリーから取り出す。処
理装置は、次に命令を実行し、その結果得るオペランド
(単数または複数)を再びメモリーの指定された場所へ
格納する。次いで処理装置は、次の命令を取り出す。
逐次操作、特にメモリーをアクセスする必要は、しばし
ばシステムの処理能力における制約となっていた。従っ
て、キャッシュが性能向上のためシステムに付設され
た。最初に、キャッシュは命令とオペランドの両方を格
納したが、最近の設計では命令キャッシュとデータ・キ
ャッシュを含むことになった。
略々同じ時期に、このデータ処理システムの設計は、パ
イプライン操作において実現された。これまでは、命令
は順次実行され、即ち前の命令の実行が完了した後で始
めて次の命令が取り出されたが、新しい設計では、命令
の実行はパイプライン化された。パイプライン操作にお
いては、システムは、命令が取り出されて分析される命
令段、オペランドのアドレスが生成されるアドレス段、
オペランドが取り出されるメモリーあるいはキャッシュ
段、および命令が完了される実行段の如き多数の段に構
成されている。命令はパイプラインに対して順次入れら
れる。命令の処理が命令段において完了すると直ちに、
命令はアドレス段へ送られて、次の処理されるべき命令
が取り出される。従って、上記の4段のシステムにおい
ては、4つの命令の異なる部分が同時に実行することが
できた。
しかし、上記の種類のパイプライン操作の処理能力は、
各命令の実行がパイプラインの各段を通ることを必要と
するため制限される。性能を改善するために、あるシス
テムは、可能な場合はパイプラインのある段により実行
されつつある操作を重複させる。
このようなパイプライン装置の一例は、米国特許第4,76
0,519号「競合の検出および予測を用いるデータ処理装
置および方法」において記載されている。このシステム
は、2つの独立的なパイプライン、即ち3段の命令パイ
プラインと3段の実行パイプラインとを含む。命令パイ
プラインの最終段は、実行パイプラインの最初の段に重
なるように接続される。この種のシステムにおいては、
命令は依然として完了のため最低5サイクル・タイムを
必要とした。
従って、本発明の主な目的は、高性能のパイプライン・
システムの提供にある。
本発明の別の目的は、命令の実行をできる限り最少数の
パイプライン段を用いて完了するシステムの提供にあ
る。
(発明の要約) 上記および他の目的は、プロダクションライン・システ
ムとして構成されプロダクションパイプラインを通過す
る各命令についてそれぞれ異なる1つの操作を実行する
多数の装置を含む処理装置の望ましい本発明の実施態様
において達成される。ある種の命令は、上段の装置によ
り実行され、 プロダクションラインから落とされる。これは、以降の
命令を実行するように上段の装置を解放する。他の種類
の命令は、プロダクションラインの終りに実行される。
このため、システムの全体的な処理能力が改善される。
更に詳細には、最初のサイクルにおいて、第1の装置で
ある命令ユニットが命令をメモリーから取り出し、第2
のサイクルの間、この命令ユニットが命令を複合してあ
る分岐命令を実行する。アドレス(A)ユニットに対応
する第2ののユニットが、命令ユニットから命令を受け
取り、第3のサイクルの間に、以降のサイクルにおいて
「メモリー」命令の実行の完了に必要なメモリー内のオ
ペランドの場所を指定するアドレスを生成するかまたは
「レジスタ」命令を実行する。このオペランドは、「メ
モリー」命令に対する第4のサイクルの間にメモリーか
ら取り出され、一連のプロダクションラインの装置の更
に別の装置により実行され、第5のサイクルの間にプロ
ダクションから除外される。第2の操作サイクルの間に
実行された分岐命令、および第3の操作サイクルの間に
実行された「レジスタ」命令は、プロダクションライン
から有効に落とされ即ち除外され、従ってプロダクショ
ンラインにおけるそれ以上のサイクルを必要とせず、こ
れによりシステムの処理能力を改善するのである。
(実施例) 第1図は、プロダクション・パイプライン・データ処理
システムのブロック図を示している。
中央処理装置(CPU)2と、仮想メモリー管理装置(VMM
U)4と、キャッシュ装置6と、メモリー・サブシステ
ム8と、入出力周辺装置10とが含まれる。キャッシュ装
置6と、記憶装置8と、入出力周辺装置10とは、全て一
緒に1つのシステム・バスに接続される。メモリー8
は、命令およびオペランドを格納する。即時に実行され
る最も高い可能性を有するこれらのオペランドおよび命
令は、メモリー・サブシステムからキャッシュ格納6へ
転送される。
CPU2は、キャッシュ格納6から命令を受け取り、これら
の命令の実行時に、命令の仮想アドレス部分をVMMU4へ
送出する。VMMU4は、仮想アドレスをCPU2が命令を実行
することを許すのに必要なオペランドを取り出すために
キャッシュ装置6へ与えられる物理的アドレスへ転送す
る。
入出力装置10は、典型的には自らの装置を有するいくつ
かの周辺コントローラ、または周辺コントローラおよび
装置を制御する入出力プロセッサを表し、あるいは本装
置10は通信サブシステムを表す。
第2図は、ブロック図形態において、CPU2およびキャッ
シュ装置6を構成する主要な要素を示している。CPU2
は、命令(I)ユニット2−2、Aユニット2−4、お
よび多数の実行(E)ユニット2−6を含む。実行ユニ
ット2−6は、科学演算命令プロセッサあるいは商用の
命令プロセッサでよい。しかし、記述を簡単にするた
め、この命令ユニット2−6の1つの動作についてのみ
説明すれば、本発明の理解に充分である。
キャッシュ装置6は、Iキャッシュ6−2およびEキャ
ッシュ6−4を含む。Iキャッシュ6−2は、実行され
るべき命令を格納し、Eキャッシュ6−4は命令がそれ
について実行するオペランドを格納する。Iユニット2
−2は、実質的に2つの機能を行う。この装置は、Iキ
ャッシュ6−2から命令を予め取り出し、次いでこれら
の命令を分解して他の装置、即ちAユニット2−4およ
びEユニット2−6が如何にして命令を更に処理するか
を決定する。更に、Iユニット2−2はある分岐命令を
実行し、この命令は次にプロダクション・ラインから除
外される。
Aユニット2−4は、Iユニット2−2から命令を受け
取り、もしこの命令がレジスタ間命令ならばこれを実行
する。この命令がEユニット2−6により実行されるべ
きならば、Aユニット2−4は仮想アドレスをVMMU4へ
送出し、これがこのアドレスをEキャッシュ装置6−4
に対する物理的アドレスへ転送する。Eキャッシュ6−
4は、Iキャッシュ装置6−2から命令ユニット2−2
によって最初に受け取った命令実行を完了するため、オ
ペランドをEユニット2−6へ送出する。
A装置2−4はまた、分岐命令の実行を確認して、この
分岐アドレスを再び命令ユニット2−2へ戻し、この命
令ユニットは既にIユニット2−2の事前取り出し分岐
アドレスにより指定されたIキャッシュ6−2における
場所の次の命令を要求している。Aユニット2−4およ
びEユニット2−6は、プログラマがアクセスできるレ
ジスタ、即ちいわゆるソフトウエア・ビジブル・レジス
タの内容を格納するレジスタ・ファイルを含む。Iキャ
ッシュ6−2とEキャッシュ6−4の双方は、システム
・バス12と接続され、その内容はメモリー8から受け取
られる命令およびオペランドで更新される。
命令は、CPU2の各要素によってプロダクション・パイプ
ライン方式で実行される。即ち、Iユニット2−2はI
キャッシュ6−2から命令を受け取り、これを分解した
後、この命令をAユニット2−4へ送出する。このAユ
ニット2−4は、命令を実行するか、あるいはEキャッ
シュ6−4をアドレス指定するため翻訳するために仮想
アドレスをVMMU4へ送出する。Eキャッシュ6−4は、
指定されたオペランドをEユニット2−6へ送出する。
Aユニット2−4はIユニット2−2からの最初の命令
のその部分を実行中、Iユニット2−2は2番目の命令
および以降の命令をIキャッシュ6−2から取り出しつ
つある。Aユニット2−4が最初の命令により指定され
る仮想アドレスをVMMU4へ送出してこの事象についてI
ユニット2−2へ通知する時、Iユニット2−2は2番
目の命令をAユニット2−4へ送出する。VMMU4は、A
ユニット2−4が2番目の命令をパイプラインで処理
中、Eキャッシュ6−4をアドレス指定する。Eユニッ
ト2−6が最初の命令を実行中、Aユニット2−4が第
3の命令の仮想アドレスを生成しつつある間、VMMU4は
2番目の命令のオペランドを取り出すEキャッシュでよ
い。その間、Iユニット2−2は第4の命令を分解して
以降の命令の1つを取り出しつつある。従って、このよ
うな典型事例においては、プロダクション・ラインを流
れる5つの命令があり得る。
しかし、Iユニット2−2はある分岐命令を実行するこ
とができ、またAユニット2−4はあるソフトウエア・
ビジブルなレジスタ命令を実行することができるため、
これはこの命令の実行が完了すると直ちに、プロダクシ
ョン・ラインから除外される。同様に、Aユニット2−
4が分岐命令を処理しつつあり分岐の条件が満たされる
時、Aユニット2−4は直ちにIユニット2−2の分岐
アドレスを確認し、この分岐命令はプロダクション・ラ
インから取除かれる。この作動モードおよび方法は、結
果として従来技術と比較して処理能力が増大することに
なる。
第3図は、命令ユニット2−2、Aユニット2−4、実
行ユニット2−6の諸要素およびその各々の相互接続を
更に詳細に示している。命令ユニット2−2のPカウン
タ2−200は、Aユニット2−4によって仮想アドレス
をロードされる。この仮想アドレスは、パイプラインに
入れられるべき次の命令の場所のIキャッシュ6−2に
おけるアドレスである。I−FETCHサイクルの間、仮想
アドレスは加算器2−202およびレジスタVA0 2−204
あるいはレジスタVA12−206のいずれか一方を介して、
Iキャッシュ6−2へ転送される。レジスタVA0 2−2
04あるいはレジスタVA1 2−206の一方が、分岐命令が
取り出されるまで使用される。次いで、もしレジスタVA
0 2−204が付勢されるならば、分岐命令により求めら
れるアドレスがレジスタVA1 2−206に格納されること
になる。
分岐アドレスがPカウンタ2−200およびプログラム・
カウンタ2−416レジスタに別々に保持される理由は、
もしこれが条件付き分岐であれば、この条件は満たされ
るかあるいは満たされない故である。もしこの条件が満
たされなければ、分岐は結果として生じない。このた
め、システムに分岐により求めれらたアドレスを使用す
るか使用しない選択を与える。ファームウエアの制御下
にあるPカウンタ2−200は、1ワード命令に対して1
ずつ増分され、1つの2倍ワード命令毎に2つずつ増分
され、あるいはAユニット2−4からの分岐アドレスに
より置換される。
命令は、Iキャッシュ6−2からストリング・バッファ
A 2−220あるいはストリング・バッファB 2−221のいず
れかへ読出される。ここで再び、分岐命令が存在するま
で、1組のストリング・バッファがIキャッシュ6−2
から連続的な命令を受け取る。次いで、この分岐命令に
続く命令が、他のストリングにおけるバッファに格納さ
れる。例えば、もしこのストリング・バッファA 2−220
が使用されていたならば、分岐命令に続く命令が、スト
リング・バッファB 2−221に格納されることになる。処
理能力は、分岐条件が満たされIユニット2−4がスト
リング・バッファB 2−221から分岐ストリングを取り出
す場合に、両方の命令セットを格納することによって改
善される。
この命令は、次に、これがどんな種類の命令であるかを
判定する命令分解ロジック2−210へ送られる。即ち、
もしこれがソフトウエア・ビジブルなレジスタ間命令で
あれば、この命令は、Eユニット2−6により実行され
ることになり、メモリー命令であるならば、Aユニット
2−4によって実行されることになる。
この命令は、分解ロジック2−210からAユニット制御
ストア2−430をアドレス指定するAユニット・ファー
ムウエア・アドレス・ジェネレータ2−208へ送られ
る。このアドレス指定された場所の内容は、Aユニット
2−4におけるRDR(A)レジスタ2−406に格納され
る。ストリング・バッファ2−220または2−221からの
命令信号I INSTR 0−31は、Aユニット2−4にお
ける命令(RINSTR)レジスタ2−400へ転送される。も
しこの命令がEユニット2−6により実行されるなら
ば、これはまたEユニット2−6における命令先入れ先
出しレジスタ(FIFO)2−600に格納される。この命令
はまた、Iユニット2−4からの信号I−BEGINの制御
下でAユニット2−4のOP−CODEレジスタ2−402に格
納される。RINSTRレジスタ2−400およびOP−CODEレジ
スタ2−402の双方は、それぞれ32ビットの2倍ワード
を格納する。もし命令が2つまたは3つの2倍ワードを
要求するならば、この命令に対するOP−CODEレジスタ2
−402に止まるが、この命令の各2倍ワードは更に命令
レジスタ2−400に格納される。
OP−CODEレジスタ2−402の出力は、主としてOP−CODE
レジスタ2−402およびレジスタRDR(A)2−406にそ
れぞれ格納されたOP−CODEおよびファームウエア・ビッ
トの制御下でレジスタ・ファイル2−404をアドレス指
定するために使用される。レジスタ・ファイル2−404
は、ソフトウエア・ビジブル・レジスタを含む。もし実
行中の命令がメモリー命令であれば、仮想アドレスが生
成され、演算論理ユニット(ALU)2−412を介してVMMU
4へ送出される。Aユニット2−6により実行される命
令に応じて、ALU2−412に対する入力はRINSTRレジスタ
2−400、OP−CODEレジスタ2−402、レジスタ・ファイ
ル2−404、あるいはプログラム・カウンタ2−416によ
り、A側へ与えることができる。ALU2−412のB側入力
は、加算器2−408を介して、あるいはレジスタ・ファ
イル2−404から指標あるいはオフセット操作のため指
標シフタ2−410により与えられる。もしこれがレジス
タ命令、例えばレジスタ・ファイル2−404におけるソ
フトウエア・ビジブル・レジスタの内容のシフト操作で
あれば、レジスタ・ファイル2−404の出力はシフタ2
−414へ与えられ、命令により指定されるビット数にシ
フトされ、これが読出された同じレジスタのレジスタ・
ファイル2−404に再び格納され得る。
標識レジスタ2−417は、分岐命令を含むある命令に対
するプログラム状態標識を含む。このレジスタのビット
は、このビットをオフセットするための最後の操作の桁
溢れ標識(または)、桁上げ標識(C)、テストされた
最後のビットの状態を表すビット・テスト操作、および
最後の周辺照会の状態を表す入出力標識(I)を含む。
また、最後の比較の結果を表す、より大きい(G)、よ
り小さい(L)および似ていない(U)の記号も含まれ
る。
類似の標識ビットは、科学計算および商業的演算命令の
ため使用される。
従って、他の条件付き分岐命令は標識ビットをテストし
て、もし条件が真であれば分岐する。他の県付き分岐命
令は、レジスタ・ファイル2−404および2−610におけ
る選択されたソフトウエア・ビジブルなレジスタの条件
をテストすることになる。分岐命令のOP−CODEは、選択
されたソフトウエア・ビジブル・レジスタの真の状態、
即ち、これがゼロより小さいか、ゼロより大きいか、ゼ
ロに等しいか、ゼロに等しくないか、ゼロより小さくも
等しくもないか、あるいは奇数か偶数かを指定すること
になる。
分岐命令のタイプは、16ビットまでの短い変位、30ビッ
トの大きい変位を含む。分岐命令は、無条件分岐タイプ
あるいは条件付き分岐タイプがあり得る。Iユニット2
−2は、全ての短い変位分岐命令に対する分岐アドレス
を生成することになる。このユニットは、ストリング・
バッファ2−220あるいは2−221にある変位フィールド
の内容を加算器2−202によりPカウンタ2−200の内容
へ加算することによりこれを行う。
分岐ストリームは、Iキャッシュ6−2からストリング
・バッファ2−220または2−221へ読出される。
もし分岐命令が無条件分岐を指定するならば、Iユニッ
ト2−2は分岐命令を実行し、分岐命令ストリームにお
ける次の命令の分解を開始する。
もしこの分岐命令が条件付き分岐命令であれば、Iユニ
ット2−2はAユニット2−4を待機して、どの命令ス
トリームをIユニット2−2が分解するかの判定を行
う。OP−CODE2−402、レジスタ・ファイル2−404およ
び標識レジスタ2−417からの信号が分岐ロジック2−4
01へ与えられる。RDR(A)2−406は信号A−P−LDを
生じ、次いでALU2−412からの分岐アドレス信号がPカ
ウンタ2−200へロードされ、分岐ロジック2−401がビ
ット位置46〜50あるいは16進数07を生成する。信号A−
BRANCHおよびA−P−LDがPカウンタ2−200へ与えら
れ、信号A−BRANCHがOP−CODEリジスタ2−402からの
分岐の種類、指定された標識レジスタ2−417の状態、
およびレジスタ・ファイル2−404からのソフトウエア
・ビジブル・レジスタの状態を指示する信号から生成さ
れる。
もし両方の信号が真ならば、Iユニット2−2が分岐命
令ストリームにおける命令の分解を開始する。もし信号
A−P−LDが真でありかつA−BRANCHが偽ならば、Iユ
ニット2−2は元の命令ストリームの分解を開始する。
元のIユニット2−2において命令が分岐を求めかつ変
位を有するならば、分解ユニット2−210からの変位が
Pカウンタ2−200の内容に加算されるべく加算器2−2
02へ与えられ、レジスタVA0 2−204またはレジスタVA
1 2−206のいずれか一方に格納されてIキャッシュ6
−2へ与えられる。
Aユニット2−4が命令の実行を完了した時、A−DONE
信号がIユニット2−2の分解ロジック2−210へ送出
される。これは、Iユニット2−2に対しストリング・
バッファ2−220または2−221に格納され次の命令をA
ユニット2−4へ、また必要ならばEユニット2−6へ
送ることを通知する。もしある命令がEユニット2−6
による実行を求めるならば、Iユニット2−2はこの命
令を信号I−E−LASTおよび信号I−E−FIRSTの制御
下で命令FIFO2−600へ送出する。これらの信号は命令FI
FO2−600のロードを制御する。
信号について説明するブール式が付属書(APPENDIX)に
示されており、適当な時に参照すべきである。I−BEGI
N信号は、CRACK信号が生成され、システムが保持モード
になく、クロック・ロジックを含む論理ブロックがスト
ール・モードにない時、Aユニット2−4により受け取
られる。
作動可能ロジックおよびフリップフロップ2−222が命
令の分解の用意があり、ストリング・バッファA 2−
220あるいはストリング・バッファB 2−221が少なく
とも1つの命令を格納し、またAユニット2−4がADON
E信号を生成してこのAユニットが次の命令の処理のた
め使用可能である時、CRACK信号が生成される。
Iユニット2−2は、分解されつつある命令がEユニッ
ト2−6により実行されるならば、作動可能ロジックお
よびフリップフロップ2−222によりI−E−FIRSTおよ
びI−E−LAST信号を生成する。両方の信号は、I−FI
FO2−600へ与えられる。信号I−E−FIRSTは、このI
−E−FIRST信号はI−FIFO2−600が2倍ワード命令を
格納することを可能にする。I−E−LAST信号は、I−
FIFO2−600が単一ワード命令を格納することを可能にす
る。
Iユニット2−2はAユニット2−4において実行すべ
き命令を送出し、またもしこの命令がEユニット2−6
において実行されるべきであるならば、I−FIFO2−600
のみに対して送出する。Eユニット2−6においては、
I−FIFO2−600が実行する次の命令Iは、Eユニット制
御ストア2−604のアドレス格納場所を生成する次のア
ドレス・ジェネレータ2−602へ与えられる。ファーム
ウエア・ワードはレジスタRDR(E)2−606に格納され
る。I−FIFO2−600は4つまでの命令を格納する。
Aユニット2−4がその仮想アドレスをVMMU4へ送出す
る時、このVMMU4はEキャッシュ6−4をアドレス指定
する物理的アドレスを生成する。このアドレス指定され
た場所の内容は、単一ワードの転送のため、あるいは2
倍ワードの転送のため、信号LD−DAT−0015およびLD−D
AT−1631によりEユニット2−6におけるデータFIFO2
−630に格納される。信号LD−DAT−0015はまた、データ
FIFO2−630の書込みアドレスを1だけ増分して、次の転
送を受け入れる。このデータは、命令がそれについて演
算するオペランドである。Eユニット2−6は、そのオ
ペランドがデータFIFO2−630のソフトウエア・ビジブル
なレジスタに格納される命令を実行する。
Eユニット2−6による命令の実行中、標識の状態は、
ALU2−608から受け取った信号から信号E−IDAT0−8を
生成する標識ロジック2−623により変更することがで
きる。信号E−IDAT0−8はAユニット2−4における
標識レジスタ2−417を更新する。
Eユニット2−6により実行され、オペランドを要求し
ないある命令の場合は、Aユニット2−4は仮想アドレ
ス、16進数40をVMMU4へ送出することによりダミー・サ
イクルを生成する。この結果Eキャッシュ6−4を生じ
て、「ダミー」オペランドにより信号LD−DAT−1631を
データFIFO2−630へ送ることによりダミー・サイクルを
生じる。
乗算器2−616がレジスタ・ファイル2−610のAおよび
Bと接続されて、シフタ2−618およびQレジスタ2−6
20と関連して部分積を生じてこれを格納する。この部分
積は、結果マルチプレクサ(MUX)2−622に与えられ、
レジスタ・ファイル2−610の蓄積場所に格納される。
乗算が完了すると、最後の結果がレジスタ・ファイル2
−610のソフトウエア・ビジブル・レジスタの1つに格
納される。
スワップ・ロジック2−612は、レジスタ・ファイル2
−610のB側から2倍ワード内のワードのスワッピング
および単一ワード内のバイトのスワッピングのためオペ
ランドを受け取る。16ビット・ワードは8ビットのバイ
トからなっている。2倍ワードは、2つの16ビットの単
一ワードあるいは4つの8ビット・バイトからなってい
る。符号エクステンダ2−614は、2倍ワードの最上位
ビットの左側に2倍ワードの全ての上位位置の符号を反
復する。
CT1およびCT2カウンタ2−624は、結果として生じる浮
動小数点の指数の計算に用いられる。浮動小数点オペラ
ンドの仮数は、ALU2−608およびシフタ2−618によって
処理される。これらは周知の方法で行われる。
Eユニット2−6におけるAユニット2−4および2−
610を有する両方のレジスタ・ファイル2−404における
ソフトウエア・ビジブル・レジスタは、これらが共に同
じ情報を含むように連続するサイクルにおいて更新され
る。これは、RDR(A)レジスタ2−406からのファーム
ウエア信号により行われ、これらの信号は、レジスタ・
ファイル2−610を使用可能にする更新信号A−UPDT
と、レジスタ・ファイル2−404のDターミナルからの
データをレジスタ・ファイル2−610のDターミナルへ
格納するためレジスタ・ファイル2−610のアドレス・
ターミナルに与えられる6つのA−ADR信号とを生成す
るためロジック2−420に与えられる。同様に、RDR
(E)2−606からのE−UPDT信号は、ロジック2−601
からの信号E−ADRにより指定されるアドレスにレジス
タ・ファイル2−404がデータを格納することを可能に
する。ロジック2−601は、I−FIFO2−600からの命令
信号およびレジスタRDR(E)2−606からのファームウ
エア信号から信号E−ADRを生成する。
Aユニット2−4のプログラム・カウンタ2−416は、
次の命令のアドレスを格納する。Iユニット2−2にお
けるPカウンタ2−200もまた、次の命令のアドレスを
格納する。このレジスタが2つである理由は、条件付き
分岐の場合に、Iユニット2−2のPカウンタ2−200
が使用される場合に分岐アドレスを格納するが、プログ
ラム・カウンタ2−416はこの分岐アドレスを格納しな
いでその時実行中のシーケンスにおける次のアドレスを
格納する。
下記の事例は、本発明のプロダクション・ラインの運転
の利点を示す。第4図は、Iキャッシュ6−2の多数の
格納場所の内容を示している。この格納場所およびデー
タは、16進数の形態で示されている。本例においては、
場所1000および1001は、16進数の4Fのオフセットを持つ
32ビットの2倍ワードのロードB1レジスタの命令を格納
する。このため、VMMU4に与えられる仮想アドレスとし
て1000プラス1プラス4F即ち16進数1050のアドレスを与
える。この仮想アドレスは、Eキャッシュ6−4の物理
的アドレスの場所を指示する。この物理的アドレスの場
所の内容はレジスタB1へロードされるが、このレジスタ
はAユニット2−4におけるレジスタ・ファイル2−40
4およびEユニット2−6におけるレジスタ・ファイル
2−610の両方におけるソフトウェア・ビジブル・レジ
スタである。同様に、レジスタB2は、場所1002および10
03に格納された32ビットの2倍ワード命令ロード・レジ
スタB2からロードされることになる。場所1004は、レジ
スタ・ファイル2−404および2−610における別のソフ
トウエア・ビジブル・レジスタであるレジスタR1の内容
である単一ワード命令のSHIFT OPEN LEFT 3を格納
する。場所1005は、プログラム・カウンタ2−416の内
容に対してプラス5を加えてIキャッシュ6−2におけ
る場所100Aおよび100Bにある2倍ワード命令ロード・レ
ジスタR7を指示するため、分岐命令を格納する。
場所1006および1007は、レジスタR3の内容が格納場所00
10(Eキャッシュ6−4)の内容に加えられ、その答え
がレジスタR3に格納される加算命令ADD R3 0010を格
納する。場所1008および1009は、レジスタR6の内容がオ
ペランド6731により乗じられてその結果が再びレジスタ
R6に格納される乗算命令MUL R6 6731を格納する。
加算あるいは乗算命令はいずれも実行されないが、その
理由は、如何に両命令がIキャッシュ6−2から取り出
されても分解されず、場所1005における無条件分岐の故
である。
第5図は、命令がハイプラインの各段を経由する際の命
令の実行状態を示している。第5図に示される各段は、
Iキャッシュ6−2から命令を取り出すI−CACHE段、
命令を調べてどのユニットがこの命令を実行すべきかを
判定するI−CACHE段、仮想アドレスを生成するかある
いはレジスタまたは分岐命令を実行するAユニット段、
仮想アドレスを物理的アドレスへ変換するVMMU段、Eユ
ニット2−6へアドレス指定された場所のオペランドを
送出するE−CACHE段、および命令を実行するEユニッ
ト段である。
第5図に戻り、サイクル1の間、I−FETCHが命令ロー
ドB1即ち16進数の9CC0 004FをIキャッシュ6−2のレ
ジスタVA0 2−204の内容である16進数1000により指定
される場所から取り出し手、これをストリング・バッフ
ァA2−220に格納する。Pカウンタ2−200は、Aユニッ
ト2−4により初期化され、その内容1000が加算器2−
202を介してレジスタVA0 2−204へ転送される。Iキ
ャッシュ6−2は、場所1000および1001における2倍ワ
ードを読出す。
I CRACKは、サイクル2の間ロードB1命令を「分解」
する。これは記憶命令であるため、Iユニット2−2は
信号I BEGINをAユニット2−4へ送り、OP−CODEレ
ジスタ2−402を使用可能状態にし、信号I−EFIRSTお
よびI−ELASTをEユニット2−6へ送ってI−FIFO2−
600を使用可能状態にする。また、この命令は、Aユニ
ット2−4の命令レジスタ2−400およびEユニット2
−6のI−FIFO2−600へ送られる。OP−CODEレジスタ2
−402は、この命令のOP−CODE部分、ビット0−8(2
進数1001 11001)でロードされる。Aユニット制御ス
トア2−430がアドレス指定され、ファームウエア・ワ
ードがRDR(A)レジスタ2−406に格納される。
サイクル3の間、Aユニットが仮想アドレスを生成す
る。ALU2−412は、プログラム・カウンタ2−416の内容
即ち16進数1000に命令レジスタ2−400に格納された下
位のワード、16進数004Fを加えて、VMMU4へ送られる仮
想アドレスの16進数1050を生じるため1を加え、これは
VMMU4へ送られる。
VMMUのサイクル4において、VMMU4はEキャッシュ6−
4をアドレス指定する物理的アドレスである16進数2010
50(任意のアドレス)を生成する。
サイクル5において、16進数12345678であるアドレス指
定されたオペランドのE−CACHEがデータFIFO2−630に
格納される。
Eユニットのサイクル6においては、このオペランド
は、符号エクステンダ2−614、ALU2−608および結果マ
ルチプレクサ(MUX)2−622を介して、レジスタ・ファ
イル2−610に格納される。
ロードB2命令である16進数ACCO0050が、同様にプロダク
ション・ラインを経て処理される。この場合、Iキャッ
シュ6−2のアドレスである16進数1001がVA0 2−202
に格納される。命令ロードB2は2倍ワードであるため、
Pカウンタ2−200の内容が2だけ増分される。
Eのサイクル7において、オペランドの16進数24681357
がレジスタ・ファイル2−610のレジスタB2に格納され
る。
I FETCHのサイクル3においては、場所1004の内容が
Iキャッシュ6−2から読出される。アドレス指定され
た奇数の各場所は、それぞれ読出される16ビットの2つ
のワードを結果として生じる。命令ロードBは2倍ワー
ドの命令であるが、場所1004がアドレス指定された時読
出された2倍ワードは、2つの命令、即ち、16進数OF85
であるSHIFT R1LEFT3と、16進数OF85である分岐命令と
を有する。両命令ともストリング・バッファA2−220に
ロードされる。
I CRACKのサイクル4において、Iユニット2−2は
Aユニット2−4をアクセスするのみであるが、これは
この命令が専らAユニット2−4において実行されるた
めである。信号I−BEGINがOP−CODEをOP−CODEレジス
タ2−402へロードする。この命令I−BEGINは命令レジ
スタ2−400へロードされ、ファームウエア・ワードがR
DR(A)レジスタ2−406へロードされる。
Aのサイクル5において、R1の内容である16進数123456
78は、シフタ2−414を通過させられ、16進数91A2B3CO
としてR1へ戻り格納される。
シフト命令は3つのサイクルの後に実行され、次いでパ
イプラインから落とされることに注意されたい。
I CRACKのサイクル5が、命令レジスタ2−400を分岐
命令の16進数OF85でロードする。この時、レジスタVA1
2−206は16進数100A(1005プラス5)を格納する。
命令分解ロジック2−210からの変位5が に加
算される。
例え場所1005から場所100Aへの無条件分岐があろうと
も、サイクル4のI−FETCHの間、加算命令BA00 0010
が取り出されて、ストリング・バッファA2−202に格納
される。これは、サイクル6のI CRACKの間は分解さ
れないが、これはストリング・バッファB2−221がこの
時アクティブな状態にないためである。I CRACKサイ
クル6はダミー・サイクルである。
サイクル6の間、Aユニットは信号A−P−LDおよびA
−BRANCHを生じてPカウンタ2−200を分岐アクセスで
ロードする。このAユニットはまた、プログラム・カウ
ンタ2−416を分岐アドレスでロードする。
乗算命令がストリング・バッファ2−220にロードされ
るサイクル5のI−FETCHの間、この命令もまた分解さ
れない。しかし、I−CRACKのサイクル7の間、命令LDR
7が分解される。
第6A図および第6B図は、ブロック図形態で、それぞれ第
4図の命令ロードB1を実行中のAユニット2−4および
Eユニット2−6により行われるファームウエア・ステ
ップを示している。
各ブロックは、このファームウエア・ビットおよびRDR
(A)レジスタ2−406あるいはレジスタRDR(E)2−
606におけるその値を示している。ファームウエアによ
り認識された数字は、ブロックにより行われる機能と共
に、このブロック内でアンダーラインを付して示されて
いる。
事例として、第6A図のブロック2−458は、RDR(A)レ
ジスタ2−406のビット34乃至37が16進数1の値(2進
数0001)を有することを示している。行われる機能は、
ALU2−412のA入力の値をALU2−412のB入力の値に加え
て、1を足して仮想アドレスを生じることである。
第6A図においては、Aユニット2−4がオペランドの仮
想アドレスを起生して、これをVMMU4に送り、Iユニッ
ト2−2に対してAユニット2−4が命令ロードBIのそ
の部分を完了したことを通知する。全てのファームウエ
ア・ステップが1サイクル、即ち第5図のAのサイクル
3内に完了される。このファームウエア・ブロックは、
略々これらが実行される順序で示されている。
ブロック2−450から判るように、RDR(A)レジスタ2
−406のビット16が2進数0にある。マイクロ動作RB−O
PWが、RINSTRレジスタ2−406の内容である16進数9CC00
04Fをブロック2−452に転送する。
ブロック2−452のMICRO INDX0(RDR(A)レジスタ2
−406のビット19および20が2進数00にある)が、この
命令の右側のワード、16進数0050を選択し、ブロック2
−454のMICRO AUB−RB16:31(ビット29−31が2進数
0)が右側のワードをALU2−412のB側入力へ与える。
ブロック2−456のMICRO AUA−P(ビット26−28が2
進数0)が、ブログラム・カウンタ2−416の内容であ
る16進数1000をALU2−412のA入力側へ与える。
ブロック2の458のMICRO AU−A+B+I(ビット34−
37が16進数1)がALU2−412において仮想アドレスの16
進数1050(1000+4F+1)を生成する。
ブロック2−460のMICRO VALU−P(ビット41−42が16
進数3)が、MUX(図示せず)によりALU2−412から仮想
アドレスを選択する。
ブロック2−462のMICRO OFFSET(ビット32−33が2進
数0)が、Eキャッシュ6−4におけるオペランドがワ
ードの境界に現れることをテストする。さもなければ、
ファームウエアは2つのE−CACHEサイクルを呼び出
し、このオペランドを格納する2つの2倍ワードの内容
を読出す。従って、E−OFFSETは2進数0である。この
E−OFFSETは指標シフタ2−410からオフセットFIFO2−
634へ加えられる。
ブロック2−464のMICRO QLD(ビット43が2進数1)
が仮想アドレスバックアップとしてQレジスタ2−418
に対してロードする。
ブロック2−468のMICRO PP2(ビット44−45が2進数1
0)がプログラム・カウンタ2−416を増分C、更にIユ
ニット2−2のPカウンタ2−200を増分してIキャッ
シュ6−2から次の命令を読出す。
ブロック2−470のMICRO A−DONE(ビット53が2進数
1)が信号A−DONEをIユニット2−2へ送出する。次
いで、Iユニットが次の命令をAユニット2−4へ送出
する。
第6B図においては、Eユニット2−6が、このEキャッ
シュ6−4からオペランドを受け取ってこれをレジスタ
・ファイル2−610のB1に格納することにより、命令LDB
Iの実行を完了する。
ブロック2−650は、レジスタRDR(E)2−606のビッ
ト45−46が2進数01にあることを示す。MICRO DWは、
データFIFO2−630に2倍ワードのオペランドを整合す
る。2進数0のE−OFFSETがオフセットなしを表示す
る。
ブロック2−652のMICRO AUADATA(ビット47が2進数
1)が、データFIFO2−630からのオペランドをALU2−60
8のA入力へ転送する。
ブロック2−658のMICRO ALU−DW(ビット88−89が2
進数01)がALU2−608を構成して、このオペランドを2
倍ワードとして処理する。
ブロック2−660のMICRO RSLT−PTR(ビット66−67が
2進数01)においては、結果マルチプレクサ(MUX)2
−622がオペランドのビット0および1、REF−FIFO2−6
32からのリング数、およびALU2−608からのオペランド
のビット2−31を選択する。
ブロック2−662のMICRO A−BX(ビット数31−37が2
進数1)においては、0010 001が、ファームウエア・
ワードからのビット001、および命令ワードからのビッ
ト1−3からのB1のレジスタ・ファイル2−610のAア
ドレスである16進数09を起生する。
ブロック2−664のMICRO RFW(A)(ビット79−82が1
6進数01)が2倍ワードオペランドを結果マルチプレク
サ(MUX)2−622からのレジスタ・ファイル2−610のB
1へ書込む。
ブロック2−666のMICRO DONE(ビット63が2進数1)
が、E−DONE信号をIユニット2−2へ送出し、これが
命令ロードB1と関連する命令分解ロジック2−210をリ
セットする。
ブロック2−668のMICRO MBFMTMBR(ビット29、1−3
が16進数04)が、次のEユニット制御ストア2−604の
場所へ分岐し、レジスタRDR(E)2−606を次のファー
ムウエア・ワードでロードする。
第7図は、ブロック図形態で、命令SHIFTR1 LEFT3の実
行のためAユニット2−4により行われるファームウエ
ア・ステップを示す。第7図においては、I FETCH段
のサイクル3が命令SHIFT R1 LEFT3(SOL)の16進数1
003をIキャッシュ6−2から取り出し、これをストリ
ング・バッファA2−220にロードし、この命令はサイク
ル4において分解され、命令レジスタ2−400およびOP
−CODEレジスタ2−402へロードされる。信号I−BEGIN
は、OP−CODEレジスタ2−402を付勢する。サイクル5
が、レジスタ・ファイル2−404におけるR1の内容(16
進数12345678)を読出し、LEFT3ビットをシフトし、そ
の結果(16進数91A2B3C0)を再びR1に格納することによ
り、命令SOCの実行を完了する。
Aユニット2−4は、Aユニット制御ストア2−430か
ら読出されたファームウエア・ワードにより制御され、
RDR(A)レジスタ2−406に格納される。
ブロック2−480から判るように、RDR(A)レジスタ2
−406における16進数04のビット6−11により指定され
るマイクロ命令MICRO B−DXは、レジスタ・ファイル
2−404にRFBアドレスである16進数01を起生する。この
アドレスは、OP−CODEレジスタ2−402のビット1乃至
3を000に付加えることによりR1のアドレス(000001)
を得る。
ブロック2−482のMICRO SIN2−RB(ビット27−29が16
進数0)が、シフタ2−618に対しR1の内容を読出す。
ブロック2−484のMICRO SIN3−0(ビット30−31が2
進数11)が、0をシフタ2−618の32の下位位置にロー
ドする。ブロック2−486のMICRO SHIF−L(ビット16
が2進数0)が、左方のシフト操作のためシフタ2−61
8を条件付ける。ブロック2−488のMICROSHSI(ビット1
7−19が16進数2)が、OP−CODEレジスタ2−402のビッ
ト12−15により指定される如く、シフタ2−618をセッ
トアップして3だけシフトさせる。
ブロック2−490のMICRO RF:B−SHFT(ビット位置12−
13が2進数10)が、オペランドを3ビットだけシフトし
て、これを再びレジスタ・ファイル2−404のR1に格納
する。
ブロック2−492のMICRO I−C−SHFT(ビット位置46
−51が16進数38)が、シフトの大きさに対して標識レジ
スタ2−417の標識C(図示せず)をセットする。
ブロック2−494のMICRO A−DONE(ビット53が2進数
1)が、信号A−DONEをIユニット2−2へ送る。この
Iユニット2−2は、次に実行されるべき命令を分解し
て、これをAユニット2−4へ送出する。
ブロック2−496のMICRO PP1(ビット44−45が2進数0
1)が、プログラム・カウンタ2−416を1だけ増分する
が、これはSOLが単一ワード命令であるためである。
本発明については、その望ましい実施態様に関して示し
記したが、当業者は形態および細部における上記および
他の変更が本発明の趣旨および範囲から逸脱することな
く可能であることが理解されよう。
【図面の簡単な説明】
第1図は、本発明の装置を含むシステム全体を示すブロ
ック図、第2図は第1図の全システムの更に詳細なブロ
ック図、第3図はプロダクション・パイプライン・サイ
クルの主な要素を示す論理ブロック図、第4図は本発明
を示す命令のIキャッシュにおける格納場所を示す図、
第5図はプロダクション・パイプライン・サイクルにお
いて処理されつつある一連の命令を示す図、第6A図は、
実行ユニットにおける命令の実行に用いられるオペラン
ドのメモリー・アドレスを生成するアドレス・ユニット
における論理素子を制御するファームウエアの動作の流
れを示すブロック図、第6B図は、実行ユニットにおける
命令の実行を完了する論理素子を制御するファームウエ
アの動作の流れを示すブロック図、および第7図はソフ
トウエア・ビジブルなレジスタ命令を実行するようロジ
ックを制御するファームウエアを示すブロック図であ
る。 1……パイプライン・データ処理システム、2……中央
処理装置(CPU)、2−2……命令(I)ユニット、2
−4……Aユニット、2−6……実行(E)ユニット、
4……仮想メモリー管理装置(VMMU)、6……キャッシ
ュ装置、6−2……Iキャッシュ、6−4……Eキャッ
シュ、8……メモリー・サブシステム、10……入出力周
辺装置、12……システム・バス、2−200……Pカウン
タ、2−202……ストリング・バッファA、2−204……
レジスタVA0、2−206……レジスタVA1、2−208……A
ユニット・ファームウエア・アドレス・ジェネレータ、
2−210……命令分解ロジック、2−220、2−221……
ストリング・バッファ、2−222……作動可能ロジック
およびフリップフロップ、2−400……命令レジスタ、
2−401……分岐ロジック、2−402……OP−CODEレジス
タ、2−404……レジスタ・ファイル、2−406……RDR
(A)レジスタ、2−408……加算器、2−410……指標
シフタ、2−412……演算論理装置(ALU)、2−414…
…シフタ、2−416……プログラム・カウンタ、2−417
……標識レジスタ、2−420……ロジック、2−430……
Aユニット制御ストア、2−600……I−FIFOレジス
タ、2−601……ロジック、2−604……Eユニット制御
ストア、2−606……RDR(E)レジスタ、2−608……A
LU、2−610……レジスタ・ファイル、2−612……スワ
ップ・ロジック、2−614……符号エクステンダ、2−6
16……乗算器、2−618……シフタ、2−620……Qレジ
スタ、2−622……結果マルチプレクサ(MUX)、2−62
3……標識ロジック、2−624……CTカウンタ、2−630
……データFIFO、2−632……REF−FIFO。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭63−167935(JP,A) 特開 昭63−95539(JP,A) 特開 昭63−197232(JP,A)

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】データ処理システムにおいてパイプライン
    ・モードで命令を実行する装置であって、該命令が前記
    命令実行装置に連続して供給されるとともに、前記命令
    には少なくとも第1と、第2と、第3の形式があり、前
    記命令実行装置が、 逐次的順番で命令の部分を実行するように互いに接続さ
    れた第1(2−2)と、第2(2−4)と、第3(2−
    6)の処理ユニットとを備え、 前記第1の処理ユニット(2−2)は、前記命令をその
    連続して供給される通りに受け取って前記第2と第3の
    形式の命令を前記第2と第3の処理ユニットに制御可能
    に転送するように接続され、かつ命令復号装置(2−21
    0)を含み、 該命令復号装置(2−210)は、前記第1のユニットで
    受け取られた各命令を検知して、該命令が前記第1、第
    2または第3の形式の内の1つであることを表す制御信
    号(I−ELAST、I−BEGIN、I−EFIRST)を発生し、 前記第1の処理ユニット(2−2)は、前記第1の形式
    の命令を実行するために、前記命令の内の1つが前記第
    1の形式であることを表す前記制御信号に応答し、 前記第2の処理ユニット(2−4)は、前記第2の形式
    の命令を受け取って実行するために、前記命令の内の1
    つが前記第2の形式であることを表す前記制御信号に応
    答し、 前記第2の処理ユニット(2−4)は、前記第3の形式
    の命令を受け取って部分的に実行するために、前記命令
    の内の1つが前記第3の形式であることを表す前記制御
    信号に応答し、 前記第3の処理ユニット(2−6)は、前記第3の形式
    の命令を受け取って部分的に実行するために、前記命令
    の内の1つが前記第3の形式であることを表す前記制御
    信号に応答する、 ことを特徴とするデータ処理システム。
  2. 【請求項2】前記第3の処理ユニットによる前記第3の
    形式の命令の部分的実行が、前記第2の処理ユニットに
    より部分的実行に続くことを特徴とする請求項1記載の
    データ処理システム。
  3. 【請求項3】前記第3の処理ユニットによる部分的実行
    が、前記第2の処理ユニットによる部分的実行によって
    生成されたアドレスで、前記システムの記憶装置内の記
    憶位置から読み出されたオペランド上での、前記第3の
    形式の命令によってコールされたファンクションの実行
    を含むことを特徴とする請求項2記載のデータ処理シス
    テム。
  4. 【請求項4】前記第1の形式の命令が無条件分岐命令で
    あることを特徴とする請求項2記載のデータ処理システ
    ム。
  5. 【請求項5】前記第2の処理ユニットが、前記第2の形
    式の命令の実行を完了したとき、第1の信号(A−DON
    E)を発生することを特徴とする請求項1記載のデータ
    処理システム。
  6. 【請求項6】前記命令復号装置が、前記第1の信号に応
    答して前記連続する命令のうちの次の命令を復号して送
    出することを特徴とする請求項5記載のデータ処理シス
    テム。
  7. 【請求項7】各ユニットがプロダクションライン装置に
    与えられる複数の命令の各々について異なる動作を実行
    する、プロダクションラインを構成するように配置され
    た複数の直列に接続されたパイプライン・ユニットを備
    えたデータ処理システムにおいて、 オペランドと、前記複数の命令とを格納する記憶手段
    と、 前記記憶手段と接続され、該記憶受段から取り出された
    前記複数の命令の各々を格納する第1の手段を備えた第
    1のユニットとを設け、 該第1のユニットは更に、前記格納手段と接続されて、
    第1、第2および第3のタイプの命令を指定する復号手
    段を備え、 前記第1のユニットおよび前記記憶手段に接続され、か
    つ第1、第2および第3のタイプの命令を格納する第2
    の手段を備えた第2のユニットを設け、 該第2のユニットは、前記第2のタイプの命令を実行す
    ることにより前記プロダクションラインから前記第2の
    タイプの命令を除去する第1の手段を備え、該第2のユ
    ニットは、前記第1のタイプの命令に応答して第1のア
    ドレスを生成する第1の手段を有し、前記第1のユニッ
    トは前記第1のアドレスに応答して前記第1のタイプの
    命令を実行することにより前記プロダクションラインか
    ら前記第1のタイプの命令を除去する第2の手段を有
    し、 前記第2のユニットは更に、前記第3のタイプの命令に
    応答して前記オペランドの前記記憶手段における場所の
    第2のアドレスを生成する第2の手段を有し、 前記記憶手段は、前記第2のユニットと接続されて前記
    第2のアドレスに応答して前記オペランドを読出し、 前記第1のユニットおよび前記記憶手段と接続され、前
    記第3のタイプの命令および前記オペランドを格納する
    第3の手段を有する第3のユニットを設け、該第3のユ
    ニットは更に、前記第3のタイプの命令を実行すること
    により前記第3のタイプの命令を前記プロダクションラ
    インから除去する第3の手段を有することを特徴とする
    データ処理システム。
  8. 【請求項8】前記第1の格納手段が、 前記複数の命令の各々の命令キャッシュにおける場所の
    アドレスを格納する第1のカウンタ手段と、 前記命令キャッシュから受け取る前記複数の命令の各々
    を格納するストリング・バッファ手段とを含むことを特
    徴とする請求項7記載のデータ処理システル。
  9. 【請求項9】前記復号手段が、前記ストリング・バッフ
    ァ手段と接続されて命令バス上に転送される前記複数の
    命令の各々に対する第1の信号を生成し、かつ前記命令
    バス上に転送される前記第3のタイプの命令の各々に対
    する第2の信号を生成することを特徴とする請求項8記
    載のデータ処理システム。
JP1329412A 1988-12-19 1989-12-19 データ処理システム Expired - Lifetime JPH0776922B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US28658088A 1988-12-19 1988-12-19
US286580 1988-12-19

Publications (2)

Publication Number Publication Date
JPH02224124A JPH02224124A (ja) 1990-09-06
JPH0776922B2 true JPH0776922B2 (ja) 1995-08-16

Family

ID=23099255

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1329412A Expired - Lifetime JPH0776922B2 (ja) 1988-12-19 1989-12-19 データ処理システム

Country Status (15)

Country Link
EP (1) EP0378816B1 (ja)
JP (1) JPH0776922B2 (ja)
KR (1) KR940000027B1 (ja)
CN (1) CN1026037C (ja)
AU (1) AU615364B2 (ja)
BR (1) BR8906579A (ja)
CA (1) CA2005907C (ja)
DE (1) DE68928300T2 (ja)
DK (1) DK648189A (ja)
FI (1) FI896044A7 (ja)
IL (1) IL92605A0 (ja)
MX (1) MX171941B (ja)
NO (1) NO895068L (ja)
NZ (1) NZ231766A (ja)
ZA (1) ZA899554B (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
JP3510729B2 (ja) * 1996-02-29 2004-03-29 三洋電機株式会社 命令実行方法および命令実行装置
FR2770662B1 (fr) * 1997-11-03 1999-12-10 Inside Technologies Microprocesseur pipeline a saut conditionnel en un cycle d'horloge
FR2770660B1 (fr) * 1997-11-03 2000-08-25 Inside Technologies Microprocesseur, notamment pour carte a puce
US8082467B2 (en) 2009-12-23 2011-12-20 International Business Machines Corporation Triggering workaround capabilities based on events active in a processor pipeline
US9104399B2 (en) 2009-12-23 2015-08-11 International Business Machines Corporation Dual issuing of complex instruction set instructions
US9135005B2 (en) 2010-01-28 2015-09-15 International Business Machines Corporation History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties
US8495341B2 (en) 2010-02-17 2013-07-23 International Business Machines Corporation Instruction length based cracking for instruction of variable length storage operands
US8938605B2 (en) 2010-03-05 2015-01-20 International Business Machines Corporation Instruction cracking based on machine state
US8464030B2 (en) 2010-04-09 2013-06-11 International Business Machines Corporation Instruction cracking and issue shortening based on instruction base fields, index fields, operand fields, and various other instruction text bits
US8645669B2 (en) 2010-05-05 2014-02-04 International Business Machines Corporation Cracking destructively overlapping operands in variable length instructions

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4598365A (en) * 1983-04-01 1986-07-01 Honeywell Information Systems Inc. Pipelined decimal character execution unit
CA1250667A (en) * 1985-04-15 1989-02-28 Larry D. Larsen Branch control in a three phase pipelined signal processor
US4991080A (en) * 1986-03-13 1991-02-05 International Business Machines Corporation Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions
JPS6395539A (ja) * 1986-10-09 1988-04-26 Nec Corp パイプライン処理方式
JP2695157B2 (ja) * 1986-12-29 1997-12-24 松下電器産業株式会社 可変パイプラインプロセッサ
JPS63197232A (ja) * 1987-02-12 1988-08-16 Toshiba Corp マイクロプロセツサ

Also Published As

Publication number Publication date
EP0378816B1 (en) 1997-09-03
DE68928300T2 (de) 1998-04-02
DK648189A (da) 1990-06-20
DE68928300D1 (de) 1997-10-09
CN1026037C (zh) 1994-09-28
NZ231766A (en) 1992-01-29
BR8906579A (pt) 1990-09-04
DK648189D0 (da) 1989-12-19
AU4670489A (en) 1990-06-21
CA2005907A1 (en) 1990-06-19
MX171941B (es) 1993-11-24
EP0378816A2 (en) 1990-07-25
KR940000027B1 (ko) 1994-01-05
IL92605A0 (en) 1990-08-31
EP0378816A3 (en) 1992-05-06
JPH02224124A (ja) 1990-09-06
CN1044354A (zh) 1990-08-01
AU615364B2 (en) 1991-09-26
NO895068D0 (no) 1989-12-15
KR900010587A (ko) 1990-07-09
FI896044A7 (fi) 1990-06-20
CA2005907C (en) 1994-05-31
ZA899554B (en) 1990-10-31
NO895068L (no) 1990-06-20
FI896044A0 (fi) 1989-12-18

Similar Documents

Publication Publication Date Title
US4648034A (en) Busy signal interface between master and slave processors in a computer system
JP2678527B2 (ja) キャッシュメモリ装置
US5822606A (en) DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US6327650B1 (en) Pipelined multiprocessing with upstream processor concurrently writing to local register and to register of downstream processor
JP3072705B2 (ja) スーパースカラ・プロセッサの電力消費を減少させる回路及び方法
US5592634A (en) Zero-cycle multi-state branch cache prediction data processing system and method thereof
US6321326B1 (en) Prefetch instruction specifying destination functional unit and read/write access mode
JPS63193230A (ja) 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法
IE990754A1 (en) An apparatus for software initiated prefetch and method therefor
JPS62245442A (ja) 情報処理装置
US4980819A (en) Mechanism for automatically updating multiple unit register file memories in successive cycles for a pipelined processing system
JPH03282904A (ja) プログラマブルコントローラ
NO324825B1 (no) Atte-bit mikroprosessor med RISC-arkitektur
JP2575219B2 (ja) データ処理システム及びその命令実行を促進する方法
JPH0776922B2 (ja) データ処理システム
JPH07120284B2 (ja) データ処理装置
JPH10222367A (ja) ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法
US6161171A (en) Apparatus for pipelining sequential instructions in synchronism with an operation clock
Islam et al. Design of High-Speed-Pipelined Execution Unit of 32-bit RISC Processor
US5983344A (en) Combining ALU and memory storage micro instructions by using an address latch to maintain an address calculated by a first micro instruction
US5197133A (en) Control store addressing from multiple sources
JP2567134B2 (ja) ビットフィールド論理演算処理装置およびそれを具備するモノリシックマイクロプロセッサ
US4853889A (en) Arrangement and method for speeding the operation of branch instructions
JPH08249175A (ja) スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置
JPH0769806B2 (ja) データ処理装置