JPH09179737A - スーパスカラ・プロセッサのリネーム・バッファを効率よく使用する方法及び装置 - Google Patents

スーパスカラ・プロセッサのリネーム・バッファを効率よく使用する方法及び装置

Info

Publication number
JPH09179737A
JPH09179737A JP8229043A JP22904396A JPH09179737A JP H09179737 A JPH09179737 A JP H09179737A JP 8229043 A JP8229043 A JP 8229043A JP 22904396 A JP22904396 A JP 22904396A JP H09179737 A JPH09179737 A JP H09179737A
Authority
JP
Japan
Prior art keywords
rename
instruction
rename buffer
buffer
real
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
JP8229043A
Other languages
English (en)
Other versions
JP3045964B2 (ja
Inventor
Maritsuku Sonmaya
ソンマヤ・マリック
B Peter Ragest
ラジェスト・ビィ・ペイテル
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 JPH09179737A publication Critical patent/JPH09179737A/ja
Application granted granted Critical
Publication of JP3045964B2 publication Critical patent/JP3045964B2/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/22Microcontrol or microprogram arrangements
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/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)【要約】 (修正有) 【課題】 ディスパッチ停止回数を減らし、リネーム・
バッファを効率的に使用する。 【解決手段】 ディスパッチ停止を減らす方法は、ディ
スパッチされた命令に対する実リネーム・バッファの割
当てと割当て解除の管理、及び実リネーム・バッファが
割当てられているときに命令を割当てるために少なくと
も1つの仮想リネーム・バッファを提供することを含
む。また少なくとも1つの仮想リネーム・バッファに割
当てられた命令に、リネーム・バッファ・ビジー信号の
タグが付けられる。スーパスカラ・プロセッサにおける
リネーム・バッファを効率的に使用する装置は、複数の
リネーム・バッファ、ディスパッチ装置、割当て/割当
て解除テーブルを含む。またテーブルは、複数の実リネ
ーム・バッファ・スロットと少なくとも1つの仮想リネ
ーム・バッファ・スロットを含む。少なくとも1つの仮
想リネーム・バッファ・スロットに割当てられた命令に
はリネーム・ビジー信号が与えられる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はスーパスカラ・プロ
セッサに関し、特にスーパスカラ・プロセッサのリネー
ム・バッファの効率利用の拡大に関する。
【0002】
【従来の技術】より速くより強力なコンピュータ・シス
テムの開発が続けられるなか、RISC(縮小命令セッ
ト・コンピュータ)プロセッサと呼ばれる重要なマイク
ロプロセッサが用いられている。RISCプロセッサの
分野で技術が磨かれ、これがスーパスカラ・プロセッサ
の開発につながった。スーパスカラ・プロセッサは、そ
の名が示す通り、従来のスカラ・マイクロプロセッサに
は通常見られない機能を実行する。プログラム順序に関
して命令を順不同に実行する機能等である。命令は順不
同に生起するが、実行結果はプログラム順序で生起して
いるように見えるので、データの整合性(coherency)
が維持される。
【0003】順不同実行をサポートするためスーパスカ
ラ・プロセッサに含まれる一般的な構成要素は、リネー
ム・バッファである。リネーム・バッファでは、その名
が示す通り、固定小数点装置等の実行装置が結果を書込
めない汎用レジスタ等の場所に、オペランド/結果のリ
ネーム値の場所を割当てられるように、ディスパッチ装
置がメモリ・バッファの名前を変更することができる。
しかしプロセッサ・システムでは、それが収容できるリ
ネーム・バッファの数に限りがある。従って、リネーム
・バッファが全て使用中で、実行装置の全てが使用中で
はないなら、パフォーマンスが低下し得る。こうした状
況では、ディスパッチ装置は命令をディスパッチしな
い。すなわちディスパッチ装置は停止する。なぜなら、
実行装置は、命令に対して機能操作を適切な形で実行で
きるが、リネーム・バッファが使用できないからであ
る。
【0004】従って、このような問題を効率的に且つ効
果的に克服し、リネーム・バッファの不足によるディス
パッチ装置の停止回数を少なくしてプロセッサ全体のパ
フォーマンスを高めるシステムが求められる。
【0005】
【発明が解決しようとする課題】本発明は、こうしたニ
ーズに応えて、スーパスカラ・プロセッサでディスパッ
チ停止回数を減らし、リネーム・バッファを効率的に使
用する方法及び装置を提供するものである。方法の面で
は、ディスパッチ停止回数の低減には、ディスパッチ装
置によってディスパッチされた命令に対する実リネーム
・バッファの割当てと割当て解除の管理、及び実リネー
ム・バッファが割当てられたとき、命令を割当てるため
の仮想リネーム・バッファを少なくとも1つ提供するこ
とが含まれる。更にこの方法は、少なくとも1つの仮想
リネーム・バッファに割当てられた命令への、リネーム
・バッファ・ビジー信号によるタグづけが含まれる。こ
こでリネーム・バッファ・ビジー信号は、プロセッサの
実行装置に、命令が完了できないことを示す。
【0006】装置の面に関しては、スーパスカラ・プロ
セッサのリネーム・バッファの効率利用に、複数のリネ
ーム・バッファ、複数のリネーム・バッファに接続され
たディスパッチ装置、及びディスパッチ装置と複数のリ
ネーム・バッファに接続された割当て/割当て解除テー
ブルが含まれる。またテーブルは、複数の実リネーム・
バッファ・スロットと少なくとも1つの仮想リネーム・
バッファ・スロットを含む。更に少なくとも1つの仮想
リネーム・バッファ・スロットに割当てられた命令に対
して、テーブルを介してリネーム・ビジー信号が与えら
れる。
【0007】
【課題を解決するための手段】本発明は、スーパスカラ
・プロセッサのパフォーマンスを改良するために直截的
且つ効率的な装置を提供するものである。効率は、仮想
リネーム・バッファの使用を実リネーム・バッファと共
に効果的に制御することによる。本発明に従った適切な
用法を通して、仮想リネーム・バッファにより、実リネ
ーム・バッファが全て割当てられた後でも実行装置への
ディスパッチを継続することができる。従って、実リネ
ーム・バッファの不足によるディスパッチ装置の停止回
数を減らすことによりプロセッサのパフォーマンスが改
良される。
【0008】
【発明の実施の形態】本発明は、ディスパッチ停止回数
を減らすための、スーパスカラ・プロセッサにおける仮
想リネーム・バッファの用法に関する。以下の説明は、
当業者が本発明を実施及び利用できるようにするため
に、また特許出願及びその要件の文脈に合わせた形で行
うものである。好適な実施例に加えられる様々な変更、
及びここに述べる基本原理と特徴は、当業者には明らか
であろう。
【0009】図1は、本発明に従って情報を処理するプ
ロセッサ10のブロック図である。好適な実施例で、プ
ロセッサ10は、IBMのPowerPC等の単一集積回路ス
ーパスカラ・マイクロプロセッサである。従って以下の
説明では、プロセッサ10は各種装置、レジスタ、バッ
ファ、メモリ、及びその他のセクションを含み、それら
が全て集積回路によって形成される。また好適な実施例
の場合、プロセッサ10はRISC(縮小命令セット・
コンピュータ)方式に従って動作する。図1に示す通
り、システム・バス11はプロセッサ10のBIU(バ
ス・インタフェース装置)12に接続される。BIU1
2はプロセッサ10とシステム・バス11の間の情報の
転送を制御する。
【0010】BIU12は、プロセッサ10の命令キャ
ッシュ14及びデータ・キャッシュ16に接続される。
命令キャッシュ14は命令をシーケンサ装置18に出力
する。シーケンサ装置18は、命令キャッシュ14から
の命令に応答して、プロセッサ10の他の実行回路に命
令を選択的に出力する。
【0011】プロセッサ10の実行回路は、好適な実施
例では、ディスパッチ装置46と完了装置48の実行装
置を含むシーケンサ装置18に加えて、複数の実行装置
を含む。すなわち分岐装置20、FXUA(固定小数点
装置A)22、FXUB(固定小数点装置B)24、C
FXU(複合固定小数点装置)26、LSU(ロード/
ストア装置)28、及びFPU(浮動小数点装置)30
である。FXUA22、FXUB24、CFXU26、
及びLSU28は、そのソース・オペランド情報をGP
R(汎用アーキテクチャ・レジスタ)32及び固定小数
点リネーム・バッファ34から入力する。またFXUA
22及びFXUB24は"桁上げビット"をCA(桁上げ
ビット)レジスタ42から入力する。FXUA22、F
XUB24、CFXU26、及びLSU28は、その演
算の結果(宛先オペランド情報)を出力し、固定小数点
リネーム・バッファ34内の選択されたエントリに格納
する。またCFXU26は、SPR(汎用レジスタ)4
0との間でソース・オペランド情報及び宛先オペランド
情報を入力し出力する。
【0012】FPU30は、そのソース・オペランド情
報をFPR(浮動小数点アーキテクチャ・レジスタ)3
6及び浮動小数点リネーム・バッファ38から入力す
る。FPU30は、その演算の結果(宛先オペランド情
報)を出力し、浮動小数点リネーム・バッファ38内の
選択されたエントリに格納する。
【0013】シーケンサ装置18は、GPR32とFP
R36との間で情報を入力し出力する。分岐装置20
は、シーケンサ装置18から命令、及びプロセッサ10
の現在状態を示す信号を入力する。分岐装置20はこの
命令と信号に応答して、プロセッサ10により実行され
る命令のシーケンスを格納するメモリ・アドレスを示す
信号を(シーケンサ装置18に)出力する。シーケンサ
装置18は、分岐装置20からのその信号に応答して、
命令キャッシュ14から指示された命令シーケンスを入
力する。命令シーケンスが命令キャッシュ14に格納さ
れていない場合、命令キャッシュ14は、その命令をシ
ステム・バス11に接続されたシステム・メモリ39か
ら(BIU12及びシステム・バス11を通して)入力
する。
【0014】シーケンサ装置18は、命令キャッシュ1
4からの命令入力に応答して、ディスパッチ装置46を
通して、命令を実行装置20、22、24、26、2
8、及び30のうち選択された装置に選択的にディスパ
ッチする。実行装置はそれぞれ、あるクラスの命令を実
行する。例えばFXUA22及びFXUB24は、ソー
ス・オペランドに対して、加算、減算、AND、OR、
及びXOR等、第1クラスの固定小数点数学演算を行
う。CFXU26は、ソース・オペランドに対して、固
定小数点の乗算及び除算等、第2クラスの固定小数点演
算を行う。FPU30は、ソース・オペランドに対し
て、浮動小数点の乗算及び除算等、浮動小数点演算を行
う。
【0015】プロセッサ10は、各実行装置20、2
2、24、26、28、30で複数の命令を同時に処理
することによって高いパフォーマンスを達成する。従っ
て各命令は、ステージのシーケンスで処理され、各ステ
ージは他の命令のステージとパラレルに実行可能であ
る。この方式は"パイプライン"と呼ばれる。好適な実施
例のある重要な態様では、命令は通常、6つのステー
ジ、すなわちフェッチ、デコード、ディスパッチ、実
行、完了、及びライトバックで処理される。
【0016】好適な実施例の場合、各命令が命令処理の
ステージそれぞれを完了するのに1マシン・サイクルを
要する。それにもかかわらず、命令によっては(CFX
U26によって実行される複合固定小数点命令等)は2
サイクルを超えるサイクルを要することがある。従っ
て、先行する命令の完了に必要な時間の変動に応じて、
ある命令の実行ステージと完了ステージの間に可変遅延
があり得る。
【0017】LSU28は、ロード命令に応答して、デ
ータ・キャッシュ16から情報を入力し、この情報をリ
ネーム・バッファ34及び38のうち選択されたバッフ
ァにコピーする。この情報がデータ・キャッシュ16に
格納されていない場合、データ・キャッシュ16はシス
テム・バス11に接続されたシステム・メモリ39から
この情報を(BIU12とシステム・バス11を通し
て)入力する。またデータ・キャッシュ16はデータ・
キャッシュ16から、システム・バス11に接続された
システム・メモリ39に(BIU12とシステム・バス
11を通して)情報を出力することができる。LSU2
8は、ストア命令に応答して、GPR32及びFPR3
6のうち選択されたレジスタから情報を入力し、この情
報をデータ・キャッシュ16またはメモリにコピーす
る。
【0018】実行装置、例えばFXUA22、FXUB
24、リネーム・バッファ34、及びディスパッチ装置
46の間の対話の例として、命令"add c,a,b"がディス
パッチ装置46からFXUA22にディスパッチされる
とする。ディスパッチ装置46はFXUA22に、オペ
ランド"a"及び"b"のタグを与えて、FXUA22に
(当業者には充分理解できるように)オペランドのデー
タをどこで検索するかを指示する。例えば、6つのリネ
ーム・バッファを有する装置の場合、ディスパッチ装置
46は、リネーム・バッファ1にあるとして、"a"のオ
ペランドに6ビット・タグ100000を付ける。オペ
ランド"b"がリネーム・バッファ2にあることを指示す
るためには、010000のタグを使用できる。FXU
A22はGPR32に書込みをしないので、ディスパッ
チ装置46は、リネーム・バッファ3に置かれる'add'
命令の結果に、001000等、演算のターゲットのリ
ネーム・バッファ・タグを使用しなければならない。
【0019】ディスパッチ装置46は、リネーム・バッ
ファ34及び38を使ってオペランドの位置及び演算の
結果を識別するので、好適には、どのバッファがリネー
ムされたかを管理するために割当て/割当て解除テーブ
ルが用いられる。例えば図2は、1つの例として6つの
リネーム・バッファを有するスーパスカラ・プロセッサ
装置の、プロセッサに格納された割当て/割当て解除テ
ーブル70を示す。例えばテーブル70は6つのスロッ
トを有し、それぞれが各リネーム・バッファに充てられ
る。各スロットに、IDN(命令識別子)、GPR(G
PR識別子)、リネーム(リネーム・バッファ識別
子)、及び有効(有効フィールド)のフィールドが含ま
れる。リネーム・バッファ・テーブル70を使用するこ
とで、ディスパッチ装置46は、どのリネーム・バッフ
ァが用いられているか、及びどれが使用できるかを正確
に管理することができる。また、どのレジスタが、ある
いはどのリネーム・バッファが後の命令に対応したデー
タを有しているかを識別するために、リネーム・バッフ
ァを有するGPR間の関係が維持される。
【0020】通常、ディスパッチ装置46は、リネーム
・バッファ34が全て割当てられてしまえばリネーム・
バッファ34の割当てを停止する。しかし実行装置は、
リネーム・バッファ34が全て一杯のとき休止している
ことがある。従って、休止している実行装置によって実
行される可能性のある命令は、ディスパッチ装置46に
よるディスパッチがないために遅れる。
【0021】従って本発明は、装置のリネーム・バッフ
ァが全て使用中のとき、実行装置への命令のディスパッ
チを可能にする方法及び装置を提供するものである。図
3に示すように、仮想リネーム・バッファのための余分
なスロットが追加されて、割当て/割当て解除テーブル
70'が形成される。割当て/割当て解除テーブル70'
のこれらのスロットでデータを追加することで、使用可
能なリネーム・バッファの不足によるディスパッチ装置
の停止回数は大幅に減少する。
【0022】1つの例として図4及び図5に、テーブル
70'が本発明に従ってどのように用いられるかを示
す。図4に示す通り、ディスパッチされた命令はそれぞ
れ、テーブルの実リネーム・バッファ部で使用可能な空
きスロットがある場合は、実リネーム・バッファにロー
ドされる。例えば、識別子0の命令(IDN0)は、l
wzx G18、OP1、OP2(オペランドのOP1
とOP2を加算して、メモリからターゲット・レジスタ
のGPR18の位置にワードをロードする有効アドレス
を生じる)を含む。テーブルは最初は空で、他に実リネ
ーム・バッファが割当てられていないので、G18はリ
ネーム・バッファ0すなわちR0とリネームされる。従
ってこの命令のターゲット・タグは100000という
ビット・シーケンスで表される。しかし、本発明に従っ
て、ターゲット・タグには追加ビット、リネーム・ビジ
ー・ビットも追加される。
【0023】図4に示したデータを使うと、実リネーム
・バッファが全て割当てられた場合、次の命令、すなわ
ち命令6(IDN6)が仮想リネーム・バッファ・スロ
ット、例えば仮想リネーム・バッファ6のR6に割当て
られる。好適な実施例で、仮想リネーム・バッファは物
理的に存在するのではなく、オペランドの衝突がない場
合に、対応する実行装置に命令がディスパッチできるよ
うに、命令に割当てられる。命令は仮想リネーム・バッ
ファに割当てられているので、命令のリネーム・ビジー
・ビットがセットされる。従って、IDN6のビット・
タグ・シーケンスに適した表現は1100000を含
み、最上位ビットは、セットされたリネーム・ビジー・
ビットを表す。従って実行装置は、リネーム・ビジー・
ビットのセット値を認識し、命令の処理はできるが、リ
ネーム・ビジー・ビットがリセットされるまでは終了で
きないことを確認する。
【0024】図5は、ある命令のリネーム・ビジー・ビ
ットがどのようにリセットされるかを示す。図の通り命
令、すなわち命令0が完了すると、これはテーブル7
0'から割当て解除される。この時点で、テーブルの仮
想リネーム・バッファ部にある第1命令エントリ、すな
わちIDN6に実リネーム・バッファR0が使用でき
る。命令IDN6は次に、テーブルの実リネーム・バッ
ファ部にセットされる。これと共に、リネーム可能信号
がアサートされて、対応する実行装置に命令のリネーム
・バッファが実リネーム・バッファになっていることが
通知される。実行装置間での対応するIDN(IDN6
等)の検索により、リネーム可能信号が正しい実行装置
に送られる。
【0025】図6及び図7は、本発明に従って仮想リネ
ーム・バッファを含むリネーム・バッファの割当て/割
当て解除を示すフローチャートである。命令が受信され
ると(ステップ100)、その命令を割当てるために実
リネーム・バッファが使用できるかどうか確認される
(ステップ102)。実リネーム・バッファが使用可能
な場合、命令はその実リネーム・バッファに割当てられ
る(ステップ104)。実リネーム・バッファが使用可
能ではない場合、すなわちテーブル70'の実リネーム
・バッファ部が一杯なら、ステップ106で、仮想リネ
ーム・バッファが使用可能かどうか確認される。仮想リ
ネーム・バッファが使用可能でないなら、ステップ10
8で、ディスパッチ装置が、仮想リネーム・バッファが
使用可能になるまで停止する。仮想リネーム・バッファ
が使用可能になると、その仮想リネーム・バッファが命
令に割当てられ、命令のリネーム・ビジー信号がセット
される(ステップ110)。
【0026】次にステップ112で、割当て/割当て解
除テーブル70'の実リネーム・バッファ部にある現在
の命令が完了したかどうか確認される。完了した場合、
現在の命令はテーブル70'の実リネーム・バッファ部
から割当て解除される(ステップ114)。次にステッ
プ116で、実リネーム・バッファ部に次の命令が割当
てられているか確認される。割当てられている場合、、
次の命令は現在の命令になる(ステップ118)。次に
プロセスは、仮想リネーム・バッファに命令があるかど
うかの確認に進む(ステップ120)。
【0027】仮想リネーム・バッファに命令が割当てら
れている、すなわちステップ120が真なら、命令は仮
想リネーム部から割当て解除され、ステップ122で、
実リネーム・バッファに割当てられる。この実リネーム
・バッファは、ステップ114で、完了した現在の命令
から割当て解除されていたものである。また、命令が実
リネーム・バッファ部に割当てられたとき、リネーム可
能信号がステップ122で対応する実行装置に転送さ
れ、プロセスは先に進む(ステップ112)。ステップ
120が偽で、仮想リネーム・バッファ部に命令がない
場合、プロセスはステップ112に戻る。次の命令がな
いことがステップ116で確認されると、プロセスは完
了する。
【0028】従って、テーブル70'の用法の全体は、
以下にまとめているように進行する。命令は、使用可能
な空きスロットがある場合は、テーブル70'の実リネ
ーム・バッファ部にロードされる。命令はそれぞれ実リ
ネーム・バッファから完了する。実リネーム・バッファ
のスロットが全て一杯のとき、命令は仮想リネーム・バ
ッファ部にロードされる。仮想リネーム・バッファ部も
一杯なら、ディスパッチ停止の問題が生じるが、テーブ
ルの仮想リネーム・バッファ部のスロット数は、むしろ
安価に増やすことができ、この問題を克服することがで
きる。仮想リネーム・バッファ部の有効な命令それぞれ
にリネーム・ビジー・ビットがセットされる。仮想リネ
ーム・バッファ部の各命令は、実リネーム・バッファ部
の命令が完了すると実リネーム・バッファ部にロードさ
れる。実リネーム・バッファ部にロードされると、リネ
ーム可能信号がアサートされて、特定の実行装置に、実
リネーム・バッファが命令に対して有効になったことが
通知され、ここで命令を終了することができる。命令に
は、そのターゲット・オペランド用の実リネーム・バッ
ファが割当てられているからである。
【0029】以上、本発明について、実施例に従って説
明したが、当業者には明らかなように、実施例には様々
な変形が可能であり、変形例は、本発明の主旨と範囲か
ら逸脱しない。例えばリネーム・ビジー・ビットは1ビ
ットとして示しているが、本発明から逸脱することな
く、必要に応じて複数のビットを使用することができ
る。また例では、特定数のリネーム・バッファと仮想リ
ネーム・バッファを示したが、その個数は便宜上のもの
であり、本発明を限定するものではない。従って、当業
者は、本発明の主旨と範囲から逸脱することなく、様々
は変形を行うことができる。
【0030】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0031】(1)ディスパッチ装置に接続された複数
のリネーム・バッファを含むスーパスカラ・プロセッサ
の、前記ディスパッチ装置における機能停止を減らす方
法であって、前記ディスパッチ装置によってディスパッ
チされた命令に対する実リネーム・バッファの割当て及
び割当て解除を管理するステップと、前記実リネーム・
バッファが割当てられているときに、命令を割当てるた
めに仮想リネーム・バッファを少なくとも1つ提供する
ステップと、前記少なくとも1つの仮想リネーム・バッ
ファに割当てられた前記命令に、前記命令を完了できな
いことを前記プロセッサの実行装置に示すリネーム・バ
ッファ・ビジー信号のタグを付けるステップと、を含
む、方法。 (2)命令が完了し、前記実リネーム・バッファから割
当て解除されたときに、前記少なくとも1つの仮想リネ
ーム・バッファにある前記命令に実リネーム・バッファ
が割当てられる、前記(1)記載の方法。 (3)前記割当てられた実リネーム・バッファは、完了
した前記命令から割当て解除された実リネーム・バッフ
ァである、前記(2)記載の方法。 (4)前記少なくとも1つの仮想リネーム・バッファに
ある前記命令に前記実リネーム・バッファが割当てられ
たとき、リネーム可能信号を前記実行装置に提供するス
テップを含む、前記(2)記載の方法。 (5)前記リネーム可能信号が受信されたときに、前記
命令が完了可能である、前記(4)記載の方法。 (6)スーパスカラ・プロセッサにおけるリネーム・バ
ッファを効率的に使用する装置であって、複数のリネー
ム・バッファと、前記複数のリネーム・バッファに接続
されたディスパッチ装置と、前記ディスパッチ装置と前
記複数のリネーム・バッファに接続され、複数の実リネ
ーム・バッファ・スロットと、少なくとも1つの仮想リ
ネーム・バッファ・スロットを含み、前記少なくとも1
つの仮想リネーム・バッファ・スロットに割当てられた
命令にリネーム・ビジー信号を提供する、割当て/割当
て解除テーブルと、を含む、装置。 (7)前記装置が前記少なくとも1つの仮想リネーム・
バッファ・スロットに命令を割当てるときに、前記ディ
スパッチ装置が前記命令を実行装置にディスパッチす
る、前記(6)記載の装置。 (8)前記実行装置は前記命令を操作する、前記(7)
記載の装置。 (9)前記テーブルが前記命令を実リネーム・バッファ
に割当てるときに、前記装置は、リネーム可能信号を前
記実行装置に送信する、前記(8)記載の装置。 (10)前記実行装置は、前記リネーム可能信号が受信
されたとき前記命令を完了する、前記(9)記載の装
置。
【図面の簡単な説明】
【図1】本発明に従ったコンピュータ装置のブロック図
である。
【図2】従来の割当て/割当て解除テーブルの1つの例
を示す図である。
【図3】本発明に従った仮想リネーム・バッファを含む
割当て/割当て解除テーブルを示す図である。
【図4】本発明に従った仮想リネーム・バッファを含む
割当て/割当て解除テーブルを示す図である。
【図5】本発明に従った仮想リネーム・バッファを含む
割当て/割当て解除テーブルを示す図である。
【図6】本発明に従った仮想リネーム・バッファを含む
割当て/割当て解除のプロセスのフローチャートを示す
図である。
【図7】本発明に従った仮想リネーム・バッファを含む
割当て/割当て解除のプロセスのフローチャートを示す
図である。
【符号の説明】
10 プロセッサ 11 システム・バス 12 バス・インタフェース装置 14 命令キャッシュ 16 データ・キャッシュ 18 シーケンサ装置 20 分岐装置 22 固定小数点装置A 24 固定小数点装置B 26 複合固定小数点装置 28 ロード/ストア装置 30 浮動小数点装置 32 汎用アーキテクチャ・レジスタ 34 固定小数点リネーム・バッファ 36 浮動小数点アーキテクチャ・レジスタ 38 浮動小数点リネーム・バッファ 39 システム・メモリ 40 汎用レジスタ 42 桁上げビット・レジスタ 46 ディスパッチ装置 48 完了装置 70、70' 割当て/割当て解除テーブル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ラジェスト・ビィ・ペイテル アメリカ合衆国78748、テキサス州オース ティン、シルク・オーク・コーブ 9313

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】ディスパッチ装置に接続された複数のリネ
    ーム・バッファを含むスーパスカラ・プロセッサの、前
    記ディスパッチ装置における機能停止を減らす方法であ
    って、 前記ディスパッチ装置によってディスパッチされた命令
    に対する実リネーム・バッファの割当て及び割当て解除
    を管理するステップと、 前記実リネーム・バッファが割当てられているときに、
    命令を割当てるために仮想リネーム・バッファを少なく
    とも1つ提供するステップと、 前記少なくとも1つの仮想リネーム・バッファに割当て
    られた前記命令に、前記命令を完了できないことを前記
    プロセッサの実行装置に示すリネーム・バッファ・ビジ
    ー信号のタグを付けるステップと、 を含む、方法。
  2. 【請求項2】命令が完了し、前記実リネーム・バッファ
    から割当て解除されたときに、前記少なくとも1つの仮
    想リネーム・バッファにある前記命令に実リネーム・バ
    ッファが割当てられる、請求項1記載の方法。
  3. 【請求項3】前記割当てられた実リネーム・バッファ
    は、完了した前記命令から割当て解除された実リネーム
    ・バッファである、請求項2記載の方法。
  4. 【請求項4】前記少なくとも1つの仮想リネーム・バッ
    ファにある前記命令に前記実リネーム・バッファが割当
    てられたとき、リネーム可能信号を前記実行装置に提供
    するステップを含む、請求項2記載の方法。
  5. 【請求項5】前記リネーム可能信号が受信されたとき
    に、前記命令が完了可能である、請求項4記載の方法。
  6. 【請求項6】スーパスカラ・プロセッサにおけるリネー
    ム・バッファを効率的に使用する装置であって、 複数のリネーム・バッファと、 前記複数のリネーム・バッファに接続されたディスパッ
    チ装置と、 前記ディスパッチ装置と前記複数のリネーム・バッファ
    に接続され、複数の実リネーム・バッファ・スロット
    と、少なくとも1つの仮想リネーム・バッファ・スロッ
    トを含み、前記少なくとも1つの仮想リネーム・バッフ
    ァ・スロットに割当てられた命令にリネーム・ビジー信
    号を提供する、割当て/割当て解除テーブルと、 を含む、装置。
  7. 【請求項7】前記装置が前記少なくとも1つの仮想リネ
    ーム・バッファ・スロットに命令を割当てるときに、前
    記ディスパッチ装置が前記命令を実行装置にディスパッ
    チする、請求項6記載の装置。
  8. 【請求項8】前記実行装置は前記命令を操作する、請求
    項7記載の装置。
  9. 【請求項9】前記テーブルが前記命令を実リネーム・バ
    ッファに割当てるときに、前記装置は、リネーム可能信
    号を前記実行装置に送信する、請求項8記載の装置。
  10. 【請求項10】前記実行装置は、前記リネーム可能信号
    が受信されたとき前記命令を完了する、請求項9記載の
    装置。
JP8229043A 1995-12-14 1996-08-29 スーパスカラ・プロセッサのリネーム・バッファを効率よく使用する方法及び装置 Expired - Fee Related JP3045964B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/572458 1995-12-14
US08/572,458 US5758117A (en) 1995-12-14 1995-12-14 Method and system for efficiently utilizing rename buffers to reduce dispatch unit stalls in a superscalar processor

Publications (2)

Publication Number Publication Date
JPH09179737A true JPH09179737A (ja) 1997-07-11
JP3045964B2 JP3045964B2 (ja) 2000-05-29

Family

ID=24287889

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8229043A Expired - Fee Related JP3045964B2 (ja) 1995-12-14 1996-08-29 スーパスカラ・プロセッサのリネーム・バッファを効率よく使用する方法及び装置

Country Status (3)

Country Link
US (1) US5758117A (ja)
JP (1) JP3045964B2 (ja)
KR (1) KR100237989B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011018120A (ja) * 2009-07-07 2011-01-27 Nec Computertechno Ltd 情報処理装置及びベクトル型情報処理装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
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
US6311267B1 (en) * 1998-11-20 2001-10-30 International Business Machines Corporation Just-in-time register renaming technique
US6446194B1 (en) 1999-07-08 2002-09-03 International Business Machines Corporation Virtual register renamed instruction issue for execution upon virtual/physical rename buffer wrap around detection signaling available physical register
US7669039B2 (en) * 2007-01-24 2010-02-23 Qualcomm Incorporated Use of register renaming system for forwarding intermediate results between constituent instructions of an expanded instruction

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JPS593642A (ja) * 1982-06-30 1984-01-10 Fujitsu Ltd 制御レジスタ処理方式
JPH03150637A (ja) * 1989-11-08 1991-06-27 Oki Electric Ind Co Ltd パイプライン対応のレジスタ割付け方式
US5303358A (en) * 1990-01-26 1994-04-12 Apple Computer, Inc. Prefix instruction for modification of a subsequent instruction
US5280615A (en) * 1990-03-23 1994-01-18 Unisys Corporation Out of order job processing method and apparatus
US5293631A (en) * 1991-08-06 1994-03-08 Hewlett-Packard Company Analysis and optimization of array variables in compiler for instruction level parallel processor
US5386562A (en) * 1992-05-13 1995-01-31 Mips Computer Systems, Inc. Circular scheduling method and apparatus for executing computer programs by moving independent instructions out of a loop
EP1107111A3 (en) * 1992-12-31 2002-02-06 Seiko Epson Corporation System and method for register renaming
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.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011018120A (ja) * 2009-07-07 2011-01-27 Nec Computertechno Ltd 情報処理装置及びベクトル型情報処理装置

Also Published As

Publication number Publication date
KR100237989B1 (ko) 2000-01-15
JP3045964B2 (ja) 2000-05-29
US5758117A (en) 1998-05-26
KR970049491A (ko) 1997-07-29

Similar Documents

Publication Publication Date Title
EP0762270B1 (en) Microprocessor with load/store operation to/from multiple registers
US5452426A (en) Coordinating speculative and committed state register source data and immediate source data in a processor
US7472258B2 (en) Dynamically shared group completion table between multiple threads
US6728866B1 (en) Partitioned issue queue and allocation strategy
US5974523A (en) Mechanism for efficiently overlapping multiple operand types in a microprocessor
US5611063A (en) Method for executing speculative load instructions in high-performance processors
US5951670A (en) Segment register renaming in an out of order processor
JP2783505B2 (ja) 独立にアクセスされる中間記憶域を利用してスーパースカラ・プロセッサ・システムにおける命令ディスパッチを改善する方法およびシステム
JPH06236273A (ja) スーパースカラ・プロセッサ・システムにおいて複数命令を単一サイクルでディスパッチするための方法およびシステム
US5913054A (en) Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle
JPH10312282A (ja) 命令完了を改良するための方法および装置
KR100188502B1 (ko) 처리 시스템 및 그의 동작 방법
US6463524B1 (en) Superscalar processor and method for incrementally issuing store instructions
JP3689369B2 (ja) 2次リオーダ・バッファ・マイクロプロセッサ
JP2682812B2 (ja) オペレーションの処理システム及び方法
JP3155519B2 (ja) スーパスカラ・プロセッサでストア命令を処理する方法及び装置
JPH11296371A (ja) アウト・オブ・オ―ダ・レジスタ動作ための装置を有するデ―タ処理システムおよびその方法
US5802340A (en) Method and system of executing speculative store instructions in a parallel processing computer system
US6134645A (en) Instruction completion logic distributed among execution units for improving completion efficiency
US6209073B1 (en) System and method for interlocking barrier operations in load and store queues
US5765017A (en) Method and system in a data processing system for efficient management of an indication of a status of each of multiple registers
JP3045964B2 (ja) スーパスカラ・プロセッサのリネーム・バッファを効率よく使用する方法及び装置
US5850563A (en) Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
US5926645A (en) Method and system for enabling multiple store instruction completions in a processing system
US5765215A (en) Method and system for efficient rename buffer deallocation within a processor

Legal Events

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