JPH11296371A - アウト・オブ・オ―ダ・レジスタ動作ための装置を有するデ―タ処理システムおよびその方法 - Google Patents
アウト・オブ・オ―ダ・レジスタ動作ための装置を有するデ―タ処理システムおよびその方法Info
- Publication number
- JPH11296371A JPH11296371A JP11026687A JP2668799A JPH11296371A JP H11296371 A JPH11296371 A JP H11296371A JP 11026687 A JP11026687 A JP 11026687A JP 2668799 A JP2668799 A JP 2668799A JP H11296371 A JPH11296371 A JP H11296371A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- data
- condition register
- register
- condition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 27
- 230000007246 mechanism Effects 0.000 claims abstract description 20
- 238000013500 data storage Methods 0.000 claims description 55
- 239000000872 buffer Substances 0.000 claims description 24
- 238000003860 storage Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
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)
Abstract
(57)【要約】 (修正有)
【課題】条件レジスタ(CR)を更新または使用しなけ
ればならない各命令をアウト・オブ・オーダで実行する
ことを許し、それにより、命令実行の並列性を高める。 【解決手段】パイプライン式アーキテクチャを有する中
央処理装置において、CRリネーム機構を使用して、C
Rオペランドに対する論理演算をアウト・オブ・オーダ
で実行することができる。CRデータを更新する命令
は、レジスタに記憶された対応する命令識別子(II
D)を有している。CR中のデータを使用する後続の条
件レジスタ論理命令は、記憶されたIIDを使用してI
IDに対応する命令の実行によってCRデータが更新さ
れたときを決定する。CRデータ値更新命令が実行を終
えると、対応する実行装置の終了バスをスヌープするこ
とにより、更新されたデータを取得する。これらの命令
は先の命令が完了する前にCRデータを取得することが
できる。
ればならない各命令をアウト・オブ・オーダで実行する
ことを許し、それにより、命令実行の並列性を高める。 【解決手段】パイプライン式アーキテクチャを有する中
央処理装置において、CRリネーム機構を使用して、C
Rオペランドに対する論理演算をアウト・オブ・オーダ
で実行することができる。CRデータを更新する命令
は、レジスタに記憶された対応する命令識別子(II
D)を有している。CR中のデータを使用する後続の条
件レジスタ論理命令は、記憶されたIIDを使用してI
IDに対応する命令の実行によってCRデータが更新さ
れたときを決定する。CRデータ値更新命令が実行を終
えると、対応する実行装置の終了バスをスヌープするこ
とにより、更新されたデータを取得する。これらの命令
は先の命令が完了する前にCRデータを取得することが
できる。
Description
【0001】
【発明の属する技術分野】本発明は一般にデータ処理シ
ステムに関し、特に、アウト・オブ・オーダ実行が可能
なデータ処理システムに関する。
ステムに関し、特に、アウト・オブ・オーダ実行が可能
なデータ処理システムに関する。
【0002】
【従来の技術】コンピュータが発展してより多数の命令
をより高速で実行するようになるにつれ、このプロセス
を最適化するために多くのタイプのアーキテクチャが開
発されてきた。たとえば、縮小命令セット・コンピュー
タ(RISC)装置は、そのような命令を実行する際に
より少ない命令をより高い並列性で使用して、従来のデ
ータ処理システムによって提供されるよりも迅速に計算
結果を利用できるようにする。ますます並列的な命令実
行を提供することに加え、データ処理システムの中に
は、プロセッサ性能を高めるため、アウト・オブ・オー
ダ命令実行を実現するものもある。アウト・オブ・オー
ダ命令実行は、データ依存なしでディスパッチされた命
令を、命令ストリーム中の、解決されないデータ依存を
有する先の命令よりも前に実行することを動的に許すこ
とにより、プロセッサ性能を高める。データ処理システ
ムによっては、命令がリネームされ、リオーダ・バッフ
ァとも呼ばれる命令順序付けテーブルが、命令完了時で
命令実行を順序付けしなおすことにより、アウト・オブ
・オーダ実行を容易にする。
をより高速で実行するようになるにつれ、このプロセス
を最適化するために多くのタイプのアーキテクチャが開
発されてきた。たとえば、縮小命令セット・コンピュー
タ(RISC)装置は、そのような命令を実行する際に
より少ない命令をより高い並列性で使用して、従来のデ
ータ処理システムによって提供されるよりも迅速に計算
結果を利用できるようにする。ますます並列的な命令実
行を提供することに加え、データ処理システムの中に
は、プロセッサ性能を高めるため、アウト・オブ・オー
ダ命令実行を実現するものもある。アウト・オブ・オー
ダ命令実行は、データ依存なしでディスパッチされた命
令を、命令ストリーム中の、解決されないデータ依存を
有する先の命令よりも前に実行することを動的に許すこ
とにより、プロセッサ性能を高める。データ処理システ
ムによっては、命令がリネームされ、リオーダ・バッフ
ァとも呼ばれる命令順序付けテーブルが、命令完了時で
命令実行を順序付けしなおすことにより、アウト・オブ
・オーダ実行を容易にする。
【0003】リオーダ・バッファ装置はまた、投機的な
命令実行を可能にするためにも使用される。したがっ
て、投機的な命令実行をサポートするデータ処理システ
ムは、比較的少ないハードウェアの追加でアウト・オブ
・オーダ実行に適応させることができる。この追加ハー
ドウェアの一部は、命令を発すべき時期および順序を決
定するのに使用される論理を含む。命令を発すべき時期
を決定するためには、パイプラインが命令実行状態にあ
る場合の依存関係および命令を審査しなければならない
ため、そのような発令論理はきわめて複雑になる。発令
論理が正しく設計されていないならば、そのような発令
論理がデータ処理システムにとってのクリティカル・パ
スになり、命令実行の頻度を制限して、アウト・オブ・
オーダ発令によって達成されうる性能ゲインをなくすお
それがある。
命令実行を可能にするためにも使用される。したがっ
て、投機的な命令実行をサポートするデータ処理システ
ムは、比較的少ないハードウェアの追加でアウト・オブ
・オーダ実行に適応させることができる。この追加ハー
ドウェアの一部は、命令を発すべき時期および順序を決
定するのに使用される論理を含む。命令を発すべき時期
を決定するためには、パイプラインが命令実行状態にあ
る場合の依存関係および命令を審査しなければならない
ため、そのような発令論理はきわめて複雑になる。発令
論理が正しく設計されていないならば、そのような発令
論理がデータ処理システムにとってのクリティカル・パ
スになり、命令実行の頻度を制限して、アウト・オブ・
オーダ発令によって達成されうる性能ゲインをなくすお
それがある。
【0004】多くの従来技術のシステムによって実現さ
れるアウト・オブ・オーダ命令実行は、データ依存なし
でディスパッチされた命令を、命令ストリーム中の、解
決されないデータ依存を有する先の命令よりも前に実行
することを動的に許すことにより、プロセッサ性能を高
める。アーキテクチャに組み込まれている機構(アーキ
テクチャ機構)、たとえばソフトウェアによってアクセ
ス可能なレジスタ(アーキテクチャ・レジスタ)の選択
されたビットをリネームするレジスタ・ファイル・リネ
ームならびに命令順序付けテーブル(リオーダ・バッフ
ァ)が、命令完了時で命令実行を順序付けしなおすこと
により、アウト・オブ・オーダ実行を容易にする。その
ような構造の詳細については、R. M. Tomasuloによる
「An Efficient Algorithm for Exploiting Mulit
iple Arithmetic Units」(IBMJOURNAL, Jan. 196
7, pp. 25-33に発表)を参照すること。これらの装置
はまた、投機的な命令実行を可能にするためにも使用さ
れることが注目されよう。したがって、投機的な命令実
行をサポートするシステム・アーキテクチャは、比較的
少ないハードウェアおよびわずかなオーバーヘッドの追
加でアウト・オブ・オーダ実行に適応させることができ
る。したがって、レジスタ・ファイル・リネームは、投
機的命令実行アーキテクチャを変更せずに、アウト・オ
ブ・オーダ実行をサポートすることができる。
れるアウト・オブ・オーダ命令実行は、データ依存なし
でディスパッチされた命令を、命令ストリーム中の、解
決されないデータ依存を有する先の命令よりも前に実行
することを動的に許すことにより、プロセッサ性能を高
める。アーキテクチャに組み込まれている機構(アーキ
テクチャ機構)、たとえばソフトウェアによってアクセ
ス可能なレジスタ(アーキテクチャ・レジスタ)の選択
されたビットをリネームするレジスタ・ファイル・リネ
ームならびに命令順序付けテーブル(リオーダ・バッフ
ァ)が、命令完了時で命令実行を順序付けしなおすこと
により、アウト・オブ・オーダ実行を容易にする。その
ような構造の詳細については、R. M. Tomasuloによる
「An Efficient Algorithm for Exploiting Mulit
iple Arithmetic Units」(IBMJOURNAL, Jan. 196
7, pp. 25-33に発表)を参照すること。これらの装置
はまた、投機的な命令実行を可能にするためにも使用さ
れることが注目されよう。したがって、投機的な命令実
行をサポートするシステム・アーキテクチャは、比較的
少ないハードウェアおよびわずかなオーバーヘッドの追
加でアウト・オブ・オーダ実行に適応させることができ
る。したがって、レジスタ・ファイル・リネームは、投
機的命令実行アーキテクチャを変更せずに、アウト・オ
ブ・オーダ実行をサポートすることができる。
【0005】しかし、アーキテクチャ・レジスタを更新
または使用する命令は、そのようなレジスタを1個しか
含まないプロセッサ中では一度に一つずつ実行しなけれ
ばならない。これらの場合、データ依存は、更新する命
令が完了し、アーキテクチャ・レジスタが有効になって
はじめて解決することができる。条件レジスタ(CR)
の内容を使用または更新する論理演算がそのような命令
を代表する。CRは、プロセッサ演算に関して報告する
データ値、たとえば整数実行条件、浮動小数点実行条件
およびユーザ定義条件値を含む。したがって、CRを更
新または使用する命令が二つ以上あるとき、それらの命
令は、ソフトウェア・プログラムに従う順序で実行され
なければならず、プロセッサ演算に障害を起こしかねな
い。たとえば、ソース・コード中の複雑な「IF」ステ
ートメントは、多数の条件レジスタ論理命令にコンパイ
ルすることができる。従来技術によると、これらはすべ
てアーキテクチャに組み込まれた共通のCRに対して動
作するため、直列化されなければならない。
または使用する命令は、そのようなレジスタを1個しか
含まないプロセッサ中では一度に一つずつ実行しなけれ
ばならない。これらの場合、データ依存は、更新する命
令が完了し、アーキテクチャ・レジスタが有効になって
はじめて解決することができる。条件レジスタ(CR)
の内容を使用または更新する論理演算がそのような命令
を代表する。CRは、プロセッサ演算に関して報告する
データ値、たとえば整数実行条件、浮動小数点実行条件
およびユーザ定義条件値を含む。したがって、CRを更
新または使用する命令が二つ以上あるとき、それらの命
令は、ソフトウェア・プログラムに従う順序で実行され
なければならず、プロセッサ演算に障害を起こしかねな
い。たとえば、ソース・コード中の複雑な「IF」ステ
ートメントは、多数の条件レジスタ論理命令にコンパイ
ルすることができる。従来技術によると、これらはすべ
てアーキテクチャに組み込まれた共通のCRに対して動
作するため、直列化されなければならない。
【0006】
【発明が解決しようとする課題】したがって、当該技術
には、CRを更新または使用しなければならない各命令
をアウト・オブ・オーダで実行することを許し、それに
より、命令実行の並列性およびプロセッサ性能を高める
リネーム装置および方法の必要性がある。
には、CRを更新または使用しなければならない各命令
をアウト・オブ・オーダで実行することを許し、それに
より、命令実行の並列性およびプロセッサ性能を高める
リネーム装置および方法の必要性がある。
【0007】
【課題を解決するための手段】前述した必要性は本発明
によって対処される。したがって、第一の形態で、複数
の命令を通信するための入力回路を含むデータ処理シス
テムが提供される。処理装置が、複数の命令の一つ以上
に応答して、データ値に対して論理演算を実行する。処
理装置は、論理演算オペランドを更新する命令を実行す
る1個以上の実行装置の出力に結合されている。処理装
置はまた、オペランドを更新する命令に対応する命令識
別子(IID)を提供するデータ記憶装置に結合されて
いる。
によって対処される。したがって、第一の形態で、複数
の命令を通信するための入力回路を含むデータ処理シス
テムが提供される。処理装置が、複数の命令の一つ以上
に応答して、データ値に対して論理演算を実行する。処
理装置は、論理演算オペランドを更新する命令を実行す
る1個以上の実行装置の出力に結合されている。処理装
置はまた、オペランドを更新する命令に対応する命令識
別子(IID)を提供するデータ記憶装置に結合されて
いる。
【0008】さらに、第二の形態で、非直列化論理条件
レジスタ処理のためのデータ処理機構が提供される。こ
のデータ処理機構は、それぞれが少なくとも三つのフィ
ールドを含む1個以上のレジスタを有する命令スタック
を含む待ち行列を組み込む。フィールドの少なくとも二
つが、条件レジスタ・データ値を更新する命令に対応す
る命令識別子(IID)を含む。待ち行列はまた、条件
レジスタ・データ値に対して論理演算を実行するための
論理回路を含む。論理回路は、IIDを含み、それらの
IIDを論理回路に通信するデータ記憶装置に結合され
ている。
レジスタ処理のためのデータ処理機構が提供される。こ
のデータ処理機構は、それぞれが少なくとも三つのフィ
ールドを含む1個以上のレジスタを有する命令スタック
を含む待ち行列を組み込む。フィールドの少なくとも二
つが、条件レジスタ・データ値を更新する命令に対応す
る命令識別子(IID)を含む。待ち行列はまた、条件
レジスタ・データ値に対して論理演算を実行するための
論理回路を含む。論理回路は、IIDを含み、それらの
IIDを論理回路に通信するデータ記憶装置に結合され
ている。
【0009】最後に、第三の形態で、非直列化論理条件
レジスタ処理の方法が提供される。この方法は、第一の
条件レジスタ命令を、第一のデータ記憶装置中のデータ
記憶場所の第一の部分に記憶するステップを含む。第二
の条件レジスタ命令が、命令のオペランドに対応する条
件レジスタ・フィールドを更新するならば、対応する命
令識別子(IID)がデータ記憶場所の第二の部分に記
憶される。
レジスタ処理の方法が提供される。この方法は、第一の
条件レジスタ命令を、第一のデータ記憶装置中のデータ
記憶場所の第一の部分に記憶するステップを含む。第二
の条件レジスタ命令が、命令のオペランドに対応する条
件レジスタ・フィールドを更新するならば、対応する命
令識別子(IID)がデータ記憶場所の第二の部分に記
憶される。
【0010】これらおよび他の特徴および利点は、以下
の詳細な説明を添付図面と併せて参照することによって
より理解されよう。図面は、本発明の唯一の形態を表す
ものではないことに注意されたい。
の詳細な説明を添付図面と併せて参照することによって
より理解されよう。図面は、本発明の唯一の形態を表す
ものではないことに注意されたい。
【0011】
【発明の実施の形態】本発明は、CRを更新または使用
しなければならない論理命令が二つ以上ある場合のアウ
ト・オブ・オーダ整数装置命令実行をサポートするCR
リネーム機構を提供する。本発明は、CRを更新または
使用しなければならない論理命令が、CRを更新するす
べての先の演算が完了するのを待たずに実行することを
可能にする。
しなければならない論理命令が二つ以上ある場合のアウ
ト・オブ・オーダ整数装置命令実行をサポートするCR
リネーム機構を提供する。本発明は、CRを更新または
使用しなければならない論理命令が、CRを更新するす
べての先の演算が完了するのを待たずに実行することを
可能にする。
【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社)に記載されている。本発明のCRリネーム機
構は、このCPU110に含まれる。CPU110は、
システム・バス112によって種々の他の構成部品に結
合されている。読み取り専用メモリ(ROM)116が
システム・バス112に結合され、データ処理システム
100の特定の基本機能を制御する基本入出力システム
(BIOS)を含む。また、ランダム・アクセス・メモ
リ(RAM)114、入出力アダプタ118および通信
アダプタ134がシステム・バス112に結合されてい
る。入出力アダプタ118は、ディスク記憶装置120
と通信する小型コンピュータ・システム・インタフェー
ス(SCSI)アダプタであってもよい。通信アダプタ
134は、バス112を外部ネットワークと接続して、
データ処理システムが他の同様なシステムと通信するこ
とを可能にする。また、入出力装置がユーザ・インタフ
ェース・アダプタ122およびディスプレイ・アダプタ
136を介してシステム・バス112に接続されてい
る。キーボード124、トラック・ボール132、マウ
ス126およびスピーカ128が、すべてユーザ・イン
タフェース・アダプタ122を介してバス112に接続
されている。ディスプレイ・モニタ138がディスプレ
イ・アダプタ136によってシステム・バス112に接
続されている。これに関して、ユーザは、キーボート1
24、トラック・ボール132またはマウス126を介
してシステムに入力し、スピーカ128およびディスプ
レイ138を介してシステムから出力を受けることがで
きる。さらには、オペレーティング・システム、たとえ
ばAIX(AIXはIBM社の商標である)を使用し
て、図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社)に記載されている。本発明のCRリネーム機
構は、このCPU110に含まれる。CPU110は、
システム・バス112によって種々の他の構成部品に結
合されている。読み取り専用メモリ(ROM)116が
システム・バス112に結合され、データ処理システム
100の特定の基本機能を制御する基本入出力システム
(BIOS)を含む。また、ランダム・アクセス・メモ
リ(RAM)114、入出力アダプタ118および通信
アダプタ134がシステム・バス112に結合されてい
る。入出力アダプタ118は、ディスク記憶装置120
と通信する小型コンピュータ・システム・インタフェー
ス(SCSI)アダプタであってもよい。通信アダプタ
134は、バス112を外部ネットワークと接続して、
データ処理システムが他の同様なシステムと通信するこ
とを可能にする。また、入出力装置がユーザ・インタフ
ェース・アダプタ122およびディスプレイ・アダプタ
136を介してシステム・バス112に接続されてい
る。キーボード124、トラック・ボール132、マウ
ス126およびスピーカ128が、すべてユーザ・イン
タフェース・アダプタ122を介してバス112に接続
されている。ディスプレイ・モニタ138がディスプレ
イ・アダプタ136によってシステム・バス112に接
続されている。これに関して、ユーザは、キーボート1
24、トラック・ボール132またはマウス126を介
してシステムに入力し、スピーカ128およびディスプ
レイ138を介してシステムから出力を受けることがで
きる。さらには、オペレーティング・システム、たとえ
ばAIX(AIXはIBM社の商標である)を使用し
て、図1に示す種々のコンポーネントの機能を協調させ
ることができる。
【0015】図2は、CPU110の一部をより詳細に
示す。CPU110のこの部分は、命令キャッシュ(I
キャッシュ)202、ディスパッチ装置204、分岐/
システム処理装置205、固定小数点実行装置(FX
U)206、ロード/ストア装置208、浮動小数点装
置(FPU)210、データ・キャッシュ(Dキャッシ
ュ)212およびバス・インタフェース装置(BIU)
214を含む。分岐/システム処理装置205はまた、
条件レジスタ(CR)207を含む。Iキャッシュ20
2はディスパッチ装置204に結合されて、命令および
制御情報を通信する。ディスパッチ装置204は、分岐
/システム処理装置205、FXU206、ロード/ス
トア装置208およびFPU210それぞれに結合され
て、複数のディスパッチされた命令を提供する。Iキャ
ッシュ202はBIU214に結合されて、データおよ
び制御情報を通信する。FXU206はロード/ストア
装置208に結合されて、ロード・データ値、ストア・
データ値および転送データ値を通信する。ロード/スト
ア装置208はFPU210に結合されて、ストア・デ
ータ値およびロード・データ値を通信する。ロード/ス
トア装置208はまた、Dキャッシュ212にも結合さ
れて、ロード/ストア要求信号、複数のデータ値および
アドレス値を通信する。Dキャッシュ212はバス・イ
ンタフェース装置214に結合されて、データ入力信
号、データ出力信号および制御信号を通信する。
示す。CPU110のこの部分は、命令キャッシュ(I
キャッシュ)202、ディスパッチ装置204、分岐/
システム処理装置205、固定小数点実行装置(FX
U)206、ロード/ストア装置208、浮動小数点装
置(FPU)210、データ・キャッシュ(Dキャッシ
ュ)212およびバス・インタフェース装置(BIU)
214を含む。分岐/システム処理装置205はまた、
条件レジスタ(CR)207を含む。Iキャッシュ20
2はディスパッチ装置204に結合されて、命令および
制御情報を通信する。ディスパッチ装置204は、分岐
/システム処理装置205、FXU206、ロード/ス
トア装置208およびFPU210それぞれに結合され
て、複数のディスパッチされた命令を提供する。Iキャ
ッシュ202はBIU214に結合されて、データおよ
び制御情報を通信する。FXU206はロード/ストア
装置208に結合されて、ロード・データ値、ストア・
データ値および転送データ値を通信する。ロード/スト
ア装置208はFPU210に結合されて、ストア・デ
ータ値およびロード・データ値を通信する。ロード/ス
トア装置208はまた、Dキャッシュ212にも結合さ
れて、ロード/ストア要求信号、複数のデータ値および
アドレス値を通信する。Dキャッシュ212はバス・イ
ンタフェース装置214に結合されて、データ入力信
号、データ出力信号および制御信号を通信する。
【0016】図3〜5は、本発明の原理によるCRリネ
ーム機構300を示す。CRリネーム機構300は、C
PU110中の分岐/システム処理装置205に組み込
まれている。ディスパッチ装置204により、分岐/シ
ステム処理装置205向けの命令がIキャッシュ202
から検索され、分岐待ち行列301にロードされる。分
岐待ち行列301は、命令データ値を含む命令スタック
部302を含む。分岐待ち行列301は、深さが所定の
値Mである先入れ先出し(FIFO)構造であってもよ
い。命令スタック302中の各エントリは、機械命令デ
ータ値を普通は2進形態で含む。各命令は、ディスパッ
チ装置204によって割り当てられ、アウト・オブ・オ
ーダ命令を順序付けしなおすために完了装置(図示せ
ず)によって使用される命令識別子(IID)部を含
む。アーキテクチャ・レジスタは、更新する命令の完了
と同時に更新される。分岐/システム処理装置205向
けの命令は、分岐命令と、条件レジスタ207中のデー
タに対して論理演算を実行する命令とを含む。
ーム機構300を示す。CRリネーム機構300は、C
PU110中の分岐/システム処理装置205に組み込
まれている。ディスパッチ装置204により、分岐/シ
ステム処理装置205向けの命令がIキャッシュ202
から検索され、分岐待ち行列301にロードされる。分
岐待ち行列301は、命令データ値を含む命令スタック
部302を含む。分岐待ち行列301は、深さが所定の
値Mである先入れ先出し(FIFO)構造であってもよ
い。命令スタック302中の各エントリは、機械命令デ
ータ値を普通は2進形態で含む。各命令は、ディスパッ
チ装置204によって割り当てられ、アウト・オブ・オ
ーダ命令を順序付けしなおすために完了装置(図示せ
ず)によって使用される命令識別子(IID)部を含
む。アーキテクチャ・レジスタは、更新する命令の完了
と同時に更新される。分岐/システム処理装置205向
けの命令は、分岐命令と、条件レジスタ207中のデー
タに対して論理演算を実行する命令とを含む。
【0017】条件レジスタ207中のデータ値に対して
論理演算を実行する命令を、条件レジスタ論理(LC
R)命令と呼ぶ。本発明の原理を組み入れたデータ処理
システムの実施態様では、LCR命令は、三つのオペラ
ンド、すなわち、ここではBAおよびBBと指定する1
対のソース・オペランドと、宛先オペランドBTとを要
する。これらの記号それぞれは、条件レジスタ207中
の対応するフィールド303a〜303cを指す。条件
レジスタ207は、数がPである複数のフィールドを含
むことができる。しかし、代替態様では、LCR命令
は、所定の数Mの複数のソース・オペランドと、第二の
所定の数Nの宛先オペランドを組み入れてもよいことが
当業者によって理解されるであろう。ディスパッチ装置
204が、条件レジスタ207中のデータを更新する命
令を実行装置(XU)304に発するならば、その命令
の対応するIIDが条件レジスタ・リネーム・バッファ
305に送られる。条件レジスタ・リネーム・バッファ
305は、複数のレジスタ306を含むことができる。
複数のレジスタ306は、条件レジスタ207中のデー
タ・フィールドの数に等しい数Pのレジスタを含むこと
ができる。このような実施態様では、各レジスタ306
は、条件レジスタ207中のデータ・フィールド303
に対応する。リネーム・バッファ305中の各レジスタ
306はさらに、複数のデータ・フィールド307を含
む。第一のデータ・フィールド307aは、条件レジス
タ207のフィールド303中のデータ値を更新する命
令のIIDを含む。各データ・フィールド303はレジ
スタ306に対応し、更新する命令のIIDが、更新さ
れるフィールド303に対応するレジスタ306中のフ
ィールド307aにロードされる。対応するフィールド
303中の現在のデータ値はレジスタ306のフィール
ド307bにロードされる。書き込み保留のデータ値も
また、それぞれのレジスタ306のフィールド307c
にセットされる。フィールド307c中の書き込み保留
データ値は1ビット幅であってもよい。
論理演算を実行する命令を、条件レジスタ論理(LC
R)命令と呼ぶ。本発明の原理を組み入れたデータ処理
システムの実施態様では、LCR命令は、三つのオペラ
ンド、すなわち、ここではBAおよびBBと指定する1
対のソース・オペランドと、宛先オペランドBTとを要
する。これらの記号それぞれは、条件レジスタ207中
の対応するフィールド303a〜303cを指す。条件
レジスタ207は、数がPである複数のフィールドを含
むことができる。しかし、代替態様では、LCR命令
は、所定の数Mの複数のソース・オペランドと、第二の
所定の数Nの宛先オペランドを組み入れてもよいことが
当業者によって理解されるであろう。ディスパッチ装置
204が、条件レジスタ207中のデータを更新する命
令を実行装置(XU)304に発するならば、その命令
の対応するIIDが条件レジスタ・リネーム・バッファ
305に送られる。条件レジスタ・リネーム・バッファ
305は、複数のレジスタ306を含むことができる。
複数のレジスタ306は、条件レジスタ207中のデー
タ・フィールドの数に等しい数Pのレジスタを含むこと
ができる。このような実施態様では、各レジスタ306
は、条件レジスタ207中のデータ・フィールド303
に対応する。リネーム・バッファ305中の各レジスタ
306はさらに、複数のデータ・フィールド307を含
む。第一のデータ・フィールド307aは、条件レジス
タ207のフィールド303中のデータ値を更新する命
令のIIDを含む。各データ・フィールド303はレジ
スタ306に対応し、更新する命令のIIDが、更新さ
れるフィールド303に対応するレジスタ306中のフ
ィールド307aにロードされる。対応するフィールド
303中の現在のデータ値はレジスタ306のフィール
ド307bにロードされる。書き込み保留のデータ値も
また、それぞれのレジスタ306のフィールド307c
にセットされる。フィールド307c中の書き込み保留
データ値は1ビット幅であってもよい。
【0018】LCR命令は、レジスタ306のフィール
ド307aに記憶されたIIDを使用して、条件レジス
タ207中のデータ依存を解決する。LCR命令がディ
スパッチ装置204によって発行され、分岐待ち行列3
01にロードされるとき、一つ以上のオペランドBA、
BBまたはBTを更新する、XU304で保留中の命令
のIIDが、それら3種のオペランドそれぞれに対応す
るフィールド308a〜308cにロードされる。LC
R命令データ値そのものは、命令スタック302の同じ
構成要素のフィールド309にロードされる。LCR命
令309は、実行すべき演算を分岐/システム論理31
0に知らせ、分岐/システム論理310は適時にその命
令を実行する。
ド307aに記憶されたIIDを使用して、条件レジス
タ207中のデータ依存を解決する。LCR命令がディ
スパッチ装置204によって発行され、分岐待ち行列3
01にロードされるとき、一つ以上のオペランドBA、
BBまたはBTを更新する、XU304で保留中の命令
のIIDが、それら3種のオペランドそれぞれに対応す
るフィールド308a〜308cにロードされる。LC
R命令データ値そのものは、命令スタック302の同じ
構成要素のフィールド309にロードされる。LCR命
令309は、実行すべき演算を分岐/システム論理31
0に知らせ、分岐/システム論理310は適時にその命
令を実行する。
【0019】命令が実行されるにつれ、後続する命令が
命令スタック302を下に移動する。LCR命令309
中の命令データ値およびフィールド308a〜308c
中のIIDがいっしょに命令スタック302を下に移動
する。LCR命令がスタックの底に達すると、それは実
行の準備ができている。しかし、すべてのデータ依存が
解決されないうちは、命令は実行することができない。
LCR命令は、そのオペランド・フィールド303中の
有効なデータが利用できるようになるまで待たなければ
ならない。
命令スタック302を下に移動する。LCR命令309
中の命令データ値およびフィールド308a〜308c
中のIIDがいっしょに命令スタック302を下に移動
する。LCR命令がスタックの底に達すると、それは実
行の準備ができている。しかし、すべてのデータ依存が
解決されないうちは、命令は実行することができない。
LCR命令は、そのオペランド・フィールド303中の
有効なデータが利用できるようになるまで待たなければ
ならない。
【0020】分岐/システム処理装置205は、実行装
置終了バスをスヌープすることにより、実行を待ってい
るLCR命令中のデータ依存を解決する。終了バスは、
XU、たとえばXU304からデータを伝送する。デー
タは、条件コード、妥当性ビット、IIDおよび例外を
含む。XU304中実行中の命令による、条件レジスタ
207中のフィールド303への書き込みが保留中であ
るならば、次に実行するLCR命令は、対応するオペラ
ンド・フィールド303a〜303c中で有効なデータ
が利用できるようになるまで待たなければならない。換
言するならば、従来技術によると、次に実行されるLC
R命令は、XU304中の命令が完了し、条件レジスタ
207中のそれぞれのオペランド・フィールド303a
〜303cがそれによって更新されるまで待たなければ
ならない。
置終了バスをスヌープすることにより、実行を待ってい
るLCR命令中のデータ依存を解決する。終了バスは、
XU、たとえばXU304からデータを伝送する。デー
タは、条件コード、妥当性ビット、IIDおよび例外を
含む。XU304中実行中の命令による、条件レジスタ
207中のフィールド303への書き込みが保留中であ
るならば、次に実行するLCR命令は、対応するオペラ
ンド・フィールド303a〜303c中で有効なデータ
が利用できるようになるまで待たなければならない。換
言するならば、従来技術によると、次に実行されるLC
R命令は、XU304中の命令が完了し、条件レジスタ
207中のそれぞれのオペランド・フィールド303a
〜303cがそれによって更新されるまで待たなければ
ならない。
【0021】このボトルネックを緩和するため、本発明
の原理による分岐/システム処理装置205では、分岐
/システム論理310がXU304の終了バスをスヌー
プする。次に実行するLCR命令が、オペランドBA、
BBおよびBTに対する依存関係をそれぞれ反映する、
フィールド308a〜308cに含まれるIIDを介し
てそのオペランド依存を分岐/システム論理310に知
らせる。これらのIIDは、オペランド値を更新する命
令の識別子である。分岐/システム論理310は、II
Dを使用して、XU304で実行を終了しようとしてい
る対応する命令を求めてスヌープする。フィールド30
8a〜308c中の一つ以上のIIDに対応する命令の
IIDが終了IIDライン311上に出現すると、分岐
/システム論理310は、対応する命令が終了しようと
しており、オペランド値が終了条件コード・ライン31
2上で利用できるようになることを知る。条件コード・
ライン312上のオペランド値は、XU304が終了有
効ライン313上に妥当性データ値をセットすると有効
になる。終了条件コードは、フィールド308a〜30
8cのフィールド314a〜314cにそれぞれ記憶さ
れる。こうしてオペランド・データ値がすべて解決され
ると、命令スタック302の底にあるLCR命令109
は、XU304で実行中の命令が完了するのを待つこと
なく、実行することができる。このようにして、LCR
命令は、本発明の原理にしたがって、分岐/システム処
理装置205によって非直列化される。
の原理による分岐/システム処理装置205では、分岐
/システム論理310がXU304の終了バスをスヌー
プする。次に実行するLCR命令が、オペランドBA、
BBおよびBTに対する依存関係をそれぞれ反映する、
フィールド308a〜308cに含まれるIIDを介し
てそのオペランド依存を分岐/システム論理310に知
らせる。これらのIIDは、オペランド値を更新する命
令の識別子である。分岐/システム論理310は、II
Dを使用して、XU304で実行を終了しようとしてい
る対応する命令を求めてスヌープする。フィールド30
8a〜308c中の一つ以上のIIDに対応する命令の
IIDが終了IIDライン311上に出現すると、分岐
/システム論理310は、対応する命令が終了しようと
しており、オペランド値が終了条件コード・ライン31
2上で利用できるようになることを知る。条件コード・
ライン312上のオペランド値は、XU304が終了有
効ライン313上に妥当性データ値をセットすると有効
になる。終了条件コードは、フィールド308a〜30
8cのフィールド314a〜314cにそれぞれ記憶さ
れる。こうしてオペランド・データ値がすべて解決され
ると、命令スタック302の底にあるLCR命令109
は、XU304で実行中の命令が完了するのを待つこと
なく、実行することができる。このようにして、LCR
命令は、本発明の原理にしたがって、分岐/システム処
理装置205によって非直列化される。
【0022】分岐/システム論理310はまた、条件レ
ジスタ207を更新する命令のIIDの、フィールド3
08a〜308cへの記憶を制御する。LCR命令がデ
ィスパッチ装置204によって分岐待ち行列301にデ
ィスパッチされ、命令スタック302の一番上のLCR
命令309にロードされるとき、分岐/システム論理3
10は、命令オペランドに対応する条件レジスタ207
中のフィールド303を検出する。そして、分岐/シス
テム論理310は制御信号をマルチプレクサ(MUX)
315に送る。MUX315は、条件レジスタ・リネー
ム・バッファ305中の、条件レジスタ207フィール
ドを更新する保留中の命令に対応するIID307aそ
れぞれを入力として受ける。制御信号に応答して、MU
X315は、各XU304中の、LCR命令オペランド
BA、BBおよびBTフィールド303a〜303cそ
れぞれを更新する保留中の命令のIIDを選択する。そ
して、これらは、分岐待ち行列301中のフィールド3
08a〜308cにロードされ、前記のように、命令ス
タック302中の命令が実行されるにつれ、LCR命令
309とともにスタックを下に移動する。
ジスタ207を更新する命令のIIDの、フィールド3
08a〜308cへの記憶を制御する。LCR命令がデ
ィスパッチ装置204によって分岐待ち行列301にデ
ィスパッチされ、命令スタック302の一番上のLCR
命令309にロードされるとき、分岐/システム論理3
10は、命令オペランドに対応する条件レジスタ207
中のフィールド303を検出する。そして、分岐/シス
テム論理310は制御信号をマルチプレクサ(MUX)
315に送る。MUX315は、条件レジスタ・リネー
ム・バッファ305中の、条件レジスタ207フィール
ドを更新する保留中の命令に対応するIID307aそ
れぞれを入力として受ける。制御信号に応答して、MU
X315は、各XU304中の、LCR命令オペランド
BA、BBおよびBTフィールド303a〜303cそ
れぞれを更新する保留中の命令のIIDを選択する。そ
して、これらは、分岐待ち行列301中のフィールド3
08a〜308cにロードされ、前記のように、命令ス
タック302中の命令が実行されるにつれ、LCR命令
309とともにスタックを下に移動する。
【0023】オペランドBA、BBおよびBTを更新す
るすべての命令が完了すると、条件レジスタ207中の
対応するフィールド303a〜303cが有効なデータ
を有する。この場合、命令が終了すると、条件レジスタ
207のフィールド303a〜303cに対応する、フ
ィールド307c中の書き込み保留データ値がクリアさ
れる。そして、分岐/システム論理310が条件レジス
タ207のフィールド303a〜303cのオペランド
値を使用してLCR命令を実行する。
るすべての命令が完了すると、条件レジスタ207中の
対応するフィールド303a〜303cが有効なデータ
を有する。この場合、命令が終了すると、条件レジスタ
207のフィールド303a〜303cに対応する、フ
ィールド307c中の書き込み保留データ値がクリアさ
れる。そして、分岐/システム論理310が条件レジス
タ207のフィールド303a〜303cのオペランド
値を使用してLCR命令を実行する。
【0024】次に、本発明の原理によるアウト・オブ・
オーダ論理条件レジスタ命令処理方法を流れ図で示す図
6を参照する。ステップ400で、LCR命令がディス
パッチ装置204によってディスパッチされ、ステップ
401で、分岐待ち行列301にロードされる。
オーダ論理条件レジスタ命令処理方法を流れ図で示す図
6を参照する。ステップ400で、LCR命令がディス
パッチ装置204によってディスパッチされ、ステップ
401で、分岐待ち行列301にロードされる。
【0025】ステップ402で、書き込み保留データ値
がフィールド307cにセットされていないならば、条
件レジスタ・フィールド303それぞれに対するフィー
ルド307b中の条件レジスタ値は有効であり、ステッ
プ403で、次に実行するLCR命令によって要求され
るデータ値が条件レジスタ・リネーム・バッファ305
から読み出される。そして、ステップ404でLCR命
令が実行され、ステップ405で、リネーム・バッファ
305が条件レジスタ207にマッピングされる。
がフィールド307cにセットされていないならば、条
件レジスタ・フィールド303それぞれに対するフィー
ルド307b中の条件レジスタ値は有効であり、ステッ
プ403で、次に実行するLCR命令によって要求され
るデータ値が条件レジスタ・リネーム・バッファ305
から読み出される。そして、ステップ404でLCR命
令が実行され、ステップ405で、リネーム・バッファ
305が条件レジスタ207にマッピングされる。
【0026】しかし、ステップ402で、一つ以上のフ
ィールド307cで書き込み保留データ値がセットされ
ているならば、XU304で保留中の命令がフィールド
307b中の条件レジスタ・データを無効にする。そし
て、ステップ406で、セットされた書き込み保留デー
タ値を有するフィールド307cに対応するフィールド
307a中のIIDがフィールド308にロードされ
る。IIDは、保留中の命令によって更新される条件レ
ジスタ207中のオペランド・フィールド303a〜3
03cに対応するフィールド308a〜308cにロー
ドされる。分岐/システム論理310およびMUX31
5が、上述したように、フィールド308へのIIDの
書き込みを実施する。
ィールド307cで書き込み保留データ値がセットされ
ているならば、XU304で保留中の命令がフィールド
307b中の条件レジスタ・データを無効にする。そし
て、ステップ406で、セットされた書き込み保留デー
タ値を有するフィールド307cに対応するフィールド
307a中のIIDがフィールド308にロードされ
る。IIDは、保留中の命令によって更新される条件レ
ジスタ207中のオペランド・フィールド303a〜3
03cに対応するフィールド308a〜308cにロー
ドされる。分岐/システム論理310およびMUX31
5が、上述したように、フィールド308へのIIDの
書き込みを実施する。
【0027】ステップ407で、XU304の終了バス
が、ステップ406で分岐待ち行列301にロードされ
たIIDに対応する終了中の命令のIIDを求めてスヌ
ープされる。ステップ408で、スヌープは、フィール
ド308に記憶されたIIDに対応する求められる命令
すべてが終了するまで継続する。そして、ステップ40
9で、対応するLCR命令オペランドの条件レジスタ・
データ(条件コード)を終了バスから取得する。する
と、次に実行するLCR命令は、その必要なオペランド
値を有することになり、ステップ410で実行される。
ステップ411で、条件レジスタ207がリネーム・バ
ッファ305にマッピングされ、それにより、条件レジ
スタ・リネーム・バッファ305中のフィールド307
bは、LCR命令の演算によって更新された条件レジス
タ・データ値を含む。
が、ステップ406で分岐待ち行列301にロードされ
たIIDに対応する終了中の命令のIIDを求めてスヌ
ープされる。ステップ408で、スヌープは、フィール
ド308に記憶されたIIDに対応する求められる命令
すべてが終了するまで継続する。そして、ステップ40
9で、対応するLCR命令オペランドの条件レジスタ・
データ(条件コード)を終了バスから取得する。する
と、次に実行するLCR命令は、その必要なオペランド
値を有することになり、ステップ410で実行される。
ステップ411で、条件レジスタ207がリネーム・バ
ッファ305にマッピングされ、それにより、条件レジ
スタ・リネーム・バッファ305中のフィールド307
bは、LCR命令の演算によって更新された条件レジス
タ・データ値を含む。
【0028】本発明およびその利点を詳細に記載した
が、請求の範囲によって定義する本発明の真髄および範
囲を逸することなく、種々の変更、代替および修正を本
発明に加えられることが理解されよう。
が、請求の範囲によって定義する本発明の真髄および範
囲を逸することなく、種々の変更、代替および修正を本
発明に加えられることが理解されよう。
【0029】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)アウト・オブ・オーダ論理条件レジスタ処理のた
めのデータ処理システムであって、論理条件レジスタ演
算を実現する複数の命令を通信するための入力手段と、
前記複数の命令の一つ以上を受け、1個以上の実行装置
それぞれの出力に結合されてそれらから命令オペランド
値を受け、複数の命令識別子(IID)を受けるための
手段を含み、前記複数の命令識別子に対応する実行装置
命令が条件レジスタの内容を更新する処理装置と、前記
構成レジスタからデータを受け、前記処理装置に結合さ
れて前記IIDを前記処理装置に提供するデータ記憶装
置と、を含むデータ処理システム。 (2)前記処理装置が、前記1個以上の実行装置それぞ
れの出力に結合された論理装置をさらに含み、複数の命
令識別子を受けるための前記手段が、前記論理装置に結
合された命令スタックに含まれる上記(1)記載のデー
タ処理システム。 (3)前記処理装置が所定の深さの命令スタックを含
み、複数の命令識別子を受けるための前記手段が、各命
令スタック・エントリ中に複数のフィールドのサブセッ
トを形成する上記(1)記載のデータ処理システム。 (4)前記処理装置が、前記出力からの妥当性データ値
に応答して、1個以上の実行装置それぞれの前記出力か
ら条件レジスタ・データ値を受ける上記(1)記載のデ
ータ処理システム。 (5)前記入力手段がディスパッチャであり、前記処理
装置が、複数の記憶場所を有し、各記憶場所が少なくと
も三つのデータ・フィールドを有し、前記少なくとも三
つのデータ・フィールドの二つが命令識別子(IID)
を含み、条件コード・データ値を受けるためのサブフィ
ールドを含む分岐待ち行列と、前記分岐待ち行列および
複数の実行装置それぞれの終了バスに結合され、条件レ
ジスタを更新する命令に対応する命令識別子(IID)
を受ける論理装置と、前記論理装置に結合され、複数の
データ・フィールドを有する条件レジスタと、を含む分
岐/システム処理装置であり、前記データ記憶装置が条
件レジスタ・リネーム・バッファであり、前記条件レジ
スタ・リネーム・バッファが、少なくとも三つのデータ
・フィールドを有する複数の記憶レジスタを含み、前記
データ・フィールドの一つが、前記条件レジスタを更新
する命令に対応するIIDを含み、前記データ・フィー
ルドの第二のフィールドが書き込み保留データ値を含
み、前記データ・フィールドの第三のフィールドが条件
コード・データ値を含み、前記複数の記憶レジスタが、
少なくとも前記条件レジスタ中のデータ・フィールドの
数に等しい数の記憶レジスタを含み、IIDを含む前記
データ・フィールドがマルチプレクサ(MUX)によっ
てIIDを含む前記分岐待ち行列の前記二つのデータ・
フィールドに結合され、前記MUXが前記論理回路から
制御信号を受ける上記(1)記載のデータ処理システ
ム。 (6)データ・プロセッサにおける、非直列化論理条件
レジスタ処理のための機構であって、1個以上の命令レ
ジスタを含む命令スタックを有し、各命令レジスタが、
命令データを含む第一の部分と、第一および第二の命令
識別子を含む少なくとも二つの部分とを含み、前記識別
子が、条件レジスタ・データ値を更新する命令に対応す
るものであり、前記命令データに応答して条件レジスタ
・データ値に対して論理演算を実行するための論理回路
をさらに有する待ち行列と、前記論理回路に結合された
条件レジスタと、一つ以上の記憶場所を有し、各記憶場
所の第一の部分が命令識別子を含み、第二の部分が条件
レジスタ・データ値を含み、前記第一および第二の部分
が前記論理回路に結合されているデータ記憶装置と、を
含む機構。 (7)前記論理回路が1個以上の実行装置の出力バスに
結合されている上記(6)記載の機構。 (8)前記データ記憶装置の各記憶場所が前記条件レジ
スタ中のデータ・フィールドに対応する上記(6)記載
の機構。 (9)前記データ記憶装置の各記憶場所が、第三のデー
タ値を含む第三の部分をさらに含み、前記第三の部分が
前記論理回路に結合され、前記第三のデータ値が書き込
み保留状態を指定する上記(6)記載の機構。 (10)アウト・オブ・オーダ論理条件レジスタ処理の
方法であって、それぞれが複数のデータ記憶部を含む一
つ以上のデータ記憶場所を有する第一のデータ記憶装置
中の場所の第一のデータ記憶部に第一の条件レジスタ命
令を記憶するステップと、少なくとも一つの第二の条件
レジスタ命令が、前記第一の条件レジスタ命令のオペラ
ンドに対応する少なくとも一つの条件レジスタ・フィー
ルドを更新するならば、前記第二の条件レジスタ命令に
対応する命令識別子を前記複数のデータ記憶部の少なく
とも一つの第二のデータ記憶部に記憶するステップと、
を含む方法。 (11)1個以上の実行装置それぞれに対応する出力バ
スをスヌープするステップと、前記記憶された命令識別
子の一つ以上に対応する命令識別子が前記バスに出力さ
れるならば、前記出力された識別子それぞれに対応する
条件レジスタ・データ値を取得するステップと、をさら
に含む上記(10)記載の方法。 (12)命令識別子を記憶する前記ステップが、少なく
とも一つのデータ記憶場所を有する第二のデータ記憶装
置中のデータ記憶場所に含まれるデータ値に応答する上
記(10)記載の方法。 (13)前記第一の条件レジスタ命令のオペランドに対
応する少なくとも一つの条件レジスタ・データ値を、少
なくとも一つのデータ記憶場所を有する第二のデータ記
憶装置のデータ記憶場所から取得するステップをさらに
含む上記(10)記載の方法。 (14)命令識別子を記憶する前記ステップが、前記命
令識別子を、少なくとも一つのデータ記憶場所を有する
第二のデータ記憶装置のデータ記憶場所から取得するス
テップをさらに含む上記(10)記載の方法。 (15)各データ記憶場所が複数のデータ記憶部を含
み、その第一の部分が前記命令識別子を含み、前記命令
識別子を取得する前記ステップが、前記データ記憶場所
の第二の部分に含まれるデータ値に応答する上記(1
2)記載の方法。 (16)前記データ記憶場所それぞれの第二の部分に含
まれる前記データ値に応答して一つ以上の条件レジスタ
・データ値を取得するステップをさらに含み、各条件レ
ジスタ・データ値が、対応する場所の第三のデータ記憶
部に含まれている上記(13)記載の方法。 (17)1個以上の実行装置それぞれに対応する出力バ
スをスヌープするステップと、前記記憶された命令識別
子の一つ以上に対応する命令識別子が前記バスに出力さ
れるならば、データ有効信号に応答して、前記出力され
た識別子それぞれに対応する条件コードを取得するステ
ップと、それぞれが少なくとも三つのデータ記憶部を有
する複数のデータ・レジスタを有する条件レジスタ・リ
ネーム・バッファの第二の部分中の第一の書き込み保留
データ値に応答して、前記条件レジスタ・リネーム・バ
ッファのデータ・レジスタの第一の部分から前記第一の
条件レジスタ命令のオペランドに対応する少なくとも一
つの条件コードを取得するステップと、をさらに含み、
命令識別子を記憶する前記ステップが、前記少なくとも
一つの第二の条件レジスタ命令が前記第一の条件レジス
タ命令と本質的に同時にディスパッチされるならば、デ
ィスパッチ時に前記命令識別子を前記少なくとも一つの
第二の条件レジスタ命令から取得するステップと、前記
少なくとも一つの第二の条件レジスタ命令が前記第一の
条件レジスタ命令と本質的に同時にディスパッチされな
いならば、前記条件レジスタ・リネーム・バッファの前
記第二の部分中の第二の書き込み保留データ値に応答し
て、第二のデータ記憶装置の前記条件レジスタ・リネー
ム・バッファの第三の部分から前記命令識別子を取得す
るステップと、をさらに含む上記(10)記載の方法。
の事項を開示する。 (1)アウト・オブ・オーダ論理条件レジスタ処理のた
めのデータ処理システムであって、論理条件レジスタ演
算を実現する複数の命令を通信するための入力手段と、
前記複数の命令の一つ以上を受け、1個以上の実行装置
それぞれの出力に結合されてそれらから命令オペランド
値を受け、複数の命令識別子(IID)を受けるための
手段を含み、前記複数の命令識別子に対応する実行装置
命令が条件レジスタの内容を更新する処理装置と、前記
構成レジスタからデータを受け、前記処理装置に結合さ
れて前記IIDを前記処理装置に提供するデータ記憶装
置と、を含むデータ処理システム。 (2)前記処理装置が、前記1個以上の実行装置それぞ
れの出力に結合された論理装置をさらに含み、複数の命
令識別子を受けるための前記手段が、前記論理装置に結
合された命令スタックに含まれる上記(1)記載のデー
タ処理システム。 (3)前記処理装置が所定の深さの命令スタックを含
み、複数の命令識別子を受けるための前記手段が、各命
令スタック・エントリ中に複数のフィールドのサブセッ
トを形成する上記(1)記載のデータ処理システム。 (4)前記処理装置が、前記出力からの妥当性データ値
に応答して、1個以上の実行装置それぞれの前記出力か
ら条件レジスタ・データ値を受ける上記(1)記載のデ
ータ処理システム。 (5)前記入力手段がディスパッチャであり、前記処理
装置が、複数の記憶場所を有し、各記憶場所が少なくと
も三つのデータ・フィールドを有し、前記少なくとも三
つのデータ・フィールドの二つが命令識別子(IID)
を含み、条件コード・データ値を受けるためのサブフィ
ールドを含む分岐待ち行列と、前記分岐待ち行列および
複数の実行装置それぞれの終了バスに結合され、条件レ
ジスタを更新する命令に対応する命令識別子(IID)
を受ける論理装置と、前記論理装置に結合され、複数の
データ・フィールドを有する条件レジスタと、を含む分
岐/システム処理装置であり、前記データ記憶装置が条
件レジスタ・リネーム・バッファであり、前記条件レジ
スタ・リネーム・バッファが、少なくとも三つのデータ
・フィールドを有する複数の記憶レジスタを含み、前記
データ・フィールドの一つが、前記条件レジスタを更新
する命令に対応するIIDを含み、前記データ・フィー
ルドの第二のフィールドが書き込み保留データ値を含
み、前記データ・フィールドの第三のフィールドが条件
コード・データ値を含み、前記複数の記憶レジスタが、
少なくとも前記条件レジスタ中のデータ・フィールドの
数に等しい数の記憶レジスタを含み、IIDを含む前記
データ・フィールドがマルチプレクサ(MUX)によっ
てIIDを含む前記分岐待ち行列の前記二つのデータ・
フィールドに結合され、前記MUXが前記論理回路から
制御信号を受ける上記(1)記載のデータ処理システ
ム。 (6)データ・プロセッサにおける、非直列化論理条件
レジスタ処理のための機構であって、1個以上の命令レ
ジスタを含む命令スタックを有し、各命令レジスタが、
命令データを含む第一の部分と、第一および第二の命令
識別子を含む少なくとも二つの部分とを含み、前記識別
子が、条件レジスタ・データ値を更新する命令に対応す
るものであり、前記命令データに応答して条件レジスタ
・データ値に対して論理演算を実行するための論理回路
をさらに有する待ち行列と、前記論理回路に結合された
条件レジスタと、一つ以上の記憶場所を有し、各記憶場
所の第一の部分が命令識別子を含み、第二の部分が条件
レジスタ・データ値を含み、前記第一および第二の部分
が前記論理回路に結合されているデータ記憶装置と、を
含む機構。 (7)前記論理回路が1個以上の実行装置の出力バスに
結合されている上記(6)記載の機構。 (8)前記データ記憶装置の各記憶場所が前記条件レジ
スタ中のデータ・フィールドに対応する上記(6)記載
の機構。 (9)前記データ記憶装置の各記憶場所が、第三のデー
タ値を含む第三の部分をさらに含み、前記第三の部分が
前記論理回路に結合され、前記第三のデータ値が書き込
み保留状態を指定する上記(6)記載の機構。 (10)アウト・オブ・オーダ論理条件レジスタ処理の
方法であって、それぞれが複数のデータ記憶部を含む一
つ以上のデータ記憶場所を有する第一のデータ記憶装置
中の場所の第一のデータ記憶部に第一の条件レジスタ命
令を記憶するステップと、少なくとも一つの第二の条件
レジスタ命令が、前記第一の条件レジスタ命令のオペラ
ンドに対応する少なくとも一つの条件レジスタ・フィー
ルドを更新するならば、前記第二の条件レジスタ命令に
対応する命令識別子を前記複数のデータ記憶部の少なく
とも一つの第二のデータ記憶部に記憶するステップと、
を含む方法。 (11)1個以上の実行装置それぞれに対応する出力バ
スをスヌープするステップと、前記記憶された命令識別
子の一つ以上に対応する命令識別子が前記バスに出力さ
れるならば、前記出力された識別子それぞれに対応する
条件レジスタ・データ値を取得するステップと、をさら
に含む上記(10)記載の方法。 (12)命令識別子を記憶する前記ステップが、少なく
とも一つのデータ記憶場所を有する第二のデータ記憶装
置中のデータ記憶場所に含まれるデータ値に応答する上
記(10)記載の方法。 (13)前記第一の条件レジスタ命令のオペランドに対
応する少なくとも一つの条件レジスタ・データ値を、少
なくとも一つのデータ記憶場所を有する第二のデータ記
憶装置のデータ記憶場所から取得するステップをさらに
含む上記(10)記載の方法。 (14)命令識別子を記憶する前記ステップが、前記命
令識別子を、少なくとも一つのデータ記憶場所を有する
第二のデータ記憶装置のデータ記憶場所から取得するス
テップをさらに含む上記(10)記載の方法。 (15)各データ記憶場所が複数のデータ記憶部を含
み、その第一の部分が前記命令識別子を含み、前記命令
識別子を取得する前記ステップが、前記データ記憶場所
の第二の部分に含まれるデータ値に応答する上記(1
2)記載の方法。 (16)前記データ記憶場所それぞれの第二の部分に含
まれる前記データ値に応答して一つ以上の条件レジスタ
・データ値を取得するステップをさらに含み、各条件レ
ジスタ・データ値が、対応する場所の第三のデータ記憶
部に含まれている上記(13)記載の方法。 (17)1個以上の実行装置それぞれに対応する出力バ
スをスヌープするステップと、前記記憶された命令識別
子の一つ以上に対応する命令識別子が前記バスに出力さ
れるならば、データ有効信号に応答して、前記出力され
た識別子それぞれに対応する条件コードを取得するステ
ップと、それぞれが少なくとも三つのデータ記憶部を有
する複数のデータ・レジスタを有する条件レジスタ・リ
ネーム・バッファの第二の部分中の第一の書き込み保留
データ値に応答して、前記条件レジスタ・リネーム・バ
ッファのデータ・レジスタの第一の部分から前記第一の
条件レジスタ命令のオペランドに対応する少なくとも一
つの条件コードを取得するステップと、をさらに含み、
命令識別子を記憶する前記ステップが、前記少なくとも
一つの第二の条件レジスタ命令が前記第一の条件レジス
タ命令と本質的に同時にディスパッチされるならば、デ
ィスパッチ時に前記命令識別子を前記少なくとも一つの
第二の条件レジスタ命令から取得するステップと、前記
少なくとも一つの第二の条件レジスタ命令が前記第一の
条件レジスタ命令と本質的に同時にディスパッチされな
いならば、前記条件レジスタ・リネーム・バッファの前
記第二の部分中の第二の書き込み保留データ値に応答し
て、第二のデータ記憶装置の前記条件レジスタ・リネー
ム・バッファの第三の部分から前記命令識別子を取得す
るステップと、をさらに含む上記(10)記載の方法。
【図1】本発明の一つの実施態様のデータ処理システム
を表すブロック図である。
を表すブロック図である。
【図2】本発明の実施態様の中央処理装置を表すブロッ
ク図である。
ク図である。
【図3】図4と図5との紙面上の位置関係を示す図であ
る。
る。
【図4】本発明の実施態様にしたがって実現されるアウ
ト・オブ・オーダCRリネーム機構を図5とともに示す
ブロック図である。
ト・オブ・オーダCRリネーム機構を図5とともに示す
ブロック図である。
【図5】本発明の実施態様にしたがって実現されるアウ
ト・オブ・オーダCRリネーム機構を図4とともに示す
ブロック図である。
ト・オブ・オーダCRリネーム機構を図4とともに示す
ブロック図である。
【図6】本発明の実施態様のCR更新実行方法を示す流
れ図である。
れ図である。
100 データ処理システム 110 CPU 202 命令キャッシュ 204 ディスパッチ装置 205 分岐/システム処理装置 206 固定小数点実行装置 207 条件レジスタ 208 ロード/ストア装置 210 浮動小数点装置 212 データ・キャッシュ 214 バス・インタフェース装置 300 CRリネーム機構 310 分岐/システム論理
───────────────────────────────────────────────────── フロントページの続き (72)発明者 エー・ジェームス・ヴァンノースタンド・ ジュニア アメリカ合衆国78681 テキサス州、 ラ ウンド・ロック、 ロビン・トレイル 1213 (72)発明者 デヴィッド・アンドリュー・スクロター アメリカ合衆国78664 テキサス州、 ラ ウンド・ロック、 スティルミィードウ 8
Claims (17)
- 【請求項1】アウト・オブ・オーダ論理条件レジスタ処
理のためのデータ処理システムであって、 論理条件レジスタ演算を実現する複数の命令を通信する
ための入力手段と、 前記複数の命令の一つ以上を受け、1個以上の実行装置
それぞれの出力に結合されてそれらから命令オペランド
値を受け、複数の命令識別子(IID)を受けるための
手段を含み、前記複数の命令識別子に対応する実行装置
命令が条件レジスタの内容を更新する処理装置と、 前記構成レジスタからデータを受け、前記処理装置に結
合されて前記IIDを前記処理装置に提供するデータ記
憶装置と、を含むデータ処理システム。 - 【請求項2】前記処理装置が、前記1個以上の実行装置
それぞれの出力に結合された論理装置をさらに含み、 複数の命令識別子を受けるための前記手段が、前記論理
装置に結合された命令スタックに含まれる請求項1記載
のデータ処理システム。 - 【請求項3】前記処理装置が所定の深さの命令スタック
を含み、複数の命令識別子を受けるための前記手段が、
各命令スタック・エントリ中に複数のフィールドのサブ
セットを形成する請求項1記載のデータ処理システム。 - 【請求項4】前記処理装置が、前記出力からの妥当性デ
ータ値に応答して、1個以上の実行装置それぞれの前記
出力から条件レジスタ・データ値を受ける請求項1記載
のデータ処理システム。 - 【請求項5】前記入力手段がディスパッチャであり、前
記処理装置が、 複数の記憶場所を有し、各記憶場所が少なくとも三つの
データ・フィールドを有し、前記少なくとも三つのデー
タ・フィールドの二つが命令識別子(IID)を含み、
条件コード・データ値を受けるためのサブフィールドを
含む分岐待ち行列と、 前記分岐待ち行列および複数の実行装置それぞれの終了
バスに結合され、条件レジスタを更新する命令に対応す
る命令識別子(IID)を受ける論理装置と、 前記論理装置に結合され、複数のデータ・フィールドを
有する条件レジスタと、を含む分岐/システム処理装置
であり、前記データ記憶装置が条件レジスタ・リネーム
・バッファであり、前記条件レジスタ・リネーム・バッ
ファが、少なくとも三つのデータ・フィールドを有する
複数の記憶レジスタを含み、前記データ・フィールドの
一つが、前記条件レジスタを更新する命令に対応するI
IDを含み、前記データ・フィールドの第二のフィール
ドが書き込み保留データ値を含み、前記データ・フィー
ルドの第三のフィールドが条件コード・データ値を含
み、前記複数の記憶レジスタが、少なくとも前記条件レ
ジスタ中のデータ・フィールドの数に等しい数の記憶レ
ジスタを含み、IIDを含む前記データ・フィールドが
マルチプレクサ(MUX)によってIIDを含む前記分
岐待ち行列の前記二つのデータ・フィールドに結合さ
れ、前記MUXが前記論理回路から制御信号を受ける請
求項1記載のデータ処理システム。 - 【請求項6】データ・プロセッサにおける、非直列化論
理条件レジスタ処理のための機構であって、 1個以上の命令レジスタを含む命令スタックを有し、各
命令レジスタが、命令データを含む第一の部分と、第一
および第二の命令識別子を含む少なくとも二つの部分と
を含み、前記識別子が、条件レジスタ・データ値を更新
する命令に対応するものであり、前記命令データに応答
して条件レジスタ・データ値に対して論理演算を実行す
るための論理回路をさらに有する待ち行列と、 前記論理回路に結合された条件レジスタと、 一つ以上の記憶場所を有し、各記憶場所の第一の部分が
命令識別子を含み、第二の部分が条件レジスタ・データ
値を含み、前記第一および第二の部分が前記論理回路に
結合されているデータ記憶装置と、を含む機構。 - 【請求項7】前記論理回路が1個以上の実行装置の出力
バスに結合されている請求項6記載の機構。 - 【請求項8】前記データ記憶装置の各記憶場所が前記条
件レジスタ中のデータ・フィールドに対応する請求項6
記載の機構。 - 【請求項9】前記データ記憶装置の各記憶場所が、第三
のデータ値を含む第三の部分をさらに含み、前記第三の
部分が前記論理回路に結合され、前記第三のデータ値が
書き込み保留状態を指定する請求項6記載の機構。 - 【請求項10】アウト・オブ・オーダ論理条件レジスタ
処理の方法であって、 それぞれが複数のデータ記憶部を含む一つ以上のデータ
記憶場所を有する第一のデータ記憶装置中の場所の第一
のデータ記憶部に第一の条件レジスタ命令を記憶するス
テップと、 少なくとも一つの第二の条件レジスタ命令が、前記第一
の条件レジスタ命令のオペランドに対応する少なくとも
一つの条件レジスタ・フィールドを更新するならば、前
記第二の条件レジスタ命令に対応する命令識別子を前記
複数のデータ記憶部の少なくとも一つの第二のデータ記
憶部に記憶するステップと、を含む方法。 - 【請求項11】1個以上の実行装置それぞれに対応する
出力バスをスヌープするステップと、 前記記憶された命令識別子の一つ以上に対応する命令識
別子が前記バスに出力されるならば、前記出力された識
別子それぞれに対応する条件レジスタ・データ値を取得
するステップと、をさらに含む請求項10記載の方法。 - 【請求項12】命令識別子を記憶する前記ステップが、
少なくとも一つのデータ記憶場所を有する第二のデータ
記憶装置中のデータ記憶場所に含まれるデータ値に応答
する請求項10記載の方法。 - 【請求項13】前記第一の条件レジスタ命令のオペラン
ドに対応する少なくとも一つの条件レジスタ・データ値
を、少なくとも一つのデータ記憶場所を有する第二のデ
ータ記憶装置のデータ記憶場所から取得するステップを
さらに含む請求項10記載の方法。 - 【請求項14】命令識別子を記憶する前記ステップが、
前記命令識別子を、少なくとも一つのデータ記憶場所を
有する第二のデータ記憶装置のデータ記憶場所から取得
するステップをさらに含む請求項10記載の方法。 - 【請求項15】各データ記憶場所が複数のデータ記憶部
を含み、その第一の部分が前記命令識別子を含み、前記
命令識別子を取得する前記ステップが、前記データ記憶
場所の第二の部分に含まれるデータ値に応答する請求項
12記載の方法。 - 【請求項16】前記データ記憶場所それぞれの第二の部
分に含まれる前記データ値に応答して一つ以上の条件レ
ジスタ・データ値を取得するステップをさらに含み、各
条件レジスタ・データ値が、対応する場所の第三のデー
タ記憶部に含まれている請求項13記載の方法。 - 【請求項17】1個以上の実行装置それぞれに対応する
出力バスをスヌープするステップと、 前記記憶された命令識別子の一つ以上に対応する命令識
別子が前記バスに出力されるならば、データ有効信号に
応答して、前記出力された識別子それぞれに対応する条
件コードを取得するステップと、 それぞれが少なくとも三つのデータ記憶部を有する複数
のデータ・レジスタを有する条件レジスタ・リネーム・
バッファの第二の部分中の第一の書き込み保留データ値
に応答して、前記条件レジスタ・リネーム・バッファの
データ・レジスタの第一の部分から前記第一の条件レジ
スタ命令のオペランドに対応する少なくとも一つの条件
コードを取得するステップと、をさらに含み、命令識別
子を記憶する前記ステップが、 前記少なくとも一つの第二の条件レジスタ命令が前記第
一の条件レジスタ命令と本質的に同時にディスパッチさ
れるならば、ディスパッチ時に前記命令識別子を前記少
なくとも一つの第二の条件レジスタ命令から取得するス
テップと、 前記少なくとも一つの第二の条件レジスタ命令が前記第
一の条件レジスタ命令と本質的に同時にディスパッチさ
れないならば、前記条件レジスタ・リネーム・バッファ
の前記第二の部分中の第二の書き込み保留データ値に応
答して、第二のデータ記憶装置の前記条件レジスタ・リ
ネーム・バッファの第三の部分から前記命令識別子を取
得するステップと、をさらに含む請求項10記載の方
法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/024804 | 1998-02-17 | ||
US09/024,804 US6061785A (en) | 1998-02-17 | 1998-02-17 | Data processing system having an apparatus for out-of-order register operations and method therefor |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11296371A true JPH11296371A (ja) | 1999-10-29 |
JP3600467B2 JP3600467B2 (ja) | 2004-12-15 |
Family
ID=21822485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02668799A Expired - Fee Related JP3600467B2 (ja) | 1998-02-17 | 1999-02-03 | アウト・オブ・オーダ論理条件レジスタ処理のためのデータ処理システム及び方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6061785A (ja) |
JP (1) | JP3600467B2 (ja) |
KR (1) | KR100343601B1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100628573B1 (ko) | 2004-09-08 | 2006-09-26 | 삼성전자주식회사 | 조건부실행명령어의 비순차적 수행이 가능한 하드웨어장치 및 그 수행방법 |
US7269716B2 (en) | 2002-07-05 | 2007-09-11 | Fujitsu Limited | Processor to efficiently rename decoded condition codes and instruction control method thereof |
US7508396B2 (en) | 2005-09-28 | 2009-03-24 | Silicon Integrated Systems Corp. | Register-collecting mechanism, method for performing the same and pixel processing system employing the same |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6308260B1 (en) * | 1998-09-17 | 2001-10-23 | International Business Machines Corporation | Mechanism for self-initiated instruction issuing and method therefor |
US6728419B1 (en) * | 2000-02-17 | 2004-04-27 | Xerox Corporation | Multi-tasking multi-threaded image processing system and method for image capture devices |
US6804815B1 (en) * | 2000-09-18 | 2004-10-12 | Cisco Technology, Inc. | Sequence control mechanism for enabling out of order context processing |
US7406587B1 (en) * | 2002-07-31 | 2008-07-29 | Silicon Graphics, Inc. | Method and system for renaming registers in a microprocessor |
US7684401B2 (en) | 2003-07-21 | 2010-03-23 | Qlogic, Corporation | Method and system for using extended fabric features with fibre channel switch elements |
US7930377B2 (en) | 2004-04-23 | 2011-04-19 | Qlogic, Corporation | Method and system for using boot servers in networks |
US7676611B2 (en) * | 2004-10-01 | 2010-03-09 | Qlogic, Corporation | Method and system for processing out of orders frames |
US20070186081A1 (en) * | 2006-02-06 | 2007-08-09 | Shailender Chaudhry | Supporting out-of-order issue in an execute-ahead processor |
US9627038B2 (en) | 2013-03-15 | 2017-04-18 | Intel Corporation | Multiport memory cell having improved density area |
US9582322B2 (en) | 2013-03-15 | 2017-02-28 | Soft Machines Inc. | Method and apparatus to avoid deadlock during instruction scheduling using dynamic port remapping |
US9436476B2 (en) * | 2013-03-15 | 2016-09-06 | Soft Machines Inc. | Method and apparatus for sorting elements in hardware structures |
US20140281116A1 (en) | 2013-03-15 | 2014-09-18 | Soft Machines, Inc. | Method and Apparatus to Speed up the Load Access and Data Return Speed Path Using Early Lower Address Bits |
JP2017516228A (ja) | 2014-05-12 | 2017-06-15 | インテル・コーポレーション | 自己書き換えコードのハードウェアサポートを提供する方法及び装置 |
US10055229B2 (en) * | 2016-01-21 | 2018-08-21 | Arm Limited | Controlling processing of instructions in a processing pipeline |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5487156A (en) * | 1989-12-15 | 1996-01-23 | Popescu; Valeri | Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched |
ATE291755T1 (de) * | 1991-07-08 | 2005-04-15 | Seiko Epson Corp | Risc-prozessor mit erweiterbarer architektur |
EP0636256B1 (en) * | 1992-03-31 | 1997-06-04 | Seiko Epson Corporation | Superscalar risc processor instruction scheduling |
KR940009098A (ko) * | 1992-10-08 | 1994-05-16 | 서승석 | 석탄재를 이용한 건자재 제조방법 |
US5481683A (en) * | 1992-10-30 | 1996-01-02 | International Business Machines Corporation | Super scalar computer architecture using remand and recycled general purpose register to manage out-of-order execution of instructions |
JP3035108B2 (ja) * | 1993-04-02 | 2000-04-17 | 株式会社東芝 | 並列演算処理装置 |
US5974240A (en) * | 1995-06-07 | 1999-10-26 | International Business Machines Corporation | Method and system for buffering condition code data in a data processing system having out-of-order and speculative instruction execution |
US5850542A (en) * | 1995-09-15 | 1998-12-15 | International Business Machines Corporation | Microprocessor instruction hedge-fetching in a multiprediction branch environment |
US5828895A (en) * | 1995-09-20 | 1998-10-27 | International Business Machines Corporation | Methods and system for predecoding instructions in a superscalar data processing system |
US6298435B1 (en) * | 1996-04-16 | 2001-10-02 | International Business Machines Corporation | Methods and apparatus for exploiting virtual buffers to increase instruction parallelism in a pipelined processor |
US5826070A (en) * | 1996-08-30 | 1998-10-20 | International Business Machines Corporation | Apparatus and method for maintaining status flags and condition codes using a renaming technique in an out of order floating point execution unit |
US5805876A (en) * | 1996-09-30 | 1998-09-08 | International Business Machines Corporation | Method and system for reducing average branch resolution time and effective misprediction penalty in a processor |
US5898853A (en) * | 1997-06-25 | 1999-04-27 | Sun Microsystems, Inc. | Apparatus for enforcing true dependencies in an out-of-order processor |
US5838988A (en) * | 1997-06-25 | 1998-11-17 | Sun Microsystems, Inc. | Computer product for precise architectural update in an out-of-order processor |
-
1998
- 1998-02-17 US US09/024,804 patent/US6061785A/en not_active Expired - Fee Related
-
1999
- 1999-02-03 JP JP02668799A patent/JP3600467B2/ja not_active Expired - Fee Related
- 1999-02-10 KR KR1019990004625A patent/KR100343601B1/ko not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7269716B2 (en) | 2002-07-05 | 2007-09-11 | Fujitsu Limited | Processor to efficiently rename decoded condition codes and instruction control method thereof |
KR100628573B1 (ko) | 2004-09-08 | 2006-09-26 | 삼성전자주식회사 | 조건부실행명령어의 비순차적 수행이 가능한 하드웨어장치 및 그 수행방법 |
US7508396B2 (en) | 2005-09-28 | 2009-03-24 | Silicon Integrated Systems Corp. | Register-collecting mechanism, method for performing the same and pixel processing system employing the same |
Also Published As
Publication number | Publication date |
---|---|
KR19990072553A (ko) | 1999-09-27 |
US6061785A (en) | 2000-05-09 |
JP3600467B2 (ja) | 2004-12-15 |
KR100343601B1 (ko) | 2002-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1390835B1 (en) | Microprocessor employing a performance throttling mechanism for power management | |
US5958041A (en) | Latency prediction in a pipelined microarchitecture | |
US6728866B1 (en) | Partitioned issue queue and allocation strategy | |
KR100335745B1 (ko) | 고성능의 추론적인 오정렬 로드 연산 | |
US6684323B2 (en) | Virtual condition codes | |
JP3600467B2 (ja) | アウト・オブ・オーダ論理条件レジスタ処理のためのデータ処理システム及び方法 | |
US6405305B1 (en) | Rapid execution of floating point load control word instructions | |
US8347068B2 (en) | Multi-mode register rename mechanism that augments logical registers by switching a physical register from the register rename buffer when switching between in-order and out-of-order instruction processing in a simultaneous multi-threaded microprocessor | |
US6289437B1 (en) | Data processing system and method for implementing an efficient out-of-order issue mechanism | |
JP2002521761A (ja) | 仮想レジスタ番号を用いて論理レジスタ番号を物理レジスタ番号にマッピングするように構成されるプロセッサ | |
JP2742393B2 (ja) | オペレーションの処理システム及び方法 | |
US6247117B1 (en) | Apparatus and method for using checking instructions in a floating-point execution unit | |
JP3689369B2 (ja) | 2次リオーダ・バッファ・マイクロプロセッサ | |
JP2694124B2 (ja) | 処理システム及び操作方法 | |
US6425072B1 (en) | System for implementing a register free-list by using swap bit to select first or second register tag in retire queue | |
JP2682812B2 (ja) | オペレーションの処理システム及び方法 | |
JP2003515214A (ja) | 計算を狭いオペランドで実施するための方法と装置 | |
JP3160259B2 (ja) | 命令実行の並列性を高める方法および装置 | |
JPH11282678A (ja) | ス―パスカラ・プロセッサでストア命令を処理する方法及び装置 | |
US6408379B1 (en) | Apparatus and method for executing floating-point store instructions in a microprocessor | |
US6907518B1 (en) | Pipelined, superscalar floating point unit having out-of-order execution capability and processor employing the same | |
US6487653B1 (en) | Method and apparatus for denormal load handling | |
KR100523706B1 (ko) | 단일 사이클 파이프라인 스톨을 발생하기 위한 파이프라인 프로세서 시스템 및 방법 | |
JP3182741B2 (ja) | 分散命令完了方法及びプロセッサ | |
US6442677B1 (en) | Apparatus and method for superforwarding load operands in a microprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040916 |
|
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: 20080924 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |