JP2000181715A - 命令制御装置及びその方法 - Google Patents
命令制御装置及びその方法Info
- Publication number
- JP2000181715A JP2000181715A JP10358982A JP35898298A JP2000181715A JP 2000181715 A JP2000181715 A JP 2000181715A JP 10358982 A JP10358982 A JP 10358982A JP 35898298 A JP35898298 A JP 35898298A JP 2000181715 A JP2000181715 A JP 2000181715A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- memory
- data
- address
- register
- 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
Landscapes
- Advance Control (AREA)
Abstract
ベーションステーション及びレジスタ再ネーミング技術
を用いレジスタ−メモリ間命令及びメモリ−メモリ間命
令を効率良く実行する装置及びその方法を提供する。 【解決手段】 先行する命令において格納命令が解読さ
れるとそのデータ格納先のメモリアドレスを保持し且つ
データ格納元に割り当てられた更新バッファの情報を保
持すること、後続の命令が演算のソースデータとしてメ
モリアドレスからのフェッチデータを必要とする命令の
実行時にそのメモリアドレスと前記保持されたメモリア
ドレスとの一致を検出すること、前記一致によりリザベ
ーションステーションに登録された後続の命令のデータ
格納元情報を前記更新バッファの情報に置き換えるこ
と、前記置き換えによりメモリからのフェッチデータに
代えて前記更新バッファの格納データを使用すること、
から成る。
Description
の方法に関し、特に情報処理装置において命令処理を高
速に実行するために順序を外れた命令実行を可能とする
命令制御装置及びその方法に関する。
rder) とは、プログラムにより指示された命令順序とは
異なった順序で、入力データがそろった命令から随時実
行する処理をいう。命令の実行は任意の順序であるが、
プログラムからアクセス可能な資源、すなわち記憶域、
レジスタ内容等はプログラム順序で更新参照されたよう
に命令は実行される。
め順序を外れた命令実行を可能とする情報処理装置で
は、命令の解読サイクルの後に一旦リザベーションステ
−ションと呼ばれる解読済命令格納手段にその解読済命
令が複数格納される。そして、それらの解読順序に関係
なくソースオペランドが使用可能となった解読済命令が
選ばれてリザベーションステーションから演算器に命令
が発行される。
率よく実行するために、レジスタ内容がプログラム順序
で更新参照されることを保障するレジスタ再ネーミング
技術が用いられる。レジスタ再ネーミング技術は、命令
で使用する論理レジスタを再ネーミングして各々異なる
物理レジスタ又はメモリに割り付け、複数命令による同
一レジスタの使用が競合する時でも互いの処理が独立に
実行可能な場合にはそれらを並列実行可能とさせる技術
である。シンプルな命令を高速に動作させるための機構
として効率的なハードウエアである。
術の一例を示している。図1において、図示しない命令
キャッシュを介して命令レジスタ10にフェッチされた
命令が論理レジスタRの内容を更新する命令の場合、前
記論理レジスタRに代えてレジスタ更新バッファ(RU
B: Register Update Buffer)14が割り当てられる。
その割り当てのために、命令レジスタ10上の論理レジ
スタアドレスを基に更新バッファアドレステーブル及び
レジスタ更新保留テーブル11が索引される。
各汎用レジスタ(GPR:GeneralPurpose Register)
に対応するレジスタ更新バッファア14のアドレスが、
そして後者のレジスタ更新保留テーブル11には汎用レ
ジスタの使用又は割り当てられたレジスタ更新バッファ
アの使用のいずれかを指示するレジスタ更新保留ビット
がそれぞれ格納されている。その索引の結果、論理レジ
スタRに対応する更新バッファアのアドレスとその更新
保留指示が読みだされ、次段のリザベーションステーシ
ョン12上に登録される。
算器15に命令を発行する際に前記更新保留指示に従っ
て演算に用いるオペランドとして汎用レジスタ(GP
R)13又はレジスタ更新バッファ(RUB)14のい
ずれかを指定する。
のオペランド部の一構成例を示したものである。図2に
おいて、リザベーションステーション12の各エントリ
ー1〜3にはそれぞれ演算器15への発行命令が格納さ
れている。エントリー1の第1オペランドは更新保留指
示(P1)、レジスタアドレス(RA1)及び更新バッ
ファアドレス(UBA1)から成り、第2オペランドも
同様にP2、RA2及びUBA2から成る。ここで、P
1がオン(=1)ならRA1が読み出され、P1がオフ
(=0)ならUBA1が読みだされる。
ずメモリ内容もプログラム順序で更新参照されるのを保
障する必要がある。そのため、従来技術においてはキャ
ッシュメモリにデータが格納されるまで、そこへのフェ
ッチアクセスは待機され、結果的に演算性能が低下する
という問題があった。
ャートの一例が示されている。図3の(a)はレジスタ
−レジスタ間命令の一例を示し、また図3の(b)はレ
ジスタ−メモリ間命令の一例を示したものである。ここ
で、Dサイクルは命令デコードサイクルであり、Pサイ
クルはレジスタ読み出しサイクル、Xサイクルは演算実
行サイクル、そしてWサイクルは格納サイクルである。
であり、演算結果がWサイクルで更新バッファに格納さ
れる。次に、命令2のレジスタ読み出し命令では、図3
の(a)に点線矢印で示すようにフォワーディング処理
によって命令1のXサイクルの演算結果は直ちに命令2
で読み出される。このように、レジスタ−レジスタ間命
令では更新レジスタと読み出しレジスタとが干渉する場
合でもパイプライン演算処理に遅延は生じない。
命令である。Wサイクルではストアバッファにデータが
格納される。続くAサイクルでキャッシュラムのアドレ
スがセットされ、次のBサイクルで前記データがキャッ
シュラムに書き込まれる。命令2のメモリ読み出し命令
では命令1で格納したメモリアドレスからソースデータ
をフェッチしなければならず、そのため図3の(a)の
レジスタ−レジスタ間命令と比較するとその演算実行の
ためにさらに4クロック分多く必要となる。
み、レジスタ−メモリ間命令においても先行する命令が
キャッシュメモリにデータを格納するまで待機すること
なく、後続の命令がフォワーディング処理によりそのデ
ータへのフェッチアクセスを直ちに実行できる手段を設
けることで、その演算性能を大幅に向上させた命令制御
装置及びその方法を提供することにある。また本発明の
目的は、さらにメモリ−メモリ間命令においても上記と
同様に後続の命令がフォワーディング処理により直ちに
データへのフェッチアクセスを可能とした命令制御装置
及びその方法を提供することにある。
果を一時格納し、命令実行が完了する時点で汎用レジス
タを更新するための複数のレジスタ更新バッファと、指
定の汎用レジスタを更新するデータがどのレジスタ更新
バッファに格納されるかを示す更新バッファアドレステ
ーブルと、指定の汎用レジスタが更新保留になっている
ことを示すレジスタ更新保留テーブルと、汎用レジスタ
アドレス、該汎用レジスタに対応する前記更新バッファ
アドレステーブルから出力されたレジスタ更新バッファ
アドレス、及び該汎用レジスタの更新保留指示を格納す
るリザベーションステーションと、を有し、更新保留指
示がオンであれば指定されたレジスタ更新バッファを、
更新保留指示がオフであれば指定された汎用レジスタを
ソースデータとして用いる情報処理装置における命令制
御方法を対象とする。
てメモリからのフェッチデータを必要とする命令の実行
時において、先行する命令においてメモリ領域の格納が
行われていなければ、該フェッチデータをレジスタ更新
バッファに格納して使用すること、先行する命令におい
てメモリ領域の格納が行われており且つその格納先アド
レスとフェッチデータの取り出し先アドレスが等しい場
合には、先行する命令が保持されるリザベーションステ
ーションから格納用レジスタを指定するための更新保留
指示、レジスタ更新バッファアドレス、汎用レジスタバ
ッファアドレスを該演算命令が保持されるリザベーショ
ンステーションのフェッチデータ指定情報領域にコピー
すること、該演算命令はメモリからフェッチされたデー
タの代わりに先行する格納命令において指定された格納
用レジスタを使用すること、から成る命令制御方法が提
供される。
としてメモリからのフェッチデータを必要とし且つ演算
結果で汎用レジスタを更新する命令の実行時において、
該フェッチデータを汎用レジスタ更新用に割り当てられ
たレジスタ更新バッファに一時格納してソースデータと
して使用するとともに、演算結果を該レジスタ更新バッ
ファに再び格納すること、先行する命令の格納先アドレ
スとフェッチデータの取り出し先アドレスが等しいた
め、先行する命令が保持されるリザベーションステーシ
ョンから格納用レジスタを指定するためのレジスタ更新
バッファアドレスを該演算命令が保持されるリザベーシ
ョンステーションのフェッチデータ指定情報領域にコピ
ーする際に、該演算命令に割り当てられた更新バッファ
アドレスを別に保持すること、該コピー情報を基に、演
算結果が更新バッファに格納された後から該更新バッフ
ァがフェッチデータで更新されることを抑止すること、
を含む。
メモリデータとメモリデータを演算してメモリに格納す
る命令であり、後続する命令が先行する命令の格納先ア
ドレスからフェッチデータを取り出す命令の実行時にお
いて、後続命令が格納されるリザベーションステーショ
ン中の該当する更新保留指示のリセットを抑止するこ
と、前記リセットの抑止により、先行するメモリ格納命
令が汎用レジスタを使用しない場合でも、後続の演算命
令がフェッチされたデータの代わりに先行する格納命令
において指定されたレジスタ更新バッファを使用するこ
と、を含む。
が、メモリデータとメモリデータを演算してメモリに格
納する命令であり、後続する命令が先行する命令の格納
先アドレスからフェッチデータを取り出す命令の実行時
においては、メモリに格納するデータを一時保持するた
めの更新バッファを汎用レジスタ更新のための更新バッ
ファとは別に備え、後続の演算命令がフェッチされたデ
ータの代わりに先行する格納命令において指定されたレ
ジスタ更新バッファを使用すること、を含む。
置の基本構成例を示したものである。図5は、図4の命
令制御装置の動作フロー図である。図4では図1の従来
例と相違する部分を太線で示している。ここでは、前記
太線部分を中心に本発明による命令制御装置の動作につ
いて説明する。また、その説明の対応個所には図5のス
テップ番号を付している。
(ストア命令)が解読されると(S101)、そのデー
タ格納先のメモリアドレス部Aはメモリ格納アドレス保
持手段20に格納される。また、データ格納元の論理レ
ジスタRのアドレスからレジスタ再ネーミングのために
更新バッファアドレステーブル及びレジスタ更新保留テ
ーブル11が索引され、対応する更新保留指示(P
1)、汎用レジスタアドレス(RA1)及び更新バッフ
ァアドレス(UBA1)がリザベーションステーション
12に格納される。それと同時に前記P1、RA1及び
UBA1は一時格納手段22にも格納される(S10
2)。
モリ演算命令(例えば、メモリ−レジスタ加算命令等)
が解読されると(S103)、そのメモリアドレス部の
メモリアドレスは前記メモリ格納アドレス保持手段20
が保持する先のメモリアドレスAと比較器21によって
比較される。それらが一致すると比較器21は一致信号
を出力する(S104)。
ンステーション12上の前記メモリ演算命令エントリー
における対応オペランドには、後続のメモリ演算命令に
より該当メモリアドレスからフェッチされるデータを格
納する更新バッファアドレスに代えて、前記一時格納手
段22に格納された内容(P1、RA1及びUBA1)
がコピー()される。同時に、前記格納先更新バッフ
ァアドレスは、更新バッファアドレス保持手段23へ送
られ保持される。前記更新バッファアドレス保持手段2
3からはフェッチデータが更新バッファを更新しないよ
うに制御する制御信号が生成される(S105)。な
お、前記更新バッファアドレス保持手段23の動作の詳
細については後述する。
であるストア命令において所定のメモリアドレスに格納
するソースデータを保持する汎用レジスタ(すなわち対
応する更新バッファ)の内容が、後続のメモリ演算命令
で同じメモリアドレスの内容をフェッチアクセスするの
に代えて用いられる。その結果、本発明によれば本来レ
ジスタ−メモリ間命令であるものがレジスタ−レジスタ
間命令に置き換えられ、図3の(a)に示したようなレ
ジスタ間のフォワーディング処理を利用した高速パイプ
ライン演算が可能となる。
のである。図6は、本発明による第1の命令制御動作の
一例(レジスタ−メモリ間命令)を示したものである。
図6の(b)は本発明による動作例を示しており、一方
図6の(a)には同じ動作を行う従来例を本発明との比
較のために示している。図6において、ロード命令(L
5,A)により、メモリアドレスAの内容が汎用レジ
スタ5にロードされる。続くストア命令(ST 5,
B)で汎用レジスタ5の内容がメモリアドレスBにスト
アされる。最後に、加算命令(A 6,B)で汎用レジ
スタ6の内容とメモリアドレスBの内容が加算され、そ
の結果が同じ汎用レジスタ6に書き込まれる。
果がメモリに反映されたタイミング6以降でなければ後
続の命令はメモリからフェッチデータを取り出せないの
に対して、図6の(b)ではストア命令の演算結果をフ
ォワーディング処理して直ちに使用することができる。
る動作における各レジスタ内容等の変遷を命令サイクル
シーケンスに従って示したものである。図7は、図6の
(b)のタイミング1の設定データ例を示している。タ
イミング1では、ロード命令(L 5,A)により更新
バッファアドレステーブル及びレジスタ更新保留テーブ
ル11が更新される。本例では、メモリアドレスAから
フェッチされ汎用レジスタ5(GR5)を更新する内容
を保持するため更新バッファ1(P=1,UBA=1)
が割り当てられる。
T 5,B)のメモリアドレスBがメモリ格納アドレス
保持手段20に格納される。同時に、ストア命令の汎用
レジスタアドレス5を基に更新バッファアドレステーブ
ル及びレジスタ更新保留テーブル11が索引され、前記
ロード命令による更新結果を保持するGR5(UBA=
1、P=1)がリザベーションステーション12のスト
ア命令エントリー及び一時格納手段22に格納される。
6,B)におけるDサイクルでは、命令レジスタ10上
のメモリアドレスBと前記メモリ格納アドレス保持手段
20に格納されたメモリアドレスBとが比較器21で比
較される。本例ではその比較結果が一致し、一致信号
が出力される。
力によって前記一時格納手段22の内容(GR5;UB
A=1、P=1)がリザベーションステーション12の
加算命令エントリーのフェッチデータ格納先を示す領域
にコピーされる。その結果、先行するストア命令の演算
結果を保持する更新バッファ1(P=1の場合)の内容
がフォワーディングされ直ちに後続の加算命令が実行さ
れる。このように、本実施例において加算命令はメモリ
からのフェッチデータの代わりに汎用レジスタ5又はL
命令の結果を保持するレジスタ更新バッファ1をソース
データとして使用するため、先行するストア命令がメモ
リにデータをストアするよりも早く後続の命令がそのデ
ータを使った演算を開始できる。
おけるリザベーションステーション12の加算命令エン
トリーの一例を示している。図10に示すように、タイ
ミング3では前述した本発明によるフォワーディング処
理が実行されず、加算命令の更新バッファ(UBA2)
にはメモリアドレスBからフェッチするデータを格納す
る更新バッファアドレス(本例ではUBA2=2)が指
定される。従って、先行するストア命令によるメモリへ
の格納が終了した時点で後続の加算演算が開始される。
おけるメモリからのフェッチデータが後続の加算命令の
フェッチデータよりも遅れる場合の一例を示している。
図11の加算命令は、いずれもメモリからのフェッチデ
ータを汎用レジスタGR5に加算し、その結果でGR5
を更新するものである。
めに拡張されたリザベーションステーション12の一例
を示している。図12では、新たに汎用レジスタを更新
した結果を保持する更新バッファアドレス(DUBA:
Destination Update Buffer Address )が設けられてい
る。これについて前記図11の例を用い、図13及び図
14に示すレジスタ内容を参照しながら説明する。
1では先行する加算命令の解読結果に基づいて更新バッ
ファアドレステーブル及びレジスタ更新保留テーブル1
1が索引され汎用レジスタ5(GR5)に対応する更新
バッファ1(RUB1)が取得される。また、汎用レジ
スタ5の更新結果を保持するDUBAに更新バッファ1
が割り当てられる。
ング2では後続の加算命令の解読結果に基づいて更新バ
ッファアドレステーブル及びレジスタ更新保留テーブル
11が索引され、同じ汎用レジスタ5(GR5)に次の
更新バッファ2が割り当てられる。また、上記と同様に
DUBAにも更新バッファ2が割り当てられる。
が後続のフェッチデータよりも遅れるケースを考慮し、
メモリからのフェッチデータは前記DUBAで指定され
た更新バッファ2に一時格納される。命令は汎用レジス
タ用のデータがそろった時点で、汎用レジスタ及び前記
更新バッファのデータが演算器に与えられる。
DUBAで指定した更新バッファ1に出力されるのを待
って(P1=1、UBA1=1)、そのフォワーディン
グ処理が行なわれ後続の演算が開始される。その演算結
果は、DUBAで指定された更新バッファ2に格納さ
れ、次のWサイクルで汎用レジスタ5に書き込まれる。
シンにおいて本発明の第1の命令制御動作であるストア
命令後に同じメモリアドレスからのフェッチ動作を実行
した場合、演算器からの演算結果とメモリからのフェッ
チデータとが同時に同じ更新バッファに書き込まれるケ
ースが発生する。
図15では、本発明によるフォワーディング処理(スト
アフェッチフォワーディング)を用いた加算命令(A
6,B)がXサイクルでその演算結果を更新バッファ2
(RUB2)に書き込む際に、同時刻の後続のメモリ演
算命令のBサイクルでそのフェッチデータが同じ更新バ
ッファ2(RUB2)に書き込まれる。
ェッチフォワーディングを行なわない通常の加算命令の
DUBAには更新バッファ2(RUB2)が割り当てら
れる。そのため、図9のコピー処理後の加算命令の演算
結果は更新バッファ2に一時書き込まれる(演算器→R
UB2)。一方、図15のカッコ内に示すように通常の
加算命令実行時のBサイクル(フェッチデータ→RUB
2)はストアフェッチフォワーディング処理時のXサイ
クルと一致する。
ォワーディング処理を実行した場合に限って、同じ更新
バッファ(本例ではRUB2)に同時に2つの書き込み
処理が発生する。図16は、前記2つの同時書き込みを
防止するための更新バッファアドレス保持手段23の動
作説明図である。
キャシュ24のデータのいずれかを選択して更新バッフ
ァX(RUBX:X=0〜n)14に格納する一般的な
構成例を示したものである。図15でいえば、加算命令
の演算結果又はメモリフェッチデータが更新バッファ2
に書き込まれる。
保持手段23の一構成例を示したものである。前述した
ようにストア命令のデータ格納先情報がリザベーション
ステーション12上の次の加算命令にコピーされる直前
のタイミングでその加算命令のDUBAの内容がバッフ
ァ31に保持される。バッファ31の内容はデコーダ3
2によってデコードされ、前述したストアフェッチフォ
ワーディング処理の際に同時に発生する2つの書き込み
処理のうちデータキャッシュ24からのメモリフェッチ
データによる更新バッファXの更新処理を禁止するフラ
グ信号(INH_RUBX_UPDATE)が出力され
る。
ようにキャシュ側の出力をゲーティングしてメモリフェ
ッチデータによる更新バッファ2の更新を禁止する。こ
こで、+X_DSUBA_EQ_2信号はXサイクルに
おける更新バッファ2のイネーブル信号であり、+B_
DSUBA_EQ_2信号はBサイクルにおける更新バ
ッファ2のイネーブル信号である。
だけが格納され、フォワーディング処理により不要とな
ったキャッシュ24からのフェッチデータは廃棄され
る。なお、ここでは更新バッファ2についてのみ示して
あるが、同様な回路は各更新バッファX毎に設けられて
おり、それらは同様に動作する。
演算シーケンスの一例を示している。図17の(a)
は、ロード命令( L 5、A)のWサイクルでストア命
令( ST 5、B)のリザベーションステーション12
上のPビットがオフ(P1=0)となる。これは、汎用
レジスタ5に正しい値が保持されたことを意味し、この
場合は次の加算命令(A 6、B)におけるメモリフェ
ッチデータのフォワーディング処理は更新バッファから
ではなく汎用レジスタ5から行われる。
する命令については、これまで述べたメモリデータのフ
ェッチに代わるフォワーディング処理を矛盾なく実行で
きる。なお、ここで「命令」はDPXWのシーケンスを
有する一般の命令を示している。ところで、ストア命令
には汎用レジスタを介さずにメモリデータとメモリデー
タとを加算してメモリにストアする命令も存在する。
を示したものである。この場合、フォワーディングすべ
きデータは更新バッファ内にしか存在しないため、前記
図17の(a)で示した先行命令のWワイフル後のタイ
ミングでフォワーディングしようとすると正常に動作し
ない場合がある。
5個実装する場合を示している。ここで、ロード命令
(L 5、A)は更新バッファ1を汎用レジスタ5の更
新データ保持に使用し、そのWサイクルで更新バッファ
1の内容を汎用レジスタ5に格納する。その結果、後続
の命令6が次に前記更新バッファ1の使用を許可され
る。ところで、ロード命令の次に実行されるストア命令
(本例ではAP A、B)はソースとして汎用レジスタ
を使用せず、ソースとして前記更新バッファ1の内容を
そのまま使用する。
によりメモリアドレスAの内容を読み込む代わりに前記
更新バッファ1の内容をフォワーディングする。しかし
ながら、本例では更新バッファ1の使用を許可された命
令6が、すでにそのBサイクルで更新バッファ1の内容
をフェッチデータに書き換えている。従って、それより
も後に実行される加算命令のXサイクルによって得られ
る結果は誤ったものとなる。
作(メモリ−メモリ間演算命令)の一例を示したもので
ある。図18では、汎用レジスタを使用しないメモリ演
算命令の一例としてAP命令を使用した場合を示してい
る。AP命令はメモリAの内容とメモリBの内容とを加
算して、メモリAに格納する命令である。ここで、汎用
レジスタ更新用の更新バッファXはX=1〜5の5個ま
でが使用でき、さらに更新バッファ6はAP命令専用の
更新バッファとして割り当てられている。
2とタイミング3の各データ設定例を示している。図1
9では、命令レジスタ10においてAP命令(AP
A、B)が解読されると、そのデータ格納先のメモリア
ドレス部Aはメモリ格納アドレス保持手段20に格納さ
れる。一方、それに加算されるメモリアドレスBのフェ
ッチ先として前記AP命令専用の更新バッファ6が割り
当てられる。それはリザベーションステーション12上
のAP命令オペランドのDUBAに格納され、同時に一
時格納手段22にも格納される。なお、本例のAP命令
では汎用レジスタを使用しないため、更新バッファアド
レステーブル及びレジスタ更新保留テーブル11を索引
することはない。
た後続の加算命令(A 6、A)におけるメモリアドレ
ス部Aと前記メモリ格納アドレス保持手段20が保持す
る先のメモリアドレスAとが比較器21によって比較さ
れる。本例ではそれらが一致するため、その一致信号に
よりリザベーションステーション12上の対応オペラン
ドに前記一時格納手段22に格納された内容がコピーさ
れる。以降の動作はこれまでに述べた本発明による第1
の命令制御動作と同じである。
令のフェッチデータフォワーディング用のデータは前記
AP命令専用の更新バッファ6に保持されており、P2
ビットはリセットされない。その結果、いずれのタイミ
ングからでもAP命令専用の更新バッファ6を使ってフ
ェッチデータのフォワーディング処理が可能である。な
お、前記加算命令がそのフォワーディング処理を行う前
に、新たに後続のAP命令を実行しようとする場合に
は、そのフォワーディング処理が終了するまで後続AP
命令のデコードが停止される。
であるAP命令において所定のメモリアドレスに格納す
るソースデータを保持するAP命令専用の更新バッファ
が割り当てられるため、ここでも後続のメモリ演算命令
は本来レジスタ−メモリ間命令であるものがレジスタ−
レジスタ間命令に置き換えられ、前記AP命令専用の更
新バッファ6を使ったフォワーディング処理により高速
なパイプライン演算が可能となる。
を開示している。先ず、本発明では、命令実行の結果を
一時格納し、命令実行が完了する時点で汎用レジスタを
更新するための複数のレジスタ更新バッファと、指定の
汎用レジスタを更新するデータがどのレジスタ更新バッ
ファに格納されるかを示す更新バッファアドレステーブ
ルと、指定の汎用レジスタが更新保留になっていること
を示すレジスタ更新保留テーブルと、汎用レジスタアド
レス、該汎用レジスタに対応する前記更新バッファアド
レステーブルから出力されたレジスタ更新バッファアド
レス、及び該汎用レジスタの更新保留指示を格納するリ
ザベーションステーションと、 を有し、更新保留指示
がオンであれば指定されたレジスタ更新バッファを、更
新保留指示がオフであれば指定された汎用レジスタをソ
ースデータとして用いる情報処理装置における命令制御
方法を前提とする。そこでは、以下の方法を開示してい
る。
らのフェッチデータを必要とする命令の実行時におい
て、先行する命令においてメモリ領域の格納が行われて
いなければ、該フェッチデータをレジスタ更新バッファ
に格納して使用すること、先行する命令においてメモリ
領域の格納が行われており、且つその格納先アドレスと
フェッチデータの取り出し先アドレスが等しい場合に
は、先行する命令が保持されるリザベーションステーシ
ョンから格納用レジスタを指定するための更新保留指
示、レジスタ更新バッファアドレス、汎用レジスタバッ
ファアドレスを該演算命令が保持されるリザベーション
ステーションのフェッチデータ指定情報領域にコピーす
ること、該演算命令はメモリからフェッチされたデータ
の代わりに先行する格納命令において指定された格納用
レジスタを使用する命令制御方法。
らのフェッチデータを必要とし、かつ演算結果で汎用レ
ジスタを更新する命令の実行時において、該フェッチデ
ータを汎用レジスタ更新用に割り当てられたレジスタ更
新バッファに一時格納してソースデータとして使用する
とともに、演算結果を該レジスタ更新バッファに再び格
納すること、先行する命令の格納先アドレスとフェッチ
データの取り出し先アドレスが等しいため、先行する命
令が保持されるリザベーションステーションから格納用
レジスタを指定するためのレジスタ更新バッファアドレ
スを該演算命令が保持されるリザベーションステーショ
ンのフェッチデータ指定情報領域にコピーする際に、該
演算命令に割り当てられた更新バッファアドレスを別に
保持すること、該コピー情報を基に、演算結果が更新バ
ッファに格納された後から該更新バッファがフェッチデ
ータで更新されることを抑止すること、を含む上記方
法。
モリデータを演算してメモリに格納する命令であり、後
続する命令が先行する命令の格納先アドレスからフェッ
チデータを取り出す命令の実行時において、後続命令が
格納されるリザベーションステーション中の該当する更
新保留指示のリセットを抑止すること、前記リセットの
抑止により、先行するメモリ格納命令が汎用レジスタを
使用しない場合でも、後続の演算命令がフェッチされた
データの代わりに先行する格納命令において指定された
レジスタ更新バッファを使用すること、を含む上記方
法。
モリデータを演算してメモリに格納する命令であり、後
続する命令が先行する命令の格納先アドレスからフェッ
チデータを取り出す命令の実行時において、メモリに格
納するデータを一時保持するための更新バッファを汎用
レジスタ更新のための更新バッファとは別に備え、後続
の演算命令がフェッチされたデータの代わりに先行する
格納命令において指定されたレジスタ更新バッファを使
用すること、を含む上記方法。
ジスタ再ネーミングを行う情報処理装置において、メモ
リ演算命令についても効率的にストアフェッチフォワー
ディング機能を実現することが可能となる。
た図である。
一構成例を示した図である。
図である。
た図である。
−メモリ間命令)を示した図である。
示した図である。
示した図である。
示した図である。
ンステーションの一例を示した図である。
例を示した図である。
た図である。
た図である。
同時書き込みの説明図である。
である。
である。
メモリ間命令)の一例を示した図である。
た図である。
た図である。
保留テーブル 12…リザベーションステーション 13…汎用レジスタ 14…レジスタ更新バッファ 15…演算器 20…メモリ格納アドレス保持手段 21…比較器 22…一時格納手段 23…更新バッファ保持手段 24…キャッシュ 31…バッファ 33…デコーダ
Claims (8)
- 【請求項1】 複数個の解読済命令を格納するリザベー
ションステーション及びレジスタ再ネーミングのための
更新バッファを有する情報処理装置の命令制御方法であ
って、 先行する命令において格納命令が解読されると、そのデ
ータ格納先のメモリアドレスを保持し、かつデータ格納
元に割り当てられた更新バッファの情報を保持するこ
と、 後続の命令が演算のソースデータとしてメモリアドレス
からのフェッチデータを必要とする命令の実行時におい
て、そのメモリアドレスと前記保持されたメモリアドレ
スとの一致を検出すること、 前記一致を検出した場合に、リザベーションステーショ
ンに登録された後続の命令のデータ格納元の情報を前記
更新バッファの情報に置き換えること、 前記置き換えにより、メモリからのフェッチデータに代
えて前記更新バッファの格納データを使用すること、か
ら成ることを特徴とする命令制御方法。 - 【請求項2】 さらに、前記置き換えの前に、前記後続
命令のデータ格納元の情報を別に保持すること、 前記保持したデータ格納元の情報に基づいて、前記更新
バッファに格納される前記後続命令の演算結果がその後
のフェッチデータによって更新されることを防止するこ
と、を含む請求項1記載の方法。 - 【請求項3】 さらに、先行する命令がメモリデータと
メモリデータを演算してメモリに格納する命令であり、
後続する命令が先行する命令のデータ格納先アドレスか
らフェッチデータを取り出す命令の実行時において、 前記後続命令が格納されるリザベーションステーション
中の該当する前記更新バッファの開放を抑止すること、 前記開放の抑止により、先行するメモリ格納命令が汎用
レジスタを使用しない場合でも、後続の演算命令がメモ
リからのフェッチデータに代えて前記更新バッファの格
納データを使用すること、を含む請求項1記載の方法。 - 【請求項4】 さらに、先行する命令がメモリデータと
メモリデータを演算してメモリに格納する命令であり、
後続する命令が先行する命令のデータ格納先アドレスか
らフェッチデータを取り出す命令の実行時において、 汎用レジスタ更新用の更新バッファとは別に設けられた
専用更新バッファにメモリに格納するデータを一時保持
すること、 後続の演算命令は、メモリからのフェッチデータに代え
て前記専用更新バッファの格納データを使用すること、
を含む請求項1又は3記載の方法。 - 【請求項5】 汎用レジスタの更新保留指示がオンであ
れば指定されたレジスタ更新バッファを、更新保留指示
がオフであれば指定された汎用レジスタをソースデータ
として用いる命令制御装置であって、 命令レジスタで解読されたメモリ格納命令のデータ格納
先のメモリアドレスと、 命令レジスタで解読された後続のメモリ演算命令のメモ
リアドレス部のメモリアドレスとを比較する比較器と、 前記比較器からの一致信号の出力によって、先のメモリ
格納命令の更新保留指示、汎用レジスタアドレス及び更
新バッファアドレスを前記リザベーションステーション
上における後続のメモリ演算命令のメモリアドレス情報
と置き換える手段と、を備えたことを特徴とする命令制
御装置。 - 【請求項6】 さらに、前記置き換え前のリザベーショ
ンステーション上の後続メモリ演算命令のメモリアドレ
ス情報が退避され、そのデコード情報によって前記後続
命令の演算結果がその後のフェッチデータによって更新
されることを防止する更新バッファアドレス保持手段、
を有する請求項5記載の装置。 - 【請求項7】 さらに、先行する命令がメモリデータと
メモリデータを演算してメモリに格納する命令であり、
後続する命令が先行する命令のデータ格納先アドレスか
らフェッチデータを取り出す命令の実行時において、先
行するメモリ格納命令が汎用レジスタを使用しない場合
でも後続の演算命令にフェッチされたデータの代わりに
先行する格納命令において指定されたレジスタ更新バッ
ファを使用させるため、後続命令が格納されるリザベー
ションステーション中の該当する更新保留指示のリセッ
トを抑止する手段、を有する請求項5記載の装置。 - 【請求項8】 さらに、先行する命令がメモリデータと
メモリデータを演算してメモリに格納する命令であり、
後続する命令が先行する命令のデータ格納先アドレスか
らフェッチデータを取り出す命令の実行時において、メ
モリに格納するデータを専用に保持し、後続の演算命令
がその保持データをフェッチされたデータの代わりに使
用する専用レジスタ更新バッファ、を有する請求項5又
は7記載の装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35898298A JP3497087B2 (ja) | 1998-12-17 | 1998-12-17 | 命令制御装置及びその方法 |
US09/461,429 US6807624B1 (en) | 1998-12-17 | 1999-12-16 | Instruction control device and method therefor |
US10/747,286 US7127591B2 (en) | 1998-12-17 | 2003-12-30 | Instruction control device and method therefor |
US10/747,291 US7313674B2 (en) | 1998-12-17 | 2003-12-30 | Instruction control device and method therefor |
US10/747,138 US7275146B2 (en) | 1998-12-17 | 2003-12-30 | Instruction control device and method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35898298A JP3497087B2 (ja) | 1998-12-17 | 1998-12-17 | 命令制御装置及びその方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000181715A true JP2000181715A (ja) | 2000-06-30 |
JP3497087B2 JP3497087B2 (ja) | 2004-02-16 |
Family
ID=18462128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35898298A Expired - Fee Related JP3497087B2 (ja) | 1998-12-17 | 1998-12-17 | 命令制御装置及びその方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3497087B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014002735A (ja) * | 2012-06-14 | 2014-01-09 | Apple Inc | ゼロサイクルロード |
US11068271B2 (en) | 2014-07-28 | 2021-07-20 | Apple Inc. | Zero cycle move using free list counts |
US11200062B2 (en) | 2019-08-26 | 2021-12-14 | Apple Inc. | History file for previous register mapping storage and last reference indication |
US11416254B2 (en) | 2019-12-05 | 2022-08-16 | Apple Inc. | Zero cycle load bypass in a decode group |
-
1998
- 1998-12-17 JP JP35898298A patent/JP3497087B2/ja not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014002735A (ja) * | 2012-06-14 | 2014-01-09 | Apple Inc | ゼロサイクルロード |
US9996348B2 (en) | 2012-06-14 | 2018-06-12 | Apple Inc. | Zero cycle load |
US11068271B2 (en) | 2014-07-28 | 2021-07-20 | Apple Inc. | Zero cycle move using free list counts |
US11200062B2 (en) | 2019-08-26 | 2021-12-14 | Apple Inc. | History file for previous register mapping storage and last reference indication |
US11416254B2 (en) | 2019-12-05 | 2022-08-16 | Apple Inc. | Zero cycle load bypass in a decode group |
Also Published As
Publication number | Publication date |
---|---|
JP3497087B2 (ja) | 2004-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9081563B2 (en) | Method and apparatus for enhancing scheduling in an advanced microprocessor | |
US7624253B2 (en) | Determining register availability for register renaming | |
JPH11212788A (ja) | プロセッサのデータ供給装置 | |
US20060095733A1 (en) | Hardware device for executing conditional instruction out-of-order fetch and execution method thereof | |
JP2000148489A (ja) | コンピュ―タシステム | |
JPH06259253A (ja) | データプロセッサおよびその動作方法 | |
JP2008107983A (ja) | キャッシュメモリ | |
US7844799B2 (en) | Method and system for pipeline reduction | |
JP3727244B2 (ja) | キャッシュシステムの制御回路 | |
US5699538A (en) | Efficient firm consistency support mechanisms in an out-of-order execution superscaler multiprocessor | |
JP3518510B2 (ja) | リオーダバッファの管理方法及びプロセッサ | |
US5848256A (en) | Method and apparatus for address disambiguation using address component identifiers | |
US6421771B1 (en) | Processor performing parallel operations subject to operand register interference using operand history storage | |
JP3497087B2 (ja) | 命令制御装置及びその方法 | |
US20100100709A1 (en) | Instruction control apparatus and instruction control method | |
US7275146B2 (en) | Instruction control device and method therefor | |
US5333288A (en) | Effective address pre-calculation type pipelined microprocessor | |
JP2894438B2 (ja) | パイプライン処理装置 | |
JP2000163265A (ja) | 命令発行回路 | |
JP2953451B2 (ja) | 割り込み処理方法 | |
JPH0954694A (ja) | パイプラインプロセッサおよびその処理方法 | |
JP3473506B2 (ja) | パイプライン処理装置 | |
JP2569867B2 (ja) | 実効アドレス先行計算型パイプラインマイクロプロセッサ | |
JPH07219771A (ja) | 命令プロセッサ | |
JP3748191B2 (ja) | 計算機とその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20031021 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081128 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081128 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091128 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101128 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101128 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111128 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111128 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121128 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121128 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131128 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |