JPH1040103A - レジスタ・リマップ構造を有する情報処理システム及び方法 - Google Patents
レジスタ・リマップ構造を有する情報処理システム及び方法Info
- Publication number
- JPH1040103A JPH1040103A JP9090409A JP9040997A JPH1040103A JP H1040103 A JPH1040103 A JP H1040103A JP 9090409 A JP9090409 A JP 9090409A JP 9040997 A JP9040997 A JP 9040997A JP H1040103 A JPH1040103 A JP H1040103A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- buffer
- completion
- registers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 21
- 238000000034 method Methods 0.000 title claims description 14
- 239000000872 buffer Substances 0.000 claims abstract description 91
- 230000015654 memory Effects 0.000 claims abstract description 33
- 230000000295 complement effect Effects 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 101000651887 Homo sapiens Neutral and basic amino acid transport protein rBAT Proteins 0.000 description 1
- 102100027341 Neutral and basic amino acid transport protein rBAT Human genes 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 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
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, 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)
Abstract
(57)【要約】
【課題】 順序外(out-of-order)命令実行を可能とする
機構を有する情報処理システムに関する。 【解決手段】 情報処理システムが、命令ユニットと、
1又は複数の実行ユニットと、命令ユニット及びメモリ
・システムへ接続されたメモリ管理ユニットと、1又は
複数の実行ユニットに関連する1又は複数のレベルのキ
ャッシュ・メモリと、実行ユニット、メモリ・システ
ム、及びキャッシュ・メモリへ接続されたシステム・バ
スと、システム・バスへ接続されI/O装置を制御する
1又は複数のI/O制御装置と、命令ディスパッチ及び
命令完了の順序を追跡する完了ユニットとを有する。完
了ユニットは、オペランドの使用可能性に依存する順序
により命令の実行及び完了の順序を制御するために内容
アドレス・レジスタ・バッファ割当てテーブルと、レジ
スタ状態テーブルと、命令キューと、完了テーブルとを
有する。
機構を有する情報処理システムに関する。 【解決手段】 情報処理システムが、命令ユニットと、
1又は複数の実行ユニットと、命令ユニット及びメモリ
・システムへ接続されたメモリ管理ユニットと、1又は
複数の実行ユニットに関連する1又は複数のレベルのキ
ャッシュ・メモリと、実行ユニット、メモリ・システ
ム、及びキャッシュ・メモリへ接続されたシステム・バ
スと、システム・バスへ接続されI/O装置を制御する
1又は複数のI/O制御装置と、命令ディスパッチ及び
命令完了の順序を追跡する完了ユニットとを有する。完
了ユニットは、オペランドの使用可能性に依存する順序
により命令の実行及び完了の順序を制御するために内容
アドレス・レジスタ・バッファ割当てテーブルと、レジ
スタ状態テーブルと、命令キューと、完了テーブルとを
有する。
Description
【0001】
【発明の属する技術分野】本発明は、情報処理システム
に関し、特に、順序外(out-of-order)命令実行を可能
とする機構を有する情報処理システムに関する。
に関し、特に、順序外(out-of-order)命令実行を可能
とする機構を有する情報処理システムに関する。
【0002】
【従来の技術】通常のコンピュータ・データ処理システ
ムの設計では、汎用レジスタ(GPR)及び浮動小数点
レジスタ等の所定数のアドレス・レジスタを構築するこ
とを要する。これらのレジスタは、プログラマがデータ
処理システムのためにプログラムを設計する際に用いら
れる。仮に、システムが使用可能であるとき直ちにアー
キテクチャ的に使用可能なレジスタの数を変更しようと
すると、新たに追加されたレジスタを利用するためにプ
ログラムの大幅な書き換えが必要となるであろう。
ムの設計では、汎用レジスタ(GPR)及び浮動小数点
レジスタ等の所定数のアドレス・レジスタを構築するこ
とを要する。これらのレジスタは、プログラマがデータ
処理システムのためにプログラムを設計する際に用いら
れる。仮に、システムが使用可能であるとき直ちにアー
キテクチャ的に使用可能なレジスタの数を変更しようと
すると、新たに追加されたレジスタを利用するためにプ
ログラムの大幅な書き換えが必要となるであろう。
【0003】コンピュータ及びコンピュータ・プログラ
ムの設計においても、コンピュータ・データ処理システ
ムのプログラム命令が、プログラムに書かれかつデータ
処理システムへロードされた順序でデータ処理システム
により実行されることを前提としている。データ処理シ
ステムに対しては、命令がプログラム順で実行されたよ
うに論理上見えなければならないが、一方、所与の命令
に関しては、他の命令との間に何らかの依存性をもたな
い場合には物理的にプログラム順に実行されなくともよ
いように、コンピュータ性能を向上させるための努力が
なされてきた。さらに、所与の命令が順序を外れて実行
される場合、そしてそのような命令の1つが分岐命令で
あって後続の命令シーケンスを選択するために分岐予測
が行われる場合、仮にその分岐が誤って予測されたとす
れば、予測された分岐内の命令により元の値に影響を受
けるレジスタを再記憶する必要が生じてくる。このよう
な場合、データ処理システムは、分岐が行われる前の状
態に再記憶される。順序を外れて命令を効率的に実行す
るプロセスにおいては、分岐後の命令により影響される
レジスタのために、予測された分岐以前のレジスタの値
を維持する必要がある。その一方、予測された分岐後の
命令により影響を受けるレジスタのために、新たな値を
偶発的に記憶するための用意もなされる。分岐命令が解
決されたとき、新たなレジスタ値の偶発性は排除され、
その新たな値がそのレジスタの確立された値となる。
ムの設計においても、コンピュータ・データ処理システ
ムのプログラム命令が、プログラムに書かれかつデータ
処理システムへロードされた順序でデータ処理システム
により実行されることを前提としている。データ処理シ
ステムに対しては、命令がプログラム順で実行されたよ
うに論理上見えなければならないが、一方、所与の命令
に関しては、他の命令との間に何らかの依存性をもたな
い場合には物理的にプログラム順に実行されなくともよ
いように、コンピュータ性能を向上させるための努力が
なされてきた。さらに、所与の命令が順序を外れて実行
される場合、そしてそのような命令の1つが分岐命令で
あって後続の命令シーケンスを選択するために分岐予測
が行われる場合、仮にその分岐が誤って予測されたとす
れば、予測された分岐内の命令により元の値に影響を受
けるレジスタを再記憶する必要が生じてくる。このよう
な場合、データ処理システムは、分岐が行われる前の状
態に再記憶される。順序を外れて命令を効率的に実行す
るプロセスにおいては、分岐後の命令により影響される
レジスタのために、予測された分岐以前のレジスタの値
を維持する必要がある。その一方、予測された分岐後の
命令により影響を受けるレジスタのために、新たな値を
偶発的に記憶するための用意もなされる。分岐命令が解
決されたとき、新たなレジスタ値の偶発性は排除され、
その新たな値がそのレジスタの確立された値となる。
【0004】従来、大きなプロセッサではオーバラップ
技術が用いられている。この技術によれば、データ処理
システム内において多重命令が、同時に様々な実行状態
にある。このような技術は「パイプライン」と称され
る。パイプラインが用いられる場合は必ず、各命令間の
依存性を検知して常にオーバラップしているオペレーシ
ョンを変更する制御論理が必要である。それにより、命
令の結果が、同時一命令のアーキテクチャをもつデータ
・プロセッサ・モデルに沿った結果となる。パイプライ
ン装置においては、1つの命令の処理の異なる段階に対
して別個のハードウェアが設けられる。例えば、ある命
令が1つの段階での処理を終えると、その命令は次の段
階に移行し、そして別の命令がその空いたばかりの段階
へと移行してくる。
技術が用いられている。この技術によれば、データ処理
システム内において多重命令が、同時に様々な実行状態
にある。このような技術は「パイプライン」と称され
る。パイプラインが用いられる場合は必ず、各命令間の
依存性を検知して常にオーバラップしているオペレーシ
ョンを変更する制御論理が必要である。それにより、命
令の結果が、同時一命令のアーキテクチャをもつデータ
・プロセッサ・モデルに沿った結果となる。パイプライ
ン装置においては、1つの命令の処理の異なる段階に対
して別個のハードウェアが設けられる。例えば、ある命
令が1つの段階での処理を終えると、その命令は次の段
階に移行し、そして別の命令がその空いたばかりの段階
へと移行してくる。
【0005】多くのパイプライン装置においては、複数
の命令が、その処理のいずれか特定の段階に関して順序
に従って維持されている。その一方で、別の複数の命令
の別の処理段階も、同時に発生している。未だ発生され
ていない結果が他の何らかの実行中の命令により必要と
されることを制御論理が検知した場合、制御論理は、そ
の結果が発生されそしてパイプラインのその結果を必要
とする部分へ渡されるまで、パイプラインのその部分を
停止させなければならない。この制御論理は複雑ではあ
るが、パイプライン中の命令の順序を維持することによ
り、制御下にある複雑さの程度を維持することができ
る。
の命令が、その処理のいずれか特定の段階に関して順序
に従って維持されている。その一方で、別の複数の命令
の別の処理段階も、同時に発生している。未だ発生され
ていない結果が他の何らかの実行中の命令により必要と
されることを制御論理が検知した場合、制御論理は、そ
の結果が発生されそしてパイプラインのその結果を必要
とする部分へ渡されるまで、パイプラインのその部分を
停止させなければならない。この制御論理は複雑ではあ
るが、パイプライン中の命令の順序を維持することによ
り、制御下にある複雑さの程度を維持することができ
る。
【0006】データ処理システムが別の実行ユニットを
含む場合には、さらに複雑な形のオーバラップが生じ
る。複数の別個の命令がそれらの特定形式の実行ユニッ
ト内で複数の別個の実行時間を有し、かつ、各命令間の
依存性も時間により変化するので、これらの命令がプロ
グラム順序とは異なる順序で実行されてその結果を出す
ことになるのはほとんど避けられない。このようなデー
タ処理システムが論理的に正確に動作するよう維持する
ためには、パイプライン機構に必要とされるよりもさら
に複雑な制御機構が必要である。
含む場合には、さらに複雑な形のオーバラップが生じ
る。複数の別個の命令がそれらの特定形式の実行ユニッ
ト内で複数の別個の実行時間を有し、かつ、各命令間の
依存性も時間により変化するので、これらの命令がプロ
グラム順序とは異なる順序で実行されてその結果を出す
ことになるのはほとんど避けられない。このようなデー
タ処理システムが論理的に正確に動作するよう維持する
ためには、パイプライン機構に必要とされるよりもさら
に複雑な制御機構が必要である。
【0007】割込みは、分岐と同じ効果を有する。命令
が割込みをさせるとき、割込みが発生した時点の状態へ
装置を再記憶する機構を有することにより、それより新
しい全ての命令の影響を排除しなければならない。
が割込みをさせるとき、割込みが発生した時点の状態へ
装置を再記憶する機構を有することにより、それより新
しい全ての命令の影響を排除しなければならない。
【0008】複数の実行ユニットを有するデータ処理シ
ステムに発生する問題の1つは、プロセッサ実行中の任
意の時点で正確な割込みを行うことである。例えば、命
令がオーバフロー状態を起こした場合、このオーバフロ
ーが検知される時点までに、後続する命令が既に実行さ
れレジスタ又は主記憶装置にその結果を入れてしまって
いることは十分に有り得ることである。このようなこと
は、本来、割込み命令が適切に実行された後にのみ存在
すべき状態である。このように、割込みを検知すると共
にそれ以前の命令は実行されかつそれ以後の命令は実行
されていないデータ処理システムの状態を保存すること
は、困難である。この例では、オーバフロー割込みは、
実際には後続する命令の実行が行われた後に認識される
ことになる。従来技術においては、他にも類似の状況が
起こり得る。
ステムに発生する問題の1つは、プロセッサ実行中の任
意の時点で正確な割込みを行うことである。例えば、命
令がオーバフロー状態を起こした場合、このオーバフロ
ーが検知される時点までに、後続する命令が既に実行さ
れレジスタ又は主記憶装置にその結果を入れてしまって
いることは十分に有り得ることである。このようなこと
は、本来、割込み命令が適切に実行された後にのみ存在
すべき状態である。このように、割込みを検知すると共
にそれ以前の命令は実行されかつそれ以後の命令は実行
されていないデータ処理システムの状態を保存すること
は、困難である。この例では、オーバフロー割込みは、
実際には後続する命令の実行が行われた後に認識される
ことになる。従来技術においては、他にも類似の状況が
起こり得る。
【0009】所与の従来のデータ処理システムの設計者
は、割込みの時点で所与の実行状態にある全ての命令に
ついて可能な限りそれらの実行を完了させることにより
割込みを処理することを選択し、そしてその直前の命令
シーケンス中の所与の命令が割込み状態を発生させたこ
とを報告する「不正確な」割込みを採用した。これは、
オーバフロー等の状態に関する割込みを処理する場合に
は、合理的な方法である。なぜなら、プログラムのバグ
を訂正したり入力データを修正したりしてそのプログラ
ムを最初から再実行するプログラマに対して結果が戻さ
れるからである。しかしながら、この方法は、ページ不
在等の割込みを処理する場合には不適当である。なぜな
ら、システム・プログラムは、何らかの修正動作を行っ
た後にその割り込み点から実行を回復させるからであ
る。
は、割込みの時点で所与の実行状態にある全ての命令に
ついて可能な限りそれらの実行を完了させることにより
割込みを処理することを選択し、そしてその直前の命令
シーケンス中の所与の命令が割込み状態を発生させたこ
とを報告する「不正確な」割込みを採用した。これは、
オーバフロー等の状態に関する割込みを処理する場合に
は、合理的な方法である。なぜなら、プログラムのバグ
を訂正したり入力データを修正したりしてそのプログラ
ムを最初から再実行するプログラマに対して結果が戻さ
れるからである。しかしながら、この方法は、ページ不
在等の割込みを処理する場合には不適当である。なぜな
ら、システム・プログラムは、何らかの修正動作を行っ
た後にその割り込み点から実行を回復させるからであ
る。
【0010】米国特許第4574349号の開示では、
各GPRに関連させて更なるレジスタを設けており、ポ
インタ値の利用と共にレジスタのネーム変更(リネー
ム)が行われる。しかしながら、当該特許は、割込みか
らの正確な回復の問題や、順序外実行において誤って推
論された分岐からの回復の問題を解決していない。
各GPRに関連させて更なるレジスタを設けており、ポ
インタ値の利用と共にレジスタのネーム変更(リネー
ム)が行われる。しかしながら、当該特許は、割込みか
らの正確な回復の問題や、順序外実行において誤って推
論された分岐からの回復の問題を解決していない。
【0011】米国特許第4901233号及び同第51
34561号は、システム・アーキテクチャにおいてネ
ーム付けされたよりも多くの汎用の物理レジスタを有す
るレジスタ管理システムを開示している。リネーム・シ
ステムは、構造化アドレス・レジスタとして若しくは汎
用レジスタとして動作させるべく特定の物理レジスタを
識別する。物理レジスタの割当てと状態を監視するため
にアレイ制御リスト(ACL)が設けられる。全ての構
造化レジスタの状態及び物理レジスタへの対応を監視す
るためにデコード・レジスタ割当てリスト(DRAL)
が設けられる。順序外命令及び条件分岐命令の実行中に
古い状態情報を保存するためにバックアップ・レジスタ
割当てリスト(BRAL)が用いられる。物理レジスタ
は、実行の異なる段階における内容を表現する個々のア
ドレス・レジスタの多数の複写を格納することができ
る。アドレス・レジスタの状態は、回復を必要とする問
題を生じる順序外実行の場合や条件分岐の場合に再記憶
することができる。レジスタ管理システムは、異なる形
式の多数の実行ユニットを有するプロセッサに対して用
いることができる。
34561号は、システム・アーキテクチャにおいてネ
ーム付けされたよりも多くの汎用の物理レジスタを有す
るレジスタ管理システムを開示している。リネーム・シ
ステムは、構造化アドレス・レジスタとして若しくは汎
用レジスタとして動作させるべく特定の物理レジスタを
識別する。物理レジスタの割当てと状態を監視するため
にアレイ制御リスト(ACL)が設けられる。全ての構
造化レジスタの状態及び物理レジスタへの対応を監視す
るためにデコード・レジスタ割当てリスト(DRAL)
が設けられる。順序外命令及び条件分岐命令の実行中に
古い状態情報を保存するためにバックアップ・レジスタ
割当てリスト(BRAL)が用いられる。物理レジスタ
は、実行の異なる段階における内容を表現する個々のア
ドレス・レジスタの多数の複写を格納することができ
る。アドレス・レジスタの状態は、回復を必要とする問
題を生じる順序外実行の場合や条件分岐の場合に再記憶
することができる。レジスタ管理システムは、異なる形
式の多数の実行ユニットを有するプロセッサに対して用
いることができる。
【0012】IBM Technical Disclosure Bulletin(1981
年8月、1404〜1405頁)に掲載の「General Purpose Regi
ster Extension」では、スイッチング・サブルーチンの
ときに記憶装置の使用を回避するために、GPRの多数
の組の間を切り換えるシステムが開示されている。
年8月、1404〜1405頁)に掲載の「General Purpose Regi
ster Extension」では、スイッチング・サブルーチンの
ときに記憶装置の使用を回避するために、GPRの多数
の組の間を切り換えるシステムが開示されている。
【0013】また、IBM Technical Disclosure Bulleti
n(1982年6月、86〜87頁)に掲載の「Vector-Register Re
name Mechanism」では、命令実行中にダミー・レジスタ
を使用することが開示されている。実行が完了するとき
そのレジスタは、結果を受け取るために、命令によりネ
ーム付けされた構造化レジスタとしてネーム変更(リネ
ーム)される。実行中、そのレジスタは透過性であり、
そしてこれにより余分の物理レジスタが与えられる。し
かしながら、これらの文献のいずれにも、順序外実行に
より生じる問題の処理に関する記載はない。
n(1982年6月、86〜87頁)に掲載の「Vector-Register Re
name Mechanism」では、命令実行中にダミー・レジスタ
を使用することが開示されている。実行が完了するとき
そのレジスタは、結果を受け取るために、命令によりネ
ーム付けされた構造化レジスタとしてネーム変更(リネ
ーム)される。実行中、そのレジスタは透過性であり、
そしてこれにより余分の物理レジスタが与えられる。し
かしながら、これらの文献のいずれにも、順序外実行に
より生じる問題の処理に関する記載はない。
【0014】また、IBM Technical Disclosure Bulleti
n(1986年8月、991〜993頁)に掲載の「Use of a Second
Set of General Purpose Registers to Allow Changing
General-Purpose Registers During Conditional Bran
ch Resolutions」では、1対1適合するGPRの2次セ
ットが示され、条件分岐を解決する間に元のGPR内容
を保持することにより、必要に応じてシステム状態を回
復するためにその内容を利用できる。レジスタの状態を
調整するために、又は、レジスタの元の内容を再記憶す
るために、条件モード・タグがGPRと共に用いられ
る。
n(1986年8月、991〜993頁)に掲載の「Use of a Second
Set of General Purpose Registers to Allow Changing
General-Purpose Registers During Conditional Bran
ch Resolutions」では、1対1適合するGPRの2次セ
ットが示され、条件分岐を解決する間に元のGPR内容
を保持することにより、必要に応じてシステム状態を回
復するためにその内容を利用できる。レジスタの状態を
調整するために、又は、レジスタの元の内容を再記憶す
るために、条件モード・タグがGPRと共に用いられ
る。
【0015】また、IBM Technical Disclosure Bulleti
n(Volume 10A、1992年3月、449〜454頁)に開示の並行処
理を利用する技術によれば、構造化レジスタ・ネームの
組を、より大きな物理ネームの組へマッピングすること
により、大きな物理位置を単一の構造化ネームへと変更
することができる。この技術では、順序外オペレーショ
ンにおける正確な割込みが可能である。
n(Volume 10A、1992年3月、449〜454頁)に開示の並行処
理を利用する技術によれば、構造化レジスタ・ネームの
組を、より大きな物理ネームの組へマッピングすること
により、大きな物理位置を単一の構造化ネームへと変更
することができる。この技術では、順序外オペレーショ
ンにおける正確な割込みが可能である。
【0016】
【発明が解決しようとする課題】本発明の目的は、単純
でフレキシブルなアーキテクチャにより、オペランドへ
の迅速なアクセス及びハードウェアの軽減と共に順序外
命令実行を可能とし、結果的にコストを低減することで
ある。本発明の他の特徴及び利点は、図面と共に示され
る以下の本発明の実施例に関する詳細な説明により明ら
かとされるであろう。
でフレキシブルなアーキテクチャにより、オペランドへ
の迅速なアクセス及びハードウェアの軽減と共に順序外
命令実行を可能とし、結果的にコストを低減することで
ある。本発明の他の特徴及び利点は、図面と共に示され
る以下の本発明の実施例に関する詳細な説明により明ら
かとされるであろう。
【0017】
【課題を解決するための手段】本発明による情報処理シ
ステムは、命令ユニットと、1又は複数の実行ユニット
と、命令ユニット及びメモリ・システムへ接続されるメ
モリ管理ユニットと、キャ管理ユニットと、1又は複数
の実行ユニットに関連する1又は複数のレベルのキャッ
シュ・メモリと、実行ユニット、メモリ・システム、及
びキャッシュ・メモリを接続するバスへ接続される1又
は複数のI/O制御装置と、命令ディスパッチ及び命令
完了のシーケンスを追跡する完了ユニットとを有する。
ステムは、命令ユニットと、1又は複数の実行ユニット
と、命令ユニット及びメモリ・システムへ接続されるメ
モリ管理ユニットと、キャ管理ユニットと、1又は複数
の実行ユニットに関連する1又は複数のレベルのキャッ
シュ・メモリと、実行ユニット、メモリ・システム、及
びキャッシュ・メモリを接続するバスへ接続される1又
は複数のI/O制御装置と、命令ディスパッチ及び命令
完了のシーケンスを追跡する完了ユニットとを有する。
【0018】図1及び図2は、本発明の方法及び装置に
よるデータ処理システムを示す構成図である。ここで
は、データ処理システム100は、その機能がチップ上
で物理的にいかに実働化されているのかを示すのではな
く、その基本的機能を示すことを目的として概念的構成
図として示されている。
よるデータ処理システムを示す構成図である。ここで
は、データ処理システム100は、その機能がチップ上
で物理的にいかに実働化されているのかを示すのではな
く、その基本的機能を示すことを目的として概念的構成
図として示されている。
【0019】情報処理システムの命令ユニットは、多重
パイプラインへ複数の独立した命令を出すことにより、
複数の命令を並行して実行することができる。図1及び
図2に示すように、データ処理システム100は、5個
の独立した実行ユニットと2個のレジスタ・ファイルと
を有する。5個の独立した実行ユニットには、分岐処理
ユニット(BPU)102、ロード/記憶ユニット10
4、整数ユニット106、及び浮動小数点ユニット10
8が含まれる。レジスタ・ファイルには、整数オペラン
ド用の汎用レジスタ・ファイル(GPR)107及び単
精度若しくは倍精度浮動小数点オペレーション用の浮動
小数点レジスタ・ファイル(FPR)109が含まれ
る。さらに、GPR107及びFPR109は、一組の
リネーム・レジスタを含むことがある。
パイプラインへ複数の独立した命令を出すことにより、
複数の命令を並行して実行することができる。図1及び
図2に示すように、データ処理システム100は、5個
の独立した実行ユニットと2個のレジスタ・ファイルと
を有する。5個の独立した実行ユニットには、分岐処理
ユニット(BPU)102、ロード/記憶ユニット10
4、整数ユニット106、及び浮動小数点ユニット10
8が含まれる。レジスタ・ファイルには、整数オペラン
ド用の汎用レジスタ・ファイル(GPR)107及び単
精度若しくは倍精度浮動小数点オペレーション用の浮動
小数点レジスタ・ファイル(FPR)109が含まれ
る。さらに、GPR107及びFPR109は、一組の
リネーム・レジスタを含むことがある。
【0020】命令ユニット110は、順次フェッチャ1
12、ディスパッチ・バッファ114、ディスパッチ・
ユニット116、及び分岐処理ユニット102を収容す
る。命令ユニット110は、順次フェッチャ112及び
分岐処理ユニット102から受信した情報に基づいて、
取り出すべき次の命令のアドレスを決定する。
12、ディスパッチ・バッファ114、ディスパッチ・
ユニット116、及び分岐処理ユニット102を収容す
る。命令ユニット110は、順次フェッチャ112及び
分岐処理ユニット102から受信した情報に基づいて、
取り出すべき次の命令のアドレスを決定する。
【0021】順次フェッチャ112は、命令キャッシュ
118から命令を取り出し、それらの命令をディスパッ
チ・バッファ114へロードする。分岐命令は、順次フ
ェッチャ112により識別され、ディスパッチ・バッフ
ァ114を介さずに直接分岐処理ユニット102へ送ら
れる。このような分岐命令は、(その分岐が非条件的な
場合若しくは必要な条件が使用可能である場合)実行さ
れて解決されるか、あるいは、予測されるかのいずれか
である。非分岐命令は、実行ユニットのビジー状態、リ
ネーム及び完了バッファの使用可能性、及び所与の命令
の直列化挙動に依存するディスパッチ速度によりディス
パッチ・バッファ114から出される。命令ディスパッ
チは、プログラム順序で行われる。分岐処理ユニット1
02は、解決されない条件分岐に関して静的及び動的な
分岐予測を用いることにより、命令ユニット110が予
測された目標の命令ストリームから命令を取り出せるよ
うにする。その一方で条件分岐が評価される。分岐処理
ユニット102は、非条件分岐又は実行パイプライン中
で進行中の命令により影響されない条件分岐に対して
は、分岐命令をそのままにしておく。
118から命令を取り出し、それらの命令をディスパッ
チ・バッファ114へロードする。分岐命令は、順次フ
ェッチャ112により識別され、ディスパッチ・バッフ
ァ114を介さずに直接分岐処理ユニット102へ送ら
れる。このような分岐命令は、(その分岐が非条件的な
場合若しくは必要な条件が使用可能である場合)実行さ
れて解決されるか、あるいは、予測されるかのいずれか
である。非分岐命令は、実行ユニットのビジー状態、リ
ネーム及び完了バッファの使用可能性、及び所与の命令
の直列化挙動に依存するディスパッチ速度によりディス
パッチ・バッファ114から出される。命令ディスパッ
チは、プログラム順序で行われる。分岐処理ユニット1
02は、解決されない条件分岐に関して静的及び動的な
分岐予測を用いることにより、命令ユニット110が予
測された目標の命令ストリームから命令を取り出せるよ
うにする。その一方で条件分岐が評価される。分岐処理
ユニット102は、非条件分岐又は実行パイプライン中
で進行中の命令により影響されない条件分岐に対して
は、分岐命令をそのままにしておく。
【0022】ディスパッチ・バッファ114は、順次フ
ェッチャ112によりロードされた幾つかの命令を保持
する。順次フェッチャ112は、充填されるディスパッ
チ・バッファ114内の空間を維持するために、連続的
に命令をロードする。命令は、ディスパッチ・ユニット
116からそれぞれの実行ユニットへディスパッチされ
る。動作としては、命令が命令キャッシュ118から取
り出され、ディスパッチ・バッファ114又は分岐処理
ユニット102のいずれかに入れられる。ディスパッチ
・バッファ114に入る命令は、ディスパッチ・バッフ
ァ114から様々な実行ユニットへ出される。そして、
しばしば複数の命令が同時にディスパッチされるが、そ
の場合、後述する方法及びシステムによる複数目標レジ
スタのリネームを必要とすることがある。ディスパッチ
・バッファ114は、データ処理システム100におけ
るマスタ・パイプラインの根幹であり、例えば、8個の
エントリをもつキューを格納している。仮に、ディスパ
ッチ・バッファ114を満たしている間に順次フェッチ
ャ112からの要求が命令キャッシュ118において失
われたならば、メモリ・アクセスの調停が開始される。
ェッチャ112によりロードされた幾つかの命令を保持
する。順次フェッチャ112は、充填されるディスパッ
チ・バッファ114内の空間を維持するために、連続的
に命令をロードする。命令は、ディスパッチ・ユニット
116からそれぞれの実行ユニットへディスパッチされ
る。動作としては、命令が命令キャッシュ118から取
り出され、ディスパッチ・バッファ114又は分岐処理
ユニット102のいずれかに入れられる。ディスパッチ
・バッファ114に入る命令は、ディスパッチ・バッフ
ァ114から様々な実行ユニットへ出される。そして、
しばしば複数の命令が同時にディスパッチされるが、そ
の場合、後述する方法及びシステムによる複数目標レジ
スタのリネームを必要とすることがある。ディスパッチ
・バッファ114は、データ処理システム100におけ
るマスタ・パイプラインの根幹であり、例えば、8個の
エントリをもつキューを格納している。仮に、ディスパ
ッチ・バッファ114を満たしている間に順次フェッチ
ャ112からの要求が命令キャッシュ118において失
われたならば、メモリ・アクセスの調停が開始される。
【0023】データ・キャッシュ126は、ロード/記
憶ユニット104のためのキャッシュ・メモリ機能を提
供する。命令メモリ管理ユニット128及びデータ・メ
モリ管理ユニット130は、それぞれ、命令及びデータ
ために仮想メモリ及び物理メモリへのアクセスをサポー
トする。このようなメモリ管理ユニットは、アドレス変
換を実行し、キャッシュのヒット若しくはミスのいずれ
が発生したかを判断する。
憶ユニット104のためのキャッシュ・メモリ機能を提
供する。命令メモリ管理ユニット128及びデータ・メ
モリ管理ユニット130は、それぞれ、命令及びデータ
ために仮想メモリ及び物理メモリへのアクセスをサポー
トする。このようなメモリ管理ユニットは、アドレス変
換を実行し、キャッシュのヒット若しくはミスのいずれ
が発生したかを判断する。
【0024】バス・インタフェース・ユニット120
は、バス調停に参加することにより外部のアドレス・バ
ス及びデータ・バスへのアクセスを制御する。外部アド
レス・バスは符号122で示され、そして外部データ・
バスは符号124で示される。
は、バス調停に参加することにより外部のアドレス・バ
ス及びデータ・バスへのアクセスを制御する。外部アド
レス・バスは符号122で示され、そして外部データ・
バスは符号124で示される。
【0025】完了ユニット136は、実行された命令を
完了ユニット内の完了テーブル(CT)から回収し、レ
ジスタ・ファイル及び制御レジスタを更新する。命令
は、実行を「終了し」かつその先行する全ての命令が
「完了した」時点で、完了テーブルから回収される。命
令の結果は、完了時若しくは完了後に、適宜の構造化レ
ジスタ・ファイル内で見ることができる。幾つかの命令
が同時に完了することが可能である。さらに、完了ユニ
ット136は、例外条件を認識して、プログラム順序に
おける後続の命令に対して実行されているオペレーショ
ンを全て破棄する。
完了ユニット内の完了テーブル(CT)から回収し、レ
ジスタ・ファイル及び制御レジスタを更新する。命令
は、実行を「終了し」かつその先行する全ての命令が
「完了した」時点で、完了テーブルから回収される。命
令の結果は、完了時若しくは完了後に、適宜の構造化レ
ジスタ・ファイル内で見ることができる。幾つかの命令
が同時に完了することが可能である。さらに、完了ユニ
ット136は、例外条件を認識して、プログラム順序に
おける後続の命令に対して実行されているオペレーショ
ンを全て破棄する。
【0026】本発明を実施するデータ処理システムにお
ける本発明に理解に不必要な構成要素については、本明
細書で説明しない。これらの構成要素については、米国
特許出願第08/507542号の開示を参照する。
ける本発明に理解に不必要な構成要素については、本明
細書で説明しない。これらの構成要素については、米国
特許出願第08/507542号の開示を参照する。
【0027】図3及び図4は、本発明によるレジスタ・
アレイを管理するシステムを示すハイレベルの構成図で
ある。前述の通り、ディスパッチ・バッファ114は、
実行ユニットへのディスパッチを待っている命令を保持
する。これらの命令は、命令コードのフィールド140
と、1又は複数の構造化ソース・レジスタ・アドレスの
フィールド142と、構造化宛先レジスタ・アドレスの
フィールド144とを含む。
アレイを管理するシステムを示すハイレベルの構成図で
ある。前述の通り、ディスパッチ・バッファ114は、
実行ユニットへのディスパッチを待っている命令を保持
する。これらの命令は、命令コードのフィールド140
と、1又は複数の構造化ソース・レジスタ・アドレスの
フィールド142と、構造化宛先レジスタ・アドレスの
フィールド144とを含む。
【0028】GPRファイル107は、構造化汎用レジ
スタ222と、レジスタ・バッファ212内のリネーム
・バッファ・レジスタとを含む。
スタ222と、レジスタ・バッファ212内のリネーム
・バッファ・レジスタとを含む。
【0029】ディスパッチ・バッファ114へは、内容
アドレス・レジスタ・バッファ割当てテーブル(CRB
AT)202及び命令キュー(IQ)204が接続され
る。CRBAT202は、k個のエントリを有する。k
は、更なるバッファ・レジスタ(非構造化レジスタ)の
数である。本発明の一実施例では、kが8である。本発
明の一態様においては、CRBAT202が、内容アド
レス・メモリ(CAM)を用いて実施される。内容アド
レス・メモリは、1又は複数の探索フィールド内におけ
る適合に応答してデータの取り出しを可能とするメモリ
である。CRBAT202のこのような探索フィールド
は、構造化宛先レジスタ・アドレス・ポインタを記憶す
るフィールドを含む。CRBAT202は、図5及び図
6に詳細に示されている。
アドレス・レジスタ・バッファ割当てテーブル(CRB
AT)202及び命令キュー(IQ)204が接続され
る。CRBAT202は、k個のエントリを有する。k
は、更なるバッファ・レジスタ(非構造化レジスタ)の
数である。本発明の一実施例では、kが8である。本発
明の一態様においては、CRBAT202が、内容アド
レス・メモリ(CAM)を用いて実施される。内容アド
レス・メモリは、1又は複数の探索フィールド内におけ
る適合に応答してデータの取り出しを可能とするメモリ
である。CRBAT202のこのような探索フィールド
は、構造化宛先レジスタ・アドレス・ポインタを記憶す
るフィールドを含む。CRBAT202は、図5及び図
6に詳細に示されている。
【0030】さらに、CRBAT202内の特定のエン
トリを指示するために、一対のポインタがCRBAT2
02に関連付けられる。このようなポインタは、ヘッド
・ポインタ230及びGRコミット・ポインタ231で
ある。ヘッド・ポインタは、循環ポインタであり、ディ
スパッチ・バッファ114からの構造化宛先レジスタ・
アドレスを受信しかつ記憶するべく次のCRBATエン
トリを選択するために用いられる。GRコミット・ポイ
ンタは、CT206からフィールド226を受信する
が、テーブル・エントリに関連する命令が完了したとき
に処理される物理アドレス・ポインタを指示するために
用いられる。ヘッド・ポインタは、1又は複数のカウン
タにより増分され、リネーム・テーブルの最下位置のテ
ーブル・エントリからCRBAT202の最上位置のテ
ーブル・エントリまでの範囲を循環する。
トリを指示するために、一対のポインタがCRBAT2
02に関連付けられる。このようなポインタは、ヘッド
・ポインタ230及びGRコミット・ポインタ231で
ある。ヘッド・ポインタは、循環ポインタであり、ディ
スパッチ・バッファ114からの構造化宛先レジスタ・
アドレスを受信しかつ記憶するべく次のCRBATエン
トリを選択するために用いられる。GRコミット・ポイ
ンタは、CT206からフィールド226を受信する
が、テーブル・エントリに関連する命令が完了したとき
に処理される物理アドレス・ポインタを指示するために
用いられる。ヘッド・ポインタは、1又は複数のカウン
タにより増分され、リネーム・テーブルの最下位置のテ
ーブル・エントリからCRBAT202の最上位置のテ
ーブル・エントリまでの範囲を循環する。
【0031】完了テーブル(CT)206は、CRBA
T202及びディスク・バッファ114へ接続される。
CT206の各エントリは、ディスパッチ時に割り当て
られ、ディスパッチされた命令が変更しているGPRに
関連する物理レジスタ・アドレス・ポインタ226を記
憶する。CRBAT202の各エントリは、ディスパッ
チ時に割り当てられ、ディスパッチされた命令が変更し
ているGPRに関連する構造化アドレス・ポインタを記
憶する。CRBAT202内のエントリの数は、レジス
タ・バッファ212内のエントリの数と同じである。
T202及びディスク・バッファ114へ接続される。
CT206の各エントリは、ディスパッチ時に割り当て
られ、ディスパッチされた命令が変更しているGPRに
関連する物理レジスタ・アドレス・ポインタ226を記
憶する。CRBAT202の各エントリは、ディスパッ
チ時に割り当てられ、ディスパッチされた命令が変更し
ているGPRに関連する構造化アドレス・ポインタを記
憶する。CRBAT202内のエントリの数は、レジス
タ・バッファ212内のエントリの数と同じである。
【0032】命令キュー204は、デコードされ実行さ
れるのを待っている命令(図示せず)と、フィールド2
14の構造化汎用レジスタへのポインタと、フィールド
224のバッファ・レジスタへのポインタとを含む。命
令キュー204は、実行ユニットに対して命令の実行方
法を伝える信号を発生するために、命令コード及び制御
情報を格納する。さらに、命令キュー204は、次の情
報を格納する。 V:エントリが有効であることを示す。 RA構造化GPRポインタ214:RAフィールドのG
PR構造化ポインタを含む。 RAリマップGPRポインタ224:RAフィールドの
GPRリマップ・ポインタを含む。 RA R:RAオペランドについてデータへアクセスし
ているとき、リマップ・ポインタ(R=1)若しくは構
造化ポインタ(R=0)のいずれが用いられているかを
示す。 RA W:RAオペランドが使用可能であるか否かを示
す。 RB構造化GPRポインタ214:RBフィールドのG
PR構造化ポインタを含む。 RBリマップGPRポインタ224:RBフィールドの
GPRリマップ・ポインタを含む。 RB R:RBオペランドについてデータへアクセスし
ているとき、リマップ・ポインタ(R=1)若しくは構
造化ポインタ(R=0)のいずれが用いられているかを
示す。 RB W:RBオペランドが使用可能であるか否かを示
す。 RTリマップGPRポインタ235:この命令により発
生される結果の宛先であるRTフィールドのGPRリマ
ップ・ポインタを含む。
れるのを待っている命令(図示せず)と、フィールド2
14の構造化汎用レジスタへのポインタと、フィールド
224のバッファ・レジスタへのポインタとを含む。命
令キュー204は、実行ユニットに対して命令の実行方
法を伝える信号を発生するために、命令コード及び制御
情報を格納する。さらに、命令キュー204は、次の情
報を格納する。 V:エントリが有効であることを示す。 RA構造化GPRポインタ214:RAフィールドのG
PR構造化ポインタを含む。 RAリマップGPRポインタ224:RAフィールドの
GPRリマップ・ポインタを含む。 RA R:RAオペランドについてデータへアクセスし
ているとき、リマップ・ポインタ(R=1)若しくは構
造化ポインタ(R=0)のいずれが用いられているかを
示す。 RA W:RAオペランドが使用可能であるか否かを示
す。 RB構造化GPRポインタ214:RBフィールドのG
PR構造化ポインタを含む。 RBリマップGPRポインタ224:RBフィールドの
GPRリマップ・ポインタを含む。 RB R:RBオペランドについてデータへアクセスし
ているとき、リマップ・ポインタ(R=1)若しくは構
造化ポインタ(R=0)のいずれが用いられているかを
示す。 RB W:RBオペランドが使用可能であるか否かを示
す。 RTリマップGPRポインタ235:この命令により発
生される結果の宛先であるRTフィールドのGPRリマ
ップ・ポインタを含む。
【0033】レジスタ状態テーブル(RSTAT)20
8は、k個のエントリをもつテーブルであり、各エント
リは、関係する非構造化バッファ・レジスタの状態情報
を格納する。各エントリの内容は、次の通りである。 L:関係レジスタのデータの使用可能状態を示す。 C:そのエントリが構造化レジスタのカレント・リマッ
プであることを示す。 CB:分岐命令前のCビットの状態を示す。
8は、k個のエントリをもつテーブルであり、各エント
リは、関係する非構造化バッファ・レジスタの状態情報
を格納する。各エントリの内容は、次の通りである。 L:関係レジスタのデータの使用可能状態を示す。 C:そのエントリが構造化レジスタのカレント・リマッ
プであることを示す。 CB:分岐命令前のCビットの状態を示す。
【0034】オペレーション 命令は、順番にディスパッチ・バッファ114からディ
スパッチされる。命令のディスパッチ時に、ヘッド・ポ
インタ230を含むレジスタ割当て論理210により管
理されるレジスタ・バッファの割当てもまた順序通りで
ある。各命令は、関連する命令タグを有し、このタグ
が、その命令についての情報を格納する完了テーブル2
06内の場所を指定する。複数の実行ユニットをもつこ
とにより、又は、オペランドの使用可能性に基づいてI
Q204からの命令を選択することにより、順序を外れ
て命令を実行することができる。命令が実行されかつ終
了されると、完了テーブル206へ状態が入れられる。
命令が完了すると、完了テーブル206内のエントリ
は、ディスパッチ順で取り除かれる。システム・リセッ
ト(すなわち、電源オン)時には、CRBAT202及
びレジスタ・バッファ212の内容が有効でないことを
示すべくRSTAT208内の全てのCビットを「0」
にセットする。
スパッチされる。命令のディスパッチ時に、ヘッド・ポ
インタ230を含むレジスタ割当て論理210により管
理されるレジスタ・バッファの割当てもまた順序通りで
ある。各命令は、関連する命令タグを有し、このタグ
が、その命令についての情報を格納する完了テーブル2
06内の場所を指定する。複数の実行ユニットをもつこ
とにより、又は、オペランドの使用可能性に基づいてI
Q204からの命令を選択することにより、順序を外れ
て命令を実行することができる。命令が実行されかつ終
了されると、完了テーブル206へ状態が入れられる。
命令が完了すると、完了テーブル206内のエントリ
は、ディスパッチ順で取り除かれる。システム・リセッ
ト(すなわち、電源オン)時には、CRBAT202及
びレジスタ・バッファ212の内容が有効でないことを
示すべくRSTAT208内の全てのCビットを「0」
にセットする。
【0035】命令ディスパッチ ディスパッチ・バッファ114からの構造化ソース・ポ
インタは、レジスタ・バッファ212内のいずれのレジ
スタが使用されるかを決定するために、CRBAT20
2内の全てのエントリに対して関連性をもって比較され
る。CRBAT202のヒット(すなわち、ディスパッ
チされた命令のソースGPRフィールドがRSTAT2
08のアクティブなCビットによりCRBAT202内
のエントリに適合すること)により、ソースGPRのリ
マップ・ポインタとして用いられるそのヒット場所を発
生する。さらに、ヒットにより、レジスタ・バッファ2
12内のソース・オペランドが使用可能であることを示
すLビットからのビットを発生する。CRBAT202
からのミスは、構造化汎用レジスタ222内のソース・
オペランドについてのデータが使用可能であることを示
す。構造化宛先ポインタは、CRBAT202内の全て
のエントリに対して関連性をもって比較され、そしてR
STAT208のエントリ内の対応するCビットがオフ
にセットされる。新たなバッファ・ポインタが、構造化
宛先ポインタへ割り当てられてCRBAT202へ書き
込まれ、そして現在のバッファ・レジスタ割当てを示す
べくRSTAT208内の対応するCビットがオンにセ
ットされる。新たなバッファ・ポインタは、ヘッド・ポ
インタ230の値で始まり、各宛先GPRについて1だ
け増分される。新たなバッファ・ポインタは、さらにC
T206のフィールド226へ書き込まれる。構造化レ
ジスタを必要とする後続の命令は、レジスタ・バッファ
212から割り当てられたバッファ・レジスタを使用す
ることになる。
インタは、レジスタ・バッファ212内のいずれのレジ
スタが使用されるかを決定するために、CRBAT20
2内の全てのエントリに対して関連性をもって比較され
る。CRBAT202のヒット(すなわち、ディスパッ
チされた命令のソースGPRフィールドがRSTAT2
08のアクティブなCビットによりCRBAT202内
のエントリに適合すること)により、ソースGPRのリ
マップ・ポインタとして用いられるそのヒット場所を発
生する。さらに、ヒットにより、レジスタ・バッファ2
12内のソース・オペランドが使用可能であることを示
すLビットからのビットを発生する。CRBAT202
からのミスは、構造化汎用レジスタ222内のソース・
オペランドについてのデータが使用可能であることを示
す。構造化宛先ポインタは、CRBAT202内の全て
のエントリに対して関連性をもって比較され、そしてR
STAT208のエントリ内の対応するCビットがオフ
にセットされる。新たなバッファ・ポインタが、構造化
宛先ポインタへ割り当てられてCRBAT202へ書き
込まれ、そして現在のバッファ・レジスタ割当てを示す
べくRSTAT208内の対応するCビットがオンにセ
ットされる。新たなバッファ・ポインタは、ヘッド・ポ
インタ230の値で始まり、各宛先GPRについて1だ
け増分される。新たなバッファ・ポインタは、さらにC
T206のフィールド226へ書き込まれる。構造化レ
ジスタを必要とする後続の命令は、レジスタ・バッファ
212から割り当てられたバッファ・レジスタを使用す
ることになる。
【0036】その命令の処理を即座に始められない場合
は、全てのソース・リマップ・ポインタがIQ204の
リマップ・ポインタ・フィールド224へ書き込まれ
る。宛先リマップ・ポインタは、IQ204のフィール
ド234へ書き込まれる。構造化ソース・ポインタもま
た、IQ204のフィールド214に記憶される。ソー
ス・オペランドについてのGPRポインタがCRBAT
202内のエントリに適合する場合は、リマップ・ポイ
ンタがそのソース・オペランドに対して使用されること
を示すようにIQ204内の対応するRビットがセット
される。ディスパッチされた命令に対応するようにCT
206へエントリが割り当てられる。このエントリを指
示するポインタは、その命令のタグとしてその命令に付
される。
は、全てのソース・リマップ・ポインタがIQ204の
リマップ・ポインタ・フィールド224へ書き込まれ
る。宛先リマップ・ポインタは、IQ204のフィール
ド234へ書き込まれる。構造化ソース・ポインタもま
た、IQ204のフィールド214に記憶される。ソー
ス・オペランドについてのGPRポインタがCRBAT
202内のエントリに適合する場合は、リマップ・ポイ
ンタがそのソース・オペランドに対して使用されること
を示すようにIQ204内の対応するRビットがセット
される。ディスパッチされた命令に対応するようにCT
206へエントリが割り当てられる。このエントリを指
示するポインタは、その命令のタグとしてその命令に付
される。
【0037】オペランド・アクセス ディスパッチ・バッファ114からディスパッチされて
いる命令又はIQ204から出力されている命令は、フ
ィールド224からのリマップ・バッファ・ポインタを
用いてレジスタ・バッファ212へアクセスする。同時
に、構造化汎用レジスタ・アレイ222からオペランド
が読み取られ、そして1サイクルの終わりに、レジスタ
・バッファ212若しくは汎用レジスタ・アレイ222
のいずれからのデータを用いるかが決定される。IQ2
04を介さない命令についてのCRBAT202に対す
るヒットは、ソース・オペランド・データをレジスタ・
バッファ212から得ることを示し、そしてそのデータ
へアクセスするためにリマップ・ポインタを用いなけれ
ばならない。RSTAT208内の対応するLビット
は、そのデータが使用可能か否かを示す。一方、CRB
AT202に対するミスは、そのデータが構造化汎用レ
ジスタ222にあることを示す。IQ204を介する命
令については、Rビットが、いずれからデータを読み取
るべきかを示す(R=1のときはバッファ212から、
R=0のときは構造化汎用レジスタ222から読み取
る)。
いる命令又はIQ204から出力されている命令は、フ
ィールド224からのリマップ・バッファ・ポインタを
用いてレジスタ・バッファ212へアクセスする。同時
に、構造化汎用レジスタ・アレイ222からオペランド
が読み取られ、そして1サイクルの終わりに、レジスタ
・バッファ212若しくは汎用レジスタ・アレイ222
のいずれからのデータを用いるかが決定される。IQ2
04を介さない命令についてのCRBAT202に対す
るヒットは、ソース・オペランド・データをレジスタ・
バッファ212から得ることを示し、そしてそのデータ
へアクセスするためにリマップ・ポインタを用いなけれ
ばならない。RSTAT208内の対応するLビット
は、そのデータが使用可能か否かを示す。一方、CRB
AT202に対するミスは、そのデータが構造化汎用レ
ジスタ222にあることを示す。IQ204を介する命
令については、Rビットが、いずれからデータを読み取
るべきかを示す(R=1のときはバッファ212から、
R=0のときは構造化汎用レジスタ222から読み取
る)。
【0038】命令キュー出力リマップ・ポインタは、ゲ
ート234、244及び254へ接続され、レジスタ・
バッファ212への入力の読取り及び書込みを制御す
る。命令キュー構造化ポインタは、ゲート232、24
2へ出力し、構造化汎用レジスタ222を読み取る。
ート234、244及び254へ接続され、レジスタ・
バッファ212への入力の読取り及び書込みを制御す
る。命令キュー構造化ポインタは、ゲート232、24
2へ出力し、構造化汎用レジスタ222を読み取る。
【0039】実行 データが使用不能か又は実行ユニットが使用中の場合、
ディスパッチされた命令、リマップ・ポインタ、及び構
造化ポインタは、命令キュー204へ保存される。Rビ
ットは、リマップ・ポインタが使用されたか否かを示す
べく適宜セットされる。Wビットは、オペランドが使用
可能か否かを示すべくセットされる。
ディスパッチされた命令、リマップ・ポインタ、及び構
造化ポインタは、命令キュー204へ保存される。Rビ
ットは、リマップ・ポインタが使用されたか否かを示す
べく適宜セットされる。Wビットは、オペランドが使用
可能か否かを示すべくセットされる。
【0040】命令が命令キュー204に入れられている
間、そのオペランド・リマップ・ポインタが(もし使用
されたならば)、実行中の命令の宛先リマップ・ポイン
タに対して比較される。適合した場合、その命令につい
てのオペランドが使用可能であることを示すべくWビッ
トがセットされる。使用可能なオペランドをもつ命令が
選択され、そのオペランドがレジスタ・バッファ212
若しくは構造化汎用レジスタ222から読み取られる。
その後、命令は実行ユニットへ送られる。
間、そのオペランド・リマップ・ポインタが(もし使用
されたならば)、実行中の命令の宛先リマップ・ポイン
タに対して比較される。適合した場合、その命令につい
てのオペランドが使用可能であることを示すべくWビッ
トがセットされる。使用可能なオペランドをもつ命令が
選択され、そのオペランドがレジスタ・バッファ212
若しくは構造化汎用レジスタ222から読み取られる。
その後、命令は実行ユニットへ送られる。
【0041】いずれの命令も、オペランドが使用可能に
なれば直ちに任意の順序で実行することができる。各命
令が、レジスタ・バッファ212内の割当てられたバッ
ファ・レジスタへ書き込むべき結果を発生した後、RS
TAT208内のLビットがオンにセットされる。
なれば直ちに任意の順序で実行することができる。各命
令が、レジスタ・バッファ212内の割当てられたバッ
ファ・レジスタへ書き込むべき結果を発生した後、RS
TAT208内のLビットがオンにセットされる。
【0042】完了 命令は、順序に従って完了させられる。CT206内の
最も古いエントリが実行を終了している場合に、その最
古のエントリが完了することができる。CT206内の
完了しようとする命令のCRBATポインタ・フィール
ド226が読み取られ、GRコミット・レジスタ231
を用いてCRBATへアクセスするために用いられる。
フィールド226により指示された場所におけるCRB
ATの内容は、更新されるべき構造化汎用レジスタ22
2の場所である。さらにフィールド226は、読み取ら
れて構造化汎用レジスタ222へ送られるデータを格納
するレジスタ・バッファ212内の場所も指示する。レ
ジスタ・バッファ212からのデータは、読み取られて
構造化汎用レジスタ222へ書き込まれる。RSTAT
208内の対応するCビットは、オフにセットされる。
最も古いエントリが実行を終了している場合に、その最
古のエントリが完了することができる。CT206内の
完了しようとする命令のCRBATポインタ・フィール
ド226が読み取られ、GRコミット・レジスタ231
を用いてCRBATへアクセスするために用いられる。
フィールド226により指示された場所におけるCRB
ATの内容は、更新されるべき構造化汎用レジスタ22
2の場所である。さらにフィールド226は、読み取ら
れて構造化汎用レジスタ222へ送られるデータを格納
するレジスタ・バッファ212内の場所も指示する。レ
ジスタ・バッファ212からのデータは、読み取られて
構造化汎用レジスタ222へ書き込まれる。RSTAT
208内の対応するCビットは、オフにセットされる。
【0043】完了しようとする命令からのデータを待っ
ているIQ204内のソース・オペランドは、IQ内の
対応するRビットをオフにセットすることにより、汎用
レジスタ・アレイ222内のオペランド・データを用い
るためにマークを付けられる。
ているIQ204内のソース・オペランドは、IQ内の
対応するRビットをオフにセットすることにより、汎用
レジスタ・アレイ222内のオペランド・データを用い
るためにマークを付けられる。
【0044】分岐解決 分岐命令がディスパッチ・バッファ114からディスパ
ッチされると、RSTAT208内のCビットがバック
アップCビット・レジスタ(CB)209へ記憶され
る。ヘッド循環ポインタが、CT206内のフィールド
226におけるその分岐命令に割り当てられた場所に保
存される。バックアップCビット・レジスタ209の数
は、システムに許容される未解決の分岐の数と同じであ
る。分岐が正しいとして解決された場合、バックアップ
・レジスタ209は無効にされる。
ッチされると、RSTAT208内のCビットがバック
アップCビット・レジスタ(CB)209へ記憶され
る。ヘッド循環ポインタが、CT206内のフィールド
226におけるその分岐命令に割り当てられた場所に保
存される。バックアップCビット・レジスタ209の数
は、システムに許容される未解決の分岐の数と同じであ
る。分岐が正しいとして解決された場合、バックアップ
・レジスタ209は無効にされる。
【0045】分岐が誤っているとして解決された場合、
バックアップCビット・レジスタ209の内容が、RS
TAT208のカレント・エントリへ送られる。こうし
て、誤って予測された分岐がディスパッチされる直前の
割当ての状態を再記憶する。CT206内のフィールド
226におけるその分岐命令の場所が読み取られ、ヘッ
ド循環ポインタ230へ再記憶される。
バックアップCビット・レジスタ209の内容が、RS
TAT208のカレント・エントリへ送られる。こうし
て、誤って予測された分岐がディスパッチされる直前の
割当ての状態を再記憶する。CT206内のフィールド
226におけるその分岐命令の場所が読み取られ、ヘッ
ド循環ポインタ230へ再記憶される。
【0046】例外をもつ命令が完了するとき、RSTA
T208がクリアされ、ヘッド・ポインタ230が
「0」へリセットされる。CRBAT202の内容に関
しては、一切変更する必要はない。
T208がクリアされ、ヘッド・ポインタ230が
「0」へリセットされる。CRBAT202の内容に関
しては、一切変更する必要はない。
【0047】図5及び図6は、CRBAT202の実施
例を示す図である。
例を示す図である。
【0048】前述のように、実施例においてはCRBA
T202が8個のエントリを有し、各エントリが、構造
化汎用レジスタ222内の汎用レジスタ数を表す多数の
ビットとCビットとを有する。図5及び図6の実施例
は、32個の汎用レジスタ及び8個のリネーム・レジス
タすなわちバッファ・レジスタ用である。CRBAT2
02は、内容アドレス・メモリを用いて実施可能であ
る。省略して、図5及び図6ではただ1つの読取りポー
トのみを示している。
T202が8個のエントリを有し、各エントリが、構造
化汎用レジスタ222内の汎用レジスタ数を表す多数の
ビットとCビットとを有する。図5及び図6の実施例
は、32個の汎用レジスタ及び8個のリネーム・レジス
タすなわちバッファ・レジスタ用である。CRBAT2
02は、内容アドレス・メモリを用いて実施可能であ
る。省略して、図5及び図6ではただ1つの読取りポー
トのみを示している。
【0049】CRBAT202の出力は、マルチプレク
サ(MUX)302を通してレジスタ・バッファ212
からのデータのゲートを制御する。MUX302からの
データは、MUX260に対してRAオペランドを与
え、MUX261に対してRBオペランドを与える。C
RBAT202の出力は、構造化ソースからのアドレス
・ポインタを包括して排他的NOR回路304〜311
内で排他的NOR論理により処理される。排他的NOR
回路304〜311の出力は、CRBAT202のCビ
ット部分322からのCビットと包括され、ANDゲー
ト330〜337によりAND論理により処理される。
命令がIQをバイパスできるか否かを示す制御ラインも
また包括されて、ANDゲート330〜337によりA
ND論理処理される。命令がIQをバイパスできる場
合、MUX302の制御は、全てANDゲート330〜
337から入力される。命令がIQをバイパスできない
場合、MUX302の制御は、IQ204のフィールド
224からデコーダ340を経て入力される。
サ(MUX)302を通してレジスタ・バッファ212
からのデータのゲートを制御する。MUX302からの
データは、MUX260に対してRAオペランドを与
え、MUX261に対してRBオペランドを与える。C
RBAT202の出力は、構造化ソースからのアドレス
・ポインタを包括して排他的NOR回路304〜311
内で排他的NOR論理により処理される。排他的NOR
回路304〜311の出力は、CRBAT202のCビ
ット部分322からのCビットと包括され、ANDゲー
ト330〜337によりAND論理により処理される。
命令がIQをバイパスできるか否かを示す制御ラインも
また包括されて、ANDゲート330〜337によりA
ND論理処理される。命令がIQをバイパスできる場
合、MUX302の制御は、全てANDゲート330〜
337から入力される。命令がIQをバイパスできない
場合、MUX302の制御は、IQ204のフィールド
224からデコーダ340を経て入力される。
【0050】内容アドレス・メモリの実施例において、
CRBAT202の出力からマルチプレクサ302への
ゲートにCビットを用いることにより、CRBAT20
2内に2以上のヒットが存在しないことを確保する。
CRBAT202の出力からマルチプレクサ302への
ゲートにCビットを用いることにより、CRBAT20
2内に2以上のヒットが存在しないことを確保する。
【0051】CRBAT202は、各リネーム・バッフ
ァに対して1つのエントリのみを有するので、リネーム
・バッファの数が構造化汎用レジスタの数よりも少ない
ときは、バッファに対するアクセス・パスが、汎用レジ
スタ・アレイに対するアクセス・パスよりも短くなる。
さらに、分岐命令がディスパッチされるとき、CRBA
Tはその内容をバックアップする必要がない。RSTA
T208内のCビットのみを記憶すればよい。分岐論理
が非常に単純になるので、より多くの未解決分岐パスが
許容される。
ァに対して1つのエントリのみを有するので、リネーム
・バッファの数が構造化汎用レジスタの数よりも少ない
ときは、バッファに対するアクセス・パスが、汎用レジ
スタ・アレイに対するアクセス・パスよりも短くなる。
さらに、分岐命令がディスパッチされるとき、CRBA
Tはその内容をバックアップする必要がない。RSTA
T208内のCビットのみを記憶すればよい。分岐論理
が非常に単純になるので、より多くの未解決分岐パスが
許容される。
【0052】さらに、分岐バップアップ・リマップ・テ
ーブルが不要であるので、ハードウェアも少なくなり、
よってコストも低減される。
ーブルが不要であるので、ハードウェアも少なくなり、
よってコストも低減される。
【0053】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0054】(1)命令ユニットと、1又は複数の実行
ユニットと、前記命令ユニット及びメモリ・システムへ
接続されたメモリ管理ユニットと、1又は複数の実行ユ
ニットに関連する1又は複数のレベルのキャッシュ・メ
モリと、前記実行ユニット、前記メモリ・システム、及
び前記キャッシュ・メモリへ接続されたシステム・バス
と、前記システム・バスへ接続されI/O装置を制御す
る1又は複数のI/O制御装置と、命令ディスパッチ及
び命令完了の順序を追跡する完了ユニットとを有する情
報処理システム。 (2)前記完了ユニットが、内容アドレス・レジスタ・
バッファ割当てテーブルと、レジスタ状態テーブルと、
命令キューと、オペランドの使用可能性に依存する順序
により命令の実行及び完了の順序を制御する完了テーブ
ルとを有する上記(1)に記載の情報処理システム。 (3)命令実行に関係する情報の一時的記憶のために1
又は複数のレジスタ・ユニットを有する上記(2)に記
載の情報処理システム。 (4)前記1又は複数のレジスタ・ユニットが、予め規
定されたレジスタの第1の組と、バッファ・レジスタの
第1の組とを有する上記(3)に記載の情報処理システ
ム。 (5)前記1又は複数のレジスタ・ユニットが、予め規
定されたレジスタの第2の組と、バッファ・レジスタの
第2の組とを有する上記(3)に記載の情報処理システ
ム。 (6)前記予め規定されたレジスタの第1の組が、第1
の数の構造化汎用レジスタを含み、前記バッファ・レジ
スタの第1の組が、前記構造化汎用レジスタを補足する
べく割当て可能な第2の数のレジスタを含む上記(4)
に記載の情報処理システム。 (7)他の命令に対する1の命令の完了の順序における
該命令の位置を示すために該命令に関連するタグを完了
テーブルに記憶するステップと、命令の実行に用いられ
るレジスタを識別するために内容アドレス・バッファ割
当てテーブル内のエントリとソース・アドレス・ポイン
タとを関連性をもって比較するステップと、レジスタ割
当ての標識をリセットするために内容アドレス・バッフ
ァ割当てテーブル内のエントリと宛先アドレス・ポイン
タとを関連性をもって比較するステップと、バッファ・
アドレス・ポインタを宛先アドレス・ポインタへ割り当
てるステップと、前記割り当てられたバッファ・アドレ
ス・ポインタを前記内容アドレス・バッファ割当てテー
ブル内に記憶するステップと、各宛先アドレス・ポイン
タ及び各割り当てられたバッファ・アドレス・ポインタ
を命令キュー内に記憶するステップと、前記割り当てら
れたバッファ・アドレス・ポインタを用いて第1のオペ
ランドを格納するバッファをアドレス指定することによ
り、命令の実行のために該第1のオペランドへアクセス
するステップと、命令の実行に必要な全てのオペランド
が使用可能であるとき、該命令を実行するステップと、
前記内容アドレス・バッファ割当てテーブルから前記宛
先アドレス・ポインタ及び前記割り当てられたバッファ
・アドレス・ポインタを読み取るステップと、前記割り
当てられたバッファから前記宛先アドレスに関連する汎
用レジスタへ、完了した命令のデータをゲートを通して
送るステップと、前記完了テーブル内に記憶された前記
タグにより決定された所定の順序により、完了した命令
の結果を前記汎用レジスタからゲートを通して送るステ
ップとを含む任意の順序で実行された命令の完了を制御
する方法。 (8)前記宛先アドレス・ポインタを用いて別のオペラ
ンドを格納する汎用レジスタをアドレス指定することに
より、命令の実行のために該別のオペランドへ同時にア
クセスするステップと、前記第1のオペランド及び前記
別のオペランドを含むオペランドの組のうち1つを、命
令実行サイクル中の所定の時点において選択するステッ
プとを含む上記(7)に記載の方法。
ユニットと、前記命令ユニット及びメモリ・システムへ
接続されたメモリ管理ユニットと、1又は複数の実行ユ
ニットに関連する1又は複数のレベルのキャッシュ・メ
モリと、前記実行ユニット、前記メモリ・システム、及
び前記キャッシュ・メモリへ接続されたシステム・バス
と、前記システム・バスへ接続されI/O装置を制御す
る1又は複数のI/O制御装置と、命令ディスパッチ及
び命令完了の順序を追跡する完了ユニットとを有する情
報処理システム。 (2)前記完了ユニットが、内容アドレス・レジスタ・
バッファ割当てテーブルと、レジスタ状態テーブルと、
命令キューと、オペランドの使用可能性に依存する順序
により命令の実行及び完了の順序を制御する完了テーブ
ルとを有する上記(1)に記載の情報処理システム。 (3)命令実行に関係する情報の一時的記憶のために1
又は複数のレジスタ・ユニットを有する上記(2)に記
載の情報処理システム。 (4)前記1又は複数のレジスタ・ユニットが、予め規
定されたレジスタの第1の組と、バッファ・レジスタの
第1の組とを有する上記(3)に記載の情報処理システ
ム。 (5)前記1又は複数のレジスタ・ユニットが、予め規
定されたレジスタの第2の組と、バッファ・レジスタの
第2の組とを有する上記(3)に記載の情報処理システ
ム。 (6)前記予め規定されたレジスタの第1の組が、第1
の数の構造化汎用レジスタを含み、前記バッファ・レジ
スタの第1の組が、前記構造化汎用レジスタを補足する
べく割当て可能な第2の数のレジスタを含む上記(4)
に記載の情報処理システム。 (7)他の命令に対する1の命令の完了の順序における
該命令の位置を示すために該命令に関連するタグを完了
テーブルに記憶するステップと、命令の実行に用いられ
るレジスタを識別するために内容アドレス・バッファ割
当てテーブル内のエントリとソース・アドレス・ポイン
タとを関連性をもって比較するステップと、レジスタ割
当ての標識をリセットするために内容アドレス・バッフ
ァ割当てテーブル内のエントリと宛先アドレス・ポイン
タとを関連性をもって比較するステップと、バッファ・
アドレス・ポインタを宛先アドレス・ポインタへ割り当
てるステップと、前記割り当てられたバッファ・アドレ
ス・ポインタを前記内容アドレス・バッファ割当てテー
ブル内に記憶するステップと、各宛先アドレス・ポイン
タ及び各割り当てられたバッファ・アドレス・ポインタ
を命令キュー内に記憶するステップと、前記割り当てら
れたバッファ・アドレス・ポインタを用いて第1のオペ
ランドを格納するバッファをアドレス指定することによ
り、命令の実行のために該第1のオペランドへアクセス
するステップと、命令の実行に必要な全てのオペランド
が使用可能であるとき、該命令を実行するステップと、
前記内容アドレス・バッファ割当てテーブルから前記宛
先アドレス・ポインタ及び前記割り当てられたバッファ
・アドレス・ポインタを読み取るステップと、前記割り
当てられたバッファから前記宛先アドレスに関連する汎
用レジスタへ、完了した命令のデータをゲートを通して
送るステップと、前記完了テーブル内に記憶された前記
タグにより決定された所定の順序により、完了した命令
の結果を前記汎用レジスタからゲートを通して送るステ
ップとを含む任意の順序で実行された命令の完了を制御
する方法。 (8)前記宛先アドレス・ポインタを用いて別のオペラ
ンドを格納する汎用レジスタをアドレス指定することに
より、命令の実行のために該別のオペランドへ同時にア
クセスするステップと、前記第1のオペランド及び前記
別のオペランドを含むオペランドの組のうち1つを、命
令実行サイクル中の所定の時点において選択するステッ
プとを含む上記(7)に記載の方法。
【図1】本発明を実施する情報処理システムの構成図で
ある。
ある。
【図2】本発明を実施する情報処理システムの構成図で
ある。
ある。
【図3】本発明による図1及び図2における完了ユニッ
トの構成図である。
トの構成図である。
【図4】本発明による図1及び図2における完了ユニッ
トの構成図である。
トの構成図である。
【図5】本発明による内容アドレス・レジスタ・バッフ
ァ割当てテーブル、出力ゲート及びレジスタ・バッファ
の詳細な構成図である。
ァ割当てテーブル、出力ゲート及びレジスタ・バッファ
の詳細な構成図である。
【図6】本発明による内容アドレス・レジスタ・バッフ
ァ割当てテーブル、出力ゲート及びレジスタ・バッファ
の詳細な構成図である。
ァ割当てテーブル、出力ゲート及びレジスタ・バッファ
の詳細な構成図である。
100 データ処理システム 102 分岐処理ユニット 104 ロード/記憶ユニット 106 整数ユニット 107 GPRファイル及び汎用リネーム・レジスタ 108 浮動小数点ユニット 109 FPRファイル及び浮動小数点リネーム・レジ
スタ 112 順次フェッチャ 114 ディスパッチ・バッファ 116 ディスパッチ・ユニット 118 命令キャッシュ 120 バス・インタフェース・ユニット 122 アドレス・バス 126 データ・キャッシュ 128 命令メモリ管理ユニット 130 データ・メモリ管理ユニット 136 完了ユニット 140 命令コード 142 ソース・アドレス 144 宛先アドレス 202 内容アドレス・レジスタ・バッファ割当てテー
ブル(CRBAT) 204 命令キュー(IQ) 206 完了テーブル(CB) 208 レジスタ状態テーブル(RSTAT) 212 レジスタ・バッファ 222 構造化汎用レジスタ
スタ 112 順次フェッチャ 114 ディスパッチ・バッファ 116 ディスパッチ・ユニット 118 命令キャッシュ 120 バス・インタフェース・ユニット 122 アドレス・バス 126 データ・キャッシュ 128 命令メモリ管理ユニット 130 データ・メモリ管理ユニット 136 完了ユニット 140 命令コード 142 ソース・アドレス 144 宛先アドレス 202 内容アドレス・レジスタ・バッファ割当てテー
ブル(CRBAT) 204 命令キュー(IQ) 206 完了テーブル(CB) 208 レジスタ状態テーブル(RSTAT) 212 レジスタ・バッファ 222 構造化汎用レジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アーデン・ホークネク アメリカ合衆国10598、ニューヨーク州、 ヨークタウン・ハイツ、フェアビュー・コ ート 3425
Claims (8)
- 【請求項1】命令ユニットと、 1又は複数の実行ユニットと、 前記命令ユニット及びメモリ・システムへ接続されたメ
モリ管理ユニットと、 1又は複数の実行ユニットに関連する1又は複数のレベ
ルのキャッシュ・メモリと、 前記実行ユニット、前記メモリ・システム、及び前記キ
ャッシュ・メモリへ接続されたシステム・バスと、 前記システム・バスへ接続されI/O装置を制御する1
又は複数のI/O制御装置と、 命令ディスパッチ及び命令完了の順序を追跡する完了ユ
ニットとを有する情報処理システム。 - 【請求項2】前記完了ユニットが、 内容アドレス・レジスタ・バッファ割当てテーブルと、 レジスタ状態テーブルと、 命令キューと、 オペランドの使用可能性に依存する順序により命令の実
行及び完了の順序を制御する完了テーブルとを有する請
求項1に記載の情報処理システム。 - 【請求項3】命令実行に関係する情報の一時的記憶のた
めに1又は複数のレジスタ・ユニットを有する請求項2
に記載の情報処理システム。 - 【請求項4】前記1又は複数のレジスタ・ユニットが、 予め規定されたレジスタの第1の組と、 バッファ・レジスタの第1の組とを有する請求項3に記
載の情報処理システム。 - 【請求項5】前記1又は複数のレジスタ・ユニットが、 予め規定されたレジスタの第2の組と、 バッファ・レジスタの第2の組とを有する請求項3に記
載の情報処理システム。 - 【請求項6】前記予め規定されたレジスタの第1の組
が、第1の数の構造化汎用レジスタを含み、 前記バッファ・レジスタの第1の組が、前記構造化汎用
レジスタを補足するべく割当て可能な第2の数のレジス
タを含む請求項4に記載の情報処理システム。 - 【請求項7】他の命令に対する1の命令の完了の順序に
おける該命令の位置を示すために該命令に関連するタグ
を完了テーブルに記憶するステップと、 命令の実行に用いられるレジスタを識別するために内容
アドレス・バッファ割当てテーブル内のエントリとソー
ス・アドレス・ポインタとを関連性をもって比較するス
テップと、 レジスタ割当ての標識をリセットするために内容アドレ
ス・バッファ割当てテーブル内のエントリと宛先アドレ
ス・ポインタとを関連性をもって比較するステップと、 バッファ・アドレス・ポインタを宛先アドレス・ポイン
タへ割り当てるステップと、 前記割り当てられたバッファ・アドレス・ポインタを前
記内容アドレス・バッファ割当てテーブル内に記憶する
ステップと、 各宛先アドレス・ポインタ及び各割り当てられたバッフ
ァ・アドレス・ポインタを命令キュー内に記憶するステ
ップと、 前記割り当てられたバッファ・アドレス・ポインタを用
いて第1のオペランドを格納するバッファをアドレス指
定することにより、命令の実行のために該第1のオペラ
ンドへアクセスするステップと、 命令の実行に必要な全てのオペランドが使用可能である
とき、該命令を実行するステップと、 前記内容アドレス・バッファ割当てテーブルから前記宛
先アドレス・ポインタ及び前記割り当てられたバッファ
・アドレス・ポインタを読み取るステップと、 前記割り当てられたバッファから前記宛先アドレスに関
連する汎用レジスタへ、完了した命令のデータをゲート
を通して送るステップと、 前記完了テーブル内に記憶された前記タグにより決定さ
れた所定の順序により、完了した命令の結果を前記汎用
レジスタからゲートを通して送るステップとを含む任意
の順序で実行された命令の完了を制御する方法。 - 【請求項8】前記宛先アドレス・ポインタを用いて別の
オペランドを格納する汎用レジスタをアドレス指定する
ことにより、命令の実行のために該別のオペランドへ同
時にアクセスするステップと、 前記第1のオペランド及び前記別のオペランドを含むオ
ペランドの組のうち1つを、命令実行サイクル中の所定
の時点において選択するステップとを含む請求項7に記
載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/633327 | 1996-04-17 | ||
US08/633,327 US5841999A (en) | 1996-04-17 | 1996-04-17 | Information handling system having a register remap structure using a content addressable table |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1040103A true JPH1040103A (ja) | 1998-02-13 |
JP3170472B2 JP3170472B2 (ja) | 2001-05-28 |
Family
ID=24539206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09040997A Expired - Fee Related JP3170472B2 (ja) | 1996-04-17 | 1997-04-09 | レジスタ・リマップ構造を有する情報処理システム及び方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5841999A (ja) |
JP (1) | JP3170472B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6807624B1 (en) | 1998-12-17 | 2004-10-19 | Fujitsu Limited | Instruction control device and method therefor |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134645A (en) * | 1998-06-01 | 2000-10-17 | International Business Machines Corporation | Instruction completion logic distributed among execution units for improving completion efficiency |
US6421758B1 (en) | 1999-07-26 | 2002-07-16 | International Business Machines Corporation | Method and system for super-fast updating and reading of content addressable memory with a bypass circuit |
CA2420785C (en) * | 2000-08-31 | 2012-07-17 | Hajime Seki | Computer system for processing instructions each containing a group of operations to be executed out of order |
US7653906B2 (en) * | 2002-10-23 | 2010-01-26 | Intel Corporation | Apparatus and method for reducing power consumption on simultaneous multi-threading systems |
US7472258B2 (en) * | 2003-04-21 | 2008-12-30 | International Business Machines Corporation | Dynamically shared group completion table between multiple threads |
US20070104186A1 (en) * | 2005-11-04 | 2007-05-10 | Bea Systems, Inc. | System and method for a gatekeeper in a communications network |
JP2008113381A (ja) * | 2006-10-31 | 2008-05-15 | Toshiba Corp | 通信システム |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6047615B2 (ja) * | 1980-06-19 | 1985-10-22 | 富士通株式会社 | 逐次化命令実行制御方式 |
JPS5739457A (en) * | 1980-08-18 | 1982-03-04 | Mitsubishi Electric Corp | Program device |
JPS6032208B2 (ja) * | 1980-11-17 | 1985-07-26 | 日本電気株式会社 | 命令シ−ケンス制御装置 |
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 |
US4791559A (en) * | 1985-12-16 | 1988-12-13 | Sperry Corporation | High-speed instruction control for vector processors with remapping |
US5134561A (en) * | 1987-07-20 | 1992-07-28 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
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 |
US5265227A (en) * | 1989-11-14 | 1993-11-23 | Intel Corporation | Parallel protection checking in an address translation look-aside buffer |
US5185871A (en) * | 1989-12-26 | 1993-02-09 | International Business Machines Corporation | Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions |
JPH04245334A (ja) * | 1991-01-31 | 1992-09-01 | Hitachi Ltd | 情報処理装置の命令先読み制御方式 |
US5355457A (en) * | 1991-05-21 | 1994-10-11 | Motorola, Inc. | Data processor for performing simultaneous instruction retirement and backtracking |
US5390312A (en) * | 1991-09-24 | 1995-02-14 | International Business Machines Corporation | Access look-aside facility |
EP0638183B1 (en) * | 1992-05-01 | 1997-03-05 | Seiko Epson Corporation | A system and method for retiring instructions in a superscalar microprocessor |
US5299147A (en) * | 1993-02-22 | 1994-03-29 | Intergraph Corporation | Decoder scheme for fully associative translation-lookaside buffer |
US5649225A (en) * | 1994-06-01 | 1997-07-15 | Advanced Micro Devices, Inc. | Resynchronization of a superscalar processor |
US5625789A (en) * | 1994-10-24 | 1997-04-29 | International Business Machines Corporation | Apparatus for source operand dependendency analyses register renaming and rapid pipeline recovery in a microprocessor that issues and executes multiple instructions out-of-order in a single cycle |
-
1996
- 1996-04-17 US US08/633,327 patent/US5841999A/en not_active Expired - Fee Related
-
1997
- 1997-04-09 JP JP09040997A patent/JP3170472B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6807624B1 (en) | 1998-12-17 | 2004-10-19 | Fujitsu Limited | Instruction control device and method therefor |
US7127591B2 (en) | 1998-12-17 | 2006-10-24 | Fujitsu Limited | Instruction control device and method therefor |
US7275146B2 (en) | 1998-12-17 | 2007-09-25 | Fujitsu Limited | Instruction control device and method therefor |
US7313674B2 (en) | 1998-12-17 | 2007-12-25 | Fujitsu Limited | Instruction control device and method therefor |
Also Published As
Publication number | Publication date |
---|---|
JP3170472B2 (ja) | 2001-05-28 |
US5841999A (en) | 1998-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5134561A (en) | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries | |
US6356918B1 (en) | Method and system for managing registers in a data processing system supports out-of-order and speculative instruction execution | |
US20170097826A1 (en) | System, Method, and Apparatus for Improving Throughput of Consecutive Transactional Memory Regions | |
JP2597811B2 (ja) | データ処理システム | |
US4901233A (en) | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries | |
US5517651A (en) | Method and apparatus for loading a segment register in a microprocessor capable of operating in multiple modes | |
US5584009A (en) | System and method of retiring store data from a write buffer | |
US6349382B1 (en) | System for store forwarding assigning load and store instructions to groups and reorder queues to keep track of program order | |
US20060036824A1 (en) | Managing the updating of storage keys | |
US5805879A (en) | In a pipelined processor, setting a segment access indicator during execution stage using exception handling | |
US20080077782A1 (en) | Restoring a register renaming table within a processor following an exception | |
JPS5911943B2 (ja) | デ−タ処理装置の為のトラツプ機構 | |
JPS6353571B2 (ja) | ||
US5987600A (en) | Exception handling in a processor that performs speculative out-of-order instruction execution | |
WO1996012228A1 (en) | Redundant mapping tables | |
US5596735A (en) | Circuit and method for addressing segment descriptor tables | |
EP1221088B1 (en) | Method and apparatus for processing load instructions | |
US20110010707A1 (en) | Virtual machine device and methods thereof | |
US7373486B2 (en) | Partially decoded register renamer | |
CN102890624B (zh) | 用于管理无序毫码控制操作的方法和系统 | |
JP3142813B2 (ja) | レジスタの名前変更を管理するための情報処理システムおよび方法 | |
US8205032B2 (en) | Virtual machine control structure identification decoder | |
JP3170472B2 (ja) | レジスタ・リマップ構造を有する情報処理システム及び方法 | |
US6363474B1 (en) | Process switching register replication in a data processing system | |
US6240507B1 (en) | Mechanism for multiple register renaming and method therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |