JPH08234981A - 非プログラム順序実行スーパスカラ・マルチプロセッサにおける効率的確定一貫性サポート機構 - Google Patents

非プログラム順序実行スーパスカラ・マルチプロセッサにおける効率的確定一貫性サポート機構

Info

Publication number
JPH08234981A
JPH08234981A JP7311881A JP31188195A JPH08234981A JP H08234981 A JPH08234981 A JP H08234981A JP 7311881 A JP7311881 A JP 7311881A JP 31188195 A JP31188195 A JP 31188195A JP H08234981 A JPH08234981 A JP H08234981A
Authority
JP
Japan
Prior art keywords
instruction
cache
load
instructions
store
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
JP7311881A
Other languages
English (en)
Other versions
JP2951580B2 (ja
Inventor
Oi Re Han
ハン・オゥイ・レ
Kimming So
キミング・ソ
Trong Bao-Bon
バオ−ボン・トロング
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 JPH08234981A publication Critical patent/JPH08234981A/ja
Application granted granted Critical
Publication of JP2951580B2 publication Critical patent/JP2951580B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency

Abstract

(57)【要約】 【課題】 ロード命令の非プログラム順序実行を可能に
する一方で、効率的な確定一貫性をサポートするプロセ
ッサ制御を提供する。 【解決手段】 タッチ制御は、プロセッサが任意の未処
理のロードまたはストア命令を待機する間に、続くスト
ア命令を保留ストア・バッファに記憶するとき動作す
る。ストア命令の対象となるデータ・ラインをキャッシ
ュにプリロードするタッチ・データを発行することによ
り、保留のストア命令の効率が改良される。プロセッサ
は続いて発行されるロード命令を、その終了状態までに
限り以前のロード命令に対して非プログラム順序に実行
することができる。続いて発行されるロード命令は、以
前のロード命令が完了されるまで完了を許可されない。
終了済みロード命令の取消し制御は、ロード命令の対象
がマルチプロセッサからの無効要求と同一の場合、任意
の終了済みロード命令及び続く命令を取り消すことによ
り確定一貫性が維持されることを保証する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般にコンピュータ
のメモリ・システムに関し、特にマルチプロセッサ・デ
ータ処理システム用の改良されたメモリ・モデルに関す
る。
【0002】
【従来の技術】マルチプロセッサ・システムはメモリ・
システムに接続される複数のプロセッサを含む。プロセ
ッサは通常、アトミック(atomic)・ロード/ストアな
どのロード、ストア及び他の同期オペレーションにより
メモリ・システムと対話する。プログラムを実行する
際、プロセッサは、例えばあるレジスタの内容を別のレ
ジスタに加算したり、サブルーチン呼出しの実行などの
レジスタ間オペレーションを実行する。しかしながら、
これらのオペレーションは他のプロセッサから観察する
とメモリ・システムの振舞いには影響しない。プロセッ
サから見たときのメモリ・システムのこの振舞いは"メ
モリ・モデル"として参照される。
【0003】メモリ・モデルの"仕様"は、メモリ・シス
テムがどのように振舞うべきかを記述する。こうした仕
様の主な目的は、任意のプログラムが仕様に準拠する任
意のコンピュータ・システム上で意図通りに機能するこ
とを保証する一方で、ハードウェア設計者及びプログラ
マが独立に作業することを可能にすることである。理想
的には、仕様の準拠が特定レベルにおいて確認されるよ
うに、仕様は"公式(formal)"であるべきである。しか
しながら実際には多くの例において、仕様が"非公式"で
あったり存在しなかったりし、こうしたケースでは特定
のハードウェアがデフォルト指定によるメモリ・モデル
の仕様となる。
【0004】メモリ・モデルはマルチプロセッサ・シス
テムと同様に単一プロセッサ・システムにも当てはま
る。メモリはNポート装置としてモデル化され、ここで
Nはプロセッサの数である。プロセッサはメモリ・オペ
レーションを発行することにより、メモリ・システムと
通信する。プロセッサはそれぞれのポートを通じてオペ
レーションを発行する。
【0005】メモリ・モデルは、強(または順次的)一
貫性から、異なるタイプの弱一貫性の範囲に及ぶ。強一
貫性(Strong Consistency)はほとんどのプログラマが
既知のメモリ・モデルである。強一貫性モデルでは、全
てのプロセッサのメモリ・オペレーションが、個々のプ
ロセッサの発行順に一致する単一の大域順に実行される
ように思われる。このモデルは直観的には魅力的であ
り、一般に理解できるが、特にコンピュータ・システム
が多数のプロセッサを含む場合には、最悪の性能を提供
するモデルでもある。強一貫性モデルに関する詳細につ
いては、L.Lamportによる"How to Make a Multiproces
sor Computer That Correctly Executes Multiprocess
Programs"、IEEE Trans.on Computers、September 197
9を参照されたい。
【0006】スケーラブル・マルチプロセッサの効率的
実現を可能にするために、更に弱いメモリ・モデルが開
発された。しかしながら弱メモリ・モデルは強一貫性モ
デルよりも理解するのが困難であり、これらは並列ソフ
トウェア・プログラムの作成方法を制限する。より強い
メモリ・モデルの実現はハードウェア設計者側により多
くの注意を要求するが、弱メモリ・モデルの使用はプロ
グラマの側に、強一貫性により提供されるモデルの組込
みを回避するための意識的な努力を要求する。
【0007】更に、弱一貫性モデルでは、プログラムの
実行時に、メモリ・ロケーションが別のプログラムによ
り潜在的にアクセスされる場合には常に、2つのメモリ
・アクセス間に特殊な同期命令をプログラムに静的に挿
入することを要求する。こうした同期命令を発行する頻
度は非常に過度であったりし、マルチプロセッサ・シス
テムの性能が著しく低下しうる。また同期命令の追加
は、マルチプロセッサ・ソフトウェアが強一貫性モデル
と互換性を持つことを一層困難にする。
【0008】従って、メモリ・モデルの選択には、プロ
グラミングにおける都合とハードウェアによる高性能の
可能性との間のトレードオフが存在する。このトレード
オフに関する詳細については、J.Hennessyらによる"Ha
rdware/Software Tradeoffsfor Increased Performanc
e"、Proc.Symp.on Architectual Support for Progra
mming Languages and Operating Systems、(1982)、p
p.2-11、またはK.Gharachorlooらによる"Performance
Evaluation of Memory Consistency Models for Share
d Memory Multiprocessors"、Proc.Symp.on Architec
tural Supportsfor Programming Languages and Operat
ing Systems、(April 1991)、pp.245-257を参照され
たい。
【0009】この問題に対する従来の有力な解答は、プ
ロセッサ一貫性モデル(ProcessorConsistency Model)
としても知られる確定一貫性モデル(Firm Consistency
Model)の採用であり、これは1つの状況を除き、メモ
リ・アクセス・シーケンスを実行プログラム上に現れる
順に維持することにより、強一貫性モデルに従う。ロー
ド命令がストア命令の後に異なるメモリ・ロケーション
に発行される場合、確定一貫性モデルは、これらの命令
が任意のメモリ・ロケーションをオーバラップしなけれ
ば、ロード命令がストア命令をバイパスすることを可能
にする。
【0010】
【発明が解決しようとする課題】確定一貫性モデルはプ
ログラムする上で便利な移植可能なソフトウェアを提供
するが、弱一貫性モデルが提供する高性能を提供しな
い。従って、弱一貫性モデルの性能を達成できる確定一
貫性モデルが必要とされる。
【0011】
【課題を解決するための手段】本発明によれば、各々が
ストア及びロード命令を含むメモリ・オペレーションを
発行する複数のプロセッサ、キャッシュ及びシステム・
メモリを含むデータ処理システムにおいて、プロセッサ
により確定一貫性及び非プログラム順序(out-of-orde
r)の命令実行をサポートする方法が提供される。この
方法は、ある値をメモリに記憶するように要求するスト
ア命令を発行するステップと、記憶アドレスを生成する
ステップと、記憶アドレスに対応するメモリ・ブロック
の排他ステータスを要求するタッチ・コマンドを、キャ
ッシュに対して生成するステップと、ブロックがキャッ
シュにより排他的に保持される場合、タッチ・コマンド
を終了するステップと、ブロックがキャッシュにより排
他的に保持されない場合、ブロックを排他状態でキャッ
シュに送信するように要求するコマンドを、システム・
メモリに発行するステップと、ストア命令以前に発行さ
れた全ての命令が実行を完了した時に、そのストア命令
に関連する記憶データをキャッシュに書込むステップと
を含む。
【0012】本発明によれば、各々がストア及びロード
命令を含むメモリ・オペレーションを発行する複数のプ
ロセッサ、キャッシュ及びシステム・メモリを含むデー
タ処理システムにおいて、プロセッサにより確定一貫性
及び非プログラム順序の命令実行をサポートする方法が
提供される。この方法は、発行プロセッサにおいて複数
のロード命令を連続的に発行するステップであって、前
記プロセッサにおいてそれらのロード命令の実行を非連
続的に終了するステップと、終了済みロード命令の対象
であるデータに対する無効要求が、その終了済みロード
命令の完了以前に発行プロセッサにより受信されると、
その終了済みロード命令を取り消すステップとを含む。
【0013】
【発明の実施の形態】本発明は確定一貫性メモリ・モデ
ルの新規実現に関する。その性能は弱一貫性モデルの性
能に非常に近いが、ソフトウェアに対して同期オペレー
ションの頻繁な使用を要求しない。i)レジスタへのデ
ータの思索的ロード、及びii)記憶データ用のプロセ
ッサ・キャッシュへのデータのプリロードにより、ロー
ド命令とストア命令のメモリ・アクセスの順序が、それ
らに要求される完了順序が維持される限り強制されな
い。本機構はプロセッサ内における非プログラム順序の
実行のサポートに頼り、命令の実行が3つのステージ、
すなわち保留(命令が資源(例えばメモリからロードさ
れるデータ)の可用性を待機する)、終了(命令及び続
く命令がロール・バック可能)及び完了(命令の効果が
システム内で確認され、ロール・バック不可)に分解さ
れる。第1の機構では、たとえ保留のロード命令が以前
に存在しても、プロセッサはロード命令を生成し、終了
することができる。保留のロード命令によりエラーが発
生した場合、終了済みのロード命令が取り消される。第
2の機構では、ストア命令が発行され、他のロードまた
はストア命令が以前に存在する場合、プロセッサは、そ
のストア要求に対応したタッチを生成することにより、
全ての保留の命令が完了した時に、そのデータがキャッ
シュ内に存在するようにし、ストア命令の実行準備完了
状態となる。
【0014】図1は、本発明の好適な実施例に従い情報
を処理するシステム10のブロック図である。好適な実
施例では、システム10のプロセッサ8は、単一の集積
回路スーパスカラ・マイクロプロセッサである。従って
以降で詳述されるように、システム10は種々のユニッ
ト、レジスタ、バッファ、メモリ、及び他のセクション
を含み、これら全てが集積回路により形成される。また
好適な実施例では、システム10は縮小命令セット・コ
ンピュータ(RISC)技術により動作する。図1に示
されるように、システム・バス11がシステム10のバ
ス・インタフェース・ユニット(BIU)12に接続さ
れる。BIU12は、プロセッサ8とシステム・バス1
1との間の情報の転送を制御する。
【0015】BIU12は、システム10の命令キャッ
シュ14及びデータ・キャッシュ16に接続される。命
令キャッシュ14またはデータ・キャッシュ16などの
高速キャッシュは、システム・メモリからキャッシュに
以前に転送されたデータまたは命令のサブセットへの比
較的高速のアクセスを可能にし、従ってデータ処理シス
テムの動作速度を向上させる。命令キャッシュ14は命
令を分岐ユニット18に出力する。命令キャッシュ14
からのこうした命令に応答して、分岐ユニット18は命
令をシステム10の他の実行回路に選択的に出力する。
【0016】システム・メモリとデータ・キャッシュま
たは命令キャッシュ間のオペランドまたは命令の転送
は、通常ブロックと呼ばれる固定長単位で実行される。
データのブロックは、トラック、セクタ、ライン、バイ
トなどの既知の可変サイズにより転送される。分岐ユニ
ット18によるメモリ・アクセスは、データ・キャッシ
ュ16からの必要データの取り出しを可能にし、こうし
たアクセスはキャッシュ・"ヒット"と呼ばれる。必要デ
ータの取り出しがキャッシュ内で達成されない場合に
は、これらはシステム・メモリまたは別のプロセッサ・
キャッシュから取り出されなければならず、こうした不
履行は"ミス"と呼ばれる。
【0017】分岐ユニット18に加え、好適な実施例で
はシステム10の実行回路には複数の実行ユニットが含
まれ、それらには論理ユニット20、固定小数点演算ユ
ニットA(FXUA)22、固定小数点演算ユニットB
(FXUB)24、ロード/ストア・ユニット(LS
U)28、及び浮動小数点演算ユニット(FPU)30
が含まれる。FXUA22、FXUB24及びLSU2
8は、汎用アーキテクチャ・レジスタ(GPR)32及
び固定小数点演算リネーム・バッファ(FXRB)34
から、ソース・オペランド情報を入力する。FXUA2
2、FXUB24及びLSU28は、それらのオペレー
ション結果(宛先オペランド情報)を、固定小数点演算
リネーム・バッファ34内の選択されたエントリに記憶
するために出力する。
【0018】また、FXUB24は特殊目的レジスタ
(SPR)40との間で、ソース・オペランド情報及び
宛先オペランド情報を入出力する。更に、LSU28は
浮動小数点アーキテクチャ・レジスタ(FPR)36か
らソース・オペランド情報を入力する。FPU30はそ
のソース・オペランド情報を、FPR36、浮動小数点
演算リネーム・バッファ(FPRB)38、及びLSU
28から入力する。LSU28及びFPU30は、それ
らのオペレーション結果を浮動小数点演算リネーム・バ
ッファ38の選択されたエントリに記憶するために出力
する。
【0019】命令キャッシュ14から入力される命令に
応答して、分岐ユニット18は命令を実行ユニット2
0、22、24、28、30に選択的にディスパッチす
る。各実行ユニットは特定クラスの1つ以上の命令を実
行する。例えばFXUA22及びFXUB24は、加
算、減算、論理積、論理和及び排他的論理和などのソー
ス・オペランドに対して第1のクラスの固定小数点数理
演算を実行する。FPU30は、浮動小数点乗算及び除
算などのソース・オペランドに対して浮動小数点演算を
実行する。
【0020】ロード命令に応答して、LSU28はデー
タ・キャッシュ16から情報を入力し、こうした情報を
リネーム・バッファ34、38及びFPU30に選択的
にコピーする。こうした情報がデータ・キャッシュ16
に記憶されていない場合、データ・キャッシュ16は、
(BIU12及びシステム・バス11を介して)こうし
た情報をシステム・バス11に接続されるシステム・メ
モリ39から入力する。更にデータ・キャッシュ16
は、(BIU12及びシステム・バス11を介して)情
報をデータ・キャッシュ16からシステム・バス11に
接続されるシステム・メモリ39に出力できる。
【0021】分岐ユニット18からのストア命令に応答
して、LSU28は内部タッチ・コマンドをデータ・キ
ャッシュ16に発行し、記憶アドレスを生成し、GPR
32、GPRリネーム・バッファ34、FPR36、及
びFPRリネーム・バッファ38からデータを選択的に
読出す。記憶アドレス及びデータは保留ストア・キュー
(PSQ)42に保持され、ストア命令の完了準備が整
うとデータ・キャッシュに書込まれる。
【0022】情報が選択されたリネーム・バッファ34
に記憶されていると、こうした情報がその選択されたリ
ネーム・バッファの割当てに影響した命令により指定さ
れる記憶ロケーション(例えばGPR32の1つ)に関
連付けられる。選択されたリネーム・バッファ34に記
憶される情報が、分岐ユニット18からの信号に応答し
てその関連GPR32にコピーされる。分岐ユニット1
8は、選択されたリネーム・バッファ34に記憶される
情報のこうしたコピーを前記情報を生成した命令の"完
了"に応答して指令する。好適な実施例では、システム
10はその単一サイクルの間に複数の命令完了を有す
る。
【0023】情報が選択されたリネーム・バッファ38
に記憶されていると、こうした情報がFPR36の1つ
に関連付けられる。選択されたリネーム・バッファ38
に記憶される情報が、分岐ユニット18からの信号に応
答してその関連FPR36にコピーされる。分岐ユニッ
ト18は、選択されたリネーム・バッファ38に記憶さ
れる情報のこうしたコピーを前記情報を生成した命令
の"完了"に応答して指令する。好適な実施例では、シス
テム10はその単一サイクルの間に複数の命令完了を有
する。
【0024】システム10は、様々な実行ユニット2
0、22、24、28及び30において複数の命令を同
時に処理することにより高性能を達成する。従って各命
令はステージのシーケンスとして処理され、各ステージ
が他の命令のステージと並列に実行される。こうした技
法は"パイプライン方式"と呼ばれる。好適な実施例の重
要な態様は、命令が5ステージ、すなわちフェッチ、デ
コード/ディスパッチ、実行、終了、及び完了として標
準的に処理される。
【0025】フェッチ・ステージでは、分岐ユニット1
8が、命令シーケンスを記憶する1つ以上のメモリ・ア
ドレスから1つ以上の命令を(命令キャッシュ14か
ら)選択的に入力する。
【0026】デコード/ディスパッチ・ステージでは、
分岐ユニット18が最大3つのフェッチされた命令をデ
コードし、ディスパッチされる各命令結果(宛先オペラ
ンド情報)を記憶するためのリネーム・バッファのエン
トリを予約した後、デコードされた最大3つの命令を
(デコード・ステージにおけるデコーディングに応答し
て)実行ユニット20、22、24、28及び30に選
択的にディスパッチする。システム10は命令をそれら
のプログラム・シーケンス順にディスパッチする。分岐
ユニットは各命令に固有のタグを命令識別子(IID)
として割当てる。
【0027】実行ステージでは、実行ユニットがそれら
のディスパッチされた命令をオペランドが準備完了にな
るや否や実行する。終了ステージでは、既に述べたよう
に、実行ユニットが出力結果(宛先オペランド情報)を
GPRリネーム・バッファ34及びFPRリネーム・バ
ッファ38の選択されたエントリに記憶する。各実行ユ
ニットは命令の実行を終了したことを分岐ユニットに知
らせる。実行ユニットはIIDと一緒に命令ステータス
を分岐ユニットに返送する。図2に示されるように、分
岐ユニットは命令のステータスを命令順序化テーブル
(IST)100に保管し、"終了ビット"をセットする
ことにより命令が終了済みであることをマークする。こ
のようにして、システム10は命令をそれらのプログラ
ム・シーケンス順とは異なって実行することができる。
ディスパッチ・ステージでは幾つかのメモリ・オペレー
ションの発行またはプロセッサへの返却が遅延されうる
ので、関連命令が実行ステージにおいてプログラム・シ
ーケンス順から外れて実行されうる。
【0028】完了ステージでは分岐ユニット18がIS
T100内の最も古いエントリを読出し、終了ビットを
チェックし、終了ビットがオンであれば例外条件検出1
10において例外条件のステータスをチェックし、命令
が"完了"であることを示す。分岐ユニット18は、リネ
ーム・バッファ34及び38からそれぞれGPR32及
びFPR36への情報のコピーを指令し、ストア・キュ
ーからデータ・キャッシュへの書込みを保留にする。シ
ステム10は特定の命令に応答して、そのアーキテクチ
ャ・ステータスを更新する。
【0029】非プログラム順序の命令実行をサポートす
るプロセッサにおいて、命令の完了は2つのステージ、
すなわち"終了(finished)"及び"完了(complete)"に
含まれる。命令が以前に発行された命令の完了を待たず
に実行されるとき、その命令は終了される。従って命令
が実行ステージを完了し、そのオペレーション結果(宛
先オペランド情報)をGPRリネーム・バッファ34ま
たはFPRリネーム・バッファの選択されたエントリに
記憶するために出力するとき、その命令は"終了"され
る。命令が終了し、全ての以前に発行された命令が完了
すると、命令は"完了"となる。換言すると、命令はプロ
グラム・シーケンス順から外れて実行されうるが、命令
はプログラム・シーケンスにより記述される順序で完了
されなければならない。命令は完了ステージで完了し、
分岐ユニット18は命令の完了時期を示す。命令が完了
するとシステムはその結果及び効果を認識できる。
【0030】確定一貫性によれば、多重処理環境におけ
るロード及びストア命令の実行は厳密なプログラミング
順序に従わねばならない。あるプロセッサにより開始さ
れるロード及びストア命令は、システム(すなわち他の
プロセッサ)によって、同一プロセッサにより開始され
るように認識されなければならない。本発明によれば、
従来よりも実質的に性能を改良する一方で、確定一貫性
モデルを維持するためにプロセッサ内で2つの制御が設
けられる。
【0031】第1の制御は内部"タッチ"機構である。分
岐ユニット18は、命令キャッシュ14から命令を受信
するや否やロード及びストア命令をロード/ストア・ユ
ニット(LSU)28に発行できる。LSU28は記憶
アドレスを生成し、そのアドレス及び"内部タッチ"・コ
マンドをデータ・キャッシュ・ユニット16に送信す
る。続いてLSU28はGPR32、GPRリネーム・
バッファ34、FPR36、及びFPRリネーム・バッ
ファ38から選択的に記憶データを読出す。
【0032】内部タッチ・コマンドは、データ・キャッ
シュ16に対して、データ・キャッシュに記憶されるブ
ロックが排他的に保持されるかどうかをチェックするよ
うに指令する。ブロックがデータ・キャッシュ16に排
他的に保持される場合、データ・キャッシュはタッチ・
コマンドを終了する。ブロックがデータ・キャッシュ1
6に排他的に保持されない場合には、データ・キャッシ
ュ16はバス・インタフェース・ユニット(BIU)1
2にコマンドを発行して、システム・メモリ39または
システム内の他のプロセッサからこのデータ・キャッシ
ュ16に持込まれるデータが、排他的に持込まれるよう
に要求する(すなわちブロックに対するストア要求)。
両方の場合において、アドレス及び記憶データが保留ス
トア・キュー(PSQ)42に記憶される。次にストア
命令が"完了"すると、PSQ内のデータがデータ・キャ
ッシュに書込まれる。
【0033】"タッチ"・オペレーションにより、プロセ
ッサは、LSU28がアドレスの生成を終了するや否や
ストア命令に備えることができる。データがデータ・キ
ャッシュ16に書込まれる準備が整うまでには、おそら
く、ブロックがデータ・キャッシュ内に確立されてい
る。プロセッサは、以前の命令の完了以前にストア命令
を発行しないことにより確定一貫性を維持するが、スト
ア命令に先行する命令が完了する以前にブロックの要求
を実行できる。従って、メモリ・ブロックの要求と書込
みオペレーションとがオーバラップされ、ストア・オペ
レーションの性能を改良する。
【0034】本発明によれば、第2の制御は"終了済み
ロード命令の取り消し"である。幾つかの状況では、発
行されたロード命令が以前に発行されたロード命令より
先にLSU28に返却され、後に発行されたロード命令
が以前の命令よりも先に実行できる。プロセッサは、任
意の数の未処理のロード命令(データ・キャッシュ16
に発行されたが、要求実行ユニットに返却されていない
ロード命令)を同時に有することができ、これらは任意
の順序で終了しうるが、本発明は確定一貫性が維持され
ることを要求する。従ってロード命令はそれらの発行順
に完了されなければならない。
【0035】例えば、キャッシュ・ミスを発生する最初
に発行されるロード命令と、キャッシュをヒットする第
2の未処理のロード命令とを含む2つの未処理のロード
命令について考えてみよう。本発明によれば、プロセッ
サは第2のロードの処理を進め、その関連命令を実行す
る一方で、第1のロード命令が返却され、その命令が完
了するのを待機する。第1のロード命令が実行ユニット
に返却されると命令が実行され完了される。その後第2
のロード命令が完了され、その結果がシステム内でコミ
ット(commit)される。
【0036】確定一貫性では全てのプロセッサが、他の
プロセッサがロード命令を他のロード命令に対して順番
に実行しているものと見なすように要求する。しかしな
がら本発明は、確定一貫性モデルにおいて動作するシス
テムにおいて、ロード命令の非プログラム順序の実行を
可能にする。本発明の終了済みロード命令の取り消し制
御は、確定一貫性モデルにおいて動作するプロセッサに
おけるこうした非プログラム順序の実行を可能にする。
ロード命令のオペランドが使用可能なときに、それらの
命令の実行を可能にすることによりプロセッサの性能が
非プログラム順序の実行を利用することで改良される。
終了済みロード命令の取り消しは、プロセッサが次に続
く未処理命令の実行をアイドル状態で待機するのではな
く、実行準備完了の命令に対する作業を継続可能とする
にもかかわらず、確定一貫性を提供する。本発明によれ
ば、局所プロセッサにより実行された"終了済み"ロード
命令が、システム(すなわち他のプロセッサまたは装
置)により無効にされるとき、その終了済みロード命令
を取り消すことにより確定一貫性が維持される。すなわ
ち、"終了済み"ロード命令に対応するデータが無効にさ
れるときロード命令が取り消される。局所プロセッサは
新たなデータを獲得するためにロード命令を再実行しな
ければならない。
【0037】好適な1実施例として、システム内の2つ
のプロセッサにおいて実行される次の命令シーケンスに
ついて考えてみよう。 プロセッサ1 プロセッサ2 load a ....... ...... store b ...... store a load b .......
【0038】プロセッサ1はそのキャッシュ内に"b"を
含むブロックを有する。プロセッサ2はそのキャッシュ
内に"a"を含むブロックを有する。プロセッサ1は"loa
d a"を実行し、ミスを検出する。そして次に"a"に対す
る要求を生成し、本発明によれば"load b"を実行し、終
了する。
【0039】プロセッサ1が"a"を含むブロックを受信
する前に、プロセッサ1はプロセッサ2から無効を受信
して"b"を含むラインを獲得する。従って確定一貫性の
点では、プロセッサ1が"a"を含むブロックを獲得する
とき、プロセッサ1は"b"を含むブロックを有さない。
プロセッサ1において終了済みの"load b"命令が再実行
されなければならない。
【0040】本発明の好適な実施例によれば、2つのロ
ード命令の間に時間窓(XI窓)が存在し、そこでは続
く終了済みロード命令が無効により取り消しに従う。こ
の窓を以下に示す。 load a load b load a ミス 終了 完了 :-------------------:------------------------: <--------XI窓---------->
【0041】好適な実施例では、"XI窓"はロードまた
はストア命令がミスを発生するときから、そのロードま
たはストア命令が完了するまでに及ぶ。これは図式的に
は次のように示される。 load a load b load a ミス 終了 完了 :-------------------:------------------------: <----------------XI窓--------------------->
【0042】"XI窓"内において、終了済みロードまた
はストア命令(すなわちload b)にヒットする無効が存
在すると、ミスを生じたロードまたはストア命令(すな
わちload a)がマークされる。分岐ユニットがその命令
(すなわちload a)を完了するとき、分岐ユニットは続
く全ての命令を取り消し、完了のロードまたはストア命
令(すなわちload a)に対応する命令を再フェッチし、
続く命令を再実行する。続いて取り消された命令を実行
することにより、小さな性能低下が存在する。しかしな
がら、上述の過程はかなり稀である。非プログラム順序
の実行により提供される実質的な性能の向上は、終了済
みロード命令の取り消し制御によりもたらされる低下を
多大に上回る。
【0043】終了済みロード命令の取り消しは様々な形
態で発生する。第1に、全ての終了済みロード命令及び
任意の続く命令が取り消される。第2に、無効にされる
終了済みのロードだけが取り消される。これは各終了済
みロード命令において、フルアドレス比較器を必要とす
る。第3に、無効にされるデータと同じアドレス・グル
ープに含まれる終了済みロード命令だけが取り消され
る。これは各終了済みロード命令において、セミアドレ
ス比較器(例えば、最小のものは奇数及び偶数アドレス
比較器)を必要とする。
【0044】図3は、全ての終了済みロード命令及び任
意の続く命令が取り消される例を示す。プロセッサ8
が"load A"命令からのデータを待機する間、これは続く
命令を実行し終了する。load A命令に対応するデータが
返却されると、データ・キャッシュ・ユニット16がlo
ad A命令を終了する。load A命令に関連する例外が存在
しなければ、データ・キャッシュ・ユニット16がその
事実をIST100のステータス・フィールドに示し、
BRU18がload A命令及び続く命令を完了する。load
A命令に関連する例外が存在すると、データ・キャッシ
ュ・ユニット16がその事実をIST100のステータ
ス・フィールドに示し、BRU18が続く命令を取り消
し、それらを再発行する。
【0045】本発明の制御が使用されると、確定一貫性
モデルと弱一貫性モデル間のメモリ遅延が重要でなくな
る。従って本発明の重要性は、マルチプロセッサ・シス
テムを弱一貫性モデルと同程度に、確定一貫性モデルに
おいて効率的に実行できることにある。更に、本発明は
同期命令の挿入を要求しないので、本発明の確定一貫性
マルチプロセッサ・システムは、弱一貫性マルチプロセ
ッサ・システムよりも効率的であることが期待される。
【0046】要するに、本発明はロード命令の非プログ
ラム順序の実行を可能にする一方で、効率的な確定一貫
性をサポートする2つのプロセッサ制御を提供する。タ
ッチ制御は、プロセッサが任意の未処理のロードまたは
ストア命令を待機する間、続くストア命令を保留ストア
・バッファに記憶するとき動作する。ストア命令の対象
となるデータ・ラインをキャッシュにプリロードするタ
ッチ・データを発行することにより、保留のストア命令
の効率が改良される。プロセッサは続いて発行されるロ
ード命令を、その終了状態までに限り以前のロード命令
に対して非プログラム順序に実行することができる。続
いて発行されるロード命令は、以前のロード命令が完了
されるまで完了を許可されない。終了済みロード命令の
取り消し制御は、ロード命令の対象がマルチプロセッサ
からの無効要求と同一の場合、任意の終了済みロード命
令及び続く命令を取り消すことにより、確定一貫性が維
持されることを保証する。結論として、本発明は確定一
貫性マルチプロセッサ環境におけるロード命令の非プロ
グラム順序の実行、及びストア命令のより効率的な実行
を可能にするプロセッサ制御を提供するものである。
【0047】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0048】(1)各々がストア及びロード命令を含む
メモリ・オペレーションを発行する複数のプロセッサ、
キャッシュ及びシステム・メモリを含むデータ処理シス
テムにおいて、前記プロセッサにより確定一貫性及び非
プログラム順序の命令実行をサポートする方法であっ
て、記憶データをメモリに記憶するように要求するスト
ア命令を発行するステップと、記憶アドレスを生成する
ステップと、前記記憶アドレスに対応するメモリ・ブロ
ックの排他所有を要求するタッチ・コマンドを前記キャ
ッシュに対して生成するステップと、前記ブロックがキ
ャッシュにより排他的に保持される場合、前記タッチ・
コマンドを終了するステップと、前記ブロックが前記キ
ャッシュにより排他的に保持されない場合、前記ブロッ
クを前記キャッシュに排他状態で送信するように要求す
るコマンドを前記システム・メモリに発行するステップ
と、前記ストア命令以前に発行された全ての命令が実行
を完了した時に、前記ストア命令に関連する前記記憶デ
ータを前記キャッシュに書込むステップと、を含む、方
法。 (2)前記の各プロセッサが保留ストア・キューを含
み、前記記憶データを前記キャッシュに書込む以前に前
記記憶アドレス及び前記記憶データを前記保留ストア・
キューに記憶するステップを含む、前記(1)記載の方
法。 (3)各々がストア及びロード命令を含むメモリ・オペ
レーションを発行する複数のプロセッサ、キャッシュ及
びシステム・メモリを含むデータ処理システムにおい
て、前記プロセッサにより確定一貫性及び非プログラム
順序の命令実行をサポートする方法であって、発行プロ
セッサにおいて複数のロード命令を連続的に発行するス
テップであって、前記プロセッサにおいて前記ロード命
令の実行が非連続的に終了することもある、ステップ
と、前記終了済みロード命令の対象であるデータに対す
る無効要求が、前記終了済みロード命令の完了以前に前
記発行プロセッサにより受信されると、前記終了済みロ
ード命令を取り消すステップと、を含む、方法。 (4)前記取り消しステップが、前記終了済みロード命
令に続く全ての命令を取り消すステップを含む、前記
(3)記載の方法。 (5)各々がストア及びロード命令を含むメモリ・オペ
レーションを発行する複数のプロセッサであって、命令
の非プログラム順序の実行をサポートする前記プロセッ
サと、前記の各プロセッサに関連付けられる別々のキャ
ッシュと、システム・メモリと、記憶データをメモリに
記憶するように要求するストア命令を発行する手段と、
記憶アドレスを生成する手段と、前記記憶アドレスに対
応するメモリ・ブロックの排他所有を要求するタッチ・
コマンドを、前記キャッシュに対して生成する手段と、
前記ブロックがキャッシュにより排他的に保持される場
合、前記タッチ・コマンドを終了する手段と、前記ブロ
ックが前記キャッシュにより排他的に保持されない場
合、前記ブロックを前記キャッシュに排他状態で送信す
るように要求するコマンドを前記システム・メモリに発
行する手段と、前記ストア命令以前に発行された全ての
命令が実行を完了した時に、前記ストア命令に関連する
前記記憶データを前記キャッシュに書込む手段と、を含
む、データ処理システム。 (6)前記の各プロセッサが前記記憶アドレス及び前記
記憶データを記憶する保留ストア・キューを含み、前記
記憶データを前記キャッシュに書込む以前に、前記記憶
アドレス及び前記記憶データを前記保留ストア・キュー
に書込む手段を含む、前記(5)記載のデータ処理シス
テム。 (7)各々がストア及びロード命令を含むメモリ・オペ
レーションを発行する複数のプロセッサであって、命令
の非プログラム順序の実行をサポートする前記プロセッ
サと、前記の各プロセッサに関連付けられる別々のキャ
ッシュと、システム・メモリと、発行プロセッサにおい
て複数のロード命令を連続的に発行する手段であって、
前記プロセッサにおいて前記ロード命令の実行が非連続
的に終了することもある、手段と、前記終了済みロード
命令の対象であるデータに対する無効要求が、前記終了
済みロード命令の完了以前に前記発行プロセッサにより
受信されると、前記終了済みロード命令を取り消す手段
と、を含む、データ処理システム。 (8)前記終了済みロード命令に続く全ての命令を取り
消す手段を含む、前記(7)記載のデータ処理システ
ム。
【0049】
【発明の効果】以上説明したように本発明によれば、マ
ルチプロセッサ・システムにおいて弱一貫性モデルの性
能を達成できる確定一貫性モデルを提供することができ
る。
【図面の簡単な説明】
【図1】本発明の好適な実施例を実現するデータ処理シ
ステムを示す図である。
【図2】本発明の好適な実施例による命令順序化テーブ
ルを示す図である。
【図3】本発明の好適な実施例による、終了済みロード
命令取り消しサポート機構を用いる命令順序化テーブル
を示す図である。
【符号の説明】
8 プロセッサ 10 システム 11 システム・バス 12 バス・インタフェース・ユニット 14 命令キャッシュ 16 データ・キャッシュ 18 分岐ユニット 20 論理ユニット 22 固定小数点演算ユニットA 24 固定小数点演算ユニットB 28 ロード/ストア・ユニット 30 浮動小数点演算ユニット 32 汎用アーキテクチャ・レジスタ 34 固定小数点演算リネーム・バッファ 36 浮動小数点アーキテクチャ・レジスタ 38 浮動小数点演算リネーム・バッファ 39 システム・メモリ 40 特殊目的レジスタ 42 保留ストア・キュー 100 命令順序化テーブル 110 例外条件検出
───────────────────────────────────────────────────── フロントページの続き (72)発明者 キミング・ソ アメリカ合衆国78746、テキサス州オース ティン、ウォルシュ・タールトン・レーン 2101 エイ (72)発明者 バオ−ボン・トロング アメリカ合衆国78750、テキサス州オース ティン、ケンプウッド・ドライブ 11509

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】各々がストア及びロード命令を含むメモリ
    ・オペレーションを発行する複数のプロセッサ、キャッ
    シュ及びシステム・メモリを含むデータ処理システムに
    おいて、前記プロセッサにより確定一貫性及び非プログ
    ラム順序の命令実行をサポートする方法であって、 記憶データをメモリに記憶するように要求するストア命
    令を発行するステップと、 記憶アドレスを生成するステップと、 前記記憶アドレスに対応するメモリ・ブロックの排他所
    有を要求するタッチ・コマンドを前記キャッシュに対し
    て生成するステップと、 前記ブロックがキャッシュにより排他的に保持される場
    合、前記タッチ・コマンドを終了するステップと、 前記ブロックが前記キャッシュにより排他的に保持され
    ない場合、前記ブロックを前記キャッシュに排他状態で
    送信するように要求するコマンドを前記システム・メモ
    リに発行するステップと、 前記ストア命令以前に発行された全ての命令が実行を完
    了した時に、前記ストア命令に関連する前記記憶データ
    を前記キャッシュに書込むステップと、 を含む、方法。
  2. 【請求項2】前記の各プロセッサが保留ストア・キュー
    を含み、前記記憶データを前記キャッシュに書込む以前
    に前記記憶アドレス及び前記記憶データを前記保留スト
    ア・キューに記憶するステップを含む、請求項1記載の
    方法。
  3. 【請求項3】各々がストア及びロード命令を含むメモリ
    ・オペレーションを発行する複数のプロセッサ、キャッ
    シュ及びシステム・メモリを含むデータ処理システムに
    おいて、前記プロセッサにより確定一貫性及び非プログ
    ラム順序の命令実行をサポートする方法であって、 発行プロセッサにおいて複数のロード命令を連続的に発
    行するステップであって、前記プロセッサにおいて前記
    ロード命令の実行が非連続的に終了することもある、ス
    テップと、 前記終了済みロード命令の対象であるデータに対する無
    効要求が、前記終了済みロード命令の完了以前に前記発
    行プロセッサにより受信されると、前記終了済みロード
    命令を取り消すステップと、 を含む、方法。
  4. 【請求項4】前記取り消しステップが、前記終了済みロ
    ード命令に続く全ての命令を取り消すステップを含む、
    請求項3記載の方法。
  5. 【請求項5】各々がストア及びロード命令を含むメモリ
    ・オペレーションを発行する複数のプロセッサであっ
    て、命令の非プログラム順序の実行をサポートする前記
    プロセッサと、 前記の各プロセッサに関連付けられる別々のキャッシュ
    と、 システム・メモリと、 記憶データをメモリに記憶するように要求するストア命
    令を発行する手段と、 記憶アドレスを生成する手段と、 前記記憶アドレスに対応するメモリ・ブロックの排他所
    有を要求するタッチ・コマンドを、前記キャッシュに対
    して生成する手段と、 前記ブロックがキャッシュにより排他的に保持される場
    合、前記タッチ・コマンドを終了する手段と、 前記ブロックが前記キャッシュにより排他的に保持され
    ない場合、前記ブロックを前記キャッシュに排他状態で
    送信するように要求するコマンドを前記システム・メモ
    リに発行する手段と、 前記ストア命令以前に発行された全ての命令が実行を完
    了した時に、前記ストア命令に関連する前記記憶データ
    を前記キャッシュに書込む手段と、 を含む、データ処理システム。
  6. 【請求項6】前記の各プロセッサが前記記憶アドレス及
    び前記記憶データを記憶する保留ストア・キューを含
    み、前記記憶データを前記キャッシュに書込む以前に、
    前記記憶アドレス及び前記記憶データを前記保留ストア
    ・キューに書込む手段を含む、請求項5記載のデータ処
    理システム。
  7. 【請求項7】各々がストア及びロード命令を含むメモリ
    ・オペレーションを発行する複数のプロセッサであっ
    て、命令の非プログラム順序の実行をサポートする前記
    プロセッサと、 前記の各プロセッサに関連付けられる別々のキャッシュ
    と、 システム・メモリと、 発行プロセッサにおいて複数のロード命令を連続的に発
    行する手段であって、前記プロセッサにおいて前記ロー
    ド命令の実行が非連続的に終了することもある、手段
    と、 前記終了済みロード命令の対象であるデータに対する無
    効要求が、前記終了済みロード命令の完了以前に前記発
    行プロセッサにより受信されると、前記終了済みロード
    命令を取り消す手段と、 を含む、データ処理システム。
  8. 【請求項8】前記終了済みロード命令に続く全ての命令
    を取り消す手段を含む、請求項7記載のデータ処理シス
    テム。
JP7311881A 1994-12-09 1995-11-30 非プログラム順序の命令実行をサポートする方法及びデータ処理システム Expired - Lifetime JP2951580B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US352467 1994-12-09
US08/352,467 US5699538A (en) 1994-12-09 1994-12-09 Efficient firm consistency support mechanisms in an out-of-order execution superscaler multiprocessor

Publications (2)

Publication Number Publication Date
JPH08234981A true JPH08234981A (ja) 1996-09-13
JP2951580B2 JP2951580B2 (ja) 1999-09-20

Family

ID=23385246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7311881A Expired - Lifetime JP2951580B2 (ja) 1994-12-09 1995-11-30 非プログラム順序の命令実行をサポートする方法及びデータ処理システム

Country Status (2)

Country Link
US (1) US5699538A (ja)
JP (1) JP2951580B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146607B2 (en) 2002-09-17 2006-12-05 International Business Machines Corporation Method and system for transparent dynamic optimization in a multiprocessing environment
JP2007042134A (ja) * 2002-09-17 2007-02-15 Internatl Business Mach Corp <Ibm> マルチプロセッサ・メモリ整合性の効率のよいエミュレーションのための方法
US7496494B2 (en) 2002-09-17 2009-02-24 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
US7953588B2 (en) 2002-09-17 2011-05-31 International Business Machines Corporation Method and system for efficient emulation of multiprocessor address translation on a multiprocessor host
US8108843B2 (en) 2002-09-17 2012-01-31 International Business Machines Corporation Hybrid mechanism for more efficient emulation and method therefor

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6311267B1 (en) 1998-11-20 2001-10-30 International Business Machines Corporation Just-in-time register renaming technique
US6487637B1 (en) * 1999-07-30 2002-11-26 International Business Machines Corporation Method and system for clearing dependent speculations from a request queue
WO2004068361A1 (ja) * 2003-01-27 2004-08-12 Fujitsu Limited 記憶制御装置、データキャッシュ制御装置、中央処理装置、記憶装置制御方法、データキャッシュ制御方法およびキャッシュ制御方法
US20050210204A1 (en) * 2003-01-27 2005-09-22 Fujitsu Limited Memory control device, data cache control device, central processing device, storage device control method, data cache control method, and cache control method
US7600099B2 (en) * 2007-03-08 2009-10-06 International Business Machines Corporation System and method for predictive early allocation of stores in a microprocessor
CN101689142A (zh) * 2007-06-20 2010-03-31 富士通株式会社 信息处理装置、高速缓冲存储器控制装置以及存储器访问顺序保证方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US4991090A (en) * 1987-05-18 1991-02-05 International Business Machines Corporation Posting out-of-sequence fetches
JPS6432379A (en) * 1987-07-29 1989-02-02 Hitachi Ltd Computer
US5148536A (en) * 1988-07-25 1992-09-15 Digital Equipment Corporation Pipeline having an integral cache which processes cache misses and loads data in parallel
US5016168A (en) * 1988-12-23 1991-05-14 International Business Machines Corporation Method for storing into non-exclusive cache lines in multiprocessor systems
US5201041A (en) * 1988-12-29 1993-04-06 International Business Machines Corporation Cache bypass apparatus
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
US5208914A (en) * 1989-12-29 1993-05-04 Superconductor Systems Limited Partnership Method and apparatus for non-sequential resource access
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5191649A (en) * 1990-12-21 1993-03-02 Intel Corporation Multiprocessor computer system with data bus and ordered and out-of-order split data transactions
US5261109A (en) * 1990-12-21 1993-11-09 Intel Corporation Distributed arbitration method and apparatus for a computer bus using arbitration groups
US5265233A (en) * 1991-05-17 1993-11-23 Sun Microsystems, Inc. Method and apparatus for providing total and partial store ordering for a memory in multi-processor system
US5428761A (en) * 1992-03-12 1995-06-27 Digital Equipment Corporation System for achieving atomic non-sequential multi-word operations in shared memory
US5467473A (en) * 1993-01-08 1995-11-14 International Business Machines Corporation Out of order instruction load and store comparison
US5420991A (en) * 1994-01-04 1995-05-30 Intel Corporation Apparatus and method for maintaining processing consistency in a computer system having multiple processors

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146607B2 (en) 2002-09-17 2006-12-05 International Business Machines Corporation Method and system for transparent dynamic optimization in a multiprocessing environment
JP2007042134A (ja) * 2002-09-17 2007-02-15 Internatl Business Mach Corp <Ibm> マルチプロセッサ・メモリ整合性の効率のよいエミュレーションのための方法
US7496494B2 (en) 2002-09-17 2009-02-24 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
US7844446B2 (en) 2002-09-17 2010-11-30 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
US7953588B2 (en) 2002-09-17 2011-05-31 International Business Machines Corporation Method and system for efficient emulation of multiprocessor address translation on a multiprocessor host
US8108843B2 (en) 2002-09-17 2012-01-31 International Business Machines Corporation Hybrid mechanism for more efficient emulation and method therefor
US8578351B2 (en) 2002-09-17 2013-11-05 International Business Machines Corporation Hybrid mechanism for more efficient emulation and method therefor
US9043194B2 (en) 2002-09-17 2015-05-26 International Business Machines Corporation Method and system for efficient emulation of multiprocessor memory consistency

Also Published As

Publication number Publication date
US5699538A (en) 1997-12-16
JP2951580B2 (ja) 1999-09-20

Similar Documents

Publication Publication Date Title
US7523266B2 (en) Method and apparatus for enforcing memory reference ordering requirements at the L1 cache level
US6748518B1 (en) Multi-level multiprocessor speculation mechanism
US6691220B1 (en) Multiprocessor speculation mechanism via a barrier speculation flag
JP3096451B2 (ja) データを転送する方法およびプロセッサ
US6963967B1 (en) System and method for enabling weak consistent storage advantage to a firmly consistent storage architecture
US5630149A (en) Pipelined processor with register renaming hardware to accommodate multiple size registers
JP3588755B2 (ja) コンピュータシステム
US6138230A (en) Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline
US6625660B1 (en) Multiprocessor speculation mechanism for efficiently managing multiple barrier operations
EP0649085B1 (en) Microprocessor pipe control and register translation
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
US20060271769A1 (en) Selectively deferring instructions issued in program order utilizing a checkpoint and instruction deferral scheme
US5751986A (en) Computer system with self-consistent ordering mechanism
JP2003514274A (ja) 接近して結合される多重プロセッサのための高速マルチスレッディング
JPH05233421A (ja) コンピュータ装置およびロード命令と記憶命令を発生し、実行するために記憶装置へ供給する方法
WO2005098615A2 (en) Using results of speculative branches to predict branches during non-speculative execution
EP1782184B1 (en) Selectively performing fetches for store operations during speculative execution
US6073231A (en) Pipelined processor with microcontrol of register translation hardware
US7634639B2 (en) Avoiding live-lock in a processor that supports speculative execution
US6301654B1 (en) System and method for permitting out-of-order execution of load and store instructions
JP3159435B2 (ja) ロード/ロード検出及びリオーダー方法及び装置
US6725340B1 (en) Mechanism for folding storage barrier operations in a multiprocessor system
JP3049038B2 (ja) 回路装置およびスーパスカラ・プロセッサ内でキャッシュ・アクセス命令を処理するための方法
JP2951580B2 (ja) 非プログラム順序の命令実行をサポートする方法及びデータ処理システム