JPH0772865B2 - 一サイクルレジスタマッピング - Google Patents

一サイクルレジスタマッピング

Info

Publication number
JPH0772865B2
JPH0772865B2 JP3159099A JP15909991A JPH0772865B2 JP H0772865 B2 JPH0772865 B2 JP H0772865B2 JP 3159099 A JP3159099 A JP 3159099A JP 15909991 A JP15909991 A JP 15909991A JP H0772865 B2 JPH0772865 B2 JP H0772865B2
Authority
JP
Japan
Prior art keywords
map
register
backup
logical
physical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP3159099A
Other languages
English (en)
Other versions
JPH0644071A (ja
Inventor
シー スティーリー ジュニア シモン
ジェイ サージャー ディヴィッド
Original Assignee
ディジタル イクイプメント コーポレイション
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 ディジタル イクイプメント コーポレイション filed Critical ディジタル イクイプメント コーポレイション
Publication of JPH0644071A publication Critical patent/JPH0644071A/ja
Publication of JPH0772865B2 publication Critical patent/JPH0772865B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers

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)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータ内のレジ
スタ、更に言えば、レジスタファイルを有するパイプラ
イン結合されたコンピュータ内のレジスタマッピングに
関するものである。
【0002】
【発明の概要】現代のコンピュータは一般に、インスト
ラクションを実行する際にパイプライン動作の概念を利
用する。コンピュータのインストラクションパイプライ
ンは複数の段階を持ち、個々の段階はある段階で動作す
ると同時に、一方で異なる段階が他のインストラクショ
ンで動作している。パイプラインを最大の効率で利用す
るため、パイプラインを最大限に保ち、パイプライン内
の各々の段階がインストラクションを処理することが望
ましい。パイプラインを最大限に保持するため、パイプ
ラインは度々ある予報を作り出し、インストラクション
の列が状態枝インストラクションの後に続くようにしな
ければならない。もしこの予報が正しければこれらのイ
ンストラクションの実行は、問題なく後に続く。しかし
ながら、もし誤ったインストラクションのパスが状態枝
インストラクションの後に続いた場合は、このパイプラ
インは状態枝インストラクションに、そして正しいパス
入力のインストラクションはパイプラインに、実行のた
めにバックアップされなければならない。
【0003】パイプラインのバックアップ動作に伴って
生じてくる問題の1つとして以下に述べるように、これ
らのインストラクションの実行に用いられたレジスタの
値が、状態枝インストラクションが実行された時間から
エラー状態が知覚された時までの間に変更されてしまっ
ているであろう、という事がある。現代のコンピュータ
において、レジスタは、値を記憶するために用いられ
る。パイプラインによって処理された一般的なインスト
ラクションは、異なる2つのレジスタ内に記憶された値
を加算し、その結果生じた値を第3のレジスタ内に配置
するであろう。例えば、このインストラクションは、
「add R7,R8−>R9」というものであろう。
これは、レジスタR7及びR8の内容が足し合わされ、
そうしてその結果がレジスタR9に配置されるというこ
とを意味する。
【0004】問題は、その後のインストラクションが、
変更されたレジスタを用いることを要求した場合に生じ
る。なぜなら、かつてのインストラクションはパイプラ
インを通過してしまっているからである。例えば、「a
dd R7,R8 −>R9」というインストラクショ
ンのすぐ後のインストラクションが、「add R1,
R2 −> R7」というインストラクションであると
仮定する。2番目のインストラクションの実行の際、レ
ジスタR7の内容は変更されている。もし、レジスタR
7とR8の内容が加算されるという1番目のインストラ
クションが、2番目のインストラクションの後に再び実
行されるならば、パイプラインのバックアップのため
に、R9に記憶されるはずの結果値が異なることになる
であろう。
【0005】パイプライン結合されたコンピュータで
は、ミスした予報や他のトラップ状態が知覚される前で
あれば、パイプラインを通じて例えば20個のインスト
ラクションを処理することが可能であり、どのレジスタ
に含まれる値も多数回変更されている。それ故、あるパ
イプライン段階で発生した結果は、パイプラインがその
過程を完全に実行するまではセーブされる必要があり、
問題が発生した場合には、パイプラインを前の所定段階
にバックアップすることが要求される。
【0006】これらの結果をセーブするための1つの方
法に、レジスタ再名付け(renaming) がある。レジスタ
再名付けでは、多数のレジスタ、例えば32個のレジス
タが存在し、パイプラインによって実行されるインスト
ラクションはそれらを使用することができる。これらの
レジスタは本明細書では、「論理レジスタ」と呼ばれ
る。レジスタ再名付けでは、論理レジスタ数よりも大き
なレジスタのプール内に配置された物理ホーム中に個々
の論理レジスタがマップされる。論理レジスタのために
発生された各々の結果は、レジスタのプール内の新しい
物理ホームに与えられる。一般に、これらのレジスタの
プールはレジスタファイル内に保持されている。このよ
うに、同一の論理レジスタを複数回発生させて利用する
ことができ、それらはレジスタファイル内の異なる物理
ホーム内に保持されるであろう。
【0007】レジスタ再名付け設計を実行するため、あ
るメカニズムが与えられ、どの物理ホームが個々の論理
レジスタに対する最も最近の値を保持しているかを判断
する。このメカニズムはレジスタマップと呼ばれるであ
ろう。更に、このメカニズムは、パイプラインを過去の
時に実効的にバックアップし、且つその状態から再びイ
ンストラクションを処理できるよう、少しばかり過去の
状態である状態に対するレジスタマップの状態を、再記
憶することができなければならない。
【0008】
【発明の概要】本発明は、レジスタファイル内の複数の
ロケーションをレジスタマップ内にマップするレジスタ
マッピング方法及び装置を提供する。本発明のレジスタ
マップは、論理レジスタ数を越える多数のロケーション
を含むフリーリスト、バックアップポイントにおいて適
切に各レジスタに対する物理ホームへのマップを含むバ
ックアップマップ及び、現在のポイントにおけるレジス
タの物理ホームに対するマップを含む予報マップからな
る。有効ビットは予報マップと協働し、ある論理レジス
タに対する物理ホームが予報マップあるいはバックアッ
プマップのどちらによって特定されるかを示す。パイプ
ラインをバックアップポイントにバックアップしたい場
合には、予報マップ内の有効ビットが単一のサイクル内
に全てクリアされ、これは「フラッシュクリア動作」と
して知られる。バックアップマップは、バックアップポ
イントでの物理ホームのマップを含むため、バックアッ
プマップは、現在のポイントでの個々の論理レジスタに
対する正確な物理ホームの表示を含むであろう。正確な
インストラクションパスを辿り、バックアップポイント
においてレジスタ内に記憶された正確な値を使用してバ
ックアップポイントから開始することにより、このパイ
プラインを処理することが可能である。
【0009】
【実施例】図1は、コンピュータ内のインストラクショ
ンを処理するためのパイプライン10を示す。このパイ
プライン10は、マップされたインストラクション(以
下、マップインストラクションと呼ぶ)をE−BOX1
3(実効ボックス)に対して与えるI─BOX11(イ
ンストラクションボックス)を有する。
【0010】このI─BOX11は、多数のインストラ
クションを記憶するI−キャッシュ12を有する。これ
らのインストラクションは、I−キャッシュ12からイ
ンストラクションを記憶するI−バッファ14に与えら
れる。以下に詳細に述べるように、I−バッファ14か
ら送信され記憶されたインストラクションにより、NO
P(no operation) がパイプライン10中にNOP挿入
段階16によって挿入されるか、あるいはマップインス
トラクションがレジスタマップ18によって作り出され
る。
【0011】このマップインストラクションはE−BO
Xに送信され実行される。それと同時に、これらのマッ
プインストラクションは、リプレイバッファ20に一時
的に記憶され、トラップの場合にリプレイすることを可
能とする。一旦E−BOX13がマップあるいはNOP
インストラクションを受け取ると、レジスタファイル2
2、ALU24、及びデータが記憶されたD−キャッシ
ュ26(データキャッシュ)を用いて、このインストラ
クションを従来の方法で実行する。状態段階30は、実
行されたインストラクションの状態をチェックし、そし
てもし必要ならばトラップ論理32に信号を送信する。
このことは以下に詳細に説明されているであろう。
【0012】本発明で使用するために意図された一般の
コンピュータは、インストラクションの実行の間に値を
記憶するために32個のレジスタを有する。例えば、イ
ンストラクションは「add R7,R8 −> R
9」であるかもしれない。これは上で述べたように、レ
ジスタR7とR8の内容が足し合わされ、その結果がR
9に配置されることを意味する。
【0013】パイプライン結合されたコンピュータで
は、インストラクションがトラップ等の原因により繰り
返されなければならないような場合に問題が生じ得る。
例えば、インストラクション「add R7,R8 −
> R9」のすぐ後のインストラクションが、「add
R1,R2 −> R7」であると仮定する。2番目
のインストラクションの実行の際には、レジスタR7の
内容は変更されている。もし、レジスタR7とR8の内
容を加算する1番目のインストラクションが2番目のイ
ンストラクションの実行の後に再び実行されることが必
要とされた場合には、その結果生じる値は、異なってし
まうだろう。
【0014】上の状態は、パイプライン結合されたコン
ピュータに問題を引き起こす。パイプライン10を最大
限に保持し、各々の段階がインストラクションを実行す
るよう、パイプライン10は、状態枝インストラクショ
ンの後に続くインストラクションの列のようなある予報
を作らなければならない。もしこの予報が誤りである場
合には、このパイプライン10はバックアップされなけ
ればならない。インストラクションの新たな列が後に続
くか、あるいは同一のインストラクションが異なるデー
タが使用されて後に続くかのいづれかである。
【0015】バックアップを実行するパイプライン10
に発生する問題は上で述べたように、多くのレジスタが
もはや正しい値を持たないであろう、ということであ
る。例えば、もし、誤った予報(あるいはトラップ状
態)が知覚される前に20個のインストラクションがパ
イプライン10を通じて処理されていた場合には、1つ
あるいはそれ以上のレジスタに含まれる値は、多数回変
更されてしまっているだろう。それ故、パイプライン1
0を前の所定の状態にバックアップすることを必要とす
るような問題(トラップ)が発生した場合、パイプライ
ン10がその過程を完全に実行するまでは、あるパイプ
ライン段階で発生された結果をセーブする必要があるの
である。
【0016】これを実行するための1つの方法は、存在
しているレジスタよりもより多くのロケーションを提供
し、それらの値を記憶するというものである。もし使用
可能なレジスタが32個存在すれば、これらを32個の
「論理」レジスタとして考えることができる。しかしな
がら、これらの論理レジスタのなかの1つに記憶される
実際の値を、値の記憶のために与えられた多数のロケー
ションのうちの1つに記憶することもできる。これらの
ロケーションは、「物理ホーム」として知られる。この
ように、一つの値が、論理レジスタとその論理レジスタ
に割り当てられた物理ホームの両方に記憶されると考え
られる。異なるインストラクションによって作り出され
同一の論理レジスタに記憶された値を保持するために、
多くの物理ホームを1つの論理レジスタに割り当てるこ
とが可能である。図1に示された実施例では、これらの
物理ホームがレジスタファイル22内に与えられてい
る。32個の論理レジスタに対応するたった32個のロ
ケーションを有する代わりに、図1のレジスタファイル
22は、論理レジスタ数よりもより多くのロケーション
(例えば64)を有する。これらのロケーションは、論
理レジスタに対する物理ホームである。
【0017】物理レジスタと論理レジスタを使用するこ
とにより、ある時間の間は、それらのレジスタ値を記憶
することが可能となるわけであるが、バックアップの
間、つまり、インストラクションがパイプラインに入力
された時のサイクルからそのインストラクションに関連
したトラップ状態がパイプラインによって知覚されたサ
イクルまでのサイクル数、例えば20サイクルの間、全
てのサイクル毎に、どの物理ホームがどの論理レジスタ
に割り当てられているかということを追跡し続けるよう
なメカニズムが必要となる。このように、もし、総計N
サイクルをバックアップできることが必要ならば、これ
は「バックアップポイント」として知られるのである
が、物理ホームの少なくとも総計Nの割当て(すなわち
「マッピング」)を呼び戻すことができなければならな
い。このバックアップポイントは、トラップ状態が引き
起こしたインストラクションがパイプラインに入力され
た時の、パイプラインの状態に対応する。
【0018】本発明のレジスタマップ18は、このよう
なメカニズムを提供する。レジスタマップ18の実施例
は、図2に詳細に示されている。このレジスタマップ1
8は、バックアップマップ40、予報マップ42、有効
ビットレジスタ43、ログ44及び、フリーリスト46
を有する。本発明の実施例では、バックアップマップイ
46は32×6レジスタファイルであり、これはパイプ
ライン10のバックアップ位置における各々の論理レジ
スタの物理ホームを特定するのに使用される。予報マッ
プ42は、32×6のレジスタファイルであり、これ
は、各々の論理レジスタの物理ホームを予報されたパス
に対して与える。有効ビットレジスタ43は、望まれた
時に「フラッシュクリア」され得る予報マップ42に関
連した32×1レジスタである。
【0019】一般に、これら個々の構造は、論理レジス
タ数に等しいワード数を有する。バックアップ及び予報
マップは、完全な物理レジスタファイル22をアドレス
指定するに十分なビット数をワード毎に有するであろ
う。ログ44は、32×5レジスタファイルであり、こ
れは、「ログ」、即ち最後の32サイクル内に変更され
た論理レジスタの列をリストし、そうしてバックアップ
マップ40が更新されることができるようにするものを
含んでいる。フリーリスト46は64×6レジスタファ
イルであり、ロケーション、即ち、新しい物理ホームと
して使用するのに利用できるレジスタファイル22内の
物理ホーム、のリストを保持する。上で述べられたレジ
スタマップ18内の様々な要素のサイズは例であり、他
のサイズのレジスタファイルを使用することができる。
一般にログ44内のワード数は、少なくともバックアッ
プ時間内のサイクル数に等しく、多くてもせいぜい物理
ホーム数から論理レジスタ数を引き算したものである。
ログ44内のワード毎のビットは、論理レジスタ番号を
保持するのに十分なものである。フリーリスト46内の
最小のワード数は、物理ホーム数−論理レジスタ数+少
なくともエントリのバックアップ時間数である。ワード
毎のビット数は、完全な物理ホームアドレスを保持する
のに十分なものである。
【0020】前に述べたように、E−BOX13のレジ
スタファイル22は、コンピュータ内で実行されている
インストラクションによってアドレス指定された論理レ
ジスタよりも、より多くのロケーションあるいは物理ホ
ームを有するようなサイズである。言い換えれば、もし
コンピュータが32個の論理レジスタで動作すれば、こ
のレジスタファイル22は、32+Nのロケーションを
有するであろう。図1に示した実施例では、レジスタフ
ァイルは64のロケーションを有し、したがってNは3
2である。
【0021】論理レジスタよりもより多くのロケーショ
ンを有することにより、このパイプライン10はレジス
タ再名付けを実行することができる。このように、コン
ピュータによって実行されているインストラクションに
よってアドレス指定されたこのレジスタは、レジスタフ
ァイル22内の幾つかの物理ホーム(つまりロケーショ
ン)中にマップされた論理レジスタとして考えられるこ
とができる。論理レジスタに対して発生された個々の結
果には、レジスタファイル22内の新たな物理ホームが
与えられる。それ故、同一の論理レジスタを複数回発生
させて利用することができ、それらはレジスタファイル
22内の異なるロケーション内に記憶されるであろう。
例えばまず初めにレジスタR7がある値でロードされ、
その物理アドレスはレジスタファイル22内のロケーシ
ョン5となり得る。2番目にある値が論理レジスタR7
にロードされると、それは例えばロケーション59のよ
うなレジスタファイル22内の新しい物理レジスタ中に
ロードされ得る。
【0022】レジスタマップ18は、個々の論理レジス
タの正確な物理ホームを特定する。このレジスタマップ
18は、バックアップポイントから予知パスに沿って、
物理レジスタ内で発生した全ての変化の記録を残し、ま
た、物理ホームのどこが、現在のポイントの個々の論理
レジスタに対応しているかということ及び、物理ホーム
のどこが、バックップポイントそれ自体における個々の
論理レジスタに対応しているかということについての記
録も残す。
【0023】図2を再び参照すれば、加算インストラク
ションが実行される場合には、論理レジスタ番号、つま
り、加算インストラクションに従って第2オペランドに
加算される第1オペランドを記憶している論理リードオ
ペランド1 100と、第2オペランドを記憶している
論理レジスタの番号、つまり、論理リードオペランド2
101は各々、Iバッファ14からリードアドレス
(RA)、100a、101aとしてそれぞれ、バック
アップマップ40、予報マップ42の各々に入力され
る。第1及び第2オペランドの合計が入る論理レジスタ
の番号は、加算インストラクションに従って記憶される
であろうし、論理目的地オペランド102もまた、リー
ドアドレス(RA)102aとしてバックアップマップ
40と予報マップ42の各々に入力され、更に、ライト
データ(WD)102aとしてログ44に入力される。
【0024】論理リードオペランド1リードアドレス1
001aによって表示されたバックアップマップ40内
のロケーションに記憶されたデータは、リードアドレス
100aとしてバックアップマップ40によって出力さ
れ、これはバックアップポイントにおける第1オペラン
ド値を含むレジスタファイル22内の物理ホームの番号
に対応する。更に、論理リードオペランド1リードアド
レス100aによって表示された予報マップ42内のロ
ケーションに記憶されたデータは、リードデータ(R
D)100cとして予報マップ42によって出力され、
これはレジスタファイル22内の物理ホームの番号に対
応しており、レジスタが前のバックアップ以降に書き込
まれた場合における、パイプライン動作の現在のポイン
トでの第1のオペランド値を含んでいる。
【0025】同様に、論理リードオペランド2リードア
ドレス101aによって表示されたバックアップマップ
内のロケーションに記憶されたデータは、レジスタファ
イル22内の物理ホームの番号に対応し、バックアップ
ポイントでの第2のオペランド値を含んでおり、データ
はバックアップマップ40によってリードデータ(R
D)101bとして出力される。また、論理リードオペ
ランド2リードアドレス101aによって表示された予
報マップ42内のロケーションに記憶されたデータは、
レジスタファイル22内の物理ホームの番号に対応し、
論理レジスタが最後のバックアップ以降に書き込まれた
場合における、現在のポイントでの第2のオペランド値
を含んでおり、このデータは、予報マップによってリー
ドデータ(RD)101cとしても出力される。
【0026】図2に示したように、物理ホーム番号リー
ドデータ(RD)100b、100cはマルチプレクサ
103のそれぞれの入力に各々入力される。マルチプレ
クサ103の出力は、物理ホームリードオペランド1
100dからなり、ALU24内の加算インストラクシ
ョンの実行と関連して、レジスタファイル22によって
マップインストラクションレジスタ番号として第1オペ
ランド値の出力のために使用されるレジスタファイル2
2内の物理ホームの番号に対応する。同様に、物理ホー
ムリードデータ(RD)101b及び101cは各々、
マルチプレクサ104のそれぞれの入力に入力される。
マルチプレクサ104の出力は、物理ホームリードオペ
ランド2 101dからなり、ALUの加算動作で、レ
ジスタファイル22により、マップインストラクション
レジスタ番号として第2オペランド値の出力のために使
用される。
【0027】バックアップマップ40及び予報マップ4
2の各々に入力されたこの論理目的地オペランリードア
ドレス(RD)102aは、マップ40、42各々のそ
れぞれのロケーションを表示する。これは、バックアッ
プポイントと現在のポイントのそれぞれの時点での目的
地論理レジスタに対する物理ホームの番号に対応するデ
ータを含む。このデータは、リードデータ102b及び
102cとして出力され、それらは各々、以下に述べる
ように、出力102dを有するマルチプレクサの入力
に、目的地物理ホーム番号のマッピングのためにそれぞ
れ入力される。
【0028】有効ビットレジスタ43は、入力として、
個々のリードアドレス100a、101a及び102a
の各々を受け、それぞれの1ビットフィルドを表示し、
論理リードオペランド1 100、論理リードオペラン
ド2 101及び論理目的地オペランド102にそれぞ
れ対応する予報マップ42ロケーションが有効であるか
どうかを示す。これらの有効ビットレジスタ43は出力
103a、104a、及び105aを有し、リードアド
レス100a、101a及び102aそれぞれによって
表示された個々のロケーションの有効ビットを出力す
る。パイプライン10が、パイプライン10のバックア
ップを必要とするようなトラップイベントもなく動いて
いる限りは、有効ビットレジスタ43内の有効ビットが
セットされ、予報マップ42は有効物理ホーム番号を含
むことを示すことができる。
【0029】出力103a、104a、105aは各
々、マルチプレクサ103、104及び105の1つの
選択ポートに結合されている。これらの有効ビットがセ
ットされている場合には、それらの出力103a、10
4a及び105aは、入力100c、101c及び10
2cを出力100d、101d及び102dとして選択
し、これらは、マルチプレクサ103、104、105
の出力としてそれぞれ予報マップ42を通じて表示され
た物理ホーム番号に対応するものである。このように、
1つ1つのレジスタに対して予報マップ42によって表
示された物理ホームは、それぞれの有効ビットがセット
された時に選択される。有効ビットがセットされていな
い場合には、バックアップマップ40によって示された
ような、バックアップポイントでのそれぞれの論理レジ
スタに対する物理ホームは、それぞれのマルチプレクサ
103、104、105の出力として選択される。トラ
ップ状態がパイプラインによって知覚されると、それら
の有効ビットは1サイクル内に全て「フラッククリア」
され、そして予報マップ40が不適切なものとなる。ト
ラック状態の後の個々のサイクルの間、個々のサイクル
で書き込まれている論理レジスタに対する有効ビットは
有効にセットされ、もう一度予報マップ42を組み立て
る。
【0030】以下の例では、バックアップポイントまで
の距離が20サイクル長である。換言すれば、パイプラ
インを通した第1のインストラクションがパイプライン
10をバックアップすることを必要とするようなイベン
トの原因であることがわかる前に、インストラクション
の20サイクル分がパイプライン10によって処理され
ているであろうということである。それ故、バックアッ
プ40は、20サイクル過去のバックアップポイントに
おける個々の32の論理レジスタの物理ホームを含む。
20サイクルのインストラクションがパイプラインのレ
ジスタ再名付け段階を通り過ぎ、しかもトラップイベン
トが全く発生しなかった場合には、個々の後のサイクル
に対して、その古い物理ホームを、新しい物理ホームで
置換することによってバックアップマップ40は変更さ
れる。この新しい物理ホームは、古いバックアップポイ
ントのサイクルの後のサイクル内で変更された、論理レ
ジスタに対するログ44からのものである。バックアッ
プマップ40はその後、この新しいバックアップポイン
トでの個々の論理レジスタに対する物理ホームを含むで
あろう。トラップが全く発生しない限り、このバックア
ップポイントは個々のサイクルで変化し、それ故、バッ
クアップマップ40は各サイクル毎に変更される。バッ
クアップマップ40の更新方法は後に述べる。
【0031】予報マップ42は、また論理レジスタ番号
で表示され、個々の論理レジスタに対して「予報パス」
物理ホームを与える。換言すれば、この予報マップ42
は、現在のポイントでのバックアップ時間の間に書き込
まれた個々の論理レジスタに対する物理ホームを含み、
実行の予報パスに沿って進むことにより、バックアップ
ポイントと現在のポイントとの間に個々のレジスタに対
して発生した変化によって引き起こされた最も最近のポ
イントを反映する。例えば、もしレジスタR7がバック
アップポイント以降から現在のポイントまでに3回変更
されていた場合には、最も最近の物理ホームだけしか、
ローカルレジスタ番号によって表示されたロケーション
において予報マップ42内で発見されないであろう。書
き込まれていない論理レジスタはどのようなものであっ
ても、その個々の有効ビットをセットしてはいないた
め、バックアップ40は、論理レジスタに対する現在及
びバックアップ物理ホームの両方を示し続ける。
【0032】各レジスタに対する物理ホームの現在のリ
スト動作を保持する予報マップ42の働きとは対照に、
ログ44は、個々のサイクルで書き込まれた論理レジス
タの逐次リスト(即ち、「ログ」)を保持する。例え
ば、もしレジスタR7が第1のサイクルで変化し、そし
てR11が第2のサイクルで変更された場合には、ログ
44内の最初の2つのエントリはR7の後にR11が続
くであろう。
【0033】バックアップの最大量は、物理ホーム数−
論理レジスタ数に等しいサイクル数であることに気をつ
けるべきである。故に、バックアップ時間、即ち「バッ
クアップ距離」は、この数を超過しない。本明細書の例
では、このバックアップ距離は20サイクルである。し
かしながら、論理レジスタよりも、32のより多くの物
理ホームがあたえられ得る。故に、例として挙げたこの
実施例でのバックアップ距離は、もしパイプラインがト
ラップ状態を知覚するのに32サイクルを費やした場合
には、32サイクルまで拡張することができる。
【0034】ログ44及びフリーリスト46各々を表示
するのに使用するため、4つのポインタがある。これら
のポインタは、ログ44及びフリーリスト46内のエン
トリを指し、バックアップマップ40及び予報マップ4
2の更新のために用いることができる。ログ44を表示
するために2つのポインタがある。第1のポインタは、
P−リードポインタ106と呼ばれる。第2のポインタ
は、B−リードポインタ107である。これら2つのポ
インタは、バックアップ距離だけ離れた変化点を指し示
すものである。例えば、B−リード107(バックアッ
プリードポインタ)は、バックアップポイントで変更さ
れた論理レジスタ番号を含んだログ44内のロケーショ
ンを指し示すであろう。P−リードポインタ106(現
在のリードポインタ)は、最も最近のサイクル(現在の
ポイント)の間に変更された論理レジスタ番号を含んだ
ログ44内のロケーションを指し示すであろう。B−リ
ード107は、現在のサイクルからバックアップ距離離
れて(例えば20サイクル前)変化させられたレジスタ
を含むロケーションを指し示すのであるから、P−リー
ドポインタ106とB−リードポインタ107の間に含
まれたロケーションというのは、バックアップポイント
以降に変更された個々の論理レジスタを逐次リストした
ものとなっているであろう。これら2つのポインタ、P
−リード及びB−リードは、明らかなように、各サイク
ルに伴って移され、そのパイプラインをバックアップす
ることが必要となるまで、それらの分離(バックアップ
距離)を保持する。
【0035】P−リードポインタ106はライトアドレ
ス(WA)106aとしてログ44中に入力され、リー
ドアドレス(RA)106aとしてフリーアドレス46
に入力される。上に述べたように、論理目的地オペラン
ド102、つまり、現在のサイクル内で再書き込みされ
た論理レジスタ数、たとえば加算インストラクションに
従ってであるが、この論理目的地オペランド102が、
ライトデータ(WD)102aとしてログ44に入力さ
れる。信号表示されたIMがログ44のライトイネイブ
ル(WE)に対して状態マシーン120によって与えら
れると、以下に詳細に説明するように、この論理目的地
オペランド102がP−リードポインタ106によって
指し示されたログ内のロケーションにおいてログ44中
に書き込まれ、論理レジスタが現在のサイクルで再書き
込みされたことを反映するようログ44を更新する。
【0036】同時に、B−リード107はリードアドレ
ス(RA)107aとしてログ44中に書き込まれ、そ
してフリーリスト46への可能な入力としてマルチプレ
クサ108の入力へ入力される。このリードアドレス
(RA)107aの入力に応答して、ログ44は、本明
細書の例では20サイクル過去の、バックアップポイン
トで再書き込みされた論理レジスタ数を、リードデータ
(RD)107bとして出力する。このリードデータ
(RD)107bは、バックアップマップ 40にライ
トアドレス(WA)107bとして入力され、明かなよ
うに、バックアップマップ40を更新する。
【0037】フリーリスト46は、新しい物理ホームと
して使用されることが可能なレジスタファイル22ロケ
ーションのリストを保持するレジスタファイルである。
もし32の論理レジスタが存在する場合には、本発明の
実施例では、フリーリスト46として64×6レジスタ
ファイルを使用する。これは、フリーリスト46内に、
論理レジスタ数よりも32のより多くの物理ホームが存
在することを意味する。32のより多くのレジスタは任
意のものであり、より多くのあるいはより少ないレジス
タを提供することができる。余分なファイルロケーショ
ンにより、各物理ホームは物理ホーム数−論理レジスタ
数に等しいサイクル数に対して、「エージ」(つまりラ
イト動作で再び用いられることがないということ)する
ことができる。言い換えれば、各サイクル毎に1つづ
つ、余分な物理ホームを利用することができ、各サイク
ルにおいて、物理ホームの前の余分な物理ホーム数に等
しいサイクル総数に対しては、オーバライトしなければ
ならないということである。
【0038】フリーリスト46をアドレス指定する4つ
のポインタが存在する。これらは、P−リード106、
P−ライト109、B−リード107及びB−ライト1
10ポインタである。P−リード106及びP−ライト
109ポインタは、本明細書の例では32のロケーショ
ンに分離されている。同様に、B−リード107及びB
−ライト110ポインタは、32のロケーションに分離
されている。一般に、P−リード及びP−ライトポイン
タ(それに、B−リード及びB−ライトポインタ)は、
物理ホーム数−論理レジスタ数に等しいロケーション数
によって分離される。P−リード及びB−リードポイン
タ(それに、P−ライト及びB−ライトポインタ)は、
ロケーションのバックアップ時間分、例えば20ロケー
ションによって分離されている。Pライトポインタが、
Pリードポインタから2つ離れたもののベキ乗であるよ
うな数の場合には、他方のポインタの2ビットのベキ乗
だけ変化させることにより、いづれか一方のポインタを
使用して他方のポインタを発生することができる。B−
ライトポインタがB−リードポインタから2つ離れたも
ののベキ乗である場合にも同じことである。
【0039】これらの4つのポインタで注意してもらい
たいことは、フリーリスト46を表示するために使用さ
れるP−リードポインタ106とBリードポインタ10
7が、最も高いオーダビットがログ44を表示するため
に使用されることを除いて、ログ44を用いて使用され
るポインタと同一であることである。なぜなら、このロ
グは32×5レジスタであり、フリーリスト46は64
×6レジスタだからである。
【0040】P−ライトポインタ109はライトアドレ
ス(WA)としてフリーリスト46に入力される。上で
述べたように、マルチプレクサ105の出力102dは
ライトデータ(WD)としてフリーリスト46に入力さ
れる。IM信号はフリーリスト46のライトイネイブル
(WE)に与えられる。このIM信号が主張された場
合、マルチプレクサ105の出力102dからなる物理
ホーム数は、P−ライトポインタライトアドレス(W
A)109aによって表示されたロケーションにおい
て、フリーリスト46中に書き込まれる。同時に、P−
リードリードアドレス(RA)106aとして入力され
たP−リードポインタ106は、物理ホーム内で加算イ
ンストラクションに従って第1及び第2オペランドの合
計を記憶するに使用するための、P−リードリードアド
レス(RA)によって表示された物理ホーム目的地オペ
ランド106bの数をフリーリスト46からアクセスす
る。P−リード及びP−ライトポインタは、例えば32
といった多数のロケーションによって分離されているの
で、P−リードポインタ106の先頭、つまりP−リー
ドアドレス(RA)106aに応答してフリーリスト4
6によって出力された物理ホームオペランド106b
は、32サイクルに対して使用された物理ホームを表
す。32のサイクルは、特定のインストラクションに関
連するトラップ状態がパイプラインによって知覚される
前に発生した20サイクル遅延の前のサイクル数であ
る。故に、32サイクルの間に書き込まれなかった物理
ホームは、バックアップしなければならないデータを含
まない。なぜなら、その物理ホームは最後に書き込まれ
たからである。出力106bはこのように、加算インス
トラクションの総計に対するマップインストラクション
物理ホームとしてレジスタファイル22に対して送信さ
れる。この物理目的地オペランド番号106bもまた、
ライトデータ(WD)として予報マップ42に入力され
る。論理目的地オペランド番号102は、1サイクル遅
延の後、ラッチを経由し、予報マップへ向けてライトア
ドレス(WA)102a’として入力され、そうしてI
D信号がサイロ(silo)123によって出力され、予
報マップ42のライトイネイブル(WE)に与えられた
時に、物理ホーム目的地オペランド番号106b’が、
これもまたラッチ126を通じて1サイクル遅延させら
れているのであるが、論理目的地オペランド102の番
号によって表示された予報マップ42内のロケーション
において書き込まれる。予報マップ42を更新するため
のライト動作は、1サイクル遅延させられる。なぜな
ら、各々の現在のサイクルの間、論理目的地オペランド
102はまた、上で述べたリード動作でも用いられるか
らである。言い換えれば、予報マップ42の論理目的地
オペランド102によって表示されたロケーションが、
論理目的地オペランド102を用いてライトアドレスと
して更新される前に、論理目的地オペランド102によ
って表示されたデータが、現在のサイクルにおいて、ま
ずリードデータとして出力されるということである。こ
の方法で、予報マップ42は物理ホーム目的地オペラン
ド106bの使用を反映するよう更新され、論理目的地
オペランド102の番号によって参照され、論理レジス
タ内に記憶された総計値を記憶する。
【0041】更に、Bリードポインタ107aがマルチ
プレクサ108の出力となるよう選択され、もしトラッ
プイベントが存在しなければ、リードアドレス(RA)
として使用され、バックポイントにおいて、20サイク
ル過去のデータを記憶ために使用された物理ホーム番号
を含むフリーリスト46内のロケーションを表示する。
この物理ホーム番号は、ライトデータ(WD)としてバ
ックアップマップ40に入力されたリードデータ(R
D)108bとして、フリーリスト6によって出力され
る。ログ44内のB−リードポインタリードアドレス
(RA)107aによって表示されたリードデータ(R
D)107bは、ライトアドレスとしてバックアップマ
ップ40に入力される。IM BP信号がサイロ124
によって出力され、そしてバックアップマップ40のラ
イトイネイブル(WE)に与えられた場合には、バック
アップポイントにおいてオーバライトされた論理レジス
タの番号を表している、ライトデータ107bによって
表示されたバックアップマップ40内のロケーション
に、バックアップポイントにおいて用いられた物理ホー
ムの番号を表しているリードデータ(108b)が記憶
される。この動作はバックアップマップ40を更新す
る。
【0042】バックアップマップ40、予知マップ42
及び、有効ビットレジスタ43は各々、ライトアドレス
入力(WA)107b、102a’、102a’のそれ
ぞれが、リードアドレス(RA)入力100a、101
a、102aそれぞれに等しい場合には常にライトスル
ー動作が与えられるよう配列されている。こうして、場
合によっては、ライトアドレス107b、102a’、
102aと等しい特定のリードアドレス100a、10
1a、102aによってフェッチされたリードデータよ
りはむしろ、ライトデータ(WD)108b、106
b’、150は、場合によってはリードデータ100
b、101b、102b;100c、101c、102
c;103a、104a、105aとして出力される。
【0043】レジスタマップ18の更新動作を適切なも
のとするため、これらのポインタは、トラップイベント
が発生するまでマルチプレクサとプラス1加算器を使用
して、各サイクルで増加される。トラップイベントが発
生すると、トラップ論理32は、これから述べるよう
に、マルチプレクサの選択ラインを制御し、バックアッ
プポイントへのパイプラインのバックアップに影響を与
える。
【0044】最後に、B−リードポインタ107aがマ
ルチプレクサ111の個々の入力及びプラス1加算器1
13に入力される。プラス1加算器113の出力は、マ
ルチプレクサ111の他の入力に入力される。マルチプ
レクサ111の出力は、現在のサイクルで使用されるB
−リードポインタ107を与える。同様に、P−リード
ポインタ106aは、マルチプレクサの個々の入力及び
プラス1加算器114の入力に入力される。プラス1加
算器114の出力は、マルチプレクサ112の他の入力
に入力される。更に、B−リードポインタ107aはま
た、マルチプレクサ112の第3の入力に入力される。
マルチプレクサ111の出力は、パイプライン動作の現
在のサイクルで使用されるP−ポインタ106を与え
る。同様に、P−ライトポインタ109は、マルチプレ
クサ116の個々の入力及びプラス1加算器118の入
力に入力される。プラス1加算器118の出力は、マル
チプレクサ116の他の入力に入力される。マルチプレ
クサ116の出力は、現在のサイクルで使用されるP−
ライトポインタを与える。
【0045】B−ライトポインタ110は、マルチプレ
クサ115の個々の入力及びプラス1加算器117の入
力に入力される。プラス1加算器117の出力は、マル
チプレクサ115の他の入力に入力される。B−ライト
ポインタ110はまた、マルチプレクサ116の第3の
入力に入力される。マルチプレクサ115の出力は、現
在のサイクルで使用されるB−ライトポインタ110を
与える。
【0046】故に、トラップイベントが発生するまで
は、各サイクルに対して、個々のプラス1加算器11
3、114、117、118の出力が、それぞれB−リ
ード、P−リード、B−ライト及びP−ライトして選択
される。トラップのイベントでは、有効ビットレジスタ
43はトラップ論理32によって主張された信号119
によってフラッシュクリアされる。このように、全ての
有効ビットがクリアされ、有効ビットレジスタ43の出
力103a、104a、105aはマルチュプレクサ1
03〜105によってそれぞれ、出力として、バックア
ップマップ42の100b、101b、102b出力信
号を選択するであろう。これはすぐに、パイプライン動
作でのバックアップポイントとしての、個々の論理レジ
スタの物理ホーム番号を与えるであろう。
【0047】トラップイベントの時は、P−リードポイ
ンタ106は、マルチプレクサ112のB−リードポイ
ンタ入力を選択することによってB−リードポインタ1
07の値にセットされる。また、P−ライトポインタ1
09の値は、マルチプレクサ116に対してB−ライト
ポインタ入力を選択することによってB─ライトポイン
タ110の値にセットされる。更に、トラップ論理32
は、マルチプレクサ108のB−ライトポインタ110
を選択し、トラップイベントが起きた時のサイクルにお
いてフリーリスト46に対するリードアドレス108a
としてB−ライトポインタ110を利用する。これは、
ログ44及びフリーリスト46をバックアップし、バッ
クアップポイントから進行するようバックアップマップ
40及び予報マップ42を更新し続ける。
【0048】インストラクションの実行が、バックアッ
プポイントから「正しい」パスに沿って続けられると、
P−リード及びP−ライトポインタ106、109だけ
が、マルチプレクサ112、116ぞれぞれによる出力
に対してプラス1加算器114、118それぞれの出力
を再び選択することにより、各サイクルで増加される。
P−リードポインタ106がB−リードポインタ107
からバックアップ距離だけ離れた場合には、B−リード
ポインタ107としてプラス1加算器出力113を選択
することにより、B−リードポインタ107は再び各サ
イクルで増加される。同様に、P−ライトポインタ10
9がB−ライトポインタ110からバックアップ距離だ
け離れた場合には、B−ライトポインタ110としてプ
ラス1加算器117を選択することにより、B−ライト
ポインタ110は各サイクルで再び増加される。
【0049】マルチプレクサ111、112、115、
116の選択ライン制御をこれから述べる。論理レジス
タに書き込むインストラクションだけがマップされる。
こうして、状態マシーン120には、インストラクショ
ンのOPコードからのインストラクションタイプが与え
られ、ライト動作が発生するかどうか、つまり、論理レ
ジスタ番号が書き込まれるかどうかということは、特定
の論理目的地オペランド102にあるかどうかを判断す
ることができる。もしライト動作が発生した場合には、
状態マシーン120は状態にエンターし、論理レジスタ
が特定された時に論理1信号を出力する。この論理1信
号は、マルチプレクサ112、116それぞれによる出
力に対してプラス1加算器114の出力を選択し、P−
リード及びP−ライトを増加させる。この状態マシーン
120はまた、論理1をサイロ121中に入力する。こ
のサイロ121は、本明細書の例では20サイクル長の
バックアップ時間である。このように、サイロ121の
出力はマルチプレクサ111、115の選択ラインを制
御し、マルチプレクサ111、115による出力に対し
てプラス1加算器113、117の出力を選択し、B−
リード及びB−ライトポインタをそれぞれ増加し、こう
して20サイクル後、B−リード及びB−ライトポイン
タをバックアップ距離において増加する。
【0050】実行すべきインストラクションが論理レジ
スタに対するライト動作を含まない場合には、この状態
マシーン120は状態にエンターし、論理0を出力す
る。この論理0出力は、マルチプレクサ112、116
それぞれのP−リード106及びP−ライト109入力
を選択し、前のサイクルとして同一のP−リード106
及びP−ライト109番号を出力する。状態マシーン1
20はまた、論理0をサイロ121に入力し、B−リー
ドポインタ及びB−ライトポインタ動作に影響を与え、
それ故、20サイクル後、マルチプレクサ111、11
5それぞれに対してB−リード及びB−ライト入力を選
択する。
【0051】このように、状態マシーン120は、P−
リード及びP−ライトポインタの制御を反映しているが
20サイクル遅延しているようなB−リード及びB−ラ
イトポインタを制御するため、各サイクルで論理1ある
いは0をサイロ121中に入力する。サイロ121は、
トラップイベントが発生した場合にはトラップ論理32
によってクリアされ、そうしてトラップイベントの後の
20サイクルの間は0がサイロ121によって出力さ
れ、P−リード及びP−ライトポインタがバックアップ
ポイントから20サイクル増加するまでB−リード及び
B−ライトポインタが増加するのを防ぐのである。
【0052】状態マシーン120はまた、上で述べたよ
うに状態マシーン120が論理1を出力する各サイクル
でIM信号を出力するよう構成されており、こうしてロ
グ44及びフリーリスト46の各々のライトイネイブル
は、マルチプレクサ105によってログ44ロケーショ
ンとフリーリスト46ロケーションに書き込まれるもの
としてそれぞれ与えられ、P−リードライトアドレス1
06bとP−ライトライトアドレス109aぞれぞれに
よって特定された、論理目的地オペランドライトデータ
102a及び物理ホームライトデータ102dを引き起
こす。状態マシーン120が論理0を出力しているサイ
クルの間は、P−リードとP−ライトポインタは増加さ
れず、IM信号は主張されない。
【0053】状態マシーン120によるIM信号出力は
また、個々の2つのサイロ123、124に入力され
る。サイロ123は1サイクル長であるため、サイロ1
23の出力は、IM信号の主張の後の1サイクルについ
て、予報マップ42のライトイネイブルに対してIM
D信号入力を構成し、ライトデータ106b’の予報マ
ップ中への書き込みを可能にする。サイロ124は20
サイクル長であるため、サイロ124の出力は、対応す
るIM信号の主張の後のバックアップ時間につき、つま
り本明細書の例では20サイクルにつき、バックアップ
マップ40のライトイネイブルポートに対してIM
P信号入力を構成する。サイロ124はトラップ論理3
2によってトラップイベントを解決するであろう。サイ
ロ121への出力は、第2サイロ124の代わりにIM
BP信号として使用され得る。
【0054】更に、IM D信号は有効ビットレジスタ
43のライトイネイブル(WE)に与えられ、このライ
トアドレス102a’は有効ビットレジスタ43のライ
トアドレス入力に与えられる。論理1を含むレジスタ1
50は有効ビットレジスタ42のライトデータ入力に結
合される。こうして、ライトアドレス(WA)102
a’によって特定された有効ビットは各ライト動作の後
に有効にセットされ、予報マップ42を更新する。
【0055】マルチプレクサ112、115、116を
制御するための第2の設計として、E−BOX13に送
信された全てのサイクルがフリーリストのレジスタを、
NOPインストラクションでさえも、使いきっているよ
うなパイプラインを仮定する。レジスタマップ18は各
サイクルで使用される。この動作モードでは、E−BO
X13は論理レジスタ(例えばR31)を用い、そして
書き込まれた時は結果は捨ててしまうであろう。このレ
ジスタはNOPインストラクションの発生の間に書き込
まれた(何回もマップされた)ものである。
【0056】マルチプレクサ111、112、115、
116を制御するための第3の設計は、発生されたイン
ストラクションをマップするだけというものである。N
OPインストラクションが発生してもマッピングは行わ
れない。この設計もまた、バックアップ時間長のサイロ
を必要とする。このサイロはP−リードが処理された時
にロードされる。発生したインストラクションをレジス
タマップ18が処理している場合、P−リードはP−リ
ード+1に増やされ、1がサイロ中に書き込まれる。さ
もなければ、0がサイロ中に書き込まれる。
【0057】B−リード処理は初めに述べた実施例のよ
うにサイロ121の出力によって制御され、そして0が
サイロから見つかった時は同一のB−リード値を選択す
るであろう。このサイロは、マシーンがトラップイベン
トによってバックアップした時にクリアされる。レジス
タマップ18の動作例を以下に述べる。インストラクシ
ョンがI−バッファ14からレジスタマップ18に送信
され、このインストラクションが「add R1,R2
−>R7」であると仮定する。このインストラクション
により、E−BOX13は論理レジスタR1とR2の内
容を足し合わせ、この結果生じた値を論理レジスタR7
中に配置する。インストラクションがレジスタマップ1
8に到達すると、論理レジスタR1、R2及びR7これ
ら3つの全てに対する物理ホームが前に述べたバックア
ップマップ40及び予報マップ42の両方から調査され
る。予報マップ42内の有効ビット43の状態は、調査
されている個々のレジスタに対してチェックされる。有
効ビットレジスタ43内で有効ビットがセットされてい
る場合には、適当なマルチプレクサ103、104、1
05の制御を通じて、正しい物理ホームが予報マップ4
2から選ばれるであろう。この正しい物理ホームは、バ
ックアップマップ40により、有効ビットがセットされ
ていない個々の論理レジスタに対して示されるであろ
う。
【0058】インストラクションのために読み出されて
いる論理レジスタ(この例ではR1とR2)内の値は、
バックアップマップ40と予報マップ42を使用するこ
とによって認識されたレジスタファイル22内の物理ホ
ームにある。読み出された論理レジスタに対するマッピ
ングはそれと同じものを残す。しかしながら、書き出さ
れた論理レジスタ(この例で言えば7)には新しい物理
ホームがマップされなければならため、論理レジスタ内
の古い値は少なくともバックアップ時間間隔の間はオー
バライトされはしないであろう。
【0059】書き込まれた論理レジスタをマップするた
め、以下の動作が発生する。この論理レジスタ番号10
2はP−リード106によって指し示されたロケーショ
ンにおいてログ44内に記憶されるであろう。この論理
レジスタは論理的にオーバライトされる。論理レジスタ
R7の現在の物理ホーム102bあるいは102c(バ
ックアップマップ40あるいは予報マップ42から得ら
れた)がP−ライト109により指し示されたロケーシ
ョンにおいてフリーリスト46中に記憶される。これは
エージング処理を開始する。この物理ホームは、物理ホ
ーム数−論理レジスタ数に等しいサイクル数の後に再利
用され、この時このエントリは、フリーリスト46内の
Pリード106によって指し示されるであろう。
【0060】論理レジスタR7の新しい物理ホームは、
P−リード106によって指し示されたロケーションに
おいてフリーリスト46から得られ、これはP−ライト
109の後の32ロケーションである。論理レジスタR
7に対するこの新しい物理ロケーションはその後、論理
レジスタ番号R7によって表示された適当なロケーショ
ンにおいて予報マップ42中に記憶される。有効レジス
タ43内のそれに対応する有効ビットがセットされる。
上で述べたように、ライトデータとして有効ビットレジ
スタ43に論理1値を絶えず出力するよう、デバイス1
50が与えられる。論理目的値オペランドリードアドレ
ス(RA)102aはまた、ライトアドレス(WA)と
して有効ビットレジスタ43に入力され、これにより、
各サイクルで個々のリードアドレス102aによって表
示された予報マップロケーションに対する有効ビットが
セットされる。
【0061】各サイクル毎に、オーバライトされている
論理レジスタのための、変更されている物理ホーム10
2dが、フリーリスト46内に配置し戻され、32サイ
クルのためにエージする。更に、この物理ホームは、新
しい物理ホーム106bによって予報マップ42内の論
理レジスタのために再配置され、フリーリスト46から
ライトデータ(WD)106bとして選ばれる。この新
しい物理ホーム106bはすでに31サイクルをエージ
している。
【0062】これと同時に、データを記憶するために使
用された論理レジスタがマッピングされ、バックアップ
マップ40は1サイクル分の変化によって新しいバック
アップ状態に更新されなければならない。これは以下の
動作によって達成される。1バックアップ時間前に書き
込まれた論理レジスタが、B−リード107の値を用い
てログをアドレス指定することによって認識される。現
在のサイクルの前のバックアップ時間に、書き込まれた
この論理レジスタは新しい物理ホームに与えられる。こ
の新しい物理ホームは、B−リード108aでフリーリ
スト46を表示することによってフリーリスト46から
読み出される。1バックアップ時間前に論理レジスタに
割り当てられ、そして今フリーリスト46から読み出さ
れた新しい物理ホーム108aは、20サイクル前にオ
ーバライトされた論理レジスタ番号に対応し、リードデ
ータ107bによって表示されたロケーションにおい
て、バックアップマップ40中に書き込まれる。
【0063】概して言えば、1バックアップ時間前に変
更された論理レジスタはログ44内にあり、論理レジス
タに対して1バックアップ時間前に割り当てられた新し
い物理ホームはフリーリスト46にある。そしてバック
アップ時間において論理レジスタに対して割り当てられ
たこの新しい物理ホームは、正しい論理レジスタ番号で
バックアップマップ40によって与えられる。このよう
にしてバックアップマップ40は、1バックアップ時間
前に書き込まれた論理レジスタに対する物理ホーム内の
変化を反映するであろう。
【0064】記述されたこれら動作列を注意深く観察す
ると、Bリードポインタ及びBライトポインタに沿った
バックアップマップあるいは、Pリードポインタ及びP
ライトポインタと相まった予報マップのいづれの状態の
進行も、逆にすることができるということが分かる。こ
れらは逆に進行することが可能である。動作を反対した
い場合は、一般の前進動作で使用したプラス1加算器1
13、114、117、118と同様の方法でポインタ
を減らさなければならない。
【0065】上の手続きにより、書き込まれている論理
レジスタにレジスタファイル22内の新しい物理ホーム
が与えられ、その論理レジスタに割り当てられた古い物
理ホーム内の値は少なくともバックアップ時間である限
りの時間間隔の間は、オーバライトされない。論理レジ
スタに対する物理ホームでの変化は予報マップ42内に
記憶され、この変化はログ44内に載せられる。バック
アップマップ40が、バックアップポイントでの個々の
論理レジスタの物理ホームを正確に反映するように、同
時にバックアップマップ40は変形され、1バックアッ
プ時間前になされた論理レジスタに対する物理ホームで
の変化を反映する。インストラクションを実行するため
に読み出された2つのレジスタ各々に対する物理ホーム
は、有効ビットを用い、論理レジスタに対する正確な物
理ホームを2つのマップ40、42のいづれが含むかを
判断することにより、バックアップマップ40あるいは
予報マップ42によって与えられる。
【0066】この動作列が実行された後、4つのポイン
タ、P−リード、B−リード、P−ライト及びB−ライ
トは全て、前に述べたようにプラス1加算器113、1
14、117、118を使用することによって増加され
る。トラップあるいはバックアップを必要とするような
他の問題が知覚された時は、有効ビットレジスタ43内
の全ての有効ビットはフラッシュクリアされる。この
「フラッシュクリア動作」により、バックアップマップ
40はその論理レジスタに対する正しい物理ホーム番号
だけを含むことになる。このように、論理レジスタがイ
ンストラクションの実行で読み出された場合には、その
論理レジスタに対する物理ホームがバックアップマップ
40から選択されるであろう。
【0067】たった1つのバックアップ時間だけしか存
在しなければ、有効ビットレジスタ43内の有効ビット
のフラッシュクリア動作は即座にそのシステムをバック
アップポイントにバックアップするだろう。しかしなが
ら、多くのコンピュータ設計では、1つ以上のバックア
ップ時間が存在する。それゆえ、レジスタマップ18を
他のバックアップポイントへバックアップすることがで
きるようにする必要がある。これは、1つのサイクルあ
るいはそれ以上の活動の間中レジスタマップ18をバッ
クアップすることによって行われる。上で示したように
この更新は反転が可能である。
【0068】P−リードポインタ及びBライトポインタ
と相まって、単一のサイクル間にバックアップマップを
バックアップするため、以下の段階が実行される。バッ
クアップマップ40内で物理ホームが更新された最後の
論理レジスタが、B−リードポインタを使用することに
よってログ44から読み出される。それは、バックアッ
プマップ40内の論理レジスタに対するロケーション内
に記憶された新しい物理ホームであり、きっと正しいに
ものであろう。更新されたこの最後の論理レジスタの現
在の物理ホームは、更新された最後の論理レジスタであ
るログ44からの一旦決定されたバックアップマップ4
0から読み出される。更新された最後のレジスタの古い
物理ホームはB−ライトポインタを使用することによっ
てフリーリスト46から読み出される。
【0069】この古い物理ホームは、バックアップマッ
プ40内の対応する論理レジスタに対する新しい物理ホ
ームを置換する。この時、バックアップマップ40の状
態が1サイクル分の活動によって回復される(つまりバ
ックアップされる)。上に記述した実施例は、有効ビッ
トを「フラッシュクリア」し、P−リードをB−リード
に、P−ライトをB−ライトにセットすることにより、
早急に、つまり1サイクル内に、到達可能な1バックア
ップ時間に対して提供したものである。他のバックアッ
プポイントに到達するため、レジスタ18は、1サイク
ル分の活動を同時にバックアップされることができる。
【0070】付加的な中間バックアップマップ、関連す
る有効ビット、及び対応するリード及びライトポインタ
により、本発明のレジスタマップを1バックアップ時間
以上早く到達するように発生することができる。上に記
述した実施例はバックアップマップ40と同様に、予報
マップ42及びそれに関連する有効ビット43を持つ。
さらに、P−リード、P−ライト、B−リード及びB−
ライトポインタがある。中間バックアップポイントを付
加するため、中間の付加即ちIバックアップマップ、I
B−リード及びIB−ライトポインタと同様な関連する
Iバックアップ有効ビット構造が必要である。同様にし
て、さらに多くの中間バックアップポイントを付加的な
マップとポインタを用いて付加することができる。論理
レジスタの現在の物理ホームを選択することによって、
バックアップマップ、Iバックアップマップ及び予報マ
ップ内のレジスタを調査することが必要となる。
【0071】予報マップのエントリに関連する有効ビッ
トがONである場合、予報マップは論理レジスタの現在
の物理ホームを特定する。予報マップのエントリに関連
する有効ビットがOFFであるが、Iバックアップ有効
ビット構造内の有効ビットはONである場合には、その
Iバックアップマップは論理レジスタ内の現在のホーム
を特定する。有効ビットのいづれもがONではない場合
には、バックアップマップは論理レジスタの現在のホー
ムを特定する。
【0072】パイプラインを中間のバックアップポイン
トにバックアップするとしても、単に予報マップに関連
する有効ビットを「フラッシュバック」し、P−リード
をB−リードに等しく、P−ライトをIB−ライトに等
しくセットすることが必要なだけである。中間バックア
ップポイントから続けて処理する時は、P−リード及び
P−ライトポインタは処理された各サイクルの間中進行
し、IB−リード及びIB−ライトポインタから中間バ
ックアップ距離だけ離間するまで前方に動く。IB─リ
ード及びIB−ライトポインタは増加を開始する。同様
に、この中間バックアップは、P−リードとP−ライト
ポインタをB−リードとB−ライトからのバックアップ
距離より小さい距離だけ後方に動かすので、B−リード
及びB−ライトはB−リード及びB−ライトからの完全
なバックアップ距離を進むまで進行を中止するであろ
う。
【0073】パイプラインをバックアップポイントまで
バックアップするには、予報マップとIバックアップマ
ップの両方に関連した有効ビットを「フラッシュクリ
ア」する必要がある。処理がバックアップポイントから
続く時は、P−リード及びP−ライトポインタは処理さ
れた各サイクルを増加し、IBリード及びIB−ライト
ポインタから中間バックアップ距離だけ離間するまで前
方に動く。その後IB−リード及びIB−ライトポイン
タは増加を始めるであろう。処理が続き、P−リード及
びP─ライトポインタがB−リード及びB−ライトから
完全なバックアップ距離だけ進行した時には、B−リー
ド及びB−ライトポインタは増加し始めるであろう。
【0074】P−リードポインタがIB−リードから完
全な中間距離であり、且つ処理が続いている場合には、
物理ホームの記述を現在のポイントの後の中間距離に保
持するようIバックアップマップは更新されなければな
らない。この更新には、ポインタIB−リードを使用し
てインデックスとしてログを読み出すことによって、適
切な時間前に中間バックアップ距離が書き込まれた論理
レジスタを読み出すことが必要である。論理レジスタに
割り当てられた物理ホームは、ポインタIB−リードを
使用してインデックスとしてフリーリストを読み出すこ
とによって得られる。このIバックアップマップは、ロ
グからの論理レジスタ番号をアドレスとして使用し、フ
リーリストからの物理ホームリードをデータとして使用
することによって書き込まれる。更に、ログから読み出
された論理レジスタ番号によってアドレス指定されたI
バックアップ有効ビット内の有効ビットがONにセット
される。
【0075】レジスタマップ器にさらにバックアップポ
イントを加えても、書き込まれた論理レジスタをマップ
するために使用する動作に影響は与えない。実行される
バックアップは2種類ある。1つは既に記述したもので
あり、それは予報パスが正しくないものである。言い換
えれば、誤ったインストラクション列が後に続くもので
ある。この状況では、有効ビットレジスタ43のフラッ
シュクリア動作とバックアップマップ40の使用によ
り、論理レジスタの正しい値を使用し、バックアップポ
イントで開始することによって、正しいインストラクシ
ョン列を実行することが可能となる。
【0076】バックアップのもう一方の種類は、正確な
インストラクション列が続いているが、誤ったデータが
使用された時、例えばデータキャッシュリードミヅが発
生したような時に実行されるものである。このような状
況では、例えば正しいデータがD−キャッシュ26中に
ロードされた後に、マップインストラクションが単にリ
プレイバッファ20からやり直され、バックアップポイ
ントから始まるだけである。サイロ121はインストラ
クションをやり直している間は据え置かれる。
【0077】本発明は、パイプライン結合されたコンピ
ュータに対するレジスタマッピング方法及び装置を与え
る。これは論理レジスタの正確な物理ホームを特定する
が、レジスタマップを実行するのに必要とされる論理ゲ
ート数により安価なままである。現在のサイクルの前の
サイクルから最大バックアップポイントまでのいづれか
のサイクルにおける論理レジスタに対する物理ホーム
が、本発明によって与えられる。またそれは、フラッシ
ュクリーア動作機能を提供し、1サイクルで特定のバッ
クアップポイントにバックアップする。
【図面の簡単な説明】
【図1】図1は、本発明の実施例にしたがって構成され
たコンピュータパイプラインを示す。
【図2】図2は、本発明に従って構成され、図1のコン
ピュータパイプラインで使用されるレジスタマップの実
施例のブロック図を示す。
【符号の説明】
22 レジスタファイル 42 予報マップ 43 有効ビットレジスタ 44 ログ
フロントページの続き (56)参考文献 特開 昭61−136132(JP,A) 欧州特許出願公開301220(EP,A)

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータパイプラインを通じて処理
    されたインストラクションの実行で使用されるm論理レ
    ジスタをマッピングするための装置において、 値を記
    憶するためにm論理レジスタの物理ホームであるnロケ
    ーション(n>m)を有するレジスタファイルと、 前記レジスタファイルと結合され、入力としてインスト
    ラクションを受け、出力としてレジスタファイルに対し
    てマップインストラクションを発生するレジスタマップ
    とを備え、 前記レジスタマップは、 その各々がレジスタファイルロケーションを含む多数の
    ロケーションpを含み、どの前記レジスタファイルロケ
    ーションが現在のサイクルで使用するためフリーである
    かを示すフリーリストと、 m論理レジスタのどれが現在のサイクルより前のtサイ
    クルの各々において変更されたかということを逐次リス
    トするログと、 n物理ホームのmをバックアップポイントにおいてm論
    理レジスタに関連させるマップを含み、前記バックアッ
    プポイントは、現在のサイクルより前の予め選択された
    数のサイクルであり、前記予め選択された数は、tに等
    しいか、またはそれより小さいようなバックアップマッ
    プと、 n物理ホームのmを現在のポイントにおいてm論理レジ
    スタに関連させるマップを含む予報マップと、 前記フリーリスト、ログ、バックアップマップおよび予
    報マップの各々に結合され、前記レジスタマップへのイ
    ンストラクション入力を受け、前記フリーリスト、ロ
    グ、バックアップマップおよび予報マップを保持し、前
    記ログの逐次リストを使用してバックアップマップが保
    持されるようにし、前記レジスタマップによってマッピ
    ングされたインストラクション出力を発生するようなレ
    ジスタマップコントロール装置とを備えることを特徴と
    する装置。
  2. 【請求項2】 請求項1記載の装置において更に、レジ
    スタをマッピングする際に、論理レジスタと関連した物
    理ホームがバックアップマップと予報マップのどちらか
    ら得られるべきかを示す有効ビットの組みを備える装
    置。
  3. 【請求項3】 コンピュータパイプラインで処理される
    インストラクションのためにレジスタファイル内に含ま
    れたn物理ホームに対するn論理レジスタのマッピング
    を保持する方法において、 現在のサイクル中に、レジスタマップ内にマップされる
    m論理レジスタの1つの少なくとも1つのアドレスを指
    定するインストラクションを受け、 レジスタファイル内のどの物理ホームが現在のサイクル
    で使用するためにフリーであるかを示すフリーリストを
    保持し、 前記受け取られたインストラクションの前記少なくとも
    1つのアドレスを前記フリーリストに指示されたフリー
    物理ホームの少なくとも1つへとマッピングし、且つ前
    記フリー物理ホームの前記1つをm論理レジスタの対応
    するものと関連させ、 どのm論理レジスタが現在のサイクルより前のtサイク
    ルの各々において変更されたかということをログ内に逐
    次リストしつづけ、 現在のサイクルより前の予め選択された数のサイクルで
    あって、該予め選択された数は、tに等しいか、または
    それより小さいようなバックアップポイントにおいて前
    記m論理レジスタの各々に関連した物理ホームをバック
    アップマップに保持するように前記ログを使用し、 個々のm論理レジスタの現在のポイントでの物理ホーム
    のマップをバックアップマップに保持し、 所定マップ内に現在のポイントでの個々のm論理レジス
    タの物理ホームのマップを保持し、 レジスタをマッピングする際に、特定の論理レジスタと
    関連した物理ホームがバックアップマップと予報マップ
    のどちらから得られるべきかを示す有効ビットの組みを
    保持することを備えることを特徴とする方法。
  4. 【請求項4】 請求項3記載の方法において更に、有効
    ビットの組みをフラッシュクリアし、それによって、イ
    ンストラクションストリームをバッキングアップする際
    に論理レジスタに対する正確な物理ホームをバックアッ
    プマップから得るべきことを示す方法。
  5. 【請求項5】 請求項3記載の方法において、フリーリ
    ストを保持する段階は、変更された論理レジスタに対す
    る現在の物理ホームをフリーリスト内の第1のロケーシ
    ョンに記憶し、変更された論理レジスタに対する新しい
    物理ホームをフリーリスト内の第2のロケーションに割
    り当てることを含む方法。
  6. 【請求項6】 請求項5記載の方法において、フリーリ
    ストを保持する段階は更に、エージされた物理ホームを
    新しい物理ホームとして変更された論理レジスタに対し
    て割り当てる前に、バックアップ時間に等しい時間間隔
    の間中記憶された現在の物理ホームをエージすることを
    含む方法。
  7. 【請求項7】 請求項6記載の方法において、予報マッ
    プ内に保持する段階は、変更された論理レジスタに対す
    る新しい物理ホームを、論理レジスタによって表示され
    たロケーションにおいて予報マップ中に記憶することを
    含む方法。
  8. 【請求項8】 請求項7記載の方法において、有効ビッ
    トのセットを保持する段階は、変更された論理レジスタ
    に対応する有効ビットをセットすることを含む方法。
  9. 【請求項9】 請求項8記載の方法において、バックア
    ップマップ内で保持する段階は、1バックアップ時間前
    に変更された論理レジスタを認識するためにログをアド
    レス指定し、1バックアップ時間前に変更された論理レ
    ジスタに割り当てられた物理ホームをフリーリストから
    認識し、この物理ホームを論理レジスタによって表示さ
    れたロケーションにおいてバックアップマップ中に記憶
    することを含む方法。
JP3159099A 1990-06-29 1991-06-28 一サイクルレジスタマッピング Expired - Fee Related JPH0772865B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/546,411 US5197132A (en) 1990-06-29 1990-06-29 Register mapping system having a log containing sequential listing of registers that were changed in preceding cycles for precise post-branch recovery
US546411 1990-06-29

Publications (2)

Publication Number Publication Date
JPH0644071A JPH0644071A (ja) 1994-02-18
JPH0772865B2 true JPH0772865B2 (ja) 1995-08-02

Family

ID=24180310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3159099A Expired - Fee Related JPH0772865B2 (ja) 1990-06-29 1991-06-28 一サイクルレジスタマッピング

Country Status (6)

Country Link
US (1) US5197132A (ja)
EP (1) EP0463628B1 (ja)
JP (1) JPH0772865B2 (ja)
AU (1) AU624043B2 (ja)
CA (1) CA2042767A1 (ja)
DE (1) DE69133302T2 (ja)

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
GB9112754D0 (en) * 1991-06-13 1991-07-31 Int Computers Ltd Data processing apparatus
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5398330A (en) 1992-03-05 1995-03-14 Seiko Epson Corporation Register file backup queue
DE69311330T2 (de) * 1992-03-31 1997-09-25 Seiko Epson Corp., Tokio/Tokyo Befehlsablauffolgeplanung von einem risc-superskalarprozessor
US5418922A (en) * 1992-04-30 1995-05-23 International Business Machines Corporation History table for set prediction for accessing a set associative cache
EP0638183B1 (en) * 1992-05-01 1997-03-05 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
US5481683A (en) * 1992-10-30 1996-01-02 International Business Machines Corporation Super scalar computer architecture using remand and recycled general purpose register to manage out-of-order execution of instructions
US5519841A (en) * 1992-11-12 1996-05-21 Digital Equipment Corporation Multi instruction register mapper
US6282629B1 (en) 1992-11-12 2001-08-28 Compaq Computer Corporation Pipelined processor for performing parallel instruction recording and register assigning
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
US5694564A (en) * 1993-01-04 1997-12-02 Motorola, Inc. Data processing system a method for performing register renaming having back-up capability
TW242673B (ja) * 1993-08-18 1995-03-11 Ibm
US5499352A (en) * 1993-09-30 1996-03-12 Intel Corporation Floating point register alias table FXCH and retirement floating point register array
US5613132A (en) * 1993-09-30 1997-03-18 Intel Corporation Integer and floating point register alias table within processor device
US5548776A (en) * 1993-09-30 1996-08-20 Intel Corporation N-wide bypass for data dependencies within register alias table
US5471633A (en) * 1993-09-30 1995-11-28 Intel Corporation Idiom recognizer within a register alias table
US5446912A (en) * 1993-09-30 1995-08-29 Intel Corporation Partial width stalls within register alias table
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
US5630149A (en) * 1993-10-18 1997-05-13 Cyrix Corporation Pipelined processor with register renaming hardware to accommodate multiple size registers
US6073231A (en) * 1993-10-18 2000-06-06 Via-Cyrix, Inc. Pipelined processor with microcontrol of register translation hardware
US5922070A (en) * 1994-01-11 1999-07-13 Texas Instruments Incorporated Pipelined data processing including program counter recycling
US6047369A (en) * 1994-02-28 2000-04-04 Intel Corporation Flag renaming and flag masks within register alias table
US5809271A (en) * 1994-03-01 1998-09-15 Intel Corporation Method and apparatus for changing flow of control in a processor
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
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
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
US5740414A (en) * 1995-02-14 1998-04-14 Hal Computer Systems, Inc. Method and apparatus for coordinating the use of physical registers in a microprocessor
US5675759A (en) * 1995-03-03 1997-10-07 Shebanow; Michael C. Method and apparatus for register management using issue sequence prior physical register and register association validity information
JP3630804B2 (ja) * 1995-11-30 2005-03-23 三洋電機株式会社 データ処理装置
US5794024A (en) * 1996-03-25 1998-08-11 International Business Machines Corporation Method and system for dynamically recovering a register-address-table upon occurrence of an interrupt or branch misprediction
US5745780A (en) * 1996-03-27 1998-04-28 International Business Machines Corporation Method and apparatus for source lookup within a central processing unit
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
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
US5983342A (en) * 1996-09-12 1999-11-09 Advanced Micro Devices, Inc. Superscalar microprocessor employing a future file for storing results into multiportion registers
GB2317467B (en) * 1996-09-23 2000-11-01 Advanced Risc Mach Ltd Input operand control in data processing systems
GB2317469B (en) * 1996-09-23 2001-02-21 Advanced Risc Mach Ltd Data processing system register control
GB2317464A (en) * 1996-09-23 1998-03-25 Advanced Risc Mach Ltd Register addressing in a data processing apparatus
GB2317465B (en) * 1996-09-23 2000-11-15 Advanced Risc Mach Ltd Data processing apparatus registers.
US5784602A (en) * 1996-10-08 1998-07-21 Advanced Risc Machines Limited Method and apparatus for digital signal processing for integrated circuit architecture
US6385715B1 (en) * 1996-11-13 2002-05-07 Intel Corporation Multi-threading for a processor utilizing a replay queue
US6163838A (en) * 1996-11-13 2000-12-19 Intel Corporation Computer processor with a replay system
US7200737B1 (en) * 1996-11-13 2007-04-03 Intel Corporation Processor with a replay system that includes a replay queue for improved throughput
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
EP0863460B1 (en) * 1997-03-03 2005-08-24 International Business Machines Corporation Management of renamed registers in a superscalar computer system
US6052777A (en) * 1997-06-25 2000-04-18 Sun Microsystems, Inc. Method for delivering precise traps and interrupts in an out-of-order processor
US6049868A (en) * 1997-06-25 2000-04-11 Sun Microsystems, Inc. Apparatus for delivering precise traps and interrupts in an out-of-order processor
US6438740B1 (en) * 1997-08-21 2002-08-20 Compaq Information Technologies Group, L.P. System and method for dynamically identifying free registers
JPH1196002A (ja) 1997-09-18 1999-04-09 Sanyo Electric Co Ltd データ処理装置
US6212619B1 (en) 1998-05-11 2001-04-03 International Business Machines Corporation System and method for high-speed register renaming by counting
US6119223A (en) * 1998-07-31 2000-09-12 Advanced Micro Devices, Inc. Map unit having rapid misprediction recovery
US6122656A (en) * 1998-07-31 2000-09-19 Advanced Micro Devices, Inc. Processor configured to map logical register numbers to physical register numbers using virtual register numbers
US6230262B1 (en) * 1998-07-31 2001-05-08 Advanced Micro Devices, Inc. Processor configured to selectively free physical registers upon retirement of instructions
US6405304B1 (en) * 1998-08-24 2002-06-11 Compaq Information Technologies Group, L.P. Method for mapping instructions using a set of valid and invalid logical to physical register assignments indicated by bits of a valid vector together with a logical register list
DE60045286D1 (de) * 1999-09-08 2011-01-05 Hajime Seki Registerumbenennungssystem
US6629271B1 (en) * 1999-12-28 2003-09-30 Intel Corporation Technique for synchronizing faults in a processor having a replay system
US6633970B1 (en) 1999-12-28 2003-10-14 Intel Corporation Processor with registers storing committed/speculative data and a RAT state history recovery mechanism with retire pointer
US6516405B1 (en) * 1999-12-30 2003-02-04 Intel Corporation Method and system for safe data dependency collapsing based on control-flow speculation
US7191315B2 (en) * 2001-06-04 2007-03-13 Sun Microsystems, Inc. Method and system for tracking and recycling physical register assignment
US7349398B1 (en) * 2001-12-31 2008-03-25 Redback Networks, Inc. Method and apparatus for out-of-order processing of packets
US7349399B1 (en) 2002-09-20 2008-03-25 Redback Networks, Inc. Method and apparatus for out-of-order processing of packets using linked lists
US7080209B2 (en) * 2002-12-24 2006-07-18 Intel Corporation Method and apparatus for processing a load-lock instruction using a relaxed lock protocol
US20040123078A1 (en) * 2002-12-24 2004-06-24 Hum Herbert H Method and apparatus for processing a load-lock instruction using a scoreboard mechanism
US7069411B1 (en) * 2003-08-04 2006-06-27 Advanced Micro Devices, Inc. Mapper circuit with backup capability
US7409500B2 (en) * 2004-01-13 2008-08-05 Hewlett-Packard Development Company, L.P. Systems and methods for employing speculative fills
US7409503B2 (en) * 2004-01-13 2008-08-05 Hewlett-Packard Development Company, L.P. Register file systems and methods for employing speculative fills
US7360069B2 (en) * 2004-01-13 2008-04-15 Hewlett-Packard Development Company, L.P. Systems and methods for executing across at least one memory barrier employing speculative fills
US7340565B2 (en) * 2004-01-13 2008-03-04 Hewlett-Packard Development Company, L.P. Source request arbitration
US7406565B2 (en) * 2004-01-13 2008-07-29 Hewlett-Packard Development Company, L.P. Multi-processor systems and methods for backup for non-coherent speculative fills
US7376794B2 (en) * 2004-01-13 2008-05-20 Hewlett-Packard Development Company, L.P. Coherent signal in a multi-processor system
US7380107B2 (en) * 2004-01-13 2008-05-27 Hewlett-Packard Development Company, L.P. Multi-processor system utilizing concurrent speculative source request and system source request in response to cache miss
US8281079B2 (en) * 2004-01-13 2012-10-02 Hewlett-Packard Development Company, L.P. Multi-processor system receiving input from a pre-fetch buffer
US7383409B2 (en) 2004-01-13 2008-06-03 Hewlett-Packard Development Company, L.P. Cache systems and methods for employing speculative fills
US8301844B2 (en) * 2004-01-13 2012-10-30 Hewlett-Packard Development Company, L.P. Consistency evaluation of program execution across at least one memory barrier
US8838544B2 (en) * 2009-09-23 2014-09-16 International Business Machines Corporation Fast history based compression in a pipelined architecture
WO2013101006A1 (en) 2011-12-28 2013-07-04 Intel Corporation Generic address scrambler for memory circuit test engine
CN104205234B (zh) * 2012-03-30 2017-07-11 英特尔公司 用于存储器电路测试引擎的通用数据加扰器
US9471325B2 (en) * 2013-07-12 2016-10-18 Qualcomm Incorporated Method and apparatus for selective renaming in a microprocessor
CN119718430B (zh) * 2024-12-05 2026-03-06 暨南大学 一种低功耗单发射乱序执行risc-v处理器和指令处理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5621242A (en) * 1979-07-28 1981-02-27 Fujitsu Ltd Pipeline control method for computer operation
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
US4646236A (en) * 1981-04-17 1987-02-24 International Business Machines Corp. Pipelined control apparatus with multi-process address storage
EP0124517A1 (en) * 1982-10-22 1984-11-14 International Business Machines Corporation Accelerated instruction mapping external to source and target instruction streams for near realtime injection into the latter
WO1985000453A1 (en) * 1983-07-11 1985-01-31 Prime Computer, Inc. Data processing system
US4612612A (en) * 1983-08-30 1986-09-16 Amdahl Corporation Virtually addressed cache
JPS6051948A (ja) * 1983-08-31 1985-03-23 Hitachi Ltd 情報処理装置
JPH081601B2 (ja) * 1984-12-07 1996-01-10 株式会社日立製作所 情報処理装置
JPH0652511B2 (ja) * 1984-12-14 1994-07-06 株式会社日立製作所 情報処理装置のアドレス変換方式
JPH0762823B2 (ja) * 1985-05-22 1995-07-05 株式会社日立製作所 デ−タ処理装置
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

Also Published As

Publication number Publication date
DE69133302D1 (de) 2003-09-25
AU624043B2 (en) 1992-05-28
AU7527891A (en) 1992-03-12
EP0463628A3 (en) 1993-09-01
DE69133302T2 (de) 2004-06-24
EP0463628B1 (en) 2003-08-20
US5197132A (en) 1993-03-23
EP0463628A2 (en) 1992-01-02
JPH0644071A (ja) 1994-02-18
CA2042767A1 (en) 1991-12-30

Similar Documents

Publication Publication Date Title
JPH0772865B2 (ja) 一サイクルレジスタマッピング
US5758112A (en) Pipeline processor with enhanced method and apparatus for restoring register-renaming information in the event of a branch misprediction
JP2889955B2 (ja) 分岐予測の方法とそのための装置
JP2746549B2 (ja) コンピュータシステム及びその動作方法
JP3781051B2 (ja) スーパースケーラマイクロプロセサ
US5805878A (en) Method and apparatus for generating branch predictions for multiple branch instructions indexed by a single instruction pointer
US7624253B2 (en) Determining register availability for register renaming
US5896528A (en) Superscalar processor with multiple register windows and speculative return address generation
US8943298B2 (en) Meta predictor restoration upon detecting misprediction
US6009509A (en) Method and system for the temporary designation and utilization of a plurality of physical registers as a stack
JP3919802B2 (ja) プロセッサ、およびプロセッサにおいて命令演算をスケジューリングするための方法
US6003126A (en) Special instruction register including allocation field utilized for temporary designation of physical registers as general registers
EP2220556B1 (en) A method and a system for accelerating procedure return sequences
EP0588252A2 (en) Apparatus for implementing interrupts in pipelined processors
JP2596712B2 (ja) 近接した分岐命令を含む命令の実行を管理するシステム及び方法
US6484256B1 (en) Apparatus and method of branch prediction utilizing a comparison of a branch history table to an aliasing table
JPH096612A (ja) カウント・レジスタおよびリンク・レジスタへの書込みを行う多重分岐命令を処理するための方法と装置
US5974535A (en) Method and system in data processing system of permitting concurrent processing of instructions of a particular type
IE940854A1 (en) Data processor with branch prediction and method of¹operation
JP2943772B2 (ja) 分岐予測方式
US6266761B1 (en) Method and system in an information processing system for efficient maintenance of copies of values stored within registers
JPH0385636A (ja) 命令先行制御装置
US20050033942A1 (en) Distribution of architectural state information in a processor across multiple pipeline stages

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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: 20080802

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees