JPH081601B2 - Information processing device - Google Patents

Information processing device

Info

Publication number
JPH081601B2
JPH081601B2 JP59257585A JP25758584A JPH081601B2 JP H081601 B2 JPH081601 B2 JP H081601B2 JP 59257585 A JP59257585 A JP 59257585A JP 25758584 A JP25758584 A JP 25758584A JP H081601 B2 JPH081601 B2 JP H081601B2
Authority
JP
Japan
Prior art keywords
instruction
register
branch
executed
physical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP59257585A
Other languages
Japanese (ja)
Other versions
JPS61136132A (en
Inventor
茂雄 武内
洋一 新谷
亨 庄内
栄樹 釜田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP59257585A priority Critical patent/JPH081601B2/en
Publication of JPS61136132A publication Critical patent/JPS61136132A/en
Publication of JPH081601B2 publication Critical patent/JPH081601B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、動的レジスタ割り当てあるいはレジスタ名
称変更により複数命令を並列に処理することが可能で、
しかも、分岐命令を予測で実行することができる情報処
理装置に関する。
DETAILED DESCRIPTION OF THE INVENTION Field of the Invention The present invention is capable of processing a plurality of instructions in parallel by dynamic register allocation or register name change.
Moreover, the present invention relates to an information processing device capable of predictively executing a branch instruction.

〔発明の背景〕[Background of the Invention]

複数命令の並列処理によって高速化を図る一方式とし
て、動的レジスタ割り当てあるいはレジスタ名称変更と
言える方法がある。この方法では、命令が指定するレジ
スタ番号により指定可能な数より多い、命令が指定する
レジスタ番号に動的に割り当て可能な複数のレジスタを
情報処理装置内に予め実装し、同じレジスタ番号を指定
し、その番号のレジスタにデータを書き込むことを要求
する複数の命令に対して、互いに異なるレジスタを割り
当て、それぞれの命令が要求するデータを一時的にそれ
ぞれの命令に割り当てられたレジスタに書き込む。それ
により、それぞれの命令が要求する、レジスタへのデー
タの書き込みをこのような異なるレジスタに対して実行
させることにより、これらの命令を並列に実行可能とす
るものである。この方法では、装置内に実装された複数
のレジスタは、時間の経過とともに、いろいろのレジス
タ番号のレジスタとして使用される。その意味でレジス
タの動的割り当てであり、あるいは各レジスタが割り当
てられるレジスタ番号が変更されると言う意味でレジス
タの名称変更と言える。以下では動的割り当てあるいは
レジスタ名称の変更を、簡単化のために単にレジスタの
動的割り当てと呼ぶことがある。このような方法を具体
的に実現する装置の一例は、たとえば、特願昭58−2377
7号明細書(特開昭60−129838号明細書)あるいは特開
昭57−166649号明細書に記載されている。
One method for increasing the speed by parallel processing of multiple instructions is dynamic register allocation or register name change. In this method, a plurality of registers that are dynamically assignable to the register numbers specified by the instructions, which are larger than those which can be specified by the register numbers specified by the instructions, are mounted in advance in the information processing device and the same register numbers are , Different registers are assigned to a plurality of instructions requesting to write data to the register of that number, and the data required by each instruction is temporarily written to the register assigned to each instruction. Thus, by writing data to the registers required by the respective instructions to the different registers, the instructions can be executed in parallel. In this method, a plurality of registers implemented in the device are used as registers having various register numbers with the passage of time. In that sense, it can be said that the register is dynamically assigned, or that the register number to which each register is assigned is changed, and the name of the register is changed. Hereinafter, the dynamic allocation or the change of the register name may be simply referred to as dynamic register allocation for simplicity. An example of an apparatus that specifically realizes such a method is disclosed in, for example, Japanese Patent Application No. 58-2377.
No. 7 (JP-A-60-129838) or JP-A-57-166649.

一方、近年、分岐命令の実行を高速化するために、分
岐命令が指定する分岐判定を結果が確定する前に、予め
定めた方法により、分岐が成功したあるいは分岐が不成
功であると予測して、分岐先命令とそれに続く命令列あ
るいは分岐命令に続く命令列のどちらかを実行するとい
う分岐命令の予測実行という技術が知られている。
On the other hand, in recent years, in order to speed up the execution of a branch instruction, before the result of the branch decision designated by the branch instruction is confirmed, a predetermined method is used to predict that the branch is successful or unsuccessful. Then, a technique called predictive execution of a branch instruction is known in which either a branch destination instruction and an instruction sequence following it or an instruction sequence following the branch instruction are executed.

したがって、上に例示したレジスタの動的割り当てあ
るいはレジスタ名称変更という技術を使用する場合で
も、この分岐命令の予測実行を実行できることが望まし
い。しかし、従来技術には、このことを考慮したものは
ない。
Therefore, it is desirable to be able to execute the predictive execution of this branch instruction even when using the technique of dynamically allocating registers or renaming registers as illustrated above. However, none of the prior art considers this.

レジスタの動的な割り当てあるいはレジシタ名称変更
を採用する装置にこの分岐命令の予測実行を採用する
と、分岐命令の予測実行中でも、いずれかのレジスタ書
き込み命令にレジスタを新に割り当てることになる。し
かし、後にこの分岐の予測が外れていたと判明したとき
には、この予測状態で実行された命令の実行を無効にす
る必要がある。したがって、これらの命令の実行を無効
にする処理を簡単化することが望まれる。
If the predictive execution of this branch instruction is adopted in a device that adopts dynamic register allocation or register name change, a register will be newly allocated to any register write instruction even during predictive execution of the branch instruction. However, when it is later determined that the prediction of the branch is incorrect, it is necessary to invalidate the execution of the instruction executed in the predicted state. Therefore, it is desired to simplify the process of invalidating the execution of these instructions.

このためには、各レジスタの割り当て状態を示す情報
あるいは各レジスタに割り当てられたレジスタ名称(以
下、これらを単にレジスタの割り当て情報と言うことが
ある)を分岐命令に実行前の状態に戻す処理を簡単に行
えることが望ましい。
To this end, the process of returning the information indicating the allocation state of each register or the register name assigned to each register (hereinafter, these may be simply referred to as register allocation information) to the branch instruction before execution is performed. It should be easy to do.

さらに、レジスタの動的割り当てを使用するには、い
ずれかの命令にレジスタを割り当てるときには、開き状
態にあるレジスタを割り当てる。したがって、分岐命令
の予測実行状態において実行された命令の実行を無効に
するとき、空きレジスタに関する情報を予測実行前に戻
す処理を簡単に行えることが望ましい。
Further, to use dynamic register allocation, when allocating a register for any instruction, allocate the register in the open state. Therefore, when invalidating the execution of an instruction executed in the predicted execution state of a branch instruction, it is desirable to be able to easily perform a process of returning information on an empty register to a state before the execution of prediction.

また、予測状態で実行されたレジスタ書き込み命令に
よってもいずれかのレジスタの内容が更新されてしま
う。したがって、この命令を無効にするときには、この
レジスタの状態を分岐命令実行前の状態に戻す必要があ
る。したがって、このような処理を簡単に行えることが
望ましい。
Further, the contents of any of the registers are updated by the register write command executed in the prediction state. Therefore, when invalidating this instruction, it is necessary to return the state of this register to the state before execution of the branch instruction. Therefore, it is desirable that such processing can be easily performed.

〔発明の目的〕[Object of the Invention]

本発明の目的は、動的レジスタ割り当てあるいはレジ
スタ名称変更を採用するデータ処理装置内において、分
岐予測失敗時にレジスタの有り当て情報を分岐命令の実
行前の状態に簡単に戻すことが出来る情報処理装置を提
供することにある。
An object of the present invention is to provide an information processing apparatus that can easily return register presence information to a state before execution of a branch instruction when a branch prediction fails in a data processing apparatus that employs dynamic register allocation or register name change. To provide.

〔発明の概要〕[Outline of Invention]

本発明においては、動的レジスタ割り当てあるいはレ
ジスタ名称変更を採用するデータ処理装置内において、
分岐予測実行直前のレジスタ割り当て情報を退避する手
段と、予測が失敗と判明したときに、退避されたレジス
タ割り当て情報を回復する手段とを設ける。
In the present invention, in a data processing device that employs dynamic register allocation or register name change,
A means for saving the register allocation information immediately before the execution of the branch prediction and a means for recovering the saved register allocation information when the prediction is found to have failed are provided.

〔発明の実施例〕Example of Invention

以下、本発明の一実施例を説明する。説明の都合上、
日立製作所のMシリーズアーキテクチャに基づく情報処
理を、以下の説明の前提とする。第1図に典型的な命令
フォーマットを示す。すなわち命令は、演算の種類を示
すOP部、第1オペランドが格納されているレジスタ番号
を示すR1部、第2オペランドが格納されているメモリア
ドレスを作成するためのインデクスレジスタ番号を示す
X2部、同じくベースレジスタ番号を示すB2部、同じくデ
ィスプレースメントを示すD2部とからなる。例外の一つ
として、Branch on Condition命令(以下BC命令と略記
する)がある。BC命令ではR1部の位置に、分岐する条件
を設定するためのマスク(M1部)が置かれる。
An embodiment of the present invention will be described below. For convenience of explanation,
Information processing based on the M series architecture of Hitachi, Ltd. is presupposed in the following description. FIG. 1 shows a typical instruction format. That is, the instruction indicates the OP part indicating the type of operation, the R1 part indicating the register number in which the first operand is stored, and the index register number for creating the memory address in which the second operand is stored.
It consists of X2 part, B2 part which also shows the base register number, and D2 part which also shows the displacement. The Branch on Condition instruction (hereinafter abbreviated as BC instruction) is one of the exceptions. In the BC instruction, a mask (M1 part) for setting a branch condition is placed at the position of R1 part.

第2図では、本実施例で実行される命令例の例を示し
ている。第1番目の命令Aは、X2,B2で示されるレジス
タの内容とD2を加算して得られるアドレスaの内容をR1
で示される汎用レジスタ(以下GRと略記する)1番の内
容に加算しその結果を同じく1番のGR(これをGR1と記
す)に格納しその加算結果によって条件コード(以下CC
と略記する)を設定する、いわゆるRXタイプの加算命令
である。第2番目の命令BCは、設定されているCCとマス
クによって、次にBC命令のメモリ上で次の命令を実行す
るか、あるいはbで示されるアドレスに格納されている
命令(以下、ターゲット命令と呼ぶ)を実行するかを決
定し、プログラム状態語内の令令アドレスフィールドの
値を実行すべき命令の命令アドレスに置き換える分岐命
令である。第3番目の命令Lは、アドレスCの内容をGR
1に転送する命令である。第4,5,6番目の命令は、R1部、
第2オペランドアドレスが異なる点を除いては、第3番
目の命令と同じく、ロード命令である。
FIG. 2 shows an example of instructions executed in this embodiment. The first instruction A is the contents of the address a obtained by adding D2 and the contents of the register indicated by X2 and B2 to R1.
Add to the contents of No. 1 general purpose register (abbreviated as GR below) and store the result in No. 1 GR (also referred to as GR1).
This is a so-called RX type addition instruction. The second instruction BC executes the next instruction on the memory of the BC instruction or the instruction stored at the address indicated by b (hereinafter, the target instruction depending on the set CC and mask). Is a branch instruction that replaces the value of the command address field in the program state word with the instruction address of the instruction to be executed. The third instruction L uses the contents of address C as GR
This is an instruction to transfer to 1. The fourth, fifth and sixth instructions are the R1 part,
It is a load instruction like the third instruction except that the second operand address is different.

第3図は、本実施例の情報処理装置において、第2図
で示した命令列を実行したときの概略のタイムチャート
である。横軸は処理の時刻をあらわし、処理の時間的単
位であるサイクルの開始時刻毎に目盛り付けされ、左か
らT0,T1,……,T7と呼ぶ。ある時刻TiからTi+1までの時
間をサイクルと呼び、それを左から第0サイクル(C0
略記,以下同様),C1,……,と名付ける。縦方向には、
この情報処理装置において重要な構成要素である命令レ
ジスタ(命令を保持しておくレジスタ)と並列動作可能
なn+1個の演算器E0,E1,……,Enおよび分岐命令にお
いて分岐するか否かを判定する分岐判定回路を示してい
る。
FIG. 3 is a schematic time chart when the instruction sequence shown in FIG. 2 is executed in the information processing apparatus of this embodiment. The horizontal axis represents the processing time, which is graduated for each start time of the cycle, which is a time unit of the processing, and is called T 0 , T 1 , ..., T 7 from the left. The time from a certain time T i to T i + 1 is called a cycle, and it is named the 0th cycle from the left (abbreviated as C 0 , the same hereinafter), C 1 , ... In the vertical direction,
Whether to branch in n + 1 arithmetic units E 0 , E 1 , ..., E n and a branch instruction that can operate in parallel with an instruction register (register that holds instructions) that is an important component in this information processing device The branch determination circuit which determines whether or not is shown.

T0で命令レジスタにセットされた第1番目の命令Aは
ただちに演算器E0を起動し、C0,C1,C2,C3の4サイクル
をかけて演算を行ない、C3サイクルの終点時点において
演算結果にしたがってCCを設定する。命令レジスタに
は、演算器または分岐判定回路に起動をかけたとき、次
に処理すべき命令がセットされる。すなわち、T1におい
て第2番目の命令BCがセットされる。BC命令はただちに
分岐判定回路を起動し、C3で設定される判定に必要な命
令AのCCに従ってC4サイクルで分岐判定を行なう。BC命
令が命令レジスタにセットされてから分岐判定がなされ
る間、すなわちC2,C3,C4サイクルでは、BC命制の次の命
令列を処理すべきか、あるいはターゲット命令を処理す
べきか不明である。このような状態で、分岐が成立する
かもしくは成立しないと予測して、それぞれ分岐先の命
令列あるいは分岐命令に続く命令を仮に実行する方法が
知られている(以下このような予測で命令を実行する状
態を予測状態と呼ぶ)。本実施例では、例えば、分岐が
不成立になると予測し、BC命令のメモリ上で次の命令列
の処理を行なう。C2,C3,C4サイクルを予測サイクル、そ
の状態下で命令レジスタにセットされた命令を予測命令
と呼ぶ。このような処理を行なうことにより、分岐不成
立時の性能劣化を防ぐことができる。
Start the first instruction A immediately calculator E 0 which is set in the instruction register at T 0, C 0, C 1 , C 2, performs an operation over the four cycles of C 3, C 3 to cycles Set CC according to the calculation result at the end point. When the arithmetic unit or the branch determination circuit is activated, an instruction to be processed next is set in the instruction register. That is, the second instruction BC is set at T 1 . The BC instruction immediately activates the branch decision circuit and makes a branch decision in the C 4 cycle according to the CC of the instruction A required for the decision set in C3. While BC instruction is made branch judgment from being set in the instruction register, i.e. C 2, C 3, C in 4 cycles, it should process the next instruction sequence BC life system, or not known to be processed target instructions Is. In such a state, there is known a method of predicting that a branch will be taken or not taken, and tentatively executing an instruction sequence at a branch destination or an instruction subsequent to a branch instruction (hereinafter, an instruction is predicted by such prediction. The state to execute is called the prediction state). In the present embodiment, for example, it is predicted that the branch will not be taken and the next instruction sequence is processed on the memory of the BC instruction. The C 2 , C 3 , and C 4 cycles are called prediction cycles, and the instruction set in the instruction register under that state is called a prediction instruction. By performing such processing, it is possible to prevent performance degradation when a branch is not taken.

T2において第3番目の命令L,T3において第4番目の命
令L,T4において第5番目の命令Lが命令レジスタにセッ
トされ、ただちに演算器E1,E2,E3において演算が行なわ
れ、GRへデータが書き込まれる。GR1へデータを書き込
む第1の命令がまだ実行中にかかわらず後述の第3の命
令がGR1へデータを書き込める理由については後述す
る。L命令の演算に要する時間は1サイクルである。こ
の3つのL命令の命令列は、BC命令のメモリ上で次の命
令列であり、3つの命令すべてが予測命令である。ここ
では分岐予測状態で実行中で実行される、物理レジスタ
を更新する命令の例として、ロード命令Lを説明する。
BC命令の分岐判定がC4でなされた後T5で命令レジスタに
セットされる第6番目の命令Lは、もし分岐が不成立す
なわち予測成功であるならば第5番目のL命令のメモリ
上で次の命令を、逆に分岐成立すなわち失敗であるなら
ばBC命令のターゲット命令を表わすものとする。分岐が
成立のとき、予測サイクル中に処理された3つのL命令
は、本来処理されるべきではなかった命令である。した
がって、後続の命令の処理に対して弊害となる実行結果
は、その時点でキャンセルされなければならない。
In T 2 , the third instruction L, T 3 , the fourth instruction L, T 4 , the fifth instruction L is set in the instruction register, and immediately the arithmetic units E 1 , E 2 , E 3 perform arithmetic operations. Data is written to GR. The reason why the later-described third instruction can write data to GR1 regardless of whether the first instruction for writing data to GR1 is still executing will be described later. The time required for the operation of the L instruction is one cycle. The instruction sequence of these three L instructions is the next instruction sequence on the memory of the BC instruction, and all three instructions are prediction instructions. Here, a load instruction L will be described as an example of an instruction for updating a physical register, which is executed while being executed in the branch prediction state.
The sixth instruction L, which is set in the instruction register at T 5 after the branch decision of the BC instruction is made at C 4 , is the memory of the fifth L instruction if the branch is not taken, that is, the prediction is successful. On the contrary, if the branch is taken or failed, the next instruction represents the target instruction of the BC instruction. When the branch is taken, the three L instructions processed during the prediction cycle are the instructions that should not have been processed. Therefore, the execution result that is harmful to the processing of the subsequent instruction must be canceled at that time.

以下、この問題をさらに具体的に説明する。分岐予測
状態で命令を実行しているときにその予測が失敗したと
判明した場合に、予測状態で実行した命令を無効にする
必要がある。その無効にあたっては、予測状態で実行さ
れた命令が指定する論理レジスタに割り当てた物理レジ
スタに書き込まれた内容を無効にする必要がある。も
し、予測状態で実行されたレジスタ更新命令に新に物理
レジスタを割り当てないとすると、その命令が指定する
論理レジスタに対して予測実行開始前にすでに実行され
た命令の実行時に割り当てられた物理レジスタの内容
を、予測実行状態で実行された命令により更新すること
になる。したがって、分岐予測が不成功と判明したとき
には、その物理レジスタが更新される前の内容に、その
物理レジスタの内容を回復する必要がある。このために
は、この物理レジスタを更新する際に、その物理レジス
タの更新前の内容をどこに退避する必要がある。
Hereinafter, this problem will be described more specifically. When executing an instruction in the branch prediction state, if the prediction is found to have failed, it is necessary to invalidate the instruction executed in the prediction state. In order to invalidate the contents, it is necessary to invalidate the content written in the physical register assigned to the logical register specified by the instruction executed in the predicted state. If a new physical register is not assigned to the register update instruction executed in the predicted state, the physical register assigned to the logical register specified by the instruction when the instruction already executed before the execution of the prediction is executed is executed. Is updated by the instruction executed in the predicted execution state. Therefore, when branch prediction is determined to be unsuccessful, it is necessary to restore the contents of the physical register to the contents before the physical register was updated. For this purpose, when updating this physical register, it is necessary to save the pre-update contents of the physical register.

この問題を避けるためには、予測実行状態で実行され
たレジスタ更新命令が指定する論理レジスタに対して、
すでに物理レジスタが予測実行前に割り当てられている
ときには、そのレジスタ更新命令に対して必ず新たに物
理レジスタを割り当てればよい。
To avoid this problem, for the logical register specified by the register update instruction executed in the predicted execution state,
If a physical register has already been allocated before execution of prediction, a new physical register should be allocated to the register update instruction.

本実施例では、このような割り当て方法をもっとも簡
単に実行する方法として、いずれかの論理レジスタの内
容を変更する命令を実行するときには、そのレジスタ更
新命令の種類に依らないで、その命令が指定する、その
更新すべき論理レジスタに対して、空き状態にある物理
レジスタを新に割り当てる方法を採用する。このような
レジスタ割り当て方法を分岐予測状態で実行される命令
に適用する。この結果、分岐予測状態では、レジスタ更
新命令が指定する更新すべき論理レジスタには必ず空き
状態にある物理レジスタが新に割り当てられるので、分
岐予測が失敗した場合に備えて、その物理レジスタの更
新前の内容を予め退避しておく必要がなく、分岐予測が
実際に生じた場合には、分岐予測状態で実行された命令
が指定する論理レジスタに割り当てられた物理レジスタ
の割り当てを無効にすればよい。このレジスタの割り当
てを無効にするもっとも簡単な方法は、予測実行開始直
前のレジスタ割り当て情報を退避してから予測実行を開
始し、分岐予測が失敗と判明したときに、レジスタ割り
当て情報として、退避した情報を回復すればよい。同様
に、空きレジスタを識別するための情報(空きレジスタ
情報)も退避回復すれば、空きレジスタ情報も分岐予測
実行開始前の情報に簡単に戻せる。
In the present embodiment, as the simplest method of executing such an allocation method, when an instruction to change the contents of any logical register is executed, the instruction is specified regardless of the type of the register update instruction. A new physical register is newly allocated to the logical register to be updated. Such a register allocation method is applied to an instruction executed in a branch prediction state. As a result, in the branch prediction state, a new physical register is always allocated to the logical register to be updated specified by the register update instruction, so that the physical register is updated in case branch prediction fails. It is not necessary to save the previous contents in advance, and when the branch prediction actually occurs, it is possible to invalidate the allocation of the physical register allocated to the logical register specified by the instruction executed in the branch prediction state. Good. The easiest way to invalidate this register allocation is to save the register allocation information immediately before the start of the prediction execution, start the prediction execution, and save it as the register allocation information when the branch prediction is found to have failed. You only have to recover the information. Similarly, if the information for identifying the empty register (empty register information) is also saved and recovered, the empty register information can be easily returned to the information before the start of the branch prediction execution.

以下、第4〜7図を用いて、本実施例の情報処理装置
の構成と動作を説明する。
The configuration and operation of the information processing apparatus according to this embodiment will be described below with reference to FIGS.

第4図は全体構成である。この情報処理装置では、具
体的な動的レジスタ割り当て方法の一例として、演算結
果を先行する命令Aと同一の汎用レジスタaに格納する
ように指定された命令Bの処理を行なうにたあり、汎用
レジスタの総数より多い物理レジスタの群を設け、命令
Aの演算結果をある物理レジスタaに格納したとき、命
令Bの演算結果を物理レジスタaとは異なる物理レジス
タa′に格納し、以後の命令で命令Bの演算結果を演算
に用いるとき、物理レジスタa′から読み出すようにす
ることで、先行する命令の実行を待たずに後続の命令B
の実行を可能にする方法を使用する。この方法を用いる
ことにより、第3図で示したタイムチャートでGR1で書
き込む順番が逆転できた。
FIG. 4 shows the overall structure. In this information processing apparatus, as an example of a specific dynamic register allocation method, an instruction B designated to store the operation result in the same general-purpose register a as the preceding instruction A is processed. When a group of physical registers larger than the total number of registers is provided and the operation result of the instruction A is stored in a certain physical register a, the operation result of the instruction B is stored in a physical register a ′ different from the physical register a, and subsequent instructions are stored. When the operation result of the instruction B is used in the operation, the subsequent instruction B is read without waiting for the execution of the preceding instruction by reading from the physical register a ′.
Use a method that allows the execution of. By using this method, the writing order in GR1 in the time chart shown in FIG. 3 could be reversed.

図において、406はこのような、命令で指定可能なレ
ジスタの数より多い物理レジスタの群を示す。401は命
令デコード制御回路であり、次に処理すべき命令をメモ
リ(図示せず)から読み出し、命令レジスタ402へ出力
する。通常は、現在命令レジスタ402にセットされてい
る命令の、上記メモリ上で次の命令を出力するが、BC命
令の判定がなされ分岐成立、すなわち予測失敗のときタ
ーゲット命令を上記メモリから読み出し、命令レジスタ
402に出力する。出力する命令はすべてメモリから読み
出されるが、この命令の読み出しのための論理は本実施
例の説明には不要であり、また公知の技術により構成可
能であるため、図示せず、また説明も省略する。また、
命令デコード制御回路の命令の切り替え制御も公知の技
術であり、本実施例の効果とは直接関連が無いので、説
明を省略する。以下に本実施例に必要な命令デコード制
御回路401の出力情報を示す。
In the figure, reference numeral 406 denotes such a group of physical registers that is larger than the number of registers that can be designated by an instruction. An instruction decoding control circuit 401 reads an instruction to be processed next from a memory (not shown) and outputs it to the instruction register 402. Normally, the next instruction of the instruction currently set in the instruction register 402 is output on the memory, but when the BC instruction is judged and the branch is taken, that is, when the prediction fails, the target instruction is read from the memory and the instruction is executed. register
Output to 402. All the instructions to be output are read from the memory. However, the logic for reading the instructions is not necessary for the description of the present embodiment, and can be configured by a known technique. I do. Also,
The instruction switching control of the instruction decode control circuit is also a known technique and is not directly related to the effect of the present embodiment, and therefore its explanation is omitted. The output information of the instruction decode control circuit 401 necessary for this embodiment is shown below.

(1)INS:次に処理すべき命令を示す。本信号は命令レ
ジスタ402に送られる。
(1) INS: Indicates the instruction to be processed next. This signal is sent to the instruction register 402.

(2)DS:命令レジスタ402にINSをセットすべきことを
示す。本信号は、命令のデコードを抑止する信号SUP
(本信号は、並列演算制御回路404から与えられる)が
1のとき抑止される。本信号は、命令レジスタ402に送
出される。
(2) DS: Indicates that INS should be set in the instruction register 402. This signal is a signal SUP that suppresses instruction decoding.
When this signal (given from the parallel operation control circuit 404) is 1, it is suppressed. This signal is sent to the instruction register 402.

402は命令レジスタであり、処理を行なう命令を保持
する。命令レジスタには、DSが1のときINSで示される
次に処理すべき命令がセットされる。命令レジスタ402
内の命令は命令デコーダ403に送られ、命令の実行に必
要な情報を生成するための解読が行なわれる。命令デコ
ーダ403が出力する命令解読情報のうち、本実施例の説
明に必要なものは以下である。
An instruction register 402 holds an instruction for processing. An instruction to be processed next, which is indicated by INS when DS is 1, is set in the instruction register. Instruction register 402
The instructions within are sent to the instruction decoder 403 where they are decoded to produce the information necessary to execute the instructions. Of the instruction decoding information output by the instruction decoder 403, the following information is necessary for explaining this embodiment.

(1)OP:命令のOP部であり、演算の内容を示してい
る。本信号は、並列演算制御回路404、演算器407に送出
される。
(1) OP: This is the OP part of the instruction and indicates the content of the operation. This signal is sent to the parallel arithmetic control circuit 404 and the arithmetic unit 407.

(2)CR:汎用レジスタGRを変更する命令であることを
示す。本信号は、仮想レジスタ制御回路405、演算器407
に送出される。
(2) CR: Indicates that the instruction is to change the general-purpose register GR. This signal is sent to the virtual register control circuit 405 and the arithmetic unit 407.
Sent to

本信号は命令Lの場合に限らず、物理レジスタを更新
するいずれの命令に対しても‘1'となる。本実施例で
は、この信号CRは命令がレジスタを変更する命令である
限り、その命令の種類によらずに、出力される。例え
ば、第3図で示した加算命令Aは加算結果を汎用レジス
タR1に書き込む命令である。ロード命令Lは、メモリ内
のオペランドを汎用レジスタR1に書き込む命令である。
したがって、このような命令はこれらのレジスタを更新
する命令であるので、これらの命令のいずれに対しても
この信号CRが出力される。
This signal is not limited to the case of the instruction L, but becomes “1” for any instruction that updates the physical register. In the present embodiment, this signal CR is output regardless of the type of instruction as long as the instruction is an instruction to change the register. For example, the addition instruction A shown in FIG. 3 is an instruction to write the addition result to the general-purpose register R1. The load instruction L is an instruction to write the operand in the memory into the general-purpose register R1.
Therefore, since such an instruction is an instruction for updating these registers, this signal CR is output to any of these instructions.

(3)IN:命令レジスタ402にセットされた命令に対し一
意に定まり、命令の概念的順序を表す命令番号を示す。
本信号は、0,1,2,……,mと順次加算され、mの次は0に
戻る。本信号は、並列演算制御回路404に送られる。m
は十分大きな値とする。
(3) IN: Indicates an instruction number that is uniquely determined for the instruction set in the instruction register 402 and represents the conceptual order of the instruction.
This signal is sequentially added with 0, 1, 2, ..., M, and returns to 0 after m. This signal is sent to the parallel operation control circuit 404. m
Is a sufficiently large value.

(4)R1M1:BC命令のときのM1部、BC命令以外のときのR
1部である。本信号は、仮想レジスタ制御回路405、分岐
判定回路408に送出される。
(4) R1M1: M1 part when BC instruction, R when not BC instruction
One copy. This signal is sent to the virtual register control circuit 405 and the branch determination circuit 408.

(5)BR:命令レジスタにセットされている命令がBC命
令であることを示す。本信号は、仮想レジスタ制御回路
405、分岐判定回路408に送られる。
(5) BR: Indicates that the instruction set in the instruction register is a BC instruction. This signal is a virtual register control circuit
405, sent to the branch determination circuit 408.

分岐判定回路408では、後に説明するように、この分
岐命令を実行して、分岐成立か否かを判定し、成立のと
きには、分岐成功信号TKNを1にする。本実施例では分
岐命令の後の予測実行状態では、分岐不成立と予測し
て、分岐命令に続く命令を実行すると仮定しているの
で、もしこの信号TKNが1になれば、予測が失敗したこ
とになる。
As will be described later, the branch judgment circuit 408 executes this branch instruction to judge whether or not the branch is taken. When the branch is taken, the branch success signal TKN is set to 1. In this embodiment, in the predicted execution state after the branch instruction, it is assumed that the branch is not taken and the instruction following the branch instruction is executed. Therefore, if this signal TKN becomes 1, the prediction has failed. become.

並列演算制御回路404は、演算器E0〜Enの状態を監視
し、以下の信号を生成する。
Parallel arithmetic control circuit 404 monitors the state of the arithmetic unit E 0 to E n, and generates the following signals.

(1)BOPi(i:0〜n):演算器Eiに起動をかける信号
である。並列演算制御回路404は、OPが演算器を用いる
ことを示すとき、現在演算実行中でない空いている演算
器に対応するBOPi信号を発行し演算器を起動すると同時
に、演算器対応に持ち演算器の状態を保持するレジスタ
(以下、EBi(i:0〜n)レジスタと呼ぶ)に1をたて、
この演算器が空いていないことを示す。後にその演算が
終了し演算器からEOPi信号を受けたとき、そのEBiレジ
スタは0にクリアされその後、その演算器は後続の命令
の演算に用いることができる。場合によっては、すへて
の演算器がふさがっていて後続命令の演算が開始できな
いことがありうるが、そのための制御回路は本実施例の
効果とは直接関連はないので説明の簡単化のため省略す
る。本信号は、演算器407および分岐判定回路408に送出
される。
(1) BOPi (i: 0 to n): A signal for activating the computing unit Ei. The parallel operation control circuit 404 issues a BOPi signal corresponding to an empty operation unit that is not currently executing an operation when the OP indicates that the operation unit is used and activates the operation unit, and at the same time, has an operation unit corresponding to the operation unit. Set 1 to the register that holds the state of (hereinafter, referred to as EBi (i: 0 to n) register),
This indicates that this computing unit is not empty. When the operation is completed later and the EOPi signal is received from the operator, the EBi register is cleared to 0, and then the operator can be used for the operation of the subsequent instruction. In some cases, it is possible that all the arithmetic units are occupied and the operation of the subsequent instruction cannot be started. However, since the control circuit for that is not directly related to the effect of the present embodiment, for simplification of explanation. Omit it. This signal is sent to the arithmetic unit 407 and the branch determination circuit 408.

(2)ECC:CCを決定する演算器の番号を示す。並列演算
制御回路404の中に、既に処理されたCCを変更する命令
のうち、最近に処理(命令レジスタにセット)された命
令が実行された演算器番号を保持するレジスタを持って
いる。ECCは、その内容である。本信号は、分岐判定回
路408に送出される。
(2) ECC: Indicates the number of the computing unit that determines CC. The parallel operation control circuit 404 has a register for holding the arithmetic unit number on which the recently processed instruction (set in the instruction register) among the already processed CC changing instructions has been executed. ECC is its content. This signal is sent to the branch determination circuit 408.

(3)SUP:命令のデコードを抑止することを示す。本信
号はOPがBC命令であることを示すとき、それ以後の命令
によって変更されるGRの数がカウントされ、分岐判定終
了信号BJが1となる前にその数がある数以上の大きさに
なるとき1となる。本信号は、分岐命令に続いて予測状
態で命令を実行してから、分岐判定が下される以前に実
行される、汎用レジスタを更新する命令の数に歯止めを
かける。歯止めの数について詳細は後述する。
(3) SUP: Indicates that instruction decoding is suppressed. When this signal indicates that OP is a BC instruction, the number of GRs changed by the instructions after that is counted, and before the branch judgment end signal BJ becomes 1, the number becomes greater than a certain number. When it becomes 1, it becomes 1. This signal limits the number of instructions that update a general purpose register that are executed after a branch instruction is executed in the predicted state and before a branch decision is made. Details of the number of pawls will be described later.

仮想レジスタ制御回路405は、汎用レジスタGRの管理
を行なう制御回路である。R1M1は、BC命令以外の命令で
は命令のR1部であり、Mシリーズアーキテクチャでは16
本ある汎用レジスタGRのレジスタ番号を示す。このとき
R1M1によって示されるGRのレジスタ番号を論理レジスタ
番号を呼ぶ。すなわち、論理レジスタとは、命令で直接
指定可能なレジスタのことである。したがって、動的レ
ジスタ割り当てを用いないで、命令で指定されるレジス
タ番号を割り当てられた汎用レジスタを有する情報処理
装置では、各汎用レジスタは、一つの論理レジスタに一
対一に対応する。しかし、動的レジスタ割り当ての情報
処理装置においては、異なる命令によって同一論理レジ
スタへデータの格納を行なうとき、物理的に異なるレジ
スタ(以後、これを物理レジスタと呼ぶ)へ格納するこ
とは既に述べた。したがって、このような情報処理装置
では、論理レジスタの数と、その装置内に実在する物理
レジスタの数は異なり、論理レジスタと物理レジスタと
は一対一には対応しないで、物理レジスタの数の方が多
い。このような情報処理装置では、いわゆる汎用レジス
タは存在しない。しかし、以下では、論理レジスタの意
味で、汎用レジスタあるいは略してGRという名称を使用
することがある。
The virtual register control circuit 405 is a control circuit that manages the general-purpose register GR. R1M1 is the R1 part of the instruction except for the BC instruction, and is 16 in the M series architecture.
Indicates the register number of this general-purpose register GR. At this time
The register number of GR indicated by R1M1 is called a logical register number. That is, a logical register is a register that can be directly specified by an instruction. Therefore, in an information processing apparatus having general-purpose registers to which a register number specified by an instruction is allocated without using dynamic register allocation, each general-purpose register has one-to-one correspondence with one logical register. However, in the information processing apparatus of the dynamic register allocation, when data is stored in the same logical register by different instructions, the data is stored in physically different registers (hereinafter referred to as physical registers). . Therefore, in such an information processing device, the number of logical registers and the number of physical registers actually existing in the device are different, and the logical registers and the physical registers do not correspond one-to-one. There are many. In such an information processing device, there is no so-called general-purpose register. However, in the following, a general-purpose register or abbreviated GR may be used to mean a logical register.

異なる命令が同一論理レジスタ番号のGRを読み出すと
き、その論理レジスタへ結果を格納した命令が読み出す
命令によって異なるならば、読み出す論理レジスタ番号
に対応する物理レジスタは異なる。このような、論理レ
ジスタ番号から物理レジスタ番号への変換を、仮想レジ
スタ制御回路405では行なう。また、分岐命令であるこ
とを示す信号BRが1となったとき、GRの管理状態を退避
し、予測状態で、命令を実行後その予測が失敗と判明し
たとき、すなわち、本実施例では、TKNが1になったと
き、管理状態をBC命令以前の状態に戻す制御も行なう。
詳細は第5図に示す。以下に、仮想レジスタ制御回路で
生成される信号を示す。
When different instructions read GR with the same logical register number, if the instruction that stores the result in the logical register differs depending on the instruction to be read, the physical register corresponding to the read logical register number is different. The virtual register control circuit 405 performs such conversion from the logical register number to the physical register number. When the signal BR indicating a branch instruction becomes 1, the GR management state is saved, and when the prediction is found to be unsuccessful after the instruction is executed in the prediction state, that is, in the present embodiment, When TKN becomes 1, it also controls the management state to the state before the BC instruction.
Details are shown in FIG. The following shows signals generated by the virtual register control circuit.

(1)RPR:R1M1によって指定される論理レジスタ番号に
対応する物理レジスタ番号を示す。このRPRは読み出し
に用いる物理レジスタの番号を示す。すなわち、第3図
で示した加算命令Aの場合、レジスタR1は読み出し用の
汎用レジスタの番号でもある。したがって、この命令の
場合、この汎用レジスタR1に対して割り当てられた物理
レジスタからオペランドを読み出す必要がある。したが
って、この読み出しに使用する物理レジスタを指定する
ときにそのレジスタの番号がRPRとして使用される、R1M
1がBC命令のM1部であるとき、それを論理レジスタ番号
とみなし、RPRを出力する。
(1) Indicates the physical register number corresponding to the logical register number specified by RPR: R1M1. This RPR indicates the number of the physical register used for reading. That is, in the case of the add instruction A shown in FIG. 3, the register R1 is also the number of the general purpose register for reading. Therefore, in the case of this instruction, it is necessary to read the operand from the physical register assigned to this general-purpose register R1. Therefore, when you specify the physical register to use for this read, that register's number is used as the RPR, R1M
When 1 is the M1 part of the BC instruction, it is regarded as a logical register number and RPR is output.

(2)APR:CRが1、すなわち命令レジスタにセットされ
ている命令がGRの内容を変更する命令であるとき、R1M1
によって指定される論理レジスタ番号に対応して新たに
割り当てられた演算結果を格納すべき物理レジスタ番号
を示す。CRが1でないときのAPRの値は意味を持たな
い。この物理レジスタ番号APRは、内容を更新するのに
使用する物理レジスタの番号として使用される。したが
って、第2図で示したA命令のR1部で示される論理レジ
スタ番号1に対応するRPRとAPRは、異なる物理レジスタ
番号となる。すなわち、RPRは読み出すべき物理レジス
タの番号、APRは結果を格納すべき物理レジスタの番号
を表す。
(2) When APR: CR is 1, that is, the instruction set in the instruction register is an instruction to change the contents of GR, R1M1
The physical register number in which the operation result newly assigned corresponding to the logical register number designated by is to be stored. The APR value when CR is not 1 has no meaning. This physical register number APR is used as the number of the physical register used to update the contents. Therefore, the RPR and APR corresponding to the logical register number 1 indicated by the R1 portion of the A instruction shown in FIG. 2 have different physical register numbers. That is, RPR represents the physical register number to be read, and APR represents the physical register number to store the result.

物理レジスタ群406は、物理レジスタと、その読み出
し、書き込みの制御回路から成る。データを読み出すと
き読み出すべき物理レジスタ番号RPRを受け、その物理
レジスタの内容を演算器へセットするデータRRDとして
出力する。また、データを書き込むとき各演算器Ei(i:
0〜n)によって出力される演算終了を示す信号EOPi
(i:0〜n)と同時に出力される。レジスタ書き込み信
号RWi(i:0〜n)が1となり、これに応答して書き込む
べき物理レジスタの番号WPRI(i:0〜n)によって示さ
れる物理レジスタに、演算結果SRDi(i:0〜n)を書き
込む。
The physical register group 406 includes a physical register and a control circuit for reading and writing the physical register. When reading data, it receives the physical register number RPR to be read and outputs the contents of the physical register as data RRD to be set in the arithmetic unit. When writing data, each computing unit Ei (i:
0 to n) signal EOPi indicating the end of calculation
It is output at the same time as (i: 0 to n). The register write signal RWi (i: 0 to n) becomes 1, and in response to this, the operation result SRDi (i: 0 to n is stored in the physical register indicated by the physical register number WPRI (i: 0 to n) to be written. ) Write.

演算器Ei(i:0〜n)407は、命令デコーダ403から送
られる演算の内容を示す信号OPを、並列演算制御回路40
4から送られる演算開始信号BOPi(i:0〜n)が1のとき
とり込み、これで指定される演算を開始する。この時OP
がGRのデータをオペランドとして必要とすることを示す
ならば、物理レジスタ群406から送られるデータを演算
のオペランドとする。演算器は一旦BOPi信号によって起
動をかけられると、演算終了まで起動時にとり込んだ情
報を保持しながら演算を行なう。すなわち、演算途中で
RRDが変っても、セットされたオペランドデータは変わ
らない。メモリからも演算器にセットすべきデータが送
られてくるが、その制御に関しては、本実施例の結果,
本質とは関連がないので、図示せず説明も省略する。以
下に演算器Eiで生成される信号を示す。
The arithmetic unit Ei (i: 0 to n) 407 outputs a signal OP sent from the instruction decoder 403 indicating the content of the arithmetic operation to the parallel arithmetic control circuit 40.
When the operation start signal BOPi (i: 0 to n) sent from 4 is 1, it is taken in and the operation specified by this is started. OP at this time
Indicates that GR data is required as an operand, the data sent from the physical register group 406 is used as the operand of the operation. Once the arithmetic unit is activated by the BOPi signal, the arithmetic unit performs the arithmetic while holding the information taken in at the time of activation until the arithmetic ends. That is, during calculation
Even if RRD changes, the set operand data does not change. The data to be set in the arithmetic unit is also sent from the memory. Regarding the control, the result of this embodiment is as follows.
Since it has nothing to do with the essence, it is not shown in the drawing and its explanation is omitted. The signals generated by the computing unit Ei are shown below.

(1)EOPi(i:0〜n):その演算器での演算が終了し
たことを示す。演算サイクルが複数の演算では、最後の
演算サイクルに立つ。本信号は、並列演算制御回路40
4、分岐判定回路408に送出される。
(1) EOPi (i: 0 to n): Indicates that the arithmetic operation by the arithmetic unit is completed. In the case of a plurality of operation cycles, the operation stands in the last operation cycle. This signal is used by the parallel arithmetic control circuit 40
4, sent to the branch determination circuit 408.

(2)CCi(i:0〜n):演算した命令がCCを変更する命
令であるときのCCである。
(2) CCi (i: 0 to n): CC when the operated instruction is an instruction to change CC.

EOPiと同時に出力される。本信号は、分岐判定回路408
に送出される。
It is output at the same time as EOPi. This signal is a branch decision circuit 408
Sent to

(3)WPRi(i:0〜n):BOPi(i:0〜n)が1となって
いる演算器Ei(i:0〜n)は、命令デコーダ403から送ら
れる信号RCが1、すなわちGRを変更する命令であること
を示すとき、演算結果を格納する物理レジスタの番号を
示すAPRを演算器内に取り込む。WPRiは、演算結果を格
納する物理レジスタ番号であり、演算器内に保持されて
いるAPRと同一の内容である。WPRiは、後述するRWi信号
と同時に出力され、RWiが1のときのみ有効である。本
信号は、物理レジスタ群406に送出される。
(3) In the arithmetic unit Ei (i: 0 to n) in which WPRi (i: 0 to n): BOPi (i: 0 to n) is 1, the signal RC sent from the instruction decoder 403 is 1, that is, When the instruction indicates that the GR is to be changed, the APR indicating the number of the physical register that stores the operation result is fetched into the arithmetic unit. WPRi is a physical register number for storing the calculation result, and has the same content as APR held in the calculator. WPRi is output at the same time as the RWi signal described below, and is valid only when RWi is 1. This signal is sent to the physical register group 406.

(4)RWi(i:0〜n):BOPi信号が1のとき、CRを演算
器内に取り込み、RWiは、演算結果をGRに格納する命令
であることを示す信号であり、演算器内に保持されてい
るCRと同一の内容である。RWiは、EOPi信号と同時に出
力され、EOPiが1のときのみ有効である。本信号は物理
レジスタ群406に送出される。
(4) RWi (i: 0 to n): When the BOPi signal is 1, CR is taken into the arithmetic unit and RWi is a signal indicating that it is an instruction to store the calculation result in GR. It has the same contents as the CR stored in. RWi is output at the same time as the EOPi signal and is valid only when EOPi is 1. This signal is sent to the physical register group 406.

(5)SRDi(i:0〜n):演算器Eiの演算結果である。E
OPiが1のときのみ有効である。本信号は、物理レジス
タ群406に送出される。
(5) SRDi (i: 0 to n): Calculation result of the calculator Ei. E
Effective only when OPi is 1. This signal is sent to the physical register group 406.

分岐判定回路408は、BC命令の分岐判定を行なう回路
である。BC命令が命令レジスタ402にセットされると同
時に、BC命令であることを示す信号BRが1となり、分岐
判定回路に起動をかける。同時に並列演算制御回路404
からCCが決定される演算器の番号を示す信号ECCが送ら
れて来る。分岐判定回路408は、起動をかけられている
否かにかかわらず、常に演算器から送られるCCを管理し
ている。すなわち、演算器対応にCCの有効,無効状態を
保持するレジスタ(以後、CCVRi(i:0〜n)と記す。)
をn+1本持ち、BOPiにて対応するそのCCVRiを0にク
リアし、EOPiと同時にCCiが送られてきたときに1にセ
ットする。送られたCCは演算器対応にCCの値を保持する
レジスタ(以後、CCRi(i:0〜n)と呼ぶ)に格納され
る。BRが1となりECCが送られて来ると、分岐判定回路4
08はECCで示される演算器に対応するCCVRiを参照する。
参照したCCVRiが1であるとき、CCを決定する命令の演
算は既に終了し、CCRiにはその命令によって設定された
CCの値が格納されている。命令レジスタにセットされて
いる命令がBC命令であるとき、R1M1はBC命令のM1部、す
なわち分岐のマスクを示す。そのマスクと設定されてい
るCCによって分岐の判定を行う。参照したCCVRiが0で
あるとき、CCを決定する命令の演算はまだ実行中である
ので、CCが設定されるまで分岐の判定は待たされる。分
岐の判定信号TKNは、分岐成立のときにのみ1となり、
その他の状況では常に0を示す。BJは分岐成立不成立に
かかわらず分岐判定がなされたとき1となる分岐判定終
了信号である。分岐判定は、CCが既に設定されている場
合にはただちになされるが、CCが設定されていない場合
には、演算器でCCが決定された次のサイクルでなされ
る。分岐判定終了信号がBRが1のときに送られて来る分
岐のマスクR1M1は、分岐の判定がなされるまで、分岐判
定回路408内に保持される。
The branch determination circuit 408 is a circuit that determines the branch of the BC instruction. At the same time that the BC instruction is set in the instruction register 402, the signal BR indicating that it is a BC instruction becomes 1 and the branch determination circuit is activated. Simultaneous parallel operation control circuit 404
A signal ECC indicating the number of the arithmetic unit from which CC is determined is sent from. The branch determination circuit 408 always manages the CC sent from the arithmetic unit, regardless of whether it is activated. That is, a register that holds the valid / invalid state of CC corresponding to the arithmetic unit (hereinafter referred to as CCVRi (i: 0 to n)).
N + 1, clear the corresponding CCVRi in BOPi to 0, and set to 1 when CCi is sent at the same time as EOPi. The sent CC is stored in a register (hereinafter referred to as CCRi (i: 0 to n)) that holds the value of CC corresponding to the arithmetic unit. When BR becomes 1 and ECC is sent, branch decision circuit 4
08 refers to CCVRi corresponding to the arithmetic unit indicated by ECC.
When the referenced CCVRi is 1, the operation of the instruction that determines the CC has already finished, and CCRi has been set by that instruction.
Stores the value of CC. When the instruction set in the instruction register is the BC instruction, R1M1 indicates the M1 part of the BC instruction, that is, the branch mask. The branch is determined by the mask and the CC that is set. When the referenced CCVRi is 0, the operation of the instruction that determines the CC is still being executed, so the branch determination is held until CC is set. The branch judgment signal TKN becomes 1 only when the branch is taken,
It always indicates 0 in other situations. BJ is a branch determination end signal which becomes 1 when a branch determination is made regardless of whether the branch is established or not. The branch determination is made immediately when CC has already been set, but when CC has not been set, it is made in the next cycle in which CC is determined by the arithmetic unit. The branch mask R1M1 sent when the branch determination end signal BR is 1 is held in the branch determination circuit 408 until a branch determination is made.

第5図に第4図で示した仮想レジスタ制御回路の詳細
を示す。本実施例による動的レジスタ割り当てを用いた
情報処理装置では、いずれかの論理レジスタの内容を変
更する命令を実行する毎に、その命令が指定する論理レ
ジスタに対応して新たに別の物理レジスタを割りあてる
ことにより、異なる命令による、同一の論理レジスタへ
のデータ書き込みの順序性を逆転できる。すなわち、同
一論理レジスタ番号の論理レジスタを変更する2つの命
令A,Bがあるとき、後続の命令Bのその論理レジスタへ
の書き込みを先行する命令Aがその論理レジスタに書き
込む以前に実行できる。命令A,Bの変更する論理レジス
タ番号に対応する物理レジスタ番号を、それぞれa,bと
すれば、命令B以降の命令がその論理レジスタ番号のレ
ジスタからデータの読み出しを行なうときの物理レジス
タ番号bの物理レジスタから読み出しを行なうので、物
理レジスタaは概念的順序が命令B以前の命令の処理が
すべて終了した後、命令B以後の命令によっては永久に
参照されない。したがって、概念的順序が命令B以前の
命令の処理がすべて終了した後には、物理レジスタa全
く別のどの論理レジスタにも対応しない物理レジスタ
(これを空き物理レジスタと呼ぶ。)と見なすことがで
き、B以降の後続命令がいずれかの論理レジスタを変更
する命令であるとき、データの書き込みを行なう物理レ
ジスタとして、その物理レジスタaをその論理レジスタ
に割りあてることが可能である。このように、今まで論
理レジスタに割り当てられていた物理レジスタが空きレ
ジスタとなるとき、該物理レジスタは解放されたと言う
ことにする。
FIG. 5 shows details of the virtual register control circuit shown in FIG. In the information processing apparatus using the dynamic register allocation according to the present embodiment, every time an instruction that changes the contents of one of the logical registers is executed, another physical register is newly created corresponding to the logical register designated by the instruction. By assigning, it is possible to reverse the order of writing data to the same logical register by different instructions. That is, when there are two instructions A and B for changing the logical register of the same logical register number, the writing of the subsequent instruction B to the logical register can be executed before the preceding instruction A writes to the logical register. If the physical register numbers corresponding to the logical register numbers to be changed by the instructions A and B are a and b, respectively, the physical register number b when the instructions after the instruction B read data from the register of the logical register number b Since the physical register a is read from the physical register a, the physical register a is not permanently referred to by an instruction after the instruction B after the processing of all the instructions before the instruction B in the conceptual order is completed. Therefore, after the processing of all the instructions in the conceptual order before the instruction B is completed, the physical register a can be regarded as a physical register that does not correspond to any logical register (this is called an empty physical register). , B and subsequent instructions are instructions to change any logical register, the physical register a can be assigned to the logical register as a physical register for writing data. Thus, when a physical register that has been assigned to a logical register until now becomes a free register, the physical register is said to have been released.

以上に述べた物理レジスタの再利用を効率良く行なう方
法として、次のような方法が考えられる。この方法で
は、空き物理レジスタの番号を保持するレジスタ群RAQ
を設けている。RAQを構成する個々のレジスタをRAQレジ
スタと呼び、その本数は本実施例においては、物理レジ
スタの本数から論理レジスタの本数16を引き、これに、
分岐予測状態で命令を実行中に書き換えられる可能性の
ある物理レジスタの最大本数を加えたものとする。本実
施例において、このRAQレジスタの本数はl+1本であ
るとする。RAQはFIFOのキュー構造をしており、RAQレジ
スタにはおのおの番号付けがなされ、入力ポインタと出
力ポインタによって、それぞれ新たに解放された物理レ
ジスタ番号を格納すべきRAQレジスタ番号、新たに割り
当てるべき物理レジスタ番号の格納されているRAQレジ
スタ番号が示される。ある物理レジスタが解放されたと
き、その物理レジスタ番号をRAQの入力ポインタの指すR
AQレジスタへ格納する。命令がGRを変更する命令で、変
更するGRの論理レジスタに対応して新たに物理レジスタ
を割り当てる必要のあるとき、RAQの出力ポインタによ
って示される番号のRAQレジスタに保持されている番号
の物理レジスタを割り当てる。以上に述べた動的レジス
タ割り当てを用いることを本実施例の前提とする。以
下、第5図を用いて仮想レジスタ制御回路405の説明を
行なう。
The following method can be considered as a method for efficiently reusing the physical register described above. With this method, the register group RAQ that holds the number of free physical registers
Is provided. The individual registers that make up the RAQ are called RAQ registers, and in the present embodiment, the number of them is 16 minus the number of logical registers from the number of physical registers.
The maximum number of physical registers that may be rewritten during execution of instructions in the branch prediction state is added. In this embodiment, the number of RAQ registers is 1 + 1. The RAQ has a FIFO queue structure, and each RAQ register is numbered. The RAQ register number that stores the newly released physical register number by the input pointer and the output pointer, and the physical register that is newly allocated. The RAQ register number in which the register number is stored is shown. When a physical register is released, the physical register number is set to the R pointed to by the RAQ input pointer.
Store in AQ register. When the instruction is an instruction to change GR and it is necessary to allocate a new physical register corresponding to the logical register of GR to be changed, the physical register of the number held in the RAQ register of the number indicated by the output pointer of RAQ Assign It is assumed in this embodiment that the above-described dynamic register allocation is used. The virtual register control circuit 405 will be described below with reference to FIG.

レジスタ割り当て管理回路501は、CRが1すなわち命
令レジスタにセットされた命令がGRを変更する命令であ
るとき、論理レジスタ番号から物理レジスタ番号へ変換
する表の出力である TDi(i:0〜15)において、R1M1によって示される論理レ
ジスタ番号をiとするTDiに新たにAPRによって示される
物理レジスタ番号を割りあて、STDi(i:0〜15)として
出力し、解放された物理レジスタ番号FPRのRAQへの登録
を管理する。RAQへの登録のための信号として、RAQの入
力ポインタ、出力ポインタを生成するために後述するPI
P,POPを受け取り、次の入力ポインタ、出力ポインタと
してNIP,NOPを出力する。詳細は第6図を用いて後述す
る。
The register allocation management circuit 501 outputs TDi (i: 0 to 15) which is an output of a table for converting a logical register number to a physical register number when CR is 1, that is, an instruction set in the instruction register is an instruction to change GR. ), The physical register number indicated by APR is newly assigned to TDi having the logical register number indicated by R1M1 as i, and output as STDi (i: 0 to 15), and the RAQ of the released physical register number FPR. Manage registration with. PI, which will be described later, for generating RAQ input pointers and output pointers as signals for registration in RAQs.
It receives P and POP and outputs NIP and NOP as the next input and output pointers. Details will be described later with reference to FIG.

RAQ502は、空き物理レジスタの番号を保持するレジスタ
群である。前述したように、個々のレジスタをRAQレジ
スタと呼ぶ。前述したようにRAQレジスタの数はl+1
本とする。FPRで示される解放された物理レジスタの物
理レジスタ番号はCRが1のとき、PIPIの指すPAQレジス
タへセットされる。
RAQ502 is a register group that holds the number of a free physical register. As mentioned above, each register is called an RAQ register. As mentioned earlier, the number of RAQ registers is l + 1
Book it. When CR is 1, the physical register number of the released physical register indicated by FPR is set in the PAQ register pointed to by PIPI.

セレクタ503は、RAQレジスタl+1本の出力からPOP
によって示されているRAQレジスタ番号のRAQレジスタに
保持されている物理レジスタ番号を選択する。出力され
る信号APRは、この選択された信号で、GRを変更する命
令が命令レジスタにセットされたとき、変更される論理
レジスタに対し割りあてるべき物理レジスタ番号を示
し、物理レジスタ割りあて管理回路501と演算器407に送
られる。
Selector 503 outputs POP from RAQ register 1 + 1 output
Select the physical register number held in the RAQ register of the RAQ register number indicated by. The output signal APR indicates the physical register number to be assigned to the logical register to be changed when the instruction to change GR is set in the instruction register with this selected signal. It is sent to 501 and computing unit 407.

RAQはPIP,POPにより入力すべきRAQレジスタ番号と出
力すべきRAQレジスタ番号が指定され、FIFO方式で管理
される。すなわち、最も新たにRAQに登録された物理レ
ジスタ番号は、既に登録されていた物理レジスタ全てが
割りあてられた後に、割りあてられる。
The RAQ specifies the RAQ register number to be input and the RAQ register number to be output by PIP and POP, and is managed by the FIFO method. That is, the physical register number most recently registered in the RAQ is allocated after all the already registered physical registers are allocated.

504は、論理レジスタ番号を物理レジスタ番号に変換
するための2組の表RMT0及びRMT1であり、それぞれ16本
の論理レジスタ対応に16本のレジスタ(以下、個々のレ
ジスタをRMTレジスタと呼ぶ)を持ち、その論理レジス
タ番号に対応する物理レジスタ番号を保持する。交換表
の更新データSTD0〜15は、RMT0又はRMT1のうち後述する
SMの示す側に、第3図に示すタイミングTiにおいて命令
の種類に関らず毎サイクルセットされる。RMTを2面持
つ理由については後述する。
504 is two sets of tables RMT0 and RMT1 for converting a logical register number to a physical register number, and 16 registers (hereinafter, each register is referred to as an RMT register) corresponding to 16 logical registers. And holds the physical register number corresponding to the logical register number. The update data STD0 to 15 of the exchange table will be described later in RMT0 or RMT1.
It is set on the side indicated by SM every cycle regardless of the type of instruction at the timing Ti shown in FIG. The reason for having two RMTs will be described later.

セレクタ505は、SMによってRMT0又はRMT1のいずれか
を選択するセレクタである。TD0〜15は、セレクタ505で
セレクタされた変換表の内容である。
The selector 505 is a selector that selects either RMT0 or RMT1 by the SM. TD0 to TD15 are the contents of the conversion table selected by the selector 505.

セレクタ506は、R1M1の示す論理レジスタ番号がiで
あるとき、TDiを選択するセレクタである。このセレク
タにより、GRを読み出す命令において、読み出す論理レ
ジスタ番号を実際に読み出すデータが格納されている物
理レジスタの物理レジスタ番号に変換する。RPRは選択
された物理レジスタ番号である。
The selector 506 is a selector that selects TDi when the logical register number indicated by R1M1 is i. With this selector, in the instruction to read GR, the logical register number to be read is converted into the physical register number of the physical register in which the data to be actually read is stored. RPR is the selected physical register number.

507は、回路501が出力する、次の出力ポインタNOPを
保持する2組のレジスタOPQ0及びOPQ1である。NOPはOPQ
0又はOPQ1のうちSMで示される側に、第3図で示すタイ
ミングTiにおいて毎サイクルセットされる。
Reference numeral 507 denotes two sets of registers OPQ0 and OPQ1 that hold the next output pointer NOP output from the circuit 501. NOP is OPQ
It is set to 0 or OPQ1 on the side indicated by SM every cycle at the timing Ti shown in FIG.

508は、回路501が出力する、次の入力ポインタNIPを
保持する2組のレジスIPQ0又はIPQ1である。NIPはIPQ0
又はIPQ1のうち、SMの示す側に、第3図で示すタイミン
グTiにおいて毎サイクルセットされる。OPQ,IPQを2面
ずつ持つ理由については後述する。
Reference numeral 508 denotes two sets of registers IPQ0 or IPQ1 holding the next input pointer NIP output from the circuit 501. NIP is IPQ0
Alternatively, it is set on the side indicated by SM in IPQ1 every cycle at the timing Ti shown in FIG. The reason for having two OPQs and two IPQs will be described later.

セレクタ509,510は、それぞれSMによってOPQ0又はOPQ
1,IPQ0又はIPQ1を選択するセレクタである。POP,PIP
は、それぞれセレクタ509,510によって選択された出力
であり、前述のRAQの出力ポインタ、および入力ポイン
タである。
Selectors 509 and 510 are OPQ0 or OPQ depending on SM.
It is a selector for selecting 1, IPQ0 or IPQ1. POP, PIP
Are outputs selected by the selectors 509 and 510, respectively, and are the output pointer and the input pointer of the RAQ described above.

レジスタ退避管理回路511は、分岐予測が失敗すなわ
ちTKNが1となったとき、BC命令の処理開始の後、予測
状態にて実行した命令で変更したGRの管理状態をそれら
の命令による変更前の状態に回復し、またBC命令が命令
レジスタにセットされたとき、すなわちBRが1となった
とき、予測失敗となる場合に備えて、GRに関する後述の
管理情報を退避させるためのポインタSMの制御を行な
う。詳細は第7図を用い後述する。以上が、仮想レジス
タ制御回路405の概要である。
When the branch prediction is unsuccessful, that is, when TKN becomes 1, the register save management circuit 511 starts the processing of the BC instruction and then changes the GR management state changed by the instruction executed in the predicted state before the change by those instructions. Control of the pointer SM for saving management information described later regarding GR in case of prediction failure when the BC instruction is set to the instruction register, that is, when BR becomes 1 Do. Details will be described later with reference to FIG. The above is the outline of the virtual register control circuit 405.

次に、第6図を用いて物理レジスタ割りあて管理回路
501の詳細を説明する。
Next, a physical register allocation management circuit will be described with reference to FIG.
The details of 501 will be described.

比較器601は、論理レジスタ番号対応に16個あり、命
令のR1部を示すR1M1の値と0から15までの定数値を比較
し、一致したとき1を、不一致のとき0を出力する。M
シリーズアーキテクチャは、R1部は4ビットであるの
で、比較器601の出力のうち必ず一つが1で残りは全て
0である。
There are 16 comparators 601 corresponding to the logical register numbers. The comparator 601 compares the value of R1M1 indicating the R1 part of the instruction with a constant value from 0 to 15, and outputs 1 when they match and 0 when they do not match. M
In the series architecture, since the R1 part has 4 bits, one of the outputs of the comparator 601 is always 1 and the rest are all 0s.

論理積を与える回路(以下、AND回路と記す)602は、
論理レジスタ対応に16個あり比較器601の出力とGRを変
更することを示す信号CRの論理積を与える。この出力が
1であるとき、1となっている比較器601の番号を論理
レジスタ番号とするGRを変更することを示す。
A circuit (hereinafter referred to as an AND circuit) 602 that gives a logical product is
There are 16 corresponding logical registers, and the logical product of the output of the comparator 601 and the signal CR indicating that GR is changed is given. When this output is 1, it indicates that GR having the number of 1 of the comparator 601 as the logical register number is changed.

セレクタ603も論理レジスタ対応に16個あり、AND回路
602の出力結果にしたがって、TDi(ただしi:0〜15)ま
たはAPRをセレクトする。AND回路602の出力結果が1で
あるとき、APRを選択、0であるときTDiを選択する。TD
iは、GRを読み出す際に論理レジスタ番号から物理レジ
スタ番号へ変換するための変換表に格納されている論理
レジスタiに対応する物理レジスタの番号である。APR
は、GRを変更する命令が命令レジスタにセットされたと
き、変更する論理レジスタの論理レジスタ番号に対して
新たに割りあてるべき物理レジスタの番号を示す。セレ
クタ603からの出力STDi(i:0〜15)は、命令レジスタに
セットされている命令がGRを変更しないでその内容を読
み出す命令であるとき、読み出し対象の物理レジスタ番
号TDiそのものであり、GRを変更する命令であるとき、
変更する論理レジスタ番号に対応する物理レジスタ番号
のみ、新に割り当てた物理レジスタの番号APRに置い替
えた内容となる。
There are also 16 selectors 603 for logical registers, and AND circuit
Select TDi (where i: 0 to 15) or APR according to the output result of 602. When the output result of the AND circuit 602 is 1, APR is selected, and when it is 0, TDi is selected. TD
i is the number of the physical register corresponding to the logical register i stored in the conversion table for converting the logical register number to the physical register number when reading GR. APR
Indicates the number of a physical register to be newly allocated to the logical register number of the logical register to be changed when the instruction to change GR is set in the instruction register. The output STDi (i: 0 to 15) from the selector 603 is the physical register number TDi itself to be read when the instruction set in the instruction register is the instruction to read the contents without changing GR, and GR Is an instruction to change
Only the physical register number corresponding to the logical register number to be changed is replaced with the newly assigned physical register number APR.

セレクタ604は、AND回路602の出力結果によって、TDi
から1つを選択するセレクタである。すなわちi番目の
AND回路602の出力が1のときTDiを選択する。選択され
たTDiは信号線FPRに出力され、これは解放された物理レ
ジスタ番号を示す。FPRは、R信号が1であるときにの
み有効である。
The selector 604 uses the TDi output according to the output result of the AND circuit 602.
It is a selector that selects one from among. I.e.
When the output of the AND circuit 602 is 1, TDi is selected. The selected TDi is output to the signal line FPR, which indicates the released physical register number. FPR is valid only when the R signal is 1.

加算器605は、GRを変更する命令が命令レジスタにセ
ットされたとき、GRを変更する次の命令で割りあてるべ
き物理レジスタ番号が格納されているRAQレジスタを示
す信号NOPを生成する加算器である。簡単のため1つの
命令で1つのGRを変更することを前提としているので、
加算器605の一方の入力を1としている。加算器605の他
方の入力POPは、命令レジスタにGRを変更する命令が現
在セットされている場合、新たに割りあてるべき物理レ
ジスタ番号の格納されているRAQレジスタの番号を示
す。
The adder 605 is an adder that, when an instruction to change GR is set in the instruction register, generates a signal NOP indicating the RAQ register that stores the physical register number to be allocated by the next instruction to change GR. is there. For the sake of simplicity, it is assumed that one GR will be changed with one instruction.
One input of the adder 605 is set to 1. The other input POP of the adder 605 indicates the number of the RAQ register in which the physical register number to be newly allocated is stored when the instruction to change GR is currently set in the instruction register.

セレクタ606は、命令レジスタにセットされている命
令がGRを変更する命令であるとき1となる信号CRが1の
とき加算器605の出力を、0のときPOPを選択する。NOP
は、その選択された信号である。
The selector 606 selects 1 as the output of the adder 605 when the signal CR that is 1 when the instruction set in the instruction register is an instruction to change GR and 1 when the signal CR is 0. NOP
Is the selected signal.

加算器607は、GRを変更する命令が命令レジスタにセ
ットされたとき、GRを変更する次の命令で解放される物
理レジスタの番号を格納するRAQレジスタを示す信号NIP
を生成する加算器である。加算器607の一方の入力を1
としているのは、加算器605で述べた理由と同じであ
る。加算器607の他方の入力PIPは、命令レジスタにGRを
変更する命令が現在セットされた時に解放されることに
なる物理レジスタの番号を格納するRAQレジスタの番号
を示す。加算器605と607は出力がl+1となるまで加算
され、次に0へ戻る。l+1はRAQレジスタの本数であ
る。
The adder 607 is a signal NIP indicating the RAQ register that stores the number of the physical register released by the next instruction that changes GR when the instruction that changes GR is set in the instruction register.
Is an adder for generating. One input of adder 607 is 1
This is the same as the reason described for the adder 605. The other input PIP of adder 607 indicates the number of the RAQ register that stores the number of the physical register that will be released when the instruction that modifies GR in the instruction register is currently set. The adders 605 and 607 add until the output becomes l + 1, and then return to 0. l + 1 is the number of RAQ registers.

セレクタ608は、CRが1のとき加算器607の出力を、0
のときPIPを選択する。NIPは、その選択された信号であ
る。
The selector 608 outputs the output of the adder 607 to 0 when CR is 1.
Then select PIP. NIP is the selected signal.

以上から分かるように、本実施例では、レジスタ群RA
Qは空きになった物理レジスタの番号をそれらが空きに
なった時刻が古いものから順に並べて保持し、それらを
空きになった時刻が古いものから順に新に論理レジスタ
に割り付けるように、これらの入力ポインタ、出力ポイ
ンタが管理されている。これにより、極めて簡単に空き
状態にある物理レジスタを選択することが出来る。
As can be seen from the above, in this embodiment, the register group RA
Q keeps the number of empty physical registers in order from the oldest time when they became free, and allocates them to new logical registers in order from the oldest time when they became empty. Input pointers and output pointers are managed. This makes it possible to select an empty physical register very easily.

さらに、本実施例では、レジスタ更新命令を実行する
ときには、そのレジスタ更新命令の種類によらないで、
必ず、空き状態の物理レジスタ、その命令が指定する更
新されるべき論理レジスタに割り当てる。このレジスタ
割り当て方法は分岐命令を予測で実行している場合にも
用いる。この結果、分岐命令の実行前に実行された先行
するいずれかのレジスタ更新命令が指定する論理レジス
タと同じ論理レジスタを指定する後続のレジスタ変更命
令が分岐予測状態で実行されたときには、この後続のレ
ジスタ更新命令が指定した論理レジスタには、この先行
するレジスタ更新命令が指定した同じ論理レジスタに割
り当てられた物理レジスタと異なる物理レジスタが割り
当てられる。したがて、分岐予測状態で実行されたこの
後続のレジスタ更新命令が、この先行するレジスタ更新
命令に割り当てられた物理レジスタの内容を更新するこ
とはない。したがって、後に分岐予測が失敗と判明した
時点において、物理レジスタを分岐予測実行前の状態に
戻すには、この予測状態で実行された後続のレジスタ更
新命令に割り当てられた物理レジスタの割り当てを無効
にするだけでよい。しかも、本実施例では、このレジス
タの割り当ての無効処理は分岐命令の予測実行の直前の
レジスタ割り当て情報を退避しておき、分岐予測が失敗
と判明したときに、この退避したレジスタ割り当て情報
を回復ればよく、レジスタの回復が簡単に行える。同様
に、空きレジスタ情報を退避回復すれば、空きレジスタ
情報も分岐予測実行開始前の情報に簡単に戻せる。以上
が、物理レジスタ割りあて管理回路501の詳細である。
Further, in the present embodiment, when executing the register update instruction, regardless of the type of the register update instruction,
Be sure to allocate the physical register in an empty state and the logical register specified by the instruction to be updated. This register allocation method is also used when a branch instruction is executed by prediction. As a result, when a subsequent register change instruction that specifies the same logical register as that specified by one of the preceding register update instructions executed before the execution of the branch instruction is executed in the branch prediction state, A physical register different from the physical register assigned to the same logical register designated by the preceding register update instruction is assigned to the logical register designated by the register update instruction. Therefore, this subsequent register update instruction executed in the branch prediction state does not update the contents of the physical register assigned to this preceding register update instruction. Therefore, when the branch prediction is later determined to have failed, the physical register can be returned to the state before the execution of the branch prediction by invalidating the allocation of the physical register assigned to the subsequent register update instruction executed in the prediction state. Just do it. Moreover, in this embodiment, the register allocation invalidation processing saves the register allocation information immediately before the predicted execution of the branch instruction, and restores the saved register allocation information when the branch prediction is found to be unsuccessful. All that is needed is to easily recover the registers. Similarly, if the empty register information is saved and recovered, the empty register information can be easily returned to the information before the start of the branch prediction execution. The above is the details of the physical register allocation management circuit 501.

次に第7図を用いて、レジスタ退避管理回路511の詳
細を説明する。動的レジスタ割り当てを用いるとき、第
5図に示した論理レジスタ番号から物理レジスタ番号へ
変換する表RMTと、RAQの入力ポインタPIPと出力ポイン
タPOPの予測状態に入る直前の値を予測状態に入る時に
退避しておき、予測失敗が判明したときにそれらを元に
戻す、という方法を用いることにより、予測失敗時のGR
の回復を実現できる。ただし、ここで述べているGRの回
復とは、ターゲット命令以降の実行にあたって、GRの値
として正しいものを読み出すことのできる状態に回復す
るという意味であり、予測中に書き込んだ物理レジスタ
の内容を元に戻すという意味ではない。この方法を用い
て予測失敗時のGRの回復を行なうためには、入力ポイン
タPIP、出力ポインタPOPを予測状態の直前の値に戻すだ
けでなく、戻したPIPとPOPによってはさまれ、全体の物
理レジスタの本数から論理レジスタの数16を引いた数だ
けある。解放されている物理レジスタのすべての番号が
格納されているRAQレジスタのおのおのが、予測実行状
態で変更されることなく予測状態になる前と同じ内容で
あることが前提である。もし仮に、予測状態下で複数の
GRを変更する命令によって新たに物理レジスタに割りあ
てられ、PIPが予測状態前のPOPの示すRAQレジスタの位
置を越えたRAQレジスタを示し、そのRAQレジスタへ解放
された物理レジスタの番号が書き込まれたとき、PIP,PO
Pを予測状態前の値に戻しても、GRの状態管理情報は完
全には復元されたことにはならない。。本実施例では、
RAQレジスタ全体の本数l+1から空き物理レジスタの
数を引いた数のRAQレジスタを、分岐予測中のGR変更用
に持っている。その数をiとすれば、分岐予測時に実行
できるGR変更命令の最大数は、1つの命令によって変更
されるGRの最大数をjとすれば、i/jとなる。この値がS
UPによって抑止されるまでに実行可能な最大の命令数で
あり、これを越えて命令を実行しようとするときSUPは
1となる。論理和を与える回路701(以下、OR回路と記
す)は、BC命令が命令レジスタにセットされたことを示
す信号BRと分岐判定の結果、分岐成立が判明したことを
示す信号TKNの論理和を与える回路である。出力される
信号が1であるとき、予測状態に変化があることを示
す。
Next, details of the register save management circuit 511 will be described with reference to FIG. When using the dynamic register allocation, the table RMT for converting the logical register number to the physical register number shown in FIG. 5 and the values of the RAQ input pointer PIP and the output pointer POP immediately before entering the prediction state enter the prediction state. By using a method of saving them at times and restoring them when prediction failures are found,
Can be recovered. However, the GR recovery described here means to recover to the state where the correct GR value can be read in the execution after the target instruction, and the contents of the physical register written during prediction are It does not mean undoing. In order to recover the GR at the time of prediction failure using this method, not only is the input pointer PIP and output pointer POP returned to the values immediately before the prediction state, but it is also sandwiched by the returned PIP and POP, and the entire There are as many physical registers as the number of logical registers minus 16. It is assumed that each RAQ register in which all the numbers of released physical registers are stored has the same contents as before the change to the prediction state without being changed in the prediction execution state. If, for example, multiple
A new physical register is allocated by an instruction to change GR, PIP indicates a RAQ register that exceeds the position of the RAQ register indicated by POP before the predicted state, and the released physical register number is written to that RAQ register. When PIP, PO
Even if P is returned to the value before the predicted state, the GR state management information is not completely restored. . In this embodiment,
The number of RAQ registers obtained by subtracting the number of empty physical registers from the total number of RAQ registers, l + 1, is used for changing GR during branch prediction. If the number is i, the maximum number of GR changing instructions that can be executed at the time of branch prediction is i / j, where j is the maximum number of GR changing instructions. This value is S
It is the maximum number of instructions that can be executed before being suppressed by UP, and SUP becomes 1 when trying to execute more instructions. A circuit 701 (hereinafter, referred to as an OR circuit) which gives a logical sum calculates a logical sum of a signal BR indicating that the BC instruction is set in the instruction register and a signal TKN indicating that the branch is taken as a result of the branch judgment. It is a circuit to give. When the output signal is 1, it indicates that the prediction state has changed.

702は論理否定回路であり、フリップフロップ703の値
を入力し、その否定を再び703に入力する。信号SMはフ
リップフロップ703の出力であり、それぞれ2組ずつあ
るOPQ,IPQ,RMTのうち、入力および出力すべき側を示
す。
Reference numeral 702 is a logical negation circuit, which inputs the value of the flip-flop 703 and inputs the negation thereof to 703 again. The signal SM is the output of the flip-flop 703, and indicates the side to be input and output among OPQ, IPQ, and RMT each having two sets.

フリップフロップ703は、OR回路701の出力が1のと
き、論理否定回路702の出力をセットし、SMを0から1
または1から0へ切り替える。すなわち使用すべきOPQ,
IPQ,RMTをもう一方の側に切り替えることを示す。それ
まで非予測状態であったならば、上記切り替えによって
使用されなくなった側のOPQ,IPQ,RMTには、予測状態に
入る直前のGR管理情報が残ることになり、これはすなわ
ちGRの管理情報の退避を意味し、逆にそれまで予測状態
であったならば、上記切り替えによって新たに使用する
ようになった側のOPQ,IPQ,RMTには、予測状態に入る直
前のGR管理情報が入っていたわけであり、これはすなわ
ち分岐予測失敗に伴うGRの管理情報の回復を意味する。
OPQ,IPQ,RMTを2面持つ理由は、以上述べたように一方
予測状態時の退避用とするためである。以上がレジスタ
退避管理回路511の詳細である。
The flip-flop 703 sets the output of the logical NOT circuit 702 when the output of the OR circuit 701 is 1, and sets SM to 0 to 1
Or switch from 1 to 0. Ie OPQ to use,
Indicates that IPQ and RMT are switched to the other side. If it was in the non-predictive state up to that point, the GR management information immediately before entering the predictive state will remain in OPQ, IPQ, RMT on the side that is not used due to the above switching, that is, GR management information. On the contrary, if it was in the prediction state until then, OP management, OPQ, IPQ, RMT of the side newly used by the above switching contains GR management information immediately before entering the prediction state. This means that the GR management information is recovered due to branch prediction failure.
The reason for having two OPQs, IPQs, and RMTs is to save them in the one-prediction state as described above. The above is the details of the register save management circuit 511.

第8図は、第2図のプログラム例をこの装置で処理し
た場合の主要信号のタイミングを示しており、これを用
いて以下では装置の動作の概要を説明する。命令レジス
タにセットされるタイミングは第3図に等しい。説明の
簡単化のために、第1番目の命令Aが命令レジスタに設
定されるCOサイクルにおいて、SMの値は0、PIP,POPの
値はそれぞれx,y,RMT0,RMT1の全体の内容をまとめてa0,
b0とする。
FIG. 8 shows the timing of main signals when the program example of FIG. 2 is processed by this device, and the outline of the operation of the device will be described below using this. The timing set in the instruction register is the same as in FIG. For simplification of explanation, in the CO cycle in which the first instruction A is set in the instruction register, the value of SM is 0, and the values of PIP and POP are the entire contents of x, y, RMT0 and RMT1, respectively. Collectively a 0 ,
b 0 .

時刻T0において命令レジスタに第1の命令Aがセット
され、命令が解読された結果、CRに1が立つ。A命令は
GRを変更する命令であるため、変更する論理レジスタ番
号1に対応する物理レジスタ番号(POPで示されるRAQレ
ジスタy番に格納されている。)を割りあてる、このと
き、解放された物理レジスタの物理レジスタ番号は、時
刻T1においてRAQレジスタx番に格納される。PIP,POP
は、CRが1であるため1加算され、T1においてx+1,y
+1となる。COサイクルでは、演算器E0に起動をかける
ためにB0P0が発行され、E0は演算を開始する。
At time T 0 , the first instruction A is set in the instruction register, and as a result of the instruction being decoded, 1 is set in CR. A command is
Since it is an instruction to change GR, the physical register number (stored in RAQ register y number indicated by POP) corresponding to the logical register number 1 to be changed is allocated. At this time, the physical register number of the released physical register is changed. The physical register number is stored in the RAQ register xth at time T 1 . PIP, POP
Is 1 added because CR is 1, and x + 1, y at T 1 .
It becomes +1. In the CO cycle, B0P0 is issued to activate the arithmetic unit E 0 , and E 0 starts arithmetic.

時刻T1において第2の命令BCが命令レジスタにセット
され、命令が解読された結果、BRに1が立つ。BC命令よ
り先行し、かつ概念的に最後に条件コードを設定する命
令、すなわち第1番目の命令Aの演算が行なわれている
演算器の番号は上述のごとく0であるため、命令レジス
タにセットされている命令がBC命令であることにより発
行されるECC信号として0が立つ。このとき、IPQ0にx
+1,OPQ0にy+1がセットされ、PIP,POPにx+1,y+1
が立つ。またPMT0には、a0の論理レジスタ番号1に対応
する物理ジスタ番号のみ変更された内容a1がセットさ
れ、TD0〜15にはa1が立つ。BRが1となりGRの管理情報
を退避するために、SMが1となる。
At time T 1 , the second instruction BC is set in the instruction register, and the instruction is decoded. As a result, BR is set to 1. Since the instruction that precedes the BC instruction and conceptually sets the condition code last, that is, the number of the arithmetic unit in which the operation of the first instruction A is performed is 0 as described above, it is set in the instruction register. Since the executed instruction is the BC instruction, 0 is set as the ECC signal issued. At this time, IPQ0 x
Y + 1 is set to +1, OPQ0, and x + 1, y + 1 is set to PIP and POP
Stands. Also PMT0 is physical register numbers only changed the set contents a 1 corresponding to the logical register number 1 of a 0, is a 1 stand for TD0~15. BR becomes 1 and SM becomes 1 to save GR management information.

時刻T2において第3の命令Lが命令レジスタにセット
される。GRを変更する命令としての処理である、物理レ
ジスタの割りあて、解放された物理レジスタの番号のRA
Qへの登録、PIP,POPの変更は、時刻T0においてなされた
第1番目のA命令の処理におけると同様に行われるが、
SMが1であるために、IPQ1,OPQ1に前命令がBC命令でIPQ
0,OPQ0の値のx+1,y+1に変化が無かったために、そ
れぞれIPQ0,OPQ0の値x+1,y+1がセットされ、PIP,PO
PはそれをSMによってセレクトしたx+1,y+1が立つ。
また同様に、RMT1にはRMT0の内容a1がセットされ、それ
をb1とする。TD0〜15は、SMによってセレクトされたb1
が立つ。TPQ0,OPQ0,RMT0の内容は変化しない。
At time T 2 , the third instruction L is set in the instruction register. RA as the number of the physical register allocated and released, which is the processing as an instruction to change GR.
The registration to Q and the change of PIP and POP are performed in the same manner as in the processing of the first A instruction at time T 0 ,
Since SM is 1, IPQ1 and OPQ1 are IPQ when the previous instruction is BC instruction.
Since there is no change in x + 1 and y + 1 of 0 and OPQ0, the values x + 1 and y + 1 of IPQ0 and OPQ0 are set respectively, and PIP and PO
P stands for x + 1 and y + 1 which is selected by SM.
Similarly, the content a 1 of RMT0 is set in RMT1 and is set to b 1 . TD0 to 15 are b 1 selected by SM
Stands. The contents of TPQ0, OPQ0 and RMT0 do not change.

時刻T3において第4番目の命令Lが命令レジスタにセ
ットされる。GRを変更する命令としての処理は、第1番
目のA命令、第3番目のL命令と同様でありIPQ1にx+
2が、OPQ1にy+2がセットされ、1となっているSMで
それがセレクトされ、PIPにx+2,POPにy+2が立つ。
C3サイクルにおいて、演算器E0では第1番目のA命令が
終了し、演算が終了したことを示す信号EOP0が1とな
り、それと同時に演算結果に基づいてCC0が立つ。RMT1
にはb2がセットされ、1となっているSMによってそれが
セレクトされ、TD0〜15はb2となるが、b2はb1のうち第
3番目の命令Lで変更される論理レジスタ番号1に対応
する物理レジスタ番号のみ変更された内容である。IPQ
0,OPQ0,RMT0の内容は変化しない。
At time T 3 , the fourth instruction L is set in the instruction register. The processing as an instruction to change GR is the same as the first A instruction and the third L instruction, and x + is added to IPQ1.
2, y + 2 is set in OPQ1 and it is selected by SM that is 1, x + 2 is set in PIP and y + 2 is set in POP.
In the C 3 cycle, in the arithmetic unit E 0 , the first A instruction is completed, the signal EOP 0 indicating that the operation is completed becomes 1, and at the same time CC 0 rises based on the operation result. RMT1
B 2 is set to, is it select the SM which is a 1, but TD0~15 becomes b 2, b 2 are the logical register number to be changed in the third instruction L of b 1 Only the physical register number corresponding to 1 is changed. IPQ
The contents of 0, OPQ0, and RMT0 do not change.

時刻T4において第5番目の命令Lが命令レジスタにセ
ットされる。GRを変更する命令としての処理は、第3番
目のL命令等の処理と同様であり、IPQ1にx+3が、OP
Q1にy+3がセットされ、それが1となっているSMによ
ってセレクトされ、PIPにx+3,POPにy+3が立つ。同
様に、RMT1にb2のうち第4番目の命令Lで変更される論
理レジスタ番号2に対応する物理レジスタ番号のみ変更
された内容b3がセットされ、1となっているSMでそれが
セレクトされ、TD0〜15はb3が立つ。IPQ0,OPQ0,RMT0の
内容は変化しない。C4サイクルにおいて、G3サイクルで
設定されたCC0を用い分岐判定が下される。分岐成立す
なわち予測失敗であるので、TKNが1となる。その結果
ターゲット命令の処理に際し、GRを管理するTD0〜15お
よびRAQの入力,出力ポインタを予測前の状態に戻すた
めに、SMが0となる。
At time T 4 , the fifth instruction L is set in the instruction register. The processing as an instruction to change GR is the same as the processing of the third L instruction, etc., and x + 3 is OP in IPQ1.
Y + 3 is set to Q1 and it is selected by SM that is 1, and x + 3 is set to PIP and y + 3 is set to POP. Similarly, the content b 3 in which only the physical register number corresponding to the logical register number 2 changed by the fourth instruction L of b 2 is changed is set in RMT1 and selected by SM which is 1. is, TD0~15 is the b 3 stand. The contents of IPQ0, OPQ0 and RMT0 do not change. In C 4 cycle, branch judgment using the CC0 set by G 3 cycles made. Since the branch has been taken, that is, the prediction has failed, TKN becomes 1. As a result, when the target instruction is processed, SM becomes 0 in order to restore the input and output pointers of TD0 to 15 and RAQ that manage GR to the state before the prediction.

C4サイクルにおいて分岐成立の判定がなされた結果、
時刻T5においてBC命令のターゲット命令である第6番目
の命令Lが命令レジスタにセットされる。同時に0示し
ているSMによって、PIP,POPの値、TD0〜15の内容は、IP
Q0,OPQ0,RMT0に保持されている値、内容すなわちx+1,
y+1,a1となり、予測状態の前に戻る。このようにして
第6番目のL命令は、予測状態下で行なわれた処理があ
たかも行なわれなかったかの状態の下で処理を開始する
ことができる。
As a result of the decision that the branch is taken in the C 4 cycle,
At time T 5 , the sixth instruction L, which is the target instruction of the BC instruction, is set in the instruction register. The value of PIP and POP and the contents of TD0 to 15 are IP
Value held in Q0, OPQ0, RMT0, contents, ie x + 1
It becomes y + 1, a 1 and returns to the state before the prediction state. In this way, the sixth L instruction can start processing as if the processing performed under the predicted state was not performed.

以上が、第2図の命令列を本情報処理装置で処理した
場合の動作の概要である。このようにして、分岐予測が
失敗した場合の予測して実行した命令によるGR変更のオ
ーバーランの回復を、瞬時に行なうことができる。
The above is the outline of the operation when the instruction sequence of FIG. 2 is processed by the information processing apparatus. In this way, when the branch prediction fails, it is possible to instantaneously recover the GR change overrun by the predicted and executed instruction.

〔発明の効果〕〔The invention's effect〕

本願発明では、動的レジスタ割り当てあるいはレジス
タ名称変更を採用するデータ処理装置内において、予測
実行開始時に、レジスタの割り当て情報を退避し、予測
失敗時にこれを回復するので、予測失敗時のレジスタ割
り当て情報の回復が簡単に行なえる。
According to the present invention, in a data processing device that employs dynamic register allocation or register name change, register allocation information is saved at the start of prediction execution and restored when prediction failure occurs. Can be easily recovered.

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

第1図は典型的な命令フォーマット、第2図は本発明の
実施例で実行する命令列の例を示す図、第3図は本発明
の実施例による、第2図の命令列の処理の流れを示す
図、第4図は本発明の実施例の全体構成を示す図、第5
図は仮想レジスタ制御回路の詳細構成を示す図、第6図
は物理レジスタ割りあて管理回路の詳細構成を示す図、
第7図はレジスタ退避管理回路の詳細構成を示す図、第
8図は第2図の命令処理における、本実施例中の信号、
レジスタ等のタイムチャートである。 402……命令レジスタ、403……命令デコーダ、404……
並列演算制御回路、405……仮想レジスタ制御回路、406
……物理レジスタ群、407……演算器、408……分岐判定
回路、501……物理レジスタ割りあて管理回路、503……
レジスタ割りあてキュー(RAQ)、504……レジスタ変換
表(RMT)、507……アウトポイントキュー(OPQ)、508
……インポインタキュー(IPQ)、511……レジスタ退避
管理回路。
FIG. 1 is a typical instruction format, FIG. 2 is a diagram showing an example of an instruction sequence executed in an embodiment of the present invention, and FIG. 3 is a processing of the instruction sequence of FIG. 2 according to an embodiment of the present invention. FIG. 4 is a diagram showing a flow, FIG. 4 is a diagram showing an overall configuration of an embodiment of the present invention, and FIG.
FIG. 6 is a diagram showing a detailed configuration of a virtual register control circuit, FIG. 6 is a diagram showing a detailed configuration of a physical register allocation management circuit,
FIG. 7 is a diagram showing a detailed configuration of the register save management circuit, and FIG. 8 is a signal in the present embodiment in the instruction processing of FIG.
It is a time chart of a register and the like. 402 ... Instruction register, 403 ... Instruction decoder, 404 ...
Parallel arithmetic control circuit, 405 ... Virtual register control circuit, 406
...... Physical register group, 407 …… Calculator, 408 …… Branch judgment circuit, 501 …… Physical register allocation management circuit, 503 ……
Register allocation queue (RAQ), 504 ... Register conversion table (RMT), 507 ... Outpoint queue (OPQ), 508
…… In-pointer queue (IPQ), 511 …… Register save management circuit.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 庄内 亨 東京都国分寺市東恋ヶ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 釜田 栄樹 東京都国分寺市東恋ヶ窪1丁目280番地 株式会社日立製作所中央研究所内 (56)参考文献 特開 昭57−166649(JP,A) 特開 昭60−129838(JP,A) ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Toru Shonai 1-280 Higashi Koigakubo, Kokubunji City, Tokyo Metropolitan Institute of Hitachi, Ltd. (72) Inventor Eiki Kamata 1-280 Higashi Koigakubo, Kokubunji City, Tokyo Hitachi Ltd. Central Research Laboratory (56) Reference JP-A-57-166649 (JP, A) JP-A-60-129838 (JP, A)

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】命令で指定可能なレジスタ番号の総数より
多い複数のレジスタと、 実行すべき命令が指定する、データ書き込み用のレジス
タの番号に対して、該複数のレジスタの一つを割り当て
る手段であって、複数の命令が指定した同一のレジスタ
番号に対して異なるレジスタを割り当て可能なものと、 該割り当てられた一つのレジスタをデータ書き込み用の
レジスタとして使用して該命令を実行する手段と、 複数の実行すべき命令が指定した複数のレジスタ番号に
対して該割り当て手段により割り当てられたレジスタを
識別するためのレジスタ割り当て情報を記憶する手段
と、 上記実行すべき命令もしくは他の実行すべき命令が指定
する、データ読み出し用のレジスタの番号に対してすで
に割り当てられたレジスタを、該レジスタ割り当て情報
に基づいて判別し、その判別されたレジスタをデータ読
み出し用のレジスタとして使用して、上記実行すべき命
令もしくは上記他の命令を実行する手段と、 分岐命令に応答して、その命令が指定する分岐条件が成
立したか否かを判定する手段と、 その分岐命令に対する上記判定手段の判定結果の予測値
に基づいてその分岐命令の分岐先命令列およびその分岐
命令の後続列の命令のいずれか一方が予測で実行される
ときに、上記レジスタ割り当て情報を退避する手段と、 その分岐命令に対する上記判定手段の判定結果が上記予
測値と異なると判明したために、上記実行された一方の
命令列の実行が無効とされ、該分岐先命令列および該後
続命令列の内の他方の命令列が実行されるときに、該退
避されたレジスタ割り当て情報を回復する手段とを有す
る情報処理装置。
1. A means for allocating one of the plurality of registers to a plurality of registers which is larger than the total number of register numbers which can be designated by an instruction and a register number for writing data which is designated by an instruction to be executed. A register capable of assigning different registers to the same register number designated by a plurality of instructions, and means for executing the instruction by using the assigned one register as a register for writing data. A means for storing register allocation information for identifying a register allocated by the allocation means for a plurality of register numbers designated by a plurality of instructions to be executed, and the instruction to be executed or another instruction to be executed Assign the register already assigned to the data read register number specified by the instruction. Means for executing the above-mentioned instruction to be executed or the above-mentioned other instruction by using the determined register as a register for reading data, and the instruction in response to the branch instruction. A means for judging whether or not a designated branch condition is satisfied, and a branch destination instruction string of the branch instruction and an instruction of a succeeding string of the branch instruction based on the predicted value of the judgment result of the judging means for the branch instruction. When either one is executed by prediction, the means for saving the register allocation information and the judgment result of the judging means for the branch instruction are found to be different from the predicted value. When the execution of the sequence is invalidated and the other instruction sequence of the branch destination instruction sequence and the subsequent instruction sequence is executed, the saved register allocation information is restored. An information processing apparatus and a stage.
【請求項2】該レジスタ割り当て情報を記憶する手段
は、それぞれ分岐命令実行前と予測実行状態とにおける
レジスタ割り当て情報を記憶する少なくとも二つの記憶
手段を有し、 該レジスタ割り当て情報を退避する手段と該退避された
レジスタ割り当て情報を回復する手段は、該二つの記憶
手段を切り替えてそれぞれ退避あるいは回復を行なう請
求項1記載の情報処理装置。
2. The means for storing the register allocation information comprises at least two storage means for respectively storing the register allocation information before execution of a branch instruction and the predicted execution state, and means for saving the register allocation information. The information processing apparatus according to claim 1, wherein the means for recovering the saved register allocation information switches between the two storage means to save or recover respectively.
JP59257585A 1984-12-07 1984-12-07 Information processing device Expired - Lifetime JPH081601B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP59257585A JPH081601B2 (en) 1984-12-07 1984-12-07 Information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59257585A JPH081601B2 (en) 1984-12-07 1984-12-07 Information processing device

Publications (2)

Publication Number Publication Date
JPS61136132A JPS61136132A (en) 1986-06-24
JPH081601B2 true JPH081601B2 (en) 1996-01-10

Family

ID=17308307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59257585A Expired - Lifetime JPH081601B2 (en) 1984-12-07 1984-12-07 Information processing device

Country Status (1)

Country Link
JP (1) JPH081601B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901233A (en) * 1987-07-20 1990-02-13 International Business Machines Corporation Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
JP2845578B2 (en) * 1990-06-19 1999-01-13 甲府日本電気 株式会社 Instruction control method
US5197132A (en) * 1990-06-29 1993-03-23 Digital Equipment Corporation Register mapping system having a log containing sequential listing of registers that were changed in preceding cycles for precise post-branch recovery
JPH07281893A (en) * 1994-04-15 1995-10-27 Internatl Business Mach Corp <Ibm> Processing system and arithmetic method
JP6107904B2 (en) * 2015-09-09 2017-04-05 日本電気株式会社 Processor and store instruction conversion method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57166649A (en) * 1981-03-30 1982-10-14 Ibm Data processing system

Also Published As

Publication number Publication date
JPS61136132A (en) 1986-06-24

Similar Documents

Publication Publication Date Title
US5553305A (en) System for synchronizing execution by a processing element of threads within a process using a state indicator
JP3093639B2 (en) Method and system for tracking resource allocation in a processor
KR0122529B1 (en) Method and system for single cycle dispatch of multiple instruction in a superscalar processor system
EP0394624B1 (en) Multiple sequence processor system
JPH02208729A (en) Control of apparatus having multiple functions by parallel operation in microcode type execution apparatus
JPH07506445A (en) System and method for retiring instructions in a superscalar microprocessor
US20050240733A1 (en) Apparatus and method for selecting instructions for execution based on bank prediction of a multi-bank cache
EP0605866B1 (en) Method and system for enhanced instruction dispatch in a superscalar processor system utilizing independently accessed intermediate storage
JPS61107434A (en) Data processor
US5812810A (en) Instruction coding to support parallel execution of programs
JPS5991546A (en) Central processing unit
JPH0668726B2 (en) Register management system
JPH08194615A (en) Information processor
JPH0782438B2 (en) Computer system
KR100242403B1 (en) Method and system for buffering of data in data-processing system
JPH06230961A (en) Method, for execution of register renaming, so as to be provided with backup function in data processing system
JP3142813B2 (en) Information processing system and method for managing register renaming
JPH10228376A (en) Method and program for processing multiple-register instruction
US5860014A (en) Method and apparatus for improved recovery of processor state using history buffer
CN1099631C (en) Backout logic for dual execution unit processor
US5870612A (en) Method and apparatus for condensed history buffer
US6363474B1 (en) Process switching register replication in a data processing system
KR100431975B1 (en) Multi-instruction dispatch system for pipelined microprocessors with no branch interruption
JPH081601B2 (en) Information processing device
JP3170472B2 (en) Information processing system and method having register remap structure

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term