JPH11259295A - Instruction scheduling device for processor - Google Patents

Instruction scheduling device for processor

Info

Publication number
JPH11259295A
JPH11259295A JP5854298A JP5854298A JPH11259295A JP H11259295 A JPH11259295 A JP H11259295A JP 5854298 A JP5854298 A JP 5854298A JP 5854298 A JP5854298 A JP 5854298A JP H11259295 A JPH11259295 A JP H11259295A
Authority
JP
Japan
Prior art keywords
instruction
field
bit
source operand
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5854298A
Other languages
Japanese (ja)
Inventor
Hisatomo Satou
寿倫 佐藤
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP5854298A priority Critical patent/JPH11259295A/en
Publication of JPH11259295A publication Critical patent/JPH11259295A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To improve the performance of a processor by the speculative solution of data dependence. SOLUTION: The entry of the instruction window of a register updating unit is provided with a predicted bit 160 for indicating whether or not a value held in a content field 122 of a destination field 120 is a predicted value. In this case, when either an executed bit 150 or the predicted bit 160 is set, the arithmetic operation of a following instruction in data dependence with this instruction is executed.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明はプロセッサに関し、
とくにプロセッサの命令スケジューリングに関するもの
である。
TECHNICAL FIELD The present invention relates to a processor.
In particular, it relates to instruction scheduling of a processor.

【0002】[0002]

【従来の技術】プロセッサの性能向上を妨げる要因の一
つに命令間の依存関係の問題がある。この依存関係に
は、制御依存関係(control dependence)、資源依存関
係(namedependence)、そしてデータ依存関係(data d
ependence)がある。このうち、制御依存関係には多く
の研究があり、分岐予測や投機的実行により依存関係の
解消が試みられている。資源依存関係はレジスタの数と
いうハードウエア資源の不足により生じる。これはレジ
スタ名前替え(R.M.Keller, Look-Ahead Processors,AC
M Computing Surveys, vol.7, no.4, pp.177-195,197
5)を施すことにより解消可能である。しかし、データ
依存関係は「真の依存関係」とも称されるように、解消
できる方法は未だない。つまりデータ依存関係は、命令
レベル並列度(instruction level parallelism)を向
上する妨げとなる非常に深刻な問題である。
2. Description of the Related Art One of the factors hindering the performance improvement of a processor is a problem of dependency between instructions. These dependencies include control dependence, resource dependence (namedependence), and data dependence (data d
ependence). Among them, many studies have been made on control dependencies, and attempts have been made to eliminate the dependencies by branch prediction and speculative execution. The resource dependency is caused by a shortage of hardware resources such as the number of registers. This is the register name change (RMKeller, Look-Ahead Processors, AC
M Computing Surveys, vol.7, no.4, pp.177-195,197
It can be solved by applying 5). However, there is no way to resolve data dependencies, which is also called "true dependencies". In other words, data dependencies are a very serious problem that hinders improving instruction level parallelism.

【0003】ここで、データ依存関係の具体例として、
図6に示すような命令シーケンスについて説明する。理
解を容易にするためにf1−f4の各オペレーションのソ
ースオペランドをそれぞれ1つに限定する。実行レイテ
ンシは、命令I1を除いて1と仮定する。命令I1は、
例えばデータキャッシュミスを発生したロード命令であ
り、そのレイテンシを4と仮定する。
Here, as a specific example of the data dependency,
An instruction sequence as shown in FIG. 6 will be described. For ease of understanding, the source operand of each of the operations f 1 -f 4 is limited to one. The execution latency is assumed to be 1 except for the instruction I1. Instruction I1 is:
For example, it is assumed that the load instruction is a load instruction in which a data cache miss has occurred, and its latency is 4.

【0004】図6の命令シーケンスには2つのデータ依
存関係が存在する。一つは命令I1と命令I3の間であ
り、もう一つは命令I3と命令I4の間である。データ
依存関係が存在する場合には、後続の命令は先行する命
令の終了を待たなければ演算を実行することができな
い。この例では、命令I3は命令I1が終了しなければ
演算を開始できないし、命令I4は命令I3が終了しな
ければ演算を開始できない。したがって、従来例ではデ
ータ依存のために演算が停止している命令を追い越し
て、データ依存の関係にない命令を先に実行している。
この操作は動的な命令スケジューリングと呼ばれてお
り、リザベーションステーション(R.M.Tomasulo, An E
ffecient Algorithm for Exploiting Multiple Arithme
tic Units, IBMJournal, vol.11, pp.25-33, 1967)な
どを用いて構成される命令ウインドウによって実現され
る。
There are two data dependencies in the instruction sequence of FIG. One is between instruction I1 and instruction I3, and the other is between instruction I3 and instruction I4. If there is a data dependency, the subsequent instruction cannot execute the operation without waiting for the end of the preceding instruction. In this example, the instruction I3 cannot start the operation unless the instruction I1 ends, and the instruction I4 cannot start the operation until the instruction I3 ends. Therefore, in the conventional example, an instruction that is not dependent on data is executed first, overtaking an instruction whose operation is stopped due to data dependence.
This operation is called dynamic instruction scheduling, and is performed by the reservation station (RMTomasulo, An E
ffecient Algorithm for Exploiting Multiple Arithme
tic Units, IBM Journal, vol. 11, pp. 25-33, 1967).

【0005】図7にレジスタ更新ユニット(G.S.Sohi,
Instruction Issue Logic for High-Performance, Int
erruptible, Multiple Functional Unit, Pipelined Co
mputers, IEEE Trans. on Computers, vol.39, no.3, p
p.349-359, 1990)を用いて構成される命令ウインドウ
(複数存在している)の1エントリを示す。命令ウイン
ドウの各エントリは、2つのソースオペランドフィール
ド(Source Operand1,2 )100(110)、デスティ
ネーションフィールド(Destination)120、ディス
パッチビット(Dispatched)130、機能ユニットフィ
ールド(Functional Unit)140、実行ビット(Execu
ted)150、そしてプログラムカウンタフィールド(P
rogram Counter)180から構成される。
FIG. 7 shows a register update unit (GSSohi,
Instruction Issue Logic for High-Performance, Int
erruptible, Multiple Functional Unit, Pipelined Co
mputers, IEEE Trans.on Computers, vol.39, no.3, p
p. 349-359, 1990) shows one entry of an instruction window (a plurality of which exist). Each entry in the instruction window includes two source operand fields (Source Operand1,2) 100 (110), a destination field (Destination) 120, a dispatch bit (Dispatched) 130, a functional unit field (Functional Unit) 140, and an execution bit ( Execu
ted) 150 and the program counter field (P
rogram Counter) 180.

【0006】演算時にソースオペランドが得られない時
には、レディビット(Ready)101(111)がリセ
ットされ、ソースオペランドが利用不可能であることを
示す。同時に、そのソースオペランドを示すタグ(Ta
g)102(112)がセットされる。オペランドが利
用可能になると、ソースレジスタの値がContentフィー
ルド103(113)にセットされ、レディビット10
1(111)がセットされる。タグ情報を伴ったデステ
ィネーションレジスタ番号はディスティネーションフィ
ールド120のRegisterフィールド121に保持され、
命令の実行結果はContentフィールド122に保存され
る。ディスパッチビット130は機能ユニットフィール
ド140で指定される機能ユニットに命令がディスパッ
チされているかどうかを示す。実行ビット150は命令
が完了するとセットされる。実行ビット150がセット
されていると、この命令とデータ依存関係にある後続命
令はディスパッチ可能になる。プログラムカウンタフィ
ールド180は、分岐予測失敗からのプロセッサ状態の
回復や、正確な割り込みを実現するために用いられる。
When the source operand is not obtained during the operation, the ready bit (Ready) 101 (111) is reset to indicate that the source operand is not available. At the same time, a tag (Ta
g) 102 (112) is set. When the operand becomes available, the value of the source register is set in the content field 103 (113), and the ready bit 10
1 (111) is set. The destination register number accompanying the tag information is held in the Register field 121 of the destination field 120,
The execution result of the instruction is stored in the content field 122. Dispatch bit 130 indicates whether an instruction has been dispatched to the functional unit specified in functional unit field 140. Execute bit 150 is set when the instruction is completed. If the execute bit 150 is set, subsequent instructions that have a data dependency with this instruction can be dispatched. The program counter field 180 is used for recovering the processor state from a branch prediction failure and realizing an accurate interrupt.

【0007】レジスタ更新ユニットには、各命令がプロ
グラムに現れた順に登録される。先行する命令が演算を
終了すると、演算結果(122)とデスティネーション
レジスタ番号(121)が放送される。後続の命令はデ
スティネーションレジスタ番号(121)を観測し、ソ
ースオペランドダグ101(111)と一致した場合に
はその演算結果をソースオペランド103(113)と
して取り込む。命令は、全てのソースオペランドが揃う
と実行可能になる。先行する命令が未だ実行を終えてい
なくても、追い越して実行可能となる。
Each instruction is registered in the register update unit in the order in which the instructions appear in the program. When the preceding instruction finishes the operation, the operation result (122) and the destination register number (121) are broadcast. Subsequent instructions observe the destination register number (121), and if they match the source operand doug 101 (111), fetch the operation result as the source operand 103 (113). An instruction becomes executable when all source operands are available. Even if the preceding instruction has not completed execution, it can be overtaken and executed.

【0008】図8に、データ依存関係にある演算を実行
する従来のプロセッサの構成ブロック図を示す。このプ
ロセッサは、命令メモリ(I cache)200、レジスタ
ファイル(Register File)210、命令スケジューリ
ング装置としての命令ウインドウ(Instruction Windo
w)220、演算ユニット(FU)240〜243、そし
てデータメモリ(D cache)250から構成されてい
る。
FIG. 8 is a block diagram showing a configuration of a conventional processor which executes an operation having a data dependency. This processor includes an instruction memory (I cache) 200, a register file (Register File) 210, and an instruction window (Instruction Window) as an instruction scheduling device.
w) 220, operation units (FU) 240 to 243, and a data memory (D cache) 250.

【0009】プロセッサは命令メモリ200から命令を
フェッチし、命令ウインドウ220に登録する。ソース
オペランドはレジスタファイル210あるいは命令ウイ
ンドウ220から読み出されるが、ソースオペランドを
レジスタファイル210から獲得できない場合には、先
行する命令の終了を待って、演算ユニット240〜24
3の結果を取り込む。ソースオペランドの揃った命令は
演算ユニット240〜243に発行される。演算ユニッ
ト240〜243での演算結果は、命令ウインドウ22
0を通じてレジスタファイル210に書き込まれる。
The processor fetches an instruction from the instruction memory 200 and registers it in the instruction window 220. The source operand is read from the register file 210 or the instruction window 220. If the source operand cannot be obtained from the register file 210, the operation units 240 to 24 wait until the preceding instruction is completed.
Capture the result of 3. The instruction having the source operands is issued to the operation units 240 to 243. The operation results in the operation units 240 to 243 are stored in the instruction window 22
0 is written to the register file 210.

【0010】図9に、図6の命令シーケンスを実行した
場合の命令スケジューリングの例を示す。図9は図7に
示す命令ウインドウのエントリを簡略化したもので、説
明に必要なフィールドのみを表している。ここで、“s
rc”はソースオペランドのタグ、“r”はレディビッ
ト、“dest”はデスティネーションのレジスタ、
“d”はディスパッチビット、“e”は実行ビットをそ
れぞれ示している。このうち、r、d、eのフィールド
にチェックマークがあるときは、ビットがセットされた
ことを示している。
FIG. 9 shows an example of instruction scheduling when the instruction sequence shown in FIG. 6 is executed. FIG. 9 is a simplified version of the instruction window entry shown in FIG. 7, and shows only the fields necessary for the description. Here, "s
“rc” is the tag of the source operand, “r” is the ready bit, “dest” is the destination register,
“D” indicates a dispatch bit, and “e” indicates an execution bit. Of these, when there is a check mark in the r, d, and e fields, it indicates that the bit has been set.

【0011】さらに、説明を簡単にするために以下の仮
定をしている。プロセッサのフェッチ幅とディスパッチ
幅は、ともに1とする。命令のコミットは省略する。ま
た、タグ情報を含んだデスティネーションレジスタ番号
は、アーキテクチャレジスタ番号と同じであると仮定す
る。レジスタ(r1)とレジスタ(r2)は、すでに利
用可能になっているとする。また、データ依存のために
演算が停止している命令を追い越す操作はないものとす
る。以上の仮定に基づいて命令スケジューリングを説明
する。
Further, the following assumptions are made to simplify the explanation. The fetch width and the dispatch width of the processor are both set to 1. Instruction commit is omitted. It is also assumed that the destination register number including the tag information is the same as the architecture register number. It is assumed that the register (r1) and the register (r2) are already available. It is also assumed that there is no operation to overtake an instruction whose operation has been stopped due to data dependence. Instruction scheduling will be described based on the above assumptions.

【0012】まず、最初のサイクルで命令I1がイシュ
ー(発行)される。ソースオペランドタグr1とデステ
ィネーションレジスタタグr11が、該当するフィール
ドに保持される。r1は利用可能であるのでレデイビッ
ト(r)がセットされる。さらに命令I1はディスパッ
チされ、ディスパッチビット(d)もセットされる
(a.)。次のサイクルで、命令I2がイシューおよび
ディスパッチされる(b.)。続くサイクルで命令I3
がイシューされる。ここで、命令I3のソースオペラン
ドr11を生成する命令I1の実行ビット(e)はセッ
トされていないので、命令I3はディスパッチ不可能で
ある。同じサイクルで、演算を終了した命令I2はr1
2に演算結果を書き戻し、実行ビット(e)をセットす
る(c.)。ここで得られたソースオペランドr12
は、命令I3が必要としているr11に一致しないので
命令I3の演算には利用されない。図中の点線で表した
矢印は、ソースオペランドタグとデスティネーションタ
グが一致しなかったことを表している。次のサイクルで
は命令I4がイシューされる。r13は未だ利用できな
いのでディスパッチされない(d.)。次のサイクルで
命令I1が演算を終了し、r11に演算結果を書き戻し
て実行ビット(e)をセットする。r11は命令I3が
必要としているソースオペランドであるため、命令I3
はディスパッチされる。図中の太線で表した矢印は、ソ
ースオペランドタグとデスティネーションタグが一致し
たことを表している(e.)。続いて、次のサイクルで
命令I3が演算を終了し、r13が利用可能になってい
るので、命令I4はディスパッチされる(f.)。最後
のサイクルで命令I4の実行が終り(g.)、図6の命
令シーケンスが終了する。
First, an instruction I1 is issued (issued) in a first cycle. The source operand tag r1 and the destination register tag r11 are held in the corresponding fields. Since r1 is available, the ready bit (r) is set. Further, the instruction I1 is dispatched, and the dispatch bit (d) is also set (a.). In the next cycle, instruction I2 is issued and dispatched (b.). In the following cycle, the instruction I3
Is issued. Since the execution bit (e) of the instruction I1 that generates the source operand r11 of the instruction I3 is not set, the instruction I3 cannot be dispatched. In the same cycle, the instruction I2 that has completed the operation is r1
2, the operation result is written back, and the execution bit (e) is set (c.). Source operand r12 obtained here
Is not used for the operation of the instruction I3 because it does not match r11 required by the instruction I3. Arrows represented by dotted lines in the figure indicate that the source operand tag and the destination tag did not match. In the next cycle, instruction I4 is issued. Since r13 is not yet available, it is not dispatched (d.). In the next cycle, the instruction I1 terminates the operation, writes the operation result back to r11, and sets the execution bit (e). Since r11 is a source operand required by the instruction I3, the instruction I3
Is dispatched. The arrow indicated by the thick line in the figure indicates that the source operand tag and the destination tag match (e.). Subsequently, in the next cycle, the operation of the instruction I3 is completed, and the instruction I4 is dispatched (f.) Because r13 is available. The execution of the instruction I4 ends in the last cycle (g.), And the instruction sequence in FIG. 6 ends.

【0013】[0013]

【発明が解決しようとする課題】上述した命令スケジュ
ーリングの例では、命令I1の演算結果を命令I3のソ
ースオペランドr11として使用しているため、命令I
1の演算が終了するまで命令I3を実行することはでき
ない。同様に、命令I4も命令I3の演算が終了しない
と演算を開始することはできない。このように、データ
依存関係が存在するような命令シーケンスの実行におい
ては、先行する命令の演算が終了するまでの待ち時間が
生じるため、プロセッサの性能を十分に発揮することが
できないという問題点があった。
In the above example of the instruction scheduling, the operation result of the instruction I1 is used as the source operand r11 of the instruction I3.
The instruction I3 cannot be executed until the operation of 1 is completed. Similarly, the operation of the instruction I4 cannot be started unless the operation of the instruction I3 is completed. As described above, in the execution of an instruction sequence in which a data dependency exists, there is a waiting time until the operation of the preceding instruction is completed, so that the performance of the processor cannot be sufficiently exhibited. there were.

【0014】なお、データ依存関係の問題を解決するた
め、Lipastiらは演算結果を予測し、データ依存関係を
投機的に解決する方法を提案している(M.H.Lipasti,
J.P.Shen, Exceeding the Dataflow Limit via Value P
rediction Proc. of the 29thAnn. Int'l Symp. on Mic
roarchitecture, pp.226-237, 1996)。演算に時間のか
かる命令の演算結果を後の演算で使用する場合は、上記
のような手法で演算結果を予測し、この結果を使って演
算を行う。後に、予測結果と実際の演算結果とが一致し
ていれば、データ依存関係を投機的に解決できたことに
なる。
In order to solve the problem of data dependency, Lipasti et al. Have proposed a method of predicting the operation result and speculatively solving the data dependency (MHLipasti,
JPShen, Exceeding the Dataflow Limit via Value P
rediction Proc. of the 29thAnn.Int'l Symp. on Mic
roarchitecture, pp.226-237, 1996). When the operation result of an instruction that requires a long time for the operation is used in the subsequent operation, the operation result is predicted by the method described above, and the operation is performed using the result. Later, if the prediction result matches the actual calculation result, it means that the data dependency has been speculatively resolved.

【0015】ところで、上記の提案は演算結果を予測す
るための手法を示したものにすぎず、命令ウインドウの
具体的な実現手法については何ら触れていない。したが
って、データ依存関係の投機的な解決を実現するために
は、そのための動的な命令スケジューリングを行う新た
な命令ウインドウを構築する必要があった。
The above proposal merely shows a method for predicting the operation result, but does not mention a specific method for realizing the instruction window. Therefore, in order to realize the speculative solution of the data dependency, it is necessary to construct a new instruction window for performing dynamic instruction scheduling.

【0016】この発明の目的は、データ依存関係の投機
的な解決を実現することにより、プロセッサの性能を向
上させることができる命令スケジューリング装置を提供
することにある。
An object of the present invention is to provide an instruction scheduling apparatus capable of improving the performance of a processor by realizing a speculative solution of data dependency.

【0017】[0017]

【課題を解決するための手段】上記課題を解決するた
め、請求項1の発明は、プロセッサの動的な命令スケジ
ューリングに用いれられる命令スケジューリング装置に
おいて、演算に必要なソースオペランドの値を予測する
データ予測手段を備えるとともに、複数の命令を保持す
るためのエントリを複数備え、各エントリに、ソースオ
ペランドの値が前記データ予測手段により予測された値
であることを表すフィールドを設けたことを特徴とす
る。
In order to solve the above-mentioned problems, an invention according to a first aspect of the present invention is directed to an instruction scheduling apparatus used for dynamic instruction scheduling of a processor, wherein data for predicting a value of a source operand required for an operation is provided. A plurality of entries for holding a plurality of instructions, each entry having a field indicating that the value of the source operand is the value predicted by the data prediction unit. I do.

【0018】請求項2の発明は、請求項1の発明におい
て、前記各エントリは、少なくとも、ソースオペランド
に関する情報を保持するフィールド、演算結果に関する
情報を保持するフィールド、演算中を表すフィールド、
命令が発行された演算ユニットを表すフィールド、実行
終了を表すフィールド、ソースオペランドが予測された
値であることを表すフィールド、プログラムカウンタを
保持するフィールドを持ち、先に演算が実行された命令
とデータ依存関係にある後続の命令の実行時に、前記実
行終了を表すフィールド又はソースオペランドが予測さ
れた値であることを表すフィールドのいずれか一方がセ
ットされている場合は、前記演算結果に関する情報を保
持するフィールドに保持されているデータ値を使って演
算を開始することを特徴とする。
According to a second aspect of the present invention, in the first aspect of the present invention, each of the entries includes at least a field for storing information about a source operand, a field for storing information about an operation result, a field indicating that an operation is being performed,
A field that indicates the operation unit where the instruction was issued, a field that indicates the end of execution, a field that indicates that the source operand is the predicted value, and a field that holds the program counter. At the time of execution of a subsequent instruction having a dependency, if either the field indicating the end of the execution or the field indicating that the source operand is a predicted value is set, information on the operation result is retained. The operation is started by using the data value held in the field to be operated.

【0019】請求項3の発明は、請求項1又は2の発明
において、ソースオペランドの予測に失敗した場合に
は、失敗した命令以降の命令をすべて破棄することを特
徴とする。
According to a third aspect of the present invention, in the first or second aspect of the present invention, when the prediction of the source operand fails, all instructions following the failed instruction are discarded.

【0020】請求項4の発明は、請求項1又は2の発明
において、前記各エントリに、命令が再発行されたこと
を表すフィールドを設けたことを特徴とする。
According to a fourth aspect of the present invention, in the first or second aspect of the present invention, each entry is provided with a field indicating that the instruction has been reissued.

【0021】請求項5の発明は、請求項4の発明におい
て、ソースオペランドの予測に失敗した場合には、失敗
した命令とデータ依存関係にある命令を再発行すること
を特徴とする。
According to a fifth aspect of the present invention, in the invention of the fourth aspect, when the prediction of the source operand fails, an instruction having a data dependency with the failed instruction is reissued.

【0022】[0022]

【発明の実施の形態】以下、この発明に係わるプロセッ
サの命令スケジューリング装置の一実施形態について説
明する。なお、この実施形態では、図6の命令シーケン
スを実行した場合の命令スケジューリングを例とする。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of an instruction scheduling apparatus for a processor according to the present invention will be described below. In this embodiment, the instruction scheduling when the instruction sequence shown in FIG. 6 is executed is taken as an example.

【0023】[第1実施形態]この第1の実施形態の命
令ウインドウは、命令シーケンスにデータ依存関係が存
在する場合に、演算結果を予測して命令を実行(以下、
投機実行)し、後に予測に失敗した場合には、予測した
命令以降の演算結果を破棄し、あらためて命令を実行し
直す命令スケジューリングを実現するものである。
[First Embodiment] The instruction window of the first embodiment executes an instruction by predicting a calculation result when an instruction sequence has a data dependency (hereinafter referred to as an instruction window).
If the prediction fails later, the calculation result after the predicted instruction is discarded, and instruction scheduling for re-executing the instruction is realized.

【0024】この実施形態の命令ウインドウには、投機
実行に用いた予測データも保存される。投機実行された
命令が演算を終了すると、その結果の値と予測データの
比較が行なわれる。もし両者が一致していれば投機実行
は成功である。また、一致しなかった場合には、プロセ
ッサの状態を投機前の状態に戻す必要がある。ここで
は、間違った予測をしたロード命令以降の命令をすべて
破棄し、その命令から実行を再開する。
The instruction window of this embodiment also stores prediction data used for speculative execution. When the speculatively executed instruction ends the operation, the value of the result is compared with the prediction data. If they match, the speculative execution is successful. If they do not match, it is necessary to return the state of the processor to the state before speculation. Here, all instructions following the load instruction that made an incorrect prediction are discarded, and execution is resumed from that instruction.

【0025】図1は、レジスタ更新ユニットを拡張した
命令ウインドウを示したもので、図7と同等部分を同一
符号で示している。命令ウインドウの各エントリは、2
つのソースオペランドフィールド(Source Operand1,
2)100(110)、デスティネーションフィールド
(Destination)120、ディスパッチビット(Dispatc
hed)130、機能ユニットフィールド(Functional Un
it)140、実行ビット(Executed)150、予測ビッ
ト(Predicted)160、そしてプログラムカウンタフ
ィールド(Program Counter)180から構成される。
FIG. 1 shows an instruction window in which the register update unit is expanded, and the same parts as those in FIG. 7 are denoted by the same reference numerals. Each entry in the instruction window is 2
Source Operand1,
2) 100 (110), destination field (Destination) 120, dispatch bit (Dispatc
hed) 130, Functional unit field (Functional Un
It) 140, an execution bit (Executed) 150, a prediction bit (Predicted) 160, and a program counter field (Program Counter) 180.

【0026】演算時にソースオペランドが得られない時
には、レディビット(Ready)101(111)がリセ
ットされ、ソースオペランドが利用不可能であることを
示す。同時に、そのオペランドを示すタグ(Tag)10
2(112)がセットされる。オペランドが利用可能に
なると、ソースレジスタの値がContentフィールド10
3(113)にセットされ、レディビット101(11
1)がセットされる。タグ情報を伴ったデスティネーシ
ョンレジスタ番号はディステイネーションフィールド1
20のRegisterフィールド121に保持され、命令の実
行結果はContentフィールド122に保存される。またC
ontentフィールド122は、投機実行に用いられたデー
タを保持する目的でも使用される。ディスパッチビット
130は機能ユニットフィールド140で指定される機
能ユニットと命令がディスパッチされているかどうかを
示す。実行ビット150は命令が完了するとセットされ
る。予測ビット160は、ディステイネーションフィー
ルド120のContentフィールド122に保持されてい
る値が予測された値か否かを示している。前記実行ビッ
ト150あるいは予測ビット160のどちらか一方がセ
ットされていると、この命令とデータ依存関係にある後
続命令はディスパッチ可能になる。そして、実際の演算
結果が得られると、予測された値と実際の値は比較さ
れ、投機実行の成功/失敗が判定される。実際の値はデ
ィステイネーションフィールド120のContentフィー
ルド122に保存され、予測ビット160はリセットさ
れる。最後にプログラムカウンタフィールド180は、
分岐予測及びデータ予測失敗からのプロセッサ状態の回
復や、正確な割り込みを実現するために用いられる。
When the source operand is not obtained during the operation, the ready bit (Ready) 101 (111) is reset to indicate that the source operand is unavailable. At the same time, a tag (Tag) 10 indicating the operand
2 (112) is set. When the operand becomes available, the value of the source register is
3 (113) and the ready bit 101 (11
1) is set. The destination register number accompanied by the tag information is the destination field 1
20 are stored in a Register field 121, and the execution result of the instruction is stored in a Content field 122. Also C
The ontent field 122 is also used for the purpose of holding data used for speculative execution. Dispatch bit 130 indicates whether the functional unit and instruction specified in functional unit field 140 have been dispatched. Execute bit 150 is set when the instruction is completed. The prediction bit 160 indicates whether the value held in the content field 122 of the destination field 120 is a predicted value. If either the execution bit 150 or the prediction bit 160 is set, a subsequent instruction having a data dependency with this instruction can be dispatched. Then, when the actual calculation result is obtained, the predicted value and the actual value are compared, and the success / failure of the speculative execution is determined. The actual value is stored in the content field 122 of the destination field 120, and the prediction bit 160 is reset. Finally, the program counter field 180
It is used to recover the processor state from branch prediction and data prediction failure, and to realize an accurate interrupt.

