JP2000148488A - ス―パ―スカラプロセッサ - Google Patents
ス―パ―スカラプロセッサInfo
- Publication number
- JP2000148488A JP2000148488A JP2000008148A JP2000008148A JP2000148488A JP 2000148488 A JP2000148488 A JP 2000148488A JP 2000008148 A JP2000008148 A JP 2000008148A JP 2000008148 A JP2000008148 A JP 2000008148A JP 2000148488 A JP2000148488 A JP 2000148488A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- dependency
- register
- buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000000872 buffer Substances 0.000 claims abstract description 63
- 230000001419 dependent effect Effects 0.000 claims abstract description 22
- 238000000034 method Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 10
- 238000013459 approach Methods 0.000 description 7
- 239000013598 vector Substances 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001629 suppression Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 101100417903 Arabidopsis thaliana RRC1 gene Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000004204 candelilla wax Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- 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 or look ahead
- G06F9/3824—Operand accessing
-
- 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 or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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 or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- 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 or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
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)
- Executing Machine-Instructions (AREA)
Abstract
実行可能とする。 【解決手段】 複数の命令を記憶するための命令バッフ
ァ(102)と、複数の一時記憶ロケーションを含むイ
ンデックスでアドレス指定可能であり、複数の命令のそ
れぞれ1つは記憶ロケーションの1つに割り当てられ、
複数の命令の所定の1つに対応する出力は複数の命令の
所定の1つに割り当てられた一時記憶ロケーションに記
憶されるバッファと(116)、命令バッファ内に記憶
された依存性命令を探し出すための手段であって、依存
性命令は前回の命令に依存する入力を有し、前回の命令
は所定の順序で依存性命令に先行する命令バッファ内の
命令であるデータ依存性検査手段(108)と、依存性
命令に対応する依存性データを受け取り、前回の命令に
割り当てられた一時記憶ロケーションと入力とを関係づ
けるために依存性データを用いる回路(122)とによ
って構成される。
Description
定命令セット計算機(RISC)に関するものであり、
更に具体的に言えばスーパースカラーR1SCコンピュ
ータ用の、レジスタの名称変更および命令発行を含む命
令スケジュール化に関するものである。以下は同一承継
人の出願に係る係属中の出願である。「半導体フロアー
プランおよびレジスタ名称変更回路の方法」、米国出願
番号07/860,718号、1992年3月31日、
本発明と同時に出願(代理人整理番号SP041)。
「高速RISCマイクロプロセッサ・アーキテクチ
ャ」、米国出願番号07/817,810号、1992
年1月8日出願(代理人整理番号SP051)。「拡張
可能RISCマイクロプロセッサ・アーキテクチャ」、
米国出願番号07/817,809号、1992年1月
8日出願(代理人整理番号SP021)。本願に於いて
上記の出願の開示を参照することによって当該米国特許
出願の明細書の記載内容が本明細書の一部分を構成する
ものとする。
いては以下の幾つかの参考文献に記述されている。Mi
ke Johnson著 Superscalar M
icroprocessor Design(Pren
tice−Hall,Inc.,Englewood
Cliffs,New Jersey,1991);J
ohn L.Hennessyその他著、Comput
er Architecture−AQuantita
tive Approach(Morgan Kauf
mann Publisher,San Mateo,
California,1990)。ジョンソンの著
書、特に第2、6、および7章に、本発明によって扱わ
れたレジスタ名称変更問題の優れた解説が記述されてい
る。
ける大きな課題は如何にして、斯かる命令実行の本質的
な問題である依存性によるデータ・エラーの発生を回避
しつつ、複数の命令を平行処理的に、順不同に実行でき
るか、という点に関する。データ依存性検査、レジスタ
名称変更、および命令スケジュール化は問題解決の根本
的要素である。 〔記憶競合およびレジスタ名称変更〕真の依存性(「フ
ロー依存性(flow dependencies)」
または「書き込み・読み出し(write−rea
d)」依存性とも呼ばれる)は、しばしば反依存性
(「読み出し・書き込み(read−write)」依
存性とも呼ばれる)および出力依存性(「書き込み・書
き込み(write−write)」依存性とも呼ばれ
る)と共に命令依存性の単一グルーブに分類される。こ
のように分類をする理由は、これらの依存性のひとつひ
とつが、レジスタまたは他の記憶ロケーションの使用に
よってそれ自体を証明するからである。しかしながら、
真の依存性を他の二つの依存性と区別することもまた重
要である。真の依存性は、プログラムを通してデータお
よび情報が流れるということである。反および出力依存
性が発生するのは、異なった時点に於いて、レジスタま
たは他の記憶ロケーションが異なった計算の為の異なっ
た値を保持するからである。
了される場合、レジスタと値の間には一対一の対応が存
在する。実行のどの過程に於いても、対応するレジスタ
に格納されている値はレジスタ識別子によって正確に識
別される。命令が順不同に発行され、順不同に実行され
る場合、レジスタと値の間の対応が崩れ、値同士の間で
レジスタをめぐっての競合が発生する。レジスタ割り当
ての目的が出来るだけ多くの値を出来るだけ少数のレジ
スタに保存することである時、これは深刻な問題とな
る。多数の値を少数のレジスタに保存すると、実行の順
序をレジスタ・アロケータが仮定する順序から変更した
場合、多数の競合をもたらす。
合」と呼ばれる。なぜならば、たとえ互いに競合する命
令が独立していても、記憶のロケーション(レジスタを
含む)を再使用しようとすると命令同士問で干渉が発生
するからである。記憶に対する競合は命令の発行の抑制
と、実行速度の低下という弊害を生む。しかし、問題と
なるリソースの数を増やすことにより、他のリソース競
合と同じように、記憶競合を減少あるいは解消できる。 〔依存性のメカニズム〕ジヨンソンは次の項目を含む、
様々な依存性のメカニズムを詳しく論じている。すなわ
ち、ソフトウェア、レジスタの名称変更、リオーダー・
バッファを用いたレジスタの名称変更、未来バッファを
用いたレジスタ名称の変更、インターロツク、依存性を
回避するために命令ウィンドウ中でオペランドをコピー
すること、および部分的名称変更、等である。
ョンは命令間の依存性はソフトウェアが管理するように
なつている。命令が真の依存性または記憶競合から完全
に抜け出すまでハードウェアが命令を扱うことのないよ
うに、コンパイラや他のコードジェネレータは命令の順
序を変更できる。しかし、不幸にしてこの手法では幾つ
かの問題が生じる。ソフトウェアはプロセッサによる操
作の遅延時間を考慮に入れることができず、したがって
依存性を防止するためにどのように命令の順序を変えて
いいかということを常には判断できない。命令が依存性
のない状態になるまでハードウェアがその命令を扱わな
いように、如何にしてソフトウェアがハードウェアをし
て制御できるか、ということも問題点のひとつである。
操作遅延時間が短いスカラー・プロセッサの場合、ソフ
トウェアはオーバーヘッドを極端に増大することなく、
コードに“noーops”を挿入してデータ依存性の要
求を満たすことができる。プロセッサが1サイクルあた
り幾つかの命令を取り出そうとする場合、あるいはいく
つかのオペレーションを完了するのに何サイクルかがか
かる場合、プロセッサが依存性命令を扱わないようにす
るために挿入しなければならない“noーops”の数
は急速に増える。その結果、コード・サイズが容認し難
い程増大する。命令間の依存性をエンコードするためn
oーopsは命令キャッシュという貴重なリソースを使
う。
場合、どんなメカニズムのソフトウェアを、依存性を実
施するのに使用すべきかは全く明らかでない。ソフトウ
ェアはプロセッサの挙動を制御しないので、ソフトウェ
アが如何にしてプロセッサに依存性命令を解読させない
ようにするかということは困難である。二番目の問題
は、スーパースカラー・プロセッサに於ける依存性を実
施するスカラー・プロセッサ用の既存のバイナリ・コー
ドは存在しないことである。なぜならば、実行モードは
スーパースカラー・プロセッサにおいては非常に異なっ
たものであるからである。依存性の管理をソフトウェア
に委ねるには、スーパースカラー・プロセッサ用にコー
ドを再生成する必要がある。そして、コードの依存性は
ハードウェアの遅延時間によって直接決定されるので、
各スーパースカラー・プロセッサの各バージヨンの最良
のコードはそのバージョンのインプリメンテーションに
依存する。
質的に複雑であるという理由で望ましくない場合もあ
る。典型的なRISC命令がそうであるように、各命令
に2個の入力オペランドと1個の出力値があると仮定す
ると、どの2個の命令の間にも5つの依存性が存在す
る。すなわち、2つの真の依存性、2つの反依存性、お
よび1つの出力依存性である。更に、ウィンドウ中の命
令のグループのような、一つの命令グループの間の依存
性の数は、そのグループ中の命令の数の自乗に比例す
る。なぜなら、各命令は他の命令の一つ一つに対して考
慮されなければならないからである。
発行し、実行しようとする命令の数によって、複雑さは
更に増大する。これらのアクションによって依存性が導
入される。複雑さを減少させる唯一の助けは、依存性ハ
ードウェァのスコープと複雑さの減少を助けるために、
依存性を幾つものサイクルにわたって増分変化量的に決
定できるということである。
スタと値との対応性を再設立するための、レジスタを追
加導入することである。これらの追加されたレジスタは
従来通り、ハードウェアによって動的に割り当てられ、
そしてそれらのレジスタは「レジスタ名称変更(reg
ister renaming)」を使用するプログラ
ムに必要な値に対応させられる。レジスタ名称変更を実
現するために、通常プロセッサは生成される新しい値一
つ一つに対して(すなわち、レジスタに書き込む命令一
つ一つに対して)新しいレジスタを割り当てる。元のレ
ジスタを識別する命令は、そのレジスタの値を読む目的
で、新規に割り当てられたレジスタの値を代わりに取得
する。従って、ハードウェアは命令中の元のレジスタ識
別子を名称変更して、新しいレジスタおよび正しい値と
識別する。レジスタ割り当てに関してはレジスタ参照の
ロケーシヨンに依って、幾つもの異なった命令中の同一
のレジスタ識別子は、異なったハードウェア・レジスタ
にアクセスすることがある。
中、“op”はオペレーションを意味し、“Rn”は番
号の付いているレジスタを表わし、“:=”は割り当て
を表わす。
い「インスタンス(instance)」、英字の添え
字で表記さているもの、が生成される。第3命令でR3
用の新しいインスタンスが生成されることによって、第
2および第1命令の反および出力依存性がそれぞれ回避
されるが、第4命令に正しくオペランドを供給すること
については何も影響を与えない。第3命令におけるR3
への割り当ては第1命令に於けるR3への割り当てに優
先するものである。従って、次の命令で見られるR3C
が新しいR3となり、その状態は別の命令が値をR3に
割り当てるまで続く。
ジスタ・インスタンスを生成し、そのインスタンスの値
が他のものによって変更されて、その値への参照が存在
しなくなった時点でそのインスタンスを破壊する。これ
によって、反および出力依存性が解消され、さらに多く
の命令パラレリズムが可能となる。レジスタは再利用さ
れるが、再利用はパラレル実行要件と一致している。こ
れは特に順不同の命令発行に役立つものである。なぜな
らば、記憶競合は正しい結果を生成するのに必ずしも必
要ではない命令発行抑制をもたらすからである。例え
ば、前記の命令シーケンスに於いては、名称変更によっ
て第3命令は直ちに発行されるが、名称変更がない場
合、第3命令は第1命令が完了し第2命令が発行される
までこの命令を遅らせなければならないのである。
ビット(スコアーボード・ビット(scoreboar
dbit)と呼ばれる)を各レジスタと対応させること
である。スコアーボード・ビットはレジスタに処理待ち
の更新が存在することを示すために使用される。レジス
タに書き込む命令が解読されると、プロセッサは対応す
るスコアーボード・ビットを設定する。書き込みが実際
に実行されるとスコアーボード・ビットは再設定され
る。処理待ちの更新が存在するか否かを示すスコアーボ
ード・ビットは一つだけしか存在しないので、各レジス
タには斯かる更新は一つしかあり得ない。解読された命
令が、処理待ちの更新(設定されているスコアーボード
・ビットによって示される)を既に持つレジスタを更新
するような場合、スコアーボードは命令の解読を遅らせ
る。こうして、どの時点に於いてもレジスタ当たり一つ
の処理待ちの更新を受け付けることによって出力依存性
が防止される。
を持つタグを使用して様々な未計算の値を識別する。こ
の場合、これらの値のうち幾つかは同一のプロセッサ・
レジスタ(すなわち、同一の、プログラムから見えるレ
ジスタ)に振り向けられていることも可能である。従来
の名称変更では、ハードウェアは、現在どのような値と
も対応していない使用可能なタグのプールからタグを割
り当てることが求められ、また、ハードウェアは値の計
算が完了するとタグを解放してそのプールに戻す必要が
ある。更に、スコアーボード化では各レジスタは一つの
処理待ち更新しか受け入れることができないので、プロ
セッサはどの更新が最新のものであるかということを考
慮しない。
ティブ・ルックアップを使用する「リオーダー・バッフ
ァ(reorder buffer)」を用いてレジス
タの名称変更手法を使用することである。アソシアティ
ブ・ルックアップはリオーダー・バッファ項目が割り当
てられると直ちにレジスタの識別子をそのリオーダー・
バッファ項目に写像する。更に、出力依存性を防止する
ために、ルックアップは優先順位で行われ、その結果、
レジスタが2回以上割り当てられた場合、最新の割り当
て値だけが得られる。この結果が利用可能でない場合
は、タグが得られる。一つのレジスタに対し、リオーダ
ー・バッファ項目の数と同じ数のインスタンスがあつて
も構わない。従つて、命令間で記憶競合が発生すること
はない。異なったインスタンスの各値はリオーダー・バ
ッファからレジスタ・ファイルに順次書き込まれる。最
後のインスタンスの値がレジスタ・ファイルに書き込ま
れると、リオーダー・バッファはもはやレジスタに写像
しない。その場合、レジスタ・ファイルにはこのレジス
タのインスタンスのみが含まれ、これが最も新しいイン
スタンスとなる。
バッファを用いた名称変更は、レジスタ識別子を値に写
像するために、リオーダー・バッファ中のアソシアティ
ブ・ルックアップを必要とする。リオーダー・バッファ
では、アソシアティブ・ルックアップは優先順位付けら
れていて、リオーダー・バッファは常に最新値を対象と
なるレジスタ(あるいはタグ)に供給するようになって
いる。リオーダー・バッファもまた、種々の値をレジス
タ・ファイルに順次書き込むので、値がリオーダー・バ
ッファ中に存在しない場合でも、レジスタ・ファイルに
は最新値が必ず格納されている。
イル(futurefi1e)」を使用することによっ
てアソシアティブ・ルックアップを削減できる。未来フ
ァイルは前のパラグラフで述べたリオーダー・バッファ
の特性は持たないファイルである。未来ファイル書き込
み用に与えられた値は対応するレジスタに振り向けられ
た最新の値ではないこともあり、それが実際に最新の値
でなければ値は最新のもとのして扱われない。従って、
未来ファイルは最新の更新を記憶していて、実際に書き
込みを行なう前に、各書き込みが最新の更新に対応する
ことを検査するものである。
と一緒に未来ファイル中のタグにアクセスする。レジス
タに一つ以上の処理待ちの更新がある場合、タグは解読
された命令が必要とする更新値を識別する。ひとつの命
令が一旦解読されると、他の命令は反依存性に制約され
ることなくこの命令のソース・オペランドに上書きする
ことができる。なぜならば、このオペランドは命令ウィ
ンドウにコピーされるからである。結果が最新の値のタ
グを持たない場合、その結果が未来ファイルに書き込ま
れることを防止することによって出力依存性は処理され
る。反および出力依存性は両方共、命令の発行を遅延さ
せることなく処理される。
存性を管理するために「インターロツク(interl
ocks)」を使用しなければならない。インターロッ
クは単に、命令が依存性から解放されるまでその命令の
実行を遅延させるものである。命令の実行を抑制するに
は2つの方法がある。すなわち、命令の解読の抑制と、
命令の発行の抑制である。
を改善するために、インターロックは「ディスパツチ・
スタツク(dispatch stack)」を使用し
てデコーダから命令ウィンドウに移される。ディスパッ
チ・スタックとは命令ウィンドウの一種で、ウィンドウ
中の各命令を依存性カウントと共に増加させるものであ
る。ウィンドウ中の各命令ごとのソース・レジスタに対
応する依存性カウントが存在する。このカウントはソー
ス・レジスタの処理待ちの先行更新の数を示すもので、
従って、全ての真の依存性が解消される前に終了しなけ
ればならない更新の数を示すものである。ウィンドウ中
の各命令の行き先レジスタに対応する2個の同じ様な依
存性カウントが存在する。これらのカウントで処理待ち
のレジスタの使用の数(すなわち反依存性の数)および
処理待ちのレジスタの更新の数(すなわち出力依存性の
数)が示される。
タックにロードされると、依存性カウントはその命令の
レジスタ識別子と、当ディスパッチ・スタックに既に存
在する全ての命令のレジスタ識別子とを比較することに
よって設定される。命令が完了すると、まだウィンドウ
中に存在する命令の依存性カウントは、実行される命令
のソースおよび行き先レジスタ識別子に基づいて減少す
る(カウントは完了された命令の数に応じて可変の数で
減少する)。命令はその全てのカウントがゼロの場合、
独立した命令となる。カウントを使用することによっ
て、ディスパッチ・スタツク中の全ての命令を各サイク
ルの他の全ての命令と比較する必要がなくなる。
令ウィンドウ(例えば予約ステーシヨン)にコピーする
ことによって防止できる。こうすることによって、オペ
ランドが以降のレジスタの更新の段階で上書きされるこ
とがなくなる。レジスタの名称変更とは別に、反依存性
を解消させるためにどんな手法でもオペランドはコピー
できる。オペランドをコピーする代わりに、反依存性を
インターロックすることもできるが、これらのインター
ロックのために必要なコンパレータおよび/またはカウ
ンタは、比較するソースおよび結果レジスタの組み合わ
せの数を考慮すると高額である。
ランドとして供給できる。このタグはハードウェアにと
っては単に、命令がどの値を必要とするかを識別するた
めの手段である。従って、オペランド値が生成される
と、それは命令とマッチさせることができる。レジスタ
当たり1個の処理待ちの更新だけしかあり得ない場合、
レジスタ識別子がタグとして使用できる(スコアーボー
ド化の場合のように)。レジスタ当たり複数の処理待ち
の更新があり得る場合(名称変更の場合のように)、結
果タグを割り当てて、そして一意性を保証するためのメ
カニズムが必要である。
わりとなる手法は、レジスタの複数の処理待ち更新を、
出力依存性のためにデコーダを遅延させないようにし、
且つデコードの過程に於いてオペランド(あるいはタ
グ)をコピーすることによって反依存性を処理すること
である。ウィンドウ中の命令は出力依存性から解放され
ない限り発行されないので、各レジスタの更新は順序通
りの実行で行われるのと同じ順序で実行される。但し、
異なるレジスタの更新は例外で、お互いに順不同であ
る。この手法はレジスタ名称変更と殆ど同じ機能を持つ
ものであるが、同一のレジスタの更新が順不同に発生す
るように命令を発行する能力だけは持たない。
称変更にとって代わる良い方法はないように見える。依
存性に関する議論の根底を成すものは、プロセッサは順
不同の発行を行い、間違って予報された分岐から回復す
るためのリオーダー・バッファを既に持つている、とい
う前提である。順不同の発行により、依存性を待つため
にデコーダを遅延させることが許容できないこととな
る。プロセッサに命令ウィンドウがある場合、デコーダ
をインターロックしてプロセッサのルックアヘッド機能
を制限することは矛盾しているのである。従って、二つ
の選択肢しかない。すなわち、ウィンドウ中で反および
出力依存性インタロックを実現させるか、あるいはこれ
らの依存性を名称変更によって完全に除去することであ
る。
RISCコンピュータ用の、レジスタ名称変更および命
令発行を含む、命令スケジューングに関するものであ
る。スケジューリング論理の一部であるレジスタ名称変
更回路(RRC)によって、コンピュータの命令実行ユ
ニツト(IEU)は依存性を防止しつつ複数の命令を同
時に実行することが可能になる。従来のレジスタ名称変
更と比較して、本発明ではレジスタ・アドレスは実際に
は名称変更されない。本発明のRRCは一時的に命令の
結果をバッファに入れ、順不同の命令の実行の結果は全
ての先行する命令の実行が終わるまでレジスタ・フアイ
ルに転送されない。RRCはまた一時的にバッファに入
れられたオペランド(結果)を依存命令に供給するため
に結果の前向き送りを行なう。RRCには3個のサブセ
クシヨンが含まれている。すなわち、データ依存性チェ
ッカー(DDC)、タグ割り当て論理(TAL)、およ
びレジスタファイル・ポートMUX(RPM)である。
の依存性を検出することである。DDCは各命令のソー
ス・レジスタのアドレスと、グループ中の以前の各命令
の行き先レジスタのアドレスを比較することによって命
令間の依存性を検出する。例えば、命令Aが命令Bによ
つて書き込まれたレジスタからの値を読み出す場合、命
令Aは命令Bに依存し、命令Aは命令Bが完了するまで
開始できない。DDCの出力はこれらの依存性を示す。
命令が先行する複数の命令に依存することが起こり得る
ので、TALはこれらの先行する命令のうちどれが最後
に実行されるものであるかを決定する必要がある。本発
明では、各命令を自動的に、所定の一時的バッファ位置
に写像する。従って、本発明は従来のリオーダー・バッ
ファで使用されるような優先順位化されたアソシアティ
ブ・ルックアップを必要とせず、従ってチップの面積/
コスト、および実行速度を節約する。
果は、命令によって指定されたファイル・レジスタでは
なく、一連の一時的バッファに格納される。例えば、D
DCが、命令6のソースが命令2、3、および5によっ
て書き込まれるレジスタ、〔INCOMPLETESE
NTENCE〕であると決定した場合、TALは命令6
に代わって命令5の「タグ(tag)」を出力すること
によって、命令6は命令5が完了するまで待たなければ
ならないことを表示する。命令5のタグは命令5の結果
が格納されている一時的バツフア位置を示す。このタグ
はまた、命令5が済んだかどうかを示す1ビットの信号
(「済みフラグ(doneflag)」と呼ばれる)を
含む。各命令は3個のソース・レジスタを持つことがで
きるので、TALは各命令ごとに3個のタグを出力す
る。命令が先行するどの命令にも依存しない場合、TA
Lは一時的バッファのアドレスではなく、その命令の入
力のレジスタ・ファイル・アドレスを出力する。
ジスタファイル・ポートMUXesである。RPMの入
力はTALの出力であり、RPMの選択ラインは命令ス
ケジューラ(または、イシュア)と呼ばれるIEUのも
う一つの要素から来る。命令スケジューラはどの命令を
実行するか(この決定は済みフラグにも基づくものであ
る)を選択し、次にRPMを使用してその命令のタグを
選択する。これらのタグはコンピュータのレジスタ・フ
ァイルの読み出しアドレス・ポートに送られる。前述の
例では、命令5が完了した後、命令スケジューラは命令
6を開始し、命令5の結果(タグ)のアドレスがレジス
タ・ファイルに送られるようにRPMを選択する。そし
て、レジスタ・ファイルは命令5の結果を命令6で使用
できるようにする。
を参照しつつ説明する。
付図の中で説明されるように、以下の推奨実施例の更に
具体的な説明で明らかになるであろう。
U)100の代表的ハイレベルブロック図を示す。IE
U100の目的は最短時間で最大数の命令を実行するこ
とである。これを遂行するには二つの基本的な方法があ
る。すなわち、各命令が出来るだけ短時間で実行できる
ようにIEU100を最適化するか、複数の命令を同時
に実行できるようにIEU100を最適化することであ
る。
ープ中のFIFO(先入れ先出し方式レジスタ・スタツ
ク記憶装置)命令101を通して、命令取り出しユニッ
ト(IFU、図示せず)からIEU100に送られる。
IEU100は最大2個の命令バケットを同時に解読
し、スケジユールできる。FIFO101はO−3とラ
ベルされた4個のバケットに全部で16個の命令が格納
できる。IEU100は命令ウィンドウ102を調べ
る。本発明の一実施例では、ウィンドウ102は8個の
命令(バケット0および1)で構成されている。各サイ
クルで、IEU100はウィンドウ102から最大数の
命令を発行しようとする。ウィンドウ102は命令バッ
ファ・レジスタとして機能する。一旦、バケット中の命
令が実行され、その結果がプロセッサのレジスタ・ファ
イル(ブロック117を参照)に格納されると、バケッ
トは底部104から掃き出され、新しいバケットが上部
106から落とされる。
には、各命令が必要とする時に、必要なデータが使用可
能であるように、また、各命令の実行の結果が、将来の
命令においてそれが必要になった時に使用可能であるよ
うに配慮する必要がある。
ュータのIEUのスケジュール論理の一部であるが、R
RCはカレント命令間の依存性を検出し、命令のソース
(入力)を名称変更することによってこの機能を行なう
ものである。
すなわち、入力依存性、出力依存性、反依存性、であ
る。入力依存性は、例えばAと呼ばれる命令が、仮にB
と呼ばれる先行の命令の結果に基づいてオペレーション
を実行する場合に発生する。出力依存性は、AとBの出
力が同じ場所に格納されるような場合に発生する。反依
存性は、命令のストリ一ムに於いて命令Aが命令Bの前
に現れ、Bの結果がAの入力の一つと同じ場所に格納さ
れなければならない場合に発生する。
可能になるまで命令を実行しないことである。RRC1
12は、カレント命令間の入力依存性を検出するため
に、そして特定の命令のための全ての入力が使用可能に
なると命令スケジューラまたはイシュア118に合図す
るために、使用される。これらの依存性を検出するため
に、RRC112はデータ依存性回路(DDC)108
を使用して、各命令の入力のレジスタ・ファイル・アド
レスと各先行命令の出力のアドレスとを比較する。先行
する命令の出力が格納されるべきレジスタから一つの命
令の入力が得られる場合、後者の命令は前者の命令の実
行が終わるまで待たねばならない。
ンでは、8個の命令を同時に検査できるので、カレント
命令はウィンドウ102からこれらの8個の命令のうち
の一つとして定義される。当業者にとって、本発明はこ
れよりも多くの命令、あるいはこれよりも少ない命令を
検査できるように容易に変更できるということは明らか
であろう。
入力および0または1の出力を持ち得る。多くの命令の
入力および出力は、幾つかのレジスタ・ファイルのうち
一つから取得されるか格納されている。各レジスタ・フ
ァイルll7(例えば別個の、整数、浮動、およびブー
ルレジスタ・ファイル)は32個の実エントリに加え、
8個の一時バツファ116のグループを持つことができ
る。ある命令が完了すると(「完了(complet
e)」とは、オペレーションが完了し、オペランドはそ
の行き先レジスタに書き込まれる用意があることを意味
する)、その結果は一時バッファ116の予め指定され
たロケーションに格納される。全ての先行する命令の結
果がレジスタ・ファイル中の定められた場所に移された
後、この完了した命令の結果はレジスタ・ファイル11
7の適切な場所に移される。このような、一時バッファ
116からレジスタ・ファイル117への結果の移動は
「退避(retirement)」と呼ばれ、終了論理
で制御されるもので、当業者にとっては明らかなもので
あろう。複数の命令が同時に退避可能である。退避と
は、コンピュータのプログラム・カウンタを含む、マシ
ンの「正式な状態(officialstate)」を
更新することであり、これもまた当業者にとっては明ら
かなものであろう。例えば、命令I0が命令I1の直前
に完了すると、両方の命令の結果をレジスタ・ファイル
117に直接格納することができる。しかし、その後命
令I3が完了すると、その結果は命令I2が完了するま
で一時バッファ116に格納されなければならない。I
EU100に各命令の結果を一時バッファ116の予め
指定された場所に格納させることによって、IEU10
0はプログラムでの順序とは異なった順序で命令を実行
でき、しかも出力依存性および反依存性によって生じる
問題も回避できる。
を経て命令スケジューラ118に送り、ウィンドウ10
2中のどの命令が発行の用意ができているかを表示す
る。命令解読論理(図示せず)はイシュア118にバス
123を経て各命令のリソースの要件を通知する。IE
U100中の各リソースごとに(すなわち、各機能ユニ
ットは一つの加算器、乗算器、シフト器、等である)イ
シュアll8はこの情報を走査し、バス121を経て発
行信号を送ることにより、発行するための最初の命令お
よび以降の命令を選択する。発行命令はRRC112内
の一組のレジスタファイル・ポートMUXes(RPM
s)124を選択する。これらの入力は各命令の入力の
アドレスである。
に送られる前に数サイクル分一時バッファ116に保存
されるので、これらがレジスタ・ファイルll7に送ら
れる前に一時バッファ116から取得するメカニズムが
設定されている。このようにして、その情報は他の命令
のオペランドとして使用可能となる。このメカニズムは
「結果の前送り(resurt forwardin
g)」と呼ばれ、これなしにはイシュア118は順不同
での命令の発行ができない。この結果の前送りはレジス
タ・ファイル117に於いて行われ、RRC112によ
って制御されるものである。結果の前送りの実行に必要
な制御信号、そして斯かる制御信号の生成に使用される
ランダム論理は、当業者にとっては明らかであろう。
命令にも依存しない場合、この命令の入力は既にレジス
タ・ファイル117に存在するので、結果の前送りは不
要となる。イシュア118がその命令の実行を決定する
と、RRC112はレジスタ・ファイルl17にそのデ
ータを出力するよう指示する。
る。すなわち、データ依存性チェッカー(DDC)10
8、タグ割り当て論理(TAL)122、およびレジス
タファイル・ポートMUXes(RPM)124であ
る。DDC108はカレント命令間の何処に入力依存性
が存在するかを決定する。TAL122はイシュア11
8のために依存性を監視し、結果の前送りを制御する。
RPM124はイシュア118によって制御され・TA
L122の出力を適切なレジスタ・ファイル・アドレス
・ポート119に差し向ける。各命令はバス110を経
てDDC108に送られる。全てのソース・レジスタ
は、ウィンドウ102の命令ごとに、全ての以前の行き
先レジスタと比較される。
一実施例ではダブルレジスタとなる。ひとつの命令は先
行する命令だけに依存し、最大3個のソース・レジスタ
を持つことができる。依存性の存在を検出するために、
相互に検査される必要がある様々なレジスタ・ファイル
のソースおよび行き先アドレスがある。上記の如く、下
部の2個のバケットに対応する下部の8個の命令はDD
C108によって検査される。全てのソースレジスタ・
アドレスは全ての先行の行き先レジスタ・アドレスと比
較されて、ウィンドウ102中の命令が存在するかどう
かが調べられる。
ーケンスがあるとする。
タであり、各命令の最後のレジスタは行き先レジスタで
ある。例えばR0とR1は命令0のソース・レジスタで
あり、R2は行き先レジスタである。命令0はレジスタ
0および1の内容を加算し、結果をR2に格納する。こ
の例の命令1−3で、全ての依存性を評価するために必
要な比較は次の通りである。
の第1ソース(入力)のアドレスであり、IXRS2は
命令Xの第2ソース(入力)のアドレスであり、IXD
は命令Xの行き先(出力)のアドレスである。
り、そこに命令0の結果に干渉することなしに命令2の
結果が格納できるので、RRCl12は、命令2は命令
0に依存して出力されることを無視できる。前述の、命
令0と1の結果がレジスタ・ファイル117に移される
まで、命令2の結果は一時バッファ116からレジスタ
ファイルl17に移されないのである。
は容易にスケール可能である。4個の命令でなく、8個
の命令を同時に検査するためには、下記の更なる比較を
行わなければならない。 I4Sl,I4Sl 対 I3D,I2D,I1D,I
0D I5Sl,I5S2 対 I4D,I3D,I2D,I
1D,I0D I6Sl,I6S2 対 I5D,I4D,I3D,I
2D,I1D,I0D I7Sl,I7S2 対 I6D,I5D,I4D,I
3D,I2D,I1D I0D 依存性の検査を行なうために、RRC112が扱わねば
ならない特殊なケースが幾つかある。第一に、ある命令
では同じレジスタを入力と出力の両方に使用する。従つ
て、RRC112はこのソース/行き先レジスタ・アド
レスを全ての先行する命令の行き先レジスタ・アドレス
と比較する必要がある。従って、命令7のためには下記
の比較が必要である。
6D,I5D,I4D,I3D,I2D ,I1D,I
0D 更に、別の特殊なケースは、64ビットの出力(長語オ
ペレーション)を生成する命令がプログラムに含まれて
いる場合である。これらの命令は、結果を格納するため
の2個のレジスタが必要である。本実施例ではこれらの
レジスタは順次レジスタでなけれぱならない。従って、
RRCll2が命令4の依存性を検査していて、命令1
が長語オペレーションである場合、RRCll2は下記
の比較を行なわなければならない。 I4S1,I4S2 対 I3D,I2D,I1D,I
1D+1,I0D 場合によっては、命令は行き先レジスタを持たない。従
って、RRC112は行き先レジスタなしの命令と如何
なる将来の命令との間のどんな依存性をも一切無視しな
ければならない。更に、命令は1個の有効なソース・レ
ジスタだけを持つとは限らないので、RRC1l2は未
使用のソース・レジスタ(通常はS2)と全ての先行す
る命令との間のどんな依存性をも一切無視しなければな
らない。
イルを扱うことができ、複数のレジスタ・ファイルが使
用される場合、一つの命令のソース・レジスタが他の命
令の行き先レジスタと同じアドレスを持ち、同じレジス
タ・ファイルに存在する場合のみ依存性が発生する。R
RCll2は特定のアドレスがどのレジスタ・ファイル
からのものであるかという情報をそのアドレスの一部と
して扱う。例えば、4個のRRC112は5ビット・レ
ジスタ・ファイルを使用するインプリメンテーションに
於いて、RRC112は5ビットの比較のかわりに7ビ
ットの比較を行なう(5ビットはアドレスで、2ビット
はレジスタ・ファイル用である)。
あるいはどの命令に不正なソースまたは行き先レジスタ
が含まれているかを示す信号は命令解読論理(IDL、
図示せず)からRRC112に送られる。またIDLは
どのレジスタ・ファイルから各命令のソースと行き先を
取得するか、またどのレジスタ・ファイルにそれらを送
るかをRRCl12に通知する。
ウィンドウ102の8個の命令すべてのためのソース・
アドレス信号はIFIFO101から来着する。更なる
入力には、8個の命令すべてのための長語ロード・オペ
レーション・フラグ・レジスタ・ファイル解読信号、不
正行き先レジスタ・フラグ、行き先アドレス信号、アド
レッシング・モードフラグ、等が含まれている。
04で構成されている。各ブロック204はKEY20
6で記述されている。各ブロック204はIXS1,I
XS2,およびIXS/D、の3個の入力を受け取る。
IXS1は命令Xの第一ソース(入力)のアドレスであ
り、IXS/Dは命令Xの第二ソース(入力)のアドレ
スであり、IXS/Dは命令Xのソース/行き先(入
力)のアドレスである。各ブロック204はまた入力I
YS/Dを受け取るが、これはある先行命令Yの行き先
レジスタ・アドレスである。例えば、最上行208はI
0S/Dを受け取るが、これは命令0の行き先レジスタ
・アドレスである。各ブロック204はデータ依存性の
結果を対応するバスライン114の一つに出力する。例
えば、I2S/Dのアドレスは命令7、6、5、4およ
び3のオペランドアドレスS1,S2、およびS/Dと
比較されなくてはならない。
これらの比較を理解するために図8に示される汎用的ブ
ロック700を考察してみる。このブロックは命令Yの
ソース/行き先オペランドと命令Xの各オペランドとを
比較する。この例に於いて、下記の三つの比較が行なわ
れなくてはならない。
04、および706でそれぞれ表わされる。コンパレー
タブロック702、704および706への1組の入力
はIYS/Dフィールドのビットであって、このフィー
ルドは番号708で表わされる。コンパレータブロック
702はその入力の第二セットとしてIXS1のビット
を持つ。同じく、コンパレータブロック704はその入
力の第二セットとしてIXS1のビットを持つ。また、
コンパレータブロック706はその入力の第二セットと
してIXS/Dのビットを持つ。
4、および706で実行される比較はランダム論理で実
行できる。コンパレータブロック706のランダム論理
の一例を図9に示す。命令Yのソース/行き先ビット
[6:0]を参照番号802で右側からの入力として示
す。同じく、命令Xのソース/行き先ビット[6:0]
を参照番号804で上側からの入力として示す。最上位
ビット(MSB)はビット6であり、最下位ビット(L
SB)はビット0である。これら2個のオペランドから
の、対応するビットは7個の排他的NORゲート(XN
OR)806に送られる。XNOR806の出力は次に
7個の入力ANDゲート808によってANDをとられ
る。対応するビットが同一であるならば、XNOR80
6の出力のすべてはロジック・ハイである。全てのビッ
トが同一であるならば、7個のXNOR806の出力の
すべてはロジック・ハイであり、ANDゲート808の
出力はロジツク・ハイである。これは、IXS/DとI
YS/Dとの間に依存性が存在することを示す。
のランダム論理は図9に示したものと同じである。本発
明ではデータ依存性検査を行なうために幾多の他のラン
ダム論理回路が可能であり、これはこの実施例の精神か
ら逸脱することなく、当業者にとって明らかであろう。
あろうが、種々のインプリメンテーシヨン固有のケース
の発生が可能であるが、そのためにはデータ依存性検査
を行なう更なるランダム論理が必要となる。代表的な特
殊なデータ依存性検査のケースは長語の処理である。
タXに書き込むと、最初の32ビットはレジスタXに書
き込まれ、二番目の32ビットはレジスタX+1に書き
込まれる。従って、データ依存性チェッカーは比較を行
なうに当たって両方のレジスタを検査する必要がある。
推奨実施例では、レジスタXは偶数レジスタであり、レ
ジスタX+1は奇数レジスタである。従って両者の違い
はLSBの差だけである。両方のレジスタを同時に検査
する最も簡単な方法はLSBを無視することである。ス
トア・ロング(STLG)またはロード・ロング(LD
LG)オペレーションの場合、XとYがLSB(0)ビ
ットだけの差で違うならば、図9の論理では、依存性が
実際は存在していてもそれがあたかも全然ない状態を生
み出す。従って、長語オペレーシヨンのためには、全て
の依存性が確実に検出できるように、STLGおよびL
DLGフラグは[0]ビットXNORの出力とORがと
られなければならない。
依存性検査フローチャートを示す。条件付きブロック5
02で示されるように、DDS108は最初にIXS1
およびIXS/Dが同じレジスタ・ファイルに在るかど
うかを検査する。もし同じレジスタ・ファイルに存在し
ないならば依存性はない。これを、ブロック506に示
す。依存性が存在するならば、DDC108は、ブロッ
ク506に示すように、次にIXS1およびIYS/D
が同じレジスタに在るかどうかを決定する。同じレジス
タに存在しない場合、フローは条件付きブロック508
へ進み、そこでDDCl08はIYが長語オペレーショ
ンであるか否かを決定する。IYが長語オペレーション
でない場合、依存性は存在せず、フローはブロック50
4に進む。IYが長語オペレーションである場合、フロ
ーは条件付き文501に進む。そこで、DDC108は
IXS1およびIYS/D+1が同じレジスタに存在す
るか否かを決定する。同しレジスタに存在しない場合、
依存性はなく、フローはブロックに進む。IXS1およ
びIYS/+1が同じレジスタに存在するならば、条件
付きブロック512に進み、そこでDDC108はIY
が有効な行き先を持っているか否かを決定する。有効な
行き先がない場合、依存性は存在せず、フローはブロッ
ク504に進む。IYに有効な行き先がある場合、条件
付きブロック514に進み、そこでDDC108はIX
S1が有効なソースレジスタを持っているか否かを決定
する。ここでも、有効なソースレジスタが検出されない
ならば依存性は存在せず、フローはブロック504に進
む。有効なソースレジスタが検出されれば、DDC10
8はIXS1およびIYS/Dの間に依存性があること
を検出したことになる。これはブロック516で示され
ている。
の出願に係る継続中の出願、関連特許申請、米国出願番
号07/860,718号(代理人整理番号SP04
1)に更に詳しく説明されている。この出願の開示はこ
こに参照文献として含まれているものとする。ある命令
がその入力の一つを、他の幾つかの命令によって既に書
き込まれているレジスタから取得することが可能である
ので、本発明ではどの入力が真の依存性であるかを選択
しなければならない。例えば、命令2および5がレジス
タ4に書き込み、命令7がレジスタ4から読み出す場
合、命令7には二つの依存性があり得る。この場合、プ
ログラムでは命令5は命令2に後続するので、プログラ
マーの意図とすることは、命令7が命令2の結果ではな
く、命令5の結果を使用することであると仮定される。
従って、一つの命令が先行する幾つかの命令に依存する
場合、RRC112はその命令は先行する命令のうち最
高の番号を持つ命令に依存するものとして扱う。
存在するかを決定した後、各命令の入力を探す必要があ
る。本発明の推奨実施例では、入力は実際のレジスタ・
ファイルまたは一時バッファ116の配列から取得でき
る。RRC112は、依存性を持たない命令の場合、そ
の命令の全ての入力はレジスタ・ファイルに存在すると
仮定する。この場合、RRC112はIFIFO102
から取得されたIXS1、IXS2およびIXS/Dア
ドレスをレジスタ・ファイルに渡す。依存性のある命令
の場合、RRC112はデータは一時バッファ116に
格納されていると仮定する。RRC112は各命令がど
の先行命令に依存するかが分かっているので、そして各
命令は常に一時バッファ116中の同じ場所に書き込む
ので、RRC112は一時バッファ116の何処に命令
の入力が保存されているかを決定することができる。R
RC112はこれらのアドレスをレジスタ・ファイル読
み出しポートl19に送り、レジスタ・ファイル117
はその命令がデータを使用できるようにを一時バッファ
l16から出力する。
存性を#記号で記す)。
で、そのタグはその元のソース・レジスタ・アドレスに
等しい。
ある。
性が有り得る。TAL22は最後の依存性(最大の番号
を持つ依存性)を選択しなければならないので、I2S
/Dが選択される。
られ、イシュア118によって選択される。TAL12
2はタグを準備すると同時にDCL130の出力を監視
し、それらの出力をバス120を使用してイシュア11
8に送る。それを行なうに当たり、TAL122はRP
M124に送るタグを選ぶのと同じ方法でDCL130
の適切な出力を選択してイシュア118に送る。
2は下記のレディー信号をイシュア118に送る。
る)。
られる。本発明においては「済んだ(done)」とは
命令の結果が一時バッファに在るか、さもなくば機能ユ
ニットの出力に於いて使用可能であることを意味する。
一方、「終了(terminate)」とは命令の結果
がレジスタ・ファイルに存在することを意味する) 次に図3を参照しつつTAL122の代表的ブロック図
を説明する。TAL122は8個のタグ割り当て論理ブ
ロック304で構成されている。各TALブロック30
2は対応するデータ依存性結果、およびコンピュータの
命令解読および制御論理(図示せず)から送られる更な
る信号を複数のバス114を経て受け取る。BKTビッ
ト信号はタグの最下位ビットを形成する。DONE
[X]フラグは命令0から6までのものであり、命令X
が済んだか否かを通知する。DBLREG[X]フラグ
は命令のうち一つが倍長ワードであるならば、どれが倍
長ワードであるかを通知する。各TALブロック302
はそれ自身の命令レジスタ・アドレスを入力として受け
取る。その他の信号であるDBLREGおよびBKT信
号は全てインプリメンテーション依存の制御信号であ
る。各TALブロック302はIXS1、IXS2およ
びIXS/Dというラベルを持つ6ビットの、3個のタ
グ126を出力する。TAL122は各タグ信号の最下
位の5ビットをRPMs124に出力し、最上位のタグ
をイシュア118に出力する。
コーダ(PE)で構成されている。これらのPEはそれ
ぞれS1、S2、およびS/D用である。しかし、一つ
の例外がある。すなわち、I0はタグの割り当てを必要
としないのである。I0は常に独立しているので、その
各タグは元のS1、S2、およびS/Dのアドレスと同
一である。
は8個の入力904および8個の出力906を持つ。P
E902の入力904はDDC108からの出力114
であり、これらの出力は何処に依存性が存在するかを示
すものである。例えば、ソース・レジスタ1(S1)の
場合、I7S1タグ割り当てPE902の7個の入力は
DDC108の7個の出力114であり、それらはI7
S1が16Dに依存しているか否か、I7S1がI5D
に依存しているか否か、等、そしてI7S1がI0Dに
依存しているか否か、までを通知する。参照番号908
で示される第8入力は常にPE902からの出力である
ので、常に高位でタイとなる。
かの命令に依存する場合、PE902は依存性が存在す
る先行命令のうち最も古い(プログラム順で)命令だけ
を選択し、出力する。これは、最も古い先行命令への依
存性があるか否かを示す信号をPE902の最優先順位
の入力に接続し、2番目に古い先行命令への依存性があ
るか否かを示す信号をPE902の最優先順位が2番目
の入力に接続する、というふうに、すべての先行命令を
接続することによって行なわれる。PE902の最低優
先順位の最も低い入力は常に高位にタイとなり、従っ
て、PE902の出力のうち少なくとも1個のものが確
定される。
して使用されるMUX910には8個の入力912があ
り、それらに各命令のタグが付く。
I5に依存すると仮定する。I6の優先順位はI5より
高いので、PE902の出力906に於いてI6に対応
するビットはハイである。MUX91Oの対応する入力
912にはS1用のI6のタグがある(PE902はI
7S1の為のものである)。I7はI6に依存するの
で、I6の結果のロケーションは、I7が使用可能にな
るように、MUX910から出力しなければならない。
従って、I6のタグが選択され出力ライン914に出力
される。I6の済みフラグであるDONE[6]もまた
MUX914から出力して、イシュアll8が、いつI
7の入力がレディーであるか分かるようにしなければな
らない。このデータはバス120を経てイシュアl18
に送られる。命令には最大3個までのソースがあるの
で、TAL122は各命令に対して最大3個までの依存
性を監視し、各命令に関して3個のベクトル(合計24
個のベクトル)をイシュアll8に送る。独立した命令
の場合、TAL122はその命令は直ちに開始できるこ
とをイシュアl18に通知する。
Bは、アドレスがレジスタ・ファイル・アドレスである
か、一時バッファ・アドレスであるかを通知するのに使
用される。独立した命令の場合、5個のLSB出力はソ
ース・レジスタ・アドレスを示す。依存性を持つ命令の
場合、第2MSBはアドレスが64ビット・バルブのた
めのものであることを示す。第3から第5MSB出力は
一時バッファ・アドレスを指定するものである。そして
LSB出力はどのバケットがカレント・バケットである
かを示し、このバケットはTAL122中のBKT信号
に等しい。
数のインプリメンテーション依存(すなわち、特殊なケ
ース)を待つ。先ず、本発明の一実施例では、レジスタ
・ファイルのレジスタ番号0は常に0に等しい。斯くし
て、一つの命令がレジスタ0に書き込み、別の命令がレ
ジスタ0から読み出すことがあっても、これらの命令間
には依存性はない。各命令に関し、TAL122は命令
解読論理(ILD、図示せず)から3個の信号を受け取
る。これらの信号はその命令のソースの一つがレジスタ
0であるか否かを通知するものである。それらのソース
のうち一つでも確定されると、TAL122はその命令
のその特定の入力に関連する一切の依存性を無視する。
が、その条件とはバケット0中の命令がバケット1中の
どの命令からも依存されないことが保証されているとい
うことである。BKTl_NODEP_と呼ばれる4ビ
ットの信号がIEU制御論理(図示せず)からRRCl
12に送られ、BKT1_NODEP[X]=1である
場合、RRCl12は命令4、5、6、または7と命令
Xとの間の依存性を一切無視すべきものとして扱う。
当ての一例を図6、図7のフローチャートに示す。条件
付きブロック602に示す如く、TAL122は最初に
I7Slがレジスタ0であるか否かを決定する。I7の
第1ソースオペランドがレジスタ0であるならば、タグ
はゼロに設定され、I7SlのINFOフラグもブロッ
ク604に示される如く1に設定される。I7の第1ソ
ースオペランド(S1)がレジスタ0でない場合、条件
付きブロック606に示すように、TAL122は次に
I7SlがI6S/Dに依存するか否かを決定する。I
7S1がI6S/Dに依存する場合、フローはブロック
610に進む。ここで、ブロック610に示すように、
I7Slのタグは{1,DBLREG[6],0,1,
0,BKT}に等しいように設定され、I7S1のIN
FOフラグはDONE[6]に等しいように設定され
る。条件付きブロック606でテストされた条件のうち
どちらかが満たされない場合、フローは条件付きブロッ
ク612に進む。ここで、TAL122はI7SlがI
5S/Dに依存しているか否かを決定する。依存性があ
る場合、フローはブロック616に進み、ここでTAL
122はI7S1のタグを[1,DBLREG[5],
0,0,1,BTK]に設定し、I7S1のINFOフ
ラグをDONE[5]に設定する。条件付きブロック6
12でテストされた条件が満たされない場合、フローは
ブロック618に進み、ここで、TAL122はI7S
1がI4S/Dに依存しているか否かを決定する。
明らかな如く、I7S1がI4S/D、I3S/D、I
2S/D、I1S/D、およびI0S/Dに依存してい
るか否かに基づいて、同じようなタグの決定が行なわれ
る。これをセクション620、622、624、62
6、および628でそれぞれ示す。そして最後に、命令
7が命令0から独立しているか、あるいは条件付きブロ
ック630でテストされるように、バケット1の全ての
命令が命令0から独立しているならば(すなわち、BK
T1_NODEP[0]=1であるならば)、フローは
ブロック632に進み、ここでTAL122はI7Sl
のタグを{0,I7Sl}に設定し、I7SlのINF
Oフラグを1に設定する。上記の例で留意すべきこと
は、I7S1タグ信号にはレジスタ・ファイル117の
レジスタ・ファイル・ポートMUXesが直接送られる
ことである。17のS1入力がレディーになると、イシ
ュアl18に通知するためにI7S1INFO信号がイ
シュア118に送られる。
図を示す。推奨実施例では、確保する必要のある各リソ
ース(機能ユニット)ごとに、イシュア118はスキャ
ナーブロック1002を持っている。この例では、イシ
ュア118はスキャナーブロックFUl、FU2、FU
3、FU4、……、FUnを持っている。機能ユニット
ヘの要求は既知の方法で解読論理(図示せず)によって
命令情報から発せられる。これらの要求はバス123を
経てスキャナーブロック1002に送られる。各スキャ
ナーブロック1002は命令I0からI7をスキャン
し、そのサイクルでサービスされるように、対応する機
能ユニットの最初の要求を選択する。
数および/またはブール値)の場合、イシュア118は
異なるレジスタ・ファイルに格納されたオペランドを持
つ命令を発行することができる。例えば、ADD命令は
浮動小数レジスタ・ファイルからの第一オペランド、お
よび整数レジスタからの第二オペランドを持っことがで
きる。一般に、異なるレジスタ・ファイルからのオペラ
ンドを持つ命令は高い発行優先順位を与えられる(すな
わち、これらの命令は最初に発行される)。この発行手
法により、プロセッサの実行時間および機能ユニットの
リソースの節約が可能となる。
る更なる実施例では、ALUのスキャンは更に複雑にな
る。実行速度を上げるために、1個のALUスキャナー
ブロックはI0からI7をスキャンし、もう1個のAL
UスキャナーブロックはI7からI0をスキャンする。
このようにして2個のALU要求が選択される。この方
法では、バケット1にあるALU命令の前にバケット1
にあるALU命令が発行されることが可能であり、同時
にスキャニングの効率の向上が計れる。
logic 1004によって選択される。MUX10
04の1組のSELect入力1006はパス120を
経てTAL122から3個の8ビットベクトル(各オペ
ランドに1個)を受け取る。ベクトルは8個の命令のう
ちどれが依存性なしの命令で、発行可能な状態にあるか
を通知する。イシュア118は命令を発行する前にこの
情報を待たなければならない。イシュア118はこれら
のベクトルを監視し、これら3個のベクトルの全てが特
定の命令に対してハイになると、イシュア118はその
命令がレディーであると関知する。必要な機能ユニット
がレディーになると、イシュアはその命令を発行して、
選択信号をレジスタ・ファイル・ポートMUXesに送
り、対応する命令の出力をレジスタ・ファイル117に
送ることができる。
が済んだ後、イシュア118は各レジスタ・ファイルご
とに2個の8ビットベクトルをRRC112に返しMU
XOUTputs1008を通してパス121に送る。
これらのベクトルはこのサイクルでどの命令が発行され
たかを示し、RPMs124用のラインを選択するため
に用いられる。
命令の最大数は使用可能なレジスタ・ファイル読み出し
ポートの数で制約されている。データ依存性に先行する
未完了の命令があると、命令の発行が抑制されることが
ある。更に、必要な機能ユニットが別の命令に割り当て
られていても命令の発行が抑制されることがある。
ペレーション、および相対的条件分岐のような幾つかの
命令は他に依存せずに発行できる。なぜならば、レジス
タ・ファイル読み出しポート以外のリソースを必要とし
ない、あるいは依存性を持つ可能性がないからである。
タ・ファイル・ポートMUX(RPM)セクション12
4である。RPMs124の役割は、イシュア118が
レジスタ・ファイル117からデータを取得して各命令
が使用できるような方法を提供することである。RPM
s124はバス126を経てタグ情報を受け取り、RP
Ms124用の選択ラインはバス121を経てイシュア
118から、またコンピュータのIEU制御論理からも
得られる。選択されたタグは、バス128を用いてレジ
スタ・ファイル117の所定の1組のポート119に送
られる読み出しアドレスで構成されている。
・ファイルの数、および各レジスタ・ファイル上のポー
トの数に依存する。図4にRPMs124の一実施例を
示す。この実施例において、RPMs124は3個のレ
ジスタ・ポート・ファイルMUXes、402,40
4、および406で構成されている。MUX402はT
AL122によって生成されたソース・レジスタ・フィ
ールドS1に対応する命令0−7のタグを入力としい受
け取る。MUX404はTAL122によって生成され
たソース・レジスタ・フィールドS2に対応する命令0
−7のタグを入力として受け取る。MUX406はTA
L122によって生成されたソース/行き先レジスタ・
フィールドS/Dに対応する命令0−7のタグを入力と
して受け取る。MUXes402、404、および40
6の出力はバス128を通してレジスタ・ファイル11
7の読み出しアドレス・ポートに接続される。
て、プロセッサは命令を同時に、しかもプログラムに依
る順序とは別の順序で実行できる。本発明で使用される
IEUは同一承継人の、関連特許出願、米国出願番号0
7/817,810号(代理人整理番号SP015/1
397.0280001)に開示されている。この開示
はここに参照文献として含まれているものとする。
らはあくまでも例であり、本発明を制限するものではな
いことは無論である。従って、本発明の範囲および広が
りは上記の実施例で制限されるものではなく、下記の特
許請求範囲およびそれと同等のものによってのみ定義さ
れるものである。
ック図である。
ロック図である。
図である。
プレクサの代表的ブロック図である。
を示す図である。
ートを示す図である。
ートを示す図である。
ス/行き先オペランドを命令Xの各オペランドと比較す
るブロック図である。
的回路図である。
る。
ロック図である。
…ウィンドウ、108…データ依存性回路、112…レ
ジスタ名称変更回路、116…一時バツファ、117…
レジスタ・ファイル、118…イシュア、122…タグ
割り当て論理、124…レジスタファイル・ポート。
Claims (15)
- 【請求項1】 所定のプログラム順序を有する命令を実
行するためのスーパースカラプロセッサであって、 複数の命令を記憶するための命令バッファと、 複数の一時記憶ロケーションを含むインデックスでアド
レス指定可能な一時バッファであって、前記複数の命令
のそれぞれ1つは前記複数の一時記憶ロケーションの1
つに割り当てられ、前記複数の命令の所定の1つに対応
する出力は前記複数の命令の前記所定の1つに割り当て
られた前記一時記憶ロケーションに記憶されるバッファ
と、 前記命令バッファ内に記憶された依存性命令を探し出す
ためのデータ依存性検査手段であって、前記依存性命令
は前回の命令に依存する入力を有し、前記前回の命令は
所定のプログラム順序で前記依存性命令に先行する前記
命令バッファ内の命令であるデータ依存性検査手段と、 前記データ依存性検査手段から前記依存性命令に対応す
る依存性データを受け取り、前記前回の命令に割り当て
られた前記一時記憶ロケーションと前記入力とを関係づ
けるために前記依存性データを用いる回路とによって構
成されるスーパースカラプロセッサ。 - 【請求項2】 前記前回の命令に割り当てられた前記一
時記憶ロケーションに対応する参照番地を出力すること
によって、前記回路が、前記前回の命令に割り当てられ
た前記一時記憶ロケーションと前記入力とを関係づける
ことを特徴とする請求項1記載のスーパースカラプロセ
ッサ。 - 【請求項3】 前記参照番地がアドレスを含むことを特
徴とする請求項2記載のスーパースカラプロセッサ。 - 【請求項4】 前記参照番地が、前記アドレスが前記一
時記憶ロケーションの1つのアドレスであるかレジスタ
のアドレスであるかを示す1ビット識別子をさらに含む
ことを特徴とする請求項3記載のスーパースカラプロセ
ッサ。 - 【請求項5】 前記回路が、前記前回の命令の完了状態
を示す第1信号をさらに出力することを特徴とする請求
項3記載のスーパースカラプロセッサ。 - 【請求項6】 複数の入力部を有するマルチプレクサで
あって、前記複数の入力部のそれぞれ1つで記憶ロケー
ションのアドレスを受け取り、前記複数の入力部の1つ
で受け取った前記アドレスの1つは前記回路によって出
力された前記参照番地に含まれる前記アドレスであるマ
ルチプレクサと、 前記前回の命令の完了状態を示す前記信号を入力として
受け取り、前記マルチプレクサに選択信号を出力する信
号出力部とによってさらに構成される請求項5記載のス
ーパースカラプロセッサ。 - 【請求項7】 前記回路が優先エンコーダとマルチプレ
クサを含み、前記エンコーダは前記依存データを受け取
り、前記エンコーダの出力は前記マルチプレクサのため
の選択信号として用いられることを特徴とする請求項5
記載のスーパースカラプロセッサ。 - 【請求項8】 前記マルチプレクサが入力として複数の
参照番地を受け取り、前記エンコーダの前記出力に対応
する参照番地を出力し、また前記マルチプレクサが出力
した前記参照番地が前記前回の命令に割り当てられた前
記一時記憶ロケーションのアドレスを示すことを特徴と
する請求項7記載のスーパースカラプロセッサ。 - 【請求項9】 前記命令バッファが多くてX個(Xは正
の整数)の命令を記憶することができ、前記一時バッフ
ァが少なくともX個の一時記憶ロケーションを含むこと
を特徴とする請求項1記載のスーパースカラプロセッ
サ。 - 【請求項10】 前記複数の命令の1つが、前記命令バ
ッファ内の前記複数の命令の前記1つの位置に基づいて
前記複数の記憶ロケーションのただ1つに割り当てられ
ることを特徴とする請求項1記載のスーパースカラプロ
セッサ。 - 【請求項11】 前記複数の命令の1つのソースレジス
タと、所定のプログラム順序で前記複数の命令の前記1
つに先行する前記命令バッファ内の各命令の宛先レジス
タとを比較することによって、前記データ依存性検査手
段が前記命令バッファ内に記憶された依存性命令を探し
出すことを特徴とする請求項1記載のスーパースカラプ
ロセッサ。 - 【請求項12】 前記データ依存性検査手段が複数のデ
ータ依存回路を含み、各データ依存回路は前記複数の命
令のいずれか所定の1つが前回の命令に依存するかどう
かを決定するために少なくとも1回の比較を行うことを
特徴とする請求項11記載のスーパースカラプロセッ
サ。 - 【請求項13】 前記データ依存回路の1つが、前記命
令バッファ内に記憶された第1命令のソースレジスタに
対応している第1入力と前記命令バッファ内に記憶され
た第2命令の宛先レジスタに対応している第2入力とを
受け取り依存信号を出力する少なくとも1つの比較回路
であり、前記第2命令は所定のプログラム順序で前記第
1命令に先行し、前記依存信号は前記第1命令が前記第
2命令に依存するかどうかを示すことを特徴とする請求
項12記載のスーパースカラプロセッサ。 - 【請求項14】 前記比較回路が、複数の排他的NOR
ゲート(XNOR)と複数の入力部を有するANDゲー
トによって構成され、各XNORゲートの出力部は前記
ANDゲートの入力部に接続されており、各XNORは
第1XNOR入力部と第2XNOR入力部を有し、各第
1XNOR入力部は前記第1入力部の先端に接続されて
おり、各第2XNOR入力部は前記第2入力部の先端に
接続されていることを特徴とする請求項13記載のスー
パースカラプロセッサ。 - 【請求項15】 所定のプログラム順序を有する命令を
実行するためのスーパースカラプロセッサであって、 複数の命令を記憶する命令バッファと、 複数のレジスタとインデックスでアドレス指定可能な複
数の一時記憶ロケーションとを有するレジスタファイル
であって、前記複数の命令のそれぞれ1つは前記複数の
一時記憶ロケーションの1つと前記複数のレジスタの1
つに割り当てられ、前記複数の命令の所定の1つに対応
する出力は前記複数の命令の前記所定の1つに割り当て
られた前記一時記憶ロケーションに記憶されるレジスタ
ファイルと、 前記命令バッファ内に記憶された依存性命令を捜し出す
ためのデータ依存性検査手段であって、依存性命令は前
記命令バッファ内の特定の前回の命令が実行されるまで
実行されるべきではない命令であり、前記データ依存性
検査手段は前記命令バッファ内に記憶された各命令に対
応する依存性情報を出力するデータ依存性検査手段と、 複数の回路であって、前記複数の回路のそれぞれは前記
命令バッファ内の命令に対応し前記データ依存性検査手
段から依存性データを受け取り、特定の回路で受け取っ
た前記依存性データは前記特定の回路が対応する前記命
令に対応し、また所定の依存性命令に対応する回路は前
記所定の依存性命令の前に実行されなければならない特
定の前回の命令に割り当てられた前記一時記憶ロケーシ
ョンを表す参照番地を出力する複数の回路とによって構
成されるスーパースカラプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US86071992A | 1992-03-31 | 1992-03-31 | |
US860,719 | 1992-03-31 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP51729393A Division JP3730252B2 (ja) | 1992-03-31 | 1993-03-26 | レジスタ名称変更方法及び名称変更システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000148488A true JP2000148488A (ja) | 2000-05-30 |
JP3571266B2 JP3571266B2 (ja) | 2004-09-29 |
Family
ID=25333867
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP51729393A Expired - Lifetime JP3730252B2 (ja) | 1992-03-31 | 1993-03-26 | レジスタ名称変更方法及び名称変更システム |
JP2000008145A Expired - Lifetime JP3571264B2 (ja) | 1992-03-31 | 2000-01-17 | レジスタ名称変更システム及び名称変更方法 |
JP2000008148A Expired - Lifetime JP3571266B2 (ja) | 1992-03-31 | 2000-01-17 | スーパースカラプロセッサ |
JP2000008144A Expired - Lifetime JP3571263B2 (ja) | 1992-03-31 | 2000-01-17 | レジスタ名称変更システム |
JP2000008147A Withdrawn JP2000148487A (ja) | 1992-03-31 | 2000-01-17 | 命令実行方法 |
JP2000008149A Expired - Lifetime JP3571267B2 (ja) | 1992-03-31 | 2000-01-17 | コンピュータシステム |
JP2000008146A Expired - Lifetime JP3571265B2 (ja) | 1992-03-31 | 2000-01-17 | コンピュータシステム |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP51729393A Expired - Lifetime JP3730252B2 (ja) | 1992-03-31 | 1993-03-26 | レジスタ名称変更方法及び名称変更システム |
JP2000008145A Expired - Lifetime JP3571264B2 (ja) | 1992-03-31 | 2000-01-17 | レジスタ名称変更システム及び名称変更方法 |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000008144A Expired - Lifetime JP3571263B2 (ja) | 1992-03-31 | 2000-01-17 | レジスタ名称変更システム |
JP2000008147A Withdrawn JP2000148487A (ja) | 1992-03-31 | 2000-01-17 | 命令実行方法 |
JP2000008149A Expired - Lifetime JP3571267B2 (ja) | 1992-03-31 | 2000-01-17 | コンピュータシステム |
JP2000008146A Expired - Lifetime JP3571265B2 (ja) | 1992-03-31 | 2000-01-17 | コンピュータシステム |
Country Status (6)
Country | Link |
---|---|
US (7) | US5497499A (ja) |
EP (1) | EP0636256B1 (ja) |
JP (7) | JP3730252B2 (ja) |
KR (3) | KR950701101A (ja) |
DE (1) | DE69311330T2 (ja) |
WO (1) | WO1993020505A2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100392585C (zh) * | 2003-07-09 | 2008-06-04 | 威盛电子股份有限公司 | 动态指令相依性监视及控制的方法与系统 |
EP2639700A1 (en) | 2012-03-14 | 2013-09-18 | Fujitsu Limited | Consolidation support program, consolidation support method, and consolidation support apparatus |
KR101497807B1 (ko) * | 2012-06-14 | 2015-03-02 | 애플 인크. | 제로 사이클 로드 |
US11068271B2 (en) | 2014-07-28 | 2021-07-20 | Apple Inc. | Zero cycle move using free list counts |
US11416254B2 (en) | 2019-12-05 | 2022-08-16 | Apple Inc. | Zero cycle load bypass in a decode group |
Families Citing this family (136)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5539911A (en) * | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
DE4237417C2 (de) * | 1992-03-25 | 1997-01-30 | Hewlett Packard Co | Datenverarbeitungssystem |
US5452401A (en) * | 1992-03-31 | 1995-09-19 | Seiko Epson Corporation | Selective power-down for high performance CPU/system |
US5371684A (en) * | 1992-03-31 | 1994-12-06 | Seiko Epson Corporation | Semiconductor floor plan for a register renaming circuit |
DE69311330T2 (de) * | 1992-03-31 | 1997-09-25 | Seiko Epson Corp., Tokio/Tokyo | Befehlsablauffolgeplanung von einem risc-superskalarprozessor |
EP0638183B1 (en) * | 1992-05-01 | 1997-03-05 | Seiko Epson Corporation | A system and method for retiring instructions in a superscalar microprocessor |
US5628021A (en) | 1992-12-31 | 1997-05-06 | Seiko Epson Corporation | System and method for assigning tags to control instruction processing in a superscalar processor |
WO1994016384A1 (en) | 1992-12-31 | 1994-07-21 | Seiko Epson Corporation | System and method for register renaming |
US5465373A (en) * | 1993-01-08 | 1995-11-07 | International Business Machines Corporation | Method and system for single cycle dispatch of multiple instructions in a superscalar processor system |
JP3417984B2 (ja) * | 1993-09-10 | 2003-06-16 | 株式会社日立製作所 | キャッシュ競合削減コンパイル方法 |
JPH0793152A (ja) * | 1993-09-20 | 1995-04-07 | Fujitsu Ltd | マイクロプロセッサ制御装置 |
US5481743A (en) * | 1993-09-30 | 1996-01-02 | Apple Computer, Inc. | Minimal instruction set computer architecture and multiple instruction issue method |
US6073231A (en) * | 1993-10-18 | 2000-06-06 | Via-Cyrix, Inc. | Pipelined processor with microcontrol of register translation hardware |
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 |
DE69408769T2 (de) * | 1993-10-18 | 1998-07-09 | Cyrix Corp | Fliessbandsteuerung und Registerübersetzung in Mikroprozessor |
US5630149A (en) * | 1993-10-18 | 1997-05-13 | Cyrix Corporation | Pipelined processor with register renaming hardware to accommodate multiple size registers |
JP3299611B2 (ja) * | 1993-10-20 | 2002-07-08 | 松下電器産業株式会社 | 資源割付装置 |
US5918046A (en) * | 1994-01-03 | 1999-06-29 | Intel Corporation | Method and apparatus for a branch instruction pointer table |
JP3311462B2 (ja) * | 1994-02-23 | 2002-08-05 | 富士通株式会社 | コンパイル処理装置 |
US5689693A (en) * | 1994-04-26 | 1997-11-18 | Advanced Micro Devices, Inc. | Range finding circuit for selecting a consecutive sequence of reorder buffer entries using circular carry lookahead |
US5559975A (en) | 1994-06-01 | 1996-09-24 | Advanced Micro Devices, Inc. | Program counter update mechanism |
US5625789A (en) * | 1994-10-24 | 1997-04-29 | International Business Machines Corporation | Apparatus for source operand dependendency analyses register renaming and rapid pipeline recovery in a microprocessor that issues and executes multiple instructions out-of-order in a single cycle |
US5675758A (en) | 1994-11-15 | 1997-10-07 | Advanced Micro Devices, Inc. | Processor having primary integer execution unit and supplemental integer execution unit for performing out-of-order add and move operations |
TW295646B (ja) * | 1995-01-25 | 1997-01-11 | Ibm | |
US5901302A (en) * | 1995-01-25 | 1999-05-04 | Advanced Micro Devices, Inc. | Superscalar microprocessor having symmetrical, fixed issue positions each configured to execute a particular subset of instructions |
US6237082B1 (en) | 1995-01-25 | 2001-05-22 | Advanced Micro Devices, Inc. | Reorder buffer configured to allocate storage for instruction results corresponding to predefined maximum number of concurrently receivable instructions independent of a number of instructions received |
US5903741A (en) * | 1995-01-25 | 1999-05-11 | Advanced Micro Devices, Inc. | Method of allocating a fixed reorder buffer storage line for execution results regardless of a number of concurrently dispatched instructions |
US5878244A (en) * | 1995-01-25 | 1999-03-02 | Advanced Micro Devices, Inc. | Reorder buffer configured to allocate storage capable of storing results corresponding to a maximum number of concurrently receivable instructions regardless of a number of instructions received |
US5644742A (en) * | 1995-02-14 | 1997-07-01 | Hal Computer Systems, Inc. | Processor structure and method for a time-out checkpoint |
WO1996025705A1 (en) * | 1995-02-14 | 1996-08-22 | Fujitsu Limited | Structure and method for high-performance speculative execution processor providing special features |
US6112019A (en) * | 1995-06-12 | 2000-08-29 | Georgia Tech Research Corp. | Distributed instruction queue |
US5664120A (en) * | 1995-08-25 | 1997-09-02 | International Business Machines Corporation | Method for executing instructions and execution unit instruction reservation table within an in-order completion processor |
US5799165A (en) * | 1996-01-26 | 1998-08-25 | Advanced Micro Devices, Inc. | Out-of-order processing that removes an issued operation from an execution pipeline upon determining that the operation would cause a lengthy pipeline delay |
US5765035A (en) * | 1995-11-20 | 1998-06-09 | Advanced Micro Devices, Inc. | Recorder buffer capable of detecting dependencies between accesses to a pair of caches |
US5787026A (en) * | 1995-12-20 | 1998-07-28 | Intel Corporation | Method and apparatus for providing memory access in a processor pipeline |
US5768556A (en) * | 1995-12-22 | 1998-06-16 | International Business Machines Corporation | Method and apparatus for identifying dependencies within a register |
US5826089A (en) * | 1996-01-04 | 1998-10-20 | Advanced Micro Devices, Inc. | Instruction translation unit configured to translate from a first instruction set to a second instruction set |
US5787266A (en) * | 1996-02-20 | 1998-07-28 | Advanced Micro Devices, Inc. | Apparatus and method for accessing special registers without serialization |
US6108769A (en) | 1996-05-17 | 2000-08-22 | Advanced Micro Devices, Inc. | Dependency table for reducing dependency checking hardware |
US5796975A (en) * | 1996-05-24 | 1998-08-18 | Hewlett-Packard Company | Operand dependency tracking system and method for a processor that executes instructions out of order |
USRE38599E1 (en) * | 1996-06-11 | 2004-09-21 | Sun Microsystems, Inc. | Pipelined instruction dispatch unit in a superscalar processor |
US5958042A (en) | 1996-06-11 | 1999-09-28 | Sun Microsystems, Inc. | Grouping logic circuit in a pipelined superscalar processor |
US5915110A (en) * | 1996-07-26 | 1999-06-22 | Advanced Micro Devices, Inc. | Branch misprediction recovery in a reorder buffer having a future file |
US5872951A (en) * | 1996-07-26 | 1999-02-16 | Advanced Micro Design, Inc. | Reorder buffer having a future file for storing speculative instruction execution results |
US5946468A (en) * | 1996-07-26 | 1999-08-31 | Advanced Micro Devices, Inc. | Reorder buffer having an improved future file for storing speculative instruction execution results |
US5826070A (en) * | 1996-08-30 | 1998-10-20 | International Business Machines Corporation | Apparatus and method for maintaining status flags and condition codes using a renaming technique in an out of order floating point execution unit |
US5983342A (en) * | 1996-09-12 | 1999-11-09 | Advanced Micro Devices, Inc. | Superscalar microprocessor employing a future file for storing results into multiportion registers |
US5926832A (en) * | 1996-09-26 | 1999-07-20 | Transmeta Corporation | Method and apparatus for aliasing memory data in an advanced microprocessor |
US5802386A (en) * | 1996-11-19 | 1998-09-01 | International Business Machines Corporation | Latency-based scheduling of instructions in a superscalar processor |
US5978900A (en) * | 1996-12-30 | 1999-11-02 | Intel Corporation | Renaming numeric and segment registers using common general register pool |
US5838941A (en) * | 1996-12-30 | 1998-11-17 | Intel Corporation | Out-of-order superscalar microprocessor with a renaming device that maps instructions from memory to registers |
WO1998033116A2 (en) * | 1997-01-29 | 1998-07-30 | Advanced Micro Devices, Inc. | A line-oriented reorder buffer for a superscalar microprocessor |
US5983321A (en) * | 1997-03-12 | 1999-11-09 | Advanced Micro Devices, Inc. | Cache holding register for receiving instruction packets and for providing the instruction packets to a predecode unit and instruction cache |
US5974538A (en) * | 1997-02-21 | 1999-10-26 | Wilmot, Ii; Richard Byron | Method and apparatus for annotating operands in a computer system with source instruction identifiers |
US5996063A (en) * | 1997-03-03 | 1999-11-30 | International Business Machines Corporation | Management of both renamed and architected registers in a superscalar computer system |
JP2917969B2 (ja) * | 1997-06-06 | 1999-07-12 | 日本電気株式会社 | 論理等価性検証方法および論理等価性検証装置 |
US5784588A (en) * | 1997-06-20 | 1998-07-21 | Sun Microsystems, Inc. | Dependency checking apparatus employing a scoreboard for a pair of register sets having different precisions |
US5790827A (en) * | 1997-06-20 | 1998-08-04 | Sun Microsystems, Inc. | Method for dependency checking using a scoreboard for a pair of register sets having different precisions |
US6263416B1 (en) * | 1997-06-27 | 2001-07-17 | Sun Microsystems, Inc. | Method for reducing number of register file ports in a wide instruction issue processor |
EP1012707B1 (en) * | 1997-08-06 | 2006-07-26 | Advanced Micro Devices, Inc. | A dependency table for reducing dependency checking hardware |
US6112293A (en) * | 1997-11-17 | 2000-08-29 | Advanced Micro Devices, Inc. | Processor configured to generate lookahead results from operand collapse unit and for inhibiting receipt/execution of the first instruction based on the lookahead result |
US6061785A (en) * | 1998-02-17 | 2000-05-09 | International Business Machines Corporation | Data processing system having an apparatus for out-of-order register operations and method therefor |
US6336160B1 (en) | 1998-06-19 | 2002-01-01 | International Business Machines Corporation | Method and system for dividing a computer processor register into sectors and storing frequently used values therein |
US6393552B1 (en) | 1998-06-19 | 2002-05-21 | International Business Machines Corporation | Method and system for dividing a computer processor register into sectors |
US6163839A (en) * | 1998-09-30 | 2000-12-19 | Intel Corporation | Non-stalling circular counterflow pipeline processor with reorder buffer |
EP1004959B1 (en) * | 1998-10-06 | 2018-08-08 | Texas Instruments Incorporated | Processor with pipeline protection |
US6550001B1 (en) * | 1998-10-30 | 2003-04-15 | Intel Corporation | Method and implementation of statistical detection of read after write and write after write hazards |
US6311267B1 (en) | 1998-11-20 | 2001-10-30 | International Business Machines Corporation | Just-in-time register renaming technique |
JP2000163265A (ja) | 1998-11-30 | 2000-06-16 | Nec Corp | 命令発行回路 |
JP2001092657A (ja) * | 1999-09-22 | 2001-04-06 | Toshiba Corp | 中央演算装置、コンパイル方法、及びコンパイルプログラムを記録した記録媒体 |
US6643762B1 (en) * | 2000-01-24 | 2003-11-04 | Hewlett-Packard Development Company, L.P. | Processing system and method utilizing a scoreboard to detect data hazards between instructions of computer programs |
US6766440B1 (en) * | 2000-02-18 | 2004-07-20 | Texas Instruments Incorporated | Microprocessor with conditional cross path stall to minimize CPU cycle time length |
US6883165B1 (en) | 2000-09-28 | 2005-04-19 | International Business Machines Corporation | Apparatus and method for avoiding deadlocks in a multithreaded environment |
US6912647B1 (en) * | 2000-09-28 | 2005-06-28 | International Business Machines Corportion | Apparatus and method for creating instruction bundles in an explicitly parallel architecture |
US6799262B1 (en) * | 2000-09-28 | 2004-09-28 | International Business Machines Corporation | Apparatus and method for creating instruction groups for explicity parallel architectures |
US6886094B1 (en) | 2000-09-28 | 2005-04-26 | International Business Machines Corporation | Apparatus and method for detecting and handling exceptions |
US6779106B1 (en) | 2000-09-28 | 2004-08-17 | International Business Machines Corporation | Apparatus and method for an enhanced integer divide in an IA64 architecture |
US6662273B1 (en) * | 2000-09-29 | 2003-12-09 | Intel Corporation | Least critical used replacement with critical cache |
US6760816B1 (en) | 2000-09-29 | 2004-07-06 | Intel Corporation | Critical loads guided data prefetching |
US6782469B1 (en) | 2000-09-29 | 2004-08-24 | Intel Corporation | Runtime critical load/data ordering |
JP3729064B2 (ja) | 2000-11-29 | 2005-12-21 | 日本電気株式会社 | データ依存関係検出装置 |
EP1217514A3 (en) * | 2000-12-23 | 2003-08-13 | International Business Machines Corporation | Method and apparatus for bypassing pipeline stages |
US7844799B2 (en) * | 2000-12-23 | 2010-11-30 | International Business Machines Corporation | Method and system for pipeline reduction |
US6862676B1 (en) * | 2001-01-16 | 2005-03-01 | Sun Microsystems, Inc. | Superscalar processor having content addressable memory structures for determining dependencies |
US7269714B2 (en) | 2001-09-24 | 2007-09-11 | Broadcom Corporation | Inhibiting of a co-issuing instruction in a processor having different pipeline lengths |
US6976152B2 (en) * | 2001-09-24 | 2005-12-13 | Broadcom Corporation | Comparing operands of instructions against a replay scoreboard to detect an instruction replay and copying a replay scoreboard to an issue scoreboard |
US7203817B2 (en) * | 2001-09-24 | 2007-04-10 | Broadcom Corporation | Power consumption reduction in a pipeline by stalling instruction issue on a load miss |
US7308563B2 (en) * | 2001-09-28 | 2007-12-11 | Intel Corporation | Dual-target block register allocation |
JP3577052B2 (ja) * | 2002-03-19 | 2004-10-13 | 株式会社東芝 | 命令発行装置及び命令発行方法 |
US20030217249A1 (en) * | 2002-05-20 | 2003-11-20 | The Regents Of The University Of Michigan | Method and apparatus for virtual register renaming to implement an out-of-order processor |
EP1462934A1 (en) * | 2003-03-29 | 2004-09-29 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for forwarding of results |
JP2004318502A (ja) * | 2003-04-16 | 2004-11-11 | Matsushita Electric Ind Co Ltd | 電力制御機能を備えたマイクロプロセッサ及び命令変換装置 |
US7437532B1 (en) | 2003-05-07 | 2008-10-14 | Marvell International Ltd. | Memory mapped register file |
US7096345B1 (en) | 2003-09-26 | 2006-08-22 | Marvell International Ltd. | Data processing system with bypass reorder buffer having non-bypassable locations and combined load/store arithmetic logic unit and processing method thereof |
US7711932B2 (en) * | 2003-12-02 | 2010-05-04 | Intel Corporation | Scalable rename map table recovery |
US20060095732A1 (en) * | 2004-08-30 | 2006-05-04 | Tran Thang M | Processes, circuits, devices, and systems for scoreboard and other processor improvements |
US7487337B2 (en) * | 2004-09-30 | 2009-02-03 | Intel Corporation | Back-end renaming in a continual flow processor pipeline |
KR100725393B1 (ko) * | 2005-05-19 | 2007-06-07 | 삼성전자주식회사 | 자바 가상 머신에서 바이트 코드의 수행 시간을 줄이는시스템 및 방법 |
JP4243271B2 (ja) * | 2005-09-30 | 2009-03-25 | 富士通マイクロエレクトロニクス株式会社 | データ処理装置およびデータ処理方法 |
US7380104B2 (en) * | 2006-04-25 | 2008-05-27 | International Business Machines Corporation | Method and apparatus for back to back issue of dependent instructions in an out of order issue queue |
US7725687B2 (en) * | 2006-06-27 | 2010-05-25 | Texas Instruments Incorporated | Register file bypass with optional results storage and separate predication register file in a VLIW processor |
US8291431B2 (en) | 2006-08-29 | 2012-10-16 | Qualcomm Incorporated | Dependent instruction thread scheduling |
US20080120477A1 (en) * | 2006-10-05 | 2008-05-22 | Holt John M | Contention detection with modified message format |
US7962697B2 (en) * | 2006-10-05 | 2011-06-14 | Waratek Pty Limited | Contention detection |
US20080126503A1 (en) * | 2006-10-05 | 2008-05-29 | Holt John M | Contention resolution with echo cancellation |
US20080133690A1 (en) * | 2006-10-05 | 2008-06-05 | Holt John M | Contention detection and resolution |
CN101548268B (zh) * | 2006-10-05 | 2014-05-21 | 瓦拉泰克有限公司 | 更新存储器位置的内容的方法和系统 |
US20080140975A1 (en) * | 2006-10-05 | 2008-06-12 | Holt John M | Contention detection with data consolidation |
US20080127214A1 (en) * | 2006-10-05 | 2008-05-29 | Holt John M | Contention detection with counter rollover |
US20080250221A1 (en) * | 2006-10-09 | 2008-10-09 | Holt John M | Contention detection with data consolidation |
CN100451953C (zh) * | 2007-03-27 | 2009-01-14 | 威盛电子股份有限公司 | 程序指令调整方法 |
US20110320787A1 (en) * | 2010-06-28 | 2011-12-29 | Qualcomm Incorporated | Indirect Branch Hint |
US8683261B2 (en) | 2011-07-20 | 2014-03-25 | International Business Machines Corporation | Out of order millicode control operation |
US9411584B2 (en) * | 2012-12-29 | 2016-08-09 | Intel Corporation | Methods, apparatus, instructions, and logic to provide vector address conflict detection functionality |
US9766866B2 (en) * | 2013-04-22 | 2017-09-19 | Nvidia Corporation | Techniques for determining instruction dependencies |
US9772827B2 (en) * | 2013-04-22 | 2017-09-26 | Nvidia Corporation | Techniques for determining instruction dependencies |
US9792252B2 (en) | 2013-05-31 | 2017-10-17 | Microsoft Technology Licensing, Llc | Incorporating a spatial array into one or more programmable processor cores |
GB2514618B (en) * | 2013-05-31 | 2020-11-11 | Advanced Risc Mach Ltd | Data processing systems |
US9330432B2 (en) * | 2013-08-19 | 2016-05-03 | Apple Inc. | Queuing system for register file access |
US9612840B2 (en) * | 2014-03-28 | 2017-04-04 | Intel Corporation | Method and apparatus for implementing a dynamic out-of-order processor pipeline |
US10409606B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Verifying branch targets |
US9952867B2 (en) | 2015-06-26 | 2018-04-24 | Microsoft Technology Licensing, Llc | Mapping instruction blocks based on block size |
US9720693B2 (en) | 2015-06-26 | 2017-08-01 | Microsoft Technology Licensing, Llc | Bulk allocation of instruction blocks to a processor instruction window |
US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
US10169044B2 (en) | 2015-06-26 | 2019-01-01 | Microsoft Technology Licensing, Llc | Processing an encoding format field to interpret header information regarding a group of instructions |
US10409599B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Decoding information about a group of instructions including a size of the group of instructions |
US10191747B2 (en) | 2015-06-26 | 2019-01-29 | Microsoft Technology Licensing, Llc | Locking operand values for groups of instructions executed atomically |
US10175988B2 (en) | 2015-06-26 | 2019-01-08 | Microsoft Technology Licensing, Llc | Explicit instruction scheduler state information for a processor |
US9946548B2 (en) | 2015-06-26 | 2018-04-17 | Microsoft Technology Licensing, Llc | Age-based management of instruction blocks in a processor instruction window |
GB2563582B (en) | 2017-06-16 | 2020-01-01 | Imagination Tech Ltd | Methods and systems for inter-pipeline data hazard avoidance |
US10540260B2 (en) * | 2018-02-23 | 2020-01-21 | Intel Corporation | Dynamic instruction latency management in SIMD machines |
US11036515B1 (en) | 2019-06-20 | 2021-06-15 | Marvell Asia Pte, Ltd. | System and method for instruction unwinding in an out-of-order processor |
US10996957B1 (en) | 2019-06-20 | 2021-05-04 | Marvell Asia Pte, Ltd. | System and method for instruction mapping in an out-of-order processor |
US11200062B2 (en) | 2019-08-26 | 2021-12-14 | Apple Inc. | History file for previous register mapping storage and last reference indication |
CN115269016A (zh) * | 2022-09-27 | 2022-11-01 | 之江实验室 | 一种用于图计算的指令执行方法及装置 |
Family Cites Families (228)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3346851A (en) | 1964-07-08 | 1967-10-10 | Control Data Corp | Simultaneous multiprocessing computer system |
US3718912A (en) * | 1970-12-22 | 1973-02-27 | Ibm | Instruction execution unit |
US3789365A (en) * | 1971-06-03 | 1974-01-29 | Bunker Ramo | Processor interrupt system |
US3718851A (en) * | 1971-08-16 | 1973-02-27 | Gen Electric | Means responsive to an overvoltage condition for generating a frequency increasing control signal |
US3771138A (en) | 1971-08-31 | 1973-11-06 | Ibm | Apparatus and method for serializing instructions from two independent instruction streams |
US3913074A (en) | 1973-12-18 | 1975-10-14 | Honeywell Inf Systems | Search processing apparatus |
US4034349A (en) | 1976-01-29 | 1977-07-05 | Sperry Rand Corporation | Apparatus for processing interrupts in microprocessing systems |
US4128880A (en) | 1976-06-30 | 1978-12-05 | Cray Research, Inc. | Computer vector register processing |
US4212076A (en) | 1976-09-24 | 1980-07-08 | Giddings & Lewis, Inc. | Digital computer structure providing arithmetic and boolean logic operations, the latter controlling the former |
US4315314A (en) * | 1977-12-30 | 1982-02-09 | Rca Corporation | Priority vectored interrupt having means to supply branch address directly |
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
US4228495A (en) | 1978-12-19 | 1980-10-14 | Allen-Bradley Company | Multiprocessor numerical control system |
US4315308A (en) * | 1978-12-21 | 1982-02-09 | Intel Corporation | Interface between a microprocessor chip and peripheral subsystems |
US4296470A (en) | 1979-06-21 | 1981-10-20 | International Business Machines Corp. | Link register storage and restore system for use in an instruction pre-fetch micro-processor interrupt system |
JPS5616248A (en) | 1979-07-17 | 1981-02-17 | Matsushita Electric Ind Co Ltd | Processing system for interruption |
JPS6028015B2 (ja) | 1980-08-28 | 1985-07-02 | 日本電気株式会社 | 情報処理装置 |
US4434461A (en) * | 1980-09-15 | 1984-02-28 | Motorola, Inc. | Microprocessor with duplicate registers for processing interrupts |
JPS5757345A (en) | 1980-09-24 | 1982-04-06 | Toshiba Corp | Data controller |
US4574349A (en) * | 1981-03-30 | 1986-03-04 | International Business Machines Corp. | Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction |
US4814979A (en) * | 1981-04-01 | 1989-03-21 | Teradata Corporation | Network to transmit prioritized subtask pockets to dedicated processors |
JPS57204125A (en) | 1981-06-10 | 1982-12-14 | Hitachi Ltd | Electron-ray drawing device |
US4482950A (en) | 1981-09-24 | 1984-11-13 | Dshkhunian Valery | Single-chip microcomputer |
US4498134A (en) * | 1982-01-26 | 1985-02-05 | Hughes Aircraft Company | Segregator functional plane for use in a modular array processor |
JPS58151655A (ja) | 1982-03-03 | 1983-09-08 | Fujitsu Ltd | 情報処理装置 |
JPS5932045A (ja) | 1982-08-16 | 1984-02-21 | Hitachi Ltd | 情報処理装置 |
US4500963A (en) * | 1982-11-29 | 1985-02-19 | The United States Of America As Represented By The Secretary Of The Army | Automatic layout program for hybrid microcircuits (HYPAR) |
US4597054A (en) | 1982-12-02 | 1986-06-24 | Ncr Corporation | Arbiter circuit and method |
US4594655A (en) | 1983-03-14 | 1986-06-10 | International Business Machines Corporation | (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions |
US4807115A (en) | 1983-10-07 | 1989-02-21 | Cornell Research Foundation, Inc. | Instruction issuing mechanism for processors with multiple functional units |
GB8329509D0 (en) | 1983-11-04 | 1983-12-07 | Inmos Ltd | Computer |
JPS60120439A (ja) * | 1983-12-05 | 1985-06-27 | Nec Corp | 演算処理装置 |
US4561051A (en) | 1984-02-10 | 1985-12-24 | Prime Computer, Inc. | Memory access method and apparatus in multiple processor systems |
JPS60225943A (ja) | 1984-04-25 | 1985-11-11 | Hitachi Ltd | 例外割込み処理方式 |
US4648045A (en) * | 1984-05-23 | 1987-03-03 | The Board Of Trustees Of The Leland Standford Jr. University | High speed memory and processor system for raster display |
JPS6140650A (ja) | 1984-08-02 | 1986-02-26 | Nec Corp | マイクロコンピユ−タ |
US4991081A (en) * | 1984-10-31 | 1991-02-05 | Texas Instruments Incorporated | Cache memory addressable by both physical and virtual addresses |
US4775927A (en) | 1984-10-31 | 1988-10-04 | International Business Machines Corporation | Processor including fetch operation for branch instruction with control tag |
JPH0652784B2 (ja) | 1984-12-07 | 1994-07-06 | 富士通株式会社 | ゲートアレイ集積回路装置及びその製造方法 |
US4829467A (en) | 1984-12-21 | 1989-05-09 | Canon Kabushiki Kaisha | Memory controller including a priority order determination circuit |
US5255384A (en) | 1985-02-22 | 1993-10-19 | Intergraph Corporation | Memory address translation system having modifiable and non-modifiable translation mechanisms |
US4714994A (en) | 1985-04-30 | 1987-12-22 | International Business Machines Corp. | Instruction prefetch buffer control |
JPH0762823B2 (ja) | 1985-05-22 | 1995-07-05 | 株式会社日立製作所 | デ−タ処理装置 |
US4613941A (en) | 1985-07-02 | 1986-09-23 | The United States Of America As Represented By The Secretary Of The Army | Routing method in computer aided customization of a two level automated universal array |
US4945479A (en) | 1985-07-31 | 1990-07-31 | Unisys Corporation | Tightly coupled scientific processing system |
US4777588A (en) | 1985-08-30 | 1988-10-11 | Advanced Micro Devices, Inc. | General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance |
US4719569A (en) * | 1985-10-11 | 1988-01-12 | Sun Microsystems, Inc. | Arbitrator for allocating access to data processing resources |
US4722049A (en) | 1985-10-11 | 1988-01-26 | Unisys Corporation | Apparatus for out-of-order program execution |
JPS62152043A (ja) | 1985-12-26 | 1987-07-07 | Nec Corp | 命令コ−ドアクセス制御方式 |
DE3751503T2 (de) | 1986-03-26 | 1996-05-09 | Hitachi Ltd | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen. |
JP2545789B2 (ja) | 1986-04-14 | 1996-10-23 | 株式会社日立製作所 | 情報処理装置 |
US4903196A (en) * | 1986-05-02 | 1990-02-20 | International Business Machines Corporation | Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor |
US4811208A (en) * | 1986-05-16 | 1989-03-07 | Intel Corporation | Stack frame cache on a microprocessor chip |
JP2684362B2 (ja) | 1986-06-18 | 1997-12-03 | 株式会社日立製作所 | 可変長データの記憶方式 |
US4814978A (en) * | 1986-07-15 | 1989-03-21 | Dataflow Computer Corporation | Dataflow processing element, multiprocessor, and processes |
JPS6324428A (ja) * | 1986-07-17 | 1988-02-01 | Mitsubishi Electric Corp | キヤツシユメモリ |
US4766566A (en) | 1986-08-18 | 1988-08-23 | International Business Machines Corp. | Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing |
JPS6393041A (ja) | 1986-10-07 | 1988-04-23 | Mitsubishi Electric Corp | 計算機 |
JPH0793358B2 (ja) | 1986-11-10 | 1995-10-09 | 日本電気株式会社 | ブロック配置処理方式 |
US4841453A (en) | 1986-11-10 | 1989-06-20 | Ibm Corporation | Multidirectional scan and print capability |
JPS63131230A (ja) * | 1986-11-21 | 1988-06-03 | Hitachi Ltd | 情報処理装置 |
JPH0810430B2 (ja) | 1986-11-28 | 1996-01-31 | 株式会社日立製作所 | 情報処理装置 |
US5283903A (en) * | 1986-12-25 | 1994-02-01 | Nec Corporation | Priority selector |
US5226170A (en) | 1987-02-24 | 1993-07-06 | Digital Equipment Corporation | Interface between processor and special instruction processor in digital data processing system |
US5179689A (en) * | 1987-03-13 | 1993-01-12 | Texas Instruments Incorporated | Dataprocessing device with instruction cache |
US4833599A (en) | 1987-04-20 | 1989-05-23 | Multiflow Computer, Inc. | Hierarchical priority branch handling for parallel execution in a parallel processor |
US4858116A (en) | 1987-05-01 | 1989-08-15 | Digital Equipment Corporation | Method and apparatus for managing multiple lock indicators in a multiprocessor computer system |
US4811296A (en) | 1987-05-15 | 1989-03-07 | Analog Devices, Inc. | Multi-port register file with flow-through of data |
JPH07113903B2 (ja) * | 1987-06-26 | 1995-12-06 | 株式会社日立製作所 | キャッシュ記憶制御方式 |
US4992938A (en) * | 1987-07-01 | 1991-02-12 | International Business Machines Corporation | Instruction control mechanism for a computing system with register renaming, map table and queues indicating available registers |
US4901233A (en) * | 1987-07-20 | 1990-02-13 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
US5134561A (en) | 1987-07-20 | 1992-07-28 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
US5150309A (en) | 1987-08-04 | 1992-09-22 | Texas Instruments Incorporated | Comprehensive logic circuit layout system |
US4980817A (en) | 1987-08-31 | 1990-12-25 | Digital Equipment | Vector register system for executing plural read/write commands concurrently and independently routing data to plural read/write ports |
US4991078A (en) * | 1987-09-29 | 1991-02-05 | Digital Equipment Corporation | Apparatus and method for a pipelined central processing unit in a data processing system |
EP0312764A3 (en) | 1987-10-19 | 1991-04-10 | International Business Machines Corporation | A data processor having multiple execution units for processing plural classes of instructions in parallel |
US5089951A (en) * | 1987-11-05 | 1992-02-18 | Kabushiki Kaisha Toshiba | Microcomputer incorporating memory |
US5197136A (en) * | 1987-11-12 | 1993-03-23 | Matsushita Electric Industrial Co., Ltd. | Processing system for branch instruction |
US4823201A (en) * | 1987-11-16 | 1989-04-18 | Technology, Inc. 64 | Processor for expanding a compressed video signal |
US5185878A (en) * | 1988-01-20 | 1993-02-09 | Advanced Micro Device, Inc. | Programmable cache memory as well as system incorporating same and method of operating programmable cache memory |
US4926323A (en) | 1988-03-03 | 1990-05-15 | Advanced Micro Devices, Inc. | Streamlined instruction processor |
JPH01228865A (ja) | 1988-03-09 | 1989-09-12 | Minolta Camera Co Ltd | プリンタ制御装置 |
US5187796A (en) * | 1988-03-29 | 1993-02-16 | Computer Motion, Inc. | Three-dimensional vector co-processor having I, J, and K register files and I, J, and K execution units |
US5301278A (en) * | 1988-04-29 | 1994-04-05 | International Business Machines Corporation | Flexible dynamic memory controller |
US5003462A (en) * | 1988-05-31 | 1991-03-26 | International Business Machines Corporation | Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means |
US4897810A (en) * | 1988-06-13 | 1990-01-30 | Advanced Micro Devices, Inc. | Asynchronous interrupt status bit circuit |
US5261057A (en) | 1988-06-30 | 1993-11-09 | Wang Laboratories, Inc. | I/O bus to system interface |
US5097409A (en) * | 1988-06-30 | 1992-03-17 | Wang Laboratories, Inc. | Multi-processor system with cache memories |
JP2761506B2 (ja) | 1988-07-08 | 1998-06-04 | 株式会社日立製作所 | 主記憶制御装置 |
US5032985A (en) | 1988-07-21 | 1991-07-16 | International Business Machines Corporation | Multiprocessor system with memory fetch buffer invoked during cross-interrogation |
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 |
JPH0673105B2 (ja) | 1988-08-11 | 1994-09-14 | 株式会社東芝 | 命令パイプライン方式のマイクロプロセッサ |
US5291615A (en) | 1988-08-11 | 1994-03-01 | Kabushiki Kaisha Toshiba | Instruction pipeline microprocessor |
US4974155A (en) | 1988-08-15 | 1990-11-27 | Evans & Sutherland Computer Corp. | Variable delay branch system |
US5101341A (en) * | 1988-08-25 | 1992-03-31 | Edgcore Technology, Inc. | Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO |
US5167035A (en) | 1988-09-08 | 1992-11-24 | Digital Equipment Corporation | Transferring messages between nodes in a network |
DE68927218T2 (de) * | 1988-10-18 | 1997-02-06 | Hewlett Packard Co | Verfahren und Vorrichtung für Zustandskode in einem Zentralprozessor |
JP2810068B2 (ja) | 1988-11-11 | 1998-10-15 | 株式会社日立製作所 | プロセッサシステム、コンピュータシステム及び命令処理方法 |
JPH0769811B2 (ja) | 1988-12-21 | 1995-07-31 | 松下電器産業株式会社 | データ処理装置 |
US5148533A (en) | 1989-01-05 | 1992-09-15 | Bull Hn Information Systems Inc. | Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units |
US5125092A (en) | 1989-01-09 | 1992-06-23 | International Business Machines Corporation | Method and apparatus for providing multiple condition code fields to to allow pipelined instructions contention free access to separate condition codes |
JP2736092B2 (ja) * | 1989-01-10 | 1998-04-02 | 株式会社東芝 | バッファ装置 |
US5127091A (en) | 1989-01-13 | 1992-06-30 | International Business Machines Corporation | System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor |
US5167026A (en) | 1989-02-03 | 1992-11-24 | Digital Equipment Corporation | Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers |
US4985825A (en) * | 1989-02-03 | 1991-01-15 | Digital Equipment Corporation | System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer |
US5109495A (en) * | 1989-02-03 | 1992-04-28 | Digital Equipment Corp. | Method and apparatus using a source operand list and a source operand pointer queue between the execution unit and the instruction decoding and operand processing units of a pipelined data processor |
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 |
US5067069A (en) * | 1989-02-03 | 1991-11-19 | Digital Equipment Corporation | Control of multiple functional units with parallel operation in a microcoded execution unit |
US5222223A (en) | 1989-02-03 | 1993-06-22 | Digital Equipment Corporation | Method and apparatus for ordering and queueing multiple memory requests |
US5142634A (en) | 1989-02-03 | 1992-08-25 | Digital Equipment Corporation | Branch prediction |
US5142633A (en) * | 1989-02-03 | 1992-08-25 | Digital Equipment Corporation | Preprocessing implied specifiers in a pipelined processor |
US5133074A (en) | 1989-02-08 | 1992-07-21 | Acer Incorporated | Deadlock resolution with cache snooping |
US5293500A (en) * | 1989-02-10 | 1994-03-08 | Mitsubishi Denki K.K. | Parallel processing method and apparatus |
US5226166A (en) | 1989-02-10 | 1993-07-06 | Mitsubishi Denki K.K. | Parallel operation processor with second command unit |
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 |
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 |
US5119485A (en) | 1989-05-15 | 1992-06-02 | Motorola, Inc. | Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation |
US5155809A (en) * | 1989-05-17 | 1992-10-13 | International Business Machines Corp. | Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware |
US5072364A (en) | 1989-05-24 | 1991-12-10 | Tandem Computers Incorporated | Method and apparatus for recovering from an incorrect branch prediction in a processor that executes a family of instructions in parallel |
JPH02308330A (ja) * | 1989-05-23 | 1990-12-21 | Nec Corp | 知識情報処理装置 |
CA2016068C (en) * | 1989-05-24 | 2000-04-04 | Robert W. Horst | Multiple instruction issue computer architecture |
US5129067A (en) | 1989-06-06 | 1992-07-07 | Advanced Micro Devices, Inc. | Multiple instruction decoder for minimizing register port requirements |
US5136697A (en) | 1989-06-06 | 1992-08-04 | Advanced Micro Devices, Inc. | System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache |
EP0407911B1 (en) * | 1989-07-07 | 1998-12-09 | Hitachi, Ltd. | Parallel processing apparatus and parallel processing method |
JPH07120284B2 (ja) | 1989-09-04 | 1995-12-20 | 三菱電機株式会社 | データ処理装置 |
US5303382A (en) * | 1989-09-21 | 1994-04-12 | Digital Equipment Corporation | Arbiter with programmable dynamic request prioritization |
US5179530A (en) * | 1989-11-03 | 1993-01-12 | Zoran Corporation | Architecture for integrated concurrent vector signal processor |
US5226125A (en) | 1989-11-17 | 1993-07-06 | Keith Balmer | Switch matrix having integrated crosspoint logic and method of operation |
DE68928980T2 (de) | 1989-11-17 | 1999-08-19 | Texas Instruments Inc. | Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern |
US5487156A (en) * | 1989-12-15 | 1996-01-23 | Popescu; Valeri | Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched |
JPH03186928A (ja) * | 1989-12-16 | 1991-08-14 | Mitsubishi Electric Corp | データ処理装置 |
US5179673A (en) * | 1989-12-18 | 1993-01-12 | Digital Equipment Corporation | Subroutine return prediction mechanism using ring buffer and comparing predicated address with actual address to validate or flush the pipeline |
US5197130A (en) | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
JPH063583B2 (ja) * | 1990-01-11 | 1994-01-12 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 命令デコード・サイクル中にアドレスを生成するデジタル・コンピュータおよびその方法 |
JPH061463B2 (ja) | 1990-01-16 | 1994-01-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法 |
US5251306A (en) * | 1990-01-16 | 1993-10-05 | Advanced Micro Devices, Inc. | Apparatus for controlling execution of a program in a computing device |
US5222240A (en) | 1990-02-14 | 1993-06-22 | Intel Corporation | Method and apparatus for delaying writing back the results of instructions to a processor |
US5241636A (en) | 1990-02-14 | 1993-08-31 | Intel Corporation | Method for parallel instruction execution in a computer |
US5230068A (en) | 1990-02-26 | 1993-07-20 | Nexgen Microsystems | Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence |
US5185872A (en) * | 1990-02-28 | 1993-02-09 | Intel Corporation | System for executing different cycle instructions by selectively bypassing scoreboard register and canceling the execution of conditionally issued instruction if needed resources are busy |
US5120083A (en) | 1990-03-19 | 1992-06-09 | Henkels & Mccoy, Inc. | Expansion joint for conduit for cables |
JP2818249B2 (ja) | 1990-03-30 | 1998-10-30 | 株式会社東芝 | 電子計算機 |
IT1247640B (it) | 1990-04-26 | 1994-12-28 | St Microelectronics Srl | Operazioni booleane tra due qualsiasi bit di due qualsiasi registri |
US5201056A (en) * | 1990-05-02 | 1993-04-06 | Motorola, Inc. | RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output |
US5214763A (en) * | 1990-05-10 | 1993-05-25 | International Business Machines Corporation | Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism |
EP0457403B1 (en) | 1990-05-18 | 1998-01-21 | Koninklijke Philips Electronics N.V. | Multilevel instruction cache and method for using said cache |
US5249286A (en) | 1990-05-29 | 1993-09-28 | National Semiconductor Corporation | Selectively locking memory locations within a microprocessor's on-chip cache |
DE69131830T2 (de) * | 1990-06-11 | 2000-06-21 | Cray Research Inc., Eagan | Verfahren zur optimierung der befehlsablauffolge |
CA2038264C (en) | 1990-06-26 | 1995-06-27 | Richard James Eickemeyer | In-memory preprocessor for a scalable compound instruction set machine processor |
CA2045773A1 (en) | 1990-06-29 | 1991-12-30 | Compaq Computer Corporation | Byte-compare operation for high-performance processor |
US5778423A (en) * | 1990-06-29 | 1998-07-07 | Digital Equipment Corporation | Prefetch instruction for improving performance in reduced instruction set processor |
DE69127936T2 (de) | 1990-06-29 | 1998-05-07 | Digital Equipment Corp | Busprotokoll für Prozessor mit write-back cache |
US5197132A (en) * | 1990-06-29 | 1993-03-23 | Digital Equipment Corporation | Register mapping system having a log containing sequential listing of registers that were changed in preceding cycles for precise post-branch recovery |
EP0463965B1 (en) * | 1990-06-29 | 1998-09-09 | Digital Equipment Corporation | Branch prediction unit for high-performance processor |
US5155843A (en) | 1990-06-29 | 1992-10-13 | Digital Equipment Corporation | Error transition mode for multi-processor system |
JPH0480823A (ja) * | 1990-07-23 | 1992-03-13 | Nec Corp | 機械語命令列変換方式 |
JP3035324B2 (ja) | 1990-09-03 | 2000-04-24 | 日本電信電話株式会社 | 衛星スピン軸変更方法 |
USH1291H (en) | 1990-12-20 | 1994-02-01 | Hinton Glenn J | Microprocessor in which multiple instructions are executed in one clock cycle by providing separate machine bus access to a register file for different types of instructions |
US5222244A (en) * | 1990-12-20 | 1993-06-22 | Intel Corporation | Method of modifying a microinstruction with operands specified by an instruction held in an alias register |
US5303362A (en) * | 1991-03-20 | 1994-04-12 | Digital Equipment Corporation | Coupled memory multiprocessor computer system including cache coherency management protocols |
US5261071A (en) * | 1991-03-21 | 1993-11-09 | Control Data System, Inc. | Dual pipe cache memory with out-of-order issue capability |
US5287467A (en) * | 1991-04-18 | 1994-02-15 | International Business Machines Corporation | Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit |
US5488729A (en) | 1991-05-15 | 1996-01-30 | Ross Technology, Inc. | Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution |
US5355457A (en) * | 1991-05-21 | 1994-10-11 | Motorola, Inc. | Data processor for performing simultaneous instruction retirement and backtracking |
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 |
US5278963A (en) * | 1991-06-21 | 1994-01-11 | International Business Machines Corporation | Pretranslation of virtual addresses prior to page crossing |
EP0547242B1 (en) * | 1991-07-08 | 1998-03-25 | Seiko Epson Corporation | Single chip page printer controller |
US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
KR100299691B1 (ko) | 1991-07-08 | 2001-11-22 | 구사마 사부로 | 확장가능알아이에스씨마이크로프로세서구조 |
US5440752A (en) | 1991-07-08 | 1995-08-08 | Seiko Epson Corporation | Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU |
US5826055A (en) | 1991-07-08 | 1998-10-20 | Seiko Epson Corporation | System and method for retiring instructions in a superscalar microprocessor |
US5961629A (en) | 1991-07-08 | 1999-10-05 | Seiko Epson Corporation | High performance, superscalar-based computer system with out-of-order instruction execution |
EP0547240B1 (en) * | 1991-07-08 | 2000-01-12 | Seiko Epson Corporation | Risc microprocessor architecture implementing fast trap and exception state |
US5539911A (en) * | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
US5345569A (en) * | 1991-09-20 | 1994-09-06 | Advanced Micro Devices, Inc. | Apparatus and method for resolving dependencies among a plurality of instructions within a storage device |
GB2260628A (en) | 1991-10-11 | 1993-04-21 | Intel Corp | Line buffer for cache memory |
JPH0820949B2 (ja) | 1991-11-26 | 1996-03-04 | 松下電器産業株式会社 | 情報処理装置 |
US5285527A (en) * | 1991-12-11 | 1994-02-08 | Northern Telecom Limited | Predictive historical cache memory |
US5617554A (en) | 1992-02-10 | 1997-04-01 | Intel Corporation | Physical address size selection and page size selection in an address translator |
US5398330A (en) * | 1992-03-05 | 1995-03-14 | Seiko Epson Corporation | Register file backup queue |
JPH07504773A (ja) | 1992-03-18 | 1995-05-25 | セイコーエプソン株式会社 | マルチ幅のメモリ・サブシステムをサポートするためのシステム並びに方法 |
US5371684A (en) | 1992-03-31 | 1994-12-06 | Seiko Epson Corporation | Semiconductor floor plan for a register renaming circuit |
DE69311330T2 (de) * | 1992-03-31 | 1997-09-25 | Seiko Epson Corp., Tokio/Tokyo | Befehlsablauffolgeplanung von einem risc-superskalarprozessor |
EP0638183B1 (en) | 1992-05-01 | 1997-03-05 | Seiko Epson Corporation | A system and method for retiring instructions in a superscalar microprocessor |
US5442756A (en) * | 1992-07-31 | 1995-08-15 | Intel Corporation | Branch prediction and resolution apparatus for a superscalar computer processor |
US5619668A (en) * | 1992-08-10 | 1997-04-08 | Intel Corporation | Apparatus for register bypassing in a microprocessor |
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 |
US5524225A (en) | 1992-12-18 | 1996-06-04 | Advanced Micro Devices Inc. | Cache system and method for providing software controlled writeback |
US5604912A (en) * | 1992-12-31 | 1997-02-18 | Seiko Epson Corporation | System and method for assigning tags to instructions to control instruction execution |
WO1994016384A1 (en) | 1992-12-31 | 1994-07-21 | Seiko Epson Corporation | System and method for register renaming |
US5628021A (en) * | 1992-12-31 | 1997-05-06 | Seiko Epson Corporation | System and method for assigning tags to control instruction processing in a superscalar processor |
US5627984A (en) | 1993-03-31 | 1997-05-06 | Intel Corporation | Apparatus and method for entry allocation for a buffer resource utilizing an internal two cycle pipeline |
US5577217A (en) | 1993-05-14 | 1996-11-19 | Intel Corporation | Method and apparatus for a branch target buffer with shared branch pattern tables for associated branch predictions |
JPH09500989A (ja) | 1993-05-14 | 1997-01-28 | インテル・コーポレーション | 分岐ターゲット・バッファにおける推論履歴 |
JPH0728695A (ja) | 1993-07-08 | 1995-01-31 | Nec Corp | メモリコントローラ |
US5446912A (en) | 1993-09-30 | 1995-08-29 | Intel Corporation | Partial width stalls within register alias table |
US5613132A (en) * | 1993-09-30 | 1997-03-18 | Intel Corporation | Integer and floating point register alias table within processor device |
US5630149A (en) | 1993-10-18 | 1997-05-13 | Cyrix Corporation | Pipelined processor with register renaming hardware to accommodate multiple size registers |
US5689672A (en) | 1993-10-29 | 1997-11-18 | Advanced Micro Devices, Inc. | Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions |
DE69429061T2 (de) | 1993-10-29 | 2002-07-18 | Advanced Micro Devices, Inc. | Superskalarmikroprozessoren |
JP3218524B2 (ja) | 1993-12-22 | 2001-10-15 | 村田機械株式会社 | ワークホルダーのはみ出し検出装置 |
US5574935A (en) | 1993-12-29 | 1996-11-12 | Intel Corporation | Superscalar processor with a multi-port reorder buffer |
US5630075A (en) | 1993-12-30 | 1997-05-13 | Intel Corporation | Write combining buffer for sequentially addressed partial line operations originating from a single instruction |
US5627985A (en) | 1994-01-04 | 1997-05-06 | Intel Corporation | Speculative and committed resource files in an out-of-order processor |
US5604877A (en) * | 1994-01-04 | 1997-02-18 | Intel Corporation | Method and apparatus for resolving return from subroutine instructions in a computer processor |
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 |
US5619664A (en) * | 1994-01-04 | 1997-04-08 | Intel Corporation | Processor with architecture for improved pipelining of arithmetic instructions by forwarding redundant intermediate data forms |
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 |
US5608885A (en) * | 1994-03-01 | 1997-03-04 | Intel Corporation | Method for handling instructions from a branch prior to instruction decoding in a computer which executes variable-length instructions |
US5586278A (en) | 1994-03-01 | 1996-12-17 | Intel Corporation | Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor |
US5625788A (en) | 1994-03-01 | 1997-04-29 | Intel Corporation | Microprocessor with novel instruction for signaling event occurrence and for providing event handling information in response thereto |
US5564056A (en) | 1994-03-01 | 1996-10-08 | Intel Corporation | Method and apparatus for zero extension and bit shifting to preserve register parameters in a microprocessor utilizing register renaming |
US5630083A (en) | 1994-03-01 | 1997-05-13 | Intel Corporation | Decoder for decoding multiple instructions in parallel |
US5623628A (en) * | 1994-03-02 | 1997-04-22 | Intel Corporation | Computer system and method for maintaining memory consistency in a pipelined, non-blocking caching bus request queue |
US5394351A (en) * | 1994-03-11 | 1995-02-28 | Nexgen, Inc. | Optimized binary adder and comparator having an implicit constant for an input |
US5574927A (en) * | 1994-03-25 | 1996-11-12 | International Meta Systems, Inc. | RISC architecture computer configured for emulation of the instruction set of a target computer |
US5490280A (en) * | 1994-03-31 | 1996-02-06 | Intel Corporation | Apparatus and method for entry allocation for a resource buffer |
US5615126A (en) * | 1994-08-24 | 1997-03-25 | Lsi Logic Corporation | High-speed internal interconnection technique for integrated circuits that reduces the number of signal lines through multiplexing |
US5819101A (en) | 1994-12-02 | 1998-10-06 | Intel Corporation | Method for packing a plurality of packed data elements in response to a pack instruction |
CN1094610C (zh) * | 1994-12-02 | 2002-11-20 | 英特尔公司 | 可以对复合操作数进行压缩操作和拆开操作的微处理器 |
US5666494A (en) | 1995-03-31 | 1997-09-09 | Samsung Electronics Co., Ltd. | Queue management mechanism which allows entries to be processed in any order |
US6385634B1 (en) | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
US5745375A (en) | 1995-09-29 | 1998-04-28 | Intel Corporation | Apparatus and method for controlling power usage |
US5778210A (en) * | 1996-01-11 | 1998-07-07 | Intel Corporation | Method and apparatus for recovering the state of a speculatively scheduled operation in a processor which cannot be executed at the speculated time |
US5832205A (en) * | 1996-08-20 | 1998-11-03 | Transmeta Corporation | Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed |
JP4096132B2 (ja) | 1997-07-24 | 2008-06-04 | 富士ゼロックス株式会社 | 時系列情報の特定区間決定装置、情報蓄積装置および情報蓄積再生装置 |
US6418529B1 (en) | 1998-03-31 | 2002-07-09 | Intel Corporation | Apparatus and method for performing intra-add operation |
JP4054638B2 (ja) | 2002-08-30 | 2008-02-27 | スミダコーポレーション株式会社 | 光ピックアップ |
US7897110B2 (en) | 2005-12-20 | 2011-03-01 | Asml Netherlands B.V. | System and method for detecting at least one contamination species in a lithographic apparatus |
-
1993
- 1993-03-26 DE DE69311330T patent/DE69311330T2/de not_active Expired - Fee Related
- 1993-03-26 WO PCT/JP1993/000375 patent/WO1993020505A2/en active Application Filing
- 1993-03-26 EP EP93906834A patent/EP0636256B1/en not_active Expired - Lifetime
- 1993-03-26 JP JP51729393A patent/JP3730252B2/ja not_active Expired - Lifetime
-
1994
- 1994-03-29 US US08/219,425 patent/US5497499A/en not_active Expired - Lifetime
- 1994-09-28 KR KR1019940703382A patent/KR950701101A/ko not_active IP Right Cessation
-
1996
- 1996-01-31 US US08/594,401 patent/US5737624A/en not_active Expired - Lifetime
-
1997
- 1997-12-15 US US08/990,414 patent/US5974526A/en not_active Expired - Lifetime
-
1999
- 1999-06-10 US US09/329,354 patent/US6289433B1/en not_active Expired - Fee Related
-
2000
- 2000-01-17 JP JP2000008145A patent/JP3571264B2/ja not_active Expired - Lifetime
- 2000-01-17 JP JP2000008148A patent/JP3571266B2/ja not_active Expired - Lifetime
- 2000-01-17 JP JP2000008144A patent/JP3571263B2/ja not_active Expired - Lifetime
- 2000-01-17 JP JP2000008147A patent/JP2000148487A/ja not_active Withdrawn
- 2000-01-17 JP JP2000008149A patent/JP3571267B2/ja not_active Expired - Lifetime
- 2000-01-17 JP JP2000008146A patent/JP3571265B2/ja not_active Expired - Lifetime
- 2000-12-22 KR KR10-2000-7014693A patent/KR100371927B1/ko not_active IP Right Cessation
- 2000-12-22 KR KR10-2000-7014694A patent/KR100371930B1/ko not_active IP Right Cessation
-
2002
- 2002-03-01 US US10/086,197 patent/US7051187B2/en not_active Expired - Fee Related
-
2005
- 2005-10-19 US US11/252,820 patent/US20060041736A1/en not_active Abandoned
-
2007
- 2007-04-02 US US11/730,566 patent/US7802074B2/en not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100392585C (zh) * | 2003-07-09 | 2008-06-04 | 威盛电子股份有限公司 | 动态指令相依性监视及控制的方法与系统 |
EP2639700A1 (en) | 2012-03-14 | 2013-09-18 | Fujitsu Limited | Consolidation support program, consolidation support method, and consolidation support apparatus |
US9548955B2 (en) | 2012-03-14 | 2017-01-17 | Fujitsu Limited | Computer product, consolidation support method, and consolidation support apparatus |
KR101497807B1 (ko) * | 2012-06-14 | 2015-03-02 | 애플 인크. | 제로 사이클 로드 |
US11068271B2 (en) | 2014-07-28 | 2021-07-20 | Apple Inc. | Zero cycle move using free list counts |
US11416254B2 (en) | 2019-12-05 | 2022-08-16 | Apple Inc. | Zero cycle load bypass in a decode group |
Also Published As
Publication number | Publication date |
---|---|
KR950701101A (ko) | 1995-02-20 |
JP2000148489A (ja) | 2000-05-30 |
JP3730252B2 (ja) | 2005-12-21 |
US20080059770A1 (en) | 2008-03-06 |
US7802074B2 (en) | 2010-09-21 |
US20030005260A1 (en) | 2003-01-02 |
DE69311330T2 (de) | 1997-09-25 |
JP3571266B2 (ja) | 2004-09-29 |
JP3571267B2 (ja) | 2004-09-29 |
JP2000148487A (ja) | 2000-05-30 |
US6289433B1 (en) | 2001-09-11 |
JP3571264B2 (ja) | 2004-09-29 |
DE69311330D1 (de) | 1997-07-10 |
JPH07505494A (ja) | 1995-06-15 |
JP3571263B2 (ja) | 2004-09-29 |
JP2000148485A (ja) | 2000-05-30 |
KR100371927B1 (ja) | 2003-02-12 |
KR100371930B1 (ja) | 2003-02-12 |
US20060041736A1 (en) | 2006-02-23 |
JP2000148486A (ja) | 2000-05-30 |
US5497499A (en) | 1996-03-05 |
US5737624A (en) | 1998-04-07 |
WO1993020505A3 (en) | 1993-11-25 |
EP0636256B1 (en) | 1997-06-04 |
WO1993020505A2 (en) | 1993-10-14 |
EP0636256A1 (en) | 1995-02-01 |
JP3571265B2 (ja) | 2004-09-29 |
US5974526A (en) | 1999-10-26 |
JP2000148484A (ja) | 2000-05-30 |
US7051187B2 (en) | 2006-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3571266B2 (ja) | スーパースカラプロセッサ | |
JP3724582B2 (ja) | 命令実行ユニットのためのレジスタ・リネーミング回路 | |
US7958337B2 (en) | System and method for retiring approximately simultaneously a group of instructions in a superscalar microprocessor | |
KR100234646B1 (ko) | 다중 인스트럭션 실행 방법 및 수퍼스칼라 마이크로프로세서 | |
US6128721A (en) | Temporary pipeline register file for a superpipelined superscalar processor | |
US6192461B1 (en) | Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle | |
JPH06242955A (ja) | スーパースカラ・プロセッサ・システムにおける中間記憶バッファの割当てをインデックスする方法およびシステム | |
US5978900A (en) | Renaming numeric and segment registers using common general register pool | |
US6862676B1 (en) | Superscalar processor having content addressable memory structures for determining dependencies | |
US5850563A (en) | Processor and method for out-of-order completion of floating-point operations during load/store multiple operations | |
HUT75816A (en) | Method of operation of a system for processing information, as well as the processing system | |
JPH08263289A (ja) | 複数命令流パイプライン計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040423 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040618 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040623 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080702 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090702 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100702 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110702 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110702 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120702 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130702 Year of fee payment: 9 |