JPH09244895A - パニック・トラップ・システム - Google Patents
パニック・トラップ・システムInfo
- Publication number
- JPH09244895A JPH09244895A JP9027423A JP2742397A JPH09244895A JP H09244895 A JPH09244895 A JP H09244895A JP 9027423 A JP9027423 A JP 9027423A JP 2742397 A JP2742397 A JP 2742397A JP H09244895 A JPH09244895 A JP H09244895A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- trap
- signal
- panic
- instructions
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
ッサを回復するパニック・トラップ・システム及び方法
を提供する。 【解決手段】 IFETCHは、命令をICACHEか
ら取出し、パニック・トラップ・インジケータ(PT
I)と命令を関連付ける。命令終了後、PTIを持つ命
令の取出しを再開する。AQUEUEとMQUEUE
は、命令を受取り、順序外実行する。MQUEUEとト
ラップ・インジケータ・ロジックは、データ・アドレス
を受け取るARBSLOTSとに関連付けられる。CC
Cハザード分解システムが、PTIをセットし、システ
ム・インタフェース制御が、引退メカニズムにPTIを
転送する。パリティ・エラー時、引退メカニズムでトラ
ップ・ベクトル・ゼネレータが、命令を消去し、パニッ
ク・トラップを起こした命令を実行する。
Description
タ・プロセッサ・アーキテクチャに関連する。特に、プ
ロセッサの命令の実行順序が狂っているときに、不正確
な処理からリカバリするためのパニック・トラップ・シ
ステムと方法に関する。また、パニック・トラップ・シ
ステムと方法は、タイミングと同期を図るためにも使用
される。
置)は、一般に、システムのオペレーションを実行する
制御装置と、計算型のオペレーションを実行する算術論
理演算装置(ALU)を含む。プロセッサのデザイン
は、レジスタ・セット、これらのレジスタ間の通信経
路、及びこれらが稼働する方法を指示し制御する手段の
選択によって決定される。通常、プロセッサは、メイン
・メモリの中に保持されている一連の命令から成るプロ
グラムによって稼働される。各々の命令は、ビット群で
あり、通常、プロセッサによって実行されるオペレーシ
ョンを指定する1又は複数のワードの長さである。
下のステップから成る。 (a)命令をメイン・メモリから命令レジスタに取り出
す。 (b)命令を復号する(すなわち、命令が示す実行すべ
きことを決定する。各命令が、実行されるオペレーショ
ンとそのオペレーションが使用するデータを示す)。 (c)命令によって指定されたオペレーションを実行す
る。 (d)次の命令の位置を決定する。通常、次の命令が、
現在の命令の直後に続いている。
ョンが平行して実行されるスーパースカラ・プロセッサ
のような高性能なプロセッサにおいて、プロセッサが、
混乱した順序またはプロセッサを操作しているソフトウ
ェアによって定義された順序と一致していない順序で命
令を実行するように設計される場合がある。これらのシ
ステムでは、プログラムによって定義された順序で命令
が発生したときではなく、命令が実行されることができ
るときに、命令は実行される。更に、順序の混乱した命
令の実行の後、プログラムにその結果を渡す前に、命令
順序に対応させて、最終的に再処理される。
マンスを最適化するために、コンピュータのプロセッサ
に関連して、使われている。キャッシュ・メモリは、コ
ンピュータのプロセッサとメイン・メモリの間に置かれ
た高速バッファである。プロセッサで使用される現在の
データと命令が、キャッシュ・メモリに移され、それに
よって、2つの利益を生じる。第1に、プロセッサのメ
モリ使用要求のための平均のアクセス時間が減少し、プ
ロセッサのスループットが増加する。第2に、それによ
って、利用可能なメモリ・バンド幅によるプロセッサの
使用が減り、システム・バス上の他の装置が、プロセッ
サのじゃまをすることなくメモリを使用できるようにな
る。キャッシュ・メモリは、メイン・メモリからプロセ
ッサへの命令とデータの転送スピードをアップさせるた
めに使用される。メイン・メモリ・サイクル・タイムが
一般的にプロセッサ・クロッキング率より遅いので、こ
のキャッシュ機能が重要となる。
・ラインのためにアクセスするとき、プロセッサはアド
レスをキャッシュに転送する。キャッシュが、アドレス
からキャッシュ・インデックスを解析して、要求された
データ・ラインを含む記憶領域を選択するためにそれを
使用する。キャッシュが、実ページ番号(RPN)であ
り、領域と状態インジケータに対応し、タグに対応する
データ・ラインが有効であるか否かを示す、タグを出力
する。
回路は、状態インジケータとタグを受け取る。状態イン
ジケータが無効データを示すとき、サポート回路がプロ
セッサに「ミス」表示を転送し、その場合には、プロセ
ッサがデータ・ラインのためにメイン・メモリをアクセ
スしなければならない。状態インジケータが有効なデー
タを示すとき、キャッシュが要求されたデータ・ライン
を現在記憶しているか否かを決定するために、サポート
回路はタグとアドレスの残余とを比較する。キャッシュ
がタグの比較によって決められるような要求されたデー
タ・ラインを持たないとき、サポート回路が、プロセッ
サに「ミス」表示を転送する。その場合、プロセッサ
が、メイン・メモリをデータ・ラインのためにアクセス
しなければならない。キャッシュがタグの比較によって
決められるような要求されたデータ・ラインを持つと
き、サポート回路が、プロセッサに「ヒット」表示を転
送して、要求されたデータ・ラインを読出すためにプロ
セッサにプロンプトを出す。
て、命令の不正確な実行処理のために不正確な結果が生
じる場合がある。また、命令がそれが依存する命令より
先に実行されるとき、不正確な結果が生成じ、例えば、
記憶(ストア)命令に依存するロード命令によって、ス
トア命令が転送される場合を考える。一般に、「ロー
ド」命令はストレージ(キャッシュ又はメイン・メモ
リ)からレジスタへのデータ転送要求であるのに、「ス
トア」命令はレジスタからストレージへのデータ転送要
求である。ロード命令がストア命令の前に処理される場
合、ロード命令は無効データを送信する。従って、スト
ア命令は、正しい結果を得るためにロード命令の前に実
行される。順序外命令を実行するスーパースカラ・プロ
セッサにおいて、不正確な結果が得られた場合、不正確
な結果を認識して、そこから回復するためのメカニズム
が必要である。
は、順序外命令を実行するスーパースカラ・プロセッサ
において、不正確な結果が得られた場合、不正確な結果
を認識して、そこから回復するためのメカニズムを提供
することである。
ラ・プロセッサ及び順序外命令を実行するプロセッサの
パフォーマンスを改善することである。
な順序の実行からプロセッサを回復するためのシステム
と方法を提供することである。
から生成された不正確な結果からプロセッサを回復する
のに使われ、更には、タイミングと同期を図るパニック
・トラップ・システム及び方法を提供することである。
nic trap)・システムは、以下の構造から成る。
H)は、命令を命令キャッシュ(ICACHE)から取
り出す。IFETCHは、タイミングや同期を取るため
にパニック・トラップ・インジケータと命令を関連付け
る。パニック・トラップ・インジケータとは、プロセッ
サを操作しているソフトウェアには発生しない非構造的
な信号である。命令が終了したならば、このパニック・
トラップ・インジケータは、最終的に、パニック・トラ
ップ・インジケータを持っている命令から順に取出しを
再開する。
ら受け取る。ALU(算術論理演算装置)命令待ち行列
(AQUEUE)は、ALUで示される命令を受け取っ
て、順序外命令を実行する。各々の命令は、それぞれの
命令レジスタの内でAQUEUEに置かれる。メモリ命
令待ち行列(MQUEUE)は、データ・キャッシュ
(DCACHE)かメイン・メモリで示される命令を受
け取って、順序外命令を実行する。MQUEUEは、命
令レジスタを含み、メモリ命令と命令実行の結果に応じ
たデータ・アドレスを受け取るアドレス・リオーダ・バ
ッファ・スロット(ARBSLOTS)と関連付けられ
る。
モリ命令の構造的に不正確な実行を認識し、パニック・
トラップ・インジケータを実行後の命令と関連付けるた
めの各ARBSLOTと関連する。実行されたロード命
令が実行されていないストア命令に依存する場合が、命
令の構造的に不正確な実行の一例を示す場面である。パ
ニック・トラップ・インジケータ・ロジックは、この場
面を決定し、発見した場合にパニック・トラップ・イン
ジケータを発生する依存ロジックを持つ。
性チェック信号を基に転送されたデータに影響を与える
場合を決定するキャッシュ可干渉性チェック(CCC)
ハザード分解システムを含む。CCCハザード分解シス
テムは、パニック・トラップ・インジケータをセットす
ることができる。
制御するシステム・インタフェース制御は、同期信号や
遠隔装置からの外部割込の受信に基づいて、パニック・
トラップ・インジケータを起動することがある。この場
合、システム・インタフェース制御が、実行後の引退し
(RETIRE)た命令を担当して、パニック・トラップ・イ
ンジケータと命令とを関係付ける引退メカニズムにパニ
ック・トラップ・インジケータを転送する。
付けられたパリティ・エラーが生じた場合、DCACH
Eはパニック・トラップを起動することがある。DCA
CHEは、パニック・トラップ・インジケータを引退メ
カニズムに提供することによってパニック・トラップを
発生する。
実行された後、命令は引退メカニズムによって引退させ
られる。引退処理の間、パニック・トラップ・インジケ
ータを認識しながら、引退メカニズムに関連するトラッ
プ・ベクトル・ゼネレータが、AQUEUEやMQUE
UEからの命令を消去し、IFETCHに再び読出しを
させ、パニック・トラップを引き起こした命令から順に
実行する。
供している。最初の方法は、プロセッサを命令の順序外
実行で処理された不正確な結果から回復することを許可
し、特に、実行段階の間のパニック・トラップの関係を
管理する。
ニズムの中で命令を集め、順序外命令を実行する。命令
の構造的に不正確な実行を認識し、命令と関連するパニ
ック・トラップ・インジケータを発生する。発生したパ
ニック・トラップ・インジケータは不正確な実行を示し
ている。実行後の命令を引退させるとき、発生したパニ
ック・トラップ・インジケータを認識し、再処理メカニ
ズムを除去して、無効な命令から順に読出しを再び始め
る。
を実行し、特に、命令と関連付けられたパニック・トラ
ップを示すプロセッサで、不正確な実行結果を生じた命
令から回復を可能とする。第2の方法の概要を次に示
す。命令を読出し、命令が読出しの間、無効であること
を決める。パニック・トラップ・インジケータを無効な
命令と関連付け、他の命令によって無効な命令を再処理
メカニズムに置く。再処理メカニズムの中で順序外命令
を実行する。そして、実行後の命令を引退させるとき、
パニック・トラップ・インジケータを認識し、再処理メ
カニズムを除去して、無効な命令から順に再び読出し始
める。
ロセッサと関連するデータ・キャッシュによって発見さ
れたパリティ・エラーからの回復を可能とする。第3の
方法の概要を次に示す。再処理メカニズムの中に命令を
集め、順序外命令を実行する。データ・キャッシュに対
するアクセスを含んでいる命令を実行し、パリティ・エ
ラーがアクセス中に起こったかを決める。プロセッサで
パニック・トラップを生成し、データ・キャッシュから
トラップ・ベクトル・ゼネレータへ転送する。再処理メ
カニズムを除去して、その命令で命令の実行を再び始め
る。
発明は、次の他の特徴を持つ。
グと同期目的のためにパニック・トラップ・システムを
使用することができるということである。
がキャッシュ・アクセスに関係するパリティ・エラーを
示し、回復するためにパニック・トラップ・システムを
使用することができるということである。
ンタフェース制御がタイミングと同期を図るためにパニ
ック・トラップ・システムを使用することができるとい
うことである。
・トラップ・システムのデザインが単純でその処理が信
頼でき、大量生産でコンピュータが安価にできるという
ことである。
特に、コンピュータ11のプロセッサ14内の命令読出/実
行システム12内で、実行するパニック・トラップ・シス
テム100(図3〜5参照)が表示されている。コンピュ
ータ11は、一般に、プロセッサ14と、プロセッサ14を操
作するソフトウェア(S/W)18を持つメイン・メモリ
16と、図中の矢印23で示すようにプロセッサ14と接続す
るデータ・キャッシュ24(DCACHE)と、プロセッ
サ14とメイン・メモリ16を相互に連結させる1又は複数
のバスのようなシステム・インタフェース22とから成
る。
中の命令読出/実行システム12がソフトウェア18を実行
できるように、プロセッサ14の中で現在使用されている
データが、DCACHE24へ移される。それによって、
プロセッサのメモリ要求の平均アクセス時間が減少し、
システム・インタフェース22上の通信量が最少となる。
ここで、新しいパニック・トラップ・システム100を除
く前述のコンピュータ装置とそれらの構成の相互作用は
従来技術として知られている。
インは、タグ、状態インジケータ、及びデータを含む。
キャッシュ・インデックスは、DCACHE24に転送さ
れて、要求されたデータ・ラインを含む記憶域を選択す
るために、DCACHE24によって使用される。キャッ
シュ・インデックスの受信に応じて、DCACHE24
が、タグを出力する。タグは、記憶域に対応している実
ページ番号(RPN)であり、状態インジケータは、タ
グに対応しているデータ・ラインが有効であるか無効で
あるかを示し、データは、有効又は無効のどちらかであ
る。一般的に、状態インジケータは次の状態を示す。
「無効(invalid)」は、データが供給されないことを
意味する。「有効共有(valid shared)」は、データが
供給されるが、どこか他の場所にあることを意味する。
「有効プライベイト・クリーン(valid private clea
n)」は、ラインがソール(sole)・コピーを持ち、D
CACHE24がラインにまだ書込んでいないことを意味
する。「有効プライベイト・ダーティ(valid private
dirty)」は、ラインがソール・コピーを持ち、DCA
CHE24がラインに書込まれる(即ち、メイン・メモリ
16にラインをコピーする必要がある)。
カニズム228(図6)は、状態(ステータス)インジケ
ータとタグを受け取る。状態インジケータが無効データ
を示すとき、タグ比較メカニズム228はプロセッサ14に
「ミス」表示を転送する。その場合、プロセッサ14はメ
イン・メモリ16をデータ・ラインのためにアクセスす
る。状態インジケータが有効データを示すとき、DCA
CHE24が要求されたデータ・ラインを現在記憶してい
るか否かを決定するために、タグ比較メカニズム228
は、タグとアドレスの残余とを比較する。タグの比較に
よって決定され要求されたデータ・ラインをDCACH
E24が持たないとき、タグ比較メカニズム228はプロセ
ッサ14に「ミス」表示を転送する。その場合、プロセッ
サ14はメイン・メモリ16をデータ・ラインのためにアク
セスする。タグ比較によって決定され要求されたデータ
・ラインをDCACHE24が持つとき、タグ比較メカニ
ズム228はプロセッサ14に「ヒット」表示を転送し、要
求されたデータ・ラインを読取るためにプロセッサ14に
プロンプトを出す。
ブロック図で示す。図2の中で示されるように、命令読
出/実行システム12が、命令をソフトウェア18(図1)
から記憶するための命令キャッシュ(ICACHE)26
を持つ。命令フェッチ・メカニズム(IFETCH)28
が命令キャッシュ26と接続され、最後に、実行のために
キャッシュ26から命令を検索する。ここで、命令IFE
TCH 28は、一度に4つの命令(各32ビット)を読
取り、ソート・メカニズム32へ命令を転送する。
保留場所のような適当な再処理メカニズムに送り出され
る。ここで、命令は、ソートされ、算術論理ユニット
(ALU)とメモリ待ち行列に(MQUEUE)に分配
される。
CH28から命令を受取り、各命令が算術論理ユニット
(ALU)かメモリかに前もって分別されているかどう
かを決定する。それに応じて、ソート・メカニズム32
が、図2の矢印36aと36bに示すように、それぞれ命令を
AQUEUE38aとMQUEUE38bに分配する。
うに、算術論理演算装置(ALU)42に転送されるそれ
ぞれの命令を記憶するレジスタ41aを持つALU命令処
理メカニズム39a(総計28個)を含む。AQUEUE3
8aの命令は、順序付けられて(即ち、データフロー型式
で)実行される。命令が完了すると、AQUEUEリネ
ーム・レジスタ44aによって結果が獲得され、命令にA
QUEUE38aの中で完了したことを示す印が付けられ
る。AQUEUE38aは、ソート・メカニズム32からサ
イクル毎に4つの命令(それぞれ32ビット)を受信
し、矢印51aによって示されるように引退(RETIRE)メ
カニズム52へ、サイクル毎に2つの命令(それぞれ32
ビット)を送信する。
UE38aの制御の下に、ALU42がリネーム・レジスタ4
4a、44bと汎用レジスタ46からオペランドを検索するこ
とができる。ALU42がオペランドを実行した後、矢印
49で示されるように、実行結果は、AQUEUEリネー
ム・レジスタ44aに記憶される。MQUEUE38bは、命
令処理メカニズム39bを含む。各々の命令処理メカニズ
ム39bは、それぞれのメモリ命令を記憶するレジスタ41b
と、それぞれのアドレスを記憶するアドレス・リオーダ
・バッファ・スロット(ARBSLOT:総計28個)
48を含む。MQUEUE38b中のメモリ命令は、メモリ
に対して「ロード(load)」及び「記憶(store)」と
して類別することができる。「ロード」は、メモリ(キ
ャッシュやメイン・メモリ)からレジスタへデータを伝
送する要求であるのに対して、「記憶」はレジスタから
メモリへデータを伝送する要求である。
を計算するために定められた数学的オペレーションをオ
ペランドの上で実行することを意味し、2番目の行程
は、計算されたアドレスに基づくデータのためにメモリ
やキャッシュをアクセスすることを意味する。MQUE
UE38bは、各々の命令と、2つの行程と、順次(即
ち、データフロー型式)メモリ/キャッシュ・アクセス
とを実行する。命令が完了すると、結果がMQUEUE
リネーム・レジスタ44bによって獲得され、命令にMQ
UEUE38bの中で完了したことを示す印が付けられ
る。MQUEUE38bは、ソート・メカニズム32からサ
イクル毎に4つの命令(それぞれ32ビット)を受信
し、矢印51bによって示されるように引退(RETIRE)メ
カニズム52へ、サイクル毎に2つの命令(それぞれ32
ビット)を送信する。
はアドレス計算機58で生成される。アドレス計算機58
が、MQUEUEリネーム・レジスタ44bから検索され
たオペランドに基づいてアドレスを計算し、矢印62で示
されるように、MQUEUE38bの中の命令に対応する
ARBSLOT48に(実または仮想)アドレスを渡す。
示される。メモリ命令実行の2番目の行程が遂行される
とき、DCACHE24でロード又は記憶を達成するため
に、矢印54で示されるように、計算されたアドレス(キ
ャッシュ・インデックスを含む)がDCACHE24へ転
送される。ここで、可能であれば、2つアドレスが、各
々の各サイクルでMQUEUE38bからDCACHE24
へ転送される。このマルチ・アドレス機能を適応させる
ため、例えば、DCACHE24は、デュアル・ポートで
実行される。これに対して他の例として、奇数と偶数ア
ドレスが、単一移行されたランダム・アクセス・メモリ
(RAM)中のそれぞれの奇数と偶数キャッシュ・バン
クに同時に送られるものもある。この詳細は、同じ発明
者によって同日、同時に出願された"Address Aggregati
on System And Method For Increasing Throughput Of
Addresses To A Data Cache From A Processor"に記述
されている。一度、DCACHE24がアドレスを処理す
ると、矢印56に示すように、データ結果はMQUEUE
リネーム・レジスタ44bに転送される。
ち、サイクル毎に2つの32ビット・ワード)を待ち行
列38a、38bの各々から受け取る。引退メカニズム52は、
構造的状態で命令結果を入れる。ソフトウェア18(図
1)は、結果が引退メカニズム52によって構造的状態に
変換されることに関与しない。引退メカニズム52が、そ
れぞれ矢印73、74によって示されるように、命令の属性
に基づいて命令結果を汎用レジスタ46や制御レジスタ72
に移動することにより、ソフトウェア18によって定義さ
れたプログラム命令の中の待ち行列38a、38bの命令を引
退させ、矢印76a、76bによって示すように命令結果をリ
ネーム・レジスタ44a、44bから汎用レジスタ46に渡す。
タ・ラインに結果的に記憶された命令を、引退させると
き、ラインが変わり、メイン・メモリ16でラインを更新
し、メイン・メモリ16に最終的に転送することを示すた
めに、引退メカニズム52が、ラインに応じて状態インジ
ケータを、「ダーティ」とマークする。
る「例外」があるか否かを決定するロジックを持つ。
「例外」は、1又は複数の以前の命令に対応する特別な
状況を示すフラグである。引退メカニズム52は、「例
外」を示した命令に先行する待ち行列38a、38b内の全て
の命令を捨てて、命令フェッチメカニズム28に、もう一
度再処理するために問題となっている命令を検索させる
か、または、特別な状況を扱う特別なソフトウェアを検
索させるかする。
連する方法を図3〜5を参照して詳述する。一般に、パ
ニック・トラップ・システム100及び方法が、エラーを
認識し、エラーの生じた命令を再実行することによっ
て、命令の不正確な順序外実行からの回復を可能とす
る。それによって、2回目の実行で、正しい結果とな
る。このことは、ソフトウェア18(図1)では見られな
い非構造的なハードウェア信号であるパニック・トラッ
プの概念を利用することによって達成される。
て発生する。 (a) 命令に関するタイミング又は同期要求時、IF
ETCH28。 (b)メモリ命令の不正確な順序外実行時、MQUEU
E38bのメモリ命令処理メカニズム39bの中のARBSL
OT48。 (c)メモリ命令に従うアクセスに関する発見されたパ
リティ・エラー時、DCACHE24。 (d)同期命令(例えば、マルチ・プロセッサ(MP)
システムの中での)、外部割込み、その他の事象での、
システム・インタフェース22へ(又は、から)のアクセ
スを制御するシステム・インタフェース制御22。
期を図るためにパニック・トラップを始める。例えば、
IFETCH28は、命令と関連してパニック・トラップ
をセットすることによって、待ち時間サイクルを挿入す
ることができる。ここで、パニック・トラップ・インジ
ケータ102(1又は複数のビット)は、命令処理メカニ
ズム39a、39bに渡される各命令104と関連する。IFE
TCH28は、インジケータ102が潜在的に不正確な動作
を引き起こす命令104と関係するパニック・トラップを
発生する。この発生又は非発生に基づき、パニック・ト
ラップ・インジケータ102は、特別な命令104が引退メカ
ニズム52によって最終的に引退するときパニック・トラ
ップを始めるか否かを示めす。パニック・トラップ・イ
ンジケータ102として1又は複数のビットを実行する代
わりに、パニック・トラップ・ロード命令が、引退メカ
ニズム52でパニック・トラップを始めるIFETCH28
によって、AQUEUE38aに置かれる。
き、ARBSLOT48自身によるパニック・トラップの
生成に関して、メモリ命令104と関連するパニック・ト
ラップ・インジケータ102が、対応するARBSLOT4
8によって、発生される。発生又は非発生に基づき、パ
ニック・トラップ・インジケータ102は、特別な命令104
が引退メカニズム52によって最終的に引退するときパニ
ック・トラップを始めるか否かを示めす。パニック・イ
ンジケータ102が命令104と関連するARBSLOT48に
よって発生される時の例としては、命令104がストア命
令に従うロード命令であって、ストア命令がロード命令
に先立って実行されなかったという状況がある。この場
合、ロード命令は、無視される無効データを生成する結
果となる。
CHE24はパニック・トラップ・インジケータ102を引
退メカニズム52に供給する。この事によって、DCAC
HE24は、DCACHE24への記憶及びDCACHE24
からのロードが有効であることを確保するために、パリ
ティ・チェック・ロジックを持つ。特に、ロードの間、
DCACHE24はパリティ・エラーのためにタグとデー
タをチェックし、記憶の間、DCACHE24はパリティ
・エラーのためにタグをチェックする。パリティ・エラ
ーが発見されたならば、DCACHE24は、パニック・
トラップ・インジケータを引退メカニズム52に発生す
る。幾つかのケースでは、パリティ・エラーから回復で
き、他のケース(例えば、ダーティ・データ、タグ・エ
ラー等)では、回復できない。回復ができる場合におい
て、引退メカニズム52によって、パリティ・エラーを発
生した命令の再実行を行い、新しいデータ・ラインがメ
イン・メモリ16から検索されるようになる。回復が可能
でない場合において、最終的にコンピュータ11のオペレ
ーションを停止するトラップ・コードに、引退メカニズ
ム52が、向くことになる。
4に接続されたシステム・インタフェース制御108は、引
退メカニズム52にパニック・トラップ・インジケータを
提供する。システム・インタフェース制御108がシステ
ム・インタフェース22へ(又はから)のアクセスを制御
する。例えば、マルチ・プロセッサ(MP)システム
で、プロセッサ14がMPシステムの他のプロセッサと同
期するように、システム・インタフェース制御108が、
同期命令をシステム・インタフェース22から受け取るこ
とができる。同期命令がシステム・インタフェース制御
108によって受け取られるとき、システム・インタフェ
ース制御108は、パニック・トラップ・インジケータを
引退メカニズム52に発生する。待ち行列38a、38bがフラ
ッシュされたあと、パニック・トラップを得る命令がリ
フェッチされ、フラッシュとリスタート・オペレーショ
ンの結果、プログラムの実行の同期がそのまま続くこと
になる。
トラップ・インジケータ102を持つ命令104を引退させる
とき、あるいは、引退メカニズム52が発生されたパニッ
ク・トラップ・インジケータ106、112をDCACHE24
又はシステム・インタフェース制御108から受け取ると
き、引退メカニズム52は、トラップ表示をトラップ・ベ
クトル・ゼネレータ114へ知らせる(矢印116)。引退メ
カニズム52は、パニック・トラップが発生されたトラッ
プ・ベクトル・ゼネレータ114に対して指示を出し、パ
ニック・トラップに対応する命令アドレスを転送する。
次に、矢印118、118a、118bによって示されるように、
トラップ・ベクトル・ゼネレータ114は、AQUEUE3
8aとMQUEUE38bの内容を削除する。さらに、矢印1
21で示すように、トラップ・ベクトル・ゼネレータ114
は、命令アドレスをIFETCH28へ送る。IFETC
H28は、矢印27で示されるように、新しい命令アドレス
から始まる命令アドレスをICACHE26から検索し、
順序外実行のためにアドレスをAQUEUE38aとMQ
UEUE38bに置く。従って、パニック・トラップにか
けられた命令の命令アドレスで、命令の実行がもう一度
始まる。
プ(非構造的パニック・トラップでなく)を受け取る場
合がある。例えば、システム・インタフェース制御108
は、外部割込みをシステム・インタフェース22から受け
取る場合がある。この場合、システム・インタフェース
制御108は、外部割込みを扱うためにコードと対応して
いる命令アドレスとともに、引退メカニズム52へトラッ
プ信号を発生する。さらに、引退メカニズム52は、トラ
ップ・ベクトル・ゼネレータ114へ、トラップが発生し
たことを示し、トラップと対応している命令アドレスを
転送する。上述のように、トラップ・ベクトル・ゼネレ
ータ114は、順次に応答する。
ニック・トラップを生成するための各ARBSLOT48
の内のトラップ・インジケータ・ロジックのオペレーシ
ョンを図4に示す。図4において、トラップ・インジケ
ータ・ロジック122は、構造的トラップ・インジケータ
(T)122からの構造的トラップ信号123と同様にパニッ
ク・トラップ・インジケータ(P)102からのパニック
・トラップ信号121を発生できる入力を、受け取る。こ
こで、トラップ・インジケータ102、122は、ラッチ又は
他の適当なロジック記憶装置である。
ク122が、記憶・ロード(ST/LD)ハザード信号124
(図7のST/LD_HAZARD)とキャッシュ可干渉性チェック
(CCC)ハザード信号125(図6のCCC_HAZARD)を受取
る。ハザード信号124、125は、パニック・トラップが発
生される時を示すためにAND論理ゲート135に渡され
る信号132を生成するOR論理ゲート128に伝えられる。
また、AND論理ゲート135は、UPDATE信号131を受け取
る否定回路133から、-UPDATE信号134を受け取る。トラ
ップ・インジケータ・ロジック122と対応する命令がそ
のデータ・アドレスを対応するARBSLOT48に示す
とき、UPDATE信号134が、発生する。UPDATE信号134の発
生が、P信号121を消滅するか、クリアする。UPDATE信
号134の発生は、TLB_TRAP信号141が消滅されている場
合、トラップ信号T123をクリアし、TLB_TRAP141がトラ
ンジスタ145を通じて発生する場合、トラップ信号123を
セットする。さらに、AND論理ゲート135に与えられ
る-UPDATE信号134が、クリア処理の後に発生し、ハザー
ド信号124、125が、命令が有効な間に獲得され、AND
論理ゲート135からの信号136が発生する。
ランジスタ137、138に作用する。トランジスタ137が、
最終的にパニック・トラップを生成し、トランジスタ13
8が、最終的に構造的トラップを生成する。パニック・
トラップに関連して、UPDATE信号123が発生していない
とき、トランジスタ137は、パニック・トラップ信号121
を発生することができる。構造的トラップに関連して、
UPDATE信号123が発生せず、且つ変換ルックアサイド・
バッファ(TLB)214(図6)からTLB_TRAP信号141が
発生するとき、トランジスタ138は、構造的トラップ信
号123を発生する。ここで、更に、非構造的パニック・
トラップ信号121の発生は、バイス・バーチャ(vice ve
rsa)を除き、構造的トラップ信号123の発生を引き起こ
さない。
メカニズム52(図3)によって引退されるとき、矢印14
6で示すように、引退信号RET[i](ここで、iは
トラップ・インジケータ・ロジック122を含む特別のA
RBSLOT48に対応する)によって制御されるような
ドライバ142、144は、パニック・トラップ信号121と構
造的トラップ信号123のそれぞれを引退メカニズム52へ
送り出す。
は、AQUEUE38aとMQUEUE38bの各々のために
生成される。これらの引退ポインタRET[27:0]は、次の
2つの命令が各待ち行列38a、38bの中で引退する場所を
示す。各待ち行列38a、38bに与えられた時間で、前述の
2つの引退ポインタが各々2つの連続的命令処理メカニ
ズム39a、39bに対して発生し、それによって、まだ引退
していない最も古い命令を含む2つの命令処理メカニズ
ム39a、39bを示す。命令が引退するとき、その対応する
ポインタは消滅し、次の最も古いものが発生する。実行
の例として、引退ポインタRET[27:0]は、循環桁移動チ
ェインから28個のマスタ・スレーブ・ラッチで生成さ
れる。
クの実行が引退メカニズム52と関連することを示す。引
退メカニズム52が、AQUEUE38aとMQUEUE38b
中に引退命令と関連データで構成され、構造的状態にな
る。図5において、引退メカニズム52は、第1の行程52
aと第2の行程52bを含む2つの行程パイプを含む。
MQUEUE38bからの命令データは、構造的トラップ
と非構造的パニック・トラップの表示のために、それぞ
れのAQUEUEとMQUEUEの一部52a'、52a''に
よって、別々に分析される。構造的トラップの概念は、
よく知られている技術である。構造的トラップの例は、
アドレス・カルキュレータ58(図2)の変換ルックアサ
イド・バッファ(TLB)214(図6)によって生成さ
れる(TLBミス、書込違反、調整違反、参照違反な
ど)である。(構造的又はパニック)トラップが発生す
るならば、関連命令は機能停止し、トラップ表示がトラ
ップ・ベクトル・ゼネレータ114に転送される。更に、
第1行程52aは、AQUEUE38aとMQUEUE38bか
らの命令を再処理して、再結合するために、命令と関連
データを分析する。第1行程52aが第2行程52bに情報を
伝送するように、再結合処理が発生する。最終的に、命
令結果は、順に、汎用レジスタ46(図2)や制御レジス
ター72(図2)に転送される。
程52aが4つのレジスタ148(簡潔にするため148a、148b
の2つのみ示す)を含む。レジスタ148aは命令データを
AQUEUE38aから受け取るのに対して、レジスタ148
bは命令データをMQUEUE38bから受け取る。
コード(OPCODE)154と、命令アドレス(INSTR_ADDR)1
55と、トラップ・タイプ・インジケータ(T_TYPE:1又
は複数のビット)156と、構造的トラップ・インジケー
タ(T:1又は複数のビット)157と、パニック・トラ
ップ・インジケータ(P:1又は複数のビット)102と
を受け取る。T_TYPE156は、構造的トラップのタイプを
示す。RET_INSERT信号152によって記録されるそれぞれ
のトランジスタ159に接続されるそれぞれの入力158を介
して、前述の情報がレジスタ148に置かれる。
て、レジスタ148bは、メモリ・オペレーション・コード
(INSTR_OPCODE)164と、命令アドレス(INSTR_ADDR)1
65と、トラップ・タイプ・インジケータ(T_TYPE:1又
は複数のビット)166と、構造的トラップ・インジケー
タ(T:1又は複数のビット)167と、パニック・トラ
ップ・インジケータ(P)102と、データ・アドレス(D
ATA_ADDR)62とを受け取る。前述の情報は、RET_INSERT
152信号によって記録されるそれぞれの入力168とそれぞ
れのトランジスタ169を介して、レジスタ148bに移され
る。
プ・インジケータ106、112と同様に、構造的トラップ入
力をDCACHE24とシステム・インタフェース制御10
8から受け取るために配置される。このゲート172の結果
は、この引退した命令がトラップに必要か否かを示す。
QUEUE38bと、DCACHE24と、システム・イン
タフェース制御108とから、パニック・トラップ・イン
ジケータを受け取るために配置されている。このゲート
173の結果は、パニック・トラップ・インジケータ102が
この引退した命令と関連しているか否かを示す。DCA
CHE24及びシステム・インタフェース制御108からの
パニック・トラップ・インジケータ102は、外部システ
ムによって生成されるので、命令と関係付けることがで
きる。トラップを引退する次のMQUEUE命令に割り
当てる。構造的トラップ(T_TYPE166で示される)とパ
ニック・トラップとを選択できるならば、パニック・ト
ラップが準備されていることがソフトウェア18に対して
意味があるので、構造的トラップが機能する。
65が、実際の命令アドレスを記憶するルックアップ・テ
ーブルに、ポインタで置換される場合がある。この場合
は、引退メカニズム52の第1行程52a内で、記憶域を節
約する。
が、レジスタ148a、148bの内容をそれぞれのレジスタ17
8a-178dに伝送するために、それぞれのトランジスタ176
a-176dに作用する。上述では、レジスタ178a-178dの中
で位置決めされた命令は、プログラム順となっている。
トラップされた命令があるならば、最初のトラップされ
た命令だけが、レジスタ178a、178dの中で許可される。
各々の命令は、命令の順序を示す一組のb4ビット182と
関係付けられる。b4ビット182が引退メカニズム52から
の出力であるとき、b4ビット182は命令を処理するため
に利用される。
が、(図4の構造的又はパニック)トラップが生成され
たか否かを示すトラップ信号187を生成するために、矢
印185で示されるように、OR論理ゲート184に転送され
る。トラップ信号187は、トラップ・ベクトル・ゼネレ
ータ114へ渡される。
とパニック・トラップ・インジケータ102が結合され、
トラップ・タイプ信号196を生じるために、矢印194で示
されるように、マルチプレクサ(MUX)192に伝えら
れる。トラップされた命令が、レジスタ178a-178dの1
つの中にあるとき、他の有効なトラップされた命令は、
他のレジスタ178a-178dのいずれにも存在しない。更
に、トラップされた命令を持っているレジスタ178a-178
dが、T_TYPEとPを出力するとき、矢印196で示すよう
に、トラップ・ゼネレータ114にこれらのビットを渡す
ために、レジスタ178a-178dは、MUX192を制御する。
トラップ・タイプ・インジケータ156、166は、構造的ト
ラップのタイプを識別するトラップ・インジケータT15
7、167に対応している。
ル・ゼネレータ114のための命令アドレス201を生成する
ために、矢印199で示すように、MUX198に伝えられ
る。MUX198は、MUX192と同時に制御され、従っ
て、トラップされた命令に関連するINSTR_ADDR201がト
ラップ・ベクトル・ゼネレータ114に転送される。
タイプ信号196、パニック・トラップ・インジケータ10
2、及び命令アドレス201の受取りに基づいて、トラップ
・ベクトル・ゼネレータ114は、新しい命令アドレス121
を生成して、それをIFETCH28(図3)に渡す。ト
ラップが構造的トラップTであるとき、新しい命令アド
レス121がトラップ・ハンドラ、例えば、TLBミス・
ハンドラ、外部割込ハンドラなど、のアドレスに対応す
る。トラップが、IFETCH28又は命令処理メカニズ
ム39a、39bからの非構造的パニック・トラップPである
とき、新しい命令アドレス121は、パニック・トラップ
された命令に対応する。
ザード分解システム キャッシュ可干渉性チェック(CCC)ハザード125
(図4)の生成を、図6を基に説明する。各々ARBS
LOT48は、DCACHE24から出力されプロセッサ14
で利用可能でないすでに使用されたCCCデータを、ロ
ード命令が持つかどうかを決定するCCCハザード分解
システム202を含む。
ム・インタフェース22に接続される、遠隔処理装置や遠
隔入出力(I/O)装置のような他の装置が、データ・
ラインの独占排他的なコピーを行う。従って、遠隔装置
は、DCACHE24がデータ・ラインのコピーを持つか
否かを決定するために、要求をDCACHE24へ送り出
す。DCACHE24がデータ・ラインを持つならば、デ
ータ・ラインの所有権が、DCACHE24からシステム
・インタフェース22に接続される遠隔装置に移される。
のARBSLOT48は、CCCデータ・ラインと対応し
ているアドレス(キャッシュ・インデックスとタグを含
む)を受け取るか否か及びデータ・ラインが存在するか
否かを決定するために、DCACHE24をアクセスする
ことに使用される。CCC照会に対するレスポンスが、
システム・インタフェース制御108(最終的には、シス
テム・インタフェース22)に送り出される。レスポンス
は、その状態インジケータと同様に、(存在するなら
ば)データ・ラインを含む。
れかのARBSLOT48の命令がCCCデータ・ライン
を使用するか否かを決定するために、MQUEUE38b
内の全てのARBSLOT48へ移される。CCCデータ
・ラインのロードを意味する命令がすでに実行されるな
らば、パニック・トラップは、その対応するパニック・
トラップ・インジケータ102(図4)を介してその命令
に関連付けられる。
ム202は、ヒット(HIT)インジケータ206と、キャッ
シュ・インデックス207と、タグ208とを有するレジスタ
204を含む。キャッシュ・インデックス207とタグ208
は、アドレス・カルキュレータ58から受け取られる。ア
ドレス・カルキュレータ58は、リネーム・レジスタ44
a、44bや汎用レジスタ46(図2)からオペランド(O
P)212を受け取って、実行する加算機211を含む。加算
機211が、矢印216で示すように、ARBSLOT48及び
変換ルックアサイド・バッファ(TLB)214に渡され
る仮想アドレスを生成する。TLB214は仮想アドレス2
16に基づいて実アドレス・タグを生成し、矢印218で示
すように、レジスタ204にそれを渡す。
07は、矢印222で示すように、DCACHE24へアクセ
スするのに使用される。キャッシュ・インデックス222
を受信して、DCACHE24が、タグ224と、状態イン
ジケータ226と、データとを選別して出力するために、
着信キャッシュ・インデックスを使用する。タグ224と
状態インジケータ226は、ヒットかミスかを判断するた
めに、タグ比較メカニズム228に渡される。データは、
MQUEUEリネーム・レジスタ44bに移される。ま
た、タグ比較メカニズム228が、ARBSLOTレジス
タ204から受け取ったタグ208とDCACHE24からのタ
グ224を比較する。比較の結果が一致したならば、矢印2
27で示すように、タグ比較メカニズム228が、ヒット・
インジケータ206を通してレジスタ204の中にヒットを発
生する。
が、矢印232で示すように、遠隔CCCARBSLOT4
8から(キャッシュ・インデックスを持つ)アドレスMIS
S_ADDR231と、ローカルARBSLOTレジスタ204から
キャッシュ・インデックス207とを受け取るように構成
された、キャッシュ・インデックス比較メカニズム228
を含む。キャッシュ・インデックスの比較に基づいて、
比較メカニズム228は、ローカルARBSLOT48の中
の命令が、CCCデータ・ラインを使用したどうかを示
すマッチ信号(MATCH)234を生成する。MATCH信号234
は、CCCハザード信号125を発生するAND論理ゲー
ト236と、CCCハザード信号125を消滅するAND論理
ゲート238とに転送される。
と、ローカルARBSLOT48がキャッシュ・ヒットを
持ち、既にデータを受信しているかどうかを示すDONE信
号239と、CCC ARBSLOT48が比較のためにそ
のアドレスMISS_ADDR231を配信したことを示す、CCC
ARBSLOT48からのCCC制御信号(CCC-CNT
L)241と、を受け取る。前述の信号の状態に基づいて、
AND論理ゲート236は、信号237を生成して、CCCハ
ザード信号125を生成するAND論理ゲート247にそれを
渡す。
って生成される。このDONE信号239を生成するために、
AND論理ゲート243は、以下のものを受け取る。 (a)ARBSLOT48が他のARBSLOT48の中の
ストア命令に依存するロード命令を持つときを示すスト
ア非依存信号(-DS:図7)242。 (b)ARBSLOT48の中に有効アドレスがあるとき
を示すキャッシュ・アクセス有効信号(CAV)245。 (c)DCACHE24がARBSLOT48の中の命令に
よってアクセスしたときを示す非キャッシュ保留信号
(-CP:図7)246'。 (d)ヒット又はミスがDCACHE24で起こったこと
を示すヒット信号(HIT)247。 (e)ローカルARBSLOT48の中の命令がDCAC
HE24には無い現在発生しているミス・データに依存し
ないときを示す非依存ノーミス(onmiss)信号(-DM)2
48。
ンデックス比較メカニズム228からのMATCH信号234と、
AND論理ゲート243からのDONE信号239と、最も古い命
令ポインタOLDEST_INSTR237と、を受け取る。ポインタO
LDEST_INSTR237が、ローカルARBSLOT48が最も古
い命令を持って、既にその命令を引退させるために準備
している時を示す。ここで、現在のARBSLOT48と
以前のARBSLOT48とに対応する引退ポインタRET
を考慮することによって、OLDEST_INSTR信号237が生成
される。もし、現在のARBSLOT48に対応する引退
ポインタが存在し、以前のARBSLOT48のそれが消
滅しているならば、現在のARBSLOT48が最も古
く、OLDEST_INSTR信号237が発生する。しかしながら、
もし、現在のARBSLOT48に対応する引退ポインタ
が存在し、また、以前のARBSLOT48のそれも存在
するならば、現在のARBSLOT48が一番古いもので
はなく、OLDEST_INSTR信号237が消滅する。
引退メカニズム52(図3)によって引退するとき、AN
D論理ゲート238が、否定回路245によって反転され、C
CCハザード信号125を消滅するAND論理ゲート247に
送り出す、待ち時間信号(WAIT)244を生成する。従っ
て、もし、ARBSLOT48が、引退メカニズム52(図
3)にその命令を始めるために準備するならば、CCC
ハザード分解システム202がパニック・トラップを防
ぎ、ARBSLOT48を完了させる。この機能は、不必
要で役に立たないパニック・トラップを防いで、パフォ
ーマンスを最適化する。
テム 各々ARBSLOT48は、実行されるロード命令がまだ
実行されていないストア命令に依存したデータを利用す
る場合、パニック・トラップを生成する記憶・ロード
(ST/LD)ハザード分解システム252を有し、それを利用
する。ロード命令が、実行されていないストア命令に依
存するデータを使用したとき、データは無効であり、よ
って、ロード命令の結果も無効となり捨てられ、ロード
命令が再実行される。
ステム252は、キャッシュ・インデックスの一致がある
か否かを示す比較信号258を得るために、遠隔ARBS
LOT48からの遠隔キャッシュ・インデックス253とロ
ーカル・レジスタ204の中のローカル・キャッシュ・イ
ンデックス207とを比較するキャッシュ・インデックス
比較メカニズム228を持つ。一致する場合、それらのそ
れぞれの命令は、同じデータを必要とするオペレーショ
ンを指示する場合がある。後述するように、それらのキ
ャッシュ・インデックスが一致するならば、命令が同じ
データを必要とするか否かを確定するために、更に、そ
れらの相対データ・サイズに関係して、チェックが実行
される。
BSLOT48からの遠隔スロット番号SLOT261受け取っ
て、それを、2つのARBSLOT48の2つの命令がよ
り新しい命令であることを示すYOUNGER信号264を得るた
めに、ローカル・レジスタ204の中のローカル・スロッ
ト番号SLOT263と比較する。命令が、順番にARBSL
OT48に置かれ、したがって、スロット番号が、より新
しい命令を含むARBSLOT48の番号を直接意味す
る。
ンデックス比較メカニズム254からの比較信号258と、MA
TCH信号269を得るために命令に応じたデータ・サイズが
一致するか否かを示すSIZE_MATCH信号267とを受け取
る。ここで、このデータ・サイズは、1バイト(8ビッ
ト)、ハーフ・ワード(hw:16ビット)、1ワード
(32ビット)、及びダブル・ワード(dw:64ビッ
ト)を含む。データが一致する場合、それらが重なれば
よく、データ・サイズが同一である必要はない。図8に
示されるサイズ・マッチ決定メカニズム326によって、S
IZE_MATCH信号267が得られる。MATCH信号269が発生する
とき、キャッシュ・インデックス207、255が一致し、そ
して、それらに対応するデータ・サイズが一致する。
と、遠隔ARBSLOT48によってDCACHE24に送
られるストア命令があるか否かを示すSTORE_LAUNCH信号
274と、ローカルARBSLOT48の中の命令がロード
命令であるか否かを示すLOAD信号275と、キャッシュ・
インデックスとそれらのデータ・サイズが一致するか否
かを示すAND論理ゲート266からのMATCH信号269と、
を受け取る。前述の信号に基づいて、AND論理ゲート
272は、AND論理ゲート278、279に送る信号277を生成
する。信号277によって、ラッチあるいは他の適当なロ
ジック・メカニズムのような依存ストア(DS)インジ
ケータ281でDS信号315が発生し、若しくは、ARBSL
OT48がすでに実行してデータ・アドレスを受け取った
か否かに応じて、ST/LDハザード信号124(図4)
が発生する。一般に、他のARBSLOT48がDCAC
HE24にアドレスを渡すことを実行するストア命令を持
つとき、AND論理ゲート272は、ロード命令を持つA
RBSLOT48の中で稼働するようになる。
72からの信号277と否定信号-DONE282を受け取り、DSイ
ンジケータ281でDS信号315を発生するトランジスタ286
に対するアクチュエータ信号284を得る。
72からの信号277と肯定信号DONE288を受け取り、最終的
にパニック・トラップを発生させるST/LD_HAZARD信号12
4(図4)を得る。
SLOT48の命令が遠隔ARBSLOT48の命令より古
いかどうかを示すスロット比較メカニズム259からのYOU
NGER信号264と、遠隔ARBSLOT48で実行されてい
る命令がロード命令であるかどうかを示すLOAD_LAUNCH
信号294と、ローカルARBSLOT48がストア命令を
含むかどうかを示すSTORE信号295と、対応するデータ・
サイズと同様にキャッシュ・インデックス207、255が一
致するかどうかを示すAND論理ゲートロジック266か
らのマッチ信号269と、を受け取る。前述の信号に応じ
て、AND論理ゲート292は、一致がトリガーとなっ
て、同じ遠隔ARBSLOT48の中のDSインジケータ
281を介して最終的にDS信号315を発生するASSERT_DS信
号を生成する。HIT_DS信号302を他の遠隔ARBSLO
T48に送り出すドライバ299へASSERT_DS信号298が送ら
れる。AND論理ゲート303と駆動信号305に基づくGRAN
TED_+_2信号307が真であるならば、HIT_DS信号302が、
DSインジケータ281にDS信号315を発生するトランジス
タ304を駆動する。DCACHE24へのアクセスがAR
BSLOT48に与えられた後に、GRANTED_+_2信号が2
サイクルで発生するという問題がある。従って、ロード
命令がDCACHE24で開始され、ローカルARBSL
OT48がロード命令に依存するデータに関連するストア
命令を含むとき、AND論理ゲート292は、上述のよう
に稼働する。この場合、ロード命令が始められていて、
データがまだ受け取られていない場合には、パニック・
トラップは必要ない。
隔ARBSLOT48で引退するときを示す遠隔ARBS
LOT48からのSTORE_RETIRE信号308と、(アドレスMIS
S_ADDRのキャッシュ・インデックスがローカル・キャッ
シュ・インデックスと一致するかどうかを示す図6のA
ND論理ゲート228からの)MATCH信号234と、を受け取
る。前述の信号に基づいて、AND論理ゲート306は、
DSインジケータ281によって維持されたDS信号315を最
終的に消滅するDEASSERT_DS信号309を生成する。図7で
示すように、DEASSERT_DS信号309が、DSインジケータ
281によってを生じたDS信号315を消滅するトランジスタ
312に作用する。
生は、いつARBSLOT48がその命令を実行しその結
果に対応するデータ・アドレスを受け取るかを示すDONE
信号239の生成に影響する。これについて、AND論理
ゲート243(図6)は、否定回路318でDS信号315の反転
によって生成される-DS信号242、CAV信号245、-CP信号2
461、-DM信号248、及びHITインジケータ206からHIT
信号247によって、DONE信号239を生成する。DS信号315
が発生されるとき、この信号は、DCACHE24に対す
るアクセス要求からの依存するロード命令を防止する。
イプを通じて、スムーズに実行されなかったため、AR
BSLOT48がデータを得るためにDCACHE24をも
う一度アクセスするとき、ARBSLOT48が、引退メ
カニズム52からHIT_RETRY信号322を受け取る。このHIT_
RETRY信号322は、否定回路323を通じて、AND論理ゲ
ート324へ渡される。AND論理ゲート324も、GRANT_+_
2信号327を受け取る。DCACHEアクセスが与えられ
た後、2サイクルでHIT_RETRY信号322が受け取られると
き、AND論理ゲート324は信号325を発生する。信号32
5は、順番に、CPインジケータ327から作用するトラン
ジスタ326に作用する。PCインジケータ327は、それぞ
れARBSLOT48がDCACHE24をアクセスしたの
か否かを示すCP信号246を消滅するか発生するために構
成されるラッチか他の適当なロジック装置である。CP
インジケータ327は、論理ハイ・ボルテージ(high volt
age)に接続され、UPDATE信号123によって作用するトラ
ンジスタ328によって、CP信号246を発生するためにセッ
トされる。さらに、CP信号246は、DONE信号239を生成す
るAND論理ゲート243に送出される-CP信号246'を生成
するために、否定回路329に送出される。従って、HIT_R
ETRY信号322が発生するとき、-CP信号246'がAND論理
ゲート243に発生せず、DONE信号239が消滅する。
成する各ARBSLOT48のサイズ一致決定ロジック32
6を示す。一般に、図8のロジック326は、ロード命令
が、それらのそれぞれのデータ・サイズに基づくストア
命令に依存するか否かを決定する。各命令と関連するデ
ータは、次のサイズのいずれかである。1バイト(8ビ
ット)、ハーフ・ワード(16ビット)、1ワード(3
2ビット)、又はダブル・ワード(64ビット)。デー
タ・アドレスの重複がある限り、データが異なるサイズ
のとき、ロード・データは記憶データに依存することが
できる。例えば、ロード・バイトが記憶ワードと重複す
るならば、ロード・バイトは、記憶ワードに依存する場
合がある。また例えば、記憶バイトがロード・ハーフ・
ワードの範囲内であるならば、ロード・ハーフ・ワード
は、記憶バイトに依存する場合がある。
スは、そのサイズを示すSIZE信号(例えば、2ビット)
を含む。サイズの符号化を次に示す。「00」は1バイ
トを意味し、「01」はハーフ・ワードを意味し、「1
0」は1ワードを意味し、「11」はダブル・ワードを
意味する。
は、開始命令に対応するREMOTE_ADDR[62]信号331と、ロ
ーカル命令に対応するLOCAL_ADDR[62]信号256a、334と
を受け取るXOR論理ゲート328を含む。これらの信号
に基づいて、XOR論理ゲート328が、これらのアドレ
ス・ビットが一致するか否かを示す信号332を生成す
る。
と対応しているREMOTE_SIZE[0]信号333と、ローカル命
令と対応しているLOCAL_SIZE[0]信号335とを受け取り、
これらの1つ又は両方のアドレスがハーフ・ワード・サ
イズより大きいサイズで発生したことを示す信号336を
生成する。よって、オーバーラップ(重複)オペレーシ
ョンは、これらの命令のアドレス・ビット[63,62]の一
致を必要としない。
対応しているREMOTE_ADDR[63]信号339と、ローカル命令
と対応しているLOCAL_ADDR[63]信号342とを受け取り、
これらのアドレス・ビットが一致するか否かを示す信号
346を生成する。
と対応しているREMOTE_SIZE[1]信号352と、ローカル命
令と対応しているLOCAL_SIZE[1]信号354とを受け取り、
これらの1つ又は両方のアドレスが1バイト・サイズよ
り大きいサイズで発生したことを示す信号356を生成す
る。よって、オーバーラップ(重複)オペレーション
は、この命令のアドレス・ビット[63]の一致を必要とし
ない。
け取って、それらの信号から、アドレス・ビット[62]が
一致しないことを示す信号362を生成する。
け取って、それらの信号から、アドレス・ビット[63]が
一致するか否かを示す信号366を生成する。
け取って、SIZE_MATCH信号267を生成する。この信号に
より、最適な比較ができるようにデータ・サイズが一致
する。
同様に、ST/LDハザード分解システム252(図7)
の全体的なオペレーションを以下に説明する。
OT48内でロード命令と一致するとき、ストア命令より
ロード命令が新しいかどうかが確認される。ロード命令
がストア命令より新しくない場合、なにも起きない。ロ
ード命令がストア命令より新しい場合、ロード命令が実
行されていれば、ST/LD_HAZARD信号124が発生し、ロー
ド命令が実行されていないならば、DSインジケータが
発生する。
48内でストア命令と一致するとき、ストア命令を持って
いるARBSLOT48は、ロード命令を持っているAR
BSLOT48の中で、DS信号315を発生させる。
ア命令が引退するとき、DSインジケータ281によって
発生し消滅するDS信号315は、ARBSLOT48の中の
ロード命令によってクリアされる。DSインジケータがA
RBSLOT48で消滅するとき、ARBSLOT48は、
DCACHE 24をアクセスできるようになる。
む。 (1)プロセッサの順序外命令の実行で生じた不正確な
結果から回復するためのシステムであって、前記プロセ
ッサに接続され、命令を読出すフェッチ・メカニズム
と、前記プロセッサに接続され、前記命令を前記フェッ
チ・メカニズムから受け取り、前記命令を順序外で実行
する再処理メカニズムと、前記再処理メカニズムに接続
され、前記再処理メカニズムの命令の構造的に不正確な
実行を認識し、前記実行の後、前記命令をパニック・ト
ラップ・インジケータと関連付けるパニック・トラップ
論理手段と、前記再処理メカニズムと前記フェッチ・メ
カニズムに接続され、前記再処理メカニズムを消去し、
前記フェッチ・メカニズムに再読出しをさせ、前記パニ
ック・トラップ・インジケータに基づいて前記命令を開
始するトラップ・ベクトル・ゼネレータと、を有する前
記システム。 (2)前記パニック・トラップ論理手段が、ロード命令
がストア命令より先に実行される場合と前記ロード命令
が前記ストア命令によって供給されるデータに依存する
場合とを決定し、前記決定に基づいて前記パニック・ト
ラップインジケータを発生する依存論理手段を有する、
(1)記載のシステム。 (3)更に、命令が、可干渉性チェック信号に基づいて
転送されるデータを必要とする場合を決定するハザード
論理手段を有する(1)記載のシステム。 (4)前記フェッチ・メカニズムが前記パニック・トラ
ップ・インジケータと前記命令の1つとを関連付ける手
段を有する(1)記載のシステム。 (5)更に、前記命令の1つがデータ・キャッシュへの
アクセスの結果パリティ・エラーを生じたことを検出
し、前記パニック・トラップ・インジケータと前記命令
を関連付ける手段を有する(1)記載のシステム。
おいて、不正確な実行結果を生じる命令から回復するシ
ステムであって、前記プロセッサに接続され、命令を読
出し、パニック・トラップ・インジケータと再実行され
る命令とを関連付けるフェッチ・メカニズムと、前記プ
ロセッサに接続され、前記命令を前記フェッチ・メカニ
ズムから受け取り、前記命令を順序外で実行する再処理
メカニズムと、前記再処理メカニズムと前記フェッチ・
メカニズムに接続され、命令の実行後に該命令を受け取
り、前記再処理メカニズムを消去し、前記フェッチ・メ
カニズムに前記パニック・トラップ・インジケータに基
づいて前記命令を順番に再読出しをさせるトラップ・ベ
クトル・ゼネレータと、を有する前記システム。
接続されたデータ・キャッシュによって発生したパリテ
ィ・エラーから回復するためのシステムであって、命令
を読出すフェッチ・メカニズムと、前記命令を前記フェ
ッチ・メカニズムから受け取り、前記命令を順序外で実
行し、前記データ・キャッシュへアクセスする再処理メ
カニズムと、アクセス中にパリティ・エラーが発生した
ことを検知し、アクセスによってパリティ・エラーが生
じたときパニック・トラップ・インジケータを生成する
データ・キャッシュと、実行後に前記命令を引退させる
タイミングを操作し、前記パニック・トラップ・インジ
ケータを認識し、前記再処理メカニズムを消去し、前記
フェッチ・メカニズムに再読出しをさせるパニック・ト
ラップゼネレータと、を有する前記システム。
実行で生じた不正確な結果から回復するための方法であ
って、再処理メカニズムに命令を集めるステップと、前
記命令を順序外で実行するステップと、命令の構造的に
不正確な実行を認識するステップと、前記命令に応じて
前記不正確な命令を示すパニック・トラップ・インジケ
ータを発生するステップと、実行後前記命令を引退させ
る場合、前記パニック・トラップ・インジケータ認識
し、前記再処理メカニズムを消去し、無効命令を順に再
読出しするステップと、を有する前記方法。
おいて、不正確な実行結果を生じる命令から回復する方
法であって、命令を読出すステップと、前記読出し中
に、命令が無効であることを決定するステップと、パニ
ック・トラップ・インジケータと前記無効命令とを関連
付けるステップと、前記無効命令を他の命令と共に再処
理メカニズムへ配置するステップと、前記命令を前記再
処理メカニズムの中で順序外に実行するステップと、実
行後に前記命令を引退させる場合、パニック・トラップ
・インジケータを認識し、前記再処理メカニズムを消去
し、前記無効命令を順番に再読出しするステップと、を
有する前記方法。 (10)順序外命令を実行するプロセッサに接続された
データ・キャッシュによって発生したパリティ・エラー
から回復するための方法であって、再処理メカニズムに
命令を集めるステップと、前記命令を順序外で実行する
ステップと、前記キャッシュにアクセスする命令を実行
するステップと、前記アクセス中にパリティ・エラーが
発生したことを検知するステップと、前記プロセッサに
おいて、前記データ・キャッシュからトラップ・ベクト
ル・ゼネレータへパニック・トラップ・インジケータを
生成して転送するステップと、を有する前記方法。
生成された不正確な結果からプロセッサを回復するのに
使われ、更には、タイミングと同期を図るパニック・ト
ラップ・システム及び方法を提供することができる。
及び方法を実行するコンピュータを示すブロック図であ
る。
実行処理を示すブロック図である。
実行処理を示すブロック図である。
ット(ARBSLOT)中のパニック・インジケータを
発生するトラップ・インジケータ・ロジックの実行処理
を示すブロック図である。
処理を示すブロック図である。
ック・トラップ)を生成するためのキャッシュ可干渉性
チェック(CCC)システムを示すブロック図である。
ニック・トラップ)を生成するための記憶/ロード(ST
/LD)ハザード分解システムの実行処理を示すブロック
図である。
チ決定メカニズムの実行処理を示すブロック図である。
Claims (1)
- 【請求項1】 プロセッサの順序外命令の実行で生じた
不正確な結果から回復するためのシステムであって、 前記プロセッサに接続され、命令を読出すフェッチ・メ
カニズムと、 前記プロセッサに接続され、前記命令を前記フェッチ・
メカニズムから受け取り、前記命令を順序外で実行する
再処理メカニズムと、 前記再処理メカニズムに接続され、前記再処理メカニズ
ムの命令の構造的に不正確な実行を認識し、前記実行の
後、前記命令をパニック・トラップ・インジケータと関
連付けるパニック・トラップ論理手段と、 前記再処理メカニズムと前記フェッチ・メカニズムに接
続され、前記再処理メカニズムを消去し、前記フェッチ
・メカニズムに再読出しをさせ、前記パニック・トラッ
プ・インジケータに基づいて前記命令を開始するトラッ
プ・ベクトル・ゼネレータと、 を有する前記システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US609,807 | 1996-03-01 | ||
| US08/609,807 US5838942A (en) | 1996-03-01 | 1996-03-01 | Panic trap system and method |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JPH09244895A true JPH09244895A (ja) | 1997-09-19 |
| JPH09244895A5 JPH09244895A5 (ja) | 2004-12-24 |
| JP3715057B2 JP3715057B2 (ja) | 2005-11-09 |
Family
ID=24442416
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP02742397A Expired - Fee Related JP3715057B2 (ja) | 1996-03-01 | 1997-02-12 | パニック・トラップ・システム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5838942A (ja) |
| JP (1) | JP3715057B2 (ja) |
| DE (1) | DE19650509C2 (ja) |
| GB (1) | GB2310742B (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6892294B1 (en) | 2000-02-03 | 2005-05-10 | Hewlett-Packard Development Company, L.P. | Identifying execution ready instructions and allocating ports associated with execution resources in an out-of-order processor |
| US11886377B2 (en) * | 2019-09-10 | 2024-01-30 | Cornami, Inc. | Reconfigurable arithmetic engine circuit |
Family Cites Families (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1990010267A1 (en) * | 1989-02-24 | 1990-09-07 | Nexgen Microsystems | Distributed pipeline control for a computer |
| US5280615A (en) * | 1990-03-23 | 1994-01-18 | Unisys Corporation | Out of order job processing method and apparatus |
| JP2642529B2 (ja) * | 1991-04-30 | 1997-08-20 | 株式会社東芝 | 並列プロセッサーの命令分配処理装置 |
| US5630157A (en) * | 1991-06-13 | 1997-05-13 | International Business Machines Corporation | Computer organization for multiple and out-of-order execution of condition code testing and setting instructions |
| US5345569A (en) * | 1991-09-20 | 1994-09-06 | Advanced Micro Devices, Inc. | Apparatus and method for resolving dependencies among a plurality of instructions within a storage device |
| JPH0820949B2 (ja) * | 1991-11-26 | 1996-03-04 | 松下電器産業株式会社 | 情報処理装置 |
| JP3644959B2 (ja) * | 1992-09-29 | 2005-05-11 | セイコーエプソン株式会社 | マイクロプロセッサシステム |
| US5467473A (en) * | 1993-01-08 | 1995-11-14 | International Business Machines Corporation | Out of order instruction load and store comparison |
| US5420990A (en) * | 1993-06-17 | 1995-05-30 | Digital Equipment Corporation | Mechanism for enforcing the correct order of instruction execution |
| SG48907A1 (en) * | 1993-12-01 | 1998-05-18 | Intel Corp | Exception handling in a processor that performs speculative out-of-order instruction execution |
| US5627985A (en) * | 1994-01-04 | 1997-05-06 | Intel Corporation | Speculative and committed resource files in an out-of-order processor |
| US5524263A (en) * | 1994-02-25 | 1996-06-04 | Intel Corporation | Method and apparatus for partial and full stall handling in allocation |
| US5546597A (en) * | 1994-02-28 | 1996-08-13 | Intel Corporation | Ready selection of data dependent instructions using multi-cycle cams in a processor performing out-of-order instruction execution |
| US5584037A (en) * | 1994-03-01 | 1996-12-10 | Intel Corporation | Entry allocation in a circular buffer |
| US5546599A (en) * | 1994-03-31 | 1996-08-13 | International Business Machines Corporation | Processing system and method of operation for processing dispatched instructions with detected exceptions |
| US5649225A (en) * | 1994-06-01 | 1997-07-15 | Advanced Micro Devices, Inc. | Resynchronization of a superscalar processor |
| US5625789A (en) * | 1994-10-24 | 1997-04-29 | International Business Machines Corporation | Apparatus for source operand dependendency analyses register renaming and rapid pipeline recovery in a microprocessor that issues and executes multiple instructions out-of-order in a single cycle |
| US5625835A (en) * | 1995-05-10 | 1997-04-29 | International Business Machines Corporation | Method and apparatus for reordering memory operations in a superscalar or very long instruction word processor |
-
1996
- 1996-03-01 US US08/609,807 patent/US5838942A/en not_active Expired - Lifetime
- 1996-12-05 DE DE19650509A patent/DE19650509C2/de not_active Expired - Fee Related
-
1997
- 1997-02-07 GB GB9702535A patent/GB2310742B/en not_active Expired - Fee Related
- 1997-02-12 JP JP02742397A patent/JP3715057B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| GB2310742A (en) | 1997-09-03 |
| DE19650509C2 (de) | 2002-02-28 |
| GB2310742B (en) | 2000-09-13 |
| JP3715057B2 (ja) | 2005-11-09 |
| GB9702535D0 (en) | 1997-03-26 |
| DE19650509A1 (de) | 1997-09-04 |
| US5838942A (en) | 1998-11-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5809275A (en) | Store-to-load hazard resolution system and method for a processor that executes instructions out of order | |
| US6748518B1 (en) | Multi-level multiprocessor speculation mechanism | |
| US6625660B1 (en) | Multiprocessor speculation mechanism for efficiently managing multiple barrier operations | |
| US6691220B1 (en) | Multiprocessor speculation mechanism via a barrier speculation flag | |
| US8627044B2 (en) | Issuing instructions with unresolved data dependencies | |
| US5226130A (en) | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency | |
| US6609192B1 (en) | System and method for asynchronously overlapping storage barrier operations with old and new storage operations | |
| US6754856B2 (en) | Memory access debug facility | |
| US6963967B1 (en) | System and method for enabling weak consistent storage advantage to a firmly consistent storage architecture | |
| US6021485A (en) | Forwarding store instruction result to load instruction with reduced stall or flushing by effective/real data address bytes matching | |
| US5931957A (en) | Support for out-of-order execution of loads and stores in a processor | |
| US6606702B1 (en) | Multiprocessor speculation mechanism with imprecise recycling of storage operations | |
| US6266768B1 (en) | System and method for permitting out-of-order execution of load instructions | |
| JPS63193230A (ja) | 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法 | |
| US5751986A (en) | Computer system with self-consistent ordering mechanism | |
| JP3159435B2 (ja) | ロード/ロード検出及びリオーダー方法及び装置 | |
| KR20020097149A (ko) | 종속성 체인을 발행 또는 재발행할 수 있는 스케줄러 | |
| JPH05303492A (ja) | データ処理装置 | |
| US5748937A (en) | Computer system that maintains processor ordering consistency by snooping an external bus for conflicts during out of order execution of memory access instructions | |
| CN106406822A (zh) | 具有改进的别名队列和存储冲突检测的处理器 | |
| US6725340B1 (en) | Mechanism for folding storage barrier operations in a multiprocessor system | |
| US5649137A (en) | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency | |
| US6728873B1 (en) | System and method for providing multiprocessor speculation within a speculative branch path | |
| CN107003894A (zh) | 用于硬件事务内存程序的剖析器的装置和方法 | |
| JP2001209535A (ja) | プロセッサの命令スケジューリング装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040126 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040126 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050412 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050419 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050630 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050823 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050824 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |