JP3096429B2 - 複数の命令の非整順完了をサポートする方法およびスーパースカラ・マイクロプロセッサ - Google Patents
複数の命令の非整順完了をサポートする方法およびスーパースカラ・マイクロプロセッサInfo
- Publication number
- JP3096429B2 JP3096429B2 JP08221086A JP22108696A JP3096429B2 JP 3096429 B2 JP3096429 B2 JP 3096429B2 JP 08221086 A JP08221086 A JP 08221086A JP 22108696 A JP22108696 A JP 22108696A JP 3096429 B2 JP3096429 B2 JP 3096429B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- floating
- register
- point
- execution
- 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
- 230000015654 memory Effects 0.000 claims description 27
- 230000015572 biosynthetic process Effects 0.000 claims 1
- 230000001419 dependent effect Effects 0.000 claims 1
- 230000009977 dual effect Effects 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 27
- 238000010586 diagram Methods 0.000 description 6
- 101100236201 Arabidopsis thaliana LSU2 gene Proteins 0.000 description 1
- 101001059802 Homo sapiens N-formyl peptide receptor 3 Proteins 0.000 description 1
- 101001009517 Homo sapiens Probable G-protein coupled receptor 32 Proteins 0.000 description 1
- 102100028130 N-formyl peptide receptor 3 Human genes 0.000 description 1
- 102100030321 Probable G-protein coupled receptor 32 Human genes 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 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
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
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)
Description
【0001】
【発明の属する技術分野】本発明は、全般的にはマイク
ロプロセッサで命令を実行する方法およびシステムに関
し、具体的には、ロード多重またはストア多重命令の実
行中に浮動小数点命令を実行し、完了するための方法お
よび装置に関する。
ロプロセッサで命令を実行する方法およびシステムに関
し、具体的には、ロード多重またはストア多重命令の実
行中に浮動小数点命令を実行し、完了するための方法お
よび装置に関する。
【0002】
【従来の技術】現代のマイクロプロセッサでは、多重レ
ジスタ・ロード/ストア命令またはロード/ストア多重
命令によって、マイクロプロセッサの汎用レジスタ(G
PR)と、キャッシュやRAMなどのメモリとの間でデ
ータのブロックを移動する。従来の技術では、多重レジ
スタ命令でマイクロプロセッサ内に含まれる汎用レジス
タのすべて(通常は32個)が変更または使用されるの
で、多重レジスタ・ロード/ストア命令は、後続の命令
との完全な直列化を必要とする。複数のレジスタの読み
書きを実行するには複数のサイクルが必要なので、浮動
小数点演算を含む、命令シーケンス内の後続命令は、非
整順(out-of-order)実行によるレジスタ・データの破
壊を防ぐために、多重レジスタ命令が完了するまで命令
バッファに保持される。このようなシステムでは、多重
レジスタ命令が完了するまで命令パイプラインを停止さ
せることによって、実質的にマイクロプロセッサの性能
が制限される。
ジスタ・ロード/ストア命令またはロード/ストア多重
命令によって、マイクロプロセッサの汎用レジスタ(G
PR)と、キャッシュやRAMなどのメモリとの間でデ
ータのブロックを移動する。従来の技術では、多重レジ
スタ命令でマイクロプロセッサ内に含まれる汎用レジス
タのすべて(通常は32個)が変更または使用されるの
で、多重レジスタ・ロード/ストア命令は、後続の命令
との完全な直列化を必要とする。複数のレジスタの読み
書きを実行するには複数のサイクルが必要なので、浮動
小数点演算を含む、命令シーケンス内の後続命令は、非
整順(out-of-order)実行によるレジスタ・データの破
壊を防ぐために、多重レジスタ命令が完了するまで命令
バッファに保持される。このようなシステムでは、多重
レジスタ命令が完了するまで命令パイプラインを停止さ
せることによって、実質的にマイクロプロセッサの性能
が制限される。
【0003】
【発明が解決しようとする課題】多重レジスタ命令を実
行している間に後続の浮動小数点命令の実行を開始で
き、おそらくは実行を完了できるようにする方法および
システムが必要である。このような機構があれば、複数
のレジスタを利用する命令を後続の浮動小数点命令と並
列に実行できるので、スーパースカラ設計を有するマイ
クロプロセッサの性能がかなり改善されるはずである。
行している間に後続の浮動小数点命令の実行を開始で
き、おそらくは実行を完了できるようにする方法および
システムが必要である。このような機構があれば、複数
のレジスタを利用する命令を後続の浮動小数点命令と並
列に実行できるので、スーパースカラ設計を有するマイ
クロプロセッサの性能がかなり改善されるはずである。
【0004】
【課題を解決するための手段】本発明によれば、先行す
るロード多重命令またはストア多重命令の実行が終了す
る前に浮動小数点命令を早期に完了するためのスーパー
スカラ・マイクロプロセッサ内の方法および装置が提供
される。このマイクロプロセッサのロード/ストア・ユ
ニットは、データを汎用レジスタにロードまたは汎用レ
ジスタからメモリにストアし、このマイクロプロセッサ
のディスパッチ・ユニットは、ロード/ストア・ユニッ
トと浮動小数点実行ユニットを含む複数の実行ユニット
に命令をディスパッチする。この方法は、多重レジスタ
命令をディスパッチ・ユニットからロード/ストア・ユ
ニットにディスパッチして、多重レジスタ命令の実行を
開始することを含んでいる。なお、多重レジスタ命令
は、ストア多重命令やロード多重命令のように、所定数
の汎用レジスタ(たとえば、32個の汎用レジスタ)の
うちの連続する2つ以上の汎用レジスタからメモリへデ
ータを順次にストアしたり、またはメモリからのデータ
を連続する2つ以上の汎用レジスタに順次にロードする
ための命令である。さらに、ロード/ストア・ユニット
内で多重レジスタ命令が実行を終了する前に、ディスパ
ッチ・ユニットは、所定数の浮動小数点レジスタのうち
の1つ以上の浮動小数点レジスタに格納されたソース・
オペランド・データに依存する浮動小数点命令を浮動小
数点ユニットにディスパッチし、ディスパッチされた浮
動小数点命令は、多重レジスタ命令が実行を終了する前
に実行を完了する。
るロード多重命令またはストア多重命令の実行が終了す
る前に浮動小数点命令を早期に完了するためのスーパー
スカラ・マイクロプロセッサ内の方法および装置が提供
される。このマイクロプロセッサのロード/ストア・ユ
ニットは、データを汎用レジスタにロードまたは汎用レ
ジスタからメモリにストアし、このマイクロプロセッサ
のディスパッチ・ユニットは、ロード/ストア・ユニッ
トと浮動小数点実行ユニットを含む複数の実行ユニット
に命令をディスパッチする。この方法は、多重レジスタ
命令をディスパッチ・ユニットからロード/ストア・ユ
ニットにディスパッチして、多重レジスタ命令の実行を
開始することを含んでいる。なお、多重レジスタ命令
は、ストア多重命令やロード多重命令のように、所定数
の汎用レジスタ(たとえば、32個の汎用レジスタ)の
うちの連続する2つ以上の汎用レジスタからメモリへデ
ータを順次にストアしたり、またはメモリからのデータ
を連続する2つ以上の汎用レジスタに順次にロードする
ための命令である。さらに、ロード/ストア・ユニット
内で多重レジスタ命令が実行を終了する前に、ディスパ
ッチ・ユニットは、所定数の浮動小数点レジスタのうち
の1つ以上の浮動小数点レジスタに格納されたソース・
オペランド・データに依存する浮動小数点命令を浮動小
数点ユニットにディスパッチし、ディスパッチされた浮
動小数点命令は、多重レジスタ命令が実行を終了する前
に実行を完了する。
【0005】本発明の上記ならびに他の目的、特徴およ
び長所は、以下の詳細な説明で明らかになる。
び長所は、以下の詳細な説明で明らかになる。
【0006】
【発明の実施の形態】図1を参照すると、本発明の好ま
しい実施例に従ったプロセッサ10のブロック図が示さ
れている。図示の例では、プロセッサ10は、単一の集
積回路スーパースカラ・マイクロプロセッサから成る。
したがって、後述するように、プロセッサ10は、種々
の実行ユニット、レジスタ、バッファ、メモリおよび他
の機能ユニットから成り、これらのすべてが集積回路に
よって形成される。本発明の好ましい実施例では、プロ
セッサ10は、縮小命令セット・コンピュータ(RIS
C)技術によって動作する、IBM社製造のPower
PC(商標)系列のマイクロプロセッサのうちの1つに
相当する。
しい実施例に従ったプロセッサ10のブロック図が示さ
れている。図示の例では、プロセッサ10は、単一の集
積回路スーパースカラ・マイクロプロセッサから成る。
したがって、後述するように、プロセッサ10は、種々
の実行ユニット、レジスタ、バッファ、メモリおよび他
の機能ユニットから成り、これらのすべてが集積回路に
よって形成される。本発明の好ましい実施例では、プロ
セッサ10は、縮小命令セット・コンピュータ(RIS
C)技術によって動作する、IBM社製造のPower
PC(商標)系列のマイクロプロセッサのうちの1つに
相当する。
【0007】プロセッサ10は、そのバス・インターフ
ェース・ユニット(BIU)12を介してシステム・バ
ス11に結合される。BIU12は、主記憶(図示せ
ず)などのシステム・バス11に結合された他のデバイ
スとプロセッサ10との間の情報の転送を制御する。プ
ロセッサ10、システム・バス11およびシステム・バ
ス11に結合された他のデバイスが、ホスト・データ処
理システムを形成する。BIU12は、プロセッサ10
内の命令キャッシュ14およびデータ・キャッシュ16
に接続される。命令キャッシュ14やデータ・キャッシ
ュ16などの高速キャッシュがあると、以前に主記憶か
ら高速キャッシュに転送されたデータまたは命令のサブ
セットをプロセッサ10が比較的高速にアクセスできる
ようになり、したがって、ホスト・データ処理システム
の動作速度が向上する。命令キャッシュ14は、さら
に、シーケンシャル・フェッチャ17に結合され、この
シーケンシャル・フェッチャ17は、実行のために各サ
イクルの間に命令キャッシュ14から命令を取り出す。
シーケンシャル・フェッチャ17は、実行のために分岐
命令を分岐処理ユニット(BPU)18に転送し、ま
た、プロセッサ10内の他の実行回路によって実行され
る前の一時的な記憶のために順次命令を命令キュー19
に転送する。
ェース・ユニット(BIU)12を介してシステム・バ
ス11に結合される。BIU12は、主記憶(図示せ
ず)などのシステム・バス11に結合された他のデバイ
スとプロセッサ10との間の情報の転送を制御する。プ
ロセッサ10、システム・バス11およびシステム・バ
ス11に結合された他のデバイスが、ホスト・データ処
理システムを形成する。BIU12は、プロセッサ10
内の命令キャッシュ14およびデータ・キャッシュ16
に接続される。命令キャッシュ14やデータ・キャッシ
ュ16などの高速キャッシュがあると、以前に主記憶か
ら高速キャッシュに転送されたデータまたは命令のサブ
セットをプロセッサ10が比較的高速にアクセスできる
ようになり、したがって、ホスト・データ処理システム
の動作速度が向上する。命令キャッシュ14は、さら
に、シーケンシャル・フェッチャ17に結合され、この
シーケンシャル・フェッチャ17は、実行のために各サ
イクルの間に命令キャッシュ14から命令を取り出す。
シーケンシャル・フェッチャ17は、実行のために分岐
命令を分岐処理ユニット(BPU)18に転送し、ま
た、プロセッサ10内の他の実行回路によって実行され
る前の一時的な記憶のために順次命令を命令キュー19
に転送する。
【0008】図示の実施例では、BPU18の他に、プ
ロセッサ10は、固定小数点ユニット(FXU)22、
ロード/ストア・ユニット(LSU)28および浮動小
数点ユニット(FPU)30を含む、複数の実行ユニッ
トを備えている。周知のように、FXU22、LSU2
8およびFPU30の各々は、各プロセッサ・サイクル
中に特定クラスの順次命令に属する1つ以上の命令を実
行する。たとえば、FXU22は、指定された汎用レジ
スタ(GPR)32またはGPRリネーム・バッファ3
3から受け取るソース・オペランドを利用して、加算、
減算、AND、OR、XORなどの固定小数点演算を実
行する。固定小数点命令の実行に続いて、FXU22
は、その命令の結果データをGPRリネーム・バッファ
33に出力し、GPRリネーム・バッファ33は、当該
バッファから1つ以上のGPR32へ結果データを転送
することによって命令が完了するまで、結果データの一
時記憶となる。逆に、FPU30は、浮動小数点レジス
タ(FPR)36またはFPRリネーム・バッファ37
から受け取るソース・オペランドに対して、浮動小数点
の乗算や除算などの浮動小数点演算を実行する。FPU
30は、浮動小数点命令の実行から生じるデータを、選
択されたFPRリネーム・バッファ37に出力し、この
FPRリネーム・バッファ37は、当該FPRリネーム
・バッファ37から選択されたFPR36へ結果データ
を転送することによって命令が完了するまで、結果デー
タを一時的に記憶する。LSU28は、特定の浮動小数
点命令および固定小数点命令を実行する。これらの命令
は、メモリ(すなわち、データ・キャッシュ16または
主記憶のいずれか)から選択されたGPR32またはF
PR36へデータをロードするための命令か、あるいは
GPR32、GPRリネーム・バッファ33、FPR3
6またはFPRリネーム・バッファ37のうちの選択さ
れた1つからメモリへデータをストアするための命令で
ある。
ロセッサ10は、固定小数点ユニット(FXU)22、
ロード/ストア・ユニット(LSU)28および浮動小
数点ユニット(FPU)30を含む、複数の実行ユニッ
トを備えている。周知のように、FXU22、LSU2
8およびFPU30の各々は、各プロセッサ・サイクル
中に特定クラスの順次命令に属する1つ以上の命令を実
行する。たとえば、FXU22は、指定された汎用レジ
スタ(GPR)32またはGPRリネーム・バッファ3
3から受け取るソース・オペランドを利用して、加算、
減算、AND、OR、XORなどの固定小数点演算を実
行する。固定小数点命令の実行に続いて、FXU22
は、その命令の結果データをGPRリネーム・バッファ
33に出力し、GPRリネーム・バッファ33は、当該
バッファから1つ以上のGPR32へ結果データを転送
することによって命令が完了するまで、結果データの一
時記憶となる。逆に、FPU30は、浮動小数点レジス
タ(FPR)36またはFPRリネーム・バッファ37
から受け取るソース・オペランドに対して、浮動小数点
の乗算や除算などの浮動小数点演算を実行する。FPU
30は、浮動小数点命令の実行から生じるデータを、選
択されたFPRリネーム・バッファ37に出力し、この
FPRリネーム・バッファ37は、当該FPRリネーム
・バッファ37から選択されたFPR36へ結果データ
を転送することによって命令が完了するまで、結果デー
タを一時的に記憶する。LSU28は、特定の浮動小数
点命令および固定小数点命令を実行する。これらの命令
は、メモリ(すなわち、データ・キャッシュ16または
主記憶のいずれか)から選択されたGPR32またはF
PR36へデータをロードするための命令か、あるいは
GPR32、GPRリネーム・バッファ33、FPR3
6またはFPRリネーム・バッファ37のうちの選択さ
れた1つからメモリへデータをストアするための命令で
ある。
【0009】プロセッサ10は、命令のパイプライン化
と非整順実行の両方を利用して、スーパースカラ・アー
キテクチャの性能をさらに向上させる。したがって、命
令は、データ依存性が監視されない限り、任意の順序で
FXU22、LSU28およびFPU30によって実行
できる。さらに、命令は、一連のパイプライン・ステー
ジでFXU22、LSU28およびFPU30の各々に
よって処理される。高性能プロセッサで典型的なとお
り、各命令は、5つの別個のパイプライン・ステージ、
すなわち、フェッチ、復号/ディスパッチ、実行、終了
および完了の各ステージで処理される。
と非整順実行の両方を利用して、スーパースカラ・アー
キテクチャの性能をさらに向上させる。したがって、命
令は、データ依存性が監視されない限り、任意の順序で
FXU22、LSU28およびFPU30によって実行
できる。さらに、命令は、一連のパイプライン・ステー
ジでFXU22、LSU28およびFPU30の各々に
よって処理される。高性能プロセッサで典型的なとお
り、各命令は、5つの別個のパイプライン・ステージ、
すなわち、フェッチ、復号/ディスパッチ、実行、終了
および完了の各ステージで処理される。
【0010】フェッチ・ステージの間には、シーケンシ
ャル・フェッチャ17が、1つ以上のメモリ・アドレス
に関連する1つ以上の命令を命令キャッシュ14から取
り出す。命令キャッシュ14から取り出された順次命令
は、シーケンシャル・フェッチャ17によって命令キュ
ー19に格納される。取り出された分岐命令は、命令ス
トリームから除去され、実行のためBPU18に転送さ
れる。BPU18は、分岐履歴テーブルなどの、分岐予
測機構を含んでいる。かかる分岐予測機構は、未解決の
条件分岐命令の分岐が行われるかどうかを予測すること
によって、BPU18がその条件分岐命令を投機実行で
きるようにするものである。
ャル・フェッチャ17が、1つ以上のメモリ・アドレス
に関連する1つ以上の命令を命令キャッシュ14から取
り出す。命令キャッシュ14から取り出された順次命令
は、シーケンシャル・フェッチャ17によって命令キュ
ー19に格納される。取り出された分岐命令は、命令ス
トリームから除去され、実行のためBPU18に転送さ
れる。BPU18は、分岐履歴テーブルなどの、分岐予
測機構を含んでいる。かかる分岐予測機構は、未解決の
条件分岐命令の分岐が行われるかどうかを予測すること
によって、BPU18がその条件分岐命令を投機実行で
きるようにするものである。
【0011】復号/ディスパッチ・ステージの間には、
ディスパッチ・ユニット20が、命令キュー19からの
1つ以上の命令を復号し、FXU22、LSU28およ
びFPU30のうちの適切な1つにディスパッチする。
また、復号/ディスパッチ・ステージの間には、ディス
パッチ・ユニット20が、ディスパッチされた命令の結
果データの各々ごとに、GPRリネーム・バッファ33
またはFPRリネーム・バッファ37内の1つのリネー
ム・バッファを割り振る。本発明の好ましい実施例によ
れば、プロセッサ10は、プログラム順で命令をディス
パッチし、ディスパッチされた命令のプログラム順序を
非整順実行中に一意的な命令識別子を使用して追跡す
る。命令識別子のほかに、プロセッサ10の実行パイプ
ライン内の各命令は、その命令のオペランドAおよびB
のソースを示すrAタグおよびrBタグと、その命令の
結果データ用のGPRリネーム・バッファ33またはF
PRリネーム・バッファ37内の宛先リネーム・バッフ
ァを示すrDタグを有する。
ディスパッチ・ユニット20が、命令キュー19からの
1つ以上の命令を復号し、FXU22、LSU28およ
びFPU30のうちの適切な1つにディスパッチする。
また、復号/ディスパッチ・ステージの間には、ディス
パッチ・ユニット20が、ディスパッチされた命令の結
果データの各々ごとに、GPRリネーム・バッファ33
またはFPRリネーム・バッファ37内の1つのリネー
ム・バッファを割り振る。本発明の好ましい実施例によ
れば、プロセッサ10は、プログラム順で命令をディス
パッチし、ディスパッチされた命令のプログラム順序を
非整順実行中に一意的な命令識別子を使用して追跡す
る。命令識別子のほかに、プロセッサ10の実行パイプ
ライン内の各命令は、その命令のオペランドAおよびB
のソースを示すrAタグおよびrBタグと、その命令の
結果データ用のGPRリネーム・バッファ33またはF
PRリネーム・バッファ37内の宛先リネーム・バッフ
ァを示すrDタグを有する。
【0012】実行ステージの間には、FXU22、LS
U28およびFPU30が、指示された演算のオペラン
ドと実行リソースが使用可能である時に、ディスパッチ
・ユニット20から受け取った命令を実行する。実行が
終了した後に、FXU22、LSU28およびFPU3
0は、命令のタイプに応じて、GPRリネーム・バッフ
ァ33またはFPRリネーム・バッファ37のいずれか
に結果データを記憶する。その後、FXU22、LSU
28およびFPU30は、どの命令の実行を終了したか
を完了ユニット40に通知する。最後に、命令は、結果
データをGPRリネーム・バッファ33からGPR32
へ、またはFPRリネーム・バッファ37からFPR3
6へ転送することによって、完了ユニット40によって
プログラム順で完了する。
U28およびFPU30が、指示された演算のオペラン
ドと実行リソースが使用可能である時に、ディスパッチ
・ユニット20から受け取った命令を実行する。実行が
終了した後に、FXU22、LSU28およびFPU3
0は、命令のタイプに応じて、GPRリネーム・バッフ
ァ33またはFPRリネーム・バッファ37のいずれか
に結果データを記憶する。その後、FXU22、LSU
28およびFPU30は、どの命令の実行を終了したか
を完了ユニット40に通知する。最後に、命令は、結果
データをGPRリネーム・バッファ33からGPR32
へ、またはFPRリネーム・バッファ37からFPR3
6へ転送することによって、完了ユニット40によって
プログラム順で完了する。
【0013】本発明の好ましい実施例では、プロセッサ
10は、複数の汎用レジスタとメモリとの間でデータの
ロードおよびまたはストアを行う、多重レジスタ命令を
実行することができる。具体的に言うと、PowerP
C(商標)マイクロプロセッサの好ましい実施例では、
プロセッサ10は、複数ワードをメモリから汎用レジス
タ(GPR)32にロードするロード多重命令(lm
w)と、複数ワードをGPR32からメモリにストアす
るストア多重命令(stmw)を実行する。
10は、複数の汎用レジスタとメモリとの間でデータの
ロードおよびまたはストアを行う、多重レジスタ命令を
実行することができる。具体的に言うと、PowerP
C(商標)マイクロプロセッサの好ましい実施例では、
プロセッサ10は、複数ワードをメモリから汎用レジス
タ(GPR)32にロードするロード多重命令(lm
w)と、複数ワードをGPR32からメモリにストアす
るストア多重命令(stmw)を実行する。
【0014】これらの多重レジスタ命令は、シーケンシ
ャル・フェッチャ17によって命令キャッシュ14から
取り出され、命令キュー19にロードされる。ディスパ
ッチ・ユニット20による多重レジスタ命令のディスパ
ッチの際に、LSU28は、多重レジスタ命令の実行を
開始する。また、その命令のディスパッチの際には、多
重レジスタ命令で識別された、GPR32のうちの複数
の汎用レジスタが、その命令に割り振られる。
ャル・フェッチャ17によって命令キャッシュ14から
取り出され、命令キュー19にロードされる。ディスパ
ッチ・ユニット20による多重レジスタ命令のディスパ
ッチの際に、LSU28は、多重レジスタ命令の実行を
開始する。また、その命令のディスパッチの際には、多
重レジスタ命令で識別された、GPR32のうちの複数
の汎用レジスタが、その命令に割り振られる。
【0015】好ましい実施例では、ロード多重命令また
はストア多重命令が、32個までの連続した汎用レジス
タとメモリとの間で、32個までの連続したワードを授
受することを必要とする。たとえば、ストア多重命令
「stmw r3, r2, r1」では、汎用レジスタ3〜31の内
容が、<r2 + r1>によって指定されるメモリ位
置にストアされる。したがって、この例では、その内容
をストアすべき最初の汎用レジスタは、汎用レジスタ3
(r3)である。その後、LSU28は、汎用レジスタ
4から汎用レジスタ31までのすべての汎用レジスタの
内容がストアされるまで、この処理を続ける。その時点
で、ストア多重命令の実行が終了する。これは、完了ユ
ニット40に報告され、完了ユニット40は、システム
内のアーキテクチャ・レジスタにコミットすることによ
ってこの命令を完了する。
はストア多重命令が、32個までの連続した汎用レジス
タとメモリとの間で、32個までの連続したワードを授
受することを必要とする。たとえば、ストア多重命令
「stmw r3, r2, r1」では、汎用レジスタ3〜31の内
容が、<r2 + r1>によって指定されるメモリ位
置にストアされる。したがって、この例では、その内容
をストアすべき最初の汎用レジスタは、汎用レジスタ3
(r3)である。その後、LSU28は、汎用レジスタ
4から汎用レジスタ31までのすべての汎用レジスタの
内容がストアされるまで、この処理を続ける。その時点
で、ストア多重命令の実行が終了する。これは、完了ユ
ニット40に報告され、完了ユニット40は、システム
内のアーキテクチャ・レジスタにコミットすることによ
ってこの命令を完了する。
【0016】図2には、従来技術のマイクロプロセッサ
内でストア多重命令と後続の浮動小数点命令を処理する
のに必要なプロセッサ・サイクルのタイミング図が示さ
れている。ストア多重命令(store Mult)は、サイクル
1の間にシーケンシャル・フェッチャ17によって命令
キャッシュ14から取り出される(F)。この命令は、
サイクル2の間に復号(Dec)され、サイクル3の間
にディスパッチ・ユニット20によってLSU28にデ
ィスパッチ(Disp)される。LSU28は、サイク
ル4〜7の間にこのストア多重命令を実行(E)し、こ
の命令は、完了ユニット40によってサイクル8の間に
完了(C)する。
内でストア多重命令と後続の浮動小数点命令を処理する
のに必要なプロセッサ・サイクルのタイミング図が示さ
れている。ストア多重命令(store Mult)は、サイクル
1の間にシーケンシャル・フェッチャ17によって命令
キャッシュ14から取り出される(F)。この命令は、
サイクル2の間に復号(Dec)され、サイクル3の間
にディスパッチ・ユニット20によってLSU28にデ
ィスパッチ(Disp)される。LSU28は、サイク
ル4〜7の間にこのストア多重命令を実行(E)し、こ
の命令は、完了ユニット40によってサイクル8の間に
完了(C)する。
【0017】従来技術では、ロード多重命令またはスト
ア多重命令に続く浮動小数点命令は、必ず直列化され、
その結果、ロード多重命令またはストア多重命令が完了
するまで取り出されないようになる。これによって、格
納されたオペランド・データの保全性が保証される。し
たがって、図2の従来技術の例では、後続の浮動小数点
命令は、サイクル9まで取り出されない。このようなシ
ステムでは、多重レジスタ命令が完了するまで命令パイ
プラインを停止させることによって、実質的にマイクロ
プロセッサの性能が制限される。
ア多重命令に続く浮動小数点命令は、必ず直列化され、
その結果、ロード多重命令またはストア多重命令が完了
するまで取り出されないようになる。これによって、格
納されたオペランド・データの保全性が保証される。し
たがって、図2の従来技術の例では、後続の浮動小数点
命令は、サイクル9まで取り出されない。このようなシ
ステムでは、多重レジスタ命令が完了するまで命令パイ
プラインを停止させることによって、実質的にマイクロ
プロセッサの性能が制限される。
【0018】本発明によれば、ロード多重命令またはス
トア多重命令の実行中に、後続の浮動小数点命令を非整
順に完了することができる。たとえば、好ましい実施例
では、ストア多重動作は、32個までの連続した汎用レ
ジスタの内容を、32ワードまでのメモリ内の位置にス
トアすることが必要である。たとえば、ストア多重命令
「stmw r3, r2, r1」では、汎用レジスタ3〜31の内
容が、<r2+r1>にによって指定されるメモリ位置
にストアされる。本発明によれば、ストア多重命令のデ
ィスパッチの直後に、無条件に後続の浮動小数点命令を
FPU30にディスパッチすることができる。さらに、
これらの浮動小数点命令は、先行するストア多重命令の
実行が終了する前に、非整順に完了することができる。
トア多重命令の実行中に、後続の浮動小数点命令を非整
順に完了することができる。たとえば、好ましい実施例
では、ストア多重動作は、32個までの連続した汎用レ
ジスタの内容を、32ワードまでのメモリ内の位置にス
トアすることが必要である。たとえば、ストア多重命令
「stmw r3, r2, r1」では、汎用レジスタ3〜31の内
容が、<r2+r1>にによって指定されるメモリ位置
にストアされる。本発明によれば、ストア多重命令のデ
ィスパッチの直後に、無条件に後続の浮動小数点命令を
FPU30にディスパッチすることができる。さらに、
これらの浮動小数点命令は、先行するストア多重命令の
実行が終了する前に、非整順に完了することができる。
【0019】本発明では、浮動小数点演算からの結果デ
ータが浮動小数点レジスタに格納されるのに対して、ロ
ード多重またはストア多重命令は汎用レジスタを使用し
てロードまたはストアを行うので、多重レジスタ命令を
後続の浮動小数点命令と直列化する必要がないことが認
識される。その結果、ロード多重命令またはストア多重
命令に必要な連続した汎用レジスタの内容が、浮動小数
点命令の実行によって破壊される可能性がない。この種
の早期完了は、例外をもたらす命令が整順に完了しない
場合であっても、すべての事象がプログラム順で発生す
るとの見通しをプログラマが有しなければならないとい
う要件に違反しない。もし、多重レジスタ命令がまだ実
行されている間に、浮動小数点演算の実行が例外をもた
らすのであれば、その例外はこの多重レジスタ命令が完
了するまで採用されない。
ータが浮動小数点レジスタに格納されるのに対して、ロ
ード多重またはストア多重命令は汎用レジスタを使用し
てロードまたはストアを行うので、多重レジスタ命令を
後続の浮動小数点命令と直列化する必要がないことが認
識される。その結果、ロード多重命令またはストア多重
命令に必要な連続した汎用レジスタの内容が、浮動小数
点命令の実行によって破壊される可能性がない。この種
の早期完了は、例外をもたらす命令が整順に完了しない
場合であっても、すべての事象がプログラム順で発生す
るとの見通しをプログラマが有しなければならないとい
う要件に違反しない。もし、多重レジスタ命令がまだ実
行されている間に、浮動小数点演算の実行が例外をもた
らすのであれば、その例外はこの多重レジスタ命令が完
了するまで採用されない。
【0020】図3には、本発明のマイクロプロセッサ内
で、1つのストア多重命令(StoreMult)と2つの浮動
小数点命令(FP Inst1およびFP Inst2)を処理するサイ
クルのタイミング図が示されている。1例として、下記
の命令シーケンスの処理を検討する。 stmw r28, r2, r1 fp-add r2, r2, r28 fp-add r3, r3, r30
で、1つのストア多重命令(StoreMult)と2つの浮動
小数点命令(FP Inst1およびFP Inst2)を処理するサイ
クルのタイミング図が示されている。1例として、下記
の命令シーケンスの処理を検討する。 stmw r28, r2, r1 fp-add r2, r2, r28 fp-add r3, r3, r30
【0021】図3に示すように、ストア多重命令はサイ
クル1の間に取り出され、サイクル2で復号され、サイ
クル3でディスパッチされ、サイクル4〜7の間にLS
U28によって実行され、サイクル8で完了する。本発
明によれば、「FP Inst1」および「FP Inst2」を、スト
ア多重命令のディスパッチの前または後の任意の時刻に
ディスパッチできるようにすることによって、非整順完
了がサポートされる。この例では、これらの浮動小数点
命令は、先行するストア多重命令がサイクル3でディス
パッチされた後、プログラム順にできる限り早くディス
パッチされる。「FP Inst1」はサイクル4の間にディス
パッチされ、1サイクルあたり1命令しか取り出すこと
ができないので、「FP Inst2」はサイクル5の間にディ
スパッチされる。これらの浮動小数点命令は、ストア多
重命令実行の進行状況に無関係に、FPU30内でサイ
クル5および6の間に即座に実行することができる。こ
れらの浮動小数点命令1および2の結果は、それぞれサ
イクル6および7までに、FPRリネーム・バッファ3
7内に保持され、その時点で、結果のオペランドがそれ
ぞれ浮動小数点レジスタ2および3に格納される。した
がって、前に説明したように、これらの浮動小数点命令
は、プログラム・シーケンス内で先行するストア多重命
令が完了する前に完了することができる。
クル1の間に取り出され、サイクル2で復号され、サイ
クル3でディスパッチされ、サイクル4〜7の間にLS
U28によって実行され、サイクル8で完了する。本発
明によれば、「FP Inst1」および「FP Inst2」を、スト
ア多重命令のディスパッチの前または後の任意の時刻に
ディスパッチできるようにすることによって、非整順完
了がサポートされる。この例では、これらの浮動小数点
命令は、先行するストア多重命令がサイクル3でディス
パッチされた後、プログラム順にできる限り早くディス
パッチされる。「FP Inst1」はサイクル4の間にディス
パッチされ、1サイクルあたり1命令しか取り出すこと
ができないので、「FP Inst2」はサイクル5の間にディ
スパッチされる。これらの浮動小数点命令は、ストア多
重命令実行の進行状況に無関係に、FPU30内でサイ
クル5および6の間に即座に実行することができる。こ
れらの浮動小数点命令1および2の結果は、それぞれサ
イクル6および7までに、FPRリネーム・バッファ3
7内に保持され、その時点で、結果のオペランドがそれ
ぞれ浮動小数点レジスタ2および3に格納される。した
がって、前に説明したように、これらの浮動小数点命令
は、プログラム・シーケンス内で先行するストア多重命
令が完了する前に完了することができる。
【0022】要約すると、本発明は、先行するロード多
重命令またはストア多重命令の実行中に、浮動小数点演
算の早期完了のための方法および装置を提供する。本発
明によれば、ロード多重命令またはストア多重命令と同
時に追加の後続命令を実行できるようになり、したがっ
てかかる命令の直列化が不要になるので、マイクロプロ
セッサの性能が実質的に向上する。マイクロプロセッサ
の完了バッファに応じて、かなりの量の追加命令を、多
重レジスタ命令の実行中にマイクロプロセッサによって
実行し、完了することができる。たとえば、5レジスタ
の完了バッファ深さを有する好ましい実施例では、パイ
プライン・ストールなしで4つまでの追加命令を完了さ
せる潜在能力がある。ロード多重命令またはストア多重
命令の完了には最大36サイクルを要するので、本発明
は、マイクロプロセッサの速度と効率を強化する実質的
な時間の節約をもたらす。
重命令またはストア多重命令の実行中に、浮動小数点演
算の早期完了のための方法および装置を提供する。本発
明によれば、ロード多重命令またはストア多重命令と同
時に追加の後続命令を実行できるようになり、したがっ
てかかる命令の直列化が不要になるので、マイクロプロ
セッサの性能が実質的に向上する。マイクロプロセッサ
の完了バッファに応じて、かなりの量の追加命令を、多
重レジスタ命令の実行中にマイクロプロセッサによって
実行し、完了することができる。たとえば、5レジスタ
の完了バッファ深さを有する好ましい実施例では、パイ
プライン・ストールなしで4つまでの追加命令を完了さ
せる潜在能力がある。ロード多重命令またはストア多重
命令の完了には最大36サイクルを要するので、本発明
は、マイクロプロセッサの速度と効率を強化する実質的
な時間の節約をもたらす。
【図1】本発明の好ましい実施例に従った、プロセッサ
のブロック図である。
のブロック図である。
【図2】従来技術でロード多重命令またはストア多重命
令と後続の浮動小数点命令を処理するのに必要なサイク
ルのタイミング図である。
令と後続の浮動小数点命令を処理するのに必要なサイク
ルのタイミング図である。
【図3】本発明のマイクロプロセッサ内でロード多重命
令またはストア多重命令と後続の2つの浮動小数点命令
を処理するのに必要なサイクルのタイミング図である。
令またはストア多重命令と後続の2つの浮動小数点命令
を処理するのに必要なサイクルのタイミング図である。
10 プロセッサ 11 システム・バス 12 バス・インターフェース・ユニット(BIU) 14 命令キャッシュ 16 データ・キャッシュ 17 シーケンシャル・フェッチャ 18 分岐処理ユニット(BPU) 19 命令キュー 20 ディスパッチ・ユニット 22 固定小数点ユニット(FXU) 28 ロード/ストア・ユニット(LSU) 30 浮動小数点ユニット(FPU) 32 汎用レジスタ(GPR) 33 GPRリネーム・バッファ 36 浮動小数点レジスタ(FPR) 37 FPRリネーム・バッファ 40 完了ユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ソウンミヤ・マリック アメリカ合衆国78729 テキサス州オー スチン パートリッジ・ベンド・ドライ ブ 13032 (56)参考文献 特開 平6−242953(JP,A) 特開 平4−102922(JP,A) 特開 平4−102923(JP,A) 特開 平9−146770(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38
Claims (4)
- 【請求項1】メモリと、ディスパッチ・ユニットと、所
定数の汎用レジスタと、所定数の浮動小数点レジスタ
と、ロード/ストア・ユニットおよび浮動小数点実行ユ
ニットを含む複数の実行ユニットとを備え、前記メモリ
からのデータを前記所定数の汎用レジスタのうちの連続
する2つ以上の汎用レジスタに順次にロードするか、ま
たは連続する2つ以上の汎用レジスタからのデータを前
記メモリに順次にストアするための多重レジスタ命令を
実行することができるスーパースカラ・マイクロプロセ
ッサにおいて、前記 多重レジスタ命令を前記ディスパッチ・ユニットか
ら前記ロード/ストア・ユニットにディスパッチするこ
とにより、前記ロード/ストア・ユニットにおける前記
多重レジスタ命令の実行を開始させるステップと、 プログラム順では前記ディスパッチされた多重レジスタ
命令に後続し、且つ前記所定数の浮動小数点レジスタの
うちの1つ以上の浮動小数点レジスタに格納されたソー
ス・オペランド・データに依存する浮動小数点命令を、
前記ディスパッチ・ユニットから前記浮動小数点実行ユ
ニットにディスパッチするステップと、前記 多重レジスタ命令が前記ロード/ストア・ユニット
にディスパッチされた後で、且つ前記多重レジスタ命令
の実行が終了する前に、前記浮動小数点命令の実行を完
了するステップとから成り、 前記完了するステップが、前記浮動小数点命令の実行結
果データを前記所定数の浮動小数点レジスタのうちの1
つ以上の浮動小数点レジスタに格納するステップ を含
む、複数の命令の非整順完了をサポートする方法。 - 【請求項2】前記多重レジスタ命令が、前記2つ以上の
汎用レジスタからのデータを前記メモリに順次にストア
する多重レジスタ・ストア命令である、請求項1に記載
の方法。 - 【請求項3】前記多重レジスタ命令が、前記メモリから
のデータを前記2つ以上の汎用レジスタに順次にロード
するための多重レジスタ・ロード命令である、請求項1
に記載の方法。 - 【請求項4】メモリを備え、プログラム順で先行する多
重レジスタ命令の実行中に、後続の浮動小数点命令を非
整順に完了することができるスーパースカラ・マイクロ
プロセッサであって、 整数データを選択的に格納する所定数の汎用レジスタ
と、 浮動小数点データを選択的に格納する所定数の浮動小数
点レジスタと、前記メモリからのデータを前記所定数の 汎用レジスタの
うちの連続する2つ以上の汎用レジスタに順次にロード
するか、または連続する2つ以上の汎用レジスタからの
データを前記メモリに順次にストアするための前記多重
レジスタ命令を実行するロード/ストア・ユニットと、前記所定 数の浮動小数点レジスタのうちの1つ以上の浮
動小数点レジスタに格納されたオペランド・データに対
して浮動小数点演算を実行する浮動小数点実行ユニット
と、前記 ロード/ストア・ユニットおよび前記浮動小数点実
行ユニットを含む複数の実行ユニットに命令をディスパ
ッチするディスパッチ・ユニットであって、前記多重レ
ジスタ命令を前記ロード/ストア・ユニットにディスパ
ッチすることにより、前記ロード/ストア・ユニットに
おける前記多重レジスタ命令の実行を開始させるととも
に、前記ロード/ストア・ユニットにおける前記多重レ
ジスタ命令の実行が終了する前に、前記所定数の浮動小
数点レジスタのうちの1つ以上の浮動小数点レジスタに
格納されたソース・オペランド・データに依存する浮動
小数点命令を、前記浮動小数点実行ユニットにディスパ
ッチするディスパッチ・ユニットと、 前記浮動小数点命令の実行結果データを前記所定数の浮
動小数点レジスタのうちの1つ以上の浮動小数点レジス
タに格納することにより、前記ロード/ストア・ユニッ
トにおける前記多重レジスタ命令の実行が終了する前
に、前記浮動小数 点命令の実行を完了する完了ユニット
を備えた ことを特徴とする、前記 スーパースカラ・マイクロプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/526,610 US5850563A (en) | 1995-09-11 | 1995-09-11 | Processor and method for out-of-order completion of floating-point operations during load/store multiple operations |
US08/526610 | 1995-09-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09138748A JPH09138748A (ja) | 1997-05-27 |
JP3096429B2 true JP3096429B2 (ja) | 2000-10-10 |
Family
ID=24098036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08221086A Expired - Fee Related JP3096429B2 (ja) | 1995-09-11 | 1996-08-22 | 複数の命令の非整順完了をサポートする方法およびスーパースカラ・マイクロプロセッサ |
Country Status (4)
Country | Link |
---|---|
US (1) | US5850563A (ja) |
EP (1) | EP0762271A3 (ja) |
JP (1) | JP3096429B2 (ja) |
KR (1) | KR100260680B1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6035394A (en) * | 1998-02-17 | 2000-03-07 | International Business Machines Corporation | System for providing high performance speculative processing of complex load/store instructions by generating primitive instructions in the load/store unit and sequencer in parallel |
US6789187B2 (en) * | 2000-12-15 | 2004-09-07 | Intel Corporation | Processor reset and instruction fetches |
DE10210085B8 (de) * | 2002-03-08 | 2008-11-27 | Technische Universität Hamburg-Harburg | Verfahren und Prozessor zur Kombination von Daten- und Kontrollflußoperationen |
US7308527B2 (en) * | 2005-01-24 | 2007-12-11 | International Business Machines Corporation | System for indicating a plug position for a memory module in a memory system |
US20060179286A1 (en) * | 2005-02-09 | 2006-08-10 | International Business Machines Corporation | System and method for processing limited out-of-order execution of floating point loads |
JP6344022B2 (ja) * | 2014-04-08 | 2018-06-20 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
CH716218B1 (de) | 2019-05-24 | 2024-02-15 | Digitum Ag | System und Verfahren zur Autorisierung von Transaktionen. |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4493020A (en) * | 1980-05-06 | 1985-01-08 | Burroughs Corporation | Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation |
US4903196A (en) * | 1986-05-02 | 1990-02-20 | International Business Machines Corporation | Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor |
GB8817911D0 (en) * | 1988-07-27 | 1988-09-01 | Int Computers Ltd | Data processing apparatus |
JPH0673105B2 (ja) * | 1988-08-11 | 1994-09-14 | 株式会社東芝 | 命令パイプライン方式のマイクロプロセッサ |
US5051885A (en) * | 1988-10-07 | 1991-09-24 | Hewlett-Packard Company | Data processing system for concurrent dispatch of instructions to multiple functional units |
US5241636A (en) * | 1990-02-14 | 1993-08-31 | Intel Corporation | Method for parallel instruction execution in a computer |
US5226130A (en) * | 1990-02-26 | 1993-07-06 | Nexgen Microsystems | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency |
JP2556182B2 (ja) * | 1990-08-29 | 1996-11-20 | 三菱電機株式会社 | デ−タ処理装置 |
US5355457A (en) * | 1991-05-21 | 1994-10-11 | Motorola, Inc. | Data processor for performing simultaneous instruction retirement and backtracking |
US5363495A (en) * | 1991-08-26 | 1994-11-08 | International Business Machines Corporation | Data processing system with multiple execution units capable of executing instructions out of sequence |
JP3544214B2 (ja) * | 1992-04-29 | 2004-07-21 | サン・マイクロシステムズ・インコーポレイテッド | プロセッサの状態を監視する方法及び監視システム |
CA2107046A1 (en) * | 1993-01-08 | 1994-07-09 | James Allan Kahle | Method and system for increased instruction dispatch efficiency in superscalar processor system |
JP2742375B2 (ja) * | 1993-01-08 | 1998-04-22 | インターナショナル・ビジネス・マシーンズ・コーポレイション | スーパースカラ・プロセッサにおける命令処理の選択的逐次化の方法およびシステム |
US5467473A (en) * | 1993-01-08 | 1995-11-14 | International Business Machines Corporation | Out of order instruction load and store comparison |
EP0651321B1 (en) * | 1993-10-29 | 2001-11-14 | Advanced Micro Devices, Inc. | Superscalar microprocessors |
US5542109A (en) * | 1994-08-31 | 1996-07-30 | Exponential Technology, Inc. | Address tracking and branch resolution in a processor with multiple execution pipelines and instruction stream discontinuities |
US5625789A (en) * | 1994-10-24 | 1997-04-29 | International Business Machines Corporation | Apparatus for source operand dependendency analyses register renaming and rapid pipeline recovery in a microprocessor that issues and executes multiple instructions out-of-order in a single cycle |
-
1995
- 1995-09-11 US US08/526,610 patent/US5850563A/en not_active Expired - Fee Related
-
1996
- 1996-07-15 KR KR1019960028565A patent/KR100260680B1/ko not_active IP Right Cessation
- 1996-08-15 EP EP96305965A patent/EP0762271A3/en not_active Withdrawn
- 1996-08-22 JP JP08221086A patent/JP3096429B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09138748A (ja) | 1997-05-27 |
KR100260680B1 (ko) | 2000-07-01 |
EP0762271A2 (en) | 1997-03-12 |
US5850563A (en) | 1998-12-15 |
EP0762271A3 (en) | 2000-11-15 |
KR970016946A (ko) | 1997-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3096427B2 (ja) | 複数ロード命令の実行方法、複数ストア命令の実行方法およびマイクロプロセッサ | |
JP3580657B2 (ja) | 並列マルチタスキングの方法及びシステム | |
US5611063A (en) | Method for executing speculative load instructions in high-performance processors | |
KR930004214B1 (ko) | 데이타 처리 시스템 | |
TWI439930B (zh) | 具選擇性啟動早期引退功能之失序執行微處理器 | |
JPH09185506A (ja) | プロセッサ内で命令を実行する方法およびシステム | |
JPH07152559A (ja) | パイプ制御及びレジスタ変換機能を増強したスーパースカラーパイプライン式のプロセッサ | |
US5872948A (en) | Processor and method for out-of-order execution of instructions based upon an instruction parameter | |
JP2004171573A (ja) | 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ | |
RU2142157C1 (ru) | Способ функционирования системы обработки | |
US5590351A (en) | Superscalar execution unit for sequential instruction pointer updates and segment limit checks | |
JP3207124B2 (ja) | カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置 | |
JP3611304B2 (ja) | 1サイクルのパイプライン・ストールを生成するパイプライン・プロセッサのシステム及び方法 | |
JP3096429B2 (ja) | 複数の命令の非整順完了をサポートする方法およびスーパースカラ・マイクロプロセッサ | |
JP3736866B2 (ja) | スーパーパイプライン式スーパースカラーマイクロプロセッサ用のマイクロコントロールユニット | |
US6092184A (en) | Parallel processing of pipelined instructions having register dependencies | |
US5768553A (en) | Microprocessor using an instruction field to define DSP instructions | |
JPH10143366A (ja) | 非プログラム順命令発行を利用する高性能データプロセッシングシステムにおいて早期データ依存解析メカニズムをインプリメントする方法およびシステム | |
US5805916A (en) | Method and apparatus for dynamic allocation of registers for intermediate floating-point results | |
RU2150738C1 (ru) | Система обработки и способ ее функционирования | |
US5784606A (en) | Method and system in a superscalar data processing system for the efficient handling of exceptions | |
KR100237989B1 (ko) | 슈퍼스칼라 프로세서에서 리네임 버퍼를 효율적으로 사용하기 위한 방법 및 시스템 | |
JPH117389A (ja) | プロセサ用の命令を処理するシステム及び方法 | |
KR19990013416A (ko) | 프로세싱 시스템 | |
US6266761B1 (en) | Method and system in an information processing system for efficient maintenance of copies of values stored within registers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |