JP3207173B2 - 命令バッファへのロードを行うための方法および装置 - Google Patents
命令バッファへのロードを行うための方法および装置Info
- Publication number
- JP3207173B2 JP3207173B2 JP02418899A JP2418899A JP3207173B2 JP 3207173 B2 JP3207173 B2 JP 3207173B2 JP 02418899 A JP02418899 A JP 02418899A JP 2418899 A JP2418899 A JP 2418899A JP 3207173 B2 JP3207173 B2 JP 3207173B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- buffer
- cache
- instructions
- symbol
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 14
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 238000012544 monitoring process Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 239000000284 extract Substances 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/22—Microcontrol or microprogram arrangements
-
- 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/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/3802—Instruction prefetching
-
- 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
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)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Description
【0001】
【発明の属する技術分野】本発明は、命令バッファへの
ロードを行うための方法および装置に関し、さらに詳細
には、命令の順不同発行が可能なスーパースカラ・プロ
セッサの命令バッファへのロードを行うための方法およ
び装置に関する。
ロードを行うための方法および装置に関し、さらに詳細
には、命令の順不同発行が可能なスーパースカラ・プロ
セッサの命令バッファへのロードを行うための方法およ
び装置に関する。
【0002】
【従来の技術】すべてではなくとも、ほとんどのスーパ
ースカラ・プロセッサは、命令の順不同(out-of-orde
r)発行を実行することができる。命令の順不同発行に
は多くの実現方式があるが、これらすべての方式にとっ
て重要な要素は、プログラム内での命令の出現順序では
なく、データ依存関係の解決と実行資源の利用可能性に
基づいて実際の実行順序を決定する発行キュー(すなわ
ち発行論理回路)である。
ースカラ・プロセッサは、命令の順不同(out-of-orde
r)発行を実行することができる。命令の順不同発行に
は多くの実現方式があるが、これらすべての方式にとっ
て重要な要素は、プログラム内での命令の出現順序では
なく、データ依存関係の解決と実行資源の利用可能性に
基づいて実際の実行順序を決定する発行キュー(すなわ
ち発行論理回路)である。
【0003】それにもかかわらず、命令は通常、プログ
ラム順序に基づいてプロセッサの命令キャッシュ内のキ
ャッシュ・ラインに格納される。さらに、命令キャッシ
ュへのアクセスの各単位は通常、複数の命令である。た
とえば、命令長が4バイトであるプロセッサ・アーキテ
クチャでは、各命令キャッシュ・アクセスは32バイト
幅となるが、これは1回の命令キャッシュ・アクセス当
たり合計8個の命令に等しい。最も単純な命令キャッシ
ュ設計の場合でも、これらの命令は、多重化して8個以
下のスロットを有する命令バッファに入れてから発行キ
ューに送らなければならない。
ラム順序に基づいてプロセッサの命令キャッシュ内のキ
ャッシュ・ラインに格納される。さらに、命令キャッシ
ュへのアクセスの各単位は通常、複数の命令である。た
とえば、命令長が4バイトであるプロセッサ・アーキテ
クチャでは、各命令キャッシュ・アクセスは32バイト
幅となるが、これは1回の命令キャッシュ・アクセス当
たり合計8個の命令に等しい。最も単純な命令キャッシ
ュ設計の場合でも、これらの命令は、多重化して8個以
下のスロットを有する命令バッファに入れてから発行キ
ューに送らなければならない。
【0004】引き続き前述の例を考えると、まず、8個
の命令が命令キャッシュから読み出される。次いで、最
初の命令のフェッチ・アドレスを利用して8−1マルチ
プレクサを制御することにより、たとえば4個のスロッ
トを有する命令バッファに最初の4個の命令をゲート入
力する。また、当該フェッチ・アドレスは、前記8個の
命令から1個のターゲット命令を次の3個の命令と共に
選択して命令バッファにゲート入力するのにも利用す
る。4個の命令はすべて、プログラム順ではなく実行順
に命令バッファにゲート入力される。この構成では、当
該フェッチ・アドレスが(予測済みまたは実際の)分岐
命令の結果である場合、命令バッファにゲート入力すべ
き最初の命令が前記8個の命令のうちのいずれかの命令
となる可能性がある。すなわち、この分岐命令のターゲ
ット・アドレスが当該命令キャッシュ・アクセスの最後
の命令か最後の命令の1つ前の命令を指している場合、
あるいは最後の命令の2つ前の命令を指している場合、
命令バッファ内の4個のスロットがすべて完全に充填さ
れるとは限らず、ディスパッチ帯域幅の損失を招く。し
たがって、ディスパッチ帯域幅またはキャッシュ効率を
犠牲にすることなく、命令バッファへのロードを行うた
めの改良型の方法および装置を提供することが望まし
い。
の命令が命令キャッシュから読み出される。次いで、最
初の命令のフェッチ・アドレスを利用して8−1マルチ
プレクサを制御することにより、たとえば4個のスロッ
トを有する命令バッファに最初の4個の命令をゲート入
力する。また、当該フェッチ・アドレスは、前記8個の
命令から1個のターゲット命令を次の3個の命令と共に
選択して命令バッファにゲート入力するのにも利用す
る。4個の命令はすべて、プログラム順ではなく実行順
に命令バッファにゲート入力される。この構成では、当
該フェッチ・アドレスが(予測済みまたは実際の)分岐
命令の結果である場合、命令バッファにゲート入力すべ
き最初の命令が前記8個の命令のうちのいずれかの命令
となる可能性がある。すなわち、この分岐命令のターゲ
ット・アドレスが当該命令キャッシュ・アクセスの最後
の命令か最後の命令の1つ前の命令を指している場合、
あるいは最後の命令の2つ前の命令を指している場合、
命令バッファ内の4個のスロットがすべて完全に充填さ
れるとは限らず、ディスパッチ帯域幅の損失を招く。し
たがって、ディスパッチ帯域幅またはキャッシュ効率を
犠牲にすることなく、命令バッファへのロードを行うた
めの改良型の方法および装置を提供することが望まし
い。
【0005】
【発明が解決しようとする課題】前述に鑑みて、本発明
の一目的は、データ処理のための改良型の方法および装
置を提供することである。
の一目的は、データ処理のための改良型の方法および装
置を提供することである。
【0006】本発明の他の目的は、命令バッファへのロ
ードを行うための改良型の方法および装置を提供するこ
とである。
ードを行うための改良型の方法および装置を提供するこ
とである。
【0007】本発明の他の目的は、命令の順不同発行が
可能なスーパースカラ・プロセッサの命令バッファへの
ロードを行うための改良型の方法および装置を提供する
ことである。
可能なスーパースカラ・プロセッサの命令バッファへの
ロードを行うための改良型の方法および装置を提供する
ことである。
【0008】
【課題を解決するための手段】本発明の方法および装置
に基づく、命令の順不同発行が可能なプロセッサは、複
数のキャッシュ・ラインを有する命令キャッシュを備え
る。命令キャッシュは、マルチプレクサを介して命令バ
ッファに結合されている。命令バッファは複数のスロッ
トを備えており、これらのスロットには、マルチプレク
サの監視下で命令キャッシュからの複数の命令が順次充
填される。最初の命令が存在するスロットは、フェッチ
・アドレスによって示される。最初の命令が命令バッフ
ァの第1スロット内に存在しない場合、命令キャッシュ
の後続キャッシュ・ラインからの命令で、命令バッファ
内の任意の空きスロットを充填する。
に基づく、命令の順不同発行が可能なプロセッサは、複
数のキャッシュ・ラインを有する命令キャッシュを備え
る。命令キャッシュは、マルチプレクサを介して命令バ
ッファに結合されている。命令バッファは複数のスロッ
トを備えており、これらのスロットには、マルチプレク
サの監視下で命令キャッシュからの複数の命令が順次充
填される。最初の命令が存在するスロットは、フェッチ
・アドレスによって示される。最初の命令が命令バッフ
ァの第1スロット内に存在しない場合、命令キャッシュ
の後続キャッシュ・ラインからの命令で、命令バッファ
内の任意の空きスロットを充填する。
【0009】本発明の目的、特徴、および利点は、以下
の詳細な説明から明らかになろう。
の詳細な説明から明らかになろう。
【0010】
【発明の実施の形態】本発明は、様々なスーパースカラ
・プロセッサ内で実現することができる。例示のため
に、本発明の好ましい実施例は、本出願人が製造するP
owerPCTMファミリ・プロセッサ内で実現され
る。さらに、本発明の好ましい実施例は、縮小命令セッ
ト・コンピュータ(RISC)アーキテクチャに基づく
固定長命令セットに関するものであるが、その原理は任
意のタイプの命令セット・アーキテクチャに応用するこ
とができる。
・プロセッサ内で実現することができる。例示のため
に、本発明の好ましい実施例は、本出願人が製造するP
owerPCTMファミリ・プロセッサ内で実現され
る。さらに、本発明の好ましい実施例は、縮小命令セッ
ト・コンピュータ(RISC)アーキテクチャに基づく
固定長命令セットに関するものであるが、その原理は任
意のタイプの命令セット・アーキテクチャに応用するこ
とができる。
【0011】次に、図1に、本発明の好ましい実施例に
基づく、命令の順不同発行が可能なプロセッサのブロッ
ク図を示す。プロセッサ10内では、バス・インターフ
ェース・ユニット12が、データ・キャッシュ13と命
令キャッシュ14にそれぞれ結合されている。データ・
キャッシュ13と命令キャッシュ14はどちらも高速キ
ャッシュであり、そのためプロセッサ10は、メイン・
メモリ(図示せず)からすでに転送されているデータま
たは命令のサブセットに比較的短時間にアクセスするこ
とができる。命令キャッシュ14はさらに、命令ユニッ
ト11にも結合されており、そのため命令ユニット11
は命令キャッシュ14から命令をフェッチすることがで
きる。
基づく、命令の順不同発行が可能なプロセッサのブロッ
ク図を示す。プロセッサ10内では、バス・インターフ
ェース・ユニット12が、データ・キャッシュ13と命
令キャッシュ14にそれぞれ結合されている。データ・
キャッシュ13と命令キャッシュ14はどちらも高速キ
ャッシュであり、そのためプロセッサ10は、メイン・
メモリ(図示せず)からすでに転送されているデータま
たは命令のサブセットに比較的短時間にアクセスするこ
とができる。命令キャッシュ14はさらに、命令ユニッ
ト11にも結合されており、そのため命令ユニット11
は命令キャッシュ14から命令をフェッチすることがで
きる。
【0012】プロセッサ10は、3個の実行ユニット、
すなわち整数ユニット15、ロード/ストア・ユニット
16、および浮動小数点ユニット17を備える。実行ユ
ニット15〜17はそれぞれ、1つ以上のクラスの命令
を実行することができ、実行ユニット15〜17はすべ
て、各プロセッサ・サイクル中に同時に動作する。実行
が終了すると、実行ユニット15〜17は、命令のタイ
プに応じてデータ結果をリネーム・バッファに格納す
る。その後、実行ユニット15〜17のうちのいずれか
1つが、命令実行が終了したことを完了ユニット20に
知らせる。最後に、リネーム・バッファからの結果デー
タを、それに応じて汎用レジスタ18または浮動小数点
レジスタ19にそれぞれ転送することにより、命令はプ
ログラム順に完了する。
すなわち整数ユニット15、ロード/ストア・ユニット
16、および浮動小数点ユニット17を備える。実行ユ
ニット15〜17はそれぞれ、1つ以上のクラスの命令
を実行することができ、実行ユニット15〜17はすべ
て、各プロセッサ・サイクル中に同時に動作する。実行
が終了すると、実行ユニット15〜17は、命令のタイ
プに応じてデータ結果をリネーム・バッファに格納す
る。その後、実行ユニット15〜17のうちのいずれか
1つが、命令実行が終了したことを完了ユニット20に
知らせる。最後に、リネーム・バッファからの結果デー
タを、それに応じて汎用レジスタ18または浮動小数点
レジスタ19にそれぞれ転送することにより、命令はプ
ログラム順に完了する。
【0013】次に、図2に、図1のプロセッサ10用の
命令の順不同発行機構のブロック図を示す。図示のよう
に、命令フェッチャ21は、命令キャッシュ14(図
1)から命令をフェッチするためのアドレスを生成す
る。次いで、命令キャッシュ14からフェッチした命令
(前述のように、命令キャッシュからは通常、2つ以上
の命令がフェッチされる)を、命令バッファ23にラッ
チする。その後、命令バッファ23内の命令を解析し
て、それぞれに対応するソース・アドレスとターゲット
・アドレス、必要な実行ユニットのタイプ、およびこれ
らの命令を実際に実行するのに必要なその他の情報を決
定する。命令がレジスタ・ターゲットを伴う場合は、そ
のレジスタ・ターゲットをリネームしなければならな
い。また、リネームされたレジスタ・オペランド・ソー
ス名も決定しなければならない。これらの2つの機能
は、レジスタ・リネーム・バッファ24内で実行する。
命令の順不同発行機構のブロック図を示す。図示のよう
に、命令フェッチャ21は、命令キャッシュ14(図
1)から命令をフェッチするためのアドレスを生成す
る。次いで、命令キャッシュ14からフェッチした命令
(前述のように、命令キャッシュからは通常、2つ以上
の命令がフェッチされる)を、命令バッファ23にラッ
チする。その後、命令バッファ23内の命令を解析し
て、それぞれに対応するソース・アドレスとターゲット
・アドレス、必要な実行ユニットのタイプ、およびこれ
らの命令を実際に実行するのに必要なその他の情報を決
定する。命令がレジスタ・ターゲットを伴う場合は、そ
のレジスタ・ターゲットをリネームしなければならな
い。また、リネームされたレジスタ・オペランド・ソー
ス名も決定しなければならない。これらの2つの機能
は、レジスタ・リネーム・バッファ24内で実行する。
【0014】また、命令バッファ23内にある命令が依
存関係を有する可能性もある。たとえば、命令バッファ
23内の命令2が、命令1によって格納されるレジスタ
・ターゲットを利用する場合がある。命令バッファ23
内の命令間のこうした依存関係を命令依存関係解析ユニ
ット25によって解析し、その出力によってレジスタ・
リネーム・バッファ24内のリネーム論理回路の動作を
修正する。これが必要なのは、レジスタ・リネーム・バ
ッファ24が命令バッファ23内の命令に関する情報を
まだ有していないからである。次いで、解析された命令
データと、リネームされたレジスタ情報を含んだテキス
トを発行キュー26に移動させる。発行キュー26は、
実行ユニット28(図1の実行ユニット15〜17)の
うちの対応する実行ユニットからの情報をステータス線
27を介して受け取って、発行キュー26内の、実行に
必要かつ利用可能なすべてのデータを有する命令を識別
する。そうした命令は、「発行準備完了」と見なされ、
現に「空き」になっているいずれかの実行ユニット28
に送ることができる。図2に示した構成要素のうち、命
令キャッシュ14と実行ユニット28を除くすべての構
成要素は、図1の命令ユニット11内に配置することが
好ましい。
存関係を有する可能性もある。たとえば、命令バッファ
23内の命令2が、命令1によって格納されるレジスタ
・ターゲットを利用する場合がある。命令バッファ23
内の命令間のこうした依存関係を命令依存関係解析ユニ
ット25によって解析し、その出力によってレジスタ・
リネーム・バッファ24内のリネーム論理回路の動作を
修正する。これが必要なのは、レジスタ・リネーム・バ
ッファ24が命令バッファ23内の命令に関する情報を
まだ有していないからである。次いで、解析された命令
データと、リネームされたレジスタ情報を含んだテキス
トを発行キュー26に移動させる。発行キュー26は、
実行ユニット28(図1の実行ユニット15〜17)の
うちの対応する実行ユニットからの情報をステータス線
27を介して受け取って、発行キュー26内の、実行に
必要かつ利用可能なすべてのデータを有する命令を識別
する。そうした命令は、「発行準備完了」と見なされ、
現に「空き」になっているいずれかの実行ユニット28
に送ることができる。図2に示した構成要素のうち、命
令キャッシュ14と実行ユニット28を除くすべての構
成要素は、図1の命令ユニット11内に配置することが
好ましい。
【0015】次に、図3に、本発明の好ましい実施例に
基づく、命令バッファ23に命令をロードするための装
置を示す。この実施例では、面密度を最大限にするのに
望ましい正方形の平面形状を維持するために、命令キャ
ッシュ14(図2)を偶数セル・アレイ31と奇数セル
・アレイ32とに分割することが好ましい。偶数セル・
アレイ31と奇数セル・アレイ32は、セル・アレイ出
力レジスタ33および34にそれぞれ結合されている。
出力レジスタ33および34はどちらも、4個の2−1
マルチプレクサ36a〜36dに結合されている。マル
チプレクサ36a〜36dの各々は、命令バッファ23
内の1つのスロットにそれぞれ結合されている。
基づく、命令バッファ23に命令をロードするための装
置を示す。この実施例では、面密度を最大限にするのに
望ましい正方形の平面形状を維持するために、命令キャ
ッシュ14(図2)を偶数セル・アレイ31と奇数セル
・アレイ32とに分割することが好ましい。偶数セル・
アレイ31と奇数セル・アレイ32は、セル・アレイ出
力レジスタ33および34にそれぞれ結合されている。
出力レジスタ33および34はどちらも、4個の2−1
マルチプレクサ36a〜36dに結合されている。マル
チプレクサ36a〜36dの各々は、命令バッファ23
内の1つのスロットにそれぞれ結合されている。
【0016】命令フェッチャ21(図2)によって生成
される命令フェッチ用の実効アドレス(EA)は通常、
EAとEA+アクセス幅の形をとる。すなわち、1回の
命令キャッシュ・アクセスが1命令当たり4バイトを伴
う4命令幅である場合、EAとEA+16が生成される
(バイト・アドレッシング方式を利用することを前提と
して)。この機能用の追加の論理回路は必要ないことを
理解されたい。なぜなら、この機能は、当該アドレスの
解読結果をシフトして命令キャッシュ内の隣接するキャ
ッシュ・ラインを選択することによって容易に実現でき
るからである。読出幅を考慮すると、この増分はキャッ
シュ・ラインのサイズを法(モジュロ)とすることにな
ろう。生成されたアドレスが偶数の場合は、生成された
アドレスを偶数セル・アレイ31に送り、増分したアド
レスを奇数セル・アレイ32用に利用する。一方、生成
されたアドレスが奇数の場合には、生成されたアドレス
を奇数セル・アレイ32に送り、増分したアドレスを偶
数セル・アレイ31用に利用する。このようにして、プ
ログラム順に並んだ4個の命令の2つのグループを命令
キャッシュから読み出し、これらの命令をそれに対応す
る出力レジスタ33および34に入れる。要求された命
令のEAの下位2ビット35(説明中の例では4バイト
の、命令長を法とする)と、開始EAが奇数と偶数のい
ずれであったかについての判定(説明中の例では16バ
イトの、アクセス幅を法とする)を利用してマルチプレ
クサ36a〜36dを制御することにより、複数の命令
ビットを命令バッファ23に導く。
される命令フェッチ用の実効アドレス(EA)は通常、
EAとEA+アクセス幅の形をとる。すなわち、1回の
命令キャッシュ・アクセスが1命令当たり4バイトを伴
う4命令幅である場合、EAとEA+16が生成される
(バイト・アドレッシング方式を利用することを前提と
して)。この機能用の追加の論理回路は必要ないことを
理解されたい。なぜなら、この機能は、当該アドレスの
解読結果をシフトして命令キャッシュ内の隣接するキャ
ッシュ・ラインを選択することによって容易に実現でき
るからである。読出幅を考慮すると、この増分はキャッ
シュ・ラインのサイズを法(モジュロ)とすることにな
ろう。生成されたアドレスが偶数の場合は、生成された
アドレスを偶数セル・アレイ31に送り、増分したアド
レスを奇数セル・アレイ32用に利用する。一方、生成
されたアドレスが奇数の場合には、生成されたアドレス
を奇数セル・アレイ32に送り、増分したアドレスを偶
数セル・アレイ31用に利用する。このようにして、プ
ログラム順に並んだ4個の命令の2つのグループを命令
キャッシュから読み出し、これらの命令をそれに対応す
る出力レジスタ33および34に入れる。要求された命
令のEAの下位2ビット35(説明中の例では4バイト
の、命令長を法とする)と、開始EAが奇数と偶数のい
ずれであったかについての判定(説明中の例では16バ
イトの、アクセス幅を法とする)を利用してマルチプレ
クサ36a〜36dを制御することにより、複数の命令
ビットを命令バッファ23に導く。
【0017】図示のように、命令バッファ23内のスロ
ットには、参照符号I0〜I3を連続して付けた。さら
に、出力レジスタ33および34内のスロットにも、偶
数セル・アレイ31からのキャッシュ・ラインについて
は参照符号E0〜E3を、奇数セル・アレイ32からの
キャッシュ・ラインについては参照符号O0〜O3をそ
れぞれ付けた。要求された命令のEAの下位2ビットが
2進数「00」であり、かつ開始EAが偶数の場合は、
I0=E0、I1=E1、I2=E2、I3=E3とい
う順序で命令バッファ23にロードする(ここで、E0
が要求された命令である)。その結果、これらの命令は
プログラム順に命令バッファ23にロードされることに
なる。しかし、要求された命令のEAの下位2ビットが
2進数「10」であり、かつ開始EAが奇数の場合は、
I0=E0、I1=E1、I2=O2、I3=O3とい
う順序で命令バッファ23にロードする(ここで、O2
が要求された命令である)。その結果、これらの命令は
プログラム順には命令バッファ23にロードされない。
実際には、命令を命令バッファ23にロードすべき正し
いプログラム順序は、I2、I3、I0、I1である。
命令バッファ23がプログラム順にロードされるか否か
に関する種々のケースをすべて、表1にまとめる。
ットには、参照符号I0〜I3を連続して付けた。さら
に、出力レジスタ33および34内のスロットにも、偶
数セル・アレイ31からのキャッシュ・ラインについて
は参照符号E0〜E3を、奇数セル・アレイ32からの
キャッシュ・ラインについては参照符号O0〜O3をそ
れぞれ付けた。要求された命令のEAの下位2ビットが
2進数「00」であり、かつ開始EAが偶数の場合は、
I0=E0、I1=E1、I2=E2、I3=E3とい
う順序で命令バッファ23にロードする(ここで、E0
が要求された命令である)。その結果、これらの命令は
プログラム順に命令バッファ23にロードされることに
なる。しかし、要求された命令のEAの下位2ビットが
2進数「10」であり、かつ開始EAが奇数の場合は、
I0=E0、I1=E1、I2=O2、I3=O3とい
う順序で命令バッファ23にロードする(ここで、O2
が要求された命令である)。その結果、これらの命令は
プログラム順には命令バッファ23にロードされない。
実際には、命令を命令バッファ23にロードすべき正し
いプログラム順序は、I2、I3、I0、I1である。
命令バッファ23がプログラム順にロードされるか否か
に関する種々のケースをすべて、表1にまとめる。
【表1】
【0018】従来技術では、命令依存関係解析ユニット
25(図2)は、命令バッファ23内の命令がすでにプ
ログラム順になっているということを利用するので、命
令間の依存関係を解析するのに1組の比較器しか必要な
い。本発明では、命令バッファ23内の命令は、必ずし
もプログラム順であるとは限らない。命令バッファ23
内の命令がプログラム順でない場合、命令依存関係解析
ユニット25が命令間の依存関係を正しく識別できない
ことになる。したがって、本発明の好ましい実施例で
は、命令バッファ23内の最初の命令を突き止めるため
に、命令依存関係解析ユニット25の助けとしてデコー
ダ37を採用する。図示のように、デコーダ37は4個
のANDゲートを備え、その一部は否定入力を有する。
デコーダ37への入力は、図2の命令フェッチャ21か
ら来ている。この入力は、プログラム順に従った、命令
バッファ23内の最初の命令用のフェッチ・アドレスで
ある。命令バッファ23内のプログラム順に従った最初
の命令(4個のスロットのいずれかにある)のEAの下
位2ビットを、デコーダ37によって解読する。デコー
ダ37の出力は、図4に示す論理回路に入力する。4個
の可能な出力には、参照符号A、B、C、およびDを付
けた。
25(図2)は、命令バッファ23内の命令がすでにプ
ログラム順になっているということを利用するので、命
令間の依存関係を解析するのに1組の比較器しか必要な
い。本発明では、命令バッファ23内の命令は、必ずし
もプログラム順であるとは限らない。命令バッファ23
内の命令がプログラム順でない場合、命令依存関係解析
ユニット25が命令間の依存関係を正しく識別できない
ことになる。したがって、本発明の好ましい実施例で
は、命令バッファ23内の最初の命令を突き止めるため
に、命令依存関係解析ユニット25の助けとしてデコー
ダ37を採用する。図示のように、デコーダ37は4個
のANDゲートを備え、その一部は否定入力を有する。
デコーダ37への入力は、図2の命令フェッチャ21か
ら来ている。この入力は、プログラム順に従った、命令
バッファ23内の最初の命令用のフェッチ・アドレスで
ある。命令バッファ23内のプログラム順に従った最初
の命令(4個のスロットのいずれかにある)のEAの下
位2ビットを、デコーダ37によって解読する。デコー
ダ37の出力は、図4に示す論理回路に入力する。4個
の可能な出力には、参照符号A、B、C、およびDを付
けた。
【0019】次に、図4に、本発明の好ましい実施例に
基づく、命令バッファ23内の命令間の依存関係を解析
するのに必要な論理回路を示す。この論理回路は、命令
依存関係解析ユニット25の内部に組み込むことが好ま
しい。この論理回路を例示するために、RISC命令セ
ットを考えてみる。このRISC命令セットは、各命令
が命令コード、ソース・レジスタA、ソース・レジスタ
B、ターゲット・レジスタ、およびその他の形をとる。
これらの要素は、命令41〜44において、それぞれO
P、RA、RB、RT、およびOと省略して示されてい
る。
基づく、命令バッファ23内の命令間の依存関係を解析
するのに必要な論理回路を示す。この論理回路は、命令
依存関係解析ユニット25の内部に組み込むことが好ま
しい。この論理回路を例示するために、RISC命令セ
ットを考えてみる。このRISC命令セットは、各命令
が命令コード、ソース・レジスタA、ソース・レジスタ
B、ターゲット・レジスタ、およびその他の形をとる。
これらの要素は、命令41〜44において、それぞれO
P、RA、RB、RT、およびOと省略して示されてい
る。
【0020】図示のように、例示された命令バッファ2
3は、依存関係を解析しなければならない4個の命令4
1〜44を保持しており、その解析結果はレジスタ・リ
ネーム・バッファ24(図2)が利用する。この依存関
係解析を部分的に実行する比較器46のアレイは、命令
41〜44から対応するフィールドを取り出し、それぞ
れのソース・レジスタ番号およびターゲット・レジスタ
番号を比較する。従来技術とは違い、本発明のレジスタ
依存関係解析では、命令バッファ23内の命令41〜4
4がプログラム順ではない可能性があることを考慮に入
れなければならない。たとえば、解析中の命令43の左
側に位置する命令42は、実際には(プログラム順で
は)、命令43に論理的に先行する可能性もあるし、命
令43に論理的に後続する可能性もある。したがって、
命令43のターゲット・オペランド・フィールドRT2
が命令42のRB1などのソース・オペランド・フィー
ルドのいずれかに等しく、そのことが比較器46のいず
れか(たとえば、左側にある比較器46のうち、上から
5番目の比較器46)の出力によって真と示されている
場合、命令42が命令43に論理的に後続するときに
は、命令42のRB1のリネーム・タグの値は命令43
のRT2のターゲット・レジスタ・タグの値となるはず
である。そうでない場合、命令43が命令42に論理的
に後続するときには、別の値を利用する必要があり、そ
うした値はレジスタ・リネーム論理回路24によって決
定される。
3は、依存関係を解析しなければならない4個の命令4
1〜44を保持しており、その解析結果はレジスタ・リ
ネーム・バッファ24(図2)が利用する。この依存関
係解析を部分的に実行する比較器46のアレイは、命令
41〜44から対応するフィールドを取り出し、それぞ
れのソース・レジスタ番号およびターゲット・レジスタ
番号を比較する。従来技術とは違い、本発明のレジスタ
依存関係解析では、命令バッファ23内の命令41〜4
4がプログラム順ではない可能性があることを考慮に入
れなければならない。たとえば、解析中の命令43の左
側に位置する命令42は、実際には(プログラム順で
は)、命令43に論理的に先行する可能性もあるし、命
令43に論理的に後続する可能性もある。したがって、
命令43のターゲット・オペランド・フィールドRT2
が命令42のRB1などのソース・オペランド・フィー
ルドのいずれかに等しく、そのことが比較器46のいず
れか(たとえば、左側にある比較器46のうち、上から
5番目の比較器46)の出力によって真と示されている
場合、命令42が命令43に論理的に後続するときに
は、命令42のRB1のリネーム・タグの値は命令43
のRT2のターゲット・レジスタ・タグの値となるはず
である。そうでない場合、命令43が命令42に論理的
に後続するときには、別の値を利用する必要があり、そ
うした値はレジスタ・リネーム論理回路24によって決
定される。
【0021】デコーダ37(図3)によって生成された
4個の出力信号A〜Dは、各命令4 1〜44内のターゲ
ット・レジスタ番号と、当該ターゲット・レジスタを利
用する可能性のある他の命令内のすべてのソース・レジ
スタ番号とを比較する各比較器46の出力をゲートする
のに利用する。一致するものがあり、かつ当該ターゲッ
ト・レジスタ番号を保持する命令が(当該ターゲット・
レジスタ番号と一致する)ソース・レジスタ番号を保持
する他の命令に論理的に先行する場合、後者の命令のソ
ース・レジスタ・タグを前者の命令内のターゲット・レ
ジスタのリネームされたレジスタ・タグに置き換えなけ
ればならない。各ANDゲート47は、1個の比較器4
6と、デコーダ37(図3)からの少なくとも1個の出
力信号とに接続されている。各出力信号の間の符号
「+」は論理OR演算を表す。各ANDゲート47は、
後者の命令のソース・オペランドが利用される前(プロ
グラム順において)に前者の命令のターゲット・レジス
タ番号との比較結果が一致した場合にのみ、可能な比較
結果一致信号をゲートする。たとえば、信号45aは、
フェッチ・アドレスの下位ビットが「11」である場
合、すなわち命令43が(プログラム順では)命令44
に論理的に後続する場合、命令43のソース・レジスタ
・タグRB2の代わりに命令44内のターゲット・レジ
スタのリネームされたレジスタ・タグを利用するよう、
レジスタ・リネーム・バッファ24に通知するのに利用
される。信号45b〜45nも、同様の方法で生成する
ことができる。
4個の出力信号A〜Dは、各命令4 1〜44内のターゲ
ット・レジスタ番号と、当該ターゲット・レジスタを利
用する可能性のある他の命令内のすべてのソース・レジ
スタ番号とを比較する各比較器46の出力をゲートする
のに利用する。一致するものがあり、かつ当該ターゲッ
ト・レジスタ番号を保持する命令が(当該ターゲット・
レジスタ番号と一致する)ソース・レジスタ番号を保持
する他の命令に論理的に先行する場合、後者の命令のソ
ース・レジスタ・タグを前者の命令内のターゲット・レ
ジスタのリネームされたレジスタ・タグに置き換えなけ
ればならない。各ANDゲート47は、1個の比較器4
6と、デコーダ37(図3)からの少なくとも1個の出
力信号とに接続されている。各出力信号の間の符号
「+」は論理OR演算を表す。各ANDゲート47は、
後者の命令のソース・オペランドが利用される前(プロ
グラム順において)に前者の命令のターゲット・レジス
タ番号との比較結果が一致した場合にのみ、可能な比較
結果一致信号をゲートする。たとえば、信号45aは、
フェッチ・アドレスの下位ビットが「11」である場
合、すなわち命令43が(プログラム順では)命令44
に論理的に後続する場合、命令43のソース・レジスタ
・タグRB2の代わりに命令44内のターゲット・レジ
スタのリネームされたレジスタ・タグを利用するよう、
レジスタ・リネーム・バッファ24に通知するのに利用
される。信号45b〜45nも、同様の方法で生成する
ことができる。
【0022】その後、命令バッファ23内の、リネーム
されたレジスタ・タグを有する命令を、任意の順序で発
行キュー26(図2)に転送することができる。発行キ
ュー26は、リネームされたレジスタ・タグのみを利用
して、命令がいつでも発行できる状態にあるかどうかを
判定するが、前述のように、これらのタグは命令バッフ
ァ23内の命令の正しい順序を反映するよう適宜修正さ
れている。
されたレジスタ・タグを有する命令を、任意の順序で発
行キュー26(図2)に転送することができる。発行キ
ュー26は、リネームされたレジスタ・タグのみを利用
して、命令がいつでも発行できる状態にあるかどうかを
判定するが、前述のように、これらのタグは命令バッフ
ァ23内の命令の正しい順序を反映するよう適宜修正さ
れている。
【0023】前述のように、本発明は、命令の順不同発
行が可能なスーパースカラ・プロセッサ内の命令バッフ
ァへのロードを行うための改良型の方法および装置を提
供する。本発明の特徴は、命令がプログラム順でない可
能性があることを踏まえて、命令依存関係解析ユニット
が命令バッファ内の命令を解析できるようにしたことに
ある。本発明の特徴はまた、命令の順不同発行が可能な
すべてのスーパースカラ・プロセッサが一般に備える発
行キューとその他の順不同命令順序制御ハードウェアを
利用して、命令バッファ内の命令が正しいプログラム順
になっていない場合でも命令の順序を解決することにも
ある。
行が可能なスーパースカラ・プロセッサ内の命令バッフ
ァへのロードを行うための改良型の方法および装置を提
供する。本発明の特徴は、命令がプログラム順でない可
能性があることを踏まえて、命令依存関係解析ユニット
が命令バッファ内の命令を解析できるようにしたことに
ある。本発明の特徴はまた、命令の順不同発行が可能な
すべてのスーパースカラ・プロセッサが一般に備える発
行キューとその他の順不同命令順序制御ハードウェアを
利用して、命令バッファ内の命令が正しいプログラム順
になっていない場合でも命令の順序を解決することにも
ある。
【0024】プログラム順以外の順序で命令バッファ内
に命令を格納できるようにすることにより、命令キャッ
シュの有効帯域幅が高まり、しかも命令キャッシュと命
令バッファとの間の多重化の量のみならず、命令バッフ
ァと発行キューとの間の多重化の量も減少する。本発明
に適した発行キューは、「発行準備完了」の判定が解決
済みのデータ依存関係と実行ユニットの利用可能性のみ
に基づいて行われる限り、どんなタイプのものでもよ
い。
に命令を格納できるようにすることにより、命令キャッ
シュの有効帯域幅が高まり、しかも命令キャッシュと命
令バッファとの間の多重化の量のみならず、命令バッフ
ァと発行キューとの間の多重化の量も減少する。本発明
に適した発行キューは、「発行準備完了」の判定が解決
済みのデータ依存関係と実行ユニットの利用可能性のみ
に基づいて行われる限り、どんなタイプのものでもよ
い。
【図1】本発明の好ましい実施例に基づく、命令の順不
同発行が可能なプロセッサのブロック図である。
同発行が可能なプロセッサのブロック図である。
【図2】図1のプロセッサ用の命令の順不同発行機構の
ブロック図である。
ブロック図である。
【図3】本発明の好ましい実施例に基づく、命令バッフ
ァに命令をロードするための装置を示す図である。
ァに命令をロードするための装置を示す図である。
【図4】本発明の好ましい実施例に基づく、命令バッフ
ァ内の命令間の依存関係を解析するのに必要な論理回路
を示す図である。
ァ内の命令間の依存関係を解析するのに必要な論理回路
を示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョエル・エイブラハム・シルバーマン アメリカ合衆国10589 ニューヨーク州 ソマーズ ミッチェル・ロード 134 (56)参考文献 特開 平7−121371(JP,A) 特開 平9−114733(JP,A) 特開 平5−20068(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 G06F 9/38
Claims (10)
- 【請求項1】命令の順不同発行が可能なプロセッサ(1
0)の命令バッファ(23)へのロードを行うための方
法であって、前記プロセッサが複数のキャッシュ・ライ
ンを有する命令キャッシュ(31、32)を備え、 前記命令キャッシュをマルチプレクサ(36a〜36
d)を介して命令バッファに結合する段階を含み、前記
命令バッファが複数のスロット(I0〜I3)を備え、 前記マルチプレクサの監視のもとに、前記命令バッファ
の前記複数のスロットを前記命令キャッシュからの複数
の命令で順次充填する段階をさらに含み、プログラム順
序に従った最初の命令が存在する1つのスロットがフェ
ッチ・アドレス(35)によって示され、 その後、前記命令バッファの第1スロット(I0)内に
前記最初の命令が存在しない場合は、前記命令バッファ
のすべての空きスロットを前記命令キャッシュの後続キ
ャッシュ・ラインからの複数の命令で充填する段階をさ
らに含み、前記空きスロットの少なくとも1つが前記最
初の命令が存在する前記1つのスロットよりも前に位置
する前記方法。 - 【請求項2】前記命令バッファ内に存在する命令の実際
のプログラム順序を命令依存関係解析ユニット(25)
によって決定する段階をさらに含む請求項1記載の方
法。 - 【請求項3】前記最初の命令が存在する前記命令バッフ
ァのスロットを示す信号を前記命令依存関係解析ユニッ
トによって受け取る段階をさらに含む請求項2記載の方
法。 - 【請求項4】前記フェッチ・アドレスを入力として有す
るデコーダ(37)によって前記信号を生成する段階を
さらに含む請求項3記載の方法。 - 【請求項5】前記デコーダが複数のANDゲートを有す
る請求項4記載の方法。 - 【請求項6】命令の順不同発行が可能なプロセッサ(1
0)の命令バッファ(23)へのロードを行うための装
置であって、前記プロセッサが複数のキャッシュ・ライ
ンを有する命令キャッシュ(31、32)を備え、 前記命令キャッシュと前記命令バッファとを結合するマ
ルチプレクサ(36a〜36d)を含み、前記命令バッ
ファが複数のスロット(I0〜I3)を備え、プログラ
ム順序に従った最初の命令が存在する1つのスロットが
フェッチ・アドレス(35)によって示され、 前 記命令バッファの第1スロット(I0)内に前記最初
の命令が存在しない場合は、前記命令バッファのすべて
の空きスロットを前記命令キャッシュの後続キャッシュ
・ラインからの複数の命令で順次充填する充填手段をさ
らに含み、前記空きスロットの少なくとも1つが前記最
初の命令が存在する前記1つのスロットよりも前に位置
する前記装置。 - 【請求項7】前記命令バッファ内に存在する命令の実際
のプログラム順序を決定するための命令依存関係解析ユ
ニット(25)をさらに備える、請求項6に記載の装
置。 - 【請求項8】前記命令依存関係解析ユニットが前記最初
の命令が存在する前記命令バッファのスロットを示す信
号を受け取る請求項7記載の装置。 - 【請求項9】前記信号が前記フェッチ・アドレスを入力
として有するデコーダ(37)によって生成される請求
項8記載の装置。 - 【請求項10】前記デコーダが複数のANDゲートを有
する請求項9記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/020631 | 1998-02-09 | ||
US09/020,631 US6065110A (en) | 1998-02-09 | 1998-02-09 | Method and apparatus for loading an instruction buffer of a processor capable of out-of-order instruction issue |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11316681A JPH11316681A (ja) | 1999-11-16 |
JP3207173B2 true JP3207173B2 (ja) | 2001-09-10 |
Family
ID=21799712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02418899A Expired - Fee Related JP3207173B2 (ja) | 1998-02-09 | 1999-02-01 | 命令バッファへのロードを行うための方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6065110A (ja) |
JP (1) | JP3207173B2 (ja) |
KR (1) | KR100335747B1 (ja) |
CN (1) | CN1152301C (ja) |
TW (1) | TW520482B (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5604909A (en) * | 1993-12-15 | 1997-02-18 | Silicon Graphics Computer Systems, Inc. | Apparatus for processing instructions in a computing system |
JP2002318687A (ja) * | 2001-04-18 | 2002-10-31 | Fujitsu Ltd | 情報処理装置及び計算機システム |
US6740942B2 (en) * | 2001-06-15 | 2004-05-25 | Hrl Laboratories, Llc. | Permanently on transistor implemented using a double polysilicon layer CMOS process with buried contact |
JP3655908B2 (ja) * | 2003-02-26 | 2005-06-02 | 株式会社東芝 | 命令ロールバックプロセッサシステム、命令ロールバック方法及び命令ロールバックプログラム |
TWI232403B (en) * | 2003-04-23 | 2005-05-11 | Ip First Llc | Apparatus and method for buffering instructions and late-generated related information using history of previous load/shifts |
US7725690B2 (en) * | 2007-02-13 | 2010-05-25 | Advanced Micro Devices, Inc. | Distributed dispatch with concurrent, out-of-order dispatch |
US8140830B2 (en) * | 2008-05-22 | 2012-03-20 | International Business Machines Corporation | Structural power reduction in multithreaded processor |
US9158541B2 (en) * | 2010-11-03 | 2015-10-13 | Apple Inc. | Register renamer that handles multiple register sizes aliased to the same storage locations |
US8909866B2 (en) * | 2012-11-06 | 2014-12-09 | Advanced Micro Devices, Inc. | Prefetching to a cache based on buffer fullness |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3771141A (en) * | 1971-11-08 | 1973-11-06 | Culler Harrison Inc | Data processor with parallel operations per instruction |
US4760518A (en) * | 1986-02-28 | 1988-07-26 | Scientific Computer Systems Corporation | Bi-directional databus system for supporting superposition of vector and scalar operations in a computer |
DE3802025C1 (ja) * | 1988-01-25 | 1989-07-20 | Otto 7750 Konstanz De Mueller | |
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 |
US5630157A (en) * | 1991-06-13 | 1997-05-13 | International Business Machines Corporation | Computer organization for multiple and out-of-order execution of condition code testing and setting instructions |
EP1526446A3 (en) * | 1991-07-08 | 2007-04-04 | Seiko Epson Corporation | Extensible RISC microprocessor architecture |
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 |
DE69330889T2 (de) * | 1992-12-31 | 2002-03-28 | Seiko Epson Corp., Tokio/Tokyo | System und Verfahren zur Änderung der Namen von Registern |
US5467473A (en) * | 1993-01-08 | 1995-11-14 | International Business Machines Corporation | Out of order instruction load and store comparison |
JPH07121371A (ja) * | 1993-10-25 | 1995-05-12 | Nkk Corp | 複数命令同時取込み機構 |
DE69429061T2 (de) * | 1993-10-29 | 2002-07-18 | Advanced Micro Devices, Inc. | Superskalarmikroprozessoren |
US5586278A (en) * | 1994-03-01 | 1996-12-17 | Intel Corporation | Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor |
JPH09114733A (ja) * | 1995-10-17 | 1997-05-02 | Nec Corp | キャッシュ記憶装置における非整列データ転送機構 |
US5761491A (en) * | 1996-04-15 | 1998-06-02 | Motorola Inc. | Data processing system and method for storing and restoring a stack pointer |
-
1998
- 1998-02-09 US US09/020,631 patent/US6065110A/en not_active Expired - Fee Related
- 1998-06-18 TW TW087109788A patent/TW520482B/zh not_active IP Right Cessation
-
1999
- 1999-01-15 KR KR1019990001063A patent/KR100335747B1/ko not_active IP Right Cessation
- 1999-01-28 CN CNB991016106A patent/CN1152301C/zh not_active Expired - Fee Related
- 1999-02-01 JP JP02418899A patent/JP3207173B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR100335747B1 (ko) | 2002-05-08 |
JPH11316681A (ja) | 1999-11-16 |
TW520482B (en) | 2003-02-11 |
CN1226024A (zh) | 1999-08-18 |
US6065110A (en) | 2000-05-16 |
KR19990072269A (ko) | 1999-09-27 |
CN1152301C (zh) | 2004-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6247106B1 (en) | Processor configured to map logical register numbers to physical register numbers using virtual register numbers | |
US6553482B1 (en) | Universal dependency vector/queue entry | |
US6308259B1 (en) | Instruction queue evaluating dependency vector in portions during different clock phases | |
KR100626858B1 (ko) | 단일 적재 워드를 형성하기 위해서 별개의 저장 버퍼 엔트리들로부터의 개별 바이트들의 전송을 적재하는 저장 시스템 | |
US6212622B1 (en) | Mechanism for load block on store address generation | |
US6119223A (en) | Map unit having rapid misprediction recovery | |
US5867684A (en) | Method and processor that permit concurrent execution of a store multiple instruction and a dependent instruction | |
US6449710B1 (en) | Stitching parcels | |
JP3919802B2 (ja) | プロセッサ、およびプロセッサにおいて命令演算をスケジューリングするための方法 | |
CN100495325C (zh) | 用于按需临时寄存器重命名的方法和系统 | |
US5892963A (en) | System and method for assigning tags to instructions to control instruction execution | |
KR100346515B1 (ko) | 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일 | |
US6343337B1 (en) | Wide shifting in the vector permute unit | |
US6463524B1 (en) | Superscalar processor and method for incrementally issuing store instructions | |
KR100309309B1 (ko) | 단일클록사이클동안슈퍼스칼라프로세서에서복수의저장인스트럭션완료를용이하게하는방법및시스템 | |
JP3207173B2 (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 | |
US6178500B1 (en) | Vector packing and saturation detection in the vector permute unit | |
JP3779012B2 (ja) | 分岐による中断のないパイプライン化されたマイクロプロセッサ及びその動作方法 | |
JPH03233630A (ja) | 情報処理装置 | |
US6442675B1 (en) | Compressed string and multiple generation engine | |
US5850563A (en) | Processor and method for out-of-order completion of floating-point operations during load/store multiple operations | |
US5875316A (en) | Method for handling complex instructions in an out-of-order processor | |
US6430678B1 (en) | Scoreboard mechanism for serialized string operations utilizing the XER |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |