JP3497087B2 - Instruction control apparatus and method - Google Patents

Instruction control apparatus and method

Info

Publication number
JP3497087B2
JP3497087B2 JP35898298A JP35898298A JP3497087B2 JP 3497087 B2 JP3497087 B2 JP 3497087B2 JP 35898298 A JP35898298 A JP 35898298A JP 35898298 A JP35898298 A JP 35898298A JP 3497087 B2 JP3497087 B2 JP 3497087B2
Authority
JP
Japan
Prior art keywords
instruction
memory
data
register
update buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP35898298A
Other languages
Japanese (ja)
Other versions
JP2000181715A (en
Inventor
岳夫 浅川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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/en
Priority to US09/461,429 priority patent/US6807624B1/en
Publication of JP2000181715A publication Critical patent/JP2000181715A/en
Priority to US10/747,291 priority patent/US7313674B2/en
Priority to US10/747,286 priority patent/US7127591B2/en
Priority to US10/747,138 priority patent/US7275146B2/en
Application granted granted Critical
Publication of JP3497087B2 publication Critical patent/JP3497087B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は命令制御装置及びそ
の方法に関し、特に情報処理装置において命令処理を高
速に実行するために順序を外れた命令実行を可能とする
命令制御装置及びその方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an instruction control device and a method thereof, and more particularly to an instruction control device and a method thereof that enable out-of-order instruction execution for high-speed instruction processing in an information processing device.

【0002】ここで、順序を外れた命令実行 (out-of-o
rder) とは、プログラムにより指示された命令順序とは
異なった順序で、入力データがそろった命令から随時実
行する処理をいう。命令の実行は任意の順序であるが、
プログラムからアクセス可能な資源、すなわち記憶域、
レジスタ内容等はプログラム順序で更新参照されたよう
に命令は実行される。
Here, out-of-order instruction execution (out-of-o)
rder) is a process that is executed at any time from an instruction with input data in a different order from the instruction order instructed by the program. Instruction execution can be in any order,
Resources accessible to the program, namely storage,
The instruction is executed as if the register contents were updated and referenced in the program order.

【0003】[0003]

【従来の技術】ところで、命令処理を高速に実行するた
め順序を外れた命令実行を可能とする情報処理装置で
は、命令の解読サイクルの後に一旦リザベーションステ
−ションと呼ばれる解読済命令格納手段にその解読済命
令が複数格納される。そして、それらの解読順序に関係
なくソースオペランドが使用可能となった解読済命令が
選ばれてリザベーションステーションから演算器に命令
が発行される。
2. Description of the Related Art In an information processing apparatus capable of executing out-of-order instructions in order to execute instruction processing at high speed, after the instruction decoding cycle, the information is stored in a decoded instruction storage means called a reservation station. Multiple decoded instructions are stored. Then, regardless of their decoding order, the decoded instruction whose source operand is usable is selected and the instruction is issued from the reservation station to the arithmetic unit.

【0004】また、順序を外れた命令実行を高速且つ効
率よく実行するために、レジスタ内容がプログラム順序
で更新参照されることを保障するレジスタ再ネーミング
技術が用いられる。レジスタ再ネーミング技術は、命令
で使用する論理レジスタを再ネーミングして各々異なる
物理レジスタ又はメモリに割り付け、複数命令による同
一レジスタの使用が競合する時でも互いの処理が独立に
実行可能な場合にはそれらを並列実行可能とさせる技術
である。シンプルな命令を高速に動作させるための機構
として効率的なハードウエアである。
Further, in order to execute out-of-order instruction execution at high speed and efficiently, a register renaming technique for ensuring that the register contents are updated and referred to in the program order is used. The register renaming technology renames logical registers used in instructions and allocates them to different physical registers or memories, and when the use of the same register by multiple instructions conflicts with each other, the processing can be performed independently. It is a technology that enables them to be executed in parallel. It is efficient hardware as a mechanism for operating simple instructions at high speed.

【0005】図1には、従来のレジスタ再ネーミング技
術の一例を示している。図1において、図示しない命令
キャッシュを介して命令レジスタ10にフェッチされた
命令が論理レジスタRの内容を更新する命令の場合、前
記論理レジスタRに代えてレジスタ更新バッファ(RU
B: Register Update Buffer)14が割り当てられる。
その割り当てのために、命令レジスタ10上の論理レジ
スタアドレスを基に更新バッファアドレステーブル及び
レジスタ更新保留テーブル11が索引される。
FIG. 1 shows an example of a conventional register renaming technique. In FIG. 1, when the instruction fetched into the instruction register 10 through an instruction cache (not shown) is an instruction to update the contents of the logical register R, the register update buffer (RU) is used instead of the logical register R.
B: Register Update Buffer) 14 is allocated.
For the allocation, the update buffer address table and the register update pending table 11 are indexed based on the logical register address on the instruction register 10.

【0006】前者の更新バッファアドレステーブルには
各汎用レジスタ(GPR:GeneralPurpose Register)
に対応するレジスタ更新バッファア14のアドレスが、
そして後者のレジスタ更新保留テーブル11には汎用レ
ジスタの使用又は割り当てられたレジスタ更新バッファ
アの使用のいずれかを指示するレジスタ更新保留ビット
がそれぞれ格納されている。その索引の結果、論理レジ
スタRに対応する更新バッファアのアドレスとその更新
保留指示が読みだされ、次段のリザベーションステーシ
ョン12上に登録される。
In the former update buffer address table, each general-purpose register (GPR: General Purpose Register) is used.
The address of the register update buffer 14 corresponding to
The latter register update pending table 11 stores register update pending bits for instructing either use of a general-purpose register or use of an allocated register update buffer. As a result of the index, the address of the update buffer corresponding to the logical register R and its update pending instruction are read out and registered in the reservation station 12 of the next stage.

【0007】リザベーションステーション12では、演
算器15に命令を発行する際に前記更新保留指示に従っ
て演算に用いるオペランドとして汎用レジスタ(GP
R)13又はレジスタ更新バッファ(RUB)14のい
ずれかを指定する。
In the reservation station 12, the general purpose register (GP) is used as an operand to be used in the operation according to the update suspension instruction when the instruction is issued to the arithmetic unit 15.
R) 13 or register update buffer (RUB) 14 is designated.

【0008】図2は、リザベーションステーション12
のオペランド部の一構成例を示したものである。図2に
おいて、リザベーションステーション12の各エントリ
ー1〜3にはそれぞれ演算器15への発行命令が格納さ
れている。エントリー1の第1オペランドは更新保留指
示(P1)、レジスタアドレス(RA1)及び更新バッ
ファアドレス(UBA1)から成り、第2オペランドも
同様にP2、RA2及びUBA2から成る。ここで、P
1がオン(=1)ならRA1が読み出され、P1がオフ
(=0)ならUBA1が読みだされる。
FIG. 2 shows a reservation station 12
3 shows an example of the configuration of the operand part of the. In FIG. 2, each of the entries 1 to 3 of the reservation station 12 stores an instruction issued to the arithmetic unit 15. The first operand of entry 1 is composed of an update suspension instruction (P1), a register address (RA1) and an update buffer address (UBA1), and the second operand is also composed of P2, RA2 and UBA2. Where P
If 1 is on (= 1), RA1 is read, and if P1 is off (= 0), UBA1 is read.

【0009】[0009]

【発明が解決しようとする課題】一方、レジスタに限ら
ずメモリ内容もプログラム順序で更新参照されるのを保
障する必要がある。そのため、従来技術においてはキャ
ッシュメモリにデータが格納されるまで、そこへのフェ
ッチアクセスは待機され、結果的に演算性能が低下する
という問題があった。
On the other hand, it is necessary to ensure that not only the registers but also the memory contents are updated and referenced in program order. Therefore, in the prior art, there is a problem that fetch access to the cache memory is waited until data is stored in the cache memory, and as a result, the calculation performance is deteriorated.

【0010】例えば、図3には従来の命令演算タイムチ
ャートの一例が示されている。図3の(a)はレジスタ
−レジスタ間命令の一例を示し、また図3の(b)はレ
ジスタ−メモリ間命令の一例を示したものである。ここ
で、Dサイクルは命令デコードサイクルであり、Pサイ
クルはレジスタ読み出しサイクル、Xサイクルは演算実
行サイクル、そしてWサイクルは格納サイクルである。
For example, FIG. 3 shows an example of a conventional instruction operation time chart. FIG. 3A shows an example of a register-register instruction, and FIG. 3B shows an example of a register-memory instruction. Here, the D cycle is an instruction decode cycle, the P cycle is a register read cycle, the X cycle is an operation execution cycle, and the W cycle is a store cycle.

【0011】図3の(a)の命令1はレジスタ格納命令
であり、演算結果がWサイクルで更新バッファに格納さ
れる。次に、命令2のレジスタ読み出し命令では、図3
の(a)に点線矢印で示すようにフォワーディング処理
によって命令1のXサイクルの演算結果は直ちに命令2
で読み出される。このように、レジスタ−レジスタ間命
令では更新レジスタと読み出しレジスタとが干渉する場
合でもパイプライン演算処理に遅延は生じない。
Instruction 1 in FIG. 3A is a register storage instruction, and the operation result is stored in the update buffer in W cycles. Next, in the register read instruction of the instruction 2,
As indicated by a dotted arrow in (a) of FIG.
Is read by. As described above, in the register-register instruction, even if the update register and the read register interfere with each other, the pipeline arithmetic processing is not delayed.

【0012】一方、図3の(b)の命令1はメモリ格納
命令である。Wサイクルではストアバッファにデータが
格納される。続くAサイクルでキャッシュラムのアドレ
スがセットされ、次のBサイクルで前記データがキャッ
シュラムに書き込まれる。命令2のメモリ読み出し命令
では命令1で格納したメモリアドレスからソースデータ
をフェッチしなければならず、そのため図3の(a)の
レジスタ−レジスタ間命令と比較するとその演算実行の
ためにさらに4クロック分多く必要となる。
On the other hand, the instruction 1 in FIG. 3B is a memory storage instruction. In the W cycle, data is stored in the store buffer. The address of the cache ram is set in the subsequent A cycle, and the data is written in the cache ram in the next B cycle. In the memory read instruction of the instruction 2, the source data must be fetched from the memory address stored in the instruction 1. Therefore, as compared with the register-register instruction of FIG. I need more.

【0013】そこで本発明の目的は、上記問題点に鑑
み、レジスタ−メモリ間命令においても先行する命令が
キャッシュメモリにデータを格納するまで待機すること
なく、後続の命令がフォワーディング処理によりそのデ
ータへのフェッチアクセスを直ちに実行できる手段を設
けることで、その演算性能を大幅に向上させた命令制御
装置及びその方法を提供することにある。また本発明の
目的は、さらにメモリ−メモリ間命令においても上記と
同様に後続の命令がフォワーディング処理により直ちに
データへのフェッチアクセスを可能とした命令制御装置
及びその方法を提供することにある。
Therefore, in view of the above problem, an object of the present invention is that even in a register-memory instruction, a subsequent instruction does not wait until the preceding instruction stores data in the cache memory, and the subsequent instruction transfers the data to the data. It is an object of the present invention to provide an instruction control device and its method in which the operation performance can be greatly improved by providing a means for immediately executing the fetch access. It is another object of the present invention to provide an instruction control device and a method thereof in which a succeeding instruction can immediately fetch access to data by a forwarding process also in a memory-memory instruction.

【0014】[0014]

【課題を解決するための手段】本発明は、命令実行の結
果を一時格納し、命令実行が完了する時点で汎用レジス
タを更新するための複数のレジスタ更新バッファと、指
定の汎用レジスタを更新するデータがどのレジスタ更新
バッファに格納されるかを示す更新バッファアドレステ
ーブルと、指定の汎用レジスタが更新保留になっている
ことを示すレジスタ更新保留テーブルと、汎用レジスタ
アドレス、該汎用レジスタに対応する前記更新バッファ
アドレステーブルから出力されたレジスタ更新バッファ
アドレス、及び該汎用レジスタの更新保留指示を格納す
るリザベーションステーションと、を有し、更新保留指
示がオンであれば指定されたレジスタ更新バッファを、
更新保留指示がオフであれば指定された汎用レジスタを
ソースデータとして用いる情報処理装置における命令制
御方法を対象とする。
According to the present invention, a plurality of register update buffers for temporarily storing a result of instruction execution and updating a general-purpose register when the instruction execution is completed, and a designated general-purpose register are updated. An update buffer address table indicating which register update buffer the data is stored in, a register update pending table indicating that a specified general-purpose register is pending update, a general-purpose register address, and the above-mentioned general register corresponding to the general-purpose register. A register update buffer address output from the update buffer address table, and a reservation station for storing an update suspension instruction of the general-purpose register;
If the update suspension instruction is off, the instruction control method in the information processing device using the designated general-purpose register as the source data is targeted.

【0015】本発明によれば、演算のソースデータとし
てメモリからのフェッチデータを必要とする命令の実行
時において、先行する命令においてメモリ領域の格納が
行われていなければ、該フェッチデータをレジスタ更新
バッファに格納して使用すること、先行する命令におい
てメモリ領域の格納が行われており且つその格納先アド
レスとフェッチデータの取り出し先アドレスが等しい場
合には、先行する命令が保持されるリザベーションステ
ーションから格納用レジスタを指定するための更新保留
指示、レジスタ更新バッファアドレス、汎用レジスタバ
ッファアドレスを該演算命令が保持されるリザベーショ
ンステーションのフェッチデータ指定情報領域にコピー
すること、該演算命令はメモリからフェッチされたデー
タの代わりに先行する格納命令において指定された格納
用レジスタを使用すること、から成る命令制御方法が提
供される。
According to the present invention, at the time of executing an instruction that requires fetch data from the memory as the source data of the operation, if the memory area is not stored in the preceding instruction, the fetch data is updated in the register. If you store it in a buffer and use it, or if the memory area is stored in the preceding instruction and the storage destination address is the same as the fetch destination address of the fetch data, the reservation station that holds the preceding instruction Copy the update pending instruction for designating the storage register, the register update buffer address, and the general-purpose register buffer address to the fetch data specification information area of the reservation station in which the operation instruction is held, and the operation instruction is fetched from the memory. Preceded by data instead of That stores the use of storage register specified in the instruction, the instruction control method comprising is provided.

【0016】また本発明によれば、演算のソースデータ
としてメモリからのフェッチデータを必要とし且つ演算
結果で汎用レジスタを更新する命令の実行時において、
該フェッチデータを汎用レジスタ更新用に割り当てられ
たレジスタ更新バッファに一時格納してソースデータと
して使用するとともに、演算結果を該レジスタ更新バッ
ファに再び格納すること、先行する命令の格納先アドレ
スとフェッチデータの取り出し先アドレスが等しいた
め、先行する命令が保持されるリザベーションステーシ
ョンから格納用レジスタを指定するためのレジスタ更新
バッファアドレスを該演算命令が保持されるリザベーシ
ョンステーションのフェッチデータ指定情報領域にコピ
ーする際に、該演算命令に割り当てられた更新バッファ
アドレスを別に保持すること、該コピー情報を基に、演
算結果が更新バッファに格納された後から該更新バッフ
ァがフェッチデータで更新されることを抑止すること、
を含む。
Further, according to the present invention, at the time of executing an instruction which requires fetch data from the memory as the source data of the operation and updates the general-purpose register with the operation result,
The fetch data is temporarily stored in a register update buffer allocated for general-purpose register update and used as source data, and the operation result is stored again in the register update buffer. When copying the register update buffer address for specifying the storage register from the reservation station holding the preceding instruction to the fetch data specification information area of the reservation station holding the operation instruction because the fetch destination addresses of In addition, the update buffer address assigned to the operation instruction is separately held, and the update buffer is prevented from being updated with fetch data after the operation result is stored in the update buffer based on the copy information. thing,
including.

【0017】さらに本発明によれば、先行する命令が、
メモリデータとメモリデータを演算してメモリに格納す
る命令であり、後続する命令が先行する命令の格納先ア
ドレスからフェッチデータを取り出す命令の実行時にお
いて、後続命令が格納されるリザベーションステーショ
ン中の該当する更新保留指示のリセットを抑止するこ
と、前記リセットの抑止により、先行するメモリ格納命
令が汎用レジスタを使用しない場合でも、後続の演算命
令がフェッチされたデータの代わりに先行する格納命令
において指定されたレジスタ更新バッファを使用するこ
と、を含む。
Further in accordance with the invention, the preceding instruction is
An instruction that calculates memory data and memory data and stores it in the memory. When the instruction that fetches fetch data from the storage address of the preceding instruction is executed, the succeeding instruction is stored in the reservation station. Suppressing the reset of the update pending instruction to be performed, and by suppressing the reset, even if the preceding memory storage instruction does not use the general-purpose register, the subsequent operation instruction is specified in the preceding storage instruction instead of the fetched data. Using a registered update buffer.

【0018】さらにまた本発明によれば、先行する命令
が、メモリデータとメモリデータを演算してメモリに格
納する命令であり、後続する命令が先行する命令の格納
先アドレスからフェッチデータを取り出す命令の実行時
においては、メモリに格納するデータを一時保持するた
めの更新バッファを汎用レジスタ更新のための更新バッ
ファとは別に備え、後続の演算命令がフェッチされたデ
ータの代わりに先行する格納命令において指定されたレ
ジスタ更新バッファを使用すること、を含む。
Further, according to the present invention, the preceding instruction is an instruction for operating the memory data and the memory data and storing it in the memory, and the instruction fetching the fetched data from the storage destination address of the instruction preceding the succeeding instruction. At the time of execution of, the update buffer for temporarily holding the data to be stored in the memory is provided separately from the update buffer for updating the general-purpose register, and the subsequent operation instruction uses the preceding store instruction instead of the fetched data. Using the specified register update buffer.

【0019】[0019]

【発明の実施の形態】図4は、本発明による命令制御装
置の基本構成例を示したものである。図5は、図4の命
令制御装置の動作フロー図である。図4では図1の従来
例と相違する部分を太線で示している。ここでは、前記
太線部分を中心に本発明による命令制御装置の動作につ
いて説明する。また、その説明の対応個所には図5のス
テップ番号を付している。
DESCRIPTION OF THE PREFERRED EMBODIMENTS FIG. 4 shows an example of the basic configuration of an instruction control device according to the present invention. FIG. 5 is an operation flow diagram of the instruction control device of FIG. In FIG. 4, portions different from the conventional example of FIG. 1 are indicated by thick lines. Here, the operation of the instruction control device according to the present invention will be described centering on the thick line portion. In addition, step numbers in FIG. 5 are attached to corresponding portions in the description.

【0020】命令レジスタ10においてメモリ格納命令
(ストア命令)が解読されると(S101)、そのデー
タ格納先のメモリアドレス部Aはメモリ格納アドレス保
持手段20に格納される。また、データ格納元の論理レ
ジスタRのアドレスからレジスタ再ネーミングのために
更新バッファアドレステーブル及びレジスタ更新保留テ
ーブル11が索引され、対応する更新保留指示(P
1)、汎用レジスタアドレス(RA1)及び更新バッフ
ァアドレス(UBA1)がリザベーションステーション
12に格納される。それと同時に前記P1、RA1及び
UBA1は一時格納手段22にも格納される(S10
2)。
When the memory storage instruction (store instruction) is decoded in the instruction register 10 (S101), the memory address portion A of the data storage destination is stored in the memory storage address holding means 20. Further, the update buffer address table and the register update pending table 11 are indexed from the address of the logical register R of the data storage source for register renaming, and the corresponding update pending instruction (P
1), the general-purpose register address (RA1) and the update buffer address (UBA1) are stored in the reservation station 12. At the same time, the P1, RA1 and UBA1 are also stored in the temporary storage means 22 (S10).
2).

【0021】次に、命令レジスタ10において後続のメ
モリ演算命令(例えば、メモリ−レジスタ加算命令等)
が解読されると(S103)、そのメモリアドレス部の
メモリアドレスは前記メモリ格納アドレス保持手段20
が保持する先のメモリアドレスAと比較器21によって
比較される。それらが一致すると比較器21は一致信号
を出力する(S104)。
Next, in the instruction register 10, a subsequent memory operation instruction (for example, memory-register addition instruction)
Is decoded (S103), the memory address of the memory address portion is stored in the memory storage address holding means 20.
Is compared by the comparator 21 with the memory address A which is stored in the memory. When they match, the comparator 21 outputs a match signal (S104).

【0022】一致信号の出力によって、リザベーショ
ンステーション12上の前記メモリ演算命令エントリー
における対応オペランドには、後続のメモリ演算命令に
より該当メモリアドレスからフェッチされるデータを格
納する更新バッファアドレスに代えて、前記一時格納手
段22に格納された内容(P1、RA1及びUBA1)
がコピー()される。同時に、前記格納先更新バッフ
ァアドレスは、更新バッファアドレス保持手段23へ送
られ保持される。前記更新バッファアドレス保持手段2
3からはフェッチデータが更新バッファを更新しないよ
うに制御する制御信号が生成される(S105)。な
お、前記更新バッファアドレス保持手段23の動作の詳
細については後述する。
By the output of the coincidence signal, the corresponding operand in the memory operation instruction entry on the reservation station 12 is replaced with the update buffer address for storing the data fetched from the corresponding memory address by the subsequent memory operation instruction, instead of the update buffer address. Contents stored in the temporary storage means 22 (P1, RA1 and UBA1)
Is copied (). At the same time, the storage destination update buffer address is sent to and held in the update buffer address holding means 23. Update buffer address holding means 2
From 3, a control signal for controlling fetch data not to update the update buffer is generated (S105). The details of the operation of the update buffer address holding means 23 will be described later.

【0023】上述した本発明の構成によれば、先行命令
であるストア命令において所定のメモリアドレスに格納
するソースデータを保持する汎用レジスタ(すなわち対
応する更新バッファ)の内容が、後続のメモリ演算命令
で同じメモリアドレスの内容をフェッチアクセスするの
に代えて用いられる。その結果、本発明によれば本来レ
ジスタ−メモリ間命令であるものがレジスタ−レジスタ
間命令に置き換えられ、図3の(a)に示したようなレ
ジスタ間のフォワーディング処理を利用した高速パイプ
ライン演算が可能となる。
According to the above-described structure of the present invention, the contents of the general-purpose register (that is, the corresponding update buffer) for holding the source data to be stored at the predetermined memory address in the store instruction which is the preceding instruction are the contents of the subsequent memory operation instruction. Is used instead of fetch access to the contents of the same memory address. As a result, according to the present invention, what is originally a register-memory instruction is replaced with a register-register instruction, and a high-speed pipeline operation utilizing the register-forwarding processing as shown in FIG. Is possible.

【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に書き込まれる。
FIG. 6 and subsequent figures show an embodiment of the present invention. FIG. 6 shows an example of a first instruction control operation (register-memory instruction) according to the present invention.
6B shows an operation example according to the present invention, while FIG. 6A shows a conventional example which performs the same operation for comparison with the present invention. In FIG. 6, the load instruction (L
5, A), the contents of memory address A are loaded into general register 5. Subsequent store instruction (ST 5,
In B), the contents of general register 5 are stored at memory address B. Finally, the contents of the general-purpose register 6 and the contents of the memory address B are added by an addition instruction (A 6, B), and the result is written in the same general-purpose register 6.

【0025】図6の(a)の従来例ではストア命令の結
果がメモリに反映されたタイミング6以降でなければ後
続の命令はメモリからフェッチデータを取り出せないの
に対して、図6の(b)ではストア命令の演算結果をフ
ォワーディング処理して直ちに使用することができる。
In the conventional example of FIG. 6A, the fetched data cannot be fetched from the memory by the subsequent instructions only after timing 6 when the result of the store instruction is reflected in the memory, while in FIG. In (), the operation result of the store instruction can be used immediately after the forwarding processing.

【0026】図7〜図9は、図6の(b)の本発明によ
る動作における各レジスタ内容等の変遷を命令サイクル
シーケンスに従って示したものである。図7は、図6の
(b)のタイミング1の設定データ例を示している。タ
イミング1では、ロード命令(L 5,A)により更新
バッファアドレステーブル及びレジスタ更新保留テーブ
ル11が更新される。本例では、メモリアドレスAから
フェッチされ汎用レジスタ5(GR5)を更新する内容
を保持するため更新バッファ1(P=1,UBA=1)
が割り当てられる。
FIGS. 7 to 9 show changes in the contents of each register in the operation according to the present invention shown in FIG. 6B according to the instruction cycle sequence. FIG. 7 shows an example of setting data at the timing 1 of FIG. At the timing 1, the update buffer address table and the register update pending table 11 are updated by the load instruction (L 5, A). In this example, the update buffer 1 (P = 1, UBA = 1) for holding the contents fetched from the memory address A and updating the general-purpose register 5 (GR5)
Is assigned.

【0027】図8のタイミング2では、ストア命令(S
T 5,B)のメモリアドレスBがメモリ格納アドレス
保持手段20に格納される。同時に、ストア命令の汎用
レジスタアドレス5を基に更新バッファアドレステーブ
ル及びレジスタ更新保留テーブル11が索引され、前記
ロード命令による更新結果を保持するGR5(UBA=
1、P=1)がリザベーションステーション12のスト
ア命令エントリー及び一時格納手段22に格納される。
At timing 2 in FIG. 8, the store instruction (S
The memory address B of T 5, B) is stored in the memory storage address holding means 20. At the same time, the update buffer address table and the register update pending table 11 are indexed on the basis of the general-purpose register address 5 of the store instruction, and GR5 (UBA = UBA =
1, P = 1) is stored in the store instruction entry and temporary storage means 22 of the reservation station 12.

【0028】また、同じタイミング2の加算命令(A
6,B)におけるDサイクルでは、命令レジスタ10上
のメモリアドレスBと前記メモリ格納アドレス保持手段
20に格納されたメモリアドレスBとが比較器21で比
較される。本例ではその比較結果が一致し、一致信号
が出力される。
Further, the addition instruction (A
In the D cycle in 6, B), the comparator 21 compares the memory address B on the instruction register 10 with the memory address B stored in the memory storage address holding means 20. In this example, the comparison results match and a match signal is output.

【0029】図9のタイミング3では、一致信号の出
力によって前記一時格納手段22の内容(GR5;UB
A=1、P=1)がリザベーションステーション12の
加算命令エントリーのフェッチデータ格納先を示す領域
にコピーされる。その結果、先行するストア命令の演算
結果を保持する更新バッファ1(P=1の場合)の内容
がフォワーディングされ直ちに後続の加算命令が実行さ
れる。このように、本実施例において加算命令はメモリ
からのフェッチデータの代わりに汎用レジスタ5又はL
命令の結果を保持するレジスタ更新バッファ1をソース
データとして使用するため、先行するストア命令がメモ
リにデータをストアするよりも早く後続の命令がそのデ
ータを使った演算を開始できる。
At timing 3 in FIG. 9, the contents of the temporary storage means 22 (GR5; UB
A = 1, P = 1) is copied to the area indicating the fetch data storage destination of the addition instruction entry of the reservation station 12. As a result, the contents of the update buffer 1 (when P = 1) holding the operation result of the preceding store instruction are forwarded, and the subsequent add instruction is immediately executed. As described above, in the present embodiment, the add instruction is the general-purpose register 5 or L instead of the fetch data from the memory.
Since the register update buffer 1 holding the result of the instruction is used as the source data, the subsequent instruction can start the operation using the data faster than the preceding store instruction stores the data in the memory.

【0030】なお、図10には図6の(a)の従来例に
おけるリザベーションステーション12の加算命令エン
トリーの一例を示している。図10に示すように、タイ
ミング3では前述した本発明によるフォワーディング処
理が実行されず、加算命令の更新バッファ(UBA2)
にはメモリアドレスBからフェッチするデータを格納す
る更新バッファアドレス(本例ではUBA2=2)が指
定される。従って、先行するストア命令によるメモリへ
の格納が終了した時点で後続の加算演算が開始される。
Incidentally, FIG. 10 shows an example of an addition instruction entry of the reservation station 12 in the conventional example of FIG. As shown in FIG. 10, at timing 3, the forwarding processing according to the present invention described above is not executed, and the add instruction update buffer (UBA2)
Is designated an update buffer address (in this example, UBA2 = 2) for storing the data fetched from the memory address B. Therefore, the subsequent addition operation is started when the storage in the memory by the preceding store instruction is completed.

【0031】ところで、図11には先行する加算命令に
おけるメモリからのフェッチデータが後続の加算命令の
フェッチデータよりも遅れる場合の一例を示している。
図11の加算命令は、いずれもメモリからのフェッチデ
ータを汎用レジスタGR5に加算し、その結果でGR5
を更新するものである。
By the way, FIG. 11 shows an example in which the fetch data from the memory in the preceding add instruction lags behind the fetch data in the subsequent add instruction.
Each of the addition instructions in FIG. 11 adds fetch data from the memory to the general-purpose register GR5, and the result is GR5.
Is to be updated.

【0032】図12は、上記のような場合に対処するた
めに拡張されたリザベーションステーション12の一例
を示している。図12では、新たに汎用レジスタを更新
した結果を保持する更新バッファアドレス(DUBA:
Destination Update Buffer Address )が設けられてい
る。これについて前記図11の例を用い、図13及び図
14に示すレジスタ内容を参照しながら説明する。
FIG. 12 shows an example of the reservation station 12 extended to cope with the above case. In FIG. 12, an update buffer address (DUBA: which holds the result of newly updating the general-purpose register).
Destination Update Buffer Address) is provided. This will be described with reference to the register contents shown in FIGS. 13 and 14 using the example of FIG.

【0033】図13に示すように、図11のタイミング
1では先行する加算命令の解読結果に基づいて更新バッ
ファアドレステーブル及びレジスタ更新保留テーブル1
1が索引され汎用レジスタ5(GR5)に対応する更新
バッファ1(RUB1)が取得される。また、汎用レジ
スタ5の更新結果を保持するDUBAに更新バッファ1
が割り当てられる。
As shown in FIG. 13, at the timing 1 of FIG. 11, the update buffer address table and the register update pending table 1 are based on the decoding result of the preceding add instruction.
1 is indexed and the update buffer 1 (RUB1) corresponding to the general-purpose register 5 (GR5) is acquired. Also, the update buffer 1 is added to the DUBA that holds the update result of the general-purpose register 5.
Is assigned.

【0034】一方、図14に示すように図11のタイミ
ング2では後続の加算命令の解読結果に基づいて更新バ
ッファアドレステーブル及びレジスタ更新保留テーブル
11が索引され、同じ汎用レジスタ5(GR5)に次の
更新バッファ2が割り当てられる。また、上記と同様に
DUBAにも更新バッファ2が割り当てられる。
On the other hand, as shown in FIG. 14, at timing 2 in FIG. 11, the update buffer address table and the register update pending table 11 are indexed based on the decoding result of the subsequent add instruction, and the same general register 5 (GR5) is next stored. Update buffer 2 is allocated. Further, the update buffer 2 is also assigned to the DUBA as in the above.

【0035】ここでは、先行する命令のフェッチデータ
が後続のフェッチデータよりも遅れるケースを考慮し、
メモリからのフェッチデータは前記DUBAで指定され
た更新バッファ2に一時格納される。命令は汎用レジス
タ用のデータがそろった時点で、汎用レジスタ及び前記
更新バッファのデータが演算器に与えられる。
Here, in consideration of the case where the fetch data of the preceding instruction lags behind the fetch data of the following instruction,
The fetch data from the memory is temporarily stored in the update buffer 2 designated by the DUBA. As for the instruction, when the data for the general-purpose register is prepared, the data in the general-purpose register and the update buffer are given to the arithmetic unit.

【0036】次に、先行する加算命令の演算結果がその
DUBAで指定した更新バッファ1に出力されるのを待
って(P1=1、UBA1=1)、そのフォワーディン
グ処理が行なわれ後続の演算が開始される。その演算結
果は、DUBAで指定された更新バッファ2に格納さ
れ、次のWサイクルで汎用レジスタ5に書き込まれる。
Next, after waiting for the operation result of the preceding add instruction to be output to the update buffer 1 designated by the DUBA (P1 = 1, UBA1 = 1), the forwarding processing is performed and the subsequent operation is performed. Be started. The operation result is stored in the update buffer 2 designated by DUBA, and written in the general-purpose register 5 in the next W cycle.

【0037】しかしながら、上述した演算動作を行うマ
シンにおいて本発明の第1の命令制御動作であるストア
命令後に同じメモリアドレスからのフェッチ動作を実行
した場合、演算器からの演算結果とメモリからのフェッ
チデータとが同時に同じ更新バッファに書き込まれるケ
ースが発生する。
However, when the fetch operation from the same memory address is executed after the store instruction which is the first instruction control operation of the present invention in the machine for performing the above-mentioned arithmetic operation, the arithmetic result from the arithmetic unit and the fetch from the memory There is a case where the data and the data are simultaneously written in the same update buffer.

【0038】図15は、その一例を示したものである。
図15では、本発明によるフォワーディング処理(スト
アフェッチフォワーディング)を用いた加算命令(A
6,B)がXサイクルでその演算結果を更新バッファ2
(RUB2)に書き込む際に、同時刻の後続のメモリ演
算命令のBサイクルでそのフェッチデータが同じ更新バ
ッファ2(RUB2)に書き込まれる。
FIG. 15 shows an example thereof.
In FIG. 15, an addition instruction (A using the forwarding processing (store fetch forwarding) according to the present invention is used.
6, B) updates its operation result in X cycle in buffer 2
When writing to (RUB2), the fetch data is written to the same update buffer 2 (RUB2) in the B cycle of the subsequent memory operation instruction at the same time.

【0039】図10の例から明らかなように、ストアフ
ェッチフォワーディングを行なわない通常の加算命令の
DUBAには更新バッファ2(RUB2)が割り当てら
れる。そのため、図9のコピー処理後の加算命令の演算
結果は更新バッファ2に一時書き込まれる(演算器→R
UB2)。一方、図15のカッコ内に示すように通常の
加算命令実行時のBサイクル(フェッチデータ→RUB
2)はストアフェッチフォワーディング処理時のXサイ
クルと一致する。
As is apparent from the example of FIG. 10, the update buffer 2 (RUB2) is assigned to the DUBA of the normal add instruction that does not perform store fetch forwarding. Therefore, the operation result of the addition instruction after the copy process of FIG. 9 is temporarily written in the update buffer 2 (operation unit → R
UB2). On the other hand, as shown in parentheses in FIG. 15, a B cycle (fetch data → RUB
2) coincides with the X cycle during store fetch forwarding processing.

【0040】その結果、本発明によるストアフェッチフ
ォワーディング処理を実行した場合に限って、同じ更新
バッファ(本例ではRUB2)に同時に2つの書き込み
処理が発生する。図16は、前記2つの同時書き込みを
防止するための更新バッファアドレス保持手段23の動
作説明図である。
As a result, two write processes occur simultaneously in the same update buffer (RUB2 in this example) only when the store fetch forwarding process according to the present invention is executed. FIG. 16 is an operation explanatory diagram of the update buffer address holding means 23 for preventing the two simultaneous writing.

【0041】図16の(a)は、演算器15又はデータ
キャシュ24のデータのいずれかを選択して更新バッフ
ァX(RUBX:X=0〜n)14に格納する一般的な
構成例を示したものである。図15でいえば、加算命令
の演算結果又はメモリフェッチデータが更新バッファ2
に書き込まれる。
FIG. 16A shows a general configuration example in which either the data of the arithmetic unit 15 or the data cache 24 is selected and stored in the update buffer X (RUBX: X = 0 to n) 14. It is a thing. In FIG. 15, the calculation result of the add instruction or the memory fetch data is the update buffer 2
Written in.

【0042】図16の(b)は、更新バッファアドレス
保持手段23の一構成例を示したものである。前述した
ようにストア命令のデータ格納先情報がリザベーション
ステーション12上の次の加算命令にコピーされる直前
のタイミングでその加算命令のDUBAの内容がバッフ
ァ31に保持される。バッファ31の内容はデコーダ3
2によってデコードされ、前述したストアフェッチフォ
ワーディング処理の際に同時に発生する2つの書き込み
処理のうちデータキャッシュ24からのメモリフェッチ
データによる更新バッファXの更新処理を禁止するフラ
グ信号(INH_RUBX_UPDATE)が出力され
る。
FIG. 16 (b) shows an example of the structure of the update buffer address holding means 23. As described above, the contents of the DUBA of the add instruction are held in the buffer 31 at the timing immediately before the data storage destination information of the store instruction is copied to the next add instruction on the reservation station 12. The content of the buffer 31 is the decoder 3
A flag signal (INH_RUBX_UPDATE) that is decoded by 2 and prohibits the update process of the update buffer X by the memory fetch data from the data cache 24 out of the two write processes that occur simultaneously during the above-described store fetch forwarding process is output. .

【0043】前記フラグ信号は、図16の(c)に示す
ようにキャシュ側の出力をゲーティングしてメモリフェ
ッチデータによる更新バッファ2の更新を禁止する。こ
こで、+X_DSUBA_EQ_2信号はXサイクルに
おける更新バッファ2のイネーブル信号であり、+B_
DSUBA_EQ_2信号はBサイクルにおける更新バ
ッファ2のイネーブル信号である。
The flag signal gates the output on the cache side to inhibit the update of the update buffer 2 by the memory fetch data, as shown in FIG. 16C. Here, the + X_DSUBA_EQ_2 signal is an enable signal for the update buffer 2 in the X cycle, and + B_
The DSUBA_EQ_2 signal is an enable signal for the update buffer 2 in the B cycle.

【0044】その結果、更新バッファ2には演算器出力
だけが格納され、フォワーディング処理により不要とな
ったキャッシュ24からのフェッチデータは廃棄され
る。なお、ここでは更新バッファ2についてのみ示して
あるが、同様な回路は各更新バッファX毎に設けられて
おり、それらは同様に動作する。
As a result, only the output of the arithmetic unit is stored in the update buffer 2, and the fetched data from the cache 24 which becomes unnecessary by the forwarding processing is discarded. Although only the update buffer 2 is shown here, a similar circuit is provided for each update buffer X and they operate similarly.

【0045】図17は、メモリ格納命令を使用する別の
演算シーケンスの一例を示している。図17の(a)
は、ロード命令( L 5、A)のWサイクルでストア命
令( ST 5、B)のリザベーションステーション12
上のPビットがオフ(P1=0)となる。これは、汎用
レジスタ5に正しい値が保持されたことを意味し、この
場合は次の加算命令(A 6、B)におけるメモリフェ
ッチデータのフォワーディング処理は更新バッファから
ではなく汎用レジスタ5から行われる。
FIG. 17 shows an example of another operation sequence using the memory store instruction. 17 (a)
Is the reservation station 12 of the store instruction (ST 5, B) in the W cycle of the load instruction (L 5, A).
The upper P bit is turned off (P1 = 0). This means that the correct value is held in the general-purpose register 5, and in this case, the forwarding processing of the memory fetch data in the next addition instruction (A 6, B) is performed from the general-purpose register 5 instead of from the update buffer. .

【0046】本例のように汎用レジスタの内容をストア
する命令については、これまで述べたメモリデータのフ
ェッチに代わるフォワーディング処理を矛盾なく実行で
きる。なお、ここで「命令」はDPXWのシーケンスを
有する一般の命令を示している。ところで、ストア命令
には汎用レジスタを介さずにメモリデータとメモリデー
タとを加算してメモリにストアする命令も存在する。
As for the instruction for storing the contents of the general-purpose register as in this example, the forwarding process in place of the memory data fetch described above can be executed without contradiction. Here, the “instruction” indicates a general instruction having a DPXW sequence. By the way, as the store instruction, there is also an instruction to add the memory data and the memory data and store in the memory without using the general-purpose register.

【0047】図17の(b)は、そのような命令の一例
を示したものである。この場合、フォワーディングすべ
きデータは更新バッファ内にしか存在しないため、前記
図17の(a)で示した先行命令のWワイフル後のタイ
ミングでフォワーディングしようとすると正常に動作し
ない場合がある。
FIG. 17B shows an example of such an instruction. In this case, since the data to be forwarded exists only in the update buffer, if the forwarding is attempted at the timing after the W-wise of the preceding instruction shown in (a) of FIG. 17, it may not operate normally.

【0048】図17の(b)では更新バッファを全部で
5個実装する場合を示している。ここで、ロード命令
(L 5、A)は更新バッファ1を汎用レジスタ5の更
新データ保持に使用し、そのWサイクルで更新バッファ
1の内容を汎用レジスタ5に格納する。その結果、後続
の命令6が次に前記更新バッファ1の使用を許可され
る。ところで、ロード命令の次に実行されるストア命令
(本例ではAP A、B)はソースとして汎用レジスタ
を使用せず、ソースとして前記更新バッファ1の内容を
そのまま使用する。
FIG. 17B shows a case where a total of five update buffers are mounted. Here, the load instruction (L 5, A) uses the update buffer 1 to hold the update data in the general-purpose register 5, and stores the contents of the update buffer 1 in the general-purpose register 5 in the W cycle. As a result, the subsequent instruction 6 is then allowed to use the update buffer 1. By the way, the store instruction (AP A, B in this example) executed next to the load instruction does not use the general-purpose register as the source, but uses the contents of the update buffer 1 as the source as it is.

【0049】後続の加算命令(A 6、B)は、本発明
によりメモリアドレスAの内容を読み込む代わりに前記
更新バッファ1の内容をフォワーディングする。しかし
ながら、本例では更新バッファ1の使用を許可された命
令6が、すでにそのBサイクルで更新バッファ1の内容
をフェッチデータに書き換えている。従って、それより
も後に実行される加算命令のXサイクルによって得られ
る結果は誤ったものとなる。
Subsequent add instructions (A 6, B) forward the contents of the update buffer 1 instead of reading the contents of memory address A according to the invention. However, in this example, the instruction 6 permitted to use the update buffer 1 has already rewritten the contents of the update buffer 1 into fetch data in the B cycle. Therefore, the result obtained by the X cycle of the add instruction executed after that is incorrect.

【0050】図18は、本発明による第2の命令制御動
作(メモリ−メモリ間演算命令)の一例を示したもので
ある。図18では、汎用レジスタを使用しないメモリ演
算命令の一例としてAP命令を使用した場合を示してい
る。AP命令はメモリAの内容とメモリBの内容とを加
算して、メモリAに格納する命令である。ここで、汎用
レジスタ更新用の更新バッファXはX=1〜5の5個ま
でが使用でき、さらに更新バッファ6はAP命令専用の
更新バッファとして割り当てられている。
FIG. 18 shows an example of the second instruction control operation (memory-memory operation instruction) according to the present invention. In FIG. 18, the AP instruction is used as an example of the memory operation instruction that does not use the general-purpose register. The AP instruction is an instruction for adding the contents of the memory A and the contents of the memory B and storing them in the memory A. Here, up to five general purpose register update buffers X (X = 1 to 5) can be used, and the update buffer 6 is assigned as an update buffer dedicated to the AP instruction.

【0051】図19及び図20は、図18のタイミング
2とタイミング3の各データ設定例を示している。図1
9では、命令レジスタ10においてAP命令(AP
A、B)が解読されると、そのデータ格納先のメモリア
ドレス部Aはメモリ格納アドレス保持手段20に格納さ
れる。一方、それに加算されるメモリアドレスBのフェ
ッチ先として前記AP命令専用の更新バッファ6が割り
当てられる。それはリザベーションステーション12上
のAP命令オペランドのDUBAに格納され、同時に一
時格納手段22にも格納される。なお、本例のAP命令
では汎用レジスタを使用しないため、更新バッファアド
レステーブル及びレジスタ更新保留テーブル11を索引
することはない。
FIGS. 19 and 20 show examples of data setting for timing 2 and timing 3 in FIG. Figure 1
9, the AP instruction (AP
When A, B) are decoded, the memory address portion A of the data storage destination is stored in the memory storage address holding means 20. On the other hand, the update buffer 6 dedicated to the AP instruction is assigned as the fetch destination of the memory address B to be added thereto. It is stored in the DUBA of the AP instruction operand on the reservation station 12, and at the same time is also stored in the temporary storage means 22. Since the general-purpose register is not used in the AP instruction of this example, the update buffer address table and the register update pending table 11 are not indexed.

【0052】図20では、命令レジスタ10で解読され
た後続の加算命令(A 6、A)におけるメモリアドレ
ス部Aと前記メモリ格納アドレス保持手段20が保持す
る先のメモリアドレスAとが比較器21によって比較さ
れる。本例ではそれらが一致するため、その一致信号に
よりリザベーションステーション12上の対応オペラン
ドに前記一時格納手段22に格納された内容がコピーさ
れる。以降の動作はこれまでに述べた本発明による第1
の命令制御動作と同じである。
In FIG. 20, the memory address portion A in the subsequent add instruction (A 6, A) decoded by the instruction register 10 and the memory address A to which the memory storage address holding means 20 holds are compared 21. Compared by. In the present example, since they match, the match signal copies the contents stored in the temporary storage means 22 to the corresponding operand on the reservation station 12. The subsequent operation is the first operation according to the present invention described above.
Is the same as the instruction control operation of.

【0053】但し、AP命令が終了した時点でも加算命
令のフェッチデータフォワーディング用のデータは前記
AP命令専用の更新バッファ6に保持されており、P2
ビットはリセットされない。その結果、いずれのタイミ
ングからでもAP命令専用の更新バッファ6を使ってフ
ェッチデータのフォワーディング処理が可能である。な
お、前記加算命令がそのフォワーディング処理を行う前
に、新たに後続のAP命令を実行しようとする場合に
は、そのフォワーディング処理が終了するまで後続AP
命令のデコードが停止される。
However, even when the AP instruction is completed, the data for fetch data forwarding of the addition instruction is held in the update buffer 6 dedicated to the AP instruction, and P2
The bit is not reset. As a result, the fetch data forwarding process can be performed using the update buffer 6 dedicated to the AP instruction at any timing. If the addition instruction tries to newly execute a subsequent AP instruction before performing the forwarding processing, the succeeding AP is executed until the forwarding processing is completed.
Instruction decoding is stopped.

【0054】上述した本発明の構成によれば、先行命令
であるAP命令において所定のメモリアドレスに格納す
るソースデータを保持するAP命令専用の更新バッファ
が割り当てられるため、ここでも後続のメモリ演算命令
は本来レジスタ−メモリ間命令であるものがレジスタ−
レジスタ間命令に置き換えられ、前記AP命令専用の更
新バッファ6を使ったフォワーディング処理により高速
なパイプライン演算が可能となる。
According to the configuration of the present invention described above, since the AP instruction update buffer dedicated to the AP instruction that holds the source data to be stored at the predetermined memory address is assigned to the AP instruction that is the preceding instruction, the subsequent memory operation instruction is also used here. Is originally a register-memory instruction that is a register-
It is replaced with an inter-register instruction, and a forwarding processing using the update buffer 6 dedicated to the AP instruction enables a high-speed pipeline operation.

【0055】以上の説明から、本願発明では以下の内容
を開示している。先ず、本発明では、命令実行の結果を
一時格納し、命令実行が完了する時点で汎用レジスタを
更新するための複数のレジスタ更新バッファと、指定の
汎用レジスタを更新するデータがどのレジスタ更新バッ
ファに格納されるかを示す更新バッファアドレステーブ
ルと、指定の汎用レジスタが更新保留になっていること
を示すレジスタ更新保留テーブルと、汎用レジスタアド
レス、該汎用レジスタに対応する前記更新バッファアド
レステーブルから出力されたレジスタ更新バッファアド
レス、及び該汎用レジスタの更新保留指示を格納するリ
ザベーションステーションと、 を有し、更新保留指示
がオンであれば指定されたレジスタ更新バッファを、更
新保留指示がオフであれば指定された汎用レジスタをソ
ースデータとして用いる情報処理装置における命令制御
方法を前提とする。そこでは、以下の方法を開示してい
る。
From the above description, the present invention discloses the following contents. First, according to the present invention, a plurality of register update buffers for temporarily storing the result of instruction execution and updating the general-purpose registers at the time when the instruction execution is completed, and which register update buffer contains the data for updating the specified general-purpose register. Output from the update buffer address table indicating whether to store, the register update pending table indicating that the specified general-purpose register is pending update, the general-purpose register address, and the update buffer address table corresponding to the general-purpose register. A register update buffer address, and a reservation station that stores an update pending instruction of the general-purpose register, and specifies the specified register update buffer if the update pending instruction is on, and specifies it if the update pending instruction is off. Information processing apparatus using the general-purpose general purpose register as source data It is premised on the command control method in. There, the following method is disclosed.

【0056】(1)演算のソースデータとしてメモリか
らのフェッチデータを必要とする命令の実行時におい
て、先行する命令においてメモリ領域の格納が行われて
いなければ、該フェッチデータをレジスタ更新バッファ
に格納して使用すること、先行する命令においてメモリ
領域の格納が行われており、且つその格納先アドレスと
フェッチデータの取り出し先アドレスが等しい場合に
は、先行する命令が保持されるリザベーションステーシ
ョンから格納用レジスタを指定するための更新保留指
示、レジスタ更新バッファアドレス、汎用レジスタバッ
ファアドレスを該演算命令が保持されるリザベーション
ステーションのフェッチデータ指定情報領域にコピーす
ること、該演算命令はメモリからフェッチされたデータ
の代わりに先行する格納命令において指定された格納用
レジスタを使用する命令制御方法。
(1) When the instruction that requires fetch data from the memory as the source data of the operation is executed and the preceding instruction does not store the memory area, the fetch data is stored in the register update buffer. If the memory area is stored in the preceding instruction and the storage destination address is the same as the fetch data fetch destination address, the previous instruction is used for storing from the reservation station. Copying an update suspension instruction for specifying a register, a register update buffer address, and a general-purpose register buffer address to a fetch data specification information area of a reservation station in which the operation instruction is held, the operation instruction being data fetched from memory. Preceding storage instead of Instruction control method using the specified storage register in decrees.

【0057】(2)演算のソースデータとしてメモリか
らのフェッチデータを必要とし、かつ演算結果で汎用レ
ジスタを更新する命令の実行時において、該フェッチデ
ータを汎用レジスタ更新用に割り当てられたレジスタ更
新バッファに一時格納してソースデータとして使用する
とともに、演算結果を該レジスタ更新バッファに再び格
納すること、先行する命令の格納先アドレスとフェッチ
データの取り出し先アドレスが等しいため、先行する命
令が保持されるリザベーションステーションから格納用
レジスタを指定するためのレジスタ更新バッファアドレ
スを該演算命令が保持されるリザベーションステーショ
ンのフェッチデータ指定情報領域にコピーする際に、該
演算命令に割り当てられた更新バッファアドレスを別に
保持すること、該コピー情報を基に、演算結果が更新バ
ッファに格納された後から該更新バッファがフェッチデ
ータで更新されることを抑止すること、を含む上記方
法。
(2) A register update buffer allocated for updating general-purpose registers at the time of executing an instruction that requires fetch data from a memory as source data for the operation and updates the general-purpose register with the operation result. The operation result is stored again in the register update buffer, and the preceding instruction is retained because the storage address of the preceding instruction and the fetch address of the fetch data are equal. When the register update buffer address for specifying the storage register from the reservation station is copied to the fetch data specification information area of the reservation station where the operation instruction is held, the update buffer address assigned to the operation instruction is held separately What to do It said method comprising the basis of the peak information, that, to prevent that the update buffer is updated by fetching data from after the operation result is stored in the update buffer.

【0058】(3)先行する命令が、メモリデータとメ
モリデータを演算してメモリに格納する命令であり、後
続する命令が先行する命令の格納先アドレスからフェッ
チデータを取り出す命令の実行時において、後続命令が
格納されるリザベーションステーション中の該当する更
新保留指示のリセットを抑止すること、前記リセットの
抑止により、先行するメモリ格納命令が汎用レジスタを
使用しない場合でも、後続の演算命令がフェッチされた
データの代わりに先行する格納命令において指定された
レジスタ更新バッファを使用すること、を含む上記方
法。
(3) The preceding instruction is an instruction for calculating the memory data and the memory data and storing it in the memory, and at the time of executing the instruction for fetching the fetch data from the storage destination address of the instruction followed by the succeeding instruction, Suppressing the reset of the corresponding update pending instruction in the reservation station in which the subsequent instruction is stored, and by the suppression of the reset, the subsequent arithmetic instruction is fetched even if the preceding memory storage instruction does not use the general-purpose register. Using the register update buffer specified in the preceding store instruction instead of the data.

【0059】(4)先行する命令が、メモリデータとメ
モリデータを演算してメモリに格納する命令であり、後
続する命令が先行する命令の格納先アドレスからフェッ
チデータを取り出す命令の実行時において、メモリに格
納するデータを一時保持するための更新バッファを汎用
レジスタ更新のための更新バッファとは別に備え、後続
の演算命令がフェッチされたデータの代わりに先行する
格納命令において指定されたレジスタ更新バッファを使
用すること、を含む上記方法。
(4) The preceding instruction is an instruction for calculating the memory data and the memory data and storing it in the memory, and at the time of executing the instruction for fetching the fetch data from the storage destination address of the instruction followed by the succeeding instruction, The update buffer for temporarily holding the data to be stored in the memory is provided separately from the update buffer for updating the general-purpose register, and the subsequent operation instruction specifies the register update buffer specified in the preceding storage instruction instead of the fetched data. Using the above method.

【0060】[0060]

【発明の効果】以上説明したように、本発明によればレ
ジスタ再ネーミングを行う情報処理装置において、メモ
リ演算命令についても効率的にストアフェッチフォワー
ディング機能を実現することが可能となる。
As described above, according to the present invention, it is possible to efficiently realize a store fetch forwarding function for a memory operation instruction in an information processing device that performs register renaming.

【図面の簡単な説明】[Brief description of drawings]

【図1】従来のレジスタ再ネーミング技術の一例を示し
た図である。
FIG. 1 is a diagram showing an example of a conventional register renaming technique.

【図2】リザベーションステーションのオペランド部の
一構成例を示した図である。
FIG. 2 is a diagram showing a configuration example of an operand section of a reservation station.

【図3】従来の命令演算タイムチャートの一例を示した
図である。
FIG. 3 is a diagram showing an example of a conventional instruction operation time chart.

【図4】本発明による命令制御装置の基本構成例を示し
た図である。
FIG. 4 is a diagram showing a basic configuration example of an instruction control device according to the present invention.

【図5】図4の命令制御装置の動作フロー図である。5 is an operation flowchart of the instruction control device of FIG.

【図6】本発明による第1の命令制御動作例(レジスタ
−メモリ間命令)を示した図である。
FIG. 6 is a diagram showing a first instruction control operation example (register-memory instruction) according to the present invention.

【図7】図6の(b)のタイミング1のデータ設定例を
示した図である。
7 is a diagram showing an example of data setting at timing 1 in FIG. 6 (b).

【図8】図6の(b)のタイミング2のデータ設定例を
示した図である。
8 is a diagram showing an example of data setting at timing 2 in FIG. 6 (b).

【図9】図6の(b)のタイミング3のデータ設定例を
示した図である。
9 is a diagram showing an example of data setting at timing 3 in FIG. 6B.

【図10】図6の(a)の従来例におけるリザベーショ
ンステーションの一例を示した図である。
10 is a diagram showing an example of a reservation station in the conventional example of FIG. 6 (a).

【図11】加算命令の別の動作例を示した図である。FIG. 11 is a diagram showing another operation example of an addition instruction.

【図12】拡張されたリザベーションステーションの一
例を示した図である。
FIG. 12 is a diagram showing an example of an extended reservation station.

【図13】図11のタイミング1のデータ設定例を示し
た図である。
13 is a diagram showing an example of data setting at timing 1 in FIG.

【図14】図11のタイミング2のデータ設定例を示し
た図である。
14 is a diagram showing an example of data setting at timing 2 in FIG.

【図15】ストアフェッチフォワーディング処理による
同時書き込みの説明図である。
FIG. 15 is an explanatory diagram of simultaneous writing by store fetch forwarding processing.

【図16】更新バッファアドレス保持手段の動作説明図
である。
FIG. 16 is an operation explanatory diagram of an update buffer address holding unit.

【図17】ストア命令を使用する別の演算例を示した図
である。
FIG. 17 is a diagram showing another operation example using a store instruction.

【図18】本発明による第2の命令制御動作(メモリ−
メモリ間命令)の一例を示した図である。
FIG. 18 shows a second instruction control operation (memory-
It is the figure which showed an example of the instruction between memories.

【図19】図18のタイミング2のデータ設定例を示し
た図である。
19 is a diagram showing an example of data setting at timing 2 in FIG.

【図20】図18のタイミング3のデータ設定例を示し
た図である。
20 is a diagram showing an example of data setting at timing 3 in FIG.

【符号の説明】[Explanation of symbols]

10…命令レジスタ 11…更新バッファアドレステーブル及びレジスタ更新
保留テーブル 12…リザベーションステーション 13…汎用レジスタ 14…レジスタ更新バッファ 15…演算器 20…メモリ格納アドレス保持手段 21…比較器 22…一時格納手段 23…更新バッファ保持手段 24…キャッシュ 31…バッファ 33…デコーダ
10 ... Instruction register 11 ... Update buffer address table and register update pending table 12 ... Reservation station 13 ... General purpose register 14 ... Register update buffer 15 ... Arithmetic unit 20 ... Memory storage address holding means 21 ... Comparator 22 ... Temporary storage means 23 ... Update buffer holding means 24 ... Cache 31 ... Buffer 33 ... Decoder

Claims (8)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 複数個の解読済命令を格納するリザベー
ションステーション及びレジスタ再ネーミングのための
更新バッファを有する情報処理装置の命令制御方法であ
って、 先行する命令において格納命令が解読されると、そのデ
ータ格納先のメモリアドレスを保持し、かつデータ格納
元に割り当てられた更新バッファの情報を保持するこ
と、 後続の命令が演算のソースデータとしてメモリアドレス
からのフェッチデータを必要とする命令の実行時におい
て、そのメモリアドレスと前記保持されたメモリアドレ
スとの一致を検出すること、 前記一致を検出した場合に、リザベーションステーショ
ンに登録された後続の命令のデータ格納元の情報を前記
更新バッファの情報に置き換えること、 前記置き換えにより、メモリからのフェッチデータに代
えて前記更新バッファの格納データを使用すること、か
ら成ることを特徴とする命令制御方法。
1. A method for controlling an instruction of an information processing apparatus having a reservation station for storing a plurality of decoded instructions and an update buffer for register renaming, wherein a storage instruction is decoded in a preceding instruction, Holds the memory address of the data storage destination and also holds the information of the update buffer allocated to the data storage source, and executes the instruction that requires the fetched data from the memory address as the source data of the subsequent instruction. When detecting a match between the memory address and the held memory address, when the match is detected, the information of the data storage source of the subsequent instruction registered in the reservation station is updated to the information of the update buffer. To the fetch data from the memory. Instruction control method characterized by consisting, the use of data stored in the update buffer instead.
【請求項2】 さらに、前記置き換えの前に、前記後続
命令のデータ格納元の情報を別に保持すること、 前記保持したデータ格納元の情報に基づいて、前記更新
バッファに格納される前記後続命令の演算結果がその後
のフェッチデータによって更新されることを防止するこ
と、を含む請求項1記載の方法。
2. Before the replacement, information on a data storage source of the subsequent instruction is separately held, and the subsequent instruction stored in the update buffer based on the held information on the data storage source. 2. The method according to claim 1, further comprising preventing the result of the operation from being updated by subsequent fetch data.
【請求項3】 さらに、先行する命令がメモリデータと
メモリデータを演算してメモリに格納する命令であり、
後続する命令が先行する命令のデータ格納先アドレスか
らフェッチデータを取り出す命令の実行時において、 前記後続命令が格納されるリザベーションステーション
中の該当する前記更新バッファの開放を抑止すること、 前記開放の抑止により、先行するメモリ格納命令が汎用
レジスタを使用しない場合でも、後続の演算命令がメモ
リからのフェッチデータに代えて前記更新バッファの格
納データを使用すること、を含む請求項1記載の方法。
3. The preceding instruction is an instruction for calculating memory data and the memory data and storing it in the memory,
Suppressing the release of the corresponding update buffer in the reservation station in which the subsequent instruction is stored during execution of the instruction that fetches fetch data from the data storage destination address of the instruction that follows the preceding instruction; 2. The method of claim 1, wherein the subsequent arithmetic instruction uses stored data in the update buffer instead of fetched data from memory even if the preceding memory stored instruction does not use a general purpose register.
【請求項4】 さらに、先行する命令がメモリデータと
メモリデータを演算してメモリに格納する命令であり、
後続する命令が先行する命令のデータ格納先アドレスか
らフェッチデータを取り出す命令の実行時において、 汎用レジスタ更新用の更新バッファとは別に設けられた
専用更新バッファにメモリに格納するデータを一時保持
すること、 後続の演算命令は、メモリからのフェッチデータに代え
て前記専用更新バッファの格納データを使用すること、
を含む請求項1又は3記載の方法。
4. The preceding instruction is an instruction for operating the memory data and the memory data and storing it in the memory,
Temporarily holding the data to be stored in the memory in the dedicated update buffer provided separately from the update buffer for updating general-purpose registers when executing the instruction that fetches fetch data from the data storage destination address of the preceding instruction The subsequent operation instruction uses the stored data of the dedicated update buffer instead of the fetched data from the memory,
The method according to claim 1 or 3, which comprises:
【請求項5】 汎用レジスタの更新保留指示がオンであ
れば指定されたレジスタ更新バッファを、更新保留指示
がオフであれば指定された汎用レジスタをソースデータ
として用いる命令制御装置であって、 命令レジスタで解読されたメモリ格納命令のデータ格納
先のメモリアドレスと、 命令レジスタで解読された後続のメモリ演算命令のメモ
リアドレス部のメモリアドレスとを比較する比較器と、 前記比較器からの一致信号の出力によって前記リザベ
ーションステーション上における後続のメモリ演算命令
のメモリアドレス情報を、先のメモリ格納命令の更新保
留指示、汎用レジスタアドレス及び更新バッファアドレ
スの情報に置き換える手段と、を備えたことを特徴とす
る命令制御装置。
5. An instruction control device which uses a designated register update buffer as a source data when an update suspension instruction of a general-purpose register is turned on, and uses a designated general-purpose register as source data when an update suspension instruction is turned off. A comparator for comparing the memory address of the data storage destination of the memory storage instruction decoded by the register with the memory address of the memory address portion of the subsequent memory operation instruction decoded by the instruction register, and a match signal from the comparator Is output , the memory address information of the subsequent memory operation instruction on the reservation station is updated and stored in the previous memory store instruction.
Stay instruction, general-purpose register address and update buffer address
Instruction control apparatus characterized by comprising means for replacing the scan of information.
【請求項6】 さらに、前記置き換え前のリザベーショ
ンステーション上の後続メモリ演算命令のメモリアドレ
ス情報が退避され、そのデコード情報によって前記後続
命令の演算結果がその後のフェッチデータによって更新
されることを防止する更新バッファアドレス保持手段、
を有する請求項5記載の装置。
6. The memory address information of the subsequent memory operation instruction on the reservation station before replacement is saved, and the operation result of the subsequent instruction is prevented from being updated by the fetch data by the decode information. Update buffer address holding means,
The device of claim 5, comprising:
【請求項7】 さらに、先行する命令がメモリデータと
メモリデータを演算してメモリに格納する命令であり、
後続する命令が先行する命令のデータ格納先アドレスか
らフェッチデータを取り出す命令の実行時において、先
行するメモリ格納命令が汎用レジスタを使用しない場合
でも後続の演算命令にフェッチされたデータの代わりに
先行する格納命令において指定されたレジスタ更新バッ
ファを使用させるため、後続命令が格納されるリザベー
ションステーション中の該当する更新保留指示のリセッ
トを抑止する手段、を有する請求項5記載の装置。
7. The preceding instruction is an instruction for calculating memory data and the memory data and storing it in the memory,
When the instruction that fetches fetched data from the data storage destination address of the preceding instruction is executed by the following instruction, the preceding arithmetic operation instruction precedes the fetched data instead of the fetched data even if the preceding memory storage instruction does not use a general-purpose register. 6. The apparatus according to claim 5, further comprising means for suppressing resetting of a corresponding update pending instruction in a reservation station in which a subsequent instruction is stored so as to use the register update buffer specified in the store instruction.
【請求項8】 さらに、先行する命令がメモリデータと
メモリデータを演算してメモリに格納する命令であり、
後続する命令が先行する命令のデータ格納先アドレスか
らフェッチデータを取り出す命令の実行時において、メ
モリに格納するデータを専用に保持し、後続の演算命令
がその保持データをフェッチされたデータの代わりに使
用する専用レジスタ更新バッファ、を有する請求項5又
は7記載の装置。
8. The preceding instruction is an instruction for calculating memory data and the memory data and storing it in the memory,
When the instruction that fetches fetch data from the data storage destination address of the preceding instruction is executed by the instruction that follows, the data to be stored in the memory is held exclusively, and the subsequent operation instruction uses the held data instead of the fetched data. 8. A device according to claim 5 or 7, comprising a dedicated register update buffer for use.
JP35898298A 1998-12-17 1998-12-17 Instruction control apparatus and method Expired - Fee Related JP3497087B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP35898298A JP3497087B2 (en) 1998-12-17 1998-12-17 Instruction control apparatus and method
US09/461,429 US6807624B1 (en) 1998-12-17 1999-12-16 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,286 US7127591B2 (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 (en) 1998-12-17 1998-12-17 Instruction control apparatus and method

Publications (2)

Publication Number Publication Date
JP2000181715A JP2000181715A (en) 2000-06-30
JP3497087B2 true JP3497087B2 (en) 2004-02-16

Family

ID=18462128

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35898298A Expired - Fee Related JP3497087B2 (en) 1998-12-17 1998-12-17 Instruction control apparatus and method

Country Status (1)

Country Link
JP (1) JP3497087B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2000181715A (en) 2000-06-30

Similar Documents

Publication Publication Date Title
US9081563B2 (en) Method and apparatus for enhancing scheduling in an advanced microprocessor
US8984261B2 (en) Store data forwarding with no memory model restrictions
JPH11212788A (en) Data supplying device for processor
JP2000148489A (en) Computer system
JP3154660B2 (en) Method and system for temporarily buffering condition register data
JPH06259253A (en) Data processor and its operating method
JPH0553803A (en) Processor
JP2008107983A (en) Cache memory
JP3727244B2 (en) Cache system control circuit
JP2596712B2 (en) System and method for managing execution of instructions, including adjacent branch instructions
EP1770507A2 (en) Pipeline processing based on RISC architecture
JP3497087B2 (en) Instruction control apparatus and method
JP3518510B2 (en) Reorder buffer management method and processor
US6421771B1 (en) Processor performing parallel operations subject to operand register interference using operand history storage
US20100100709A1 (en) Instruction control apparatus and instruction control method
EP0443629B1 (en) Effective address pre-calculation type pipelined microprocessor
US20040153628A1 (en) Instruction control device and method therefor
JP2894438B2 (en) Pipeline processing equipment
JP2953451B2 (en) Interrupt handling method
JP3473506B2 (en) Pipeline processing equipment
JP2904624B2 (en) Parallel processing unit
JP2569867B2 (en) Effective Address Precalculation Pipeline Microprocessor
JPH07219771A (en) Instruction processor
JP2000259411A (en) Processor
JPH06301537A (en) Instruction fetching circuit

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