JPH0235525A - Instruction fetch control method - Google Patents
Instruction fetch control methodInfo
- Publication number
- JPH0235525A JPH0235525A JP63186094A JP18609488A JPH0235525A JP H0235525 A JPH0235525 A JP H0235525A JP 63186094 A JP63186094 A JP 63186094A JP 18609488 A JP18609488 A JP 18609488A JP H0235525 A JPH0235525 A JP H0235525A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- address
- instructions
- buffer
- 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
- 238000000034 method Methods 0.000 title claims abstract description 13
- 239000000872 buffer Substances 0.000 claims abstract description 61
- 230000010365 information processing Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 16
- 241000370985 Parides Species 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 229940015212 parid Drugs 0.000 description 1
- AVRVZRUEXIEGMP-UHFFFAOYSA-N piperazine;hexahydrate Chemical compound O.O.O.O.O.O.C1CNCCN1 AVRVZRUEXIEGMP-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
【発明の詳細な説明】
[概要]
命令実行に先立ち、命令先取りを行う情報処理装置に用
いる命令フェッチ制御方法に関し、分岐命令によるロス
タイムをできるだけ少なくすることを目的とし、
分岐命令の数命令前の命令アドレスと、該分岐命令の分
岐先アドレスと同じく該分岐命令の命令アドレスとその
有効性を示すフラグとを対にして保持する分岐予測テー
ブルを設け、現在実行中の命令シーケンスの命令を蓄え
る第1の命令バッファと、前記分岐予測テーブルより予
測されるアドレス先の命令シーケンスの命令を蓄える第
2の命令バッフ?の少なくとも2つの命令バッファを設
け、前記各命令バッファに保持される命令の命令アドレ
スを保持する命令アドレスレジスタを命令バッファ対応
に設け、分岐命令の予測成功、不成功0分岐成立、不成
立に応じて前記各命令バッファを選択し、その命令バッ
ファ中の命令を直ちに実行させると共に、その命令シー
ケンスの命令フェッチを続けて行なわせるように構成す
る。[Detailed Description of the Invention] [Summary] Regarding an instruction fetch control method used in an information processing device that performs instruction prefetching prior to instruction execution, the purpose is to reduce loss time due to branch instructions as much as possible. A branch prediction table is provided that stores the instruction address of the branch instruction and a flag indicating its validity in pairs, as well as the branch destination address of the branch instruction, and a branch prediction table is provided that stores the instructions of the currently executed instruction sequence. 1 instruction buffer and a second instruction buffer that stores instructions of an instruction sequence at an address predicted from the branch prediction table. At least two instruction buffers are provided, and an instruction address register for holding the instruction address of the instruction held in each of the instruction buffers is provided corresponding to the instruction buffer. Each of the instruction buffers is selected, the instructions in the instruction buffer are immediately executed, and the instruction sequence of the instruction is continuously fetched.
[産業上の利用分野]
本発明は命令実行に先立ち、命令先取りを行う情報処理
′1AiiWに用いる命令フェッチ制御方法に関する。[Field of Industrial Application] The present invention relates to an instruction fetch control method used in information processing '1AiiW in which instructions are prefetched prior to instruction execution.
高速動作が要求される情報処理装置では、命令フェッチ
のロスタイムを少なくするため、命令の先取りが行なわ
れる。ここで、命令の先取りとは、メモリに対して命令
の実行の度毎にメモリアクセスを17つていたのでは、
アクセス、M出し等にかかる時間のために高速動作が不
可能になることから、バッフ?用のメモリをCPUの近
くに設けて、そのバッファに複数個の命令を予め持って
きておき、該バッフ7メモリから命令を順次読み出すよ
うにしたものである。In information processing devices that require high-speed operation, instructions are pre-fetched in order to reduce loss time in fetching instructions. Here, instruction prefetching means that 17 memory accesses are made each time an instruction is executed.
Since high-speed operation becomes impossible due to the time required for access, M output, etc., there is a buffer? A memory is provided near the CPU, a plurality of instructions are brought into the buffer in advance, and the instructions are sequentially read out from the buffer memory.
しかしながら、命令アドレスを変更する分岐命令に対し
ては、命令先取りは困難である。ところで、通常のオペ
レーティングシステム及びユーザプログラムにおいては
、分岐命令の出現頻度は非常に高く、従って分岐命令に
伴うロスタイムはできる限り少なくてすむようにするこ
とが要求される。However, instruction prefetching is difficult for branch instructions that change the instruction address. Incidentally, in normal operating systems and user programs, branch instructions appear very frequently, and therefore it is required to reduce the loss time associated with branch instructions as much as possible.
[従来の技術]
第10図は従来の分岐命令実行時の命令先取り動作を示
す図である。先ず、コンデイションコード(CC)設定
の命令が実行され、WサイクルでCCが決定される。こ
こで示すバイブラインはり。[Prior Art] FIG. 10 is a diagram showing a conventional instruction prefetch operation when executing a branch instruction. First, a condition code (CC) setting instruction is executed, and the CC is determined in the W cycle. Vibration beam shown here.
A、T、B、E、Wで1つのフローになっており、それ
ぞれのマシンサイクルのもつ意味は、以下のとおりであ
る。A, T, B, E, and W form one flow, and the meaning of each machine cycle is as follows.
D;命令のデコード(解釈)シイクル
Aニオペランドアドレス計算サイクル
T:TLBを参照して、絶対アドレスを求めるサイクル
B;バッファサイクル(バッファよりデータを読み出す
サイクル)
E:実行サイクル(例えば加算1乗算等)W:実行結果
の占込みサイクル
以上で、1つの命令が終了する。D: Instruction decoding (interpretation) cycle A Ni-operand address calculation cycle T: Cycle that refers to the TLB and obtains the absolute address B: Buffer cycle (cycle that reads data from the buffer) E: Execution cycle (for example, addition 1 multiplication, etc.) )W: One instruction ends in more than one execution result capture cycle.
次に、分岐命令を実行し、Eサイクルでブランチが決定
する。このようにして分岐成立が決定してから、分岐先
命令のフェッチを始めるため、そのロスタイムは7サイ
クルである。図中、iAは命令アドレス計算サイクル、
iTは命令フェッチ用TLB (高速アドレス変換器)
参照サイクル、+et、を命令キャッシュメモリ参照サ
イクルであり、次のDサイクルより命令の実行が開始さ
れる。Next, a branch instruction is executed, and the branch is determined in the E cycle. After the establishment of the branch is determined in this way, fetching of the branch destination instruction is started, so the loss time is 7 cycles. In the figure, iA is an instruction address calculation cycle;
iT is TLB for instruction fetch (high speed address converter)
The reference cycle +et is an instruction cache memory reference cycle, and instruction execution starts from the next D cycle.
通常のプログラムでは、分岐成功率の方が不成功率より
高く、また−度分岐が成立した分岐命令1よ、その侵も
続けて分岐成立する可能性が非常に高いという性質をも
っている。従って、分岐成功時のロスタイムを非常に少
な(することができ、性能の向上に大きく役立つ。この
ような性質を利用して、分岐命令の実行結果を予測し、
命令先取りを行う方式が提案されている。In a normal program, the branch success rate is higher than the failure rate, and branch instruction 1, which has taken a branch twice, has a very high possibility that the branch will be taken again. Therefore, the loss time when a branch is successful can be minimized, which greatly improves performance.Using this property, the execution result of a branch instruction can be predicted,
A method of prefetching instructions has been proposed.
第11図乃至第13図は予測による分岐先命令の先取り
方式を示す図である。第11図は分岐命令アドレスと分
岐先アドレスとを対にして記憶する分岐予測テーブルの
内部構成を示す図であり、過去において分岐成功を示し
た分岐命令について、登録されている。第12図におい
て、命令先取り動作の段階で分岐命令アドレスで分岐予
測テーブルを引き、若しその命令アドレスが登録されて
いるならば、対になっている分岐先命令アドレスを読出
してきて命令先取りアドレスレジスタにセットし、以降
の命令先取り動作を継続する。FIGS. 11 to 13 are diagrams showing a method of prefetching a branch destination instruction by prediction. FIG. 11 is a diagram showing the internal structure of a branch prediction table that stores branch instruction addresses and branch destination addresses in pairs, and registers branch instructions that have shown branch success in the past. In FIG. 12, at the stage of instruction prefetching operation, a branch prediction table is retrieved using the branch instruction address, and if that instruction address is registered, the paired branch destination instruction address is read and the instruction prefetching address is read. Set in the register and continue prefetching subsequent instructions.
[発明が解決しようとする課題]
分岐予測テーブルが引けた場合、分岐命令の直後から予
測された分岐先の命令を実行することができるので、第
12図に示すようにそのロスタイムはOである。これに
対し、分岐不成立若しくは分岐先アドレスの変更など予
測が不成功に終わった場合、第13図に示すように7サ
イクルの太きなロスタイムが生じるという不具合がある
。[Problem to be solved by the invention] When the branch prediction table is drawn, the predicted branch destination instruction can be executed immediately after the branch instruction, so the loss time is O as shown in FIG. . On the other hand, if the prediction ends in failure, such as when the branch is not taken or the branch destination address is changed, there is a problem in that a large loss time of 7 cycles occurs as shown in FIG. 13.
本発明はこのような課題に鑑みてなされたものであって
、分岐予測テーブルを用いた分岐命令における命令先取
りυ1110において、分岐予測失敗のケースの場合で
も最短のロスタイムで命令実行を行うことができる命令
フェッチ制御方法を提供することを目的としている。The present invention has been made in view of these problems, and in the instruction prefetch υ1110 in a branch instruction using a branch prediction table, the instruction can be executed with the shortest loss time even in the case of a branch prediction failure. The purpose of this invention is to provide an instruction fetch control method.
[課題を解決するための手段]
第1図は本発明方法の原理を示すフローチャートである
。本発明は、分岐命令の数命令前の命令アドレスと、該
分岐命令の分岐先アドレスと同じく該分岐命令の命令ア
ドレスとその有効性を示すフラグとを対にして保持する
分岐予測テーブルを設け(ステップ1)、
現在実行中の命令シーケンスの命令を蓄える第1の命令
バッフ?と、前記分岐予測テーブルより予測され・るア
ドレス先の命令シーケンスの命令を蓄える第2の命令バ
ッファの少な(とも2つの命令バッファを設け(ステッ
プ2)、
前記各命令バッファに保持される命令の命令アドレスを
保持す・る命令アドレスレジスタを命令バッファ対応に
設け(ステップ3)、
分岐命令の予測成功、不成功1分岐成立、不成立に応じ
て前記各命令バッファを選択し、その命令バッファ中の
命令を直らに実行させると共に、その命令シーケンスの
命令フェッチを続けて行なわせる(ステップ4)ように
したことを特徴としている。[Means for Solving the Problems] FIG. 1 is a flowchart showing the principle of the method of the present invention. The present invention provides a branch prediction table that holds the instruction address of the branch instruction several instructions before the branch instruction, the instruction address of the branch instruction, and a flag indicating its validity in pairs, as well as the branch destination address of the branch instruction. Step 1): A first instruction buffer that stores the instructions of the currently executing instruction sequence? and a second instruction buffer for storing instructions of the instruction sequence at the address destination predicted from the branch prediction table (two instruction buffers are provided (step 2), and the instructions held in each instruction buffer are An instruction address register for holding the instruction address is provided corresponding to the instruction buffer (step 3), and each instruction buffer is selected depending on whether the prediction of the branch instruction is successful, failure 1, branch taken, or not taken. The present invention is characterized in that the instruction is executed immediately and the instruction fetch of the instruction sequence is continued (step 4).
[作用〕
現在実行中の命令シーケンスの命令を蓄える第1の命令
バッファと、前記分岐予測テーブルより予測されるアド
レス先の命令シーケンスの命令を蓄える第2の命令バッ
フ?の少なくとも2つの命令バッファを設ける。これに
より、分岐予測成功の場合には、第2の命令バッファの
内容に進み、分岐予測失敗の場合には第1の命令バッフ
?の命令を順次実行する。これにより、分岐命令の予測
成功、不成功0分岐成立、不成立の如何に拘らず、分岐
命令実行時のロスタイムをできるだけ少なくすることが
できる。[Operation] A first instruction buffer that stores instructions of the instruction sequence currently being executed, and a second instruction buffer that stores instructions of the instruction sequence at the address destination predicted from the branch prediction table. At least two instruction buffers are provided. This allows us to proceed to the contents of the second instruction buffer in case of successful branch prediction and to the contents of the first instruction buffer in case of branch prediction failure. Execute the instructions in sequence. This makes it possible to reduce the loss time when executing a branch instruction as much as possible, regardless of whether the prediction of the branch instruction is successful, unsuccessful, 0 branches taken, or not taken.
[実施例]
以下、図面を参照して本発明の実施例を詳細に説明する
。[Example] Hereinafter, an example of the present invention will be described in detail with reference to the drawings.
第2図は分岐予測テーブル書込み動作を示す図、第3図
は分岐予測テーブルのエントリー形式を示す図である。FIG. 2 is a diagram showing the branch prediction table writing operation, and FIG. 3 is a diagram showing the entry format of the branch prediction table.
第2図において、CLC命令は、370−(DATBE
Wで1フロー)で分岐するかどうかのコンデイションコ
ード(CC)を決定する命令であり、ブランチ(8RA
NC)−1)命令のEサイクルで分岐成立が決定する。In FIG. 2, the CLC instruction is 370-(DATBE
This is an instruction that determines the condition code (CC) to determine whether to branch at a branch (8RA 1 flow).
NC)-1) Branch establishment is determined in the E cycle of the instruction.
PSWIARはPSW命令アドレスレジスタであり、命
令の最後のWサイクルで更新が行われ、次命令の命令ア
ドレスを指している。PSWIAR is a PSW instruction address register, updated in the last W cycle of the instruction, and points to the instruction address of the next instruction.
各サイクルで、IARはその命令の命令アドレスを指し
、OARはオペランドアドレスレジスタであり、ブラン
チ命令の場合、ターゲット命令(分岐先命令)アドレス
を示す。ここで、ブランチティクン(BRANCH−T
AKEN)信号があると、PSWIARがターゲットフ
ェッチ開始アドレスとして、E−IARがブランチ命令
アドレスとして、E−OARがターゲット命令アドレス
として予測テーブルに登録される。第2図の場合には、
CLC命令の命令アドレスがターゲット開始アドレスと
して登録される(第3図参照)。At each cycle, IAR points to the instruction address of that instruction, OAR is the operand address register, and in the case of a branch instruction, points to the target instruction address. Here, BRANCH-T
AKEN) signal, PSWIAR is registered as the target fetch start address, E-IAR as the branch instruction address, and E-OAR as the target instruction address in the prediction table. In the case of Figure 2,
The instruction address of the CLC instruction is registered as the target start address (see FIG. 3).
なお、第3図中のVはこれら命令アドレスの有効性(V
ALID)を示すフラグである。Note that V in FIG. 3 indicates the validity of these instruction addresses (V
ALID).
第4図は命令先取り動作を示す図である。D−FARと
ターゲットフエツヂ開始命令アドレスがマツチして有効
性を示すVフラグが立っている時、ターゲット命令アド
レスがTARGET FARに、ブランチ命令アドレ
スがBREARに、D−FARがFCHFARにそれぞ
れセットされ、バリド(VALID)ラッチがセットさ
れる。バリドラツチがある時、丁ARGET rAR
ffi命令フェッチアドレスとして選択され、また使用
する命令バッファを指定する2ビツトの■Dが選択され
、送られる。FIG. 4 is a diagram showing the instruction prefetching operation. When D-FAR and target start instruction address match and the V flag indicating validity is set, the target instruction address is set to TARGET FAR, the branch instruction address is set to BREAR, and D-FAR is set to FCHFAR. and the VALID latch is set. When there is a valid trigger, DARGET rAR
The ffi instruction fetch address is selected, and the 2-bit ■D specifying the instruction buffer to be used is selected and sent.
次にブランチ命令のDサイクルで、0−fARとBR−
IARとが比較され、またDサイクルの命令コードをデ
コードした結果、ブランチ命令であることが判明ずれば
、制御信号■が比較結果により生成され、命令バッファ
がブランチ命令を格納する命令バッファ(第2のバッフ
ァ)に切替わり、次サイクルからは予測されたブランチ
先の命令がDサイクルより実行される。一方、ブランチ
命令のAサイクルでは、オペランドアドレス生成回路(
図示せず)より生成されたアドレスが命令フェッチアド
レスとして送られ、またもう1つある命令バッファ10
が選択され、送られる。Next, in the D cycle of the branch instruction, 0-fAR and BR-
IAR is compared, and as a result of decoding the instruction code of the D cycle, if it is found that it is a branch instruction, a control signal ■ is generated according to the comparison result, and the instruction buffer is transferred to the instruction buffer (second buffer), and from the next cycle, the predicted branch destination instruction is executed from the D cycle. On the other hand, in the A cycle of a branch instruction, the operand address generation circuit (
(not shown) is sent as an instruction fetch address, and there is another instruction buffer 10.
is selected and sent.
ブランチ命令のTサイクルでは、ターゲット【ARとT
−OARとが比較され、比較結果により制御信号■が生
成される。ブランチ命令のEサイクルで、分岐不成立の
場合、命令バッファを現在の命令シーケンスを保持する
バッファ(第1のバッフ?)に切替える。なお、このよ
うな命令バッファとして、第3の命令バッフ?を設けて
お(ことにより、分岐不成立でかつ制御信号■より分岐
先アドレスが変更されたことが判明した場合には、命令
バッフ?を実際に計算して命令フェッチを行ったバッフ
?(第3のバッファ)に切替える。In the T cycle of the branch instruction, the target [AR and T
-OAR is compared, and a control signal ■ is generated based on the comparison result. In the E cycle of a branch instruction, if the branch is not taken, the instruction buffer is switched to a buffer (first buffer?) that holds the current instruction sequence. In addition, as such an instruction buffer, a third instruction buffer? (By this, if the branch is not taken and it is found that the branch destination address has been changed from the control signal buffer).
また、命令1jiIの中にストアがあって、ブランチ命
令が変更された場合、信号■により分岐先アドレスの変
更があった場合、信号■により分岐不成立の場合、ノッ
トブランチトークン<N0T−BRANCH−TKN)
GCよりFC)−1−IARFI定されるエントリのV
ピットがリセットされる。In addition, if there is a store in instruction 1jiI and the branch instruction is changed, if the branch destination address is changed by the signal ■, or if the branch is not taken by the signal ■, then the not branch token < N0T-BRANCH-TKN )
FC from GC)-1-V of the entry specified by IARFI
The pit will be reset.
第5図は本発明を実施するシステム構成図である。同図
は、命令フェッチ及びDサイクルの命令投入の回路構成
を示している。図において、IARは命令アドレスレジ
スタであり、A、B、Cの3個ある。rWRは命令を一
時的に保持する命令バッファであり、8バイト命令を保
持するものがA、B、Cの3個ある。XR,BR,OR
はそれぞれ命令に指定されるインデックスレジスタ、ベ
ースレジスタ、ディスプレイスメント部を保持するレジ
スタであり、分岐命令のAサイクルでこれらの和が求め
られて分岐先の命令アドレスとなる。FIG. 5 is a system configuration diagram for implementing the present invention. This figure shows the circuit configuration for instruction fetch and D cycle instruction input. In the figure, IAR is an instruction address register, and there are three, A, B, and C. The rWRs are instruction buffers that temporarily hold instructions, and there are three, A, B, and C, that hold 8-byte instructions. XR,BR,OR
are registers that hold an index register, a base register, and a displacement section respectively designated by the instruction, and the sum of these is calculated in the A cycle of the branch instruction and becomes the instruction address of the branch destination.
通常の命令シーケンスでは、−組のIAR,IWR(例
、1iflAR−A、IWR−A>を用いて命令の先取
り及び投入が行なわれる。In a normal instruction sequence, a - pair of IAR, IWR (eg, 1iflAR-A, IWR-A>) is used to prefetch and inject instructions.
次に予測テーブルがヒツトして、予測分岐先命令フェッ
チのパリドラッチがセットされると、命令フェッチ11
11111部1はターゲットJARをセレクトして命令
アドレスを送出すると共に、使用する命令バッファrW
Rを示す2ビツトのI−FCI−IREQ rD(I
フェッチリクエストrD)を送る。そして、ターゲット
IARの内容は、次のEAR即ちFAR−Bにセットさ
れる。ISサイクルでEAR(エフェクティブ アドレ
ス レジスタ)を経てI−FCHLBS (Iフェッチ
ローカルバッフ? ストレージ)2より得られたデータ
はI−FCHREQ IQで示されるIWR即ち命令
バッファIWR−8にセットされる。Next, when the prediction table hits and the parid latch of the predicted branch destination instruction fetch is set, the instruction fetch 11
11111 part 1 selects the target JAR and sends the instruction address, and also selects the instruction buffer rW to be used.
2-bit I-FCI-IREQ rD (I
Send a fetch request (rD). The contents of the target IAR are then set to the next EAR, namely FAR-B. Data obtained from the I-FCHLBS (I-fetch local buffer storage) 2 via the EAR (effective address register) in the IS cycle is set in the IWR indicated by I-FCHREQ IQ, that is, the instruction buffer IWR-8.
ここで、第4図における信号■が検出されると、プレゼ
ンテーショ> (PRESENTAT l0N)制御部
3はIWR−8より命令をセレクトして投入する。そし
て、分岐命令のEサイクルで分岐成立9分岐予測成功が
確認されたところで、IAR−Bより命令先取りが行わ
れ、以降FAR−B。Here, when the signal ■ in FIG. 4 is detected, the control unit 3 selects and inputs a command from the IWR-8. Then, when it is confirmed that the branch is taken and the prediction of the 9th branch is successful in the E cycle of the branch instruction, the instruction is prefetched from the IAR-B, and thereafter the FAR-B.
IWR−Bより命令の先取り、投入が続けられる。The IWR-B continues to prefetch and input instructions.
また、分岐命令のΔサイクルでは、図のSR,XR,D
Rのアダー(加ts5>4より求められた分岐先命令ア
ドレスがセレクトされ、送られる。この時、I−FCH
REQ IDは命令バッファfWR−Cを指し、また
この時のアドレスは、IAR−Cに保持される。In addition, in the ∆ cycle of a branch instruction, SR, XR, D
The branch destination instruction address obtained from R's adder (additional ts5>4) is selected and sent. At this time, the I-FCH
REQ ID points to instruction buffer fWR-C, and the address at this time is held in IAR-C.
ブランチ命令のEサイクルで分岐成立かつ信号■より分
岐先アドレスの変更が確認されたら、rWR−Cより命
令投入が、fAR−Cより命令フェッチが行なわれる。When the branch is established in the E cycle of the branch instruction and the change of the branch destination address is confirmed by the signal (2), an instruction is input from rWR-C and an instruction is fetched from fAR-C.
また、分岐不成立の確認がなされたらIWR−A、TA
R−Aに戻り、命令投入、フェッチが行われる。このよ
うにしてrAR,rWRはA、B、Cと順次サイクリッ
クに使用される。本発明によれば、条件分岐が成立した
ら、分岐命令番地に速やかにジャンプして分岐命令を実
行し、条件分岐が成立しなかった場合には、元の命令バ
ッファに速やかに戻って命令の続行が可能となる。Also, if it is confirmed that the branch is not taken, IWR-A, TA
Returning to RA, instructions are input and fetched. In this way, rAR and rWR are used cyclically as A, B, and C in sequence. According to the present invention, when a conditional branch is taken, the branch instruction address is immediately jumped to and the branch instruction is executed, and when the conditional branch is not taken, the instruction is quickly returned to the original instruction buffer and the instruction continues. becomes possible.
第6図は分岐予測成功時のタイムチャートである。命令
バックyIWR−Aから命令バッファrWR−Bへ分岐
命令によりジャンプした例を示している。第7図は分岐
先アドレス変更による予測失敗時のタイムチャートであ
る。予測分岐先命令による予測が失敗し、命令バッフF
IWR−Cに分岐先を変更して実行するものである。こ
の場合のロスタイムは4サイクルである。FIG. 6 is a time chart when branch prediction is successful. An example of jumping from instruction back yIWR-A to instruction buffer rWR-B by a branch instruction is shown. FIG. 7 is a time chart when prediction fails due to a change in branch destination address. The prediction by the predicted branch destination instruction fails and the instruction buffer F
The branch destination is changed to IWR-C and executed. The loss time in this case is 4 cycles.
第8図は分岐不成立による予測失敗時のタイムチャート
である。予測分岐先命令1分岐先命令の何れも失敗し、
元の命令バッファIWR−Aに戻って、ブランチ命令の
次の命令を実行するようにしたものであり、ロスタイム
4サイクルである。FIG. 8 is a time chart when prediction fails due to branch failure. Predicted branch destination instruction 1 Any of the branch destination instructions fails,
The instruction is returned to the original instruction buffer IWR-A and the instruction following the branch instruction is executed, resulting in a loss time of 4 cycles.
以上、何れのケースも予測失敗のケースで、従来方式に
比較して3サイクルの短縮が可能となる。As described above, in all cases where prediction fails, three cycles can be shortened compared to the conventional method.
以上の例では、ブランチ命令の直前の条件設定命令を3
フロー必要なCLC命令で考えてきたが、270−、1
70−で終了するような命令の場合、予測分岐先命令の
フェッチが遅れてしまう。これは、PSW−JARをシ
フトして保持したレジスタをターゲットフェッチ開始命
令アドレスとして登録することにより解決される。例え
ば、第9図に示すように命令■の命令アドレスが登録さ
れるわけで、次に予測テーブルを用いた場合、これまで
のIJtlllで遅れなしに命令フェッチを与えること
ができる。In the above example, the condition setting instruction immediately before the branch instruction is
I have been thinking about CLC instructions that require flow, but 270-, 1
In the case of an instruction that ends at 70-, fetching of the predicted branch destination instruction will be delayed. This is solved by registering the register that shifted and held the PSW-JAR as the target fetch start instruction address. For example, as shown in FIG. 9, the instruction address of the instruction ■ is registered, and when the prediction table is used next time, the instruction fetch can be provided without delay using the conventional IJtll.
[発明の効果]
以上詳細に説明したように、本発明によれば現在実行中
の命令シーケンスの命令を蓄える第1の命令バッファと
、前記分岐予測テーブルより予測されるアドレス先の命
令シーケンスの命令を蓄える第2の命令バッファの少な
くとも2つの命令バッフ?を設ける。これにより、分岐
予測成功の場合には、第2の命令バッファの内容に進み
、分岐予測失敗の場合には第1の命令バッファの命令を
順次実行する。これにより、分岐命令の予測成功。[Effects of the Invention] As described above in detail, according to the present invention, a first instruction buffer stores instructions of an instruction sequence currently being executed, and an instruction of an instruction sequence at an address predicted from the branch prediction table. At least two instruction buffers of the second instruction buffer that store? will be established. As a result, if the branch prediction is successful, the contents of the second instruction buffer are proceeded to, and if the branch prediction is unsuccessful, the instructions in the first instruction buffer are sequentially executed. This results in successful branch instruction prediction.
不成功9分岐成立、不成立の如何に拘らず、分岐命令実
行時のロスタイムをできるだけ少なくするこ8ができる
命令フェッチ制御方法を提供することができる。It is possible to provide an instruction fetch control method that can minimize loss time when executing a branch instruction, regardless of whether the branch is taken or not.
第1図は本発明方法の原理を示すフローチャート、
第2図は分岐命令予測テーブル書込み動作を示す図、
第3図は分岐予測テーブルのエントリー形式を示す図、
第4図は命令先取り動作を示す図、
第5図は本発明を実施するシステム構成図、第6図は分
岐予測成功時のタイムチャート、第7図は分岐先アドレ
ス変更による予測失敗時のタイムチャー1−1
第8図は分岐不成立による予測失敗時のタイムチャート
、
第9図は本発明による他の動作と示す図、第10図は従
来の分岐命令実行時の命令先取り動作を示す図、
第11図は分岐予測テーブルの内部構成を示す図、
第12図は予測による分岐先命令の先取り方式第13図
は予測による分岐先命令の先取り方式を示す図である。
第5図において、
1は命令フェッチ制御部、
2はI−FCHLBS、
3はプレゼンテーション制御部、
4は加算器、
IARはインストラクションアドレスレジスタ、XR,
BR,ORはレジスタ、
IWRは命令バッファである。
特許出願人 富 士 通 株 式 会
社代 理 人 弁理士 井 島
藤 治外1名
第9区
D
■
■
分岐先命令
T
従来0分時命令噴行vjo命令先取り動作を示す図第1
0 図Figure 1 is a flowchart showing the principle of the method of the present invention, Figure 2 is a diagram showing the branch instruction prediction table write operation, Figure 3 is a diagram showing the entry format of the branch prediction table, and Figure 4 is a diagram showing the instruction prefetch operation. Figure 5 is a system configuration diagram implementing the present invention, Figure 6 is a time chart when branch prediction is successful, Figure 7 is a time chart 1-1 when prediction fails due to branch destination address change, Figure 8 is branch 9 is a diagram showing other operations according to the present invention; FIG. 10 is a diagram illustrating instruction prefetching operation when executing a conventional branch instruction; FIG. 11 is the inside of a branch prediction table. FIG. 12 is a diagram showing a method for prefetching a branch destination instruction by prediction. FIG. 13 is a diagram showing a method for prefetching a branch destination instruction by prediction. In FIG. 5, 1 is an instruction fetch control unit, 2 is an I-FCHLBS, 3 is a presentation control unit, 4 is an adder, IAR is an instruction address register,
BR and OR are registers, and IWR is an instruction buffer. Patent applicant: Fujitsu Limited
Company representative Patent attorney Ijima
Fuji, 1 person, 9th ward D ■ ■ Branch destination instruction T Diagram 1 showing the conventional 0 minute instruction jetting vjo instruction prefetching operation
0 figure
Claims (1)
いて、 分岐命令の数命令前の命令アドレスと、該分岐命令の分
岐先アドレスと同じく該分岐命令の命令アドレスとその
有効性を示すフラグとを対にして保持する分岐予測テー
ブルを設け(ステップ1)、現在実行中の命令シーケン
スの命令を蓄える第1の命令バッファと、前記分岐予測
テーブルより予測されるアドレス先の命令シーケンスの
命令を蓄える第2の命令バッファの少なくとも2つの命
令バッファを設け(ステップ2)、 前記各命令バッファに保持される命令の命令アドレスを
保持する命令アドレスレジスタを命令バッファ対応に設
け(ステップ3)、 分岐命令の予測成功、不成功、分岐成立、不成立に応じ
て前記各命令バッファを選択し、その命令バッファ中の
命令を直ちに実行させると共に、その命令シーケンスの
命令フェッチを続けて行なわせる(ステップ4)ように
したことを特徴とする命令フェッチ制御方法。[Claims] In an information processing device that performs instruction prefetching prior to instruction execution, an instruction address several instructions before a branch instruction, an instruction address of the branch instruction as well as a branch destination address of the branch instruction, and its validity. A branch prediction table is provided that stores the instructions of the currently executed instruction sequence in pairs (step 1), and a first instruction buffer stores the instructions of the currently executed instruction sequence, and the instruction sequence of the address destination predicted from the branch prediction table. At least two instruction buffers are provided as a second instruction buffer for storing instructions (Step 2), and an instruction address register for holding the instruction address of the instruction held in each instruction buffer is provided corresponding to the instruction buffer (Step 3). , select each instruction buffer according to whether the branch instruction is predicted successfully or unsuccessfully, whether the branch is taken or not, and immediately executes the instructions in the instruction buffer, and causes the instruction fetch of the instruction sequence to continue (step 4) An instruction fetch control method characterized by the following.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63186094A JPH0235525A (en) | 1988-07-25 | 1988-07-25 | Instruction fetch control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63186094A JPH0235525A (en) | 1988-07-25 | 1988-07-25 | Instruction fetch control method |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0235525A true JPH0235525A (en) | 1990-02-06 |
Family
ID=16182261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63186094A Pending JPH0235525A (en) | 1988-07-25 | 1988-07-25 | Instruction fetch control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0235525A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6662295B2 (en) | 1997-09-10 | 2003-12-09 | Ricoh Company, Ltd. | Method and system dynamically presenting the branch target address in conditional branch instruction |
US7676650B2 (en) | 2002-06-28 | 2010-03-09 | Fujitsu Limited | Apparatus for controlling instruction fetch reusing fetched instruction |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5694444A (en) * | 1979-12-28 | 1981-07-30 | Fujitsu Ltd | Information processing device |
JPS56123041A (en) * | 1980-02-29 | 1981-09-26 | Hitachi Ltd | Information processor |
JPS5769457A (en) * | 1980-10-17 | 1982-04-28 | Nec Corp | Microprogram controller |
JPS6388643A (en) * | 1986-10-01 | 1988-04-19 | Mitsubishi Electric Corp | Data processor |
-
1988
- 1988-07-25 JP JP63186094A patent/JPH0235525A/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5694444A (en) * | 1979-12-28 | 1981-07-30 | Fujitsu Ltd | Information processing device |
JPS56123041A (en) * | 1980-02-29 | 1981-09-26 | Hitachi Ltd | Information processor |
JPS5769457A (en) * | 1980-10-17 | 1982-04-28 | Nec Corp | Microprogram controller |
JPS6388643A (en) * | 1986-10-01 | 1988-04-19 | Mitsubishi Electric Corp | Data processor |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6662295B2 (en) | 1997-09-10 | 2003-12-09 | Ricoh Company, Ltd. | Method and system dynamically presenting the branch target address in conditional branch instruction |
US7676650B2 (en) | 2002-06-28 | 2010-03-09 | Fujitsu Limited | Apparatus for controlling instruction fetch reusing fetched instruction |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4827402A (en) | Branch advanced control apparatus for advanced control of a branch instruction in a data processing system | |
JP3518770B2 (en) | Method and apparatus for quickly dispatching instructions to at least one execution unit | |
CN111159062A (en) | Cache data scheduling method and device, CPU chip and server | |
JPH02287626A (en) | Pipeline system branch instruction controller | |
JP2723238B2 (en) | Information processing device | |
JPH0235525A (en) | Instruction fetch control method | |
JPS5991551A (en) | Instruction prefetching device forecasting address to be branched | |
JPS60241136A (en) | Data processor | |
US7941638B2 (en) | Facilitating fast scanning for control transfer instructions in an instruction fetch unit | |
JPS6154541A (en) | Instruction prefetch control system | |
JP3493110B2 (en) | High-speed branch processing unit | |
JP3558481B2 (en) | Data processing device | |
JP5679263B2 (en) | Information processing apparatus and microinstruction processing method | |
JPH0248733A (en) | Information processor | |
JPH03113535A (en) | Pipeline control mechanism | |
JPH04246728A (en) | Information processor | |
JPH05173785A (en) | Instruction prefetching device | |
JPH04213727A (en) | Information processor | |
JP2902847B2 (en) | Self-modifying code execution method | |
JPS6047618B2 (en) | information processing equipment | |
JPH08212068A (en) | Information processor | |
JPH0635700A (en) | Command execution processor | |
JPH03269625A (en) | Data processor | |
JPH01240931A (en) | Data processor | |
JPS62269236A (en) | Instruction prefetch control system for data processor |