JPH10143366A - 非プログラム順命令発行を利用する高性能データプロセッシングシステムにおいて早期データ依存解析メカニズムをインプリメントする方法およびシステム - Google Patents
非プログラム順命令発行を利用する高性能データプロセッシングシステムにおいて早期データ依存解析メカニズムをインプリメントする方法およびシステムInfo
- Publication number
- JPH10143366A JPH10143366A JP9294178A JP29417897A JPH10143366A JP H10143366 A JPH10143366 A JP H10143366A JP 9294178 A JP9294178 A JP 9294178A JP 29417897 A JP29417897 A JP 29417897A JP H10143366 A JPH10143366 A JP H10143366A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- cache
- register
- instructions
- dependent
- 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.)
- Ceased
Links
- 238000012545 processing Methods 0.000 title claims abstract description 28
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000007246 mechanism Effects 0.000 title abstract description 10
- 230000001419 dependent effect Effects 0.000 claims description 62
- 230000004044 response Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 8
- 239000000872 buffer Substances 0.000 description 7
- 101100328086 Caenorhabditis elegans cla-1 gene Proteins 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 101150071111 FADD gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 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/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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
ータプロセッシングシステムにおいて早期データ依存解
決メカニズムをインプリメントする方法およびシステム
を提供する。 【解決手段】 命令キャッシュおよびレジスタ依存キャ
ッシュが提供される。命令キャッシュは、複数のキャッ
シュラインを有しており、これらの各キャッシュライン
は、複数の命令をストアすることができる。レジスタ依
存キャッシュには、命令キャッシュと同一の数のキャッ
シュラインが含まれており、レジスタ依存キャッシュ内
の各キャッシュラインは、命令キャッシュ内の各キャッ
シュライン内の命令と同一の数のレジスタ依存単位をス
トアすることができる。単一プロセッササイクルにおい
て、レジスタ依存単位のグループをレジスタ依存キャッ
シュからフェッチする。
Description
セッシング方法およびシステムに関し、特に、データプ
ロセッシングシステム内の非プログラム順(out-of-ord
er)命令発行方法およびシステムに関する。より詳しく
は、本発明は、高性能データプロセッシングシステム内
の非プログラム順命令発行のための早期データ依存解決
メカニズムをインプリメントする方法およびシステムに
関する。
は、プロセッサ内の関連する機能ユニット(実行ユニッ
ト等)が使用可能である限り、フェッチされ発行され
る。プログラム順命令発行によって、プロセッサは、デ
コードされた命令がリソース衝突をおこしたり、真のデ
ータ依存または未完了命令への出力依存があるときは必
ず命令のデコードを停止する。その結果、1つかそれ以
上の後続の命令が即時に実行されても、プロセッサは衝
突またはデータ依存のある命令を超えて進むことはでき
ない。この制限を乗り越えるために、命令ウィンドウ
(またはバッファ)を、フェッチ段階と発行段階の間に
加え、命令が即時に発行されるかどうかに関わらず、プ
ロセッサが命令をフェッチするのを継続できるようにす
る。プロセッサはフェッチ命令を継続し、これらの命令
を空きがある限り命令ウィンドウに置く。同時に、プロ
セッサは命令ウィンドウ内で命令を試験して、即時に発
行することのできるすべての命令を配置する。プロセッ
サ内の命令ディスパッチユニットを用いて、機能ユニッ
トとレジスタ間の正しいデータのルーティングをコント
ロールすることによって、命令ウィンドウ内のすべての
命令においてデータ依存を実施する。命令は、元のプロ
グラム順に関わらず命令ウィンドウから発行されるた
め、命令ディスパッチのこの方法は、非プログラム順命
令発行として一般に知られている。
能ユニットをビジーに保てる程度に十分な速度で提供さ
れるときに限って有効となる。命令フェッチの平均速度
が命令実行の平均速度より遅い場合には、プロセッサの
性能は命令フェッチにより制限される。一方、命令ウィ
ンドウにおいて関連機能ユニットが複数の命令により必
要とされる場合には、命令発行を停止しなければならな
くなる。さらに、命令オペランド(例えばレジスタ)が
使用不可である場合は、命令は機能ユニットに関連の命
令ウィンドウ内で待機しなければならなくなる。このよ
うに、定常状態において、命令ディスパッチ単位がレジ
スタ依存を決定するためにスヌープする命令ウィンドウ
は、フェッチ帯域幅(すなわち、制限されたルックアヘ
ッド)により制限される。
り示される。クロックサイクル当たり2つまでの命令を
フェッチすることができ、行当たり8ワードのキャッシ
ュを有するプロセッサについて考えてみる。すなわち、
未完了命令との衝突がなければ、各サイクルについて、
2つの命令がキャッシュからフェッチされ、デコードさ
れて発行される。さらに、プロセッサのキャッシュライ
ンの1つにストアされるコードシーケンスについて考え
てみる。 I0: add R1, R20, R21 I1: add R2, R1, R22 I2: stw R2 I3: mult R22, R30, R31 I4: sub R5, R30, R31 I5: fmul FRR2, FR22, FR23 I6: fsub FRR3, FR24, FR25 I7: fadd FRR4, FR26, FR27
ために、I0の実行にデータ依存性を有している。同様
に、I2は、オペランドR2を得るために、I1の実行
にデータ依存性を有している。I3は、ターゲットR2
2への書き込みがI1のソースR22へ転化するため、
非プログラム順の実行はされない。
ッチし発行するプログラム順発行プロセッサについて
は、I0とI1が1クロックサイクルでフェッチされデ
コードされる。しかし、I1の実行は、そのI0へのデ
ータ依存性のために遅れる。非プログラム順発行プロセ
ッサについては、I1の実行の遅れは、更なる命令がフ
ェッチ、デコードおよび発行されるのを妨げるものでは
ない。命令ディスパッチ・ユニットは、ディスパッチの
命令ウィンドウ内のすべてのリーフ命令を識別すること
ができる。リーフ命令は、未完了または遅れ命令への順
データ依存性のない命令(上記コードシーケンスのI
3、I4、I5、I6およびI7等)である。リーフ命
令のフェッチ、デコードおよび発行能力は、従来技術に
おいて公知である。しかし、リーフ命令を識別するため
にスキャンされる命令数がフェッチ帯域幅により制限さ
れるため、クロックサイクル当たりのリーフ命令の解析
および検出は制限される。
を、非プログラム順プロセッシング(発行および実行)
を利用する高性能データプロセッシングシステムに提供
することによってフェッチ帯域幅を広げるのが望まし
い。
されたデータプロセッシング方法およびシステムを提供
することである。
グシステム内で非プログラム順命令発行のための改善さ
れた方法およびシステムを提供することである。
プロセッシングシステム内で非プログラム順命令発行の
ために早期データ依存解析メカニズムをインプリメント
する改善された方法およびシステムを提供することであ
る。
ャッシュおよびレジスタ依存キャッシュが提供される。
命令キャッシュは、複数のキャッシュラインを有してお
り、これらの各キャッシュラインは、複数の命令をスト
アすることができる。レジスタ依存キャッシュには、命
令キャッシュと同一の数のキャッシュラインが含まれて
おり、レジスタ依存キャッシュ内の各キャッシュライン
は、命令キャッシュ内の各キャッシュライン内の命令と
同一の数のレジスタ依存単位をストアすることができ
る。単一プロセッササイクルにおいて、レジスタ依存単
位のグループをレジスタ依存キャッシュからフェッチす
る。レジスタ依存単位のグループ内の前方データ依存を
有さないすべてのレジスタ依存単位は命令ディスパッチ
ユニットを利用して識別される。次に、各識別されたレ
ジスタ依存単位は、命令キャッシュ内の対応するキャッ
シュラインを使って、それぞれの命令に翻訳される。翻
訳された命令はすべて次のプロセッササイクル内で発行
される。
は、以下の詳細な説明により明白となろう。
なキャッシュベースのプロセッサおよび/またはデータ
プロセッシングシステムでインプリメントされる。説明
のために、縮小命令セットコンピューティング(RIS
C)技術により作動するインターナショナル・ビジネス
・マシーンズ社製のPowerPCTMマイクロプロセッ
サを使って本発明の実施例を示す。
サ10のブロック図を示す。本発明の実施例において、
プロセッサ10は、単一集積回路スーパースカラマイク
ロプロセッサであり、様々なレジスタ、バッファ、実行
ユニットおよび機能ユニットから成る。図1に示すよう
に、プロセッサ10は、プロセッサ10内のバスインタ
フェースユニット(BIU)12を介してシステムバス
11に連結されている。BIU12は、プロセッサ10
と、システムバス11に連結されたメインメモリ(図示
せず)等の他のデバイスとの間の情報の転送をコントロ
ールする。プロセッサ10、システムバス11およびシ
ステムバス11に連結されたその他のデバイスが一体と
なってホストデータプロセッシングシステムを形成して
いる。
ャッシュ14およびデータキャッシュ16へ連結されて
おり、両方とも本発明の実施例に組み込まれるものであ
る。命令キャッシュ14およびデータキャッシュ16は
両方とも高速キャッシュであり、プロセッサ10の、メ
インメモリからキャッシュ14および16へ前に転送さ
れた命令またはデータのサブセットへのアクセス時間を
比較的速くすることができる。このようにホストデータ
プロセッシングシステムのオペレーション速度が改善さ
れる。命令キャッシュ14はさらに、各実行サイクルの
最中に命令キャッシュ14から命令をフェッチするシー
ケンシャルフェッチャー17に連結されている。シーケ
ンシャルフェッチャー17は、実行のために、命令キャ
ッシュ14から分岐プロセッシングユニット(BPU)
18へフェッチされた分岐命令を伝送するが、プロセッ
サ10内の他の実行回路による後の実行のために命令キ
ュー19内でシーケンシャル命令を一時的にストアす
る。
行回路には、固定小数点ユニット(FXU)22、ロー
ド/ストアユニット(LSU)28および浮動小数点ユ
ニット(FPU)32の3つの実行ユニットが含まれ
る。これら3つの実行ユニットはそれぞれ1つかそれ以
上のクラスの命令を実行し、すべての実行ユニットは各
プロセッササイクルの最中同時に作動する。FXU22
は、加算、減算、AND、ORおよびXORといった固
定小数点算術操作を、特定の汎用レジスタ(GPR)2
4またはGPRリネームバッファ25から受け取ったソ
ースオペランドを用いて行う。これとは逆に、FPU3
2は浮動小数点レジスタ(FPR)34またはFPRリ
ネームバッファ35から受け取ったソースオペランド
で、浮動小数点乗算および除算といった浮動小数点操作
を行う。名前から分かるとおり、LSU28は、データ
キャッシュ16またはメインメモリのいずれかから選択
したGPR24またはFPR34へ、データをロードす
るか、または選択した1つのGPR24、GPRリネー
ムバッファ25、FPR34またはFPRリネームバッ
ファ35からメモリへデータをストアする浮動小数点お
よび固定小数点命令を実行する。
テクチャの性能をさらに改善するために、命令のパイプ
ライン方式と非プログラム順実行の両方を行う。従っ
て、データ依存がある限り、いかなる順序でも命令をF
XU22、LSU28およびFPU32により実行させ
ることができる。
存キャッシュ44と図1の命令キャッシュ14の関係を
示す。レジスタ依存キャッシュ44の構成は、命令キャ
ッシュ14のそれをミラー化するものである。さらに、
レジスタ依存キャッシュ44と命令キャッシュ14は両
方ともBIU12に連結されており、BIU12が命令
キャッシュ14においてキャッシュラインにインデック
スを付けると、レジスタ依存キャッシュ44のもう一方
のキャッシュラインもまたBIU12によりインデック
スが付けられる。従って、レジスタ依存キャッシュ44
内のキャッシュラインにおける識別されたリーフ命令
は、即時ディスパッチのために完全な命令語を取得する
ために、命令キャッシュ14内のもう一方のキャッシュ
ラインへ戻って参照される。
に用いられる命令キャッシュ14の構成を示すブロック
図である。命令キャッシュ14は、ウェイ0とウェイ1
の2ウェイキャッシュに構成され、各ウェイはライン0
からライン127の128本のキャッシュラインを有し
ている。各キャッシュラインは、アドレスタグ80、1
つの有効ビット82および命令ブロック84から成る。
図示した通り、命令ブロック84は、8ワード(または
32バイト)幅である。これに対しアドレスタグ80は
わずか20ビット幅である。
ト20−26によりインデックスが付けられ、キャッシ
ュライン内の各バイトはアドレス30のビット27−3
1によりインデックスが付けられる。さらに、各キャッ
シュライン内のアドレスタグ80には、キャッシュ「ヒ
ット」か「ミス」かを決めるために、アドレス30のビ
ット0−19と比較するのに用いられるアドレスタグが
含まれている。偶然にも、ウェイ0または1におけるア
ドレスタグ80とアドレス30のビット0−19のマッ
チはキャッシュ「ヒット」を意味する。さらに、有効ビ
ット82は、特定のキャッシュラインが有効かそうでな
いかを示すためのものである。従来から、「1」は、キ
ャッシュラインの命令が有効であることを意味し、
「0」は、キャッシュラインの命令が無効であることを
意味する。この逆の割り当てでも構わない。
存キャッシュ44の構成を示すブロック図である。上述
したように、レジスタ依存キャッシュ44の構成は、命
令キャッシュ14に倣ったものである。従って、レジス
タ依存キャッシュ44もウェイ0とウェイ1の2ウェイ
キャッシュであり、各ウェイはライン0からライン12
7の128本のキャッシュラインを有している。各キャ
ッシュラインはアドレスタグ90、1つの有効ビット9
2およびレジスタ依存ブロック94から成る。アドレス
タグ90および有効ビット92は、命令キャッシュ14
のアドレスタグ80および有効ビット82と同一であ
る。レジスタ依存ブロック94には、命令キャッシュ1
4の命令ブロック84内の命令語と同一の数のレジスタ
依存単位が含まれる。例えば、図3において、命令ブロ
ック84内の各キャッシュラインには、8つの命令語が
含まれているが、レジスタ依存ブロック94内の各キャ
ッシュラインにもまた8つのレジスタ依存単位が含まれ
ている。
存ブロックのキャッシュライン内のレジスタ依存単位5
2の詳細を示す。図5にはまた、比較のために、命令ブ
ロック84のキャッシュライン内の命令語50の詳細も
示す。PowerPCTMアーキテクチャにおいては、命
令語50は通常32ビット長である。命令語50のビッ
ト0−5はopcodeを、ビット6−10はターゲッ
トレジスタを、ビット11−15は第1ソースレジスタ
を、ビット16−20は第2ソースレジスタを、ビット
21−31は拡張オペレーションをそれぞれ表す。
よれば最長17ビットである。2ビット長のタイプフィ
ールド54は、レジスタ依存単位52が表す命令のタイ
プをコード化するためのものである。このようなコード
化の例を挙げる。「00」は整数ロードおよび整数演算
命令、「01」はストアおよび比較命令、「10」は浮
動小数点ロードおよび浮動小数点演算命令、「11」は
分岐命令である。ターゲットレジスタフィールド55に
は、命令語50のターゲットレジスタが含まれる。ソー
スAレジスタフィールド56およびソースBレジスタフ
ィールド57には、命令語50の第1ソースレジスタお
よび命令語50の第2ソースレジスタがそれぞれ含まれ
る。ソースAレジスタフィールド56、ソースBレジス
タフィールド57およびターゲットレジスタフィールド
55のサイズは、命令語50の各レジスタを示すため
に、対応するビット数に基づいているのが好ましい。こ
の場合、上述の各レジスタを表すために命令語50で5
ビットが使われるため、ソースAレジスタフィールド5
2、ソースBレジスタフィールド53およびターゲット
レジスタフィールド51もそれぞれ5ビット長である。
14内のキャッシュラインから命令をフェッチする代わ
りに、レジスタ依存キャッシュ44内のキャッシュライ
ンから命令をフェッチする。各レジスタ依存単位50の
全長は、上述の通り、17ビット長であり、命令語52
の約半分の長さである。従って、このサイズの違いによ
って、レジスタ依存キャッシュ44の効果的なフェッチ
帯域幅は、現在の技術が可能とする命令キャッシュ14
のほぼ2倍である。このより広い効果的なフェッチ帯域
幅により、命令キャッシュ14に比べ、レジスタ依存キ
ャッシュ44からフェッチされるプロセッササイクル当
たりの命令の数が多くなる。
ュ44からフェッチされた後、すべてのリーフ命令が命
令ディスパッチユニットによりストアされる。リーフ命
令を認識するメカニズムは、Tomasuloアルゴリズムやレ
ジスタスコアボード等業界に公知のものである。このよ
うなメカニズムについては、John L. Hennessy & David
A. Patterson著「コンピュータアーキテクチャ:量的
アプローチ」第6章§6.7に詳細に説明されている。
リーフ命令の識別後、関連の機能ユニットが使用可能で
あれば、命令キャッシュ14内のもう一方のキャッシュ
ラインにストアされた対応する命令語を即時実行のため
にディスパッチする。
ィールド55のレジスタ依存単位52、ソースAレジス
タフィールド56およびソースBレジスタフィールド5
7で2ビットのみを用いる。各2ビットセットは、対応
する命令語50のターゲットレジスタ、第1ソースレジ
スタおよび第2ソースレジスタの最上位2ビットを表
す。従って、タイプフィールド54を含む各レジスタ依
存単位52の全長は8ビット長に過ぎない。本質的に、
最上位2ビットにより、4つの象限に分割される32レ
ジスタ(元は5ビットでインデックスを付けられた)の
セットとなる。ビット「00」は第1象限を、ビット
「01」は第2象限を、ビット「10」は第3象限を、
そしてビット「11」は第4象限をそれぞれ表す。この
構成において、同一の最上位2ビットを有するレジスタ
を備えたレジスタ依存単位は、たとえ違うものであって
も、同じレジスタとみなされる。このように、この構成
により、リーフ命令を判断する解析力は低くなるもの
の、レジスタ依存キャッシュ全体を小さくすることがで
きる。
セッシングシステム内での非プログラム順命令発行のた
めに早期データ依存解決メカニズムを実施する方法およ
びシステムを提供するものである。より多くの命令をフ
ェッチし、命令ディスパッチユニットによりリーフ命令
が位置づけられる命令ウィンドウ内の命令プールに送る
ことのできる、より広いフェッチ帯域幅がこのメカニズ
ムにより提供される。さらに、このメカニズムにより、
あるプロセッサアーキテクチャにとって有用なヒューリ
スティック方法が提供される。例えば、リーフ命令を見
つけることができない場合、プロセッサが遅くなる可能
性を減らす実行のために、低い潜在性を有する依存命令
を選択することができる。
が、本発明の技術的思想および範囲から逸脱しない限
り、当業者は様々な変形を行えるものとする。
の事項を開示する。 (1)依存情報および命令のシーケンスをストアするス
テップと、前記命令の少なくとも1つをフェッチするス
テップであって、前記フェッチされる命令が、前記シー
ケンスにおける当該フェッチされる命令に先行するすべ
ての命令から独立していることを示す前記依存情報に応
答して、当該フェッチがなされるものと、を含む方法。 (2)前記フェッチするステップがさらに、実行のため
に前記命令の少なくとも1つをフェッチするステップで
あって、前記フェッチされる命令の実行が、前記シーケ
ンスにおける当該フェッチされる命令に先行するすべて
の命令から独立していることを示す前記依存情報に応答
して、当該フェッチがなされるものを含む上記(1)記
載の方法。 (3)さらに、前記依存情報を利用することにより、前
方データ依存を有さないすべての命令を識別するステッ
プを含む上記(1)記載の方法。 (4)前記識別ステップがさらに、命令ディスパッチユ
ニットを利用して、レジスタの依存単位のうち、前方デ
ータ依存を有さない全てのレジスタ依存単位を識別する
工程を含む上記(3)記載の方法。 (5)前記ストアするステップがさらに、レジスタ依存
キャッシュ内の複数のキャッシュラインに依存情報をス
トアするステップと、命令キャッシュ内の複数のキャッ
シュラインに前記命令のシーケンスをストアするステッ
プを含む上記(1)記載の方法。 (6)前記方法がさらに、バスインタフェースユニット
により、前記レジスタ依存キャッシュ内の前記複数のキ
ャッシュラインの各々を、前記命令キャッシュ内の対応
するキャッシュラインと関連付けることを含む上記
(5)記載の方法。 (7)依存情報および命令のシーケンスをストアする回
路と、前記命令の少なくとも1つをフェッチする回路で
あって、前記フェッチされる命令が、前記シーケンスに
おける当該フェッチされる命令に先行するすべての命令
から独立していることを示す前記依存情報に応答して、
当該フェッチがなされるものと、を含むデータプロセッ
シングシステム。 (8)前記フェッチ回路がさらに、実行のために前記命
令の少なくとも1つをフェッチする回路であって、前記
フェッチされる命令の実行が、前記シーケンスにおける
当該フェッチされる命令に先行するすべての命令から独
立していることを示す前記依存情報に応答して、当該フ
ェッチがなされるものを含む上記(7)記載のデータプ
ロセッシングシステム。 (9)さらに、前記依存情報を利用することにより、前
方データ依存を有さないすべての命令を識別する回路を
含む上記(7)記載のデータプロセッシングシステム。 (10)前記識別回路がさらに、複数のレジスタ依存単
位内で前方データ依存を有さないすべてのレジスタ依存
単位を識別する命令ディスパッチユニットを含む上記
(9)記載のデータプロセッシングシステム。 (11)前記ストア回路がさらに、複数のキャッシュラ
インに依存情報をストアするレジスタ依存キャッシュ
と、複数のキャッシュラインに前記命令のシーケンスを
ストアする命令キャッシュとから成る上記(7)記載の
データプロセッシングシステム。 (12)前記データプロセッシングシステムがさらに、
前記レジスタ依存キャッシュ内の前記複数のキャッシュ
ラインの各々を、前記命令キャッシュ内の対応するキャ
ッシュラインと関連付けるバスインタフェースユニット
を含む上記(11)記載のデータプロセッシングシステ
ム。
すブロック図。
と図1の命令キャッシュの関係を示すブロック図。
の命令キャッシュの構成を示すブロック図。
の構成を示すブロック図。
ン内のレジスタ依存単位の詳細図。
Claims (12)
- 【請求項1】依存情報および命令のシーケンスをストア
するステップと、 前記命令の少なくとも1つをフェッチするステップであ
って、前記フェッチされる命令が、前記シーケンスにお
ける当該フェッチされる命令に先行するすべての命令か
ら独立していることを示す前記依存情報に応答して、 当該フェッチがなされるものと、を含む方法。 - 【請求項2】前記フェッチするステップがさらに、実行
のために前記命令の少なくとも1つをフェッチするステ
ップであって、前記フェッチされる命令の実行が、前記
シーケンスにおける当該フェッチされる命令に先行する
すべての命令から独立していることを示す前記依存情報
に応答して、当該フェッチがなされるものを含む請求項
1記載の方法。 - 【請求項3】さらに、前記依存情報を利用することによ
り、前方データ依存を有さないすべての命令を識別する
ステップを含む請求項1記載の方法。 - 【請求項4】前記識別ステップがさらに、命令ディスパ
ッチユニットを利用して、レジスタの依存単位のうち、
前方データ依存を有さない全てのレジスタ依存単位を識
別する工程を含む請求項3記載の方法。 - 【請求項5】前記ストアするステップがさらに、レジス
タ依存キャッシュ内の複数のキャッシュラインに依存情
報をストアするステップと、命令キャッシュ内の複数の
キャッシュラインに前記命令のシーケンスをストアする
ステップを含む請求項1記載の方法。 - 【請求項6】前記方法がさらに、バスインタフェースユ
ニットにより、前記レジスタ依存キャッシュ内の前記複
数のキャッシュラインの各々を、前記命令キャッシュ内
の対応するキャッシュラインと関連付けることを含む請
求項5記載の方法。 - 【請求項7】依存情報および命令のシーケンスをストア
する回路と、 前記命令の少なくとも1つをフェッチする回路であっ
て、前記フェッチされる命令が、前記シーケンスにおけ
る当該フェッチされる命令に先行するすべての命令から
独立していることを示す前記依存情報に応答して、当該
フェッチがなされるものと、を含むデータプロセッシン
グシステム。 - 【請求項8】前記フェッチ回路がさらに、実行のために
前記命令の少なくとも1つをフェッチする回路であっ
て、前記フェッチされる命令の実行が、前記シーケンス
における当該フェッチされる命令に先行するすべての命
令から独立していることを示す前記依存情報に応答し
て、当該フェッチがなされるものを含む請求項7記載の
データプロセッシングシステム。 - 【請求項9】さらに、前記依存情報を利用することによ
り、前方データ依存を有さないすべての命令を識別する
回路を含む請求項7記載のデータプロセッシングシステ
ム。 - 【請求項10】前記識別回路がさらに、複数のレジスタ
依存単位内で前方データ依存を有さないすべてのレジス
タ依存単位を識別する命令ディスパッチユニットを含む
請求項9記載のデータプロセッシングシステム。 - 【請求項11】前記ストア回路がさらに、複数のキャッ
シュラインに依存情報をストアするレジスタ依存キャッ
シュと、複数のキャッシュラインに前記命令のシーケン
スをストアする命令キャッシュとから成る請求項7記載
のデータプロセッシングシステム。 - 【請求項12】前記データプロセッシングシステムがさ
らに、前記レジスタ依存キャッシュ内の前記複数のキャ
ッシュラインの各々を、前記命令キャッシュ内の対応す
るキャッシュラインと関連付けるバスインタフェースユ
ニットを含む請求項11記載のデータプロセッシングシ
ステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/740911 | 1996-11-04 | ||
US08/740,911 US5812812A (en) | 1996-11-04 | 1996-11-04 | Method and system of implementing an early data dependency resolution mechanism in a high-performance data processing system utilizing out-of-order instruction issue |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10143366A true JPH10143366A (ja) | 1998-05-29 |
Family
ID=24978580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9294178A Ceased JPH10143366A (ja) | 1996-11-04 | 1997-10-27 | 非プログラム順命令発行を利用する高性能データプロセッシングシステムにおいて早期データ依存解析メカニズムをインプリメントする方法およびシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US5812812A (ja) |
JP (1) | JPH10143366A (ja) |
GB (1) | GB2320775B (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6016540A (en) * | 1997-01-08 | 2000-01-18 | Intel Corporation | Method and apparatus for scheduling instructions in waves |
US5768555A (en) * | 1997-02-20 | 1998-06-16 | Advanced Micro Devices, Inc. | Reorder buffer employing last in buffer and last in line bits |
JP2000163265A (ja) * | 1998-11-30 | 2000-06-16 | Nec Corp | 命令発行回路 |
US6393536B1 (en) | 1999-05-18 | 2002-05-21 | Advanced Micro Devices, Inc. | Load/store unit employing last-in-buffer indication for rapid load-hit-store |
US6708267B1 (en) * | 2000-02-04 | 2004-03-16 | International Business Machines Corporation | System and method in a pipelined processor for generating a single cycle pipeline stall |
US6918119B2 (en) * | 2000-04-20 | 2005-07-12 | International Business Machines Corporation | Method and system to improve usage of an instruction window buffer in multi-processor, parallel processing environments |
US6961931B2 (en) * | 2001-01-10 | 2005-11-01 | International Business Machines Corporation | Dependency specification using target patterns |
US6950928B2 (en) * | 2001-03-30 | 2005-09-27 | Intel Corporation | Apparatus, method and system for fast register renaming using virtual renaming, including by using rename information or a renamed register |
US20040148489A1 (en) * | 2003-01-28 | 2004-07-29 | Sun Microsystems, Inc. | Sideband VLIW processor |
US8151092B2 (en) | 2005-01-12 | 2012-04-03 | International Business Machines Corporation | Control signal memoization in a multiple instruction issue microprocessor |
US8037366B2 (en) * | 2009-03-24 | 2011-10-11 | International Business Machines Corporation | Issuing instructions in-order in an out-of-order processor using false dependencies |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US5463746A (en) * | 1992-10-30 | 1995-10-31 | International Business Machines Corp. | Data processing system having prediction by using an embedded guess bit of remapped and compressed opcodes |
EP0739517B1 (en) * | 1994-01-10 | 2000-08-16 | The Dow Chemical Company | A massively miltiplexed superscalar harvard architecture computer |
-
1996
- 1996-11-04 US US08/740,911 patent/US5812812A/en not_active Expired - Fee Related
-
1997
- 1997-10-14 GB GB9721623A patent/GB2320775B/en not_active Expired - Fee Related
- 1997-10-27 JP JP9294178A patent/JPH10143366A/ja not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
GB9721623D0 (en) | 1997-12-10 |
GB2320775A (en) | 1998-07-01 |
GB2320775B (en) | 2001-07-11 |
US5812812A (en) | 1998-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5611063A (en) | Method for executing speculative load instructions in high-performance processors | |
US5634103A (en) | Method and system for minimizing branch misprediction penalties within a processor | |
US5463745A (en) | Methods and apparatus for determining the next instruction pointer in an out-of-order execution computer system | |
JP3662258B2 (ja) | X86・dspコアを有しかつx86命令をdsp命令へマッピングするdspファンクションデコーダを備える中央処理装置 | |
US6349382B1 (en) | System for store forwarding assigning load and store instructions to groups and reorder queues to keep track of program order | |
EP1442364B1 (en) | System and method to reduce execution of instructions involving unreliable data in a speculative processor | |
JP3093684B2 (ja) | 命令ループを投機的に実行するプロセッサ及び方法 | |
US5721855A (en) | Method for pipeline processing of instructions by controlling access to a reorder buffer using a register file outside the reorder buffer | |
US6336183B1 (en) | System and method for executing store instructions | |
EP0762270B1 (en) | Microprocessor with load/store operation to/from multiple registers | |
US6393555B1 (en) | Rapid execution of FCMOV following FCOMI by storing comparison result in temporary register in floating point unit | |
US20060271769A1 (en) | Selectively deferring instructions issued in program order utilizing a checkpoint and instruction deferral scheme | |
WO2002050668A2 (en) | System and method for multiple store buffer forwarding | |
US5898864A (en) | Method and system for executing a context-altering instruction without performing a context-synchronization operation within high-performance processors | |
JP2003523573A (ja) | プロセッサにおける書き込みトラヒックを減少するシステム及び方法 | |
US5872948A (en) | Processor and method for out-of-order execution of instructions based upon an instruction parameter | |
US20030182537A1 (en) | Mechanism to assign more logical load/store tags than available physical registers in a microprocessor system | |
EP3767462A1 (en) | Detecting a dynamic control flow re-convergence point for conditional branches in hardware | |
CN113535236A (zh) | 基于指令集体系结构的和自动的加载跟踪的方法和装置 | |
US6405303B1 (en) | Massively parallel decoding and execution of variable-length instructions | |
JPH10143366A (ja) | 非プログラム順命令発行を利用する高性能データプロセッシングシステムにおいて早期データ依存解析メカニズムをインプリメントする方法およびシステム | |
JP3207124B2 (ja) | カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置 | |
US6298435B1 (en) | Methods and apparatus for exploiting virtual buffers to increase instruction parallelism in a pipelined processor | |
US6209073B1 (en) | System and method for interlocking barrier operations in load and store queues | |
JP2001243071A (ja) | 1サイクルのパイプライン・ストールを生成するパイプライン・プロセッサのシステム及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040423 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050802 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050817 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20050913 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20050913 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051114 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051213 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20051213 |
|
A045 | Written measure of dismissal of application [lapsed due to lack of payment] |
Free format text: JAPANESE INTERMEDIATE CODE: A045 Effective date: 20060425 |