JPH04503582A - コンピュータの分散型パイプライン制御装置及び方法 - Google Patents

コンピュータの分散型パイプライン制御装置及び方法

Info

Publication number
JPH04503582A
JPH04503582A JP2-504389A JP50438990A JPH04503582A JP H04503582 A JPH04503582 A JP H04503582A JP 50438990 A JP50438990 A JP 50438990A JP H04503582 A JPH04503582 A JP H04503582A
Authority
JP
Japan
Prior art keywords
operations
tag
ops
outstanding
unfinished
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.)
Granted
Application number
JP2-504389A
Other languages
English (en)
Other versions
JP3153906B2 (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 JPH04503582A publication Critical patent/JPH04503582A/ja
Application granted granted Critical
Publication of JP3153906B2 publication Critical patent/JP3153906B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 コンピュータの 刑バイブライン1 ″ び ゞl吸Ω宣量 本発明は、一般的にはコンピュータに関し、具体的にはコンピュータの効率的な パイプライン制御に関する。
複雑命令集合コンピュータ(CISC)アーキテクチャの単サイクル実現には深 いパイプラインが必要である。Cl5Cアーキテクチヤによって直接支援されて いる複雑な特権及び保護検査及び強力なメモリ管理システムに、普通のパイプラ イン技術を組合わせると極めて複雑になる。現在の技術ではパイプラインは多重 チップ境界交差の効果を含まなければならない。
これらの交差を可能な限り多く排除すべく高レベルのVLS I集積が選択され ている。システムが比較的少数のデバイスしか含んでいないと、全ての目的のた めの専用バスを走らせるのに充分な信号ビンは存在しない。これはバスを多目的 に使用しなければならないこと、従って集中制御及びスケジューリングメカニズ ム設計プロセスが極めて複雑になることを意味している。
及豆二里! 本発明は、プロセッサ内の機能ユニット全体に分散するパイプライン制御システ ムを提供する。各ユニットは、それ自身のインタロック及びパイプラインタイミ ングを限定する。このタイミングは、集中制御装置内で正確に監視することはな い。機能ユニットは自律性であるので、自分以外の全てのユニットが各命令をど のように処理するのかの詳細を正確に知る必要がなく、パイプラインタイミング の複雑なシミュレーションが大幅に減少する。本発明は、発生させてはならない 機械状態に対する変更のバックアウトを可能ならしめることによって、パイプラ インの分散制御を支援する。本発明は、複雑な特別なパイプライン制御論理では なく一般化された技術を使用し、それによってパイプラインの正しい動作をより 有望ならしめている。
不要の変化をバックアウトする能力と組合わされた分散制御によって順不同な実 行、ペナルティサイクル、及び機能ユニット内及び機能ユニット間の命令の並列 処理の領域における性能に重要な長所を得ることができる。これらの能力を実現 するための付加的なコスト及び複雑さは極めて僅かである。
詳述すれば、デコーダ論理は各々が対応付けられたタグを有する疑似演算(p− opまたはp−ops )を、独立的にp−opsを実行できる複数の機能ユニ ットに発行する。任意時点にはnまでのp−opsを未済とすることができる。
タグは、2つの未済p−。
psの相対年齢(時間)を決定できるようにするために順次に発行される。特定 の実施例においては、タグは、少な(とも2nの範囲に亙って発行され、リサイ クルされる。この範囲は、単純な減算によって相対年齢を決定可能ならしめるの に充分である。この実施例では、16タグが発行され、 7 p−opsを未済 とすることが許される。
未済p−opsは、それらの発行順に引退するa p−0pSは、それが完了し た時にのみ、即ち通常は全関連機能ユニットによってそれが終了させられた時に のみ引退することができる。若干の場合には、通常ならば引退資格を有する完了 したp−opsが、lまたはそれ以上の隣接する若いp−opsも完了するまで 未済に保たれるl古の未済p−opsのタグが機能ユニットへ通信されるので、 各ユニットは機械の状態を取り消し不能なように変更できるようになった時点を 決定できる。
未済p−opsは、もしそれが機能ユニットによって異常に終了させられれば、 打ち切られる。古いp”opsも、もしそれらの引退が異常に終了するp−op が成功裏に完了することを条件としているのであれば、打ち切ることができる。
打ち切られる最古の未済p−opのタグは、機能ユニットへ通信される。これに よって、予期せざるプログラムの迂回及び機械が迂回点へ戻された場合に実行の 打ち切りを可能ならしめる。
m個のプログラマ可視(仮想)レジスタが存在し、またnまでのレジスタ変更用 p−opsが未済であることを許される命令集合アーキテクチャの場合には、少 なくとも(m+n)個の物理レジスタが設けられる。仮想レジスタを物理レジス タ内に写像(マツピング)するメカニズムが設けられている。この写像は仮想レ ジスタを変更する各p−opの宛先としてそれまでに未使用の物理レジスタを使 用するために変更されるので、古い仮想レジスタの値をそれが以前に写像されて いた物理レジスタ内に保持することができる。写像内に置換された物理レジスタ を順番に再使用するのであれば、ある物理レジスタを再使用しなければならない 時まで、ある仮想レジスタへ写像されていたp−opが引退または打ち切られる であろうことを保証するための充分な物理レジスタが存在している。仮想対物理 写像を限定するポインタの集合及び使用可能なレジスタのリストがn個の最も新 しく発行されたp−ops毎に維持されるので、未済のp−opsを打ち切って 、レジスタ間にデータを移動させることな(仮想レジスタを先行値に戻すことが できるようになる。
プロセッサの状態を戻すことを可能ならしめる別の技術は、書き込み待ち行列の 使用を必要とする。少な(とも発信p−op(アドレス及びデータを生成するp −op )が未済である期間中に、書き込み予約待ち行列バッファがメモリまた はデータキャッシュへ書き込む。処理が、メモリ書き込みのバックアウトを必要 となり得る点を通過した時だけ、書き込み予約待ち行列エントリをメモリへ出力 する。もし発信p−opが打ち切られれば待ち行列エントリは待ち行列から削除 される。若い読み出しp−opが、未済書き込みp−opによって書き込まれる メモリ位置へのアクセスを探索する場合には、書き込み予約待ち行列内に記憶さ れているデータが読み出しp−opへ供給される。もし書き込みp−opが引退 すれば読み出しp−opは、その引退を待機することなく正しいデータを取得し ている。反対に、もし書き込みp”opが打ち切られれば若い読み出しp−op も打ち切られ、 F!1械状態は書き込み前の点へ成功裏に戻される。 ゛本発 明の本質及び長所の更なる理解は、以下の説明及び図面を参照することによって 実現されよう。
図面の簡単な説明 図1は、本発明を組み入れたコンピュータシステムのブロック線図、 図2は、デコーダ(DEC)の高レベルブロック線図、図3は、DECの詳細な ブロック線図、図4も、DECの詳細なブロック線図、図5も、DECの詳細な ブロック線図、図6A−Bは、特定シーケンスの追跡を示すブロック線図、図7 A−Bも、特定シーケンスの追跡を示すブロック線図、図8は、レジスタ再割当 てを示す概要図、図9は、メモリ及びキャッシュ制御装置(MCC)のブロック 線図、 図10は、整数実行ユニット(IEU)のブロック線図。
図11は、図10の整数実行ユニット(I EtJ)のブロック線図の続き。
表9呈至久双」 表1は、p−opバスフォーマット。
表2は、物理アドレスバス(PAdeBuslフォーマット、表3は、データキ ャッシュバス(DIOBusl フォーマット、表4は、データ交換バス(DX Buslフォーマット、表5は、IELI終端バスフォーマット、表6は、AP 終端バスフォーマット、 表7は、p−op発行及び終端のシーケンス。
!篤ヨ 乞ムニム五盟1 図1は、本発明を組み入れたCPtJ 10のブロック線図である。F86と呼 ばれることもあるCPUは、カリフォルニア州すンタクララのインテル・コーポ レーションから1986年に刊行されたIntel 80386プログラマーズ リフアレンスマニユアルに記載されているIntel 80386の命令集合と 互換性のある命令集合(マクロ命令)を実行するように設計されている。図中の 各ブロックは、一般的に現在具体化されている分離した集積回路チップまたはチ ップ群に対応する。CPUは、システムバス11を介してメモリ制御装置、I1 0デバイス、及び多分他のCPLIのような外部デバイスと通信する0機能ユニ ットの下部に示す参照番号は、これらの外部デバイスではないCPtJ10内の 要素を意味するものと理解されたい。
命令デコーダ(DEC)12は命令取り込み、命令デコード及びバイブライン制 御を遂行する。DEC12は、3つまでの同時命令の流れの命令先取りを任意選 択的に交互配置する。
DEC12は、完全に連想型の分岐予測キャッシュ(BPC113を含む、BP Cは集積された構造であり、分岐履歴データ、物理分岐目標アドレス、及び分岐 目標バッファを各キャッシュメモリ毎に含む。分岐命令がデコードされると、B PCはその分岐に関する情報を調べる。予測される方向には無関係に分岐は単一 のサイクル中に実行され、パイプラインバブルを生じさせることはない。
各サイクルに、BPC内の3つの命令バッファまたは分岐目標バッファの1つか らマクロ命令が選択される。このマクロ命令はデコードされ、疑似op (p− apl とも、または命令もしくは演算とも呼ばれることがある内部96ビツト デコ一ド済命令語にアセンブルされ、各種機能ユニットヘディスパツチされる。
命令のデコードは、一般に単一サイクルレートで進められる。
DEC12が発行する各p−opには、機械内で現在未済の各p−opを独特に 識別するタグを与えられる。タグは昇順で発行され任意の2つのタグの相対年齢 を容易に決定できるようにしている。チップ間のバストランザクションは発信p −opのタグを含む0機能ユニットは、p−op、アドレス、及びオペランドと これらのタグとを組(対)にする。
DEC12はまた未済p−opのステータスの追跡と、パイプラインの制御と、 必要に応じての例外処理の呼出しとに責を負っている。
アドレス準備ユニット(AP) 15は実行アドレスを計算し。
、セグメント再配置を遂行し、要求時ページングされるメモリ管理システムを実 現する。APは変換索引バッファfTLB)を含む。
整数実行ユニットfIELI) 17は殆どの整数命令の単一サイクル実行を遂 行する。IELIは、8X32乗算器及び累算器アレイ、並びに乗算命令及び除 算命令のマイクロコードを含む。パイプライン制御アーキテクチャは、IELI の整数命令の並列実行及び順不同の実行の両方または何れか一方の遂行を可能な らしめる。
数値プロセッサ(NP)20は、任意選択的に、CPU内に含ませることができ る。これはI EEE浮動小数点標準を高性能に実現する。NPはパイプライン 内に集積され、命令及びオペランドの転送に関して何等の特別なオーバヘッドも 賦課しない、整数fIELl+及び浮動小数点(NP)命令は同時に遂行される 。
メモリ及びキャッシュ制御装置(MCC) 25は、命令及びデータキャッシュ を制御する責を負い、キャッシュコヒーレンシープロトコルを実現する。MCC はシステムバス11へのインタフェースを制御して、キャッシュとメモリとの間 の高速車−及びブロックモード転送を支援する。後述するように、MCCは、整 数、浮動小数点、及びシステム書き込みのための書き込み予約表をも含み、また リードアフタライト短絡回路経路を含む。
命令キャッシュサブシステムは、タグRAMチップ(ITAG)27及びキャツ シュRAMチップ(ICACHE) 30を含む、工TAG 27内の各エント リは、ICACHE 30内の対応する線のためのアドレスタグ、有効ビット、 及びアテンションビットを含む。アテンションビットは、DECチップもBPC 内にキャッシュされたこの線からのデータを有することができることを指示する 。ITAG27は、命令流アドレスレジスタ31の集合をも含み、各レジスタは 3つのどうあっても未済の流れの1つ1つに対応付けられた取り込みアドレスを 含む。
データキャッシュサブシステムは、タグRAMチップfDTAG132及びキャ ツシュRAMチップ(DCACHE) 35を含む。DTAG 32は、DCA CHE 35内の各線のためのアドレスタグ及び線状態ビットを含む、考えられ る線状態は、欠落、共用読み出し、オウンドクリーン、及びオウンドダーティー であり、ライトバックマルチプロセッサキャッシュコヒーレンシープロトコル( 変更された書き込み1度)を支援する。タグRAMはデュアルポート型であり、 単一のサイクル中にCPU及びバスの両者がキャッシュルックアップをスヌーブ することを可能ならしめる。データキャッシュインタフェース(DCIIチップ 37はDCACHE 35をシステムバス11へインタフェースする。
各機能ユニットは、電力及び接地ブレーン、並びに組合わされた減結合コンデン サを含む特注のセラミックPGA内にパッケージされている。ビンのほぼ25% は電力及び接地に当てられている。0.8ミクロン乃至1.2ミクロンプロセス の場合I10遅延はオンチップ限界経路と対等である。チップ間I10はパイプ ライン内に組み込まれているので機械にサイクル時間を付加しない、ICACH E 30及びDCACHE 35は普通のスタティックRAMを使用している。
種々の機能ユニット間の通信は多数の内部バスを介して遂行される。これらには 、命令取り込み用64ビツトI FETCHDATAバス501発行されたp− opsをAP、IEU、MCC及びNPへ通信する104ビットp−opパス5 2、未済p−ops情報をAP、IEtJ、MCC及びNPへ通信する5ビツト タグ状態バス53、物理アドレスを通信する32ビツト物理アドレスバス(PA drBusl 55、データキャッシュ転送用64ビツト(各方向に32ビツト )データキャッシニバス(DIOBus)、チップ間交換用32とットデータ交 換バス(DXBusl 58、キャッシュ/メモリ更新用64とットバス、及び 複数の終了バス(即ち各機能ユニットからDEC12までのAP終了バス60%  IELI終了バス62、NP終了バス63、及びMCC終了バス65)が含ま れる。これらのバスの若干は全幅であり、若干は半幅(時間多重化)である。一 般的に、機能ユニット間の対話は内部プロセッサバス上に充分に限定されたトラ ンザク。
ジョンに制限される。
複数のこれらのバスの詳細に関しては後述する。標準CMOSスタイル時間多重 化I10の使用方法によれば、転送はシステムクロックのフェーズ1 (φ1) とフェーズ2(φ2)との間の境界で発生することを暗示している。φ2転送は 、送信チップがφ1の終りの前に有効データをそのI10ドライバへ準備する必 要がある。有効データは後続ψ2中に受信チップのI10受信器によって供給さ れる。φ1転送は丁度反対のタイミングである。
表1〜6はそれぞれ、p−opババス2、PAdrBus55、DIOBus5 7、DXBus58、IELI終了バス62、及びAP終了バス60のバスフォ ーマットを示す。
バイブライン匍 システムの プロセッサのパイプライン制御は上述の機能ユニットにまたがって分散している 。パイプラインの集中スケジューリングまたはスコアボーディングは遂行されな い。DEC12はアーキテクチャ内の若干の総合資源制約を観測し、資源制限を 犯すp−opの発行を適時遅らせる。各機能ユニットは、それ自身の内部操作を スケジュールする責を負う、インクロック検査はローカルレベルで遂行される。
深くパイプライン化された機械では、パイプラインの種々の段階における例外検 出が制御に重大な困難をもたらす、各段階は、他の段階が未だに先行命令の例外 を検出できる間は、状態の変更を遅らせるに当たって注意深くなければならない 。専用制御論理が一般的であり、パイプラインシミュレーションを注意深(遂行 しなければならない。
プロセッサは、単純で、一般的で且つパワフルな幾つかの技術を使用してこの複 雑さを処理する。DEC12はデコードされた命令(p−ops)を発行し、機 能ユニットは他の機能ユニットによる例外の検出の結果には拘りなくアドレス及 びオペランドを処理する。前述のように、各p−opにはそれが発行される時に DEC12によってタグが割り当てられており、DECはこのタグを使用してp −opを追跡する。
DEC12は、実行が例外の点を過ぎて進行した時点を決定する責を負う。以下 に説明する技術を使用してDECは機械の状態を、例外を生じさせたp−opの 直前の点(障害例外)または後続点(トラップ例外)に復元する。
上述したように、各機能ユニットはDEC12へ戻る終了パスを有している。こ れらのバス上の信号は(タグによって)p−opが完了した時点と、そのユニッ トによってどの例外(もしあれば)が検出されたのかを指示する。DECはこの 情報を使用して1機械内でどのp−opsが未済であるかを追跡し、資源制約を 追跡し、そして例外処理を開始しなければならない時点を決定する。
異常終了に応答してDEC12は、機械の状態を例外の点へ戻し、例外ハンドラ を呼出して異なる命令流かまたはマイクロ命令のシーケンスの何れかを発行し始 める。プロセッサは5つの一般的メカニズムの1またはそれ以上を使用して、異 常終了へのDECの応答の部分としての特定状態へ機械を戻すことができるよう にする。これらは打ち切りサイクルの発行、レジスタの再割り当て、書き込み予 約表の使用、履歴スタックの使用、及び機能ユニット直列化である。
打ち切りサイクルは、DEC12が発行した命令を機械から一掃しなければなら ない時にDECが発行する。打ち切りサイクル中に、完了することを許すべき命 令と機械から追放しなければならない命令との間の境界を識別するタグが全ての 機能ユニットに供給される。
レジスタ再割り当ては、一般的レジスタファイル及びセグメントレジスタファイ ルの状態を復元し、打ち切らなければならない命令のために行われた変更を流出 させるために使用される。機能ユニットは、命令集合が指定するよりも多くの物 理的に使用可能なレジスタを有している。DEC12は、プログラマ可視(もし くは仮5)レジスタを物理レジスタへ写像するポインタの集合を維持している。
デコードされた命令をアセンブルするに当たってDECは、適切な物理レジスタ 番号をレジスタ指定フィールドに置換する。
仮想レジスタを変更する場合、DECは先ず新しい物理レジスタを割り当て、ポ インタ集合を変更し、割り当てられたレジスタ番号を宛先レジスタとして使用す る。命令の実行の後でも古い物理レジスタは未だ仮想レジスタの変更された値を 含んでいる。レジスタ変更をバックアウトするためには、DECはポインタ集合 を命令発行前の値に復元しなければならない。
解放された物理レジスタは、物理レジスタの内容を必要としなくなった後までそ れらが自由リストの先頭に現れることがないように充分に長くした自由リストの 終りに配置される。DECは、以下に説明するように、ポインタ値の履歴スタッ クを維持している。
書き込み予約表はMCC25において使用され、その書き込みを打ち切ってはな らないことが知られるまでデータ書き込みを待機させる。MCCは内部データバ ス上のアドレス及びオペランドを受信し、それらをタグによって突き合わせ、そ のようにしても安全である場合に不可逆書き込みを遂行する。
履歴スタックは、レジスタ再割り当てポインタ、フラグレジスタ、及びプログラ ムカウンタのような雑機械状態を保管及び復元するために使用される。
稀にしか変更されない機械状態の場合、値の履歴スタックのコストは無視される 。これらの場合、変更を遂行する機能ユニット(そしてそのユニットだけ)が処 理を停止し、機械内の最古の未済命令のタグ(DECから供給される)が各サイ クルに調べられて機械内の全ての古い命令が成功裏に完了した時点が決定される 。この時点になると機械状態の古い値を予約する必要はな(なり、また機能ユニ ットは機械状態の不可逆な変更を行う。
状態変更をパックアウトする能力と組合わされた分散型パイプライン制御スキー ムは、多くの性能最適化を可能にする。
各機能ユニットは全てのp−opsを受信できるが、実際にそのユニットにおい て処理を必要とするp−opsだけを処理する。これは1段が有用な作業を行う と否とに拘らず命令が全ての段を通って流れる普通のパイプラインとは対照的で ある。
更に各ユニットは、全ての入力オペランドが使用可能になると直ちに演算を遂行 する。直ちに実行する準備が整っていないp−opsはそのユニットのp−op 待ち行列内に記憶される。完了すると、その結果はさらなる処理を行うために次 の段に渡され、次の演算が調べられる。1つの段は、その段が実行するために使 用可能な何ものをも有していない場合に限って実行を停止する。
この挙動によって機能ユニット間で順不同の実行が可能になる。例えばアドレス 生成インクロックを有するメモリ書き込みの場合、APはメモリアドレスを計算 することはできないであろう。しかしIEtJはデータを供給することができ、 直ちにそれを行い、その後送の命令へ継続する。APのインクロックは他のパイ プライン最内にパイプラインバブルを作成する必要はない。後刻、IEtJは乗 算の遂行を遅らせるか、またはメモリオペランドを待機することができる。この 時点でAPはIETJに追いつく機会を有する。
特定の機能ユニットの観点からすれば、これは複雑な概念ではない。機能ユニッ トは局部的に決定を行い、それが命令を完全に順不同ならしめているかも知れな いことに全く気付かない。パイプライン制御メカニズムは、順不同に実行された 命令によって行われた変更を流出させ得ることを保証する。機能ユニットは特別 な検査は行わない。
機能ユニット間の順不同な実行は、プロセッサ内で行われる分散した決定の結果 として自由に発生する。1つの機能ユニット内においてさえ、命令は安全に順不 同で実行し得る。IEU17は、この内部順不同実行の例を提供する。IEtJ はその命令待ち行列の先頭を調べて、その実行準備が整っているか否かを見出す 。もしデータインクロックが直ちに実行することを阻止していれば、IELIは 次に若い命令を調べて、その実行準備が整っているか否かを見出す、このプロセ スは実行できる命令を見出すまで続けられる。IELIは、実行の準備が整って いる使用可能な命令が存在しない場合に限ってデータインクロックペナルティを 支払う。
たとえIELIがインクロックペナルティを払ったとしても、それはプロセッサ が全体として1つのサイクルを失ったことを意味するものではない。たとえIE Uが遅れたとしても、後にIELIを必要としない命令が発行された時に追いつ くことができる。最後に、1または複数のペナルティサイクルは、AP15から の1または複数のペナルティサイクルと重なり合うことができる。
命令を順不同に実行することを選択する機能ユニットの特別な場合は1機能ユニ ット内における命令の並列実行である。即ち、この概念は、複数のサイクルを要 する命令に適用される。
他の単一サイクル命令の並列実行は、多重サイクル命令が1サイクルの実効スル ーブツトを有することを可能にする。
DCacheミスは、通常は全キャッシュミスペナルティのためにバイブライン を停止させる。機能ユニットがキャッシュデータを用いずに実行できる演算を見 出すことができる範囲までキャッシュミスペナルティは減少される。このことは APチップのTLBにおけるミスに関しても真である。これらの場合は、ペナル ティサイクルの数が通常かなり高くそれらを有用作業に完全に重ね合わせること が困難な他の場合とは異なる。
0 バスフォーマット 表1にp−opババス2のフォーマットを示す、このバスは52ビツト幅であり 、時間多重化されたバスである。DEC12は単独でこのバスを駆動してp−o psをAP、IELI、及びNPへ発行する。バスは標準CMOSスタイル時間 多重化I10を使用する。
典型的には、1つの386/387マクロ命令はDECによって関連機能ユニッ トへ発行される1つのp−opに変換される。若干の場合には、1つのマクロ命 令が発行済p−opsのシーケンスをもたらす。このp−op発行シーケンスは アトミック(atoa+iclであり、即ち1つのマクロ命令のp−opsの発 行が別のマクロ命令のp−opsの発行(または例外処理シーケンス)と交互配 置されることはない。
典型的なマクロ命令の場合、1つのp−opは、全ての関連機能ユニットにその マクロ命令の必要演算を遂行可能ならしめるのに充分な情報を含む、これは、メ モリオペランドアドレス計算及びセグメント、発信及び宛先オペランドレジスタ 、ALLI演算、オペランドサイズ、オペランド経路指定、ステータスフラグ変 更、及びp−opフラグ並びに関連した変位及び即値データ値の両方または何れ か一方の指定を含む。N P p−opsもマイクロアドレスを指定する。
殆どのp−opsは、1クロツクサイクル中に両クロックフェーズ(φl及びφ 2)を使用してp−opババス上転送される。φ1はp−op内に含まれる殆ど 全ての制御情報を転送するために使用され、φ2は変位及び即値の両方または何 れか一方を(制御情報の僅かな雑特別ビットと共に)転送するために使用される 。変位及び即値の両方を含むp−opsの若干の場合(52ビツトにパックする ことができない)には、即値を転送するために第2クロツクサイクルが使用され る。この第2サイクルは常に第1クロツクサイクルの直後に続く。変位は第1サ イクルのφ2に転送され、即値は第2サイクルのφ2に転送される。
DEC12は、全てのクロックサイクル中にp−opババス駆動する。通常はこ れは正常p−opであるが、DECが正常p−opを発行する準備が整っていな いか、または発行できないサイクル中は、DECは代わりに空p−opを送る。
P−op内に情報をエンコードすることのフィロソフイは、何よりも先ずあるク ロックサイクル内の可能な限り早い時点にエンコードされていないか、または迅 速にデコードできる形状で制御情報を供給することである。これは特に各機能ユ ニットにおける速さが臨界的な演算の開始に関して、及び変位及び即値の抽出と 適切なアドレス及びデータオペランドの導出とに関して真である。それ程臨界的 ではない制御情報だけがφ2中に転送されるが、一般的にはφ2中には各機能ユ ニットはレジスタ及びp”opの両方からのオペランドのアセンブル/取り込み を行って1次のφlに各機能ユニットが内部計算等を開始できるようにすべきで ある。
前述のように殆どのマクロ命令は単一のp−opに変換される。これは若干のよ り複雑なマイクロ命令を含み、この複雑さはマイクロ命令を介して機能ユニット の1つにおいて処理(例えば、IEU、AP内のPOPAにおける乗算)されな ければならない。しかし可能な場合には、複雑なマクロ命令は、総合的なシーケ ンスには気付くことなく機能ユニットによって独立的に実行されるp−opクシ −ンスに変換される。若干の場合には、例えば複数のレジスタ再割り当てfp− op当たり1つだけが許される)、適切なメモリ要求生成のためにAPが要求す る複数のp−opフラグまたはAPによる複数のレジスタ及びフラグの更新をA Pに通信する必要がある制御情報の量または本質のために、p−opクシ−ンス が本質的に必要である。
若干の複雑なマクロ命令の場合、上述の組合わせも発生し得る。即ち、p−op のシーケンスが発行され1機能ユニットの1つがマイクロコード内へ進んでマク ロ命令のコア部分または全部を後続するp−opsと共に実行する。例えばシー ケンスの最初のp−opがAP及びIELIによって処理され、別にAPはマイ クロコード内へ進んでさらなる演算を遂行する。これらのさらなる演算は発行さ れる後続p−opSに対応する。概念的には、シーケンスのp−opsは機能ユ ニットによって独立的に実行され、この場合にはこれはIEUに関して文字通り 真である。しかしマクロ命令の本質のために、APはp−opクシ−ンスを大域 的に知る必要がある。従ってこの場合、APはマイクロコード内へ進み、単純に 後続p−opsと同期する。外歓ではAPは各p−opを独立的に実行し終了す るが、内部的にはAPはp−opタグと各p−opの1または2フイールドだけ を使用するのである。
機能ユニットによるp−opsの発行と認識に関して一般的な性質の2つの付加 的な説明をしておく。第1に、殆どのp−opsは全ての機能ユニットによるそ れらのp−op入力待ち行列内への待ち合わせをしない、その結果、各機能ユニ ットは、全てのp−opsを見ず、処理せず、または時間を消費しない。一般的 な場合には、 p−opは、AP及びIELIによって、またはAP及びNPに よって認識される。若干のp−opsはAPだけが見ればよく、1または2 P −01)Sは3つの全機能ユニットによって認識される。APだけが全てのp− opsを見るのである。
第2に、DECが例外処理に入るある理由が存在する場合にはDECはそのよう にし、p−opsに関連するより新しい例外処理の打ち切りを要するかも知れな い未済先行p−opsが未だに存在していても、対応付けられたp−opsを発 行する。一般に、DECはマクロ命令の観点から適切な演算を保証するように、 p−ops発行に当たって最低必要な自制を遂行する。
関連点は、微視的観点から(即ち個々のp−’opsのレベルにおいて)、DE Cが発行できるp−opクシ−ンスに対して、またはそれらの発行のタイミング に対して極めて僅かな見掛は上の制約が存在し、従って機能ユニットが僅かな仮 定をなし得ることである。これは特に、p−opsの打ち切りに関して僅かな仮 定をなすことができるという事実に適用される。許される未済p−opsの最大 全数及び許される未済NPp−opsの最大数、及び任意時点にどのp−ops が活動/未済であり得るかに関する保証のような最も基本的な制約だけが明白で ある。
適切な巨視的命令実行を保証することに関して、簡単に説明する価値がある1つ の面が存在する。若干のp−opsは、F86マイクロアーキテクチヤがp−o pによる変更後にバックアウトする能力を支援しないプログラマ可視状態を変更 する。概念的には、これは、p−opsが全て実行される前にそのp−opを永 続的に実行することをDECが保証できるように、機能ユニットのある程度の静 止を必要とする。これは、全ての機能ユニットが静止状態に到達してしまうまで DECがそのI)−0p(及び全ての後続p−ops)の発行を遅らせるという 一般的な技法では行われない。その代わりとして、所与のp−opに対して静止 を必要とする各ユニットだけによる局所化された(機能ユニット)基準で行われ る。DECは関連機能ユニットによって必要な程度の静止を遂行しながら、これ と後続するp−opsとを発行することができる。更に、静止内に含まれないユ ニットは、後続p−opsを完全に実行し続けることができる。
DECの 才 O゛ 、 ′−1 桐疑似op (p−op)がDECからP−Opババス上発行されると、それは 適切な機能ユニット(AP、IEtJ、NP)によって待機させられる0次いで 各機能ユニットは他のユニットにゆるく結合されているp−opの流れを処理し 、各p−opが完了するとDEC12へ終了を通知する。図2にブロック線図で 示すDEC12は、フロントエンド100、デコーダ102及びバックエンド1 05からなる。図3はDECフロントエンドを、図4はDECデコーダを、図4 はDECバックエンドを示DECフロントエンド100は命令バイトを取り込み 、デコーダへ供給する責を負う。命令はBPC13から、またはIFETCHD ATAバス50によって供給されている3つの命令バッファの1つから供給され る。命令バイトは、命令をPC(プログラムカウンタ)レジスタ112からの情 報に基づいて位置合わせする回転/けた移動論理110へ供給される(一時に2 4バイト)。8バイトがデコーダ102へ供給され、デコーダ102は命令長を 決定してそれをPC論理112へへ通信する。命令が8バイトより長い場合には 、1サイクルに8バイトが通信され、8バイトを超える命令は次のサイクルに通 信される。
フロントエンド論理115は流れスタック117を制御し、流れアドレスをIT AG 27へ供給する。2つまでの未済分岐が、従って3つの未済の流れが存在 可能である。制御論理はどの流れを取り込むのかを指定する命令要求をITAG  27内の命令流アドレスレジスタ31へ発行し、流れを識別する有効ビットを 受信する。ITAGがアドレスを供給すると、それは適切なアドレスレジスタを インクリメントさせる。制御論理115は、自己修飾コードに関する命令の流れ 内への書き込みを検出するPADH監視論理120からの信号も受信する。
DECデコーダ102はマクロ命令をデコードし、全てのp−opクシ−ンスを p−opババス2上に発行する。デコーダは、命令レジスタ130内にロードさ れている命令バイト(マクロ命令)をフロントエンド100から受信する。マク ロ命令はデコード論理132によってデコードされ、p−op型デコード論理1 35はp−op型に関する情報をフロンテンド及びバックエンドへ送信し、一方 命令長デコード論理137はフロントエンド内のpc論理112と通信する。
デコーダp−opアセンブリ論理140はデコード論理132からp−opを受 信し、バックエンドからのレジスタ割り当て情報に従ってそれらを変更する。p −opsは、p−opババス2上に駆動されるとp−op出力待ち行列142内 にロードされる。発行は、バックエンドからの制御信号に基づいて発行保持論理 145によって遅らされる。
デコーダ102は、多重p−opsが単一マクロ命令を発生する場合に発行を制 御するシーケンサ147を含む。デコード保持論理150は、フロントエンドか ら有効命令バイトが到来しない場合に処理を阻止する* p−opの発行に伴っ てデコーダ102はタグを割り当てる。タグは循環シーケンスで発行され、従っ て再使用されるが所与の時点には1つのp−opだけがそのタグに対応付けられ ている。タグの範囲は、相対年齢を決定できるように、未済が許されるp−op の数に対して充分に大きくなければならない。未済p−opの最大数の少な(と も2倍の範囲とすれば単純な減算によってこのような決定が可能になる。
バックエンド105は、全ての未済p−opsがCPtJの周囲に浮動するのを 追跡し続ける。信頼できる動作(p−op 、アドレス、及びデータ処理を制御 するCPUのタグ付はスキームに関連する)を保証し、機能ユニット終了によっ て知らされる異常状態を調停し、そして遣切な動作を開始するようにp−ops の発行を適切に制御する必要がある。デコーダがp−opを発行すると、それは そのp−opに関する情報と共にバックエンドに渡される。これは上述のタスク を遂行するために必要な正しい動作を識別するのに使用される。
バックエンドは、全ての未済p−opsを追跡し続ける追跡論理160と、未済 p−opsに応答しCPUの正しく且つ信頼できる動作に要求される種々の制約 (後述)を絶えず満足するようにデコーダによる爾後のp−opsの発行を制御 する保持条件論理165とを含む、追跡論理160は、最古の未済p−opのタ グ(O○タグ)を含む情報をタグステータスバス53へ供給する。バックエンド は、p”opsの打ち切りを処理する打ち切り論理170と、後述するポインタ 集合アレイ177及び自由リストアレイ178を維持するレジスタ再割り当て論 理175と、タグステータスバス53を制御するタグ生成論理179をも含む。
バックエンド終了バス論理180は各機能ユニットから終了情報を受信し、追跡 論理160及び打ち切り論理170が各未済p”opのステータスを維持するこ とを可能ならしめる。若干はある将来時点まで累積される。正常動作中のこの追 跡は主として爾後のp−opsの発行に影響を与える。しかし対応する終了によ って機能ユニットから異常が通知されると、バックエンドは所与のp−opの多 重異常終了を解決し、適切な応答を開始する。これは、CPUの状態をp”op 処理のある先行状態まで戻すように他の全ての機能ユニット(MCCも含む)へ 打ち切りサイクルを送ることを含む。
追跡論理160及び打ち切り論理170は、全ての未済p−opsに関する特定 情報を記憶するレジスタを含む。これらのレジスタは、未済p−opsのタグの 3最下位ビットに対応する番号O〜7を付された8つの同一レジスタ集合として 編成されている。多くとも7 p−opsが未済であることができ、またタグが 準じに発行されるから、相対年齢は位置番号に基づいて決定することができる。
追跡論理160は関連論理を有する8つずつの状態レジスタ190、終了レジス タ192.及びp−op情報レジスタ193を含む。打ち切り論理170は関連 論理を有する8つずつの応答選択レジスタ195、優先順位論理レジスタ197 、及び終了記憶情報レジスタ198を含む。
各状態レジスタ190は、その位置に対応するタグを有するp−opが未済であ ればセットされる単一の状態ビットを記憶する。各終了レジスタ192は、機能 ユニット当たり1つの終了ビットを記憶する。このビットは機能ユニットがp− opを終了するか、または機能ユニットがp−opに対して動作を起こす必要が ない時にセットされる。
各p−op情報レジスタ193は対応付けられたp−opに関係する8ビツトを 記憶する。これらは、機能ユニットが操作するp−opのタグの最上位ビット、 p−opの型(例えば浮動小数点。
分岐)、分岐予測情報、及び打ち切り群ビットを含む。即ち。
“0゛はp−opが最終番号ではな(従って単独では引退できないことを表し、 一方“1”は打ち切り群ビットに“O”を有する隣接の古いp−opsを打ち切 ることなくそのp−opを打ち切ることはできないことを表す。
状態ビットの収集は最古の未済p−opを識別可能ならしめる。p−opの位置 はタグの3最下位ビットを供給し、情報レジスタは最上位ビットを供給する。状 態ビット及びp−op情報レジスタ193内のビットは、後述するように保持条 件計算論理165が保持条件を決定することを可能にする。
各応答選択レジスタ195は、どの応答が必要なのかに関する情報をフロントエ ンドに供給する。各優先順位論理レジスタ197は、所与のp−opの多重異常 終了に対する応答に対して取るべき適切な動作を指定する。各終了記憶レジスタ 198は関連p−opに作用する機能ユニットからの異常終了の詳細を含む詳細 な終了情報を維持する。
打ち切りが発生した場合を除く殆どの場合、機能ユニットは未済p”opsのス テータスに関係はない。これに対する主な例外はMCC25であり、MCCはキ ャッシエ内へのメモリ及びI10書き込み及びシステムの残余への出力の両方ま たは何れか一方を実際に遂行するに当たって安全であることを知る必要。
がある。特別な場合にはAP及びIEUも若干のp−opsを実行することが安 全であることを知る必要がある。これらの要求は全て、O○タグ及び信号打ち切 りを表すタグステータスバス53上に各クロックサイクル毎に連続的に情報を発 行するバックエンドによって満足される。
タグステータスバス タグステータスバス53は5ビツトのバスであり、それらの信号はφ1だけに限 定される。殆どのサイクルにおいてそうであるが、ビットく5〉がOである時に は、ビット<4.、O>は最古の未済p−opのタグである○○タグを表す。ビ ットく5〉が1である時には打ち切りが指示され、ビット<4.、O>はp−o pのタグをもとに戻って打ち切ることを指示する。これは打ち切りタグ(ATa g)と呼ばれる。打ち切りサイクル中にバックエンド105は、デコーダの次の p−opの発行を無効にし、2つの型の空p−opsの1つを発行させる。タグ ステータスバスが、タグ=iを有するp−opが最古の未済p−opであること を指示している場合には、これは全ての古いp−ops (即ち、4ビツトの2 の補数演算に基づいてタグ〈iを有するp−ops)は最早未済ではなく、引退 するものと見做すことを意味する。
p−op fi)を含む全ての若い発行済p−ops (即ち、タグ≧iを有す るp−ops)は未済である。勿論これは1発行済で爾後に打ち切られるp−o psを除外する。
未済であると見做すp−opは、それは未だ打ち切り可能であることを意味し、 実際にこれはp−opsを引退させる時を決定するに当たってバックエンド10 5が使用する演算定義である。
全ての機能ユニットによってp−opsの処理が完了すると、(それらの終了に 基づいて)可能な限り直ちにそれらを引退させるのが一般である。しかしp−o psを実際に引退させることができるようになった時には種々の制約がある。そ の詳細の若干を以下に説明する。
最古の未済p−opを引退させる時、タグステータスバスはこれを○Oタグ=i 指示から○Oタグ=i+1指示へ前進させることによって表示する。各及び全ク ロックサイクルに最古の未済タグを前進させることができる。また○○タグ=i から○○タグ=i+n(但し、1≦n≦7)ヘジャンブさせて1クロツクサイク ルに幾つかのp−opsを効果的に引退させることもできる。もし未済p−op sが存在しなければ、タグステータスバスは発行される次のタグを最古の未済と して指示する。
タグ=iを有するp−op (p−op (it )までの打ち切りは、タグ≧ iを有する全てのp−op (4ビット符号を付けた2の補数演算に基づいて) を流出させ、CPtJの状態をp−op fi−11とp−op(itとの間に あった時の状態までロールバックさせるべきである。これは次のp−opフラを 発行することを含む。換言すれば打ち切りはp−op [i)及び全ての若いp −opsを流出させ、CPUをこれらのp−opsが見掛は上発行されない状態 に復元すべきである。
タグ=1までの打ち切りは随時発生させることができ、p−op(1)が最古の 未済p−opになるまで遅延させる必要はない。またこのような打ち切りはタグ ≧iを有するp−opsが存在市内場合にも発生させることができる。しかしそ れでも、打ち切りタグ及び全ての未i p−opsのタグは、相対年齢に関する 全てのタグ比較が未だに信頼できるものであることを保証される。(傍注として 1例えばもし7つの未済p−opsが存在していてこの打ち切りが発生すれば、 打ち切りタグは7番目の(即ち最も若い)p−opのタグより1つ大きくなけれ ばならない、)この流出及び状態のローリングバックは、(概略で)打ち切りが 通知されたサイクル中に各機能ユニットによって遂行されなければならない。デ コーダ102は、その次のサイクルに新しいp−opsの発行を開始するかも知 れないから、このことが必要なのである。これは特に、方向または型(遠方への 制御の転送のための)が誤予測された「制御の転送」マクロ命令に関して真であ る。
要約すれば、各機能ユニットは1サイクル中にそれ自身を空にし、そのサイクル の終りまでに処理の状態を正常に戻さなければならない。
一般的に、打ち切りサイクルに続(サイクルには、別の打ち切りサイクルを発生 させることができるか、p−opを発行(より多(の爾後のサイクルを用いて) できるか、または単純な空p−opを発行(デコーダは未だ次のp−opを発行 する準備が整っていないから)できるの何れかとなる。ある打ち切りサイクルに 続く次のサイクルが別の打ち切りサイクルではないものとすれば、最古の未済を 指示するp−opフラは、その打ち切りサイクルに先行するものと同じであって も、または戻って打ち切られたタグまで前進せしめられたタグの番号を有してい てもよい。この最後の場合は、打ち切り後に全ての先行〔古い) p−opsが 引退し、そして勿論全ての若い未済p−opsが最早存在しない時に発生する。
又lユ亘 以下の説明はp−opフラと、それらが何であるかの概要と、DEC12がそれ らをどのように発行するかに関する。全てのタグは発行される全てのp−ops の一部としてDECから発せられる。各p−opタグは、各p−opに関連する アドレス及びデータにタグを付けるために機能ユニットによって使用される。7 つまでの未i p−opsが許されるものとすれば、少なくとも3ビツトのタグ が必要である。これは、相対年齢に関してp−opフラを比較するのを簡易化す るように、更に1つの上位ビットを用いて4ビツトタグに拡張される。即ち、以 下に説明するようにしてタグを割り当てると、4ビツトの2の補数符号付き比較 が2つのタグの相対年齢を確実に指示する。p−opsを明確に識別するために は任意の時点に3最下位ビットだけが必要であることに注目されたい。
マクロ命令の順番に対して、これらの命令から得られる全てのp−opsは順番 に発行され、タグも順番に割り当てられる。
16のタグ値は全て有効タグと考えられ、タグ類は[次のタグ] ・=(「現タ グ」+1)モジュロ16として定義される。従って相対年齢に関する上記比較は 確実に作業する。
打ち切りがない命令処理中は、以上の説明がそのまま適用される。タグ=iまで 戻って打ち切りが発生し、CPU状態がp−ops(ilの直前までロールバッ クすると、タグ割り当てもタグ=iまで戻ってリセットされる。相対年齢比較の 信頼性を保証し続けるために、DECはこの時点からタグ=iで始まる新しいp −opsを発行しなければならない。効果的に、打ち切られたp−opsのタグ が新しいp−opsに再発行される。これは、例えば、先行打ち切りより前の点 まで戻った打ち切りが、あたかも第2の打ち切りだけが発生したかのような効果 を呈することを意味する。
より一般的には、打ち切りサイクル及びp−opフラ発行に関して仮想的に制約 されないシナリオの集合が発生し得る。例えばp−ops (3−7)が未済中 であればp−op (5)まで打ち切り、タグ5−8を発行し、p−op (6 1まで打ち切り、p−op (4) まで打ち切り、タグ4−5を発行し、p− op (31まで打ち切り、より多(のp−opsを発行する等である。CPU の動作とDECの機能的挙動を与えてこのシナリオは可能であるかも知れないし 可能ではないかも知れないが、主眼□点は上記タグ発行挙動の直後を、p−op sの発行と打ち切りとの間の関係とすべきことなのである。前節で説明したよう に、各打ち切りで各機能ユニットは迅速に空となり、正常動作状態に戻り、打ち 切りを忘れるべきである。
錫I訂nΔ虹屋 各機能ユニットによってp−opsが処理されると、そのユニットの終了バスを 介して終了がDECに通知され、その機能ユニットによるp−opの完了が指示 される。これらはバックエンドによって監視され、追跡されてp−opsが引退 する時点が制御される。バックエンドがあるp−opの引退を何故遅延させるか には特別な内部的理由はあるが、一般的にはp−opが引退する時点を支配する 2つの発行が存在する。即ち正常環境における適切なCPU挙動を確保すること と、マクロ命令(及び例外処理シーケンス)の適切な打ち切り可能性を確保する ことである。
最も基本的なp−opは、全ての機能ユニットがそのp−opの(一般的には正 常な)終了を通知するまでは引退することはできない。DECのデコーダがある p−opを発行すると、そのp”opの型に関する情報もバックエンドに渡され る。これは、そのp−opを処理するであろう、従って終了することが期待され る機能ユニットを含む、この情報に基づいて、完全に終了、即ち完了した後、他 の制約を条件として、バックエンドは可能な限り速やかにp−opを引退させる ことになる。
単一の、そして短いp−opシーケンスマクロ命令の場合、もし何れかのp−o psに障害例外が検出されれば、DECは全命令(即ちその全p−op )の打 ち切りを取り扱わなければならない。これは、それらの全部が完了(正常な終了 で)するまではバックエンドがどのp−opsも引退させないことを要求する。
それらが成功裏に完了すると、それらは全て同時に引退することになる。
7 p−ops未済の最大限界に接近しているp−opの場合には。
命令打ち切りへのこの接近が望ましいものではなくなることに注目されたい。例 えば、ある命令が7 p−opクシ−ンスであるとすれば、7番目のp−opを 発行した後、それ以上のp−opsを発行する前の7 p−opsの全部の完全 終了を待機しながらDECは実効的に静止する。長さが7 p−opsより長い p”opクシ−ンスの場合には、適切な命令打ち切りを支援する上で異なるアプ ローチが絶対的に必要である。
若干の場合には、これはとにかく命令による若干のメモリ書き込みを実際に発生 可能にするある組合わせを介して処理できる。若干の場合には、p−opクシ− ンスの初めに1またはそれ以上の特別p−opsを使用して、この検査を行わな ければシーケンス内の後のp−opsの1つまで検出されない例外障害を検出す る若干の特別検査を行うことも可能または受け入れることができる。本発明は、 これらの特別アップフロント検査の間に実p−opシーケンスの最初のp−op  (等)によって行われる検査を加えることであり、これらの早めのp−ops の1つだけが命令打ち切りをもたらすことができ、全ての遅めのp−opsは例 外障害のない実行が保証される。
命令打ち切りを支援するこれらのアプローチを用いると、早めのp−opsだけ をそれらが全て成功裏に完了するまで未済のままとすればよい。詳述すれば、こ れらのシーケンスではシーケンスの数多いp−opsの最初だけをこのようにし てDEC(即ちバックエンド)によって処理すればよく、また残余のp−ops はそのように制約されないことを指示している。DEC内部ではこの効果に関す る情報は、各p−opが発行される都度デコーダからバックエンドへ渡される。
特別アップフロントp−opsと実シーケンスの最初のp”opとの組合せが全 ての例外障害を捕らえるのに充分であるような多くの場合には、早めのp−op sでさえそれらが各々完了すると直ちに引退させることができる。これは、もし 特別p−opsが命令のバックアウトに重大な影響を及ぼさなければ(即ちそれ らがプログラマ可視状態を変更しなければ)容認できる。
P−opsの引退に関する最後の一般的な考察は、たとλあるマクロ命令のある シーケンスの全てのp−opsが完了したとしても、もし早めのp”opが未だ に完了していなければ完了済のおそめのp−opsは引退することはできないと いうことである。これは本質的に、p−opsは順番に引退しなければならない ことを見る別の方策である。しかし古いp−opが完了し、引退できるよになる と、そのp−op及びこれらの遅めのp−opsの両者は全て同時に引退するこ とになる。
表7はタグ発行及び終了のシーケンスを示す。シーケンス内の4点A、B、C及 びDが示され、4つの間隔の境界を限定している。図4の(A)、(B)及び図 7の(A)、(B)はそれぞれシーケンス点A−Dにおいて追跡論理160及び 打ち切り論理170のレジスタ内に記憶される情報を示す。単一のp−opまた はp−opsの群は打ち切り群に属するものとして指定される。打ち切り群は、 何れかを完了させるために全て完了しなければならない1またはそれ以上のp− opsからなる。換言すれば、もし打ち切り群内のp−opsの1つを打ち切る 必要があればその打ち切り群内の全てのp−opsを打ち切る必要がある。
第1間隔中にp−0pS [3,4,5)が発行され、p−ops (4,5) は打ち切り群(AG)に属する。図6(A)は打ち切り論理レジスタ内にある追 跡中の情報を示す。詳述すれば、p−opが発行されると、p−op情報はタグ 番号に対応する位置に記憶され、 p−ops(3,4,5)のための状態レジ スフがセットされ、それらのp−opsを発行されたものとして指定する。 p −ops (3,5)のための打ち切りビットがセットされ、打ち切り群p−o p (31に属するp−opsf4.51がある打ち切り群の唯一の番号である ことを指示する。
第2間隔中にp−op f61が発行され、p−op [3)の正常終了が通知 される。図6(B)から明白なように、p−op (61のための状態ビットが 状態レジスタ190(6)内にセットされ、p−op f31のためのAP終了 ビットが終了レジスタ192 (3)内にセットされ、そして正常AP終了が終 了記憶レジスタ198(3)内に書き込まれる。
第3間隔中にp−ops (7,8,9)が発行され、p−ops (7,8) はある打ち切り群に属する。この間隔中にIELIはp−op f31が正常に 終了したことを指示し、APはp−op f4)が正常に終了したことを指示し 、そしてp−op f61が正常に終了したことを指示する。
図7(A)はp−ops (7,8,9)のための状態ビットが状態レジスタ1 90 (7)、190 (0)及び19Q (1)内にセットされ、IEU終了 ビットが終了レジスタ192(3)及び190(6)内にセットされ、AP終了 ビットが終了レジスタ192(4)内にセットされることを示している。対応す る正常終了が終了記憶レジスタ198 (3) 、198 (6)及び198( 4)内に書き込まれる。 p−op (31が引退可能であり、状態レジスタ1 90(3)内の状態ビットが取り消されていることに注目されたい。
第4間隔中には、未済として許される最大数である7未済p−opsが存在して いるために、付加的なp−opsは発行されない。
この間隔中に、APはp−ops (5,6,7)が正常に終了したことを指示 し、IEtJはp−ops (4,5,9)が正常に終了したことを指示する。
しかし次いでAPはp−ops (71が異常に(例えばページ障害)終了した ことを指示し、それに次いでIELIはp−ops(7)が正常に終了下ことな 指示する。この結果、p−ops (4,5,6)が引退可能となり、それらは 最早未済p−opsとして指示されなくなる。しかし、p−ops f81が真 書終了しているために、p−ops(8)の打ち切り群の一員であるp−ops  f7)と、p−ops f8)の後に発行されたp−ops f91 も打ち 切らなければならない。従って打ち切り論理170は7のATagをタグ状態バ ス上に発行し、あたかもp−ops (1,8,9)が発行されなかったかのよ うに機能ユニット(この場合AP及びI EtJ)を戻さなければならないこと をこれらの機能ユニットに通知する。
イ匙モ[0’ll= バックエンドは未済p−opsと各機能ユニットのp−op終了を追跡し、バッ クエンド内の保持条件論理165も未ip〜opsのステータスを使用して付加 的なp−opsの発行を制御する。
CPLIの正しい総合動作と特定の機能ユニット(特定的にはDEC,AP及び NP)内の論理の特定のブロックの動作とを保証するために、バックエンドは種 々の型の未済p−ops(7)最大数に関する種々の制約を連続的に課す。動作 中にこれらの制約によって賦課される限界に到達すると、バックエンドは保持条 件信号をデコーダへ送って次ぎのサイクルに発行されるp−opを遅延させなけ ればならないか否かを制御させる。
バックエンドはほぼ半ダースの保持条件信号を生成してデコーダへ送り次ぎのp −opをm遅延させる。デコーダはこれらの信号を使用し、現在デコード/アセ ンブルされているp−op及び通知された保持条件が適用されるか否かに基づい て実際のp−opデコード/発行保持を発生する。各保持条件は1またはそれ以 上の(類似)制約に対応する。任意の制約の場合には、バックエンドが未済が最 大数であることと、これらのp−opsの1つが将に完全に終了したことを決定 すると、対応する保持条件信号が発生する。
多数の制約の場合には、関連する型の最古の未済p−opが完全に終了する最初 のp−opであることが保証される。また若干の制約の場合には、保持条件は、 単に全ての未済(即ち引退していない) p−opsに基づくのではな(、未済 で完全に終了していないp−opsに基づく。あるp−opが完全に終了すると 、たとえ更に数サイクルに互って未済のままとなっても、それは最早特定の機能 ユニットのハードウェア制限に伴う若干の制約には無関係である。
バックエンドはデコーダへ保持条件を提示する主発生器の1つではあるが、保持 条件の源は他に幾つか存在する。このような保持条件は現p−opの発行に関し て適用されるかも知れないし、適用されないかも知れない制限を通知する。p− op発行制御に関して完全に一般的とするために、各クロックサイクル中、擬似 opババス有効p−opかまたは空p−op (これは多分打ち切り動作と共に )の何れかによって駆動されると言うことができる。デコーダの観点からすれば 、以下の何れかが発生しない限りデコー゛ダは常に有効p−opを発行する。
1)バックエンドからの打ち切り優先、2)バックエンドからの保持、 3)BPCからの保持、 4)VIB(仮想命令バッファ)からの保持、5)接頭のみのデコード、 6)2サイクルp−opの第2半分の送り。
勿論、5)及び6)はデコーダが生成するものであり、4)及び5)はマクロ命 令シーケンスの第1 p−opsにのみ適用できるものである。
” B P Cからの保持”は、デコーダが次のマクロ命令をデコードしようと してBPC内にキャッシュできる「制御の転送」命令(若干の型の転送制御命令 はキャッシュされない)を見出した時に発生する。このような命令に対してデコ ーダは、あるエントリ(対エントリの目標流)の予測情報へRPCアクセスを試 みる必要がある。この制御の転送命令に対するBPCアクセスは命令のデコード 中に発生する。もしこのBPCアクセスサイクルをデコーダが使用可能でなけれ ば、RPC保持が生成される。もし予測情報に関してBPCへのアクセスが使用 でき、ミスが発生すれば、たとえRPC目標流アクセスが使用できなくてもデコ ーダは進行することができる。もしヒツトが発生し、BPCの画部分へのアクセ スが使用可能でなければBPC保持が生成される。そうでない場合にはデコーダ は予測情報を用いて進行することができ、−万BPCエントリの目標流はこの転 送制御命令に割り当てられた新しい命令待ち行列内へダンプされる。
”VIBからの保持”は、デコーダが次のマクロ命令をデコードしようとしてい るが、必要な全命令バイト(命令長に対して)を受信していない場合に発生する 。検出済の有効接頭バイトを渡したデコーダは、少なくとも有効演算コードバイ トを有するか、またはVIB保持が強制されなければならない。この演算コード バイトの予備デコードに基づいてもしmod r/mバイトが必要であれば、こ れも提示されるかまたはVIB保持が再度強制されなければならない。更に、m od r/mバイトの予備デコードに基づいてもし5−i−bバイトが必要であ れば、5−i−bバイトに対しても同じことが適用される。これらのバイトが有 効であるとすれば、最終命令バイト(実際にはそれを含むVIB語)が調べられ (そして暗示的に全ての中間バイトも)、もし有効でなければ(即ち“悪い”ま たは“空”)VIB保持が生成される。
一接頭のみのデコード”は、デコーダが次のマクロ命令をデコードしようとして いるが、それまでに接頭しかデコードされておらず、現在は更に2つの接頭がデ コードされている場合に発生する。1接頭及び第2空バイトの場合は、第2バイ トが空でな(なるまでVIBかもの保持“とじて取り扱われるか、または1接頭 バイトが消費されVIBが前進した“接頭のみのデコード”として取り扱われる 。
“第2半分・・・の送り”は、デコーダが2サイクルのp−opの第1サイクル を将に発行する時に発生する。このサイクル中に特別な空p−opが付加的なp −op情報と共に送られ、次のp−opのデコード及び生成は遅延される。
“バックエンドからの保持”は、発行されるp−opの型のために、バックエン ドの信号に基づいて、デコーダがp−opを直ちに発行するのは“安全”ではな いことを理解すると発生する。以下にバックエンドによって強制される全ての未 済p−op制約を列挙する。
1)7つの合計p−ops。
2)2つの制御の転送p−ops、 3)単一のステッピングモード内の1つの打ち切り群、4)セグメントレジスタ 再割り当てを伴う2つのp−ops、5)DEC静止後のOの更なる第1 p− ops。
7つの合計未済p−opsの最大数は全ての引退していないp−。
psに適用される。一般に、従ってこの制約の場合、p−opsは順番に完全終 了しない。しかしバックエンドだけはp−opsを順番に引退させることができ る。
最大2つの未済制御の転送p−opsは、これら全てのp−opsに適用される が、より正確にはこの制約は実際には制御の転送マクロ命令とそれらのp−op シーケンスの第1 p−opsに適用される。この制約の場合、制御の転送p− opsは、それらが未済であり1二完全に終了していない間だけ重きをなす、こ のp−opが完全に終了したが未だに引退していない場合は、ハードウェア制限 に関して最早重要ではない。命令取り込みページ相互要求が生成される時点と、 如何にそれらが処理されるかに依存して、たとえ2つの転送制御p−opsが未 済ではなくともバックエンドはこの保持状態を通知することができる。しかし比 較的古い順次命令流に関して未済命令取り込み倍長語が存在する全ての場合には 、この制約に対するインパクトは存在しない、IEUは制御の転送p−ops  (I E LJを含むp−ops)を順番に終了させることが要求されることに 注目されたい。
p−op単一スチッピングが可能になると(ハードウェアのデバッグの目的から )、一時に1打ち切り群のp”opsが発行され、完全に終了され、次ぎの群が 発行される前に引退する。
セグメントレジスタのために使用される再割り当てスキームの故に、データセグ メントレジスタ(即ちDS、ES、FS、GS)のためのセグメントレジスタ再 割り当てを含む2つの未m p−opsLか存在できない。セグメントレジスタ 読み出し専用の、またはO8及びSSの両方もしくは何れか一方に記憶されるp −opsには、この制約は適用されない。その目的は、p−opsを記憶する何 れかの、及び全てのセグメントレジスタに渡される打ち切り可能性を保証するこ とである。AP静止挙動がO3/SS記憶p−opsに既に適用されているので 、C8及びSSへの記憶を含む必要はない。
DEC静止静止opが発行されるとデコーダは更なるp−opsを順次発行し続 けることができるが、ある更新された制御ビット情報がAPからバックエンドに よって受信されるまでは次のマクロ命令のデコードを遅延させなければならない 、これらの制御ビットは、デコーダのマクロ命令デコード及びp−opルアセン ブリプロセス影響するEFl agsの種々のビットである。
デコーダが依存する1またはそれ以上のEFl agsビットに変更をもたらす p−opは、DEC静止静止opとして取り扱わなければならない。これによっ てこれらのビットのDECコピーが、更なるマクロ命令のデコードが発生する前 に更新されるようになる。予測される更新がAPから受信されるまで、バックエ ンドは保持条件を生成して更なるマクロ命令デコードと第1p−opの発行とを 禁止する。
打ち切り無効を除き全てのデコーダ保持条件は、デコーダが次のデコードサイク ルを始動させなければならない時点までに(即ち、現在活動の命令待ち行列を前 進させるために制御等を準備し、新たに活動の待ち行列にアクセスして新しいV IB内容を発生させ、そして予備デコードを遂行するのに遅れないように)デコ ーダの次の動作状態を決定可能とするのに充分に早めに決定される。デコーダが 生成するp−opは破棄され、空p−opによって置換されるから、打ち切り無 効は後刻まで生成されないし、生成する必要もない。同時にバックエンドによっ てデコーダは生成すべき新しいp−opシーケンスにジャムされ、ベクトル化さ れる。(注:タイミング及びベクトル宛先に対して1以上のジャム及びベクトル の型が存在する。)上述のように、種々の(DEC内部)ユニットによって通知 される正常保持条件の場合、デコーダは各機能からの実際の保持信号と対話せず 、デコーダはこれらの信号を受信しない。代わりとして各ユニットは保持条件信 号を送り、これらの信号は生成中のp−opの型を表す状態信号と組合わされ( 論理積され)で実際の保持信号を発生する。これらの信号は、デコーダが生成す る付加的な保持信号と組合わされ(論理和され)で総合デコーダ保持信号を発生 する。これはp−op発行及びデコーダ状態シーケンシングを制御するだけでは なく、他のユニットにも送られて、デコーダとの対話に限ってそれらの状態シー ケンシングに影響を与える。
1腹玉三二上豆立 機能ユニットがp−opsを処理する際に、それらはプログラマ可視及び関連状 態に対する変更を打ち切るか、またはバックアウトする能力を確保しなければな らない、これらは、全ての共通して変更した性能限界状態、汎用レジスタ、不動 小数点レジスタ、及び殆どのセグメントレジスタ、PCl及びステータスフラグ を含む、他のもの、即ち鍼灸に変更されることがない特別状態は、履歴スタック を介して、またはレジスタ再割り当てを使用して戻されることはない。代わりに これらは、支配している(1または複数の)機能ユニットによってこれらが変更 できる時点を制限することによって処理される。このプロセスを静止と名付ける 。
本質的に、任意の特別なレジスタの場合、(1または複数の)所有者は、関連p −opが最古の未済p−opとなるまで変更の遂行を遅延させる。このようにな ると別の(早めの) p−opのためにそのp−opが打ち切られる可能性はな くなる。更に、その打ち切りをもたらすであろうこのp−opを原因とする考え 得る理由は、多分既に検査済の筈である。従って、今は変更を遂行するのに安全 と考えられる。(もし爾後に支配/変更機能ユニットがそのp−opのバックア ウトの理由を検出できれば変更を取り消すことができるように、何が必要であっ てもそのようにしなければならない、) もしあるp−opをAPに加えて他の機能ユニットによっても処理されれば、そ の支配中の機能ユニットだけが異常終了を通知できる。これら全p−’opsは 、他の機能ユニットが常に正常終了を通知するように限定され、書き込まれる。
もし2つの機能ユニットが共に特別なレジスタを支配していれば、それらは各々 それら自身のコピーを変更し、そのp−opは両ユニットが常に正常終了を通知 するようになろう。
任意の場合には、あるp−opによって変更される特別状態に依存する機能ユニ ットだけが静止に巻き込まれる。そのp−opを処理する他の全ての機能ユニッ トは正常に挙動する0本質的に、あるp−opの静止は局所化された基準で、且 つ必要な場所だけで発生する。なるべ(多くのCPUは正常処理を継続し、(1 または複数の)静止機能ユニットによるp−op処理だけが多分減速される。
殆どの特別レジスタをAPが支配している限り、殆どの静止p−opsはAPだ けによる静止を要求する。これらの多くはAPだけのp−opsであり、一方残 余はA P/ I EU p−opsである。
NPによる静止(AP/NP p−ops上の全部)は、それが処理する3つの 制御レジスタに対する変更のためである。デュアル機能ユニット静止の場合は、 現在AP及びIELIに制限されている。これは、あるp−opがEF1agレ ジスタの方向フラグを変更する時に発生する。AP及びIEUは共に最新コピー を維持しているから、AP及びIEUは並列ではあるが、独立した静止を遂行す る。
たとえ任意のp−opを処理中にある機能ユニットが静止しても、これは必ずし もそのユニットがそのp−opの処理を開始する前に権利を静止することを意味 しない。特にAPが静止の場合には、静止前にそのp−opの処理の一部を遂行 することができる。APに必要なことは、特別なレジスタを変更する点において 静止することだけである。静止が完了するとAPは変更を遂行し、処理を続行す ることができる。
DECも静止を遂行することはできるが、これは他の機能ユニットによって遂行 される静止にやや似ているだけである。DEC静止静止opの発行に続いて、D ECは若干のp−opsのアセンブリ及び発行を遅延させる。この遅延は、AP からの[制御ビット更新」をDECが受信するまで発生している。DEC静止の 更なる説明は先行節を参照されたい。「制御ビット更新」に関しては、後述のA P終了バスの節を参照されたい。
DEC静止の場合には、DECがAPから制御ビット更新を受信する他の場合と 同様に、若干の特別制御ビットのDECコピーが更新される。これはAPによる これら制御ビットのそれ自身のコピーの変更と共に発生する。DECによって保 持されているコピーは、DECが所有しているマスタコピーとしては見られない が、その代わりにAPによってDEC内に維持されている二次コピーとして見ら れる。DECはこれらのビットに対する更新をバックアウトする能力は有してい ない。しかし、APもこれらのビットのマスクコピーを変更せねばならず、また それ自身のコピーを変更する前に制御ビット更新を送らないであろうから、これ が問題となることはない、これはAP静止を要求し、従ってDECの制御ビット コピーの更新は関連p−opが最古の未済となるまでAPによって効果的に遅延 させられる。
黒ILI環 前述のように、バックエンドは各機能のp−opsの終了を監視し、全ての未決 p−opsに関するステータスを累積する。この情報に基づいて、バックエンド はp−opsの引退(一般的には全ての関連ユニットによって正常終了した後、 対異常終了)を制御し、新しいp−opsがデコーダによって発行される時点に 影響を及ぼす。p−opsが完了し、1またはそれ以上の異常終了を受信すると バックエンドは逼切な応答を決定する責も負い、次いでそれを適切な時点に開始 する。
バックエンドは所与のp−opの異常終了を含む終了を受信すると、一般に全て の予測される終了を受信してしまうまで、それらを累積する。もし異常終了が存 在すれば、そのp−opは引退することを許されない。この時点で、バックエン ドは適切な応答を開始する。もし複数の異常終了が存在すれば、バックエンドは 異常終了に対する応答を優先させ、選択する。異常終了処理のこれらの両面を以 下に説明する。
応答を開始する前のこの待機は、早めの/古いp−op異常終了応答(これらは 後刻検出され開始される)によって入れ子され/取り賛えられる異常終了応答か ら生ずる対話の場合を処理する設計上の複雑さを最小にするために行われる。ま た例外処理の開始をもたらす異常終了の場合だけをこのようにして処理するもの とすれば、待機によって性能に重大なペナルティが課せられることはない。
バックエンドによって開始される特定応答は、当該異常終了と古いp−opsが 未決か否かとに依存する。これは、当該p−opに明示的に依存するのではなく 、特にそのp−opの演算コードに明示的に依存しない。応答は適切なタグ(こ れは必ずしも異常終了p−opのタグである必要はない)を有する打ち切りサイ クルを送ることが多い。打ち切りサイクル中に、または併発打ち切りを伴わない 空p−opを発行するサイクル中に、バックエンドはデコーダがデコード及びp −opが発行した演算を続行する状態へデコーダをジャムし、ベクトル化する。
例外処理を開始しなければならない場合には、デコーダはマクロ命令処理へ戻る 前にアセンブル及び発行する適切なp−opクシ−ンスにベクトル化される。開 始する例外の型に依存して、異常終了したp−opは打ち切り内に含ませてもよ いし、または正常のように引退させてもよい。
応答する異常終了が例外処理をもたらさないような殆どの場合には、 p−op が完全に終了すると即答が開始される。僅かな特別異常終了の場合には、その終 了がバックエンドによって受信された直後に応答が発生する。これらの終了は正 常終了とは考えられないが、それ以上に有益である。これらの終了は、爾後の終 了が予測されること、及び機能ユニットから特別異常終了の生成を要求されるこ とから真の終了ではない。
これらの場合の対する応答は例外処理の開始を含む上述の応答に類似し、ある適 切なp−opクシ−ンスにベクトル化するだけではなく代わりにマクロ命令へ戻 ってベクトル化する可能性を含む。換言すれば、p−opシーケンス内の遅めの p−opsはうちきられ、デコーダはマクロ命令流のデコードを(現命令待ち行 列または異なる命令待ち行列からの)次の命令から続行する。また少ない異常終 了の場合、応答が直接デコーダに影響な。
与えないか、DECに内部的に他の演算を開始させるかの両方または何れか一方 をもたらす。
上旦亘且ヱバ玉 表5は、5ビツトIEU終了バス62のフォーマットを示す。このバスは標準C MOSスタイル時分割I10を使用し、p−opsの正常終了と2つの型の異常 終了(例外及び誤予測分岐方向)とを通知する。φ2にバスは3ビットp−op フラグ2ビット終了Idとを供給する。
DECのデコードのタイミング及びp−opルアセンブリバイブラインに、もし IEU終了コード及び関連p−opタグがφ2−φ1に(即ち1フェーズ早く) 時分割で送られると、DECは正しい次のp−op (正しい次のマクロ命令か らの、または適切な例外処理p−opシーケンスからの)が後続する打ち切りサ イクルで直ちに応答することができる。
一般に、IEUはp−opsを順不同で(DECによる発行の順番に対して)終 了することができ、またそのように終了するであろう。p−opsを処理/実行 する順番に関する限りにおいて同じ型の2つのp−opS間の相対直列化をIE LIによって維持しなければならないような若干のp−opの特定の場合が存在 する。
一般的に、これらの場合の実行順序は決定的であって、終了順ではない、IEL Iが条件付き(近)制御の転送p−opsだけを見る制御の転送p−opsは、 相対直列順に終了することがIEUによって要求される。DECの観点からすれ ば、これらのp−opsを順番に処理することが絶対的に必要ではない。
IEUがp−opsを処理するに当たって、それらを何時終了できるかに関して 2つの場合がある。l ) p−opsが実行後にDXBus転送を要求しない 場合、そのp−opは正しい終了を知った時に終了することができる。2)実行 後にp−opsがこのような転送を要求する場合にはそのp−opは、転送が確 実に発生することを知るか、または実際に発生していることを知ると終了できる 。何れの場合も終了はこれらの時点の後に発生することができる。換言すれば、 1)の場合には、もし終了が無条件に正常であればALIJ動作中に、またもし 終了がALLI動作に依存していればALLI動作が完了した直後に、p−op を終了させることができる。2)の場合には、IEtJが転送に関してDXBu s調停に勝利したことを知ると、p−opを終了させることができる。
一般的なIEtJパイプラインと、出力待ち行列タイミング及び命令と、IEU Term (即ちφ2−φ1)のタイミングとに基づいて、現在ではIEUの以 下の実際の終了挙動が予測される。結果をDXBusを介して転送する必要がな いp−opsの場合には、終了はALU動作サイすル中に開始される。殆どのp −opsの場合、これは無条件に正常終了であり、転送制御p”opsの場合の 正しい終了はALtJサイクルの最初の部分中に決定される(これはINTO命 令p−opにも適用される)。時には、終了バス上へ出て行(ことができないこ の終了は待機させられ、後刻(しかし、勿論極めて直ちに)DECへ通知される 。
結果をDXBus上へ転送する必要があるp−opsの場合には、終了は転送サ イクル中に開始される。この場合も、もし終了が直ちに出て行くことができなけ れば待機させられ、後刻送られる。
上記l)の場合に属し、異常終了をもたらし得る、そしてALU動作に依存する BOUND及びREPed列マクロ命令に関連するp−opsの場合には、1) の場合の上記タイミングは作業しない。これらの場合p〜opsは、あたかもそ れらが結果をDXBus上へ送出する必要があるかのように取り扱われる。
終了が何故順不同に生成されるかについては2つの理由がある。第1に、IEt Jは処理/実行するp−opsを順不同に選択する。第2に、実行順序に対して IEtJはp−opsを更なる順不同で終了することができる。概述すればIE LIは、1 ) p−opsの場合は直ちに終了し、2 ) p−opsの場合 には先ずDXBus上へ進まなければならない(多分そのようにするにはIEt Jのデータ出力待ち行列内で待機してから)。後者の場合、これらのp−ops は、それらが実際にDXBus上へ進むと終了する。
付加的に、待ち合わせが1)及び2)終了を(一時的に)超えるものとすれば、 待ち合わせした終了に先立って若干の高い優先順位終了(例えば制御の転送終了 )が通知される可能性もある。(勿論制御の転送p−opsの相対直列化は確保 しなければならない。) 制御の転送終了には関係なく、全ての場合にIEtJはp−Opを終了する前に その処理を完了させなければならない。これはAPからIEtJへのレジスタ更 新をもたらすか、または単純にメモリオペランドをレジスタへ転送するp−op Sを含む。両型のp−opsに関して、そのp−opが終了する前に発信オペラ ンドを受信しなければならない、これをAPの挙動と対比して説明すると、種々 の転送およびレジスタ更新の場合、APは何が効力のあるレジスタ更新であるか を受信する前に終了することができる(組合わせるレジスタ結果を必要とするか も知れないとしても)。
IEUはp−opを処理中に検出した異常に応答して異常終了を通知した後は、 そのp−opが正常に終了したかのように他のp−opsの処理を続行する。I ELIはp−opsの処理を停止せず、ある意味では異常終了に対する来たるべ き応答を待機する。
上旦旦三l 以下に表5に示す終了を説明する。
知らせるべき実終了が存在しない場合には終了を通知してはならない。終了バス は全クロックサイクル中有効であり、常に何かを指示しなければならない。
正常終了は、あるp”opの処理中に異常が検出されなければ通知される。
誤予測分岐方向終了は、予測した分岐方向が正しくない場合に制御の転送p−o ps (これらは条件付き近制御転送でなければならない)上で通知される。こ れは、正しく予測された分岐方向の場合の正常終了の代わりである。
異常終了は例外理由のためのものであり、対応するアーキテクチャ的に定義され た例外を通知するためにそれぞれ使用される。除算誤差はDIV及びIDIVマ クロ命令のp−opシーケンス内のEUa’bortと共に注釈をつけるp−o ps上に使用される。束縛検査及びINTO溢れはそれぞれBOUND及びIN TO命令のE U a b o r t p−ops上で使用される。
REP’ ed命令繰り返し停止終了はREP’ ed列ママクロ命令p−op シーケンスのp−ops、即ちELIabortと共に注釈をつけるp−ops 上に通知される。もしそのp−opによって遂行される試験が、列マクロ命令の 繰り返しを停止させるべきことを指示すれば、この終了は正常終了の代わりに通 知される。
もしp−op試験が列命令の繰り返しをを始動させるべきではない(即ち0繰り 返しの遂行)ことを指示したとしても、これが適用される。これらの状況におい て例外が検出されなければ、正常終了が通知される。
1つのp−opに多重異常をIEtJが検出する可能性はなく、従ってIEtJ 異常終了間に相対優先順位は発行されないが、他の機能ユニットの終了に対して 優先順位が発行される。IEtJ内の所与のp−op型に対して1つの型の例外 しか存在し得ないから、DEC打ち切り論理はそのp−opに基づいて例外の型 を独特に識別できる。IELl異常終了は、AP及びNP異常終了に対してDE Cによって認識されたそれらの優先順位に基づいて幾つかの群にグループ化され る。殆どの異常終了は中間優先順位群内にグループ化され、一方REP停止終了 は低優先順位を有する。
誤予測分岐方向終了は、全てのAP終了に対して固定された特定の優先順位を有 していない点が特別である。その代わりにAP終了と庭企り互二二実行分岐方向 (予測した方向及び予測の正しさ)がDECバックエンドによって開始される動 作を決定する。
ΔヱJLL五ス 表6はAP終了バス60のフォーマットを示す。このパスは標準CMOSスタイ ル時分割I10を使用し、p−opsの正常終了及び種々の異常終了を通知する 。
DECデコードのタイミングとp−opルアセンブリパイプラインに、もしAP 終了コードが1フェーズ早めに(φ2−φ1)時分割で送られれば、DECは正 しい次のp−0p(次のマクロ命令からの、または適切な例外処理もしくは他の p”opクシ−ンスからの)が後続する打ち切りサイクルで直ちに応答すること ができる。終了コードの符号化は、重要な場合に、DECは理想的な応答時間を 提供できるようになっており、別のp−opを発行するかもしくは打ち切り、ま たは正しい次のp−opを発行する。他の例外の場合は、応答時間内に効果的な 特別サイクルが存在する。即ち打ち切りサイクルの前に1つのサイクルが発生し 、次のサイクルに正しい次のp−opが後続する。
殆どの異常終了を処理するこの特別サイクルはDECのバックエンド間に配分さ れて何が起こったのか及びどうするのかが見出され、またDECのデコーダがジ ャムされてベクトル化され、正しい次のp−opのデコードが開始される。迅速 終了の場合バックエンドは制限された処理状況を有する。この迅速処理を支援す るのは、APが常にp−opsを順番に終了させるので、バックエンドが次の終 了に関連付けられるp−opフラを予測できることである。
迅速終了は、あるp−opの正常終了、及び任意選択的に誤予測アドレス及びD ビットの両方または何れか一方をも指示する制御ビット更新(APからDECへ )のような状況に対して設けられる。正常終了の場合、p−opフラ及び支配下 にあるp−opの型に関する情報を有するバックエンドは、保持条件信号内のこ の終了をデコーダと分岐制御論理とに反映させる必要がある。
誤予測アドレス及びDビットの両方または何れか一方を伴わない制御ビット更新 の場合、終了バス転送は当該制御ビットのための更新値を供給し、その後にデコ ーダはマクロ命令流のデコードを続行することが可能になる。もし誤予測アドレ ス及びDビットの両法または何れか一方も指示されていれば、この終了のタイミ ングは実効的に他の全ての非迅速終了と同じようになる。
前述のように、APはp−opsを順番に(DECが発行するp−opsの順番 に対して)終了しなければならない。これはAPがp−opsを処理する順番と は無関係であるが、他の理由からAPがp−opsを処理できる順番に対して制 約が存在する。全ての場合、 p−opはそれが完了した後は何時でも終了させ ることができる。しかし、IEtJの状況とやや類似して、p−opsを終了さ せることができる最も早い時点に関して2つの場合が存在する。場合1はp−o psが実行後にDXBus転送を要求しない場合であって、正しい終了を知ると p−opを終了させることができる。p−opsがこのような転送を要求する場 合2では、転送が確実に発生することを知るとp−opを終了させることができ る。換言すれば、場合1では全てのシステムメモリの(異常終了に対する)参照 及び必要検査が完了するとp−opを終了させることができる。場合2では、転 送に関してAPが、DXBuSまたはPAdrBus調停に勝利したこと及び転 送が確実に発生するであろうことを知るとp−opを終了させることができる。
これはPAdrBusメモリアドレス参照転送がTLBミスのために打ち切られ る場合を含み、この終了は転送が実際に完了するか否かを知る前には発生するこ とができない。若干の終了に特定して、DECによる付加的な制約/要求を以下 に説明する。
IEtJ、NP、またはメモリからの汎用レジスタ更新の受信を除き、更新が受 信される前にAPは処理済p−opを終了させることができることに注目された い。更新は本質的にそれ以上の処理を要求することはなく、単に適切なレジスタ 内へ記憶させ、これを表すためにレジスタインクロック制御を更新するだけでよ い。APは、関連p−opが完全に終了する時点までに。
従ってそれが引退する前にこれらの更新を受信することを保証されている。勿論 、それでもAPは打ち切り発生に関して予測されるレジスタ更新を適切に追跡し ていなければならない。
APは、あるp−opの処理中に検出した異常に応答して異常終了を通知した後 に、そのp−opの処理を適切に終らせる。終了に依存してAPは更なるp−o pの処理を中止することができる。この挙動は、DECが例外処理を開始して応 答するような異常終了の後に発生する。他の全ての場合、APは処理を続行する 。
処理を中止した後、APは必要内部状態の退避及び凍結の両方または何れか一方 を行い、異常終了に対する来たるべき応答を待機する。この応答は発生しないか も知れず、より一般的にはAPは例外処理を開始する全ての応答に調和しなけれ ばならない。
人旦紅ヱ 以下に表6に示す終了を説明する。p−ops上に例外を指示する全ての異常終 了に対して、終了Idのビット<3.、Q>が処理を開始すべき例外の割り込み 数に直接的に対応することに注目されたい。これに対する2つの例外は、特別な 場合に使用される代V[デバッグ及び一般的保護j障害コード(即ち11110 10x)である。「遮断異常終了」(コード=11111001 )も、例外処 理が発生せず代わりにDECが遮断されることが特別である。
通知すべき実終了が存在しない場合には終了を通知してはならない。あるp−o pの処理中に異常が検出されない場合には正常終了が通知される。
「制御ビット更新」は、全てのDEC静止静止opsと共に使用される。これら はIF、D、及びBビット(EFlags及び種々のセグメント記述子内に見ら れる)の全部または何れかに直接または間接的に影響を4久るp−opsである 。APが影響を受ける(1または複数の)ビットの(1または複数の)新しい値 を決定すると、この終了は更新値をDECへ送るために使用される。
これは真の終了ではなく、特に制御ビット変化をもたらすp−Opを終了させる ことがないことに注目されたい。通常のp−op終了が未だに要求され、 制御 ビット更新の後に発生しなければならない。(制御ビット更新自体は先行p−o pの終了に後続しなければならない。)DECは、制御ビット更新終了を受信し た後ならば何時でも、p−opの終了には無関係にp−op発行を続行するであ ろうことにも注目されたい。概念は、p−opの処理中に、影響を受けた制御ビ ットの新しい値を知ると直ちにAPはDECにこの更新を送り、そのp−opの 処理を続行するということである。
上記制御ビットはプログラマ可視ビットを表すから、AP及びDECは潜在的に これらのビットに対する変更をバックアウトできなければならない。これを(性 能に重大な衝撃を与えることなく)回避するために、APは制御ビット更新を通 知する時に(後になってではなく)これらのビットのマスクコピーを変更し、当 該p−opが最古の未決p−opとなるまでこれらの両動作を遅延させる。本質 的に、制御ビット更新を通知することは、更新を通知する前にAP静止を暗示す る。
制御ビット更新の第2の形状は第1の形状−に類似しているが、更新の転送をバ ス上の「誤予測アドレス」及びDビットの両方または何れか一方にも指示する。
これは、DECが目標アドレスを予測した(及びDビットが変化しないものとし た)制御p−opsの転送に使用される。もし制御p−opを転送するためにD ECが予測した(物理)目標アドレスが正しくなければ(即ちAPが発生した( 物理)アドレスと異なれば)、APはこれを通知してDビットの更新値を送らな ければならない、勿論、APはアドレス更新(即ち、正しい目標アドレス)も命 令キャッシュタグへ送らなければならない。
APは、PAdrBusを通して正しい目標アドレスを送出し、同時に誤予測ア ドレス及びDビットの両方及び何れか一方と共に制御ビット更新を通知する(同 時実行が要求される)ことによってこれをすべて行う。この更新は、更新制御ビ ット値を送ることに関しては上記第1の形状に類似する。更に、DECは誤予測 を表すようにある内部状態を適切に変更し、正しいアドレス及びDビットを用い て命令取り込み及びデコードを再開する。前述のようにDECは、DECが次の 有効マクロ命令をデコードできるようになる前に更新された制御ビットを受信す ることが本質的に保証されている。
第1の制御ビット更新とは異なりこれは真の終了であり、特定的にはその転送制 御p−opを終了する。APが正しい目標アドレスを送出し更新を通知するよう に与えられているタイミングは、もし別の異常(即ち例外)検出されれば「制御 ビット更新終了」の通知を回避することを可能にする。即ち、APはアドレスを 送出し更新終了を通知するか、または異常終了を(無効アドレスと共に)通知す るかの何れかである。
異常をもたらすページクロスの場合、PAdrBus転送は発生しない。これは 、セグメントオーバーラン(一般的保護障害をもたらす)、ページ障害の何れか または両方の故であり得る。APは異常終了を通知して障害が発生したことを指 示する。もし命令実行がページ境界を交差することを真に必要とすれば、例外処 理が開始される。APから見れば、ページクロス要求の処理及び終了は周囲のp −opsとは無関係である。DECはp−opの流れ及びp−op例外に対して ページクロスに例外を適切に優先させることを重要視する。
例外のための各異常終了は対応するアーキテクチャ的に定義された例外を通知す る。2つの場合(例えば「一般的保護」障害)には、例外を通知する1対の終了 Idが存在する。一方は一般的に使用され、他方は他の機能ユニット(すなわち IEtJ及びNP)による異常終了に対して異なる優先順位を有する限り区別す る必要がある若干の例外環境において使用される。
これらの異常終了の若干が特定のマクロ命令に関係付けられていることに注目す べきである。特定的には、「387使用不能」、「無効演算コード」、および「 一般的保護」 (コード=11110100 )終了は関連p−opシーケンス の最初のp−ops上で通知される。「一般的保護」終了(コード=11110 100 )及び「デバッグ」終了(デバッグ障害に対してコード=111101 01)はマクロ命令シーケンスの最初のp−ops上で通知される。「デバッグ 」終了(デバッグトラップに対してコード=11110(1(illはマクロ命 令及びクスクスイッチシーケンスの最後のp−ops上で通知される。
Y旦1益区 MCC25終了バス65は、標準cMosスタイル時分割I10を使用する1ビ ツトバスである。実際の信号転送はφ1−φ2境界で発生しく即ちMCC終了は φ2転送である)、他のフェーズ境界での転送は定義されていない。このバスは p−。
psから直接上じた正常メモリ書き込みの終了を通知するために使用される。メ モリ読み出し、システムメモリ参照、及び他の参照(例えばl10)のための終 了は生成されない。
MCCはメモリ参照アドレスを順番に(メモリ参照をもたらすp−opsの発行 順に対して)APから受信する。MCCは、この順番にメモリ書き込み参照を終 了させなければならない。このため、終了を通知するのにp−opフラの明示転 送は必要ではない。書き込みの順番終了に基づいて終了バスを監視しているDE Cのバックエンドは、とのp−opフラがMCCからの次の終了に組合わされる かを予測する。
メモリ書き込みの終了は、アドレスをAPから受信しそれを適切な書き込み予約 待ち行列内に配置する時に通知される。これは、MCCがそのデータを受信する 時及び書き込みが待ち行列を出る時には無関係である。p−opによる読み出し ・変更・書き込み操作の書き込みも終了する。誤った位置合わせをもたらす、ま たは4バイトメモリ書き込みより大きいp−opsの場合には、APが1より多 くの誤位置合わせされたアドレスを生成する必要がある。このよりなp−opの 書き込みの終了は、最後のアドレスが予約待ち行列内に配置されると通知される 。
メモリ書き込みをもたらすp−opsのMCC終了には拘りなくAPはそれ自信 のこれらのp−opsの終了を生成する。これは、APが1またはそれ以上の語 位置合わせされたアドレスの最後のアドレスをPAdrBusを介してMCCに 転送する時に発生する。MCCは通常(1または複数の)アドレスを直ちに待ち 行列内に配置することができるから、通常はMCCがメモリ書き込みアドレスの 受信を指示する必要はない。しかしく待ち行列が一杯であるか、または待ち行列 の1つの中の先行(古い)書き込みと重なり合うために)MCCがアドレスを適 切な書き込み予約待ち行列内に配置できないような場合には、MCCによる終了 が必要である。これらの後者の場合には、DECがp−op発行を進めるのを防 ぐために終了が遅延される。
もしMCCが、遅延させることができるそれ自信の終了を有していなければ、次 のことが発生し得る。APがp−opを終了すると、DECは書き込みを生成し たp−opが完了し書き込み予約待ち行列内で安全であると確信する。DECは この書き込みアドレスに対応するタグを過ぎた7またはそれ異常のp−opフラ の発行に進む、これでMCCは、打ち切りの処理、データとアドレスとの突き合 わせ、重なり合ったメモリ読み出しの処理、及びキャッシュへの書き込みの遂行 の諸問題を有することになる。
従ってMCCは重なり合い問題を有するアドレスを待ち行列内に配置するのを遅 延させる能力を(及び、勿論、APがそれ以上のアドレスを送るのを遅延させる 能力も)有していよう。
MCCはアドレスを遅延させる一方で(そしてこれが1つのp−ops書き込み の最後のアドレスであるものとして)MCCによる書き込みの終了も同様に遅延 させる。アドレスを最終的に適切な待ち行列内に配置するのと同時に、MCCは 終了を通知する。
MCCからの終了が予測されるp−opを、MCCを除く全ての予測される機能 ユニットが完全に終了させている間も、DCCはそのp−opを未済として考え 続ける。本質的に、DECはp−opを引退させ得る時点に関する限りそのp− opのMCC終了を他の機能ユニットの終了と同類項として扱う。
MCCの正常終了のみの通知に関する限り、他の機能ユニット(AP、IETJ 、NP)による異常終了との直接対話は存在しない。間接的にも、MCC終了が 予測されるp−opをMCCが必ずしも終了させ得るとは限らない。APがp− opを異常に終了させ、関連するメモリ書き込みの全てのアドレスを生成しない (そしてできないかも知れない)場合には、DECは然るべく挙動する。即ち、 DECはこれらの場合を再編成し、MCCの異常終了の処理を遅延させず、そし て未決メモリ書き込みのp−opフラを適切に追跡し続ける。
APがp−opを正常終了させるが対応するメモリ書き込みを生成しない特別な 状況も存在する。これらの場合にはAPは「正常終了、しかし書き込みなし」を 通知して書き込みが発行されないこと、従ってMCCからの終了が期待されない ことをDECに指示する。
X旦且ヱガl 要約すれば、NP終了は2ビツトのバスであり(p−opを順番に終了させるこ とを前提としている)、浮動小数点突き合わせ例外を通知する。CPU内には任 意選択NPを含むための論理が設けられているが、詳細説明は省略する。
二乏ムヱ五■工旦工 前述のように、命令を流出させるのに必要な事象までCPUの状態を戻すために 使用されるメカニズムの1つはレジスタ再割り当てである。この技術は必然的に 、プログラマ可視の(即ち、仮想)レジスタの集合をより大きい集合の物理レジ スタ内に写像することを伴う。物理レジスタの数は、少なくとも未決とすること が許され且つレジスタを変更することができるp−opの最大数だけ仮想レジス タの数を超えている。この技術は汎用レジスタファイル及びセグメントレジスタ ファイルの両者に適用される。
特定のマクロ命令アーキテクチャ(803861は、VRO〜VR7と名付けた 8つの仮想汎用レジスタと、6つの仮想セグメントレジスタとを提供する。前述 のように、多くとも合計7つのp−opsと、セグメントレジスタを変化させる 多くとも2つのp−opsを未決とすることが許される。これと調和して、AP  15は、FRI〜FR15と名付けた15の物理汎用レジスタの集合と、8つ の物理セグメントレジスタとを含み、一方IEtJ17は15の物理汎用レジス タを含む。物理レジスタPROがIETJ内に存在しているが、これは他の目的 のために使用される。
図5は仮想レジスタVRO〜VR7から物理レジスタPRI〜PR15への写像 の概要図である。各物理レジスタは“■”で概略的に示す対応付けられた有効ビ ットを有する。これらの有効ビットは機能ユニットによって以下のように使用さ れる。
汎用レジスタ再割り当てを支援するために、バックエンドレジスタ再割り当て論 理175はポインタ集合アレイ177と自由リストアレイ178とを維持してい る。ポインタ集合アレイ及び自由リストアレイは各々8リストの記憶を提供し、 これらの各リストは未iff p−opsのタグの最下位の3ビツトに対応する 3ビツト索引を有している。各ポインタ集合及び各自由リストは図中に列(co lumnl によって表されている。
所与の索引のためのポインタ集合及び自由リストは、その索引に対応するタグを 有するp−opの発行の直前の状態を維持する。ポインタ集合は仮想レジスタV R〜VR7に対応する8つのエントリを含み、各エントリは物理レジスタの1つ を指すポインタを含む。自由リストは、ポインタ集合の一員(メンバー)によっ て指されていない物理レジスタを指すポインタを含む7つのエントリを含む。
タグ=0を有するp−opの発行前の初期状態を考えよう、この初期状態では、 VROがPR8に、VRIがPR7に、VH2がPR6に、・・・、そしてVH 2がPRIに写像される。また自由リストはPR9乃至PRI5を指すポインタ を含み、PR9がリストの先頭でPRI5がリストの尾である。この状態はタグ 二〇が先頭のエントリの列内に記憶される。
さて、以下のタグO11及び2を有する3つのp−opsの代表シリーズを考え よう。
タグ=Q: VRO=VRO+VR3 タグ=l; VR3=VR3+VR5 タグ=2: VR4=VRO+VR3 VROは先にPR8上に写像されているから、p−op (0)は、p−op  fO)が完了可能となることが確立されるまでPR8を変更することはできない 。従ってp−op (01の始動前に存在する写像は、VROを自由リスト内の 物理レジスタ上へ写像するように変更しなければならない。PR9が自由リスト の先頭であるので、VROがPR9上へ写像される。PR8は、8つのp−op sが発行されp−op (0)が引退したことが保証されるまでは先頭に立たな いから、自由リストの尾に配置される。自由リスト内の他の各項目は先頭に向か って前進する。従ってタグ=Oと共に発行される実際のp−opはPR9=PR 8+PR5である。
次のp−op 、即ちp−op fl)はVH2を変更しようとする。このp− opのバックアウトを可能ならしめるために、VH3は自由リストの先頭にある 物理レジスタ、即ちPRIO上へ写像される。PR5は自由リストの尾に配置さ れ、PRIIは自由リストの先頭に前進する。タグ=1と共に発行される実際の p−。
pはPR10=PR5+PR3である。
P−op f2)はVH2を変更しようとする。従ってVH2は物理レジスタP RIIに写像され、VH2が自由リストの尾に配置される。タグ=2と共に発行 される実際のp−opはPR11=PR9+PR10である。
物理レジスタを変更するp−opがある機能ユニットに到着するとそのレジスタ の有効ビットはクリアされ(無効を表し)、そのp−opが終了した時にのみセ ットされる(有効を表す)。
これは、物理レジスタを読み出そうとしている遅めのp−opのために正しいデ ータが存在していることを保証するために必要である。図示の特定例においては 、p−op (01がPR9を変更し、p−op (11がPRIOを変更する 。p−op (2)はPR9及びPRIOの内容を要求するからそれが実行可能 となる前に有効源レジスタ(PR9及びPR10)を有していなければならない 。これはp−op (1)及びp−op [21が終了した場合にのみ発生する 。p−op (01及びp−op[1)は、もし何れかが一掃されるとp−op (2)も−掃されてしまうから、引退してはならないことに注意されたい。
データキャッシュサブシステム の き゛ ″−51図6は、データキャッシュ サブシステムの制御を提供するMCC25のブロック線図である。そのジョブは 、AP 15が発生しPAdrBus 55を介して引き渡される書き込みアド レスを、幾つかのチップの何れかによって発生されDXBus 58を介して引 き渡される対応データに結び付けることと、書き込みデータ(32ビット倍長語 内に右寄せされている)とAPによって指定されているバイトアドレスとをバイ ト位置合わせすることと、書き込みと爾後の読み出しとの間の同一アドレスに対 するメモリデータ従属を検査し、データが使用可能になると直ちにそれらを短絡 することと、書き込み動作を発生させたp−opsが成功裏に終了することが保 証されるまで書き込み操作を待機させることによって実行の緊密さくコヒーレン ス)を維持することと、必要な場合には主メモリまたはキャッシュ自体を変更す ることな(書き込み操作を打ち切り可能ならしめることである。
データキャッシュスブシステムは3つのカテゴリのデータ操作を扱う。正常デー タアクセスは、NP 20が遂行するもの(もしあれば)を除いて、プログラマ 指定のデータアクセスである。他の2つのカテゴリはシステムアクセス及びNP アクセスである。各カテゴリ内のメモリから読み出されるデータは何れかのカテ ゴリの早めのp−opsによってなされた書き込みを表していなければならない が、異なるカテゴリの書き込みは非同期的に処理することができる。即ち異なる カテゴリの近くの(実行順序に対して)書き込みは同一アドレスを変更しないこ と、またはもしそれらが行えばカテゴリ間の書き込みの非同期性の効果は温和で あるものとしている。
MCC25は、書き込みバッファ302及びマルチプレクサ303と組合わされ た書き込み予約待ち行列(WRESQI 300と、システムバッファ307と 組合わされたシステム書き込み待ち行列(SYSWQ) 305と、NPバッフ ァ312及びマルチプレクサ313と組合わされた書き込み予約待ち行列(NP VIQI 310とを含む複数の待ち行列構造を含む。
WRESQ 300は正常データアクセスのみに役立つ。これは、各書き込みデ ータ(これは単一バイト、16ビツト語、または32ビット倍長語であってよい が、実行ユニットからの単一の32ビット倍長語内に常に右寄せされて到着する )を、任意バイト境界上でメモリ内の位置合わせを指定できる(1または複数の )対応アドレスによって指示されるように位置合わせすることと、何れかのカテ ゴリの書き込みと爾後の読み出しとの間の同一アドレスに対するメモリデータ従 属を検査することとを含む前述の全ての機能を遂行する。
5YSWQ 305は、システム書き込みを発生させたp−。
psが成功裏に終了し、それらがメモリ内へ書き込まれるまでシステム書き込み を緩衝する。これは多(とも4つの未済システム書き込みを提供する。システム アクセスは隠システム構造(ページ辞書エントリ、ページ表エントリ、セグメン ト記述子、及びタスク状態セグメントデータ)にアクセスするためにAPによっ て遂行されるアクセスである。全てのシステム書き込みは「アクセスされた」ま たは「話中jビットをセットする単一の倍長語読み出し・変更・書き込み操作と して発生する。
APは順不同の実行を遂行しないから、全てのシステムアクセスは順番に発生す る。さらに、システム書き込みは読み出し・変更・書き込み操作から発生するの で、アドレスは書き込みデータの前にMCCに到着しなければならない。
NPWQ 310は8つのNP書き込みアドレス(少なくとも2つのN P p −opsの結果を保持するのに充分)を緩衝する。
NPに指令され、NPから指令されるNPデータアクセスは3つの主な点が正常 データアクセスとは異なる。即ち、単一のNP p−opは10バイトまでのデ ータを読み出し及び書き込みの両方または何れか一方を行うことができるが、正 常り−0pは多くとも4バイトのデータにしかアクセスできない。従ってNPは 、単一のp−opによって指定された書き込み操作を遂行するために多重倍長語 転送を遂行することができる。NPp〜Opのためのデータは常にMCCに順次 に(即ちアドレスが到着するのと同じシーケンスで)到着する。
WRESQ 300は最も複雑な書き込み待ち行列であり、後述するようにp− op終了及び打ち切りの処理を行う。WRESQは8つのエントリを受け入れる 複雑なデータ及び命令バッファからなる。各エントリは、倍長語アドレス(倍長 語は32ビツトのデータ)のための30ビツト幅の連想記憶装置(CAM)レジ スタ、数値比較論理と「最終」ビット及び「解放されたjビットとを含む4ビツ トの専用タグCAM、及び各データバイトのための有効ビットと全データレジス タのための「現行」ビットとを含む制御論理と組合わされた4バイト幅のデータ レジスタを含む。
WRESQは、データ物理アドレスバス待ち行列(PAdrQ1320と呼ばれ るFIFOバッファからデータアクセスのためのメモリアドレスを受信する(こ れらのメモリアドレスはAPから到着するとPAdrQに緩衝される)、各アド レスは、遂行されるアクセスの型(読み出し、書き込み、または読み出し・変更 ・書き込み)と、アドレスを発生したp−opのタグと、アドレスされた倍長語 へ及び/またはそれから転送される倍長語のバイトを指示する4ビツトのバイト 可能マスクと、そのアドレスがそのp−opによって発生される最後のものであ るか否かを指示する「最終」ビットとを伴う。
書き込みまたは読み出し・変更・書き込みアクセスのためにPAdrQから受信 した各アドレスは、アドレスを伴うバイト可能ビットによって指示される何れか のバイト位置内に有効ビット集合を有するWRESQ内に既に入力されている全 てのアドレスと連想的に比較される。もしWRESQ内に既に重なり合った書き 込みを指示する何かを見出すと、WRESQ内への新しいアドレスの処理は、重 なり合った書き込みがメモリへ書き込まれWRESQから除かれるまで見合わさ なければならない。
この場合MCCは1位置がメモリへ書き込まれるまで中断して、書き込み待ち行 列により多くのアドレスを受け入れるようにしなければならない。これはパイプ ライン機能停止と呼ばれ、この場合MCCはアドレスをPAdrQ内に戻すこと を可能とし、もしこの構造が溢れの前兆を示せば、MCCはPAdrBusをロ ックしてAPがより多くのアドレスを発行するのを阻止する。そうでなく、もし パイプライン機能停止が要求されないか、または重なり合いエントリを除去する ことによってこのような機能停止が解決された後は、新しいアドレスがWRES Q内の位置に割り当てられる。
WRESQ 310内の位置は割り当てカウンタによるラウントロピン方式の割 り当てのために選択される。もし選択された位置が自由であればアドレスは「ア ドレスCAMJ内にコピーされ、タグ及び「最終JビットはTag CAM内に コピーされ、4つの「現行」ビット及び「解放された」ビットは0にセットされ 、4つの「有効」ビットは書き込まれる倍長語のバイトを指定するバイト可能ビ ットに対応してセットされる。一方もしWRESQ位雪が再割り当てのために取 り上げられた時に未だに使用中であれば(1またはそれ以上の有効ビットがその 位置においてセットされていることにより指示される)、その位置がメモリに書 き込まれるまでMCCはそれ以上のアドレスの受け入れを中断(パイプラインを 機能停止)させなければならない。
新しいエントリがWRESQ内に書き込まれるクロック期間に、またはその後に 、有効ビットがセットされているデータバイト内にデータが書き込まれる。実行 ユニットが、書き込まれるデータを提供する前にAPがアドレスを送信する保証 はなく、またMCC自体がアドレスが到着し次第それらを処理できるという保証 もない。従って、データはWRESQエントリが確立される前に既にMCCへ送 られているかも知れない。8エントリW B u f 302がこれを受け入れ る。このWBufはDXBus (書き込みデータをMCCへ引き渡すパス)と WRESQ自身の入力との間に配置されている。DXBusに到着するデータは 、それが表している操作の型(もしWRESQに宛てられていれば正常メモリ書 き込み)及びそれが発生したp−opのタグによって識別される。
正常メモリ書き込みデータがDXBusに到着すると、それはその4ビットp− opフラの最下位3ビツトによってアドレスされた32ビツトW B u f内 に記憶され、このp−opフラの最上位ビットはエントリと共に記憶され、(後 述するようなTag CAMヒツトが発生しない限り)「現行」ビットはエント リのためにセットされる。同時に、そのタグはWRESQのTag CAM内で 探索される。もしそのデータのための位置(または2つの隣接位rIりが、「最 終Jビットがセットされている1つの位置を含むWRESQ内に見出されれば、 そのデータは直ちにその(またはそれらの)位置に(この場合WBufエントリ の「現行」ビットがセットされていない)書き込まれる。同様に、「最終jビッ トがセットされているアドレスがWRESQ内に入力されると、そのアドレスを 発生したp−opのタグに対応するW B u fエントリが質問され、もしそ の「現行jビットがセットされていればデータは全てWBufエントリヘコビー され、WRESQ r現行」ビットはセットされ、WBuf r現行」ビットは クリアされる。
上述の2つのメカニズムによって、データまたはアドレスのどちらが先に到着す るかには関係なく、またはそれらが同時に到着してもデータ及びアドレスの両者 が存在する場合にはアドレス及びデータは共にWRESQ内へ入力され、そのp ”opのためのWBufエントリの「現行」ビットはクリアされ、(1または複 数の)WRESQエントリの(1または複数の)「現行」ビットはセットされる 。この時点でW B u f位置は再使用のために自由となる。データはアドレ スに対して順不同で到着し得るから、できる限り早く処理を発生できるようにす るために、データレジスタ及びWRESQの「現行」ビットへの2つの独立した 経路が設けられている。WBufから発する一方はその位置内に書き込むことが でき、この位置には(ラウントロピンカウンタによって選択された)対応アドレ スが同時に書き込まれる。DXBuSインタフェースから直接の他方はTagC AMによって識別される(1または複数の)位置内に書き込むことができる。こ れにより新たに到着するアドレスとWBufからのデータとを対にして、先に確 立されているWRESQエントリ内にDXBusから新たに到着したデータが書 き込まれるクロックサイクルと同じクロックサイクルに、新しいエントリ内に書 き込むことができる。
WRESQハ内に入力されるデータは、それがメモリ内で占めるであろうバイト 位置と同じバイト位置内にそれをバイト位置合わせするローデータを通過する。
WRESQ内への2つのデータ経路毎に別個のローデータが設けられている。( 多分2つの隣接エントリの)(第1)WRESQエントリの最下位バイト位置か ら数えてOの値を有する隣接「有効」ビットの数は、WRESQ内へのデータ書 き込みが発生する前に位置合わせのためにデータを回転させなければならない左 方へのバイト位置の数を示している。「有効jビットに組合わされている論理は 、もし先行WRESQ位置も同じp−opクグのためのアドレスを含まなければ そしてその場合に限って、ある位置の「有効jビットをゲートすることによって このデータをバレルシフタへ供給する。
データがWRESQ内のある位置に書き込まれると、それは(もしTag CA Mによってアドレスされていれば)同じタグ値を有する任意隣接位置か、または (もし新エントリ割り当てカウンタによってアドレスされていれば)以前のエン トリ割り当ての方向に隣接し「最終jビットが無効にされた位置にも書き込まれ る。書き込まれるデータは多くとも4バイト幅であるから、1つの倍長語のため のバイト位置と突き合わせるためにセータをバイト規模で回転させ、次いで両倍 長語を書き込むことは、メモリ内の倍長語境界にまたがる位置合わせされていな い書き込み操作のために4バイト全てな両倍長語内の適切な位置に同時に書き込 むことになる。
「最終」ビットがセットされた正常カテゴリアドレスがPAdrQから抽出され ると、MCCはMCC終了信号をDECへ供給する。これらのアドレスは順番に (即ちDECから発行されるそれらを生成したp−opsと同じ順番に)処理さ れ、DECはどのp−opsが正常メモリアクセスを生成するかを知っており、 たとえMCC終了が(lまたは複数の)アドレスが処理されたp−opのタグを 明示的に含まなくとも、DECはそのMCC終了をそのp−opに明確に対応付 けることができる。MCCからの終了によってDECは、WRESQエントリが 未だに確立されていない全てのp−opsからのデータを受け入れるためには最 悪の場合には8より多いWBufが必要であること、及び打ち切りの場合には無 関係なデータ及びアドレスを待ち行列から適切に流出させ得ることを保証できる ようになる。DECは、正常アクセスを発生し未だにMCCによって終了されて いない最古のp−opの他に7より多いp−opsを発行しないから、この保証 が得られるのである。
アドレスは、PAdrQから抽出されると各々先にWRESQ内に(及び他の2 つの書き込み待ち行列内にも)入力されている全てのアドレスと(書き込みアド レスに関して説明したようにして)連想的に比較される。前述のように、到来書 き込みアドレスと現存WRESQエントリとの重なり合いは、早いエントリがメ モリへ書き込まれて書き込み待ち行列から除かれるまでパイプライン機能停止を もたらす。しかし、たとえ同−倍長語(の異なる部分)を変更したとしても、重 なり合わない書き込みは待ち行列内に入力することができる。読み出し操作及び 読み出し・変更・書き込み操作(アドレス読み出し)のためのアドレスも書き込 み待ち行列エントリと連想的に比較される。書き込みと同様に、この比較は読み 出しアドレスのバイト可能ビットと待ち行列エントリの対応「有効」ビットとの 論理積によって決定されるバイト毎に遂行される。
もしか読み出しアドレスによって指定されたバイトをアドレスするWRESQエ ントリがなければ、またはもし読み出しアドレスによって指定されたバイトをア ドレスする各エントリ(書き込み・待ち行列ヒツト)の「現行」ビットがセット されていれば1MCCはDCI 37へ通知してそのアドレスの正常キャッシュ 探索を遂行させる。(どのキャッシュアクセスもキャッシュミスの場合の遅延、 及び要求されたデータを検索するための主メモリ操作の必要をもたらす。)一方 、もし読み出しアドレスが、「現行」ビットがセットされていない1またはそれ 以上の書き込み・待ち行列エントリ内でヒツトすれば、PAdrQからのアドレ スの処理はこれらの全てのエントリのためのデータを受信するまで中断(パイプ ライン機能停止)させなければならない。機能停止が解決され、キャッシュデー タが使用可能になると、MCCはDCIに指令して書き込み待ち行列ヒツトがセ ットされた「有効」ビットを有していないバイトだけをDIOBus 57上ヘ ゲートさせる。アドレスをヒツトしている全ての書き込み・待ち行列エントリの 「有効」ビットによって選択される他のバイトは書き込み待ち行列へ、及びMC CによってDIOBus上へ駆動される。従って、未だにメモリへ送られていな い書き込みデータは、後の読み出しへ“短絡”させることができる。書き込みが 書き込み待ち行列内で未済になっているバイトのために第2の書き込みを受信す るとパイプラインは機能停止させられるから、データの所与のバイトをアドレス する1より多いエントリは存在することはできないが、同じ倍長語の異なるバイ トを供給する幾つかのエントリは存在できる。書き込み待ち行列はこれらの全て からの「有効」バイトを組合わせてデータを選択し、DIOBus上へ駆動する 。
CPUの他のユニットと同様に、MCCはタグステータスバスを介してDECか ら供給されるタグステータスを追跡しなければならない。各クロックサイクル中 にDECは、最古の未決p−opタグ(○○Tag)または打ち切りタグ(A  T a g)の助言を得て2つのメツセージ型の1つをタグステータスバス上へ 送信する。WRESQは「最古のエントリポインタ」(OEP)と呼ぶその最古 のエントリを指すポインタを維持している、あるエントリは、それがOOTag より古くなるまでメモリへの書き込みに対して無資格のままである。OOTag を受信する各サイクルにOOTagは、1またはそれ以上の「有効」ビットがセ ットされ「解放された」ビットはセットされていない各書き込み待ち行列エント リのタグCAM内容と比較される。タグ比較は、4ビツトの2の補数演算を使用 して。
エントリの4ビツトタグから4ビットOOTagを減することによって遂行され る。タグは2進計数シーケンス(0000,0001゜0010、・・・、11 10.1111,0口00.・・・)で発行され、一時に7より多くないタグが 未決であるから、OOTagの値は1つのサイクルから次のサイクルまで多くと も(もし7つの未決p−opsが全て引退し、新しいp−opが同じサイクルに 発行されれば)8までジャンプすることができる。従ってもしエントリのタグか らOOTagを減じて得られた差の最上位ビットの値が1”であれば、それはO OTagよりも8またはそれ以上若くはなり得ないから、エントリのタグはOO Tagより1乃至p−ops古いことを示している。このようにしてOOTag より若いことが見出された各エントリ毎に、そのエントリの「解放された」ビッ トがセットされる。エントリは、OEPによって指し示されているエントリの「 解放されたjビットがセットされ、その「現行」ビットがセットされ、そして1 またはそれ以上の「有効」ビットがセットされている場合に、そしてその場合に だけ、キャッシュ及び主メモリの両者または何れか一方へ書き込むことができる 。書き込みが発生すると、エントリの「有効」ビットはクリアされ、OEPは1 またはそれ以上の「有効」ビット(もし存在すれば)がセットされている次の順 次エントリへ前進させられる。
DECが打ち切りを通知すると、PAdrQ、WRESQ及び他の2つの書き込 み待ち行列を含む全ての待ち行列内のp−opフラフィールドに対してATag が検査される。この検査はエントリが解放され得る時点を決定する検査と同じよ うにして、即ち待ち行列内に指定されているタグフィールドからATagを減す ることによって遂行される。もし待ち行列エントリのタグフィールドがATag より大きい(古い)ならばエントリは待ち行列内に維持され、そうでなければそ の(1または複数の)「有効」ビットはクリアされる。待ち行列の制御論理の実 施態様に依存してポインタも調整しなければならないかも知れない、WRESQ の場合、もしエントリが削除され、割り当てポインタが最も早(削除されたエン トリまで戻って移動し、そしてこれがOEPを過ぎて移動していれば、OEPは 割り当てポインタに先行するエントリまで移動する。
WRESQに組合わされているWBufのエントリ及びタグ値によってアドレス される他の類似構造に対しても同じような検査が行われるが、WBuf内のエン トリのアドレスは単にそのタグの下位3ビツトであり、エントリのタグの最上位 ビット(MSB)だけがそのエントリ自身の中に記憶されているから、ATag の下位3ビツトより大きいかまたは等しい3ビツトアドレスを有しまたATag のMSBに等しい記憶されたMSBを有するか、またはATagの下位3ビツト より小さいアドレスを有しまたATagのMSBに相対するMSBを有する全て のエントリの「有効」ビットをリセットするだけで充分である。
CPUの全ての機能ユニットと同様に、MCCは打ち切りサイクル中に内部バス 上に提示されるデータは無視し、打ち切りの後に未だ適切であれば送っていたデ ータを再送信する。従って、ある単一のサイクル中に、MCC(及びCPLIの 残余)は未だに発行されたことがないATagより大きいかまたは等しいタグを 担持するp−opが有していた状態にそれ自信をリセットする。
IEtJにおし ′Oの 図7はIEU 17のブロック線図である。IEtJは2つのデータ経路、即ち 単一サイクルデータ経路400及び多重サイクルデータ経路405を実現する。
単一サイクルデータ経路は、加算、減算、及びけた送りのよりな1サイクル内に 完了させることができる全ての整数命令を実行する。多重サイクルデータ経路は 、乗算、除算、及びASCII及び10進数演算機構のような複数のサイクルを 必要とする全ての整数p−opsを実行する。2つのデータ経路は、レジスタ再 割り当てに関して説明したようにして仮想レジスタが写像される物理レジスタを 含む共通レジスタファイル410を使用する。
各データ経路は共通バス集合412に結合された要素を含み、バス結合器415 が2つのデータ経路の間を分離している。単一サイクルデータ経路は、汎用AL U420と、バレルシフタ422と、符号伝播、先行0及び1方向、等々のため の特別論理425とを含む。多重サイクルデータ経路は1乗除算回路430 ( 8x32乗算器アレイ)と、ASCII及び10進数調整のための回路435と を含む。
入力p−opsはp−opパス52から受信され、p−op待ち行列450へ導 かれる。マルチプレクサ452は待ち行列内の実行されるp−opを選択し、実 行されるp−opは単一サイクル制御論理455 (PLAによって実現)へ通 信される。単一サイクルp−opの場合、制御論理455は単一サイクルデータ 経路要素を制御する。多重サイクルデータ経路p−opの場合、制御論理455 はp−opの第1サイクルで多重サイクル要素を制御しマイクロコードROM4 60ヘアドレスを供給する。マイクロコードROM460は多重サイクル制御論 理462 (PLA)と共にp−opの爾後のサイクルの制御を提供する。
A L Ij p−opsの場合には、結果はレジスタ内に記憶され、終了は直 ちに終了待ち行列470内へ入力され、終了待ち行列470の内容はIELI終 了バス上へ送り出される。メモリ書き込みの場合には、結果が直接DXBusへ 進められる(この場合終了は終了待ち行列内へ入力される)か、または出力が爾 後の出力のためのDXBus出力待ち行列475内に配置されるかの何れかであ る。バスが使用可能になると、終了は終了待ち行列内に入力される。
P−op待ち行列450の深さは8である。P−op待ち行列は、複数の読み出 しポートと1つの書き込みボートとを有している。
待ち行列制御論理480は待ち行列を制御して通常はFIFO(先入れ先出し) のように機能させるが、順不同読み出しをも支援する。待ち行列制御論理は待ち 行列がエントリを有しているか否かを指示する。待ち行列制御論理は待ち行列内 のp−opの位置も識別する。
もしp−op待ち行列が、待ち行列が空の時にp−opを受信すれば、そのp− opは直ちにデコードされて遣切な制御信号が生成されるa p−opのデコー ドが進行中の時点に実行準備検査が行われる。この検査はデータオペランド及び フラグオペランド従属、及び順番実行及び機能ユニット直列化のような若干の特 別な実行基準を含む、もしp−opが実行準備検査に失敗すれば若干のまたは全 ての制御信号は使用禁止となる。もしp−opが実行されなければ、そのp−o pは待ち行列内に配置される。
もし待ち行列内にエントリが存在すれば、待ち行列はFIFOの如く機能する。
待ち行列の先頭のp−op 、及び待ち行列内の次に若いp−opが読み出され る。実行準備論理482は両p−opsに対して検査を行う。待ち行列の先頭の p−opに対する実行準備検査はデータオペランド従属を含む。もし待ち行列の 先頭のp−opが実行準備検査に合格すれば、そのp−opはデコードされ実行 される。もしそのp−opを実行することができなければ、それは次の動作サイ クルにおける検査のために再発行される。
待ち行列内の次に若いp−opに対する実行準備検査は、データオペランド及び フラグ従属、待ち行列の先頭のp−opに対するインタロック、及びそのp−o pが(順番実行のよりな)特別な実行基準の主体か否かを含む。例えば、 p− opが要求する源レジスタ内に有効ビットがセットされているかどうかが検査さ れる。もし待ち行列の先頭のp−opが実行に失敗すれば、待ち行列内の次に若 いp−opが実行準備検査の全てに合格していれば、このp−opがデコードさ れ実行される。もし待ち行列の先頭のp−op及び待ち行列内の次に若いp−o pを共に成功裏に実行することができれば、待ち行列の先頭が実行される。
複数の読み出しポインタ及び1つの書き込みポインタは待ち行列の動作を追跡し 続ける。もし次に若いp−opが実行されれば対応する実ポインタは待ち行列内 の次のエントリを指すように更新される。もし待ち行列の先頭のp−opが実行 されれば、第1読み出しポインタは第2読み出しポインタの値を入手し、第2読 み出しポインタは待ち行列内の次のエントリを指すように更新される。書き込み ポインタは待ち行列内の第1空位置を指すために使用される。打ち切りサイクル 中は全てのポインタは打切りタグと比較され、その結果に基づいて適切な値にセ ットされる。
待ち行列制御論理480は待ち行列内の各エントリ毎にステータスビットを有す る。ステータスビットは、新しいp−opを待ち行列内にロードしている間に゛ 有効”にセットされる。もし打ち切りサイクル中にp−op待ち行列内のエント リを一掃するのであれば、適切なステータスビットが“無効”にセットされる。
実行のために識別されたp−opがデコードされる。もし実行のために識別され たp−opが単一サイクルp−opであれば、単一サイクルデータ経路400  (レジスタファイル、ALU、バレルシフタ、及び特別論理)のための制御信号 が制御論理455によって生成される。単一サイクルp−opは単一のクロック サイクル中に実行される。この時間中には多重サイクルデータ経路405は何ら の機能も遂行しない。
もし実行のために識別されたp−opが多重サイクルp−opであれば、第1状 態制御信号が単一サイクル制御論理によって生成される。単一サイクル制御論理 はマイクロコードROM460も賦活する。残余の状態のための制御信号はマイ クロコードROM及び多重サイクル制御論理462から生成される。多重サイク ルデータ経路405はこの時間中に演算を遂行する。多重サイクル動作は単一サ イクルデータ経路からレジスタファイル410だけを使用する。
P−opsの同時(並列)実行を遂行することが可能である。もし実行のために 識別されたp−opが多重サイクルp−opであれば、考え得る性能利益は、待 ち行列から次の単一サイクルp−opを実行することによって得られる。単一サ イクルデータ経路を使用して単一サイクルp−opsをまた多重サイクルデータ 経路を使用して多重サイクルp−opsを実行することができる。多重サイクル p−opに対するデータまたはステータスフラグ従属が存在すれば単一サイクル p−opは実行されない。多重サイクルp−opと単一サイクルp−opとの間 に資源対立が存在する時間中(レジスタファイルへの書き込み及びステータスフ ラグ更新中)も、単一サイクルp−opは実行されない。
多重サイクル制御論理は動作の状態を識別する状態機械を有する。整数実行ユニ ットは4つの状態、即ち単一サイクル、多重サイクル、同時、または遊びの1つ を取ることができる。
単一サイクルデータ経路と多重サイクルデータ経路との間のバスは、同時動作中 にバス結合器415によって切り離される。これらのバスは多重サイクル動作中 通常は接続されていて、データファイルからのデータ転送及び(次のp−opの ために、その前の) p−opからの結果の使用の両方または何れが一方を可能 にしている。
もしあるp−opが実行可能であると識別されると、そのp−opは単一サイク ル制御論理及び多重サイクル制御論理の両方または何れか一方に提示される。機 能ユニットが話中であることを見出せば、p−opは実行されない。これはp− op待ち行列制御へ戻して通知され、論理を実行する準備を整える。多重読み出 しポインタに対して適切な調節が施される。
通常、 p−op待ち行列、待ち行列制御論理、及び実行準備論理は、データオ ペランドインタロックの解決及び特別実行基準に基づいてp−opsの発行を維 持しようと試みる。IEtJ内の各種機能ユニット(ALU、バレルシフタ、特 別論理、乗/除算回路)の制御論理はハードウェア資源対立を解決し、単一サイ クル、多重サイクル、または同時の何れかの演算を遂行する。
もしQNEXTと呼ぶ信号によって資源対立が通知され、発行されたp−opを 実行することができなければ、p−op待ち行列制御論理によって再発行するこ とが要求される。フラグスタック485を使用してフラグが追跡される。
稙鎗 以上に本発明の好ましい実施例を完全に説明したが、種々の変更、代替、及び等 価を使用しても差し支えない。例えば、上述の実施例は各機能ユニット毎に分離 したチップを用いて実現されているが、分散したパイプライン制御を用いる基本 アーキテクチャは単一チップ実施例においても同じように効果的且つ有用であろ う、同様に、この特定の実施例は特定の命令を実行するが、他の実施例が他の命 令集合を実行するように設計可能である。
また、タグを機能ユニットへ通信する特定のメカニズム(符号化されたタグを使 用するOOTagまたはATagを用いたタグステータスバス)を説明したが、 他の可能性も存在する。
一時に多くともn p−opsを未決にすることができるシステムにおける1つ の可能性は、タグをNビットベクトル内の単一集合ビットとして表すことである (但し、Nはnより大きいかもしくは等しい)。未決p−opsの収集がNビッ トベクトル内の集合ビットの隣接(循環的なセンスで)群によって表されるよう にこれらのタグを順次に発行する。このベクトルは機能ユニットに通信されてス テータスが表明され、一方類似の型のベクトルによって打ち切りを通知する。
従って上記の説明及び添付図面は、請求の範囲によって限定本発明の範囲を制限 するものではない。
1 欅゛Oバスフォーマット <51..48> SegReg <51..4B> DestSegReg< 47. 、45> <47> La5tPop(44,,4D SrcAReg  <46) l保留)<40..37> IndexReg <45> Loc k<36..33> EASpec <441.40) StatMod<32 > ASize <39..32> lmm5<31> TwoCyc <31 ..16> I+a+aDispHi<30..29> MemRef <15 .、O> ImmDispL。
<28..25> SrcBReg <24..2D DestReg <20> RegStore <19..17> 0perSize <16..14) 0perSpec (13,,4> 0pcode <3..0> PopTag <47..14> (未定義) <47..32> (未定義)<13..4>  0pcode <31..16> I+amHi<3..0> (未定義)  <15.、O> ImmL。
2 ■アドレスバスフォーマット <25> DTAGReq <25..23) Stream<24> ITA GReq <22..20> 0peration<23> DecReq < 3.、O> InstrNum(T=P−op Tag ex cept for Steam 01 <22> MCC)ILd <2D ARReq <20> Lok (19> Val <19> ’Trm <18..4> 物理アドレス<31..17> <18..4) 物理アドレス <16..2> <3.、Q) バイト選択 3 DIOBusフォーマット 〈4〉 最終オペランド 〈4> RdData有効く31.o> フレーム  <3..0> P−opフラ<31.、O> WrData<31..0> < 31..0> RdDATA<31..0> 4 データー バスフォーマット <2D APReq <20> NPHLd <19> NPReq <21..20> TT(転送型) <19..16> P−opフラ <15.、O> データ<15.、o><18..16> ’ MemOp <15.、o> データ<31..16)5 IEU終 バスフォーマット <4..2> 疑似Opフラ <1..0> 終了Id 牛疑似Opタグは、終了するp−opのp−opフラの3つの最下位ビットを含 む。
終了Id 値 1魅 OO終了なし Ol 正常終了 10 誤予測分岐方向終了 11 異常終了 6 AP終 バスフォーマット 〈3〉 終了Id、ビット〈7〉 <2> Id<6> 〈1〉 制御ビットB/Id<5> 〈0〉 制御ビットD/Id<4> 土l監二虚亙工 会Σ」し4道)フィールド 〈3〉 制御ビットI/I d<3> 〈2〉 制御ビットN/Id<2> 〈1〉 制御ビットH/Id<1> 〈0〉 制御ビットS/I d<O> (広葉に続く) (前葉からの続き) 終了Id <7.、O> 01BD lNH3制御ビット更新 10BD lNH3誤予測アドレス/制御ビット更新110X XXXX 正常 終了 11100001 デバッグ 11110010 ハイパコード 11110100 一般的保護(命令感度)11110101 デバッグ(区切 り点)11110110 無効演算コード 11110111 387使用不能 11111000 二重障害 11111001 遮断 11111010 無効TSS 11111011 セグメント不在 11111100 スタック障害 11111101 一般的保護(命令を除く)11111110 ページ障害 7 ′0 び′ のシーケンスの AP項 IEU項 zグ (肢皿旦工 又2 値 z2 制3 CHK ) AG 4 XFE 1 5 XFE I AG 6 DEC) AG 3 0K 7 XFE + 3 0に 8 XFE I AG 4 0に 9 DEC60に 5 0K 4 0に 5 0に 60K 90に 7 0に 8 ページ障害 flG−乙 FIGJA。
FIG 4B。
FIG、、4C。
0 VRO−VRO+VR3−PH1−PRa + PH11VB2−VR3+ VR5−PRIO−PR5+PR32VH2−VTIO十VR3−PRII − PH1+ PRIO国際調査報告

Claims (41)

    【特許請求の範囲】
  1. 1.発行されるとそれぞれ1つの未済演算の状態を達成する一連の演算を発行す る装置と、 未済演算の少なくとも若干をそれぞれが実行できる複数の機能ユニットと、 割り当てられたタグを検査することによって2つの未済演算の相対年齢を決定で きるように順序を付けたタグの集合の一員であるタグを各未済演算に割り当てる 装置と、所与の未済演算が完了する時点を決定する装置と、未済タグの独特さを 保証するように未済演算の数を制限する装置と を具備することを特徴とするコンピュータプロセッサ。
  2. 2.上記制限する装置が、一時に多くともn演算を未済可能とすることを許容し 、 上記タグが2nより大きいか等しいある範囲に亙って順次に発行され、 2つの未済演算の相対年齢をそれらのタグの符号付き比較によって決定できるよ うにした 請求項1に記載のコンピュータプロセッサ。
  3. 3.一時に多くともn演算が未済であり、タグを、多くとも1つのビットがセッ トされているNビットベクトル(ここにNはnに等しいか大きい)として表し、 未済演算の集合をNビットベクトル内のビットの隣接群によって表すようにタグ を発行する 請求項1に記載のコンピュータプロセッサ。
  4. 4.異常状態と、未済演算の集合を流出させることの決定とに応答し、未済演算 の集合を流出させることを表すNビットベクトルを前記機能ユニットへ通信する 装置をも具備する請求項3に記載のコンピュータプロセッサ。
  5. 5.集合を流出させることを表す上記Nビットベクトルが、流出させる演算の集 合に対応するビット集合を有する請求項4に記載のコンピュータプロセッサ。
  6. 6.少なくとも最古の未済演算の正常完了と、未済演算の集合を引退させること の決定とに応答し、未済演算の集合を引退させることを表すNビットベクトルを 前記機能ユニットへ遍信ずる装置をも具備する請求項3に記載のコンピユータプ ロセツサ。
  7. 7.集合を引退させることを表す上記Nビットベクトルが、引退させる演算の集 合に対応するビット集合を有する請求項6に記載のコンピュータプロセッサ。
  8. 8.上記機能ユニットが複数の半導体チップ内に実現されている請求項1に記載 のコンピュータプロセッサ。
  9. 9.異常状態に応答して所与のタグより遅く発行されたタグを有する全ての未済 演算を流出させる装置をも具備する請求項1に記載のコンピュータプロセッサ。
  10. 10.群内の何れかの演算の流出がその群内の全ての演算の流出をもたらすよう に隣接する演算をクループ化する装置をも具備する請求項9に記載のコンピュー タプロセッサ。
  11. 11.上記演算の少なくとも若干がが分岐演算であり、未済分岐演算の結果を予 測する装置と、未済分岐演算の誤った予測を検出する装置と、誤って予測された 分岐演算の結果として発行された全ての未済演算を流出させる装置 をも具備する請求項1に記載のコンピュータプロセッサ。
  12. 12.最古の未済演算を決定する装置と、未済演算と引退させる演算との間の境 界をマークするタグを準備することによって、演算の引退が成功したことを上記 機能ユニットの少なくとも若干へ通知する装置をも具備する請求項1に記載のコ ンピュータプロセッサ。
  13. 13.群内の全ての演算の引退が可能になった時にのみその群内の何れかの演算 の引退が遂行されるように隣接演算をグルーブ化する装置 をも具価する請求項12に記載のコンピュータプロセッサ。
  14. 14.少なくともそれらの源演算が未済ではあるが引退はしていない期間の間メ モリ書き込みを緩衝する装置と、それらの源演算が流出した時に、緩衝されてい る書き込みを流出させる装置と、 それらの源演算が引退した時に、緩衝されている書き込みのキャッシュまたはメ モリヘの配置を完了させる装置をも具備する請求項12に記載のコンピュータプ ロセッサ。
  15. 15.書き込みデータが流出されるか、またはキャッシュもしくはメモリ内に配 置される前に、緩衝されている書き込みデータを爾後の読み出し演算へ戻す装置 をも具備する請求項14に記載のコンピュータプロセッサ。
  16. 16.上記発行装置がm個のプログラマ可視のレジスタを含む命令集合アーキテ クチャを有する入力命令に応答し、少なくとも若干の演算がこれらのレジスタの 1つを変更し、未済のレジスタ変更演算の数をnに制限する装置と、少なくとも (m+n)個の物理レジスタと、プログラマ可視のレジスタを物理レジスタへ写 像する装置をも具備する請求項1に記載のコンピュータプロセッサ。
  17. 17.物理レジスタを変更した演算が成功裏に引退してしまうまで物理レジスタ が再使用されないことを保証する装置と、仮想から物理への写像を異常状態が検 出された時の先行状態に復元し、従ってプログラマ可視のレジスタの内容を復元 する装置 をも具備する請求項16に記載のコンピュータプロセッサ。
  18. 18.レジスタ変更は、プログラマが指定した順序以外で発生することが許され る 請求項17に記載のコンピュータプロセッサ。
  19. 19.各物理レジスタに対応付けられた有効ピットと、演算への入力として要求 される全ての物理レジスタの有効ビットを調べる装置と、 有効ビットがクリアされている少なくとも1つの物理レジスタの演算の実行を遅 延させる装置 をも具備する請求項17に記載のコンピュータプロセッサ。
  20. 20.インタロックが要求された時、直接的に影響された特定の機能ユニットだ けがインタロックされた演算の実行を遅延させる 請求項1に記載のコンピュータプロセッサ。
  21. 21.若干のまたは全ての機能ユニットは、若干のまたは全ての演算が完了する と終了を通知し、 これらの終了は、完了した演算のタグを決定するのに充分な情報を提供し、 これらの終了は、演算の処理中に機能ユニットによって検出された最高優先順位 の異常状態(もしあれば)を決定するのに充分な情報を提供する 請求項1に記載のコンピュータプロセッサ。
  22. 22.各未済演算毎に機能ユニットによって通知される全ての終了に優先順位を 付ける装置と、 最古の異常に終了した演算を選択する装置と、最古の異常に終了した演算の最高 優先順位終了に対する正しい応答を決定する装置、 をも具備する請求項21に記載のコンピュータプロセッサ。
  23. 23.機能ユニットからの終了を、演算が発行された順序とは異なる順序で通知 できる 請求項21に記載のコンピュータプロセッサ。
  24. 24.特定の型の書き込みを処理するためにそれぞれ割り当てられる複数の書き 込みバッファ待ち行列と、各書き込み待ち行列毎に最高優先順位を選択する装置 と、最高優先順位待ち行列を選択する装置とを設けることによってインタロック 回避及び性能を向上せしめたことを特徴とするコンピュータプロセッサ。
  25. 25.上記書き込みが順不同で発生することを許される請求項24に記数のコン ピュータプロセッサ。
  26. 26.命令を含む入力流に応答してこの入力流内の命令を一連の演算に変換する 装置と、 これらの演算の少なくとも若干をそれぞれが実行できる複数の機能ユニット、 これらの演算を機能ユニットの少なくとも若干に通信する(このように通信され る演算を未済演算と言う)装置と、タグを各未済演算に順次に翻り当てる装置と 、機能ユニットによる演算の終了に関する情報を各未済演算毎に維持する装置と 、 各機能ユニットに組合わされ、通信されて来た各演算についてそれが何時終了し たかを決定し、この終了情報をその演算のタグと共に前記維持装置に通信する装 置と、最古の未済演算を決定する装置と、 最古の未済演算の表示を機能ユニットに通信する装置と、少なくとも最古の未済 演算に関する終了情報に応答し、その演算の終了情報が全ての機能ユニットがそ の演算を正常に終了させたことを示している場合に限ってその算算の引退を許容 する装置と、 少なくとも最古の未済演算の引退に応答し、このように引退した演算が最早未済 ではないことを表すように最古の未済演算の表示を更新する装置と を具備することを特徴とするコンピュータプロセッサ。
  27. 27.所与の未済演算が異常に終了したことの情報に応答して、流出させるべき 演算の群を指定する打ち切りタグを機能ユニットへ通信する装置と、 各機能ユニットに組合わされ、打ち切りタグによって指定された全ての未済演算 を流出させる装置と、打ち切りタグによって指定された演算から未済演算の指定 を削除する装置と、 流出した最古の演算のタグに等しい値から始まるさらなるタグの割り当てを前記 タグ割り当て装置に開始させる装置をも具備する請求項26に記載のコンピュー タプロセッサ。
  28. 28.打ち切りタグが、流出させられた最古の演算のタグに等しい請求項27に 記載のコンピュータプロセッサ。
  29. 29.命令を含む入力流に応答してこの入力派内の命令を一連の演算に変換する 装置と、 これらの演算の少なくとも若干をそれぞれが実行できる複数の機能ユニット、 これらの演算を機能ユニットの少なくとも若干に通信する(このように通信され る演算を未済演算と言う)装置と、未済演算の数を所定の量大数に制限する装置 と、タグを各未済演算に順次に割り当てる装置と、機能ユニットによる演算の終 了に関する情報を各未済演算毎に維持する装置と、 各機能ユニットに組合わされ、通信されて来た各演算についてそれが何時終了し たか及びその終了は正常であったかを決定し、この終了情報をその演算のタグと 共に前記維持装置に通信する装置と、 未済演算の表示を機能ユニットに通信する装置と、機能ユニットからの終了情報 に応答して、正常に終了した演算を順番に引退させる装置と、 所与の未済演算が異常に終了したことの情報に応答して、少なくともこの所与の 未済演算と、より遅い全ての未済演算とを流出させることを機能ユニットに命令 する装置と、機能ユニットに組合わされ、命令装置によって指定された全ての未 済演算を流出させる装置と、 流出した最も早い未済演算のタグに組合わされていたタグから始まるさらなるタ グの割り当てを前記タグ割り当て装置に開始させる装置 を具備することを特徴とするコンピュータプロセッサ。
  30. 30.未済タグの表示が最古の未済演算のタグである請求項29に記載のコンピ ュータプロセッサ。
  31. 31.未済演算の少なくとも若干をそれぞれが実行できる複数の機能ユニットを 含むコンピュータプロセッサにおけるパイプライン化演算を制御する方法であっ て、割り当てられたタグを検査することによって2つの未済演算の相対年齢を決 定できるように順序を付けたタグの集合の一員であるタグを各未済演算に割り当 てる段階と、所与の未済演算が完了する時点を決定する段階と、未済タグの独特 さを保証するように未済演算の数を制限する段階と を具備することを特徴とする方法。
  32. 32.上記制限する段階が、一時に多くともn演算を未済可能とすることを許容 し、 上記タグが2nより大きいか等しいある範囲に亙って順次に発行され、 2つの未済演算の相対年齢をそれらのタグの符号付き比較によって決定できるよ うにした 請求項31に記載の方法。
  33. 33.機能ユニットが遂行する何らかの異常状態を表明する諸段階と、 所与のタグより遅く発行されたタグを有する全ての未済演算を流出させる段階と をも具備する請求項31に記載の方法。
  34. 34.群内の何れかの演算の流出がその群内の全ての演算の流出をもたらすよう に隣接する演算をクループ化する段階をも具備する請求項33に記載の方法。
  35. 35.上記演算の少なくとも若干がが分岐演算であり、未済分岐演算の結果を予 測する段階と、未済分岐演算の誤った予測を検出する段階と、誤って予測された 分岐演算の結果として発行された全ての未済演算を流出させる段階 をも具備する請求項31に記載の方法。
  36. 36.最古の未済演算を決定する段階と、未済演算と引退させる演算との間の境 界をマークするタグを準備することによって、演算の引退が成功したことを上記 機能ユニットの少なくとも若干へ通知する段階をも具備する請求項31に記載の 方法。
  37. 37.群内の全ての演算の引退が可能になった時にのみその群内の何れかの演算 の引退が遂行されるように隣接演算をクループ化する段階 をも具備する請求項36に記載の方法。
  38. 38.少なくともそれらの源演算が未済ではあるが引退はしていない期間の間メ モリ書き込みを緩衝する段階と、それらの源演算が流出した時に、緩衝されてい る書き込みを流出させる段階と、 それらの源演算が引退した時に、緩衝されている書き込みのキャッシュまたはメ モリヘの配置を完了させる段階をも具備する請求項36に記載の方法。
  39. 39.書き込みデータが流出されるか、またはキャッシュもしくはメモリ内に配 置される前に、緩衝されている書き込みデータを爾後の読み出し演算へ戻す段階
  40. 40.上記発行段階がm個のプログラマ可視のレジスタを含む命令集合アーキテ クチャを有する入力命令に応答し、少なくとも若干の演算がこれらのレジスタの 1つを変更し、未済のレジスタ変更演算の数をnに制限する段階と、少なくとも (m+n)個の物理レジスタを準備する段階と、プログラマ可視のレジスタを物 理レジスタへ写像する段階をも具備する請求項31に記載の方法。
  41. 41.物理レジスタを変更した演算が成功裏に引退してしまうまで物理レジスタ が再使用されないことを保証する段階と、仮想から物理への写像を異常状態が検 出された時の先行状態に復元し、従ってプログラマ可視のレジスタの内容を復元 する段階 をも具備する請求項40に記載の方法。
JP50438990A 1989-02-24 1990-02-21 コンピュータの分散型パイプライン制御装置及び方法 Expired - Lifetime JP3153906B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31535889A 1989-02-24 1989-02-24
US315,358 1989-02-24

Publications (2)

Publication Number Publication Date
JPH04503582A true JPH04503582A (ja) 1992-06-25
JP3153906B2 JP3153906B2 (ja) 2001-04-09

Family

ID=23224038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50438990A Expired - Lifetime JP3153906B2 (ja) 1989-02-24 1990-02-21 コンピュータの分散型パイプライン制御装置及び方法

Country Status (2)

Country Link
JP (1) JP3153906B2 (ja)
WO (1) WO1990010267A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06236275A (ja) * 1993-01-08 1994-08-23 Internatl Business Mach Corp <Ibm> スーパースカラ・プロセッサ・システムにおける非逐次命令ディスパッチおよび実行のための方法およびシステム
JPH06242954A (ja) * 1993-01-08 1994-09-02 Internatl Business Mach Corp <Ibm> 独立にアクセスされる中間記憶域を利用してスーパースカラ・プロセッサ・システムにおける命令ディスパッチを改善する方法およびシステム
JPH06242955A (ja) * 1993-01-08 1994-09-02 Internatl Business Mach Corp <Ibm> スーパースカラ・プロセッサ・システムにおける中間記憶バッファの割当てをインデックスする方法およびシステム
JP2000515268A (ja) * 1996-01-26 2000-11-14 アドバンスト・マイクロ・デバイシズ・インコーポレイテッド ロード/ストアオペレーションのout―of―order実行コントロールのための階層的スキャンロジック
US6920548B2 (en) 1992-05-01 2005-07-19 Seiko Epson Corporation System and method for retiring approximately simultaneously a group of instructions in a superscalar microprocessor
US7028161B2 (en) 1991-07-08 2006-04-11 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822574A (en) * 1995-04-12 1998-10-13 Advanced Micro Devices, Inc. Functional unit with a pointer for mispredicted resolution, and a superscalar microprocessor employing the same
US5944807A (en) 1996-02-06 1999-08-31 Opti Inc. Compact ISA-bus interface
US5838942A (en) * 1996-03-01 1998-11-17 Hewlett-Packard Company Panic trap system and method
GB2348719B (en) * 1996-03-01 2000-11-22 Hewlett Packard Co Panic trap system and method
EP0912930B1 (en) * 1996-07-16 2006-08-23 Advanced Micro Devices, Inc. A functional unit with a pointer for mispredicted branch resolution, and a superscalar microprocessor employing the same

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4425617A (en) * 1981-03-23 1984-01-10 Rca Corporation High-speed data sorter
JPS58178464A (ja) * 1982-04-14 1983-10-19 Hitachi Ltd 並列演算処理装置
US4807115A (en) * 1983-10-07 1989-02-21 Cornell Research Foundation, Inc. Instruction issuing mechanism for processors with multiple functional units
JPH0658631B2 (ja) * 1983-12-19 1994-08-03 株式会社日立製作所 デ−タ処理装置
JPH0754461B2 (ja) * 1985-02-08 1995-06-07 株式会社日立製作所 情報処理装置
US4736318A (en) * 1985-03-01 1988-04-05 Wang Laboratories, Inc. Data processing system having tunable operating system means
US4783736A (en) * 1985-07-22 1988-11-08 Alliant Computer Systems Corporation Digital computer with multisection cache
US4794521A (en) * 1985-07-22 1988-12-27 Alliant Computer Systems Corporation Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
US4785395A (en) * 1986-06-27 1988-11-15 Honeywell Bull Inc. Multiprocessor coherent cache system including two level shared cache with separately allocated processor storage locations and inter-level duplicate entry replacement
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028161B2 (en) 1991-07-08 2006-04-11 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7555632B2 (en) 1991-07-08 2009-06-30 Seiko Epson Corporation High-performance superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7941635B2 (en) 1991-07-08 2011-05-10 Seiko-Epson Corporation High-performance superscalar-based computer system with out-of order instruction execution and concurrent results distribution
US6920548B2 (en) 1992-05-01 2005-07-19 Seiko Epson Corporation System and method for retiring approximately simultaneously a group of instructions in a superscalar microprocessor
JPH06236275A (ja) * 1993-01-08 1994-08-23 Internatl Business Mach Corp <Ibm> スーパースカラ・プロセッサ・システムにおける非逐次命令ディスパッチおよび実行のための方法およびシステム
JPH06242954A (ja) * 1993-01-08 1994-09-02 Internatl Business Mach Corp <Ibm> 独立にアクセスされる中間記憶域を利用してスーパースカラ・プロセッサ・システムにおける命令ディスパッチを改善する方法およびシステム
JPH06242955A (ja) * 1993-01-08 1994-09-02 Internatl Business Mach Corp <Ibm> スーパースカラ・プロセッサ・システムにおける中間記憶バッファの割当てをインデックスする方法およびシステム
JP2000515268A (ja) * 1996-01-26 2000-11-14 アドバンスト・マイクロ・デバイシズ・インコーポレイテッド ロード/ストアオペレーションのout―of―order実行コントロールのための階層的スキャンロジック

Similar Documents

Publication Publication Date Title
US5442757A (en) Computer processor with distributed pipeline control that allows functional units to complete operations out of order while maintaining precise interrupts
US11275590B2 (en) Device and processing architecture for resolving execution pipeline dependencies without requiring no operation instructions in the instruction memory
CN101558388B (zh) 数据高速缓存虚拟提示路线预测及其应用
JP2939003B2 (ja) 浮動小数点装置を有する高性能多重プロセッサ及びその性能を改良する方法
CN101542430B (zh) 用于处理器的加载/存储单元及其应用
US5630149A (en) Pipelined processor with register renaming hardware to accommodate multiple size registers
JP2962876B2 (ja) 内部プロセッサレジスターコマンドのi/o空間アドレスへの変換
US6499123B1 (en) Method and apparatus for debugging an integrated circuit
US8131976B2 (en) Tracking effective addresses in an out-of-order processor
KR101594090B1 (ko) 공유 메모리에 대한 액세스들의 동기화를 완화하기 위한 프로세서들, 방법들 및 시스템들
EP0649085B1 (en) Microprocessor pipe control and register translation
CN100449499C (zh) 在微处理器恢复单元中进行写队列读数据的方法和装置
CN108196884B (zh) 利用生成重命名的计算机信息处理器
US9710272B2 (en) Computer processor with generation renaming
JP6450705B2 (ja) 永続コミットプロセッサ、方法、システムおよび命令
JP2006114036A (ja) Smtディスパッチのための命令グループ形成およびメカニズム
GB2287111A (en) Pipelined processing of instructions
JPH0668726B2 (ja) レジスタ管理システム
JPH06103167A (ja) 多重プロセッサ・システムにおけるインヴァリデート及び戻りデータのための組合せキュー
JPH0659887A (ja) 高性能プロセッサ用の分岐予測
JPH0695963A (ja) 高性能プロセッサ用のバス・プロトコール
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
JP3678443B2 (ja) スーパーパイプライン式スーパースカラーマイクロプロセッサ用の書き込みバッファ
US6073231A (en) Pipelined processor with microcontrol of register translation hardware
JPH04503582A (ja) コンピュータの分散型パイプライン制御装置及び方法