JP2003323294A - スーパースカラプロセッサ - Google Patents

スーパースカラプロセッサ

Info

Publication number
JP2003323294A
JP2003323294A JP2002129830A JP2002129830A JP2003323294A JP 2003323294 A JP2003323294 A JP 2003323294A JP 2002129830 A JP2002129830 A JP 2002129830A JP 2002129830 A JP2002129830 A JP 2002129830A JP 2003323294 A JP2003323294 A JP 2003323294A
Authority
JP
Japan
Prior art keywords
instruction
reservation station
operand data
execution
data
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.)
Pending
Application number
JP2002129830A
Other languages
English (en)
Inventor
Hirotada Takabayashi
宏忠 高林
Yasushi Okada
恭 岡田
Makiko Konya
真紀子 紺谷
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.)
PFU Ltd
Original Assignee
PFU Ltd
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 PFU Ltd filed Critical PFU Ltd
Priority to JP2002129830A priority Critical patent/JP2003323294A/ja
Publication of JP2003323294A publication Critical patent/JP2003323294A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 この発明の課題は、スーパースカラプロセッ
サのリザベーションステーションにおける、回路規模を
削減することにある。 【解決手段】 図1に示すように、リザベーションステ
ーション5のエントリに格納するオペランドデータとし
て、レジスタ番号、インデックス番号、データセレクト
フラグを格納する。実際のオペランドデータを取得する
のは、リザベーションステーション5から命令実行部6
に命令を送出する際に、オペランドデータの格納先を示
す、データセレクトフラグを参照し、リオーダバッファ
4またはレジスタファイル3からデータの内容を取得す
る。これにより、オペランドデータの値を直接リザベー
ションステーションに格納するのに比べ、小さい領域で
オペランドデータを格納することができ、回路規模の削
減が行える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、命令デコード部
と、この命令デコード部でデコードされた命令のオペラ
ンドデータをレジスタファイルとリオーダバッファを参
照することで実行する、複数の実行ユニットとで構成す
るスーパースカラプロセッサに関し、リザベーションス
テーションにおける回路規模の削減を実現したスーパー
スカラプロセッサに関するものである。
【0002】
【従来の技術】計算機の処理速度を向上するため、中央
演算処理ユニットの高速化技法として複数の命令を並列
に実行するスーパースカラ方式が使用されている。スー
パースカラ方式では、命令を並行して実行するため、中
央演算処理ユニット内に複数の実行ユニットを持ってお
り、命令がデコードされると、その命令の種別(算術演
算、分岐、ロード/ストア等の別)にあわせてその命令
を実行できる実行ユニットに命令が振り分けられる。
【0003】例えば、図7のような命令が与えられた場
合、二つの加算命令(a)、(b)にはお互いに一切依
存関係がない。そこで、命令デコード部1ではこの二つ
の命令を算術演算が行える二つの実行ユニット2に振り
分け、実行ユニットはこれを同時に処理していく。
【0004】ところが、図8のような命令が与えられた
場合は、命令(a)の結果を格納したAレジスタの値が
次の命令(b)の演算に使用されるため、命令(a)が
終了するまで命令(b)は実行できない。これに対し、
命令(c)は命令(a)、(b)とは依存関係がないの
で、図に示すように、命令(b)の実行を追い抜いて命
令(a)と並行して実行される。
【0005】このように命令の記述順序に関係なく、命
令を実行することをアウトオブオーダー実行という。こ
のような依存関係のある命令を含め効率的にアウトオブ
オーダー実行を実現するための機構としてリザベーショ
ンステーションが使用される。
【0006】図9に示すように、命令デコード部1で
は、デコードした命令に、このような依存関係の情報を
付加して実行ユニット2に命令を発行するが、実行ユニ
ットではこの命令を図10に示すようなリザベーション
ステーションに格納する。リザベーションステーション
には、図10に示すように、複数のエントリがあり、図
10のリザベーションステーションの場合は8個の命令
を格納することができる。
【0007】リザベーションステーションでは、命令デ
コード部でデコードされた命令が、図10に示すよう
に、命令情報(命令コード、依存関係がある場合はその
情報等)と命令のオペランドデータという形で格納され
る。このとき、オペランドデータとして使用されるレジ
スタに、その他の命令との依存関係がない場合は、リザ
ベーションステーションのオペランドデータ格納域に
は、レジスタファイルから直接レジスタ値を取得し格納
する。
【0008】図11の命令の場合、命令(a)、(b)
で使用されるレジスタに依存関係がないので、リザベー
ションステーション5にはレジスタファイル3からオペ
ランドデータが取得され、図のように情報が格納され
る。このように命令が使用するオペランドデータが確定
している命令は、図10に示す、実行ユニット内のリザ
ベーションステーション5から命令実行部6に送られ、
命令が実行される。
【0009】命令が使用するオペランドデータが依存関
係のある図12の命令の場合、命令(a)のオペランド
データは、レジスタファイルから直接レジスタ値を取得
し格納されるが、命令(b)のオペランドデータ2のデ
ータは命令(a)の処理結果を値として使用するため、
リザベーションステーションに格納される時点では値が
決まらない。
【0010】そこで、リザベーションステーションのオ
ペランド2には、命令(a)の結果が入ることを示すた
めに、命令(a)のインデックス番号である、1という
値が格納される。このインデックス番号は、命令デコー
ド部で実行ユニットに発行した命令を特定するために付
加する情報である。
【0011】このように命令デコード部でデコードした
命令がリザベーションステーションに格納され、その
後、命令(a)はオペランドデータが確定しているの
で、図13に示すように、命令実行部6に送られ実行さ
れる。
【0012】この実行結果は、図に示すように、エント
リ1に格納されている命令(b)が使用するので、フォ
ワーディングパス7を通ってリザベーションステーショ
ンのエントリ1のオペランド2に格納されているインデ
ックス番号1を書き換えることでオペランドデータが格
納される。こうしてオペランドデータが確定した命令
(b)も命令実行部に送られ実行される。
【0013】また、アウトオブオーダー実行を効率的に
行うために、図14に示すような命令の場合、レジスタ
リネーミングとリオーダバッファが使用される。図14
の(1)の場合、命令(a)、(b)、(c)ともにレ
ジスタAを使用しているため、このままではアウトオブ
オーダー実行ができず、命令の並列実行はできないよう
に見える。
【0014】しかし、命令(c)のレジスタAは値が上
書きされるだけで、レジスタAに格納されている値は使
用されないので、実際にはレジスタAでなくても良いは
ずである。そこでこのような場合、図14の(2)に示
すようなレジスタリネーミングが行われる。
【0015】こうすると、命令(a´)、(b´)に対
し命令(c´)には依存関係がなくなるので、並列実行
が可能となる。このレジスタリネーミングでのレジスタ
のマッピングは図14の(3)に示すようになってお
り、レジスタAに対し、命令(a´)、(b´)と命令
(c´)ではR0、R3という別のレジスタにマップさ
れており、これを実行後に実際のレジスタファイルにあ
る、レジスタAに実行結果を書き戻すことになるが、こ
のとき、書き戻す順序によっては、問題が発生する。
【0016】例えば、命令(a´)が実行される前のレ
ジスタA、B、C、Dの値が100、200、300、
400だったとすると、命令(a´)の実行によりR0
には300が入り、これをレジスタAに書き戻し、その
後、命令(c´)が実行されR3に400が入り、これ
をレジスタAに書き戻し、その後、命令(b´)が実行
されると、R2には−100が入り、これがレジスタC
の値となってしまう。
【0017】実際にはこの3命令が実行された後、レジ
スタCは0でなければならないので、単純にレジスタリ
ネームによりアウトオブオーダー実行を行ってしまう
と、結果が正しくない場合が発生することになる。
【0018】このような問題を起こらないようにするた
めの機構としてリオーダバッファが使用される。リオー
ダバッファは先着順待ち行列で、その構成は図15のよ
うになっており、命令デコード部でデコードした命令が
レジスタ書き換えを行う命令の場合、その命令は待ち行
列の先頭にエントリされる。
【0019】その命令が実行されると、その結果はレジ
スタファイルではなく、リオーダバッファのその命令の
エントリに書き込まれる。リオーダバッファのエントリ
が最後まで到達すると、そのエントリにレジスタの値が
書き込み済みか判定し、書き込まれている場合は、その
値をレジスタファイルのレジスタに書き戻し、このエン
トリを取り除き、待ち行列を先に進める。最後のエント
リにレジスタの値がまだ書き込まれていない場合は、書
き込みが行われるまで待ち行列の進行は停止される。
【0020】図16の場合の例で、レジスタリネーミン
グとリオーダバッファの動作を説明する。図16に示す
ように、命令デコード部にて命令(a)、(b)、
(c)を命令(a´)、(b´)、(c´)の形にレジ
スタリネーミングを行い、各命令にインデックス番号1
から3を割り付ける。これらの命令はそれぞれレジスタ
の値を書き換える命令なので、リオーダバッファに図1
7の(1)のようにエントリされる。
【0021】各命令は命令デコード部から実行ユニット
に発行され、図16に示すようにリザベーションステー
ションのエントリに格納される。このとき、オペランド
データはまずリオーダバッファの中を参照し、この中に
必要なレジスタの値が書き込まれている場合は、その値
を取得し、リオーダバッファに必要なレジスタの値がな
ければ、レジスタファイルから値を取得する。
【0022】この例の場合は、図17の(1)のように
リオーダバッファにこの三つのエントリしかないので、
リザベーションステーションに格納されるオペランドデ
ータはレジスタファイルから取得され、格納される。
【0023】実行ユニットで命令(a´)と命令(c
´)が並行して実行され、その結果がリオーダバッファ
に図17の(2)のように格納される。命令(a´)が
完了(R0値が確定)した後、命令(b´)が実行さ
れ、リオーダバッファは図17の(3)のようになる。
リオーダバッファでは、図17の(3)の下のエントリ
からレジスタファイルへの書き戻しが行われる。
【0024】一番下のエントリにより、R0にマッピン
グされているレジスタAへ300が格納され、次にR2
にマッピングされているレジスタCへ0が格納され、最
後のR3にマッピングされているレジスタAへ400が
格納される。このように、リオーダバッファを使用する
ことで、レジスタリネーミングを行った場合も、アウト
オブオーダー実行による結果の順序性が保たれ、より効
率的に並列実行することが可能となる。
【0025】スーパースカラプロセッサでは、以上のよ
うな機構を用いて命令の並列実行を行い、処理性能を上
げているが、これを実現するために、前記したように、
リザベーションステーションにおいて、フォワーディン
グやリオーダバッファとのデータのやり取りを行うため
のパスが必要である。
【0026】このパスは、リザベーションステーション
の各エントリのオペランドデータ格納域毎に必要であ
り、実行ユニット数の増加、リザベーションステーショ
ンのエントリ数の増加によりこれらのパスもそれに応じ
た分だけ必要となり、これらの回路構成が非常に複雑で
大規模なものとなってしまっていた。
【0027】また、リザベーションステーション内にオ
ペランドデータを格納する領域自体も必要であり、この
領域も、実行ユニット数やリザベーションステーション
のエントリ数に応じて領域が必要なため、並列実行の同
時実行命令数を増やそうと、実行ユニット数を増やせば
増やすほど、さらにリザベーションステーションの回路
規模が大きくなってしまっていた。
【0028】
【発明が解決しようとする課題】前記のごとく、従来の
技術では次のような問題点がある。
【0029】スーパースカラプロセッサでは、処理速度
を上げるため、命令を並列実行する機能を持っている
が、これを効率的に機能させるための機構として、リザ
ベーションステーションを備えている。しかし、従来の
リザベーションステーションは、アウトオブオーダー実
行の効率的な動作のため、フォワーディングやリオーダ
バッファとのデータのやり取りのため大規模なパスが必
要であった。
【0030】また、並列実行度を上げるため実行ユニッ
ト数やリザベーションステーション内のエントリ数が増
えることで、リザベーションステーションに格納するオ
ペランドデータ格納域の回路規模も非常に大きくなって
しまっていた。
【0031】この発明の課題は、スーパースカラプロセ
ッサのリザベーションステーションにおける、回路規模
を削減することにある。
【0032】
【課題を解決するための手段】前記の問題点を解決する
ために、この発明では次に示す手段を取った。
【0033】図1に示すように、リザベーションステー
ション5のエントリに格納するオペランドデータとし
て、レジスタ番号、インデックス番号、データセレクト
フラグを格納する。
【0034】実際のオペランドデータを取得するのは、
リザベーションステーション5から命令実行部6に命令
を送出する際に、リオーダバッファ3またはレジスタフ
ァイル4からデータの内容を取得する。
【0035】データセレクトフラグは、命令デコード部
1にて、その命令のオペランドに他の命令との依存関係
がない場合、他の命令と依存関係があり、依存関係を持
つ命令が完了済みで、結果がリオーダバッファにある場
合、他の命令と依存関係があり、依存関係を持つ命令が
未完了の場合の三つの場合を示すフラグである。
【0036】このフラグ値により、リザベーションステ
ーション5から命令実行部6に命令を送出する際に、命
令実行部6で必要となるオペランドデータを、そのオペ
ランドデータが格納されている適切な格納先と接続され
たオペランドデータバスを選択し、そのデータバスを使
用して取得する。命令実行部6は、そのオペランドデー
タを使用して命令を実行する。これにより、オペランド
データの値を直接リザベーションステーションに格納す
るのに比べ、小さい領域でオペランドデータを格納する
ことができ、回路規模の削減が行える。
【0037】また、実行結果のフォワーディングを直接
行わず、リオーダバッファ4に実行結果を格納した後、
リザベーションステーション5から命令実行部6へ命令
送出時にこの結果データをリオーダバッファ4から取得
する。これにより、フォワーディングパスが必要なくな
り、リザベーションステーションの回路規模の削減が行
える。
【0038】
【発明の実施の形態】この発明は、次に示す実施の形態
を取った。
【0039】リザベーションステーションのオペランド
データ格納域には、オペランドのレジスタ番号、インデ
ックス番号、データセレクトフラグを格納する手段を備
える。
【0040】これにより、オペランドデータの値を直接
リザベーションステーションに格納するのに比べ、小さ
い領域でオペランドデータを格納することができ、リザ
ベーションステーションの回路規模を削減できる。
【0041】命令実行部に前記リザベーションステーシ
ョンのオペランドデータ格納域に格納された情報をもと
に、オペランドデータを適切なパスから取得する手段を
備える。
【0042】これにより、レジスタ番号、インデックス
番号、データセレクトフラグという少ない情報で、レジ
スタファイルまたはリオーダバッファから適切なオペラ
ンドデータを取得し、命令を実行することができる。
【0043】リザベーションステーションに直接データ
のフォワーディングを行わず、実行結果は一旦リオーダ
バッファに書き込み、命令実行部で命令実行のためオペ
ランドデータを取得する際にリオーダバッファからデー
タを取得する構成とする。
【0044】これにより、リザベーションステーション
の各エントリのオペランドデータ格納域毎に必要であっ
たフォワーディングパスが必要なくなり、リザベーショ
ンステーションの回路規模を削減できる。
【0045】
【実施例】この発明による代表的な実施例を説明する。
【0046】図2に示すように、本実施例のスーパース
カラプロセッサは、命令をデコードする命令デコード部
1、命令を実行する複数の実行ユニット2、レジスタの
値を格納するレジスタファイル3、アウトオブオーダー
実行の実行結果の順序性を確保するためのリオーダバッ
ファ4を備えている。
【0047】命令は命令デコード部1にてフェッチし、
命令解析を行い、その命令の種別(算術演算、分岐、ロ
ード/ストア等)に合わせて、その種別の命令を実行で
きる実行ユニット2に送られる。実行ユニットは、図3
に示すように、複数のエントリ(本実施例の場合、エン
トリ0からエントリ7までの8個)を持ったリザベーシ
ョンステーションを備えている。
【0048】命令デコード部から送られてきた命令は、
このリザベーションステーションに格納される。リザベ
ーションステーションでは、命令のオペランドデータと
して、レジスタの値を直接格納するのではなく、オペラ
ンドデータとして指定されたレジスタ番号と、そのオペ
ランドがその他の命令の実行結果と依存関係のある場合
は、その依存関係のある命令のインデックス番号(命令
デコード部で付与される、リザベーションステーション
に格納されている命令を一意に識別できる番号)、そし
て、命令実行部で実際にオペランドデータを取得すると
きにどのパスからデータを取得するかを示すデータセレ
クトフラグを格納する。
【0049】このデータセレクトフラグは3つの状態を
示す。一つ目の状態は、命令デコード部でデコードした
結果、その命令に使用されるオペランドデータが、その
他の命令の実行結果と依存関係がない場合である。
【0050】この場合は、リザベーションステーション
から命令実行部に命令が送出される際、このフラグ値に
より、命令実行部にてオペランドデータを取得するデー
タバスとして、レジスタファイルからのデータバスを選
択し、リザベーションステーションのオペランドデータ
格納域に格納されたレジスタ番号から、レジスタファイ
ル内のそのレジスタのレジスタ値を取得し、命令を実行
する。
【0051】二つ目の状態は、命令デコード部でデコー
ドした結果、その命令に使用されるオペランドデータ
が、その他の命令の実行結果と依存関係があり、その依
存関係のある命令が完了済みで、実行結果がリオーダバ
ッファ内にある場合である。
【0052】この場合は、リザベーションステーション
から命令実行部に命令が送出される際、このフラグ値に
より、命令実行部にてオペランドデータを取得するデー
タバスとして、リオーダバッファからのデータバスを選
択し、リザベーションステーションのオペランドデータ
格納域に格納されたレジスタ番号と、インデックス番号
から、リオーダバッファのエントリを検索し、リオーダ
バッファに格納されたそのレジスタ値を取得し、命令を
実行する。
【0053】三つ目の状態は、命令デコード部でデコー
ドした結果、その命令に使用されるオペランドデータ
が、その他の命令の実行結果と依存関係があり、その依
存関係のある命令が未完了の場合である。
【0054】この場合は、リザベーションステーション
から命令実行部に命令が送出される際、このフラグ値に
より、命令実行部にてオペランドデータを取得するデー
タバスとして、リオーダバッファからのデータバスを選
択するが、必要なオペランドデータがまだ格納されてい
ないため、命令の実行を停止する。
【0055】命令実行部は、リザベーションステーショ
ンのオペランドデータ格納域に格納された、依存関係の
ある命令のインデックス番号を使用し、リオーダバッフ
ァのそのインデックス番号のエントリのレジスタ値が書
き込まれるのを監視し、書き込まれた時点で、その値を
リオーダバッファから取得し命令を実行する。
【0056】以上のような動作を行うことで、リザベー
ションステーションに格納する情報を、レジスタ番号、
インデックス番号、データセレクトフラグとすることが
できる。
【0057】図4に示すように、実行ユニットが4個
で、リザベーションステーションのエントリ数が8個、
各命令のオペランド数が2個、各オペランドのデータ幅
が64ビットのスーパースカラプロセッサの場合で、従
来のようにリザベーションステーション内にレジスタ値
を直接格納するときは、全部で(実行ユニット数4)×
(エントリ数8)×(オペランド数2)×(データ幅6
4ビット)=4096ビットの格納域が必要である。
【0058】これに対し、リザベーションステーション
にレジスタ番号、インデックス番号、データセレクトフ
ラグを格納する場合は、通常のスーパースカラプロセッ
サのレジスタ数が300個以下、命令のインデックス番
号もリザベーションステーションのエントリがプロセッ
サに32個(実行ユニット4×エントリ数8)であるこ
とから、0から31までで良く、データセレクトフラグ
の状態が3つだけであるので、それぞれに必要なビット
数は、レジスタ番号に9ビット、インデックス番号に5
ビット、データセレクトフラグに2ビットの合計16ビ
ットである。
【0059】よってリザベーションステーションのオペ
ランドデータの格納域として必要な領域は、(実行ユニ
ット数4)×(エントリ数8)×(オペランド数2)×
(データ幅16ビット)=1024ビットであり、従来
の方式に比べ1/4に回路を削減することができる。
【0060】また、本実施例のスーパースカラプロセッ
サでは、フォワーディングにより直接リザベーションス
テーション内のオペランドデータ格納域にデータを格納
することは行わず、実行ユニットによる実行結果は、す
べて一旦リオーダバッファに書き込み、リザベーション
ステーションから命令実行部に命令が送出される際に、
必要なオペランドデータをリオーダバッファから取得す
るようになっている。
【0061】これにより、図5に示すように、実行結果
データのフォワーディングを行うのに必要であった、
(実行ユニット数4)×(エントリ数8)×(データ幅
64ビット)=2048ビットのフォワーディングパス
が不要となり、リザベーションステーションの回路規模
の削減が行われている。
【0062】以上のような構成とすることで、リザベー
ションステーションの回路規模を削減できるが、このよ
うな構成とすると、命令実行部で命令実行時に、オペラ
ンドデータとして必要なデータをレジスタファイルまた
はリオーダバッファから取得するためのパスが必要にな
り、従来の方式に比べ、1命令あたりの実行クロックが
1クロック余分に必要となるが、図6に示すように、各
命令は、パイプライン方式で実行されるため、1命令あ
たりの実行クロック数が増えても、複数命令列全体の実
行時間として1クロック分遅れるだけであり、プロセッ
サとしての性能に問題はない。
【0063】
【発明の効果】この発明により、以下に示すような効果
が期待できる。
【0064】命令デコード部と命令デコード部でデコー
ドされた命令を、同時並行して実行するための複数の実
行ユニットと、その実行ユニット内に複数のエントリを
持ったリザベーションステーションと、アウトオブオー
ダー実行の結果の順序性を確保するためのリオーダバッ
ファとを備えたスーパースカラプロセッサにおいて、リ
ザベーションステーションの各エントリに格納するオペ
ランドデータ情報としてレジスタ番号、インデックス番
号、データセレクトフラグを格納することで、リザベー
ションステーションのオペランドデータ格納域のサイズ
を減らし、リザベーションステーションの回路規模を削
減することができる。
【0065】また、リザベーションステーションから命
令実行部に命令を送出する際にオペランドデータをレジ
スタファイルまたはリオーダバッファから取得するよう
に構成することで、リザベーションステーションでのフ
ォワーディングが必要なくなり、このために必要であっ
たフォワーディングパスを削除でき、リザベーションス
テーションの回路規模を削減することが可能となる。
【図面の簡単な説明】
【図1】本発明の全体構成図である。
【図2】本発明のスーパースカラプロセッサの実施例構
成図である。
【図3】実行ユニット内の構成図である。
【図4】オペランドデータ格納域の回路規模削減の説明
図である。
【図5】フォワーディング用のパス削除による回路規模
削減の説明図である。
【図6】本発明の構成とすることによる、性能への影響
説明図である。
【図7】依存関係のない命令の並列動作説明図である。
【図8】依存関係のある命令の並列動作説明図である。
【図9】従来のスーパースカラプロセッサの構成図であ
る。
【図10】従来の実行ユニット内の構成図である。
【図11】リザベーションステーションへのデータ格納
説明図である。
【図12】リザベーションステーションへの依存関係の
あるデータの格納説明図である。
【図13】データのフォワーディング動作説明図であ
る。
【図14】レジスタリネーミングの説明図である。
【図15】リオーダバッファの構成図である。
【図16】レジスタリネーミングとリオーダバッファの
動作説明図である。
【図17】リオーダバッファの動作説明図である。
【符号の説明】
1:命令デコード部 2:実行ユニット 3:レジスタファイル 4:リオーダバッファ 5:リザベーションステーション 6:命令実行部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 紺谷 真紀子 石川県河北郡宇ノ気町字宇野気ヌ98番地の 2 株式会社ピーエフユー内 Fターム(参考) 5B013 AA12 AA13 CC05 CC08 DD00 5B033 DD06 DD09

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】命令デコード部と、リザベーションステー
    ションを有する複数の実行ユニットを持ち、そのリザベ
    ーションステーションと協調し、アウトオブオーダー実
    行の結果の順序性を確保するためのリオーダバッファを
    備えたスーパースカラプロセッサにおいて、 実行ユニットに、 オペランドデータとして、命令で指定されたオペランド
    のレジスタ番号と、そのオペランドデータがその他の命
    令の実行結果に依存関係のある場合、その命令のインデ
    ックス番号を格納する、複数のエントリを備えたリザベ
    ーションステーションと、 オペランドデータ取得先としてレジスタファイルとリオ
    ーダバッファを選択する手段を備えた命令実行部と、 命令実行部でオペランドデータを取得する際、オペラン
    ドデータが未完了の命令の実行結果に依存する場合、そ
    の未完了命令の完了を監視し、完了後にオペランドデー
    タを取得する手段と、 を備えることを特徴とするスーパースカラプロセッサ。
  2. 【請求項2】命令デコード部と、リザベーションステー
    ションを有する複数の実行ユニットを持ち、そのリザベ
    ーションステーションと協調し、アウトオブオーダー実
    行の結果の順序性を確保するためのリオーダバッファを
    備えたスーパースカラプロセッサにおいて、 前記リザベーションステーションで、命令デコード部お
    よびリオーダバッファから与えられたオペランド制御信
    号に基づき、 オペランドデータがレジスタファイル内に存在する場合
    は、命令実行部にてレジスタファイルよりデータを読み
    取るようにオペランドデータバスを制御し、 オペランドデータがリオーダバッファに存在し、レジス
    タファイルへの書き戻しを待機している場合は、命令実
    行部にてリオーダバッファよりデータを読み取るようオ
    ペランドデータバスを制御し、 オペランドデータがその他の命令の実行結果に依存関係
    を持ち、その命令の完了を待機している場合は、命令の
    完了を監視し、監視している命令が完了した場合は、リ
    オーダバッファにオペランドデータが書き込まれた直後
    に、命令実行部にてリオーダバッファよりデータを読み
    取るようオペランドデータバスを制御する、 ことを特徴とする請求項1記載のスーパースカラプロセ
    ッサ。
JP2002129830A 2002-05-01 2002-05-01 スーパースカラプロセッサ Pending JP2003323294A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002129830A JP2003323294A (ja) 2002-05-01 2002-05-01 スーパースカラプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002129830A JP2003323294A (ja) 2002-05-01 2002-05-01 スーパースカラプロセッサ

Publications (1)

Publication Number Publication Date
JP2003323294A true JP2003323294A (ja) 2003-11-14

Family

ID=29543123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002129830A Pending JP2003323294A (ja) 2002-05-01 2002-05-01 スーパースカラプロセッサ

Country Status (1)

Country Link
JP (1) JP2003323294A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11080057B2 (en) 2018-11-09 2021-08-03 Fujitsu Limited Processing device and method of controlling processing device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11080057B2 (en) 2018-11-09 2021-08-03 Fujitsu Limited Processing device and method of controlling processing device

Similar Documents

Publication Publication Date Title
JP3724581B2 (ja) バックアップ装置
US5790822A (en) Method and apparatus for providing a re-ordered instruction cache in a pipelined microprocessor
JP3818315B2 (ja) スーパースケーラマイクロプロセサ
US5546597A (en) Ready selection of data dependent instructions using multi-cycle cams in a processor performing out-of-order instruction execution
JP5209933B2 (ja) データ処理装置
JP2006079623A (ja) ハードウェア装置、コンピュータシステム、並びにハードウェア装置における命令の非順次的実行方法及び条件生成命令処理方法
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
JPH06242954A (ja) 独立にアクセスされる中間記憶域を利用してスーパースカラ・プロセッサ・システムにおける命令ディスパッチを改善する方法およびシステム
US20030154364A1 (en) Mechanism for instruction data forwarding in a pipeline processor
US20030135714A1 (en) Method and apparatus for pre-processing instructions for a processor
JP3756410B2 (ja) 述語データを提供するシステム
JPH06236275A (ja) スーパースカラ・プロセッサ・システムにおける非逐次命令ディスパッチおよび実行のための方法およびシステム
CN110515656B (zh) 一种casp指令的执行方法、微处理器及计算机设备
US6959377B2 (en) Method and system for managing registers
US6351803B2 (en) Mechanism for power efficient processing in a pipeline processor
JP3490005B2 (ja) 命令制御装置及びその方法
JP2003323294A (ja) スーパースカラプロセッサ
JP2001051845A (ja) アウトオブオーダー実行方式
US7490226B2 (en) Method using vector component comprising first and second bits to regulate movement of dependent instructions in a microprocessor
JP3668643B2 (ja) 情報処理装置
JP2010205088A (ja) ベクトル処理装置、及びベクトル処理方法
JP2002351658A (ja) 演算処理装置