【0027】図2は、データ依存関係にある演算を投機
実行するプロセッサの構成ブロック図である。このプロ
セッサは、命令メモリ200、レジスタファイル21
0、命令スケジューリング装置としての命令ウインドウ
221、データ予測装置(Pred)230、演算ユニット
240〜243、そしてデータメモリ250から構成さ
れている。
FIG. 2 is a block diagram showing the configuration of a processor for speculatively executing an operation having a data dependency. The processor includes an instruction memory 200, a register file 21
0, an instruction window 221 as an instruction scheduling device, a data prediction device (Pred) 230, operation units 240 to 243, and a data memory 250.

【0028】プロセッサは命令メモリ200から命令を
フェッチし、命令ウインドウ221に登録する。ソース
オペランドはレジスタファイル210あるいは命令ウイ
ンドウ221から読み出されるが、レジスタファイル2
10から獲得できない場合には、データ予測装置230
によってソースオペランドを予測する。データ予測装置
230としては、公知の予測装置を用いることができる
(例えば、M.H.Lipasti, J.P.Shen, Exceeding the Dat
aflow Limit via Value Prediction Proc. ofthe 29th
Ann. Int'l Symp. on Microarchitecture, pp.226-237,
1996)。ここでは、データ予測装置230の構成、動
作については説明を省略する。
The processor fetches an instruction from the instruction memory 200 and registers it in the instruction window 221. The source operand is read from the register file 210 or the instruction window 221.
If it is not possible to obtain from the number 10, the data prediction device 230
Predicts the source operand. A known prediction device can be used as the data prediction device 230 (for example, MHLipasti, JPShen, Exceeding the Dat
aflow Limit via Value Prediction Proc. ofthe 29th
Ann. Int'l Symp. On Microarchitecture, pp.226-237,
1996). Here, the description of the configuration and operation of the data prediction device 230 is omitted.

【0029】ソースオペランドの予測ができない場合に
は、従来と同様に先行する命令の終了を待って、演算ユ
ニット240〜243の結果を取り込む。ソースオペラ
ンドの揃った命令は演算ユニット240〜243に発行
される。演算結果は命令ウインドウ221を通じてレジ
スタファイアル210に書き込まれる。
If the source operand cannot be predicted, the results of the arithmetic units 240 to 243 are fetched after the completion of the preceding instruction as in the conventional case. The instruction having the source operands is issued to the operation units 240 to 243. The operation result is written to the register file 210 through the instruction window 221.

【0030】図3に、図6の命令シーケンスを実行した
場合の命令スケジューリングの例を示す。図3は、図1
に示す命令ウインドウのエントリを簡略化したもので、
図9と同等部分を同一符号で表している。図3の“p”
は新たに追加された予測ビット(Predicted)160の
エントリを示している。
FIG. 3 shows an example of instruction scheduling when the instruction sequence of FIG. 6 is executed. FIG.
Is a simplified version of the instruction window entry shown in
9 are denoted by the same reference numerals. "P" in FIG.
Indicates an entry of a newly added predicted bit (Predicted) 160.

【0031】次に、第1の実施形態における命令スケジ
ューリングを説明する。ただし、説明を簡単にするため
に、図9の例と同じ仮定をする。ただし、ここでは命令
I1だけがデータ値を予測できるとする。
Next, instruction scheduling in the first embodiment will be described. However, for the sake of simplicity, the same assumption is made as in the example of FIG. Here, it is assumed that only the instruction I1 can predict the data value.

【0032】まず最初のサイクルで命令I1がイシュー
される。ソースオペランドタグr1とデスティネーショ
ンレジスタタグr11が、該当するフィールドに保持さ
れる。r1は利用可能であるのでレディビット(r)が
セットされる。さらに命令I1はディスパッチされ、デ
ィスパッチビット(d)もセットされる。命令I1では
r11の値が予測され、予測ビット(p)がセットされ
る(a.)。次のサイクルで、命令I2がイシューおよ
びディスパッチされる(b.)。続くサイクルで命令I
3がイシューされる。ここで、命令I3のソースオペラ
ンドr11を生成する命令I1には予測ビット(p)が
セットされているので、命令I3はディスパッチ可能で
ある。同じサイクルで、命令I2はr12に演算結果を
書き戻し、実行ビット(e)をセットする(c.)。こ
こで得られたソースオペランドr12は、命令I3が必
要としているr11に一致しないので利用されない。次
のサイクルでは命令I4がイシューされる。命令I3が
演算を終了しr13が利用可能になっているので、命令
I4はディスパッチされる(d.)。次のサイクルには
2通りの場合が考えられる。命令I1の予測が成功した
場合(correct)と、失敗した場合(fail)である。
First, an instruction I1 is issued in the first cycle. The source operand tag r1 and the destination register tag r11 are held in the corresponding fields. Since r1 is available, the ready bit (r) is set. Further, the instruction I1 is dispatched, and the dispatch bit (d) is also set. In the instruction I1, the value of r11 is predicted, and the prediction bit (p) is set (a.). In the next cycle, instruction I2 is issued and dispatched (b.). In the following cycle, instruction I
3 is issued. Here, since the prediction bit (p) is set in the instruction I1 for generating the source operand r11 of the instruction I3, the instruction I3 can be dispatched. In the same cycle, the instruction I2 writes the operation result back to r12 and sets the execution bit (e) (c.). The source operand r12 obtained here does not match r11 required by the instruction I3 and is not used. In the next cycle, instruction I4 is issued. The instruction I4 is dispatched (d.) Because the instruction I3 has completed the operation and r13 is available. There are two cases for the next cycle. The case where the prediction of the instruction I1 is successful (correct) and the case where the prediction is failed (fail).

【0033】r11の予測に成功した場合、命令I1は
予測ビット(p)をリセットし、実行ビット(e)をセ
ットする。同じサイクルで命令I4が演算を終了し、や
はり実行ビット(e)をセットする(e.)。以上でシ
ーケンスは終了する。一方r11の予測に失敗した場合
は、命令I2〜I4は破棄されなければならない。命令
I1の実行ビット(e)をセットし、プロセッサは命令
I2のフェッチから実行を再開する(f.)。
If the prediction of r11 succeeds, the instruction I1 resets the prediction bit (p) and sets the execution bit (e). In the same cycle, instruction I4 completes the operation and also sets execution bit (e) (e.). This ends the sequence. On the other hand, if the prediction of r11 fails, the instructions I2 to I4 must be discarded. The execution bit (e) of the instruction I1 is set, and the processor resumes the execution from the fetch of the instruction I2 (f.).

【0034】したがって、この第1の実施形態の命令ス
ケジューリングでは、予測に成功した場合は命令シーケ
ンスを4サイクルで完了することができるため、図9の
従来例よりも少ないサイクル数で演算を終了することが
できる。しかし、予測に失敗した場合は以下のミスペナ
ルティを被ることになる。すなわち、上述した間違った
投機実行による4サイクル、命令を破棄するためのサイ
クル、そして命令を再フェッチするためのサイクルであ
る。
Therefore, in the instruction scheduling of the first embodiment, if the prediction is successful, the instruction sequence can be completed in four cycles, and the operation is completed in a smaller number of cycles than in the conventional example of FIG. be able to. However, if the prediction fails, the following miss penalty will be incurred. That is, four cycles due to the above-described incorrect speculative execution, a cycle for discarding an instruction, and a cycle for refetching an instruction.

【0035】[第2実施形態]上記第1の実施形態の命
令スケジューリングでは、予測に失敗した場合に、デー
タ依存関係のない命令についても、すべて計算をやり直
していた。この第2の実施形態の命令ウインドウは、上
記第1の実施形態のような演算結果の予想に加えて、予
測に失敗した命令とデータ依存関係にある命令を検出
し、その命令のみを再計算する命令スケジューリングを
実現するものである。
[Second Embodiment] In the instruction scheduling according to the first embodiment, when the prediction fails, all the instructions having no data dependency are recalculated. The instruction window of the second embodiment detects, in addition to the prediction of the operation result as in the first embodiment, an instruction that has a data dependency with the instruction whose prediction failed, and recalculates only that instruction. This implements instruction scheduling.

【0036】図4は、図1に示したレジスタ更新ユニッ
トをさらに拡張して命令再発行を可能にした命令ウイン
ドウを示したもので、図1と同等部分を同一符号で示し
ている。命令ウインドウの各エントリには、図1の構成
に加えて、さらに再発行ビット(Reissued)170が付
加されている。この再発行ビット170は、対応する命
令が再発行されたこと、すなわち再計算される命令であ
ることを表している。第1の実施形態と同様に、予測さ
れたデータ値は Contentフィールド122に保持され
る。命令が終了し結果が得られると、従来の命令スケジ
ューリングと同様にデスティネーションタグと実行結果
が放送される。同時に予測の成功/失敗を表す信号も放
送される(以後、この信号を再発行信号と呼ぶ)。
FIG. 4 shows an instruction window in which the register update unit shown in FIG. 1 is further extended to enable reissuing of instructions, and the same parts as those in FIG. 1 are denoted by the same reference numerals. Each entry of the instruction window has a reissued bit (Reissued) 170 added to the configuration of FIG. The reissue bit 170 indicates that the corresponding instruction has been reissued, that is, the instruction to be recalculated. As in the first embodiment, the predicted data value is held in the content field 122. When the instruction is completed and the result is obtained, the destination tag and the execution result are broadcast as in the conventional instruction scheduling. At the same time, a signal indicating the success / failure of the prediction is also broadcasted (hereinafter, this signal is referred to as a reissue signal).

【0037】予測に成功した場合は従来のスケジューリ
ングと同様に、デスティネーションタグ121とソース
オペランドタグ101(111)の一致した後続の命令
がディスパッチ可能となる。一方、予測に失敗した時に
は、デスティネーションタグ121とソースオペランド
タグ101(111)の一致した命令は再発行の対象と
なる。タグの一致した命令のディスパッチビット130
がすでにセットされている場合には、その命令は誤った
ソースオペランドを用いて演算を実行しているため、再
発行されなければならない。この場合、ディスパッチビ
ット130と実行ビット150はリセットされ、再発行
ビット170がセットされる。再発行された命令の実行
が終了した場合にも再発行信号が放送される。したがっ
て再発行信号は、データ値の予測に失敗した命令あるい
は再発行された命令が実行を終了したことを表してい
る。以降は上述した第1の実施形態と同様に、タグの一
致し、かつディスパッビット130のセットされた命令
が再発行される。こうして、再発行されなければならな
い命令が順に検出されることになる。
If the prediction is successful, the subsequent instruction in which the destination tag 121 matches the source operand tag 101 (111) can be dispatched, as in the conventional scheduling. On the other hand, when the prediction fails, the instruction in which the destination tag 121 and the source operand tag 101 (111) match becomes a target of reissue. Dispatch bit 130 of the instruction with the matched tag
Is already set, the instruction is performing an operation with the wrong source operand and must be reissued. In this case, the dispatch bit 130 and the execution bit 150 are reset, and the reissue bit 170 is set. A reissue signal is also broadcast when execution of the reissued instruction ends. Therefore, the reissue signal indicates that the instruction whose data value has failed to be predicted or the reissued instruction has finished executing. Thereafter, similarly to the above-described first embodiment, the instruction whose tag matches and whose dispatch bit 130 is set is reissued. Thus, instructions that must be reissued are detected in order.

【0038】図5に、図6の命令シーケンスを実行した
場合の命令再発行を含む命令スケジーリングの例を示
す。図5は、図3と同じく図1に示す命令ウインドウの
エントリを簡略化したもので、図9と同等部分を同一符
号で表している。図5の“i”は新たに追加された再発
行ビット(Reissued)170のエントリを示している。
FIG. 5 shows an example of instruction scheduling including instruction reissue when the instruction sequence of FIG. 6 is executed. FIG. 5 is a simplified version of the entry in the instruction window shown in FIG. 1 as in FIG. 3, and the same parts as those in FIG. 9 are denoted by the same reference numerals. “I” in FIG. 5 indicates an entry of a newly added reissued bit (Reissued) 170.

【0039】次に、第2の実施形態における命令スケジ
ューリングを説明する。プロセッサの構成は図2とほぼ
同じであるため説明を省略する。また、説明を簡単にす
るために、第1の実施形態と同じ仮定をする。さらに、
命令I1の実行が終了するまで(a.)〜(c.)は図
2での説明と同様であるので省略し、4サイクル
(d.)以降から説明する。
Next, the instruction scheduling in the second embodiment will be described. The configuration of the processor is substantially the same as that of FIG. For the sake of simplicity, the same assumptions as in the first embodiment are made. further,
Until the execution of the instruction I1 is completed, (a.) To (c.) Are the same as those described with reference to FIG.

【0040】r11の予測に成功した場合、命令I1は
予測ビット(p)をリセットし、実行ビット(e)をセ
ットする。同じサイクルで命令I4が演算を終了し、や
はり実行ビット(e)をセットする(e.)。以上でシ
ーケンスは終了する。一方r11の予測に失敗した時に
は、再発行信号が放送され、データ依存関係にある命令
の再発行が開始される。すなわち、タグの一致した命令
I3は間違ったソースオペランドを用いてすでにディス
パッチされているので、再発行の対象となり再発行ビッ
ト(i)がセットされる。命令I3は再び発行されディ
スパッチビット(d)がセットされる(f.)。次のサ
イクルで命令I3は終了し、実行ビット(e)をセット
して再発行ビット(i)をリセットする。同時に再発行
信号が放送される。前のサイクルと同様にして、続く命
令I4が再発行の対象として検出され、再発行ビット
(i)がセットされる(g.)。次のサイクルで命令I
4は終了し(h.)、実行ビット(e)をセットして再
発行ビット(i)をリセットする。この命令シーケンス
は7サイクルで完了する。
If the prediction of r11 succeeds, the instruction I1 resets the prediction bit (p) and sets the execution bit (e). In the same cycle, instruction I4 completes the operation and also sets execution bit (e) (e.). This ends the sequence. On the other hand, when the prediction of r11 fails, a reissue signal is broadcast, and reissuance of an instruction having a data dependency relationship is started. That is, since the instruction I3 with the matching tag has already been dispatched using the wrong source operand, the instruction I3 is to be reissued and the reissue bit (i) is set. The instruction I3 is issued again and the dispatch bit (d) is set (f.). In the next cycle, instruction I3 ends, sets execution bit (e) and resets reissue bit (i). At the same time, a reissue signal is broadcast. In the same manner as in the previous cycle, the subsequent instruction I4 is detected as a reissue target and the reissue bit (i) is set (g.). Instruction I in the next cycle
4 ends (h.), Sets the execution bit (e) and resets the reissue bit (i). This instruction sequence is completed in seven cycles.

【0041】したがって、この第2の実施形態の命令ス
ケジューリングでは、データ値の予測に失敗した場合に
必要なサイクル数は、従来例で説明したデータ依存の投
機実行を行なわない場合に必要なサイクル数と同じとな
る。すなわち、投機に失敗した場合でも、データ依存関
係のない命令を含めたすべての命令について計算をやり
直すことがないので、ペナルティを必要最小限に抑える
ことができる。
Therefore, in the instruction scheduling of the second embodiment, the number of cycles required when the prediction of the data value fails is the number of cycles required when the data-dependent speculative execution described in the conventional example is not performed. Is the same as That is, even if the speculation fails, the calculation is not performed again for all the instructions including the instruction having no data dependency, so that the penalty can be minimized.

【0042】この第2の実施形態の命令ウインドウは、
図7に示す従来の命令ウインドウと比較して再発行信号
が一本増え、かつエントリが2ビット分増えている。ま
た、再発行信号が出たときに、次の命令を実行するか、
あるいはやり直すかを判定する回路が必要となるが、従
来例に比べてハードウエアの大幅な増加を招くことがな
く、また予測に失敗した場合もサイクル数の延長を招く
ことがない。すなわち、命令の再発行は比較的規模の小
さなハードウエアで、かつサイクル数に大きな影響をお
よぼさない範囲で実現することができる。
The instruction window of the second embodiment is as follows:
Compared with the conventional instruction window shown in FIG. 7, the number of reissue signals is increased by one and the number of entries is increased by 2 bits. When the reissue signal is issued, execute the next instruction or
Alternatively, a circuit for determining whether or not to start over is required. However, compared to the conventional example, there is no significant increase in hardware, and even if prediction fails, the number of cycles does not increase. In other words, the reissue of the instruction can be realized with relatively small-scale hardware and within a range that does not greatly affect the number of cycles.

【0043】[0043]

【発明の効果】以上説明したように、請求項1乃至5の
発明においては、演算に必要なソースオペランドの値を
予測し、この値を使ってデータ依存関係にある後続の命
令の演算を実行するようにしたので、データ依存関係が
ある命令シーケンスを実行した場合に、先行する命令の
演算が終了するまでの待ち時間を省くことができる。し
たがって、データ依存関係を投機的に解決することが可
能となり、プロセッサの性能を向上させることができ
る。
As described above, according to the first to fifth aspects of the present invention, the value of the source operand required for the operation is predicted, and the operation of the subsequent instruction having the data dependency is executed using this value. Thus, when an instruction sequence having a data dependency is executed, a waiting time until the operation of the preceding instruction is completed can be omitted. Therefore, it is possible to solve the data dependency speculatively and improve the performance of the processor.

【0044】とくに、請求項4及び5の発明において
は、ソースオペランドの予測に失敗した場合に、その失
敗した命令とデータ依存関係にある命令のみ再発行する
ようにしたので、失敗した命令以降の命令をすべてやり
直すのに比べて、再計算に必要なサイクル数を必要最小
限に抑えることができる。したがって、プロセッサの性
能をさらに向上させることができる。
In particular, in the inventions according to claims 4 and 5, when the prediction of the source operand fails, only the instruction having a data dependency with the failed instruction is reissued. The number of cycles required for recalculation can be minimized as compared to re-executing all instructions. Therefore, the performance of the processor can be further improved.

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

【図1】レジスタ更新ユニットを拡張した命令ウインド
ウを示す説明図。
FIG. 1 is an explanatory diagram showing an instruction window in which a register update unit is extended.

【図2】データ依存関係にある演算を投機実行するプロ
セッサの構成ブロック図。
FIG. 2 is a configuration block diagram of a processor that speculatively executes an operation having a data dependency relationship.

【図3】第1の実施形態における命令スケジューリング
の例を示す説明図。
FIG. 3 is an explanatory diagram illustrating an example of instruction scheduling according to the first embodiment.

【図4】レジスタ更新ユニットをさらに拡張した命令ウ
インドウを示す説明図。
FIG. 4 is an explanatory diagram showing an instruction window in which a register update unit is further extended;

【図5】第2の実施形態における命令再発行を含む命令
スケジーリングの例を示す説明図。
FIG. 5 is an explanatory diagram showing an example of instruction scheduling including instruction reissuing in the second embodiment.

【図6】命令シーケンスの具体例を示す説明図。FIG. 6 is an explanatory diagram showing a specific example of an instruction sequence.

【図7】レジスタ更新ユニットを用いて構成される命令
ウインドウの1エントリを示す説明図。
FIG. 7 is an explanatory diagram showing one entry of an instruction window configured using a register update unit.

【図8】データ依存関係にある演算を実行する従来のプ
ロセッサの構成ブロック図。
FIG. 8 is a configuration block diagram of a conventional processor that executes an operation having a data dependency.

【図9】従来例における命令スケジューリングの例を示
す説明図。
FIG. 9 is an explanatory diagram showing an example of instruction scheduling in a conventional example.

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

100、110 ソースオペランドフィールド 101、111 レディビット 102、112 タグフィールド 103、113 オペランドフィールド 120 デスティネーションフィールド 121 デスティネーションレジスタフィールド 122 演算結果フィールド 130 ディスパッチビット 140 機能ユニットフィールド 150 実行ビット 160 予測ビット 170 再発行ビット 180 プログラムカウンタフィールド 200 命令メモリ 210 レジスタファイル 220、221 命令ウインドウ 230 データ予測装置 240、241、242、243 演算ユニット 250 データメモリ 100, 110 Source operand field 101, 111 Ready bit 102, 112 Tag field 103, 113 Operand field 120 Destination field 121 Destination register field 122 Operation result field 130 Dispatch bit 140 Function unit field 150 Execution bit 160 Prediction bit 170 Reissue Bit 180 Program counter field 200 Instruction memory 210 Register file 220, 221 Instruction window 230 Data prediction device 240, 241, 242, 243 Arithmetic unit 250 Data memory

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】 プロセッサの動的な命令スケジューリン
グに用いれられる命令スケジューリング装置において、 演算に必要なソースオペランドの値を予測するデータ予
測手段を備えるとともに、複数の命令を保持するための
エントリを複数備え、各エントリに、ソースオペランド
の値が前記データ予測手段により予測された値であるこ
とを表すフィールドを設けたことを特徴とするプロセッ
サの命令スケジューリング装置。
1. An instruction scheduling apparatus used for dynamic instruction scheduling of a processor, comprising: a data predicting unit for predicting a value of a source operand required for an operation; and a plurality of entries for holding a plurality of instructions. An instruction scheduling apparatus for a processor, wherein each entry is provided with a field indicating that the value of the source operand is the value predicted by the data prediction means.
【請求項2】 前記各エントリは、少なくとも、ソース
オペランドに関する情報を保持するフィールド、演算結
果に関する情報を保持するフィールド、演算中を表すフ
ィールド、命令が発行された演算ユニットを表すフィー
ルド、実行終了を表すフィールド、ソースオペランドが
予測された値であることを表すフィールド、プログラム
カウンタを保持するフィールドを持ち、 先に演算が実行された命令とデータ依存関係にある後続
の命令の実行時に、前記実行終了を表すフィールド又は
ソースオペランドが予測された値であることを表すフィ
ールドのいずれか一方がセットされている場合は、前記
演算結果に関する情報を保持するフィールドに保持され
ているデータ値を使って演算を開始することを特徴とす
る請求項1記載のプロセッサの命令スケジューリング装
置。
2. Each of the entries includes at least a field for holding information about a source operand, a field for holding information about an operation result, a field indicating that an operation is being performed, a field indicating an operation unit to which an instruction has been issued, and an execution end. And a field for indicating that the source operand is a predicted value, and a field for holding a program counter. When a subsequent instruction having a data dependency with the previously executed instruction is executed, the execution is terminated. If either the field that indicates the expected value or the field that indicates that the source operand is the predicted value is set, the operation is performed using the data value held in the field that holds the information about the operation result. 2. The processor of claim 1, wherein the processor is started. Scheduling apparatus.
【請求項3】 ソースオペランドの予測に失敗した場合
には、失敗した命令以降の命令をすべて破棄することを
特徴とする請求項1又は2記載のプロセッサの命令スケ
ジューリング装置。
3. The instruction scheduling apparatus for a processor according to claim 1, wherein when the prediction of the source operand fails, all instructions subsequent to the failed instruction are discarded.
【請求項4】 前記各エントリに、命令が再発行された
ことを表すフィールドを設けたことを特徴とする請求項
1又は2記載のプロセッサの命令スケジューリング装
置。
4. The instruction scheduling apparatus for a processor according to claim 1, wherein a field indicating that the instruction has been reissued is provided in each of the entries.
【請求項5】 ソースオペランドの予測に失敗した場合
には、失敗した命令とデータ依存関係にある命令を再発
行することを特徴とする請求項4記載のプロセッサの命
令スケジューリング装置。
5. The instruction scheduling apparatus for a processor according to claim 4, wherein when the prediction of the source operand fails, an instruction having a data dependency relationship with the failed instruction is reissued.
JP5854298A 1998-03-10 1998-03-10 Instruction scheduling device for processor Pending JPH11259295A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5854298A JPH11259295A (en) 1998-03-10 1998-03-10 Instruction scheduling device for processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5854298A JPH11259295A (en) 1998-03-10 1998-03-10 Instruction scheduling device for processor

Publications (1)

Publication Number Publication Date
JPH11259295A true JPH11259295A (en) 1999-09-24

Family

ID=13087342

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5854298A Pending JPH11259295A (en) 1998-03-10 1998-03-10 Instruction scheduling device for processor

Country Status (1)

Country Link
JP (1) JPH11259295A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006525594A (en) * 2003-05-02 2006-11-09 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド System and method for preventing instances of operations executing in a data speculation microprocessor from interrupting operation replay

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006525594A (en) * 2003-05-02 2006-11-09 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド System and method for preventing instances of operations executing in a data speculation microprocessor from interrupting operation replay

Similar Documents

Publication Publication Date Title
US5404473A (en) Apparatus and method for handling string operations in a pipelined processor
US10296346B2 (en) Parallelized execution of instruction sequences based on pre-monitoring
JP4763727B2 (en) System and method for correcting branch misprediction
JP3602840B2 (en) Speculative execution control apparatus and method for instruction
US5752014A (en) Automatic selection of branch prediction methodology for subsequent branch instruction based on outcome of previous branch prediction
US6880073B2 (en) Speculative execution of instructions and processes before completion of preceding barrier operations
US8074060B2 (en) Out-of-order execution microprocessor that selectively initiates instruction retirement early
US5634103A (en) Method and system for minimizing branch misprediction penalties within a processor
US5996060A (en) System and method for concurrent processing
US7478228B2 (en) Apparatus for generating return address predictions for implicit and explicit subroutine calls
US6289442B1 (en) Circuit and method for tagging and invalidating speculatively executed instructions
JP3851707B2 (en) Central processing unit of super scalar processor
US20060248319A1 (en) Validating branch resolution to avoid mis-steering instruction fetch
US7444501B2 (en) Methods and apparatus for recognizing a subroutine call
JP2008530713A5 (en)
US7228403B2 (en) Method for handling 32 bit results for an out-of-order processor with a 64 bit architecture
JP2001209535A (en) Command scheduling device for processors
US20040215934A1 (en) Register value tracker
US20050223201A1 (en) Facilitating rapid progress while speculatively executing code in scout mode
JP2000322257A (en) Speculative execution control method for conditional branch instruction
JP3518510B2 (en) Reorder buffer management method and processor
US20020083304A1 (en) Rename finish conflict detection and recovery
US5664120A (en) Method for executing instructions and execution unit instruction reservation table within an in-order completion processor
US6336182B1 (en) System and method for utilizing a conditional split for aligning internal operation (IOPs) for dispatch
JPH1196005A (en) Parallel processor