JPS63195736A - Branch instruction processor for pipeline control - Google Patents

Branch instruction processor for pipeline control

Info

Publication number
JPS63195736A
JPS63195736A JP2727587A JP2727587A JPS63195736A JP S63195736 A JPS63195736 A JP S63195736A JP 2727587 A JP2727587 A JP 2727587A JP 2727587 A JP2727587 A JP 2727587A JP S63195736 A JPS63195736 A JP S63195736A
Authority
JP
Japan
Prior art keywords
instruction
branch
register
instructions
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2727587A
Other languages
Japanese (ja)
Inventor
Michitaka Yamamoto
山本 通敬
Shuichi Abe
秀一 安部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2727587A priority Critical patent/JPS63195736A/en
Publication of JPS63195736A publication Critical patent/JPS63195736A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To shorten the program executing time by performing the branch instruction processing via an exclusive means and in parallel with other instructions. CONSTITUTION:An instruction segmentation shifter B3 extracts the next instruction to an instruction register B5 every time an instruction segmentation shifter A2 extracts an instruction to be processed next to an instruction register A4. If the instruction extracted to the register B5 is equal to a BC instruction, a BC instruction detecting circuit 9 detects the BC instruction to switch a selector 8 and supplies the two highest rank bits of the register B5 to a 3rd input of an adder 7. As a result, the instruction following the BC instruction is extracted to the register A4. The BC instruction detecting signal sent from the circuit 9 is also sent to an address calculator B14 and an instruction buffer memory 16 respectively as a BC instruction start command. Thus a branch destination instruction is read out to an instruction buffer 1.

Description

【発明の詳細な説明】 (産業上の利用分野〕 本発明は、パイプライン制御のデータ処理装置における
命令処理装置に関し、特に、分岐命令を含む命令列を高
速に処理するための機構に関する。
DETAILED DESCRIPTION OF THE INVENTION (Field of Industrial Application) The present invention relates to an instruction processing device in a pipeline-controlled data processing device, and particularly to a mechanism for processing an instruction sequence including a branch instruction at high speed.

〔従来の技術〕[Conventional technology]

一般に、パイプライン制御のデータ処理装置(例えば、
特公昭50−21821号公報参照)においては、第4
図に示されるように、各命令の処理が。
Generally, pipeline-controlled data processing devices (e.g.
(Refer to Japanese Patent Publication No. 50-21821), the fourth
The processing of each instruction is as shown in the figure.

デコード(D)、アドレス計算(A)、オペランド読出
しくL)、演算実行(E)などの諸ステージを順法経由
して進行し、かつ、相次ぐ命令が、1ステージずつ遅れ
ながら、並行して処理される。
Various stages such as decoding (D), address calculation (A), operand reading (L), and operation execution (E) are progressed sequentially, and successive instructions are executed in parallel, with a delay of one stage at a time. It is processed.

分岐命令も同様にパイプラインを通るから、それのため
に1ステ一ジ分の時間が費されて、その後に次の命令の
処理が開始される0例えば、分岐条件が成立しない場合
でも、次の命令(命令3)の処理が開始されるのは1分
岐命令の前の命令(命令1)の処理の開始から2ステー
ジ後である。このことは1分岐命令の先取りを行なう装
置(例えば、特開昭50−39437号公報参照)にお
いても同様である。従来の分岐命令先取機構は、分岐先
命令を前もって読出すことによって、分岐が実行される
場合の処理を高速化するけれども、パイプライン中での
分岐命令の処理は省略できず、したがって、そのための
1ステ一ジ分の時間を必要とする。
Branch instructions also pass through the pipeline, so one stage's worth of time is spent for it, and then processing of the next instruction begins.For example, even if a branch condition is not met, the next Processing of the instruction (instruction 3) starts two stages after the start of processing of the instruction (instruction 1) preceding the one-branch instruction. This also applies to devices that prefetch one branch instruction (see, for example, Japanese Patent Laid-Open No. 50-39437). Although conventional branch instruction prefetch mechanisms speed up processing when a branch is executed by pre-reading the branch target instruction, processing of the branch instruction in the pipeline cannot be omitted, and thus It takes time for one stage.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

分岐命令の処理は、分岐条件の判定、分岐先命令の読出
し、プログラムカウンタの制御など、他の命令とは異な
る特殊な処理を含む。そのため。
Processing of a branch instruction includes special processing different from other instructions, such as determining a branch condition, reading a branch destination instruction, and controlling a program counter. Therefore.

高度なパイプライン制御を行なうデータ処理装置は、他
の命令の処理のための論理と独立かつ並行して動作しろ
る専用論理部を有する。もちろん、分岐命令の先取りを
行なうデータ処理装置も、このような専用論理部を備え
ている!このようなデータ処理装置においては、分岐命
令のパイプライン処理過程の各ステージで1通常の命令
の処理に使用される論理部は空いている。
Data processing devices that perform advanced pipeline control have dedicated logic that can operate independently and in parallel with logic for processing other instructions. Of course, data processing devices that prefetch branch instructions are also equipped with such dedicated logic! In such a data processing device, a logic section used for processing one normal instruction is vacant at each stage of the branch instruction pipeline processing process.

本発明は、この点に着目して、分岐命令の次の命令を従
来装置での分岐命令処理サイクルにおいて処理し、パイ
プライン処理における分岐命令の処理時間を無くして、
それにより1分岐命令を含む命命列の処理速度を改善し
ようとするものである。
Focusing on this point, the present invention processes the instruction following a branch instruction in the branch instruction processing cycle of the conventional device, eliminates the processing time of the branch instruction in pipeline processing, and
This aims to improve the processing speed of instruction sequences including one-branch instructions.

〔問題点を解決するための手段〕[Means for solving problems]

本発明においては、通常のパイプライン処理機構のため
の第1命令取出手段に加えて、命令バッファから命令を
先取りする第2命令取出手段と。
In the present invention, in addition to a first instruction fetching means for a normal pipeline processing mechanism, a second instruction fetching means for prefetching an instruction from an instruction buffer is provided.

第2命令取出手段により取出された命令が分岐命令であ
る場合にこの分岐命令の前の命令に直ちに続けてこの分
岐命令の次の命令を取出すように第1命令取出手段を制
御する手段と、第2命令取出手段により取出された分岐
命令の処理の少なくとも一部を他の命令のパイプライン
処理と並行して実行する専用手段とが、設けられる。
means for controlling the first instruction fetching means to immediately follow the instruction before the branch instruction and fetching the next instruction after the branch instruction when the instruction fetched by the second instruction fetching means is a branch instruction; Dedicated means is provided for executing at least part of the processing of the branch instruction fetched by the second instruction fetching means in parallel with pipeline processing of other instructions.

〔作用〕[Effect]

前記の構成によれば、命令列のパイプライン処理におい
て、分岐命令はスキップされ、その代りに、分岐命令の
次の命令が処理される。分岐命令の処理は、専用手段に
より、他の命令と並行して行なわれる。したがって、分
岐命令のパイプライン処理時間は“0”となる。
According to the above configuration, in pipeline processing of a sequence of instructions, a branch instruction is skipped, and an instruction following the branch instruction is processed instead. Branch instructions are processed in parallel with other instructions by dedicated means. Therefore, the pipeline processing time for a branch instruction is "0".

(実施例) 第1図は本発明の一実施例を示す。命令バッファ記憶装
置16から逐次読出された命令は、命令バッファ(IB
R)1に一旦保持される。命令切出しシフタA2は、次
に処理が開始される命令を命令バッファ1から取出すた
めのシフタであり、命令切出しシフタB3は、命令切出
しシフタA2により取出された命令の次の命令を取出す
ためのシフタである。命令切出しシフタA2により取出
された命令は、命令レジスタA (IRA)4にセット
され、命令切出しシフタB3により取出された命令は、
命令レジスタB (IRB)5にセットされる。したが
って、命令レジスタA4は、次に処理が開始される命令
を保持し、命令レジスタB5は、命令レジスタA4内の
命令の次に処理されるべき命令を保持する。各命令の最
上位の2ビツトは、その命令の長さを示す。
(Example) FIG. 1 shows an example of the present invention. The instructions read out sequentially from the instruction buffer storage device 16 are stored in the instruction buffer (IB
R) is temporarily held at 1. The instruction extraction shifter A2 is a shifter for taking out the next instruction to be processed from the instruction buffer 1, and the instruction extraction shifter B3 is a shifter for taking out the next instruction after the instruction taken out by the instruction extraction shifter A2. It is. The instruction taken out by the instruction extraction shifter A2 is set in the instruction register A (IRA) 4, and the instruction taken out by the instruction extraction shifter B3 is set in the instruction register A (IRA) 4.
Set in instruction register B (IRB)5. Therefore, instruction register A4 holds the next instruction to be processed, and instruction register B5 holds the instruction to be processed next to the instruction in instruction register A4. The two most significant bits of each instruction indicate the length of that instruction.

命令バッファポインタ(IBOP)6は、命令レジスタ
A4に取出すべき命令の命令バッファ1内における先頭
位置を常に保持し、その内容は、後述する機構により更
新される。命令切出しシフタA2が取出すべき命令の先
頭位置は、命令バッファポインタ6により指示され、命
令切出しシフタB3が取出すべき命令の先頭位置は、命
令切出しシフタA2により取出された命令の最上位2ビ
ツトQ1により、命令バッファポインタ6の指す位置と
相対的に指示される。
The instruction buffer pointer (IBOP) 6 always holds the head position in the instruction buffer 1 of the instruction to be fetched in the instruction register A4, and its contents are updated by a mechanism described later. The starting position of the instruction to be taken out by the instruction extraction shifter A2 is indicated by the instruction buffer pointer 6, and the starting position of the instruction to be taken out by the instruction extraction shifter B3 is determined by the most significant 2 bits Q1 of the instruction taken out by the instruction extraction shifter A2. , is indicated relative to the position pointed to by the instruction buffer pointer 6.

加算器7は、命令バッファポインタ6の内容を更新する
ための3人力加算器である。その第1入力は命令バッフ
ァポインタ6の現在値であり、第2人力は命令レジスタ
A4の最上位2ビツト(命令長)Qlであり、第3人力
はセレクタ8の出力である。セレクタ8は、“0″又は
命令レジスタB5の最上位2ビツトQ2の一方を、BC
命令検出回路9の出力に従って選択する。加算器7の出
力は、命令バッファポインタ6に戻される。
Adder 7 is a three-man power adder for updating the contents of instruction buffer pointer 6. Its first input is the current value of the instruction buffer pointer 6, its second input is the most significant two bits (instruction length) Ql of the instruction register A4, and its third input is the output of the selector 8. The selector 8 selects either “0” or the two most significant bits Q2 of the instruction register B5 as BC.
The selection is made according to the output of the instruction detection circuit 9. The output of adder 7 is returned to instruction buffer pointer 6.

BC命令検出回路9は、命令レジスタB5にBC(条件
付分岐)命令が取出されたことを検出して、BC命令の
処理の開始を後述する専用論理部に指示し、かつ、セレ
クタ8を制御して、命令レジスタB5の最上位2ビツト
Q2を、加算器7の第3人力に供給する。セレクタ8は
、通常は0″′を選択する。
The BC instruction detection circuit 9 detects that a BC (conditional branch) instruction has been taken out to the instruction register B5, instructs a dedicated logic unit (to be described later) to start processing the BC instruction, and also controls the selector 8. Then, the most significant two bits Q2 of the instruction register B5 are supplied to the third input of the adder 7. The selector 8 normally selects 0''.

第2図は、BC命令のフォーマットを示す。FIG. 2 shows the format of the BC instruction.

OPは演算を指令するフィールドであり、Mlは分岐条
件を決定するマスクフィールドであり。
OP is a field that commands an operation, and Ml is a mask field that determines branch conditions.

X2とB2は分岐先命令のアドレスの計算に用いられる
汎用レジスタの番号を示し、B2はアドレスのディスプ
レースメントを示す。分岐先アドレスは、X2と82が
示す各汎用レジスタの内容とB2の和で与えられる。M
lは、BC命令実行時点におけるコンディションコード
と比較され5両者が一致すれば分岐が行なわれるが、不
一致ならば、BC命令の次の命令が実行される。
X2 and B2 indicate the numbers of general-purpose registers used to calculate the address of the branch destination instruction, and B2 indicates the displacement of the address. The branch destination address is given by the sum of the contents of each general-purpose register indicated by X2 and 82, and B2. M
l is compared with the condition code at the time of execution of the BC instruction, and if the two match, a branch is taken, but if they do not match, the next instruction after the BC instruction is executed.

第1図に戻り、命令レジスタA4に取出された命令は命
令キュー10に入れられて、パイプラインの各処理ステ
ージにおける演算の実行に必要な情報を供給する。オペ
ランドアドレスはアドレス計算器11で計算されて、オ
ペランドバッファ記憶装置12に供給される。演算実行
部13は、指定されたオペランドを用いて指定された演
算を行ない、その結果を、オペランドバッファ記憶装置
12、図示されていない汎用レジスタ又は主記憶装置に
格納する。このようなパイプライン処理機構自体は周知
である。
Returning to FIG. 1, the instructions fetched into instruction register A4 are placed in instruction queue 10 to provide information necessary for execution of operations in each processing stage of the pipeline. Operand addresses are calculated by address calculator 11 and provided to operand buffer storage 12. The operation execution unit 13 performs a specified operation using a specified operand, and stores the result in the operand buffer storage device 12, a general-purpose register (not shown), or a main storage device. Such a pipeline processing mechanism itself is well known.

BC命令検出回路9が命令レジスタB5内のBC命令を
検出して、BC命令開始指令を発生すると、アドレス計
算器B14は分岐先アドレスを計算し、分岐判定回路1
5はBC命令のMlとコンディションコードを比較して
、分岐が実行されるべきか否かを決定する。
When the BC instruction detection circuit 9 detects a BC instruction in the instruction register B5 and generates a BC instruction start command, the address calculator B14 calculates a branch destination address, and the branch judgment circuit 1
5 compares Ml of the BC instruction with the condition code to determine whether the branch should be executed.

命令バッファ記憶装置16は、命令切出しシフタA2が
命令を取出すのにつれて新しい命令を命令バッファ1に
供給する。分岐先命令も、命令バッファ記憶装置16か
ら命令バッファ1に転送される。
Instruction buffer storage 16 supplies new instructions to instruction buffer 1 as instruction fetch shifter A2 fetches instructions. The branch destination instruction is also transferred from the instruction buffer storage device 16 to the instruction buffer 1.

動作は以下のとおりである。命令切出しシフタA2が次
に処理を開始すべき命令を命令レジスタA4に取出すた
びに、その次の命令を、命令切出しシフタB3が命令レ
ジスタB5に取出す、BC命令検出回路9がBC命令を
検出しない限り、セレクタ8は(# Ojlを加算器7
の第3人力に供給し。
The operation is as follows. Every time the instruction extraction shifter A2 takes out the next instruction to start processing into the instruction register A4, the instruction extraction shifter B3 takes out the next instruction into the instruction register B5.The BC instruction detection circuit 9 does not detect a BC instruction. As far as selector 8 is (# Ojl adder 7
supplying the third manpower.

したがって、命令バッファポインタ6の内容は、その旧
値と命令レジスタA4内の命令の長さの和に更新される
。その結果、次のサイクルにおいて、命令レジスタA4
内の命令の次の命令が、命令切出しシフタA2によって
取出される。
Therefore, the contents of instruction buffer pointer 6 are updated to the sum of its old value and the length of the instruction in instruction register A4. As a result, in the next cycle, instruction register A4
The instruction next to the instruction within is extracted by the instruction extraction shifter A2.

他方、命令レジスタB5に取出された命令がBC命令で
あれば、BC命令検出回路9は、この事実を検出して、
セレクタ8を切替え、命令レジスタB5の最上位2ビツ
トΩ2(命令レジスタB内のBC命令の長さ)を加算器
7の第3人力に供給する。したがって、命令バッファポ
インタ6の内容は、その旧値と、命令レジスタA4内の
命令の長さと、命令レジスタB5内のBC命令の長さの
和に更新され、その結果1次のサイクルにおいては、こ
のBC命令の次の命令が命令レジスタA4に取出される
On the other hand, if the instruction fetched into the instruction register B5 is a BC instruction, the BC instruction detection circuit 9 detects this fact and
The selector 8 is switched and the most significant two bits Ω2 of the instruction register B5 (the length of the BC instruction in the instruction register B) are supplied to the third input of the adder 7. Therefore, the contents of the instruction buffer pointer 6 are updated to the sum of its old value, the length of the instruction in the instruction register A4, and the length of the BC instruction in the instruction register B5, and as a result, in the first cycle, The next instruction after this BC instruction is fetched into instruction register A4.

BC命令検出回路9からのBC命令検出信号は、また、
BC命令開始指令として、アドレス計算器14と命令バ
ッファ記憶装置16に送られ、分岐先命令を命令バッフ
ァ1に読出させる。BC命令開始指令は、分岐判定回路
15にも送られ、これを受けた分岐判定回路15は、分
岐判定待ち状態となり、演算実行部13においてコンデ
ィションコードが決定され次第、直ちに分岐条件の成否
の判定を行なう。
The BC command detection signal from the BC command detection circuit 9 is also
It is sent to the address calculator 14 and the instruction buffer storage device 16 as a BC instruction start command, and causes the instruction buffer 1 to read the branch destination instruction. The BC instruction start command is also sent to the branch judgment circuit 15, and upon receiving this command, the branch judgment circuit 15 enters a branch judgment waiting state, and as soon as the condition code is determined in the arithmetic execution unit 13, it immediately judges the success or failure of the branch condition. Do this.

第3図は、前述の動作をタイムチャートとして示す、命
令1の次に分岐命令2が置かれている。
FIG. 3 shows the above-mentioned operation as a time chart, in which branch instruction 2 is placed next to instruction 1.

分岐命令2はパイプラインに入らず、専用論理部(アド
レス計算器B14その他)により、命令1と並行して処
理される。PDは分岐命命デコードステージ、PAは分
岐先アドレス計算ステージ、PLは分岐先命令読出しス
テージである。パイプライン中では、命令2がスキップ
され、命令3が命令1に続いて処理される。すなわち、
分岐命令のパイプライン処理時間はlto”であり、特
に。
Branch instruction 2 does not enter the pipeline and is processed in parallel with instruction 1 by a dedicated logic unit (address calculator B14 and others). PD is a branch instruction decoding stage, PA is a branch destination address calculation stage, and PL is a branch destination instruction reading stage. In the pipeline, instruction 2 is skipped and instruction 3 is processed following instruction 1. That is,
The pipeline processing time for branch instructions is lto'', especially.

分岐が実行されない場合、BC命令の実行時間は見掛は
上((0”になる。
If the branch is not executed, the execution time of the BC instruction appears to be higher ((0").

第5図は、分岐命令の更に早期の先取りを行なう先行制
御に適用された本発明の実施例を示す。
FIG. 5 shows an embodiment of the present invention applied to advance control that preempts a branch instruction even earlier.

図には命°令取出し機構の部分のみが示されており、そ
の余の部分は第1図と同様である。命令切出しシフタB
3に、命令先取りのための命令バッファポインタB (
IBOPB)17と加算器B18が付加される。加算器
818は、命令バッファポインタB17の内容と命令レ
ジスタB5内の命令長ビットI12を加算して、その結
果を命令バッファポインタB17に戻し、それにより、
先取りすべき命令の先頭位置を更新する。このような命
令先取り機構自体は周知である。フラグレジ?り19は
、命令バッファ1の各バイト位置に対応するビット位置
を持つ。BC命令検出回路9がBC命令を検出すると、
このBC命令の命令バッファ内位置(命令バッファポイ
ンタBの内容により示される)に対応するフラグレジス
タ19のビット位置にIt I IIがセットされる。
The figure only shows the instruction fetching mechanism, and the remaining parts are the same as in FIG. Command extraction shifter B
3, instruction buffer pointer B (
IBOPB) 17 and adder B18 are added. Adder 818 adds the contents of instruction buffer pointer B17 and instruction length bit I12 in instruction register B5 and returns the result to instruction buffer pointer B17, thereby
Update the start position of the instruction to be prefetched. Such an instruction prefetch mechanism itself is well known. Flag register? The bit position 19 corresponds to each byte position of the instruction buffer 1. When the BC instruction detection circuit 9 detects a BC instruction,
It I II is set in the bit position of the flag register 19 corresponding to the position in the instruction buffer of this BC instruction (indicated by the contents of the instruction buffer pointer B).

命令レジスタA4のための加算器A7の第3人力を供給
するセレクタ8は、第1図における命令バッファB5か
らの命令長ビットQ2の代りに、BC命令の長さとして
予め定められた値it Quを受ける。命令切出しシフ
タA2が1命令を取出す度に、その命令の次の命令の位
置(命令バッファポインタA6の内容と命令長Q1の和
により示される)に対応するフラグレジスタ19のビッ
トが読出されて、セレクタ8にその制御信号として与え
られる。セレクタ8は、このビットが# Ojlならば
入力″0”を選択し、tl 171ならば入力at Q
 nを選択すg。したがって、第1図におけるのと同様
に、BC命令はスキップされて、その次の命令が命令レ
ジスタA4に取出される。
The selector 8 supplying the third input of the adder A7 for the instruction register A4 sets the predetermined value it Qu as the length of the BC instruction instead of the instruction length bit Q2 from the instruction buffer B5 in FIG. receive. Every time the instruction extraction shifter A2 takes out one instruction, the bit of the flag register 19 corresponding to the position of the next instruction (indicated by the sum of the contents of the instruction buffer pointer A6 and the instruction length Q1) is read out. The signal is given to the selector 8 as its control signal. Selector 8 selects input "0" if this bit is #Ojl, and selects input "0" if this bit is tl 171.
Select n.g. Therefore, as in FIG. 1, the BC instruction is skipped and the next instruction is fetched into instruction register A4.

すべての分岐命令を充分早いタイミングで先取りすれば
1分岐先命令の取出しを分岐命令の前の命令のデコード
と同時に終了させることができる。
If all branch instructions are taken in advance at a sufficiently early timing, the fetching of one branch destination instruction can be completed at the same time as the decoding of the instruction before the branch instruction.

その場合1分岐の成否の予測が正しいか又は分岐条件の
判定が充分早く終れば、分岐が実行されない場合に加え
て、分岐が実行された場合にも、BC命令の見掛けの実
行時間を′0″にすることができ、結局、全分岐命令の
見掛けの実行時間が0”になる。また、このような分岐
命令の先取り又は高度なパイプライン制御を行なうデー
タ処理装置においては、分岐命令の並行処理に必要な特
別の論理部が既に設けられているから、本発明の適用の
ために追加すべきハードウェア量は僅かなもので足りる
In that case, if the prediction of success/failure of one branch is correct or the judgment of the branch condition is completed early enough, the apparent execution time of the BC instruction will be '0' even if the branch is executed as well as if the branch is not executed. '', and as a result, the apparent execution time of all branch instructions becomes 0''. Furthermore, in a data processing device that performs such prefetching of branch instructions or advanced pipeline control, a special logic unit necessary for parallel processing of branch instructions is already provided. Only a small amount of additional hardware is required.

〔発明の効果〕〔Effect of the invention〕

実測の結果によれば、大半のプログラムにおいて、BC
命令の出現頻度は13〜20%であり、分岐命令全体の
それは20〜30%である。したがって、BC命令の約
半分について分岐判定の予測に成功すれば、全命令が1
サイクルで処理される理想的なパイプライン制御データ
処理装置に本発明を適用した場合に、プログラム実行時
間は約10%短縮される。特に、理想的な分岐命令先取
りが行なわれ、かつ、分岐の成否の予測がすべて正しけ
れば1本発明によって、全分岐命令の処理時間が10′
″になり、プログラム実行時間は20〜30%短縮され
る。
According to the results of actual measurements, in most programs, BC
The appearance frequency of instructions is 13 to 20%, and that of all branch instructions is 20 to 30%. Therefore, if branch decisions are successfully predicted for about half of the BC instructions, all instructions will be
When the present invention is applied to an ideal pipeline control data processing device that processes in cycles, the program execution time is reduced by about 10%. In particular, if ideal branch instruction prefetching is performed and all branch success/failure predictions are correct, the processing time for all branch instructions will be 10' according to the present invention.
'', and the program execution time is reduced by 20 to 30%.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明の一実施例のブロックダイヤグラム、第
2図はBC命令のフォーマットの一例を示す図、第3図
は第1図の装置の動作のタイムチャート、第4図は従来
装置の動作のタイムチャート、第5図は本発明の他の実
施例の主要部のブロックダイヤグラムである。 1・・・命令バッファ、2・・・命令切出しシフタA、
3・・・命令切出しシフタB、4・・・命令レジスタA
、5・・・命令レジスタB、6・・・命令バッファポイ
ンタ、7・・・加算器、8・・・BC命令をスキップし
て次の命令の位置を計算するためのセレクタ、9・・・
BC命令検出回路、10〜13・・・パイプライン処理
部□、14〜16・・・BC命令処理部。
FIG. 1 is a block diagram of an embodiment of the present invention, FIG. 2 is a diagram showing an example of the format of a BC command, FIG. 3 is a time chart of the operation of the device shown in FIG. 1, and FIG. 4 is a diagram of the conventional device. The time chart of operation, FIG. 5, is a block diagram of the main part of another embodiment of the present invention. 1... Instruction buffer, 2... Instruction extraction shifter A,
3...Instruction extraction shifter B, 4...Instruction register A
, 5... Instruction register B, 6... Instruction buffer pointer, 7... Adder, 8... Selector for skipping the BC instruction and calculating the position of the next instruction, 9...
BC instruction detection circuit, 10-13... pipeline processing unit □, 14-16... BC instruction processing unit.

Claims (1)

【特許請求の範囲】[Claims] 1、メモリから逐次読出される命令列を一時的に保持す
る命令バッファ手段と、前記命令バッファ手段から命令
を逐次取出してパイプライン処理を起動する第1の命令
取出手段と、前記第1命令取出手段により取出される命
令よりも後位にある命令を前記命令バッファ手段から逐
次取出す第2の命令取出手段と、前記第2命令取出手段
により取出された命令が分岐命令であることを検出する
手段と、前記第2命令取出手段により取出された分岐命
令の処理の少なくとも一部を他の命令のパイプライン処
理と並行して実行する手段と、前記検出手段による分岐
命令の検出に応答してこの分岐命令の前の命令に直ちに
続けてこの分岐命令の次の命令を取出すように前記第1
命令取出手段を制御する手段とを備えた分岐命令処理装
置。
1. instruction buffer means for temporarily holding a sequence of instructions sequentially read from memory; first instruction fetch means for sequentially fetching instructions from said instruction buffer means to start pipeline processing; and said first instruction fetch means. second instruction fetching means for sequentially fetching instructions subsequent to the instruction fetched by the second instruction fetching means from the instruction buffer means; and means for detecting that the instruction fetched by the second instruction fetching means is a branch instruction. and means for executing at least a part of the processing of the branch instruction fetched by the second instruction fetching means in parallel with the pipeline processing of other instructions, in response to the detection of the branch instruction by the detection means. The first instruction immediately follows the instruction before the branch instruction and fetches the next instruction after this branch instruction.
A branch instruction processing device comprising means for controlling instruction fetching means.
JP2727587A 1987-02-10 1987-02-10 Branch instruction processor for pipeline control Pending JPS63195736A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2727587A JPS63195736A (en) 1987-02-10 1987-02-10 Branch instruction processor for pipeline control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2727587A JPS63195736A (en) 1987-02-10 1987-02-10 Branch instruction processor for pipeline control

Publications (1)

Publication Number Publication Date
JPS63195736A true JPS63195736A (en) 1988-08-12

Family

ID=12216525

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2727587A Pending JPS63195736A (en) 1987-02-10 1987-02-10 Branch instruction processor for pipeline control

Country Status (1)

Country Link
JP (1) JPS63195736A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04167026A (en) * 1990-10-30 1992-06-15 Matsushita Electric Ind Co Ltd Branching controller
US5333280A (en) * 1990-04-06 1994-07-26 Nec Corporation Parallel pipelined instruction processing system for very long instruction word

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5333280A (en) * 1990-04-06 1994-07-26 Nec Corporation Parallel pipelined instruction processing system for very long instruction word
JPH04167026A (en) * 1990-10-30 1992-06-15 Matsushita Electric Ind Co Ltd Branching controller

Similar Documents

Publication Publication Date Title
JP2746549B2 (en) Computer system and operation method thereof
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
US7278012B2 (en) Method and apparatus for efficiently accessing first and second branch history tables to predict branch instructions
US5421020A (en) Counter register implementation for speculative execution of branch on count instructions
EP0438961A2 (en) Hardware data string operation controller
JPH0863356A (en) Branch estimation device
JPH0557616B2 (en)
JP5815596B2 (en) Method and system for accelerating a procedure return sequence
EP2084602A1 (en) A system and method for using a working global history register
US5644759A (en) Apparatus and method for processing a jump instruction preceded by a skip instruction
KR920006770B1 (en) System for controlling instruction fetch controlling
US6044455A (en) Central processing unit adapted for pipeline process
JPS63195736A (en) Branch instruction processor for pipeline control
JP3335735B2 (en) Arithmetic processing unit
JPWO2012132214A1 (en) Processor and instruction processing method thereof
JP2772100B2 (en) Parallel instruction fetch mechanism
JP2591325B2 (en) Branch control device
JP3493110B2 (en) High-speed branch processing unit
JPH06131180A (en) Instruction processing system and instruction processor
JPH0773034A (en) Information processor
JP2825315B2 (en) Information processing device
JP2853458B2 (en) Instruction string switching method and arithmetic processor using the same
JPH0227429A (en) Pipeline control system
JPH0433021A (en) Branching instruction control system