JPH0552968B2 - - Google Patents
Info
- Publication number
- JPH0552968B2 JPH0552968B2 JP63093613A JP9361388A JPH0552968B2 JP H0552968 B2 JPH0552968 B2 JP H0552968B2 JP 63093613 A JP63093613 A JP 63093613A JP 9361388 A JP9361388 A JP 9361388A JP H0552968 B2 JPH0552968 B2 JP H0552968B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- stack
- order
- full
- fetch
- 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 - Lifetime
Links
- 230000009471 action Effects 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims description 5
- 230000015654 memory Effects 0.000 description 17
- 230000007246 mechanism Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 206010016531 fetishism Diseases 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000003446 memory effect Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000003647 oxidation Effects 0.000 description 1
- 238000007254 oxidation reaction Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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, look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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, look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
Description
【発明の詳細な説明】
A 産業上の利用分野
本発明はプログラム記憶式デイジタル・コンピ
ユータに関し、更に具体的にいうと、順序正しい
オペランド・フエツチを必要とするコンピユー
タ・アーキテクチヤにおいて、プロセツサに対し
ては順序正しいフエツチが行なわれていると見せ
かけながら、順序正しくないオペランド・フエツ
チを許容するデイジタル装置に関する。本発明は
特にパイプライン式マルチプロセツサ・システム
で有用であり、所与のプロセツサ・ハードウエア
設計でプロセツサの性能を向上させることができ
る。
ユータに関し、更に具体的にいうと、順序正しい
オペランド・フエツチを必要とするコンピユー
タ・アーキテクチヤにおいて、プロセツサに対し
ては順序正しいフエツチが行なわれていると見せ
かけながら、順序正しくないオペランド・フエツ
チを許容するデイジタル装置に関する。本発明は
特にパイプライン式マルチプロセツサ・システム
で有用であり、所与のプロセツサ・ハードウエア
設計でプロセツサの性能を向上させることができ
る。
B 従来の技術
或るプロセツサ設計では、順序を変えて動作を
行なわせることによつて性能上の利点を得ること
ができる。命令セツトの意味上の制限及び正しい
結果を出すためには動作を勝手に再構成できない
ようになつている順序上の制限のため、プログラ
マはしばしばこのような動作の再構成を利用する
ことができない。
行なわせることによつて性能上の利点を得ること
ができる。命令セツトの意味上の制限及び正しい
結果を出すためには動作を勝手に再構成できない
ようになつている順序上の制限のため、プログラ
マはしばしばこのような動作の再構成を利用する
ことができない。
緊密に結合されたマルチプロセツサ・システム
では、動作順序が狂うことによつてデツドロツク
又は誤りのある結果が生じる可能性がかなりあ
る。例えば、IBN S/370アーキテクチヤでは、
動作はプログラムの順序どおりに行なわれるか又
は順序どおりに行なわれているように見えること
が必要である。特にオペランドのフエツチは順序
正しく行なわれているように見える必要があり、
現在のプロセツサは現実にオペランド・フエツチ
を順序どおり行なうことによつてこの規則に従つ
ている。
では、動作順序が狂うことによつてデツドロツク
又は誤りのある結果が生じる可能性がかなりあ
る。例えば、IBN S/370アーキテクチヤでは、
動作はプログラムの順序どおりに行なわれるか又
は順序どおりに行なわれているように見えること
が必要である。特にオペランドのフエツチは順序
正しく行なわれているように見える必要があり、
現在のプロセツサは現実にオペランド・フエツチ
を順序どおり行なうことによつてこの規則に従つ
ている。
パイプライン式プロセツサでは、記憶命令のす
ぐ後にフエツチが行なわれる場合に生じうる1種
の順序外れ状態をチエツクすることが標準的に行
なわれている。この場合は、フエツチが正しくな
い順序で行なわれるのではなくて、記憶の完了が
パイプラインの中で遅れて生じるためのものであ
る。従つて、次のフエツチが行なわれる時に記憶
の結果がまだメモリ又はキヤツシユに反映されて
いないことが起こりうる。この状態は、開始した
がまだ完了していない記憶動作のアドレスを保管
し、次のフエツチ・アドレスをこれらの記憶アド
レスと比較することによつてチエツクされるが、
これは“オペランド記憶比較”と呼ばれる機構で
ある。アドレス一致したフエツチは記憶動作が完
了するまで実行停止される。オペランド記憶比較
はパイプラインの長さによつて決まる或る限られ
た時間間隔だけ適用される。記憶動作がパイプラ
インの完了点に到達すると、その記憶アドレスは
オペランド記憶比較の対象から取り除かれる。
ぐ後にフエツチが行なわれる場合に生じうる1種
の順序外れ状態をチエツクすることが標準的に行
なわれている。この場合は、フエツチが正しくな
い順序で行なわれるのではなくて、記憶の完了が
パイプラインの中で遅れて生じるためのものであ
る。従つて、次のフエツチが行なわれる時に記憶
の結果がまだメモリ又はキヤツシユに反映されて
いないことが起こりうる。この状態は、開始した
がまだ完了していない記憶動作のアドレスを保管
し、次のフエツチ・アドレスをこれらの記憶アド
レスと比較することによつてチエツクされるが、
これは“オペランド記憶比較”と呼ばれる機構で
ある。アドレス一致したフエツチは記憶動作が完
了するまで実行停止される。オペランド記憶比較
はパイプラインの長さによつて決まる或る限られ
た時間間隔だけ適用される。記憶動作がパイプラ
インの完了点に到達すると、その記憶アドレスは
オペランド記憶比較の対象から取り除かれる。
米国特許第4484267号は或るキヤツシユのライ
ンをストア・イン即ちメイン・メモリの更新を遅
延させるものとして扱い、他のラインをストア・
スルー即ちメイン・メモリの更新を直ちに行なう
ものとして扱うようにしたハイブリツド・キヤツ
シユを示している。各ラインがどのように扱われ
るかは動的に決められ、キヤツシユ・デイレクト
リのフラグ・ビツトによつて示される。このビツ
トは例えば相互間合せのビツトによつてリセツト
される。
ンをストア・イン即ちメイン・メモリの更新を遅
延させるものとして扱い、他のラインをストア・
スルー即ちメイン・メモリの更新を直ちに行なう
ものとして扱うようにしたハイブリツド・キヤツ
シユを示している。各ラインがどのように扱われ
るかは動的に決められ、キヤツシユ・デイレクト
リのフラグ・ビツトによつて示される。このビツ
トは例えば相互間合せのビツトによつてリセツト
される。
米国特許第4189770号は可変長フイールド・オ
ペランドに対するキヤツシユ・ミスの場合にその
ライン全体がメイン・メモリからキヤツシユに転
送されるのを待たずにオペランドを直接命令ユニ
ツトに送るようにしたバイパス構成を示してい
る。しかしこの米国特許はキヤツシユの動作には
触れておらず、また順序外れのフエツチについて
も何も教示していない。
ペランドに対するキヤツシユ・ミスの場合にその
ライン全体がメイン・メモリからキヤツシユに転
送されるのを待たずにオペランドを直接命令ユニ
ツトに送るようにしたバイパス構成を示してい
る。しかしこの米国特許はキヤツシユの動作には
触れておらず、また順序外れのフエツチについて
も何も教示していない。
米国特許第4435759号はプロセツサの動作中の
事象を捕捉し記憶するためのモニタ・システムを
示している。捕捉される事象の中には命令のアド
レス及びキヤツシユ・ミスが含まれる。
事象を捕捉し記憶するためのモニタ・システムを
示している。捕捉される事象の中には命令のアド
レス及びキヤツシユ・ミスが含まれる。
米国特許第4400770号はキヤツシユ・シノニム
を検出し処理するための手段を示している。キヤ
ツシユ・シノニムは、速度及び便宜のためにキヤ
ツシユのアドレス動作を一部直接的に、一部連想
的に行なつているために生じる。キヤツシユは例
えば各セツト当り4つのラインを含む複数のライ
ン・セツトに分割され、これらのセツトは普通に
直接にアドレスされる。セツト内の適正ラインの
選択は連想的に、即ち所与のアドレスとキヤツシ
ユ・デイレクトリに記憶されたライン・アドレス
との一致によつて行なわれる。アドレス変換を有
するIBN S/370では、所与のアドレスのうち
の変換されない下位ビツト(12ビツト)はライ
ン・セツトを直接選択するために用いられ、変換
される上位ビツトの一部はセツト内のラインを連
想的に選択するのに用いられる。しかしキヤツシ
ユ内のセツトの数が増えると、セツトを選択する
ための変換されない下位ビツトの数が不足し、変
換される上位ビツトの一部を使用することが必要
になる。そこで、シノニム、即ち同一の実メモ
リ・ロケーシヨンをもたらす複数の変換されるア
ドレスが生じうる。このようなシノニムは、種々
の理由のため、検出され処理される必要がある。
この米国特許はこれらのシノニムをどのように見
つけるかを教示している。キヤツシユ・ミスの
時、すべての起りうるシノニムを発生し、即ち変
換されるビツトのすべての起りうる組合せを調
べ、キヤツシユ・デイレクトリでシノニムの存在
をチエツクする方式が取られている。シノニムの
検出時には、いくつかの行動のうちのどれかが行
なわれる。
を検出し処理するための手段を示している。キヤ
ツシユ・シノニムは、速度及び便宜のためにキヤ
ツシユのアドレス動作を一部直接的に、一部連想
的に行なつているために生じる。キヤツシユは例
えば各セツト当り4つのラインを含む複数のライ
ン・セツトに分割され、これらのセツトは普通に
直接にアドレスされる。セツト内の適正ラインの
選択は連想的に、即ち所与のアドレスとキヤツシ
ユ・デイレクトリに記憶されたライン・アドレス
との一致によつて行なわれる。アドレス変換を有
するIBN S/370では、所与のアドレスのうち
の変換されない下位ビツト(12ビツト)はライ
ン・セツトを直接選択するために用いられ、変換
される上位ビツトの一部はセツト内のラインを連
想的に選択するのに用いられる。しかしキヤツシ
ユ内のセツトの数が増えると、セツトを選択する
ための変換されない下位ビツトの数が不足し、変
換される上位ビツトの一部を使用することが必要
になる。そこで、シノニム、即ち同一の実メモ
リ・ロケーシヨンをもたらす複数の変換されるア
ドレスが生じうる。このようなシノニムは、種々
の理由のため、検出され処理される必要がある。
この米国特許はこれらのシノニムをどのように見
つけるかを教示している。キヤツシユ・ミスの
時、すべての起りうるシノニムを発生し、即ち変
換されるビツトのすべての起りうる組合せを調
べ、キヤツシユ・デイレクトリでシノニムの存在
をチエツクする方式が取られている。シノニムの
検出時には、いくつかの行動のうちのどれかが行
なわれる。
C 発明が解決しようとする問題点
本発明は目的は順序を変えて動作を実行できる
ようにすることにより性能を向上させるための装
置を提供することである。
ようにすることにより性能を向上させるための装
置を提供することである。
他の目的は順序どおりでないオペランド・フエ
ツチと関連する障害を識別することができる機構
を提供することである。
ツチと関連する障害を識別することができる機構
を提供することである。
他の、そしてより具体的な目的は、正規の概念
上の順序から外れて行なわれるフエツチと関連す
る障害を効率的に検出でき、これによつてマルチ
プロセツサ・システムの性能を向上させることが
できる機構を提供することである。
上の順序から外れて行なわれるフエツチと関連す
る障害を効率的に検出でき、これによつてマルチ
プロセツサ・システムの性能を向上させることが
できる機構を提供することである。
D 問題点を解決するための手段
オペランドを実際のフエツチ時点と、オペラン
ドが正規に順序どおりにフエツチされる場合のフ
エツチ時点との間に生じるプロセツサ活動をモニ
タすることにより、順序どおりでないオペラン
ド・フエツチと関連する問題を見つけることがで
きる。このようなプロセツサ活動としては、プロ
セツサによつて発生される記憶動作、他のプロセ
ツサ及び構成要素によつて発生される相互問合せ
(cross−interrogate)動作、プロセツサ・キヤ
ツシユ・ミス、及びプロセツサ内の直列化事象が
含まれる。
ドが正規に順序どおりにフエツチされる場合のフ
エツチ時点との間に生じるプロセツサ活動をモニ
タすることにより、順序どおりでないオペラン
ド・フエツチと関連する問題を見つけることがで
きる。このようなプロセツサ活動としては、プロ
セツサによつて発生される記憶動作、他のプロセ
ツサ及び構成要素によつて発生される相互問合せ
(cross−interrogate)動作、プロセツサ・キヤ
ツシユ・ミス、及びプロセツサ内の直列化事象が
含まれる。
本発明は設計者によつて与えられるフエツチ・
スタツクの寸法によつて決まる任意適宜の時間間
隔にわたつて適用される。本発明は本当に順序ど
おりでないフエツチに適用されるものであり、記
憶の効果だけでなく、順序どおりでないフエツチ
を生じうる他のすべての事象を処理する。フエツ
チは2通りの方法で順序外れになる。フエツチは
プログラムの中の適正な位置よりも早く生じるよ
うにすることもできれば、それよりも遅く生じる
ようにすることもできる。性能上の利点を与え、
そして本発明が扱うのは、早期のフエツチであ
る。
スタツクの寸法によつて決まる任意適宜の時間間
隔にわたつて適用される。本発明は本当に順序ど
おりでないフエツチに適用されるものであり、記
憶の効果だけでなく、順序どおりでないフエツチ
を生じうる他のすべての事象を処理する。フエツ
チは2通りの方法で順序外れになる。フエツチは
プログラムの中の適正な位置よりも早く生じるよ
うにすることもできれば、それよりも遅く生じる
ようにすることもできる。性能上の利点を与え、
そして本発明が扱うのは、早期のフエツチであ
る。
本発明の中心となる要素は正しくない順序で行
なわれたフエツチのアドレスを含むスタツクであ
る。これらのアドレスは、そのフエツチを生じた
命令が適正な順序で処理させるまでスタツクにと
どまる。もう1つの要素は、スタツク内のすべて
の有効なアドレスをテスト・アドレスと比較し、
一致又は不一致を示す信号を発生する比較手段で
ある。すべての記憶形式の命令のアドレス(記憶
アドレス)、及びマルチプロセツサシステムにお
ける他のプロセツサからのすべての相互問合わせ
動作によるアドレス(相互問合せアドレス)がテ
ストアドレスとして用いられる。これらのアドレ
スは、いずれも、順序外れのフエツチが行なわれ
た場合にこのフエツチを正しくないものにする可
能性のある動作のアドレスである。これらのアド
レス信号のどれかが一致すれば、対応するフエツ
チ・アドレスが無効として記される。他の2つの
事象即ちキヤツシユ・ミス及び直列化命令は順序
外れのフエツチの多くが無効になりうる可能性を
与える。これらの事象ではスタツク全体が無効と
記される。
なわれたフエツチのアドレスを含むスタツクであ
る。これらのアドレスは、そのフエツチを生じた
命令が適正な順序で処理させるまでスタツクにと
どまる。もう1つの要素は、スタツク内のすべて
の有効なアドレスをテスト・アドレスと比較し、
一致又は不一致を示す信号を発生する比較手段で
ある。すべての記憶形式の命令のアドレス(記憶
アドレス)、及びマルチプロセツサシステムにお
ける他のプロセツサからのすべての相互問合わせ
動作によるアドレス(相互問合せアドレス)がテ
ストアドレスとして用いられる。これらのアドレ
スは、いずれも、順序外れのフエツチが行なわれ
た場合にこのフエツチを正しくないものにする可
能性のある動作のアドレスである。これらのアド
レス信号のどれかが一致すれば、対応するフエツ
チ・アドレスが無効として記される。他の2つの
事象即ちキヤツシユ・ミス及び直列化命令は順序
外れのフエツチの多くが無効になりうる可能性を
与える。これらの事象ではスタツク全体が無効と
記される。
無効にされたアドレスに対してプロセツサがと
る行動は、プロセツサが順序外れのフエツチを使
用する特定の態様に依存する。本発明の意図する
ところは、補正作用が必要な場合プロセツサに警
報信号を与えることである。警報信号がない場合
例えば無効と記されたアドレスがない場合は、関
連するフエツチが順序正しくないフエツチになら
なかつたこと、従つて得られる結果が、フエツチ
が順序正しく行なわれた場合と同様に正しいもの
になることを表わす。
る行動は、プロセツサが順序外れのフエツチを使
用する特定の態様に依存する。本発明の意図する
ところは、補正作用が必要な場合プロセツサに警
報信号を与えることである。警報信号がない場合
例えば無効と記されたアドレスがない場合は、関
連するフエツチが順序正しくないフエツチになら
なかつたこと、従つて得られる結果が、フエツチ
が順序正しく行なわれた場合と同様に正しいもの
になることを表わす。
E 実施例
次に図面を参照して本発明の実施例を説明す
る。第1図は順序正しくないフエツチを記入しモ
ニタするための機構を示している。正しくない順
序で行なわれる各フエツチ毎に、スタツク119
にエントリが記入される。各エントリ101はフ
エツチが行なわれたアドレス、そのフエツチと関
連する命令のための識別タグ、エントリの存在を
示すためのフル/エンプテイ(F/E)ビツト、
及び有効性ビツトよりなる。スタツクに対してエ
ントリがなされると、フル/エンプテイ・ビツト
がフルにセツトされ、有効性ビツトが有効にセツ
トされる。スタツクは或る数のハードウエア・レ
ジスタよりなる。或る所与の時間では、いつくか
のレジスタがエントリを持たないかも知れない。
これらのレジスタのフル/エンプテイ・ビツトは
エンプテイにセツトされる。一方、スタツクにエ
ントリが来たときにすべてのレジスタが既にフル
になつていれば、その時はオーバフロー状態が生
じ、オーバフロー線121が活性化され、情報が
失われたことを合図する。線121のオーバフロ
ー線はORゲート109への1つの入力として供
給される。
る。第1図は順序正しくないフエツチを記入しモ
ニタするための機構を示している。正しくない順
序で行なわれる各フエツチ毎に、スタツク119
にエントリが記入される。各エントリ101はフ
エツチが行なわれたアドレス、そのフエツチと関
連する命令のための識別タグ、エントリの存在を
示すためのフル/エンプテイ(F/E)ビツト、
及び有効性ビツトよりなる。スタツクに対してエ
ントリがなされると、フル/エンプテイ・ビツト
がフルにセツトされ、有効性ビツトが有効にセツ
トされる。スタツクは或る数のハードウエア・レ
ジスタよりなる。或る所与の時間では、いつくか
のレジスタがエントリを持たないかも知れない。
これらのレジスタのフル/エンプテイ・ビツトは
エンプテイにセツトされる。一方、スタツクにエ
ントリが来たときにすべてのレジスタが既にフル
になつていれば、その時はオーバフロー状態が生
じ、オーバフロー線121が活性化され、情報が
失われたことを合図する。線121のオーバフロ
ー線はORゲート109への1つの入力として供
給される。
オーバフローの他にも、モニタすべき4種の事
象がある。これらの事象は順序どおりでないフエ
ツチを不正確なものにしたり、又は、少なくと
も、このようなフエツチを不正確にする可能性が
あるものであり、モニタする必要がある。第1の
事象は、対応するフエツチよりも論理的に早い記
憶動作である。もしこのような記憶が、順序どお
りでないフエツチが行なわれたアドレスに対して
行なわれるならば、この時は明らかに、そのフエ
ツチによつて正しい新しい値を得ることができな
い、即ち、フエツチは論理的には記憶の後に行な
われなければならないが記憶の前に行なわれたこ
とになる。このような記憶動作のアドレスはOR
ゲート107及び分配部105を介して比較部1
03に供給され、スタツク119の全アドレスと
比較される。もしスタツク内のアドレスが記憶ア
ドレスと一致し、関連するフル/エンプテイ・ビ
ツトがフルであれば、その時は関連する有効性ビ
ツトは無効にセツトされる。後にわかるように、
フル及び無効の表示を有するエントリはその後、
例えばフエツチを記憶の後に行うようにする等の
補正作用を必要とする。
象がある。これらの事象は順序どおりでないフエ
ツチを不正確なものにしたり、又は、少なくと
も、このようなフエツチを不正確にする可能性が
あるものであり、モニタする必要がある。第1の
事象は、対応するフエツチよりも論理的に早い記
憶動作である。もしこのような記憶が、順序どお
りでないフエツチが行なわれたアドレスに対して
行なわれるならば、この時は明らかに、そのフエ
ツチによつて正しい新しい値を得ることができな
い、即ち、フエツチは論理的には記憶の後に行な
われなければならないが記憶の前に行なわれたこ
とになる。このような記憶動作のアドレスはOR
ゲート107及び分配部105を介して比較部1
03に供給され、スタツク119の全アドレスと
比較される。もしスタツク内のアドレスが記憶ア
ドレスと一致し、関連するフル/エンプテイ・ビ
ツトがフルであれば、その時は関連する有効性ビ
ツトは無効にセツトされる。後にわかるように、
フル及び無効の表示を有するエントリはその後、
例えばフエツチを記憶の後に行うようにする等の
補正作用を必要とする。
第2図は対応するフエツチよりも論理的に早く
生じる記憶をチエツクする構造を詳細に示してい
る。フエツチ・アドレスはスタツク119を構成
する複数のレジスタ122に記憶される。各レジ
スタのアドレスは比較部103の対応する比較回
路124に供給される。各比較回路124は分配
部105及びORゲート107を介して記憶アド
レスを受取る。もし比較回路124の1つから一
致出力が出れば、即ちレジスタ122のどれかの
フエツチ・アドレスが記憶アドレスに等しけれ
ば、この時はORゲート126を介して無効化出
力が供給され、そのレジスタに対する有効性ビツ
ト128を無効にセツトする。
生じる記憶をチエツクする構造を詳細に示してい
る。フエツチ・アドレスはスタツク119を構成
する複数のレジスタ122に記憶される。各レジ
スタのアドレスは比較部103の対応する比較回
路124に供給される。各比較回路124は分配
部105及びORゲート107を介して記憶アド
レスを受取る。もし比較回路124の1つから一
致出力が出れば、即ちレジスタ122のどれかの
フエツチ・アドレスが記憶アドレスに等しけれ
ば、この時はORゲート126を介して無効化出
力が供給され、そのレジスタに対する有効性ビツ
ト128を無効にセツトする。
第2の種類の事象は、もう1つのプロセツサか
らの相互問合せ(XI)動作であり、これも記憶
動作を含みうる。これらのアドレスもORゲート
107、次に分配部105に供給される。行なわ
れる行動は記憶アドレスに対するものと同じであ
る。
らの相互問合せ(XI)動作であり、これも記憶
動作を含みうる。これらのアドレスもORゲート
107、次に分配部105に供給される。行なわ
れる行動は記憶アドレスに対するものと同じであ
る。
第3の種類の事象は直列化命令であり、この命
令の場合アーキテクチヤは、直列化命令が完了す
る前にすべての前の命令が完全に完了することを
必要とする。この事象ではスタツク119の全エ
ントリが無効にされねばならない。直列化命令の
発生はORゲート109(第1図)に供給され、
その出力線123はORゲート126(第2図)
に供給されて、すべての有効性ビツト128を無
効にセツトする。
令の場合アーキテクチヤは、直列化命令が完了す
る前にすべての前の命令が完全に完了することを
必要とする。この事象ではスタツク119の全エ
ントリが無効にされねばならない。直列化命令の
発生はORゲート109(第1図)に供給され、
その出力線123はORゲート126(第2図)
に供給されて、すべての有効性ビツト128を無
効にセツトする。
第4の種類の事象はキヤツシユ・ミスである。
この場合はキヤツシユ・ミス表示をORゲート1
09に供給して全エントリを無効にする。厳密に
いうと、キヤツシユ・ミスは順序正しくないフエ
ツチで問題を生じない場合もあれば問題を生じる
場合もあり、所与のキヤツシユ・ミスが補正作用
を必要とするものである否かを個別に決めること
が可能であろうが、性能上の理由から、ここでは
キヤツシユ・ミスがまれにしか生じないようにし
ており、従つてすべてのキヤツシユ・ミス時に無
効化しても損失は大きくない。最後に、もしスタ
ツク119がオーバフローを生じた場合はすべて
のエントリを無効にする方法をとつている。
この場合はキヤツシユ・ミス表示をORゲート1
09に供給して全エントリを無効にする。厳密に
いうと、キヤツシユ・ミスは順序正しくないフエ
ツチで問題を生じない場合もあれば問題を生じる
場合もあり、所与のキヤツシユ・ミスが補正作用
を必要とするものである否かを個別に決めること
が可能であろうが、性能上の理由から、ここでは
キヤツシユ・ミスがまれにしか生じないようにし
ており、従つてすべてのキヤツシユ・ミス時に無
効化しても損失は大きくない。最後に、もしスタ
ツク119がオーバフローを生じた場合はすべて
のエントリを無効にする方法をとつている。
スタツクに対するエントリは順序正しくないフ
エツチが行なわれる時に行なわれる。エントリは
関連する命令が“順序正しい”ものとなる時、即
ち関連する命令がその時デコードされている命令
になる時、スタツクから除去される。命令がいつ
順序正しいものになるかの定義はプロセツサの組
織に依存する。プロセツサは本発明の一部でない
ので、ここでは単に“現在の”命令を示すものと
する。現在の命令(現命令)111のタグは選択
及びエントリ・チエツク機能部113に供給され
る。対応するタグを有するエントリが選択され、
そのフル/エンプテイ・ビツト及び有効性ビツト
が読取られる。エントリがフルで且つ有効である
場合は順序どおりでないフエツチに問題はなく、
補正は不要である。この結果は線115で知らさ
れる。エントリがフルで且つ無効ならば、この場
合は順序どおりでないフエツチに問題があり、プ
ロセツサの側では何らかの補正作用が必要であ
る。この結果は線117で知らされる。行なわれ
る補正作用のタイプはプロセツサの設計に依存
し、本発明の一部ではない。
エツチが行なわれる時に行なわれる。エントリは
関連する命令が“順序正しい”ものとなる時、即
ち関連する命令がその時デコードされている命令
になる時、スタツクから除去される。命令がいつ
順序正しいものになるかの定義はプロセツサの組
織に依存する。プロセツサは本発明の一部でない
ので、ここでは単に“現在の”命令を示すものと
する。現在の命令(現命令)111のタグは選択
及びエントリ・チエツク機能部113に供給され
る。対応するタグを有するエントリが選択され、
そのフル/エンプテイ・ビツト及び有効性ビツト
が読取られる。エントリがフルで且つ有効である
場合は順序どおりでないフエツチに問題はなく、
補正は不要である。この結果は線115で知らさ
れる。エントリがフルで且つ無効ならば、この場
合は順序どおりでないフエツチに問題があり、プ
ロセツサの側では何らかの補正作用が必要であ
る。この結果は線117で知らされる。行なわれ
る補正作用のタイプはプロセツサの設計に依存
し、本発明の一部ではない。
第3図は線115,117の信号がどのように
発生されるかを詳しく示している。ここでもスタ
ツク119はフエツチ・アドレスを含む複数のレ
ジスタよりなる。各フエツチ・アドレスには、有
効性ビツト128、フル/エンプテイ(F/E)
ビツト120及びタグ118が関連している。勿
論フエツチ・アドレス、有効性ビツト、フル/エ
ンプテイ・ビツト及びタグはすべて1つのレジス
タの中に入つている。第3図に示されている各デ
ータの分割表示は各レジスタに記憶されるデータ
の性質を概念化する意図で行なわれているだけで
ある。フル/エンプテイ・ビツト120はその対
応するレジスタがフルであるか又はエンプテイで
あるかを示す信号を供給し、有効性ビツト128
はレジスタ内のフエツチ・アドレスが有効である
か又は無効であるかを示す信号を供給する。これ
らの信号はエントリ・チエツク論理125に供給
される。各アドレスのタグは対応する比較回路1
30に供給される。すべての比較回路130は現
命令のタグ111を受取り、どの比較回路が出力
を発生するかに依存して、即ち、現命令のタグが
スタツク119のレジスタ122に記憶されたフ
エツチ・アドレスのどのタグに等しいかに依存し
て、対応するエントリ・チエツク論理125が付
勢され、線115又は117に出力を発生する。
発生されるかを詳しく示している。ここでもスタ
ツク119はフエツチ・アドレスを含む複数のレ
ジスタよりなる。各フエツチ・アドレスには、有
効性ビツト128、フル/エンプテイ(F/E)
ビツト120及びタグ118が関連している。勿
論フエツチ・アドレス、有効性ビツト、フル/エ
ンプテイ・ビツト及びタグはすべて1つのレジス
タの中に入つている。第3図に示されている各デ
ータの分割表示は各レジスタに記憶されるデータ
の性質を概念化する意図で行なわれているだけで
ある。フル/エンプテイ・ビツト120はその対
応するレジスタがフルであるか又はエンプテイで
あるかを示す信号を供給し、有効性ビツト128
はレジスタ内のフエツチ・アドレスが有効である
か又は無効であるかを示す信号を供給する。これ
らの信号はエントリ・チエツク論理125に供給
される。各アドレスのタグは対応する比較回路1
30に供給される。すべての比較回路130は現
命令のタグ111を受取り、どの比較回路が出力
を発生するかに依存して、即ち、現命令のタグが
スタツク119のレジスタ122に記憶されたフ
エツチ・アドレスのどのタグに等しいかに依存し
て、対応するエントリ・チエツク論理125が付
勢され、線115又は117に出力を発生する。
第4図はANDゲート132〜136及びORゲ
ート138よりなるエントリ・チエツク論理12
5を示している。ANDゲート132はアドレス
が無効であることを示す有効性ビツト128から
の線129の信号、フエツチ・アドレス・レジス
タがフルであることを示すフル/エンプテイ・ビ
ツト120からの線127の信号、及びタグ一致
を示す比較回路130からの線131の付勢信号
を受取り、線117に、フエツチ・アドレス・レ
ジスタがフルで無効であることを示す出力を発生
する。同様にANDゲート134も線131の信
号によつて付勢され、線127のフル信号を受取
るが、線129の有効信号を受取り、フエツチ・
アドレス・レジスタがフルで有効であることを示
す出力を発生する。ANDゲート136も線13
1の信号によつて付勢されるが、これはフル/エ
ンプテイ・ビツト120からの線127のエンプ
テイ信号を受取り、フエツチ・アドレス・レジス
タがエンプテイであることを示す信号を発生す
る。ANDゲート134,136からの出力はOR
ゲート138で組合され、フエツチ・アドレス・
レジスタがエンプテイであるか又はフルで有効で
あるかを示す信号を線115に発生する。
ート138よりなるエントリ・チエツク論理12
5を示している。ANDゲート132はアドレス
が無効であることを示す有効性ビツト128から
の線129の信号、フエツチ・アドレス・レジス
タがフルであることを示すフル/エンプテイ・ビ
ツト120からの線127の信号、及びタグ一致
を示す比較回路130からの線131の付勢信号
を受取り、線117に、フエツチ・アドレス・レ
ジスタがフルで無効であることを示す出力を発生
する。同様にANDゲート134も線131の信
号によつて付勢され、線127のフル信号を受取
るが、線129の有効信号を受取り、フエツチ・
アドレス・レジスタがフルで有効であることを示
す出力を発生する。ANDゲート136も線13
1の信号によつて付勢されるが、これはフル/エ
ンプテイ・ビツト120からの線127のエンプ
テイ信号を受取り、フエツチ・アドレス・レジス
タがエンプテイであることを示す信号を発生す
る。ANDゲート134,136からの出力はOR
ゲート138で組合され、フエツチ・アドレス・
レジスタがエンプテイであるか又はフルで有効で
あるかを示す信号を線115に発生する。
勿論、S/370アーキテクチヤでは、レジス
タ・ツー・レジスタ(Register−to−Register)
(RR)命令のような、フエツチを伴わない命令
がある。これらの命令の場合は、ここでは、関連
する命令のタグをつけてスタツク119にエント
リを記入し、フル/エンプテイ・ビツトをエンプ
テイにセツトするようにしている。この命令が現
命令になる場合、選択及びエントリ・チエツク機
能部113は線115に、補正が不要であること
を示す信号を発生する。代替的には、このような
命令ではスタツク119にエントリを記入しない
ようにし、選択及びエントリ・チエツク機能部1
33がスタツクの中に一致タグを見つけなかつた
時に線115に信号を発生するようにすることも
できる。
タ・ツー・レジスタ(Register−to−Register)
(RR)命令のような、フエツチを伴わない命令
がある。これらの命令の場合は、ここでは、関連
する命令のタグをつけてスタツク119にエント
リを記入し、フル/エンプテイ・ビツトをエンプ
テイにセツトするようにしている。この命令が現
命令になる場合、選択及びエントリ・チエツク機
能部113は線115に、補正が不要であること
を示す信号を発生する。代替的には、このような
命令ではスタツク119にエントリを記入しない
ようにし、選択及びエントリ・チエツク機能部1
33がスタツクの中に一致タグを見つけなかつた
時に線115に信号を発生するようにすることも
できる。
要するに、順序外れのフエツチの結果として2
種類の障害が生じうる。1つは、実行されている
プログラムの正しさに関するものであり、もう1
つは、別のプロセツサが何を見るかに関するもの
である。実行されているプログラムの正しさを維
持するためには、すべての記憶動作をモニタし、
これらの記憶動作が、プリフエツチされたものを
変えつつあるか、即ち、プリフエツチされたが、
プログラムに従えば、記憶が行なわれた後にフエ
ツチされるべきであつたデータを変えつつあるか
を調べる必要がある。
種類の障害が生じうる。1つは、実行されている
プログラムの正しさに関するものであり、もう1
つは、別のプロセツサが何を見るかに関するもの
である。実行されているプログラムの正しさを維
持するためには、すべての記憶動作をモニタし、
これらの記憶動作が、プリフエツチされたものを
変えつつあるか、即ち、プリフエツチされたが、
プログラムに従えば、記憶が行なわれた後にフエ
ツチされるべきであつたデータを変えつつあるか
を調べる必要がある。
同じメモリに接続された2つ以上のプロセツサ
を有するシステムでは、1つのプロセツサの取る
行動が、もう1つのプロセツサにとつては、メモ
リの変化即ち記憶動作になる場合が生じうる。例
えば、プロセツサ1がロケーシヨンAに新しい値
を記憶する場合、プロセツサ2は、ロケーシヨン
Aからフエツチする際に、そのフエツチが記憶の
前に行なわれたか又は後に行なわれたかに依存し
て古い値又は新しい値のいずれかを読取ることに
なる。同様に、プロセツサ2がロケーシヨンBに
記憶し、プロセツサ1がロケーシヨンBからフエ
ツチすることがあるが、もしフエツチ及び記憶が
正しい順序に保たれなければ、いずれかのプロセ
ツサが論理的にありえない状態に出合うことが起
りうる、即ち、例えばBの前にAが生じたりAの
前にBが生じたりすることが起りうる。この障害
は、このような障害を起こしうる条件、具体的に
は、相互問合せ及びキヤツシユ・ミスをモニタす
ることにより回避される。
を有するシステムでは、1つのプロセツサの取る
行動が、もう1つのプロセツサにとつては、メモ
リの変化即ち記憶動作になる場合が生じうる。例
えば、プロセツサ1がロケーシヨンAに新しい値
を記憶する場合、プロセツサ2は、ロケーシヨン
Aからフエツチする際に、そのフエツチが記憶の
前に行なわれたか又は後に行なわれたかに依存し
て古い値又は新しい値のいずれかを読取ることに
なる。同様に、プロセツサ2がロケーシヨンBに
記憶し、プロセツサ1がロケーシヨンBからフエ
ツチすることがあるが、もしフエツチ及び記憶が
正しい順序に保たれなければ、いずれかのプロセ
ツサが論理的にありえない状態に出合うことが起
りうる、即ち、例えばBの前にAが生じたりAの
前にBが生じたりすることが起りうる。この障害
は、このような障害を起こしうる条件、具体的に
は、相互問合せ及びキヤツシユ・ミスをモニタす
ることにより回避される。
本発明は、順序どおりでないフエツチを許容す
ることにより、或るプロセツサにおいて性能上の
利点を与える。オペランドの実際のフエツチ時点
と、オペランドが正規に順序正しくフエツチされ
る場合のフエツチ時点との間に生じる関連プロセ
ツサの活動をモニタすることにより、問題のある
順序外れのフエツチを見つけ出し、補正行動を取
ることができる。比較手段はスタツクのすべての
アドレスをテスト・アドレスと比較し、一致又は
不一致を示す信号を発生する。もしこれらのアド
レス信号のどれかが一致であれば、対応するフエ
ツチ・アドレスが無効として記される。キヤツシ
ユ・ミス又は直列化命令の場合も、順序どおりで
ないフエツチが無効となる可能性があり、そのた
め、スタツク全体が無効として記される。
ることにより、或るプロセツサにおいて性能上の
利点を与える。オペランドの実際のフエツチ時点
と、オペランドが正規に順序正しくフエツチされ
る場合のフエツチ時点との間に生じる関連プロセ
ツサの活動をモニタすることにより、問題のある
順序外れのフエツチを見つけ出し、補正行動を取
ることができる。比較手段はスタツクのすべての
アドレスをテスト・アドレスと比較し、一致又は
不一致を示す信号を発生する。もしこれらのアド
レス信号のどれかが一致であれば、対応するフエ
ツチ・アドレスが無効として記される。キヤツシ
ユ・ミス又は直列化命令の場合も、順序どおりで
ないフエツチが無効となる可能性があり、そのた
め、スタツク全体が無効として記される。
C 発明の効果
本発明によれば、論理的に正しくない順序でフ
エツチしても、そのフエツチが問題を生じるか否
かをモニタし識別し解決できるから、このような
フエツチの利用によつてコンピユータ・システム
の性能を、誤動作の問題なしに向上させることが
できる。
エツチしても、そのフエツチが問題を生じるか否
かをモニタし識別し解決できるから、このような
フエツチの利用によつてコンピユータ・システム
の性能を、誤動作の問題なしに向上させることが
できる。
第1図は本発明に従つて、順序正しくないフエ
ツチを記入しモニタする機構のブロツク図であ
る。第2図は第1図の機構の分配部、比較部及び
スタツク構造を詳細に示すブロツク図である。第
3図は第1図の機構のエントリ・チエツク機能部
及びスタツク構造を詳細に示すブロツク図であ
る。第4図は第3図のエントリ・チエツク部の論
理を示すブロツク図である。
ツチを記入しモニタする機構のブロツク図であ
る。第2図は第1図の機構の分配部、比較部及び
スタツク構造を詳細に示すブロツク図である。第
3図は第1図の機構のエントリ・チエツク機能部
及びスタツク構造を詳細に示すブロツク図であ
る。第4図は第3図のエントリ・チエツク部の論
理を示すブロツク図である。
Claims (1)
- 【特許請求の範囲】 1 オペランドをフエツチし、それに従つて命令
を実行するコンピユータにおいて順序正しくない
フエツチをモニタするための装置であつて、 (a) M個の順序正しくないフエツチのアドレスを
保持するためのN個(NはM以上の数)のエン
トリを有し、上記アドレスの各々が当該各アド
レスについての有効性ビツト及び上記スタツク
のアドレスにエントリがあるときにフルにセツ
トされるフル/エンプテイ・ビツトを持つスタ
ツクと、 (b) 上記スタツク内のアドレスと所定のテスト・
アドレスとを比較するための比較手段と、 (c) 上記テスト・アドレスと一致するアドレスの
有効性ビツトを無効にセツトするための手段
と、 (d) 上記スタツク内のアドレスと関連する命令を
識別するために、 (i) その時デコードされている命令に対応する
上記スタツク内のエントリを選択するための
手段と、 (ii) 該命令が関連するアドレスに対応する上記
フル/エンプテイ・ビツト及び上記有効性ビ
ツトをチエツクすると共に、該フル/エンプ
テイ・ビツトがフルにセツトされかつ該有効
性ビツトが無効とセツトされているときに補
正作用が要求されることをプロセツサに知ら
せる手段と を有する識別手段と、該関連する命令がその時デ
コードされている命令となるときに上記アドレス
を上記スタツクから削除するための手段と を有することを特徴とする上記装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/051,792 US4991090A (en) | 1987-05-18 | 1987-05-18 | Posting out-of-sequence fetches |
US51792 | 1987-05-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS63293639A JPS63293639A (ja) | 1988-11-30 |
JPH0552968B2 true JPH0552968B2 (ja) | 1993-08-06 |
Family
ID=21973404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63093613A Granted JPS63293639A (ja) | 1987-05-18 | 1988-04-18 | 順序正しくないフエツチをモニタするための装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US4991090A (ja) |
EP (1) | EP0302999B1 (ja) |
JP (1) | JPS63293639A (ja) |
DE (1) | DE3884101T2 (ja) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5193205A (en) * | 1988-03-01 | 1993-03-09 | Mitsubishi Denki Kabushiki Kaisha | Pipeline processor, with return address stack storing only pre-return processed address for judging validity and correction of unprocessed address |
JPH0774994B2 (ja) * | 1988-09-21 | 1995-08-09 | 株式会社日立製作所 | バッファ記憶制御装置のosc検出方式 |
JPH02103656A (ja) * | 1988-10-12 | 1990-04-16 | Fujitsu Ltd | 主記憶参照の遂次化制御方式 |
US5125083A (en) * | 1989-02-03 | 1992-06-23 | Digital Equipment Corporation | Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system |
US5226126A (en) * | 1989-02-24 | 1993-07-06 | Nexgen Microsystems | Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags |
US5781753A (en) | 1989-02-24 | 1998-07-14 | Advanced Micro Devices, Inc. | Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions |
US5768575A (en) * | 1989-02-24 | 1998-06-16 | Advanced Micro Devices, Inc. | Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions |
CA2016068C (en) * | 1989-05-24 | 2000-04-04 | Robert W. Horst | Multiple instruction issue computer architecture |
US5093777A (en) * | 1989-06-12 | 1992-03-03 | Bull Hn Information Systems Inc. | Method and apparatus for predicting address of a subsequent cache request upon analyzing address patterns stored in separate miss stack |
JPH0348951A (ja) * | 1989-07-18 | 1991-03-01 | Fujitsu Ltd | アドレスモニタ装置 |
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 |
US5197139A (en) * | 1990-04-05 | 1993-03-23 | International Business Machines Corporation | Cache management for multi-processor systems utilizing bulk cross-invalidate |
US5151981A (en) * | 1990-07-13 | 1992-09-29 | International Business Machines Corporation | Instruction sampling instrumentation |
US5446850A (en) * | 1991-01-15 | 1995-08-29 | International Business Machines Corporation | Cross-cache-line compounding algorithm for scism processors |
US5257354A (en) * | 1991-01-16 | 1993-10-26 | International Business Machines Corporation | System for monitoring and undoing execution of instructions beyond a serialization point upon occurrence of in-correct results |
US5261071A (en) * | 1991-03-21 | 1993-11-09 | Control Data System, Inc. | Dual pipe cache memory with out-of-order issue capability |
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 |
US5636363A (en) * | 1991-06-14 | 1997-06-03 | Integrated Device Technology, Inc. | Hardware control structure and method for off-chip monitoring entries of an on-chip cache |
US5317711A (en) * | 1991-06-14 | 1994-05-31 | Integrated Device Technology, Inc. | Structure and method for monitoring an internal cache |
JP2786574B2 (ja) * | 1992-05-06 | 1998-08-13 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・システムにおける順不同ロード動作の性能を改善する方法と装置 |
US5355471A (en) * | 1992-08-14 | 1994-10-11 | Pyramid Technology Corporation | Multiprocessor cache coherency tester that exercises the coherency logic exhaustively and also detects errors in a processor using an automatic CPU sort |
US6735685B1 (en) | 1992-09-29 | 2004-05-11 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
JP3644959B2 (ja) * | 1992-09-29 | 2005-05-11 | セイコーエプソン株式会社 | マイクロプロセッサシステム |
US5488706A (en) * | 1992-12-18 | 1996-01-30 | Amdahl Corporation | Retry request system in a pipeline data processing system where each requesting unit preserves the order of requests |
US5467473A (en) * | 1993-01-08 | 1995-11-14 | International Business Machines Corporation | Out of order instruction load and store comparison |
US5493669A (en) * | 1993-03-03 | 1996-02-20 | Motorola, Inc. | Data processor for simultaneously searching two fields of the rename buffer having first and second most recently allogated bits |
JP2560988B2 (ja) * | 1993-07-16 | 1996-12-04 | 日本電気株式会社 | 情報処理装置および処理方法 |
US6138230A (en) * | 1993-10-18 | 2000-10-24 | Via-Cyrix, Inc. | Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline |
US5463745A (en) * | 1993-12-22 | 1995-10-31 | Intel Corporation | Methods and apparatus for determining the next instruction pointer in an out-of-order execution computer system |
US5535358A (en) * | 1993-12-27 | 1996-07-09 | Matsushita Electric Industrial Co., Ltd. | Cache memory control circuit and method for controlling reading and writing requests |
US5588126A (en) * | 1993-12-30 | 1996-12-24 | Intel Corporation | Methods and apparatus for fordwarding buffered store data on an out-of-order execution computer system |
US5627985A (en) * | 1994-01-04 | 1997-05-06 | Intel Corporation | Speculative and committed resource files in an out-of-order processor |
US5898854A (en) * | 1994-01-04 | 1999-04-27 | Intel Corporation | Apparatus for indicating an oldest non-retired load operation in an array |
US5452426A (en) * | 1994-01-04 | 1995-09-19 | Intel Corporation | Coordinating speculative and committed state register source data and immediate source data in a processor |
US5577200A (en) * | 1994-02-28 | 1996-11-19 | Intel Corporation | Method and apparatus for loading and storing misaligned data on an out-of-order execution computer system |
US5465336A (en) * | 1994-06-30 | 1995-11-07 | International Business Machines Corporation | Fetch and store buffer that enables out-of-order execution of memory instructions in a data processing system |
US5699538A (en) * | 1994-12-09 | 1997-12-16 | International Business Machines Corporation | Efficient firm consistency support mechanisms in an out-of-order execution superscaler multiprocessor |
TW295646B (ja) * | 1995-01-25 | 1997-01-11 | Ibm | |
US5649155A (en) * | 1995-03-31 | 1997-07-15 | International Business Machines Corporation | Cache memory accessed by continuation requests |
US5751946A (en) * | 1996-01-18 | 1998-05-12 | International Business Machines Corporation | Method and system for detecting bypass error conditions in a load/store unit of a superscalar 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 |
JP2806359B2 (ja) * | 1996-04-30 | 1998-09-30 | 日本電気株式会社 | 命令処理方法及び命令処理装置 |
JP2783259B2 (ja) * | 1996-07-18 | 1998-08-06 | 日本電気株式会社 | 半導体パッケージとその製造方法 |
US6021261A (en) * | 1996-12-05 | 2000-02-01 | International Business Machines Corporation | Method and system for testing a multiprocessor data processing system utilizing a plurality of event tracers |
US5909698A (en) * | 1997-03-17 | 1999-06-01 | International Business Machines Corporation | Cache block store instruction operations where cache coherency is achieved without writing all the way back to main memory |
US6289437B1 (en) * | 1997-08-27 | 2001-09-11 | International Business Machines Corporation | Data processing system and method for implementing an efficient out-of-order issue mechanism |
JP2004094533A (ja) * | 2002-08-30 | 2004-03-25 | Hajime Seki | 計算機システム |
US9483409B2 (en) | 2015-02-05 | 2016-11-01 | International Business Machines Corporation | Store forwarding cache |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6077241A (ja) * | 1983-10-05 | 1985-05-01 | Hitachi Ltd | 情報処理装置 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3401376A (en) * | 1965-11-26 | 1968-09-10 | Burroughs Corp | Central processor |
US3553655A (en) * | 1969-03-28 | 1971-01-05 | Ibm | Short forward conditional skip hardware |
US4092713A (en) * | 1977-06-13 | 1978-05-30 | Sperry Rand Corporation | Post-write address word correction in cache memory system |
US4354232A (en) * | 1977-12-16 | 1982-10-12 | Honeywell Information Systems Inc. | Cache memory command buffer circuit |
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
US4189772A (en) * | 1978-03-16 | 1980-02-19 | International Business Machines Corporation | Operand alignment controls for VFL instructions |
US4197580A (en) * | 1978-06-08 | 1980-04-08 | Bell Telephone Laboratories, Incorporated | Data processing system including a cache memory |
US4228503A (en) * | 1978-10-02 | 1980-10-14 | Sperry Corporation | Multiplexed directory for dedicated cache memory system |
US4279016A (en) * | 1979-06-21 | 1981-07-14 | International Business Machines Corporation | Instruction pre-fetch microprocessor interrupt system |
JPS56149646A (en) * | 1980-04-21 | 1981-11-19 | Toshiba Corp | Operation controller |
US4438492A (en) * | 1980-08-01 | 1984-03-20 | Advanced Micro Devices, Inc. | Interruptable microprogram controller for microcomputer systems |
US4399507A (en) * | 1981-06-30 | 1983-08-16 | Ibm Corporation | Instruction address stack in the data memory of an instruction-pipelined processor |
US4484267A (en) * | 1981-12-30 | 1984-11-20 | International Business Machines Corporation | Cache sharing control in a multiprocessor |
US4594660A (en) * | 1982-10-13 | 1986-06-10 | Honeywell Information Systems Inc. | Collector |
US4594659A (en) * | 1982-10-13 | 1986-06-10 | Honeywell Information Systems Inc. | Method and apparatus for prefetching instructions for a central execution pipeline unit |
EP0128945B1 (en) * | 1982-12-09 | 1991-01-30 | Sequoia Systems, Inc. | Memory backup system |
JPS59205605A (ja) * | 1983-05-07 | 1984-11-21 | Hitachi Ltd | シ−ケンス制御装置 |
US4648030A (en) * | 1983-09-22 | 1987-03-03 | Digital Equipment Corporation | Cache invalidation mechanism for multiprocessor systems |
DE3581556D1 (de) * | 1984-04-27 | 1991-03-07 | Bull Hn Information Syst | Steuerungsgeraet in einem digitalen computer. |
US4637024A (en) * | 1984-11-02 | 1987-01-13 | International Business Machines Corporation | Redundant page identification for a catalogued memory |
US4791557A (en) * | 1985-07-31 | 1988-12-13 | Wang Laboratories, Inc. | Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system |
-
1987
- 1987-05-18 US US07/051,792 patent/US4991090A/en not_active Expired - Fee Related
-
1988
- 1988-04-18 JP JP63093613A patent/JPS63293639A/ja active Granted
- 1988-04-21 DE DE88106390T patent/DE3884101T2/de not_active Expired - Fee Related
- 1988-04-21 EP EP88106390A patent/EP0302999B1/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6077241A (ja) * | 1983-10-05 | 1985-05-01 | Hitachi Ltd | 情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
EP0302999A3 (en) | 1991-11-06 |
JPS63293639A (ja) | 1988-11-30 |
DE3884101T2 (de) | 1994-04-21 |
DE3884101D1 (de) | 1993-10-21 |
US4991090A (en) | 1991-02-05 |
EP0302999A2 (en) | 1989-02-15 |
EP0302999B1 (en) | 1993-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0552968B2 (ja) | ||
CA1325283C (en) | Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system | |
US6754856B2 (en) | Memory access debug facility | |
US6658554B1 (en) | Electronic processor providing direct data transfer between linked data consuming instructions | |
EP0118828B1 (en) | Instruction fetch apparatus and method of operating same | |
JP3761614B2 (ja) | キャッシュ・メモリ付きコンピュータ装置 | |
US6266768B1 (en) | System and method for permitting out-of-order execution of load instructions | |
US7971033B2 (en) | Limiting entries in load issued premature part of load reorder queue searched to detect invalid retrieved values to between store safe and snoop safe pointers for the congruence class | |
CN106897230B (zh) | 用于处理原子更新操作的装置和方法 | |
US6360314B1 (en) | Data cache having store queue bypass for out-of-order instruction execution and method for same | |
JPS63195752A (ja) | キヤツシユメモリ− | |
US4831622A (en) | Apparatus for forcing a reload from main memory upon cache memory error | |
US7412620B2 (en) | Method for testing ability to recover from cache directory errors | |
US6148394A (en) | Apparatus and method for tracking out of order load instructions to avoid data coherency violations in a processor | |
US6477635B1 (en) | Data processing system including load/store unit having a real address tag array and method for correcting effective address aliasing | |
US6519684B1 (en) | Low overhead method for selecting and updating an entry in a cache memory | |
JPS59231652A (ja) | メモリアクセス・オ−バラツプ検出方式 | |
US6266767B1 (en) | Apparatus and method for facilitating out-of-order execution of load instructions | |
US6898738B2 (en) | High integrity cache directory | |
JP2008176731A (ja) | マルチプロセッサシステム | |
JPH07104834B2 (ja) | 処理装置間ロック制御システム | |
CN112470134A (zh) | 处理保护标签丢失 | |
JPH0548498B2 (ja) | ||
JPH0540629A (ja) | 情報処理装置 | |
JPH0484242A (ja) | データ処理装置 |