JP2001236222A - Processor equipped with out-of-order executing function - Google Patents

Processor equipped with out-of-order executing function

Info

Publication number
JP2001236222A
JP2001236222A JP2000044077A JP2000044077A JP2001236222A JP 2001236222 A JP2001236222 A JP 2001236222A JP 2000044077 A JP2000044077 A JP 2000044077A JP 2000044077 A JP2000044077 A JP 2000044077A JP 2001236222 A JP2001236222 A JP 2001236222A
Authority
JP
Japan
Prior art keywords
rename
register
instruction
rename register
registers
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
JP2000044077A
Other languages
Japanese (ja)
Inventor
Kazunari Tanaka
一成 田中
Isao Kimura
功 木村
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 JP2000044077A priority Critical patent/JP2001236222A/en
Publication of JP2001236222A publication Critical patent/JP2001236222A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

PROBLEM TO BE SOLVED: To realize the assignment of high speed rename registers in constitution in almost the same level as that of the constitution in which only one rename register is assigned even when an instruction to request the assignment of plural rename registers is present in an instruction set. SOLUTION: This processor is provided with rename register assigning mechanisms 103 and 104 for dividing a rename register 109 into plural groups, and for assigning rename registers from each group. At the time of allocating the rename registers to an instruction to store plural executed results in the same architecture register, the rename registers are allocated from the different groups to each result.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、リネームレジスタ
を用いたアウトオブオーダー実行機能を備えるプロセッ
サに関し、特にそのリネームレジスタの割当て機構に関
する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a processor having an out-of-order execution function using a rename register, and more particularly to a mechanism for allocating the rename register.

【0002】[0002]

【従来の技術】近年、プロセッサの高速化技術として、
複数の命令を同時に実行するスーパスカラ技術の他に、
命令の実行順序を並び替えて実行するアウトオブオーダ
ー実行技術が高い効果を上げている。
2. Description of the Related Art In recent years, as a technology for increasing the speed of a processor,
In addition to superscalar technology that executes multiple instructions simultaneously,
Out-of-order execution techniques for rearranging and executing instructions in order of execution have achieved high effects.

【0003】アウトオブオーダー実行においては、その
実行効率を高めるため、一般にレジスタリネーミング技
術が使用される。これは、命令で指定されたレジスタ
(デスチネーションレジスタ)を実行時に割当て直し、
命令間の依存関係をなくして効率を高める技術で、生成
された結果は汎用レジスタなどのアーキテクチャレジス
タに書き込まれるのに先立って、割当てられたリネーム
レジスタ番号で示されるリネームレジスタへ非命令順で
書き込まれ、後に命令順序を保証するように本来書き込
むべきアーキテクチャレジスタへと書き戻される。
In out-of-order execution, a register renaming technique is generally used to increase the execution efficiency. This means that the register (destination register) specified by the instruction is reallocated at the time of execution,
A technology that eliminates inter-instruction dependencies and increases efficiency. The generated result is written out to the rename register indicated by the assigned rename register number in non-instruction order before being written to an architectural register such as a general-purpose register. It is later written back to the architectural register where it should be written so as to guarantee the instruction order.

【0004】リネームレジスタの割当ては通常、命令を
ディスパッチする際に行われる。プロセッサがある時点
で実行中(アーキテクチャレジスタに結果を書き込んで
いない状態)の命令全てに、命令が該当するリネームレ
ジスタに結果を書き込む必要がない場合でもリネームレ
ジスタ番号を割当てられる程のリネームレジスタ数を用
意できるならば、リネームレジスタ番号割当て機構は単
純である。即ち、ディスパッチする命令に順次、循環形
式でリネームレジスタ番号を割当てればよい。しかしな
がら、全てのアーキテクチャレジスタに対して、十分な
リネームレジスタを用意することは困難である。したが
って、命令が該当するリネームレジスタの割当てを必要
としない場合には、リネームレジスタ番号を割当てない
機能を備える必要がある。
[0004] Rename register allocation is typically performed when dispatching instructions. The number of rename registers that can be assigned a rename register number even if the processor does not need to write the result to the corresponding rename register, for all the instructions that are being executed by the processor at a certain point in time (the result is not written to the architectural register). If so, the rename register number assignment mechanism is simple. That is, the rename register numbers may be sequentially assigned to the instructions to be dispatched in a cyclic manner. However, it is difficult to prepare enough rename registers for all architecture registers. Therefore, when an instruction does not need to allocate a corresponding rename register, it is necessary to provide a function that does not allocate a rename register number.

【0005】図4は、同時に4命令ディスパッチを実現
する前記機能を備えるリネームレジスタ割当て機構の一
例である。これは、割当てポインタ(RAP)410が
割当てを開始するリネームレジスタ番号を示し、以下、
加算器411〜413により割当てられる可能性のある
リネームレジスタ番号が順番に生成され、入力された各
命令の割当て要求信号によって、セレクタ414〜41
9により各命令に割当てるリネームレジスタ番号が選択
される構成となっている。セレクタ414〜419は、
割当て要求が0(割当て不要)のときは上側(a)を選
択し、割当て要求が1(割当て要)のときは下側(b)
を選択する。例えば、4命令がすべてリネームレジスタ
の割当てを必要とする場合、セレクタ414〜419は
いずれもb側を選択するため、RAP410の値がその
まま1命令目のリネームレジスタ番号に割当てられ、以
下、加算器411〜413の値が順番に2〜4命令目の
リネームレジスタ番号に割当てられる。また、例えば、
1命令目がリネームレジスタの割当てが不要で、2命令
目が必要とする場合、セレクタ414はa側を選択する
ため、RAP410の値が2命令目のリネームレジスタ
番号に割当てられる。割当て後、RAP410は次の割
当て開始番号を示すように更新される。
FIG. 4 shows an example of a rename register allocating mechanism having the above-mentioned function for realizing four-instruction dispatch at the same time. It indicates the rename register number at which the allocation pointer (RAP) 410 starts the allocation.
Rename register numbers that can be assigned by the adders 411 to 413 are generated in order, and the selectors 414 to 41 are assigned in response to the input assignment request signals of the respective instructions.
9, a rename register number assigned to each instruction is selected. The selectors 414 to 419 are
When the allocation request is 0 (no allocation required), the upper side (a) is selected, and when the allocation request is 1 (allocation required), the lower side (b) is selected.
Select For example, when all four instructions require the assignment of a rename register, the selectors 414 to 419 all select the b side, so that the value of the RAP 410 is assigned as it is to the rename register number of the first instruction. The values of 411 to 413 are sequentially assigned to the rename register numbers of the second to fourth instructions. Also, for example,
When the first instruction does not require the assignment of the rename register and the second instruction does, the selector 414 selects the a side, and the value of the RAP 410 is assigned to the rename register of the second instruction. After assignment, RAP 410 is updated to indicate the next assignment start number.

【0006】ところで、アウトオブオーダー実行を十分
に機能させるためには、できるだけ多くの命令を同時に
実行ユニットへディスパッチする必要があるが、同時に
ディスパッチする命令が多くなるほど、リネームレジス
タ番号の選択範囲が広くなるため、リネームレジスタ割
当て機構は複雑なものとなる。
By the way, in order for out-of-order execution to function sufficiently, it is necessary to dispatch as many instructions as possible to the execution unit at the same time. However, as the number of instructions to be dispatched simultaneously increases, the selection range of the rename register number becomes wider. Therefore, the rename register allocation mechanism becomes complicated.

【0007】プロセッサの備える命令の中に同じアーキ
テクチャレジスタに書き込む複数の結果を発生する命
令、つまり、結果を格納するために同じリネームレジス
タを複数割当てることを要求する命令がある場合には、
同時にディスパッチする命令の数の増加に対するリネー
ムレジスタの選択範囲の広がる割合が大きくなるため、
リネームレジスタ割当て機構は論理回路として高速な動
作が難しくなる。
In the case where an instruction included in the processor generates a plurality of results to be written to the same architectural register, that is, an instruction requesting the assignment of a plurality of the same rename registers to store the result,
The ratio of the selection range of the rename register to the increase in the number of instructions dispatched simultaneously increases,
It becomes difficult for the rename register allocation mechanism to operate at high speed as a logic circuit.

【0008】図5は、2つのリネームレジスタの割当て
を要求する命令をもつプロセッサにおける4命令同時デ
ィスパッチを実現するリネームレジスタ割当て機構の一
例を示したもので、割当てポインタ(RAP)510、
加算器511〜517、及びセレクタ518〜545で
構成される。動作は図4に示す機構と同じであるが、1
つの命令に対して1つしかリネームレジスタを割当てな
い場合に比べ、同時ディスパッチ命令数は同じでもその
構造は複雑である。
FIG. 5 shows an example of a rename register allocating mechanism for realizing simultaneous dispatch of four instructions in a processor having an instruction requesting the allocation of two rename registers, and includes an allocation pointer (RAP) 510,
It comprises adders 511-517 and selectors 518-545. The operation is the same as the mechanism shown in FIG.
Compared to the case where only one rename register is assigned to one instruction, the structure is complicated even though the number of simultaneous dispatch instructions is the same.

【0009】[0009]

【発明が解決しようとする課題】本発明の目的は、リネ
ームレジスタを用いたアウトオブオーダー実行機能を備
え、同じアーキテクチャレジスタに書き込む複数の結果
を生成する命令をもつプロセッサにおいて、リネームレ
ジスタの割当て要求は最大でも1である命令しかもたな
いプロセッサと同等の複雑さでリネームレジスタの割当
て機構を実現することにある。
SUMMARY OF THE INVENTION An object of the present invention is to provide a processor having an out-of-order execution function using a rename register and having an instruction for generating a plurality of results to be written to the same architectural register. Is to realize a mechanism for allocating a rename register with the same complexity as a processor having only one instruction at a maximum.

【0010】[0010]

【課題を解決するための手段】本発明は、リネームレジ
スタを複数のグループに分け、複数のグループのリネー
ムレジスタをそれぞれ割当てるリネームレジスタ割当て
機構を備える。そして、複数の実行結果を同じアーキテ
クチャレジスタに格納する命令にリネームレジスタを割
付ける場合には、各々の結果に、複数のグループのそれ
ぞれのリネームレジスタを割当てるようにする。これに
より、実行結果を格納するためにリネームレジスタを複
数割当てることを要求する命令がある場合にも、割当て
要求が一つである場合と同等の規模でリネームレジスタ
割当て機構を実現でき、高速にリネームレジスタを割当
てることが可能になる。
SUMMARY OF THE INVENTION The present invention comprises a rename register allocating mechanism for dividing rename registers into a plurality of groups and allocating a plurality of groups of rename registers. When assigning a rename register to an instruction for storing a plurality of execution results in the same architectural register, a plurality of groups are respectively assigned to the rename registers. As a result, even when there is an instruction requesting that a plurality of rename registers be allocated to store the execution result, a rename register allocation mechanism can be realized with the same scale as when there is only one allocation request, and the rename can be performed at high speed. Registers can be allocated.

【0011】[0011]

【発明の実施の形態】以下、本発明によるアウトオブオ
ーダー実行機能を備えるプロセッサの一実施形態を図面
により詳細に説明する。なお、以下の実施形態では、リ
ネームレジスタを二つのグループに分けるとするが、本
発明はこれに限定されないことは云うまでもない。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of a processor having an out-of-order execution function according to the present invention will be described below in detail with reference to the drawings. In the following embodiments, the rename registers are divided into two groups, but it goes without saying that the present invention is not limited to this.

【0012】図1は、本発明の一実施形態にかかる二つ
にグループ分けしたリネームレジスタを用いたアウトオ
ブオーダー実行機能を備えるプロセッサの構成例を示す
ブロック図である。本プロセッサ100は、命令フェッ
チ装置101、命令デコーダ102、リネームレジスタ
割当て装置A103、リネームレジスタ割当て装置B1
04、リネームレジスタ対応テーブル管理装置105、
実行ユニット106、リオーダバッファ107、完了装
置108、リネームレジスタ109、アーキテクチャレ
ジスタ110より構成される。なお、プロセッサ100
は、全体をワンチップで構成するかは任意である。
FIG. 1 is a block diagram showing a configuration example of a processor having an out-of-order execution function using two groups of rename registers according to an embodiment of the present invention. The processor 100 includes an instruction fetch device 101, an instruction decoder 102, a rename register allocating device A103, and a rename register allocating device B1.
04, the rename register correspondence table management device 105,
It comprises an execution unit 106, a reorder buffer 107, a completion device 108, a rename register 109, and an architecture register 110. The processor 100
It is optional whether the whole is constituted by one chip.

【0013】本実施形態では、アーキテクチャレジスタ
110のエントリ数はR0からR31の32本、リネー
ムレジスタ109のエントリ数はB0からB39の40
本とし、該リネームレジスタ109をB0からB31ま
でを第1グループGPA、B31からB39までを第2
グループGPBとして区別する。同時にディスパッチ可
能な命令は4命令とする。また、プロセッサ100が実
行する命令の中には2つの結果を発生するものがあり、
1つめの結果をターゲットA、2つめの結果をターゲッ
トBとして区別する。命令上では、その結果の出力先
(デスチネーション)、値の参照先(ソース)として、
同じアーキテクチャレジスタ番号しか用いることはでき
ない。
In this embodiment, the number of entries in the architecture register 110 is 32 from R0 to R31, and the number of entries in the rename register 109 is 40 from B0 to B39.
The rename register 109 is defined as a first group GPA for B0 to B31 and a second group for B31 to B39.
It is distinguished as group GPB. There are four instructions that can be dispatched at the same time. Some of the instructions executed by the processor 100 produce two results.
The first result is identified as target A, and the second result is identified as target B. In the instruction, as the output destination (destination) of the result and the reference destination (source) of the value,
Only the same architecture register number can be used.

【0014】プロセッサ100は命令フェッチ装置10
1により、図示しない外部メモリあるいは命令キャッシ
ュなどから命令を読出し、命令デコーダ102へ渡す。
The processor 100 includes an instruction fetch device 10
In step 1, an instruction is read from an external memory or an instruction cache (not shown) and passed to the instruction decoder 102.

【0015】命令デコーダ102はフェッチ装置101
より最大4つの命令を受け取り、実行ユニット106に
該命令をディスパッチするとともに、リオーダーバッフ
ァ107へ結果を格納するアーキテクチャレジスタ番
号、および命令の完了条件等を示す制御情報を伝え、リ
ネームレジスタ対応テーブル管理装置105へ、命令が
結果を書き込むアーキテクチャレジスタ番号(デスチネ
ーションレジスタ番号)および値を参照するアーキテク
チャレジスタ番号(ソースレジスタ番号)を伝える。こ
の命令デコーダ102にはターゲットA検出部1021
とターゲットB検出部1022が含まれる。ターゲット
A検出部1021は1つ目の実行結果が命令に存在する
かどうかを調査し、リネームレジスタ割当て装置A10
3へ、当該命令に対するリネームレジスタ割当て要求の
要否を伝える。同じくターゲットB検出装置1022
は、2つ目の実行結果が命令に存在するかどうかを調査
し、リネームレジスタ割当て装置B104へ、当該命令
に対応するリネームレジスタ割当て要求の要否を伝え
る。
The instruction decoder 102 is a fetch device 101
It receives a maximum of four instructions, dispatches the instructions to the execution unit 106, and transmits control information indicating the architecture register number for storing the result to the reorder buffer 107 and the completion condition of the instruction, and manages the rename register correspondence table. The architecture register number (destination register number) where the instruction writes the result and the architecture register number (source register number) referencing the value are transmitted to the device 105. The instruction decoder 102 includes a target A detection unit 1021
And a target B detection unit 1022. The target A detection unit 1021 checks whether the first execution result exists in the instruction, and determines whether the first execution result exists in the rename register allocating device A10.
3 is notified of the necessity of a rename register allocation request for the instruction. Similarly, target B detection device 1022
Examines whether the second execution result is present in the instruction, and informs the rename register allocator B104 of the necessity of the rename register allocation request corresponding to the instruction.

【0016】リネームレジスタ割当て装置A103は、
命令デコーダ102のターゲットA検出部1021から
の情報をもとに、リネームレジスタ109の第1グルー
プGPAの中より、割当て要の各々の命令にリネームレ
ジスタ(番号)を割当て、実行ユニット106に伝える
とともに、つぎの命令デコードのために、リネームレジ
スタ対応テーブル1051を更新する。このリネームレ
ジスタ割当て装置A103はターゲットAに対するリネ
ームレジスタのみを割当てるためのもので、一度に割当
てるリネームレジスタは最大4つである。
The rename register allocating device A103 comprises:
Based on information from the target A detection unit 1021 of the instruction decoder 102, a rename register (number) is assigned to each instruction that needs to be assigned from the first group GPA of the rename register 109, and transmitted to the execution unit 106. Then, the rename register correspondence table 1051 is updated for the next instruction decoding. The rename register allocating device A103 is for allocating only the rename registers for the target A, and the maximum number of the rename registers allocated at a time is four.

【0017】リネームレジスタ割当て装置A103のよ
り詳細な構成を図2に示す。図中、1030は割当てを
開始するリネームレジスタ番号を示す割当てポインタ
(GPAP)、1031〜1033は加算器、1034
〜1039はセレクタであり、動作は図4と基本的に同
じである。ただし、ポインタGPAP1030はリネー
ムレジスタ109の第1グループGPAのいずれかの番
号を示すように制御される。また、このポインタ103
0に、それぞれ加算器1031、1032、1033で
示される値を加えても常にGPAの内のレジスタ番号を
示すように、該リネームレジスタ割当て装置A103内
で制御される。
FIG. 2 shows a more detailed configuration of the rename register allocating device A103. In the figure, reference numeral 1030 denotes an allocation pointer (GPAP) indicating a rename register number to start allocation, 1031 to 1033 are adders, 1034
Reference numerals 1039 to 1039 denote selectors, whose operations are basically the same as those in FIG. However, the pointer GPAP1030 is controlled to indicate any number of the first group GPA of the rename register 109. Also, this pointer 103
Even when the values indicated by the adders 1031, 1032, and 1033 are respectively added to 0, the control is performed in the rename register allocating device A 103 so as to always indicate the register number in the GPA.

【0018】リネームレジスタ割当て装置B104は、
命令デコーダ102のターゲットB検出部1022から
の情報をもとに、リネームレジスタ109の第2グルー
プGPBの中より、割当て要の各々の命令にリネームレ
ジスタを割当て、実行ユニット106に伝えるととも
に、次の命令デコードのために、リネームレジスタ対応
テーブル1052を更新する。このリネームレジスタ割
当て装置B104はターゲットBに対するリネームレジ
スタを割当てるためのもので、リネームレジスタ割当て
装置A103と同様に、一度に割当てるリネームレジス
タは最大4つである。
The rename register allocating device B104 comprises:
Based on information from the target B detection unit 1022 of the instruction decoder 102, a rename register is assigned to each of the instructions that need to be assigned from the second group GPB of the rename register 109, and transmitted to the execution unit 106, Update the rename register correspondence table 1052 for instruction decoding. The rename register allocating device B104 is for allocating a rename register to the target B. Like the rename register allocating device A103, a maximum of four rename registers are allocated at a time.

【0019】リネームレジスタ割当て装置B104のよ
り詳細な構成を図3に示す。図中、1040は割当てを
開始するリネームレジスタ番号を示す割当てポインタ
(GPBP)、1041〜1043は加算器、1044
〜1049はセレクタであり、動作は図2と同様に図4
と基本的に同じである。ただし、ポインタGPBP10
40はリネームレジスタ109の第2グループGPBの
いずれかの番号を示すように制御される。また、このポ
インタ1040に、それぞれ加算器1041、104
2、1043で示される値を加えても常にGPBの中の
レジスタ番号を示すように、該リネームレジスタ割当て
装置B104内で制御される。
FIG. 3 shows a more detailed configuration of the rename register allocating device B104. In the figure, reference numeral 1040 denotes an allocation pointer (GPBP) indicating a rename register number to start allocation, 1041 to 1043 denote adders, 1044
1049 are selectors, the operation of which is the same as that of FIG.
And basically the same. However, the pointer GPBP10
40 is controlled so as to indicate any number of the second group GPB of the rename register 109. Also, adders 1041 and 104 are added to the pointer 1040, respectively.
Even if the value indicated by 2,1043 is added, the value is controlled in the rename register allocating device B104 so as to always indicate the register number in GPB.

【0020】リネームレジスタ対応テーブル管理装置1
05は、命令デコーダ102から伝えられる命令が結果
を書き込むアーキテクチャレジスタ番号(デスチネーシ
ョンレジスタ番号)とリネームレジスタ割当て装置10
3、104で割当てられているリネームレジスタ番号と
の対応を示すリネームレジスタ対応テーブル1051、
1052を管理している。該リネームレジスタ対応テー
ブル管理装置105は、命令デコーダ102より各命令
が参照するアーキテクチャレジスタ番号(ソースレジス
タ番号)を受け取ると、リネームレジスタ対応テーブル
1051、1052を参照して、実行する命令が参照す
る値をどのリネームレジスタから読み出せばよいのか、
またはアーキテクチャレジスタから直接読み出せばよい
のかを判断し、実行ユニット106へ伝える。アーキテ
クチャレジスタ番号とリネームレジスタ番号との対応を
示すテーブル1051、1052は命令デコーダ102
から伝えられる命令が結果を格納するアークテクチャレ
ジスタ番号と、リネームレジスタ割当て装置A103
や、リネームレジスタ割当て装置B104が割当てたリ
ネームレジスタ番号、及び、完了装置108がアーキテ
クチャレジスタへ結果を書き戻したリネームレジスタ番
号により更新される。
Rename register correspondence table management device 1
Reference numeral 05 denotes an architecture register number (a destination register number) in which an instruction transmitted from the instruction decoder 102 writes a result, and a rename register allocating device 10.
Rename register correspondence table 1051, which indicates the correspondence with the rename register numbers allocated in 3, 104
1052 is managed. Upon receiving the architecture register number (source register number) referred to by each instruction from the instruction decoder 102, the rename register correspondence table management device 105 refers to the rename register correspondence tables 1051 and 1052, and refers to the value referred to by the instruction to be executed. From which rename register should be read,
Alternatively, it is determined whether reading should be performed directly from the architecture register, and the result is transmitted to the execution unit 106. Tables 1051 and 1052 indicating the correspondence between the architecture register number and the rename register number are stored in the instruction decoder 102.
Register number of the architecture register in which the instruction transmitted from is stored the result
And the rename register number assigned by the rename register assignment device B 104 and the rename register number whose completion unit 108 has written back the result to the architecture register.

【0021】実行ユニット106は、命令デコーダ10
1、リネームレジスタ割当て装置A103、リネームレ
ジスタ割当て装置B104、及びリネームレジスタ対応
テーブル管理装置105からの情報にしたがい、リネー
ムレジスタ109あるいはアーキテクチャレジスタ11
0を使用して、実行が可能になった命令から順に命令を
実行し、結果をリネームレジスタ109に対して書き込
み、実行が終了したことを完了装置108へ伝える。
The execution unit 106 includes the instruction decoder 10
1. According to the information from the rename register allocating device A 103, the rename register allocating device B 104, and the rename register correspondence table managing device 105, the rename register 109 or the architecture register 11
Using 0, the instructions are executed in order from the instruction that has become executable, the result is written to the rename register 109, and the completion of the execution is notified to the completion unit 108.

【0022】リネームレジスタ109に書き込まれた結
果は、完了装置108により、リーダーバッファ107
の情報をもとに、命令順を保証するように対応するアー
キテクチャレジスタ110へと書き込まれ、命令の実行
を完了する。また、完了装置108は、アーキテクチャ
レジスタ110に結果を書き込んだネームレジスタ番号
をリネームレジスタ対応テーブル管理装置105に伝え
る。
The result written to the rename register 109 is sent to the reader buffer 107 by the completion unit 108.
Is written into the corresponding architectural register 110 so as to guarantee the order of instructions, and the execution of the instruction is completed. Further, the completion device 108 notifies the rename register correspondence table management device 105 of the name register number that has written the result in the architecture register 110.

【0023】以上、実施形態の説明では、1種類のアー
キテクチャレジスタとそれに対応するリネームレジス
タ、1つの命令に割当てるリネームレジスタ数を最大2
つに限定したが、これらの制限を変更した場合について
も、当技術分野の技術者にとっては容易に理解できるも
のであるため、ここでは説明は省略する。
As described above, in the description of the embodiment, one type of architectural register, the corresponding rename register, and the maximum number of rename registers assigned to one instruction are two.
However, even if these restrictions are changed, it can be easily understood by those skilled in the art, and thus the description thereof is omitted here.

【0024】[0024]

【発明の効果】以上説明したように、本発明によれば、
リネームレジスタを複数のグループに分割し、分割した
それぞれのグループの中からリネームレジスタの割当て
を行うことで、複数のリネームレジスタの割当てを要求
する命令が存在したとしても、1つの命令には最大でも
1つのリネームレジスタしか割当てない場合と同程度の
構造でリネームレジスタの割当て機構を実現することが
でき、高速にリネームレジスタを割当てることが可能に
なる。
As described above, according to the present invention,
By dividing the rename registers into a plurality of groups and allocating the rename registers from each of the divided groups, even if there is an instruction requesting the assignment of a plurality of rename registers, at most one instruction can A mechanism for allocating rename registers can be realized with a structure similar to that in the case where only one rename register is allocated, and it becomes possible to allocate rename registers at high speed.

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

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

【図2】図1のリネームレジスタ割当て装置Aの詳細構
成図である。
FIG. 2 is a detailed configuration diagram of a rename register allocating apparatus A of FIG. 1;

【図3】図1のリネームレジスタ割当て装置Bの詳細構
成図である。
FIG. 3 is a detailed configuration diagram of a rename register allocating device B of FIG. 1;

【図4】リネームレジスタ割当て装置の基本構成例を示
す図である。
FIG. 4 is a diagram illustrating a basic configuration example of a rename register allocating device.

【図5】従来の技術でのリネームレジスタ割当て装置の
構成例を示す図である。
FIG. 5 is a diagram showing a configuration example of a rename register allocating device according to a conventional technique.

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

101 命令フェッチ装置 102 命令デコーダ 1021 ターゲットA検出部 1022 ターゲットB検出部 103 リネームレジスタ割当て装置A 104 リネームレジスタ割当て装置B 105 リネームレジスタ対応テーブル管理装置 1051、1052 リネームレジスタ対応テーブル 106 実行ユニット 107 リオーダーバッファ 108 完了装置 109 リネームレジスタ 110 アーキテクチャレジスタ Reference Signs List 101 instruction fetch device 102 instruction decoder 1021 target A detection unit 1022 target B detection unit 103 rename register allocation device A 104 rename register allocation device B 105 rename register correspondence table management device 1051, 1052 rename register correspondence table 106 execution unit 107 reorder buffer 108 Completion device 109 Rename register 110 Architecture register

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】 リネームレジスタを用いたアウトオブオ
ーダー実行機能を備えるプロセッサであって、 複数のリネームレジスタを複数のグループに分け、それ
ぞれのグループの中からリネームレジスタを割当てるリ
ネームレジスタ割当て機構を備えることを特徴とするプ
ロセッサ。
1. A processor having an out-of-order execution function using a rename register, comprising: a rename register allocating mechanism for dividing a plurality of rename registers into a plurality of groups and allocating a rename register from each group. A processor characterized by the above-mentioned.
【請求項2】 請求項1記載のプロセッサにおいて、リ
ネームレジスタ割当て機構は、複数の実行結果を同一の
アーキテクチャレジスタに格納する命令について、各々
の結果に、複数のグループのリネームレジスタを割当て
ることを特徴とするプロセッサ。
2. The processor according to claim 1, wherein the rename register allocating mechanism allocates a plurality of groups of rename registers to each result of an instruction for storing a plurality of execution results in the same architecture register. And processor.
JP2000044077A 2000-02-22 2000-02-22 Processor equipped with out-of-order executing function Pending JP2001236222A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000044077A JP2001236222A (en) 2000-02-22 2000-02-22 Processor equipped with out-of-order executing function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000044077A JP2001236222A (en) 2000-02-22 2000-02-22 Processor equipped with out-of-order executing function

Publications (1)

Publication Number Publication Date
JP2001236222A true JP2001236222A (en) 2001-08-31

Family

ID=18566901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000044077A Pending JP2001236222A (en) 2000-02-22 2000-02-22 Processor equipped with out-of-order executing function

Country Status (1)

Country Link
JP (1) JP2001236222A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010218076A (en) * 2009-03-16 2010-09-30 Nec Computertechno Ltd Vector arithmetic unit and vector arithmetic method
US10430197B2 (en) 2017-05-12 2019-10-01 Samsung Electronics Co., Ltd. Banking register renaming to reduce power

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010218076A (en) * 2009-03-16 2010-09-30 Nec Computertechno Ltd Vector arithmetic unit and vector arithmetic method
US10430197B2 (en) 2017-05-12 2019-10-01 Samsung Electronics Co., Ltd. Banking register renaming to reduce power

Similar Documents

Publication Publication Date Title
US7650486B2 (en) Dynamic recalculation of resource vector at issue queue for steering of dependent instructions
KR100290325B1 (en) A processor with long instruction words
KR0122529B1 (en) Method and system for single cycle dispatch of multiple instruction in a superscalar processor system
JP3561915B2 (en) System and method for assigning tags to control instruction processing in a superscalar processor
US8656401B2 (en) Method and apparatus for prioritizing processor scheduler queue operations
US9244883B2 (en) Reconfigurable processor and method of reconfiguring the same
US8418180B2 (en) Thread priority method for ensuring processing fairness in simultaneous multi-threading microprocessors
US6408377B2 (en) Dynamic allocation of resources in multiple microprocessor pipelines
US7028286B2 (en) Methods and apparatus for automated generation of abbreviated instruction set and configurable processor architecture
KR100295081B1 (en) System and method for assigning tags to commands for command execution control
US5898882A (en) Method and system for enhanced instruction dispatch in a superscalar processor system utilizing independently accessed intermediate storage
US20090100249A1 (en) Method and apparatus for allocating architectural register resources among threads in a multi-threaded microprocessor core
US7203820B2 (en) Extending a register file utilizing stack and queue techniques
JPH05224921A (en) Data processing system
KR101466934B1 (en) Distributed dispatch with concurrent, out-of-order dispatch
US6978358B2 (en) Executing stack-based instructions within a data processing apparatus arranged to apply operations to data items stored in registers
US20100325631A1 (en) Method and apparatus for increasing load bandwidth
US7315935B1 (en) Apparatus and method for port arbitration in a register file on the basis of functional unit issue slots
JP2001236222A (en) Processor equipped with out-of-order executing function
JP7325437B2 (en) Devices and processors that perform resource index permutation
JP2009252133A (en) Device and method for processing vector
US5386586A (en) System and method for construction of lists of deferred service requests
JPH1091442A (en) Processor
JP2742245B2 (en) Parallel computer
JP2001350627A (en) Digital signal processor, parallel processing method and recording medium