JP3159435B2 - ロード/ロード検出及びリオーダー方法及び装置 - Google Patents

ロード/ロード検出及びリオーダー方法及び装置

Info

Publication number
JP3159435B2
JP3159435B2 JP02585799A JP2585799A JP3159435B2 JP 3159435 B2 JP3159435 B2 JP 3159435B2 JP 02585799 A JP02585799 A JP 02585799A JP 2585799 A JP2585799 A JP 2585799A JP 3159435 B2 JP3159435 B2 JP 3159435B2
Authority
JP
Japan
Prior art keywords
instruction
data
address
item
order
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP02585799A
Other languages
English (en)
Other versions
JPH11272466A (ja
Inventor
シーシウン・スティーブン・タン
デーヴィッド・スコット・レイ
ケビン・アーサー・キャロット
バリー・デュアン・ウイリアムソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH11272466A publication Critical patent/JPH11272466A/ja
Application granted granted Critical
Publication of JP3159435B2 publication Critical patent/JP3159435B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般にはコンピュー
タ・プロセッサの分野に関し、より詳細には、単一マイ
クロプロセッサ・チップ上に集積されたプロセッサに関
する。さらに詳細には、本発明は、特に複数CPUシス
テムにおける、アウト・オブ・オーダー処理に内在する
データ・コヒーレンシ問題の検出と是正に関する。
【0002】
【従来の技術】マイクロプロセッサの一層の高速化は、
現在のプロセッサ設計の主要な目標の1つである。プロ
セッサのパフォーマンスを向上させるために多くの異な
る技法が採用されてきた。プロセッサ・パフォーマンス
を大幅に向上させる1つの技法は、キャッシュ・メモリ
の使用である。本明細書では、キャッシュ・メモリと
は、マイクロプロセッサ自体の上に形成されており、そ
の結果、マイクロプロセッサ・チップから離れた位置に
あるRAMや磁気ディスクなどの他のタイプのメモリよ
りもアクセス時間がはるかに高速な1組の記憶場所を指
す。頻繁に使用されるデータのコピーをキャッシュに記
憶することによって、プロセッサはそのデータが必要な
ときにキャッシュにアクセスすることができ、その情報
を入手するために「オフ・チップ(チップ外)」まで行
く必要がなく、その結果、プロセッサのパフォーマンス
が大幅に強化される。
【0003】しかし、キャッシュ・メモリには特定の問
題が付随する。具体的には、1つのシステムで複数のプ
ロセッサが使用され、同じデータを必要とする場合に大
きな問題がある。この場合、システムは要求されるデー
タが整合するように、すなわちその時点でそのプロセッ
サにとって有効であるように保証する必要がある。デー
タが1つのプロセッサのキャッシュに記憶されており、
別のプロセッサがそれと同じ情報を要求する場合にも問
題がある。
【0004】スーパースカラ・プロセッサは命令を非プ
ログラム順序(アウト・オブ・オーダー)で実行するこ
とができるため、従来のスカラ・プロセッサより有利な
パフォーマンスを実現する。この方法により、実行速度
の遅い命令を保留にしている間にプロセッサ上の他の資
源を使用して実行することができる後続命令が、実行の
遅い方の命令によって停止することがなくなる。
【0005】典型的なアーキテクチャでは、すべての命
令が1つのデータを必要とする場合、プロセッサはまず
オンボード・キャッシュに行って、そのデータがオンボ
ード・キャッシュに入っていないかどうか調べる。キャ
ッシュによっては、2つの外部ポートを有するものがあ
り、キャッシュをインタリーブさせることができる。こ
れは、たとえば図1で、キャッシュ100が2つのキャ
ッシュ・バンク140及び130を有することを意味す
る。一方のキャッシュ・バンクは奇数アドレス用とする
ことができ、他方のキャッシュ・バンクは偶数アドレス
用となる。
【0006】内部的には、各キャッシュ・バンク140
及び130キャッシュが内部入力ポート(図示せず)を
有し、このポートに対してキャッシュ要求のアドレス情
報が入力される。図1で、アドレスA1のデータはキャ
ッシュ・バンク130内のキャッシュ・ライン110に
記憶され、アドレスA2のデータはキャッシュ・バンク
140内のキャッシュ・ライン120に記憶される。キ
ャッシュ100は入力データ用の2つの外部ポートであ
るポート180とポート190を有する。
【0007】キャッシュ要求1は、命令1(図示せず)
のキャッシュ要求を示し、要求2は命令2(図示せず)
のキャッシュ要求を示す。命令1は命令2より古い命令
であり、これは命令2よりも前に実行する必要があるこ
とを意味する。米国テキサス州オースチンのIBMコー
ポレイションのPowerPC(TM)プロセッサのよ
うにスーパースカラ・プロセッサが複数のロード・ユニ
ットを有する場合、両方の命令が同時にキャッシュ要求
を行うことができる。図の例では、命令2と命令1がア
ドレスA1にあるデータにアクセスを試みようとして、
キャッシュ100にそれを行う要求を渡している。
【0008】バンク130には内部入力ポートが1つし
かないため、同時に両方のキャッシュ要求を処理するこ
とができない。これは、キャッシュ100のインタリー
ブ性によるものである。
【0009】図2に、キャッシュ要求2がキャッシュ要
求1よりも前にキャッシュ・バンク130にアクセスす
るとどうなるかを示す。キャッシュ要求2はキャッシュ
・バンク130で必要なデータにヒットする。しかし、
キャッシュ要求1は少なくとも次のサイクルまでキャッ
シュ・バンク130にアクセスすることができない。し
たがって、より新しい命令2は必要なデータを、より古
い命令1が入手するよりも前に入手することができる。
この場合、このポート割り振り競合のために、この場
合、より新しい命令2がより古い命令1より前に完了す
ることができる。
【0010】これと同じ順序づけ問題は、より古い命令
がキャッシュでミスし、より新しい命令がヒットした場
合にも起こり得る。ミスは、データのアドレスがメモリ
管理ユニット内に見つからない場合に起こり、その場
合、メモリ管理ユニットはそのデータをより上位のメモ
リから取り出すように要求しなければならない。ヒット
は、データのアドレスとデータの両方に、メモリ管理ユ
ニットとキャッシュを介してアクセスすることができる
場合に起こり、そのデータはそれを待っている命令に出
力することができる。
【0011】データの実アドレスが2つの異なる有効ア
ドレスによって表されている場合、両方の命令が同じデ
ータにアクセスを試み、より古い命令のキャッシュ・ミ
スの後により新しい命令によるキャッシュ・ヒットがあ
るという状況が発生する。より新しい命令によって要求
された有効アドレスとそのデータがすでにメモリ管理ユ
ニットとキャッシュによってアクセス可能な場合であっ
て、メモリ管理ユニットとキャッシュでより古い命令の
アドレスとデータにアクセスすることができない場合に
も、より古い命令と同じデータにアクセスするより新し
い命令がより古い命令より前に完了することができると
いう状況が起こる。
【0012】マルチプロセッサ・システムでは、1つの
プロセッサでのキャッシュ・ミスによって、システム内
の他のプロセッサに対する「スヌープ」要求をトリガす
ることができる。このスヌープ要求は、他のプロセッサ
に対して、「スヌープ」されているデータが別のプロセ
ッサによって要求されていることを示し、他のプロセッ
サは求められているアドレスがそれぞれのプロセッサ自
体のキャッシュに入っているかどうかを調べるように指
示する。プロセッサのキャッシュに入っている場合、メ
イン・メモリ・データを整合させる必要がある。すなわ
ち、システム状態の正しい現在の状態を反映するように
更新する必要がある。
【0013】スーパースカラ・アーキテクチャに関して
は、ロード命令がアウト・オブ・オーダーで終了するこ
とがあるため、言い換えると、新しい命令が古い命令よ
りも前に完了としてマークされることがあるため、この
問題はさらに大きくなる。すなわち、新しい命令が古い
命令よりも前に実行されるように設定されているものと
マークされることがある。したがって、2つのロード命
令が同じキャッシュ場所をアドレス指定し、実際には1
つのデータが古い命令より前に新しい命令に供給される
ことがある。したがって、新しい命令は、アウト・オブ
・オーダーで完了するマークが付けられ、それによって
その命令の完了に不正なデータが使用される可能性があ
る。後続のロード命令がより古いロード命令を迂回する
場合、より古いロード命令は、元のプログラム順序に基
づいて受け取るはずだったデータよりも新しいデータを
入手する可能性がある。
【0014】このコヒーレンシ問題の従来の解決策とし
ては、ロード・キューにページ索引と実アドレスを、I
D及び有効ビットと共に保持する。IDはロード命令の
プログラム順序を示す。
【0015】上述の項目に加えて、ロード・キュー項目
は、そのアドレスのキャッシュ・ライン項目が変更され
たかどうかを示す変更フィールドも保持する。ストア命
令やスヌープ要求などのキャッシュ・アクセスによっ
て、キャッシュ・ラインが変更されたことが示される
と、ロード・キューが探索される。それと同じラインの
項目が含まれている場合、変更の可能性を示すように変
更ビットが設定される。
【0016】後続のロードは、ロード・キュー項目の比
較を行うことになる。ロード・キュー内で同じラインが
保留中であり、変更済みとマークされている場合、ID
フィールドを検査する。現在のラインが保留中だったラ
インよりも古く、変更されている場合、ロード・キュー
内の保留ロードが取り消され、その後続ロードの後に再
実行される。これによって、より古いロードがより新し
いロードよりも新しいデータを持つという問題が回避さ
れる。
【0017】
【発明が解決しようとする課題】
【課題を解決するための手段】本発明は、ロード・キュ
ーをなくし、不正なデータを使用して終了した可能性が
ある命令を取り消すだけの新規な手段を提供する。
【0018】本発明は、拒否されたキャッシュへのアク
セスの試行や、命令が完了できないその他の理由を保持
するミスキュー・テーブルを提供する。
【0019】好ましい実施形態では、すべての命令がミ
スキュー・テーブル内に初期項目を作成する。その命令
のデータがキャッシュに入っており、入手可能な場合、
ミスキュー・テーブル内のその命令項目がミスキュー・
テーブルから取り出される。これは、プロセッサが、順
序づけ問題の可能性がないかミスキュー・テーブルを探
索してから行う。次に、その命令には、プロセッサのシ
ーケンシング・ユニットによって、キャッシュ内で見つ
かったデータを使用して完了のマークが付けられる。
【0020】古い命令が新しい命令の後に完了し、新し
い命令と古い命令が同じアドレスにあるデータにアクセ
スする場合、順序づけ問題が起こる。
【0021】命令のデータをキャッシュで入手できない
場合、あるいは他の何らかの理由で完了できない場合、
ミスキュー・テーブル内に作成された命令項目は、命令
が完了可能になるまでミスキュー・テーブルにとどま
る。キャッシュ内でデータを入手できるようになった場
合など、命令が完了可能になると、命令には完了のマー
クが付けられる。次に、命令項目はミスキュー・テーブ
ルから削除される。
【0022】命令が完了可能になると、それに付随する
項目がミスキュー・テーブルから削除される。ミスキュ
ー・テーブルで、同じアドレスを持つ、前の命令項目が
ないか探索を行う。完了する項目と同じアドレスを持つ
前の命令項目が見つかった場合、前の命令項目はまだ完
了していないため、アウト・オブ・オーダーとしてマー
クされる。前述のように、これはたとえば、命令が同じ
データ・アドレスに別名を付け、より古い命令にデータ
が使用可能になっていることがキャッシュから通知され
ていない場合に起こることがある。
【0023】すべての命令がミスキュー・テーブルに項
目を作成して完了可能な命令項目が次のサイクルで引き
出されるか、拒否された命令のみがミスキュー・テーブ
ルに項目を作成するかを問わず、機能上の結果は同じで
あることに留意されたい。この結果とは、ただちに完了
する命令に対応する命令項目はミスキュー・テーブルに
はとどまらず、ただちには完了しない命令に対応する命
令項目のみがミスキュー・テーブル内に残るということ
である。
【0024】これによって、すべての現行命令が有効で
あって実行するように設定されていると見なされるか、
データを待ってミスキュー・テーブルに入れられている
対応する項目を有するとみなされるため、ロード・キュ
ーを備える必要がなくなる。
【0025】現行命令が完了した場合、データのアドレ
スをミスキュー・テーブル内の項目と照合して一致があ
るかどうかを調べる。一致するものがある場合、ミスキ
ュー・テーブル内の一致項目がアウト・オブ・オーダー
としてマークされる。すなわち、アドレスからデータに
アクセスする、より新しい命令が、同じアドレスに対す
る古い命令よりも先に完了するように設定されており、
次に、より古い命令がアウト・オブ・オーダーで完了
し、ミスキュー・テーブル内のその項目がそれに従って
マークされることになる。
【0026】さらに、キャッシュがミスキュー・テーブ
ルに暫時、項目を有する命令のために有効なデータを返
すと、その項目に対応する命令が完了に設定される。そ
のアドレスにあるデータにアクセスするまだ完了してい
ない命令に対応する古い命令項目についても、ミスキュ
ー・テーブルで同様の探索が行われる。一致する物が見
つかると、一致する古い項目はアウト・オブ・オーダー
としてマークされる。
【0027】スヌープ要求など、データ・コヒーレンシ
変更事象が発生した場合、ミスキュー・テーブルに問い
合わせる。データ・コヒーレンシ変更事象と同じアドレ
スを持つ項目には変更済みのマークが付けられる。
【0028】ミスキュー・テーブルから命令項目が解放
されると、命令を完了する。プロセッサは次に、特定の
事象が発生したかどうかを判断する。ミスキュー・テー
ブル内の命令項目によって、その項目に対応する命令が
アウト・オブ・オーダーであってしかも変更されている
場合、そのアウト・オブ・オーダーかつ変更済み命令の
後に実行されると思われる命令は取り消され、そして再
実行され、したがってデータ・コヒーレンシが保たれ
る。
【0029】
【発明の実施の形態】図3は、本発明により情報を処理
するプロセッサ・システム10を示すブロック図であ
る。好ましい実施形態では、プロセッサ10は米国テキ
サス州オースチンのIBMコーポレイションのPowe
rPCTMプロセッサなどの単一集積回路スーパースカラ
・マイクロプロセッサである。したがって、後で詳述す
るように、プロセッサ10は様々なユニット、レジス
タ、バッファ、メモリ、及びその他の部分を含み、それ
らはすべて集積回路によって形成されている。また、好
ましい実施形態では、プロセッサ10は縮小命令セット
・コンピューティング(「RISC」)技法に従って動
作する。図3に示すように、システム・バス11がプロ
セッサ10のバス・インタフェース・ユニット(「BI
U」)12に接続されている。BIU12は、プロセッ
サ10とシステム・バス11との間の情報の伝送を制御
する。
【0030】BIU12は、プロセッサ10の命令キャ
ッシュ14とデータ・キャッシュ16とに接続されてい
る。命令キャッシュ14は、シーケンサ・ユニット18
に命令を出力する。シーケンサ・ユニット18は、命令
キャッシュ14からのこのような命令に応答して、プロ
セッサ10の他の実行回路に命令を選択的に出力する。
【0031】好ましい実施形態では、プロセッサ10の
実行回路は、ディスパッチ・ユニット46と完了ユニッ
ト48の実行ユニットを含むシーケンサ・ユニット18
に加えて、複数の実行ユニット、すなわち分岐ユニット
20と、固定小数点ユニットA(「FXUA」)22
と、固定小数点ユニットB(「FXUB」)24と、複
素固定小数点ユニット(「CFXU」)26と、ロード
/ストア・ユニット(「LSU」)28と、浮動小数点
ユニット(「FPU」)30とを含む。FXUA22、
FXUB24、CFXU26、及びLSU28は、それ
ぞれのソース・オペランド情報を汎用アーキテクチャ・
レジスタ(「GPR」)32及び固定小数点リネーム・
バッファ34から入力する。さらに、FXUA22とF
XUB24は、キャリー・ビット(「CA」)レジスタ
42から「キャリー・ビット」を入力する。FXUA2
2、FXUB24、CFXU26、及びLSU28は、
それぞれの演算の結果(目的オペランド情報)を出力し
て、固定小数点リネーム・バッファ34に記憶する。ま
た、CFXU26は、特殊目的レジスタ(「SPR」)
40との間でソース・オペランド情報と目的オペランド
情報を入出力する。
【0032】FPU30は、そのソース・オペランド情
報を浮動小数点アーキテクチャ・レジスタ(「FP
R」)36と浮動小数点リネーム・バッファ38から入
力する。FPU30は演算の結果(目的オペランド情
報)を出力して浮動小数点リネーム・バッファ38内の
選択された項目に記憶する。
【0033】シーケンサ・ユニット18は、GPR32
及びFPR36との間で情報を入出力する。シーケンサ
・ユニット18から、分岐ユニット20が命令と、プロ
セッサ10の現在の状態を示す信号とを入力する。分岐
ユニット20は、このような命令及び信号に応答して、
プロセッサ10によって実行される命令のシーケンスを
記憶する適切なメモリ・アドレスを示す信号を(シーケ
ンサ・ユニット18に)出力する。シーケンサ・ユニッ
ト18は、分岐ユニット20からのこのような信号に応
答して、命令キャッシュ14からの指示された命令シー
ケンスを入力する。命令シーケンスのうちの1つまたは
複数の命令が命令キャッシュ14に記憶されていない場
合、命令キャッシュ14はシステム・バス11に接続さ
れているシステム・メモリ39から(BIU12とシス
テム・バス11を介して)その命令を入力する。
【0034】シーケンサ・ユニット18は命令キャッシ
ュ14からの命令入力に応答して、ディスパッチ・ユニ
ット46を介して、実行ユニット20、22、24、2
6、28、及び30のうちから選択された実行ユニット
に選択的にディスパッチする。各実行ユニットは、特定
の命令クラスの1つまたは複数の命令を実行する。たと
えば、FXUA22とFXUB24はソース・オペラン
ドに対して加算や減算、AND、OR、XORなどの第
1のクラスの固定小数点数値演算を実行する。CFXU
20はソース・オペランドに対して固定小数点乗算や除
算など第2のクラスの固定小数点演算を実行する。FP
U30は、ソース・オペランドに対して浮動小数点乗算
や除算などの浮動小数点演算を実行する。
【0035】プロセッサ10は、実行ユニット20、2
2、24、26、28、及び30のうちの様々な実行ユ
ニットで同時に複数の命令を処理することによって高パ
フォーマンスを実現する。したがって、各命令はいくつ
かの段階から成るシーケンスとして処理され、各段階は
他の命令の段階と並列して実行可能である。このような
技術は「パイプライン処理」と呼ばれる。好ましい実施
形態の重要な態様では、命令は通常6段階、すなわち、
フェッチ、デコード、ディスパッチ、実行、完了、及び
ライトバックの各段階で処理される。
【0036】好ましい実施形態では、各命令は命令処理
の各段階を完了するのに1マシン・サイクルを必要とす
る。それにもかかわらず、ある種の命令(たとえばCF
XU26によって実行される複素固定小数点命令)は、
複数のサイクルを必要とすることがある。したがって、
特定の命令の実行と段階と完了段階との間に、先行命令
の完了に要する時間の変動に応じて変動する遅延が生じ
ることがある。
【0037】LSU28は、ロード命令に応答して、デ
ータ・キャッシュ16から情報を入力し、その情報をリ
ネーム・バッファ34及び38のうちの選択されたリネ
ーム・バッファにコピーする。その情報がデータ・キャ
ッシュ16に記憶されていない場合、データ・キャッシ
ュ16はその情報をシステム・バス11に接続されてい
るシステム・メモリ39から(BIU12とシステム・
バス11を介して)入力する。さらに、データ・キャッ
シュ16は、データ・キャッシュ16からシステム・バ
ス11に接続されているシステム・メモリ39に(BI
U12とシステム・バス11)を介して情報を出力する
ことができる。
【0038】図4を参照すると、本発明の一実施形態に
よりロード命令などの命令を処理する回路を図示する略
図が示されている。制御論理回路を含むデータ・ユニッ
ト204に対するアドレスは、キャッシュ206への物
理的アクセスを必要とする。キャッシュ206は、デー
タがキャッシュに入っている場合、処理のためにキャッ
シュ206からフォーマッタ210にデータを渡す、こ
の例では64ビットのデータ・ラインに接続された出力
ポートを有する。
【0039】本発明の一実施形態では、命令がディスパ
ッチされるたびにミスキュー・テーブル600内に項目
が作成される。命令がデータ・キャッシュ内でヒットし
た場合、次のサイクルでその命令の項目がミスキュー・
テーブル600から除去される。しかし、命令がデータ
・キャッシュ内でミスした場合は、その実アドレスと、
場合によっては有効アドレスと、その他の情報がミスキ
ュー・テーブル600に残る。プロセッサはミスキュー
・テーブル内の項目のアドレス情報を絶えず走査し、各
サイクルで、プロセッサはミスキュー・テーブル600
に記憶されている有効アドレスにあるキャッシュにアク
セスを試みる。最終的に、ミスキュー・テーブル600
内の各項目についてキャッシュ内でデータが入手可能に
なり、処理のためにフォーマッタに渡される。
【0040】上述のように有効アドレスを介してキャッ
シュにアクセスする代わりに、マイクロプロセッサはキ
ャッシュに記憶されている実アドレスを介してキャッシ
ュにアクセスを試みることもできることに留意された
い。これは、実施上の問題であり、本発明全体には影響
しないことに留意されたい。
【0041】しかし、現行命令を最初からミスキュー・
テーブル600に入れなくても本発明は機能することに
留意されたい。現行命令は、理由を問わず、シーケンシ
ング・ユニットによって最初に導入された直後に完了す
るものとして設定することができない場合にのみ、ミス
キュー・テーブル600で示す必要がある。
【0042】好ましい実施形態では、命令項目はミスキ
ュー・テーブル600にイン・オーダーで記憶される。
これを図5に示す。命令項目410を生成する命令は命
令項目420を生成する命令よりも古く、したがって命
令項目410はミスキュー・テーブル600内で命令4
20よりも上位に記憶される。しかし、適切な識別情報
と順序づけ情報があれば、ミスキュー・テーブルに命令
を順不同で記憶することもできることに留意されたい。
【0043】ミスキュー・テーブル内の項目を図6に示
す。本発明に必要な最低限の情報は、アドレス情報フィ
ールド510と、アウト・オブ・オーダー情報フィール
ド520と、変更データ情報フィールド530である。
アドレス情報は、実アドレス情報540と有効アドレス
情報550を含むサブフィールドを有することもでき
る。ミスキュー・テーブル項目は、有効フィールド56
0や命令IDフィールド570など、それに付随するそ
の他の情報を有することもでき、それらは順序づけ情報
として使用できる。
【0044】他の実施形態では、ミスキュー・テーブル
内の項目はアウト・オブ・オーダーでミスキュー・テー
ブルに記憶される。図6の有効フィールド560は、ミ
スキュー・テーブル項目が実際にまだミスキュー・テー
ブル600に入っているかどうかを示す。新しい項目
は、有効フィールド560が設定されていない最初のミ
スキュー・テーブル行に作成される。命令IDフィール
ド570を使用して順序づけ情報が保持される。
【0045】次に図7を参照すると、プロセッサによっ
て最初に、アドレスDにあるデータにアクセスする新規
の命令800が渡される。好ましい実施形態では、ミス
キュー・テーブル600内の次に使用可能なスロットに
新規命令800の項目610が作成される。新規命令8
00はただちに完了し、プロセッサはミスキュー・テー
ブル600内のより古い項目620、630、及び64
0を新規命令800と照合する。具体的には、新規命令
800のアドレスを、ミスキュー・テーブル600内の
すべてのより古い項目のアドレス情報510と照合して
一致するアドレスがないか調べる。当然ながら、ミスキ
ュー・テーブル600内に含まれるすべての項目は新規
命令800より古い命令に対応していなければならな
い。
【0046】新規命令800は次のサイクルで完了し、
項目610が削除されることに留意されたい。また、項
目610はただちに作成される必要はないことにも留意
されたい。新規命令800のオペランド・アドレスをミ
スキュー・テーブル600の項目内のアドレス情報と照
合し、新規命令800が次のクロック・サイクルで完了
しない場合にのみ、その命令の項目610が作成される
ことになる。
【0047】代替実施形態では、項目610は削除され
ず、有効ミスキュー・テーブル項目ではなくなったこと
を示すように有効フィールドを設定する。その場合、ミ
スキュー・テーブル600内のその行を、新しい項目が
使用することができる。
【0048】新規命令800のデータがキャッシュに入
っているものとする。次に、新規命令800がキャッシ
ュ内で見つかったデータを使用して完了するものと設定
される。新規命令800が使用すると思われるアドレス
を、ミスキュー・テーブル600内のすべてのより古い
項目内のアドレス情報510と比較する。新規命令80
0のアドレスと一致するものが、ミスキュー・テーブル
600内のより古い命令に対応する項目内のアドレス情
報フィールド510と一致する場合、それらの一致項目
はアウト・オブ・オーダーとしてマークされる。アウト
・オブ・オーダーは、より新しい命令が、ミスキュー・
テーブルにまだ入っているより古い命令も使用するアド
レスにあるデータを使用して完了するとマークされてい
ることを意味する。アウト・オブ・オーダー・フィール
ド520は項目をアウト・オブ・オーダーとしてマーク
するのに使用する。
【0049】図8に、次のクロック・サイクルで命令8
00が完了した後のミスキュー・テーブル600を示
す。命令項目620は、完了しておらず、新規命令80
0と同じ記憶場所にあるデータにアクセスするため、ア
ウト・オブ・オーダー・フィールド520を使用するア
ウト・オブ・オーダーとしてマークされていることに留
意されたい。
【0050】新規命令800がキャッシュからのデータ
を待ち続けなければならない場合、図9に示すようにミ
スキュー・テーブルに項目610として入れられ、完了
可能になるまでそこにとどまる。図9には、その間に、
ミスキュー・テーブル600に他のいくつかの命令項目
が追加されている様子も図示されている。後の時点で、
データ・キャッシュに、新規項目610には使用可能に
なっているが一致項目620には使用可能になっていな
いデータが入っている。したがって、新規命令800が
完了した。
【0051】新規命令800が完了すると、プロセッサ
は命令800より古い命令に対応するミスキュー・テー
ブル内の項目、すなわち対応する項目610より上のす
べての項目を走査する。プロセッサは、より古い項目を
探索して新規命令項目のアドレス・フィールド650と
一致するアドレスがないか調べる。新規命令項目610
と同じアドレスに行く、より古い命令項目が見つかった
場合、図10に示すようにその古い命令項目がアウト・
オブ・オーダーとしてマークされる。
【0052】新規命令800が完了すると、ミスキュー
600内のその項目が削除される。好ましい実施形態で
は、すべての他の項目が上に移動し、したがって図9及
び図10に示すようにテーブルのタイミング順序が保持
される。
【0053】任意の時点で命令のデータが変わった場
合、その項目はそのことを示さなければならない。した
がって、ミスキュー・テーブル600内に命令項目があ
る間にスヌープまたはその他のデータ変更の表示が行わ
れると、対応する命令の変更標識530が潜在的な問題
を示すように設定される。プロセッサは項目を走査し、
データ変更時に同じアドレスを示すアドレスを有する各
項目を、変更されているものとしてマークする。
【0054】データ・コヒーレンシが侵害された可能性
がある場合、アウト・オブ・オーダー標識と変更標識の
両方によって、それらの事象が発生したことが示され
る。すなわち、より古い命令より先に完了するものとし
て設定されていたより新しい命令に、より古い命令より
古いデータが関連づけられている可能性がある。これに
よっておそらくデータ・コヒーレンシが侵害されること
になる。
【0055】図11、図12、図13、及び図14に、
この問題を検出するシーケンスを示す。ミスキュー・テ
ーブル600は、それぞれ命令1210、1220、及
び1230に対応する初期項目1110、1120、及
び1130を有する。記憶場所aに行く新規命令124
0が発行され、そのデータがキャッシュ内で見つかる。
すると、図12で項目1110はそれより前に新規命令
1240が完了すると、アウト・オブ・オーダーとして
マークされる。図13で、記憶場所aが変更されたこと
を示すスヌープ要求1140が行われる。ミスキュー・
テーブル600に問い合わせると、項目1110が変更
済みとしてマークされている。したがって、項目111
0はaから来るデータについてデータ・コヒーレンシ問
題を示す。
【0056】新規命令1240は、ただちにクリアされ
る場合でもミスキュー・テーブル600に項目1150
を加えたことに留意されたい。新規命令1240がキャ
ッシュでミスした場合、加えられた項目1150はミス
キュー・テーブル600内に残ることに留意されたい。
また、項目1150はミスの後に作成することもできる
ことにも留意されたい。重要なことは、新規命令124
0のオペランド・アドレスがミスキュー・テーブル内の
項目と比較され、新規命令1240がより古い項目11
10、1120、及び1130に対応する命令よりも前
に完了する場合に、一致するものがあればそれをマーク
する必要があることである。
【0057】項目1110の場合のように、命令項目が
変更され、アウト・オブ・オーダーであることが示され
た場合、より古い命令項目にアウト・オブ・オーダーの
マークを付けさせるそのより新しい命令を実行すること
はできない。好ましい実施形態では、項目1110に対
応する命令が完了すると、ミスキュー・テーブルはその
項目に対応する命令に問題が発生したことを完了論理回
路に報告する。項目1110に対応する命令は完了し、
実行することができる。しかし、その開始項目1110
の後に続くすべての命令、すなわち命令1220、12
30、及び1240と、完了して項目1110に対応す
る命令の後に実行するように設定された他の命令は取り
消され、実行プロセス全体を再び通過するようにリセッ
トされる。
【0058】本発明の好ましい実施形態では、アドレス
はセット細分性とのみ比較される。したがって、アドレ
スはダブル・ワード境界のみと比較されて、潜在的な問
題を示す。しかし、実アドレス及びその他の細分性でも
比較可能であることに留意されたい。
【0059】本発明の好ましい実施形態では、エラー状
況が検出された後、問題を示す命令の後のすべての命令
がフラッシュされ、実行のためにリセットされる。した
がって、残りの命令のフラッシュでデータ・コヒーレン
シが保持される。
【0060】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0061】(1) 命令のアウト・オブ・オーダー実
行のための装置であって、 a)各項目がコンピュータ・マイクロプロセッサ内の命
令に対応する命令データの項目を保持し前記命令データ
が、 i)命令のアドレス情報と、 ii)他の命令を基準にした前記対応する命令の順序を示
す命令の順序情報と、 iii)アドレス情報フィールドに対応するアドレスにあ
るデータを使用するより新しい命令が現行項目より前に
完了したことを示すアウト・オブ・オーダー情報と、 iv)前記アドレス情報フィールドに対応する前記アドレ
スにあるデータが変更された可能性を示す、命令のデー
タ変更情報とを含むミスキュー・テーブルを含み、 前記装置は、 b)比較された項目内のアドレス情報フィールドに対応
するアドレスにあるデータを使用すより新しい命令
が、前記比較された項目よりも前に完了する場合に、前
記ミスキュー・テーブル内の前記比較された項目に対し
アウト・オブ・オーダー情報フィールドを設定するア
ウト・オブ・オーダー比較機構と、 c)前記ミスキュー・テーブル内の前記アドレス情報フ
ィールド内のアドレス情報を変更されうるアドレスと比
較して、変更されたアドレスが命令項目において比較さ
れる前記アドレス情報と一致する場合には、前記項目内
変更フィールドをマークしてアドレス変更データであ
ることを示す変更比較機能とを含む装置。 (2)アウト・オブ・オーダー命令と変更されたデータ
とを示す命令項目に対応する命令のすべての後続命令を
取り消す、上記(1)に記載の装置。 (3)前記アウト・オブ・オーダー比較機構が項目内の
すべてのデータ・アドレス情報を比較して前記アドレス
が一致するかどうかを判断する、上記(1)に記載の装
置。 (4)前記アウト・オブ・オーダー比較機構が、項目内
の前記データ・アドレス情報の一部を比較して、前記ア
ドレスが一致するかどうかを判断する、上記(1)に記
載の装置。 (5)データ・コヒーレンシ侵害を生じさせる可能性の
あるマイクロプロセッサ内のアウト・オブ・オーダー命
令を検出する方法であって、 a)データ・アドレスを有する前記マイクロプロセッサ
上で実行する新規命令を作成するステップと、 b)前記新規命令が実行されるように設定されている場
合には、 i)前記命令のデータ・アドレスを、ミスキュー・テー
ブル内の前の命令に対応し、アドレス情報と、命令順序
情報と、アウト・オブ・オーダー標識と、変更データ標
識と、を含む既存の命令項目と比較し、 ii)前記新規命令のデータ・アドレスが前記ミスキュー
・テーブル内の項目のアドレス情報と一致する場合に
は、前記ミスキュー・テーブル内の前記一致項目をアウ
ト・オブ・オーダー命令としてマークするステップと、 c)前記新規命令が実行されるように設定されていない
場合には、前記ミスキュー・テーブル内に前記新規命令
の項目を作成して、前記新規命令のデータ・アドレスを
新たに前記命令項目のアドレス情報として取込み、前記
命令項目の順序情報に前記新規命令の順序に関する情報
を取込むステップとを含む方法。 (6)d)前記ミスキュー・テーブルを絶えず走査し
て、実行するように設定されている命令に対応する項目
がないか調べるステップと、 e)前記ミスキュー・テーブル内の項目に対応する命令
が実行されるように設定されている場合、 i)実行するように設定されている前記命令に対応する
前記項目のアドレス情報を、実行するように設定されて
いる前記命令より古い命令に対応する前記ミスキュー・
テーブル内の項目のアドレス情報と比較するステップ
と、 ii)前記ミスキュー・テーブル内に、実行するように設
定されている前記命令より古い命令に対応する項目が見
つかった場合、及び実行するように設定されている前記
命令に対応する前記項目のアドレス情報が前記より古い
命令に対応する前記項目内のアドレス情報と一致する場
合、前記より古い命令に対応する前記項目をアウト・オ
ブ・オーダーとしてマークするステップと、 iii)実行するように設定されている前記命令に対応す
る前記項目を前記ミスキュー・テーブルから除去するス
テップとをさらに含む、上記(5)に記載の方法。 (7)f)データ変更事象がないか絶えず走査するステ
ップと、 g)データ変更事象が発生した場合、 i)前記変更されたデータのアドレスを前記ミスキュー
・テーブルにブロードキャストするステップと、 ii)前記変更されたデータのアドレスを前記ミスキュー
・テーブルの項目内のアドレス情報と比較するステップ
と、 iii)前記変更されたデータのアドレスと前記ミスキュ
ー・テーブル内の項目のアドレスが一致する場合、前記
一致するアドレスを有する前記ミスキュー・テーブル内
の項目を変更されたものとしてマークするステップとを
さらに含む、上記(6)に記載の方法。
【図面の簡単な説明】
【図1】キャッシュ・バンクの1つにある同じデータに
アクセスを試みる2つの命令を示す、インタリーブ・キ
ャッシュの図である。
【図2】図1のキャッシュ内のより古い命令の前にデー
タにアクセスする、より新しい命令と、アウト・オブ・
オーダー完了がどのように行われるかを示す図である。
【図3】スーパースカラ・プロセッサを示すブロック図
である。
【図4】スーパースカラ・プロセッサ内のロード回路を
示すブロック図である。
【図5】本発明の好ましい実施形態によるミスキュー・
テーブルを示す図である。
【図6】各フィールドを示すミスキュー・テーブル内の
項目の図である。
【図7】本発明の一実施形態によってアウト・オブ・オ
ーダー命令完了を検出する様子を示す図である。
【図8】本発明の一実施形態によってアウト・オブ・オ
ーダー命令完了を検出する様子を示す図である。
【図9】本発明の一実施形態によってアウト・オブ・オ
ーダー命令完了を検出する様子を示す図である。
【図10】本発明の一実施形態によってアウト・オブ・
オーダー命令完了を検出する様子を示す図である。
【図11】本発明の一実施形態がどのように機能するか
を示す図である。
【図12】本発明の一実施形態がどのように機能するか
を示す図である。
【図13】本発明の一実施形態がどのように機能するか
を示す図である。
【図14】本発明の一実施形態がどのように機能するか
を示す図である。
【符号の説明】
10 プロセッサ・システム 11 システム・バス 12 バス・インタフェース・ユニット 14 命令キャッシュ 16 データ・キャッシュ 18 シーケンサ・ユニット 20 分岐ユニット 22 固定小数点ユニットA 24 固定小数点ユニットB 26 複素固定小数点ユニット 28 ロード/ストア・ユニット 30 浮動小数点ユニット 32 汎用アーキテクチャ・レジスタ 34 固定小数点リネーム・バッファ 36 浮動小数点アーキテクチャ・レジスタ 38 浮動小数点リネーム・バッファ 39 システム・メモリ 40 特殊目的レジスタ 46 ディスパッチ・ユニット 202 加算器 204 データ・ユニット 206 キャッシュ 208 不整列/ビジー・ラッチ 210 フォーマッタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デーヴィッド・スコット・レイ アメリカ合衆国78628 テキサス州ジョ ージタウン ヤング・ランチ・ロード 700 (72)発明者 ケビン・アーサー・キャロット アメリカ合衆国78660 テキサス州フル ーガービル ヘイワース・コーブ 17907 (72)発明者 バリー・デュアン・ウイリアムソン アメリカ合衆国78681 テキサス州ラウ ンドロック リバーローン・ドライブ 807 (56)参考文献 特開 平8−314721(JP,A) 特開 平5−53806(JP,A) 特開 平5−210586(JP,A) 特開 平8−16395(JP,A) 特開 平10−312282(JP,A) 特開 平6−44070(JP,A) 米国特許6148394(US,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】命令のアウト・オブ・オーダー実行のため
    の装置であって、 a)各項目がコンピュータ・マイクロプロセッサ内の命
    令に対応する命令データの項目を保持し前記命令データ
    が、 i)命令のアドレス情報と、 ii)他の命令を基準にした前記対応する命令の順序を示
    す命令の順序情報と、 iii)アドレス情報フィールドに対応するアドレスにあ
    るデータを使用するより新しい命令が現行項目より前に
    完了したことを示すアウト・オブ・オーダー情報と、 iv)前記アドレス情報フィールドに対応する前記アドレ
    スにあるデータが変更された可能性を示す、命令のデー
    タ変更情報とを含むミスキュー・テーブルを含み、 前記装置は、 b)比較された項目内のアドレス情報フィールドに対応
    するアドレスにあるデータを使用するより新しい命令
    が、前記比較された項目よりも前に完了する場合に、前
    記ミスキュー・テーブル内の前記比較された項目に対し
    アウト・オブ・オーダー情報フィールドを設定するア
    ウト・オブ・オーダー比較機構と、 c)前記ミスキュー・テーブル内の前記アドレス情報フ
    ィールド内のアドレス情報を変更されうるアドレスと比
    較して、変更されたアドレスが命令項目において比較さ
    れる前記アドレス情報と一致する場合には、前記項目内
    変更フィールドをマークしてアドレス変更データであ
    ることを示す変更比較機能とを含む装置。
  2. 【請求項2】アウト・オブ・オーダー命令と変更された
    データとを示す命令項目に対応する命令のすべての後続
    命令を取り消す、請求項1に記載の装置。
  3. 【請求項3】前記アウト・オブ・オーダー比較機構が項
    目内のすべてのデータ・アドレス情報を比較して前記ア
    ドレスが一致するかどうかを判断する、請求項1に記載
    の装置。
  4. 【請求項4】前記アウト・オブ・オーダー比較機構が、
    項目内の前記データ・アドレス情報の一部を比較して、
    前記アドレスが一致するかどうかを判断する、請求項1
    に記載の装置。
  5. 【請求項5】データ・コヒーレンシ侵害を生じさせる可
    能性のあるマイクロプロセッサ内のアウト・オブ・オー
    ダー命令を検出する方法であって、 a)データ・アドレスを有する前記マイクロプロセッサ
    上で実行する新規命令を作成するステップと、 b)前記新規命令が実行されるように設定されている場
    合には、 i)前記命令のデータ・アドレスを、ミスキュー・テー
    ブル内の前の命令に対応し、アドレス情報と、命令順序
    情報と、アウト・オブ・オーダー標識と、変更データ標
    と、を含む既存の命令項目と比較し、 ii)前記新規命令のデータ・アドレスが前記ミスキュー
    ・テーブル内の項目のアドレス情報と一致する場合
    は、前記ミスキュー・テーブル内の前記一致項目をアウ
    ト・オブ・オーダー命令としてマークするステップと、 c)前記新規命令が実行されるように設定されていない
    場合には、前記ミスキュー・テーブル内前記新規命令
    の項目を作成して、前記新規命令のデータ・アドレス
    新たに前記命令項目のアドレス情報として取込み、前記
    命令項目の順序情報に前記新規命令の順序に関する情報
    取込む方法。
  6. 【請求項6】d)前記ミスキュー・テーブルを絶えず走
    査して、実行するように設定されている命令に対応する
    項目がないか調べるステップと、 e)前記ミスキュー・テーブル内の項目に対応する命令
    が実行されるように設定されている場合、 i)実行するように設定されている前記命令に対応する
    前記項目のアドレス情報を、実行するように設定されて
    いる前記命令より古い命令に対応する前記ミスキュー・
    テーブル内の項目のアドレス情報と比較するステップ
    と、 ii)前記ミスキュー・テーブル内に、実行するように設
    定されている前記命令より古い命令に対応する項目が見
    つかった場合、及び実行するように設定されている前記
    命令に対応する前記項目のアドレス情報が前記より古い
    命令に対応する前記項目内のアドレス情報と一致する場
    合、前記より古い命令に対応する前記項目をアウト・オ
    ブ・オーダーとしてマークするステップと、 iii)実行するように設定されている前記命令に対応す
    る前記項目を前記ミスキュー・テーブルから除去するス
    テップとをさらに含む、請求項5に記載の方法。
  7. 【請求項7】f)データ変更事象がないか絶えず走査す
    るステップと、 g)データ変更事象が発生した場合、 i)前記変更されたデータのアドレスを前記ミスキュー
    ・テーブルにブロードキャストするステップと、 ii)前記変更されたデータのアドレスを前記ミスキュー
    ・テーブルの項目内のアドレス情報と比較するステップ
    と、 iii)前記変更されたデータのアドレスと前記ミスキュ
    ー・テーブル内の項目のアドレスが一致する場合、前記
    一致するアドレスを有する前記ミスキュー・テーブル内
    の項目を変更されたものとしてマークするステップとを
    さらに含む、請求項6に記載の方法。
JP02585799A 1998-02-10 1999-02-03 ロード/ロード検出及びリオーダー方法及び装置 Expired - Fee Related JP3159435B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/021,134 US6148394A (en) 1998-02-10 1998-02-10 Apparatus and method for tracking out of order load instructions to avoid data coherency violations in a processor
US09/021134 1998-02-10

Publications (2)

Publication Number Publication Date
JPH11272466A JPH11272466A (ja) 1999-10-08
JP3159435B2 true JP3159435B2 (ja) 2001-04-23

Family

ID=21802532

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02585799A Expired - Fee Related JP3159435B2 (ja) 1998-02-10 1999-02-03 ロード/ロード検出及びリオーダー方法及び装置

Country Status (10)

Country Link
US (1) US6148394A (ja)
EP (1) EP0936542A3 (ja)
JP (1) JP3159435B2 (ja)
KR (1) KR100335744B1 (ja)
CN (1) CN1196997C (ja)
CA (1) CA2260541C (ja)
HK (1) HK1019799A1 (ja)
ID (1) ID21939A (ja)
MY (1) MY122053A (ja)
SG (1) SG70151A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418514B1 (en) * 1998-02-17 2002-07-09 Internationl Business Machines Corporation Removal of posted operations from cache operations queue
US6704856B1 (en) 1999-02-01 2004-03-09 Hewlett-Packard Development Company, L.P. Method for compacting an instruction queue
US6738896B1 (en) * 1999-02-01 2004-05-18 Hewlett-Packard Development Company, L.P. Method and apparatus for determining availability of a queue which allows random insertion
US6658554B1 (en) * 1999-03-09 2003-12-02 Wisconsin Alumni Res Found Electronic processor providing direct data transfer between linked data consuming instructions
US6487641B1 (en) * 1999-04-19 2002-11-26 Oracle Corporation Dynamic caches with miss tables
US7089404B1 (en) * 1999-06-14 2006-08-08 Transmeta Corporation Method and apparatus for enhancing scheduling in an advanced microprocessor
US7634635B1 (en) 1999-06-14 2009-12-15 Brian Holscher Systems and methods for reordering processor instructions
US6748589B1 (en) 1999-10-20 2004-06-08 Transmeta Corporation Method for increasing the speed of speculative execution
US6678810B1 (en) * 1999-12-30 2004-01-13 Intel Corporation MFENCE and LFENCE micro-architectural implementation method and system
DE10121792C2 (de) * 2000-05-26 2003-09-25 Ibm Universelle Ladeadresse/Wertevorhersageschema
JP2003029967A (ja) 2001-07-17 2003-01-31 Fujitsu Ltd マイクロプロセッサ
DE10243446B4 (de) * 2002-09-19 2005-12-15 Celanese Chemicals Europe Gmbh Verfahren zur Herstellung von Aldehyden
JP4327008B2 (ja) * 2004-04-21 2009-09-09 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US7401209B2 (en) * 2006-06-30 2008-07-15 International Business Machines Corporation Limiting entries searched in load reorder queue to between two pointers for match with executing load instruction
US7991979B2 (en) * 2008-09-23 2011-08-02 International Business Machines Corporation Issuing load-dependent instructions in an issue queue in a processing unit of a data processing system
US20120117335A1 (en) * 2010-11-10 2012-05-10 Advanced Micro Devices, Inc. Load ordering queue
US11150836B2 (en) 2018-06-28 2021-10-19 Seagate Technology Llc Deterministic optimization via performance tracking in a data storage system
US10713057B2 (en) 2018-08-23 2020-07-14 International Business Machines Corporation Mechanism to stop completions using stop codes in an instruction completion table
KR20200112435A (ko) * 2019-03-22 2020-10-05 에스케이하이닉스 주식회사 캐시 메모리, 이를 포함하는 메모리 시스템, 및 그의 동작 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5185871A (en) * 1989-12-26 1993-02-09 International Business Machines Corporation Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
JP2925818B2 (ja) * 1991-04-05 1999-07-28 株式会社東芝 並列処理制御装置
JPH05210586A (ja) * 1992-01-14 1993-08-20 Nec Corp キャッシュメモリ制御回路
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
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
US5737636A (en) * 1996-01-18 1998-04-07 International Business Machines Corporation Method and system for detecting bypass errors in a load/store unit of a superscalar processor
US5712997A (en) * 1996-01-31 1998-01-27 Sun Microsystems, Inc System and method for processing load instruction in accordance with "no-fault " processing facility including arrangement for preserving access fault indicia
US5809275A (en) * 1996-03-01 1998-09-15 Hewlett-Packard Company Store-to-load hazard resolution system and method for a processor that executes instructions out of order
US5781752A (en) * 1996-12-26 1998-07-14 Wisconsin Alumni Research Foundation Table based data speculation circuit for parallel processing computer
US5898853A (en) * 1997-06-25 1999-04-27 Sun Microsystems, Inc. Apparatus for enforcing true dependencies in an out-of-order processor

Also Published As

Publication number Publication date
SG70151A1 (en) 2000-01-25
CA2260541A1 (en) 1999-08-10
HK1019799A1 (en) 2000-02-25
EP0936542A2 (en) 1999-08-18
ID21939A (id) 1999-08-12
CA2260541C (en) 2004-08-10
CN1226023A (zh) 1999-08-18
US6148394A (en) 2000-11-14
JPH11272466A (ja) 1999-10-08
KR100335744B1 (ko) 2002-05-08
MY122053A (en) 2006-03-31
EP0936542A3 (en) 2000-06-07
CN1196997C (zh) 2005-04-13
KR19990072272A (ko) 1999-09-27

Similar Documents

Publication Publication Date Title
JP3159435B2 (ja) ロード/ロード検出及びリオーダー方法及び装置
US5511175A (en) Method an apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
JP3588755B2 (ja) コンピュータシステム
US6230254B1 (en) System and method for handling load and/or store operators in a superscalar microprocessor
US6119204A (en) Data processing system and method for maintaining translation lookaside buffer TLB coherency without enforcing complete instruction serialization
US5471598A (en) Data dependency detection and handling in a microprocessor with write buffer
US7523266B2 (en) Method and apparatus for enforcing memory reference ordering requirements at the L1 cache level
KR100335745B1 (ko) 고성능의 추론적인 오정렬 로드 연산
US5680565A (en) Method and apparatus for performing page table walks in a microprocessor capable of processing speculative instructions
US6266768B1 (en) System and method for permitting out-of-order execution of load instructions
JP2000259412A (ja) ストア命令転送方法およびプロセッサ
US5737636A (en) Method and system for detecting bypass errors in a load/store unit of a superscalar processor
EP1782184B1 (en) Selectively performing fetches for store operations during speculative execution
US5649137A (en) Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
US5802340A (en) Method and system of executing speculative store instructions in a parallel processing computer system
JP2951580B2 (ja) 非プログラム順序の命令実行をサポートする方法及びデータ処理システム
KR19990006478A (ko) 멀티 사이클 데이터 캐쉬 판독을 위한 데이터 레지스터
US5956503A (en) Method and system for front-end and back-end gathering of store instructions within a data-processing system
US5926645A (en) Method and system for enabling multiple store instruction completions in a processing system

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees