JPH1040105A - リネーム・レジスタを割り付ける方法及びプロセッサ - Google Patents

リネーム・レジスタを割り付ける方法及びプロセッサ

Info

Publication number
JPH1040105A
JPH1040105A JP9084803A JP8480397A JPH1040105A JP H1040105 A JPH1040105 A JP H1040105A JP 9084803 A JP9084803 A JP 9084803A JP 8480397 A JP8480397 A JP 8480397A JP H1040105 A JPH1040105 A JP H1040105A
Authority
JP
Japan
Prior art keywords
rename
instruction
register
registers
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.)
Granted
Application number
JP9084803A
Other languages
English (en)
Other versions
JP3093673B2 (ja
Inventor
S Chan Kin
キン・エス・チャン
Q Rii Han
ハン・キュー・リー
Q Nguien Dan
ダン・キュー・ングイェン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH1040105A publication Critical patent/JPH1040105A/ja
Application granted granted Critical
Publication of JP3093673B2 publication Critical patent/JP3093673B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

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)【要約】 【課題】 パイプライン式プロセッサにおける命令の並
列処理機能を高めるように仮想バッファを活用した方法
及び装置を提供する。 【解決手段】 バッファ・ポインタ割り付け機構を構成
して、ディスパッチ中に物理リネーム・レジスタがまだ
利用可能になっていなくともリネーム・バッファを割り
付ける。バッファ・ポインタ割り付けテーブルにより、
これらの仮想リネーム・バッファを割り付ける。特定の
物理リネーム・レジスタ内に記憶したエントリに対応す
る命令が完了したときは、前記各物理リネーム・レジス
タと共に設定した仮想ビットを反転させ、その結果をア
ーキテクチャ・レジスタに書き込む。従って、ディスパ
ッチ時に、実際の物理リネーム・レジスタよりも多くの
リネーム・バッファが存在しているかのように、リネー
ム・レジスタの割り付けを行う。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、データ処理システ
ム及びデータ処理方法に関し、特にプロセッサ内で命令
のデスパッチ中に利用可能なリネーム・バッファ数を増
加させ、かつデスパッチ帯域幅を増加させる装置及び方
法に関する。
【0002】
【従来の技術】一般的に、コンピュータは、フォン・ノ
イマン・アーキテクチャに従って設計されるが、このア
ーキテクチャはハンガリー生まれの数学者ジョン・フォ
ン・ノイマンの研究によるとされた、マイクロコンピュ
ータを含むごく一般的に用いられるコンピュータの設計
特徴に対する一解決方法である。フォン・ノイマン・ア
ーキテクチャは、ストアド・プログラム、即ちコンピュ
ータに永久的に記憶でき、かつ、符号化される形式のた
めに、マシン・ベースの命令により操作又は自ら変更す
ることができるという概念と同意語である。よく知られ
た逐次的な処理の概念、即ち一時に一命令の複数オペレ
ーションに対する解決方法は、フォン・ノイマン・アー
キテクチャの特徴である。
【0003】このような逐次命令のコンピュータ・アー
キテクチャが有する問題は、論理回路が如何に早く実行
できるかによってその処理速度が制限されてしまうこと
である。この問題に対する一つの解決方法は、設計及び
スーパスカラ・マイクロプロセッサ・アーキテクチャの
設計及び使用にあった。これは、マイクロプロセッサに
1クロック・サイクル当り多数の命令を実行できるよう
にするものである。このようなスーパスカラ・プロセッ
サには、IBMにより作成されたPowerPCプロセ
ッサがある。
【0004】このようなスーパスカラ・プロセッサで
は、命令装置がプロセッサ内の種々の実行装置に対して
一度に複数の命令をディスパッチする。しかし、このよ
うなアーキテクチャでは、数個の命令がプログラム内の
他の命令の完了に依存しているので、別の問題が発生す
る。換言すれば、2つのオペランドを加算するオペレー
ションは、他の命令が完了して、加算するオペランドの
うちの一つを発生するまで、待機しなければならないこ
とがある。
【0005】更に、このようなプロセッサは、可能分岐
条件を有する命令を読み出す分岐処理装置としばしば呼
ばれるものを使用するものであり、これによって前の命
令の結果に従ってプログラム命令フロー内で2つの異な
るパスを取ることができる。このような分岐処理装置
は、プロセッサがどのプログラム分岐を可能性として取
るのかを予測して進行し、その分岐内の後続命令を備え
て実行し始める。このプロセッサ内の完了装置は、ディ
スパッチから実行まで命令をトラッキングする機構を提
供して、これらの命令をプログラム順に「完了」させ
る。命令の完了は、その命令実行の結果をアーキテクチ
ャ・レジスタへコミットすることを含む。プログラム順
の完了によって正確なアーキテクチャ上の状態を保証
し、プロセッサは、予測を誤った分岐や他の介入や割り
込みから回復しなければならない。「完了した」命令の
結果は、アーキテクチャ・レジスタに書き込まれる。
【0006】プロセッサは、非プログラム順序の実行の
過程で与えられたレジスタ・ファイルの位置に対する競
合を避けるために、完了装置によりアーキテクチャ・レ
ジスタにコミットされるのに先立って、命令の結果を記
憶するリネーム・レジスタを設けてもよい。種々の実行
装置及びプロセッサにおいてこれらに関連するアーキテ
クチャ・レジスタのそれぞれについて、数個のリネーム
・レジスタ又はバッファが設けられてもよい。
【0007】ディスパッチ装置がその実行装置に命令を
ディスパッチする際は、その命令の結果用にリネーム・
レジスタが割り付けられる。命令がデータ依存性のため
に実行装置に関連された予約ステーションにディスパッ
チされるのであれば、ディスパッチャーは更に実行装置
にタグを与えて、命令の完了によりどのリネーム・レジ
スタが要求データを転送するのかを識別させる。リネー
ム・レジスタからデータが得られるときは、ペンディン
グ実行を開始することができる。
【0008】命令が例外なしに完了キューから撤収さ
れ、かつ、完了キューの中のこれに先行する推論的な分
岐条件が正しく決定された後に、完了装置によって命令
の結果はリネーム・レジスタからアーキテクチャ・レジ
スタに転送される。推論的な分岐条件を誤って予測した
ことが判ったときは、その分岐に続く推論的に実行した
命令が完了キューから消去され、かつこれらの命令の結
果もリネーム・レジスタから消去される。
【0009】命令をディスパッチする際の隘路は、ディ
スパッチ装置が全てのリネーム・レジスタを割り付けた
ときに発生することがある。これはリネーム・レジスタ
が空きとなり割り付け可能になるまで、ディスパッチ装
置を停止させる要因となる。
【0010】従来技術による処理手段では、以上の問題
を除去するために複雑な制御及びデータ・フローを利用
して又は内容参照可能メモリを使用して、リネーム機構
を実施していた。加えて、増大する数の潜在的な推論命
令をサポートするために、更に多くの実行装置を実施す
れば、更に多くのリネーム・レジスタを必要とする。
【0011】従って、当該技術分野では、複数の命令を
ディスパッチする際に、前述の非効率さをなくすプロセ
ッサ・アーキテクチャに対する技術が要求されている。
【0012】
【発明が解決しようとする課題】従って、本発明の目的
は、内容参照可能メモリ及び複合リネーム・レジスタ制
御に対する必要性をなくすことである。また本発明の目
的は、物理的に実施するよりも多くのリネーム・レジス
タ(仮想リネーム・レジスタ)を割り付けることができ
る仮想リネーム機構を提供することである。更に本発明
の目的は、プロセッサの設計を大幅に変更することな
く、リネーム・レジスタの数を変更することができる処
理手段を提供することである。
【0013】
【課題を解決するための手段】本発明は、命令をディス
パッチ装置から実行及び完了装置へディスパッチする際
の隘路を除くことにより、以上の要求を満足させる。こ
れは、ディスパッチ装置に存在する物理リネーム・バッ
ファよりも多くのリネーム・バッファを割り付けられる
ようにして達成される。これはディスパッチ装置が実行
装置に複数の命令を連続してディスパッチできるように
させる。各実行装置が実行すべき命令を受け取る際は、
ディスパッチ装置によって割り付けられた仮想リネーム
・バッファの「アドレス」に一致する利用可能な物理リ
ネーム・レジスタが存在するか否かをチェックする。も
しこれが存在するのであれば、実行装置は命令を実行し
てその命令の結果を物理リネーム・レジスタに書き込
む。
【0014】命令が完了すると、その結果が物理リネー
ム・レジスタからアーキテクチャ・レジスタに書き込ま
れ、これによって物理リネーム・レジスタが開放され
る。
【0015】以上の処理は、各物理リネーム・バッファ
に付加された仮想ビット・アドレスを使用して実施され
る。
【0016】以上、以下に続く本発明の詳細な説明をよ
く理解できるように、本発明の特徴及び技術的な効果を
概要的に説明した。以下、本発明の請求の要旨をなす本
発明の更なる特徴及び効果を説明する。
【0017】
【発明の実施の形態】以下の説明では、本発明の十分な
理解が得られるように、特殊なワード又はバイト長など
特定的な詳細説明を多数行う。しかし、当該技術分野に
習熟する者において、特定的な詳細説明がなくとも本発
明を実施できることは明らかである。他の例において、
周知の回路は、必要以上の詳細な説明により本発明を不
明確にしないように、ブロック形式により示されてい
る。大抵の部分において、タイミング条件等に関する詳
細な説明については、それが本発明を完全に理解するた
めに必要であるというのでない限り、省略した。
【0018】ここで図面を参照する。ただし、説明する
各要素は必ずしも図示のスケール通りではなく、また同
一又は同様の要素はいくつかの図を通して同一の参照番
号により識別される。
【0019】以上で説明したように、レジスタのリネー
ム技術はマイクロプロセッサ設計において周知である。
リネームした(一時)レジスタをアーキテクチャ機構に
割り付けることによって、推論結果はアーキテクチャ的
に明確な順序を保証できるまでアーキテクチャ機構にコ
ミットされないので、命令の推論実行は順序に無関係に
進めることができる。
【0020】図1を参照すると、システム・バス712
にバス103及び104を介して接続されたプロセッサ
100が示されており、このシステム・バス712はそ
れぞれアドレス・バス101及びデータ・バス102を
含む。プロセッサ100は、公知の中央処理装置(例え
ば、IBMにより製作されたPowerPCプロセッ
サ)であってもよく、また図1に示す回路のいくつか又
は全てを有する。
【0021】バス103及び104はバス・インターフ
ェイス装置(BIU)105に接続されている。命令キ
ャッシュ(Iキャッシュ)107はBIU105及び命
令装置108の逐次フェッチャー109に接続されてい
る。命令キャッシュ107は、複数のタグ・ビットを有
するものが可能であって、命令記憶管理装置(I MM
U)121を介して命令装置108にも接続されてい
る。
【0022】命令装置108には、逐次フェッチャー1
09、分岐処理装置(BPU)110、命令キュー11
1及びディスパッチ装置112が含まれている。
【0023】典型的な実施では、BIU105がデータ
・バス102からデータを受け取って、データ・キャッ
シュ(Dキャッシュ)106を介してロード/ストア装
置115に転送する。命令キャッシュ107はBIU1
05から命令を受け取って、これらの命令を逐次フェッ
チャー109に転送する。
【0024】BPU110は、複数の分岐命令を受け取
り、複数の条件分岐に基づきルックアヘッド・オペレー
ションを実行してこれらを速やかに解決する動作が可能
である。命令キュー111は逐次フェッチャー109か
ら複数の命令を受け取って、これらをディスパッチ装置
112に転送する。ディスパッチ装置112は、ロード
/ストア装置115、浮動小数点装置116、整数ユニ
ット114及びシステム・レジスタ装置113のような
いくつかの実行装置のうちのいずれか一つに命令をディ
スパッチするように動作可能である。これらの実行装置
は更に完了装置117にも接続されており、完了装置1
17は、複数の命令を実行を介してディスパッチからト
ラッキングし、次いでプログラム順序により撤収させる
即ち「完了」させる。完了装置117は完了バッファの
キューを備えている。完了装置117は更に逐次フェッ
チャー109にも接続されている。
【0025】更に、浮動小数点装置116には、浮動小
数点(FP)リネーム・レジスタ125と共に浮動小数
点レジスタ(FPR)ファイル124が接続されてい
る。
【0026】整数ユニット114には、汎用レジスタ
(GPR)ファイル122及び関連する汎用(GP)リ
ネーム・レジスタ123が接続されている。
【0027】実行装置のうちのいずれか一つが本発明の
アーキテクチャを備えることができる。しかし、図1で
は、複数の仮想リネーム・バッファ24に接続されたバ
ッファ・ポインタ・アサインメント・テーブル(BPA
T)21と、関連の次バッファ・ポインタ管理(NBP
M)回路22とが示されており、これら仮想リネーム・
バッファ24はGPRファイル122と、GPリネーム
・レジスタ123とに関連されている。BPAT21は
複数のバッファ・ポインタを備えている。BPAT21
は、アーキテクチャ・ポインタをバッファ(物理)ポイ
ンタにマップさせるために用いられる。複数の仮想リネ
ーム・バッファ24は複数のアーキテクチャ・ポインタ
を備えている。複数の物理リネーム・レジスタ123
は、データ(複数のオペランド)を備えており、このデ
ータは複数命令を実行するために用いられ、かつ分岐又
は割り込みを原因として取り消される対象である。複数
のアーキテクチャ・レジスタ122は各アーキテクチャ
・レジスタに対応するデータ(複数のオペランド)を備
えている。
【0028】次に図2を参照すると、本発明の実施例が
ブロック図の形式により示されている。BPAT21は
各アーキテクチャ・レジスタ・ポインタRK(ただし、
Kは正の整数である。)に対するエントリbにより定義
される。ディスパッチ時に、各目標レジスタに対して利
用可能な一つのバッファを割り付けることにより、複数
の目標レジスタが複数のリネーム・バッファに割り付け
られる。これらのリネーム・バッファが割り付けられ、
アーキテクチャ・ソース・レジスタは、BPATテーブ
ルにおいてルックアップされる。その結果、複数のソー
ス・リネーム・ポインタはそのテーブル中のアーキテク
チャ・レジスタにより指示されたエントリから直接ルッ
クアップされる。アーキテクチャ・スロットにおけるリ
ネーム・ポインタが無効とマークされている場合、その
オペランドはアーキテクチャ・レジスタから利用可能で
ある。そうでないときは、BPATテーブルにおけるポ
インタにより指示されたリネーム・バッファに従ってオ
ペランドをマークする。バッファの割り付けは、第1の
エントリに戻るように、循環的に行われてもよい。これ
らのバッファは、物理バッファよりも多くの仮想バッフ
ァが存在するので、仮想識別により割り付けられる。命
令に対するバッファ割り付けは、命令と共に実行要素に
送出される。命令が完了する際は、関連するバッファ・
レジスタはアーキテクチャ・レジスタに書き込まれて、
そのバッファが割り付け用に利用可能にされる。
【0029】従って、BPAT21はディスパッチ装置
112からディスパッチされた各命令の結果用に仮想リ
ネーム・バッファ24を割り付ける。次バッファ・ポイ
ンタ管理(NBPM)回路22内のロジックは、バッフ
ァ・ポインタ・レジスタ23を用いており、新しい各命
令用に仮想リネーム・バッファ24を割り付けためのア
ルゴリズムを利用する。前述のように、このアルゴリズ
ムは逐次的な循環により行われるものでもよい。しか
し、本発明は、非循環又は非逐次的な割り付け/取り消
しアルゴリズムのように、もう少し複雑なバッファ管理
機構によりサポートが可能であり、かつ本発明の範囲内
にある。
【0030】仮想リネーム・バッファ24は各アーキテ
クチャ・レジスタ122RKに対応するバッファbMを
有することができる。図2に示す例では、32個の仮想
リネーム・バッファ24(M=32)及び32個のアー
キテクチャ・レジスタ122(K=32)が存在する。
しかし、存在する物理リネーム・レジスタ123(N=
16)は16個のみである。
【0031】1個の仮想リネーム・バッファ24につき
1個の有効ビット(V)が存在する。リネーム・バッフ
ァ24が割り付けられると、Vビットがセットされる。
命令が完了又は取り消しされると、Vビットがリセット
される。Vビットがリセットされると、対応するリネー
ム・レジスタ123は割り付けられず、現在データはア
ーキテクチャ・レジスタ122内にある。
【0032】更に、1個の仮想リネーム・バッファ24
につき1個のロード・ビット(L)が存在する。Lビッ
トは、オペランドがリネーム・バッファ・エントリ24
に書き込まれると、指定される。命令が完了又は取り消
されると、否定にされる。Vビットがセットされると、
Lビットは、リネーム・バッファ24が有効データによ
り書き込まれたことを表示する。
【0033】各物理リネーム・レジスタ123は更に仮
想ビットも有する。この仮想ビットは、ディスパッチ装
置112によってまだ利用可能になっていないバッファ
を予め割り付けられるようにする。この例では、32個
のアーキテクチャ・レジスタ122と共に16個の物理
リネーム・レジスタ123が存在する。ディスパッチ時
に、リネーム・レジスタ123は、32個のリネーム・
レジスタが存在するかのように割り付けられる。しか
し、仮想ビットの状態は、いずれのリネーム・バッファ
24が物理リネーム・レジスタ123に割り付けられて
いるのかを表す。従って、物理リネーム・レジスタb0
は命令に仮想リネーム・バッファb0として割り付けら
れ、その仮想ビットは0(例えば否定)にマークするよ
うにしてもよい。続いて、物理リネーム・レジスタb0
を仮想リネーム・バッファb16として他の命令に割り
付けられてもよい。目標としての物理リネーム・レジス
タb0を用いる命令が完了すると、仮想ビットが1に反
転され即ちセットされ、かつ第2の命令がそのリネーム
目標としてこの物理リネーム・レジスタを使用するのが
許可される。要するに、物理リネーム・バッファの結果
がアーキテクチャ・レジスタにコミットされるときは、
物理リネーム・バッファ用の仮想ビットがトグルされ
る。従って、この物理リネーム・バッファを用いる次の
命令は、進行して実行することができる。
【0034】この例において、各仮想リネーム・バッフ
ァ24は、16個の物理リネーム・レジスタ123のう
ちの一つを指示するように、5ビットのポインタを備え
ることができる。5ビットのポインタ内の最上位ビット
が0であれば、そのポインタは物理リネーム・レジスタ
b0...b15のうちの一つを指示することができ
る。仮想リネーム・バッファ内のポインタにおける最上
位ビットがセットされると、物理リネーム・レジスタb
16...b31のうちの一を指示することができる。
【0035】仮想ビットのための他の構成は、物理リネ
ーム・レジスタ123の数が仮想リネーム・バッファ2
4の数の1/2より少ない場合に、1より多い仮想ビッ
トを有することを含め、本発明の範囲内にあることが明
らかである。更に、この構成において、本発明の構成に
おいてアーキテクチャ・レジスタ122の数とリネーム
・レジスタ123の数との間には何の関係もないので、
アーキテクチャ・レジスタ122より多くの物理リネー
ム・レジスタ123を実施することができる。
【0036】逐次循環形式により仮想リネーム・バッフ
ァを割り付けることにより、推論命令の取り消しが容易
にサポートされる。
【0037】本発明の効果のうちの一つは、ディスパッ
チ処理中にディスパッチ装置112において製作された
停止条件をなくすと共に、この停止条件を実行フェーズ
に配置することである。従来技術の構成では、ディスパ
ッチ装置112が特定の実行装置に関連した全ての物理
リネーム・レジスタを割り付けたときは、この特定の実
行装置にもはや命令をディスパッチすることはできない
ので、ディスパッチ装置112に「隘路」が形成されて
いた。本発明は、物理的に存在するリネーム・レジスタ
よりも多くのリネーム・レジスタを割り付けられるよう
にして、隘路を処理の実行部へ下方移動させることによ
り、このような隘路を解消している。換言すれば、特定
の実行装置は、特定の命令に割り付けられた仮想リネー
ム・バッファに対応する物理リネーム・レジスタがまだ
利用可能にならないときに、停止することができる。従
って、ここで、停止条件は独立した各実行装置内の命令
の実行に依存するものであって、ディスパッチ装置11
2に依存するものではない。
【0038】図3を参照すると、命令がプロセッサ10
0内で進行する典型的な処理が示されている。まず、ス
テップ31において命令がディスパッチされ、次にステ
ップ32において実行フェーズに進行し、最後にステッ
プ33において完了段階に進む。
【0039】次に図4を参照すると、ディスパッチのス
テップ31の更に詳細なフローチャートが示されてい
る。ステップ41においてディスパッチが開始されてス
テップ42に進み、ディスパッチ装置112から実行装
置に命令をディスパッチする。次に、ステップ43にお
いて、BPAT21はディスパッチされた命令の結果に
より次に利用可能な仮想リネーム・バッファ24を割り
付ける。ステップ44において、NBPM回路22は次
の仮想リネーム・バッファ24に進む。ステップ45に
おいて、処理がステップ42に戻されてBPAT21に
より割り付けられる仮想リネーム・バッファ24が残っ
ているときは、他の命令をディスパッチさせる。それ以
外は、仮想リネーム・バッファ24が利用可能になるま
で、処理が停止する。
【0040】ディスパッチ装置112からの命令のディ
スパッチは物理リネーム・レジスタ123の数に依存す
ることなく、実施される仮想リネーム・バッファ24の
数に依存するだけである。その数は図2に示すこの例に
おいてアーキテクチャ・レジスタ122の数と同一であ
る。
【0041】次に図5を参照すると、ステップ32にお
ける実行フェーズの更なる詳細が示されている。ステッ
プ51において、実行装置は、命令を割り付けられた仮
想リネーム・バッファ24と共に受け取る。
【0042】次に、ステップ52において、割り付けた
仮想リネーム・バッファ24により指示されている目標
の物理リネーム・レジスタ123がまだ利用可能になっ
ていないときは、停止条件を起動させてもよい。これ
は、物理リネーム・レジスタの仮想ビットがセットされ
ている、又はその逆である間に、その仮想リネーム・バ
ッファの最上位ビットが否定にされているときに、発生
する。例えば、その命令を仮想リネーム・バッファb0
に割り付けてもよい。仮想リネーム・バッファb0内の
ポインタは00000となり、物理リネーム・レジスタ
b0を指示する。ステップ52において、物理リネーム
・レジスタb0がセットにされた又は否定にされた仮想
ビットを有するのか否かを判断する。仮想ビットがセッ
トされているのであれば、仮想リネーム・バッファb1
6から他の結果を受け取るためにその物理リネーム・レ
ジスタが予約される。他の命令が完了しているときにの
み、仮想ビットが反転されて(この例では否定にされ
て)、ステップ51において受け取った命令をステップ
53において実行できるようにさせ、その命令の実行の
結果が物理リネーム・レジスタb0に記憶される(ステ
ップ54)。
【0043】次に図6を参照すると、完了のステップ3
3が更に詳細に示されている。ステップ61において、
この命令及びこの命令の前にディスパッチされた全ての
命令が実行されたか否かについてチェックされる。この
命令及び前にディスパッチされた全ての命令を実行し
た、かつ割り込みを発生させていない、かつ解決される
べき分岐が間違っていないときは、処理をステップ62
に進める。ステップ62において、物理リネーム・レジ
スタ123に記憶されたその命令の結果をアーキテクチ
ャ・レジスタ122に書き込む。従って、前述の例にお
いて、ステップ51において受け取り、かつステップ5
4において物理リネーム・レジスタb0に記憶した命令
の結果は、アーキテクチャ・レジスタR0がBPAT2
1における仮想リネーム・バッファb0に割り付けられ
たのであれば、アーキテクチャ・レジスタR0に書き込
まれてもよい。その後、ステップ63において、物理リ
ネーム・レジスタb0に対応する仮想ビットは反転され
る。
【0044】以下は命令のディスパッチ及び仮想リネー
ム・バッファ24の割り付けに関する他の例である。命
令I0及びI1はディスパッチ装置112により以下の
ようにディスパッチされてもよい。 I0 add R1、R2、R3 I1 add R3、R1、R2
【0045】命令I0はアーキテクチャ・レジスタR2
及びR3内のオペランドを加算し、かつその結果をアー
キテクチャ・レジスタR1に書き込むことである。命令
I1はアーキテクチャ・レジスタR2における値と、ア
ーキテクチャ・レジスタR1に記憶した(命令I0の結
果として発生した)値とを加算して、その結果をアーキ
テクチャ・レジスタR3に書き込む。
【0046】BPAT21はアーキテクチャ・レジスタ
R1用の仮想リネーム・バッファb0を割り付けること
もできる。次いで、命令I0及びI1は整数装置114
のような実行装置のうちの一つに送出される。その後、
命令I2がディスパッチ装置112によりディスパッチ
されてもよい。 I2 R6、R4、R5
【0047】命令I2はR4及びR5の値を加算し、か
つこれらをR6に記憶する。BPAT21はR6を仮想
リネーム・バッファb16に割り付けてもよい。
【0048】命令I0に割り付けられた仮想リネーム・
バッファb0に対応するポインタは、00000(物理
リネーム・レジスタb0を指示する)であり、一方命令
I2に割り付けられた仮想リネーム・バッファb16に
対応するポインタは10000(物理リネーム・レジス
タb0を指示する)である。仮想リネーム・バッファb
0及びb16の両者は物理リネーム・レジスタ123内
の物理リネーム・レジスタb0を指示することに注意す
べきである。しかし、ディスパッチ装置112からのこ
れら命令I0及びI2のディスパッチは、停止されるこ
となく、継続するようにされ、次いでこれらの命令は整
数装置114に転送される。整数装置114は命令I0
を実行し、かつ物理リネーム・レジスタb0に対応する
仮想ビットが否定されているのであれば、その結果は物
理リネーム・レジスタb0に書き込まれる。命令I2
は、完了装置117により命令I0が完了され、物理リ
ネーム・レジスタb0に記憶されたその結果がアーキテ
クチャ・レジスタR0に書き込まれ、物理リネーム・レ
ジスタb0が解放されるまで、整数装置114によって
処理されない。これを実行すると、物理リネーム・レジ
スタb0に対応する仮想ビットは、反転されるので、セ
ットされ、従って命令I2が実行可能になる。これは、
その結果が物理リネーム・レジスタ(16進16)(b
16)に書き込まれることになるからである。
【0049】本発明を実施する代表的なハードウエア環
境は、発明の要旨に従ってワークステーション713の
典型的なハードウエア構成を示す図7に記載されてい
る。このワークステーション713はプロセッサ(CP
U)100(図1を参照)、及びシステム・バス712
を介して相互接続された多数の他の装置を有する。図7
に示すワークステーション713は、ランダム・アクセ
ス・メモリ(RAM)714と、読み出し専用メモリ
(ROM)716と、システム・バス712にディスク
装置720及びテープ・ドライブ740のような周辺装
置を接続する入出力(I/O)アダプタ718と、キー
・ボード724、マウス726及び/又はシステム・バ
ス712にタッチ・スクリーン装置(図示なし)のよう
なユーザ・インターフェイス装置を接続するインターフ
ェイス・アダプタ722と、ワークステーション713
をデータ処理ネットワークに接続する通信アダプタ73
4と、システム・バス712をディスプレイ装置738
に接続するディスプレイ・アダプタ736とを含む。プ
ロセッサ100は単一の集積回路上に存在していてもよ
い。
【0050】本発明及びその効果を詳細に説明したが、
請求の範囲により定義されているように本発明の精神及
び範囲から逸脱することなく、ここで種々の変更、置換
及び好感を行うことができることを理解すべきである。
【0051】まとめとして、本発明の構成に関して以下
の項を開示する。
【0052】(1) 一組のN個の物理リネーム・レジ
スタと、前記N個の物理リネーム・レジスタのうちの一
つが命令の結果を受け取り得る状態になる前に、前記N
個の物理リネーム・レジスタのうちの一つを該命令に割
り付ける事前割り付け回路とを含むプロセッサ。 (2) 前記事前割り付け回路はM個の仮想リネーム・
バッファを複数の命令に対して割り付ける回路を含み、
MはNより大きい(1)記載のプロセッサ。 (3) 前記事前割り付け回路は、前記M個の仮想リネ
ーム・バッファを前記複数の命令に割り付けるバッファ
・ポインタ割り付けテーブルと、前記バッファ・ポイン
タ割り付けテーブルに接続され、巡回形式により逐次前
記M個の仮想リネーム・バッファを割り付けるようにこ
のバッファ・ポインタ割り付けテーブルを制御するバッ
ファ・ポインタ・マネジャとを含む(2)記載のプロセ
ッサ。 (4) 前記N個の物理リネーム・レジスタの各々は、
1又は1より多くの仮想ビットを含む(2)記載のプロ
セッサ。 (5) 前記M個の仮想リネーム・バッファの各々は、
前記N個の物理リネーム・レジスタのうちの一に対する
ポインタを含むように動作可能である(4)記載のプロ
セッサ。 (6) 2又は2より多くの前記M個の仮想リネーム・
バッファはそれぞれ前記N個の物理リネーム・レジスタ
のうちの同一のものを指示している(5)記載のプロセ
ッサ。 (7) 前記N個の物理リネーム・レジスタのうちの同
一のものに関連した仮想ビットは、前記2又は2より多
くの前記M個の仮想リネーム・バッファのうちのいずれ
が、それに割り付けられた命令の結果を書き込み可能で
あるかを表示している(6)記載のプロセッサ。 (8) 更にK個のアーキテクチャ・レジスタを含む
(2)記載のプロセッサ。 (9) K≧Mである(8)記載のプロセッサ。 (10) N<K≦Mである(8)記載のプロセッサ。 (11) K≦N<Mである(8)記載のプロセッサ。 (12) 前記K個のアーキテクチャ・レジスタ、前記N
個の物理リネーム・レジスタ及び前記M個の仮想リネー
ム・バッファは1又は1より多くの実行装置に関連され
る(8)記載のプロセッサ。 (13) リネーム・レジスタを割り付ける方法におい
て、第1の命令を受け取るステップであって、前記第1
の命令を実行した第1の結果は第1のアーキテクチャ・
レジスタに書き込まれるべきものであるステップと、前
記第1のアーキテクチャ・レジスタに対応するように第
1の仮想リネーム・バッファを割り付けるステップとを
含み、前記第1の仮想リネーム・バッファは第1の物理
リネーム・レジスタに対する第1のポインタを含み、前
記割り付けるステップは、前記第1の物理リネーム・レ
ジスタが前記第1の結果を記憶するために利用可能であ
ってもなくても実行される、リネーム・レジスタを割り
付ける方法。 (14) 更に、前記第1の物理リネーム・レジスタが前
記第1の結果を記憶するために利用可能であるか否かを
判断するステップと、前記第1の物理リネーム・レジス
タが前記第1の結果を記憶するために利用可能であると
きに、前記第1の命令を実行するステップと、前記第1
の命令を実行した前記第1の結果を前記第1の物理リネ
ーム・レジスタに記憶するステップと含む請求項13記
載の方法。 (15) 更に、前記第1の命令を完了させるステップ
と、前記第1の物理リネーム・レジスタから前記第1の
アーキテクチャ・レジスタに前記第1の結果を書き込む
ステップとを含む(14)記載の方法。 (16) 更に、第2の命令を受け取るステップであっ
て、この第2の命令を実行した第2の結果は第2のアー
キテクチャ・レジスタに書き込まれるべきものであるス
テップと、前記第2のアーキテクチャ・レジスタに対応
するように第2の仮想リネーム・バッファを割り付ける
ステップであって、この第2の仮想リネーム・バッファ
は前記第1の物理リネーム・レジスタに対する第2のポ
インタを含むステップと含む(13)記載の方法。 (17) 更に、前記第1の物理リネーム・レジスタが前
記第1のポインタにより指示された第1のアドレスを有
するか否かを判断するステップと、前記第1の物理リネ
ーム・レジスタが前記第1のポインタにより指示された
前記第1のアドレスを有するときは、前記第1の命令を
実行するステップと、前記第1の命令を実行した前記第
1の結果を前記第1の物理リネーム・レジスタに記憶す
るステップと、前記第1の命令を完了させるステップ
と、前記第1の物理リネーム・レジスタから前記第1の
アーキテクチャ・レジスタに前記第1の結果を書き込み
ステップと、前記第1のアドレスを前記第2のポインタ
により指示された第2のアドレスに変換するステップ
と、前記第2の命令を実行するステップと、前記第1の
物理リネーム・レジスタに前記第2の命令を実行した前
記第2の結果を記憶するステップと、前記第2の命令の
完了させるステップと、前記第2の物理リネーム・レジ
スタから前記第2のアーキテクチャ・レジスタに書き込
むステップとを含む(16)記載の方法。 (18) 前記第1のアーキテクチャ・レジスタは、プロ
セッサにおける実行装置に関連したK個のアーキテクチ
ャ・レジスタのうちの一つであり、かつ前記第1の物理
リネーム・レジスタは前記実行装置に関連されたN個の
物理リネーム・レジスタのうちの一つであり、かつ前記
第1の仮想リネーム・バッファは前記実行装置に関連し
たM個の仮想リネーム・バッファのうちの一つであり、
かつN<Mである(13)記載の方法。 (19) 前記完了するステップは、(1)前記第1の命
令、及び前記第1の命令に先行する全ての命令が実行さ
れたか、(2)割り込みが発生したか、及び(3)誤っ
た分岐をしたかについて判断するステップを含む(15)
記載の方法。 (20) プロセッサにおいて、実行装置と、前記実行装
置に関連されたK個のアーキテクチャ・レジスタと、前
記実行装置に関連されたN個の物理リネーム・レジスタ
と、M個の仮想リネーム・バッファ(ただし、N<M)
と、第1の命令を受け取るディスパッチ装置であって、
前記第1の命令を実行した第1の結果は前記K個のアー
キテクチャ・レジスタのうちの第1のものに書き込まれ
るべきものである前記ディスパッチ装置と、前記K個の
アーキテクチャ・レジスタのうちの前記第1のものに対
応するように前記M個の仮想リネーム・バッファのうち
の第1のものを割り付けるバッファ・ポインタ割り付け
テーブルであって、前記M個の仮想リネーム・バッファ
のうちの前記第1のものは前記N個の物理リネーム・レ
ジスタのうちの第1のものに対する第1のポインタを含
む前記バッファ・ポインタ割り付けテーブルと、前記N
個の物理リネーム・レジスタの前記第1のものが前記第
1のポインタに対応する第1のアドレスを含むか否かを
判断する回路とを含み、前記実行装置は、前記N個の物
理リネーム・レジスタのうちの前記第1のものが前記第
1のポインタに対応する前記第1のアドレスを含むとき
に、前記第1の命令を実行するものであって、更に、前
記第1の命令を実行した前記第1の結果を前記N個の物
理リネーム・レジスタのうちの前記第1のものに記憶す
る回路と、前記第1の命令を完了させる回路と、前記N
個の物理リネーム・レジスタの前記第1のものから前記
K個のアーキテクチャ・レジスタのうちの前記第1のも
のに前記第1の結果を書き込み回路とを含み、前記ディ
スパッチ装置は第2の命令を受け取り、前記第2の命令
を実行した第2の結果は前記K個のアーキテクチャ・レ
ジスタのうちの第2のものに書き込まれるべきものであ
って、前記バッファ・ポインタ割り付けテーブルは、前
記K個のアーキテクチャ・レジスタのうちの前記第2の
ものに対応するように、前記M個の仮想リネーム・バッ
ファのうちの第2のものを割り付け、前記M個の仮想リ
ネーム・バッファのうちの前記第2のものが前記N個の
物理リネーム・レジスタのうちの前記第1のものに対す
る第2のポインタを含むものであって、更に、前記第1
のアドレスを前記第2のポインタにより指示された第2
のアドレスに変換する回路を含み、前記実行装置は前記
第2の命令を実行するものであって、更に、前記第2の
命令を実行した前記第2の結果を前記N個の物理リネー
ム・レジスタのうちの前記第1のものに記憶する回路を
含むプロセッサ。
【図面の簡単な説明】
【図1】本発明により構築されたプロセッサを示すブロ
ック形式の図である。
【図2】本発明の一実施例を示すブロックブロック形式
の図である。
【図3】プロセッサ内を通る命令の種々の段階を示すの
フローチャートである。
【図4】図3に示すディスパッチ・ステップを更に詳細
に示すフローチャートである。
【図5】図3に示す実行ステップを更に詳細に示すフロ
ーチャートである。
【図6】図3に示す完了ステップを更に詳細に示すフロ
ーチャートである。
【図7】本発明により構築されたデータ処理システムを
示す図である。
【符号の説明】
21 BPAT(バッファ・ポインタ・アサインメン
ト・テーブル) 22 NBPM(次バッファ・ポインタ管理)回路 23 バッファ・ポインタ・レジスタ 24 仮想リネーム・バッファ 32 物理リネーム・レジスタ 100 プロセッサ 105 BIU(バス・インターフェイス装置) 108 命令ユニット 109 逐次フェッチャー 111 命令キュー 112 ディスパッチ・ユニット 117 完了ユニット 122 アーキテクチャ・レジスタ 123 物理リネーム・レジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ハン・キュー・リー アメリカ合衆国78717、テキサス州、オー スチン、ドーマン・ドライブ 16310 (72)発明者 ダン・キュー・ングイェン アメリカ合衆国78728、テキサス州、オー スチン、ウェルドン・レーン 14308

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】一組のN個の物理リネーム・レジスタと、 前記N個の物理リネーム・レジスタのうちの一つが命令
    の結果を受け取り得る状態になる前に、前記N個の物理
    リネーム・レジスタのうちの一つを該命令に割り付ける
    事前割り付け回路とを含むプロセッサ。
  2. 【請求項2】前記事前割り付け回路はM個の仮想リネー
    ム・バッファを複数の命令に対して割り付ける回路を含
    み、MはNより大きい請求項1記載のプロセッサ。
  3. 【請求項3】前記事前割り付け回路は、 前記M個の仮想リネーム・バッファを前記複数の命令に
    割り付けるバッファ・ポインタ割り付けテーブルと、 前記バッファ・ポインタ割り付けテーブルに接続され、
    巡回形式により逐次前記M個の仮想リネーム・バッファ
    を割り付けるようにこのバッファ・ポインタ割り付けテ
    ーブルを制御するバッファ・ポインタ・マネジャとを含
    む請求項2記載のプロセッサ。
  4. 【請求項4】前記N個の物理リネーム・レジスタの各々
    は、1又は1より多くの仮想ビットを含む請求項2記載
    のプロセッサ。
  5. 【請求項5】前記M個の仮想リネーム・バッファの各々
    は、前記N個の物理リネーム・レジスタのうちの一に対
    するポインタを含むように動作可能である請求項4記載
    のプロセッサ。
  6. 【請求項6】2又は2より多くの前記M個の仮想リネー
    ム・バッファはそれぞれ前記N個の物理リネーム・レジ
    スタのうちの同一のものを指示している請求項5記載の
    プロセッサ。
  7. 【請求項7】前記N個の物理リネーム・レジスタのうち
    の同一のものに関連した仮想ビットは、前記2又は2よ
    り多くの前記M個の仮想リネーム・バッファのうちのい
    ずれが、それに割り付けられた命令の結果を書き込み可
    能であるかを表示している請求項6記載のプロセッサ。
  8. 【請求項8】更にK個のアーキテクチャ・レジスタを含
    む請求項2記載のプロセッサ。
  9. 【請求項9】K≧Mである請求項8記載のプロセッサ。
  10. 【請求項10】N<K≦Mである請求項8記載のプロセ
    ッサ。
  11. 【請求項11】K≦N<Mである請求項8記載のプロセ
    ッサ。
  12. 【請求項12】前記K個のアーキテクチャ・レジスタ、
    前記N個の物理リネーム・レジスタ及び前記M個の仮想
    リネーム・バッファは1又は1より多くの実行装置に関
    連される請求項8記載のプロセッサ。
  13. 【請求項13】リネーム・レジスタを割り付ける方法に
    おいて、 第1の命令を受け取るステップであって、前記第1の命
    令を実行した第1の結果は第1のアーキテクチャ・レジ
    スタに書き込まれるべきものであるステップと、 前記第1のアーキテクチャ・レジスタに対応するように
    第1の仮想リネーム・バッファを割り付けるステップと
    を含み、前記第1の仮想リネーム・バッファは第1の物
    理リネーム・レジスタに対する第1のポインタを含み、
    前記割り付けるステップは、前記第1の物理リネーム・
    レジスタが前記第1の結果を記憶するために利用可能で
    あってもなくても実行される、リネーム・レジスタを割
    り付ける方法。
  14. 【請求項14】更に、 前記第1の物理リネーム・レジスタが前記第1の結果を
    記憶するために利用可能であるか否かを判断するステッ
    プと、 前記第1の物理リネーム・レジスタが前記第1の結果を
    記憶するために利用可能であるときに、前記第1の命令
    を実行するステップと、 前記第1の命令を実行した前記第1の結果を前記第1の
    物理リネーム・レジスタに記憶するステップと含む請求
    項13記載の方法。
  15. 【請求項15】更に、 前記第1の命令を完了させるステップと、 前記第1の物理リネーム・レジスタから前記第1のアー
    キテクチャ・レジスタに前記第1の結果を書き込むステ
    ップとを含む請求項14記載の方法。
  16. 【請求項16】更に、 第2の命令を受け取るステップであって、この第2の命
    令を実行した第2の結果は第2のアーキテクチャ・レジ
    スタに書き込まれるべきものであるステップと、 前記第2のアーキテクチャ・レジスタに対応するように
    第2の仮想リネーム・バッファを割り付けるステップで
    あって、この第2の仮想リネーム・バッファは前記第1
    の物理リネーム・レジスタに対する第2のポインタを含
    むステップと含む請求項13記載の方法。
  17. 【請求項17】更に、 前記第1の物理リネーム・レジスタが前記第1のポイン
    タにより指示された第1のアドレスを有するか否かを判
    断するステップと、 前記第1の物理リネーム・レジスタが前記第1のポイン
    タにより指示された前記第1のアドレスを有するとき
    は、前記第1の命令を実行するステップと、 前記第1の命令を実行した前記第1の結果を前記第1の
    物理リネーム・レジスタに記憶するステップと、 前記第1の命令を完了させるステップと、 前記第1の物理リネーム・レジスタから前記第1のアー
    キテクチャ・レジスタに前記第1の結果を書き込みステ
    ップと、 前記第1のアドレスを前記第2のポインタにより指示さ
    れた第2のアドレスに変換するステップと、 前記第2の命令を実行するステップと、 前記第1の物理リネーム・レジスタに前記第2の命令を
    実行した前記第2の結果を記憶するステップと、 前記第2の命令の完了させるステップと、 前記第2の物理リネーム・レジスタから前記第2のアー
    キテクチャ・レジスタに書き込むステップとを含む請求
    項16記載の方法。
  18. 【請求項18】前記第1のアーキテクチャ・レジスタ
    は、プロセッサにおける実行装置に関連したK個のアー
    キテクチャ・レジスタのうちの一つであり、かつ前記第
    1の物理リネーム・レジスタは前記実行装置に関連され
    たN個の物理リネーム・レジスタのうちの一つであり、
    かつ前記第1の仮想リネーム・バッファは前記実行装置
    に関連したM個の仮想リネーム・バッファのうちの一つ
    であり、かつN<Mである請求項13記載の方法。
  19. 【請求項19】前記完了するステップは、(1)前記第
    1の命令、及び前記第1の命令に先行する全ての命令が
    実行されたか、(2)割り込みが発生したか、及び
    (3)誤った分岐をしたかについて判断するステップを
    含む請求項15記載の方法。
  20. 【請求項20】プロセッサにおいて、 実行装置と、 前記実行装置に関連されたK個のアーキテクチャ・レジ
    スタと、 前記実行装置に関連されたN個の物理リネーム・レジス
    タと、 M個の仮想リネーム・バッファ(ただし、N<M)と、 第1の命令を受け取るディスパッチ装置であって、前記
    第1の命令を実行した第1の結果は前記K個のアーキテ
    クチャ・レジスタのうちの第1のものに書き込まれるべ
    きものである前記ディスパッチ装置と、 前記K個のアーキテクチャ・レジスタのうちの前記第1
    のものに対応するように前記M個の仮想リネーム・バッ
    ファのうちの第1のものを割り付けるバッファ・ポイン
    タ割り付けテーブルであって、前記M個の仮想リネーム
    ・バッファのうちの前記第1のものは前記N個の物理リ
    ネーム・レジスタのうちの第1のものに対する第1のポ
    インタを含む前記バッファ・ポインタ割り付けテーブル
    と、 前記N個の物理リネーム・レジスタの前記第1のものが
    前記第1のポインタに対応する第1のアドレスを含むか
    否かを判断する回路とを含み、 前記実行装置は、前記N個の物理リネーム・レジスタの
    うちの前記第1のものが前記第1のポインタに対応する
    前記第1のアドレスを含むときに、前記第1の命令を実
    行するものであって、更に、 前記第1の命令を実行した前記第1の結果を前記N個の
    物理リネーム・レジスタのうちの前記第1のものに記憶
    する回路と、 前記第1の命令を完了させる回路と、 前記N個の物理リネーム・レジスタの前記第1のものか
    ら前記K個のアーキテクチャ・レジスタのうちの前記第
    1のものに前記第1の結果を書き込む回路とを含み、 前記ディスパッチ装置は第2の命令を受け取り、前記第
    2の命令を実行した第2の結果は前記K個のアーキテク
    チャ・レジスタのうちの第2のものに書き込まれるべき
    ものであって、 前記バッファ・ポインタ割り付けテーブルは、前記K個
    のアーキテクチャ・レジスタのうちの前記第2のものに
    対応するように、前記M個の仮想リネーム・バッファの
    うちの第2のものを割り付け、前記M個の仮想リネーム
    ・バッファのうちの前記第2のものが前記N個の物理リ
    ネーム・レジスタのうちの前記第1のものに対する第2
    のポインタを含むものであって、更に、 前記第1のアドレスを前記第2のポインタにより指示さ
    れた第2のアドレスに変換する回路を含み、 前記実行装置は前記第2の命令を実行するものであっ
    て、更に、 前記第2の命令を実行した前記第2の結果を前記N個の
    物理リネーム・レジスタのうちの前記第1のものに記憶
    する回路を含むプロセッサ。
JP09084803A 1996-04-16 1997-04-03 リネーム・レジスタを割り付ける方法及びプロセッサ Expired - Fee Related JP3093673B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/633267 1996-04-16
US08/633,267 US6298435B1 (en) 1996-04-16 1996-04-16 Methods and apparatus for exploiting virtual buffers to increase instruction parallelism in a pipelined processor

Publications (2)

Publication Number Publication Date
JPH1040105A true JPH1040105A (ja) 1998-02-13
JP3093673B2 JP3093673B2 (ja) 2000-10-03

Family

ID=24538956

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09084803A Expired - Fee Related JP3093673B2 (ja) 1996-04-16 1997-04-03 リネーム・レジスタを割り付ける方法及びプロセッサ

Country Status (2)

Country Link
US (1) US6298435B1 (ja)
JP (1) JP3093673B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000065435A1 (fr) * 1999-04-22 2000-11-02 Seki, Hajime Systeme informatique
KR100343601B1 (ko) * 1998-02-17 2002-07-11 포만 제프리 엘 무순서 레지스터 동작용 장치를 구비하는 데이터 처리 시스템 및그 방법
JP2019215694A (ja) * 2018-06-13 2019-12-19 富士通株式会社 演算処理装置および演算処理装置の制御方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553483B1 (en) * 1999-11-29 2003-04-22 Intel Corporation Enhanced virtual renaming scheme and deadlock prevention therefor
US20020144091A1 (en) * 2001-04-03 2002-10-03 Larry Widigen Method and apparatus for dynamic register management in a processor
US7529913B2 (en) * 2003-12-23 2009-05-05 Intel Corporation Late allocation of registers
US20090133022A1 (en) * 2007-11-15 2009-05-21 Karim Faraydon O Multiprocessing apparatus, system and method
US7822948B2 (en) * 2008-01-03 2010-10-26 International Business Machines Corporation Apparatus, system, and method for discontiguous multiple issue of instructions
EP2862069A4 (en) 2012-06-15 2016-12-28 Soft Machines Inc DEFINING INSTRUCTIONS TO REORDER AND OPTIMIZE LOADING AND STORAGE
WO2013188306A1 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. Reordered speculative instruction sequences with a disambiguation-free out of order load store queue
KR101996351B1 (ko) * 2012-06-15 2019-07-05 인텔 코포레이션 통합된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 load store 큐
KR20170102576A (ko) 2012-06-15 2017-09-11 인텔 코포레이션 분산된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 load store 큐
TWI646422B (zh) 2012-06-15 2019-01-01 英特爾股份有限公司 在處理器中之免消歧義失序載入/儲存佇列方法、微處理器、和非暫態性電腦可讀取儲存媒體
WO2013188701A1 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. A method and system for implementing recovery from speculative forwarding miss-predictions/errors resulting from load store reordering and optimization

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS593642A (ja) * 1982-06-30 1984-01-10 Fujitsu Ltd 制御レジスタ処理方式
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
JPH03150637A (ja) * 1989-11-08 1991-06-27 Oki Electric Ind Co Ltd パイプライン対応のレジスタ割付け方式
EP0682789B1 (en) * 1992-12-31 1998-09-09 Seiko Epson Corporation System and method for register renaming
KR0122528B1 (ko) * 1993-01-08 1997-11-20 윌리엄 티.엘리스 슈퍼스칼라 프로세서 시스템에서 중간 기억 버퍼의 할당을 인덱스하기 위한 방법 및 시스템
US5546554A (en) * 1994-02-02 1996-08-13 Sun Microsystems, Inc. Apparatus for dynamic register management in a floating point unit
EP0676691A3 (en) * 1994-04-06 1996-12-11 Hewlett Packard Co Device for saving and restoring registers in a digital computer.
US5555432A (en) * 1994-08-19 1996-09-10 Intel Corporation Circuit and method for scheduling instructions by predicting future availability of resources required for execution

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100343601B1 (ko) * 1998-02-17 2002-07-11 포만 제프리 엘 무순서 레지스터 동작용 장치를 구비하는 데이터 처리 시스템 및그 방법
WO2000065435A1 (fr) * 1999-04-22 2000-11-02 Seki, Hajime Systeme informatique
JP2019215694A (ja) * 2018-06-13 2019-12-19 富士通株式会社 演算処理装置および演算処理装置の制御方法

Also Published As

Publication number Publication date
JP3093673B2 (ja) 2000-10-03
US6298435B1 (en) 2001-10-02

Similar Documents

Publication Publication Date Title
JP3093639B2 (ja) プロセッサ内の資源割当て追跡方法及びそのシステム
US5889982A (en) Method and apparatus for generating event handler vectors based on both operating mode and event type
US6247106B1 (en) Processor configured to map logical register numbers to physical register numbers using virtual register numbers
US5463745A (en) Methods and apparatus for determining the next instruction pointer in an out-of-order execution computer system
CN106648843B (zh) 用于改善连续的事务性存储器区的吞吐量的系统、方法和装置
US6119223A (en) Map unit having rapid misprediction recovery
US9424037B2 (en) Instructions and functions for evaluating program defined conditions
US9262161B2 (en) Tracking multiple conditions in a general purpose register and instruction therefor
US5987600A (en) Exception handling in a processor that performs speculative out-of-order instruction execution
JP3093673B2 (ja) リネーム・レジスタを割り付ける方法及びプロセッサ
JP3154660B2 (ja) 条件レジスタ・データを一時的にバッファリングする方法およびシステム
US5805849A (en) Data processing system and method for using an unique identifier to maintain an age relationship between executing instructions
JP2839075B2 (ja) 処理システムを動作させる方法及び処理システム
US7822948B2 (en) Apparatus, system, and method for discontiguous multiple issue of instructions
JPH10154073A (ja) データ依存性を管理する装置及び方法
JP3142813B2 (ja) レジスタの名前変更を管理するための情報処理システムおよび方法
US6266763B1 (en) Physical rename register for efficiently storing floating point, integer, condition code, and multimedia values
US6230262B1 (en) Processor configured to selectively free physical registers upon retirement of instructions
JPH09152973A (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
US5875326A (en) Data processing system and method for completing out-of-order instructions
JP3170472B2 (ja) レジスタ・リマップ構造を有する情報処理システム及び方法
US7529913B2 (en) Late allocation of registers
TWI483184B (zh) 用於消除移動操作之微架構
JP3948615B2 (ja) プロセッサ及び命令制御方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees