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
Application number
JP10358982A
Other languages
English (en)
Other versions
JP3497087B2 (ja
Inventor
Gakuo Asakawa
岳夫 浅川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP35898298A priority Critical patent/JP3497087B2/ja
Priority to US09/461,429 priority patent/US6807624B1/en
Publication of JP2000181715A publication Critical patent/JP2000181715A/ja
Priority to US10/747,286 priority patent/US7127591B2/en
Priority to US10/747,291 priority patent/US7313674B2/en
Priority to US10/747,138 priority patent/US7275146B2/en
Application granted granted Critical
Publication of JP3497087B2 publication Critical patent/JP3497087B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 命令制御装置及びその方法に関し、特にリザ
ベーションステーション及びレジスタ再ネーミング技術
を用いレジスタ−メモリ間命令及びメモリ−メモリ間命
令を効率良く実行する装置及びその方法を提供する。 【解決手段】 先行する命令において格納命令が解読さ
れるとそのデータ格納先のメモリアドレスを保持し且つ
データ格納元に割り当てられた更新バッファの情報を保
持すること、後続の命令が演算のソースデータとしてメ
モリアドレスからのフェッチデータを必要とする命令の
実行時にそのメモリアドレスと前記保持されたメモリア
ドレスとの一致を検出すること、前記一致によりリザベ
ーションステーションに登録された後続の命令のデータ
格納元情報を前記更新バッファの情報に置き換えるこ
と、前記置き換えによりメモリからのフェッチデータに
代えて前記更新バッファの格納データを使用すること、
から成る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は命令制御装置及びそ
の方法に関し、特に情報処理装置において命令処理を高
速に実行するために順序を外れた命令実行を可能とする
命令制御装置及びその方法に関する。
【0002】ここで、順序を外れた命令実行 (out-of-o
rder) とは、プログラムにより指示された命令順序とは
異なった順序で、入力データがそろった命令から随時実
行する処理をいう。命令の実行は任意の順序であるが、
プログラムからアクセス可能な資源、すなわち記憶域、
レジスタ内容等はプログラム順序で更新参照されたよう
に命令は実行される。
【0003】
【従来の技術】ところで、命令処理を高速に実行するた
め順序を外れた命令実行を可能とする情報処理装置で
は、命令の解読サイクルの後に一旦リザベーションステ
−ションと呼ばれる解読済命令格納手段にその解読済命
令が複数格納される。そして、それらの解読順序に関係
なくソースオペランドが使用可能となった解読済命令が
選ばれてリザベーションステーションから演算器に命令
が発行される。
【0004】また、順序を外れた命令実行を高速且つ効
率よく実行するために、レジスタ内容がプログラム順序
で更新参照されることを保障するレジスタ再ネーミング
技術が用いられる。レジスタ再ネーミング技術は、命令
で使用する論理レジスタを再ネーミングして各々異なる
物理レジスタ又はメモリに割り付け、複数命令による同
一レジスタの使用が競合する時でも互いの処理が独立に
実行可能な場合にはそれらを並列実行可能とさせる技術
である。シンプルな命令を高速に動作させるための機構
として効率的なハードウエアである。
【0005】図1には、従来のレジスタ再ネーミング技
術の一例を示している。図1において、図示しない命令
キャッシュを介して命令レジスタ10にフェッチされた
命令が論理レジスタRの内容を更新する命令の場合、前
記論理レジスタRに代えてレジスタ更新バッファ(RU
B: Register Update Buffer)14が割り当てられる。
その割り当てのために、命令レジスタ10上の論理レジ
スタアドレスを基に更新バッファアドレステーブル及び
レジスタ更新保留テーブル11が索引される。
【0006】前者の更新バッファアドレステーブルには
各汎用レジスタ(GPR:GeneralPurpose Register)
に対応するレジスタ更新バッファア14のアドレスが、
そして後者のレジスタ更新保留テーブル11には汎用レ
ジスタの使用又は割り当てられたレジスタ更新バッファ
アの使用のいずれかを指示するレジスタ更新保留ビット
がそれぞれ格納されている。その索引の結果、論理レジ
スタRに対応する更新バッファアのアドレスとその更新
保留指示が読みだされ、次段のリザベーションステーシ
ョン12上に登録される。
【0007】リザベーションステーション12では、演
算器15に命令を発行する際に前記更新保留指示に従っ
て演算に用いるオペランドとして汎用レジスタ(GP
R)13又はレジスタ更新バッファ(RUB)14のい
ずれかを指定する。
【0008】図2は、リザベーションステーション12
のオペランド部の一構成例を示したものである。図2に
おいて、リザベーションステーション12の各エントリ
ー1〜3にはそれぞれ演算器15への発行命令が格納さ
れている。エントリー1の第1オペランドは更新保留指
示(P1)、レジスタアドレス(RA1)及び更新バッ
ファアドレス(UBA1)から成り、第2オペランドも
同様にP2、RA2及びUBA2から成る。ここで、P
1がオン(=1)ならRA1が読み出され、P1がオフ
(=0)ならUBA1が読みだされる。
【0009】
【発明が解決しようとする課題】一方、レジスタに限ら
ずメモリ内容もプログラム順序で更新参照されるのを保
障する必要がある。そのため、従来技術においてはキャ
ッシュメモリにデータが格納されるまで、そこへのフェ
ッチアクセスは待機され、結果的に演算性能が低下する
という問題があった。
【0010】例えば、図3には従来の命令演算タイムチ
ャートの一例が示されている。図3の(a)はレジスタ
−レジスタ間命令の一例を示し、また図3の(b)はレ
ジスタ−メモリ間命令の一例を示したものである。ここ
で、Dサイクルは命令デコードサイクルであり、Pサイ
クルはレジスタ読み出しサイクル、Xサイクルは演算実
行サイクル、そしてWサイクルは格納サイクルである。
【0011】図3の(a)の命令1はレジスタ格納命令
であり、演算結果がWサイクルで更新バッファに格納さ
れる。次に、命令2のレジスタ読み出し命令では、図3
の(a)に点線矢印で示すようにフォワーディング処理
によって命令1のXサイクルの演算結果は直ちに命令2
で読み出される。このように、レジスタ−レジスタ間命
令では更新レジスタと読み出しレジスタとが干渉する場
合でもパイプライン演算処理に遅延は生じない。
【0012】一方、図3の(b)の命令1はメモリ格納
命令である。Wサイクルではストアバッファにデータが
格納される。続くAサイクルでキャッシュラムのアドレ
スがセットされ、次のBサイクルで前記データがキャッ
シュラムに書き込まれる。命令2のメモリ読み出し命令
では命令1で格納したメモリアドレスからソースデータ
をフェッチしなければならず、そのため図3の(a)の
レジスタ−レジスタ間命令と比較するとその演算実行の
ためにさらに4クロック分多く必要となる。
【0013】そこで本発明の目的は、上記問題点に鑑
み、レジスタ−メモリ間命令においても先行する命令が
キャッシュメモリにデータを格納するまで待機すること
なく、後続の命令がフォワーディング処理によりそのデ
ータへのフェッチアクセスを直ちに実行できる手段を設
けることで、その演算性能を大幅に向上させた命令制御
装置及びその方法を提供することにある。また本発明の
目的は、さらにメモリ−メモリ間命令においても上記と
同様に後続の命令がフォワーディング処理により直ちに
データへのフェッチアクセスを可能とした命令制御装置
及びその方法を提供することにある。
【0014】
【課題を解決するための手段】本発明は、命令実行の結
果を一時格納し、命令実行が完了する時点で汎用レジス
タを更新するための複数のレジスタ更新バッファと、指
定の汎用レジスタを更新するデータがどのレジスタ更新
バッファに格納されるかを示す更新バッファアドレステ
ーブルと、指定の汎用レジスタが更新保留になっている
ことを示すレジスタ更新保留テーブルと、汎用レジスタ
アドレス、該汎用レジスタに対応する前記更新バッファ
アドレステーブルから出力されたレジスタ更新バッファ
アドレス、及び該汎用レジスタの更新保留指示を格納す
るリザベーションステーションと、を有し、更新保留指
示がオンであれば指定されたレジスタ更新バッファを、
更新保留指示がオフであれば指定された汎用レジスタを
ソースデータとして用いる情報処理装置における命令制
御方法を対象とする。
【0015】本発明によれば、演算のソースデータとし
てメモリからのフェッチデータを必要とする命令の実行
時において、先行する命令においてメモリ領域の格納が
行われていなければ、該フェッチデータをレジスタ更新
バッファに格納して使用すること、先行する命令におい
てメモリ領域の格納が行われており且つその格納先アド
レスとフェッチデータの取り出し先アドレスが等しい場
合には、先行する命令が保持されるリザベーションステ
ーションから格納用レジスタを指定するための更新保留
指示、レジスタ更新バッファアドレス、汎用レジスタバ
ッファアドレスを該演算命令が保持されるリザベーショ
ンステーションのフェッチデータ指定情報領域にコピー
すること、該演算命令はメモリからフェッチされたデー
タの代わりに先行する格納命令において指定された格納
用レジスタを使用すること、から成る命令制御方法が提
供される。
【0016】また本発明によれば、演算のソースデータ
としてメモリからのフェッチデータを必要とし且つ演算
結果で汎用レジスタを更新する命令の実行時において、
該フェッチデータを汎用レジスタ更新用に割り当てられ
たレジスタ更新バッファに一時格納してソースデータと
して使用するとともに、演算結果を該レジスタ更新バッ
ファに再び格納すること、先行する命令の格納先アドレ
スとフェッチデータの取り出し先アドレスが等しいた
め、先行する命令が保持されるリザベーションステーシ
ョンから格納用レジスタを指定するためのレジスタ更新
バッファアドレスを該演算命令が保持されるリザベーシ
ョンステーションのフェッチデータ指定情報領域にコピ
ーする際に、該演算命令に割り当てられた更新バッファ
アドレスを別に保持すること、該コピー情報を基に、演
算結果が更新バッファに格納された後から該更新バッフ
ァがフェッチデータで更新されることを抑止すること、
を含む。
【0017】さらに本発明によれば、先行する命令が、
メモリデータとメモリデータを演算してメモリに格納す
る命令であり、後続する命令が先行する命令の格納先ア
ドレスからフェッチデータを取り出す命令の実行時にお
いて、後続命令が格納されるリザベーションステーショ
ン中の該当する更新保留指示のリセットを抑止するこ
と、前記リセットの抑止により、先行するメモリ格納命
令が汎用レジスタを使用しない場合でも、後続の演算命
令がフェッチされたデータの代わりに先行する格納命令
において指定されたレジスタ更新バッファを使用するこ
と、を含む。
【0018】さらにまた本発明によれば、先行する命令
が、メモリデータとメモリデータを演算してメモリに格
納する命令であり、後続する命令が先行する命令の格納
先アドレスからフェッチデータを取り出す命令の実行時
においては、メモリに格納するデータを一時保持するた
めの更新バッファを汎用レジスタ更新のための更新バッ
ファとは別に備え、後続の演算命令がフェッチされたデ
ータの代わりに先行する格納命令において指定されたレ
ジスタ更新バッファを使用すること、を含む。
【0019】
【発明の実施の形態】図4は、本発明による命令制御装
置の基本構成例を示したものである。図5は、図4の命
令制御装置の動作フロー図である。図4では図1の従来
例と相違する部分を太線で示している。ここでは、前記
太線部分を中心に本発明による命令制御装置の動作につ
いて説明する。また、その説明の対応個所には図5のス
テップ番号を付している。
【0020】命令レジスタ10においてメモリ格納命令
(ストア命令)が解読されると(S101)、そのデー
タ格納先のメモリアドレス部Aはメモリ格納アドレス保
持手段20に格納される。また、データ格納元の論理レ
ジスタRのアドレスからレジスタ再ネーミングのために
更新バッファアドレステーブル及びレジスタ更新保留テ
ーブル11が索引され、対応する更新保留指示(P
1)、汎用レジスタアドレス(RA1)及び更新バッフ
ァアドレス(UBA1)がリザベーションステーション
12に格納される。それと同時に前記P1、RA1及び
UBA1は一時格納手段22にも格納される(S10
2)。
【0021】次に、命令レジスタ10において後続のメ
モリ演算命令(例えば、メモリ−レジスタ加算命令等)
が解読されると(S103)、そのメモリアドレス部の
メモリアドレスは前記メモリ格納アドレス保持手段20
が保持する先のメモリアドレスAと比較器21によって
比較される。それらが一致すると比較器21は一致信号
を出力する(S104)。
【0022】一致信号の出力によって、リザベーショ
ンステーション12上の前記メモリ演算命令エントリー
における対応オペランドには、後続のメモリ演算命令に
より該当メモリアドレスからフェッチされるデータを格
納する更新バッファアドレスに代えて、前記一時格納手
段22に格納された内容(P1、RA1及びUBA1)
がコピー()される。同時に、前記格納先更新バッフ
ァアドレスは、更新バッファアドレス保持手段23へ送
られ保持される。前記更新バッファアドレス保持手段2
3からはフェッチデータが更新バッファを更新しないよ
うに制御する制御信号が生成される(S105)。な
お、前記更新バッファアドレス保持手段23の動作の詳
細については後述する。
【0023】上述した本発明の構成によれば、先行命令
であるストア命令において所定のメモリアドレスに格納
するソースデータを保持する汎用レジスタ(すなわち対
応する更新バッファ)の内容が、後続のメモリ演算命令
で同じメモリアドレスの内容をフェッチアクセスするの
に代えて用いられる。その結果、本発明によれば本来レ
ジスタ−メモリ間命令であるものがレジスタ−レジスタ
間命令に置き換えられ、図3の(a)に示したようなレ
ジスタ間のフォワーディング処理を利用した高速パイプ
ライン演算が可能となる。
【0024】図6以降は、本発明の一実施例を示したも
のである。図6は、本発明による第1の命令制御動作の
一例(レジスタ−メモリ間命令)を示したものである。
図6の(b)は本発明による動作例を示しており、一方
図6の(a)には同じ動作を行う従来例を本発明との比
較のために示している。図6において、ロード命令(L
5,A)により、メモリアドレスAの内容が汎用レジ
スタ5にロードされる。続くストア命令(ST 5,
B)で汎用レジスタ5の内容がメモリアドレスBにスト
アされる。最後に、加算命令(A 6,B)で汎用レジ
スタ6の内容とメモリアドレスBの内容が加算され、そ
の結果が同じ汎用レジスタ6に書き込まれる。
【0025】図6の(a)の従来例ではストア命令の結
果がメモリに反映されたタイミング6以降でなければ後
続の命令はメモリからフェッチデータを取り出せないの
に対して、図6の(b)ではストア命令の演算結果をフ
ォワーディング処理して直ちに使用することができる。
【0026】図7〜図9は、図6の(b)の本発明によ
る動作における各レジスタ内容等の変遷を命令サイクル
シーケンスに従って示したものである。図7は、図6の
(b)のタイミング1の設定データ例を示している。タ
イミング1では、ロード命令(L 5,A)により更新
バッファアドレステーブル及びレジスタ更新保留テーブ
ル11が更新される。本例では、メモリアドレスAから
フェッチされ汎用レジスタ5(GR5)を更新する内容
を保持するため更新バッファ1(P=1,UBA=1)
が割り当てられる。
【0027】図8のタイミング2では、ストア命令(S
T 5,B)のメモリアドレスBがメモリ格納アドレス
保持手段20に格納される。同時に、ストア命令の汎用
レジスタアドレス5を基に更新バッファアドレステーブ
ル及びレジスタ更新保留テーブル11が索引され、前記
ロード命令による更新結果を保持するGR5(UBA=
1、P=1)がリザベーションステーション12のスト
ア命令エントリー及び一時格納手段22に格納される。
【0028】また、同じタイミング2の加算命令(A
6,B)におけるDサイクルでは、命令レジスタ10上
のメモリアドレスBと前記メモリ格納アドレス保持手段
20に格納されたメモリアドレスBとが比較器21で比
較される。本例ではその比較結果が一致し、一致信号
が出力される。
【0029】図9のタイミング3では、一致信号の出
力によって前記一時格納手段22の内容(GR5;UB
A=1、P=1)がリザベーションステーション12の
加算命令エントリーのフェッチデータ格納先を示す領域
にコピーされる。その結果、先行するストア命令の演算
結果を保持する更新バッファ1(P=1の場合)の内容
がフォワーディングされ直ちに後続の加算命令が実行さ
れる。このように、本実施例において加算命令はメモリ
からのフェッチデータの代わりに汎用レジスタ5又はL
命令の結果を保持するレジスタ更新バッファ1をソース
データとして使用するため、先行するストア命令がメモ
リにデータをストアするよりも早く後続の命令がそのデ
ータを使った演算を開始できる。
【0030】なお、図10には図6の(a)の従来例に
おけるリザベーションステーション12の加算命令エン
トリーの一例を示している。図10に示すように、タイ
ミング3では前述した本発明によるフォワーディング処
理が実行されず、加算命令の更新バッファ(UBA2)
にはメモリアドレスBからフェッチするデータを格納す
る更新バッファアドレス(本例ではUBA2=2)が指
定される。従って、先行するストア命令によるメモリへ
の格納が終了した時点で後続の加算演算が開始される。
【0031】ところで、図11には先行する加算命令に
おけるメモリからのフェッチデータが後続の加算命令の
フェッチデータよりも遅れる場合の一例を示している。
図11の加算命令は、いずれもメモリからのフェッチデ
ータを汎用レジスタGR5に加算し、その結果でGR5
を更新するものである。
【0032】図12は、上記のような場合に対処するた
めに拡張されたリザベーションステーション12の一例
を示している。図12では、新たに汎用レジスタを更新
した結果を保持する更新バッファアドレス(DUBA:
Destination Update Buffer Address )が設けられてい
る。これについて前記図11の例を用い、図13及び図
14に示すレジスタ内容を参照しながら説明する。
【0033】図13に示すように、図11のタイミング
1では先行する加算命令の解読結果に基づいて更新バッ
ファアドレステーブル及びレジスタ更新保留テーブル1
1が索引され汎用レジスタ5(GR5)に対応する更新
バッファ1(RUB1)が取得される。また、汎用レジ
スタ5の更新結果を保持するDUBAに更新バッファ1
が割り当てられる。
【0034】一方、図14に示すように図11のタイミ
ング2では後続の加算命令の解読結果に基づいて更新バ
ッファアドレステーブル及びレジスタ更新保留テーブル
11が索引され、同じ汎用レジスタ5(GR5)に次の
更新バッファ2が割り当てられる。また、上記と同様に
DUBAにも更新バッファ2が割り当てられる。
【0035】ここでは、先行する命令のフェッチデータ
が後続のフェッチデータよりも遅れるケースを考慮し、
メモリからのフェッチデータは前記DUBAで指定され
た更新バッファ2に一時格納される。命令は汎用レジス
タ用のデータがそろった時点で、汎用レジスタ及び前記
更新バッファのデータが演算器に与えられる。
【0036】次に、先行する加算命令の演算結果がその
DUBAで指定した更新バッファ1に出力されるのを待
って(P1=1、UBA1=1)、そのフォワーディン
グ処理が行なわれ後続の演算が開始される。その演算結
果は、DUBAで指定された更新バッファ2に格納さ
れ、次のWサイクルで汎用レジスタ5に書き込まれる。
【0037】しかしながら、上述した演算動作を行うマ
シンにおいて本発明の第1の命令制御動作であるストア
命令後に同じメモリアドレスからのフェッチ動作を実行
した場合、演算器からの演算結果とメモリからのフェッ
チデータとが同時に同じ更新バッファに書き込まれるケ
ースが発生する。
【0038】図15は、その一例を示したものである。
図15では、本発明によるフォワーディング処理(スト
アフェッチフォワーディング)を用いた加算命令(A
6,B)がXサイクルでその演算結果を更新バッファ2
(RUB2)に書き込む際に、同時刻の後続のメモリ演
算命令のBサイクルでそのフェッチデータが同じ更新バ
ッファ2(RUB2)に書き込まれる。
【0039】図10の例から明らかなように、ストアフ
ェッチフォワーディングを行なわない通常の加算命令の
DUBAには更新バッファ2(RUB2)が割り当てら
れる。そのため、図9のコピー処理後の加算命令の演算
結果は更新バッファ2に一時書き込まれる(演算器→R
UB2)。一方、図15のカッコ内に示すように通常の
加算命令実行時のBサイクル(フェッチデータ→RUB
2)はストアフェッチフォワーディング処理時のXサイ
クルと一致する。
【0040】その結果、本発明によるストアフェッチフ
ォワーディング処理を実行した場合に限って、同じ更新
バッファ(本例ではRUB2)に同時に2つの書き込み
処理が発生する。図16は、前記2つの同時書き込みを
防止するための更新バッファアドレス保持手段23の動
作説明図である。
【0041】図16の(a)は、演算器15又はデータ
キャシュ24のデータのいずれかを選択して更新バッフ
ァX(RUBX:X=0〜n)14に格納する一般的な
構成例を示したものである。図15でいえば、加算命令
の演算結果又はメモリフェッチデータが更新バッファ2
に書き込まれる。
【0042】図16の(b)は、更新バッファアドレス
保持手段23の一構成例を示したものである。前述した
ようにストア命令のデータ格納先情報がリザベーション
ステーション12上の次の加算命令にコピーされる直前
のタイミングでその加算命令のDUBAの内容がバッフ
ァ31に保持される。バッファ31の内容はデコーダ3
2によってデコードされ、前述したストアフェッチフォ
ワーディング処理の際に同時に発生する2つの書き込み
処理のうちデータキャッシュ24からのメモリフェッチ
データによる更新バッファXの更新処理を禁止するフラ
グ信号(INH_RUBX_UPDATE)が出力され
る。
【0043】前記フラグ信号は、図16の(c)に示す
ようにキャシュ側の出力をゲーティングしてメモリフェ
ッチデータによる更新バッファ2の更新を禁止する。こ
こで、+X_DSUBA_EQ_2信号はXサイクルに
おける更新バッファ2のイネーブル信号であり、+B_
DSUBA_EQ_2信号はBサイクルにおける更新バ
ッファ2のイネーブル信号である。
【0044】その結果、更新バッファ2には演算器出力
だけが格納され、フォワーディング処理により不要とな
ったキャッシュ24からのフェッチデータは廃棄され
る。なお、ここでは更新バッファ2についてのみ示して
あるが、同様な回路は各更新バッファX毎に設けられて
おり、それらは同様に動作する。
【0045】図17は、メモリ格納命令を使用する別の
演算シーケンスの一例を示している。図17の(a)
は、ロード命令( L 5、A)のWサイクルでストア命
令( ST 5、B)のリザベーションステーション12
上のPビットがオフ(P1=0)となる。これは、汎用
レジスタ5に正しい値が保持されたことを意味し、この
場合は次の加算命令(A 6、B)におけるメモリフェ
ッチデータのフォワーディング処理は更新バッファから
ではなく汎用レジスタ5から行われる。
【0046】本例のように汎用レジスタの内容をストア
する命令については、これまで述べたメモリデータのフ
ェッチに代わるフォワーディング処理を矛盾なく実行で
きる。なお、ここで「命令」はDPXWのシーケンスを
有する一般の命令を示している。ところで、ストア命令
には汎用レジスタを介さずにメモリデータとメモリデー
タとを加算してメモリにストアする命令も存在する。
【0047】図17の(b)は、そのような命令の一例
を示したものである。この場合、フォワーディングすべ
きデータは更新バッファ内にしか存在しないため、前記
図17の(a)で示した先行命令のWワイフル後のタイ
ミングでフォワーディングしようとすると正常に動作し
ない場合がある。
【0048】図17の(b)では更新バッファを全部で
5個実装する場合を示している。ここで、ロード命令
(L 5、A)は更新バッファ1を汎用レジスタ5の更
新データ保持に使用し、そのWサイクルで更新バッファ
1の内容を汎用レジスタ5に格納する。その結果、後続
の命令6が次に前記更新バッファ1の使用を許可され
る。ところで、ロード命令の次に実行されるストア命令
(本例ではAP A、B)はソースとして汎用レジスタ
を使用せず、ソースとして前記更新バッファ1の内容を
そのまま使用する。
【0049】後続の加算命令(A 6、B)は、本発明
によりメモリアドレスAの内容を読み込む代わりに前記
更新バッファ1の内容をフォワーディングする。しかし
ながら、本例では更新バッファ1の使用を許可された命
令6が、すでにそのBサイクルで更新バッファ1の内容
をフェッチデータに書き換えている。従って、それより
も後に実行される加算命令のXサイクルによって得られ
る結果は誤ったものとなる。
【0050】図18は、本発明による第2の命令制御動
作(メモリ−メモリ間演算命令)の一例を示したもので
ある。図18では、汎用レジスタを使用しないメモリ演
算命令の一例としてAP命令を使用した場合を示してい
る。AP命令はメモリAの内容とメモリBの内容とを加
算して、メモリAに格納する命令である。ここで、汎用
レジスタ更新用の更新バッファXはX=1〜5の5個ま
でが使用でき、さらに更新バッファ6はAP命令専用の
更新バッファとして割り当てられている。
【0051】図19及び図20は、図18のタイミング
2とタイミング3の各データ設定例を示している。図1
9では、命令レジスタ10においてAP命令(AP
A、B)が解読されると、そのデータ格納先のメモリア
ドレス部Aはメモリ格納アドレス保持手段20に格納さ
れる。一方、それに加算されるメモリアドレスBのフェ
ッチ先として前記AP命令専用の更新バッファ6が割り
当てられる。それはリザベーションステーション12上
のAP命令オペランドのDUBAに格納され、同時に一
時格納手段22にも格納される。なお、本例のAP命令
では汎用レジスタを使用しないため、更新バッファアド
レステーブル及びレジスタ更新保留テーブル11を索引
することはない。
【0052】図20では、命令レジスタ10で解読され
た後続の加算命令(A 6、A)におけるメモリアドレ
ス部Aと前記メモリ格納アドレス保持手段20が保持す
る先のメモリアドレスAとが比較器21によって比較さ
れる。本例ではそれらが一致するため、その一致信号に
よりリザベーションステーション12上の対応オペラン
ドに前記一時格納手段22に格納された内容がコピーさ
れる。以降の動作はこれまでに述べた本発明による第1
の命令制御動作と同じである。
【0053】但し、AP命令が終了した時点でも加算命
令のフェッチデータフォワーディング用のデータは前記
AP命令専用の更新バッファ6に保持されており、P2
ビットはリセットされない。その結果、いずれのタイミ
ングからでもAP命令専用の更新バッファ6を使ってフ
ェッチデータのフォワーディング処理が可能である。な
お、前記加算命令がそのフォワーディング処理を行う前
に、新たに後続のAP命令を実行しようとする場合に
は、そのフォワーディング処理が終了するまで後続AP
命令のデコードが停止される。
【0054】上述した本発明の構成によれば、先行命令
であるAP命令において所定のメモリアドレスに格納す
るソースデータを保持するAP命令専用の更新バッファ
が割り当てられるため、ここでも後続のメモリ演算命令
は本来レジスタ−メモリ間命令であるものがレジスタ−
レジスタ間命令に置き換えられ、前記AP命令専用の更
新バッファ6を使ったフォワーディング処理により高速
なパイプライン演算が可能となる。
【0055】以上の説明から、本願発明では以下の内容
を開示している。先ず、本発明では、命令実行の結果を
一時格納し、命令実行が完了する時点で汎用レジスタを
更新するための複数のレジスタ更新バッファと、指定の
汎用レジスタを更新するデータがどのレジスタ更新バッ
ファに格納されるかを示す更新バッファアドレステーブ
ルと、指定の汎用レジスタが更新保留になっていること
を示すレジスタ更新保留テーブルと、汎用レジスタアド
レス、該汎用レジスタに対応する前記更新バッファアド
レステーブルから出力されたレジスタ更新バッファアド
レス、及び該汎用レジスタの更新保留指示を格納するリ
ザベーションステーションと、 を有し、更新保留指示
がオンであれば指定されたレジスタ更新バッファを、更
新保留指示がオフであれば指定された汎用レジスタをソ
ースデータとして用いる情報処理装置における命令制御
方法を前提とする。そこでは、以下の方法を開示してい
る。
【0056】(1)演算のソースデータとしてメモリか
らのフェッチデータを必要とする命令の実行時におい
て、先行する命令においてメモリ領域の格納が行われて
いなければ、該フェッチデータをレジスタ更新バッファ
に格納して使用すること、先行する命令においてメモリ
領域の格納が行われており、且つその格納先アドレスと
フェッチデータの取り出し先アドレスが等しい場合に
は、先行する命令が保持されるリザベーションステーシ
ョンから格納用レジスタを指定するための更新保留指
示、レジスタ更新バッファアドレス、汎用レジスタバッ
ファアドレスを該演算命令が保持されるリザベーション
ステーションのフェッチデータ指定情報領域にコピーす
ること、該演算命令はメモリからフェッチされたデータ
の代わりに先行する格納命令において指定された格納用
レジスタを使用する命令制御方法。
【0057】(2)演算のソースデータとしてメモリか
らのフェッチデータを必要とし、かつ演算結果で汎用レ
ジスタを更新する命令の実行時において、該フェッチデ
ータを汎用レジスタ更新用に割り当てられたレジスタ更
新バッファに一時格納してソースデータとして使用する
とともに、演算結果を該レジスタ更新バッファに再び格
納すること、先行する命令の格納先アドレスとフェッチ
データの取り出し先アドレスが等しいため、先行する命
令が保持されるリザベーションステーションから格納用
レジスタを指定するためのレジスタ更新バッファアドレ
スを該演算命令が保持されるリザベーションステーショ
ンのフェッチデータ指定情報領域にコピーする際に、該
演算命令に割り当てられた更新バッファアドレスを別に
保持すること、該コピー情報を基に、演算結果が更新バ
ッファに格納された後から該更新バッファがフェッチデ
ータで更新されることを抑止すること、を含む上記方
法。
【0058】(3)先行する命令が、メモリデータとメ
モリデータを演算してメモリに格納する命令であり、後
続する命令が先行する命令の格納先アドレスからフェッ
チデータを取り出す命令の実行時において、後続命令が
格納されるリザベーションステーション中の該当する更
新保留指示のリセットを抑止すること、前記リセットの
抑止により、先行するメモリ格納命令が汎用レジスタを
使用しない場合でも、後続の演算命令がフェッチされた
データの代わりに先行する格納命令において指定された
レジスタ更新バッファを使用すること、を含む上記方
法。
【0059】(4)先行する命令が、メモリデータとメ
モリデータを演算してメモリに格納する命令であり、後
続する命令が先行する命令の格納先アドレスからフェッ
チデータを取り出す命令の実行時において、メモリに格
納するデータを一時保持するための更新バッファを汎用
レジスタ更新のための更新バッファとは別に備え、後続
の演算命令がフェッチされたデータの代わりに先行する
格納命令において指定されたレジスタ更新バッファを使
用すること、を含む上記方法。
【0060】
【発明の効果】以上説明したように、本発明によればレ
ジスタ再ネーミングを行う情報処理装置において、メモ
リ演算命令についても効率的にストアフェッチフォワー
ディング機能を実現することが可能となる。
【図面の簡単な説明】
【図1】従来のレジスタ再ネーミング技術の一例を示し
た図である。
【図2】リザベーションステーションのオペランド部の
一構成例を示した図である。
【図3】従来の命令演算タイムチャートの一例を示した
図である。
【図4】本発明による命令制御装置の基本構成例を示し
た図である。
【図5】図4の命令制御装置の動作フロー図である。
【図6】本発明による第1の命令制御動作例(レジスタ
−メモリ間命令)を示した図である。
【図7】図6の(b)のタイミング1のデータ設定例を
示した図である。
【図8】図6の(b)のタイミング2のデータ設定例を
示した図である。
【図9】図6の(b)のタイミング3のデータ設定例を
示した図である。
【図10】図6の(a)の従来例におけるリザベーショ
ンステーションの一例を示した図である。
【図11】加算命令の別の動作例を示した図である。
【図12】拡張されたリザベーションステーションの一
例を示した図である。
【図13】図11のタイミング1のデータ設定例を示し
た図である。
【図14】図11のタイミング2のデータ設定例を示し
た図である。
【図15】ストアフェッチフォワーディング処理による
同時書き込みの説明図である。
【図16】更新バッファアドレス保持手段の動作説明図
である。
【図17】ストア命令を使用する別の演算例を示した図
である。
【図18】本発明による第2の命令制御動作(メモリ−
メモリ間命令)の一例を示した図である。
【図19】図18のタイミング2のデータ設定例を示し
た図である。
【図20】図18のタイミング3のデータ設定例を示し
た図である。
【符号の説明】
10…命令レジスタ 11…更新バッファアドレステーブル及びレジスタ更新
保留テーブル 12…リザベーションステーション 13…汎用レジスタ 14…レジスタ更新バッファ 15…演算器 20…メモリ格納アドレス保持手段 21…比較器 22…一時格納手段 23…更新バッファ保持手段 24…キャッシュ 31…バッファ 33…デコーダ

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 複数個の解読済命令を格納するリザベー
    ションステーション及びレジスタ再ネーミングのための
    更新バッファを有する情報処理装置の命令制御方法であ
    って、 先行する命令において格納命令が解読されると、そのデ
    ータ格納先のメモリアドレスを保持し、かつデータ格納
    元に割り当てられた更新バッファの情報を保持するこ
    と、 後続の命令が演算のソースデータとしてメモリアドレス
    からのフェッチデータを必要とする命令の実行時におい
    て、そのメモリアドレスと前記保持されたメモリアドレ
    スとの一致を検出すること、 前記一致を検出した場合に、リザベーションステーショ
    ンに登録された後続の命令のデータ格納元の情報を前記
    更新バッファの情報に置き換えること、 前記置き換えにより、メモリからのフェッチデータに代
    えて前記更新バッファの格納データを使用すること、か
    ら成ることを特徴とする命令制御方法。
  2. 【請求項2】 さらに、前記置き換えの前に、前記後続
    命令のデータ格納元の情報を別に保持すること、 前記保持したデータ格納元の情報に基づいて、前記更新
    バッファに格納される前記後続命令の演算結果がその後
    のフェッチデータによって更新されることを防止するこ
    と、を含む請求項1記載の方法。
  3. 【請求項3】 さらに、先行する命令がメモリデータと
    メモリデータを演算してメモリに格納する命令であり、
    後続する命令が先行する命令のデータ格納先アドレスか
    らフェッチデータを取り出す命令の実行時において、 前記後続命令が格納されるリザベーションステーション
    中の該当する前記更新バッファの開放を抑止すること、 前記開放の抑止により、先行するメモリ格納命令が汎用
    レジスタを使用しない場合でも、後続の演算命令がメモ
    リからのフェッチデータに代えて前記更新バッファの格
    納データを使用すること、を含む請求項1記載の方法。
  4. 【請求項4】 さらに、先行する命令がメモリデータと
    メモリデータを演算してメモリに格納する命令であり、
    後続する命令が先行する命令のデータ格納先アドレスか
    らフェッチデータを取り出す命令の実行時において、 汎用レジスタ更新用の更新バッファとは別に設けられた
    専用更新バッファにメモリに格納するデータを一時保持
    すること、 後続の演算命令は、メモリからのフェッチデータに代え
    て前記専用更新バッファの格納データを使用すること、
    を含む請求項1又は3記載の方法。
  5. 【請求項5】 汎用レジスタの更新保留指示がオンであ
    れば指定されたレジスタ更新バッファを、更新保留指示
    がオフであれば指定された汎用レジスタをソースデータ
    として用いる命令制御装置であって、 命令レジスタで解読されたメモリ格納命令のデータ格納
    先のメモリアドレスと、 命令レジスタで解読された後続のメモリ演算命令のメモ
    リアドレス部のメモリアドレスとを比較する比較器と、 前記比較器からの一致信号の出力によって、先のメモリ
    格納命令の更新保留指示、汎用レジスタアドレス及び更
    新バッファアドレスを前記リザベーションステーション
    上における後続のメモリ演算命令のメモリアドレス情報
    と置き換える手段と、を備えたことを特徴とする命令制
    御装置。
  6. 【請求項6】 さらに、前記置き換え前のリザベーショ
    ンステーション上の後続メモリ演算命令のメモリアドレ
    ス情報が退避され、そのデコード情報によって前記後続
    命令の演算結果がその後のフェッチデータによって更新
    されることを防止する更新バッファアドレス保持手段、
    を有する請求項5記載の装置。
  7. 【請求項7】 さらに、先行する命令がメモリデータと
    メモリデータを演算してメモリに格納する命令であり、
    後続する命令が先行する命令のデータ格納先アドレスか
    らフェッチデータを取り出す命令の実行時において、先
    行するメモリ格納命令が汎用レジスタを使用しない場合
    でも後続の演算命令にフェッチされたデータの代わりに
    先行する格納命令において指定されたレジスタ更新バッ
    ファを使用させるため、後続命令が格納されるリザベー
    ションステーション中の該当する更新保留指示のリセッ
    トを抑止する手段、を有する請求項5記載の装置。
  8. 【請求項8】 さらに、先行する命令がメモリデータと
    メモリデータを演算してメモリに格納する命令であり、
    後続する命令が先行する命令のデータ格納先アドレスか
    らフェッチデータを取り出す命令の実行時において、メ
    モリに格納するデータを専用に保持し、後続の演算命令
    がその保持データをフェッチされたデータの代わりに使
    用する専用レジスタ更新バッファ、を有する請求項5又
    は7記載の装置。
JP35898298A 1998-12-17 1998-12-17 命令制御装置及びその方法 Expired - Fee Related JP3497087B2 (ja)

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)

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

Cited By (5)

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