JP2003523574A - 2次リオーダ・バッファ・マイクロプロセッサ - Google Patents

2次リオーダ・バッファ・マイクロプロセッサ

Info

Publication number
JP2003523574A
JP2003523574A JP2001560801A JP2001560801A JP2003523574A JP 2003523574 A JP2003523574 A JP 2003523574A JP 2001560801 A JP2001560801 A JP 2001560801A JP 2001560801 A JP2001560801 A JP 2001560801A JP 2003523574 A JP2003523574 A JP 2003523574A
Authority
JP
Japan
Prior art keywords
instruction
reorder buffer
register
instructions
rename
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
JP2001560801A
Other languages
English (en)
Other versions
JP3689369B2 (ja
Inventor
カーレ、ジェームス、アラン
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 JP2003523574A publication Critical patent/JP2003523574A/ja
Application granted granted Critical
Publication of JP3689369B2 publication Critical patent/JP3689369B2/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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/3856Reordering of instructions, e.g. using queues or age tags
    • 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)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 複数リネーム・レジスタを必要とする複雑命令の存在にかかわらず、最大命令発行を可能にするための方法、プロセッサ、およびデータ処理システムを提供すること。 【解決手段】 この方法は、複雑命令の影響を受ける第1のレジスタの内容を記憶するために第1のリオーダ・バッファから第1のリネーム・レジスタを割り振ることを含む。次に、複雑命令の影響を受ける第2のレジスタの内容を記憶するために第2のリオーダ・バッファから第2のリネーム・レジスタを割り振る。第1のリオーダ・バッファがサイクルあたり最大数の割振りをサポートする一実施形態では、第2のリオーダ・バッファを使用する第2のレジスタの割振りにより、複雑命令が第1のリオーダ・バッファ内の複数の割振りスロットを必要とするのを防止する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
本発明は、一般にマイクロプロセッサの分野に関し、より詳細には複数ターゲ
ットを備えた命令に2次リオーダ・バッファを使用するマイクロプロセッサに関
する。
【0002】
【従来の技術】
out-of-order実行(out-of-order execution)を可能にするためにマイクロプ
ロセッサのリオーダ・バッファを使用することは周知のことである。たとえば、
Hennessy & Pattersonによる「Computer Architecture a Quantitative Approac
h」の309〜317ページ(Morgan Kaufmann、第2版、1996年)を参照さ
れたい。リオーダ・バッファは、ある命令が最終的にコミットされるまで実行し
た命令の結果を記憶するために使用する。多くのスーパスカラ・プロセッサでは
、複数の命令を単一サイクルで発行することができる。最高パフォーマンスを達
成するために、発行した命令ごとにその命令が発行されたサイクル中にリネーム
・レジスタ(rename register)の割振りを行わなければならない。通常、発行
した各命令は、マイクロプロセッサの単一レジスタの内容に影響し、したがって
、単一リネーム・レジスタ項目だけを必要とする。しかし、それ以外の場合には
、命令(以下、複雑命令(complex instruction)という)は2つまたはそれ以
上のレジスタの内容に影響する。最適パフォーマンスを達成する場合には、この
ような複雑命令のレジスタ・リネームもその発行サイクルで行わなければならな
い。
【0003】
【発明が解決しようとする課題】
残念ながら、従来のマイクロプロセッサで使用するリネーム・バッファは、単
一サイクルで実行できる割振りの回数が制限されている。単一サイクルで実行で
きるリネーム割振りの回数に関するこの制限は、複数の割振りを必要とする命令
の存在と結びつくと、発行ユニットが複雑になり、その結果、複数命令のうちの
1つが複雑命令である場合に発行ユニットが特定の1サイクルで最大数の命令を
発行できなくなる可能性がある。
【0004】
【課題を解決するための手段】
したがって、本発明は、マイクロプロセッサ内で命令を実行する方法であって
、複数レジスタの内容に影響する命令を発行することと、命令の影響を受ける第
1のレジスタの内容を記憶するために第1のリオーダ・バッファから第1のリネ
ーム・レジスタを割り振ることと、命令の影響を受ける第2のレジスタの内容を
記憶するために第2のリオーダ・バッファから第2のリネーム・レジスタを割り
振ることを含み、第2のリオーダ・バッファを使用する第2のリネーム・レジス
タの割振りにより、命令が第1のリオーダ・バッファ内の複数の割振りスロット
を消費するのを防止する方法を提供する。
【0005】 本発明は、命令キャッシュから命令を受け取るように構成され、実行用の命令
を発行するように適合された発行ユニットと、命令の1次レジスタ用にリネーム
・レジスタを割り振るように専用化された第1のリオーダ・バッファと、命令の
2次レジスタ用にリネーム・レジスタを割り振るように専用化された第2のリオ
ーダ・バッファとを含み、発行ユニットが、少なくとも2つのレジスタの内容に
影響する複雑命令を発行したときに、その命令の1次レジスタ用に第1のリオー
ダ・バッファ内のリネーム・レジスタを割り振り、その命令の2次レジスタ用に
第2のリオーダ・バッファ内のリネーム・レジスタを割り振るように構成されて
いるプロセッサをさらに提供する。
【0006】 本発明は、システム・メモリと、入力手段と、ディスプレイと、上記のプロセ
ッサとを含むデータ処理システムをさらに提供する。
【0007】 好ましくは、本発明は、命令が単純命令、複雑命令、あるいはその両者の組合
せを含むかどうかにかかわらず、サイクルあたり最大数の命令を発行可能なマイ
クロプロセッサを提供する。
【0008】 第1のリオーダ・バッファがサイクルあたり最大数の割振りをサポートする一
実施形態では、第2のリオーダ・バッファを使用する第2のレジスタの割振りに
より、複雑命令が第1のリオーダ・バッファ内の複数の割振りスロットを必要と
するのを防止する。この方法は、2次リオーダ・バッファ内で割り振られるレジ
スタに対する依存関係を含む第2の命令を発行することをさらに含むことができ
る。一実施形態では、2次リオーダ・バッファ内で割り振られたレジスタに対す
る第2の命令の依存関係を示すリオーダ・バッファ情報は、続いて第2の命令が
発行されたときに、2次リオーダ・バッファのみをチェックして依存関係の有無
を確認するよう発行ユニットを制限するためにリオーダ・バッファ情報を使用す
るように、第2の命令に関連づけられる。
【0009】
【発明の実施の形態】
次に図1を参照すると、本発明によるデータ処理システム100の実施形態が
示されている。システム100は、1つまたは複数の中央演算処理装置(プロセ
ッサ)101a、101b、101cなど(まとめてまたは総称してプロセッサ
(複数も可)101という)を有する。一実施形態の各プロセッサ101は、縮
小命令セット・コンピュータ(RISC)マイクロプロセッサを含む。RISC
プロセッサに関する追加情報は、一般に、C. May他編集の「PowerPC Architectu
re: A specification for a New Family of RISC Processors 」(Morgan Kaufm
ann、1994年、第2版)に記載されている。
【0010】 プロセッサ101は、システム・バス113を介してシステム・メモリ(RA
M)250および他の様々なコンポーネントに結合されている。読取専用メモリ
(ROM)102は、システム・バス113に結合され、システム100の所与
の基本機能を制御する基本入出力システム(BIOS)を含む。
【0011】 図1はさらに、システム・バス113に結合された入出力アダプタ107とネ
ットワークまたは通信アダプタ106とを示している。入出力アダプタ107は
、たとえば、ハード・ディスク103または磁気テープ記憶駆動機構105ある
いはその両方とやりとりする小型コンピュータ・システム・インタフェース(S
CSI)アダプタである。入出力アダプタ107とハード・ディスク103と磁
気テープ記憶装置105は、本明細書ではまとめて大容量記憶装置104という
(図2を参照)。ネットワーク・アダプタ106はバス113と外部ネットワー
クを相互接続し、データ処理システム100が他のこのようなシステムとやりと
りできるようにする。表示モニタ136はディスプレイ・アダプタ112によっ
てシステム・バス113に接続され、そのディスプレイ・アダプタ112はグラ
フィックス主体のアプリケーションのパフォーマンスを改善するためのグラフィ
ックス・アダプタとビデオ・コントローラ(ともに図示せず)を含む場合もある
。一実施形態のアダプタ107、106、112は、中間バス・ブリッジ(図示
せず)を介してシステム・バス113に接続された1つまたは複数の入出力バス
に接続されている。ハード・ディスク・コントローラ、ネットワーク・アダプタ
、グラフィックス・アダプタなどの周辺装置を接続するための適当な入出力バス
としては、オレゴン州ヒルズバラのPCI Special Interest Groupから入手可能で
、参照により本明細書に組み込まれるPCI Local Bus Specification Rev. 2.2に
よるPeripheral Components Interface(PCI)バスを含む。追加の入出力装
置は、ユーザ・インタフェース・アダプタ108およびディスプレイ・アダプタ
112を介してシステム・バス113に接続されたものとして示されている。キ
ーボード109、マウス110、スピーカ111はいずれもユーザ・インタフェ
ース・アダプタ108を介してバス113に相互接続されており、そのユーザ・
インタフェース・アダプタ108は、たとえば、複数の装置アダプタを単一集積
回路に集積するSuperI/Oチップを含むことができる。このようなチップ
に関する追加情報については、www.national.comにおいてナショナル・セミコン
ダクタ社から入手可能な「PC87338/PC97338 ACPI 1.0 and PC98/99 Compliant S
uperI/O」というデータ・シート(1998年11月)を参照されたい。
【0012】 したがって、図1に構成したように、システム100は、プロセッサ101の
形をした処理手段と、システム・メモリ250および大容量記憶装置104を含
む記憶手段と、キーボード109およびマウス110などの入力手段と、スピー
カ111およびディスプレイ136を含む出力手段とを含む。一実施形態では、
システム・メモリ250の一部分と大容量記憶装置104が集合的に、IBM社
のAIX(R)オペレーティング・システムなどのオペレーティング・システム
を記憶して、図1に示す様々なコンポーネントの機能を調整する。AIXオペレ
ーティング・システムの追加の詳細については、www.ibm.comにおいてIBM社
から入手可能な「AIX Version 4.3 Technical Reference: Base Operating Syst
em and Extensions, Volumes 1 and 2」(資料番号SC23−4159およびS
C23−4160)、「AIX Version 4.3 System User's Guide: Communication
s and Networks」(資料番号SC23−4122)、「AIX Version 4.3 System
User's Guide: Operating System and Devices」(資料番号SC23−412
1)に記載され、本明細書に参照として組みこまれている。
【0013】 次に図2に移行すると、システム100での使用に適しているプロセッサ10
1の一実施形態の簡略ブロック図が提示されている。図示の実施形態のプロセッ
サ101は、モノリシック半導体基板上に製作された集積回路スーパスカラ・マ
イクロプロセッサを含む。プロセッサ101は、以下により詳細に述べるように
、様々な実行ユニット、レジスタ、バッファ、メモリ、その他の機能ユニットを
含む。図2に示すように、プロセッサ101は、バス・インタフェース・ユニッ
ト(BIU)212およびプロセッサ・バス213を介してシステム・バス11
3に結合されており、そのプロセッサ・バス213はシステム・バス113のよ
うにアドレス・バス、データ・バス、制御バスを含む。BIU212は、プロセ
ッサ101と、システム・メモリ250および大容量記憶装置104など、シス
テム・バス113に結合された他の装置との情報転送を制御する。プロセッサ1
01は、システム・バス113に結合された他の装置のうち、以下の説明を理解
するために不要であり、したがって、簡略化のために省略されている装置を含む
場合もあることが分かるだろう。
【0014】 BIU212は、プロセッサ101内の命令キャッシュおよびメモリ管理ユニ
ット(MMU)214とデータ・キャッシュおよびメモリ管理ユニット216に
接続されている。命令キャッシュ214およびデータ・キャッシュ216内のよ
うな高速キャッシュにより、プロセッサ101は、システム・メモリ250から
以前転送されたデータまたは命令のサブセットに対して比較的高速のアクセス時
間を達成することができ、したがって、データ処理システム100の動作速度が
改善される。データ・キャッシュ216および命令キャッシュ214内に記憶さ
れたデータおよび命令はそれぞれアドレス・タグによって識別されアクセスされ
るが、各アドレス・タグは、そのデータまたは命令が常駐するシステム・メモリ
の物理アドレスのうちの指定の数のビット(通常は上位ビット)を含む。順次フ
ェッチ・ユニット217は、各クロック・サイクル中に命令キャッシュ214か
ら実行用の命令を取り出す。一実施形態では、順次フェッチ・ユニット217が
命令キャッシュ214からブランチ命令を取り出した場合、そのブランチ命令は
ブランチ処理ユニット(BPU)218に転送されて実行される。順次フェッチ
・ユニット217は非ブランチ命令を命令待ち行列219に転送し、そこで命令
は記憶され、プロセッサ101の他の機能ユニットによる実行を一時的に保留す
る。ディスパッチ・ユニット220は、記憶した命令を待ち行列219から取り
出し、その命令を発行ユニット(ISU)221に転送する責任がある。ディス
パッチ・ユニット220は、完了ユニット240から受け取った命令完了情報に
部分的に基づいて、発行ユニット221への命令のディスパッチをスケジューリ
ングする。ISU221の図示の実施形態は、1つまたは複数の発行待ち行列2
22a、222b、222cなど(まとめてまたは総称して発行待ち行列(複数
も可)222という)を含む。ISU221は、可能な場合には各サイクルで新
しい命令を実行ユニットに発行することにより、完全にロードされたパイプライ
ンを維持する責任がある。一実施形態では、命令はISU221からout-of-ord
er方式で発行される。
【0015】 図示の実施形態では、プロセッサ101の実行回路は、BPU218に加え、
固定小数点ユニット(FXU)223、ロード/ストア・ユニット(LSU)2
28、浮動小数点ユニット(FPU)230を含む、順次命令を実行するための
複数の機能ユニットを含む。それぞれの実行ユニット223、228、230は
通常、パイプライン方式で各プロセッサ・サイクル中に特定のタイプの1つまた
は複数の命令を実行する。たとえば、FXU223は、指定の汎用レジスタ(G
PR)232から受け取ったソース・オペランドを使用して、加算、減算、AN
D、OR、XORなどの固定小数点数理論理演算を実行する。固定小数点命令の
実行に続いて、FXU223はその命令のデータ結果をGPRバッファ232に
出力し、そのバッファは結果バス262上で受け取った結果用の記憶域を提供す
る。FPU230は通常、浮動小数点レジスタ(FPR)236から受け取った
ソース・オペランドに対して浮動小数点乗算および除算などの単精度および倍精
度の浮動小数点算術論理演算を実行する。FPU230は浮動小数点命令の実行
から得られるデータを選択したFPRバッファ236に出力し、そのバッファは
その結果データを記憶する。その名前が暗示するように、LSU228は通常、
データ・キャッシュ216、低レベル・キャッシュ・メモリ(図示せず)、また
はシステム・メモリ250から、選択したGPR232またはFPR236にデ
ータをロードする浮動小数点および固定小数点のロード命令と、GPR232ま
たはFPR236のうちの選択した1つのレジスタからデータ・キャッシュ21
6に、最終的にはシステム・メモリ250にデータを記憶する浮動小数点および
固定小数点のストア命令を実行する。
【0016】 好ましい実施形態では、プロセッサ101はout-of-order命令実行を使用して
、そのスーパスカラ・アーキテクチャのパフォーマンスをさらに改善する。した
がって、データ依存関係を維持する限り、命令の元のプログラム順序とは異なる
順序でFXU223、LSU228、FPU230によって命令を実行すること
ができる。前に示した通り、一連のパイプライン・ステージとしてFXU223
、LSU228、FPU230のそれぞれによって命令が処理される。一実施形
態のプロセッサ101は、5つの別個のパイプライン・ステージ、すなわち、フ
ェッチ、デコード/ディスパッチ、実行、終了、完了を含む。
【0017】 フェッチ・ステージ中に、順次フェッチ・ユニット217は、命令キャッシュ
214から1つまたは複数の非ブランチ命令を取り出し、フェッチした命令を命
令待ち行列219内に記憶する。これに対して、順次フェッチ・ユニット217
は、ブランチ命令があると、そのブランチ命令を実行のために命令ストリームか
らBPU218に転送する。BPU218は、一実施形態では、ブランチが行わ
れるかどうかを予測することにより、BPU218が未解決の条件付きブランチ
命令を投機的に実行できるようにするブランチ履歴テーブルなどの動的予測メカ
ニズムを含む、ブランチ予測メカニズムを含む。
【0018】 デコード/ディスパッチ・ステージ中に、ディスパッチ・ユニット220およ
びISU221は、1つまたは複数の命令をデコードし、発行待ち行列222か
ら実行ユニット223、228、230に通常はプログラム順序で発行する。I
SU221は、命令の結果(複数も可)をGPR232またはFPR237にコ
ミットする前にその結果(複数も可)を一時的に記憶するために、GPRリネー
ム・バッファ233またはFPRリネーム・バッファ237内の1つまたは複数
のリネーム・バッファを割り振ることができる。さらに、どの命令が完了したか
を追跡する手段として完了ユニット240の複数スロット完了バッファ(完了テ
ーブル)内に命令(またはその命令を表す命令識別子またはタグ)を記憶するこ
ともできる。
【0019】 実行ステージ中に、実行ユニット223、228、230は、示された演算用
のオペランドおよび実行資源が使用可能になったときに便宜的にISU220か
ら発行された命令を実行する。一実施形態の各実行ユニット223、228、2
30は、オペランドまたは実行資源が使用可能になるまで、その実行ユニットに
ディスパッチされた命令を記憶する予約ステーションを装備している。命令の実
行が終了した後、実行ユニット223、228、230は、データ結果がある場
合に、命令タイプに応じてそのデータ結果をGPRまたはFPRのいずれかに記
憶する。図示の実施形態では、実行ユニット223、228、230は、どの命
令が実行を終了したかを完了ユニット240に通知する。最後に、完了ユニット
240の完了テーブルを離れたプログラム順序で命令が完了する。FXU223
およびFPU230によって実行される命令は、命令のデータ結果をGPRリネ
ーム・バッファ233およびFPRリネーム・バッファ237からGPR232
およびFPR236にそれぞれ転送することによって完了する。
【0020】 プロセッサ101は好ましくは、out-of-order方式の投機的命令実行をサポー
トする。命令は、予測したブランチ指示で投機的になる場合もあれば、割込み条
件を発生する可能性のある命令以上に投機的になる場合もある。ブランチ予測違
い(branch misprediction)または割込みが発生した場合、ハードウェアはパイ
プラインからの望ましくない命令を自動的にフラッシュし、望ましくない結果を
廃棄し、精密な例外と適切なブランチ経路に沿って順次実行した命令の効果を提
示する。間違った投機的結果は1クロック・サイクル中にすべてのユニットから
選択的にフラッシュされ、命令発行によって次のクロック・サイクルを再開する
ことができる。プロセッサ101は、複数のロード・ユニットと単一のストア・
ユニットを含むことができる。しかし、プロセッサ101が単一ロード/ストア
・ユニットなどの他の構成を含むことができることは当業者には明白であるはず
である。
【0021】 命令を発行すると、ISU221は、任意の2つの命令間の相対年齢(relati
ve age)を容易に決定することができるように、その命令にタグを付ける。一実
施形態では、整数値(ITAG)で順次命令にタグを付ける。発行した命令の発
行順序および相対年齢を決定するためのメカニズムを提供することに加え、IT
AGはそれぞれの対応する命令の速記表現を提供する。各命令のITAG値は、
それが常駐するパイプライン・ステージと待ち行列項目に関連づけられている。
ITAGを使用すると、(プロセッサ生成のフラッシュ命令に応答して)フラッ
シュ命令に関連するITAGと特定の待ち行列項目または機能ユニット・ステー
ジとの規模比較が実行され、フラッシュした命令と同じくらい新しいかまたはフ
ラッシュした命令より新しい命令(すなわち、同時に発行されたかまたは後で発
行されたもの)に関するものである場合にその項目が無効になるという命令フラ
ッシュ・メカニズムが容易になる。フラッシュした命令(およびその後のすべて
の命令)のすべてのレムナントはマシンから「フラッシュ」され、フェッチ・ユ
ニットは「フラッシュした」命令のアドレスから始まるフェッチにリダイレクト
される。
【0022】 本発明の一実施形態は、複数のリネーム項目を必要とする命令に関する命令発
行とレジスタ・リネームを処理する方法を企図するものである。PowerPC
(R)命令セットなどの多くの命令セットでは、大多数の命令は単一レジスタの
みの内容を更新する。(PowerPC(R)命令セットに関する詳細情報は、
モトローラ社から入手可能な「PowerPC 620 RISC Microprocessor User's Manua
l」(資料番号MPC620UM/AD)に記載されているが、これは参照によ
り本明細書に組み込まれる。)したがって、このような命令は、その結果がGP
R232にコミットされるまでその命令の結果を一時的に記憶するために、単一
のリネーム・レジスタ項目のみを必要とする。複数の並列実行ユニットを使用し
、サイクルあたり複数の命令を発行できるようになっているスーパスカラ・マシ
ンでは、命令とその結果に割り振られたリネーム・レジスタとの1対1の対応に
より、発行およびリネーム割振りプロセスが簡略化される。たとえば、プロセッ
サがサイクルあたり4つの命令を発行可能である場合、レジスタ・リネーム制御
論理回路はサイクルあたり最高4つのリネーム・レジスタを割り振るように設計
されている。しかし、命令セットが複数のリネーム・レジスタの割振りを必要と
する1つまたは複数の命令も含む場合、発行/リネーム・メカニズムがより複雑
なものになる。たとえば、PowerPC(R)命令セットでは、いくつかの命
令は2つのレジスタ(結果レジスタ)の内容に影響する。この開示のため、複数
のレジスタの内容に影響する命令は複雑命令という。プロセッサがout-of-order
実行を完全にサポートする場合、結果レジスタのそれぞれには、複雑命令が発行
されたサイクル中にリネーム・レジスタが割り振られなければならない。従来、
複雑命令に必要な複数のリネーム・レジスタは、複雑命令が発行されたサイクル
中に他の命令が発行されるのを防止していた。所与のサイクル中に割り振られる
必要があるリネーム・レジスタの総数が指定の最大値を超えたかどうかを判定す
るために、発行論理回路が必要であった。たとえば、プロセッサがサイクルあた
り4つの「単純」命令(すなわち、単一レジスタのみの内容に影響する命令)を
発行可能で(しかも、そのサイクル中に4つのリネーム・レジスタを割振り可能
で)あり、プロセッサの発行ユニットが複雑命令を発行した場合、発行ユニット
は、他の3つの発行スロットがすべて同じサイクル中に命令を発行するのを防止
することが要求されるだろう。すなわち、プロセッサは、3つの残りの発行スロ
ットのうちの1つが命令を発行するのを防止しなければならず、さらに、2つの
残りの発行スロットが複雑命令そのものを発行しなかったことを保証しなければ
ならないだろう。したがって、複数発行スーパスカラ・マイクロプロセッサ内に
複雑命令が存在すると発行論理回路の複雑さが増し、最大数の命令が単一サイク
ル中に発行されるのを防止することにより、パフォーマンスが悪影響を受けてい
た。
【0023】 次に図3に移行すると、本発明の一実施形態によるリオーダ・バッファ300
が示されている。リオーダ・バッファ300は、1次リオーダ・バッファ302
と2次リオーダ・バッファ303とを含む。1次リオーダ・バッファ302は1
次リネームGPR304を含み、2次リオーダ・バッファ303は2次リネーム
GPR306を含む。1次リネームGPR302と2次リネームGPR304の
組合せは、図2に参照番号233で示されているリネームGPRを含む。(リオ
ーダ・バッファ300の図示の実施形態はリネームGPR233に固有のもので
あるが、リオーダ・バッファ300は、リネームGPR233の代わりにまたは
リネームGPR233に加えて、リネームFPR237を含むこともできる。)
好ましい実施形態では、1次リオーダ・バッファ302において単純命令用のす
べてのリネーム・レジスタが割り振られている。また、1次リオーダ・バッファ
302は、各複雑命令に関連する1次レジスタのために1次リネーム・レジスタ
304を割り振るためにも使用する。これに対して2次リオーダ・バッファ30
3は、単純命令を発行したときは使用しないが、複雑命令の2次レジスタのため
に2次リネーム・レジスタ306を割り振るために使用する。PowerPC命
令セットを使用する一例として、単純ロード命令LOAD RT, RA, RBを発行した場
合、その命令が最終的にコミットされるまで(すなわち、その結果がGPR(レ
ジスタ・ファイル)232内のターゲット・レジスタRTに書き込まれるとき)
その命令の結果を保持する命令が発行されると、リネーム・レジスタ304が割
り振られる。この例のロード命令は単一レジスタのみの内容に影響するので、単
一リネーム・レジスタのみを割り振る必要がある。第2の例では、更新付きロー
ド(LU)命令などの複雑命令を発行する(たとえば、LU RT, RA, RB)。この
更新付きロード命令では、レジスタRAおよびRBの内容に基づいて有効アドレ
スを計算し、計算した有効アドレスが付いたメモリ位置の内容をターゲット・レ
ジスタRTにロードする。また、この命令は、計算した有効アドレスの値でRA
の内容を更新する。LU命令は、その命令が実行されるたびにソース・メモリ・
アドレスを自動的にインクリメントする単一命令を提供することによるソフトウ
ェア・ループの実現を含む、様々な状況で有用である。LU命令は、2つのレジ
スタの内容に影響し、したがって、発行したときに2つのリネーム・レジスタを
割り振る必要があるので、複雑命令である。図示の実施形態では、レジスタAお
よびB内のオペランド情報がデュアル・ポート式レジスタ・ファイル232から
読み取られる。しかし、この例では、1次リオーダ・バッファ302内の1次リ
ネーム・レジスタ304がターゲット・レジスタRTのために割り振られ、2次
リオーダ・バッファ303では2次レジスタ(RA)値のために2次リネーム・
レジスタ306が割り振られる。比較すると、従来通りに設計されたプロセッサ
は、命令が発行されたときに(単一)リオーダ・バッファ内のRTおよびRA両
方のレジスタのためにレジスタを割り振らざるを得なくなるだろう。このプロセ
ッサはサイクルあたり指定の数のレジスタを割り振ることしかできず、しかも、
LU命令はこれらの割振りスロットのうちの2つを消費するので、従来のプロセ
ッサは、望ましくないことに、LU命令が発行されたサイクル中に最大許容数よ
り少ない命令を発行せざるを得なくなるだろう。この例ではLU命令を使用する
が、PowerPC命令セットおよび1つまたは複数の複雑命令を含むその他の
命令セットに精通した人であれば、2つのレジスタの内容に影響するどの命令で
も本明細書に開示したように2次リオーダ・バッファを含めたことによって利益
を得ることが分かるだろう。
【0024】 レジスタ・リネームのために2次リオーダ・バッファ303の形の追加資源を
組み込むことにより、有利なことに、プロセッサ101は、命令が単純命令か、
複雑命令か、あるいはその組合せかにかかわらず、各サイクル中に最大許容数の
命令を発行することができる(最大数の命令が発行できる状態になっているもの
と想定する)。2次リオーダ・バッファ303によって提供された資源がない場
合、複雑命令の発行は、プロセッサの(単一)リオーダ・バッファ内の複数のリ
ネーム・レジスタの割振りを必要とすることになるだろう。単一リオーダ・バッ
ファが単一サイクルで割り振ることができるリネーム・レジスタの数はアーキテ
クチャ上、制限されているので、複雑命令は、複雑命令が発行されたサイクル中
にプロセッサが最大数の命令を発行するのを防止することになるだろう。そのう
え、複雑命令がある場合に、所与のサイクル中にいくつの命令が発行可能である
かを決定するために必要なインテリジェンスにより、発行論理回路に対して要求
される複雑さが大幅に増大する。
【0025】 2次リオーダ・バッファ303の存在により、そのオペランド・レジスタのい
ずれかが現在、2次リオーダ・バッファ303で割り振られているかどうかを命
令が判定するメカニズムが必要になる。一実施形態のプロセッサ101では、両
方のリオーダ・バッファをサーチして依存関係を決定するために複雑命令が移行
中である間に各命令が発行されることが要求されるだけである。この実施形態は
簡略化の利点を享受しているが、望ましくないことに、発行サイクル中にサーチ
されるリオーダ・バッファ項目の数が増加する。所与のサイクル中に発行できる
命令の数が増加するにつれて、命令の依存関係を決定するために検査しなければ
ならないリオーダ・バッファ項目の数を最小限にすることがますます望ましいこ
とになる。この問題に対処するため、本発明の一実施形態では、ある命令の最初
の実行時にリオーダ・バッファ情報が記録されるメカニズムを企図している。そ
の場合、リオーダ・バッファ情報は、その命令がどのリオーダ・バッファを検査
しなければならないかを決定するために、その命令のその後の実行時に使用され
る。図4に移行すると、以下のコード・セグメント例に関連して、この実施形態
の例証となる流れ図が記載されている。 LQ R4, R25, R26 ADD R7, R5, R2
【0026】 ブロック400は、LQ(ロード・クワッド)命令の発行を表している。LQ
命令は、PowerPC(R)命令セット内の複雑命令であって、示されている
ターゲット・レジスタ(R4)ならびに次の順次レジスタ(R5)の内容に影響
するものである。ADD命令はR5ソース・オペランドを含むので、ADD命令
はLQ命令に依存する。このコード・セグメントの最初の実行時に、好ましくは
発行ユニットにより、LQ命令に続くすべての命令(すなわち、LQ命令が発行
された後であるがLQ命令がコミットされる前に発行されるすべての命令)が両
方のリオーダ・バッファをサーチして依存関係を検出せざるを得ない。したがっ
て、ブロック402で発行ユニットはR5に対するADD命令の依存関係を検出
するが、そのR5は2次リオーダ・バッファ303の2次リネーム・レジスタ3
06で割り振られている。ADD命令とLQ命令との2次バッファの依存関係を
検出すると、発行ユニット221は、ADD命令の依存関係が2次リオーダ・バ
ッファ303で見つかったことを示すリオーダ・バッファ情報を記録するように
構成されている(ブロック404)。一実施形態では、このリオーダ・バッファ
情報は、ADD命令を含む命令キャッシュ項目内の専用ビットまたはビット・セ
ットに記憶される。その後、ADD命令が実行されると(ブロック406)、A
DD命令に対応するリオーダ・バッファ情報は、(最初の実行時と同様に)AD
D命令の依存関係が2次リオーダ・バッファで見つかったことを発行ユニット2
21に通知する。このようにして、発行ユニット221は有利なことに、リオー
ダ・バッファ300に対するそのサーチを2次リオーダ・バッファ303に制限
することができる。この例はLQ命令に関連して説明しているが、このメカニズ
ムはPowerPC(R)のLU命令などの他の複雑命令とともに使用する。し
たがって、2次リオーダ・バッファを選択的に使用可能にしたり使用不能にする
ためのメカニズムとともに2次発行バッファを組み込むことにより、本発明は、
発行ユニット上でのパフォーマンスの犠牲を最小限にしながらサイクルあたり最
大の命令発行を可能にするための手段を有利に提供する。
【0027】 本発明が、好ましい実施形態により、2次リネーム方式で2次レジスタを割り
振るための追加のリネーム機構を実現することにより、マイクロプロセッサのパ
フォーマンスにおいて発行/リネーム・メカニズムのパフォーマンスの簡略化お
よび改善を企図することは、この開示内容の恩恵を受ける当業者には明白なこと
になるだろう。
【図面の簡単な説明】
【図1】 データ処理システムのブロック図である。
【図2】 図1のデータ処理システムでの使用に適しているプロセッサのブロック図であ
る。
【図3】 本発明の一実施形態による1次リオーダ・バッファと2次リオーダ・バッファ
を含むリオーダ・バッファのブロック図である。
【図4】 本発明の一実施形態の動作を示す流れ図である。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE,TR),OA(BF ,BJ,CF,CG,CI,CM,GA,GN,GW, ML,MR,NE,SN,TD,TG),AP(GH,G M,KE,LS,MW,MZ,SD,SL,SZ,TZ ,UG,ZW),EA(AM,AZ,BY,KG,KZ, MD,RU,TJ,TM),AE,AG,AL,AM, AT,AU,AZ,BA,BB,BG,BR,BY,B Z,CA,CH,CN,CR,CU,CZ,DE,DK ,DM,DZ,EE,ES,FI,GB,GD,GE, GH,GM,HR,HU,ID,IL,IN,IS,J P,KE,KG,KP,KR,KZ,LC,LK,LR ,LS,LT,LU,LV,MA,MD,MG,MK, MN,MW,MX,MZ,NO,NZ,PL,PT,R O,RU,SD,SE,SG,SI,SK,SL,TJ ,TM,TR,TT,TZ,UA,UG,UZ,VN, YU,ZA,ZW Fターム(参考) 5B013 AA12 AA13 CC08 CC10 DD04 5B033 AA03 AA14 BE06 DD02 DD03 DD04

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 マイクロプロセッサ内で命令を実行する方法であって、 複数レジスタの内容に影響する命令を発行することと、 命令の影響を受ける第1のレジスタの内容を記憶するために第1のリオーダ・
    バッファから第1のリネーム・レジスタを割り振ることと、 命令の影響を受ける第2のレジスタの内容を記憶するために第2のリオーダ・
    バッファから第2のリネーム・レジスタを割り振ることを含み、 第2のリオーダ・バッファを使用する第2のリネーム・レジスタの割振りによ
    り、命令が第1のリオーダ・バッファ内の複数の割振りスロットを消費するのを
    防止する方法。
  2. 【請求項2】 発行した命令が複雑命令を含み、第1のリオーダ・バッファがサイクルあたり
    最大数の割振りをサポートし、複雑命令を発行することが、単一サイクル中に複
    雑命令を含む1組の命令を発行することを含み、その1組の命令内の命令の数が
    第1のリオーダ・バッファによってサポートされるサイクルあたりの最大数の割
    振りに等しい、請求項1に記載の方法。
  3. 【請求項3】 1組の命令が、単一レジスタの内容に影響する複雑命令と単純命令の組合せを
    含むことができる、請求項2に記載の方法。
  4. 【請求項4】 発行した命令が複雑命令を含み、複雑命令の発行以後、第2の命令を発行する
    ことであって、第2の命令が第2のリネーム・レジスタに依存することと、それ
    に応答してリオーダ・バッファ情報を第2の命令に関連づけることであって、そ
    のリオーダ・バッファ情報が2次バッファ内で割り振られたレジスタに対する第
    2の命令の依存関係を示すことをさらに含む、請求項1または2に記載の方法。
  5. 【請求項5】 リオーダ・バッファ情報を記録した後で第2の命令を発行したときに、リオー
    ダ・バッファ情報を使用して、第2の命令のリオーダ・ルックアップを2次リオ
    ーダ・バッファ制限することをさらに含む、請求項4に記載の方法。
  6. 【請求項6】 第2のリネーム・レジスタの割振りにより、プロセッサが発行できる最大数の
    命令が命令タイプと無関係であるように第1のリオーダ・バッファ・スロットが
    保持される、請求項2に記載の方法。
  7. 【請求項7】 命令キャッシュから命令を受け取るように構成され、実行用の命令を発行する
    ように適合された発行ユニットと、 命令の1次レジスタ用にリネーム・レジスタを割り振るように専用化された第
    1のリオーダ・バッファと、 命令の2次レジスタ用にリネーム・レジスタを割り振るように専用化された第
    2のリオーダ・バッファとを含み、 発行ユニットが、少なくとも2つのレジスタの内容に影響する複雑命令を発行
    したときに、その命令の1次レジスタ用に第1のリオーダ・バッファ内のリネー
    ム・レジスタを割り振り、その命令の2次レジスタ用に第2のリオーダ・バッフ
    ァ内のリネーム・レジスタを割り振るように構成されているプロセッサ。
  8. 【請求項8】 発行ユニットが、第2の命令が第1の命令に依存しているかどうかを判定する
    ために第2の命令を発行したときに1次および2次リオーダ・バッファをチェッ
    クするようにさらに構成されている、請求項7に記載のプロセッサ。
  9. 【請求項9】 第2の命令が2次リオーダ・バッファ内で割り振られたレジスタに依存するこ
    とを検出したときに、発行ユニットが第2の命令に対応する命令キャッシュ項目
    にリオーダ・バッファ情報を記録し、そのリオーダ・バッファ情報が2次リオー
    ダ・バッファ内の項目に対する第2の命令の依存関係を示す、請求項8に記載の
    プロセッサ。
  10. 【請求項10】 その後、リオーダ・バッファ情報を記録した後で第2の命令を発行したときに
    、そのリオーダ・バッファ情報に応答して、2次リオーダ・バッファのみをチェ
    ックして依存関係の有無を確認するように、発行ユニットが構成されている、請
    求項9に記載のプロセッサ。
  11. 【請求項11】 システム・メモリと、 入力手段と、 ディスプレイと、 請求項7ないし10のいずれかに記載のプロセッサとを含むデータ処理システ
    ム。
JP2001560801A 2000-02-17 2001-02-16 2次リオーダ・バッファ・マイクロプロセッサ Expired - Fee Related JP3689369B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/506,527 US6629233B1 (en) 2000-02-17 2000-02-17 Secondary reorder buffer microprocessor
US09/506,527 2000-02-17
PCT/GB2001/000650 WO2001061479A1 (en) 2000-02-17 2001-02-16 Secondary reorder buffer microprocessor

Publications (2)

Publication Number Publication Date
JP2003523574A true JP2003523574A (ja) 2003-08-05
JP3689369B2 JP3689369B2 (ja) 2005-08-31

Family

ID=24014947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001560801A Expired - Fee Related JP3689369B2 (ja) 2000-02-17 2001-02-16 2次リオーダ・バッファ・マイクロプロセッサ

Country Status (8)

Country Link
US (1) US6629233B1 (ja)
EP (1) EP1256053B1 (ja)
JP (1) JP3689369B2 (ja)
AT (1) ATE248399T1 (ja)
AU (1) AU2001232126A1 (ja)
DE (1) DE60100665D1 (ja)
TW (1) TW475149B (ja)
WO (1) WO2001061479A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090848A (ja) * 2006-10-03 2008-04-17 Arm Ltd データ処理システム内のレジスタリネーミング
JP2011034450A (ja) * 2009-08-04 2011-02-17 Fujitsu Ltd 演算処理装置、情報処理装置、および演算処理装置の制御方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862676B1 (en) 2001-01-16 2005-03-01 Sun Microsystems, Inc. Superscalar processor having content addressable memory structures for determining dependencies
US6968447B1 (en) 2001-04-13 2005-11-22 The United States Of America As Represented By The Secretary Of The Navy System and method for data forwarding in a programmable multiple network processor environment
US6950927B1 (en) 2001-04-13 2005-09-27 The United States Of America As Represented By The Secretary Of The Navy System and method for instruction-level parallelism in a programmable multiple network processor environment
US20060277398A1 (en) * 2005-06-03 2006-12-07 Intel Corporation Method and apparatus for instruction latency tolerant execution in an out-of-order pipeline
US9262171B2 (en) * 2009-06-30 2016-02-16 Oracle America, Inc. Dependency matrix for the determination of load dependencies
US8578136B2 (en) * 2010-06-15 2013-11-05 Arm Limited Apparatus and method for mapping architectural registers to physical registers
US9448799B2 (en) * 2013-03-14 2016-09-20 Samsung Electronics Co., Ltd. Reorder-buffer-based dynamic checkpointing for rename table rebuilding
KR102010317B1 (ko) * 2013-03-14 2019-08-13 삼성전자주식회사 재명명 테이블 재구성을 위한 리오더-버퍼를 기초로 하는 동적 체크포인팅
US10346165B2 (en) * 2014-04-25 2019-07-09 Avago Technologies International Sales Pte. Limited Resource locking for load store scheduling in a VLIW processor
US10241800B2 (en) 2015-06-16 2019-03-26 International Business Machines Corporation Split-level history buffer in a computer processing unit
US10175985B2 (en) * 2016-03-28 2019-01-08 International Business Machines Corporation Mechanism for using a reservation station as a scratch register
US10445091B1 (en) 2016-03-30 2019-10-15 Apple Inc. Ordering instructions in a processing core instruction buffer
US10445094B2 (en) * 2016-05-27 2019-10-15 Arm Limited Method and apparatus for reordering in a non-uniform compute device
US10795815B2 (en) 2016-05-27 2020-10-06 Arm Limited Method and apparatus for maintaining data coherence in a non-uniform compute device
US10552152B2 (en) 2016-05-27 2020-02-04 Arm Limited Method and apparatus for scheduling in a non-uniform compute device
US10936321B2 (en) * 2019-02-01 2021-03-02 International Business Machines Corporation Instruction chaining
US11144324B2 (en) * 2019-09-27 2021-10-12 Advanced Micro Devices, Inc. Retire queue compression
US11113068B1 (en) * 2020-08-06 2021-09-07 Microsoft Technology Licensing, Llc Performing flush recovery using parallel walks of sliced reorder buffers (SROBs)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69506623T2 (de) * 1994-06-03 1999-07-22 Motorola Inc Datenprozessor mit einer Ausführungseinheit zur Durchführung von Ladebefehlen und Verfahren zu seinem Betrieb
US5727177A (en) 1996-03-29 1998-03-10 Advanced Micro Devices, Inc. Reorder buffer circuit accommodating special instructions operating on odd-width results
JP2002513486A (ja) * 1997-01-29 2002-05-08 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド スーパースカラマイクロプロセッサ用ライン指向型リオーダバッファ
US6035394A (en) * 1998-02-17 2000-03-07 International Business Machines Corporation System for providing high performance speculative processing of complex load/store instructions by generating primitive instructions in the load/store unit and sequencer in parallel

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090848A (ja) * 2006-10-03 2008-04-17 Arm Ltd データ処理システム内のレジスタリネーミング
JP2011034450A (ja) * 2009-08-04 2011-02-17 Fujitsu Ltd 演算処理装置、情報処理装置、および演算処理装置の制御方法

Also Published As

Publication number Publication date
US6629233B1 (en) 2003-09-30
DE60100665D1 (de) 2003-10-02
EP1256053B1 (en) 2003-08-27
EP1256053A1 (en) 2002-11-13
ATE248399T1 (de) 2003-09-15
JP3689369B2 (ja) 2005-08-31
WO2001061479A1 (en) 2001-08-23
TW475149B (en) 2002-02-01
AU2001232126A1 (en) 2001-08-27

Similar Documents

Publication Publication Date Title
US6728866B1 (en) Partitioned issue queue and allocation strategy
US5961636A (en) Checkpoint table for selective instruction flushing in a speculative execution unit
EP2674856B1 (en) Zero cycle load instruction
US5524263A (en) Method and apparatus for partial and full stall handling in allocation
JP3424202B2 (ja) プロセッサ内で命令を発行するための方法および装置
EP0751458B1 (en) Method and system for tracking resource allocation within a processor
EP0886209B1 (en) Extensible risc microprocessor architecture
US5611063A (en) Method for executing speculative load instructions in high-performance processors
US5751983A (en) Out-of-order processor with a memory subsystem which handles speculatively dispatched load operations
JP3689369B2 (ja) 2次リオーダ・バッファ・マイクロプロセッサ
US6609190B1 (en) Microprocessor with primary and secondary issue queue
US7203817B2 (en) Power consumption reduction in a pipeline by stalling instruction issue on a load miss
US6393555B1 (en) Rapid execution of FCMOV following FCOMI by storing comparison result in temporary register in floating point unit
US5694565A (en) Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions
US5913048A (en) Dispatching instructions in a processor supporting out-of-order execution
US5778210A (en) Method and apparatus for recovering the state of a speculatively scheduled operation in a processor which cannot be executed at the speculated time
US6697939B1 (en) Basic block cache microprocessor with instruction history information
US5721857A (en) Method and apparatus for saving the effective address of floating point memory operations in an out-of-order microprocessor
US6725354B1 (en) Shared execution unit in a dual core processor
JPH10312282A (ja) 命令完了を改良するための方法および装置
KR19980079702A (ko) 저장 인스트럭션의 결과의 전달하는 방법 및 이를 구현한 프로세서
JP2004537084A (ja) 電力管理のための性能抑制機構を採用するマイクロプロセッサ
US5717882A (en) Method and apparatus for dispatching and executing a load operation to memory
US20040215936A1 (en) Method and circuit for using a single rename array in a simultaneous multithread system
JP2005302025A (ja) 複数の未解決命令を追跡するための方法、完了テーブルおよびプロセッサ

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050415

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050610

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080617

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090617

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100617

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110617

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees