JPH01102644A - パイプライン式処理装置 - Google Patents

パイプライン式処理装置

Info

Publication number
JPH01102644A
JPH01102644A JP63233855A JP23385588A JPH01102644A JP H01102644 A JPH01102644 A JP H01102644A JP 63233855 A JP63233855 A JP 63233855A JP 23385588 A JP23385588 A JP 23385588A JP H01102644 A JPH01102644 A JP H01102644A
Authority
JP
Japan
Prior art keywords
instruction
register
pipe
circuit
data
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.)
Pending
Application number
JP63233855A
Other languages
English (en)
Inventor
Eric M Schwarz
エリツク・マーク・シユワツツ
Stamatis Vassiliadis
ステマテイズ・ヴアシリアデス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH01102644A publication Critical patent/JPH01102644A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8092Array of vector units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は計算機システムに係り、特に、単一命令スドリ
ーム単一データ(SISD)アーキテクチャで動作する
ように設計されている、浮動小数点ユニットの如き機能
ユニットで、複数命令ストリーム複数データ(MIMD
)パイプラインを使用する技術に係る。
B、従来技術とその課題 殆んどの計算機のプロセッサは何らかの形のパイプライ
ンを利用している。パイプライン式プロセッサでは、命
令ストリームの2以上の命令が同時に実行される。実行
中の各命令はパイプの異なったステージにある。パイプ
ライン式プロセッサは当然非パイプライン式プロセッサ
よりも高性能である。パイプライン方式には幾つかのタ
イプがある。その1つは単一命令スドリーム単一データ
(SISD)パイプライン方式である。5ISDタイプ
においては、個々の命令は単一のデータ・オペレーショ
ンとパイプライン結合される。しかし、5ISDパイプ
ライン方式を採ると多くのハザードに遭遇する。′可能
な最大の新データ・レートでパイプラインに入る時にハ
ザードが生じる。
ハザードは、構造ハザード及びデータ依存ハザードの2
つに分けることができる。構造ハザードは、2つのデー
タが同じハードウェアを使おうとした時、すなわちハー
ドウェアの使用に関して衝突が起こった時に生じる。デ
ータ依存ハザードは、パイプラインの1つのステージで
起こった事象がパイプラインの別のステージを介するデ
ータ通過の可否を決定するときに生じ得る。例えば、パ
イプラインが2つのステージを有し、各ステージが単一
メモリの使用を要求している時、一方のステージがメモ
リを使用中であれば、他方のステージはメモリが解放さ
れるまで待っていなければならない。
別のタイプは、複数命令ストリーム複数データ(MIM
D)パイプライン方式と呼ばれるものである。MIMD
タイプでは、個々の命令ではなくて命令ストリームがパ
イプライン化される。MIMDタイプのパイプライン方
式はハザードの問題を生じない。しかし、命令ストリー
ムがパイプライン化されると云っても、成る命令ストリ
ームの実行が完了しない限り、次の命令ストリームの実
行を開始することはできない。従って、MIMDパイプ
ライン方式の性能は、5ISDパイプライン方式よりは
上であるが、−時に1つの命令ストリームしか実行でき
ないと云う原理によって制限を受ける。
第2図を参照しながら、従来のMIMDバイア’ライン
方式について説明する。
第2図において、記憶装置10は複数の命令ストリーム
及び各命令ストリームの状態を記憶している。記憶装置
10の出力には初期設定制御部12が接続され、そして
初期設定制御部12の出力にはパイプライン回路14が
接続されている。パイプライン回路14はハザード検出
回路を持っていない。パイプライン回路14の出力は記
憶装置10に接続されている。
動作時には、まず1つの命令ストリームが記憶装置10
から初期設定制御部12へ送られる。初期設定制御部1
2は、受取った命令ストリームの各命令を1つずつパイ
プライン回路14へ送る。
これらの命令はパイプライン回路14の内部でパイプラ
イン化され、−時に1つずつ実行きれる。
実行後、更新された命令はパイプライン回路14から記
憶装置10に書込まれる。命令ストリームの最後の命令
が初期設定制御部12かもパイプライン回路14へ送ら
れ、その実行が終って最後の更新された命令が記憶装置
10へ送られると、別の命令ストリームがパイプライン
回路14での実行のために、記憶装置10から初期設定
制御部12へ読出される。
上述から明らかなように、第2図の構成ておいては、最
初の命令ストリームのパイプライン化及び実行がパイプ
ライン回路14で終らない限り、次の命令ストリームを
記憶装置10から初期設定制御部12へ読出すことはで
きない。これが従来のMIMDパイプライン方式の欠点
である。
従って本発明の目的は、上述の如き欠点のない新しいタ
イプのパイプライン(以下、動的MIMDバイブライン
と云う)を計算機システムに導入することにある。
C1課題を解決するための手段 本発明に従うパイプライン式処理装置は、入力命令を受
取る受取り手段、入力命令を実行する複数のパイプライ
ン式処理手段、及び処理手段での命令実行を制御するた
めのテーブル手段を含む。
各処理手段(パイプ)は複数の命令を保持して実行する
ことができ、それぞれ一意的な識別子(パイプ番号)に
より識別される。各処理手段に保持されている命令は様
々な実行段階にあるため、処理手段における各命令の状
況を正確に記録してお(ことが必要である。そのため、
テーブル手段(動的活動記録テーブル)は各処理手段に
保持されている命令に関する情報を記憶する。この情報
には、当該命令を実行する処理手段の識別子も含まれる
上述の如きパイプライン式処理装置は、例えば浮動小数
点ユニットに適用できる。一般に、浮動小数点ユニット
はCPUの如き他の機能ユニットからの要求に応答して
動作するが、命令実行で手−杯の時は要求に応じられな
いことがある。また、何らかのハザードが存在している
と、命令の実行を遅らせる必要がある。これらを監視す
るため、後述の実施例では、ハンドシェーク/犬域ノ・
ザード回路が使用される。ユニットが使用中でなく且つ
ハザードが存在しなければ、次の命令を対応する処理手
段へ入れることができる。また、命令の長さや種類に応
じてMIMDモード又は5ISDモードを選択するMI
MD/5ISD切替え回路も設けられる。
D、実施例 以下では、本発明に従う動的MIMDパイプラインを計
算機システムの機能ユニットに組込んだ例を説明する。
機能ユニットとしては浮動小数点ユニット(以下、FP
Uと略称)t−取り上げるが、勿論本発明はこれに限定
されるものではない。
計算機システムは、FPUの他に、キャッシュ、CPU
、及びベクトル−プロセッサを含む。FPUは、キャッ
シュ、CPU又はベクトル・プロセッサからデータを直
接受取る。命令はCPUから受取る。CPUは、キャッ
シュから来るデータの制御には関与しない。CPUは、
(キャッシュから)データを要求する一方で、命令をF
PUへ送る。データがキャッシュからアクセスされてい
る間、CPUは命令をFPUへ送り続げろ。その祭、キ
ャッシュからデータをアクセスするサイクルと、対応す
る命令をFPUへ送るサイクルとの間の同期は無視され
る。従って、例えばサイクルNでFPUに到着したデー
タが、サイクルM(ただしM≦N)でFPUに送られた
命令に関係するデータである場合がある。CPUば、C
バスと呼ばれるバスを介して、FPU及び他のユニット
(例えばキャッシュ)に動作を要求する。Cバスは、C
PUとFPUとの間で命令を転送する唯一の手段である
。命令のOPコードの他に、ハンドシェーク制御信号も
Cバス上を転送される。cpTJが要求ヲ送ル機能ユニ
ットをプロセッサ・パスeユニツ)(PBU)と呼ぶ。
その1つがFPUである。
CPUが自身で実行できない命令を検出し、PBUがそ
の命令を実行すべき場合には、CPUは適当なPBUに
プロセッサ・バス動作(P B O) 信号を送る。例
えば、CPUで解読した命令が良精度形式の浮動小数点
乗算命令であれば、FPUで実行した方が適しているの
で、CPUはPBO信号をFPUへ送って、この命令の
実行を要求する。
FPUは2つの主要部、すなわちデータが実際に流れる
部分と、命令が導入されて制御信号に変換される部分と
を含んでいるが、本明細書で主に説明するのは後者の部
分である。
本発明の動的MIMDパイプラインを利用するFPUの
構成例を第1図に示す。
第1図において、FPU20のCバスは命令スタック2
1に接続される。命令スタック21の出力はデコーダ2
2に接続される。デコーダ22の出力はハンドシェーク
/大域ノ・ザード回路23、MIMD/5ISD切替え
回路24、及び初期設定回路25に接続される。回路2
5及び24の出力は初期設定回路250入力に接続され
る。初期設定回路25の出力は動的活動記録テーブル2
7、パイプライン機構26、及び複数の浮動小数点レジ
スタ(FPR)のアンイ28に接続される。ハンドシェ
ーク/大域ハザード回路26の出力は例外処理回路19
にも接続される。例外処理回路19の出力は動的活動記
録テーブル27に接続される。パイプライン機構26も
動的活動記録テーブル27及び例外処理回路19に接続
され、またDパスに出力を発生する。Dバスは、データ
・キャッシュ(図示せず)及びアーキテクチャ上で定義
されたローカル・メモリであるFPRアレイ28に接続
される。動的活動記録テーブル27の出力は、Dバス及
びFPRアレイ28への出力ゲート動作を制御するのに
用いられる。Cバスは、命令スタック21の他に、Dバ
ス・スタック制御回路30にも入力を供給する。Dパス
・スタック制御回路30の出力はDバス・スタック29
に接続される。Dパス・スタック29はDバスから入力
を受取る。Dバス・スタック29及びFPRアレイ28
の出力は、データ・フローを開始するデータを発生する
本発明の動的MIMDパイプラインは2つの経路、すな
わち命令及び制御のための経路(Cバス経路)と、デー
タ・フローのだめの経路(Dバス経路)に分けることが
できる。命令はCバスを介して受取られ、命令スタック
21に置かれた後、デコーダ22で解読される。データ
はDバスを介して第1図の動的MIMDパイプライイヘ
導入される。
ハンドシェーク/大域ハザード回路23はCPU(図示
せず)へハンドシェーク信号を送り、大域ハザードを検
出する。ハンドシェーク/大域ハザード回路23の詳細
は第10図に示しであるが、これについてはあとで説明
する。Cバスは、CPUと各PBU(FPU20を含む
)との間で一組のハンドシェーク信号を転送する。FP
U20がCパスを介して要求を受取った場合、その要求
がCPUからのもので、且つFPU20が当該要求に関
係する唯一のPBUであれば、ハンドシェーク/大域ハ
ザード回路23は、肯定応答信号(ACK)、使用中信
号又は割込み信号をCPUへ返送する必要がある。AC
Kは、Cバスから要求を受取った時にFPUが使用中(
ビジー)でなげれば、FPUからCPUへ送られる。割
込み信号は、データ例外が生じて状況ワードに重要情報
が書込まれていると、FPUからCPUへ送られる。使
用中信号は、FPUが別の命令を受入れて実行すること
ができない場合に、FPUからCPUへ送られる。
ハンドシェーク/大域ノ1ザード回路23は、大域・・
ザードを検出すると、その存在゛を表わす信号を初期設
定回路25へ送る。また回路25は、(初期設定回路2
5と関連して)FPU20の応答を他のプロセッサ・バ
ス・二二ツ)(pBU)へ送る。回路23は、命令スト
リームの始め及び終りを検出するのにも役立つ。回路2
3は、実行中の他の命令に対する命令のデータ依存性に
よるノ・ザード(データ・インターロック)の存在を検
出する。
M I’MD/S I S D切替え回路24は、デコ
ーダ22で解読された入力命令に応じて、5ISDモー
ド又はMIMDモードを設定する。入力命令が64ビツ
トよりも長いオペランドを使用するものであるか、又は
命令の実行が困難であれば、MIMD/5ISD切替え
回路24は5ISDモードを選択し、さもなければMI
MDモードを選択する。
実行が困難であると考えられ、5ISDモードが選択さ
れる命令は次の通りである。
浮動小数点除算 固定小数点除算 平方根演算 拡張精度オペランドを用いる演算 5ISDモードでの実行中は、当該命令の実行を除くと
、どのような活動も行われない。これは、FPU20の
ハンドシェーク回路26からCPUへ送られる使用中信
号を活動状態に保つことにより達成される。使用中信号
が活動状態にあると、CPUは新しい要求f:F PU
 20へ送れない。
以下に列挙する命令又はその如何なる組合せも、MIM
D/5ISD切替え回路24にMIMDモードを選択さ
せる。
浮動小数点演算 加算 比較 二分 ロード 乗算 記憶 減算 固定小数点演算−マイクロコード 乗算 その他の演算−マイクロコード ロード 記憶 状況ワード 間接モード 再試行 次の命令は、MIMD/5ISD切替え回路24に5I
SDモードを選択させる。
浮動小数点−マイクロコード 拡張精度加算 拡張精度乗算 除算 拡張精度除算   ゛ 平方根演算 拡張精度丸めロード 固定小数点演算−マイクロコード 除算 初期設定回路25はパイプを起動し、動的活動記録テー
ブル27を更新する。初期設定回路25の詳細について
は、あとで第11図を参照しながら説明する。初期設定
回路25はハンドシェーク/大域ハザード回路23と関
連して、命令ストリームの始め及び終りを決定し、また
何らかのデータ依存ハザードが存在するかどうかを決定
する。
命令解読後、デコーダ22かもの出力により示される命
令のタイプが、初期設定回路25及びハンドシェーク/
大域ハザード回路23において、使用する適切なパイプ
の第1サイクル状況の完了状況(内部パイプ制御部26
a〜26dにより示される)と比較される。大域ハザー
ドがないことが動的活動配錘テーブル27により示され
、当面の内部ハザードがないことがノ・ンドシェーク/
大域ハザード回路26の出力により示されると、命令の
初期設定が行われる。ノーンドシェーク/大域ノ・ザー
ド回路26が使用中信号を発生していると、初期設定回
路25は如何なる初期設定も行わない。
初期設定は、適切なパイプの状況制御の開始、及び動的
活動記録テーブル27への新しいエントリの入力を含む
。初期設定の状況をCPUに知らせるのはハンドシェー
ク/大域ハザード回路23である。回路23は、A C
K’!ic P Uへ送ることにより、命令の処理が開
始されたことを示し、また使用中信号1cPUへ送るこ
とにより、FPU20が命令を受取ったが、それ稈長(
の命令を処理できないため、入力命令のパイプを停止す
ることを示す。前述のように、回路23及び25は命令
ストリームの始め及び終りを決定する。まだ命令ストリ
ームにない命令に対するACK及び使用可(使用中でな
い)は命令ストリームの始めを示し、使用中信号での応
答は命令ストリームの終りを示す。ハンドシェーク/大
域ハザード回路23は、データ依存性によるノ・ザード
の存在全検出するのに用いられる。初期設定回路25は
、動的活動記録テーブル27に新しいエントリを追加す
る。
従って、要約すると、初期設定は、ノ・ンドシエーキン
グ、活動記録ファイルの更新、及びもしデータ依存ハザ
ードが生じていればその処理、から成る。
第1図の動的MIMDパイプラインは4つのパイプライ
ン回路(パイプ1〜パイプ4)261〜26dを含む。
従って命令のカテゴリも4つある(1つのパイプ当り1
つのカテゴリ)。
Dバス上のデータはFPRアレイ28又はDバス・スタ
ック29により処理される。Dバス・スタック29はD
パス・スタック制御回路30の制御を受ける。
例外処理回路19は、例外が生じているかどうかを調べ
る。命令実行中に生じ得るデータ例外のタイプは次の通
りである。
指数オーバーフロー例外 指数アンベーフロー例外 浮動小数点除算例外 固定小数点除算例外 有効数字例外 平方根演算例外 これらの例外のうちの1つを起こす命令が検出されると
、この命令の後で受取られたすべての命令は、例えそれ
らが既に実行中であったとしても、あたかも受取られな
かったかの如き効果を与えるため、取消さなければなら
ない。これは、動的MIMDアーキテクチャが維持しな
ければならない5ISDアーキテクチヤの性質である。
命令の取消しは、例外を起こした命令の完了後に動的活
動記録テーブル27の中のすべての有効ビットをゼロに
変えることにより為される。更に、CPU及び他のユニ
ットは割込みを知らされ、CPUが割込み処理ルーチン
を開始するまでそれらの命令を取消さなければならない
計算機シろテムのFPUに配置される第1図の動的MI
MDパイプラインはCバスから命令を受取り、FPUは
他のPBUと同様に、l−A CKl、「使用中」及び
「割込み」の如き特定のノーンドシェーク信号を送るこ
とによって応答する。CPUはパイプライン・モードで
働き、サイクル毎にPBOコマンドを、ACKが返され
たかどうかには無関係に送出するので、PBUは次のP
BOの実行に進む前に、最後のPBOに対するACKが
返されたかどうかを調べなげればならない。PBUはス
マート・インタフェースを含んでおり、それを用いて、
他のPBUとCPUとの間のハンドシェーク状態をチエ
ツクする。PBUは、PBOi受取った後のサイクルで
、3つのハンドシェーク信号のうちの1つを回路23か
らCPUに送る必要がある。PBUは、ハザードに遭遇
すると、使用中信号ecPUに送る。その時PBUは、
受取った命令及びその次の命令を命令スタック21に保
持しており、か(してCPUからの命令の順序が維持さ
れる。
第3図の(、)に示すように、命令スタック21はCバ
ス・スタック21a及びCバス・レジスタ21b’i含
む、受取った命令はCバス・レジスタ21bに保持され
、その次の命令はCバス・スタック21aに保持される
。使用中信号を発生させるハザードに遭遇しない限り、
命令はスタックされない。FPU20は、処理能力の範
囲内であれば、どれ程多くの命令でも受入れるが、CP
U程多稈長情報を含まない。と云うのは、CPUはその
命令バッファの内容から、何らかの問題が生じそうだと
判断すると、命令をバス・ユニットへ送る前にその命令
を停止させることができるからである。FPU20及び
他のバス・ユニット(例えばデータ・キャッシュ)での
実行を要求するPBOがCPUから送られる場合、FP
U20はデータ・キャッシュによる命令実行の開始を阻
止できない。従って、FPU20によるパイプライン化
の最も効率的な方法は、ハザードに遭遇するまでにでき
るだけ多(の処理を行うことである。
第3図において、(、)は命令スタック21の構成を示
し、(b)は配線モード時におけるCバス上のビットを
示し、(C)はマイクロコード・モード時におけるCバ
ス上のビットを示している。
前述のように、命令スタック21はCバス・スタック2
1a及びその出力に接続されたCバス・レジスタ21b
を含む。Cバスと同じく、命令スタック21は多くとも
2つの命令につき25ピツトの情報を保持する。各ビッ
トの意味は次の通りである。
ピッ)0−FPU20が配線モードにあるかマイクロコ
ード・モードにあるかを示すPBOビット。配線モード
(ビット0=0)においては、例外はCPUに報告され
る。マイクロコード・モード(ビットo=i)において
は、例外は状況ワード(第8図参照)に記憶されるが、
報告されることはない。
ビット1(FP)−当該命令がFPU20で実行されね
ばならないこと1FPU20に知らせるFPU要求ビッ
ト。
ビット2(IPU)−命令の解読をキャッシュに知らせ
るIPU/キャッシュ要求ビット。
ビット3(VP)−ベクトル・プロセッサ要求ビット。
□  ビット4〜1〇−命令のOPコード。
ビット11〜13(Fl)−オペランド1の符号化され
たFPRアドレス。
ビット14〜16(F2)−オペランド2の符号化され
たFPRアドレス。
ビット17〜19(TAG又は5RC)−配線モードに
おいては、これらのビットは、例外発生に伴って状況ワ
ードに記憶される割込みタグ(TAG)を表わし、マイ
クロコード−モードにおいては、ソースPBU(SRC
)を識別する。割込みタグは、CPUの命令スタックに
ある命令を一意的に識別する。
ビット20〜22(DST)−マイクロコード・モード
において宛先PBUを識別する。
ビット24(P)−命令の妥当性を検査するためのパリ
ティeビット。
Cバス上の命令は上述の25ピツトの形で命令スタック
21へ導入される。なお、第3図の(b)及び(c)の
中の斜線部分は予約フィールドを表わしている。
動的活動記録テーブル27の構成を第4図に示す。第4
図の例では、動的活動記録テーブル27は、最大8個の
命令までそれぞれ17ビツトの情報を記憶する。これは
、入力命令が4つのパイプライン回路26a〜26dの
うちの1つに入って完了する必要があるときに使用され
る。命令はスタックされるので、テーブル27は1以上
の命令ストリームの命令実行の完了を順序づける手段を
提供する。Cバスは一時に1つの命令しか送れないので
、この結果として命令の開始時間が決まる。
1以上の命令ストリームの命令の実行は完了までに複数
のサイクルを要することがあり、またパイ。
プも複数存在しているので、複数の命令を同時に実行す
ることが可能である。アーキテクチャ上の制約から、i
す込みが起こった時に命令がシーケンシャルでなかった
なら、結果が予測できないことがあるので、命令完了の
順序は維持されねばならない。従って、順序づげ情報及
び完了情報をテーブル27に保持しておく必要がある。
テーブル27は次のような情報を記憶する。
ビット0(V)−有効ビット。
ビット1〜3(WRADDR)−書込みアドレス。
ビット4〜5(PIPE  No)−パイプ番号(00
=加算、01=乗算、10=ロードRX。
11=その他)。
ビット6(H)−1であれば配線FPU要求であること
を示し、0であればマイクロコード命令であることを示
す。
ピッ) 7 (WT )−書込みタイプの命令かどうか
を示す。
ビット8(M/5)−1であればMIMD命令タイプで
あることを示し、0であれば5ISD命令タイプである
ことを示す。
ビット9 (EXT )−拡張精度結果を書込むかどう
かを示す。
ピッ)10(LEN)−1であれば結果が良精度である
ことを示し、0であれば短精度であること金示す。
ビット11〜13(INT  TAG)−CPUのスタ
ックにおける命令を一意的に識別する割込みタグ。
ビット14〜16(PSW  PTR)−命令の再試行
ポインタを識別する。
複数のパイプライン回路26a〜26dを順序づげると
いう点でパイプ番号(PIPE  No)は重要である
。パイプが1つだゆであれば、順序づげは殆んど問題に
ならないが、複数パイプのシステムでは、追跡情報を維
持しておかねばならない。書込みアドレス(WRADD
R)、書込ミタイプ(WT)及び結果長(LEN)は命
令を完了させるのに有用である。割込みタグ(INTT
AG)は、例外が生じた時に記憶され、この例外を起こ
した命令を識別する。もしそれが5ISD命令であれば
、パイプの終りに有効データがあるかどうかを見る代り
に、サイクルを計数するカウンタによって命令の完了が
感知される。最も重要なビットは、対応する命令が有効
かどうかを示す有効ビット(V)である。有効ピッ)(
V)は例外が生じるとクリアされる。有効ビット(V)
は命令完了時にもクリアされるが、その場合はスタック
氷上方にシフトされる。従って、動的活動記録テーブル
27において有効ビット(V)’zクリアすることによ
り、FPU20中のすべての未了命令を迅速に取消すこ
とができる。
パイプライン機構26の構成を第5〜8図に示す。第5
図は、加算、減算、除算、比較、平方根演算等の加算タ
イプの命令に用いられる加算パイプを含むパイプライン
回路26mの構成を示している。第5a図の加、算パイ
プは6サイクルでその機能を遂行する。第6a図は乗算
命令に用いられる乗算パイプを含むパイプライン回路2
6bの構成を示しており、これは5サイクルでその機能
を遂行する。第7図はRXタイプのロード命令に用いら
れるパイプライン回路26cの構成を示しており、これ
は2サイクルでその機能を遂行する。
第8図は他のすべての機能(普通は補助レジスタや状況
レジスタの書込み又は読取り)を遂行するためのパイプ
ライン回路26dの構成を示している。
パイプライン回路26a〜26dはそれぞれ制御部及び
パイプ部(1〜4)を含んでいる(第1図参照)。制御
部は、関連するパイプ中の流れをできるだけ遠(まで行
かせ且つFPRアレイ28がインターロックされる時を
感知することにより、及びどこに良好なデータがあるか
を調べることにより、関連するパイプの内部を制御する
。MIMDモードでは、パイプ1〜4が異なった長さを
持っているため、これらのパイプの全体的な制御が複雑
になる。
パイプ内部には関連する状況フィールドを有する幾つか
のレジスタがある。第5a図の加算パイ。
プの場合、第5b図に示した状況フィールドの各ピット
の意味は次の通りである。
ピットD〜2(ADDR)−オペランドのFPRアドレ
ス。
ピット3(VI)−パイプ中の当該ステージにおける命
令が有効かどうかを示す。
ピッ)4(VD)−関連するレジスタ中のデータが有効
かどうかを示す。
ピット5 (M/S )−MIMDモードか5ISOモ
ードかを示す。
ピット6(RX)−命令がRXタイプかRRタイプかを
示す。
ピット7(2BY)−これが1になっていると、2サイ
クルのバイパスが行われていることを示す。
第6a図の乗算パイプの場合は、更に次のような4ビツ
トの状況・情報を含む。
ピッ) 8 (EXT )−拡張精度結果かどうかを示
す。
ピット9(LI)−オペランドが長いかどうかを示す。
ピッ) 10 (FLP−)−1であれば浮動小数点乗
算であることを示し、0であれば固定小数点乗算である
ことを示す。
ピット11 (INTL)−Yのオペランドがインター
ロックされるかどうかを示す。
にお、乗算パイプにおいては、状況フィールドのピッ)
S(VR)は、パイプの当該ステージが有効な命令を持
っていなくてもデータ(結果)が有効であるかどうかを
示す。他のパイプ3及び4は短いので、状況情報は不要
である。
パイプの各ステージに関する状況情報は、次のステージ
にその有効性を知らせるものであり、もし問題がなけれ
ば、次のステージは次のサイクルで有効になる。このよ
うに、状況情報は、問題の有無を判断したり、命令のデ
ータをパイプ中のできるだけ遠(まで流すようにしたり
するのに有用である。当該パイプによるDバスへのデー
タ出力及び実行後に、当該パイプは、そのパイプ番号が
動的活動記録テーブル27の最も古い工/トリ中のパイ
プ番号(PIPE  NO)と一致するのを待つ。一致
した時、当該パイプは完了を許され、か(して命令完了
の同期が維持される。
第5a図に示した加算パイプ(パイプ1)は、整列レジ
スタ34.FAレジスタ31、FBSレジスタ52Aレ
ジスタ35、Sレジスタ36、加算器37、FSレジス
タ33、Sレジスタ38、及び事後正規化レジスタ39
を含んでいる。第5b図に示した状況フィールドは、F
Aレジスタ31、FBSレジスタ32びFSレジスタ3
3に関連している。
第5a図の加算パイプは3サイクルでその機能を遂行す
る。第1サイクルでは、データがFPRアレイ28又は
Dバスから検索され、整列レジスタ34で整列操作が行
われ、そしてオペランドがAレジスタ35及びB、レジ
スタ6乙にラッチされる。第2サイクルでは、加算器3
7で実際の加算が行われ、その結果がSレジスタ38に
書込まれる。最後の第3サイクルでは、事後正規化レジ
スタ39が必要に応じて先行ゼロをシフトアウトし、デ
ータをFPRアレイ28に戻す。
上述の機能は、第5a図のパイプが加算命令を処理する
ときのものであるが、加算タイプに属する他の命令の場
合は、内部バイパス制御のために他のレジスタも使用さ
れる。複数の異なった命令を処理し得る第5a図のパイ
プを維持し制御するためには、3つの主制御レジスタが
必憤である。
それらは、FAレジスタ31.FBレジスタ32及びF
Sレジスタ33である。
前述のように、レジスタ61.32及び33の状況フィ
ールドは以下のビラトラ含んでいる。
1、 インターロックされ得るオペランドを見つげるの
に用いられるFPRアドレス−ピット(ADDR)。
Z パイプ中の当該ステージが命令に対して有効である
ことを示すのに用いられる有効命令ピット(V工)。
五 関連するデータ・レジスタが有効であることを示す
有効データ・ピット(VD )。
4、命令の終りを知らせるMIMD/5ISDパイプ標
識(M/S)。MIMDモードの場合は、最終ステージ
が有効で、完了について競合がなげれば、命令の終りで
ある。5ISDモードの場合は、命令がパイプ中を何回
かループすることがあるので、もう少し複雑になる。
5、命令がRXタイプであることを示すピット(RX)
。これは、FBレジスタ32に関しては、そのアドレス
・ピットが無効で、入力データ(まだ有効でなげれば)
のためにデータ・バスを監視する必要があることを示す
6.2サイクル・バイパスの第1サイクルを示すピット
(2BY)。インターロックされたデータが見つかった
場合、それを取出すのに2サイクルを要することがある
第6a図の乗算パイプ(パイプ2)は、FXAレジスタ
41、FYSレジスタ42、FXBレジスタ43、FY
レジスタ44、FPレジスタ45、XAレジスタ46.
3Xノ・−ドウエア47、XB/3Xレジスタ48、Y
レジスタ49、M1ノ・−ドウエア50、M2ハードウ
ェア51、及びPレジスタ52を含んでいる。この乗算
パイプは、もしハザードに遭遇しなければ、5サイクル
でその機能を遂行する。
サイクル1−オペランド1がFPRアレイ28からXA
レジスタ46にロードされる。バス幅の制限から一時に
1つのオペランドしかロードできないので、もしオペラ
ンド2もFPRアレイ28からロードするのであれば、
オペランド2はFPRアレイ28から読出されて一時レ
ジスタに記憶される。
サイクル2−オペランド2が一時レジスタ又はDバスか
らYレジスタ49にロードされ、同時にオペランド1の
3倍乗算が3Xハードウエア47で行われ、結果がXB
/3Xレジスタ48の3X部に書込まれる。更に、XA
レジスタ46の内容が直接XB/!IXレジスタ48の
XB部にロードされる。
サイクル3及びサイクル4−これらは乗算器の実際の実
行サイクルで、M1サイクル及びM2サイクルと呼ばれ
、M1ハードウェア50及びM2ハードウェア51を使
用する。M1サイクルとM2サイクルの間にレジスタが
介在することはなく、従ってXB/3Xレジスタ48及
びYレジスタ49ば、データがPレジスタ52にラッチ
されるまで、これら2サイクルの間保持されねばならな
い。
サイクル5−Pレジスタ52からFPRアレイ28への
書込みが行われる。本実施例では、チップ間に1本の8
バイト・データ・パスしか設けていないので、拡張精度
結果の場合には、第2の書込みサイクルであるサイクル
6が後に続く。
乗算パイプを制御する制御レジスタは、XAレジスタ4
6の状況を維持するFXAレジスタ41、RRタイプの
命令の場合にオペランド2を最初に受取る一時レジスタ
の状況を維持するFYSレジ、x、 夕42 、X B
 / 3 Xレジスタ48の状況を維持するFXBレジ
スタ43、Yレジスタ49の状況を維持するFYレジス
タ44、及びPレジスタ52の状況を維持するFPレジ
スタ451ある。これらの制御レジスタないし状況レジ
スタは、第6b図に示す12ピツトの情報を維持する。
これらのピットは次の通りである。
1、 インターロックされ得るオペランドを見つけるの
に用いられるFPRアドレス・ピット(ADDR)。
2 パイプ中の当該ステージが命令に対して有効である
ことを示すのに用いられる有効命令ピッ ト (VI 
 ) 。
五 関連するデータ・レジスタが有効であることを示す
有効データ・ピッ) (VD )。
4、別のチップ上でローカル作業用記憶域を作り出すの
に用いられる有効結果ピッ)(VR)。
RR命令の場合、オペランド2は、別の命令がその内容
を変更するまでは、乗算後もYレジスタ49で有効にな
っている。有効結果ビットは、Yレジスタ49にあるデ
ータが定義されたアドレスに関して有効であることを示
す。また、RR命令及びRX命令の場合、乗算の結果を
含むPレジスタ52は、別の乗算がこのパイプで行われ
るか、又は別の命令がオペランド1のFPRアドレスを
変更するまでは、オペランド1によってアドレス指定さ
れるFPRと同じである。
これは性能を上げる上で極めて重要である。ロードを少
しでも減らすことができれば、性能の向上につながる。
5、命令がRXタイプで、そのアドレスψピットが無効
であることを示すビット(RX )。入力データがまだ
有効でなげれば、そのためにデータ・バスを監視する必
要がある。
6.2サイクルeバイパスの第1サイクルを示すビット
(2BY)。インターロックされたデータが見つかった
場合、それを取出すのに2サイクルを要することがある
乙 拡張精度結果をFPRアレイ28に畜房さなければ
ならないことを示すピッ) (EXT )。
a 長いオペランドがレジスタにあることを示すビット
(LI )。
9 パイプ中の当該ステージにある命令が浮動小数点命
令であることを示すピッ)(FLP)。
10、Yレジスタ49のオペランドに対するインターロ
ックを示すビット(INTL)。
FXAレジスタ41及びFYSレジスタ42は、サイク
ル1で初期設定回路25によりセットされる。XB/3
Xレジスタ48に関して競合がなげれば、FXBレジス
タ43はFXAレジスタ41からセットされる。Yレジ
スタ49に関して競合がなければ、FYレジスタ44は
初期設定回路25又はFYSレジスタ42によりセット
される。
競合は次のような形をとり得る。
M1有効、又は M2有効且つPレジスタ競合、又は XAが前の乗算に対し既に有効で且つXB競合FPレジ
スタ45は、M2が有効で且つPレジスタ52について
の競合がないときに、FXBレジスタ43によりセット
される。FPレジスタ45の有効結果ビット(VR)は
、FPRアレイ28への他の書込みに依存しているので
、別に維持される。か(して、内部ハザードに遭遇する
まで、又は乗算パイプ中の命令の完了を妨げる外部ハザ
ードに遭遇することな(Pレジスタ52が有効になるま
で、パイプ中をできるだけ遠(までデータを流す内部パ
イプ制御により乗算パイプが維持される。
RXタイプのロード命令に用いられるパイプ3の構成を
第7図に示す。パイプ3は2サイクルしか要せず、その
間データは単にパイプ中を流れるだけであって、その他
の処理は行われない。命令はデコーダ22で解読され、
FPUはDバス・スタック制御回路30からのDバス有
効信号を待つ。
サイクル1では、データがDバス・スタック29のデー
タ・レジスタ(DREG)91に受取られる。このデー
タは、サイクル2の間にFPRアレイ28へ送られる。
これを監視する制御部は、DREG有効レジスタ71を
含むDバス・スタック制御回路60である。
上述以外の機能(雑機能)を遂行するパイプ4の構成を
第8図に示す。このパイプは、Dバス・スタック29の
一部を成すDREG9iの出力に接続された間接アドレ
ス・レジスタ61、同じ(DREG91の出力に接続さ
れた状況ワード・レジスタ62、Cバス・レジスタに接
続された再試行状況レジスタ66、及びCバス・レジス
タに接続された間接アドレスΦモード・レジスタ64を
含む。状況ワード・レジスタ62及び再試行状況レジス
タ66の出力はDREG91及びFPRアレイ28に接
続される。データは、Dバスから間接アドレス・レジス
タ61及び状況ワード・レジスタ62にロードされる。
間接アドレス・レジスタ61はマイクロコード・モード
で使用され、FPRアドレスを含む。状況ワード・レジ
スタ62ばFPUの状況、例えば例外や検査機構の状況
を維持する。
第8図のパイプ4で遂行される雑機能の命令は5つの基
本グループに分けられる。
1、読取り(簡単なビット操作を伴なうことがある)に
続いてFPRアレイ28への書込みを基本的に1サイク
ルで行うロードRRグループ。
Z  FPRアレイ28以外の間接アドレス・レジスタ
61や状況ワード・レジスタ62へのロードを行うロー
ドRXグループ。
五 この第3グループの命令は2サイクルで実行される
。サイクル1では、DREG91’iロードする一方、
DREG有効レジスタ71が有効になるのを待ち、サイ
クル2では、DREG91からDREG有効レジスタ7
1へのロードを行う。Cバスからの情報でレジスタをセ
ットする命令もこのグループに含まれる。例えば、再試
行情報を維持する再試行状況レジスタ66、及びアドレ
ス指定のためのモード・ピラトラ維持する間接アドレス
・モード・レジスタ64は、このような命令によりセッ
トされる。
4、サイクル1でFPRアレイ28の読取りを行ってD
REG91に書込み、サイクル2でデータをDパスへ出
力してDバス有効を知らせる記憶RXグループ。
5、最後の第5グループは、FPRアレイ28以外のレ
ジスタの内容を2サイクルでDパスに置(記憶タイプの
命令を含む。第5グループの命令で読取られる2つのレ
ジスタは、状況ワード・レジスタ62及び再試行状況レ
ジスタ63である。
Dバス・スタック制御回路30のレジスタを除(と、パ
イプ4の動作に関連する制御レジスタはない。
Dパス・スタック29及びDパス・スタック制御回路3
0の構成を第9a図及び第9b図に示す。
Dバス・スタック制御回路30は、DREG有効レジス
タ71、DCバス・レジスタ71.7”:r−ダ73、
DS5レジスタ74、DS4レジスタ75、DS3レジ
スタ76、”DS2レジスタ77、DSS2レジスタ9
3S2有効レジスタ79、S1有効レジスタ80、及び
MUX選択回路81を含ム。Dパス会スタック29は、
Dバスに接続されたS2レジスタ96、S2レジスタ9
3の出力及びDパスに接続されたSルジスタ92、並び
に8ルジスタ92の出力及びDバスに接続されたDRE
Gレジスタ91ft含む。
DSlからDS5までのレジスタ78〜74は次のよう
なビット’を含んでいる(第9b図参照)。
ビット0〜2(IADDR)−命令アドレ°ス。
3ビツトの命令アドレスがゼロでなければ、境界間ロー
ドが生じることを示す。境界間ロードは2つのDバス有
効信号(データの各部につき1つ)を必要とする。
ビット6及び4(PIPE  No)−データを送るべ
きパイプを一意的に識別するパイプ番号。
ビット5(VI)−有効命令ビット。
ピッ)+5(DR)−当該命令のためのデータがDバス
・スタック29のDREG91にあることを示す。
ビット7(Sl)−当該命令のためのデータがDパス・
スタック29の8ルジスタ92にあることを示す。
ピッ)8(S2)−当該命令のためのデータがDパス・
スタック29の82レジスタ93にあることを示す。
ビット9(EXE)−命令が実行中で、適切なパイプが
初期設定されたことを示す。
データを受取った時、そのデータを前述のようにしてパ
イプ中を流す適切な命令はどれかを見出さなければなら
ない。これは混沌状態を引き起こす。次に、この混沌状
態について詳述する。
通常のRRタイプのオペレーションにおい−IJI−、
インターロックが存在しない限り、データはFPRアレ
イ28から来る。その場合、ローカル・パイプ制御部は
、すべてのパイプの状況レジスタのアドレス・フィール
ドを比較することにより適切なデータを見つける。RX
タイプのオペレーションの場合はもう少し難しい。オペ
ランド1は同じようにして見つけられるが、オペランド
2はデータ・バスから来る。データ・キャッシュを含む
他のバス・ユニットは、FPUが命令を受取るのと同時
にデータを供給するよう要求され、その時そのバス・ユ
ニットが使用中であれば、FPUによる命令及び関連デ
ータの受取りが同期的に行われず、その結果として、デ
ータのアンダーフロー又はオーバーフローが生じ得る。
Dバス・スタック制御回路30は、DREG91が適切
なパイプに対して有効になると、その旨をローカル・パ
イプライン機構26に知らせる。これは、データを分離
する際に、特に幾つかのパイプでデータが不足している
状態でデータφパスが有効になった時、極めて重要であ
る。従って、Dパス・スタック制御回路30はデータと
命令を順序づげる。これが終ると、パイプライン機構2
6はパイプを通してデータを移動させ、動的活動記録テ
ーブル27が命令の完了を認めるのを待つ(あとで述べ
るように、命令の完了は、動的活動記録テーブル27に
おいて最も古い命令、すなわち一番下のエン) IJの
パイプ番号と当該パイプのパイプ番号とを比較すること
により検出できる)。このようにして、データの流れが
始めから終りまで制御される。更に、メモリはデータが
何時要求されたかには無関係に、可能になった時点でデ
ータを供給するため、データのオーバーフロー又はアン
ダーフローが生じる可能性があり、この点でもDバス・
スタック制御回路30が必要である。アンダーフローは
、幾つかのパイプが初期設定されているにもかかわらず
メモリからのデータ供給が遅い時に生じる(メモリから
のオペランドを必要としないRXタイプの場合を除く)
。複数のパイプがデータを待っている状態でデータが到
着した時には、その゛データをどのパイプに送るかを正
しく選択する必要がある。オーバーフローは、1以上の
パイプが一杯であって、メモリからのデータを使用する
複数の命令がCPUからFPU及びメモリへ同時に送ら
れた時に生じる。メモリは読出したデータを直ちに適切
なパイプへ入れることはできないので、データをFPU
へ送る。従って、デ〒りをスタックすること、及び最終
的にデータを送るべきパイプのパイプ番号でデータを識
別することが必要である。
ハンドシェーク/大域ハザード回路23の構成を第10
図に示す。この回路23は、パイプ1新命令競合回路1
01、パイプ2新命令競合回路102、バイブロ新命令
競合回路103、パイプ4新命令競合回路104、大域
競合回路105、ノ・ンドシェーク組合せ論理回路10
6、及び割込みハンドシェーク組合せ論理回路107を
含む。回路101〜104はすべてパイプライン機構2
6及びデコーダ22(第1図参照)に接続される。
大域競合回路105は動的活動記録テーブル27に接続
され、他のユニットからのハンドシェーク信号に応答し
て、FPU使月中信号’!kcPUへ送ったり、ユニッ
ト使用中信号を初期設定回路25へ送ったりする。ハン
ドシェーク組合せ論理回路106は大域競合回路105
に接続され、他のユニットからのハンドシェーク信号に
応答して、FPU  ACK信号をCPUへ送ったり、
有効命令信号を初期設定回路25へ送ったりする。割込
みハンドシェーク組合せ論理回路107はノ・ンドシェ
ーク組合せ論理回路106及び例外処理回路19に接続
され、FPU割込み信号’1cPUへ送る。
第10図の回路23へ入力を供給するのは、他のユニッ
ト(PBU)、パイプライン機構26、動的活動配線テ
ーブル27、及びデコーダ22である。デコーダ22か
らの入力は、新しい命令がCバス上にあるかどうか、及
びどのパイプで新しい命令を実行しなけれずならないか
を回路26に知らせる。パイプライン機構26かもの入
力は、各パイプについてその第1ステージで何らかのハ
ザードが生じているかどうかを示す。他のユニットから
の入力()・ンドシェーク信号)は、FPUの外部にハ
ザードが存在するかどうかをみるために回路23により
監視される。動的活動記録テーブル27からの入力は、
何らかの内部大域ハザ−ドが生じているかどうかを示す
。ハザードがな(、新しい命令を実行すべきパイプで競
合がなげれば、FPU  ACK信号がハンドシェーク
組合せ論理回路106からCPU及び他のユニットへ送
られる(命令が2以上のバス・ユニットに対するもので
あって、ACKが抑止される場合を除()。新しい命令
があっても、ハザード又は競合が存在していると、ユニ
ット使用中信号が初期設定回路25へ送られ、FPU使
用中信号がCPU及び他のPBUへ送られる。更に、新
しい命令は命令スタック21のCバス・レジスタ21b
に保持される。
この命令は、ACKi出せるサイクルが生じるまで、後
続のサイクルの間断しい命令とみなされる。
初期設定回路25へ送られる有効命令信号は、Cバス・
レジスタ21bにある命令が適正CPUハンドシェーク
を交していてFPUで実行すべきであること全示す早期
信号である。これはハザード及び競合には依存しない。
回路23から送られる最後の信号は、例外条件を示すF
PU割込み信号であり、CPUへ送られる。例外条件は
前の命令に対する他のPBUの応答に依存するので、F
PU割込み信号は例外条件を調べる例外処理回路19か
らゲートされねばならない。パイプライン式の計算機に
おいては、複数の命令が出されて同時に実行されるため
、同じサイクルで複数の例外が生じる可能性がある。命
令セットは5ISDであるから、命令が順次に実行され
ているかの如(に例外を処理しなければならない。これ
は、)・ンドシェーク制御から決定される条件でFPU
割込み信号をゲートすることにより為される。このよう
にして、ハンドシェーク/大域ハザード回路23による
ハンドシェーキング及び大域ハザード検出が達成される
初期設定回路25の構成を第11図に示す。初期設定回
路25は、ハンドシェーク/大域ハザード回路25、デ
コーダ22、及びMIMD/5ISD切替え回路24か
らの出力に応答する。ハンドシェーク/大域ハザード回
路23からの出力は有効命令信号及びACK信号を含む
。デコーダ22からの出力は次のような情報を含む:命
令のデーータの長さに関係する長さ情報(短いデータは
ゼロ充填が必要である);FPRアレイ28への書込み
を行う時にアドレス情報を供給する書込みタイプ情報;
FPRアレイ28からデータを取出す時のアドレス情報
に関係するFPRアドレス情報;初期設定回路25へ入
力される命令がRXタイプかどうかを示すRX命令情報
(RXタイプの命令では、命令のデータの2番目の部分
は、FPRアレイ28ではな(て主記憶装置から供給さ
れる);。
パイプ1〜4の制御に必要なその他の情報;及びパイプ
1〜4のうちの1つ’ff:@別するパイプ番号。
デコーダ22がパイプ番号を供給する理由は、各パイプ
が特定の命令に関連して機能するように特殊化されてお
り、どのタイプの命令が初期設定回路25へ入力される
か、従ってどのパイプに入力命令を入れるべきかをデコ
ーダ22が知っているからである。これは、命令解読と
いうデコーダ22の機能から考えて当然である。MIM
D/5ISD切替工回路24の切替上回路24D/5I
SD切替え回路24の切替え位置に関係する情報を与え
る。
初期設定回路25は、それぞれ同じ選択信号及び同じ情
報信号を受取る5個のマルチプレクサ(MUX、)11
1〜115を含む。各マルチプレクサは、選択信号によ
って選択されると、情報信号を通過させる。選択信号は
、(1)ハンドシェーク/大域ハザード回路23からの
有効命令/ACK信号出力、及び(2)デコーダ22か
らのパイプ番号出力により構成される。情報信号は、(
1)長さ、(2)書込みタイプ、(3) F P Rア
ドレス、(4)RX、 (5) M I MD/S I
 S D、及び(6)その他の情報を含む。マルチプレ
クサ111〜115のうちの1つがパイプ番号信号及び
有効命令/ACK信号を含む選択信号により選択される
と、長さ情報、書込みタイプ情報、FPRアドレス情報
、RX命令情報、MIMD/5ISD切替え情報、及び
その他の情報を含む情報信号がパイプライン回路26a
〜26dのうちの1つ又は動的活動記録テーブル27へ
送られる。
次に、第1図〜第8図を参照しながら、本発明に従う動
的MIMDパイプラインの動作について述べる。
第1図において、それぞれ複数の命令を含む複数の命令
ストリームが、パイプライン機構26での実行を待って
いるものとする。これらの命令ストリームの中から第1
図の動的MIMDパイプライン(FPU)20へ入力さ
れる複数の命令が選択回路(図示せず)により選択され
、1つずつCバスを介して動的MIMDパイプライン2
0へ入力される。命令は命令スタック21に受取られ、
デコーダ22で解読される。デコーダ22は、受取った
命令がFPUで実行できるものであるかどうかを調べる
。命令の受取りはノ・ンドシェーク/大域ハザード回路
23により確認され(ACK信号がCPUへ送られる)
、命令はできるだけ早い機会に実行される。CPUは、
FPUの連続処理が可能であることを前提にして、命令
を連続的に第1図のFPUへ送る。
データ及び1以上の命令がFPUへ入力できる状態にあ
るものとすると、FPUは、デコーダ22で命令を1つ
ずつ解読し、パイプラインが5ISDモードで動作する
のかMIMDモードで動作するのかをMIMD/5IS
D切替え回路24で判断し、何らかのハザードが存在し
ているかどうかをハンドシェーク/大域ノ1ザード回路
26で調べ、どのパイプが命令を実行するのかをデコー
ダ22及び初期設定回路25で決定し、適切なパイプが
何時完了してその中に入力命令を入れられるかを動的活
動記録テーブル27で判断し、これらのことがすべて終
ると、FPUは命令を最大速度で一時に1つずつパイプ
ライン機構26へ入れることによって命令を実行しよう
とする。初期設定回路25及びハンドシェーク/大域ハ
ザード回路23は、命令ストリームが始まろうとしてい
るのか終ろうとしているのかを判断し、命令ストリーム
及び単一命令の正常終了又は異常終了1cPUに知らせ
る。ハザード存在の可能性があるため、初期設定回路2
5及びハンドシェーク/大域ノ・ザード回路23は、パ
イプ1〜4のうちの1つがいつ利用されるのか、及び命
令がいつ必要になるのかを判断する。前述のように、各
パイプは特定カテゴリの命令を処理するように特殊化さ
れており、従って新しい入力命令がデコーダで解読され
て、命令のタイプが決定されると、使用する特定のパイ
プを識別できる。初期設定回路25はデコーダ22から
パイプ番号を受取り、マルチプレクサ111〜115を
介して対応するパイプへ新しい命令を送る。命令がパイ
プ1〜4のうちの1つに入ると、そのパイプの識別情報
を記録すべ(動的活動記録テーブル27が更新される。
パイプ1〜4はフィードバック形式で動的活動記録テー
ブル27に接続されているので、パイプ中での特定の命
令の実行状況は継続的に動的活動記録テーブル27に記
録される。従って、デコーダ22及び初期設定回路25
で、別の新しい命令が特定のパイプに対応していると識
別され、そのパイプに入る準備ができると、そのパイプ
に内部ハザード(例えば、データ・インターロック又は
パイプ満杯)が存在しているかどうかを調べるため、該
パイプの最初のステージに関連するパイプ制御部に記憶
されている情報が読取られる。内部ハザードが存在して
いると、新しい命令はこのパイプに入れない。
その時、この特定のパイプのパイプ番号が動的活動記録
テーブル27の一番下のエントリのパイプ番号欄(pz
pg  No)にあるかどうかが調べられる。例えば、
特定のパイプが番号Xにより識別され、3つのパイプラ
イン・ステージヲ有していて、動的活動記録テーブル2
7がパイプ番号欄にパイプ番号Xを含む3つのエントリ
を有していると、パイプXは命令で一杯であり、従って
新しい命令を入れるためには、パイプX中の最も古い命
令を完了させなければならない。テーブル27における
最も古い(一番下の)エントリのパイプ番号欄がXにな
っていると、パイプX中の最も古い命令を完了させるこ
とができ、これにより、新しい命令をパイプXに入れら
れるようになる。要約すると、テーブル27の働きは、
パイプ1〜40制御部と一緒になって、すべてのパイプ
が適正に利用され且つ命令が始めから終りまで適正に実
行されるように、継続的な補助を与えることにある。各
パイプは特定カテゴリの命令を実行し、その外部的な制
御は動的活動記録テーブル27及び初期設定回路25が
受持ち、内部的な制御は内部パイプ制御部が受持つ。各
パイプは、複数の命令ストリームに属する複数の命令を
実行することもできる。
次に、第1図及び第4図を参照しながら、動的活動記録
テーブル27の動作について説明する。
ACK信号がハンドシェーク/大域ハザード回路23か
ら送られるか、又は使用中信号が回路23によって落と
されると、入力命令に関する情報が動的活動記録テーブ
ル27の1つのエントリに入れられる。第4図の例では
、テーブル27は8個のエントリ(1〜8)を持ってい
る。このテーブル27は、入力命令をどのように完了さ
そるかを決定するのに必要な幾つかのパラメータを含む
キー・パラメータは、当該命令を実行するパイプを示す
パイプ番号である。アーキテクチャ上の制約から順次的
な実行に見せかける必要があるため、動的活動記録テー
ブル27はサイクル毎に読出され、入力命令の実行を次
て完了するのはどのパイプかを示す。′各すイクルでテ
ーブル27から読出された情報は、選択されたパイプが
完了金待っているかどうかを見るために、そのパイプの
内部状況(状況レジスタにある)と比較される。もし完
了を待っていれば、命令は完了され、動的活動記録テー
ブル27中の対応するエントリが消去される。云い換え
れば、番号Xのパイプが命令を実行中で、パイプ番号X
が動的活動記録テーブル27の最も古い(一番下の)エ
ントリのパイプ番号欄に記録されている場合、パイプX
Kおける最も古い命令の完了は、テーブル27中の当該
命令に関連するパラメータとパイプXの状況レジスタの
内容とを比較することを含む。パイプXの状況レジスタ
が最も古い命令の実行完了を示していると、その実行結
果はパイプXから適切な宛先の方へ送り出される。パイ
プXの内容Fi1ステージだけシフトされ、新しい命令
を実行のために挿入できるようにする。
次に第9図を参照しながら、Dパス・スタック29及び
Dバス・スタック制御回路の動作について説明する。
第9a図において、Dバス・スタック制御回路30のレ
ジスタ74〜78は命令用のスタックとして働キ、Dバ
ス・スタック29のレジスタ91〜93はデータ用のス
タックとして働(。Cパス上の命令はDCバス・レジス
タ72及びデコーダ73の働きによってスタックされる
。DCバス・レジスタ72は、使用中信号とは無関係に
、サイクル毎にCバスをラッチする。デコーダ73は、
前の使用中状況の認識に基いて、いつ新しいDパス・ロ
ード命令がFPUに入るかを示す。か(して、データが
到着して命令の実行が始まるまで、Dバス・ロード・タ
イプの各命令に関する情報が維持される。他の重要な状
況レジスタは、DREG有効レジスタ71、S1有効レ
ジスタ80及びS2有効レジスタ79である。これらは
何れも2ビツトのレジスタであって、データが部分的に
有効か(P)、完全に有効か(F)t−示す。レジスタ
74〜78にある命令が実行されておらず且つレジスタ
91〜96にデータが入っていると、データのオーバー
フローが生じる。一方、幾つかの命令がレジスタ74〜
78に入っているが、レジスタ91〜93に十分なデー
タがなげれば、データのアンダーフローが生じる。入力
データはDバス・スタック29のレジスタ91〜93に
スタックされ、入力命令はDバス・スタック制御回路3
0のレジスタ74〜78にスタックされるが、Dバス・
データを必輩とするスタックされた命令とスタックされ
たデータとの間には1対1の対応関係がある。Dバスか
らの一組のデータをパイプライン機構26へ送る場合に
は、パイプ1〜4のうちのどのパイプがこの一組のデー
タを受取るのかを決定する必要がある。Dバス・スタッ
ク29のレジスタ91〜93にスタックされたデータと
、Dパス・スタック制御回路50のレジスタ78〜76
にスタックされた命令との間には1対1の対応関係があ
るので、到着した一組のデータは、Dパスφスタック制
御レジスタ74〜78のうちの一番下のレジスタ78の
ビット3及び4(PIPE  No)によって表わされ
るパイプ番号を持ったパイプ(パイプ1〜4のうちの1
つ)に送られる。
最後に、藺単な命令ストリームの例を示す第12図を参
照しながら、この命令ストリームが第1図のハードウェ
ア中をどのように流れるかを説明する。
第12図の命令ストリームは次の6つの命令から成って
いる。
(1) 、F P R1へのロードを行うRXタイプの
ロード命令。
(2)FPRl及びFPR2の良精度乗算を行って、良
精度結果をFPRlに書込むRRタイプの長精度乗算命
令。
(3)FPR3及びFPR4の長精度加算を行って、良
精度結果1FPR3に書込むRRタイプの長精度加算命
令。
この命令ストリームから次のようなことがわかる。
(イ)各命令はそれぞれ異なったパイプで実行する必要
がある。
(ロ)ロード命令は、乗算命令で使用されるレジスタ(
FPRl)への書込みを行う。この競合の結果、もし書
込み(ロード)が生じる前に乗算命令が受取られると、
インターロックが生じ得る。
(ハ)加算命令は、前のロード命令及び乗算命令で使用
されるFPRを使用しない。
第1図のハードウェアがこの命令ストリームを各サイク
ルでどのように処理するかを以下に述べる。
サイクル0−CPUがFPUに向げて、RXタイプのロ
ード命令1cバスへ送り出し、Cバス・レジスタ21b
(第5図)及びDCバス・レジスタ72(第9図)がこ
れをラッテする。
サイクル1−ロード命令がデコーダ22及びデコーダ7
3(第9図)で解読される。ハンドシェーク/大域ハザ
ード回路26が、パイプ3の内部パイプ制御部及び動的
活動記録テーブル27t−検査することによって、ロー
ド命令の開始に問題がな、いとと、及び大域ハザードが
存在しないことを決定する。この結果、ACK信号(F
PU  ACK)がハンドシェーク/大域ハザード回路
23からパイプ3を初期設定する初期設定回路25へ送
られる(複数パス・ユニットPBOの場合はデータ・キ
ャッシュが両ユニットに対して応答するので、FPU 
 ACKは他のユニットには送られない)。初期設定回
路25は、ロード命令を動的活動記録テーブル(DHT
)27に置(ための情報も与える。ロード命令がRXタ
イプであることがデコーダ73(第9図)で検出されて
いるので、Cバス・スタック制御回路30ではロード命
令の情報がDSルジスタ78に置かれる。また、データ
有効信号がCバスからDREG91に受取られているた
め、DREG有効レジスタ71が活動状態になる。この
サイクルの間、CPUはFPUに向げて、RRタイプの
乗算命令6cバスへ送り出し、Cバスφレジスタ21b
及びDCバス・レジスタ72がこれをラッチする。
サイクル2−RRタイプの乗算命令がデコーダ22及び
73で解読される。ハンドシェーク/大域ハザード回路
23が、パイプ2の内部パイプ制御部及び動的活動記録
テーブル27を検査することによって、乗算の開始に問
題がないこと、及び大域ハザードが存在しないことを決
定する。この結果、ACK信号(FPU  ACK)が
CPU及び他のPBUへ送られ、初期設定回路25がパ
イプ2t−初期設定すると共に、FPR2f、FPRア
レイ28からFL’Pバスへ読出し、Yレジスタ49に
ラッチさせる(第6a図)。
初期設定回路25は、乗算命令を動的活動記録テーブル
27に置くための情報も与える。更に初期設定回路25
は、FPR1がロード命令によりインターロックされ、
従って乗算のオペランド1がインターロックされること
を、動的活動記録テーブル27を解読したハンドシェー
ク/大域ハザード回路23から知らせ、デコーダ22か
らの情報に基いてFXAレジスタ41及びFYレジスタ
44を初期設定する。Cバス・スタック制御回路30の
デコーダ73(第9図)では、乗算命令がDパスを使用
しないこと、及びDREG91によってインターロック
されることを検出しているので、DREG91がXAレ
ジスタ46(第6a図りにロードされる。DREG91
ばこのサイクルで有効であり、ロード命令を完了させる
ためFPRアレイ28がロード(書込み)される(ロー
ド命令の完了は、次に完了するのがパイプ3であること
がDREG有効レジスタ71及び動的活動記録テーブル
27により示されると可能である)。CPUはFPUに
向けて、RRタイプの加算命令をCバスへ送り出し、C
バス・レジスタ21b及びDCバス・レジスタ72がこ
れをラッチする。
サイクル3−RRタイプの加算命令がデコーダ22及び
73で解読される。ハンドシェーク/大域ハザード回路
23が、パイプ1の内部パイプ制御部及び動的活動記録
テーブル(DHT)27を検査することによって、加算
の開始に問題がないこと、及び大域ハザードが存在しな
いことを決定する。この結果、ACK信号(FPU  
A CK ) 75Zハンドシ工−ク/大域ハザード回
路23からCPU及び他のPBUへ送られ、初期設定回
路25がパイプ1を初期設定すると共に、FPR3及び
FPR4全FPRアレイ28からAレジスタ65及びS
レジスタ36へ読出す(第5a図)。初期設定回路25
は、加算命令を動的活動記録テーブル27に置くための
情報も与え、更にインターロックが存在しないことを、
動的活動記録テーブル27を解読したハンドシェーク/
大域ハザード回路23かも知らせる。また初期設定回路
25はデコーダからの情報により、FAレジスタ31及
びFBSレジスタ32初期設定する。第6a図において
、MUX選択回路53で決定された競合のため、乗算ハ
ードウェアはオペランドをYレジスタ49に保持し、3
Xハードウエア47で3倍乗算を実行し、XB/3Xレ
ジスタ48にラッチする。乗算命令のための制御情報は
FYレジスタ44に保持され、FXAレジスタ41から
FXBレジスタ43へ転送される。第5a図において、
整列レジスタ34による整列(アラインメント)もこの
サイクルで行われる。
サイクル4−第6a図において、両方のオペランドがX
 B/3 Xレジスタ、48及びYレジスタ49で使用
可能であり、か(てM1サイクルが開始し、乗算を行う
ためにMl)・−ドウエア50が使用される。第5a図
において、加算のサイクル2に入り、加算器37が動作
して、その出力がSレジスタ38にラッチされる。FA
レジスタ′51のデータがFSレジスタ66へ転送され
る。
サイクル5−第6m図において、乗算のM2サイクルが
開始してM2ハードウェア51が使用され、その結果が
Pレジスタ52にラッチされる。FXBレジスタ43が
FPレジスタ45をセットする。動的活動記録テーブル
(DHT )27は、乗算命令のためのパイプ2が次に
完了しなければならないことを示しているので、第5a
図のパイプ1は、Sレジスタ38のステージで待機して
いなければならない。
サイクル6−第6a図において、Pレジスタ52が有効
であることがFPレジスタ45により示され、且つこの
パイプが次に完了することを動的活動記録テーブル(D
HT)27が示しているので、乗算命令が完了する。乗
算を完了させるため、動的活動記録テーブル27は書込
ミアドレス及び長さ情報’1iFPRアレイ28へ供給
する。加算はまだSレジスタ38のステージで待機して
いる。
サイクル7−Sレジスタが有効であることがFSレジス
タにより示され、且つ加算パイプが次に完了することを
動的活動記録テーブル(DHT)27が示しているので
、加算が完了する。
これで、第12図の命令ストリームの実行が完了したこ
とになる。
【図面の簡単な説明】
第1図は本発明に従う動的MIMDパイプラインの構成
を示すブロック図。 第2図は従来の標準的なMIMDパイプラインの概略を
示すブロック図。 第3図は命令スタック21の構成を示すブロック図。 第4図は動的活動記録テーブル27の内容を示す図。 第5a図及び第5b図はパイプライン回路26aの構成
を示すブロック図。 第6a図及び第6b図はパイプライン回路26bの構成
を示すブロック図。 第7図はパイプライン回路26Cの構成を示すブロック
図。 第8図はパイプライン回路26dの構成を示すブロック
図。 第9a図及び第9b図はDバス・スタック29及びDバ
ス・スタック制御部30の構成を示すブロック図。 第10図はハンドシェーク/大域ハザード回路23の構
成を示すブロック図。 第11図は初期設定回路25の構成を示すブロック図。 第12図は命令ストリームの一例を示す図。 篤10 図 篤11 目

Claims (1)

  1. 【特許請求の範囲】 入力命令を受取る受取り手段と、 それぞれが一意的な識別子により識別され、複数の入力
    命令を保持して実行する複数のパイプライン式処理手段
    と、 前記処理手段及び前記受取り手段に接続され、前記複数
    の入力命令を保持している処理手段の識別子及び該入力
    命令の情報を記録して、前記処理手段での命令実行を制
    御するテーブル手段と、を具備するパイプライン式処理
    装置。
JP63233855A 1987-09-30 1988-09-20 パイプライン式処理装置 Pending JPH01102644A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/102,985 US4916652A (en) 1987-09-30 1987-09-30 Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US102985 1987-09-30

Publications (1)

Publication Number Publication Date
JPH01102644A true JPH01102644A (ja) 1989-04-20

Family

ID=22292751

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63233855A Pending JPH01102644A (ja) 1987-09-30 1988-09-20 パイプライン式処理装置

Country Status (6)

Country Link
US (1) US4916652A (ja)
EP (1) EP0328721B1 (ja)
JP (1) JPH01102644A (ja)
BR (1) BR8804969A (ja)
CA (1) CA1313273C (ja)
DE (1) DE3853529T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6907534B2 (en) * 2001-06-29 2005-06-14 Hewlett-Packard Development Company, L.P. Minimizing power consumption in pipelined circuit by shutting down pipelined circuit in response to predetermined period of time having expired

Families Citing this family (163)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241635A (en) * 1988-11-18 1993-08-31 Massachusetts Institute Of Technology Tagged token data processing system with operand matching in activation frames
US5333287A (en) * 1988-12-21 1994-07-26 International Business Machines Corporation System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters
US5067069A (en) * 1989-02-03 1991-11-19 Digital Equipment Corporation Control of multiple functional units with parallel operation in a microcoded execution unit
WO1990010267A1 (en) * 1989-02-24 1990-09-07 Nexgen Microsystems Distributed pipeline control for a computer
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US5768575A (en) * 1989-02-24 1998-06-16 Advanced Micro Devices, Inc. Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
JPH0719222B2 (ja) * 1989-03-30 1995-03-06 日本電気株式会社 ストアバッフア
JPH0640316B2 (ja) * 1989-04-20 1994-05-25 工業技術院長 演算レジスタ上でのデータ待ち合せ実現方法
CA2016068C (en) * 1989-05-24 2000-04-04 Robert W. Horst Multiple instruction issue computer architecture
US5317734A (en) * 1989-08-29 1994-05-31 North American Philips Corporation Method of synchronizing parallel processors employing channels and compiling method minimizing cross-processor data dependencies
DE69033239T2 (de) * 1989-09-25 2000-01-05 Matsushita Electric Ind Co Ltd Rechner mit Pipeline-Struktur
US5185871A (en) * 1989-12-26 1993-02-09 International Business Machines Corporation Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
JP2818249B2 (ja) * 1990-03-30 1998-10-30 株式会社東芝 電子計算機
JP2771683B2 (ja) * 1990-07-17 1998-07-02 三菱電機株式会社 並列処理方式
US5163139A (en) * 1990-08-29 1992-11-10 Hitachi America, Ltd. Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
US5734921A (en) * 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5765012A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library
US5625836A (en) * 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
US5809292A (en) * 1990-11-13 1998-09-15 International Business Machines Corporation Floating point for simid array machine
US5765011A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US5963745A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation APAP I/O programmable router
US5588152A (en) * 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5963746A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation Fully distributed processing memory element
US5713037A (en) * 1990-11-13 1998-01-27 International Business Machines Corporation Slide bus communication functions for SIMD/MIMD array processor
US5828894A (en) * 1990-11-13 1998-10-27 International Business Machines Corporation Array processor having grouping of SIMD pickets
DE69131272T2 (de) * 1990-11-13 1999-12-09 Ibm Paralleles Assoziativprozessor-System
US5794059A (en) * 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5630162A (en) * 1990-11-13 1997-05-13 International Business Machines Corporation Array processor dotted communication network based on H-DOTs
US5966528A (en) * 1990-11-13 1999-10-12 International Business Machines Corporation SIMD/MIMD array processor with vector processing
US5815723A (en) * 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
US5765015A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Slide network for an array processor
US5261063A (en) * 1990-12-07 1993-11-09 Ibm Corp. Pipeline apparatus having pipeline mode eecuting instructions from plural programs and parallel mode executing instructions from one of the plural programs
JP2842958B2 (ja) * 1991-04-01 1999-01-06 松下電器産業株式会社 パイプライン計算機の同期方法及びそれを実現したパイプライン計算機
JP2925818B2 (ja) * 1991-04-05 1999-07-28 株式会社東芝 並列処理制御装置
JP2642529B2 (ja) * 1991-04-30 1997-08-20 株式会社東芝 並列プロセッサーの命令分配処理装置
US5594918A (en) * 1991-05-13 1997-01-14 International Business Machines Corporation Parallel computer system providing multi-ported intelligent memory
JP2908598B2 (ja) * 1991-06-06 1999-06-21 松下電器産業株式会社 情報処理装置
JPH04367936A (ja) 1991-06-17 1992-12-21 Mitsubishi Electric Corp スーパースカラープロセッサ
US5363495A (en) * 1991-08-26 1994-11-08 International Business Machines Corporation Data processing system with multiple execution units capable of executing instructions out of sequence
US5283874A (en) * 1991-10-21 1994-02-01 Intel Corporation Cross coupling mechanisms for simultaneously completing consecutive pipeline instructions even if they begin to process at the same microprocessor of the issue fee
CA2073516A1 (en) * 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
JP2642039B2 (ja) * 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
KR100248903B1 (ko) 1992-09-29 2000-03-15 야스카와 히데아키 수퍼스칼라마이크로프로세서에서의 적재 및 저장연산처리방법 및 시스템
US6735685B1 (en) * 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
JP3338488B2 (ja) * 1992-11-18 2002-10-28 富士通株式会社 データ処理装置の検証方法及び装置
US5761473A (en) * 1993-01-08 1998-06-02 International Business Machines Corporation Method and system for increased instruction synchronization efficiency in a superscalar processsor system utilizing partial data dependency interlocking
JPH06242948A (ja) * 1993-02-16 1994-09-02 Fujitsu Ltd パイプライン処理計算機
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US5434987A (en) * 1993-09-21 1995-07-18 Intel Corporation Method and apparatus for preventing incorrect fetching of an instruction of a self-modifying code sequence with dependency on a bufered store
US5721854A (en) * 1993-11-02 1998-02-24 International Business Machines Corporation Method and apparatus for dynamic conversion of computer instructions
JP3199205B2 (ja) * 1993-11-19 2001-08-13 株式会社日立製作所 並列演算装置
KR100186916B1 (ko) * 1994-02-14 1999-05-01 모리시다 요이치 신호처리장치
US5751986A (en) * 1994-03-01 1998-05-12 Intel Corporation Computer system with self-consistent ordering mechanism
JP3212213B2 (ja) * 1994-03-16 2001-09-25 株式会社日立製作所 データ処理装置
US5465336A (en) * 1994-06-30 1995-11-07 International Business Machines Corporation Fetch and store buffer that enables out-of-order execution of memory instructions in a data processing system
US5542109A (en) * 1994-08-31 1996-07-30 Exponential Technology, Inc. Address tracking and branch resolution in a processor with multiple execution pipelines and instruction stream discontinuities
US6128720A (en) * 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
EP0829045B1 (en) * 1995-06-01 2002-09-04 Fujitsu Limited Coordinating the issue of instructions in a parallel instruction processing system
US5751983A (en) * 1995-10-03 1998-05-12 Abramson; Jeffrey M. Out-of-order processor with a memory subsystem which handles speculatively dispatched load operations
US6317803B1 (en) * 1996-03-29 2001-11-13 Intel Corporation High-throughput interconnect having pipelined and non-pipelined bus transaction modes
US5848256A (en) * 1996-09-30 1998-12-08 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for address disambiguation using address component identifiers
US5970241A (en) * 1997-11-19 1999-10-19 Texas Instruments Incorporated Maintaining synchronism between a processor pipeline and subsystem pipelines during debugging of a data processing system
WO1999042923A1 (de) * 1998-02-19 1999-08-26 Infineon Technologies Ag Vorrichtung zur hierarchischen und verteilten steuerung von programmierbaren modulen in hochintegrierten systemen
US6311262B1 (en) 1999-01-18 2001-10-30 Infineon Technologies Ag Apparatus for the hierarchical and distributed control of programmable modules in large-scale integrated systems
US7526630B2 (en) 1999-04-09 2009-04-28 Clearspeed Technology, Plc Parallel data processing apparatus
US7627736B2 (en) 1999-04-09 2009-12-01 Clearspeed Technology Plc Thread manager to control an array of processing elements
GB2348973B (en) * 1999-04-09 2004-03-10 Pixelfusion Ltd Parallel data processing systems
US7506136B2 (en) 1999-04-09 2009-03-17 Clearspeed Technology Plc Parallel data processing apparatus
US7802079B2 (en) 1999-04-09 2010-09-21 Clearspeed Technology Limited Parallel data processing apparatus
US6425072B1 (en) * 1999-08-31 2002-07-23 Advanced Micro Devices, Inc. System for implementing a register free-list by using swap bit to select first or second register tag in retire queue
US6643763B1 (en) 2000-02-28 2003-11-04 International Business Machines Corporation Register pipe for multi-processing engine environment
US6766437B1 (en) 2000-02-28 2004-07-20 International Business Machines Corporation Composite uniprocessor
US7035998B1 (en) 2000-11-03 2006-04-25 Mips Technologies, Inc. Clustering stream and/or instruction queues for multi-streaming processors
US7139898B1 (en) * 2000-11-03 2006-11-21 Mips Technologies, Inc. Fetch and dispatch disassociation apparatus for multistreaming processors
US20020144101A1 (en) * 2001-03-30 2002-10-03 Hong Wang Caching DAG traces
US6789048B2 (en) * 2002-04-04 2004-09-07 International Business Machines Corporation Method, apparatus, and computer program product for deconfiguring a processor
US7451326B2 (en) * 2002-08-26 2008-11-11 Mosaid Technologies, Inc. Method and apparatus for processing arbitrary key bit length encryption operations with similar efficiencies
US7085917B2 (en) * 2003-05-12 2006-08-01 International Business Machines Corporation Multi-pipe dispatch and execution of complex instructions in a superscalar processor
US7082517B2 (en) * 2003-05-12 2006-07-25 International Business Machines Corporation Superscalar microprocessor having multi-pipe dispatch and execution unit
US7043626B1 (en) 2003-10-01 2006-05-09 Advanced Micro Devices, Inc. Retaining flag value associated with dead result data in freed rename physical register with an indicator to select set-aside register instead for renaming
US7543119B2 (en) * 2005-02-10 2009-06-02 Richard Edward Hessel Vector processor
US20060229638A1 (en) * 2005-03-29 2006-10-12 Abrams Robert M Articulating retrieval device
US8751755B2 (en) 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
US8365041B2 (en) * 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
US8909982B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
US8793543B2 (en) 2011-11-07 2014-07-29 Sandisk Enterprise Ip Llc Adaptive read comparison signal generation for memory systems
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US8892958B2 (en) 2012-06-15 2014-11-18 International Business Machines Corporation Dynamic hardware trace supporting multiphase operations
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9009576B1 (en) 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
WO2015035330A1 (en) * 2013-09-06 2015-03-12 Futurewei Technologies, Inc. Method and apparatus for asynchronous processor removal of meta-stability
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9323637B2 (en) 2013-10-07 2016-04-26 Sandisk Enterprise Ip Llc Power sequencing and data hardening architecture
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9122636B2 (en) 2013-11-27 2015-09-01 Sandisk Enterprise Ip Llc Hard power fail architecture
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9280429B2 (en) 2013-11-27 2016-03-08 Sandisk Enterprise Ip Llc Power fail latching based on monitoring multiple power supply voltages in a storage device
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9092370B2 (en) 2013-12-03 2015-07-28 Sandisk Enterprise Ip Llc Power failure tolerant cryptographic erase
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9497889B2 (en) 2014-02-27 2016-11-15 Sandisk Technologies Llc Heat dissipation for substrate assemblies
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5852751A (ja) * 1981-09-24 1983-03-29 Fujitsu Ltd 実行命令順序制御方式
JPS5899867A (ja) * 1981-12-08 1983-06-14 Nec Corp 並列処理方式
JPS58146952A (ja) * 1982-02-26 1983-09-01 Toshiba Corp 並列計算機方式
JPS60120472A (ja) * 1983-12-02 1985-06-27 Fujitsu Ltd 多重ル−プのベクトル処理方式

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3840861A (en) * 1972-10-30 1974-10-08 Amdahl Corp Data processing system having an instruction pipeline for concurrently processing a plurality of instructions
US4390946A (en) * 1980-10-20 1983-06-28 Control Data Corporation Lookahead addressing in a pipeline computer control store with separate memory segments for single and multiple microcode instruction sequences
JPS5991548A (ja) * 1982-10-13 1984-05-26 ハネウエル・インフオメ−シヨン・システムズ・インコ−ポレ−テツド 分配器
US4594660A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Collector
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5852751A (ja) * 1981-09-24 1983-03-29 Fujitsu Ltd 実行命令順序制御方式
JPS5899867A (ja) * 1981-12-08 1983-06-14 Nec Corp 並列処理方式
JPS58146952A (ja) * 1982-02-26 1983-09-01 Toshiba Corp 並列計算機方式
JPS60120472A (ja) * 1983-12-02 1985-06-27 Fujitsu Ltd 多重ル−プのベクトル処理方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6907534B2 (en) * 2001-06-29 2005-06-14 Hewlett-Packard Development Company, L.P. Minimizing power consumption in pipelined circuit by shutting down pipelined circuit in response to predetermined period of time having expired

Also Published As

Publication number Publication date
DE3853529T2 (de) 1995-09-28
US4916652A (en) 1990-04-10
EP0328721A3 (en) 1990-07-18
EP0328721A2 (en) 1989-08-23
DE3853529D1 (de) 1995-05-11
BR8804969A (pt) 1989-05-02
EP0328721B1 (en) 1995-04-05
CA1313273C (en) 1993-01-26

Similar Documents

Publication Publication Date Title
JPH01102644A (ja) パイプライン式処理装置
JP2750311B2 (ja) データ処理装置内のデータ・オペレーションの実行を制御する装置及び方法
US5758176A (en) Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system
US4953082A (en) Master processor providing tokens to dataflow processor for controlling instructions execution and data store operation
JP2793488B2 (ja) スーパースカラ・プロセッサ・システムにおいて複数命令を単一サイクルでディスパッチするための方法およびシステム
JP2597811B2 (ja) データ処理システム
EP0205809A2 (en) Vector processing
JPH04245540A (ja) 条件付き分岐を有するプログラムの効率的実行をするためのコンピュータシステム
US6223278B1 (en) Method and apparatus for floating point (FP) status word handling in an out-of-order (000) Processor Pipeline
US6003126A (en) Special instruction register including allocation field utilized for temporary designation of physical registers as general registers
JPH11353179A (ja) パイプライン制御デ―タ処理装置における例外の処理
KR100864890B1 (ko) 데이터 처리장치에서의 소스 레지스터 록킹
JP2843750B2 (ja) スーパースカラ・プロセッサ・システムにおける非逐次命令ディスパッチおよび実行のための方法およびシステム
US5907693A (en) Autonomously cycling data processing architecture
JP2001142699A (ja) パイプラインプロセッサにおける命令データの転送メカニズム
JPS59201154A (ja) 共同プロセツサによる命令の実行を調整する方法および装置
CA2271533C (en) Distributed instruction completion logic
US20040148493A1 (en) Apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue
JP2742375B2 (ja) スーパースカラ・プロセッサにおける命令処理の選択的逐次化の方法およびシステム
JP2933027B2 (ja) 複数命令並列発行/実行管理装置
US6795878B2 (en) Verifying cumulative ordering of memory instructions
JPS6161416B2 (ja)
JPH0754467B2 (ja) データ処理装置
JPS61110238A (ja) マイクロプログラム式並列プロセツサ
JPH06139071A (ja) 並列計算機