JPH09146770A - 命令を実行する方法およびマイクロプロセッサ - Google Patents
命令を実行する方法およびマイクロプロセッサInfo
- Publication number
- JPH09146770A JPH09146770A JP8191865A JP19186596A JPH09146770A JP H09146770 A JPH09146770 A JP H09146770A JP 8191865 A JP8191865 A JP 8191865A JP 19186596 A JP19186596 A JP 19186596A JP H09146770 A JPH09146770 A JP H09146770A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- load
- store
- instructions
- registers
- 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 19
- 230000015654 memory Effects 0.000 claims description 32
- 230000008569 process Effects 0.000 abstract description 5
- 239000000872 buffer Substances 0.000 description 29
- 238000010586 diagram Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 101100236201 Arabidopsis thaliana LSU2 gene Proteins 0.000 description 1
- 101001059802 Homo sapiens N-formyl peptide receptor 3 Proteins 0.000 description 1
- 102100028130 N-formyl peptide receptor 3 Human genes 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000004575 stone 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, 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, look ahead
- G06F9/3824—Operand accessing
-
- 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, look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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, 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 スーパースカラー・マイクロプロセッサで複
数ロード命令を実行する方法および装置を提供する。 【解決手段】 複数のレジスタのうちの各レジスタをリ
ストし、実行中の複数ロード命令によって各レジスタに
データがロードされた時期を示すテーブルを管理するス
テップをさらに含む。この方法は、ソース・オペランド
・データがソース・レジスタにロードされたことをテー
ブルが示したときに、複数ロード命令がその実行を完了
する前に、その命令がソース・レジスタとして示した複
数のレジスタのうちの1つのレジスタに複数ロード命令
によってロードされたソース・オペランド・データに依
存する命令を実行することによって終了する。また、本
発明によれば、スーパースカラー・マイクロプロセッサ
で複数ストア命令を実行する方法も提供される。
数ロード命令を実行する方法および装置を提供する。 【解決手段】 複数のレジスタのうちの各レジスタをリ
ストし、実行中の複数ロード命令によって各レジスタに
データがロードされた時期を示すテーブルを管理するス
テップをさらに含む。この方法は、ソース・オペランド
・データがソース・レジスタにロードされたことをテー
ブルが示したときに、複数ロード命令がその実行を完了
する前に、その命令がソース・レジスタとして示した複
数のレジスタのうちの1つのレジスタに複数ロード命令
によってロードされたソース・オペランド・データに依
存する命令を実行することによって終了する。また、本
発明によれば、スーパースカラー・マイクロプロセッサ
で複数ストア命令を実行する方法も提供される。
Description
【0001】
【発明の属する技術分野】本発明は、一般的にはマイク
ロプロセッサ内で命令実行中に行うリソースの割振りに
関し、具体的には本発明は、追加命令の同時実行を可能
にするために逐次化した複数ロード/ストア操作専用の
リソースの早期割振り解除に関する。
ロプロセッサ内で命令実行中に行うリソースの割振りに
関し、具体的には本発明は、追加命令の同時実行を可能
にするために逐次化した複数ロード/ストア操作専用の
リソースの早期割振り解除に関する。
【0002】
【従来の技術】マルチレジスタ・ロード/ストア命令で
は、1つのマイクロプロセッサ内に含まれるすべての汎
用レジスタ(通常は32個)を変更するかまたは使い果
たすので、完全な逐次化が必要である。IBM製のPo
werPCTM系列のマイクロプロセッサには、整数複数
ロード/ストア命令が収容され、これらの命令がマイク
ロプロセッサの汎用レジスタ(GPR)との間でデータ
・ブロックを移動させる。複数レジスタ命令としては、
複数ワード・ロード(lmw)命令と、複数ワード・ス
トア(stmw)命令とが用意されている。
は、1つのマイクロプロセッサ内に含まれるすべての汎
用レジスタ(通常は32個)を変更するかまたは使い果
たすので、完全な逐次化が必要である。IBM製のPo
werPCTM系列のマイクロプロセッサには、整数複数
ロード/ストア命令が収容され、これらの命令がマイク
ロプロセッサの汎用レジスタ(GPR)との間でデータ
・ブロックを移動させる。複数レジスタ命令としては、
複数ワード・ロード(lmw)命令と、複数ワード・ス
トア(stmw)命令とが用意されている。
【0003】先行技術では、このようなマルチレジスタ
・ロード/ストア命令がシステム内のすべての汎用レジ
スタを変更するかまたは使い果たす可能性があるので、
命令シーケンス内の後続命令は、マルチレジスタ命令が
完了するまで命令バッファ内に保持される。したがっ
て、マルチレジスタ命令は命令ストリーム内のこのよう
な命令の完全な逐次化を強要するものであると想定され
ていた。先行技術でこのような逐次化を実現するため
に、マルチレジスタ命令が完了するまで、必要な汎用レ
ジスタがすべてその命令に割り振られる。このようなシ
ステムは、マルチレジスタ命令が完了するまで命令パイ
プラインを保持することによって、パフォーマンスを大
幅に制限することになる。
・ロード/ストア命令がシステム内のすべての汎用レジ
スタを変更するかまたは使い果たす可能性があるので、
命令シーケンス内の後続命令は、マルチレジスタ命令が
完了するまで命令バッファ内に保持される。したがっ
て、マルチレジスタ命令は命令ストリーム内のこのよう
な命令の完全な逐次化を強要するものであると想定され
ていた。先行技術でこのような逐次化を実現するため
に、マルチレジスタ命令が完了するまで、必要な汎用レ
ジスタがすべてその命令に割り振られる。このようなシ
ステムは、マルチレジスタ命令が完了するまで命令パイ
プラインを保持することによって、パフォーマンスを大
幅に制限することになる。
【0004】
【発明が解決しようとする課題】必要なものは、マルチ
レジスタ命令が実行されリソースが使用可能になったと
きにこれらの命令からリソースを割振り解除できるよう
にして、後続命令が実行中のマルチレジスタ命令と同時
に実行を開始できるようにするためのメカニズムであ
る。このようなメカニズムは、複数のレジスタを使用す
る命令がGPRを使用する後続命令と並列に実行できる
ようにすることにより、スーパースカラー設計を有する
マイクロプロセッサのパフォーマンスを大幅に改善する
はずである。
レジスタ命令が実行されリソースが使用可能になったと
きにこれらの命令からリソースを割振り解除できるよう
にして、後続命令が実行中のマルチレジスタ命令と同時
に実行を開始できるようにするためのメカニズムであ
る。このようなメカニズムは、複数のレジスタを使用す
る命令がGPRを使用する後続命令と並列に実行できる
ようにすることにより、スーパースカラー設計を有する
マイクロプロセッサのパフォーマンスを大幅に改善する
はずである。
【0005】
【課題を解決するための手段】本発明によれば、スーパ
ースカラー・マイクロプロセッサで複数ロード命令を実
行する方法および装置が提供される。この方法は、ロー
ド/ストア・ユニットに複数ロード命令をディスパッチ
するステップであって、ロード/ストア・ユニットがデ
ィスパッチされた複数ロード命令の実行を開始し、複数
ロード命令がメモリから複数のレジスタにデータをロー
ドするステップを含む。この方法は、複数のレジスタの
うちの各レジスタをリストし、実行中の複数ロード命令
によって各レジスタにデータがロードされた時期を示す
テーブルを管理するステップをさらに含む。この方法
は、ソース・オペランド・データがソース・レジスタに
ロードされたことをテーブルが示したときに、複数ロー
ド命令がその実行を完了する前に、その命令がソース・
レジスタとして示した複数のレジスタのうちの1つのレ
ジスタに複数ロード命令によってロードされたソース・
オペランド・データに依存する命令を実行することによ
って終了する。また、本発明によれば、スーパースカラ
ー・マイクロプロセッサで複数ストア命令を実行する方
法も提供される。この方法は、ロード/ストア・ユニッ
トに複数ストア命令をディスパッチし、その直後にロー
ド/ストア・ユニットが複数ストア命令の実行を開始
し、複数ストア命令が複数のレジスタからメモリにデー
タを格納するステップと、複数ストア命令がその実行を
完了する前に、その固定小数点命令がソース・レジスタ
として示した複数のレジスタのうちの1つのレジスタか
ら複数ストア命令によって格納されるデータに依存する
固定小数点命令を実行するが、複数ストア命令が完了す
る前に実行中の固定小数点命令を複数のレジスタのうち
の1つのレジスタに書き込むことを禁止するステップと
を含む。
ースカラー・マイクロプロセッサで複数ロード命令を実
行する方法および装置が提供される。この方法は、ロー
ド/ストア・ユニットに複数ロード命令をディスパッチ
するステップであって、ロード/ストア・ユニットがデ
ィスパッチされた複数ロード命令の実行を開始し、複数
ロード命令がメモリから複数のレジスタにデータをロー
ドするステップを含む。この方法は、複数のレジスタの
うちの各レジスタをリストし、実行中の複数ロード命令
によって各レジスタにデータがロードされた時期を示す
テーブルを管理するステップをさらに含む。この方法
は、ソース・オペランド・データがソース・レジスタに
ロードされたことをテーブルが示したときに、複数ロー
ド命令がその実行を完了する前に、その命令がソース・
レジスタとして示した複数のレジスタのうちの1つのレ
ジスタに複数ロード命令によってロードされたソース・
オペランド・データに依存する命令を実行することによ
って終了する。また、本発明によれば、スーパースカラ
ー・マイクロプロセッサで複数ストア命令を実行する方
法も提供される。この方法は、ロード/ストア・ユニッ
トに複数ストア命令をディスパッチし、その直後にロー
ド/ストア・ユニットが複数ストア命令の実行を開始
し、複数ストア命令が複数のレジスタからメモリにデー
タを格納するステップと、複数ストア命令がその実行を
完了する前に、その固定小数点命令がソース・レジスタ
として示した複数のレジスタのうちの1つのレジスタか
ら複数ストア命令によって格納されるデータに依存する
固定小数点命令を実行するが、複数ストア命令が完了す
る前に実行中の固定小数点命令を複数のレジスタのうち
の1つのレジスタに書き込むことを禁止するステップと
を含む。
【0006】本発明の上記および追加の目的、特徴、利
点は、以下の詳細な説明において明らかになるだろう。
点は、以下の詳細な説明において明らかになるだろう。
【0007】本発明の特色を示すと思われる新規の特徴
については、特許請求の範囲に記載する。しかし、本発
明そのもの、ならびにその好ましい使用態様、追加の目
的および利点については、添付図面に関連して以下の実
施例の詳細な説明を参照することによって最も理解され
るだろう。
については、特許請求の範囲に記載する。しかし、本発
明そのもの、ならびにその好ましい使用態様、追加の目
的および利点については、添付図面に関連して以下の実
施例の詳細な説明を参照することによって最も理解され
るだろう。
【0008】
【発明の実施の形態】次に添付図面、特に図1を参照す
ると、同図には、本発明の好ましい実施例により情報を
処理するためのプロセッサ(全体を10で示す)のブロ
ック図が示されている。図示の実施例のプロセッサ10
は、単一集積回路スーパースカラー・マイクロプロセッ
サを含む。したがって、以下に詳述するように、プロセ
ッサ10は、様々な実行ユニット、レジスタ、バッフ
ァ、メモリ、その他の機能ユニットを含み、いずれも集
積回路で形成されている。本発明の好ましい実施例のプ
ロセッサ10は、IBM製のPowerPCTM系列のマ
イクロプロセッサの1つを含み、これは縮小命令セット
・コンピューティング(RISC)技法により動作す
る。
ると、同図には、本発明の好ましい実施例により情報を
処理するためのプロセッサ(全体を10で示す)のブロ
ック図が示されている。図示の実施例のプロセッサ10
は、単一集積回路スーパースカラー・マイクロプロセッ
サを含む。したがって、以下に詳述するように、プロセ
ッサ10は、様々な実行ユニット、レジスタ、バッフ
ァ、メモリ、その他の機能ユニットを含み、いずれも集
積回路で形成されている。本発明の好ましい実施例のプ
ロセッサ10は、IBM製のPowerPCTM系列のマ
イクロプロセッサの1つを含み、これは縮小命令セット
・コンピューティング(RISC)技法により動作す
る。
【0009】図1に示すように、プロセッサ10は、プ
ロセッサ10内のバス・インタフェース・ユニット(B
IU)12を介してシステム・バス11に結合されてい
る。BIU12は、メイン・メモリ(図示せず)など、
システム・バス11に結合されたその他の装置とプロセ
ッサ10との間の情報転送を制御する。プロセッサ10
と、システム・バス11と、システム・バス11に結合
されたその他装置とはあいまってホスト・データ処理シ
ステムを形成する。BIU12は、プロセッサ10内の
命令キャッシュ14およびデータ・キャッシュ16に接
続されている。命令キャッシュ14およびデータ・キャ
ッシュ16などの高速キャッシュにより、プロセッサ1
0はメイン・メモリから高速キャッシュに事前転送され
たデータまたは命令のサブセットに対して比較的高速の
アクセス時間を達成することができ、その結果、ホスト
・データ処理システムの動作速度が改善される。命令キ
ャッシュ14は順次取出し器17にさらに結合され、こ
の順次取出し器17は各実行サイクル中に命令キャッシ
ュ14から命令を取り出す。順次取出し器17は、実行
のために分岐処理ユニット(BPU)18に分岐命令を
転送し、プロセッサ10内のその他の実行回路によって
実行される前の一時記憶のために命令待ち行列19に順
次命令を転送する。
ロセッサ10内のバス・インタフェース・ユニット(B
IU)12を介してシステム・バス11に結合されてい
る。BIU12は、メイン・メモリ(図示せず)など、
システム・バス11に結合されたその他の装置とプロセ
ッサ10との間の情報転送を制御する。プロセッサ10
と、システム・バス11と、システム・バス11に結合
されたその他装置とはあいまってホスト・データ処理シ
ステムを形成する。BIU12は、プロセッサ10内の
命令キャッシュ14およびデータ・キャッシュ16に接
続されている。命令キャッシュ14およびデータ・キャ
ッシュ16などの高速キャッシュにより、プロセッサ1
0はメイン・メモリから高速キャッシュに事前転送され
たデータまたは命令のサブセットに対して比較的高速の
アクセス時間を達成することができ、その結果、ホスト
・データ処理システムの動作速度が改善される。命令キ
ャッシュ14は順次取出し器17にさらに結合され、こ
の順次取出し器17は各実行サイクル中に命令キャッシ
ュ14から命令を取り出す。順次取出し器17は、実行
のために分岐処理ユニット(BPU)18に分岐命令を
転送し、プロセッサ10内のその他の実行回路によって
実行される前の一時記憶のために命令待ち行列19に順
次命令を転送する。
【0010】図示の実施例では、プロセッサ10の実行
回路がBPU18以外に、固定小数点ユニット(FX
U)22、ロード/ストア・ユニット(LSU)28、
浮動小数点ユニット(FPU)30を含む、複数の実行
ユニットを含んでいる。コンピュータ分野の当業者には
周知のように、それぞれの実行ユニット22、28、3
0は、各プロセッサ・サイクル中に特定クラスの順次命
令内の1つまたは複数の命令を実行する。たとえば、F
XU22は、指定の汎用レジスタ(GPR)32または
GPRリネーム・バッファ33から受け取ったソース・
オペランドを使用して、加算、減算、AND、OR、X
ORなどの固定小数点数値演算を実行する。固定小数点
命令の実行後、FXU22は、その命令のデータ結果を
GPRリネーム・バッファ33に出力し、GPRリネー
ム・バッファ33からGPR32の1つまたは複数に結
果データを転送することによって命令が完了するまで、
GPRリネーム・バッファ33が結果データの一時記憶
を行う。これに対して、FPU30は、浮動小数点レジ
スタ(FPR)36またはFPRリネーム・バッファ3
7から受け取ったソース・オペランドに基づいて、浮動
小数点の乗算や除算などの浮動小数点演算を実行する。
FPU30は、浮動小数点命令を実行した結果得られる
データを指定のFPRリネーム・バッファ37に出力
し、FPRリネーム・バッファ37から指定のFPR3
6に結果データを転送することによって命令が完了する
まで、FPRリネーム・バッファ37が結果データを一
時的に格納する。LSU28は、メモリ(すなわち、デ
ータ・キャッシュ16またはメイン・メモリのいずれ
か)から指定のGPR32またはFPR36にデータを
ロードするか、またはGPR32、GPRリネーム・バ
ッファ33、FPR36、またはFPRリネーム・バッ
ファ37の指定の1つからのデータをメモリに格納する
ような、浮動小数点命令と固定小数点命令を実行する。
回路がBPU18以外に、固定小数点ユニット(FX
U)22、ロード/ストア・ユニット(LSU)28、
浮動小数点ユニット(FPU)30を含む、複数の実行
ユニットを含んでいる。コンピュータ分野の当業者には
周知のように、それぞれの実行ユニット22、28、3
0は、各プロセッサ・サイクル中に特定クラスの順次命
令内の1つまたは複数の命令を実行する。たとえば、F
XU22は、指定の汎用レジスタ(GPR)32または
GPRリネーム・バッファ33から受け取ったソース・
オペランドを使用して、加算、減算、AND、OR、X
ORなどの固定小数点数値演算を実行する。固定小数点
命令の実行後、FXU22は、その命令のデータ結果を
GPRリネーム・バッファ33に出力し、GPRリネー
ム・バッファ33からGPR32の1つまたは複数に結
果データを転送することによって命令が完了するまで、
GPRリネーム・バッファ33が結果データの一時記憶
を行う。これに対して、FPU30は、浮動小数点レジ
スタ(FPR)36またはFPRリネーム・バッファ3
7から受け取ったソース・オペランドに基づいて、浮動
小数点の乗算や除算などの浮動小数点演算を実行する。
FPU30は、浮動小数点命令を実行した結果得られる
データを指定のFPRリネーム・バッファ37に出力
し、FPRリネーム・バッファ37から指定のFPR3
6に結果データを転送することによって命令が完了する
まで、FPRリネーム・バッファ37が結果データを一
時的に格納する。LSU28は、メモリ(すなわち、デ
ータ・キャッシュ16またはメイン・メモリのいずれ
か)から指定のGPR32またはFPR36にデータを
ロードするか、またはGPR32、GPRリネーム・バ
ッファ33、FPR36、またはFPRリネーム・バッ
ファ37の指定の1つからのデータをメモリに格納する
ような、浮動小数点命令と固定小数点命令を実行する。
【0011】プロセッサ10は、そのスーパースカラー
・アーキテクチャのパフォーマンスをさらに改善するた
めに、命令のパイプライン化と順不同実行の両方を使用
している。したがって、データの従属関係を監視してい
る限り、FXU22、LSU28、FPU30は任意の
順序で命令を実行することができる。さらに、一連のパ
イプライン・ステージでFXU22、LSU28、FP
U30のそれぞれが命令を処理する。ハイパフォーマン
ス・プロセッサでは一般的なように、それぞれの命令
は、5通りのパイプライン・ステージ、すなわち、取出
し、デコード/ディスパッチ、実行、終了、完了の各ス
テージで処理される。
・アーキテクチャのパフォーマンスをさらに改善するた
めに、命令のパイプライン化と順不同実行の両方を使用
している。したがって、データの従属関係を監視してい
る限り、FXU22、LSU28、FPU30は任意の
順序で命令を実行することができる。さらに、一連のパ
イプライン・ステージでFXU22、LSU28、FP
U30のそれぞれが命令を処理する。ハイパフォーマン
ス・プロセッサでは一般的なように、それぞれの命令
は、5通りのパイプライン・ステージ、すなわち、取出
し、デコード/ディスパッチ、実行、終了、完了の各ス
テージで処理される。
【0012】取出しステージ中に順次取出し器17は、
命令キャッシュ14から1つまたは複数のメモリ・アド
レスに関連する1つまたは複数の命令を取り出す。命令
キャッシュ14から取り出された順次命令は、順次取出
し器17によって命令待ち行列19内に格納される。取
り出された分岐命令は、命令ストリームから除去され、
実行のためにBPU18に転送される。BPU18は、
分岐が行われるかどうかを予測することによってBPU
18が未解決の条件付き分岐命令を推論実行できるよう
にするための、分岐履歴テーブルなどの分岐予測メカニ
ズムを含んでいる。
命令キャッシュ14から1つまたは複数のメモリ・アド
レスに関連する1つまたは複数の命令を取り出す。命令
キャッシュ14から取り出された順次命令は、順次取出
し器17によって命令待ち行列19内に格納される。取
り出された分岐命令は、命令ストリームから除去され、
実行のためにBPU18に転送される。BPU18は、
分岐が行われるかどうかを予測することによってBPU
18が未解決の条件付き分岐命令を推論実行できるよう
にするための、分岐履歴テーブルなどの分岐予測メカニ
ズムを含んでいる。
【0013】デコード/ディスパッチ・ステージ中にデ
ィスパッチ・ユニット20は、命令待ち行列19からの
1つまたは複数の命令をデコードし、実行ユニット2
2、28、30のうちの適切なユニットにその命令をデ
ィスパッチする。また、デコード/ディスパッチ・ステ
ージ中にディスパッチ・ユニット20は、ディスパッチ
された命令の結果データごとに、GPRリネーム・バッ
ファ33またはFPRリネーム・バッファ37内のリネ
ーム・バッファを1つずつ割り振る。本発明の好ましい
実施例によれば、プロセッサ10は、プログラムの順序
で命令をディスパッチし、固有の命令IDを使用して順
不同実行中にディスパッチされた命令のプログラム順序
を追跡する。プロセッサ10の実行パイプライン内の各
命令は、命令IDに加え、その命令のAオペランドおよ
びBオペランドのソースを示すrAタグおよびrBタグ
と、その命令の結果データ用のGPRリネーム・バッフ
ァ33またはFPRリネーム・バッファ37内の宛先リ
ネーム・バッファを示すrDタグとを有する。
ィスパッチ・ユニット20は、命令待ち行列19からの
1つまたは複数の命令をデコードし、実行ユニット2
2、28、30のうちの適切なユニットにその命令をデ
ィスパッチする。また、デコード/ディスパッチ・ステ
ージ中にディスパッチ・ユニット20は、ディスパッチ
された命令の結果データごとに、GPRリネーム・バッ
ファ33またはFPRリネーム・バッファ37内のリネ
ーム・バッファを1つずつ割り振る。本発明の好ましい
実施例によれば、プロセッサ10は、プログラムの順序
で命令をディスパッチし、固有の命令IDを使用して順
不同実行中にディスパッチされた命令のプログラム順序
を追跡する。プロセッサ10の実行パイプライン内の各
命令は、命令IDに加え、その命令のAオペランドおよ
びBオペランドのソースを示すrAタグおよびrBタグ
と、その命令の結果データ用のGPRリネーム・バッフ
ァ33またはFPRリネーム・バッファ37内の宛先リ
ネーム・バッファを示すrDタグとを有する。
【0014】実行ステージ中に実行ユニット22、2
8、30は、示された操作用のオペランドと実行リソー
スが使用可能であるときにディスパッチ・ユニット20
から受け取った命令を便宜的に実行する。実行の終了
後、実行ユニット22、28、30は、命令タイプに応
じて、GPRリネーム・バッファ33またはFPRリネ
ーム・バッファ37内に結果データを格納する。次に実
行ユニット22、28、30は、どの命令が実行を終了
したかを完了ユニット40に通知する。最後に、GPR
リネーム・バッファ33およびFPRリネーム・バッフ
ァ37からGPR32およびFPR36に結果データを
それぞれ転送することにより、プログラムの順序で完了
ユニット40が命令を完了する。
8、30は、示された操作用のオペランドと実行リソー
スが使用可能であるときにディスパッチ・ユニット20
から受け取った命令を便宜的に実行する。実行の終了
後、実行ユニット22、28、30は、命令タイプに応
じて、GPRリネーム・バッファ33またはFPRリネ
ーム・バッファ37内に結果データを格納する。次に実
行ユニット22、28、30は、どの命令が実行を終了
したかを完了ユニット40に通知する。最後に、GPR
リネーム・バッファ33およびFPRリネーム・バッフ
ァ37からGPR32およびFPR36に結果データを
それぞれ転送することにより、プログラムの順序で完了
ユニット40が命令を完了する。
【0015】本発明の好ましい実施例のプロセッサ10
は、複数の汎用レジスタ内のデータをメモリからロード
したり、メモリに格納する、マルチレジスタ・ロード/
ストア命令を実行することができる。特に、Power
PCTMマイクロプロセッサの好ましい実施例のマイクロ
プロセッサ10は、複数のワードをメモリからロードす
る複数ロード命令(lmw)と、複数のワードをメモリ
に格納する複数ストア命令(stmw)とを実行するこ
とになる。
は、複数の汎用レジスタ内のデータをメモリからロード
したり、メモリに格納する、マルチレジスタ・ロード/
ストア命令を実行することができる。特に、Power
PCTMマイクロプロセッサの好ましい実施例のマイクロ
プロセッサ10は、複数のワードをメモリからロードす
る複数ロード命令(lmw)と、複数のワードをメモリ
に格納する複数ストア命令(stmw)とを実行するこ
とになる。
【0016】このようなマルチレジスタ命令は、順次取
出し器17によって命令キャッシュ14から取り出さ
れ、命令待ち行列19にロードされる。ディスパッチ・
ユニット20によってマルチレジスタ命令をディスパッ
チすると、LSU28は、そのマルチレジスタ命令の実
行を開始する。また、その命令をディスパッチすると、
マルチレジスタ命令で識別されたGPR32内のいくつ
かのレジスタがその命令に割り振られる。
出し器17によって命令キャッシュ14から取り出さ
れ、命令待ち行列19にロードされる。ディスパッチ・
ユニット20によってマルチレジスタ命令をディスパッ
チすると、LSU28は、そのマルチレジスタ命令の実
行を開始する。また、その命令をディスパッチすると、
マルチレジスタ命令で識別されたGPR32内のいくつ
かのレジスタがその命令に割り振られる。
【0017】好ましい実施例の複数ロード命令では、最
高32個の連続レジスタに最高32個の連続ワードをメ
モリからロードする必要がある。たとえば、「lmw r3,
r2,r1」という命令は、メモリ内の位置<r2 + r1>で検
出されたデータをレジスタ3〜31にロードすることに
なる。したがって、この例では、最初にロードすべきレ
ジスタはレジスタ3(r3)になる。次にLSU28
は、レジスタ31を含むすべてのレジスタがロードされ
るまで、レジスタ4、レジスタ5などに順にロードする
作業に移行する。その時点で複数ロード命令は実行を終
了している。これは完了ユニット40に報告され、完了
ユニット40はシステム内の設計済みレジスタにそれを
コミットすることによって命令を完了する。
高32個の連続レジスタに最高32個の連続ワードをメ
モリからロードする必要がある。たとえば、「lmw r3,
r2,r1」という命令は、メモリ内の位置<r2 + r1>で検
出されたデータをレジスタ3〜31にロードすることに
なる。したがって、この例では、最初にロードすべきレ
ジスタはレジスタ3(r3)になる。次にLSU28
は、レジスタ31を含むすべてのレジスタがロードされ
るまで、レジスタ4、レジスタ5などに順にロードする
作業に移行する。その時点で複数ロード命令は実行を終
了している。これは完了ユニット40に報告され、完了
ユニット40はシステム内の設計済みレジスタにそれを
コミットすることによって命令を完了する。
【0018】図2を参照すると、同図には、複数ロード
命令と後続の固定小数点命令を処理するのに必要なサイ
クルのタイミング図が示されている。複数ロード命令
(LoadMult)は、サイクル1中に順次取出し器17によ
って命令キャッシュ14から取り出される(F)。その
命令は、サイクル2中にデコードされ(Dec)、サイク
ル3中にディスパッチ・ユニット20によってLSU2
8にディスパッチされる(Disp)。LSU28はサイク
ル4〜7中に複数ロード命令を実行し(E)、命令はサ
イクル8中に完了ユニット40によって完了する
(C)。
命令と後続の固定小数点命令を処理するのに必要なサイ
クルのタイミング図が示されている。複数ロード命令
(LoadMult)は、サイクル1中に順次取出し器17によ
って命令キャッシュ14から取り出される(F)。その
命令は、サイクル2中にデコードされ(Dec)、サイク
ル3中にディスパッチ・ユニット20によってLSU2
8にディスパッチされる(Disp)。LSU28はサイク
ル4〜7中に複数ロード命令を実行し(E)、命令はサ
イクル8中に完了ユニット40によって完了する
(C)。
【0019】この例では、4つの汎用レジスタがロード
される。好ましい実施例の複数ロード命令は、lmw r28,
r2, r1としてフォーマットされるはずである。この命
令はレジスタ28〜31にロードするはずなので、図2
に示すように、サイクル4〜7の間にシステム・クロッ
ク・サイクルごとに1つのレジスタがロードされる。
される。好ましい実施例の複数ロード命令は、lmw r28,
r2, r1としてフォーマットされるはずである。この命
令はレジスタ28〜31にロードするはずなので、図2
に示すように、サイクル4〜7の間にシステム・クロッ
ク・サイクルごとに1つのレジスタがロードされる。
【0020】先行技術では、複数ロード命令以降のすべ
ての固定小数点命令が逐次化されるので、複数ロード命
令が完了するまでそのような命令は取り出されないはず
である。このため、後続の固定小数点命令が使用するオ
ペランド・データの整合性を維持することができる。し
たがって、図2の例では、先行技術のサイクル9に達す
るまで、後続の固定小数点命令を取り出すことができな
い。
ての固定小数点命令が逐次化されるので、複数ロード命
令が完了するまでそのような命令は取り出されないはず
である。このため、後続の固定小数点命令が使用するオ
ペランド・データの整合性を維持することができる。し
たがって、図2の例では、先行技術のサイクル9に達す
るまで、後続の固定小数点命令を取り出すことができな
い。
【0021】本発明によれば、複数ロード命令の完了前
に命令バッファ内で待機中の固定小数点命令をディスパ
ッチできるようにするための割振り解除メカニズムが提
供される。図2に示すように、サイクル4の前にレジス
タ28〜31は複数ロード命令に割り振られる。しか
し、たとえば、レジスタ28が複数ロード命令によって
ロードされると、後続命令用のオペランド・データとし
てその内容を使用できるようにするために、このリソー
スは割振り解除される。その結果、複数ロード命令の完
了前に、複数ロード命令の結果に依存する後続の固定小
数点命令を他の機能ユニットにディスパッチすることが
できる。
に命令バッファ内で待機中の固定小数点命令をディスパ
ッチできるようにするための割振り解除メカニズムが提
供される。図2に示すように、サイクル4の前にレジス
タ28〜31は複数ロード命令に割り振られる。しか
し、たとえば、レジスタ28が複数ロード命令によって
ロードされると、後続命令用のオペランド・データとし
てその内容を使用できるようにするために、このリソー
スは割振り解除される。その結果、複数ロード命令の完
了前に、複数ロード命令の結果に依存する後続の固定小
数点命令を他の機能ユニットにディスパッチすることが
できる。
【0022】プロセッサ10は、それぞれのレジスタを
リストし、複数ロード命令がその関連レジスタにロード
する時期を示す、スコアボードまたはテーブルをすべて
の汎用レジスタ(GPR)32に関して管理している。
ディスパッチ・ユニット20は、後続命令がディスパッ
チ可能であるかどうかを判定するためにスコアボードに
アクセスするはずである。たとえば、図2に示すよう
に、複数ロード命令(Load Mult)とそれに続く第1お
よび第2の固定小数点命令(FX Inst 1およびFX Inst
2)とを本発明がどのように処理するかについて検討す
る。たとえば、命令シーケンスが次のようになっている
とする。 lmw r28, r2, r1 add r2, r2, r28 add r3, r3, r30 (注:「add」とは、第1のレジスタの内容を第2のレ
ジスタの内容に加算して、その結果オペランドを第1の
レジスタに格納するための固定小数点命令である。)
リストし、複数ロード命令がその関連レジスタにロード
する時期を示す、スコアボードまたはテーブルをすべて
の汎用レジスタ(GPR)32に関して管理している。
ディスパッチ・ユニット20は、後続命令がディスパッ
チ可能であるかどうかを判定するためにスコアボードに
アクセスするはずである。たとえば、図2に示すよう
に、複数ロード命令(Load Mult)とそれに続く第1お
よび第2の固定小数点命令(FX Inst 1およびFX Inst
2)とを本発明がどのように処理するかについて検討す
る。たとえば、命令シーケンスが次のようになっている
とする。 lmw r28, r2, r1 add r2, r2, r28 add r3, r3, r30 (注:「add」とは、第1のレジスタの内容を第2のレ
ジスタの内容に加算して、その結果オペランドを第1の
レジスタに格納するための固定小数点命令である。)
【0023】図2に示すように、ロード/ストア・ユニ
ットによってレジスタ28がスコアボードに解放される
と、ただちにFX Inst 1をディスパッチすることができ
る。サイクル4中にロード/ストア・ユニットがレジス
タ28用の複数ロード命令を実行したので、このレジス
タはスコアボード上で割振り解除される。次の後続サイ
クルでは、ディスパッチ・ユニット20がFXU22に
FX Inst 1をディスパッチする。というのは、この命令
用のソース・オペランド・データがこの時点で汎用レジ
スタ内で使用可能になっているからである。この命令は
サイクル6中にFXU22によって実行されるが、完了
ユニット40は、レジスタ・データの整合性を保障する
ためにサイクル9になるまで命令を完了しない。図2か
ら分かるように、FX Inst 2は、サイクル3および4中
に取り出され、デコードされる。しかし、複数ロード命
令がサイクル6中にレジスタ30をロードし、このロー
ドをスコアボード上に示してしまうまで、ディスパッチ
・ユニット20はこの命令をFXU22にディスパッチ
しない。ディスパッチ・ユニット20は、サイクル7中
にレジスタ30の割振り解除を読み取り、第2の固定小
数点命令をディスパッチし、FXU22はサイクル8中
にその命令を実行する。すべての固定小数点命令がプロ
グラミング順に完了しなければならないので、完了ユニ
ット40はサイクル10になるまでこの命令を完了しな
い。
ットによってレジスタ28がスコアボードに解放される
と、ただちにFX Inst 1をディスパッチすることができ
る。サイクル4中にロード/ストア・ユニットがレジス
タ28用の複数ロード命令を実行したので、このレジス
タはスコアボード上で割振り解除される。次の後続サイ
クルでは、ディスパッチ・ユニット20がFXU22に
FX Inst 1をディスパッチする。というのは、この命令
用のソース・オペランド・データがこの時点で汎用レジ
スタ内で使用可能になっているからである。この命令は
サイクル6中にFXU22によって実行されるが、完了
ユニット40は、レジスタ・データの整合性を保障する
ためにサイクル9になるまで命令を完了しない。図2か
ら分かるように、FX Inst 2は、サイクル3および4中
に取り出され、デコードされる。しかし、複数ロード命
令がサイクル6中にレジスタ30をロードし、このロー
ドをスコアボード上に示してしまうまで、ディスパッチ
・ユニット20はこの命令をFXU22にディスパッチ
しない。ディスパッチ・ユニット20は、サイクル7中
にレジスタ30の割振り解除を読み取り、第2の固定小
数点命令をディスパッチし、FXU22はサイクル8中
にその命令を実行する。すべての固定小数点命令がプロ
グラミング順に完了しなければならないので、完了ユニ
ット40はサイクル10になるまでこの命令を完了しな
い。
【0024】この例に示すように、(単一ポート式レジ
スタ・ファイルとキャッシュを想定すると)後続の固定
小数点命令のディスパッチと実行にとって、最高8クロ
ック・サイクル分の改善が得られている。これは、先行
技術に比べ、プロセッサの効率の大幅上昇である。事
実、所与の例では、最高32クロック・サイクル分の改
善が実現可能である。お分かりのように、本発明のパフ
ォーマンス強化を制限するものは、複数ロードが完了す
る前に実行パイプラインに入れることができる命令数に
関する完了ユニット内の完了バッファの深さのみであ
る。
スタ・ファイルとキャッシュを想定すると)後続の固定
小数点命令のディスパッチと実行にとって、最高8クロ
ック・サイクル分の改善が得られている。これは、先行
技術に比べ、プロセッサの効率の大幅上昇である。事
実、所与の例では、最高32クロック・サイクル分の改
善が実現可能である。お分かりのように、本発明のパフ
ォーマンス強化を制限するものは、複数ロードが完了す
る前に実行パイプラインに入れることができる命令数に
関する完了ユニット内の完了バッファの深さのみであ
る。
【0025】本発明の他の態様によれば、リソースの早
期割振り解除は複数ストア命令の実行中に実施される。
好ましい実施例の複数ストア動作では、最高32個の連
続レジスタをメモリ内の最高32個の連続ワード位置に
格納する必要がある。たとえば、stmw r3, r2, r1とい
う複数ストア命令は、<r2 + r1>に位置するメモリに
レジスタ3〜レジスタ31の内容を格納することにな
る。本発明によれば、複数ストア命令をディスパッチす
ると、マイクロプロセッサ内の他の固定小数点実行ユニ
ットに追加の後続固定小数点命令を無条件でディスパッ
チすることができる。従来通り、このような命令はプロ
グラミング順に完了しなければならないが、その命令を
ディスパッチした直後に実行を開始することができる。
期割振り解除は複数ストア命令の実行中に実施される。
好ましい実施例の複数ストア動作では、最高32個の連
続レジスタをメモリ内の最高32個の連続ワード位置に
格納する必要がある。たとえば、stmw r3, r2, r1とい
う複数ストア命令は、<r2 + r1>に位置するメモリに
レジスタ3〜レジスタ31の内容を格納することにな
る。本発明によれば、複数ストア命令をディスパッチす
ると、マイクロプロセッサ内の他の固定小数点実行ユニ
ットに追加の後続固定小数点命令を無条件でディスパッ
チすることができる。従来通り、このような命令はプロ
グラミング順に完了しなければならないが、その命令を
ディスパッチした直後に実行を開始することができる。
【0026】本発明では、複数ストア命令を後続の固定
小数点命令と逐次化する必要はないと認識されている。
その結果、複数ストア命令に必要な複数のレジスタから
なる連続セット全体をその命令に排他的に割り振る必要
がなく、むしろ、後続命令用のソース・オペランド・リ
ソースとして使用することができる。しかし、まだ格納
されていないレジスタの書込みを防止するために、複数
ストア命令が完了するまで、後続命令の結果をGPRリ
ネーム・バッファ33に格納しておかなければならな
い。複数ストア命令が完了すると、GPRリネーム・バ
ッファ33からGPR32内の設計済みレジスタに結果
オペランドを転送することによって、後続命令を完了す
ることができる。
小数点命令と逐次化する必要はないと認識されている。
その結果、複数ストア命令に必要な複数のレジスタから
なる連続セット全体をその命令に排他的に割り振る必要
がなく、むしろ、後続命令用のソース・オペランド・リ
ソースとして使用することができる。しかし、まだ格納
されていないレジスタの書込みを防止するために、複数
ストア命令が完了するまで、後続命令の結果をGPRリ
ネーム・バッファ33に格納しておかなければならな
い。複数ストア命令が完了すると、GPRリネーム・バ
ッファ33からGPR32内の設計済みレジスタに結果
オペランドを転送することによって、後続命令を完了す
ることができる。
【0027】次に図3を参照すると、同図には、本発明
の好ましい実施例によりマイクロプロセッサ内で1つの
複数ストア命令(Store Mult)と2つの固定小数点命令
(FXInst3およびFX Inst4)が処理されるサイクルのタ
イミング図が示されている。一例として、以下の命令シ
ーケンスの処理について検討する。 stmw r28, r2, r1 add r2, r2, r28 add r3, r3, r30
の好ましい実施例によりマイクロプロセッサ内で1つの
複数ストア命令(Store Mult)と2つの固定小数点命令
(FXInst3およびFX Inst4)が処理されるサイクルのタ
イミング図が示されている。一例として、以下の命令シ
ーケンスの処理について検討する。 stmw r28, r2, r1 add r2, r2, r28 add r3, r3, r30
【0028】図3に示すように、複数ストア命令は、サ
イクル1中に取り出され、サイクル2でデコードされ、
サイクル3でディスパッチされ、サイクル4〜7中にロ
ード/ストア・ユニット28によって実行され、サイク
ル8で完了する。本発明によれば、前の複数ストア命令
がサイクル3でディスパッチされた後、できるだけ早い
時期にFX Inst1およびFX Inst2がディスパッチされる。
FX Inst1はサイクル4中にディスパッチされ、1つのサ
イクル当たり1つの命令しか取り出すことができないの
で、FX Inst2はサイクル5中にディスパッチされる。こ
れらの固定小数点命令は、サイクル5および6で実行さ
れるようにただちに実行することができる。というの
は、複数ストア命令実行の進捗状況にかかわらず、実行
に必要なオペランド・データがすでにレジスタ28およ
び30に存在するからである。事実、サイクル6中にL
SU28はレジスタ30からのデータをメモリに格納
し、FXU22はレジスタ30に収容されているオペラ
ンド・データをレジスタ3に収容されているオペランド
・データに加算する。固定小数点命令1および2の結果
は、それぞれサイクル9および10になるまでリネーム
・バッファ33に保持され、その時点で結果オペランド
がレジスタ2および3にそれぞれ格納される。前述のよ
うに、リソースの整合性を維持するために、複数ストア
命令が完了するまで、このような固定小数点命令は完了
しない。
イクル1中に取り出され、サイクル2でデコードされ、
サイクル3でディスパッチされ、サイクル4〜7中にロ
ード/ストア・ユニット28によって実行され、サイク
ル8で完了する。本発明によれば、前の複数ストア命令
がサイクル3でディスパッチされた後、できるだけ早い
時期にFX Inst1およびFX Inst2がディスパッチされる。
FX Inst1はサイクル4中にディスパッチされ、1つのサ
イクル当たり1つの命令しか取り出すことができないの
で、FX Inst2はサイクル5中にディスパッチされる。こ
れらの固定小数点命令は、サイクル5および6で実行さ
れるようにただちに実行することができる。というの
は、複数ストア命令実行の進捗状況にかかわらず、実行
に必要なオペランド・データがすでにレジスタ28およ
び30に存在するからである。事実、サイクル6中にL
SU28はレジスタ30からのデータをメモリに格納
し、FXU22はレジスタ30に収容されているオペラ
ンド・データをレジスタ3に収容されているオペランド
・データに加算する。固定小数点命令1および2の結果
は、それぞれサイクル9および10になるまでリネーム
・バッファ33に保持され、その時点で結果オペランド
がレジスタ2および3にそれぞれ格納される。前述のよ
うに、リソースの整合性を維持するために、複数ストア
命令が完了するまで、このような固定小数点命令は完了
しない。
【0029】要約すると、本発明は、逐次化したロード
およびストアに関連するオーバヘッドの増加という重大
問題を解決するものである。このように操作を逐次化す
るには、逐次化した操作をディスパッチする前にマイク
ロプロセッサのレジスタを完全に空にし、完了するまで
このようなリソースをその逐次化命令に割り振った状態
に維持する必要がある。本発明では、逐次化を不要に
し、複数ロードおよびストア命令と同時に追加の後続命
令を実行できるようにすることによって、マイクロプロ
セッサのパフォーマンスを大幅に上昇させる。マイクロ
プロセッサの完了バッファに応じて、マイクロプロセッ
サはマルチレジスタ命令の実行中に相当な量の追加命令
を実行することができる。たとえば、好ましい実施例で
は、完了バッファの深さが5レジスタである場合、パイ
プラインの停止なしに最高4つの追加命令を完了できる
可能性がある。このような複数ロードおよびストア命令
が完了までに要する時間は最高36サイクルなので、本
発明により、マイクロプロセッサの速度と効率の強化に
つながる大幅な時間節約が可能である。
およびストアに関連するオーバヘッドの増加という重大
問題を解決するものである。このように操作を逐次化す
るには、逐次化した操作をディスパッチする前にマイク
ロプロセッサのレジスタを完全に空にし、完了するまで
このようなリソースをその逐次化命令に割り振った状態
に維持する必要がある。本発明では、逐次化を不要に
し、複数ロードおよびストア命令と同時に追加の後続命
令を実行できるようにすることによって、マイクロプロ
セッサのパフォーマンスを大幅に上昇させる。マイクロ
プロセッサの完了バッファに応じて、マイクロプロセッ
サはマルチレジスタ命令の実行中に相当な量の追加命令
を実行することができる。たとえば、好ましい実施例で
は、完了バッファの深さが5レジスタである場合、パイ
プラインの停止なしに最高4つの追加命令を完了できる
可能性がある。このような複数ロードおよびストア命令
が完了までに要する時間は最高36サイクルなので、本
発明により、マイクロプロセッサの速度と効率の強化に
つながる大幅な時間節約が可能である。
【0030】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0031】(1)複数のレジスタのうちの複数のレジ
スタにロードする少なくとも1つの複数ロード命令を含
む複数の命令をスーパースカラー・マイクロプロセッサ
で実行する方法において、ロード/ストア・ユニットに
複数ロード命令をディスパッチするステップであって、
ロード/ストア・ユニットがディスパッチされた複数ロ
ード命令の実行を開始し、複数ロード命令がメモリから
複数のレジスタにデータをロードするステップと、複数
のレジスタのうちの各レジスタをリストし、実行中の複
数ロード命令によって各レジスタにデータがロードされ
た時期を示すテーブルを管理するステップと、ソース・
オペランド・データがソース・レジスタにロードされた
ことをテーブルが示したときに、複数ロード命令がその
実行を完了する前に、その命令がソース・レジスタとし
て示した複数のレジスタのうちの1つのレジスタに複数
ロード命令によってロードされたソース・オペランド・
データに依存する命令を実行するステップとを含むこと
を特徴とする方法。 (2)複数のレジスタのうちの複数のレジスタからメモ
リにデータを格納する少なくとも1つの複数ストア命令
を含む複数の命令をスーパースカラー・マイクロプロセ
ッサで実行する方法において、ロード/ストア・ユニッ
トに複数ストア命令をディスパッチし、その直後にロー
ド/ストア・ユニットが複数ストア命令の実行を開始
し、複数ストア命令が複数のレジスタからメモリにデー
タを格納するステップと、複数ストア命令がその実行を
完了する前に、その固定小数点命令がソース・レジスタ
として示した複数のレジスタのうちの1つのレジスタか
ら複数ストア命令によって格納されるデータに依存する
固定小数点命令を実行するが、複数ストア命令が完了す
る前に実行中の固定小数点命令を複数のレジスタのうち
の1つのレジスタに書き込むことを禁止するステップと
を含むことを特徴とする方法。 (3)複数の命令を同時に実行するための複数の実行ユ
ニットを有し、メモリに接続されるスーパースカラー・
マイクロプロセッサにおいて、実行ユニットによる実行
の結果得られるデータを選択的に格納するための複数の
レジスタと、複数のレジスタからデータをロードする
か、または複数のレジスタにデータを格納するためのロ
ード命令とストア命令を実行するロード/ストア実行ユ
ニットと、複数のレジスタのソース・レジスタに格納さ
れたオペランド・データについて固定小数点演算を実行
するための固定小数点実行ユニットと、複数のレジスタ
のうちの1つまたは複数のレジスタをリストし、ロード
/ストア実行ユニットで実行中の複数ロード命令によっ
て各レジスタにデータがロードされた時期を示すテーブ
ルを管理するディスパッチャとを含み、複数ロード命令
がメモリから複数のレジスタのうちの複数にデータをロ
ードし、ディスパッチャがロード/ストア実行ユニット
および固定小数点実行ユニットを含む複数の実行ユニッ
トに命令をディスパッチし、さらにディスパッチャがロ
ード/ストア・ユニットに複数ロード命令をディスパッ
チし、ロード/ストア・ユニットが複数ロード命令の実
行を開始し、さらにロード/ストア実行ユニットでの複
数ロード命令の実行によってソース・オペランド・デー
タがソース・レジスタにロードされたことをテーブルが
示したときに、複数ロード命令がその実行を終了する前
に、ソース・レジスタとしてその命令によって示された
複数のレジスタのうちの1つのレジスタに複数ロード命
令によってロードされたソース・オペランド・データに
依存する固定小数点命令をディスパッチすることを特徴
とする、スーパースカラー・マイクロプロセッサ。 (4)複数の命令を同時に実行するための複数の実行ユ
ニットを有し、メモリに接続されるスーパースカラー・
マイクロプロセッサにおいて、実行ユニットによる実行
の結果得られるデータを選択的に格納するための複数の
レジスタと、複数のレジスタからデータをロードする
か、または複数のレジスタにデータを格納するためのロ
ード命令とストア命令を実行するロード/ストア実行ユ
ニットと、複数のレジスタのソース・レジスタに格納さ
れたオペランド・データについて固定小数点演算を実行
するための固定小数点実行ユニットと、ロード/ストア
実行ユニットと固定小数点実行ユニットとを含む複数の
実行ユニットに命令をディスパッチするディスパッチャ
とを含み、ディスパッチャがロード/ストア・ユニット
に複数ストア命令をディスパッチし、ロード/ストア・
ユニットが複数ストア命令の実行を開始し、複数ストア
命令が複数のレジスタのうちの複数からメモリにデータ
を格納し、さらに複数ストア命令が終了する前に、実行
中の複数ストア命令によってメモリに格納される、複数
のレジスタのうちの1つのレジスタに格納されたソース
・オペランド・データに依存する固定小数点命令を固定
小数点実行ユニットにディスパッチし、複数ストア命令
が終了する前に固定小数点実行ユニットがディスパッチ
された固定小数点命令を実行するが、複数ストア命令が
終了する前に複数のレジスタのうちの1つのレジスタに
実行済み固定小数点命令の結果を格納しないことを特徴
とする、スーパースカラー・マイクロプロセッサ。
スタにロードする少なくとも1つの複数ロード命令を含
む複数の命令をスーパースカラー・マイクロプロセッサ
で実行する方法において、ロード/ストア・ユニットに
複数ロード命令をディスパッチするステップであって、
ロード/ストア・ユニットがディスパッチされた複数ロ
ード命令の実行を開始し、複数ロード命令がメモリから
複数のレジスタにデータをロードするステップと、複数
のレジスタのうちの各レジスタをリストし、実行中の複
数ロード命令によって各レジスタにデータがロードされ
た時期を示すテーブルを管理するステップと、ソース・
オペランド・データがソース・レジスタにロードされた
ことをテーブルが示したときに、複数ロード命令がその
実行を完了する前に、その命令がソース・レジスタとし
て示した複数のレジスタのうちの1つのレジスタに複数
ロード命令によってロードされたソース・オペランド・
データに依存する命令を実行するステップとを含むこと
を特徴とする方法。 (2)複数のレジスタのうちの複数のレジスタからメモ
リにデータを格納する少なくとも1つの複数ストア命令
を含む複数の命令をスーパースカラー・マイクロプロセ
ッサで実行する方法において、ロード/ストア・ユニッ
トに複数ストア命令をディスパッチし、その直後にロー
ド/ストア・ユニットが複数ストア命令の実行を開始
し、複数ストア命令が複数のレジスタからメモリにデー
タを格納するステップと、複数ストア命令がその実行を
完了する前に、その固定小数点命令がソース・レジスタ
として示した複数のレジスタのうちの1つのレジスタか
ら複数ストア命令によって格納されるデータに依存する
固定小数点命令を実行するが、複数ストア命令が完了す
る前に実行中の固定小数点命令を複数のレジスタのうち
の1つのレジスタに書き込むことを禁止するステップと
を含むことを特徴とする方法。 (3)複数の命令を同時に実行するための複数の実行ユ
ニットを有し、メモリに接続されるスーパースカラー・
マイクロプロセッサにおいて、実行ユニットによる実行
の結果得られるデータを選択的に格納するための複数の
レジスタと、複数のレジスタからデータをロードする
か、または複数のレジスタにデータを格納するためのロ
ード命令とストア命令を実行するロード/ストア実行ユ
ニットと、複数のレジスタのソース・レジスタに格納さ
れたオペランド・データについて固定小数点演算を実行
するための固定小数点実行ユニットと、複数のレジスタ
のうちの1つまたは複数のレジスタをリストし、ロード
/ストア実行ユニットで実行中の複数ロード命令によっ
て各レジスタにデータがロードされた時期を示すテーブ
ルを管理するディスパッチャとを含み、複数ロード命令
がメモリから複数のレジスタのうちの複数にデータをロ
ードし、ディスパッチャがロード/ストア実行ユニット
および固定小数点実行ユニットを含む複数の実行ユニッ
トに命令をディスパッチし、さらにディスパッチャがロ
ード/ストア・ユニットに複数ロード命令をディスパッ
チし、ロード/ストア・ユニットが複数ロード命令の実
行を開始し、さらにロード/ストア実行ユニットでの複
数ロード命令の実行によってソース・オペランド・デー
タがソース・レジスタにロードされたことをテーブルが
示したときに、複数ロード命令がその実行を終了する前
に、ソース・レジスタとしてその命令によって示された
複数のレジスタのうちの1つのレジスタに複数ロード命
令によってロードされたソース・オペランド・データに
依存する固定小数点命令をディスパッチすることを特徴
とする、スーパースカラー・マイクロプロセッサ。 (4)複数の命令を同時に実行するための複数の実行ユ
ニットを有し、メモリに接続されるスーパースカラー・
マイクロプロセッサにおいて、実行ユニットによる実行
の結果得られるデータを選択的に格納するための複数の
レジスタと、複数のレジスタからデータをロードする
か、または複数のレジスタにデータを格納するためのロ
ード命令とストア命令を実行するロード/ストア実行ユ
ニットと、複数のレジスタのソース・レジスタに格納さ
れたオペランド・データについて固定小数点演算を実行
するための固定小数点実行ユニットと、ロード/ストア
実行ユニットと固定小数点実行ユニットとを含む複数の
実行ユニットに命令をディスパッチするディスパッチャ
とを含み、ディスパッチャがロード/ストア・ユニット
に複数ストア命令をディスパッチし、ロード/ストア・
ユニットが複数ストア命令の実行を開始し、複数ストア
命令が複数のレジスタのうちの複数からメモリにデータ
を格納し、さらに複数ストア命令が終了する前に、実行
中の複数ストア命令によってメモリに格納される、複数
のレジスタのうちの1つのレジスタに格納されたソース
・オペランド・データに依存する固定小数点命令を固定
小数点実行ユニットにディスパッチし、複数ストア命令
が終了する前に固定小数点実行ユニットがディスパッチ
された固定小数点命令を実行するが、複数ストア命令が
終了する前に複数のレジスタのうちの1つのレジスタに
実行済み固定小数点命令の結果を格納しないことを特徴
とする、スーパースカラー・マイクロプロセッサ。
【図1】本発明の好ましい実施例により情報を処理する
ためのプロセッサのブロック図である。
ためのプロセッサのブロック図である。
【図2】本発明の好ましい実施例により複数ロード命令
と後続の固定小数点命令を処理するのに必要なサイクル
のタイミング図である。
と後続の固定小数点命令を処理するのに必要なサイクル
のタイミング図である。
【図3】本発明の好ましい実施例によりマイクロプロセ
ッサ内で1つの複数ストア命令と2つの固定小数点命令
が処理されるサイクルを示すタイミング図である。
ッサ内で1つの複数ストア命令と2つの固定小数点命令
が処理されるサイクルを示すタイミング図である。
10 プロセッサ 11 システム・バス 12 バス・インタフェース・ユニット(BIU) 14 命令キャッシュおよびMMU 16 データ・キャッシュおよびMMU 17 順次取出し器 18 分岐処理ユニット 19 命令待ち行列 20 ディスパッチ・ユニット 22 固定小数点ユニット(FXU) 28 ロード/ストア・ユニット(LSU) 30 浮動小数点ユニット(FPU) 32 汎用レジスタ(GPR) 33 GPRリネーム・バッファ 36 浮動小数点レジスタ(FPR) 37 FPRリネーム・バッファ 40 完了ユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アルバート・ジェイ・ローパー アメリカ合衆国78613 テキサス州シーダ ー・パーク フォレスト・トレール 1003 (72)発明者 ソウンミヤ・マリック アメリカ合衆国78729 テキサス州オース チン パートリッジ・ベンド・ドライブ 13032 (72)発明者 オーブリ・ディー・オグデン アメリカ合衆国78681 テキサス州ラウン ド・ロック ストーンリース・ドライブ 1905
Claims (4)
- 【請求項1】複数のレジスタのうちの複数のレジスタに
ロードする少なくとも1つの複数ロード命令を含む複数
の命令をスーパースカラー・マイクロプロセッサで実行
する方法において、 ロード/ストア・ユニットに複数ロード命令をディスパ
ッチするステップであって、ロード/ストア・ユニット
がディスパッチされた複数ロード命令の実行を開始し、
複数ロード命令がメモリから複数のレジスタにデータを
ロードするステップと、 複数のレジスタのうちの各レジスタをリストし、実行中
の複数ロード命令によって各レジスタにデータがロード
された時期を示すテーブルを管理するステップと、 ソース・オペランド・データがソース・レジスタにロー
ドされたことをテーブルが示したときに、複数ロード命
令がその実行を完了する前に、その命令がソース・レジ
スタとして示した複数のレジスタのうちの1つのレジス
タに複数ロード命令によってロードされたソース・オペ
ランド・データに依存する命令を実行するステップとを
含むことを特徴とする方法。 - 【請求項2】複数のレジスタのうちの複数のレジスタか
らメモリにデータを格納する少なくとも1つの複数スト
ア命令を含む複数の命令をスーパースカラー・マイクロ
プロセッサで実行する方法において、 ロード/ストア・ユニットに複数ストア命令をディスパ
ッチし、その直後にロード/ストア・ユニットが複数ス
トア命令の実行を開始し、複数ストア命令が複数のレジ
スタからメモリにデータを格納するステップと、 複数ストア命令がその実行を完了する前に、その固定小
数点命令がソース・レジスタとして示した複数のレジス
タのうちの1つのレジスタから複数ストア命令によって
格納されるデータに依存する固定小数点命令を実行する
が、複数ストア命令が完了する前に実行中の固定小数点
命令を複数のレジスタのうちの1つのレジスタに書き込
むことを禁止するステップとを含むことを特徴とする方
法。 - 【請求項3】複数の命令を同時に実行するための複数の
実行ユニットを有し、メモリに接続されるスーパースカ
ラー・マイクロプロセッサにおいて、 実行ユニットによる実行の結果得られるデータを選択的
に格納するための複数のレジスタと、 複数のレジスタからデータをロードするか、または複数
のレジスタにデータを格納するためのロード命令とスト
ア命令を実行するロード/ストア実行ユニットと、 複数のレジスタのソース・レジスタに格納されたオペラ
ンド・データについて固定小数点演算を実行するための
固定小数点実行ユニットと、 複数のレジスタのうちの1つまたは複数のレジスタをリ
ストし、ロード/ストア実行ユニットで実行中の複数ロ
ード命令によって各レジスタにデータがロードされた時
期を示すテーブルを管理するディスパッチャとを含み、
複数ロード命令がメモリから複数のレジスタのうちの複
数にデータをロードし、ディスパッチャがロード/スト
ア実行ユニットおよび固定小数点実行ユニットを含む複
数の実行ユニットに命令をディスパッチし、さらにディ
スパッチャがロード/ストア・ユニットに複数ロード命
令をディスパッチし、ロード/ストア・ユニットが複数
ロード命令の実行を開始し、さらにロード/ストア実行
ユニットでの複数ロード命令の実行によってソース・オ
ペランド・データがソース・レジスタにロードされたこ
とをテーブルが示したときに、複数ロード命令がその実
行を終了する前に、ソース・レジスタとしてその命令に
よって示された複数のレジスタのうちの1つのレジスタ
に複数ロード命令によってロードされたソース・オペラ
ンド・データに依存する固定小数点命令をディスパッチ
することを特徴とする、スーパースカラー・マイクロプ
ロセッサ。 - 【請求項4】複数の命令を同時に実行するための複数の
実行ユニットを有し、メモリに接続されるスーパースカ
ラー・マイクロプロセッサにおいて、 実行ユニットによる実行の結果得られるデータを選択的
に格納するための複数のレジスタと、 複数のレジスタからデータをロードするか、または複数
のレジスタにデータを格納するためのロード命令とスト
ア命令を実行するロード/ストア実行ユニットと、 複数のレジスタのソース・レジスタに格納されたオペラ
ンド・データについて固定小数点演算を実行するための
固定小数点実行ユニットと、 ロード/ストア実行ユニットと固定小数点実行ユニット
とを含む複数の実行ユニットに命令をディスパッチする
ディスパッチャとを含み、ディスパッチャがロード/ス
トア・ユニットに複数ストア命令をディスパッチし、ロ
ード/ストア・ユニットが複数ストア命令の実行を開始
し、複数ストア命令が複数のレジスタのうちの複数から
メモリにデータを格納し、さらに複数ストア命令が終了
する前に、実行中の複数ストア命令によってメモリに格
納される、複数のレジスタのうちの1つのレジスタに格
納されたソース・オペランド・データに依存する固定小
数点命令を固定小数点実行ユニットにディスパッチし、
複数ストア命令が終了する前に固定小数点実行ユニット
がディスパッチされた固定小数点命令を実行するが、複
数ストア命令が終了する前に複数のレジスタのうちの1
つのレジスタに実行済み固定小数点命令の結果を格納し
ないことを特徴とする、スーパースカラー・マイクロプ
ロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/526,343 US5694565A (en) | 1995-09-11 | 1995-09-11 | Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions |
US08/526343 | 1995-09-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09146770A true JPH09146770A (ja) | 1997-06-06 |
JP3096427B2 JP3096427B2 (ja) | 2000-10-10 |
Family
ID=24096948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08191865A Expired - Fee Related JP3096427B2 (ja) | 1995-09-11 | 1996-07-22 | 複数ロード命令の実行方法、複数ストア命令の実行方法およびマイクロプロセッサ |
Country Status (5)
Country | Link |
---|---|
US (2) | US5694565A (ja) |
EP (1) | EP0762270B1 (ja) |
JP (1) | JP3096427B2 (ja) |
KR (1) | KR100234646B1 (ja) |
DE (1) | DE69636861T2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100322149B1 (ko) * | 1998-02-17 | 2002-02-04 | 포만 제프리 엘 | 고성능 추론적 스트링/다중 연산 방법 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH096614A (ja) * | 1995-06-21 | 1997-01-10 | Sanyo Electric Co Ltd | データ処理装置 |
US6006320A (en) * | 1996-07-01 | 1999-12-21 | Sun Microsystems, Inc. | Processor architecture with independent OS resources |
US5859999A (en) * | 1996-10-03 | 1999-01-12 | Idea Corporation | System for restoring predicate registers via a mask having at least a single bit corresponding to a plurality of registers |
US5913054A (en) * | 1996-12-16 | 1999-06-15 | International Business Machines Corporation | Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle |
US6006325A (en) * | 1996-12-19 | 1999-12-21 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for instruction and data serialization in a computer processor |
US7272703B2 (en) * | 1997-08-01 | 2007-09-18 | Micron Technology, Inc. | Program controlled embedded-DRAM-DSP architecture and methods |
US6039765A (en) * | 1997-12-15 | 2000-03-21 | Motorola, Inc. | Computer instruction which generates multiple results of different data types to improve software emulation |
US6202130B1 (en) | 1998-04-17 | 2001-03-13 | Motorola, Inc. | Data processing system for processing vector data and method therefor |
US20080184017A1 (en) * | 1999-04-09 | 2008-07-31 | Dave Stuttard | Parallel data processing apparatus |
GB0023697D0 (en) * | 2000-09-27 | 2000-11-08 | Univ Bristol | Register assignment in a processor |
US6789187B2 (en) * | 2000-12-15 | 2004-09-07 | Intel Corporation | Processor reset and instruction fetches |
JP2004151915A (ja) * | 2002-10-30 | 2004-05-27 | Renesas Technology Corp | データ処理装置 |
GB2402759B (en) * | 2003-06-12 | 2005-12-21 | Advanced Risc Mach Ltd | Data processing apparatus and method for transferring data values between a register file and a memory |
CA2434257A1 (en) * | 2003-07-03 | 2005-01-03 | Ibm Canada Limited - Ibm Canada Limitee | Pairing of spills for parallel registers |
US8078845B2 (en) * | 2005-12-16 | 2011-12-13 | Freescale Semiconductor, Inc. | Device and method for processing instructions based on masked register group size information |
CN101529377B (zh) * | 2006-10-27 | 2016-09-07 | 英特尔公司 | 处理器中多线程之间通信的方法、装置和系统 |
US7600099B2 (en) * | 2007-03-08 | 2009-10-06 | International Business Machines Corporation | System and method for predictive early allocation of stores in a microprocessor |
US7913067B2 (en) * | 2008-02-20 | 2011-03-22 | International Business Machines Corporation | Method and system for overlapping execution of instructions through non-uniform execution pipelines in an in-order processor |
US7987343B2 (en) * | 2008-03-19 | 2011-07-26 | International Business Machines Corporation | Processor and method for synchronous load multiple fetching sequence and pipeline stage result tracking to facilitate early address generation interlock bypass |
US8082467B2 (en) * | 2009-12-23 | 2011-12-20 | International Business Machines Corporation | Triggering workaround capabilities based on events active in a processor pipeline |
US9104399B2 (en) * | 2009-12-23 | 2015-08-11 | International Business Machines Corporation | Dual issuing of complex instruction set instructions |
US9135005B2 (en) * | 2010-01-28 | 2015-09-15 | International Business Machines Corporation | History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties |
US8495341B2 (en) * | 2010-02-17 | 2013-07-23 | International Business Machines Corporation | Instruction length based cracking for instruction of variable length storage operands |
US8938605B2 (en) * | 2010-03-05 | 2015-01-20 | International Business Machines Corporation | Instruction cracking based on machine state |
US8464030B2 (en) | 2010-04-09 | 2013-06-11 | International Business Machines Corporation | Instruction cracking and issue shortening based on instruction base fields, index fields, operand fields, and various other instruction text bits |
US8645669B2 (en) | 2010-05-05 | 2014-02-04 | International Business Machines Corporation | Cracking destructively overlapping operands in variable length instructions |
US8914616B2 (en) | 2011-12-02 | 2014-12-16 | Arm Limited | Exchanging physical to logical register mapping for obfuscation purpose when instruction of no operational impact is executed |
US9201656B2 (en) * | 2011-12-02 | 2015-12-01 | Arm Limited | Data processing apparatus and method for performing register renaming for certain data processing operations without additional registers |
US20130173886A1 (en) * | 2012-01-04 | 2013-07-04 | Qualcomm Incorporated | Processor with Hazard Tracking Employing Register Range Compares |
Family Cites Families (15)
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 |
US5471593A (en) * | 1989-12-11 | 1995-11-28 | Branigin; Michael H. | Computer processor with an efficient means of executing many instructions simultaneously |
US5241636A (en) * | 1990-02-14 | 1993-08-31 | Intel Corporation | Method for parallel instruction execution in a computer |
JPH0455986A (ja) * | 1990-06-26 | 1992-02-24 | Toshiba Corp | 画像処理装置 |
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 |
US5539911A (en) * | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
KR100248903B1 (ko) * | 1992-09-29 | 2000-03-15 | 야스카와 히데아키 | 수퍼스칼라마이크로프로세서에서의 적재 및 저장연산처리방법 및 시스템 |
US5416911A (en) * | 1993-02-02 | 1995-05-16 | International Business Machines Corporation | Performance enhancement for load multiple register instruction |
US5878245A (en) * | 1993-10-29 | 1999-03-02 | Advanced Micro Devices, Inc. | High performance load/store functional unit and data cache |
DE69429061T2 (de) * | 1993-10-29 | 2002-07-18 | Advanced Micro Devices Inc | Superskalarmikroprozessoren |
US5559976A (en) * | 1994-03-31 | 1996-09-24 | International Business Machines Corporation | System for instruction completion independent of result write-back responsive to both exception free completion of execution and completion of all logically prior instructions |
DE69506623T2 (de) * | 1994-06-03 | 1999-07-22 | Motorola Inc | Datenprozessor mit einer Ausführungseinheit zur Durchführung von Ladebefehlen und Verfahren zu seinem Betrieb |
-
1995
- 1995-09-11 US US08/526,343 patent/US5694565A/en not_active Expired - Lifetime
-
1996
- 1996-07-15 KR KR1019960028564A patent/KR100234646B1/ko not_active IP Right Cessation
- 1996-07-22 JP JP08191865A patent/JP3096427B2/ja not_active Expired - Fee Related
- 1996-08-29 EP EP96306249A patent/EP0762270B1/en not_active Expired - Lifetime
- 1996-08-29 DE DE69636861T patent/DE69636861T2/de not_active Expired - Lifetime
-
1997
- 1997-06-11 US US08/873,013 patent/US5867684A/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100322149B1 (ko) * | 1998-02-17 | 2002-02-04 | 포만 제프리 엘 | 고성능 추론적 스트링/다중 연산 방법 |
Also Published As
Publication number | Publication date |
---|---|
EP0762270A2 (en) | 1997-03-12 |
EP0762270A3 (en) | 2004-07-28 |
DE69636861D1 (de) | 2007-03-15 |
JP3096427B2 (ja) | 2000-10-10 |
US5694565A (en) | 1997-12-02 |
DE69636861T2 (de) | 2007-07-05 |
KR100234646B1 (ko) | 1999-12-15 |
KR970016945A (ko) | 1997-04-28 |
EP0762270B1 (en) | 2007-01-24 |
US5867684A (en) | 1999-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3096427B2 (ja) | 複数ロード命令の実行方法、複数ストア命令の実行方法およびマイクロプロセッサ | |
JP3580657B2 (ja) | 並列マルチタスキングの方法及びシステム | |
US5802386A (en) | Latency-based scheduling of instructions in a superscalar processor | |
US5611063A (en) | Method for executing speculative load instructions in high-performance processors | |
JPH07160501A (ja) | データ処理システム | |
RU2142157C1 (ru) | Способ функционирования системы обработки | |
US6338134B1 (en) | Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data | |
EP0675433A2 (en) | Processing system and method of operation | |
US6192461B1 (en) | Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle | |
US5778248A (en) | Fast microprocessor stage bypass logic enable | |
US5872948A (en) | Processor and method for out-of-order execution of instructions based upon an instruction parameter | |
US7302553B2 (en) | Apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue | |
KR20010077997A (ko) | 단일 사이클 파이프라인 기능 정지를 발생하기 위한파이프라인 프로세서 시스템 및 방법 | |
JP3096429B2 (ja) | 複数の命令の非整順完了をサポートする方法およびスーパースカラ・マイクロプロセッサ | |
JP2004038753A (ja) | プロセッサ及び命令制御方法 | |
US5765017A (en) | Method and system in a data processing system for efficient management of an indication of a status of each of multiple registers | |
JPH06242952A (ja) | スーパースカラ・プロセッサにおける命令処理の選択的逐次化の方法およびシステム | |
RU2150738C1 (ru) | Система обработки и способ ее функционирования | |
JPH10222378A (ja) | 命令を処理するための方法およびシステム | |
US5664120A (en) | Method for executing instructions and execution unit instruction reservation table within an in-order completion processor | |
US5784606A (en) | Method and system in a superscalar data processing system for the efficient handling of exceptions | |
US5758117A (en) | Method and system for efficiently utilizing rename buffers to reduce dispatch unit stalls in a superscalar processor | |
JPH117389A (ja) | プロセサ用の命令を処理するシステム及び方法 | |
US6266761B1 (en) | Method and system in an information processing system for efficient maintenance of copies of values stored within registers | |
JPH10283178A (ja) | 命令を発行するための方法及びシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |