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
Application number
JP08221086A
Other languages
English (en)
Other versions
JPH09138748A (ja
Inventor
アルバート・ジェイ・ローパー
ソウンミヤ・マリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH09138748A publication Critical patent/JPH09138748A/ja
Application granted granted Critical
Publication of JP3096429B2 publication Critical patent/JP3096429B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, 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)実行によるレジスタ・データの破
壊を防ぐために、多重レジスタ命令が完了するまで命令
バッファに保持される。このようなシステムでは、多重
レジスタ命令が完了するまで命令パイプラインを停止さ
せることによって、実質的にマイクロプロセッサ性能
が制限される。
【0003】
【発明が解決しようとする課題】多重レジスタ命令を実
行している間に後続の浮動小数点命令の実行を開始で
き、おそらくは実行を完了できるようにする方法および
システムが必要である。このような機構があれば、複数
のレジスタを利用する命令を後続の浮動小数点命令と並
列に実行できるので、スーパースカラ設計を有するマイ
クロプロセッサの性能がかなり改善されるはずである。
【0004】
【課題を解決するための手段】本発明によれば、先行す
ロード多重命令またはストア多重命令の実行が終了す
前に浮動小数点命令を早期に完了するためのスーパー
スカラ・マイクロプロセッサ内の方法および装置が提供
される。このマイクロプロセッサのロード/ストア
ニットは、データを汎用レジスタにロードまたは汎用レ
ジスタからメモリにストアし、このマイクロプロセッサ
のディスパッチ・ユニットは、ロード/ストアユニッ
トと浮動小数点実行ユニットを含む複数の実行ユニット
に命令をディスパッチする。この方法は、多重レジスタ
命令をディスパッチ・ユニットからロード/ストア・ユ
ニットにディスパッチして多重レジスタ命令の実行を
開始することを含んでいる。なお、多重レジスタ命令
は、ストア多重命令やロード多重命令のように、所定数
の汎用レジスタ(たとえば、32個の汎用レジスタ)の
うちの連続する2つ以上の汎用レジスタからメモリへデ
ータを順次にストアしたり、またはメモリからのデータ
を連続する2つ以上の汎用レジスタに順次にロードする
ための命令である。さらに、ロード/ストア・ユニット
内で多重レジスタ命令が実行を終了する前に、ディスパ
ッチ・ユニットは、所定数の浮動小数点レジスタのうち
の1つ以上の浮動小数点レジスタに格納されたソース・
オペランド・データに依存する浮動小数点命令を浮動小
数点ユニットにディスパッチし、ディスパッチされた浮
動小数点命令は、多重レジスタ命令が実行を終了する前
に実行を完了する。
【0005】本発明の上記ならびに他の目的、特徴およ
び長所は、以下の詳細な説明で明らかになる。
【0006】
【発明の実施の形態】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
に転送する。
【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つからメモリへデータをストアするための命令で
ある
【0009】プロセッサ10は、命令のパイプライン化
と非整順実行の両方を利用して、スーパースカラ・アー
キテクチャの性能をさらに向上させる。したがって、命
令は、データ依存性が監視されない限り、任意の順序で
FXU22、LSU28およびFPU30によって実行
できる。さらに、命令は、一連のパイプライン・ステー
ジでFXU22、LSU28およびFPU30の各々
よって処理される。高性能プロセッサで典型的なとお
り、各命令は、5つの別個のパイプライン・ステージ、
すなわち、フェッチ、復号/ディスパッチ、実行、終了
および完了の各ステージで処理される。
【0010】フェッチ・ステージの間に、シーケンシ
ャル・フェッチャ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タグを有する。
【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によって
プログラム順で完了する。
【0013】本発明の好ましい実施例では、プロセッサ
10は、複数の汎用レジスタとメモリとの間でデータの
ロードおよびまたはストアを行う、多重レジスタ命令を
実行することができる。具体的に言うと、PowerP
C(商標)マイクロプロセッサの好ましい実施例では
ロセッサ10は、複数ワードをメモリから汎用レジス
タ(GPR)32にロードするロード多重命令(lm
w)と、複数ワードをGPR32からメモリにストアす
るストア多重命令(stmw)を実行する。
【0014】これらの多重レジスタ命令は、シーケンシ
ャル・フェッチャ17によって命令キャッシュ14から
取り出され、命令キュー19にロードされる。ディスパ
ッチ・ユニット20による多重レジスタ命令のディスパ
ッチの際に、LSU28は、多重レジスタ命令の実行を
開始する。また、その命令のディスパッチの際には、多
重レジスタ命令で識別された、GPR32のうちの複数
汎用レジスタが、その命令に割り振られる。
【0015】好ましい実施例では、ロード多重命令また
はストア多重命令が、32個までの連続した汎用レジス
とメモリとの間で、32個までの連続したワードを
受することを必要とする。たとえば、ストア多重命令
stmw r3, r2, r1では、汎用レジスタ3〜31の内
容が、<r2 + r1>によって指定されるメモリ
置にストアされる。したがって、この例では、その内容
をストアすべき最初の汎用レジスタは、汎用レジスタ3
(r3)である。その後、LSU28は、汎用レジスタ
から汎用レジスタ31までのすべての汎用レジスタ
内容がストアされるまでこの処理を続ける。その時点
で、ストア多重命令の実行が終了する。これは、完了ユ
ニット40に報告され、完了ユニット40は、システム
内のアーキテクチャ・レジスタにコミットすることによ
ってこの命令を完了する。
【0016】図2には、従来技術のマイクロプロセッサ
でストア多重命令と後続の浮動小数点命令を処理する
のに必要なプロセッサ・サイクルのタイミング図が示さ
れている。ストア多重命令(store Mult)は、サイクル
1の間にシーケンシャル・フェッチャ17によって命令
キャッシュ14から取り出される(F)。この命令は、
サイクル2の間に復号(Dec)され、サイクル3の間
にディスパッチ・ユニット20によってLSU28にデ
ィスパッチ(Disp)される。LSU28は、サイク
ル47の間にこのストア多重命令を実行(E)し、こ
の命令は、完了ユニット40によってサイクル8の間に
完了(C)する。
【0017】従来技術では、ロード多重命令またはスト
ア多重命令に続く浮動小数点命令は、必ず直列化され、
その結果、ロード多重命令またはストア多重命令が完了
するまで取り出されないようになる。これによって、格
納されたオペランド・データの保全性が保証される。し
たがって、図2の従来技術の例では、後続の浮動小数点
命令は、サイクル9まで取り出されない。このようなシ
ステムでは、多重レジスタ命令が完了するまで命令パイ
プラインを停止させることによって、実質的にマイクロ
プロセッサ性能が制限される。
【0018】本発明によれば、ロード多重命令またはス
トア多重命令の実行中に後続の浮動小数点命令を非整
順に完了することができる。たとえば、好ましい実施例
では、ストア多重動作、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
【0021】図3に示すように、ストア多重命令はサイ
クル1の間に取り出され、サイクル2で復号され、サイ
クル3でディスパッチされ、サイクル47の間に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サイクルを要するので、本発明
は、マイクロプロセッサの速度と効率を強化する実質的
な時間の節約をもたらす。
【図面の簡単な説明】
【図1】本発明の好ましい実施例に従った、プロセッサ
のブロック図である。
【図2】従来技術でロード多重命令またはストア多重命
令と後続の浮動小数点命令を処理するのに必要なサイク
ルのタイミング図である。
【図3】発明のマイクロプロセッサでロード多重命
令またはストア多重命令と後続の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)

    (57)【特許請求の範囲】
  1. 【請求項1】メモリと、ディスパッチ・ユニットと、
    数の汎用レジスタと、所定数の浮動小数点レジスタ
    と、ロード/ストア・ユニットおよび浮動小数点実行ユ
    ニットを含む複数の実行ユニットとを備え、前記メモリ
    からのデータを前記所定数の汎用レジスタのうちの連続
    する2つ以上の汎用レジスタに順次にロードするか、ま
    たは連続する2つ以上の汎用レジスタからのデータを前
    記メモリに順次にストアするための多重レジスタ命令を
    実行することができるスーパースカラ・マイクロプロセ
    ッサにおいて、前記 多重レジスタ命令を前記ディスパッチ・ユニットか
    ら前記ロード/ストア・ユニットにディスパッチする
    とにより、前記ロード/ストア・ユニットにおける前記
    多重レジスタ命令の実行を開始させるステップと、 プログラム順では前記ディスパッチされた多重レジスタ
    命令に後続し、且つ前記所定数の浮動小数点レジスタの
    うちの1つ以上の浮動小数点レジスタに格納されたソー
    ス・オペランド・データに依存する浮動小数点命令を、
    前記ディスパッチ・ユニットから前記浮動小数点実行ユ
    ニットディスパッチするステップと、前記 多重レジスタ命令が前記ロード/ストア・ユニット
    にディスパッチされた後で、且つ前記多重レジスタ命令
    の実行が終了する前に、前記浮動小数点命令の実行を完
    了するステップとから成り、 前記完了するステップが、前記浮動小数点命令の実行結
    果データを前記所定数の浮動小数点レジスタのうちの1
    つ以上の浮動小数点レジスタに格納するステップ を含
    、複数の命令の非整順完了をサポートする方法。
  2. 【請求項2】前記多重レジスタ命令が、前記2つ以上
    汎用レジスタからのデータを前記メモリに順次にストア
    する多重レジスタ・ストア命令である、請求項1に記載
    の方法。
  3. 【請求項3】前記多重レジスタ命令が、前記メモリから
    のデータを前記2つ以上の汎用レジスタに順次にロード
    するための多重レジスタ・ロード命令である、請求項1
    に記載の方法。
  4. 【請求項4】メモリを備え、プログラム順で先行する多
    重レジスタ命令の実行中に、後続の浮動小数点命令を非
    整順に完了することができるスーパースカラ・マイクロ
    プロセッサであって、 整数データを選択的に格納する所定数の汎用レジスタ
    と、 浮動小数点データを選択的に格納する所定数の浮動小数
    点レジスタと、前記メモリからのデータを前記所定数の 汎用レジスタ
    うちの連続する2つ以上の汎用レジスタに順次にロード
    するか、または連続する2つ以上の汎用レジスタからの
    データを前記メモリに順次にストアするための前記多重
    レジスタ命令を実行するロード/ストアユニットと、前記所定 数の浮動小数点レジスタのうちの1つ以上の浮
    動小数点レジスタに格納されたオペランド・データに対
    して浮動小数点演算を実行する浮動小数点実行ユニット
    と、前記 ロード/ストアユニットおよび前記浮動小数点実
    行ユニットを含む複数の実行ユニットに命令をディスパ
    ッチするディスパッチ・ユニットであって、前記多重レ
    ジスタ命令を前記ロード/ストア・ユニットにディスパ
    ッチすることにより、前記ロード/ストア・ユニット
    おける前記多重レジスタ命令の実行を開始させるととも
    に、前記ロード/ストア・ユニットにおける前記多重レ
    ジスタ命令実行終了する前に、前記所定数の浮動小
    数点レジスタのうちの1つ以上の浮動小数点レジスタに
    格納されたソース・オペランド・データに依存する浮動
    小数点命令を、前記浮動小数点実行ユニットにディスパ
    ッチするディスパッチ・ユニットと、 前記浮動小数点命令の実行結果データを前記所定数の浮
    動小数点レジスタのうちの1つ以上の浮動小数点レジス
    タに格納することにより、前記ロード/ストア・ユニッ
    トにおける前記多重レジスタ命令の実行が終了する前
    に、前記浮動小数 点命令の実行を完了する完了ユニット
    を備えた ことを特徴とする、前記 スーパースカラ・マイクロプロセッサ。
JP08221086A 1995-09-11 1996-08-22 複数の命令の非整順完了をサポートする方法およびスーパースカラ・マイクロプロセッサ Expired - Fee Related JP3096429B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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