JPH11296369A - 命令実行の並列性を高める方法および装置 - Google Patents

命令実行の並列性を高める方法および装置

Info

Publication number
JPH11296369A
JPH11296369A JP11026202A JP2620299A JPH11296369A JP H11296369 A JPH11296369 A JP H11296369A JP 11026202 A JP11026202 A JP 11026202A JP 2620299 A JP2620299 A JP 2620299A JP H11296369 A JPH11296369 A JP H11296369A
Authority
JP
Japan
Prior art keywords
data
xer
instruction
iid
data storage
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
JP11026202A
Other languages
English (en)
Other versions
JP3160259B2 (ja
Inventor
Richard Edmund Fry
リチャード・エドモンド・フライ
Doug Quoc Nguyen
ドウグ・クオック・ギュエン
Albert Thomas Williams
アルバート・トーマス・ウィリアムス
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 JPH11296369A publication Critical patent/JPH11296369A/ja
Application granted granted Critical
Publication of JP3160259B2 publication Critical patent/JP3160259B2/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
    • 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
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling

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)【要約】 (修正有) 【課題】整数例外レジスタ(XER)を更新または使用
しなければならない各命令をアウト・オブ・オーダで実
行することを許し、それにより、命令実行の並列性を高
める。 【解決手段】パイプライン式アーキテクチャを有する中
央処理装置において、XERリネーム機構を使用して、
XERを使用または更新する整数命令をアウト・オブ・
オーダで実行することができる。XERを更新する命令
は、レジスタ中に記憶された対応する命令識別子(II
D)を有している。XER中のデータを使用するその後
の命令は、記憶されたIIDを使用して、IIDに対応
する命令によってXERデータが更新されたときを決定
する。XERデータを更新する各命令が実行されると、
データはXERリネーム・バッファに記憶され、その後
XERデータを使用する命令は、更新された有効なXE
Rデータをリネーム・バッファから取得する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般にデータ処理シ
ステムに関し、特に、アウト・オブ・オーダ実行が可能
なデータ処理システムに関する。
【0002】
【従来の技術】コンピュータが発展してより多数の命令
をより高速で実行するようになるにつれ、このプロセス
を最適化するために多くのタイプのアーキテクチャが開
発されてきた。たとえば、縮小命令セット・コンピュー
タ(RISC)装置は、そのような命令を実行する際に
より少ない命令をより高い並列性で使用して、従来のデ
ータ処理システムによって提供されるよりも迅速に計算
結果を利用できるようにする。ますます並列的な命令実
行を提供することに加え、データ処理システムの中に
は、プロセッサ性能を高めるため、アウト・オブ・オー
ダ命令実行を実現するものもある。アウト・オブ・オー
ダ命令実行は、データ依存なしでディスパッチされた命
令を、命令ストリーム中の、解決されないデータ依存を
有する先の命令よりも前に実行することを動的に許すこ
とにより、プロセッサ性能を高める。データ処理システ
ムによっては、命令がリネームされ、リオーダ・バッフ
ァとも呼ばれる命令順序付けテーブルが、命令完了時で
命令実行を順序付けしなおすことにより、アウト・オブ
・オーダ実行を容易にする。
【0003】リオーダ・バッファ装置はまた、投機的な
命令実行を可能にするためにも使用される。したがっ
て、投機的な命令実行をサポートするデータ処理システ
ムは、比較的少ないハードウェアの追加でアウト・オブ
・オーダ実行に適応させることができる。この追加ハー
ドウェアの一部は、命令を発すべき時期および順序を決
定するのに使用される論理を含む。命令を発すべき時期
を決定するためには、パイプラインが命令実行状態にあ
る場合の依存関係および命令を審査しなければならない
ため、そのような発令論理はきわめて複雑になる。発令
論理が正しく設計されていないならば、そのような発令
論理がデータ処理システムにとってのクリティカル・パ
スになり、命令実行の頻度を制限して、アウト・オブ・
オーダ発令によって達成されうる性能ゲインをなくすお
それがある。
【0004】多くの従来技術のシステムによって実現さ
れるアウト・オブ・オーダ命令実行は、データ依存なし
でディスパッチされた命令を、命令ストリーム中の、解
決されないデータ依存を有する先の命令よりも前に実行
することを動的に許すことにより、プロセッサ性能を高
める。アーキテクチャに組み込まれている機構(アーキ
テクチャ機構)、たとえばソフトウェアによってアクセ
ス可能なレジスタ(アーキテクチャ・レジスタ)、の選
択されたビットをリネームするレジスタ・ファイル・リ
ネームならびに命令順序付けテーブル(リオーダ・バッ
ファ)が、命令完了時で命令実行を順序付けしなおすこ
とにより、アウト・オブ・オーダ実行を容易にする。そ
のような構造の詳細については、R. M. Tomasuloによ
る「AnEfficient Algorithm for Exploiting Mulit
iple Arithmetic Units」(IBM JOURNAL, Jan. 19
67, pp. 25-33に発表)を参照すること。これらの装
置はまた、投機的な命令実行を可能にするためにも使用
されることが注目されよう。したがって、投機的な命令
実行をサポートするシステム・アーキテクチャは、比較
的少ないハードウェアおよびわずかなオーバーヘッドの
追加でアウト・オブ・オーダ実行に適応させることがで
きる。したがって、レジスタ・ファイル・リネームは、
投機的命令実行アーキテクチャを変更せずに、アウト・
オブ・オーダ実行をサポートすることができる。
【0005】しかし、アーキテクチャ整数例外レジスタ
(XER)を更新または使用する命令は、そのようなレ
ジスタを1個しか含まないプロセッサ中では一度に一つ
ずつ実行しなければならない。これらの場合、データ依
存は、更新する命令が完了し、アーキテクチャ・レジス
タが有効になってはじめて解決することができる。XE
Rの内容を使用または更新する固定小数点命令がそのよ
うな命令を代表する。XERは、整数命令実行に関して
報告し、それを条件付けするデータ値を含む。したがっ
て、XERを更新または使用する必要のある命令が二つ
以上あるとき、それらの命令は、ソフトウェア・プログ
ラムに従う順序で実行されなければならず、固定小数点
演算に障害を起こしかねない。上述した方法は不十分で
あり、XERを更新または使用する命令のアウト・オブ
・オーダ実行を可能にするように簡単に変形することは
できない。XERは粘着状態データ値を含むため、従来
のリネーム法は、XERを使用または更新するアウト・
オブ・オーダ命令を実現するために使用することはでき
ない。粘着状態データとは、実行する命令によってセッ
トされ、ソフトウェアによってリセットされるまで保持
されるデータ値である。
【0006】
【発明が解決しようとする課題】したがって、当該技術
には、XERを更新または使用しなければならない各命
令をアウト・オブ・オーダで実行することを許し、それ
により、命令実行の並列性およびプロセッサ性能を高め
るリネーム装置および方法の必要性がある。
【0007】
【課題を解決するための手段】前述した必要性は本発明
によって対処される。したがって、第一の形態で、デー
タ・プロセッサ中で命令実行の並列性を高める方法が提
供される。この方法は、命令識別子を第一のデータ記憶
バッファに書き込むステップを含む。その命令識別子に
対応する命令が実行を終えると、それによって生成され
る一つ以上の実行条件データ値を第二のデータ記憶バッ
ファに書き込む。次の命令に応答して、第一のデータ記
憶バッファに記憶された命令識別子を使用して、実行条
件データ値のセットを第二のデータ記憶バッファから検
索する。
【0008】さらに、第二の形態で、命令実行の並列性
を高めるためのデータ処理装置が提供される。このデー
タ処理装置は、命令識別子を含む第一のデータ記憶バッ
ファを含む。第一のデータ記憶バッファにアクセスする
ための回路が、第一のデータ記憶バッファと、前の命令
識別子に対応する命令に応答してそれぞれが生成される
実行条件データ値の一つ以上のセットを含む第二のデー
タ記憶バッファとに結合されている。第二のデータ記憶
バッファと、第一のデータ記憶バッファにアクセスする
ための回路とに結合された回路が、実行条件データ値の
セットの一つを第二のデータ記憶バッファから検索す
る。
【0009】最後に、第三の形態で、複数の命令を通信
するための入力回路を含むデータ処理システムが提供さ
れる。条件論理回路が、複数の命令の一つ以上に応答し
て、条件例外値の一つ以上のセットを生成する。リネー
ム論理回路が条件論理回路に結合され、このリネーム論
理回路は、実行例外値の一つ以上のセットを含むための
データ記憶バッファを含む。データ処理システムはま
た、リネーム論理回路に結合された例外レジスタを含
み、この例外レジスタは、第一のデータ記憶バッファに
含まれる例外条件値の一つ以上のセットを受ける。
【0010】これらおよび他の特徴および利点は、以下
の詳細な説明を添付図面と併せて参照することによって
より理解されよう。図面は、本発明の唯一の形態を表す
ものではないことに注意されたい。
【0011】
【発明の実施の形態】本発明は、XERを更新または使
用しなければならない命令が二つ以上ある場合のアウト
・オブ・オーダ整数装置命令実行をサポートするXER
リネーム機構を提供する。本発明は、XERを更新また
は使用しなければならないすべての命令を同時に実行す
ることを可能にする。
【0012】以下、本発明の動作を詳細に説明する。し
かし、それを論じる前に、本発明の要素の接続状態を記
載する。
【0013】以下の記載では、多くの具体的な詳細、た
とえば特定の語もしくはバイト長などを記して本発明の
徹底的な理解を提供する。しかし、当業者であれば、本
発明をそのような具体的な詳細なしで実施しうることが
明白であろう。他の場合には、不必要な詳細によって本
発明を理解しにくくすることを避けるため、周知の回路
はブロック図形態で示す。大部分には、タイミングの考
察などに関する詳細は、そのような詳細が本発明の完全
な理解を得るのに不要であり、当業者の知識の範囲内で
あるため、省略した。ここで、図面を参照するが、図
中、図示する要素は必ずしも縮尺どおりではなく、ま
た、いくつかの図面を通じて同様な要素を同じ参照番号
によって指定する。
【0014】まず図1を参照すると、本発明に使用する
ことができるデータ処理システム100の例が示されて
いる。このシステムは、中央処理装置(CPU)11
0、たとえば、「The PowerPC Architecture: A Sp
ecification for a New Family of Risk (RIS
C) Processors」(第二版、1994、Cathy Mayら
編)に準拠するPowerPCマイクロプロセッサ(PowerPCは
IBM社の商標である)を有している。PowerPCマイク
ロプロセッサのより具体的な実現は、「PowerPC 604
Risk Microprocessor User's Manual」(1994、
IBM社)に記載されている。本発明のXERリネーム
機構は、このCPU110に含まれる。CPU110
は、システム・バス112によって種々の他の構成部品
に結合されている。読み取り専用メモリ(ROM)11
6がシステム・バス112に結合され、データ処理シス
テム100の特定の基本機能を制御する基本入出力シス
テム(BIOS)を含む。また、ランダム・アクセス・
メモリ(RAM)114、入出力アダプタ118および
通信アダプタ134がシステム・バス112に結合され
ている。入出力アダプタ118は、ディスク記憶装置1
20と通信する小型コンピュータ・システム・インタフ
ェース(SCSI)アダプタであってもよい。通信アダ
プタ134は、バス112を外部ネットワークと接続し
て、データ処理システムが他の同様なシステムと通信す
ることを可能にする。また、入出力装置がユーザ・イン
タフェース・アダプタ122およびディスプレイ・アダ
プタ136を介してシステム・バス112に接続されて
いる。キーボード124、トラック・ボール132、マ
ウス126およびスピーカ128が、すべてユーザ・イ
ンタフェース・アダプタ122を介してバス112に接
続されている。ディスプレイ・モニタ138がディスプ
レイ・アダプタ136によってシステム・バス112に
接続されている。これに関して、ユーザは、キーボート
124、トラック・ボール132またはマウス126を
介してシステムに入力し、スピーカ128およびディス
プレイ138を介してシステムから出力を受けることが
できる。さらには、オペレーティング・システム、たと
えばAIX(AIXはIBM社の商標である)を使用し
て、図1に示す種々のコンポーネントの機能を協調させ
ることができる。
【0015】図2は、CPU110の一部をより詳細に
示す。CPU110のこの部分は、命令キャッシュ(I
キャッシュ)202、発令/分岐装置204、固定小数
点実行装置(FXU)206、ロード/ストア装置20
8、浮動小数点装置(FPU)210、データ・キャッ
シュ(Dキャッシュ)212および、図1のバス112
とインタフェースするバス・インタフェース装置(BI
U)214を含む。Iキャッシュ202は発令/分岐装
置204に結合されて、命令および制御情報を通信す
る。発令/分岐装置204は、FXU206、ロード/
ストア装置208およびFPU210それぞれに結合さ
れて、複数のディスパッチされた命令を提供する。Iキ
ャッシュ202はバス・インタフェース装置214に結
合されて、データおよび制御情報を通信する。FXU2
06はロード/ストア装置208に結合されて、ロード
・データ値、ストア・データ値および転送データ値を通
信する。ロード/ストア装置208はFPU210に結
合されて、ストア・データ値およびロード・データ値を
通信する。ロード/ストア装置208はまた、Dキャッ
シュ212にも結合されて、ロード/ストア要求信号、
複数のデータ値およびアドレス値を通信する。Dキャッ
シュ212はバス・インタフェース装置214に結合さ
れて、データ入力信号、データ出力信号および制御信号
を通信する。
【0016】図3〜5は、本発明の原理によるXERリ
ネーム機構300を示す。XERリネーム機構300は
FXU206に組み込まれている。発令/分岐装置20
4により、FXU206向けの命令がIキャッシュ20
2から検索され、命令待ち行列301にロードされる。
命令待ち行列301は、FXU206によって実行され
る整数命令のスタックを含む。命令待ち行列301は、
深さが所定の値Mであってもよい。命令待ち行列301
中の各エントリは、機械命令を普通は2進形態で保持す
る部分302を含む。各命令は、発令/分岐装置204
によって割り当てられる命令識別(IID)部を含む。
命令が実行中にXERを更新するならば、そのIIDが
命令待ち行列エントリの別の部分、フィールドXERI
ID303に含められる。IIDはまた、XER状態レ
ジスタ304にも記憶される。XER状態レジスタ30
4の中で、IIDはフィールドXER IID305に
記憶される。命令がXERを更新しないならば、XER
IID303およびXER IID305は、XER
を更新した最後の命令のIIDを含む。XER状態レジ
スタ304はまた、妥当性フィールド、有効フラグ30
6を含む。有効フラグ306は1ビット幅であってもよ
い。したがって、簡素化するために、有効フラグ306
を妥当性ビット306と呼ぶこともできる。しかし、代
替の態様では、本発明の原理にしたがって、有効フラグ
306は、所定の数のビットMの幅であってもよいこと
が理解されよう。このフィールドは後でさらに詳細に論
じる。
【0017】CPU110は、パイプライン式に演算を
実行する。発令/分岐装置204によって多数の命令が
Iキャッシュ202から実行装置、たとえばFXU20
6にディスパッチされる。実行装置は、パイプライン式
命令バッファを維持し、それにより、命令は、そのオペ
ランドがすべて利用できるようになるとただちに実行に
移される。命令待ち行列301は、そのようなパイプラ
イン式待ち行列である。次に実行すべき命令はマルチプ
レクサ(MUX)307に送られる。同時に、その命令
に対応するXER IIDがMUX308に送られる。
MUX307およびMUX308はまた、命令および対
応するIIDを発令/分岐装置204からそれぞれ受け
る。命令待ち行列301が空であるならば、MUX30
7は発令/分岐装置204から命令を選択し、MUX3
08は、パススルーされた命令であってもよい、XER
を更新した最後の命令のパススルーされたIIDを選択
する。命令選択論理309がMUX307および308
を制御する。
【0018】実行すべく選択された命令は、MUX30
7によってデコード論理/オペランド・レジスタ310
にパスされる。そして、デコードされた命令およびオペ
ランドは、固定小数点実行エンジン311に送られる。
現在実行中の命令が必要とするXERデータもまた、X
ERデータ・レジスタ319から固定小数点実行エンジ
ン311に送られる。固定小数点実行エンジン311か
ら出力された整数データはロード/ストア装置208に
送られ、また、デコード論理/オペランド・レジスタ3
10に戻される。
【0019】実行する命令によって要求されるXERデ
ータは、いくつかのソースのいずれかから導出すること
ができる。XER選択論理312は、MUX308から
IIDを受け、終了する命令のIIDを固定小数点実行
エンジン311から受ける。XER選択論理312は制
御信号をMUX313に出力する。固定小数点実行エン
ジン310に送るXERデータを選択する際のXER選
択論理312およびMUX313の動作は後で詳細に説
明する。
【0020】MUX313は、いくつかのソースからX
ERデータを受ける。命令待ち行列301はXERデー
タ・フィールド314を含む。命令が命令待ち行列30
1にロードされるとき、その命令がXERを更新するな
らば、命令待ち行列301はそのとき終了している命令
からのXERデータを固定小数点実行エンジン311か
ら受ける。現在実行している命令がXERを更新しない
ならば、必要なXERデータを求めてXERリネーム・
バッファ315を探索する。これは、終了IIDバッフ
ァ316を使用する連想記憶装置(CAM)読み出しに
よって実施される。終了IIDバッファ316は、XE
Rデータ値を更新した終了命令のIIDを含む。XER
リネーム・バッファ315へのCAM読み出しは、CA
M論理317によって実現される。
【0021】次に実行の準備ができた待ち行列中の命令
が、このXERデータをXERデータ・フィールド31
4に入れる。MUX313はまた、XERリネーム・バ
ッファからXERデータを受ける。各命令が実行を終え
ると、固定小数点実行エンジン311は、終了する命令
によって更新されたXERデータをXERリネーム・バ
ッファ315に送る。XERデータはまた、命令待ち行
列301に送られ、そこで、XERデータ・フィールド
314に受けられる。対応する命令のIIDが終了II
Dバッファ316に記憶される。終了IIDバッファ3
16およびXERリネーム・バッファ315の深さは同
じであってもよく、所定の値Nであってもよい。終了命
令に対応するXERデータおよびその命令のIIDは、
XERリネーム・バッファ315および終了IIDバッ
ファ316の同じ相対的場所にそれぞれ記憶される。命
令が完了すると、その命令に対応するXERデータがX
ERレジスタ318に送られる。XERレジスタ318
はXERデータをMUX313に提供する。MUX30
7への入力で待ち状態の命令によって要求されるXER
データに影響する最後の命令が完了すると、XERレジ
スタ318の状態は有効であり、待ち状態の命令によっ
て使用することができる。XER選択論理312からの
出力に応対して、MUX313は、入力ソースの一つか
らのXERデータを出力する。選択論理312は、終了
するIIDを、MUX308を介して受けたXER I
IDと比較して、XERデータ・ソースを選択する。選
択論理312は、XERデータ依存を解決するため、次
の命令を実行して固定小数点エンジン311の出力をス
ヌープすることを効果的に許す。このようにして、本発
明の原理によるXERリネーム機構は、有効XERデー
タがリネーム・バッファ中に現れるまで命令が待ち行列
中で待たなければならない必要性を緩和する。そのう
え、XER318が有効データを有するならば、妥当性
ビット306が、そのデータを選択するよう選択論理3
12に知らせる。このデータはXERデータ・レジスタ
319に保持され、そこで、固定小数点エンジン311
中の現在実行中の命令に利用できるようになる。
【0022】発令/分岐装置204は、各命令サイクル
中に二つの命令を発することができる。したがって、F
XU206は、各サイクル中に二つの命令を実行するこ
とができ、そのため、2個の固定小数点エンジン311
aおよび311bがXERリネーム機構300に含まれ
ている。同様に、MUX307aおよび308aがMU
X307bおよび308bとして複製され、命令選択論
理309aが命令選択論理309bとして複製され、デ
コード論理/オペランド・レジスタ310aがデコード
論理オペランド・レジスタ310bとして複製されてい
る。MUX313aおよびMUX313bは、両方の固
定小数点エンジン311aおよび311bからXERデ
ータを受ける。同様に、XER選択論理312aは、固
定小数点エンジン311aおよび311bから終了する
IIDを受け、XER選択論理312bは、両方の固定
小数点エンジン311aおよび311bから終了するI
IDを受ける。同様に、XERリネーム・バッファ31
5は、固定小数点エンジン311からXERデータを受
ける。
【0023】XERリネーム機構300の動作は、図6
を参照することによってより明確に理解することができ
る。図6は、XERリネーム機構300の動作を流れ図
で示す。ステップ400で固定小数点装置206にディ
スパッチされた命令が、ステップ401でXERを更新
するならば、ステップ402で、そのIIDがXER状
態レジスタ304中のXER IID305に書き込ま
れる。同時に、有効フラグ306がオンになる。ステッ
プ403で命令が実行の準備ができていないならば、ス
テップ404で、その命令は命令待ち行列301に書き
込まれる。ステップ403で、命令が実行の準備ができ
ているならば、その命令は、ステップ405で固定少数
点実行エンジン311に送られ、実行される。ステップ
406では、命令は、実行の準備ができるまで命令待ち
行列301中に保持される。命令が実行の準備ができる
と、その命令は固定小数点実行エンジン311に送ら
れ、ステップ405で実行される。命令が実行を終える
と、ステップ407で、得られたXERデータがXER
リネーム・バッファ315に書き込まれ、命令のIID
が終了IIDバッファ316に書き込まれる。同時に、
XERデータが、命令待ち行列301中の、次に実行の
準備ができている命令のXERデータ・フィールド31
4に書き込まれる。しかし、命令待ち行列301は空で
あるかもしれず、その場合、実行すべき次の命令はMU
X307にパスすることができる。この命令はXERデ
ータを使用することができる。これは後で論じる。命令
が完了すると、ステップ408で、そのXERデータが
XERリネーム・バッファ315から読み出され、XE
Rレジスタ318に書き込まれる。
【0024】XERデータを更新しない命令は、それに
もかかわらず、XERデータを使用することができる。
次に、XERデータを使用する命令の場合のXERリネ
ーム機構300の動作を流れ図の形態で示す図7〜9を
参照する。ステップ500でXERデータを更新もしな
いし使用もしないと判断された命令は、ステップ501
で、XERリネーム・プロセスとは関係なく実行され
る。そうでなければ、ステップ502で、命令はXER
状態レジスタ304を読み出して、XERデータを更新
した最後の命令のIIDを得、また、妥当性ビット30
6の値を検索する。ステップ503で、XERデータが
リネーム・バッファ315中にないならば、すなわち、
妥当性ビット306がオフであるならば、XERレジス
タ318中のXERデータが有効であり、命令は、リネ
ーム・バッファ315からXERデータを検索しない。
ステップ504で、XERデータがXERレジスタ31
8から読み出される。これは、妥当性ビット306を選
択論理312に提供することによって実施することがで
きる。
【0025】しかし、ステップ503で妥当性ビット3
06がセットされているならば、ステップ505でCA
M読み出しが実施される。CAM読み出しは、ステップ
502で検索したXERIIDを使用して、終了IID
バッファ316に対して実施される。IIDが終了II
Dバッファ316中にあるならば、ステップ506で、
そのIIDの相対アドレスを使用して、XERリネーム
・バッファ315中の対応するXERデータにアクセス
する。ステップ505で、CAM読み出しが終了IID
バッファ316中にXER IIDを見つけないなら
ば、ステップ507で、ステップ502で検索したXE
R IIDを試験して、それが現在終了している命令の
IIDであるかどうかを判定する。XER選択論理31
2がこの動作を実現してもよい。ステップ502で検索
したXER IIDが終了IIDであるならば、ステッ
プ508で、固定小数点実行エンジン311からMUX
313を介して得たXERデータを使用する。ステップ
509で、命令が実行の準備ができているならば、ステ
ップ510で、XERデータは、次の実行サイクルでの
使用に備えて保持される。
【0026】命令が実行できなければ、ステップ511
で、命令は命令待ち行列301に書き込まれる。ステッ
プ512で、ステップ504、506または508のい
ずれかからXERデータが利用できるならば、そのデー
タは命令待ち行列301のフィールド314に書き込ま
れる。そうでなければ、ステップ514で、XER選択
論理312を使用して、命令待ち行列301中のXER
IID303を、入ってくる終了IIDと比較する。
それらが一致しないならば、プロセスはステップ512
に戻る。しかし、ステップ514で一致が検出され、ス
テップ515で、終了するIIDに依存する命令が実行
の準備ができているならば、ステップ510で、XER
データが次の実行サイクルでの使用に備えて保持され
る。そして、ステップ517で命令が実行される。しか
し、ステップ515で命令が実行の準備ができておら
ず、ステップ516でXERデータが命令待ち行列に書
き込まれていないならば、ステップ513で、XERデ
ータが命令待ち行列に書き込まれる。XERデータが書
き込まれていれば、ステップ516で、命令が実行の準
備ができるまで、プロセスはステップ515に戻る。
【0027】本発明およびその利点を詳細に記載した
が、請求の範囲によって定義する本発明の真髄および範
囲を逸することなく、種々の変更、代替および修正を本
発明に加えられることが理解されよう。
【0028】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)データプロセッサにおいて、命令実行の並列性を
高める方法であって、命令識別子を第一のデータ記憶装
置に書き込むステップと、前記命令識別子に対応する命
令が実行を終えると、一つ以上の実行条件データ値を、
一つ以上の記憶場所を有する第二のデータ記憶装置に書
き込むステップと、前記命令識別子を使用して、前記一
つ以上の実行条件データ値を取得するステップと、を含
む方法。 (2)前記命令の実行が完了すると、前記実行条件デー
タ値を第三のデータ記憶装置に書き込むステップをさら
に含む上記(1)記載の方法。 (3)前記命令識別子を、一つ以上の記憶場所を有する
第四のデータ記憶装置に書き込むステップをさらに含む
上記(1)記載の方法。 (4)一つ以上の妥当性ビットを前記第一の記憶装置中
にセットするステップをさらに含む上記(1)記載の方
法。 (5)前記実行条件データ値を命令待ち行列およびデー
タ・マルチプレクサに送るステップをさらに含む上記
(1)記載の方法。 (6)前記命令識別子を使用して、前記一つ以上の実行
条件データ値を取得する前記ステップが、前記命令識別
子を、前記第四のデータ記憶装置中に事前に記憶されて
いる複数の命令識別子それぞれと比較するステップと、
一致が検出されると、それから得られるインデックス値
を使用して、前記第二のデータ記憶装置中に索引付けす
るステップと、をさらに含む上記(3)記載の方法。 (7)前記一つ以上の実行条件データ値を取得するステ
ップが、前記第一のデータ記憶装置中の少なくとも一つ
の妥当性ビット・データ値に応答して、前記一つ以上の
実行条件データ値をアーキテクチャ・レジスタから取得
するステップをさらに含む上記(6)記載の方法。 (8)前記第一のデータ記憶装置が複数のデータ記憶フ
ィールドを有する整数例外レジスタ(XER)状態レジ
スタであり、前記第二のデータ記憶装置がXERリネー
ム・バッファであり、前記第三のデータ記憶装置が整数
例外レジスタ(XER)であり、前記第四のデータ記憶
装置が終了命令識別子(IID)バッファである上記
(3)記載の方法。 (9)IIDを第一のデータ記憶装置に書き込む前記ス
テップが、命令が整数例外レジスタ(XER)データ値
を更新すると、前記命令に対応するIIDを前記XER
状態レジスタの第一のデータ記憶フィールドに書き込む
ステップと、妥当性データ値を前記XER状態レジスタ
の第二のデータ記憶フィールド中ににセットするステッ
プと、をさらに含み、一つ以上の実行条件データ値を書
き込む前記ステップが、前記命令が実行を終えると、少
なくとも一つのXERデータ値を前記XERリネーム・
バッファ中の記憶場所に書き込むステップと、前記II
Dを前記終了IIDバッファ中の対応する記憶場所に書
き込むステップと、をさらに含み、一つ以上の実行条件
データ値を取得する前記ステップが、命令が前記XER
中の一つ以上のデータ値を使用するとき、前記XER状
態レジスタからIIDを取得するステップと、前記XE
R状態レジスタ中に前記妥当性データ値がセットされて
いないならば、前記一つ以上のデータ値を前記XERか
ら取得するステップと、前記XER状態レジスタからの
前記IIDデータおよび前記終了IIDバッファ中のI
IDデータを使用して、連想記憶装置読み出しを実行し
て、前記XERリネーム・バッファ中のXERデータ値
にアクセスするステップと、前記終了IIDバッファ中
の前記IIDデータが前記XER状態レジスタIIDデ
ータに対応しないならば、前記XER状態レジスタから
の前記IIDデータを使用して、一つ以上のXERデー
タ値を求めて少なくとも1個の固定小数点実行エンジン
から終了バスをスヌープするステップと、をさらに含む
上記(8)記載の方法。 (10)命令実行の並列性を高めるためのデータ処理装
置であって、命令識別子(IID)を含む第一のデータ
記憶装置と、実行条件データ値の一つ以上のセットを含
む第二のデータ記憶装置と、前記IIDを使用して実行
条件データ値のセットを取得するための、前記第一およ
び第二のデータ記憶装置に結合された回路と、を含む装
置。 (11)前記第一および第二のデータ記憶装置に結合さ
れた前記回路が第三のデータ記憶装置をさらに含み、前
記第三のデータ記憶装置が、前記IIDに対応する命令
が実行を終了したのち前記IIDを受ける上記(10)
記載の装置。 (12)前記第一のデータ記憶装置が、少なくとも一つ
の妥当性ビットを含む部分をさらに含む上記(10)記
載の装置。 (13)前記第一および第二のデータ記憶装置に結合さ
れた前記回路が、前記第一のデータ記憶装置に結合され
た少なくとも一つの命令待ち行列をさらに含み、前記命
令待ち行列が一つ以上のエントリを有し、各エントリ
が、命令データを受けるための第一の部分と、実行条件
データ値のセットの一つ以上の構成要素を更新する命令
に対応するIIDを受けるための第二の部分とを含む上
記(10)記載の装置。 (14)実行条件データ値のセットを取得するための前
記回路が、実行条件データ値の複数のセットから実行条
件データ値のセットを選択するための回路をさらに含む
上記(10)記載の装置。 (15)実行条件データ値のセットを選択するための前
記回路が、複数のIID(前記複数のIIDの第一のI
IDが前記第一のデータ記憶装置からのものであり、前
記複数のIIDの第二のIIDが実行装置からのもので
ある)および一つ以上の妥当性ビットを受ける少なくと
も一つの選択論理回路と、前記少なくとも一つの選択論
理回路の出力および前記第二のデータ記憶装置に結合さ
れ、前記少なくとも一つの選択論理回路の前記出力にお
けるデータに応答して、実行条件データ値の前記複数の
セットを選択のために受ける少なくとも1個のマルチプ
レクサと、をさらに含む上記(14)記載の装置。 (16)前記第一のデータ記憶装置が整数例外レジスタ
(XER)状態レジスタであり、 前記第二のデータ記
憶装置がXERリネーム・バッファであり、前記第三の
データ記憶装置が終了IIDバッファである上記(1)
記載の装置。 (17)前記第一のデータ記憶装置が、整数例外レジス
タ(XER)状態レジスタをさらに含み、前記XER状
態レジスタが少なくとも二つのフィールドを含み、第一
のフィールドがXER命令識別子(IID)を含み、第
二のフィールドが妥当性データ値を含み、前記第二のデ
ータ記憶装置が、少なくとも一つの記憶場所を含むXE
Rリネーム・バッファをさらに含み、前記記憶場所それ
ぞれが複数のXERデータ値を含み、前記第一および第
二のデータ記憶装置に結合された前記回路が、実行を終
了した命令のIIDを含む、それぞれが前記XERリネ
ーム・バッファの記憶場所に対応する少なくとも一つの
記憶場所を含む終了IIDバッファと、前記XER状態
レジスタ、前記終了IIDバッファおよび前記XERリ
ネーム・バッファに結合され、前記XER状態レジスタ
中のXER IIDを使用して前記XERリネーム・バ
ッファ中にアドレス指定する連想記憶装置(CAM)論
理と、命令データ・フィールドと、前記XER状態レジ
スタ中のXER IIDに対応するXER IIDを受
けるXER IIDフィールドと、XERデータを含む
第三のフィールドとを有する、前記XER状態レジスタ
に結合された命令待ち行列と、前記命令待ち行列および
命令ディスパッチャから命令データを受ける第一のマル
チプレクサ(MUX)ならびに前記命令待ち行列および
前記命令ディスパッチャからXER IIDデータを受
ける第二のマルチプレクサ(MUX)と、前記第一およ
び第二のMUXを制御するために前記第一および第二の
MUXに結合され、前記MUXが空の命令待ち行列に応
答して制御されるよう前記命令待ち行列にさらに結合さ
れた命令選択論理と、XER IID値を受けるために
前記第二のMUXの出力に結合されたXER選択論理
と、前記XER選択論理の出力に結合されてそれによっ
て制御され、前記XERリネーム・バッファおよび前記
命令待ち行列中の前記XERデータ・フィールドからX
ERデータを受ける第三のMUXと、前記XER選択論
理に入力される終了IIDデータを前記終了IIDバッ
ファに出力し、XERデータを前記XERリネーム・バ
ッファ、および前記第三のMUXに出力する少なくとも
1個の固定小数点実行エンジンと、前記XERリネーム
・バッファからXERデータを受け、データを前記第三
のMUXに出力するXERと、前記第三のMUXの出力
に結合される入力と、前記少なくとも1個の固定小数点
実行エンジンの入力に結合される出力とを有し、前記第
三のMUXから受けたXERデータを、前記固定小数点
実行エンジンで実行する命令によって使用するために保
持するXERデータ・レジスタと、をさらに含む上記
(10)記載の装置。 (18)複数の命令を通信するための入力手段と、前記
複数の命令の一つ以上に応答して、実行条件値の一つ以
上のセットを生成するための条件論理回路と、前記条件
論理回路に結合されたリネーム論理回路であって、実行
条件値の前記一つ以上のセットを含むための第一のデー
タ記憶装置と、前記複数の命令の一つに対応する命令識
別子(IID)を含む、前記入力手段に結合された例外
レジスタ状態レジスタと、をさらに含むリネーム論理回
路と、実行条件値の前記一つ以上のセットの一つを受け
る、前記リネーム論理回路に結合された例外レジスタ
と、を含むデータ処理システム。 (19)前記リネーム論理回路が、前記複数の命令のサ
ブセットを含む命令待ち行列をさらに含み、前記命令待
ち行列が、前記条件論理回路に結合され、それに命令を
通信する上記(18)記載のデータ処理システム。 (20)前記条件論理回路が、実行条件値の前記一つ以
上のセットの第一のセットを受け、それに応答して実行
条件値の前記一つ以上のセットの第二のセットを生成す
るための回路をさらに含む上記(18)記載のデータ処
理システム。 (21)前記リネーム論理回路が第二のデータ記憶装置
をさらに含み、前記第二の装置が、一つ以上の終了命令
に対応する一つ以上のIIDを含み、各命令が、対応す
る実行条件値のセットを前記第一のデータ記憶装置中に
生成する上記(18)記載のデータ処理システム。 (22)前記リネーム論理回路が、前記第一のデータ記
憶装置から実行条件値のセットを選択するための回路を
さらに含む上記(18)記載のデータ処理システム。 (23)前記第一のデータ記憶装置から実行条件値のセ
ットを選択するための前記回路が、前記第一および第二
のデータ記憶装置に結合された連想記憶装置論理を含む
上記(22)記載のデータ処理システム。 (24)前記リネーム論理回路が、前記第一のデータ記
憶装置中の実行条件値の第一のセットからの実行条件値
のセットと、前記条件論理によって生成された実行条件
値の第二のセットとを選択するための回路をさらに含む
上記(18)記載のデータ処理システム。
【図面の簡単な説明】
【図1】本発明の一つの実施態様のデータ処理システム
を表すブロック図である。
【図2】本発明の実施態様の中央処理装置を表すブロッ
ク図である。
【図3】図4と図5との紙面上の位置関係を示す図であ
る。
【図4】本発明の実施態様にしたがって実現されるアウ
ト・オブ・オーダXERリネーム装置を図5とともに示
すブロック図である。
【図5】本発明の実施態様にしたがって実現されるアウ
ト・オブ・オーダXERリネーム装置を図4とともに示
すブロック図である。
【図6】本発明の実施態様のXER更新実行方法を示す
流れ図である。
【図7】図8と図9との紙面上の位置関係を示す図であ
る。
【図8】本発明の実施態様のアウト・オブ・オーダXE
Rの使用を図9とともに示す流れ図である。
【図9】本発明の実施態様のアウト・オブ・オーダXE
Rの使用を図8とともに示す流れ図である。
【符号の説明】
100 データ処理システム 110 CPU 202 命令キャッシュ 204 発令/分岐装置 206 固定小数点実行装置 208 ロード/ストア装置 210 浮動小数点装置 212 データ・キャッシュ 214 バス・インタフェース装置 300 XERリネーム機構 301 命令待ち行列
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ドウグ・クオック・ギュエン アメリカ合衆国78728 テキサス州、 オ ースティン、 ウェルドン・レーン 14038 (72)発明者 アルバート・トーマス・ウィリアムス アメリカ合衆国78727 テキサス州、 オ ースティン、 モナハン・トレイル 12503

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】データプロセッサにおいて、命令実行の並
    列性を高める方法であって、 命令識別子を第一のデータ記憶装置に書き込むステップ
    と、 前記命令識別子に対応する命令が実行を終えると、一つ
    以上の実行条件データ値を、一つ以上の記憶場所を有す
    る第二のデータ記憶装置に書き込むステップと、 前記命令識別子を使用して、前記一つ以上の実行条件デ
    ータ値を取得するステップと、を含む方法。
  2. 【請求項2】前記命令の実行が完了すると、前記実行条
    件データ値を第三のデータ記憶装置に書き込むステップ
    をさらに含む請求項1記載の方法。
  3. 【請求項3】前記命令識別子を、一つ以上の記憶場所を
    有する第四のデータ記憶装置に書き込むステップをさら
    に含む請求項1記載の方法。
  4. 【請求項4】一つ以上の妥当性ビットを前記第一の記憶
    装置中にセットするステップをさらに含む請求項1記載
    の方法。
  5. 【請求項5】前記実行条件データ値を命令待ち行列およ
    びデータ・マルチプレクサに送るステップをさらに含む
    請求項1記載の方法。
  6. 【請求項6】前記命令識別子を使用して、前記一つ以上
    の実行条件データ値を取得する前記ステップが、 前記命令識別子を、前記第四のデータ記憶装置中に事前
    に記憶されている複数の命令識別子それぞれと比較する
    ステップと、 一致が検出されると、それから得られるインデックス値
    を使用して、前記第二のデータ記憶装置中に索引付けす
    るステップと、をさらに含む請求項3記載の方法。
  7. 【請求項7】前記一つ以上の実行条件データ値を取得す
    るステップが、前記第一のデータ記憶装置中の少なくと
    も一つの妥当性ビット・データ値に応答して、前記一つ
    以上の実行条件データ値をアーキテクチャ・レジスタか
    ら取得するステップをさらに含む請求項6記載の方法。
  8. 【請求項8】前記第一のデータ記憶装置が複数のデータ
    記憶フィールドを有する整数例外レジスタ(XER)状
    態レジスタであり、 前記第二のデータ記憶装置がXERリネーム・バッファ
    であり、 前記第三のデータ記憶装置が整数例外レジスタ(XE
    R)であり、 前記第四のデータ記憶装置が終了命令識別子(IID)
    バッファである請求項3記載の方法。
  9. 【請求項9】IIDを第一のデータ記憶装置に書き込む
    前記ステップが、 命令が整数例外レジスタ(XER)データ値を更新する
    と、前記命令に対応するIIDを前記XER状態レジス
    タの第一のデータ記憶フィールドに書き込むステップ
    と、 妥当性データ値を前記XER状態レジスタの第二のデー
    タ記憶フィールド中ににセットするステップと、をさら
    に含み、一つ以上の実行条件データ値を書き込む前記ス
    テップが、 前記命令が実行を終えると、少なくとも一つのXERデ
    ータ値を前記XERリネーム・バッファ中の記憶場所に
    書き込むステップと、 前記IIDを前記終了IIDバッファ中の対応する記憶
    場所に書き込むステップと、をさらに含み、 一つ以上の実行条件データ値を取得する前記ステップ
    が、 命令が前記XER中の一つ以上のデータ値を使用すると
    き、前記XER状態レジスタからIIDを取得するステ
    ップと、 前記XER状態レジスタ中に前記妥当性データ値がセッ
    トされていないならば、前記一つ以上のデータ値を前記
    XERから取得するステップと、 前記XER状態レジスタからの前記IIDデータおよび
    前記終了IIDバッファ中のIIDデータを使用して、
    連想記憶装置読み出しを実行して、前記XERリネーム
    ・バッファ中のXERデータ値にアクセスするステップ
    と、 前記終了IIDバッファ中の前記IIDデータが前記X
    ER状態レジスタIIDデータに対応しないならば、前
    記XER状態レジスタからの前記IIDデータを使用し
    て、一つ以上のXERデータ値を求めて少なくとも1個
    の固定小数点実行エンジンから終了バスをスヌープする
    ステップと、をさらに含む請求項8記載の方法。
  10. 【請求項10】命令実行の並列性を高めるためのデータ
    処理装置であって、 命令識別子(IID)を含む第一のデータ記憶装置と、 実行条件データ値の一つ以上のセットを含む第二のデー
    タ記憶装置と、 前記IIDを使用して実行条件データ値のセットを取得
    するための、前記第一および第二のデータ記憶装置に結
    合された回路と、を含む装置。
  11. 【請求項11】前記第一および第二のデータ記憶装置に
    結合された前記回路が第三のデータ記憶装置をさらに含
    み、前記第三のデータ記憶装置が、前記IIDに対応す
    る命令が実行を終了したのち前記IIDを受ける請求項
    10記載の装置。
  12. 【請求項12】前記第一のデータ記憶装置が、少なくと
    も一つの妥当性ビットを含む部分をさらに含む請求項1
    0記載の装置。
  13. 【請求項13】前記第一および第二のデータ記憶装置に
    結合された前記回路が、前記第一のデータ記憶装置に結
    合された少なくとも一つの命令待ち行列をさらに含み、
    前記命令待ち行列が一つ以上のエントリを有し、各エン
    トリが、命令データを受けるための第一の部分と、実行
    条件データ値のセットの一つ以上の構成要素を更新する
    命令に対応するIIDを受けるための第二の部分とを含
    む請求項10記載の装置。
  14. 【請求項14】実行条件データ値のセットを取得するた
    めの前記回路が、実行条件データ値の複数のセットから
    実行条件データ値のセットを選択するための回路をさら
    に含む請求項10記載の装置。
  15. 【請求項15】実行条件データ値のセットを選択するた
    めの前記回路が、 複数のIID(前記複数のIIDの第一のIIDが前記
    第一のデータ記憶装置からのものであり、前記複数のI
    IDの第二のIIDが実行装置からのものである)およ
    び一つ以上の妥当性ビットを受ける少なくとも一つの選
    択論理回路と、 前記少なくとも一つの選択論理回路の出力および前記第
    二のデータ記憶装置に結合され、前記少なくとも一つの
    選択論理回路の前記出力におけるデータに応答して、実
    行条件データ値の前記複数のセットを選択のために受け
    る少なくとも1個のマルチプレクサと、をさらに含む請
    求項14記載の装置。
  16. 【請求項16】前記第一のデータ記憶装置が整数例外レ
    ジスタ(XER)状態レジスタであり、 前記第二のデ
    ータ記憶装置がXERリネーム・バッファであり、 前記第三のデータ記憶装置が終了IIDバッファである
    請求項1記載の装置。
  17. 【請求項17】前記第一のデータ記憶装置が、 整数例外レジスタ(XER)状態レジスタをさらに含
    み、前記XER状態レジスタが少なくとも二つのフィー
    ルドを含み、第一のフィールドがXER命令識別子(I
    ID)を含み、第二のフィールドが妥当性データ値を含
    み、前記第二のデータ記憶装置が、少なくとも一つの記
    憶場所を含むXERリネーム・バッファをさらに含み、
    前記記憶場所それぞれが複数のXERデータ値を含み、
    前記第一および第二のデータ記憶装置に結合された前記
    回路が、 実行を終了した命令のIIDを含む、それぞれが前記X
    ERリネーム・バッファの記憶場所に対応する少なくと
    も一つの記憶場所を含む終了IIDバッファと、 前記XER状態レジスタ、前記終了IIDバッファおよ
    び前記XERリネーム・バッファに結合され、前記XE
    R状態レジスタ中のXER IIDを使用して前記XE
    Rリネーム・バッファ中にアドレス指定する連想記憶装
    置(CAM)論理と、 命令データ・フィールドと、前記XER状態レジスタ中
    のXER IIDに対応するXER IIDを受けるX
    ER IIDフィールドと、XERデータを含む第三の
    フィールドとを有する、前記XER状態レジスタに結合
    された命令待ち行列と、 前記命令待ち行列および命令ディスパッチャから命令デ
    ータを受ける第一のマルチプレクサ(MUX)ならびに
    前記命令待ち行列および前記命令ディスパッチャからX
    ER IIDデータを受ける第二のマルチプレクサ(M
    UX)と、 前記第一および第二のMUXを制御するために前記第一
    および第二のMUXに結合され、前記MUXが空の命令
    待ち行列に応答して制御されるよう前記命令待ち行列に
    さらに結合された命令選択論理と、 XER IID値を受けるために前記第二のMUXの出
    力に結合されたXER選択論理と、 前記XER選択論理の出力に結合されてそれによって制
    御され、前記XERリネーム・バッファおよび前記命令
    待ち行列中の前記XERデータ・フィールドからXER
    データを受ける第三のMUXと、 前記XER選択論理に入力される終了IIDデータを前
    記終了IIDバッファに出力し、XERデータを前記X
    ERリネーム・バッファ、および前記第三のMUXに出
    力する少なくとも1個の固定小数点実行エンジンと、 前記XERリネーム・バッファからXERデータを受
    け、データを前記第三のMUXに出力するXERと、 前記第三のMUXの出力に結合される入力と、前記少な
    くとも1個の固定小数点実行エンジンの入力に結合され
    る出力とを有し、前記第三のMUXから受けたXERデ
    ータを、前記固定小数点実行エンジンで実行する命令に
    よって使用するために保持するXERデータ・レジスタ
    と、をさらに含む請求項10記載の装置。
  18. 【請求項18】複数の命令を通信するための入力手段
    と、 前記複数の命令の一つ以上に応答して、実行条件値の一
    つ以上のセットを生成するための条件論理回路と、 前記条件論理回路に結合されたリネーム論理回路であっ
    て、 実行条件値の前記一つ以上のセットを含むための第一の
    データ記憶装置と、 前記複数の命令の一つに対応する命令識別子(IID)
    を含む、前記入力手段に結合された例外レジスタ状態レ
    ジスタと、をさらに含むリネーム論理回路と、 実行条件値の前記一つ以上のセットの一つを受ける、前
    記リネーム論理回路に結合された例外レジスタと、を含
    むデータ処理システム。
  19. 【請求項19】前記リネーム論理回路が、前記複数の命
    令のサブセットを含む命令待ち行列をさらに含み、前記
    命令待ち行列が、前記条件論理回路に結合され、それに
    命令を通信する請求項18記載のデータ処理システム。
  20. 【請求項20】前記条件論理回路が、実行条件値の前記
    一つ以上のセットの第一のセットを受け、それに応答し
    て実行条件値の前記一つ以上のセットの第二のセットを
    生成するための回路をさらに含む請求項18記載のデー
    タ処理システム。
  21. 【請求項21】前記リネーム論理回路が第二のデータ記
    憶装置をさらに含み、前記第二の装置が、一つ以上の終
    了命令に対応する一つ以上のIIDを含み、各命令が、
    対応する実行条件値のセットを前記第一のデータ記憶装
    置中に生成する請求項18記載のデータ処理システム。
  22. 【請求項22】前記リネーム論理回路が、前記第一のデ
    ータ記憶装置から実行条件値のセットを選択するための
    回路をさらに含む請求項18記載のデータ処理システ
    ム。
  23. 【請求項23】前記第一のデータ記憶装置から実行条件
    値のセットを選択するための前記回路が、前記第一およ
    び第二のデータ記憶装置に結合された連想記憶装置論理
    を含む請求項22記載のデータ処理システム。
  24. 【請求項24】前記リネーム論理回路が、前記第一のデ
    ータ記憶装置中の実行条件値の第一のセットからの実行
    条件値のセットと、前記条件論理によって生成された実
    行条件値の第二のセットとを選択するための回路をさら
    に含む請求項18記載のデータ処理システム。
JP02620299A 1998-02-13 1999-02-03 命令実行の並列性を高める方法および装置 Expired - Fee Related JP3160259B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/023891 1998-02-13
US09/023,891 US6128722A (en) 1998-02-13 1998-02-13 Data processing system having an apparatus for exception tracking during out-of-order operation and method therefor

Publications (2)

Publication Number Publication Date
JPH11296369A true JPH11296369A (ja) 1999-10-29
JP3160259B2 JP3160259B2 (ja) 2001-04-25

Family

ID=21817785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02620299A Expired - Fee Related JP3160259B2 (ja) 1998-02-13 1999-02-03 命令実行の並列性を高める方法および装置

Country Status (7)

Country Link
US (1) US6128722A (ja)
EP (1) EP0936541A2 (ja)
JP (1) JP3160259B2 (ja)
KR (1) KR100335746B1 (ja)
CN (1) CN1171144C (ja)
CA (1) CA2261084C (ja)
TW (1) TW444179B (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216222B1 (en) * 1998-05-14 2001-04-10 Arm Limited Handling exceptions in a pipelined data processing apparatus
JP3320358B2 (ja) * 1998-06-18 2002-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション コンパイル方法、例外処理方法、及びコンピュータ
US6345356B1 (en) * 1999-07-16 2002-02-05 International Business Machines Corporation Method and apparatus for software-based dispatch stall mechanism for scoreboarded IOPs
US6442675B1 (en) 1999-07-29 2002-08-27 International Business Machines Corporation Compressed string and multiple generation engine
CN100447737C (zh) * 2001-09-27 2008-12-31 中国科学院计算技术研究所 指令流水线中实现访存精确例外的处理方法
US7437541B2 (en) * 2004-07-08 2008-10-14 International Business Machiens Corporation Atomically updating 64 bit fields in the 32 bit AIX kernel
US9996353B2 (en) 2015-02-26 2018-06-12 International Business Machines Corporation Universal history buffer to support multiple register types
US9971604B2 (en) * 2015-02-26 2018-05-15 International Business Machines Corporation History buffer for multiple-field registers
US10067766B2 (en) 2015-02-26 2018-09-04 International Business Machines Corporation History buffer with hybrid entry support for multiple-field registers
US10108423B2 (en) * 2015-03-25 2018-10-23 International Business Machines Corporation History buffer with single snoop tag for multiple-field registers
GB2541400B (en) * 2015-08-17 2017-11-15 Advanced Risc Mach Ltd Tracing of exception handling events
CN110647361B (zh) * 2019-09-09 2021-08-27 中国人民解放军国防科技大学 一种空闲物理寄存器的获取方法和装置
CN111508617B (zh) * 2020-07-01 2020-09-25 智博云信息科技(广州)有限公司 疫情数据维护方法、装置、计算机设备和可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778219A (en) * 1990-12-14 1998-07-07 Hewlett-Packard Company Method and system for propagating exception status in data registers and for detecting exceptions from speculative operations with non-speculative operations
US5632023A (en) * 1994-06-01 1997-05-20 Advanced Micro Devices, Inc. Superscalar microprocessor including flag operand renaming and forwarding apparatus
US5673426A (en) * 1995-02-14 1997-09-30 Hal Computer Systems, Inc. Processor structure and method for tracking floating-point exceptions

Also Published As

Publication number Publication date
KR100335746B1 (ko) 2002-05-08
CN1226027A (zh) 1999-08-18
TW444179B (en) 2001-07-01
CA2261084A1 (en) 1999-08-13
CA2261084C (en) 2001-12-04
US6128722A (en) 2000-10-03
JP3160259B2 (ja) 2001-04-25
KR19990072270A (ko) 1999-09-27
EP0936541A2 (en) 1999-08-18
CN1171144C (zh) 2004-10-13

Similar Documents

Publication Publication Date Title
US6247106B1 (en) Processor configured to map logical register numbers to physical register numbers using virtual register numbers
EP1116103B1 (en) Mechanism for store-to-load forwarding
US6336183B1 (en) System and method for executing store instructions
KR100335745B1 (ko) 고성능의 추론적인 오정렬 로드 연산
US6119223A (en) Map unit having rapid misprediction recovery
US5781790A (en) Method and apparatus for performing floating point to integer transfers and vice versa
US6260134B1 (en) Fixed shift amount variable length instruction stream pre-decoding for start byte determination based on prefix indicating length vector presuming potential start byte
US6463524B1 (en) Superscalar processor and method for incrementally issuing store instructions
US5805849A (en) Data processing system and method for using an unique identifier to maintain an age relationship between executing instructions
JP3600467B2 (ja) アウト・オブ・オーダ論理条件レジスタ処理のためのデータ処理システム及び方法
JP3689369B2 (ja) 2次リオーダ・バッファ・マイクロプロセッサ
JP3160259B2 (ja) 命令実行の並列性を高める方法および装置
JP2682812B2 (ja) オペレーションの処理システム及び方法
JP3155519B2 (ja) スーパスカラ・プロセッサでストア命令を処理する方法及び装置
JPH096611A (ja) データ処理システムにおけるデータをバッファリングする方法およびシステム
US6393546B1 (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
US20040199749A1 (en) Method and apparatus to limit register file read ports in an out-of-order, multi-stranded processor
JP2001522082A (ja) より小さな数の分岐予測および代替ターゲットを用いて近似的により大きな数の分岐予測をすること
JP3601785B2 (ja) マイクロプロセッサ内の命令取出ユニット
US6079002A (en) Dynamic expansion of execution pipeline stages
US6185674B1 (en) Method and apparatus for reconstructing the address of the next instruction to be completed in a pipelined processor
US20230342153A1 (en) Microprocessor with a time counter for statically dispatching extended instructions
Sima The design space of shelving
JPH08263289A (ja) 複数命令流パイプライン計算機

Legal Events

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