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
Application number
JP9294178A
Other languages
English (en)
Inventor
N Afusaar Muhammad
ムハマド・エヌ・アフサール
M Jesanni Romesh
ロメシュ・エム・ジェサーニ
Mallick Soummya
ソウミャ・マリック
G Macdonald Robert
ローバート・ジー・マクドナルド
Sherma Mukesh
ムケシュ・シャーマ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Motorola Solutions Inc
Original Assignee
International Business Machines Corp
Motorola Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp, Motorola Inc filed Critical International Business Machines Corp
Publication of JPH10143366A publication Critical patent/JPH10143366A/ja
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register 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

(57)【要約】 【課題】 非プログラム順命令発行を利用する高性能デ
ータプロセッシングシステムにおいて早期データ依存解
決メカニズムをインプリメントする方法およびシステム
を提供する。 【解決手段】 命令キャッシュおよびレジスタ依存キャ
ッシュが提供される。命令キャッシュは、複数のキャッ
シュラインを有しており、これらの各キャッシュライン
は、複数の命令をストアすることができる。レジスタ依
存キャッシュには、命令キャッシュと同一の数のキャッ
シュラインが含まれており、レジスタ依存キャッシュ内
の各キャッシュラインは、命令キャッシュ内の各キャッ
シュライン内の命令と同一の数のレジスタ依存単位をス
トアすることができる。単一プロセッササイクルにおい
て、レジスタ依存単位のグループをレジスタ依存キャッ
シュからフェッチする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、広くはデータプロ
セッシング方法およびシステムに関し、特に、データプ
ロセッシングシステム内の非プログラム順(out-of-ord
er)命令発行方法およびシステムに関する。より詳しく
は、本発明は、高性能データプロセッシングシステム内
の非プログラム順命令発行のための早期データ依存解決
メカニズムをインプリメントする方法およびシステムに
関する。
【0002】
【従来の技術】通常、プロセッサ内の命令のシーケンス
は、プロセッサ内の関連する機能ユニット(実行ユニッ
ト等)が使用可能である限り、フェッチされ発行され
る。プログラム順命令発行によって、プロセッサは、デ
コードされた命令がリソース衝突をおこしたり、真のデ
ータ依存または未完了命令への出力依存があるときは必
ず命令のデコードを停止する。その結果、1つかそれ以
上の後続の命令が即時に実行されても、プロセッサは衝
突またはデータ依存のある命令を超えて進むことはでき
ない。この制限を乗り越えるために、命令ウィンドウ
(またはバッファ)を、フェッチ段階と発行段階の間に
加え、命令が即時に発行されるかどうかに関わらず、プ
ロセッサが命令をフェッチするのを継続できるようにす
る。プロセッサはフェッチ命令を継続し、これらの命令
を空きがある限り命令ウィンドウに置く。同時に、プロ
セッサは命令ウィンドウ内で命令を試験して、即時に発
行することのできるすべての命令を配置する。プロセッ
サ内の命令ディスパッチユニットを用いて、機能ユニッ
トとレジスタ間の正しいデータのルーティングをコント
ロールすることによって、命令ウィンドウ内のすべての
命令においてデータ依存を実施する。命令は、元のプロ
グラム順に関わらず命令ウィンドウから発行されるた
め、命令ディスパッチのこの方法は、非プログラム順命
令発行として一般に知られている。
【0003】非プログラム順命令発行は、命令が関連機
能ユニットをビジーに保てる程度に十分な速度で提供さ
れるときに限って有効となる。命令フェッチの平均速度
が命令実行の平均速度より遅い場合には、プロセッサの
性能は命令フェッチにより制限される。一方、命令ウィ
ンドウにおいて関連機能ユニットが複数の命令により必
要とされる場合には、命令発行を停止しなければならな
くなる。さらに、命令オペランド(例えばレジスタ)が
使用不可である場合は、命令は機能ユニットに関連の命
令ウィンドウ内で待機しなければならなくなる。このよ
うに、定常状態において、命令ディスパッチ単位がレジ
スタ依存を決定するためにスヌープする命令ウィンドウ
は、フェッチ帯域幅(すなわち、制限されたルックアヘ
ッド)により制限される。
【0004】フェッチ帯域幅制限は、以下の実施例によ
り示される。クロックサイクル当たり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
【0005】示す通り、I1は、オペランドR1を得る
ために、I0の実行にデータ依存性を有している。同様
に、I2は、オペランドR2を得るために、I1の実行
にデータ依存性を有している。I3は、ターゲットR2
2への書き込みがI1のソースR22へ転化するため、
非プログラム順の実行はされない。
【0006】クロックサイクル当たり2つの命令をフェ
ッチし発行するプログラム順発行プロセッサについて
は、I0とI1が1クロックサイクルでフェッチされデ
コードされる。しかし、I1の実行は、そのI0へのデ
ータ依存性のために遅れる。非プログラム順発行プロセ
ッサについては、I1の実行の遅れは、更なる命令がフ
ェッチ、デコードおよび発行されるのを妨げるものでは
ない。命令ディスパッチ・ユニットは、ディスパッチの
命令ウィンドウ内のすべてのリーフ命令を識別すること
ができる。リーフ命令は、未完了または遅れ命令への順
データ依存性のない命令(上記コードシーケンスのI
3、I4、I5、I6およびI7等)である。リーフ命
令のフェッチ、デコードおよび発行能力は、従来技術に
おいて公知である。しかし、リーフ命令を識別するため
にスキャンされる命令数がフェッチ帯域幅により制限さ
れるため、クロックサイクル当たりのリーフ命令の解析
および検出は制限される。
【0007】従って、早期データ依存解析メカニズム
を、非プログラム順プロセッシング(発行および実行)
を利用する高性能データプロセッシングシステムに提供
することによってフェッチ帯域幅を広げるのが望まし
い。
【0008】
【発明が解決しようとする課題】本発明の目的は、改善
されたデータプロセッシング方法およびシステムを提供
することである。
【0009】本発明の他の目的は、データプロセッシン
グシステム内で非プログラム順命令発行のための改善さ
れた方法およびシステムを提供することである。
【0010】本発明のさらに他の目的は、高性能データ
プロセッシングシステム内で非プログラム順命令発行の
ために早期データ依存解析メカニズムをインプリメント
する改善された方法およびシステムを提供することであ
る。
【0011】
【課題を解決するための手段】本発明によれば、命令キ
ャッシュおよびレジスタ依存キャッシュが提供される。
命令キャッシュは、複数のキャッシュラインを有してお
り、これらの各キャッシュラインは、複数の命令をスト
アすることができる。レジスタ依存キャッシュには、命
令キャッシュと同一の数のキャッシュラインが含まれて
おり、レジスタ依存キャッシュ内の各キャッシュライン
は、命令キャッシュ内の各キャッシュライン内の命令と
同一の数のレジスタ依存単位をストアすることができ
る。単一プロセッササイクルにおいて、レジスタ依存単
位のグループをレジスタ依存キャッシュからフェッチす
る。レジスタ依存単位のグループ内の前方データ依存を
有さないすべてのレジスタ依存単位は命令ディスパッチ
ユニットを利用して識別される。次に、各識別されたレ
ジスタ依存単位は、命令キャッシュ内の対応するキャッ
シュラインを使って、それぞれの命令に翻訳される。翻
訳された命令はすべて次のプロセッササイクル内で発行
される。
【0012】本発明のすべての目的、特徴および利点
は、以下の詳細な説明により明白となろう。
【0013】
【発明の実施の形態】本発明の図示した実施例は、様々
なキャッシュベースのプロセッサおよび/またはデータ
プロセッシングシステムでインプリメントされる。説明
のために、縮小命令セットコンピューティング(RIS
C)技術により作動するインターナショナル・ビジネス
・マシーンズ社製のPowerPCTMマイクロプロセッ
サを使って本発明の実施例を示す。
【0014】図1に、データプロセッシング用プロセッ
サ10のブロック図を示す。本発明の実施例において、
プロセッサ10は、単一集積回路スーパースカラマイク
ロプロセッサであり、様々なレジスタ、バッファ、実行
ユニットおよび機能ユニットから成る。図1に示すよう
に、プロセッサ10は、プロセッサ10内のバスインタ
フェースユニット(BIU)12を介してシステムバス
11に連結されている。BIU12は、プロセッサ10
と、システムバス11に連結されたメインメモリ(図示
せず)等の他のデバイスとの間の情報の転送をコントロ
ールする。プロセッサ10、システムバス11およびシ
ステムバス11に連結されたその他のデバイスが一体と
なってホストデータプロセッシングシステムを形成して
いる。
【0015】プロセッサ10内で、BIU12は命令キ
ャッシュ14およびデータキャッシュ16へ連結されて
おり、両方とも本発明の実施例に組み込まれるものであ
る。命令キャッシュ14およびデータキャッシュ16は
両方とも高速キャッシュであり、プロセッサ10の、メ
インメモリからキャッシュ14および16へ前に転送さ
れた命令またはデータのサブセットへのアクセス時間を
比較的速くすることができる。このようにホストデータ
プロセッシングシステムのオペレーション速度が改善さ
れる。命令キャッシュ14はさらに、各実行サイクルの
最中に命令キャッシュ14から命令をフェッチするシー
ケンシャルフェッチャー17に連結されている。シーケ
ンシャルフェッチャー17は、実行のために、命令キャ
ッシュ14から分岐プロセッシングユニット(BPU)
18へフェッチされた分岐命令を伝送するが、プロセッ
サ10内の他の実行回路による後の実行のために命令キ
ュー19内でシーケンシャル命令を一時的にストアす
る。
【0016】BPU18に加えて、プロセッサ10の実
行回路には、固定小数点ユニット(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からメモリへデータをストアする浮動小数点お
よび固定小数点命令を実行する。
【0017】プロセッサ10は、スーパースカラアーキ
テクチャの性能をさらに改善するために、命令のパイプ
ライン方式と非プログラム順実行の両方を行う。従っ
て、データ依存がある限り、いかなる順序でも命令をF
XU22、LSU28およびFPU32により実行させ
ることができる。
【0018】図2に、本発明の実施例によるレジスタ依
存キャッシュ44と図1の命令キャッシュ14の関係を
示す。レジスタ依存キャッシュ44の構成は、命令キャ
ッシュ14のそれをミラー化するものである。さらに、
レジスタ依存キャッシュ44と命令キャッシュ14は両
方ともBIU12に連結されており、BIU12が命令
キャッシュ14においてキャッシュラインにインデック
スを付けると、レジスタ依存キャッシュ44のもう一方
のキャッシュラインもまたBIU12によりインデック
スが付けられる。従って、レジスタ依存キャッシュ44
内のキャッシュラインにおける識別されたリーフ命令
は、即時ディスパッチのために完全な命令語を取得する
ために、命令キャッシュ14内のもう一方のキャッシュ
ラインへ戻って参照される。
【0019】図3は、レジスタ依存キャッシュ44と共
に用いられる命令キャッシュ14の構成を示すブロック
図である。命令キャッシュ14は、ウェイ0とウェイ1
の2ウェイキャッシュに構成され、各ウェイはライン0
からライン127の128本のキャッシュラインを有し
ている。各キャッシュラインは、アドレスタグ80、1
つの有効ビット82および命令ブロック84から成る。
図示した通り、命令ブロック84は、8ワード(または
32バイト)幅である。これに対しアドレスタグ80は
わずか20ビット幅である。
【0020】各キャッシュラインはアドレス30のビッ
ト20−26によりインデックスが付けられ、キャッシ
ュライン内の各バイトはアドレス30のビット27−3
1によりインデックスが付けられる。さらに、各キャッ
シュライン内のアドレスタグ80には、キャッシュ「ヒ
ット」か「ミス」かを決めるために、アドレス30のビ
ット0−19と比較するのに用いられるアドレスタグが
含まれている。偶然にも、ウェイ0または1におけるア
ドレスタグ80とアドレス30のビット0−19のマッ
チはキャッシュ「ヒット」を意味する。さらに、有効ビ
ット82は、特定のキャッシュラインが有効かそうでな
いかを示すためのものである。従来から、「1」は、キ
ャッシュラインの命令が有効であることを意味し、
「0」は、キャッシュラインの命令が無効であることを
意味する。この逆の割り当てでも構わない。
【0021】図4は、本発明の実施例によるレジスタ依
存キャッシュ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つのレジスタ依存単位が含まれ
ている。
【0022】図5に、本発明の実施例によるレジスタ依
存ブロックのキャッシュライン内のレジスタ依存単位5
2の詳細を示す。図5にはまた、比較のために、命令ブ
ロック84のキャッシュライン内の命令語50の詳細も
示す。PowerPCTMアーキテクチャにおいては、命
令語50は通常32ビット長である。命令語50のビッ
ト0−5はopcodeを、ビット6−10はターゲッ
トレジスタを、ビット11−15は第1ソースレジスタ
を、ビット16−20は第2ソースレジスタを、ビット
21−31は拡張オペレーションをそれぞれ表す。
【0023】レジスタ依存単位52に関して、実施例に
よれば最長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ビット長である。
【0024】本発明の実施例によれば、命令キャッシュ
14内のキャッシュラインから命令をフェッチする代わ
りに、レジスタ依存キャッシュ44内のキャッシュライ
ンから命令をフェッチする。各レジスタ依存単位50の
全長は、上述の通り、17ビット長であり、命令語52
の約半分の長さである。従って、このサイズの違いによ
って、レジスタ依存キャッシュ44の効果的なフェッチ
帯域幅は、現在の技術が可能とする命令キャッシュ14
のほぼ2倍である。このより広い効果的なフェッチ帯域
幅により、命令キャッシュ14に比べ、レジスタ依存キ
ャッシュ44からフェッチされるプロセッササイクル当
たりの命令の数が多くなる。
【0025】レジスタ依存単位がレジスタ依存キャッシ
ュ44からフェッチされた後、すべてのリーフ命令が命
令ディスパッチユニットによりストアされる。リーフ命
令を認識するメカニズムは、Tomasuloアルゴリズムやレ
ジスタスコアボード等業界に公知のものである。このよ
うなメカニズムについては、John L. Hennessy & David
A. Patterson著「コンピュータアーキテクチャ:量的
アプローチ」第6章§6.7に詳細に説明されている。
リーフ命令の識別後、関連の機能ユニットが使用可能で
あれば、命令キャッシュ14内のもう一方のキャッシュ
ラインにストアされた対応する命令語を即時実行のため
にディスパッチする。
【0026】変形例において、各ターゲットレジスタフ
ィールド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ビットを有するレジスタ
を備えたレジスタ依存単位は、たとえ違うものであって
も、同じレジスタとみなされる。このように、この構成
により、リーフ命令を判断する解析力は低くなるもの
の、レジスタ依存キャッシュ全体を小さくすることがで
きる。
【0027】上述した通り、本発明は高性能データプロ
セッシングシステム内での非プログラム順命令発行のた
めに早期データ依存解決メカニズムを実施する方法およ
びシステムを提供するものである。より多くの命令をフ
ェッチし、命令ディスパッチユニットによりリーフ命令
が位置づけられる命令ウィンドウ内の命令プールに送る
ことのできる、より広いフェッチ帯域幅がこのメカニズ
ムにより提供される。さらに、このメカニズムにより、
あるプロセッサアーキテクチャにとって有用なヒューリ
スティック方法が提供される。例えば、リーフ命令を見
つけることができない場合、プロセッサが遅くなる可能
性を減らす実行のために、低い潜在性を有する依存命令
を選択することができる。
【0028】本発明を特定の実施例により示してきた
が、本発明の技術的思想および範囲から逸脱しない限
り、当業者は様々な変形を行えるものとする。
【0029】まとめとして、本発明の構成に関して以下
の事項を開示する。 (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】本発明の方法を用いるプロセッサの実施例を示
すブロック図。
【図2】本発明の実施例によるレジスタ依存キャッシュ
と図1の命令キャッシュの関係を示すブロック図。
【図3】レジスタ依存キャッシュと共に用いられる図1
の命令キャッシュの構成を示すブロック図。
【図4】本発明の実施例によるレジスタ依存キャッシュ
の構成を示すブロック図。
【図5】図3のレジスタ依存ブロックのキャッシュライ
ン内のレジスタ依存単位の詳細図。
【符号の説明】
10 プロセッサ 11a、b システムバス 12 バスインタフェースユニット(BIU) 14 命令キャッシュ 16 データキャッシュ 17 シーケンシャルフェッチャー 18 分岐プロセッシングユニット(BPU) 19 命令キュー 20 ディスパッチユニット 22 整数ユニット 24 汎用レジスタ(GPR) 25 GPRリネームバッファ 28 ロード/ストアユニット(LSU) 30 アドレス 32 浮動小数点ユニット(FPU) 34 浮動小数点レジスタ(FPR) 35 FPRリネームレジスタ 40 完了ユニット 44 レジスタ依存キャッシュ 50 命令語 52 レジスタ依存ユニット 54 タイプフィールド 55 ターゲットレジスタフィールド 56 ソースAレジスタフィールド 57 ソースBレジスタフィールド 80 アドレスタグ 84 命令ブロック 90 アドレスタグ 92 有効ビット 94 レジスタ依存ブロック
───────────────────────────────────────────────────── フロントページの続き (71)出願人 594083818 モトローラ・インコーポレイテッド アメリカ合衆国60196、イリノイ州シャー ムバーク、イースト・アルゴンクイン・ロ ード1303、サ−ド・フロワー (72)発明者 ムハマド・エヌ・アフサール アメリカ合衆国95117 カリフォルニア州 サンジョーズ パインビュー ドライブ 792 (72)発明者 ロメシュ・エム・ジェサーニ アメリカ合衆国78728 テキサス州 オー スティン キッスマン ドライブ 3419 (72)発明者 ソウミャ・マリック アメリカ合衆国78729 テキサス州 オー スティン パートリッジ ベント ドライ ブ 13032 (72)発明者 ローバート・ジー・マクドナルド アメリカ合衆国78785 テキサス州 オー スティン グレーシィ ファームス レー ン 2600 ♯421 (72)発明者 ムケシュ・シャーマ アメリカ合衆国78759 テキサス州 オー スティン グレート ヒル トレイル 9417 アパートメント 1078

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】依存情報および命令のシーケンスをストア
    するステップと、 前記命令の少なくとも1つをフェッチするステップであ
    って、前記フェッチされる命令が、前記シーケンスにお
    ける当該フェッチされる命令に先行するすべての命令か
    ら独立していることを示す前記依存情報に応答して、 当該フェッチがなされるものと、を含む方法。
  2. 【請求項2】前記フェッチするステップがさらに、実行
    のために前記命令の少なくとも1つをフェッチするステ
    ップであって、前記フェッチされる命令の実行が、前記
    シーケンスにおける当該フェッチされる命令に先行する
    すべての命令から独立していることを示す前記依存情報
    に応答して、当該フェッチがなされるものを含む請求項
    1記載の方法。
  3. 【請求項3】さらに、前記依存情報を利用することによ
    り、前方データ依存を有さないすべての命令を識別する
    ステップを含む請求項1記載の方法。
  4. 【請求項4】前記識別ステップがさらに、命令ディスパ
    ッチユニットを利用して、レジスタの依存単位のうち、
    前方データ依存を有さない全てのレジスタ依存単位を識
    別する工程を含む請求項3記載の方法。
  5. 【請求項5】前記ストアするステップがさらに、レジス
    タ依存キャッシュ内の複数のキャッシュラインに依存情
    報をストアするステップと、命令キャッシュ内の複数の
    キャッシュラインに前記命令のシーケンスをストアする
    ステップを含む請求項1記載の方法。
  6. 【請求項6】前記方法がさらに、バスインタフェースユ
    ニットにより、前記レジスタ依存キャッシュ内の前記複
    数のキャッシュラインの各々を、前記命令キャッシュ内
    の対応するキャッシュラインと関連付けることを含む請
    求項5記載の方法。
  7. 【請求項7】依存情報および命令のシーケンスをストア
    する回路と、 前記命令の少なくとも1つをフェッチする回路であっ
    て、前記フェッチされる命令が、前記シーケンスにおけ
    る当該フェッチされる命令に先行するすべての命令から
    独立していることを示す前記依存情報に応答して、当該
    フェッチがなされるものと、を含むデータプロセッシン
    グシステム。
  8. 【請求項8】前記フェッチ回路がさらに、実行のために
    前記命令の少なくとも1つをフェッチする回路であっ
    て、前記フェッチされる命令の実行が、前記シーケンス
    における当該フェッチされる命令に先行するすべての命
    令から独立していることを示す前記依存情報に応答し
    て、当該フェッチがなされるものを含む請求項7記載の
    データプロセッシングシステム。
  9. 【請求項9】さらに、前記依存情報を利用することによ
    り、前方データ依存を有さないすべての命令を識別する
    回路を含む請求項7記載のデータプロセッシングシステ
    ム。
  10. 【請求項10】前記識別回路がさらに、複数のレジスタ
    依存単位内で前方データ依存を有さないすべてのレジス
    タ依存単位を識別する命令ディスパッチユニットを含む
    請求項9記載のデータプロセッシングシステム。
  11. 【請求項11】前記ストア回路がさらに、複数のキャッ
    シュラインに依存情報をストアするレジスタ依存キャッ
    シュと、複数のキャッシュラインに前記命令のシーケン
    スをストアする命令キャッシュとから成る請求項7記載
    のデータプロセッシングシステム。
  12. 【請求項12】前記データプロセッシングシステムがさ
    らに、前記レジスタ依存キャッシュ内の前記複数のキャ
    ッシュラインの各々を、前記命令キャッシュ内の対応す
    るキャッシュラインと関連付けるバスインタフェースユ
    ニットを含む請求項11記載のデータプロセッシングシ
    ステム。
JP9294178A 1996-11-04 1997-10-27 非プログラム順命令発行を利用する高性能データプロセッシングシステムにおいて早期データ依存解析メカニズムをインプリメントする方法およびシステム Ceased JPH10143366A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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