JPH09138748A - 浮動小数点命令の早期完了方法および装置 - Google Patents
浮動小数点命令の早期完了方法および装置Info
- Publication number
- JPH09138748A JPH09138748A JP8221086A JP22108696A JPH09138748A JP H09138748 A JPH09138748 A JP H09138748A JP 8221086 A JP8221086 A JP 8221086A JP 22108696 A JP22108696 A JP 22108696A JP H09138748 A JPH09138748 A JP H09138748A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- floating
- store
- load
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 230000015654 memory Effects 0.000 claims abstract description 25
- 230000001419 dependent effect Effects 0.000 abstract 1
- 239000000872 buffer Substances 0.000 description 26
- 238000010586 diagram Methods 0.000 description 6
- 101100236201 Arabidopsis thaliana LSU2 gene Proteins 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005516 engineering process 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
- 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)
Abstract
(57)【要約】 (修正有)
【課題】 前に発行されたロード多重命令またはストア
多重命令の終了前に浮動小数点命令を早期に完了するた
めのスーパースカラ・マイクロプロセッサ。 【解決手段】 この方法には、ストア多重やロード多重
など、複数の汎用レジスタのうちの複数からメモリへデ
ータをストアまたはロードする多重レジスタ命令をロー
ド/ストア実行ユニットにディスパッチして多重レジス
タ命令の実行を開始するディスパッチ・ユニット20が
含まれ、さらに、ロード/ストア・ユニット内で多重レ
ジスタ命令が実行を終了する前に、ディスパッチ・ユニ
ットは、複数の浮動小数点レジスタ36のうちの1つま
たは複数の浮動小数点レジスタに格納されたソース・オ
ペランド・データに依存する浮動小数点命令を浮動小数
点ユニット30にディスパッチし、ディスパッチされた
浮動小数点命令は、多重レジスタ命令が実行を終了する
前に実行を完了する。
多重命令の終了前に浮動小数点命令を早期に完了するた
めのスーパースカラ・マイクロプロセッサ。 【解決手段】 この方法には、ストア多重やロード多重
など、複数の汎用レジスタのうちの複数からメモリへデ
ータをストアまたはロードする多重レジスタ命令をロー
ド/ストア実行ユニットにディスパッチして多重レジス
タ命令の実行を開始するディスパッチ・ユニット20が
含まれ、さらに、ロード/ストア・ユニット内で多重レ
ジスタ命令が実行を終了する前に、ディスパッチ・ユニ
ットは、複数の浮動小数点レジスタ36のうちの1つま
たは複数の浮動小数点レジスタに格納されたソース・オ
ペランド・データに依存する浮動小数点命令を浮動小数
点ユニット30にディスパッチし、ディスパッチされた
浮動小数点命令は、多重レジスタ命令が実行を終了する
前に実行を完了する。
Description
【0001】
【発明の属する技術分野】本発明は、全般的にはマイク
ロプロセッサで命令を実行する方法およびシステムに関
し、具体的には、ロード多重またはストア多重命令の実
行中に浮動小数点命令を実行し、完了するための方法お
よび装置に関する。
ロプロセッサで命令を実行する方法およびシステムに関
し、具体的には、ロード多重またはストア多重命令の実
行中に浮動小数点命令を実行し、完了するための方法お
よび装置に関する。
【0002】
【従来の技術】現代のマイクロプロセッサでは、多重レ
ジスタ・ロード/ストア命令またはロード/ストア多重
命令によって、マイクロプロセッサの汎用レジスタ(G
PR)と、キャッシュやRAMなどのメモリとの間でデ
ータのブロックを移動する。従来の技術では、多重レジ
スタ命令でマイクロプロセッサ内に含まれる汎用レジス
タのすべて(通常は32個)が変更または使用されるの
で、多重レジスタ・ロード/ストア命令は、後続の命令
との完全な直列化を必要とする。複数のレジスタの読み
書きを実行するには複数のサイクルが必要なので、浮動
小数点演算を含む、命令シーケンス内の後続命令は、非
整順実行によるレジスタ・データの破壊を防ぐために、
多重レジスタ命令が完了するまで命令バッファに保持さ
れる。このようなシステムでは、多重レジスタ命令が完
了するまで命令パイプラインを停止させることによっ
て、実質的にマイクロプロセッサ性能が制限される。
ジスタ・ロード/ストア命令またはロード/ストア多重
命令によって、マイクロプロセッサの汎用レジスタ(G
PR)と、キャッシュやRAMなどのメモリとの間でデ
ータのブロックを移動する。従来の技術では、多重レジ
スタ命令でマイクロプロセッサ内に含まれる汎用レジス
タのすべて(通常は32個)が変更または使用されるの
で、多重レジスタ・ロード/ストア命令は、後続の命令
との完全な直列化を必要とする。複数のレジスタの読み
書きを実行するには複数のサイクルが必要なので、浮動
小数点演算を含む、命令シーケンス内の後続命令は、非
整順実行によるレジスタ・データの破壊を防ぐために、
多重レジスタ命令が完了するまで命令バッファに保持さ
れる。このようなシステムでは、多重レジスタ命令が完
了するまで命令パイプラインを停止させることによっ
て、実質的にマイクロプロセッサ性能が制限される。
【0003】
【発明が解決しようとする課題】多重レジスタ命令を実
行している間に後続の浮動小数点命令の実行を開始で
き、おそらくは実行を完了できるようにする方法および
システムが必要である。このような機構があれば、複数
のレジスタを利用する命令を後続の浮動小数点命令と並
列に実行できるので、スーパースカラ設計を有するマイ
クロプロセッサの性能がかなり改善されるはずである。
行している間に後続の浮動小数点命令の実行を開始で
き、おそらくは実行を完了できるようにする方法および
システムが必要である。このような機構があれば、複数
のレジスタを利用する命令を後続の浮動小数点命令と並
列に実行できるので、スーパースカラ設計を有するマイ
クロプロセッサの性能がかなり改善されるはずである。
【0004】
【課題を解決するための手段】本発明によれば、前のロ
ード多重命令またはストア多重命令の前に浮動小数点命
令を早期に完了するためのスーパースカラ・マイクロプ
ロセッサ内の方法および装置が提供される。このマイク
ロプロセッサのロード/ストア実行ユニットは、データ
を汎用レジスタに対してロードまたはストアし、このマ
イクロプロセッサのディスパッチ・ユニットは、ロード
/ストア実行ユニットと浮動小数点実行ユニットを含む
複数の実行ユニットに命令をディスパッチする。この方
法には、ストア多重やロード多重など、複数の汎用レジ
スタのうちの複数からメモリへデータをストアまたはロ
ードする多重レジスタ命令をロード/ストア命令にディ
スパッチして多重レジスタ命令の実行を開始するディス
パッチ・ユニットが含まれ、さらに、ロード/ストア・
ユニット内で多重レジスタ命令が実行を終了する前に、
ディスパッチ・ユニットは、複数の浮動小数点レジスタ
のうちの1つまたは複数の浮動小数点レジスタに格納さ
れたソース・オペランド・データに依存する浮動小数点
データに依存する浮動小数点命令を浮動小数点ユニット
にディスパッチし、ディスパッチされた浮動小数点命令
は、多重レジスタ命令が実行を終了する前に実行を完了
する。
ード多重命令またはストア多重命令の前に浮動小数点命
令を早期に完了するためのスーパースカラ・マイクロプ
ロセッサ内の方法および装置が提供される。このマイク
ロプロセッサのロード/ストア実行ユニットは、データ
を汎用レジスタに対してロードまたはストアし、このマ
イクロプロセッサのディスパッチ・ユニットは、ロード
/ストア実行ユニットと浮動小数点実行ユニットを含む
複数の実行ユニットに命令をディスパッチする。この方
法には、ストア多重やロード多重など、複数の汎用レジ
スタのうちの複数からメモリへデータをストアまたはロ
ードする多重レジスタ命令をロード/ストア命令にディ
スパッチして多重レジスタ命令の実行を開始するディス
パッチ・ユニットが含まれ、さらに、ロード/ストア・
ユニット内で多重レジスタ命令が実行を終了する前に、
ディスパッチ・ユニットは、複数の浮動小数点レジスタ
のうちの1つまたは複数の浮動小数点レジスタに格納さ
れたソース・オペランド・データに依存する浮動小数点
データに依存する浮動小数点命令を浮動小数点ユニット
にディスパッチし、ディスパッチされた浮動小数点命令
は、多重レジスタ命令が実行を終了する前に実行を完了
する。
【0005】本発明の上記ならびに他の目的、特徴およ
び長所は、以下の詳細な説明で明らかになる。
び長所は、以下の詳細な説明で明らかになる。
【0006】
【発明の実施の形態】ここで図面、具体的には図1を参
照すると、本発明の好ましい実施例による、情報を処理
するための、全体として符号10で示されるプロセッサ
のブロック図が示されている。図示の例では、プロセッ
サ10に、単一の集積回路スーパースカラ・マイクロプ
ロセッサが含まれる。したがって、下でさらに説明する
ように、プロセッサ10には、さまざまな実行ユニッ
ト、レジスタ、バッファ、メモリおよび他の機能ユニッ
トが含まれ、これらのすべてが集積回路によって形成さ
れる。本発明の好ましい実施例では、プロセッサ10
に、縮小命令セット・コンピュータ(RISC)技術に
よって動作する、International Business Machines,In
c.社製造のPowerPC(商標)系列のマイクロプロ
セッサのうちの1つが含まれる。
照すると、本発明の好ましい実施例による、情報を処理
するための、全体として符号10で示されるプロセッサ
のブロック図が示されている。図示の例では、プロセッ
サ10に、単一の集積回路スーパースカラ・マイクロプ
ロセッサが含まれる。したがって、下でさらに説明する
ように、プロセッサ10には、さまざまな実行ユニッ
ト、レジスタ、バッファ、メモリおよび他の機能ユニッ
トが含まれ、これらのすべてが集積回路によって形成さ
れる。本発明の好ましい実施例では、プロセッサ10
に、縮小命令セット・コンピュータ(RISC)技術に
よって動作する、International Business Machines,In
c.社製造のPowerPC(商標)系列のマイクロプロ
セッサのうちの1つが含まれる。
【0007】図1からわかるように、プロセッサ10
は、プロセッサ10内のバス・インターフェース・ユニ
ット(BIU)12を介してシステム・バス11に結合
される。BIU12は、主記憶(図示せず)などのシス
テム・バス11に結合された他のデバイスとプロセッサ
10との間での情報の転送を制御する。プロセッサ1
0、システム・バス11およびシステム・バス11に結
合された他のデバイスが、ホスト・データ処理システム
を形成する。BIU12は、プロセッサ10内の命令キ
ャッシュ14およびデータ・キャッシュ16に接続され
る。命令キャッシュ14やデータ・キャッシュ16など
の高速キャッシュがあると、前に主記憶から高速キャッ
シュに転送されたデータまたは命令のサブセットへの比
較的高速なアクセス・タイムをプロセッサ10が達成で
きるようになり、したがって、ホスト・データ処理シス
テムの動作速度が向上する。命令キャッシュ14は、さ
らに、シーケンシャル・フェッチャ17に結合され、こ
のシーケンシャル・フェッチャ17は、実行の各サイク
ルの間に命令キャッシュ14から命令を取り出す。シー
ケンシャル・フェッチャ17は、実行のために分岐命令
を分岐処理ユニット(BPU)18に転送し、プロセッ
サ10内の他の実行回路によって実行される前の一時的
な記憶のために順次命令を命令キュー19に転送する。
は、プロセッサ10内のバス・インターフェース・ユニ
ット(BIU)12を介してシステム・バス11に結合
される。BIU12は、主記憶(図示せず)などのシス
テム・バス11に結合された他のデバイスとプロセッサ
10との間での情報の転送を制御する。プロセッサ1
0、システム・バス11およびシステム・バス11に結
合された他のデバイスが、ホスト・データ処理システム
を形成する。BIU12は、プロセッサ10内の命令キ
ャッシュ14およびデータ・キャッシュ16に接続され
る。命令キャッシュ14やデータ・キャッシュ16など
の高速キャッシュがあると、前に主記憶から高速キャッ
シュに転送されたデータまたは命令のサブセットへの比
較的高速なアクセス・タイムをプロセッサ10が達成で
きるようになり、したがって、ホスト・データ処理シス
テムの動作速度が向上する。命令キャッシュ14は、さ
らに、シーケンシャル・フェッチャ17に結合され、こ
のシーケンシャル・フェッチャ17は、実行の各サイク
ルの間に命令キャッシュ14から命令を取り出す。シー
ケンシャル・フェッチャ17は、実行のために分岐命令
を分岐処理ユニット(BPU)18に転送し、プロセッ
サ10内の他の実行回路によって実行される前の一時的
な記憶のために順次命令を命令キュー19に転送する。
【0008】図示の実施例では、BPU18の他に、プ
ロセッサ10の実行回路に、固定小数点ユニット(FX
U)22、ロード/ストア・ユニット(LSU)28お
よび浮動小数点ユニット(FPU)30を含む複数の実
行ユニットが含まれる。コンピュータ技術の当業者に周
知の通り、FXU22、LSU28およびFPU30の
それぞれは、各プロセッサ・サイクル中に特定の種類の
順次命令内の1つまたは複数の命令を実行する。たとえ
ば、FXU22は、指定された汎用レジスタ(GPR)
32またはGPRリネーム・バッファ33から受け取る
ソース・オペランドを利用して、加算、減算、AND、
OR、XORなどの固定小数点算術演算を実行する。固
定小数点命令の実行に続いて、FXU22は、その命令
の結果データをGPRリネーム・バッファ33に出力
し、GPRリネーム・バッファ33は、GPRリネーム
・バッファ33から1つまたは複数のGPR32へ結果
データを転送することによって命令が完了するまで、結
果データの一時記憶となる。逆に、FPU30は、浮動
小数点レジスタ(FPR)36またはFPRリネーム・
バッファ37から受け取るソース・オペランドに対し
て、浮動小数点の乗算や除算などの浮動小数点演算を実
行する。FPU30は、浮動小数点命令の実行から生じ
るデータを、選択されたFPRリネーム・バッファ37
に出力し、このFPRリネーム・バッファ37は、FP
Rリネーム・バッファ37から選択されたFPR36へ
結果データを転送することによって命令が完了するま
で、結果データを一時的にロードまたはストアする。L
SU28は、浮動小数点命令および固定小数点命令を実
行し、メモリ(すなわち、データ・キャッシュ16また
は主記憶のいずれか)から選択されたGPR32または
FPR36へデータをロードするか、GPR32、GP
Rリネーム・バッファ33、FPR36またはFPRリ
ネーム・バッファ37のうちの選択された1つからメモ
リへデータをロードまたはストアするかのいずれかを行
う。
ロセッサ10の実行回路に、固定小数点ユニット(FX
U)22、ロード/ストア・ユニット(LSU)28お
よび浮動小数点ユニット(FPU)30を含む複数の実
行ユニットが含まれる。コンピュータ技術の当業者に周
知の通り、FXU22、LSU28およびFPU30の
それぞれは、各プロセッサ・サイクル中に特定の種類の
順次命令内の1つまたは複数の命令を実行する。たとえ
ば、FXU22は、指定された汎用レジスタ(GPR)
32またはGPRリネーム・バッファ33から受け取る
ソース・オペランドを利用して、加算、減算、AND、
OR、XORなどの固定小数点算術演算を実行する。固
定小数点命令の実行に続いて、FXU22は、その命令
の結果データをGPRリネーム・バッファ33に出力
し、GPRリネーム・バッファ33は、GPRリネーム
・バッファ33から1つまたは複数のGPR32へ結果
データを転送することによって命令が完了するまで、結
果データの一時記憶となる。逆に、FPU30は、浮動
小数点レジスタ(FPR)36またはFPRリネーム・
バッファ37から受け取るソース・オペランドに対し
て、浮動小数点の乗算や除算などの浮動小数点演算を実
行する。FPU30は、浮動小数点命令の実行から生じ
るデータを、選択されたFPRリネーム・バッファ37
に出力し、このFPRリネーム・バッファ37は、FP
Rリネーム・バッファ37から選択されたFPR36へ
結果データを転送することによって命令が完了するま
で、結果データを一時的にロードまたはストアする。L
SU28は、浮動小数点命令および固定小数点命令を実
行し、メモリ(すなわち、データ・キャッシュ16また
は主記憶のいずれか)から選択されたGPR32または
FPR36へデータをロードするか、GPR32、GP
Rリネーム・バッファ33、FPR36または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に格納される。取り出された分岐命令
は、命令ストリームから除去され、実行のためBPU1
8に転送される。BPU18には、分岐履歴テーブルな
ど、その分岐が行われるかどうかを予測することによっ
てBPU18が未解決の条件分岐命令を投機実行できる
ようにする分岐予測機構が含まれる。
ル・フェッチャ17が、1つまたは複数のメモリ・アド
レスに関連する1つまたは複数の命令を命令キャッシュ
14から取り出す。命令キャッシュ14から取り出され
た順次命令は、シーケンシャル・フェッチャ17によっ
て命令キュー19に格納される。取り出された分岐命令
は、命令ストリームから除去され、実行のためBPU1
8に転送される。BPU18には、分岐履歴テーブルな
ど、その分岐が行われるかどうかを予測することによっ
てBPU18が未解決の条件分岐命令を投機実行できる
ようにする分岐予測機構が含まれる。
【0011】復号/ディスパッチ・ステージの間に、デ
ィスパッチ・ユニット20が、命令キュー19からの1
つまたは複数の命令を復号し、FXU22、LSU28
およびFPU30のうちの適切な1つにディスパッチす
る。また、復号/ディスパッチ・ステージの間に、ディ
スパッチ・ユニット20は、ディスパッチされた命令の
結果データのそれぞれについて、GPRリネーム・バッ
ファ33またはFPRリネーム・バッファ37内で1つ
のリネーム・バッファを割り振る。本発明の好ましい実
施例によれば、プロセッサ10は、プログラム順で命令
をディスパッチし、ディスパッチされた命令のプログラ
ム順序を非整順実行中に独自の命令識別子を使用して追
跡する。命令識別子のほかに、プロセッサ10の実行パ
イプライン内の各命令は、その命令のオペランドAおよ
びBのソースを示すrAタグおよびrBタグと、その命
令の結果データ用のGPRリネーム・バッファ33また
はFPRリネーム・バッファ37内の宛先リネーム・バ
ッファを示すrDタグを有する。
ィスパッチ・ユニット20が、命令キュー19からの1
つまたは複数の命令を復号し、FXU22、LSU28
およびFPU30のうちの適切な1つにディスパッチす
る。また、復号/ディスパッチ・ステージの間に、ディ
スパッチ・ユニット20は、ディスパッチされた命令の
結果データのそれぞれについて、GPRリネーム・バッ
ファ33またはFPRリネーム・バッファ37内で1つ
のリネーム・バッファを割り振る。本発明の好ましい実
施例によれば、プロセッサ10は、プログラム順で命令
をディスパッチし、ディスパッチされた命令のプログラ
ム順序を非整順実行中に独自の命令識別子を使用して追
跡する。命令識別子のほかに、プロセッサ10の実行パ
イプライン内の各命令は、その命令のオペランドAおよ
びBのソースを示すrAタグおよびrBタグと、その命
令の結果データ用のGPRリネーム・バッファ33また
はFPRリネーム・バッファ37内の宛先リネーム・バ
ッファを示すrDタグを有する。
【0012】実行ステージの間に、FXU22、LSU
28およびFPU30は、指示された演算のオペランド
と実行リソースが使用可能である時に、ディスパッチ・
ユニット20から受け取った命令を実行する。実行が終
了した後に、FXU22、LSU28およびFPU30
は、命令のタイプに応じてGPRリネーム・バッファ3
3またはFPRリネーム・バッファ37のいずれかに結
果データをロードまたはストアする。その後、FXU2
2、LSU28およびFPU30は、どの命令の実行を
終了したかを完了ユニット40に通知する。最後に、命
令は、結果データをGPRリネーム・バッファ33から
GPR32へまたはFPRリネーム・バッファ37から
FPR36へ転送することによって、完了ユニット40
によってプログラム順で完了する。
28およびFPU30は、指示された演算のオペランド
と実行リソースが使用可能である時に、ディスパッチ・
ユニット20から受け取った命令を実行する。実行が終
了した後に、FXU22、LSU28およびFPU30
は、命令のタイプに応じてGPRリネーム・バッファ3
3またはFPRリネーム・バッファ37のいずれかに結
果データをロードまたはストアする。その後、FXU2
2、LSU28およびFPU30は、どの命令の実行を
終了したかを完了ユニット40に通知する。最後に、命
令は、結果データをGPRリネーム・バッファ33から
GPR32へまたはFPRリネーム・バッファ37から
FPR36へ転送することによって、完了ユニット40
によってプログラム順で完了する。
【0013】本発明の好ましい実施例では、プロセッサ
10は、複数の汎用レジスタとメモリとの間でデータの
ロードおよびまたはストアを行う、多重レジスタ命令を
実行することができる。具体的に言うと、PowerP
C(商標)マイクロプロセッサの好ましい実施例では、
マイクロプロセッサ10は、複数ワードをメモリから汎
用レジスタ(GPR)にロードするロード多重命令(l
mw)と、複数ワードをGPRからメモリにストアする
ストア多重命令(stmw)を実行する。
10は、複数の汎用レジスタとメモリとの間でデータの
ロードおよびまたはストアを行う、多重レジスタ命令を
実行することができる。具体的に言うと、PowerP
C(商標)マイクロプロセッサの好ましい実施例では、
マイクロプロセッサ10は、複数ワードをメモリから汎
用レジスタ(GPR)にロードするロード多重命令(l
mw)と、複数ワードをGPRからメモリにストアする
ストア多重命令(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のロードまたはストアに進行し、その
後、レジスタ5、レジスタ6など、レジスタ31を含む
レジスタ31までのすべてのレジスタがストアされるま
でこの処理を続ける。その時点で、ストア多重命令の実
行が終了する。これは、完了ユニット40に報告され、
完了ユニット40は、システム内のアーキテクチャ・レ
ジスタにコミットすることによってこの命令を完了す
る。
はストア多重命令が、32個までの連続したレジスタ
に、32個までの連続したワードをメモリからストアさ
れることを必要とする。たとえば、ストア多重命令stmw
r3, r2, r1では、レジスタ3ないしレジスタ31の内
容が、<r2 + r1>にあるメモリにロードまたは
ストアされる。したがって、この例では、最初に格納さ
れるレジスタはレジスタ3(r3)である。LSU28
は、レジスタ4のロードまたはストアに進行し、その
後、レジスタ5、レジスタ6など、レジスタ31を含む
レジスタ31までのすべてのレジスタがストアされるま
でこの処理を続ける。その時点で、ストア多重命令の実
行が終了する。これは、完了ユニット40に報告され、
完了ユニット40は、システム内のアーキテクチャ・レ
ジスタにコミットすることによってこの命令を完了す
る。
【0016】図2を参照すると、従来技術のマイクロプ
ロセッサでストア多重命令と後続の浮動小数点命令を処
理するのに必要なプロセッサ・サイクルのタイミング図
が示されている。ストア多重命令(store Mult)は、サ
イクル1の間にシーケンシャル・フェッチャ17によっ
て命令キャッシュ14から取り出される(F)。この命
令は、サイクル2の間に復号(Dec)され、サイクル
3の間にディスパッチ・ユニット20によってLSU2
8にディスパッチ(Disp)される。LSU28は、
サイクル4ないしサイクル7の間にこのストア多重命令
を実行(E)し、この命令は、完了ユニット40によっ
てサイクル8の間に完了(C)する。
ロセッサでストア多重命令と後続の浮動小数点命令を処
理するのに必要なプロセッサ・サイクルのタイミング図
が示されている。ストア多重命令(store Mult)は、サ
イクル1の間にシーケンシャル・フェッチャ17によっ
て命令キャッシュ14から取り出される(F)。この命
令は、サイクル2の間に復号(Dec)され、サイクル
3の間にディスパッチ・ユニット20によってLSU2
8にディスパッチ(Disp)される。LSU28は、
サイクル4ないしサイクル7の間にこのストア多重命令
を実行(E)し、この命令は、完了ユニット40によっ
てサイクル8の間に完了(C)する。
【0017】従来技術では、ロード多重命令またはスト
ア多重命令に続く浮動小数点命令は、必ず直列化され、
その結果、ロード多重命令またはストア多重命令が完了
するまで取り出されないようになる。これによって、格
納されたオペランド・データの保全性が保証される。し
たがって、図2の従来技術の例では、後続の浮動小数点
命令は、サイクル9まで取り出されない。このようなシ
ステムでは、多重レジスタ命令が完了するまで命令パイ
プラインを停止させることによって、実質的にマイクロ
プロセッサ性能が制限される。
ア多重命令に続く浮動小数点命令は、必ず直列化され、
その結果、ロード多重命令またはストア多重命令が完了
するまで取り出されないようになる。これによって、格
納されたオペランド・データの保全性が保証される。し
たがって、図2の従来技術の例では、後続の浮動小数点
命令は、サイクル9まで取り出されない。このようなシ
ステムでは、多重レジスタ命令が完了するまで命令パイ
プラインを停止させることによって、実質的にマイクロ
プロセッサ性能が制限される。
【0018】本発明によれば、ロード多重命令またはス
トア多重命令の実行中に後続の浮動小数点命令を非整順
に完了することができる。たとえば、好ましい実施例で
は、ストア多重動作で、32個までの連続したレジスタ
を32ワードまでのメモリ内の位置にストアすることが
必要である。たとえば、ストア多重命令stmw r3, r2,r1
では、レジスタ3ないしレジスタ31の内容が、位置<
r2+r1>にあるメモリにストアされる。本発明によ
れば、ストア多重命令のディスパッチの直後に、無条件
に後続の浮動小数点命令をマイクロプロセッサ内の浮動
小数点実行ユニットにディスパッチすることができる。
さらに、これらの浮動小数点命令は、プログラミング・
シーケンスから外れて、ストア多重命令の前に完了す
る。
トア多重命令の実行中に後続の浮動小数点命令を非整順
に完了することができる。たとえば、好ましい実施例で
は、ストア多重動作で、32個までの連続したレジスタ
を32ワードまでのメモリ内の位置にストアすることが
必要である。たとえば、ストア多重命令stmw r3, r2,r1
では、レジスタ3ないしレジスタ31の内容が、位置<
r2+r1>にあるメモリにストアされる。本発明によ
れば、ストア多重命令のディスパッチの直後に、無条件
に後続の浮動小数点命令をマイクロプロセッサ内の浮動
小数点実行ユニットにディスパッチすることができる。
さらに、これらの浮動小数点命令は、プログラミング・
シーケンスから外れて、ストア多重命令の前に完了す
る。
【0019】本発明では、浮動小数点演算からの結果デ
ータが浮動小数点レジスタに格納されるのに対して、ロ
ード多重またはストア多重命令が汎用レジスタからスト
アを行うので、多重レジスタ命令を後続の浮動小数点命
令と直列化する必要がないことが認識される。その結
果、ロード多重命令またはストア多重命令に必要なレジ
スタの連続した組の全体が、浮動小数点命令の実行によ
って破壊される可能性がない。この種の早期完了は、例
外をもたらす命令が整順に完了しない場合であっても、
すべての事象がプログラム順で発生することの見通しを
プログラマが有しなければならないという要件に違反し
ない。浮動小数点演算の実行が例外をもたらすが、多重
レジスタ命令がまだ実行中の場合には、その例外はこの
多重レジスタ命令が完了するまで採用されない。
ータが浮動小数点レジスタに格納されるのに対して、ロ
ード多重またはストア多重命令が汎用レジスタからスト
アを行うので、多重レジスタ命令を後続の浮動小数点命
令と直列化する必要がないことが認識される。その結
果、ロード多重命令またはストア多重命令に必要なレジ
スタの連続した組の全体が、浮動小数点命令の実行によ
って破壊される可能性がない。この種の早期完了は、例
外をもたらす命令が整順に完了しない場合であっても、
すべての事象がプログラム順で発生することの見通しを
プログラマが有しなければならないという要件に違反し
ない。浮動小数点演算の実行が例外をもたらすが、多重
レジスタ命令がまだ実行中の場合には、その例外はこの
多重レジスタ命令が完了するまで採用されない。
【0020】ここで図3を参照すると、本発明の好まし
い実施例による、本発明のマイクロプロセッサ内で1つ
のストア多重命令(Store Mult)と2つの浮動小数点命
令(FP Inst1およびFP Inst2)を処理するサイクルのタ
イミング図が示されている。1例として、下記の命令シ
ーケンスの処理を検討する。 stmw r28, r2, r1 fp-add r2, r2, r28 fp-add r3, r3, r30
い実施例による、本発明のマイクロプロセッサ内で1つ
のストア多重命令(Store Mult)と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の間にLSU28によって実行され、サイクル8
で完了する。本発明によれば、FP Inst1およびFP Inst2
を、ストア多重命令のディスパッチの前または後の任意
の時刻にディスパッチできるようにすることによって、
非整順完了がサポートされる。この例では、浮動小数点
命令は、先行するストア多重命令がサイクル3でディス
パッチされた後に、プログラム・シーケンス内でできる
限り早くディスパッチされる。FP Inst1はサイクル4の
間にディスパッチされ、1サイクルあたり1命令しか取
り出すことができないので、FP Inst2はサイクル5の間
にディスパッチされる。これらの浮動小数点命令は、ス
トア多重命令実行の進行に無関係に、FPU30内でサ
イクル5およびサイクル6に即座に実行することができ
る。浮動小数点命令1および2の結果は、それぞれサイ
クル6またはサイクル7までFPRリネーム・バッファ
37内に保持され、その時点で、結果のオペランドがそ
れぞれレジスタ2またはレジスタ3にストアされる。し
たがって、前に説明したように、浮動小数点命令は、プ
ログラム・シーケンス上で先行するストア多重命令が完
了する前に完了することができる。
サイクル1の間に取り出され、サイクル2で復号され、
サイクル3でディスパッチされ、サイクル4ないしサイ
クル7の間にLSU28によって実行され、サイクル8
で完了する。本発明によれば、FP Inst1およびFP Inst2
を、ストア多重命令のディスパッチの前または後の任意
の時刻にディスパッチできるようにすることによって、
非整順完了がサポートされる。この例では、浮動小数点
命令は、先行するストア多重命令がサイクル3でディス
パッチされた後に、プログラム・シーケンス内でできる
限り早くディスパッチされる。FP Inst1はサイクル4の
間にディスパッチされ、1サイクルあたり1命令しか取
り出すことができないので、FP Inst2はサイクル5の間
にディスパッチされる。これらの浮動小数点命令は、ス
トア多重命令実行の進行に無関係に、FPU30内でサ
イクル5およびサイクル6に即座に実行することができ
る。浮動小数点命令1および2の結果は、それぞれサイ
クル6またはサイクル7までFPRリネーム・バッファ
37内に保持され、その時点で、結果のオペランドがそ
れぞれレジスタ2またはレジスタ3にストアされる。し
たがって、前に説明したように、浮動小数点命令は、プ
ログラム・シーケンス上で先行するストア多重命令が完
了する前に完了することができる。
【0022】要約すると、本発明は、先行するロード多
重命令またはストア多重命令の実行中の浮動小数点演算
の早期完了のための方法および装置を提供する。本発明
によれば、直列化が不要になり、追加の後続命令をロー
ド多重命令またはストア多重命令と同時に実行できるよ
うになるので、マイクロプロセッサ性能が実質的に向上
する。マイクロプロセッサの完了バッファに応じて、か
なりの量の追加命令を、多重レジスタ命令の実行中にマ
イクロプロセッサによって実行し、完了することができ
る。たとえば、5レジスタの完了バッファ深さを有する
好ましい実施例では、パイプライン・ストールなしで4
つまでの追加命令を完了させる潜在能力がある。ロード
多重命令またはストア多重命令の完了には最大36サイ
クルを要するので、本発明は、マイクロプロセッサの速
度と効率を強化する実質的な時間の節約をもたらす。
重命令またはストア多重命令の実行中の浮動小数点演算
の早期完了のための方法および装置を提供する。本発明
によれば、直列化が不要になり、追加の後続命令をロー
ド多重命令またはストア多重命令と同時に実行できるよ
うになるので、マイクロプロセッサ性能が実質的に向上
する。マイクロプロセッサの完了バッファに応じて、か
なりの量の追加命令を、多重レジスタ命令の実行中にマ
イクロプロセッサによって実行し、完了することができ
る。たとえば、5レジスタの完了バッファ深さを有する
好ましい実施例では、パイプライン・ストールなしで4
つまでの追加命令を完了させる潜在能力がある。ロード
多重命令またはストア多重命令の完了には最大36サイ
クルを要するので、本発明は、マイクロプロセッサの速
度と効率を強化する実質的な時間の節約をもたらす。
【0023】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0024】(1)複数の汎用レジスタのうちの複数の
レジスタからメモリへデータをストアまたはロードする
多重レジスタ命令を少なくとも1つ含み、ディスパッチ
ャと、複数の汎用レジスタと、複数の浮動小数点レジス
タと、ロード/ストア・ユニットおよび浮動小数点実行
ユニットを含む複数の実行ユニットとを含むスーパース
カラ・マイクロプロセッサにおいて、多重レジスタ命令
のディスパッチ時にその多重レジスタ命令の実行を開始
するロード/ストア・ユニットへ、ディスパッチャから
多重レジスタ命令をディスパッチするステップと、プロ
グラム順ではディスパッチされた多重レジスタ命令の後
に続き、複数の浮動小数点レジスタのうちの1つまたは
複数の浮動小数点レジスタに格納されたソース・オペラ
ンド・データに依存する浮動小数点命令を、浮動小数点
命令を実行する浮動小数点ユニットへ、ディスパッチャ
からディスパッチするステップと、多重レジスタ命令が
ロード/ストア・ユニットにディスパッチされた後で、
多重レジスタ命令の実行が終了する前に、浮動小数点命
令を完了するステップとを含む、スーパースカラ・マイ
クロプロセッサ内で複数の命令の非整順完了をサポート
する方法。 (2)多重レジスタ命令が、複数の汎用レジスタからメ
モリにデータをストアすることを特徴とする、上記
(1)に記載の方法。 (3)多重レジスタ命令が、メモリから複数の汎用レジ
スタにデータをロードすることを特徴とする、上記
(1)に記載の方法。 (4)整数データを選択的に格納する複数の汎用レジス
タと、浮動小数点データを選択的に格納する複数の浮動
小数点レジスタと、複数の汎用レジスタにデータをロー
ドするロード多重命令およびストアするストア多重命令
を実行する、ロード/ストア実行ユニットと、複数の浮
動小数点レジスタに格納されたオペランド・データに対
して浮動小数点演算を実行する浮動小数点実行ユニット
と、ロード/ストア実行ユニットおよび浮動小数点実行
ユニットを含む複数の実行ユニットに命令をディスパッ
チするディスパッチ・ユニットであって、多重レジスタ
命令の実行を開始するためにロード/ストア・ユニット
に多重レジスタ命令をディスパッチし、ロード/ストア
・ユニットで多重レジスタ命令が実行を終了する前に、
複数の浮動小数点レジスタのうちの1つまたは複数の浮
動小数点レジスタに格納されたソース・オペランド・デ
ータに依存する浮動小数点命令を、浮動小数点実行ユニ
ットにディスパッチするディスパッチ・ユニットとを含
み、ディスパッチされた浮動小数点命令が、多重レジス
タ命令が実行を終了する前に完了することを特徴とする
メモリに接続された、前のロード多重命令またはストア
多重命令から非整順に浮動小数点命令を完了することが
できるスーパースカラ・マイクロプロセッサ。
レジスタからメモリへデータをストアまたはロードする
多重レジスタ命令を少なくとも1つ含み、ディスパッチ
ャと、複数の汎用レジスタと、複数の浮動小数点レジス
タと、ロード/ストア・ユニットおよび浮動小数点実行
ユニットを含む複数の実行ユニットとを含むスーパース
カラ・マイクロプロセッサにおいて、多重レジスタ命令
のディスパッチ時にその多重レジスタ命令の実行を開始
するロード/ストア・ユニットへ、ディスパッチャから
多重レジスタ命令をディスパッチするステップと、プロ
グラム順ではディスパッチされた多重レジスタ命令の後
に続き、複数の浮動小数点レジスタのうちの1つまたは
複数の浮動小数点レジスタに格納されたソース・オペラ
ンド・データに依存する浮動小数点命令を、浮動小数点
命令を実行する浮動小数点ユニットへ、ディスパッチャ
からディスパッチするステップと、多重レジスタ命令が
ロード/ストア・ユニットにディスパッチされた後で、
多重レジスタ命令の実行が終了する前に、浮動小数点命
令を完了するステップとを含む、スーパースカラ・マイ
クロプロセッサ内で複数の命令の非整順完了をサポート
する方法。 (2)多重レジスタ命令が、複数の汎用レジスタからメ
モリにデータをストアすることを特徴とする、上記
(1)に記載の方法。 (3)多重レジスタ命令が、メモリから複数の汎用レジ
スタにデータをロードすることを特徴とする、上記
(1)に記載の方法。 (4)整数データを選択的に格納する複数の汎用レジス
タと、浮動小数点データを選択的に格納する複数の浮動
小数点レジスタと、複数の汎用レジスタにデータをロー
ドするロード多重命令およびストアするストア多重命令
を実行する、ロード/ストア実行ユニットと、複数の浮
動小数点レジスタに格納されたオペランド・データに対
して浮動小数点演算を実行する浮動小数点実行ユニット
と、ロード/ストア実行ユニットおよび浮動小数点実行
ユニットを含む複数の実行ユニットに命令をディスパッ
チするディスパッチ・ユニットであって、多重レジスタ
命令の実行を開始するためにロード/ストア・ユニット
に多重レジスタ命令をディスパッチし、ロード/ストア
・ユニットで多重レジスタ命令が実行を終了する前に、
複数の浮動小数点レジスタのうちの1つまたは複数の浮
動小数点レジスタに格納されたソース・オペランド・デ
ータに依存する浮動小数点命令を、浮動小数点実行ユニ
ットにディスパッチするディスパッチ・ユニットとを含
み、ディスパッチされた浮動小数点命令が、多重レジス
タ命令が実行を終了する前に完了することを特徴とする
メモリに接続された、前のロード多重命令またはストア
多重命令から非整順に浮動小数点命令を完了することが
できるスーパースカラ・マイクロプロセッサ。
【図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
Claims (4)
- 【請求項1】複数の汎用レジスタのうちの複数のレジス
タからメモリへデータをストアまたはロードする多重レ
ジスタ命令を少なくとも1つ含み、ディスパッチャと、
複数の汎用レジスタと、複数の浮動小数点レジスタと、
ロード/ストア・ユニットおよび浮動小数点実行ユニッ
トを含む複数の実行ユニットとを含むスーパースカラ・
マイクロプロセッサにおいて、 多重レジスタ命令のディスパッチ時にその多重レジスタ
命令の実行を開始するロード/ストア・ユニットへ、デ
ィスパッチャから多重レジスタ命令をディスパッチする
ステップと、 プログラム順ではディスパッチされた多重レジスタ命令
の後に続き、複数の浮動小数点レジスタのうちの1つま
たは複数の浮動小数点レジスタに格納されたソース・オ
ペランド・データに依存する浮動小数点命令を、浮動小
数点命令を実行する浮動小数点ユニットへ、ディスパッ
チャからディスパッチするステップと、 多重レジスタ命令がロード/ストア・ユニットにディス
パッチされた後で、多重レジスタ命令の実行が終了する
前に、浮動小数点命令を完了するステップとを含む、ス
ーパースカラ・マイクロプロセッサ内で複数の命令の非
整順完了をサポートする方法。 - 【請求項2】多重レジスタ命令が、複数の汎用レジスタ
からメモリにデータをストアすることを特徴とする、請
求項1に記載の方法。 - 【請求項3】多重レジスタ命令が、メモリから複数の汎
用レジスタにデータをロードすることを特徴とする、請
求項1に記載の方法。 - 【請求項4】整数データを選択的に格納する複数の汎用
レジスタと、 浮動小数点データを選択的に格納する複数の浮動小数点
レジスタと、 複数の汎用レジスタにデータをロードするロード多重命
令およびストアするストア多重命令を実行する、ロード
/ストア実行ユニットと、 複数の浮動小数点レジスタに格納されたオペランド・デ
ータに対して浮動小数点演算を実行する浮動小数点実行
ユニットと、 ロード/ストア実行ユニットおよび浮動小数点実行ユニ
ットを含む複数の実行ユニットに命令をディスパッチす
るディスパッチ・ユニットであって、多重レジスタ命令
の実行を開始するためにロード/ストア・ユニットに多
重レジスタ命令をディスパッチし、ロード/ストア・ユ
ニットで多重レジスタ命令が実行を終了する前に、複数
の浮動小数点レジスタのうちの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 true JPH09138748A (ja) | 1997-05-27 |
JP3096429B2 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100322149B1 (ko) * | 1998-02-17 | 2002-02-04 | 포만 제프리 엘 | 고성능 추론적 스트링/다중 연산 방법 |
JP2015201026A (ja) * | 2014-04-08 | 2015-11-12 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 | サン・マイクロシステムズ・インコーポレイテッド | プロセッサの状態を監視する方法及び監視システム |
US5467473A (en) * | 1993-01-08 | 1995-11-14 | International Business Machines Corporation | Out of order instruction load and store comparison |
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 | インターナショナル・ビジネス・マシーンズ・コーポレイション | スーパースカラ・プロセッサにおける命令処理の選択的逐次化の方法およびシステム |
DE69429061T2 (de) * | 1993-10-29 | 2002-07-18 | Advanced Micro Devices, Inc. | Superskalarmikroprozessoren |
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
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100322149B1 (ko) * | 1998-02-17 | 2002-02-04 | 포만 제프리 엘 | 고성능 추론적 스트링/다중 연산 방법 |
JP2015201026A (ja) * | 2014-04-08 | 2015-11-12 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US5850563A (en) | 1998-12-15 |
KR970016946A (ko) | 1997-04-28 |
EP0762271A2 (en) | 1997-03-12 |
EP0762271A3 (en) | 2000-11-15 |
JP3096429B2 (ja) | 2000-10-10 |
KR100260680B1 (ko) | 2000-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0762270B1 (en) | Microprocessor with load/store operation to/from multiple registers | |
US5611063A (en) | Method for executing speculative load instructions in high-performance processors | |
JP3580657B2 (ja) | 並列マルチタスキングの方法及びシステム | |
KR930004214B1 (ko) | 데이타 처리 시스템 | |
JP2938426B2 (ja) | 順不同ロード命令とストア命令との干渉を検出回復するための方法及び装置 | |
JP2597811B2 (ja) | データ処理システム | |
EP0638183B1 (en) | A system and method for retiring instructions in a superscalar microprocessor | |
US5764943A (en) | Data path circuitry for processor having multiple instruction pipelines | |
JPH09185506A (ja) | プロセッサ内で命令を実行する方法およびシステム | |
JPH03116236A (ja) | 例外処理方法及び例外処理装置 | |
US5872948A (en) | Processor and method for out-of-order execution of instructions based upon an instruction parameter | |
US6192461B1 (en) | Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle | |
JP3207124B2 (ja) | カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置 | |
JP3611304B2 (ja) | 1サイクルのパイプライン・ストールを生成するパイプライン・プロセッサのシステム及び方法 | |
US5678016A (en) | Processor and method for managing execution of an instruction which determine subsequent to dispatch if an instruction is subject to serialization | |
JP3096429B2 (ja) | 複数の命令の非整順完了をサポートする方法およびスーパースカラ・マイクロプロセッサ | |
US6092184A (en) | Parallel processing of pipelined instructions having register dependencies | |
KR100267434B1 (ko) | 제 1 처리 환경내에서 제 1 명령어를 에뮬레이션 환경내에서의제 2 명령어 처리 개시에 응하여 처리하는 방법 및 시스템 | |
RU2150738C1 (ru) | Система обработки и способ ее функционирования | |
US5784606A (en) | Method and system in a superscalar data processing system for the efficient handling of exceptions | |
US5926645A (en) | Method and system for enabling multiple store instruction completions in a processing system | |
EP0306891A2 (en) | Pipelined slave protocol for high performance CPU-FPU cluster | |
US6266761B1 (en) | Method and system in an information processing system for efficient maintenance of copies of values stored within registers | |
US7991816B2 (en) | Inverting data on result bus to prepare for instruction in the next cycle for high frequency execution units | |
JPH10283178A (ja) | 命令を発行するための方法及びシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |