JP2000259411A - Processor - Google Patents

Processor

Info

Publication number
JP2000259411A
JP2000259411A JP11061164A JP6116499A JP2000259411A JP 2000259411 A JP2000259411 A JP 2000259411A JP 11061164 A JP11061164 A JP 11061164A JP 6116499 A JP6116499 A JP 6116499A JP 2000259411 A JP2000259411 A JP 2000259411A
Authority
JP
Japan
Prior art keywords
instruction
register
execution
scoreboard
write
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
JP11061164A
Other languages
Japanese (ja)
Inventor
Kentaro Shimada
健太郎 島田
Isao Kimura
功 木村
Kazunari Tanaka
一成 田中
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP11061164A priority Critical patent/JP2000259411A/en
Publication of JP2000259411A publication Critical patent/JP2000259411A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PROBLEM TO BE SOLVED: To efficiently perform out-of-order execution and speculative operation execution with the small number of rename registers even if there are an instruction whose execution time is long and an instruction whose execution time is short. SOLUTION: This processor is provided with a register rename table 12 in an instruction dispatching part 11 and is further provided with a score board 17. Whether an instruction to be written to a rename register or an instruction to be registered with the score board is recorded on the table 12 according to the kind of an instruction and the number of a register where writing is performed is registered before defining instruction execution. When the instruction execution is defined, it is recorded by the board 17. About a subsequent instruction, the table 12 and the board 17 are retrieved to know the number of a writing register of the preceding instruction. Thus, efficiency can be improved even with a small number of rename registers because the rename registers are not used even if an instruction using the score board has long execution time.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明はプロセッサの命令制
御に関し、特にレジスタリネームを行うプロセッサに関
する。
[0001] 1. Field of the Invention [0002] The present invention relates to instruction control of a processor, and more particularly to a processor that performs register rename.

【0002】[0002]

【従来の技術】近年プロセッサの技術においては、複数
の命令を同時に実行するスーパースカラ技術、および特
に命令の実行順序を並び替えて実行するアウトオブオー
ダ技術が高い効果を挙げている。アウトオブオーダ技術
においては、命令で指定されたレジスタを実行時に割り
当て直し、命令間の依存関係をなくして効率を高めるレ
ジスタリネームの技術があり、命令の実行時において命
令の書き込みを行うレジスタ番号毎に一時的なリネーム
レジスタ番号を割り当てる。リネームレジスタ番号の割
当ては通常、命令の実行開始時に行われるため、実行に
長い時間のかかる命令があると、その間に充分な数の命
令の実行が開始できるためには、その数だけのリネーム
レジスタ番号を持たなければならない。また命令の実行
結果は割り当てたリネームレジスタ番号と対として管理
される。通常これはリネームレジスタ番号の数と同じだ
けのリネームレジスタを備えることで実現される。この
ため、命令の種類によって実行時間が異なる場合には、
最も実行時間の長い命令に合わせて、多数のリネームレ
ジスタを用意しなければ充分な効率を挙げることはでき
ない。このような実行時間の長い命令としては、除算や
平方根など複雑な演算を行う命令、速度の遅いプロセッ
サ外部の主記憶その他の外部記憶を読み出す命令などが
挙げられる。
2. Description of the Related Art In recent years, in processor technology, a superscalar technology for executing a plurality of instructions at the same time, and an out-of-order technology for rearranging and executing instructions in particular have high effects. In the out-of-order technology, there is a register renaming technology that reallocates registers specified by an instruction at the time of execution and eliminates dependencies between instructions to increase efficiency. Is assigned a temporary rename register number. Since the assignment of the rename register number is usually performed at the start of the execution of an instruction, if there is an instruction that takes a long time to execute, it is necessary that the number of the rename registers be the same in order for the execution of a sufficient number of instructions to start. Must have a number. The execution result of the instruction is managed as a pair with the assigned rename register number. Usually this is achieved by having as many rename registers as the number of rename register numbers. Therefore, if the execution time differs depending on the type of instruction,
Unless a large number of rename registers are prepared in accordance with the instruction having the longest execution time, sufficient efficiency cannot be achieved. Examples of such an instruction having a long execution time include an instruction for performing a complicated operation such as division or a square root, and an instruction for reading a main memory or other external storage outside a low-speed processor.

【0003】リネームレジスタによらない命令間の依存
関係の解決技術としては、他にレジスタ番号毎にその番
号のレジスタに書き込む命令が実行中であるかどうかを
記録するスコアボードの技術がある。従来のスコアボー
ド技術では、スコアボードに他に書き込む命令があると
記録されたレジスタを読み出しまたは書き込みを行おう
とした命令は実行を一旦停止し、スコアボードに記録さ
れた書き込み命令の実行が終了したらスコアボードの記
録を消去することによって、命令の実行を再開する。こ
のような従来のスコアボードの技術では命令の順序を守
ってスコアボードへの記録を行い、スコアボードに記録
されたレジスタを読み出しまたは書き込みをしようとし
た命令及びその後続の命令は停止させるのが基本的な動
作である。後続の命令をアウトオブオーダで実行しよう
とすると、停止している命令自体の書き込みレジスタを
スコアボードに記録できないため、停止している命令と
の依存関係を解決できない。従って従来のスコアボード
の技術はアウトオブオーダの技術と同時に用いることが
難しい。また、分岐命令の分岐先を予測して、予測した
先の命令をアウトオブオーダにより分岐命令より先に実
行する投機的実行においては、予測が誤っていたときに
は投機的に実行した予測先の命令をすべて取り消す必要
がある。この時取り消される可能性のある予測先の命令
をスコアボードに記録すると、取り消しが生じた時にス
コアボードの記録も取り消さなければならない。分岐予
測が誤っていたときには取り消される命令が数命令から
10命令以上になる場合もあるので、スコアボードの取
り消しも簡単ではなく、予測失敗時の回復処理に多くの
時間がかかりペナルティを生じ易い。
As another technique for resolving dependencies between instructions without using a rename register, there is a scoreboard technique for recording whether or not an instruction to be written to a register of that register number is being executed for each register number. In the conventional scoreboard technology, an instruction that attempts to read or write a register recorded as having another instruction to be written to the scoreboard suspends execution, and terminates execution of the write instruction recorded in the scoreboard. Execution of the instruction is resumed by clearing the scoreboard record. In such a conventional scoreboard technique, the order of instructions is recorded on the scoreboard in accordance with the order of instructions, and an instruction that attempts to read or write a register recorded on the scoreboard and subsequent instructions are stopped. This is a basic operation. If a subsequent instruction is to be executed out-of-order, the write register of the stopped instruction cannot be recorded on the scoreboard, so that the dependency with the stopped instruction cannot be resolved. Therefore, it is difficult to use the conventional scoreboard technique simultaneously with the out-of-order technique. Also, in speculative execution in which the branch destination of a branch instruction is predicted and the predicted target instruction is executed out-of-order before the branch instruction, if the prediction is incorrect, the speculatively executed instruction of the prediction target is executed. Must be revoked. At this time, if a prediction target instruction that may be canceled is recorded on the scoreboard, the scoreboard recording must be canceled when the cancellation occurs. If the branch prediction is wrong, the number of instructions to be canceled may be from several to ten or more, so cancellation of the scoreboard is not easy, and the recovery process at the time of prediction failure takes much time and penalties are likely to occur.

【0004】また従来、以上のようなリネームレジスタ
技術と従来のスコアボード技術はそれぞれ前者はアウト
オブオーダを行う場合に、後者はアウトオブオーダを行
わない場合に用いられてきた別個の技術であるので、そ
のままでは効率良く両立させることが困難である。
Conventionally, the above-mentioned rename register technique and the conventional scoreboard technique are separate techniques used when the former performs out-of-order and the latter does not perform out-of-order. Therefore, it is difficult to efficiently achieve both at the same time.

【0005】[0005]

【発明が解決しようとする課題】レジスタリネームの技
術において充分な効率を挙げるためには、実行時間の最
も長い命令に合わせて、多数のリネームレジスタを用意
しなければならない。リネームレジスタの数が少ない
と、実行時間の長い命令が実行された時に、連続して実
行を開始できる命令が少なくなってしまい、効率が低下
する。また従来のスコアボードの技術はアウトオブオー
ダを行う場合に用いると、命令間の依存関係を正しく解
決することは困難であり、投機的実行に対してもペナル
ティを生じ易い。本発明は、アウトオブオーダや投機的
な実行を行う場合にもスコアボードを適応可能とし、リ
ネームレジスタ技術と少ないコストで両立させ、少ない
数のリネームレジスタで実行時間の長い命令が存在して
も、充分高い効率を挙げることを目的とする。
In order to obtain sufficient efficiency in the register renaming technique, it is necessary to prepare a large number of rename registers for instructions having the longest execution time. If the number of the rename registers is small, the number of instructions that can start executing continuously when an instruction with a long execution time is executed decreases, and the efficiency decreases. Further, when the conventional scoreboard technique is used for out-of-order execution, it is difficult to correctly resolve dependencies between instructions, and penalties are likely to occur even for speculative execution. The present invention makes it possible to adapt the scoreboard even when performing out-of-order or speculative execution, makes it compatible with the rename register technology at a low cost, and even if there are long-running instructions with a small number of rename registers. The purpose is to provide a sufficiently high efficiency.

【0006】[0006]

【課題を解決するための手段】本発明に従うプロセッサ
は、上記の課題を解決するために、命令の結果を書込む
1個以上の番号付けされたレジスタと、第1のの種類の
命令において、命令で指定された書込みを行う前記レジ
スタの番号を一時的なリネームレジスタ番号に付け替え
るレジスタリネーム手段と、第2の種類の命令におい
て、前記番号付けされたレジスタに書込む命令の実行が
確定したことを前記レジスタの番号毎に記録するスコア
ボードと、前記第1と第2の両方の種類の命令におい
て、命令で指定された読み出しを行う前記レジスタの番
号が、前記レジスタリネーム手段により前記一時的なリ
ネームレジスタ番号に付け替わっていないかどうか判定
するリネームヒット判定手段と、命令が前記レジスタの
読み出しまたは書き込みを行う場合に、前記スコアボー
ドの内容を検査して、前記レジスタに書き込む命令が他
にあるかないかを示す書き込み命令判定手段と、前記書
き込み命令判定手段の結果が他に書き込む命令ありの場
合に前記読み出しまたは書き込みを行う命令の実行を抑
止する命令実行抑止手段を備えることを特徴とする。
SUMMARY OF THE INVENTION A processor according to the present invention writes the result of an instruction to solve the above problems.
One or more numbered registers, register renaming means for rewriting the number of the register for writing specified by the instruction in the first type of instruction to a temporary rename register number, and second type And a scoreboard for recording for each register number that execution of an instruction to be written to the numbered register has been determined, and for both the first and second types of instructions, Rename hit determining means for determining whether the number of the register performing the read is not replaced by the temporary rename register number by the register renaming means, and when an instruction reads or writes the register. A document that examines the contents of the scoreboard and indicates whether there are any more instructions to write to the register. It is characterized by comprising write instruction determining means and instruction execution inhibiting means for inhibiting the execution of the read or write instruction when the result of the write instruction determining means indicates that there is another write instruction.

【0007】この構成によれば、前記第2の種類の命令
の実行時間が長くても、リネームレジスタを用いないの
で、 少ない数のリネームレジスタでも充分な効率を挙
げることが可能となる。
According to this configuration, even if the execution time of the second type of instruction is long, the rename registers are not used, so that a sufficient number of rename registers can achieve sufficient efficiency.

【0008】更に具体的には、前記命令実行抑止手段が
命令の実行を仮に行う命令仮実行手段と、前記命令の仮
実行の結果を取り消す命令仮実行取り消し手段と、前記
読み出しまたは書き込みを行う命令を再び実行し直す命
令再実行手段よりなることを特徴とし、ごれにより前記
命令実行抑止手段を単純化することを可能とする。
More specifically, the instruction execution inhibiting means temporarily executes an instruction temporarily, an instruction temporary execution canceling means canceling the result of the temporary execution of the instruction, and the instruction to read or write the instruction. And an instruction re-executing unit for re-executing the instruction execution, thereby simplifying the instruction execution inhibiting unit due to dust.

【0009】また、前記番号付けされたレジスタ毎に、
書き込みを行う前記第2の種類の命令があることを、前
記第2の種類の実行が確定する前に検出するスコアボー
ド先行記録手段と、命令が前記レジスタの読み出しまた
は書き込みを行う場合に、前記スコアボード先行記録手
段により前記レジスタに書き込む命令が他に記録されて
いないかどうかを示すスコアボード先行書き込み命令判
定手段を備え、前記スコアボード先行書き込み命令判定
手段の結果が他に書き込む命令ありの場合に、前記命令
再実行手段が、前記他に書き込む命令の実行が確定した
後に、前記レジスタに読み出しまたは書き込みを行う命
令を再実行することを特徴とする。この構成によれば、
前記第2の種類の命令の実行が確定する前に、前記第2
の種類の命令による依存関係を正しく検出できるように
し、命令の実行開始を無駄無く早められる。
Further, for each of the numbered registers,
A scoreboard preceding recording means for detecting that there is the second type of instruction to perform writing before the execution of the second type is determined; and, when the instruction performs reading or writing of the register, A scoreboard preceding write command determining means for indicating whether or not another command to be written to the register is recorded by the scoreboard preceding recording means, and when the result of the scoreboard preceding write command determining means is another command to be written; Preferably, the instruction re-executing means re-executes an instruction for reading or writing to the register after the execution of the other write instruction is determined. According to this configuration,
Before the execution of the second type of instruction is determined, the second type
, It is possible to correctly detect the dependencies caused by the instructions of the above type, and the execution of the instructions can be expedited without waste.

【0010】また、前記レジスタリネーム手段と前記ス
コアボード先行記録手段が同一のレジスタ書き込み先行
記録手段で構成されることを特徴とし、これにより簡単
な構成で実施可能とする。
Further, the register renaming means and the scoreboard preceding recording means are constituted by the same register writing preceding recording means, so that it can be implemented with a simple configuration.

【0011】また、命令の実行を仮に行う命令仮実行手
段と、命令を実行することが確定するかどうか判定する
命令実行確定判定手段と、実行が確定した命令を実行す
る確定命令実行手段を備え、命令が前記命令仮実行手段
により実行される第1の種類の命令と、前記確定命令実
行手段により実行される第2の種類の命令に分かれるこ
とを特徴とし、前記第1または前記第2の種類の命令が
前記第2の種類の命令の結果を用いる場合に、前記第2
の種類の命令の実行が終了して結果が求まっているかど
うか判定する確定命令実行終了判定手段と、前記確定命
令実行終了判定手段の結果がまだ実行終了せずの場合に
前記第1または前記第2の種類の命令の実行を抑止する
命令実行抑止手段を備え、前記第2の種類の命令の実行
時間が長くても、前記第2の種類の結果を用いる命令を
実行するまで他の命令の実行を行えるようにする。
[0011] The present invention further includes provisional instruction execution means for temporarily executing the instruction, instruction execution determination means for determining whether execution of the instruction is determined, and determined instruction execution means for executing the instruction whose execution has been determined. Wherein the instruction is divided into a first type of instruction executed by the instruction provisional execution means and a second type of instruction executed by the definite instruction execution means. When the type of instruction uses the result of the second type of instruction, the second type
Determination means for determining whether the execution of an instruction of the type has been completed and a result has been obtained; and the first or the second method when the result of the determination instruction execution completion determination means has not yet been completed. Instruction execution inhibiting means for inhibiting the execution of the two types of instructions, so that even if the execution time of the second type of instruction is long, the execution of the other type of instruction is not performed until the execution of the instruction using the second type of result. Make it executable.

【0012】[0012]

【発明の実施の形態】本発明の実施の形態の例を図によ
り説明する。なお、以下において、図中の信号線はすべ
て必要な命令コード、レジスタ番号などを送信するのに
必要なビット数があるものとする。
DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described with reference to the drawings. In the following, it is assumed that all signal lines in the figure have the necessary number of bits for transmitting necessary instruction codes, register numbers, and the like.

【0013】図1に本発明にかかわるプロセッサの実施
の形態の例を示す。
FIG. 1 shows an example of an embodiment of a processor according to the present invention.

【0014】図1では、リネームレジスタ・ファイル14
及び本体レジスタ・ファイル15は、それぞれ番号付けさ
れたレジスタを番号の個数分だけ集めたレジスタ・ファ
イルである。
In FIG. 1, the rename register file 14
The main body register file 15 is a register file in which the numbered registers are collected by the number of numbers.

【0015】命令フェッチ部10はプロセッサ外のメモリ
または命令キャッシュから命令コードを読み出し、命令
ディスパッチ部11へ送る。
The instruction fetch unit 10 reads an instruction code from a memory or an instruction cache outside the processor and sends the instruction code to the instruction dispatch unit 11.

【0016】命令ディスパッチ部11では、命令をデコー
ドして命令の種類を判定し、結果をリネームレジスタに
書き込む種類の命令であるか、スコアボード17に登録を
行う種類の命令であるか区別する。リネームレジスタに
書き込む種類の命令である場合は、書き込みレジスタ番
号に新しいリネームレジスタ番号を割当て、これを命令
ディスパッチ部11内のレジスタリネームテーブル12にリ
ネームレジスタへ書き込むと言うマークを付けて登録す
る。スコアボード17に書き込む種類の命令である場合
は、同じく書き込みレジスタ番号に新しいリネームレジ
スタ番号を割当て、スコアボードに書き込むと言うマー
クを付けてレジスタリネームテーブル12に登録する。ま
た両者の命令について、読み出しレジスタ番号、書き込
みレジスタ番号についてレジスタリネームテーブル12を
調べ、読み出しレジスタ番号に、リネームレジスタへ書
き込むというマークが付いたリネームレジスタ番号が割
り当てられていた場合には、読み出しレジスタ番号に変
えてリネームレジスタを読み出すように、割り当てられ
たリネームレジスタ番号を取り出す。また読み出しレジ
スタ番号または書き込みレジスタ番号に、スコアボード
に書き込むと言うマークが付いたリネームレジスタ番号
が割り当てられていた場合には、命令完了制御部16に命
令再実行マーク信号177を送出し、命令完了時に再実行
させることを通知する。また同時に読み出しレジスタ番
号及び書き込みレジスタ番号を信号線171によりスコア
ボード17へ送出し、スコアボード17においてマークがつ
いていないかどうかを検査し、結果を信号線172により
受け取る。読み出しレジスタ番号または書き込みレジス
タ番号にスコアボード17でマークがついていることが信
号線172により報告された場合には、同様に命令再実行
マーク信号177により命令完了部16へ通知する。以上の
処理を行った後、命令制御情報、レジスタ番号を命令実
行部13へ送出し、命令実行を指示する。また命令の実行
を指示したことを命令の種類、書き込みレジスタ番号と
共に命令完了制御部16へ信号線162により通知する。
The instruction dispatch unit 11 decodes the instruction to determine the type of the instruction, and determines whether the instruction is a type of writing the result in the rename register or an instruction of registering the result in the scoreboard 17. In the case of an instruction of a type to be written in the rename register, a new rename register number is assigned to the write register number, and this is registered in the register rename table 12 in the instruction dispatch unit 11 with a mark indicating that the instruction is to be written to the rename register. In the case of an instruction of the type to be written to the scoreboard 17, a new rename register number is similarly assigned to the write register number, a mark indicating that the instruction is to be written to the scoreboard is added, and the register is registered in the register rename table 12. For both instructions, check the register rename table 12 for the read register number and the write register number. If the read register number is assigned a rename register number marked to write to the rename register, the read register number , And retrieve the assigned rename register number so as to read the rename register. If a read register number or a write register number is assigned a rename register number marked to be written to the scoreboard, an instruction re-execution mark signal 177 is sent to the instruction Notify that it will be re-executed. At the same time, the read register number and the write register number are sent to the scoreboard 17 via the signal line 171, it is checked whether or not the scoreboard 17 is marked, and the result is received via the signal line 172. When the signal line 172 reports that the read register number or the write register number is marked on the scoreboard 17, the instruction completion unit 16 is similarly notified by the instruction re-execution mark signal 177. After performing the above processing, the instruction control information and the register number are sent to the instruction execution unit 13 to instruct the instruction execution. Also, the instruction completion instruction is notified to the instruction completion control unit 16 through the signal line 162 together with the instruction type and the write register number.

【0017】命令実行部13では、読み出しレジスタ番号
がリネームレジスタへ書き込むと言うマークの付いたリ
ネームレジスタ番号が割当てらていた場合には、リネー
ムレジスタ・ファイル14の当該リネームレジスタ番号の
レジスタへ結果が書き込まれるまで命令の実行開始を待
たせ、結果が書き込またらこれを読み出して命令を実行
する。その他の場合には本体レジスタ・ファイル15の命
令で指定された番号のレジスタより値を読み出し命令を
実行する。この時、リネームレジスタへ結果が書き込ま
れるのを待っている命令があっても、命令ディスパッチ
部11より命令実行を指示された命令が他にあれば、その
命令を先に実行するように制御を行う。これがアウトオ
ブオーダの命令実行制御となる。
In the instruction execution unit 13, when the read register number is assigned a rename register number marked to be written to the rename register, the result is stored in the register of the rename register file 14 in the rename register file. The execution of the instruction is made to wait until it is written, and when the result is written, it is read and the instruction is executed. In other cases, a value is read from the register of the number designated by the instruction in the main body register file 15 and the instruction is executed. At this time, even if there is an instruction waiting for the result to be written to the rename register, if there is another instruction instructed to be executed by the instruction dispatch unit 11, the control is performed so that the instruction is executed first. Do. This is the out-of-order instruction execution control.

【0018】リネームレジスタに書き込む種類の命令で
あれば、命令の実行が終了したら、信号線173によりリ
ネームレジスタ・ファイル14の割り当てられたリネーム
レジスタ番号へ結果を書き込む。また命令の実行が終了
したことを信号線163により命令完了制御部16へ通知す
る。
In the case of an instruction of the type to be written in the rename register, when the execution of the instruction is completed, the result is written to the assigned rename register number of the rename register file 14 via the signal line 173. Further, the completion of the instruction is notified to the instruction completion control unit 16 via the signal line 163.

【0019】スコアボードに登録を行なう種類の命令で
は、命令完了制御部より命令実行確定信号174を受け取
ると命令の実行を開始する。この時、命令の実行結果を
本体レジスタ・ファイル15に書き込むのでなければ、命
令の実行を一部、命令実行確定信号174を受け取る前に
行なっていても良い。命令の実行が完了したら信号線17
5により本体レジスタ・ファイル15の命令で指定された
レジスタに結果を書き込み、スコアボード17へ信号線17
6により書き込み完了信号と書き込み完了レジスタ番号
を送出する。
For an instruction of the type to be registered in the scoreboard, execution of the instruction is started when the instruction execution decision signal 174 is received from the instruction completion control unit. At this time, if the execution result of the instruction is not written in the main body register file 15, the execution of the instruction may be partially performed before receiving the instruction execution determination signal 174. When the execution of the instruction is completed, signal line 17
Write the result to the register specified by the instruction of the main unit register file 15 by 5 and the signal line 17 to the scoreboard 17
A write completion signal and a write completion register number are transmitted by 6.

【0020】命令完了制御部16では、命令ディスパッチ
部11より通知された命令の順序を管理し、リネームレジ
スタに結果を書き込む種類の命令である場合は、それぞ
れの命令について命令実行部13より実行終了信号163が
送られてきたかどうか記録する。実行終了信号163が記
録された命令は、命令ディスパッチ部11より通知された
順番に、リネームレジスタ・ファイル14に格納されたデ
ータを、読み出し指示信号165を用いて読み出し、書き
込み指示信号166により本体レジスタ・ファイル15内の
命令で指定された書き込みレジスタ番号のレジスタへ書
き込む。またこの時、リネームリセット信号178を命令
ディスパッチ部11に送出し、レジスタリネームテーブル
12における登録を消去する。このように、本体レジスタ
・ファイル15への書き込みは元の命令の順序で行われる
ので、命令実行部13でアウトオブオーダ実行制御により
命令が追い越されて実行されても、本体レジスタ・ファ
イル15内のデータは順序において矛盾することがない。
The instruction completion control unit 16 manages the order of the instructions notified from the instruction dispatch unit 11 and, if the instruction is a type of writing a result to the rename register, the instruction execution unit 13 terminates execution of each instruction. Record whether signal 163 was sent. The instruction in which the execution end signal 163 is recorded reads the data stored in the rename register file 14 using the read instruction signal 165 in the order notified from the instruction dispatch unit 11, and reads the data in the main body register by the write instruction signal 166. • Write to the register of the write register number specified by the instruction in file 15. At this time, a rename reset signal 178 is sent to the instruction dispatch unit 11, and the register rename table 178 is sent.
Delete the registration in 12. As described above, since writing to the main body register file 15 is performed in the order of the original instruction, even if an instruction is overtaken by the instruction execution unit 13 by out-of-order execution control and executed, Are consistent in order.

【0021】スコアボードに登録を行う種類の命令の場
合は、同じく命令ディスパッチ部11より通知された順番
に、その前の命令がすべて実行が完了し、結果をリネー
ムレジスタ・ファイル14から本体レジスタ・ファイル15
に結果を移したら、命令実行確定信号174により命令実
行部13にその命令の実行が確定したことを通知する。こ
の時、同時にスコアボード17に実行が確定した命令の書
き込みレジスタ番号を信号線167により送出する。また
同じくリネームリセット信号178を命令ディスパッチ部1
1に送出し、レジスタリネームテーブル12における登録
を消去する。
In the case of the type of instruction to be registered in the scoreboard, the execution of all the previous instructions is completed in the same order as notified by the instruction dispatch unit 11, and the result is transferred from the rename register file 14 to the main body register. File 15
Is transferred to the instruction execution determination signal 174, the instruction execution unit 13 is notified that the execution of the instruction has been determined. At this time, a write register number of the instruction whose execution has been determined is simultaneously transmitted to the scoreboard 17 via the signal line 167. Also, rename the reset signal 178 to the instruction dispatch unit 1.
1 and delete the registration in the register rename table 12.

【0022】命令完了制御部16では、すべての種類の命
令において、命令再実行マーク信号177が命令ディスパ
ッチ部11より送出された場合にはこれを記録し、命令デ
ィスパッチ部11より通知された順番にその前の命令がす
べて実行が完了し、結果をリネームレジスタ・ファイル
14から本体レジスタ・ファイル15に結果を移すか、命令
実行確定信号174により実行を開始したら、命令再フェ
ッチ信号161を命令フェッチ部10に送出し、命令再実行
マーク信号177が送出されたことが記録された命令より
再フェッチを行わせ再実行させる。
The instruction completion control unit 16 records the instruction re-execution mark signal 177 of all types of instructions when the instruction re-execution mark signal 177 is sent from the instruction dispatch unit 11, in the order notified from the instruction dispatch unit 11. All previous instructions have completed execution and the result is
When the result is transferred from 14 to the main body register file 15 or execution is started by the instruction execution decision signal 174, the instruction refetch signal 161 is sent to the instruction fetch unit 10, and the instruction reexecution mark signal 177 is sent. Re-fetch from the recorded instruction and re-execute.

【0023】スコアボード17では、命令完了制御部16よ
り信号線167により命令の実行が確定した書き込みレジ
スタ番号が通知されると、これを記録し、命令実行部13
より信号線176により書き込みが完了したことが通知さ
れると、記録を消去する。書き込みが記録されている間
に、命令ディスパッチ部より信号線171により送出され
た読み出しまたは書き込みを行うレジスタ番号が記録さ
れたレジスタの番号と一致したときは、スコアボードヒ
ット信号172によりこれを通知する。
In the scoreboard 17, when the instruction completion control unit 16 notifies the instruction register of the execution of the instruction via the signal line 167, this is recorded and recorded in the instruction execution unit 13.
When the completion of the writing is notified by the signal line 176, the record is erased. While the writing is being recorded, when the register number for reading or writing sent from the instruction dispatch unit via the signal line 171 matches the number of the recorded register, this is notified by the scoreboard hit signal 172. .

【0024】図2は命令ディスパッチ部11の実施の形態
の例である。命令フェッチ部10よりフェッチされた命令
は命令デコード部110により解読される。その結果、命
令ディスパッチ信号212、命令種別制御情報211、読み出
しレジスタ有効信号208、読み出しレジスタ番号209、書
き込みレジスタ番号207、及びスコアボード書き込み有
効信号205またはリネーム書き込み有効信号206が出力さ
れる。スコアボード書き込み有効信号205またはリネー
ム書き込み有効信号206が出力されると、レジスタリネ
ームテーブル12に書き込みレジスタ番号207がスコアボ
ード書き込み有効信号205またはリネーム書き込み有効
信号206によるマーク付けと共に登録される。この時登
録に使用されるリネームレジスタ番号は、リネームレジ
スタ割り当て番号レジスタ112より信号線201に出力され
る。リネームレジスタ割り当て番号レジスタ112は常に
次の登録に割り当てるリネームレジスタ番号を出力して
いる。スコアボード書き込み有効信号205またはリネー
ム書き込み有効信号206が出力されて現在のリネームレ
ジスタ割り当て番号を使用した場合には、ORゲート113
の出力が1となり、これを加算器111によって現在のリ
ネームレジスタ割り当て番号レジスタ112の出力に加算
することにより、次に新しく割り当てられるリネームレ
ジスタ番号が生成される。生成された値は、再びリネー
ムレジスタ割り当て番号レジスタ112に書き戻される。O
Rゲート113の出力はまた、書き込みレジスタ番号有効信
号210として、書き込みレジスタ番号207、読み出しレジ
スタ有効信号208、読み出しレジスタ番号209と共に信号
線171によりスコアボード17へ送られる。
FIG. 2 shows an example of the embodiment of the instruction dispatch unit 11. The instruction fetched by the instruction fetch unit 10 is decoded by the instruction decode unit 110. As a result, an instruction dispatch signal 212, instruction type control information 211, a read register valid signal 208, a read register number 209, a write register number 207, and a scoreboard write valid signal 205 or a rename write valid signal 206 are output. When the scoreboard write enable signal 205 or the rename write enable signal 206 is output, the write register number 207 is registered in the register rename table 12 together with the mark by the scoreboard write enable signal 205 or the rename write enable signal 206. At this time, the rename register number used for registration is output from the rename register assignment number register 112 to the signal line 201. The rename register assignment number register 112 always outputs the rename register number assigned to the next registration. When the scoreboard write enable signal 205 or the rename write enable signal 206 is output and the current rename register assignment number is used, the OR gate 113
Is added to the output of the rename register assignment number register 112 by the adder 111 to generate a rename register number to be newly assigned next. The generated value is written back to the rename register assignment number register 112 again. O
The output of the R gate 113 is sent as a write register number valid signal 210 to the scoreboard 17 via a signal line 171 together with the write register number 207, read register valid signal 208, and read register number 209.

【0025】またレジスタリネームテーブル12において
は、読み出しレジスタ番号209が検査され、同じ番号に
書き込みを行なう、リネームレジスタに書き込みを行な
う種類の命令があるかないか調べられる。もしあれば、
リネームレジスタ読み出し信号202が出力され、信号線2
03に、読み出しレジスタに換えてその命令の書き込み結
果を読み出すために、その命令の書き込みレジスタに割
り当てられたリネームレジスタ番号が読み出しリネーム
レジスタ番号として出力される。もし同じ番号に書き込
みを行なう、リネームレジスタに書き込みを行なう種類
の命令が複数あれば、そのうちで最も最近に割り当てら
れたリネームレジスタ番号が出力される。更に、読み出
しレジスタ番号209と書き込みレジスタ番号207の両方に
ついて、同じ番号のレジスタに書き込みを行なうスコア
ボードに登録を行なう種類の命令があるかないか調べら
れる。このような命令は、実行が確定する前でスコアボ
ード17にまだ未登録である。このような命令がもしあれ
ば、スコアボード先行ヒット信号204が出力される。こ
のスコアボード先行ヒット信号204は、スコアボード17
より出力されるスコアボードヒット信号172とORゲート1
14により論理和が取られ、命令再実行マーク信号177と
なる。
In the register rename table 12, the read register number 209 is checked to determine whether there is an instruction of a type for writing to the same number or writing to the rename register. If any,
The rename register read signal 202 is output, and the signal line 2
At 03, the rename register number assigned to the write register of the instruction is output as the read rename register number to read the write result of the instruction in place of the read register. If there are a plurality of instructions that write to the same number and write to the rename register, the most recently assigned rename register number is output. Further, for both the read register number 209 and the write register number 207, it is checked whether or not there is an instruction of the type to be registered in the scoreboard that writes in the register of the same number. Such an instruction is not yet registered in the scoreboard 17 before its execution is determined. If such an instruction exists, a scoreboard preceding hit signal 204 is output. This scoreboard preceding hit signal 204 is
Scoreboard hit signal 172 output from OR gate 1
The logical sum is obtained by 14 and becomes an instruction re-execution mark signal 177.

【0026】図3はレジスタリネームテーブル12の実施
の形態の例である。
FIG. 3 is an example of an embodiment of the register rename table 12.

【0027】図3では、エントリ300がリネームレジス
タの番号数分あり、これに加えて、リネームレジスタ割
り当て番号201によりエントリ選択信号301を生成する番
号デコーダ135、読み出しリネームレジスタ番号203を生
成するエンコーダ132、リネームレジスタ読み出し信号
を生成するORゲート133、スコアボード先行ヒット信号2
04を生成するORゲート134がある。
In FIG. 3, the number of entries 300 is equal to the number of rename registers. In addition, the number decoder 135 generates an entry selection signal 301 based on the rename register assignment number 201, and the encoder 132 generates the read rename register number 203. OR gate 133 for generating the read signal of the rename register, scoreboard preceding hit signal 2
There is an OR gate 134 that generates 04.

【0028】図3において、リネームレジスタ書き込み
有効信号206が入力された場合、まずANDゲート302によ
りエントリ選択信号301と論理積が取られる。エントリ
選択信号301は、リネームレジスタ割り当て番号201を番
号デコーダ135によりデコードし、番号に対応したエン
トリ300において出力される。このようにすると、ANDゲ
ート302の出力は、リネームレジスタ割り当て番号201に
よって示される番号のエントリに対するリネームレジス
タ書き込み有効信号206が入力されたことによる制御信
号となる。ANDゲート302の出力により、リネームレジス
タ書き込み有効信号206に関わるマーク記録123にマーク
有りの状態とする1が記録される。また同時に本体レジ
スタ番号記録部120に信号線207に入力される書き込みレ
ジスタ番号が記録される。本体レジスタ番号記録部120
に記録を行なうことを指示する信号305は、ORゲート127
によりリネームレジスタ書き込み有効信号206とスコア
ボード書き込み有効信号205の論理和が取られ、その結
果とエントリ選択信号301とをANDゲート304により論理
積をとって生成されるので、スコアボード書き込み有効
信号205が入力された時にも出力される。また同じくAND
ゲート302の出力により、同じ書き込みレジスタ番号に
ついて最も最近に割り当てられたリネームレジスタ番号
であることを示す最新記録121に1が記録される。エント
リ選択信号301が出力されない他のリネームレジスタ
番号のエントリでは、本体レジスタ番号記録部120に
記録された書き込みレジスタ番号と、信号線207に入力
される書き込みレジスタ番号とが比較器128により比較
される。比較の結果一致していると、ANDゲート306によ
りリネームレジスタ書き込み有効信号206と論理積が取
られ、その結果で最新記録121に0が記録される。このよ
うにすることによって、本体レジスタ番号記録部120に
記録された書き込みレジスタ番号が等しいエントリがい
くつかあった場合、最も最近に割り当てられたリネーム
レジスタ番号のエントリの最新記録121にだけ1が記録
されていることが保証される。
In FIG. 3, when a rename register write valid signal 206 is input, first, an AND gate 302 performs an AND operation with an entry selection signal 301. The entry selection signal 301 is obtained by decoding the rename register assignment number 201 by the number decoder 135 and output at the entry 300 corresponding to the number. In this case, the output of the AND gate 302 becomes a control signal in response to the input of the rename register write enable signal 206 for the entry indicated by the rename register assignment number 201. By the output of the AND gate 302, 1 indicating that the mark is present is recorded in the mark record 123 related to the rename register write valid signal 206. At the same time, the write register number input to the signal line 207 is recorded in the main body register number recording unit 120. Main unit register number recording unit 120
The signal 305 instructing the recording to be performed on the OR gate 127
The logical OR of the rename register write enable signal 206 and the scoreboard write enable signal 205 is obtained, and the result is ANDed with the entry select signal 301 by the AND gate 304 to generate the scoreboard write enable signal 205 Also output when is input. Also AND
By the output of the gate 302, 1 is recorded in the latest record 121 indicating that it is the rename register number most recently assigned to the same write register number. For the entry of another rename register number for which the entry selection signal 301 is not output, the comparator 128 compares the write register number recorded in the main body register number recording unit 120 with the write register number input to the signal line 207. . If the comparison results in a match, the AND gate 306 performs an AND operation with the rename register write enable signal 206, and 0 is recorded in the latest record 121 as a result. By doing so, when there are some entries having the same write register number recorded in the main body register number recording unit 120, 1 is recorded only in the latest record 121 of the entry of the most recently assigned rename register number. Is guaranteed to be.

【0029】また信号線209に入力される読み出しレジ
スタ番号については、比較器122により本体レジスタ番
号記録部120に記録された書き込みレジスタ番号と比較
される。比較の結果一致しているとANDゲート124により
リネームレジスタ書き込み有効信号206に関わるマーク
記録123、及び最新記録121と論理積が取られ、リネーム
エントリヒット信号130が生成される。最新記録121を利
用することにより、本体レジスタ番号記録部120に記録
された書き込みレジスタ番号が複数あっても、そのうち
最も最近に割り当てたリネームレジスタ番号のエントリ
のリネームエントリヒット信号130だけが出力される。
これにより読み出しリネームレジスタ番号203は、リネ
ームエントリヒット信号130が出力されているエントリ
をエンコーダ132によって番号に変換することにより生
成される。またリネームレジスタ読み出し信号202は、
すべてのエントリから出力されるリネームエントリヒッ
ト信号130をORゲート133で論理和を取ることにより生成
される。
The read register number input to the signal line 209 is compared by the comparator 122 with the write register number recorded in the main body register number recording section 120. If the comparison results in a match, the AND gate 124 ANDs the mark record 123 related to the rename register write valid signal 206 and the latest record 121 to generate a rename entry hit signal 130. By using the latest record 121, even if there are a plurality of write register numbers recorded in the main body register number recording unit 120, only the rename entry hit signal 130 of the entry of the most recently assigned rename register number is output. .
As a result, the read rename register number 203 is generated by converting the entry to which the rename entry hit signal 130 has been output into a number by the encoder 132. Also, the rename register read signal 202 is
The OR gate 133 generates a logical OR of the rename entry hit signals 130 output from all the entries.

【0030】スコアボード書き込み有効信号205が入力
された場合、ANDゲート303によりエントリ選択信号301
と論理積が取られる。ANDゲート303の出力により、スコ
アボード書き込み有効信号205に関わるマーク記録125に
1が記録される。同時に信号線207に入力される書き込
みレジスタ番号が、本体レジスタ番号記録部120に記録
される。
When the scoreboard write valid signal 205 is input, the AND gate 303 causes the entry selection signal 301 to be input.
Is ANDed with By the output of the AND gate 303, 1 is recorded in the mark record 125 relating to the scoreboard write valid signal 205. At the same time, the write register number input to the signal line 207 is recorded in the main body register number recording unit 120.

【0031】エントリ選択信号301が出力されない他の
エントリでは、読み出しレジスタ番号209及び書き込み
レジスタ番号207がそれぞれ本体レジスタ番号記録部120
に記録された書き込みレジスタ番号と比較器128及び122
で比較される。比較の結果一致しているとANDゲート129
および126によって、スコアボード書き込み有効信号205
に関わるマーク記録125の出力、及びそれぞれ読み出し
レジスタ有効信号208またはORゲート127の出力によるリ
ネーム書き込み有効信号とスコアボード書き込み有効信
号との論理和信号と論理積が取られる。これにより、ス
コアボード書き込み有効信号205に関わるマーク記録125
に1が記録されている時、読み出しまたは書き込みレジ
スタ番号のいずれかが本体レジスタ番号記録部120に記
録されているレジスタ番号と一致したかどうか調べられ
る。最後にANDゲート129及び126の出力はORゲート131に
より論理和が取られ、更にORゲート134にてこれを全エ
ントリについて論理和が取られる。これにより、いずれ
かのエントリでスコアボード書き込み有効信号205に関
わるマーク記録125に1が記録されている時、読み出しま
たは書き込みレジスタ番号がそのエントリの本体レジス
タ番号記録部120に記録されたレジスタ番号と一致した
ことが示される。これがスコアボード先行ヒット信号20
4となる。
For the other entries for which the entry selection signal 301 is not output, the read register number 209 and the write register number 207 are respectively set to the main body register number recording section 120.
And the comparators 128 and 122
Are compared. AND gate 129 when the result of comparison is a match
And 126 enable the scoreboard write enable signal 205
, And the logical sum signal and the logical product of the rename write valid signal and the scoreboard write valid signal by the read register valid signal 208 or the output of the OR gate 127, respectively, are taken. As a result, the mark record 125 related to the scoreboard write valid signal 205
When 1 is recorded in the register number, it is checked whether any of the read or write register number matches the register number recorded in the main body register number recording unit 120. Finally, the outputs of the AND gates 129 and 126 are ORed by the OR gate 131, and further ORed by the OR gate 134 for all entries. Thereby, when 1 is recorded in the mark record 125 relating to the scoreboard write valid signal 205 in any entry, the read or write register number is the same as the register number recorded in the main body register number recording unit 120 of that entry. A match is indicated. This is the scoreboard first hit signal 20
It becomes 4.

【0032】命令完了制御部16よりリネームリセット信
号178が送出された時には、リネームレジスタ書き込み
有効信号206に関わるマーク記録123、及びスコアボード
書き込み有効信号205に関わるマーク記録125に0を記録
し、そのエントリの登録を無効とする。この時、リネー
ムリセット信号178はどの番号のエントリの登録を無効
にするか、指定できるものとする。簡単には図3中に示
したようにエントリの個数分のビット数を持つ信号とす
れば良い。
When a rename reset signal 178 is sent from the instruction completion control unit 16, 0 is recorded in a mark record 123 relating to the rename register write valid signal 206 and a mark record 125 relating to the scoreboard write valid signal 205. Invalidate entry registration. At this time, it is assumed that the rename reset signal 178 can specify which number entry registration is to be invalidated. In brief, a signal having the number of bits corresponding to the number of entries may be used as shown in FIG.

【0033】図4は、スコアボード17の実施の形態の例
である。
FIG. 4 is an example of the embodiment of the scoreboard 17.

【0034】図で、命令完了制御部16より信号線167に
実行が確定したスコアボードに登録する種類の命令の書
き込みレジスタ番号と実行確定信号が送られてくると、
スコアボード登録デコーダ401により解読される。スコ
アボード登録デコーダ401の出力によって、スコアボー
ド記録部403の書き込みレジスタ番号に対応する番号に
1が記録される。
In the figure, when the instruction completion control unit 16 sends a write register number of an instruction of the type to be registered in the scoreboard whose execution has been determined and an execution determination signal to the signal line 167,
Decoded by the scoreboard registration decoder 401. According to the output of the scoreboard registration decoder 401, 1 is recorded in the number corresponding to the write register number of the scoreboard recording unit 403.

【0035】スコアボード記録部403に1が記録され
ている間に、同じレジスタ番号が信号線171より読み出
しまたは書き込みレジスタ番号として命令ディスパッチ
部171より送られてくると、これを調べて、スコアボー
ドヒット信号172として返す。より詳細には、信号線171
で送られてきた読み出し及び書き込みレジスタ番号とそ
れぞれの有効信号は、それぞれ読み出し番号デコーダ40
4及び書き込み番号デコーダ407により番号に対応する解
読信号に解読される。それぞれの解読信号はスコアボー
ド記録部403の対応する番号の記録とANDゲート群405及
び408にて論理積が取られる。ANDゲート群405、408の出
力はそれぞれORゲート406及び409において論理和が取ら
れることにより、読み出し及び書き込みレジスタ番号に
対応するスコアボード記録部403のいずれかに1が記録
されていたことが分かる。最後にこれをORゲート410に
て論理和を取ることによって、スコアボードヒット信号
171が生成される。
If the same register number is sent from the instruction dispatch unit 171 as a read or write register number from the signal line 171 while 1 is recorded in the scoreboard recording unit 403, this is checked and the scoreboard is checked. Return as hit signal 172. More specifically, signal line 171
The read and write register numbers and their valid signals sent by the
4 and is decoded by the write number decoder 407 into a decode signal corresponding to the number. Each decoding signal is ANDed with the recording of the corresponding number in the scoreboard recording unit 403 and the AND gate groups 405 and 408. The outputs of the AND gate groups 405 and 408 are ORed in the OR gates 406 and 409, respectively, and it can be seen that 1 has been recorded in any of the scoreboard recording units 403 corresponding to the read and write register numbers. . Finally, this is ORed with the OR gate 410 to obtain a scoreboard hit signal.
171 is generated.

【0036】命令実行部13により、スコアボードに登録
する種類の命令の結果の書き込みの完了が、書き込みを
完了したレジスタ番号と共に信号線176で通知される
と、これをスコアボード削除デコーダ402にて解読す
る。スコアボード削除デコーダ402の出力によって、ス
コアボード記録部403の書き込みレジスタ番号に対応す
る記録に0が記録され、スコアボードの登録が削除され
たことを示す。
When the instruction execution unit 13 notifies the completion of the writing of the result of the instruction of the type to be registered in the scoreboard via the signal line 176 together with the register number of the completed writing, this is notified by the scoreboard deletion decoder 402. Decrypt. By the output of the scoreboard deletion decoder 402, 0 is recorded in the record corresponding to the write register number of the scoreboard recording unit 403, indicating that the registration of the scoreboard has been deleted.

【0037】図5は命令完了制御部16の実施の形態の例
である。
FIG. 5 shows an example of the embodiment of the instruction completion control unit 16.

【0038】図で、リオーダバッファ501は、命令ディ
スパッチ部11より信号線162により送られてくる命令デ
ィスパッチ信号、スコアボード書き込み有効信号、リネ
ーム書き込み有効信号、書き込みレジスタ番号、及び命
令再実行マーク信号177を、送られてきた命令の順番に
記録する。図のように、スコアボード書き込み有効信号
はスコアボードに登録する種類の命令であることを示
し、リネーム書き込み有効信号は、リネームレジスタに
書き込む命令であることを示しており、一つの命令の記
録において、両方とも1になることはない。
In the figure, a reorder buffer 501 includes an instruction dispatch signal, a scoreboard write enable signal, a rename write enable signal, a write register number, and an instruction re-execution mark signal 177 sent from the instruction dispatch unit 11 via a signal line 162. Are recorded in the order of the sent instructions. As shown in the figure, the scoreboard write valid signal indicates that the instruction is a type of instruction to be registered in the scoreboard, and the rename write valid signal indicates that the instruction is a write instruction to the rename register. , Both cannot be one.

【0039】また同じく図のように、命令実行部13より
命令実行終了信号163が送出されてくると、リオーダー
バッファ501の対応する命令に終了したことを示す1のマ
ークを付加する。
Also, as shown in the figure, when the instruction execution end signal 163 is sent from the instruction execution unit 13, a 1 mark indicating the end is added to the corresponding instruction in the reorder buffer 501.

【0040】図においてリオーダーバッファ501の下端
に達した命令、即ちその前の命令の完了処理がすべて終
了し、リオーダーバッファ501に記録された命令の中で
最も古い命令になると、まず命令再実行マーク信号177
の記録が1であるかどうか調べられる。命令再実行マー
ク信号177の記録が1であれば、命令再フェッチ信号161
を命令フェッチ部10へ送出し、当該命令より再実行する
ことを指示する。
In the figure, when the instruction that has reached the lower end of the reorder buffer 501, that is, the completion processing of all the preceding instructions is completed and the oldest instruction among the instructions recorded in the reorder buffer 501 is reached, the instruction Execution mark signal 177
Is checked to see if it is 1. If the record of the instruction re-execution mark signal 177 is 1, the instruction re-fetch signal 161
To the instruction fetch unit 10 to instruct that the instruction be re-executed.

【0041】命令再実行マーク信号177の記録が0であ
った場合、次にスコアボード書き込み有効信号の記録が
1であったか、リネーム書き込み有効信号の記録が1で
あったか、調べられる。
When the record of the instruction re-execution mark signal 177 is 0, it is checked whether the record of the scoreboard write valid signal is 1 or the record of the rename write valid signal is 1.

【0042】リネーム書き込み有効信号の記録が1の場
合は、命令実行終了信号163によるマークが付加されて
いるかどうか調べられ、付加されていなければ命令実行
部13より命令実行終了信号163が当該命令に対して送出
されてくるまで待機する。命令実行終了信号163による
マークが付加されているか、命令実行終了信号163が送
出されてきたら、リネームレジスタ読み出し信号165を
リネームレジスタ・ファイル14へ送出してリネームレジ
スタの読み出しを指示し、同時に本体レジスタ・ファイ
ル15へレジスタ書き込み信号と書き込みレジスタ番号を
送出して、リネームレジスタ・ファイル15からの結果を
本体レジスタ・ファイル14に書き戻すことを指示する。
If the record of the rename write enable signal is 1, it is checked whether or not a mark by the instruction execution end signal 163 has been added. If not, the instruction execution section 13 sends the instruction execution end signal 163 to the instruction. Wait until it is sent out. If the mark by the instruction execution end signal 163 is added or the instruction execution end signal 163 is sent, the rename register read signal 165 is sent to the rename register file 14 to instruct the reading of the rename register, and at the same time, the main body register is read. Sends a register write signal and a write register number to the file 15, and instructs the result from the rename register file 15 to be written back to the main body register file 14.

【0043】スコアボード書き込み有効信号の記録が1
の場合は、命令実行部13へ命令実行確定信号174を送出
して命令の実行が確定したことを通知する。またスコア
ボード17へ実行確定信号と、記録された書き込みレジス
タ番号を実行確定レジスタ番号として信号線167により
送出し、スコアボードの登録を行なう。
The record of the scoreboard write valid signal is 1
In the case of (1), an instruction execution determination signal 174 is sent to the instruction execution unit 13 to notify that the execution of the instruction has been determined. Also, an execution decision signal and the recorded write register number are sent to the scoreboard 17 as an execution decision register number via the signal line 167, and the scoreboard is registered.

【0044】両者の場合において、最後にリネームリセ
ット信号178を命令ディスパッチ部11へ送り、レジスタ
リネームテーブル12の登録を消去する。これにて命令の
完了処理の終了とし、当該命令の記録をリオーダーバッ
ファ501より削除し、次の命令の完了処理に移る。
In both cases, finally, a rename reset signal 178 is sent to the instruction dispatch unit 11, and the registration in the register rename table 12 is deleted. This completes the instruction completion processing, deletes the record of the instruction from the reorder buffer 501, and moves to the completion processing of the next instruction.

【0045】[0045]

【発明の効果】本発明によれば、実行時間の長い命令が
存在しても少ない数のリネームレジスタで効率良くレジ
スタリネーミングを行なうことができる。
According to the present invention, register renaming can be efficiently performed with a small number of rename registers even if there is an instruction having a long execution time.

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

【図1】本発明の実施の形態のプロセッサの主要部の構
成を示すブロック図である。
FIG. 1 is a block diagram illustrating a configuration of a main part of a processor according to an embodiment of the present invention.

【図2】上記プロセッサの命令ディスパッチ部の構成を
示すブロック図である。
FIG. 2 is a block diagram showing a configuration of an instruction dispatch unit of the processor.

【図3】上記プロセッサのレジスタリネームテーブルの
構成を示すブロック図である。
FIG. 3 is a block diagram showing a configuration of a register rename table of the processor.

【図4】上記プロセッサのスコアボードの構成を示すブ
ロック図である。
FIG. 4 is a block diagram showing a configuration of a scoreboard of the processor.

【図5】本発明の実施の形態のプロセッサの命令完了制
御部の構成及び動作を示すブロック図である。
FIG. 5 is a block diagram showing a configuration and operation of an instruction completion control unit of the processor according to the embodiment of the present invention.

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

10......命令フェッチ部 11......命令ディスパッチ部 12......レジスタリネームテーブル 13......命令実行部 14......リネームレジスタ・ファイル 15......本体レジスタ・ファイル 16......命令完了制御部 17......スコアボード 110.....命令デコード部 112.....リネームレジスタ割り当て番号レジスタ 120.....本体レジスタ番号記録部 121.....最新記録 123.....リネームレジスタ書き込み有効信号に関わるマ
ーク記録 125.....スコアーボード書き込み有効信号に関わるマー
ク記録 130.....リネームエントリヒット信号 161.....命令再フェッチ信号 163.....命令実行終了信号 165.....リネームレジスタ読み出し指示信号 166.....本体レジスタ書き込み指示信号 172.....スコアボードヒット信号 174.....命令実行確定信号 177.....命令再実行マーク信号 178.....リネームリセット信号 201.....リネームレジスタ割り当て番号 202.....リネームレジスタ読み出し信号 203.....読み出しリネームレジスタ番号 204.....スコアボード先行ヒット信号 205.....スコアボード書き込み有効信号 206.....リネーム書き込み有効信号 207.....書き込みレジスタ番号 208.....読み出しレジスタ有効信号 209.....読み出しレジスタ番号 211.....命令種別制御信号 212.....命令ディスパッチ信号 300.....レジスタリネームテーブルのエントリ 301.....エントリ選択信号 401.....スコアボード登録デコーダ 402.....スコアボード削除デコーダ 403.....スコアボード記録部 404.....読み出し番号デコーダ 407.....書き込み番号デコーダ 501.....リオーダーバッファ。
10 Instruction fetch section 11 Instruction dispatch section 12 Register rename table 13 Instruction execution section 14 Rename register File 15 Body register file 16 Instruction complete control unit 17 Scoreboard 110 Instruction decode unit 112 Rename register assignment Number register 120 ........ Main body register number recording section 121 ...... Latest record 123 ......... Mark record related to rename register write enable signal 125 ........ Mark related to scoreboard write enable signal Record 130 Rename entry hit signal 161 Instruction refetch signal 163 Instruction execution end signal 165 Rename register read instruction signal 166 Main unit register Write instruction signal 172 ... Scoreboard hit signal 174 ... Instruction execution decision signal 177 ... Instruction re-execution mark signal 178 ... Rename reset signal 201 ... Rename Register allocation number 202 ... Rename register read signal 203 ... Read rename register number 204 ... Score board preceding hit signal 205 ... Score board write enable signal 206 ... Rename write enable signal 207 Write register number 208 Read register enable signal 209 Read register number 211 Command type control signal 212 Command Dispatch signal 300 Register entry in register rename table 301 Entry selection signal 401 Scoreboard registration decoder 402 Scoreboard deletion decoder 403 Scoreboard Recording unit 404 .... Read number decoder 407 ... Write number decoder 501 ... Reorder buffer.

フロントページの続き (72)発明者 田中 一成 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内 Fターム(参考) 5B013 AA12 CC05 Continuation of the front page (72) Inventor Kazunari Tanaka 1 Horiyamashita, Hadano-shi, Kanagawa F-Term Co., Ltd. General term computer division, Hitachi, Ltd. 5B013 AA12 CC05

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】命令の結果を書込む1個以上の番号付けさ
れたレジスタと、第1の種類の命令の実行に際し、命令
で指定された書込みを行う前記レジスタの番号を一時的
なリネームレジスタ番号に付け替えるレジスタリネーム
手段と、第2の種類の命令の実行に際し、前記番号付け
されたレジスタに書込む命令の実行が確定したことを前
記レジスタの番号毎に記録するスコアボードと、前記第
1と第2の両方の種類の命令の実行に際し、命令で指定
された読み出しを行う前記レジスタの番号が、前記レジ
スタリネーム手段により前記一時的なリネームレジスタ
番号に付け替わっていないかどうか判定するリネームヒ
ット判定手段と、命令により前記レジスタの読み出しま
たは書き込みを行う場合に、前記スコアボードの内容を
検査して、前記レジスタに書き込む命令が他にあるかな
いかを示す書き込み命令判定手段と、前記書き込み命令
判定手段の結果が他に書き込む命令ありの場合に前記読
み出しまたは書き込みを行う命令の実行を抑止する命令
実行抑止手段を備えたプロセッサ。
1. A temporary rename register for writing one or more numbered registers into which the result of an instruction is written, and the number of the register for writing specified by the instruction when executing the first type of instruction. Register renaming means for renumbering; a scoreboard for recording, for each number of the register, execution of an instruction to be written to the numbered register when executing the second type of instruction; A renaming hit for judging whether or not the number of the register for reading specified by the instruction is replaced by the temporary renaming register number by the register renaming means when executing both the second and the second types of instructions. Determining means for reading or writing the register in accordance with an instruction; Write instruction determining means for indicating whether or not there is another instruction to be written to the master, and instruction execution inhibiting means for inhibiting the execution of the read or write instruction when the result of the write instruction determining means indicates that there is another write instruction With a processor.
【請求項2】前記命令実行抑止手段が命令の実行を仮に
行う命令仮実行手段と、前記命令の仮実行の結果を取り
消す命令仮実行取り消し手段と、前記読み出しまたは書
き込みを行う命令を再び実行し直す命令再実行手段より
なることを特徴とする請求項1に記載のプロセッサ。
2. The method according to claim 1, wherein the instruction execution inhibiting means temporarily executes the instruction, temporarily cancels the result of the temporary execution of the instruction, and executes the read or write instruction again. 2. The processor according to claim 1, further comprising an instruction re-executing means for correcting.
【請求項3】請求項2に記載のプロセッサであって、前
記番号付けされたレジスタ毎に、書き込みを行う前記第
2の種類の命令があることを、前記第2の種類の実行が
確定する前に検出するスコアボード先行記録手段と、命
令が前記レジスタの読み出しまたは書き込みを行う場合
に、前記スコアボード先行記録手段により前記レジスタ
に書き込む命令が他に記録されていないかどうかを示す
スコアボード先行書き込み命令判定手段を備え、前記ス
コアボード先行書き込み命令判定手段の結果が他に書き
込む命令ありの場合に、前記命令再実行手段が、前記他
に書き込む命令の実行が確定した後に、前記レジスタに
読み出しまたは書き込みを行う命令を再実行することを
特徴とするプロセッサ。
3. The processor according to claim 2, wherein said second type of execution determines that there is said second type of instruction to be written for each of said numbered registers. A scoreboard precedence recording means for detecting beforehand, and a scoreboard precedence indicating whether or not another instruction to be written to the register by the scoreboard precedence recording means when the instruction reads or writes the register. When the result of the scoreboard preceding write instruction determining means includes another instruction to be written, the instruction re-executing means reads out the register after the execution of the other write instruction is determined. Alternatively, a processor for re-executing a write instruction.
【請求項4】請求項3に記載のプロセッサであって、前
記レジスタリネーム手段と前記スコアボード先行記録手
段が同一のレジスタ書き込み先行記録手段で構成される
ことを特徴とするプロセッサ。
4. The processor according to claim 3, wherein said register renaming means and said scoreboard preceding recording means are constituted by the same register writing preceding recording means.
【請求項5】命令の実行を仮に行う命令仮実行手段と、
命令を実行することが確定するかどうか判定する命令実
行確定判定手段と、実行が確定した命令を実行する確定
命令実行手段と、新たに実行しようとする命令が前記確
定命令実行手段により実行される命令の結果を用いる場
合に、該確定命令実行手段により実行される命令の実行
が終了して結果が求まっているかどうか判定する確定命
令実行終了判定手段と、前記確定命令実行終了判定手段
の結果がまだ実行終了せずの場合に前記新たに実行しよ
うろする命令の実行を抑止する命令実行抑止手段を備え
るプロセッサ。
5. An instruction temporary execution means for temporarily executing an instruction,
An instruction execution determination unit that determines whether execution of an instruction is determined, a determined instruction execution unit that executes an instruction whose execution is determined, and an instruction that is to be newly executed is executed by the determined instruction execution unit. When the result of the instruction is used, the execution of the instruction executed by the finalized instruction executing means is completed, and the finalized instruction execution end determining means for determining whether a result is obtained. A processor comprising instruction execution inhibiting means for inhibiting the execution of the instruction to be newly executed when the execution has not been completed yet.
JP11061164A 1999-03-09 1999-03-09 Processor Pending JP2000259411A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11061164A JP2000259411A (en) 1999-03-09 1999-03-09 Processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11061164A JP2000259411A (en) 1999-03-09 1999-03-09 Processor

Publications (1)

Publication Number Publication Date
JP2000259411A true JP2000259411A (en) 2000-09-22

Family

ID=13163242

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11061164A Pending JP2000259411A (en) 1999-03-09 1999-03-09 Processor

Country Status (1)

Country Link
JP (1) JP2000259411A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110998522A (en) * 2017-08-18 2020-04-10 国际商业机器公司 Dynamic fusion of derived value creation and derived value prediction in subroutine branch sequences
JP2020060926A (en) * 2018-10-10 2020-04-16 富士通株式会社 Arithmetic processing device and method for controlling arithmetic processing device
US11762640B2 (en) 2019-05-21 2023-09-19 The University Of Tokyo Program, information conversion device, and information conversion method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110998522A (en) * 2017-08-18 2020-04-10 国际商业机器公司 Dynamic fusion of derived value creation and derived value prediction in subroutine branch sequences
JP2020531974A (en) * 2017-08-18 2020-11-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Dynamic fusion of derived value creation and derived value prediction in a subroutine branch sequence
JP7082187B2 (en) 2017-08-18 2022-06-07 インターナショナル・ビジネス・マシーンズ・コーポレーション Dynamic fusion of derived value creation and derived value prediction in a subroutine branch sequence
CN110998522B (en) * 2017-08-18 2023-09-19 国际商业机器公司 Dynamic fusion of derivative creation and derivative prediction in subroutine branch sequences
JP2020060926A (en) * 2018-10-10 2020-04-16 富士通株式会社 Arithmetic processing device and method for controlling arithmetic processing device
JP7115203B2 (en) 2018-10-10 2022-08-09 富士通株式会社 Arithmetic processing device and method of controlling arithmetic processing device
US11762640B2 (en) 2019-05-21 2023-09-19 The University Of Tokyo Program, information conversion device, and information conversion method

Similar Documents

Publication Publication Date Title
US6697932B1 (en) System and method for early resolution of low confidence branches and safe data cache accesses
EP0381444B1 (en) Branch prediction
JP2898820B2 (en) Self-parallelized computer system and method
JP5866259B2 (en) Segmented pipeline to flush for mispredicted branches
US5666506A (en) Apparatus to dynamically control the out-of-order execution of load/store instructions in a processor capable of dispatchng, issuing and executing multiple instructions in a single processor cycle
US7870369B1 (en) Abort prioritization in a trace-based processor
JP2937485B2 (en) Method and apparatus for detecting and executing traps in a superscalar processor
JP3919802B2 (en) Processor and method for scheduling instruction operations in a processor
US20040128448A1 (en) Apparatus for memory communication during runahead execution
US8037285B1 (en) Trace unit
JP2015164048A (en) System and method in which conditional instructions unconditionally provide output
TWI411957B (en) Out-of-order execution microprocessor that speculatively executes dependent memory access instructions by predicting no value change by older instruction that load a segment register
JP2003502754A (en) Scheduling enhancement method and apparatus in advanced microprocessor
US20030135713A1 (en) Predicate register file scoreboarding and renaming
JP2003067184A (en) Checkpointing of superscalar out-of-order processor for error recovery
US7051191B2 (en) Resource management using multiply pendent registers
US5930491A (en) Identification of related instructions resulting from external to internal translation by use of common ID field for each group
US5860014A (en) Method and apparatus for improved recovery of processor state using history buffer
US6625725B1 (en) Speculative reuse of code regions
JP3866920B2 (en) A processor configured to selectively free physical registers during instruction retirement
JP3808314B2 (en) Processing system and method for indicating instruction attributes and status information for long latency instructions
US5699538A (en) Efficient firm consistency support mechanisms in an out-of-order execution superscaler multiprocessor
US7284116B2 (en) Method and system for safe data dependency collapsing based on control-flow speculation
US5946468A (en) Reorder buffer having an improved future file for storing speculative instruction execution results
US7949854B1 (en) Trace unit with a trace builder