JPS60175148A - Instruction prefetching device - Google Patents
Instruction prefetching deviceInfo
- Publication number
- JPS60175148A JPS60175148A JP3067284A JP3067284A JPS60175148A JP S60175148 A JPS60175148 A JP S60175148A JP 3067284 A JP3067284 A JP 3067284A JP 3067284 A JP3067284 A JP 3067284A JP S60175148 A JPS60175148 A JP S60175148A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- address
- circuit
- prediction
- 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
Links
Landscapes
- Advance Control (AREA)
Abstract
Description
【発明の詳細な説明】
発明の属する技術分野
本発明はデータ処理システムの命令シーケンスのステッ
プに含まれる分岐条件判定ステップ実行処理に先立って
判定結果を予測しつつ次の命令の先取シを行なう命令先
取装置に関する。DETAILED DESCRIPTION OF THE INVENTION Field of the Invention The present invention relates to an instruction that preempts the next instruction while predicting the judgment result prior to execution of a branch condition judgment step included in a step of an instruction sequence of a data processing system. Relating to a preemption device.
従来技術
少なくとも1個の分岐命令を含む命令群が翫″憶装置に
命令シーケンスの形で格納されているデータ処理システ
ムにおいては、このような命令シーケンスの実行は、次
のように行なわれる。BACKGROUND OF THE INVENTION In a data processing system in which a group of instructions including at least one branch instruction is stored in a storage device in the form of an instruction sequence, such an instruction sequence is executed as follows.
まず、前記゛記憶装部の分岐元アドレスに分岐命令が格
納される。次に、この分岐命令に引き続いて実行される
命令が先取りされる。このあと、分岐命令が実行され、
この実行結果によシ次に実行される命令が明らかになる
。このようなシステムは米国特許4,200,927号
に提案されている。しかし、このシステムでは、分岐命
令先取多制御において実行結果の判別時まで命令先取多
制御を停止させると、処理の迅速化が妨けられる。First, a branch instruction is stored at the branch source address in the memory unit. Next, the instruction to be executed following this branch instruction is prefetched. After this, a branch instruction is executed,
This execution result reveals the next instruction to be executed. Such a system is proposed in US Pat. No. 4,200,927. However, in this system, if the instruction preemption control is stopped until the execution result is determined in the branch instruction preemption control, speeding up of processing is hindered.
1この欠点あ除去のため、分岐命令の実行結果を予め予
測しこの予測に従って命令先取シを行なう方式が提案さ
れている。この予測が正しく行なわれたときには、テー
タ処理システムは処理時間の少ない遅れで稼働する。例
えは、そのような従来の予測方式としては次の3つの方
式がある。141の予測方式では、全ての分岐命令の分
岐先方向が成功側または不成功仰1のいずれか一方のみ
に予測されている。1. In order to eliminate this drawback, a method has been proposed in which the execution result of a branch instruction is predicted in advance and instructions are prefetched according to this prediction. When this prediction is made correctly, the data processing system operates with little delay in processing time. For example, there are the following three methods as such conventional prediction methods. In the prediction method of No. 141, the branch destination direction of all branch instructions is predicted to be either successful or unsuccessful.
他の1つの予測方式では、遺失の事実に基づいて分岐先
方向を予測する。すなわち、同じ分岐命令の過去の実行
結果において分岐先がすでに明らかにされているという
事実を用いてこの結果に基づいて予測を行なうことによ
)予測的中率を高めている。このような予測方式はAp
ril 197811:EE COMPUTERrCo
mponent Progress:Its Effe
ct on High−8peed Computer
Ar−chitecture and Machin
e Organization Jに考え方が示されて
お)、具体的構成を示したものとしては、特開昭57−
76638号公報が存在する。Another prediction method predicts the branch destination direction based on the fact that the item has been lost. In other words, the prediction accuracy rate is increased by making predictions based on the fact that the branch destination has already been revealed in the past execution results of the same branch instruction. Such a prediction method is Ap
ril 197811:EE COMPUTERrCo
Progress: Its Effe
ct on High-8peed Computer
Architecture and Machine
The idea is shown in e Organization J), and the specific structure is shown in JP-A-57-
No. 76638 exists.
さらにもう1つの予測方式では、分岐命令に対応して分
岐の方向を予測する分岐指示フラグを多数用意し分岐命
令の発生に応答してこれら分岐指示フラグを参照するこ
とにより分岐先を予測している。この例の詳細は特開昭
53−74857号公報を参照できる。しかし、上述の
3つのいずれの予測方式においても分岐命令の訊出し、
解読が必要不可欠であし、予測的中にもかかわらずこれ
らの読出しおよび解読動作分だけ処理が遅れるという欠
点がある。In yet another prediction method, a large number of branch instruction flags are prepared to predict the direction of a branch in response to a branch instruction, and the branch destination is predicted by referring to these branch instruction flags in response to the occurrence of a branch instruction. There is. For details of this example, refer to Japanese Unexamined Patent Publication No. 53-74857. However, in any of the above three prediction methods, the question of a branch instruction,
Deciphering is essential, and there is a drawback that processing is delayed by the amount of reading and decoding operations, even though the prediction is accurate.
この欠点を″除去する予測方式が%開昭57−5925
3号公報に示されている。この方式では、主記憶装備1
の命令部の写しである命令キャッジ瓢メモリのブロック
に対応して該ブロック中に含まれる分岐段に保持してい
る3、命令先増シ動作において、命令キャッシュメモリ
へのアクセスと同時に前記記憶手段をアクセスして前記
分岐先アドレスをh出し、読み出された分岐先アドレス
によシ先取シすべき命令のアドレスを決定している点に
おいて、この方式は上述の従来の3つの予測方式と機力
、し処理の迅速化に有効である。し〃・し、この方式で
は、命令キャッシュメ%、 リのブロック対応で予測す
るため、該ブロックに分岐命令が複数個存在するときに
はそのそれぞれの分岐命令に対応して予測を行なうこと
ができない。仁の結果、札匿の粗い予測的中率しかイ(
られないという欠点かある。A prediction method that eliminates this drawback was developed in 1975-5925.
This is shown in Publication No. 3. In this method, main memory equipment 1
3. In the instruction destination increase operation, the storage means stores a copy of the instruction part of the instruction cache memory in the branch stage included in the block corresponding to the block of the instruction cache memory. This method is different from the above-mentioned three conventional prediction methods in that the address of the instruction to be preempted is determined based on the read branch destination address. It is effective in speeding up processing. However, in this method, prediction is made in correspondence to blocks of instruction cache memory, so when a plurality of branch instructions exist in the block, prediction cannot be made in correspondence to each branch instruction. As a result of Jin, the rough prediction accuracy rate of Futakaku is only good (
The drawback is that it cannot be used.
発明の目的
本発明の目的は上述の欠点を除去するようにした命令先
取り装置を提供することにある。OBJECTS OF THE INVENTION It is an object of the invention to provide an instruction prefetching device which obviates the above-mentioned drawbacks.
発明の構成
本発明の装置は、分岐命令のアドレスを指定する情報と
該分岐命令の分岐先アドレスを含む分岐情報とを対にし
て複数゛対記憶する分岐ヒストリテーブル手段と、
命令先取シ動作を行う際に該命令先取り動作において先
取ルされる分岐命令のそのアドレスを指定する情報が前
記分岐ヒス) IJテーブル手段に登録されているか否
かを調べる点検手段と、該点検手段によシ前記分岐ヒス
トリテーブル手段に登録される分岐命令が存在する場合
に該分岐ヒストリテーブル手段から対応する分岐情報を
読出し該分岐情報に従って命令先取り動作を継続せしめ
るよりに制御する命令先取多制御手段と、該分岐命令が
計数分岐命令であるときには、該計数分岐命令の計数結
果に応じて前記ヒストリテーブル手段の内容の更新を制
御する手段とを備えている。Structure of the Invention The device of the present invention comprises a branch history table means for storing a plurality of pairs of information specifying the address of a branch instruction and branch information including the branch destination address of the branch instruction, and an instruction prefetching operation. checking means for checking whether information specifying the address of a branch instruction prefetched in the instruction prefetching operation is registered in the IJ table means; Instruction prefetching control means for controlling the instruction prefetching operation by reading out corresponding branch information from the branch history table means when there is a branch instruction registered in the history table means and continuing the instruction prefetching operation according to the branch information; when is a counting branch instruction, means for controlling updating of the contents of the history table means in accordance with the counting result of the counting branch instruction.
発明の原理と作用
本発明の特徴は分岐命令の実行における分岐方向に加え
て分岐先アドレスがその同じ分岐命令の過去の結果の把
握によル比教的高い的中率で予測可能であるという事実
と、ループ回数を管理するために同じ計数分岐命令(以
降BCT命令と呼ぶ)を多数回繰返すようループを構成
するプログラムにおいて、ループから脱出する際のBC
T命令は、途中のBCT命令とは分岐方向が異なるとい
う事実と、脱出したループに再び入りた時のHCT命令
は、ループを脱出するときBCT命令とは、分岐方向が
異たるという事実に基づいて装置が動作することにある
。Principle and operation of the invention A feature of the present invention is that in addition to the branch direction when executing a branch instruction, the branch destination address can be predicted with an extremely high accuracy rate by understanding the past results of the same branch instruction. In fact, in a program that configures a loop to repeat the same count branch instruction (hereinafter referred to as BCT instruction) many times in order to manage the number of loops, the BC when escaping from the loop is
This is based on the fact that the branch direction of the T instruction is different from the BCT instruction in the middle, and the fact that the HCT instruction when re-entering the loop from which it exited is different from the BCT instruction when exiting the loop. The purpose is for the device to operate according to the conditions.
発明の実施例
次に本発明の一実施例を図面を参照して詳細に説明する
。第1図を参照すると本発明の一実施例は、命令アドレ
ス生成回路401.命令アドレス変換回路402.命令
解読回路403.オペ2ンドアドレス生成回路404.
オペランドアドレス変換回路405.オペランド記憶回
路を有するオペランド読出し回路406.命令実行口1
1407゜命令記憶回路408.命令バッファ4092
分岐ヒストリテ分岐ヒストリテープ10.命令アドレス
レジスタ411.命令アドレス加算回路412.分岐情
報バッファ413.命令整列回路4142分岐情報切換
回路4159分岐情報レジスタ416゜417.418
、および419、予沖js認回路420、アドレス生成
回路421、選択回路422、レジスタ423、命令先
取9制御回路4241.;IJツブ70ツブ425およ
び命令アドレスリカバレジスタ426から構成されてい
る。Embodiment of the Invention Next, an embodiment of the present invention will be described in detail with reference to the drawings. Referring to FIG. 1, one embodiment of the present invention includes an instruction address generation circuit 401. Instruction address conversion circuit 402. Instruction decoding circuit 403. Operation 2nd address generation circuit 404.
Operand address conversion circuit 405. Operand read circuit 406 with operand storage circuit. Command execution port 1
1407° instruction storage circuit 408. Instruction buffer 4092
Branch history Branch history tape 10. Instruction address register 411. Instruction address addition circuit 412. Branch information buffer 413. Instruction alignment circuit 4142 Branch information switching circuit 4159 Branch information register 416゜417.418
, and 419, pre-offering js recognition circuit 420, address generation circuit 421, selection circuit 422, register 423, instruction prefetch 9 control circuit 4241. ; It is composed of an IJ block 70, a block 425, and an instruction address recovery register 426.
命令記憶回路408およびオペランド読出し回路406
内のオペランド記憶回路はともに主記憶装置そのもので
あってもよく、さらに命令記憶回路408が主記憶装置
の命令部の一部の写しである命令キャッシュメモリ、前
記オペランド記憶回路が主記憶装置のオペランド部の一
部の写しであるオペランドキャッシュメモリとし′〔構
成されうる。前記命令キャッシュメモリおよびオペラン
ドキャッジ−メモリの詳細は、特開昭56−87282
号公報を参照できる。Instruction storage circuit 408 and operand read circuit 406
Both of the operand storage circuits in the main memory may be the main memory itself, and the instruction storage circuit 408 may be an instruction cache memory that is a copy of a part of the instruction section of the main memory, and the operand storage circuit may be a main memory operand storage circuit. The operand cache memory may be configured as a copy of a portion of the operand cache memory. Details of the instruction cache memory and operand cache memory are disclosed in Japanese Patent Application Laid-Open No. 56-87282.
You can refer to the publication.
本発明は前述の命令の処理単位に対応した装置構成を必
ずしも有する必要はなく例えば命令アドレス生成回路4
01とオペランドアドレス生成回路404、命令アドレ
ス変換回路402とオペランドアドレス変換回路405
、命令記憶回路408れ得る。The present invention does not necessarily have a device configuration corresponding to the above-mentioned instruction processing unit; for example, the instruction address generation circuit 4
01, operand address generation circuit 404, instruction address conversion circuit 402, and operand address conversion circuit 405
, instruction storage circuit 408.
第1図において前記分岐ヒストリテープ/1(BHT)
410は分岐命令のアドレスを指定する情報と該分岐命
令の実行の予測としての分岐成否フラグと分岐先アドレ
スとを第3図に示すように対にして記憶している。前記
命令記憶回路408に対する前記命令アドレスレジスタ
(IAR)411は、命令読出しのリクエストアドレス
を保持して命令のb出し動作を実行する。。In FIG. 1, the branch history tape/1 (BHT)
410 stores information specifying the address of a branch instruction, a branch success/failure flag as a prediction of execution of the branch instruction, and a branch destination address in pairs as shown in FIG. The instruction address register (IAR) 411 for the instruction storage circuit 408 holds an instruction read request address and executes an instruction b output operation. .
さらは前記命令アドレスレジスタ411(IAR)は分
岐ヒストリテーブル41Q(BHT)および命令アドレ
ス加シー回路412に信号線101を介して接続されて
いる。前記レジスタ411の内容は該分岐ヒストリテー
ブル410(BAT)を索引し続出されるべき命令のア
ドレスがそれに登録されているか否かを示す信号を信号
線106に出力する。Further, the instruction address register 411 (IAR) is connected to a branch history table 41Q (BHT) and an instruction address processing circuit 412 via a signal line 101. The contents of the register 411 are used as an index in the branch history table 410 (BAT), and a signal indicating whether or not the address of an instruction to be successively issued is registered therein is outputted to the signal line 106.
登録されていれは対応する分岐先アドレスが信号lj!
105に読出される。登録されていなけれは前記命令ア
ドレス加詐回路412によシ後続の命令語の命令先取シ
のためのアドレスが生成される。If registered, the corresponding branch destination address is signal lj!
105. If it is not registered, the instruction address modification circuit 412 generates an address for preempting the instruction of the subsequent instruction word.
前記命令アドレス加算回路412は1回のリクエストで
読出される命令語を8Eyteと仮定したとき単にIA
R+s”を出力107に生成する回路である。前記命令
バッファ409は、命令記憶回路408から読出された
8Byteの先取シ命令語を蓄積し命令処理部への命令
の供給における待行列(Queue)を形成する。前記
命令整列回路414は、命令バッファ409が空のとき
信号線102を介して命令1ピ憶回路408から読出さ
れるBBy−teの命令語に応答して前記命令バッファ
409が空でないとき信号線103を介して前記命令バ
ッファに貯えられるgByteの命令語に応答して命令
を抽出して信号線XO4@介して命令M読回路403に
命令を供給する回路である。命令解駁。The instruction address addition circuit 412 simply adds IA when assuming that the number of instruction words read in one request is 8Eyte.
This is a circuit that generates "R+s" as an output 107.The instruction buffer 409 stores the 8-byte preemptive instruction word read from the instruction storage circuit 408, and creates a queue for supplying instructions to the instruction processing section. The instruction alignment circuit 414 determines whether the instruction buffer 409 is not empty in response to the BBy-te instruction word read from the instruction 1 memory circuit 408 via the signal line 102 when the instruction buffer 409 is empty. This circuit extracts an instruction in response to the gByte instruction word stored in the instruction buffer via the signal line 103 and supplies the instruction to the instruction M reading circuit 403 via the signal line XO4.
回路403は、信号#104を介して命令語が与えられ
ると、その命令語−長と、その命令語かI3CT命令で
あるか否かを信号1126によ多分岐情報レジスタに報
告する機能を有する。前記分岐情報バッファ413は、
前記命令バッファ409に格納される命令語に対して用
意されておシその命令語中に分岐成功と予測された分岐
命令が存在すれば、第7図に示す該分岐命令の分岐情報
を格納する回路であり、分岐命令のアドレスは信号線1
01を介してまた分岐情報としての分岐先アドレスおよ
びVビットは分岐ヒストリテーブル410(BHT)か
ら信号線105を介してそれぞれセットされ、分岐成功
と予測された分岐命令が存在しなけれは、■ピットはθ
セットされるとともに分岐命令のアドレスは係号線10
1を介してセットされる。前記分岐情報切替回路415
は、命令バッファ409が空のとき信号線101および
105を介して与えられる前桁分岐情報をそうでないと
きは前記分岐情報バッファ413を介して与えられる前
討分岐情報をそれぞれ出力する3、前記レジスタ416
,417、および418はそれぞれ分岐命令の命令解読
、命令アドレス生成、アドレス変換の各処理ステージに
対応しその分岐情報を保持する。前記分岐情報レジスタ
419はその分岐先アドレス部を該分岐命令の実行によ
って生成される実際の分岐先アドレスに置き換えて保持
するレジスタである。レジスタ417,418、および
419は第8図に示す分岐情報を保持する。前記予測確
認回路420は分岐命令の実行によって生成される実際
の分岐先アドレスおよび分岐成否結果と、前記分岐情報
レジスゲ418に保持される核分岐命令の予測情報との
一致をとり、前記分岐ヒストリテーブルの内容の更新と
命令の先取シのやシなおしを指示する回路である。前記
アドレス生成回路421は前記分岐情報レジスタ419
に保持される分岐命令のアドレスと該分岐命令自身の命
令語長とを加算し分岐N0GO側の命令の命令アドレス
を生成する。前記選択回路422は前記予測確認回路4
20の出力する信号線133の状態に応答して該信号線
の状態が′1”を示すとき絆115を介して与えられる
前記分岐情報レジスタ419に保持される分岐先アドレ
ス部の出力を選択し、前記信号線の状態が10”を示す
とき信号線116を介して与えられる前記アドレス生成
回路421の出力を選択し、係号l11113を介して
該選択回路422の出力をレジスタ423と命令アドレ
スレジスタ(IAR)411とに供給する4、前記レジ
スタ423は分岐命令の予測が失敗したとき分岐ヒ゛ス
トリテーブル41Q(BHT)を更新するためのもので
ある3、命令アドレスリカバレジスタ426は命令アド
レス変換スz4x1(IAR)に分岐ヒストリテーブル
の内容を切断するだめのライトアドレスがセットされた
後に命令先耶りのための新たなアドレスを供給するため
のものである。The circuit 403 has a function of reporting the length of the instruction word and whether the instruction word is an I3CT instruction to the multi-branch information register by the signal 1126 when an instruction word is given via the signal #104. . The branch information buffer 413 is
If there is a branch instruction predicted as a successful branch in the instruction word prepared for the instruction word stored in the instruction buffer 409, branch information of the branch instruction shown in FIG. 7 is stored. circuit, and the address of the branch instruction is signal line 1
01 and the branch destination address and V bit as branch information are set from the branch history table 410 (BHT) via the signal line 105, and if there is no branch instruction predicted as a successful branch, the is θ
When set, the address of the branch instruction is code line 10.
Set via 1. The branch information switching circuit 415
3. The register outputs the preceding branch information given via the signal lines 101 and 105 when the instruction buffer 409 is empty, and the preceding branch information given via the branch information buffer 413 when the instruction buffer 409 is empty. 416
, 417, and 418 correspond to each processing stage of instruction decoding, instruction address generation, and address translation of a branch instruction, and hold the branch information thereof. The branch information register 419 is a register that replaces the branch destination address field with an actual branch destination address generated by executing the branch instruction. Registers 417, 418, and 419 hold branch information shown in FIG. The prediction confirmation circuit 420 matches the actual branch destination address and branch success/failure result generated by the execution of the branch instruction with the prediction information of the core branch instruction held in the branch information register 418, and records the prediction information in the branch history table. This is a circuit that instructs to update the contents of the command and to correct the preemption of commands. The address generation circuit 421 is connected to the branch information register 419.
The instruction address of the branch N0GO side instruction is generated by adding the address of the branch instruction held in the branch instruction and the instruction word length of the branch instruction itself. The selection circuit 422 is the prediction confirmation circuit 4
In response to the state of the signal line 133 outputted by 20, when the state of the signal line indicates '1', the output of the branch destination address part held in the branch information register 419 given via the bond 115 is selected. , selects the output of the address generation circuit 421 given through the signal line 116 when the state of the signal line indicates 10'', and sends the output of the selection circuit 422 to the register 423 and the instruction address register through the coefficient l11113. (IAR) 411 4. The register 423 is for updating the branch history table 41Q (BHT) when prediction of a branch instruction fails. 3. The instruction address recovery register 426 is for updating the instruction address conversion register 4 This is for supplying a new address for instruction slippage after the write address for cutting off the contents of the branch history table is set in (IAR).
前記命令実行回路407は、分岐命令において、分岐の
成否を信号線110に出力する榛:能と、BCT命令に
おいては、さらに、命令語で指定された現用レジスタの
内容を′−1”する計数動作を行なった結果、該引数結
果が91#になった場合には48号線132に1′1”
を計数イ16”1#信号として出力し、該計数結果が6
0”でない時には分岐前記命令先取り制御回路424は
信号線106を介して分岐ヒストリテーブル41Q(B
HT)から与えられる分岐予測信号、予測確認回路42
0から係号線112を介して与えられるBHT更新指示
化号、および命令実行回路407より信号線110を介
して与えられる分岐成否信号に基づいて命令アドレスレ
ジスタ411(IAR)の入力と、命令アドレスリカバ
レジスタ426の入力とを制御する回路である。In the case of a branch instruction, the instruction execution circuit 407 outputs the success or failure of the branch to the signal line 110, and in the case of a BCT instruction, it also performs a counter function that increments the contents of the current register specified by the instruction word by 1. As a result of performing the operation, if the argument result becomes 91#, 1'1" is sent to Route 48 132.
is output as a count I16”1# signal, and the count result is 6
0”, the branch instruction prefetch control circuit 424 reads the branch history table 41Q (B) via the signal line 106.
Branch prediction signal given from HT), prediction confirmation circuit 42
The input of the instruction address register 411 (IAR) and the instruction address recovery are performed based on the BHT update instruction signal given from 0 through the signal line 112 and the branch success/failure signal given from the instruction execution circuit 407 through the signal line 110. This circuit controls the input of the register 426.
次に前記分岐ヒストリテーブル410(I3)(’r)
、前記予測確認回路420および前記命令先取多制御回
路424の詳細なブロック図とタイムチャートを参照し
ながら本実施例の動作を詳細に鮫明する。Next, the branch history table 410 (I3) ('r)
, the operation of this embodiment will be explained in detail with reference to detailed block diagrams and time charts of the prediction confirmation circuit 420 and the instruction prefetch control circuit 424.
第2図を参照すると、前記分岐ヒストリテーブル41Q
(BHT)は、ディレクトリ記憶部501、データ記憶
部502、テスト回路503,504゜505、および
506、プライオリティ回路507、レベル選択回路5
08、およびオア回路509を4浩 ヰ イし、1 歯
a會、−・−一拳嵜紮■ ζ n 1 七ユ トr〔ζ
(IQIr+1回のリクエストに対して命令記憶回路
408から読出される命令語の単位をブロックの単位と
し、セット数m、レベル数nの記憶部である。Referring to FIG. 2, the branch history table 41Q
(BHT) includes a directory storage section 501, a data storage section 502, test circuits 503, 504, 505, and 506, a priority circuit 507, and a level selection circuit 5.
08, and the OR circuit 509 are set 4 times, 1 tooth a meeting, ---1 fist connection ■ ζ n 1 seven units tr [ζ
(The unit of instruction words read from the instruction storage circuit 408 in response to IQIr+1 requests is taken as a block unit, and the storage unit has m sets and n levels.
第3図を参胛すると、記憶部501には分岐命令の命令
アドレスの一部とその内容が有効か否かを示すVビット
が格納され記憶部502には分岐先アドレスの笑アドレ
スが格納されている3、前記Vビットは対応する分岐ヒ
ストリテーブル(BHT)410のワードの有効性を示
すと同時に該分岐命令の実行の予測としての分岐成否フ
ラグの榛能を有する。Referring to FIG. 3, a part of the instruction address of a branch instruction and the V bit indicating whether or not its contents are valid are stored in the storage unit 501, and the address of the branch destination address is stored in the storage unit 502. 3. The V bit indicates the validity of the corresponding branch history table (BHT) 410 word and has the function of a branch success/failure flag as a prediction of execution of the branch instruction.
この分岐ヒストリテーブル(BHT)410への索引は
以下のようなセットアソシアティブ法によって行われる
。Indexing into the branch history table (BHT) 410 is performed using the set associative method as described below.
第2図に示される前記テスト回路503 、504 。The test circuits 503 and 504 shown in FIG.
505、および506はテーブル410の各レベルに対
応して命令アドレスレジスタ4i1(IAR)に保持さ
れるリクエストアドレスが各レベルのBHT−AAi(
iはレベルに対応するサフィクスを示す)に登録されて
いるか否かを示す信号を信号線13o、・131.13
2,133に出力する。第4図を参照すると、前記テス
ト回路503,504,505および506のそれぞれ
ね、一致回路701および大小比較回路702から栴成
されている1、
前言(゛−一致路701では、命令アドレスレジスタ(
IAR)411に保持されるリクエストアドレスの一部
IAR(:18−28)をセットアドレスとして読出さ
れた記憶部501の各レベルの内容と前記レジスタ41
1の内容IAR(:4−17)とが比較され、等しいア
ドレスが存在するか否かを艶出する。505 and 506 are BHT-AAi (
i indicates a suffix corresponding to the level).
Output to 2,133. Referring to FIG. 4, each of the test circuits 503, 504, 505 and 506 is constructed from a match circuit 701 and a magnitude comparison circuit 702.
The contents of each level of the storage unit 501 and the register 41 are read out using a part of the request address IAR (:18-28) held in the IAR) 411 as a set address.
1's contents IAR(:4-17) are compared to determine whether an equal address exists.
該一致回路701の出力によシ命令アドレスレジスタ(
IAR)411に保持されるリクエストアドレスで読出
されるべき命令語の8Byteブロツク中にすでに分岐
ヒストリテーブル(BHT)410に登録された分岐命
令が存在するか否かが、判明する。しかしリクエストア
ドレスとそれが読出すべき分岐命令との対応をとるには
上記一致検出のみでは不十分である。第5図を参照する
と、1回のリクエストで読出されるgByteの命令語
のブロック中K 2By t e命令BCQ、A、BC
I、BO2の4個の命令が存在する。命令BCQ、BC
1,BC2がともに分岐成功と予測された分岐命令であ
るときには、各々の分岐命令はともにそのアドレスの一
部が記憶部(BH’l’−AA ) 501に登録さえ
る。このとき他の分岐命令から命令Aに分岐して命令A
のアドレス<A>か前記命令語のブロックを読出すため
のリクエストアドレスとして命令アドレスレジスタ(I
AR)411に保持されるときには、分岐ヒストリテー
ブル(B)iT)410から読出されるべき分岐命令の
情報は命令の火打の経路から分岐命令BC1の情報でな
けれはならない、。According to the output of the matching circuit 701, the instruction address register (
It is determined whether or not a branch instruction already registered in the branch history table (BHT) 410 exists in the 8-byte block of the instruction word to be read at the request address held in the IAR) 411. However, the above-mentioned coincidence detection alone is not sufficient to establish a correspondence between the request address and the branch instruction from which it should be read. Referring to FIG. 5, K 2Byte instructions BCQ, A, BC in a block of gByte instruction words read in one request.
There are four instructions: I and BO2. Command BCQ, BC
When both 1 and BC2 are branch instructions predicted to be successful, a part of the address of each branch instruction is registered in the storage unit (BH'l'-AA) 501. At this time, branch to instruction A from another branch instruction and execute instruction A.
The instruction address register (I) is set as the request address for reading the block of instruction words.
When retained in AR) 411, the information of the branch instruction to be read from the branch history table (B) 410 must be the information of branch instruction BC1 from the instruction flash path.
従って前記レジスタ(IAR)411に保持されるリク
エストアドレスと前記記憶部(BHT−AAi)501
に保持される分岐命令のアドレスとの関係が上記の一致
条件とともに次の関係が成立するとき、対応するレベル
のBHT−HITi信号が生成される。この信号は#1
30−133を介してオア回路509に与えられ、しB
HT−HITi伯号のオア信号が#106を介して出力
され分岐予測係号(B)iT−)11T信号)となる。Therefore, the request address held in the register (IAR) 411 and the storage unit (BHT-AAi) 501
When the relationship between the address of the branch instruction held in the address and the above matching condition is satisfied, the BHT-HITi signal of the corresponding level is generated. This signal is #1
30-133 to the OR circuit 509, and
The OR signal of HT-HITi is output via #106 and becomes a branch prediction coefficient (B)iT-)11T signal).
BHT−HITi工(IAR(:4−17)=BHT−
AAi(:4−17))
(IAR(: 29,30 )≦BHT−AAi(:
29,30 ) )
BHT−AAi(V)
再び第4図を参照すると、前記大小比較回路は、この条
件を実シ、する回路で喜る。BHT-HITi Engineering (IAR(:4-17)=BHT-
AAi(:4-17)) (IAR(:29,30)≦BHT-AAi(:
29, 30) BHT-AAi (V) Referring again to FIG. 4, the magnitude comparison circuit is satisfied with a circuit that implements this condition.
さらに前記信号BHT−HITiの条件が2ヶ以上のレ
ベルにおいて成立したとき記憶部501の対応するレベ
ル(BHT−AAi)に保持される分岐命令のアドレス
のgByteブロック内アドレスBHT−AAi(:2
9,30)の値の最も小さいレベルが選択される必要が
ある。再び第5図を参照すると、命令BCIおよびBO
2の分岐命令関係情報が格納される分岐ヒストリテーブ
ル410のレベルで前記係号BHT HITi条件が共
に成立する。このとき命令の実行の経路≠λら命令BC
1に対するレベルが選択される必要がある。Further, when the condition of the signal BHT-HITi is satisfied at two or more levels, the address in the gByte block of the branch instruction address BHT-AAi (:2
9, 30) should be selected. Referring again to FIG. 5, instructions BCI and BO
The above-mentioned BHT and HITi conditions are both satisfied at the level of the branch history table 410 where the branch instruction related information of No. 2 is stored. In this case, the instruction execution path ≠ λ and instruction BC
A level for 1 needs to be selected.
前記プライオリティ回路507は、前記信号BH’l’
−HI’l”iの2ヶ以上の成立に対するものであリ、
この出力によシ記憶部BHT−1)A502のセットア
ドレスIAR(:18−28)で示されるエントリの分
岐先アドレスがレベル選択回路508を介して読出式れ
る。The priority circuit 507 receives the signal BH'l'
-It is for the establishment of two or more of HI'l"i,
From this output, the branch destination address of the entry indicated by the set address IAR(:18-28) of the storage section BHT-1)A502 is read out via the level selection circuit 508.
第6図を参照すると、前記プジイオリティ回路507は
アンド回路群601−604およびオア回路群605−
608から構成されている。前記アンド回路群601−
604はn + 1個並列に配5色′されている。Referring to FIG. 6, the poor priority circuit 507 includes a group of AND circuits 601-604 and a group of OR circuits 605-
608. The AND circuit group 601-
604, n + 1 pieces of five colors are arranged in parallel.
前記第2図におけるレベル選択回路508のnヶのレベ
ルの選択信号は第6図における信号Vo。The n level selection signals of the level selection circuit 508 in FIG. 2 are the signals Vo in FIG.
V 1.V2.V3により以下のように与えられる。V1. V2. V3 is given as follows.
Vo のとき VoLo 、VOLI 、・、VoLn
Vo*Vtノとき VtLo 、VILI 、−・・、
VsLnVo−Vl−V2 V2LOV’2L1 ・−
V2LnVo −Vl−’Jx jVa (7) ト@
Va:Lo 、VILI 、・−、VsLn以上のよ
うにして第2図におけるレベル選択回路508から読出
された分岐情報は第1しくの命令記憶回路408から読
出される命令と対応づけることか可能である。When Vo is VoLo, VOLI, ・, VoLn
When Vo*Vt, VtLo, VILI, --...
VsLnVo-Vl-V2 V2LOV'2L1 ・-
V2LnVo -Vl-'Jx jVa (7) To@
Va: Lo, VILI, . . . , VsLn The branch information read out from the level selection circuit 508 in FIG. be.
第9図には、命令記憶回路408における命令と分岐ヒ
ストリテーブル(BHT)410における分岐情報の上
記対応関係が示されている。命令の夾行j−序が命令A
o、分岐命令BCo 、Bl 、BCl 、B2 。FIG. 9 shows the above-mentioned correspondence between instructions in the instruction storage circuit 408 and branch information in the branch history table (BHT) 410. Containment of commands - order is command A
o, branch instructions BCo, Bl, BCl, B2.
Ba 、BO2、Cs 、C2・・・と予測された場合
である。This is a case where Ba, BO2, Cs, C2, etc. are predicted.
なお、〈A〉は人命令のアドレスを、BCjは分岐命令
をそれぞれ示す。Note that <A> indicates the address of a human instruction, and BCj indicates a branch instruction.
第10図を参照すると、前記第9図に示した分岐ヒスト
リテーブルBH’[’41 Q による命令先取り動作
は次のようにされる。リクエストアドレスの命令アドレ
スレジスタ411のセットに応答して命令記憶回路40
8から命令1uか読出され、これと同時にテーブルB)
iT41Qが索引される。信号線106を介してBHT
−HIT信号が出力されると記憎部B)IT−DA50
2の分岐先アドレス〈B1〉がアドレスレジスタ411
にセットされ、次の命伶先堆りが行われる3、前記信号
線106を介してBHT−BIT 信号が出力されない
ときには命令アドレス加シ0回路412に命令Aの8バ
イト境界fアドレス<A>が与えられ、「8」加抽、さ
れたアドレスが出力され、次の命令先取りが逐次性われ
る。Referring to FIG. 10, the instruction prefetch operation using the branch history table BH'['41 Q shown in FIG. 9 is performed as follows. In response to the setting of the instruction address register 411 of the request address, the instruction storage circuit 40
The instruction 1u is read from 8, and at the same time, table B)
iT41Q is indexed. BHT via signal line 106
- When the HIT signal is output, the recording section B) IT-DA50
2 branch destination address <B1> is the address register 411
3. When the BHT-BIT signal is not output via the signal line 106, the 8-byte boundary f address of the instruction A is sent to the instruction address addition circuit 412. is given, the address added and extracted by ``8'' is output, and the next instruction is prefetched sequentially.
以上の命令の先取りに従えば命令記憶回路408から計
1出される合令飴は、テーブルBHT410 の内容に
よる予測に従って順次読出され、焔令バッファ409に
は予測された怖令の実行1いに格納することが可能、で
ある。According to the above command preemption, a total of one command candy is issued from the command storage circuit 408, and is read out sequentially according to the prediction based on the contents of the table BHT410, and is stored in the command buffer 409 at the execution level of the predicted command. It is possible.
このときたとえ信号BHT−HIT が出力されても分
岐予測手向と反対側の命令先取り重l・作を一部行わせ
しめた後に分岐予測方向の命令先取り動作を行ってもよ
い1゜
以上のようにして命令先取シされた命令が分岐命令で第
1図の命令整列回路414により命令記憶回路403に
導かれたとき同時に該分岐都令に対応する分岐悄嘲−l
が最初の分岐情報レジスタ416(QR0)にセットさ
れる。At this time, even if the signal BHT-HIT is output, the instruction prefetch operation in the direction opposite to the branch prediction direction may be partially performed, and then the instruction prefetch operation in the branch prediction direction may be performed. When the preempted instruction is a branch instruction and is guided to the instruction storage circuit 403 by the instruction alignment circuit 414 in FIG.
is set in the first branch information register 416 (QR0).
以降hlt分岐命鳴0進行にh−いが1記焔令尾読、ア
ドレス変捩に対応して前記分岐’(Tr %が泥2およ
び#、3の分岐↑I、報レジスタ417(QRI)およ
び418(QB2)に転送される。そしで前記分岐命令
の実行によって生J、!、される吠際の分岐命令の生成
結欠と前言し分鼓軸嘲りレジスタ418 (Q、R2)
に保も・される該分岐命令の予測情報との一致が予測確
認回路420によりチェック逼れる。#11図を参照す
ると、前記予測確認回路420は比較回路801、フリ
ップフロップ802および803、真偽回−804−8
07、ノット回路808、イクスクルーシブオア回路8
09,810、アンド回路ε11−817、およびオア
回路818−820から構成されている。After that, the hlt branch command goes to 0, the h-Iga 1 code ends, and in response to the address change, the branch '(Tr% is 2 and #, 3 branches ↑I, information register 417 (QRI) and is transferred to 418 (QB2). Then, the execution of the branch instruction generates a branch instruction that is about to be generated and is transferred to the branch axis register 418 (Q, R2).
The prediction confirmation circuit 420 checks whether the prediction information of the branch instruction that is maintained in the branch instruction matches the prediction information. Referring to FIG. #11, the prediction confirmation circuit 420 includes a comparison circuit 801, flip-flops 802 and 803, and a truth/false circuit 804-8.
07, knot circuit 808, exclusive OR circuit 8
09, 810, AND circuits ε11-817, and OR circuits 818-820.
前記比較回路801には分岐命令の実行によシ住成され
た分岐分アドレスの笑アドレスが扁令アドレス変換回路
402から信号&+109を介して与えられるとともに
、分岐情報レジスタ41B(QR2)から予測された分
岐先アドレスが信号線108を介して与えられる。前記
比較回路801では両者一致、不一致が判定され、判知
結果は前記7リツプフロツグ802にセット妊れる。が
1記レジスタ418から信号馴108をブ+°シて与え
ら1する■ビットは前台己ンリッン°フロクプ803に
セットされる。命令実行し:路407から信号線110
を介して与えられる分岐の成否信号、同じく命令実行回
路407から信号)lli131132を介して与えら
れる針数値@1’4ら号、レジスタ419から信号線1
30を介して与えられるBCTビット、および前記フリ
ップフロップ802,803の出力よシ、前記ゲート回
路804−824を介して信号側112,131.およ
び135上に制御信号を出力する。第12図を参照する
と、前にフリップフロップ802および803の出力と
、前記信号線110,130.および132上の内容と
、出力される信号11112,131゜133上の内容
とのl!lL′保が示されている。The comparator circuit 801 receives the address of the branch address created by executing the branch instruction from the address conversion circuit 402 via the signal &+109, and also receives the predicted address from the branch information register 41B (QR2). The branch destination address is given via signal line 108. The comparison circuit 801 determines whether they match or do not match, and the determination result is set in the 7-lip frog 802. When the input signal 108 is input from the first register 418, the bit 1 is set in the front register 803. Command execution: from path 407 to signal line 110
Branch success/failure signal given via lli131132, signal line 1 from register 419
30 and the outputs of the flip-flops 802, 803, the signal side 112, 131 . and outputs a control signal on 135. Referring to FIG. 12, the outputs of flip-flops 802 and 803 and the signal lines 110, 130 . and l! of the contents on 132 and the contents on the output signals 11112, 131°133! The lL′ hold is shown.
第10図を参照すると信号線131の予測失敗信号は、
7リツプフロツプ803の出力と介号離110の出力と
か一致していない時、すなわち、予柵された分岐成否と
実際の分岐成否が基なっている叫およびフリップフロッ
プ803の出力と信号線110の出力とがともに@l#
でフリップフロップ802の出力が@IO#である−1
すなわち分11GOの予測か成功したにもかかわらず予
測された分岐先アドレスが異なりていた場合に11#に
なりて、命令の先堆りのやシなおしを指示する。Referring to FIG. 10, the prediction failure signal on the signal line 131 is
7 When the output of the flip-flop 803 and the output of the signal line 110 do not match, that is, the output of the flip-flop 803 and the output of the signal line 110 are based on the predicted success or failure of the branch and the actual success or failure of the branch. Together with @l#
and the output of flip-flop 802 is @IO# -1
That is, if the predicted branch destination address is different even though the prediction of minute 11 GO is successful, the signal becomes 11# and instructs to rewrite the beginning of the instruction.
BHT更新指示信号が以下の場合に信号線・112に出
力される。The BHT update instruction signal is output to the signal line 112 in the following cases.
信号線130のBCTビットが0”であるときには、信
号線131と同様の論理によシフリップフロップ203
の出力と信号線110の出力とが一致していない時およ
びフリップフロップ803の出力と信号線110の出力
とがともに′1#で7リツプフロツプ802の出力が6
0#である時、すなわち、分岐成否についての予測か失
敗したかあるいは分岐Goの予測が成功したにもかかわ
らず、予測された分岐アドレスが異なりていた場合にB
HT更新指示信号が61#になる。When the BCT bit of the signal line 130 is 0'', the shift flip-flop 203 uses the same logic as the signal line 131.
When the output of the flip-flop 803 and the output of the signal line 110 do not match, and the output of the flip-flop 803 and the output of the signal line 110 are both '1#, the output of the flip-flop 802 is 6.
0#, that is, if the prediction of branch success or failure failed or the prediction of branch Go was successful but the predicted branch address was different, B
The HT update instruction signal becomes 61#.
信号線130のBCTビットが11#である時には、フ
リップフロップ803の出力と信号#110の出力がと
もに10”の時、すなわち、分岐NO(イ)の予測が成
功した時と、クリップ70ツブ803が1で7リツプフ
ロツプ802が′0#である時、すなわち、予測が分岐
GOで分岐先アドレスが異なっている時と、フリップ7
0ツブ803か10”で信号線110が111、信号線
132が10”である時、すなわち、予測が分岐N0G
Oで実際の分岐がGOで引数動作の結果が11#でない
時、およびフリップフロップ803が′″1”で信号線
110および132とも11#である時、すなわち、分
岐GOの予測が成功してかつ計数動作の結果が11″で
ある時にBHT更勅指示傷号が11#になる。分岐ヒス
トリテーブルのGO更新指示信号は以下の場合に信号線
133に出力される。信号線130のBCTビットが1
0#の時には、信号線110が11”の時、すなわち、
実際の分岐がGOである時、すなわちBCT命令以外の
分岐命令において分#GOの時にGO更新指示信号が1
1#になる。信号線130が1#である時には、信号線
110が′RO#の時、および、信号線110が1#で
信号@132カ” 0 ”ノ時、すなわち、BCT命令
においては分岐N0GOであるか分岐GOでかつ計数動
作の結果か1#でない時にGO更新指示信号が”l#に
なる。第13図を参照すると、前記命令先取多制御回路
424は、クリップ7ayプ1301、真偽回路130
2−1305アンド回路1306−1313、ノット回
路1314−1316から構成されている。前記7リツ
プ7I:lツブ1301は、前記BUT更新指示信号1
12を1マシンサイクル保持するためのものである。こ
の回路424の出力は、命令アドレスレジスタ411の
前段にあるセレクタと、命令アドレスリカバレジスタ4
26の前段のセレクタの選択指示信号を出力する。命令
アドレスレジスタ411は信号線112のBHT更新指
示信号が@l#になると信号F$114を介して分岐情
報レジスタ419の保持する分岐命令自身のアドレスが
セットされ、その1マシンサイクルリには、信号線13
4を介して命令アドレスリカバレジスタ426の保持す
るアドレスがセットされる。またレジスタ411は、信
号@1131の分肢予測失敗信号が1#で信号#11o
の分岐成否信号が1#、すなわち、分岐GOである時に
は信号線115を介して実際に分岐命令を実行した結果
得られた分岐情報レジスタ419に保持される分岐先ア
ドレスがセットされる。命令アドレスレジスタ411は
信号#131の分岐子側失敗信号が@l#で信号11M
110の分岐成否信号が0”である時には信号線116
を介してアドレス生成回路421の出力する分岐N0G
Oflllのアドレスがセットされ、信号線106のB
HT−HIT信号が1”の時は、信号線105を介して
分岐ヒストリテーブル410よシ出力される予測された
分岐先アドレスがセットされ、上記のどれKも該轟しな
い時には、信号線107を介して、命令アドレス加算回
路412の出力する次の命令のアドレスがセットされる
ように制御される。命令アドレスリカバレジスタ426
は、信号線131の分岐予測失敗信号か′1”で信号線
110の分岐成否信号が1#である時には、化%線11
5を介して分岐情報レジスタ419の保持する分岐先ア
ドレスがセットされる。該レジスタ426は信号線13
1の分岐予測失敗信号が11”で、信号#a110の分
岐成否信号が0”でおる時には、信号線116を介して
分岐N0GO側のアドレスがセットされ、信号線131
の分岐予測失敗信号が′0”で信号線106のBHT−
HIT信号≠5.、、#の時には信号線105を介しで
予測された分岐アドレスがセットされる。信号fi11
31の分岐予測失敗信号が60″で信号ffI!106
のBHT−HIT信号が10”の時には信号線107を
介して次の命令のアドレスがセットされるよう制御され
る。When the BCT bit of the signal line 130 is 11#, the output of the flip-flop 803 and the output of the signal #110 are both 10'', that is, when the prediction of branch NO (a) is successful, and the clip 70 knob 803 is 1 and flip-flop 802 is '0#', that is, when the prediction is branch GO and the branch destination address is different,
When the signal line 110 is 111 and the signal line 132 is 10'', the prediction is branch N0G.
When the actual branch at O is GO and the result of the argument operation is not 11#, and when the flip-flop 803 is ``1'' and the signal lines 110 and 132 are both 11#, that is, the prediction of the branch GO is successful. And when the result of the counting operation is 11", the BHT update instruction signal becomes 11#. The GO update instruction signal of the branch history table is output to the signal line 133 in the following cases. The BCT bit of the signal line 130 is 1
When it is 0#, when the signal line 110 is 11'', that is,
When the actual branch is GO, that is, at minute #GO in a branch instruction other than the BCT instruction, the GO update instruction signal is 1.
Becomes 1#. When the signal line 130 is 1#, when the signal line 110 is 'RO#', and when the signal line 110 is 1# and the signal @132 is "0", that is, in the BCT instruction, is it branch N0GO? When it is a branch GO and the result of the counting operation is not 1#, the GO update instruction signal becomes "l#." Referring to FIG.
It is composed of 2-1305 AND circuits 1306-1313 and NOT circuits 1314-1316. The 7-lip 7I:l tab 1301 receives the BUT update instruction signal 1.
12 for one machine cycle. The output of this circuit 424 is sent to the selector in the previous stage of the instruction address register 411 and the instruction address recovery register 4.
A selection instruction signal for the selector at the previous stage of 26 is output. In the instruction address register 411, when the BHT update instruction signal on the signal line 112 becomes @l#, the address of the branch instruction itself held in the branch information register 419 is set via the signal F$114, and in that one machine cycle, Signal line 13
4, the address held in the instruction address recovery register 426 is set. In addition, the register 411 indicates that the branch prediction failure signal of the signal @1131 is 1# and the signal #11o
When the branch success/failure signal is 1#, that is, branch GO, the branch destination address held in the branch information register 419 obtained as a result of actually executing the branch instruction is set via the signal line 115. In the instruction address register 411, the branch side failure signal of signal #131 is @l#, and the signal 11M
When the branch success/failure signal of 110 is 0'', the signal line 116
Branch N0G output from the address generation circuit 421 via
The address of Ofll is set, and the B of signal line 106 is set.
When the HT-HIT signal is 1'', the predicted branch destination address output from the branch history table 410 via the signal line 105 is set, and when none of the above K is applicable, the signal line 107 is set. The address of the next instruction output from the instruction address adder circuit 412 is controlled to be set via the instruction address recovery register 426.
When the branch prediction failure signal on the signal line 131 is '1'' and the branch success/failure signal on the signal line 110 is 1#, the % line 11
5, the branch destination address held in the branch information register 419 is set. The register 426 is connected to the signal line 13
When the branch prediction failure signal of signal #a110 is 11'' and the branch success/failure signal of signal #a110 is 0'', the address on the branch N0GO side is set via the signal line 116, and the address on the branch N0GO side is set via the signal line 131.
When the branch prediction failure signal is '0', the BHT- signal on the signal line 106 is
HIT signal≠5. , , #, the predicted branch address is set via the signal line 105. signal fi11
31 branch prediction failure signal is 60″ and signal ffI!106
When the BHT-HIT signal is 10'', the address of the next instruction is set via the signal line 107.
第1図および第14図を参照すると、分岐情報レジスタ
419(QR3)の分岐先アドレス部には前記命令アド
レス変換回路402から新たに生成される分岐先アドレ
スがセットセれる。また前記分岐情報レジスタ419(
QR3)の分岐命令BCIのアドレス部の内容と該分岐
命令BCI自身の命令語長部の内容とがアドレス生成回
路421によシ加算され分岐N0GO側の命令の命令ア
ドレスが生成される。Referring to FIGS. 1 and 14, the branch destination address newly generated from the instruction address conversion circuit 402 is set in the branch destination address field of the branch information register 419 (QR3). In addition, the branch information register 419 (
The contents of the address field of the branch instruction BCI of QR3) and the contents of the instruction word length field of the branch instruction BCI itself are added by the address generation circuit 421 to generate the instruction address of the branch N0GO side instruction.
そして分岐命令BCIの実際の実行によ多分岐GOなら
ば前記分岐情報レジスタ419(QR3)から緑115
を介して与えられる分岐先アドレス部の出力〈Dl〉が
、分岐N0GOならは線116を介して与えられる前記
アドレス生成回路421の出力〈B2〉が信号線133
のGO更新指示侶信号従い遊択回路422で選択され、
信号#113を介してレジスタ423(WR)にセット
される。分岐情報のVビットと実際の分岐成否結果が一
致していないか、あるいは分岐GOの予測が成功したに
もかかわらず予測された分岐先アドレスが異なっていて
、前すじ予御i確認回路420よシ(Th号縁線131
分岐予測失敗信号と信号線112のB II T更新指
示信号とが出力されると、分岐情報レジスタ419(Q
R3)の分岐命令のアドレス(B Cl )は43号線
114を介して命令アドレスレジスタ411 (IAR
)にセットされる。このアドレスは該分岐6令に対応す
る分岐ヒストリテーフ≠41Q(11HT)の更新のた
めに信号線101を介して該テーブル410にライトア
ドレスとして供給される。Then, in the actual execution of the branch instruction BCI, if it is a multi-branch GO, the green 115 is sent from the branch information register 419 (QR3).
If the output <Dl> of the branch destination address field given via the branch is N0GO, the output <B2> of the address generation circuit 421 given via the line 116 is the signal line 133.
is selected by the selection circuit 422 according to the GO update instruction signal,
It is set in register 423 (WR) via signal #113. Either the V bit of the branch information and the actual branch success/failure result do not match, or even though the branch GO prediction was successful, the predicted branch destination address is different, and the previous branch prediction i confirmation circuit 420 shi (Th line 131
When the branch prediction failure signal and the B II T update instruction signal on the signal line 112 are output, the branch information register 419 (Q
The address (B Cl ) of the branch instruction of R3) is sent to the instruction address register 411 (IAR
) is set. This address is supplied as a write address to the table 410 via the signal line 101 in order to update the branch history history ≠ 41Q (11HT) corresponding to the branch 6 instruction.
一方、@記命令アドレスリカバレジスタ426には、分
岐命令BC1の実際の分岐成否結果に応じて分岐先アド
レス<DI>、または、BClの次の命令のアドレス〈
B2〉がセットされる。On the other hand, the instruction address recovery register 426 contains the branch destination address <DI> or the address of the next instruction of BCl depending on the actual branch success/failure result of the branch instruction BC1.
B2> is set.
前記BHT史刷指示信号112の出力が7リツプフロツ
プ425に与えられ、この出力が指示パルプL+毅イ傾
110心心旨イ辱−イvI−A^1117←えられる。The output of the BHT history printing instruction signal 112 is applied to the 7-lip flop 425, and this output is read from the instruction pulp L+KAI 110.
この出力に応答して分岐命令の次の命令先取シ時のため
の分岐予測情報の更新が行なわれる。この更新は本実施
例では予測N0GO失敗のとき前記レジスタ423(W
R)に保持される新たな分岐先アドレスで行ガわれ、予
測Go失敗のときはVビットをリセットするように行わ
れるが分岐予測情報の更新におけるアルゴリズムを用い
て他の方法によ9行力っても差しつかえない。In response to this output, branch prediction information for the next instruction preemption of the branch instruction is updated. In this embodiment, this update is performed in the register 423 (W) when the predicted N0GO fails.
The new branch destination address held in R) is used, and when the prediction Go fails, the V bit is reset. I can't help it.
予測失敗したとき予測側に後続する命仝の動作はすべて
キャンセルされ、前記命令アドレスリカバレジスタ42
6に保持きれる新たなリクエストアドレスが分岐ヒスト
リテーブル41Q(BHT)の更新後に命令アドレスレ
ジスタ411(IAR)に供給され改めて命令の準出し
が開始される。When prediction fails, all subsequent operations on the prediction side are canceled, and the instruction address recovery register 42
After the branch history table 41Q (BHT) is updated, a new request address that can be held in 6 is supplied to the instruction address register 411 (IAR), and the sub-issuance of instructions is started again.
第15図を参照すると、第14図における分岐命令BC
Iと同様に、BCT命令BCT1め実際ノめ分岐先アド
レスが命令アドレス変換回路402で生成され、分岐状
報レジスタ419にセットされる。さらに、前記レジス
タ419の保持するBCTI自身のアドレスと命令語長
がアドレス生成回路421で加算され、分岐N0GO側
のBCTIの次の命令のアドレス〈B3〉が生成される
。一方、命令アドレxvジス1411(IAR)VC,
u、BCTI(7)予測ニ従りて先取りされたら命令後
の命令E1のアドレス〈El〉が保持されておシ、El
の次の命令のアドレス〈E2〉が命令アドレス生成回路
412で生成される。Referring to FIG. 15, branch instruction BC in FIG.
Similarly to I, the actual branch destination address of the BCT instruction BCT1 is generated by the instruction address conversion circuit 402 and set in the branch status information register 419. Furthermore, the address of the BCTI itself held in the register 419 and the instruction word length are added in an address generation circuit 421 to generate the address <B3> of the next instruction of the BCTI on the branch N0GO side. On the other hand, instruction address xvgis 1411 (IAR) VC,
u, BCTI (7) Prediction Accordingly, if the instruction is prefetched, the address <El> of the instruction E1 after the instruction is held and
The address <E2> of the next instruction is generated by the instruction address generation circuit 412.
BCT lが分岐GOと予測されていて、実際の分岐先
アドレスも一致していて計数動作の結果の計数値が61
#であった時、または、BCTIが分岐N0GOと予測
されていて、実際に分岐N0GOであった時、分岐予測
は成功であるから予測確約回路420よ多信号#131
の分岐予測失敗信号岐出力されないが、信号線112の
BHTp新信号は出力式れる。これによシ命令アドレス
リカバレジスタ426には命令E1に関する分岐情報が
分岐ヒストリテーブルに存・在しなけれは、前記命令ア
ドレス生成回路412で生成されたアドレス〈E2〉が
セットされ、存在すれば該情報の分岐先アドレスがセッ
トされる。BCTlの分岐−6:N0GOであれは、予
測確認回路420よりGO更新指示信号が信号線133
に出力され、選択回路422で信号線115のBCT
lの分岐先アドレス〈D2〉が選択される。分岐がGO
であれは、信号線116のN0GO側アドレス〈B3〉
が選択され、レジスタ423(WR)にセットされる。BCT l is predicted to be a branch GO, the actual branch destination address also matches, and the count value as a result of the counting operation is 61.
#, or when the BCTI is predicted to be branch N0GO and actually is branch N0GO, the branch prediction is successful, so the prediction guarantee circuit 420 sends the multi-signal #131.
Although the branch prediction failure signal is not output, the new BHTp signal on the signal line 112 is output. As a result, the address <E2> generated by the instruction address generation circuit 412 is set in the instruction address recovery register 426 if branch information regarding the instruction E1 exists in the branch history table, and if the branch information exists, the address <E2> generated by the instruction address generation circuit 412 is set. The branch destination address of the information is set. Branch-6 of BCTl: If it is N0GO, the GO update instruction signal is sent from the prediction confirmation circuit 420 to the signal line 133.
BCT of the signal line 115 is output to the selection circuit 422.
The branch destination address <D2> of l is selected. Branch is GO
That is the N0GO side address of the signal line 116 <B3>
is selected and set in register 423 (WR).
同時に命令アドレスレジスタ411(IAR・)には信
号線114を介して分岐情報レジスタ419(QR3)
の保持する命令BCT1のアドレス<BC’l’l>が
セットされ、信号ffB112のBHT更新指示信号は
フリップフロップ425に与えられこの出力が更新指示
パルスとして信号線119を介して分岐ヒストリテーブ
ル401に与えられる。以上の動作によってnc’r1
の分岐情報の更新が行なわれた彼、更新の六めに命令の
先xvbを一時中断した命令アドレスレズスタ411(
IAR)には、命令アドレスリカバレジスタ426の保
持するアドレスがセットされ、命令の先取り動作が驚続
される。At the same time, the instruction address register 411 (IAR) is connected to the branch information register 419 (QR3) via the signal line 114.
The address <BC'l'l> of the instruction BCT1 held by is set, the BHT update instruction signal of the signal ffB112 is given to the flip-flop 425, and this output is sent to the branch history table 401 via the signal line 119 as an update instruction pulse. Given. By the above operation, nc'r1
The branch information was updated, and in the sixth update, the instruction address register 411 (
The address held by the instruction address recovery register 426 is set in IAR), and the instruction prefetch operation is continued.
第16図を参照すると、第15図と同様、BCT命令B
CTIの裏打動作を示している6しかし、第15図と異
なりBC’l’lが分岐GOと予測されていて、実際の
分岐はN0GOであって予測された分岐先アドレスは一
致していた場合、あるい社N0GOと予測されていて、
実際の計数動作の結果の計数値が61”で分岐Goとな
った場合を示している。この場合、予測確認回路420
は分岐予測失敗信号を信号線131に出力するが、信号
組12のB)IT更新指示信号は出力しない。従って、
実際の分岐成否がGOなら信号@115の分岐先アドレ
ス<L)2>がまだて1°I分岐成否がN0GOであれ
に信号線116のアドレス〈B3〉が命令アドレスレジ
スタ411(IAR)にセットされて、命令の先取シ動
作がやりなおされる。Referring to FIG. 16, similar to FIG. 15, BCT command B
6. However, unlike in Figure 15, when BC'l'l is predicted to be a branch GO, the actual branch is NOGO, and the predicted branch destination address matches. , or it is predicted that the company will be N0GO,
This shows a case where the count value as a result of the actual counting operation is 61" and the branch Go is reached. In this case, the prediction confirmation circuit 420
outputs a branch prediction failure signal to the signal line 131, but does not output the B) IT update instruction signal of signal set 12. Therefore,
If the actual branch success/failure is GO, the branch destination address <L)2> of the signal @115 is still 1°I.If the branch success/failure is NOGO, the address <B3> of the signal line 116 is set in the instruction address register 411 (IAR). The instruction preemption operation is then redone.
BCT命令が分岐GOと予測されていて、実際の分岐成
否がN0GOであって、しかも予測された分岐先アドレ
スが異なっていた場合、または実際の分岐成否がGOで
あっても同じくアドレスが一致していない場合、および
ROGOと予測されていて計算結果か1−1”より大き
くて分岐GOとなりた場合は、側14図のBC1命令と
同様に動作し分岐ヒストリテーブルの更新が行なわれた
後、命令の先取ルがや9なおされる。If the BCT instruction is predicted to be a branch GO and the actual branch success/failure is NOGO, but the predicted branch destination address is different, or even if the actual branch success/failure is GO, the addresses will still match. If not, or if ROGO is predicted and the calculation result is greater than 1-1" and the branch is GO, the operation is the same as the BC1 instruction in Figure 14, and the branch history table is updated. Preemption of commands has been changed by 9.
前記命令アドレス加負1回路412は分岐N0GO側の
命令の先取シを行なうためのアドレス生成を行なう。仁
のアドレスは実アドレスで加算が行われるために、例え
ば、ページングを行うコンビー−タシステムにおいて前
記アドレス加算がページ境界を越えた場合アドレス変換
を改めてやシ直す必要が生じる。The instruction address addition/subtraction 1 circuit 412 generates an address for prefetching an instruction on the branch N0GO side. Since addition is performed on real addresses, for example, in a combiner system that performs paging, if the address addition exceeds a page boundary, it is necessary to perform address conversion again.
このために前記命令アドレス加算回路412にページ境
界越え検出回路を設け#検出回路によルベージ境界越え
が生じた場合信号IIi!118により命令アドレス生
成回路1を起動し命令先取り動作を改めて命令アドレス
生成回路(IA)401及び命令アドレス変換回路(I
T)402から行うように制御すればよい。For this purpose, a page boundary crossing detection circuit is provided in the instruction address addition circuit 412, and when the #detection circuit detects that a rubage boundary crossing occurs, a signal IIi! 118, the instruction address generation circuit 1 is activated, and the instruction prefetch operation is restarted by the instruction address generation circuit (IA) 401 and the instruction address conversion circuit (IA).
T) Control may be performed starting from 402.
ここで問題となるのはあらたに分岐ヒストリテーブルβ
HT41’0に前記命令アドレス情報を登録するとき既
存のどの部分に格納された命令アドレス情報を追い出す
かである。The problem here is to create a new branch history table β
When registering the instruction address information in the HT41'0, it is determined in which part the existing instruction address information stored in the instruction address information is to be deleted.
この方法としては使われた順序、すなわち最も古く使わ
れたものから順に追い出す法LRU(Le−ast R
ecently Used) 、情報が入った順序、す
なわち最も古く入ったものがら顯に追い出f方法FIF
O(First In First 0ut) @があ
るがどちらを用いてもよい、。This method is based on the order of use, that is, the oldest used first.
recently Used), the FIF method discards information in the order in which it was entered, i.e. the oldest one.
There is O (First In First 0ut) @, but you can use either one.
発明の効果
次に本発明の効果を第17図から第23図を参照しなが
ら詳細に貼°明1する。Effects of the Invention Next, the effects of the present invention will be explained in detail with reference to FIGS. 17 to 23.
第17図を参照すると、命令の処理は一般的に次の8つ
の処理単位に分けられる。Referring to FIG. 17, instruction processing is generally divided into the following eight processing units.
(1) I Aステージ:実行すべき命令の命令アドレ
ス(論理アドレス)が生成される1、
(2) I Tステージ:生成された命令アドレスのア
ドレス変換が行われる。(1) IA stage: An instruction address (logical address) of an instruction to be executed is generated (2) IIT stage: Address translation of the generated instruction address is performed.
(3)ICxテ−ジ;変換された命令の実アドレスで記
憶装置から命令が読出きれる。(3) ICx stage: The instruction can be read from the storage device using the converted real address of the instruction.
(4) I Dステージ:読出された命令が解読される
。(4) ID stage: The read instruction is decoded.
(5) OAステージ:解読された命令のオペランドア
ドレス(論理アドレス)が生成される。(5) OA stage: The operand address (logical address) of the decoded instruction is generated.
(6)OTステージ:生成されたオペランドアドレスの
アドレス変換が行なわれる。(6) OT stage: Address translation of the generated operand address is performed.
(7)QCステージ:変換されたオペランドの実アドレ
スで記憶装置からオペランドが読出される。(7) QC stage: The operand is read from the storage device at the real address of the translated operand.
(B) E X ステージ:命令が実行される。(B) EX stage: The instruction is executed.
上述のITステージおよびOTステージのアドレス変換
においてアドレス変換バッファを設は必要な変換テーブ
ルが該アドレス変換バッファに存在すれば上記アドレス
変換処理祉高速に実行し得る。また、上述のICステー
ジおよびocステージの命令およびオペランドの読出し
動作において主記憶装置のデータの一部の写しを保持す
るキャッシュメモリを設は必散々命令およびオペランド
が該キャッシュメモリに存在すればICステージおよび
OCステージの処理は高速に行いうる。情報処理システ
ムは上述の各処理単位に対応したリソースを必ずしも有
する必要はない。しかし、説明の簡単のためにととでは
各処理単位にその機能を果す回路があるものとする。上
述のIT、OTおよびIC,QCの各ステージの高速処
理が可能なとき複数の命令の処理の流れを無駄なく実行
する8段のパイプライン制御か可能である。If an address translation buffer is provided in the address translation in the IT stage and the OT stage, and the necessary translation table exists in the address translation buffer, the address translation process can be executed at high speed. In addition, in the above-mentioned IC stage and OC stage instruction and operand read operations, it is necessary to provide a cache memory that holds a copy of part of the data in the main memory. and OC stage processing can be performed at high speed. The information processing system does not necessarily need to have resources corresponding to each of the above-mentioned processing units. However, for ease of explanation, it is assumed that each processing unit has a circuit that performs its function. When high-speed processing of each of the above-mentioned IT, OT, IC, and QC stages is possible, eight-stage pipeline control is possible to efficiently execute the processing flow of a plurality of instructions.
このときの分岐命令を含む命令の処理の流れを第18図
および第19図を参照しながら説明する。The flow of processing instructions including branch instructions at this time will be explained with reference to FIGS. 18 and 19.
第18図は分岐命令の命令先取シにおいて前述のすべて
の分岐はGo”であると予測し九塙“合の命令の処理の
流れを示す。すなわち、命令AOは分岐命令BCの分岐
条件を決定する命令で該分岐条件は命令AQの実行結果
す表わち、時刻t7において決定される。分岐命令BC
は時刻t4において解読されると命令アドレスの生成回
路を用いて分岐先命令Blのアドレスを生成しtgtI
3i命令を先取シするように動作する。時刻t2.ta
およびt4には分岐N0GO側の後続命令Al、A2
およびA3の命令先取シのためのアドレス生成が開始さ
れる。時刻t6およびt7には予測動作としての分岐G
OII+の後続命令B2およびB3の命令先取り動作
が開始される。時刻t7において分岐条件の判定結果に
よシ、時刻t8以降は正しい命令の処理の流れに従って
処、W!が継続される。FIG. 18 shows the flow of processing of an instruction in which all the branches mentioned above are predicted to be "Go" in instruction preemption of a branch instruction. That is, instruction AO is an instruction that determines the branch condition of branch instruction BC, and the branch condition is determined as a result of execution of instruction AQ, that is, at time t7. Branch instruction BC
is decoded at time t4, generates the address of the branch destination instruction Bl using the instruction address generation circuit, and executes tgtI.
It operates to preempt the 3i instruction. Time t2. ta
And at t4, subsequent instructions Al, A2 on the branch N0GO side
Then, address generation for instruction preemption of A3 is started. At times t6 and t7, branch G is performed as a predicted operation.
Instruction prefetch operations for OII+ subsequent instructions B2 and B3 are started. At time t7, depending on the decision result of the branch condition, from time t8 onwards, the processing flow of the correct instruction is executed, W! will continue.
この場合、分岐命令の出現によるバイブ2インのロスサ
イクルは
予測的中(分岐GO)のとき 3サイクル予測失敗(分
岐N0GO)のとき 3サイクルである。In this case, the loss cycles of vibe 2-in due to the appearance of a branch instruction are 3 cycles when the prediction is correct (branch GO) and 3 cycles when the prediction is unsuccessful (branch NOGO).
分岐GO率r、予側的中率αとしたときこの場合r=α
でアシ予測的中率は5分5分である。従ってr=α冨0
.5であシ1分岐命令当シ平均的なロスサイクルは
3xr+3x(1−r)≠3サイクル
である。When the branch GO rate is r and the prediction side hit rate is α, in this case r=α
The accuracy of Ashi's prediction is 5 minutes and 5 minutes. Therefore, r=α-to 0
.. The average loss cycle for 5 and 1 branch instructions is 3xr+3x(1-r)≠3 cycles.
一方、第19図は分岐命令の命令先取シにおいて前述の
同じ分岐命令の過去の結果に基づいて予測を行った場合
の命令の処暑の流れを示す。すなわち、分岐命令Beは
、時刻t4に>、Vて解読されるとともに分岐命令のア
、ドレステーブルを探索しその有無によるかもしくは分
岐指示7,7グの指示の予測によル、分岐G Ole+
の命令B1を先取シするか分岐N0GO側の命令A1を
先取りするかを決定する。前回と同様に時刻t2 、
t3およびt4には分岐N0GO側の後続部令AI、A
2およびA3の命令先取りのためのアドレス生成が開始
される。On the other hand, FIG. 19 shows the flow of instruction processing when prediction is performed based on the past results of the same branch instruction described above in instruction prefetching of a branch instruction. That is, the branch instruction Be is decoded at time t4>, V, and the address table of the branch instruction is searched, and depending on the presence or absence of the address table or the prediction of branch instructions 7 and 7, the branch G Ole+
It is determined whether to prefetch instruction B1 or instruction A1 on the branch N0GO side. Same as last time, time t2,
At t3 and t4, subsequent instructions AI and A on the branch N0GO side
Address generation for prefetching instructions 2 and A3 is started.
時刻t6およびt7に4予測による命令先取りの後続命
令B1およびB2もしくはA4およびA5の命令のアド
レス生成が開始される。時刻t7において分岐条件の判
定結果によりh刻t8以降は正しい命令の処理の流れに
従って処理がr゛続される。At times t6 and t7, generation of addresses for subsequent instructions B1 and B2 or A4 and A5 of instruction prefetching based on 4-prediction is started. Based on the branch condition determination result at time t7, processing is continued from h time t8 onward according to the correct instruction processing flow.
この揄合分岐命令の出現によるパイプラインのロスサイ
クルは
分岐GOと予測し、て的中したとき
3サイクル
分岐N0GOと予測して的中したとき
0サイクル
分岐GOと予測して失敗したとき
3サイクル
分岐N0GOと予測して失敗したとき
6サイクル
でらる。従って、分畦GO率γ=0.5、予測的中率α
=0.8と仮定したとき1分岐命令邑シの平均的なロス
サイクルは
3・r・α+0・(1−r)α+3γ(1−α)+6
(、1−r )(1−α)=2.1サイクル
を得る。The pipeline loss cycle due to the appearance of this mixed branch instruction is predicted to be a branch GO, and if it is correct, it is predicted to be a branch NOGO, and if it is correct, it is predicted to be a branch NOGO, and it is predicted to be a branch GO, and if it fails, it is predicted to be a branch GO, which is 3 cycles. It takes 6 cycles when predicting branch N0GO and it fails. Therefore, the minute GO rate γ = 0.5, the predicted hit rate α
= 0.8, the average loss cycle for one branch instruction is 3・r・α+0・(1−r)α+3γ(1−α)+6
(,1-r)(1-α)=2.1 cycles are obtained.
従ってこの従来の発明は同じ分岐命令の過去の結果に基
づいて予測を行った場伯高い予測的中率を得るという原
理を用いることによシ常に分岐GOと予測する第18図
に示す処理に比べ幾分の改良がみられる。しかしこの改
良された発明においてもたとえ予測的中時分岐GOの場
合は依然として3サイクルのロスサイクルを擬すること
になシこれ以上短縮できない。従って分岐命令が生じた
場合たとえ予測が的中してもロスサイクルを生じること
になる。Therefore, this conventional invention uses the principle of obtaining a high prediction accuracy rate when prediction is made based on past results of the same branch instruction to always predict a branch GO in the process shown in FIG. 18. Some improvement can be seen in comparison. However, even with this improved invention, even in the case of a predictive intermediate branch GO, it is still necessary to simulate a loss cycle of 3 cycles, and no further reduction is possible. Therefore, if a branch instruction occurs, a loss cycle will occur even if the prediction is correct.
第20図から第23図は本発明qる命令の処理の流れを
示している。20 to 23 show the flow of instruction processing according to the present invention.
沸発明における命令の処理単位ICステージは命令を記
憶装置から読出す橡能の他に、分岐ヒストリテーブルを
索引しY「出される命令のアドレスが該分岐ヒストリテ
ーブルに登録されているか否かを抄出し、登録されてい
れば対応する分岐へ報をUC出し、登録されていなけれ
ば後続命令の命令先取シのためのアドレスを生成する機
能を有する。In addition to the function of reading instructions from the storage device, the instruction processing unit IC stage in the invention also performs the function of indexing a branch history table and checking whether the address of the issued instruction is registered in the branch history table. If the instruction is registered, it sends a UC to the corresponding branch, and if it is not registered, it has the function of generating an address for instruction preemption of the subsequent instruction.
第20図および第21図を参か、すると、分岐辞令BC
の時刻t1における動作は次のようにして行なわれる。Referring to Figures 20 and 21, the branch command BC
The operation at time t1 is performed as follows.
まず、該分岐命令BCが都令キャッシュメモリから読出
されると同時に分岐ヒストリテーブルが索引される1、
該分岐命令BCの命令アドレスか登録されていれは対応
する分岐情報が詩。First, the branch history table is indexed at the same time as the branch instruction BC is read from the Tokyo Metropolitan Government cache memory.
If the instruction address of the branch instruction BC is registered, the corresponding branch information is written.
出される3、該分岐情報を分析した結果、分岐GO側の
予測として該分岐情報中に含まれる分岐先アドレスによ
り分岐先命令B1の命令先取りを開始するかもしくは分
岐N0GO側の予測として分岐N0GO(Illの命令
A1の命令アドレスを生成して命令A+1の先取シを開
始するかが決定され゛る。以降時刻t5までは前記分岐
命令Beの予測期間であル予測側の後続命令が先取シさ
れ時刻t5において分岐条件が決定される。予測的中時
には第2゜図に示すようにパイプラインの流れは乱れを
生ずることなく処理が継続される。予測失敗時には第2
1図に示すように時刻t6で前記分岐ヒストリテーブル
の更新を行りた後に正しい命令の流れから命令の取出し
を行うように制御される。この場゛ 合分岐命令の出現
によるパイプラインのロスサイクルは
予測が的中したとき 0サイクル
予測が失敗したとき 5サイクル
である。予測的中率αはこの場合分岐方向だけでなく分
岐先アドレスをも予測することから分岐方向だけの予測
に比べ若干低くなるがその割合は微りたるものである。3. As a result of analyzing the branch information, as a prediction on the branch GO side, instruction prefetching of the branch destination instruction B1 is started based on the branch destination address included in the branch information, or as a prediction on the branch N0GO side, branch N0GO ( It is determined whether to generate the instruction address of instruction A1 of Ill and start prefetching of instruction A+1.From then on until time t5, it is the prediction period of the branch instruction Be, in which the subsequent instruction on the prediction side is prefetched. A branch condition is determined at time t5. When the prediction is correct, the processing continues without any disturbance in the flow of the pipeline as shown in Fig. 2. When the prediction is unsuccessful, the second
As shown in FIG. 1, after the branch history table is updated at time t6, the instruction is controlled to be taken out from the correct instruction flow. In this case, the loss cycles of the pipeline due to the appearance of a branch instruction are 0 cycles when the prediction is correct and 5 cycles when the prediction fails. In this case, since not only the branch direction but also the branch destination address is predicted, the prediction accuracy rate α is slightly lower than when predicting only the branch direction, but the proportion is small.
従って、予測的中率α;0.8として1分岐命令尚)の
平均的なロスサイクルは0・α+5・(1−α)=1サ
イクル
となシ従来技術に比べて格段に改良される。Therefore, when the prediction accuracy rate α is 0.8, the average loss cycle for one branch instruction is 0·α+5·(1−α)=1 cycle, which is much improved compared to the prior art.
第22図を参照すると分岐N0GOと予測されたBCT
命令が実際の計数動作の結果の計数値が10#となって
分岐N0GOとなり予測が成功した場合、あるいは分岐
GOと予測された同じ(BCT命令が引数値″′1”で
分岐GOとなりて予測成功した場合を示している。第2
0図における分岐命令BCと同じように実行されるが時
刻t6において命令BCTは、分岐ヒストリテーブルの
更新を行なうため、予測成功したにもかかわらす1サイ
クルのロスを生ずる。との更新はm 15 illで説
明したようにN0GOの予測が成功した場合には000
111の分岐情報を、予測GOが割数値1で成功した場
合にはN0GO側の分岐情乾を書き込むように行なわ数
を管理するために使用したループを構成するプログラム
の命令の汎ワが示されでいる。第23図において命令B
CTはこのループの中を簗行している間は分岐ヒストリ
テーブルの保持するGO側の分岐情報に従って分岐予測
成功でロスサイクルなしに実行される。(7かしループ
を脱出する1つ前の実行において、実際の計数値が1″
と表ったときの命令BCTは、予測にもかかわらず分岐
ヒストリテーブルを分岐N0GOに更新して1サイクル
のロスを生ずる。次にルーズを脱出する際のBCTはN
0GOと予測されており、実際の計数値は′0”となっ
て分岐N0GOで予測成功となるにもかかわらず、分岐
ヒス) IJテーブルを分岐G。Referring to FIG. 22, the BCT predicted as branch N0GO
If the actual count value of the instruction becomes 10# and the branch is N0GO and the prediction is successful, or if the prediction is successful as the branch GO is predicted (BCT instruction becomes the branch GO with the argument value ``'1'' and the prediction is successful). It shows the case of success.Second
Although the instruction BCT is executed in the same manner as the branch instruction BC in FIG. As explained in m 15 ill, the update is 000 if the NOGO prediction is successful.
111 branch information is written such that if the predicted GO succeeds with a divisor value of 1, the branch information on the N0GO side is written. I'm here. In FIG. 23, command B
While the CT is moving through this loop, the branch prediction is successful and executed without loss cycles according to the GO side branch information held in the branch history table. (7) In the execution before escaping the loop, the actual count value is 1''
When the instruction BCT appears, the branch history table is updated to branch N0GO despite the prediction, resulting in a loss of one cycle. The next BCT when escaping the loose is N
0GO is predicted, and the actual count value is '0' and the prediction is successful with branch N0GO. However, branch hiss) IJ table is branched to G.
(1jlに更新して同じく1サイクルのロスを生ずる。(Updating to 1jl also causes a loss of 1 cycle.
しかし、プ日グラムの流れによってこのループに杓び入
るとき、命令BCTの分岐情報はGO側の予測を示して
いるため、ロスサイクルなしにループを実行できる。従
っ°〔1つのループを実行するにあたりて、ループ脱出
の1回前に1サイクル、脱出の際に1サイクル、計2サ
イクルを余分に資すだけでよい。However, when entering this loop due to the flow of program programs, the branch information of the instruction BCT indicates the prediction on the GO side, so the loop can be executed without loss cycles. Therefore, in executing one loop, it is only necessary to contribute two extra cycles, one cycle before exiting the loop and one cycle upon exiting the loop.
本洲明を適用しない場合、ループ脱出の除に分岐ヒスト
リテーブルの命令BCTの分1IIf情報をN0GOf
11に更新した後、命令の先取りをやりなおすために5
サイクルを失い、さらに再びループに入り、最初にBC
Tを実行する際にも予測を失敗して5サイクルを失い、
1つのループを実行するにあたって計10サイクルも余
分に費す。If Akira Motosu is not applied, the minute 1IIf information of the instruction BCT in the branch history table is N0GOf except for loop escape.
After updating to 11, in order to redo the instruction prefetch,
Lost the cycle, then re-entered the loop, first BC
When executing T, the prediction also failed and lost 5 cycles,
It takes a total of 10 extra cycles to execute one loop.
この発明では、分岐命令のアドレスと該分岐命令の分岐
先アドレスを含む分岐情報とを対にして記憶する分岐ヒ
ストリテーブルを命令先取多時に索引する。仁のあとて
前記分岐先アドレスで次の命令先取りを行わせ1〜める
ことにより命令のMJfiを行うことなく前記分岐ヒス
トリゾ−プルの記述に従って命令語を先取りすることが
できる。In this invention, a branch history table that stores a pair of the address of a branch instruction and branch information including the branch destination address of the branch instruction is indexed when an instruction is prefetched. By causing the next instruction to be prefetched at the branch destination address after the execution, the instruction word can be prefetched according to the description in the branch history resolution without performing MJfi of the instruction.
さらに分岐ヒストリテーブルを、BCT命令の性質に基
づいて更新することによシ命令バッファには命令の実行
の経路に従った命令の待行列を形成せしめ、4.1に、
i処理システムのパイプライン制御に訃けるBCT命令
の実行を極めて少ないロスサイクルで行なうことができ
るという効果がある。Furthermore, by updating the branch history table based on the nature of the BCT instruction, a queue of instructions is formed in the instruction buffer according to the instruction execution path, and in 4.1,
This has the advantage that the BCT instructions, which affect the pipeline control of the i-processing system, can be executed with an extremely small number of loss cycles.
第1図は本発明の一夾施例を示す図、第2図、は第1図
における分岐ヒストリテーブル410の詳細な構成を示
す図、第3図は第2図の記憶部501および502の記
憶形式を示す図、第4図は第2図のテスト回路503−
506の詳細な構成を示す図、第5図は11図の命令記
憶回路408における命令語の配列を示す図、第6図は
第2図のプ2イオリティ回路507の詳細な構成を示す
図、第7図は第1図の分岐情報バッファ413およびレ
ジスタ416の格納形式を示す図、第8図は第1図のレ
ジスタ417−419の格納形式を示す図、第9図は第
1図の命令記憶回路408における命令と分岐ヒストリ
テーブル410における分岐情報との対応関係を説明す
るだめの図、第10図は第9図のテーブル410による
命令先取多動作を説明するための図、第11図は第1図
における予測確認回路420の訃細な構成を示す図、第
12図は〜同じく予測確認し1路420の動作を説明す
るための図、第13しくは第1図における命令光増多制
御回路424の詳細な構成を示す図、第14図は予測失
敗時における命令先取り動作開始までの動作を説明する
ための図、第15図はBCT命令の分岐予測が成功した
にもかかわらず、分岐ヒストリテーブルを更新する時の
動作を説明するための図、第16図はBCT命令の分岐
予測か失敗したにもかかわらず分岐ヒストリテーブルを
更新することなく命令の先取シをやシカおす時の動作を
説明するための同第17図は命令の処理の流れの概要を
示す図、第18図および第19図は従来の予測方式を用
いた命令の処理の流れを示す図、第20図は分岐命令の
予測が的中したときの命令の処理の流れを示す図、第2
1図は分岐命令の予測が失敗したときの命令の処理の流
れを示す図、第22図は本発明においてBCT命令の分
岐予測が成功したにもかかわらず分岐ヒストリテーブル
を更新するときの命令の処理の流れを示す図、および第
23図はBCT命令によってループを構成するプログラ
ムの命令の流れを示す図である。
第1図から第23図において、401・・・・・・命令
アドレス生成回路、402・・・・・・命令アドレス変
換回路、403・・・・・・命令解読5回路、404・
旧・・オペランドアドレス生成回路、405・・・・・
・オペランドアドレス変換回路、406・・・・・・オ
ペランド読出し回路、407・・・・・・命令実行回路
、408・・・・・・命令実行回路、409・・・・・
・命令バッファ、410・・・・・・分岐ヒストリテー
ブル(BHT) 、411・・・・・・命令アドレスレ
ジスタ(IAR) 、412・・・・・・命令アドレス
加算回路、413・・・・・・分岐情報バッファ、41
4・・・・・・命令整列回路、415・・・・・・分岐
情報切換回路、416・・・・・・分岐情報レジスタ(
QRO)、417・・・・・・分岐情報レジスタ(QR
x)、418・・・・・・分岐情報レジスタ(QB、2
) 、419・・・・・・分岐情報レジスタ(QB3)
、420・・・・・・予測確認回路、421・・・・・
・アドレス生成pl路、422・・・・・・選択回路、
423・・・・・・レジスタ(WR)、424・・・・
・・命令先取り制御回路、425・・・・・・フリップ
フロップ、426・・・・・・命令アドレスリカバレジ
スタ、501゜502・・・・・・記憶部、503,5
04,505,506・・・・・・テスト回路、507
・・・・・・プライオリ74回路、508・・・・・・
選択回路、509・・・・・・オア回路、601−60
4・・・・・・アンド回路、605,608・・・・・
・オア回路、701・・・・・・一致回路、702・・
・・・・大小比較回路、703・・・・・・アンド回路
、801・・・・・・一致回路、802−803・・・
・・・フリップフロップ、804−807・・・・・・
真偽回路、808・・・・・・ノット回路、809−8
10・・・・・・イクスクルーシブオア回路、811−
817・・・・・・アンド回路、818−820・・・
・・・オア回路、1301・・・・・・フリップフロッ
プ、1302−1305・・・・・・真偽回路、130
6−1313・・・・・・アンド回路、1314−13
16・・・・・・ノット回路。
葛Z囚
第 3 囚
偽!3 区
躬17 図
tt tt tz ts 14ts it匡耶
第2θ区
:01 tt I tz l tjl fa’ tr’
tJ tt’ tB’■
郭コ百
葛21 図
手続補正書(自船
60,5.−8
昭和 年 月 日
1、事件の表示 昭和59年特 許 願第30672号
2、発明の名称 命令先取シ装置
3、補正をする者
事件との関係 出 願 人
東京都港区芝五丁目33番1号
4、代理人
(連絡先 U本電気林1式2会1社、特許部)5、補正
の対象
(5)明細書の「発明の詳細な説明」の欄(均 図面
6、補正の内容
(5)第13頁第16行目の記載「制用」を「汎用」と
訂正します。FIG. 1 is a diagram showing one embodiment of the present invention, FIG. 2 is a diagram showing a detailed configuration of the branch history table 410 in FIG. 1, and FIG. 3 is a diagram showing the detailed configuration of the branch history table 410 in FIG. A diagram showing the storage format, FIG. 4 is the test circuit 503- of FIG.
5 is a diagram showing the arrangement of instruction words in the instruction storage circuit 408 of FIG. 11, FIG. 6 is a diagram showing the detailed configuration of the P2 priority circuit 507 of FIG. 2, 7 is a diagram showing the storage format of branch information buffer 413 and register 416 in FIG. 1, FIG. 8 is a diagram showing the storage format of registers 417 to 419 in FIG. 1, and FIG. 9 is a diagram showing the instruction FIG. 10 is a diagram for explaining the correspondence between instructions in the storage circuit 408 and branch information in the branch history table 410. FIG. A diagram showing a detailed configuration of the prediction confirmation circuit 420 in FIG. 1, FIG. 12 is a diagram for explaining the operation of the prediction confirmation circuit 420, and FIG. FIG. 14 is a diagram showing the detailed configuration of the control circuit 424. FIG. 14 is a diagram for explaining the operation up to the start of instruction prefetching operation when prediction fails. FIG. Figure 16 is a diagram for explaining the operation when updating the branch history table, and shows when the preemption of an instruction is prevented without updating the branch history table even though the branch prediction of the BCT instruction has failed. 17 is a diagram showing an overview of the instruction processing flow for explaining the operation, FIGS. 18 and 19 are diagrams showing the instruction processing flow using the conventional prediction method, and FIG. 20 is a diagram showing the outline of the instruction processing flow. A diagram showing the flow of instruction processing when the prediction of a branch instruction is correct, Part 2
Figure 1 shows the flow of instruction processing when the prediction of a branch instruction fails, and Figure 22 shows the flow of instruction processing when the branch history table is updated even though the branch prediction of a BCT instruction is successful in the present invention. FIG. 23 is a diagram showing the flow of processing, and FIG. 23 is a diagram showing the flow of instructions of a program forming a loop using BCT instructions. 1 to 23, 401...instruction address generation circuit, 402...instruction address conversion circuit, 403...instruction decoding 5 circuit, 404...
Old...operand address generation circuit, 405...
・Operand address conversion circuit, 406...Operand reading circuit, 407...Instruction execution circuit, 408...Instruction execution circuit, 409...
・Instruction buffer, 410...Branch history table (BHT), 411...Instruction address register (IAR), 412...Instruction address addition circuit, 413...・Branch information buffer, 41
4...Instruction alignment circuit, 415...Branch information switching circuit, 416...Branch information register (
QRO), 417...Branch information register (QR
x), 418...Branch information register (QB, 2
), 419...Branch information register (QB3)
, 420... Prediction confirmation circuit, 421...
・Address generation PL path, 422...selection circuit,
423...Register (WR), 424...
...Instruction prefetch control circuit, 425...Flip-flop, 426...Instruction address recovery register, 501°502...Storage section, 503,5
04,505,506...Test circuit, 507
...Priority 74 circuit, 508...
Selection circuit, 509...OR circuit, 601-60
4...AND circuit, 605,608...
・OR circuit, 701... Match circuit, 702...
. . . Size comparison circuit, 703 . . . AND circuit, 801 . . . Match circuit, 802-803 . . .
...Flip-flop, 804-807...
Truth/false circuit, 808...Not circuit, 809-8
10...Exclusive OR circuit, 811-
817...AND circuit, 818-820...
...OR circuit, 1301...Flip-flop, 1302-1305...Truth circuit, 130
6-1313...AND circuit, 1314-13
16... knot circuit. Kuzu Z Prisoner No. 3 Prisoner Fake! 3 Kuman 17 Figure tt tt tz ts 14ts it Conway 2nd Theta Ward: 01 tt I tz l tjl fa'tr'
tJ tt'tB'■ Guo Ko Baige 21 Drawing procedure amendment (own ship 60,5.-8 Showa year, month, day 1, indication of incident 1988 patent application No. 30672 2, title of invention Order pre-emption system) Apparatus 3, Person making the amendment Relationship with the case Applicant: 5-33-1-4, Shiba, Minato-ku, Tokyo, Agent (contact information: Uhon Denkirin 1, Type 2, Company 1, Patent Department) 5, Amendment Target (5) In the "Detailed Description of the Invention" column of the specification (Drawing 6, Contents of Amendment (5), page 13, line 16, "Use" will be corrected to "General Purpose".
Claims (1)
命令を実行する情報処理システムにおける命令先取シ装
置において、 分岐命令のアドレスを指定する情報と該分岐命令の分岐
先アドレスを含む分岐情報とを対にして複数対記憶する
分岐ヒストリテーブル手段と、命令先取シ動作を行う際
に該命令先取シ動作にれているか否かを調べる点検手段
と、 該点検手段による登録の判明に応答して前記分岐ヒス)
IJテーブル手段から対応する分岐情報をせしめるよ
う制御する命令先取ル制御手段と、該分岐命令が計数分
岐命令であるときには、該分岐計数命令の計数結果に応
じて前記分岐ヒストリテーブル手段の内容の更新を制御
する手段とを備えたことを特徴とする命令先取〕装置。[Scope of Claims] In an instruction preemption device in an information processing system that executes a counted branch instruction by determining the presence or absence of multiple branches based on the counting result, information specifying an address of a branch instruction and the branch instruction. branch history table means for storing a plurality of pairs of branch information including branch destination addresses; inspection means for checking whether or not the instruction preemption operation is being performed when performing the instruction preemption operation; said branch hiss in response to the discovery of the registration by means)
an instruction prefetch control means for controlling to cause corresponding branch information from the IJ table means; and when the branch instruction is a counting branch instruction, updating the contents of the branch history table means in accordance with the counting result of the branch counting instruction; An instruction preemption device characterized in that it is equipped with means for controlling.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3067284A JPS60175148A (en) | 1984-02-21 | 1984-02-21 | Instruction prefetching device |
US06/699,328 US4764861A (en) | 1984-02-08 | 1985-02-07 | Instruction fpefetching device with prediction of a branch destination for each branch count instruction |
DE3587811T DE3587811D1 (en) | 1984-02-08 | 1985-02-08 | Instruction prefetcher with prediction of branch determination for each branch count instruction. |
EP85101351A EP0157125B1 (en) | 1984-02-08 | 1985-02-08 | Instruction prefetching device with prediction of a branch destination for each branch count instruction |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3067284A JPS60175148A (en) | 1984-02-21 | 1984-02-21 | Instruction prefetching device |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS60175148A true JPS60175148A (en) | 1985-09-09 |
Family
ID=12310212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3067284A Pending JPS60175148A (en) | 1984-02-08 | 1984-02-21 | Instruction prefetching device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS60175148A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62159229A (en) * | 1986-01-07 | 1987-07-15 | Nec Corp | Instruction prefetching device |
JPS62159228A (en) * | 1986-01-07 | 1987-07-15 | Nec Corp | Instruction prefetching device |
JPS62159230A (en) * | 1986-01-07 | 1987-07-15 | Nec Corp | Instruction prefetching device |
JPS63303432A (en) * | 1987-01-22 | 1988-12-12 | Nec Corp | System for controlling writing in branching history table |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5599655A (en) * | 1979-01-26 | 1980-07-29 | Tetsunori Nishimoto | Branch control unit |
JPS5815809A (en) * | 1981-07-22 | 1983-01-29 | 松下電工株式会社 | Hair dryer |
-
1984
- 1984-02-21 JP JP3067284A patent/JPS60175148A/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5599655A (en) * | 1979-01-26 | 1980-07-29 | Tetsunori Nishimoto | Branch control unit |
JPS5815809A (en) * | 1981-07-22 | 1983-01-29 | 松下電工株式会社 | Hair dryer |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62159229A (en) * | 1986-01-07 | 1987-07-15 | Nec Corp | Instruction prefetching device |
JPS62159228A (en) * | 1986-01-07 | 1987-07-15 | Nec Corp | Instruction prefetching device |
JPS62159230A (en) * | 1986-01-07 | 1987-07-15 | Nec Corp | Instruction prefetching device |
JPS63303432A (en) * | 1987-01-22 | 1988-12-12 | Nec Corp | System for controlling writing in branching history table |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4074353A (en) | Trap mechanism for a data processing system | |
EP0352935B1 (en) | Pipelined processor | |
EP0155211A2 (en) | System for by-pass control in pipeline operation of computer | |
JPS63503177A (en) | Command preemption control device | |
EP0357188B1 (en) | Pipelined processor | |
JPH0283735A (en) | Instruction prefetching device | |
EP0093430B1 (en) | Pipeline data processing system | |
EP0094535B1 (en) | Pipe-line data processing system | |
US5761467A (en) | System for committing execution results when branch conditions coincide with predetermined commit conditions specified in the instruction field | |
US5125097A (en) | Data flow type information processors where data packets pass through plurality of merging and branching portions of the internal path | |
JPS60175148A (en) | Instruction prefetching device | |
JPS5991551A (en) | Instruction prefetching device forecasting address to be branched | |
US5045992A (en) | Apparatus for executing instruction regardless of data types and thereafter selectively branching to other instruction upon determining of incompatible data type | |
US6918119B2 (en) | Method and system to improve usage of an instruction window buffer in multi-processor, parallel processing environments | |
JPS60164842A (en) | Instruction prefetching device | |
JPS62159230A (en) | Instruction prefetching device | |
JP2553728B2 (en) | Arithmetic unit | |
US6662296B1 (en) | Method and system for testing millicode branch points | |
JPS59183434A (en) | Prefetch control system of instruction | |
JPS5991554A (en) | Instruction prefetch device forecasting branch direction | |
JPH0277940A (en) | Data processor | |
JPS62159232A (en) | Instruction prefetching device | |
JPS62159231A (en) | Instruction prefetching device | |
JPH0656588B2 (en) | Data processing device test method | |
JPS6310451B2 (en) |