JPH09274566A - Information processor - Google Patents
Information processorInfo
- Publication number
- JPH09274566A JPH09274566A JP8393096A JP8393096A JPH09274566A JP H09274566 A JPH09274566 A JP H09274566A JP 8393096 A JP8393096 A JP 8393096A JP 8393096 A JP8393096 A JP 8393096A JP H09274566 A JPH09274566 A JP H09274566A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- pipeline
- register
- selector
- 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.)
- Withdrawn
Links
Landscapes
- Advance Control (AREA)
Abstract
Description
【0001】[0001]
【発明が属する技術分野】本発明は、パイプライン方式
の情報処理装置に関し、特に、分岐命令を含む命令列を
高速に処理することを可能にした情報処理装置に関す
る。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a pipeline type information processing apparatus, and more particularly to an information processing apparatus capable of processing an instruction string including branch instructions at high speed.
【0002】[0002]
【従来の技術】図3は従来技術によるパイプライン方式
の情報処理装置の構成を示すブロック図、図4、図5は
従来技術による情報処理装置による命令列のパイプライ
ン処理を説明するタイムチャートであり、以下、これら
の図面を参照して従来技術によるの情報処理装置につい
て説明する。図3において、1は第1命令バッファレジ
スタ、2は第2命令バッファレジスタ、3はセレクタ、
4は命令レジスタ、5は分岐命令検出回路、6はオペラ
ンド用アドレス加算器、7はオペランド用アドレス修飾
装置、8はオペランド用記憶装置、9は演算実行部、1
0は分岐判定回路、11は命令列選択回路、12は命令
用アドレス加算器、13は命令用アドレス修飾装置、1
4は命令用記憶装置である。2. Description of the Related Art FIG. 3 is a block diagram showing the configuration of a conventional pipeline type information processing apparatus, and FIGS. 4 and 5 are time charts for explaining the pipeline processing of instruction sequences by the conventional information processing apparatus. Therefore, an information processing apparatus according to the related art will be described below with reference to these drawings. In FIG. 3, 1 is a first instruction buffer register, 2 is a second instruction buffer register, 3 is a selector,
4 is an instruction register, 5 is a branch instruction detection circuit, 6 is an operand address adder, 7 is an operand address modifier, 8 is an operand storage device, 9 is an operation execution unit, 1
0 is a branch determination circuit, 11 is an instruction sequence selection circuit, 12 is an instruction address adder, 13 is an instruction address modifier, and 1
Reference numeral 4 is a memory device for instructions.
【0003】従来技術による情報処理装置は、図3に示
すような機能ブロックを備えて構成されている。そし
て、各機能ブロックは、次に説明するような機能を備え
て構成されている。An information processing apparatus according to the prior art is configured with functional blocks as shown in FIG. Then, each functional block is configured to have the functions described below.
【0004】第1命令バッファレジスタ1及び第2命令
バッファレジスタ2は、命令の高速アクセスを可能とす
るために命令を保持しているレジスタであり、例えば、
一方に処理すべき命令列を保持させ、他方に分岐命令に
より読み出された分岐先命令を保持させるために使用さ
れる。各命令バッファレジスタ1、2内の命令列は、図
示しない命令切り出しアライナにより次に処理すべき命
令がセレクタ3に切り出される。The first instruction buffer register 1 and the second instruction buffer register 2 are registers that hold instructions in order to enable high-speed access of instructions.
It is used to hold the instruction sequence to be processed on one side and the branch destination instruction read by the branch instruction on the other side. The instruction sequence in each instruction buffer register 1, 2 is cut out to the selector 3 by the instruction cut-out aligner, which is not shown, to be processed next.
【0005】セレクタ3は、第1命令バッファレジスタ
1及び第2命令バッファレジスタ2から切り出された命
令のどちらかをセレクトして命令レジスタ4に供給する
機能を備える。命令レジスタ4は、セレクタ3から供給
された命令が格納されるレジスタである。命令レジスタ
4内の命令は、図示しないデコーダで解読される。The selector 3 has a function of selecting one of the instructions cut out from the first instruction buffer register 1 and the second instruction buffer register 2 and supplying it to the instruction register 4. The instruction register 4 is a register in which the instruction supplied from the selector 3 is stored. The instruction in the instruction register 4 is decoded by a decoder (not shown).
【0006】分岐命令検出回路5は、第1の機能とし
て、命令レジスタ4に格納された命令が分岐命令である
か否かを検出し、分岐命令検出信号を命令列選択回路1
1及び命令用アドレス加算器12に供給する機能を備え
る。また、分岐命令検出回路5は、第2の機能として、
命令レジスタ4に格納された命令が分岐命令であり、か
つ、条件コードが当該分岐命令のマスクフィールドによ
り指定されている状態にセットされているときに、分岐
先アドレスに分岐するという条件付分岐命令であった場
合、当該条件付分岐命令のマスクフィールドの状態を示
す情報を分岐判定回路10に供給する機能を備える。As a first function, the branch instruction detection circuit 5 detects whether the instruction stored in the instruction register 4 is a branch instruction, and outputs a branch instruction detection signal to the instruction sequence selection circuit 1
1 and the instruction address adder 12 are provided. The branch instruction detection circuit 5 has a second function,
A conditional branch instruction that branches to the branch destination address when the instruction stored in the instruction register 4 is a branch instruction and the condition code is set to the state specified by the mask field of the branch instruction. If so, the branch determination circuit 10 has a function of supplying information indicating the state of the mask field of the conditional branch instruction.
【0007】オペランド用アドレス加算器6は、命令レ
ジスタ4に格納された命令によりその演算内容が決定
し、図示しない汎用レジスタから供給される指標または
基底レジスタデータ、あるいは、命令レジスタ4の一部
等を用いてオペランドの論理アドレスの計算を行う機能
を備える。オペランド用アドレス修飾装置7は、オペラ
ンド用アドレス加算器6からの論理アドレスを物理アド
レスに変換する機能を備える。オペランド用記憶装置8
は、オペランド用アドレス修飾装置7からの物理アドレ
スにより指定されるデータを演算実行部9に供給する機
能を備える。The operand address adder 6 determines the operation content according to the instruction stored in the instruction register 4, and the index or base register data supplied from a general-purpose register (not shown) or a part of the instruction register 4 or the like. It has a function of calculating the logical address of the operand using. The operand address modifier 7 has a function of converting the logical address from the operand address adder 6 into a physical address. Operand storage device 8
Has a function of supplying the data specified by the physical address from the operand address modifier 7 to the operation executing unit 9.
【0008】演算実行部9は、オペランド用記憶装置
8、図示しない汎用レジスタから供給されるオペランド
データを用いて演算を実行する機能を備え、また、実行
した命令が条件コードを変更する命令であるならば、演
算結果から条件コードを決定し、条件コードを分岐判定
回路10に供給する機能を備える。The operation execution unit 9 has a function of executing an operation using operand data supplied from an operand storage device 8 and a general-purpose register (not shown), and the executed instruction is an instruction for changing a condition code. In that case, it has a function of determining the condition code from the operation result and supplying the condition code to the branch determination circuit 10.
【0009】分岐判定回路10は、演算実行部9から供
給される条件コードと、分岐命令検出回路5から供給さ
れるマスクフィールドの状態を示す情報とにより、分岐
するか否かを決定し、もし、分岐するのであれば分岐成
功信号を命令列選択回路11に供給する機能を備える。The branch determination circuit 10 determines whether or not to branch based on the condition code supplied from the operation execution unit 9 and the information indicating the state of the mask field supplied from the branch instruction detection circuit 5. For branching, it has a function of supplying a branch success signal to the instruction sequence selection circuit 11.
【0010】命令列選択回路11は、第1の機能とし
て、分岐命令検出回路5から供給された分岐命令検出信
号に基づいて、命令用記憶装置14から供給された命令
列を第1命令バッファレジスタ1あるいは第2命令バッ
ファレジスタ2のどちらに格納するかを選択する機能を
備える。また、命令列選択回路11は、第2の機能とし
て、分岐判定回路10から供給される分岐成功信号に基
づいて、第1命令バッファレジスタ1あるいは第2命令
バッファレジスタ2に格納されている命令のどちらを命
令レジスタ4に供給するかを選択する信号をセレクタ3
に供給する機能を有する。The instruction sequence selection circuit 11 has, as a first function, the instruction sequence supplied from the instruction storage device 14 based on the branch instruction detection signal supplied from the branch instruction detection circuit 5 as a first instruction buffer register. It is provided with a function of selecting which of the first and second instruction buffer registers 2 to store. In addition, the instruction sequence selection circuit 11 has a second function of executing the instruction stored in the first instruction buffer register 1 or the second instruction buffer register 2 based on the branch success signal supplied from the branch determination circuit 10. The selector 3 selects a signal for selecting which is supplied to the instruction register 4.
Has a function of supplying to.
【0011】命令用アドレス加算器12は、命令レジス
タ4に格納された命令が分岐命令である場合、図示しな
い汎用レジスタから供給される指標または基底レジスタ
データ、あるいは、命令レジスタ4の一部等を用いて分
岐先論理アドレスを計算する機能を備える。When the instruction stored in the instruction register 4 is a branch instruction, the instruction address adder 12 uses an index or base register data supplied from a general-purpose register (not shown) or a part of the instruction register 4. It has a function of calculating a branch destination logical address by using it.
【0012】命令用アドレス修飾装置13は、命令用ア
ドレス加算器12からの論理アドレスを物理アドレスに
変換し、命令用記憶装置14は、命令用アドレス修飾装
置13からの物理アドレスにより指定される命令列を、
第1命令バッファレジスタ1と第2命令バッファレジス
タ2とに供給する機能を備える。The instruction address modifier 13 converts the logical address from the instruction address adder 12 into a physical address, and the instruction storage device 14 specifies the instruction specified by the physical address from the instruction address modifier 13. Columns
It has a function of supplying the first instruction buffer register 1 and the second instruction buffer register 2.
【0013】前述したような機能を有する機能ブロック
により構成される情報処理装置は、一般に、分岐命令検
出回路5によって前述した条件付分岐命令が検出され、
当該条件付分岐命令の分岐判定を決定する基になる条件
コードが決定しておらず、分岐が生じるか否かが決定し
ていない場合、第1命令バッファレジスタ1、または、
第2命令バッファレジスタ2に分岐先命令を読出す処理
を実行するのと同時に、当該条件付分岐命令の次の命令
のパイプライン処理を先行して実行する。In an information processing apparatus composed of functional blocks having the above-described functions, the branch instruction detection circuit 5 generally detects the conditional branch instruction described above,
If the condition code that is the basis for determining the branch determination of the conditional branch instruction has not been determined, and whether a branch will occur is not determined, the first instruction buffer register 1, or
At the same time that the processing of reading the branch destination instruction to the second instruction buffer register 2 is executed, the pipeline processing of the instruction next to the conditional branch instruction is executed in advance.
【0014】そして、この情報処理装置は、条件コード
が決定して分岐が生じるか否かが決定し、もし、分岐が
生じるのであれば、第1命令バッファレジスタ1、また
は、第2命令バッファレジスタ2から命令レジスタ4に
分岐先命令を切り出してパイプライン処理を実行する。
また、分岐が生じないのであれば、予め先行して実行し
ていた、当該条件付分岐命令の次の命令のパイプライン
処理をそのまま続行する。Then, the information processing apparatus determines whether or not a branch occurs by determining the condition code, and if the branch occurs, the first instruction buffer register 1 or the second instruction buffer register. A branch destination instruction is cut out from 2 to the instruction register 4 and pipeline processing is executed.
If no branch occurs, the pipeline processing of the instruction next to the conditional branch instruction, which was previously executed, is continued as it is.
【0015】前述のような処理を実行することにより、
前記情報処理装置は、条件コードの決定が長びいた上分
岐が生じない場合でも、当該条件付分岐命令の次の命令
を、通常よりも速く実行することができる。By executing the processing as described above,
The information processing apparatus can execute the instruction next to the conditional branch instruction faster than usual even when the condition code has been determined for a long time and an upper branch does not occur.
【0016】この機能は、通常、分岐判定未決定時の先
行処理と呼ばれる。そして、この機能は、分岐判定未決
定時に当該条件付分岐命令の次の命令のパイプライン処
理を先行して実行するのではなく、分岐先命令のパイプ
ライン処理を先行して実行することにより、条件コード
の決定が長びいた上分岐が生じる場合に、分岐先命令を
通常よりも速く実行することも可能である。This function is usually called a preceding process when the branch decision is undecided. Then, this function does not execute the pipeline processing of the instruction next to the conditional branch instruction in advance when the branch determination is undecided, but by executing the pipeline processing of the branch destination instruction in advance. It is also possible to execute the branch target instruction faster than usual when an upper branch occurs in which the determination of the condition code is long.
【0017】次に、図4と図5とを参照して、前述のよ
うに構成される従来技術による情報処理装置が、前述し
た条件付分岐命令を処理する場合の処理動作を説明す
る。図4、図5において、上部の横軸は、パイプライン
の実行サイクルを示し、また、D、Di、A、Ai、
T、Ti、B、Bi、Eは、パイプラインステージを表
し、それぞれ、次のような処理を行う。Next, with reference to FIG. 4 and FIG. 5, the processing operation when the above-described conventional information processing apparatus processes the conditional branch instruction will be described. In FIGS. 4 and 5, the upper horizontal axis indicates the pipeline execution cycle, and D, Di, A, Ai,
T, Ti, B, Bi, and E represent pipeline stages, and perform the following processes, respectively.
【0018】Dステージは、命令レジスタ4に格納され
た命令を解読して、Aステージで行うオペランドアドレ
ス生成用の図示しない汎用レジスタを参照する処理を行
う。Diステージは、命令レジスタ4に格納された命令
が分岐命令の場合、Aiステージで行う分岐先命令アド
レス生成用の図示しない汎用レジスタを参照する処理を
行う。The D stage decodes the instruction stored in the instruction register 4 and refers to a general register (not shown) for operand address generation which is performed in the A stage. When the instruction stored in the instruction register 4 is a branch instruction, the Di stage performs a process of referring to a general register (not shown) for generating a branch destination instruction address, which is performed in the Ai stage.
【0019】Aステージは、Dステージで参照した図示
しない汎用レジスタの内容、命令レジスタ4の一部を用
いて、オペランド用アドレス加算器6によりオペランド
の論理アドレスを求める処理を行う。Aiステージは、
命令レジスタ4に格納された命令が分岐命令の場合、D
iステージで参照した図示しない汎用レジスタの内容、
命令レジスタ4の一部を用いて、命令用アドレス加算器
12により分岐先命令の論理アドレスを求める処理を行
う。In the A stage, the contents of a general register (not shown) referred to in the D stage and a part of the instruction register 4 are used to perform a process for obtaining the logical address of the operand by the operand address adder 6. The Ai stage is
If the instruction stored in the instruction register 4 is a branch instruction, D
Contents of a general-purpose register (not shown) referred to in the i stage,
Using a part of the instruction register 4, the instruction address adder 12 performs processing for obtaining the logical address of the branch destination instruction.
【0020】Tステージは、Aステージにおいて、オペ
ランド用アドレス加算器6で求めたオペランドの論理ア
ドレスを、オペランド用アドレス修飾装置7によって物
理アドレスに変換する処理を行う。Tiステージは、命
令レジスタ4に格納された命令が分岐命令の場合、Ai
ステージにおいて、命令用アドレス加算器12で求めた
分岐先命令の論理アドレスを、命令用アドレス修飾装置
13によって物理アドレスに変換する処理を行う。In the T stage, the logical address of the operand obtained by the operand address adder 6 in the A stage is converted into a physical address by the operand address modifier 7. If the instruction stored in the instruction register 4 is a branch instruction, the Ti stage receives Ai
At the stage, the instruction address modifier 13 converts the logical address of the branch destination instruction obtained by the instruction address adder 12 into a physical address.
【0021】Bステージは、Tステージにおいてオペラ
ンド用アドレス修飾装置7で求められたオペランドの物
理アドレスにより、オペランド用記憶装置8を参照し、
オペランドデータを演算実行部9に転送し、また、図示
しない汎用レジスタに格納されたデータをオペランドデ
ータとして使用する命令の場合、図示しない汎用レジス
タの内容を演算実行部9に転送する処理を行う。Biス
テージは、命令レジスタ4に格納された命令が分岐命令
の場合、Tiステージにおいて命令用アドレス修飾装置
13で求められた分岐先命令の物理アドレスにより、命
令用記憶装置14を参照し、分岐先命令列を第1命令バ
ッファレジスタ1、または、第2命令バッファレジスタ
2に転送する。そして、分岐命令の分岐判定が決定し、
分岐が成立している場合、または、前述した分岐判定未
決定時の先行処理により、分岐先命令のパイプライン処
理を先行して実行する場合、分岐先命令を命令レジスタ
4に格納する処理を行う。すなわち、前述の場合、分岐
先命令がパイプラインに投入されDステージが開始され
るのは、この分岐先命令のBiステージの次のサイクル
となる。The B stage refers to the operand storage device 8 by the physical address of the operand obtained by the operand address modification device 7 in the T stage,
In the case of an instruction that transfers the operand data to the operation executing unit 9 and uses the data stored in the general-purpose register (not shown) as the operand data, the content of the general-purpose register (not shown) is transferred to the operation executing unit 9. If the instruction stored in the instruction register 4 is a branch instruction, the Bi stage refers to the instruction storage device 14 by the physical address of the branch destination instruction obtained by the instruction address modifier 13 in the Ti stage, and branches to the branch destination. The instruction sequence is transferred to the first instruction buffer register 1 or the second instruction buffer register 2. Then, the branch judgment of the branch instruction is determined,
When the branch is taken or when the pipeline processing of the branch destination instruction is executed in advance by the preceding processing when the branch determination is not determined, the processing of storing the branch destination instruction in the instruction register 4 is performed. . That is, in the above case, the branch destination instruction is input to the pipeline and the D stage is started in the cycle next to the Bi stage of the branch destination instruction.
【0022】Eステージは、演算実行部9により、先に
求めたオペランドデータを使用し、演算を実行する処理
を行う。その演算結果は、命令によって図示しない汎用
レジスタ、または、オペランド用記憶装置8に書き込ま
れる。そして、当該命令が条件コードを変更する命令の
場合、演算結果から条件コードを決定し、条件コードを
分岐判定回路10に供給する。すなわち、条件付分岐命
令の分岐判定を決定することができるのは、最も速い場
合でも、条件コードを変更する命令のEステージの次の
サイクルとなる。The E stage uses the operand data previously obtained by the operation executing unit 9 to execute the operation. The operation result is written to a general-purpose register (not shown) or the operand storage device 8 by an instruction. When the instruction is an instruction that changes the condition code, the condition code is determined from the operation result and the condition code is supplied to the branch determination circuit 10. That is, the branch decision of the conditional branch instruction can be determined in the next cycle of the E stage of the instruction that changes the condition code, even if it is the fastest.
【0023】前述した処理の各ステージは、使用される
論理の競合なく処理することができるので、これを利用
した各ステージをオーバラップさせて処理を実行するこ
とができる。Since each stage of the above-mentioned processing can be processed without competition of the logic used, the processing can be executed by overlapping each stage utilizing this.
【0024】次に、従来技術による情報処理装置におけ
る分岐判定未決定時の先行処理について説明する。Next, a description will be given of the preceding processing when the branch determination is undecided in the information processing apparatus according to the prior art.
【0025】図4に示すタイムチャートは、A命令、命
令0、BC命令、命令1、命令2、命令3が連続してい
て、BC命令が命令Zに分岐する場合で、かつ、分岐判
定未決定時には当該条件付分岐命令の次の命令のパイプ
ライン処理を先行して実行する場合のパイプラインの処
理を説明するものである。そして、図4において、A命
令は、条件コードを変更する命令であり、BC命令は、
条件コードがマスクフィールドにより指定されている状
態にセットされているときに、分岐先アドレスに分岐す
るという条件付分岐命令であり、命令0、命令1、命令
2、命令3、命令Zは、条件コードを変更せず、かつ、
分岐命令以外の命令であるとする。The time chart shown in FIG. 4 shows a case where the A instruction, the instruction 0, the BC instruction, the instruction 1, the instruction 2, and the instruction 3 are consecutive, the BC instruction branches to the instruction Z, and the branch determination is not made. The pipeline processing when the pipeline processing of the instruction next to the conditional branch instruction is executed prior to the determination will be described. In FIG. 4, the A instruction is an instruction for changing the condition code, and the BC instruction is
It is a conditional branch instruction that branches to the branch destination address when the condition code is set in the state specified by the mask field. Instruction 0, instruction 1, instruction 2, instruction 3, and instruction Z are conditional Without changing the code, and
It is assumed that the instruction is not a branch instruction.
【0026】図3に示す情報処理装置において、命令用
記憶装置14から、A命令、命令0、BC命令、命令
1、命令2、命令3が第1命令バッファレジスタ1に読
み出されると、命令列選択回路11は、第1命令バッフ
ァレジスタ1をセレクトして、A命令からこれに続く命
令を命令レジスタ4に順次切り出して、パイプラインに
投入する。この結果、図4に示すように、第1サイクル
から第6サイクルまで、A命令、命令0、BC命令、命
令1、命令2、命令3のDステージの処理が順次開始さ
れることになる。In the information processing apparatus shown in FIG. 3, when the A instruction, the instruction 0, the BC instruction, the instruction 1, the instruction 2, and the instruction 3 are read from the instruction storage device 14 into the first instruction buffer register 1, the instruction string. The selection circuit 11 selects the first instruction buffer register 1, sequentially cuts out the instructions following the A instruction to the instruction register 4, and inputs them into the pipeline. As a result, as shown in FIG. 4, from the first cycle to the sixth cycle, the D stage processing of the A instruction, the instruction 0, the BC instruction, the instruction 1, the instruction 2, and the instruction 3 is sequentially started.
【0027】そして、BC命令が分岐命令検出回路5に
より検出されると、分岐先命令を読出す処理が開始さ
れ、分岐先の命令Zが読み出されると、この命令Zは、
命令列選択回路11により、第2命令バッファレジスタ
2に格納される。すなわち、図4の第3サイクルで、分
岐先命令である命令Zのアドレス生成用の図示しない汎
用レジスタを参照するDiステージの処理が開始され、
以下、前述したようなAi、Ti、Biの各ステージの
処理が行われる。これらの処理の終了後、第7サイクル
で命令ZのDステージの処理が開始される。When the BC instruction is detected by the branch instruction detection circuit 5, the process of reading the branch destination instruction is started. When the branch destination instruction Z is read, the instruction Z is
It is stored in the second instruction buffer register 2 by the instruction sequence selection circuit 11. That is, in the third cycle of FIG. 4, the processing of the Di stage that refers to the general-purpose register (not shown) for generating the address of the instruction Z that is the branch destination instruction is started,
Hereinafter, the processing of each stage of Ai, Ti, and Bi as described above is performed. After the completion of these processes, the D stage process of the instruction Z is started in the seventh cycle.
【0028】演算実行部9によりA命令の演算が終了す
ると、条件コードが決定され、第5サイクルで分岐判定
回路10に決定された条件コードが供給される。また、
分岐命令検出回路5より、BC命令のマスクフィールド
の状態を示す情報が、第3サイクルで分岐判定回路10
に供給される。この2つの情報により、BC命令の分岐
判定が決定され、第6サイクルで命令列選択回路11に
分岐成功信号が供給される。命令列選択回路11は、分
岐成功信号が供給されると、セレクタ3に第2命令バッ
ファレジスタ2をセレクトさせる。そのため、次の第7
サイクルで第2命令バッファレジスタ2より、命令Zが
命令レジスタ4に供給され、パイプラインに投入され
る。このとき、同時に、命令1、命令2、命令3のパイ
プライン処理はキャンセルされる。When the operation execution unit 9 completes the operation of the A instruction, the condition code is determined, and the determined condition code is supplied to the branch determination circuit 10 in the fifth cycle. Also,
Information indicating the state of the mask field of the BC instruction is output from the branch instruction detection circuit 5 in the branch determination circuit 10 in the third cycle.
Is supplied to. The branch determination of the BC instruction is determined based on these two pieces of information, and the branch success signal is supplied to the instruction sequence selection circuit 11 in the sixth cycle. When the branch success signal is supplied, the instruction sequence selection circuit 11 causes the selector 3 to select the second instruction buffer register 2. Therefore, the next 7th
In the cycle, the instruction Z is supplied from the second instruction buffer register 2 to the instruction register 4 and input to the pipeline. At this time, at the same time, the pipeline processing of instruction 1, instruction 2, and instruction 3 is canceled.
【0029】すなわち、図4に示す処理の場合、第5サ
イクルで条件コードが決定され、第6サイクルでBC命
令の分岐判定が決定し、第7サイクルで命令ZのDステ
ージの処理が開始され、同時に、命令1、命令2、命令
3のパイプライン処理が中止されることになる。That is, in the case of the processing shown in FIG. 4, the condition code is determined in the fifth cycle, the branch decision of the BC instruction is determined in the sixth cycle, and the processing of the D stage of the instruction Z is started in the seventh cycle. At the same time, the pipeline processing of instruction 1, instruction 2, and instruction 3 is stopped.
【0030】図5に示すタイムチャートは、A命令、B
C命令、命令0、命令1、命令2、命令3が連続してい
て、BC命令が命令Zに分岐する場合で、かつ、分岐判
定未決定時には当該条件付分岐命令の次の命令のパイプ
ライン処理を先行して実行する場合のパイプラインの処
理を説明するものである。この図5における各命令の意
味は、前述した図4に示す命令と同一ある。The time chart shown in FIG. 5 shows the A instruction and the B instruction.
When the C instruction, the instruction 0, the instruction 1, the instruction 2, and the instruction 3 are consecutive and the BC instruction branches to the instruction Z, and when the branch determination is undecided, the pipeline of the instruction next to the conditional branch instruction. The processing of the pipeline when the processing is executed in advance is described. The meaning of each instruction in FIG. 5 is the same as the above-mentioned instruction shown in FIG.
【0031】図3の情報処理装置において、命令用記憶
装置14から、A命令、BC命令、命令0、命令1、命
令2、命令3が第1命令バッファレジスタ1に読み出さ
れると、命令列選択回路11は、セレクタ3により、第
1命令バッファレジスタ1をセレクトして、A命令から
これに続く命令を命令レジスタ4に順次切り出して、パ
イプラインに投入する。この結果、図4の場合と同様
に、図5に示すように、第1サイクルから第6サイクル
まで、A命令、BC命令、命令0、命令1、命令2、命
令3のDステージの処理が順次開始される。In the information processing apparatus of FIG. 3, when an A instruction, a BC instruction, an instruction 0, an instruction 1, an instruction 2, and an instruction 3 are read from the instruction storage device 14 into the first instruction buffer register 1, an instruction string is selected. The circuit 11 selects the first instruction buffer register 1 by the selector 3, sequentially cuts out the instruction following the A instruction to the instruction register 4, and inputs the instruction into the pipeline. As a result, as in the case of FIG. 4, as shown in FIG. 5, from the first cycle to the sixth cycle, the processing of the D stage of the A instruction, BC instruction, instruction 0, instruction 1, instruction 2, and instruction 3 is performed. It will be started sequentially.
【0032】そして、BC命令が分岐命令検出回路5に
より検出されると、分岐先命令を読出す処理が開始さ
れ、分岐先の命令Zが読み出されると、この命令Zは、
命令列選択回路11により、第2命令バッファレジスタ
2に格納される。すなわち、図5の第2サイクルで、分
岐先命令である命令Zのアドレス生成用の図示しない汎
用レジスタを参照するDiステージの処理が開始され、
以下、前述したようなAi、Ti、Biの各ステージの
処理が行われる。しかし、第5サイクルでA命令の演算
が終了して条件コードが決定し、第6サイクルで分岐判
定が決定するため、命令ZのDステージの処理を開始す
ることができるのは、第7サイクルとなる。また、同時
に、命令0、命令1、命令2、命令3のパイプライン処
理が中止されるのも第7サイクルとなる。When the BC instruction is detected by the branch instruction detection circuit 5, the process of reading the branch destination instruction is started. When the branch destination instruction Z is read, the instruction Z is
It is stored in the second instruction buffer register 2 by the instruction sequence selection circuit 11. That is, in the second cycle of FIG. 5, the processing of the Di stage that refers to the general-purpose register (not shown) for generating the address of the instruction Z that is the branch destination instruction is started,
Hereinafter, the processing of each stage of Ai, Ti, and Bi as described above is performed. However, since the operation of the A instruction is completed in the fifth cycle and the condition code is determined, and the branch determination is determined in the sixth cycle, the processing of the D stage of the instruction Z can be started in the seventh cycle. Becomes At the same time, the pipeline processing of instruction 0, instruction 1, instruction 2, and instruction 3 is stopped in the seventh cycle.
【0033】図4と図5とを比較すると、図5の命令Z
のパイプラインへの投入(命令ZのDステージ開始)が
図4の場合より実効的に1サイクル遅いことがわかる。
これは、分岐判定が決定し、次のサイクルで命令Zがパ
イプラインに投入されるが、図5に示す例の場合、BC
命令の分岐判定の決定が1サイクル遅いため、命令Zの
パイプライン投入も1サイクル遅くなっている。また、
この例では、たとえ、BC命令の分岐判定の決定が1サ
イクル前であっても、Dステージの処理を2つ同時に行
うことができないので、命令Zのパイプライン投入は、
やはり1サイクル遅くなってしまう。Comparing FIG. 4 and FIG. 5, the instruction Z in FIG.
It is understood that the input to the pipeline (start of the D stage of the instruction Z) is effectively one cycle later than the case of FIG.
This is because the branch decision is decided and the instruction Z is input to the pipeline in the next cycle. In the case of the example shown in FIG.
Since the instruction branch determination is delayed by one cycle, the pipeline injection of the instruction Z is delayed by one cycle. Also,
In this example, even if the decision on the branch decision of the BC instruction is made one cycle before, the processing of two D stages cannot be performed at the same time.
After all it will be delayed by one cycle.
【0034】このように、従来の情報処理装置は、分岐
判定が決定した後に、分岐先命令をパイプラインに投入
するように制御していた。As described above, the conventional information processing apparatus controls so that the branch destination instruction is input to the pipeline after the branch determination is determined.
【0035】[0035]
【発明が解決しようとする課題】前述したように、従来
技術による情報処理装置は、分岐判定が決定した後に、
分岐先命令をパイプラインに投入するように制御してい
たため、分岐判定が遅れた場合には、必然的に、分岐先
命令がパイプラインに投入されるのも遅くなるという問
題点を有している。As described above, in the information processing apparatus according to the prior art, after the branch decision is determined,
Since the control is made so that the branch target instruction is input to the pipeline, if the branch determination is delayed, the branch target instruction will inevitably be input to the pipeline too late. There is.
【0036】本発明の目的は、前述した従来技術の問題
点を解決し、分岐判定が決定する前に分岐先命令をパイ
プラインに投入し、当該分岐命令の次命令からのパイプ
ライン処理と、分岐先命令のパイプライン処理を同時に
実行することを可能とし、分岐命令を含む命令列のパイ
プラインの処理速度を向上させることのできる情報処理
装置を提供することにある。An object of the present invention is to solve the above-mentioned problems of the prior art, to insert a branch target instruction into the pipeline before the branch judgment is determined, and to execute pipeline processing from the instruction next to the branch instruction. An object of the present invention is to provide an information processing apparatus that enables pipeline processing of branch target instructions to be executed at the same time and can improve the processing speed of a pipeline of an instruction sequence including branch instructions.
【0037】[0037]
【課題を解決するための手段】本発明によれば前記目的
は、メモリから逐次読出される命令列を一時的に保持す
る命令バッファ手段を備え、該命令バッファ手段に保持
された命令を順次読み出して、各命令に対するデコー
ド、オペランド読み出し、及び、実行の各ステージの処
理をオーバラップして行うパイプライン処理方式の情報
処理装置において、分岐命令がパイプラインに投入され
たとき、この分岐命令の次の命令からのパイプライン処
理と、前記分岐命令により決定される分岐先命令のパイ
プライン処理とを同時に実行することにより達成され
る。According to the present invention, the object is to provide an instruction buffer means for temporarily holding an instruction sequence sequentially read from a memory, and to sequentially read the instructions held in the instruction buffer means. In a pipeline processing type information processing apparatus that performs processing of each stage of decoding, operand reading, and execution for each instruction, when a branch instruction is input to the pipeline, This is achieved by simultaneously executing the pipeline processing from the instruction and the pipeline processing of the branch destination instruction determined by the branch instruction.
【0038】また、前記目的は、前記情報処理装置を、
前記命令バッファ手段としての複数の命令バッファレジ
スタと、該複数の命令バッファレジスタに対応するデコ
ーダを含む複数の命令レジスタと、該命令レジスタに対
応する複数の分岐命令検出回路と、前記複数の命令レジ
スタの1つからの命令を選択するセレクタと、前記複数
の分岐命令検出回路の1つからの条件付分岐命令のマス
クフィールド状態情報を選択するセレクタと、前記複数
の分岐命令検出回路の1つからの分岐命令を選択するセ
レクタとを備えて構成することにより達成される。[0038] Further, the object is to provide the information processing device
A plurality of instruction buffer registers as the instruction buffer means, a plurality of instruction registers including a decoder corresponding to the plurality of instruction buffer registers, a plurality of branch instruction detection circuits corresponding to the instruction registers, and the plurality of instruction registers A selector for selecting an instruction from one of the branch instruction detection circuits, a selector for selecting mask field state information of a conditional branch instruction from one of the plurality of branch instruction detection circuits, and one of the plurality of branch instruction detection circuits. And a selector for selecting a branch instruction of the above.
【0039】本発明は、前述したように、分岐命令がパ
イプラインに投入されたとき、当該分岐命令の次命令か
らのパイプライン処理と、分岐先命令のパイプライン処
理とを同時に実行する手段を設けることにより、分岐判
定の決定が遅い場合にも、その分岐命令の分岐判定が決
定したとき、実行するべき命令を、当該分岐命令の次命
令からのパイプライン処理と、分岐先命令のパイプライ
ン処理の途中で選択することができる。このため、本発
明は、分岐命令を含む命令列の処理時間を短縮すること
ができる。As described above, the present invention provides a means for simultaneously executing the pipeline processing from the instruction next to the branch instruction and the pipeline processing of the branch destination instruction when the branch instruction is input to the pipeline. By providing the instruction to be executed, even if the branch determination is slow, when the branch determination of the branch instruction is determined, the instruction to be executed is pipelined from the instruction next to the branch instruction and the pipeline of the branch destination instruction. It can be selected during the process. Therefore, the present invention can reduce the processing time of an instruction sequence including a branch instruction.
【0040】[0040]
【発明の実施の形態】以下、本発明による情報処理装置
の一実施形態を図面により詳細に説明する。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS One embodiment of an information processing apparatus according to the present invention will be described below in detail with reference to the drawings.
【0041】図1は本発明の一実施形態によるパイプラ
イン方式の情報処理装置の構成を示すブロック図、図2
は本発明の一実施形態による情報処理装置による命令列
のパイプライン処理を説明するタイムチャートである。
図1において、15は第1命令レジスタ、16は第2命
令レジスタ、17は第1セレクタ、18は第1分岐命令
検出回路、19は第2分岐命令検出回路、20は第2セ
レクタ、21は第3セレクタであり、他の符号は図3の
場合と同一である。FIG. 1 is a block diagram showing the configuration of a pipeline type information processing apparatus according to an embodiment of the present invention, FIG.
FIG. 4 is a time chart illustrating pipeline processing of an instruction sequence by the information processing device according to the embodiment of the present invention.
In FIG. 1, 15 is a first instruction register, 16 is a second instruction register, 17 is a first selector, 18 is a first branch instruction detection circuit, 19 is a second branch instruction detection circuit, 20 is a second selector, and 21 is It is a third selector, and the other symbols are the same as those in FIG.
【0042】図1に示す本発明の一実施形態による情報
処理装置は、図3に示す従来技術による情報処理装置に
おける命令レジスタ4に代わり第1、第2命令レジスタ
15、16を、分岐命令検出回路5に代わり第1、第2
分岐命令検出回路18、19を備え、前述の2つの命令
レジスタ、2つの分岐命令検出回路からの情報を選択す
るための第1、第2、第3セレクタを備えて構成されて
いる。The information processing apparatus according to one embodiment of the present invention shown in FIG. 1 detects branch instructions by using first and second instruction registers 15 and 16 instead of the instruction register 4 in the information processing apparatus according to the prior art shown in FIG. First and second instead of the circuit 5
The branch instruction detection circuits 18 and 19 are provided, and the two instruction registers described above and the first, second and third selectors for selecting information from the two branch instruction detection circuits are provided.
【0043】図1において、第1命令レジスタ15は、
第1命令バッファレジスタ1から供給される命令が格納
されるレジスタである。この第1命令レジスタ15内の
命令は、図示しないデコーダで解読されて第1セレクタ
17に供給される。In FIG. 1, the first instruction register 15 is
This is a register in which the instruction supplied from the first instruction buffer register 1 is stored. The instruction in the first instruction register 15 is decoded by a decoder (not shown) and supplied to the first selector 17.
【0044】第2命令レジスタ16は、第2命令バッフ
ァレジスタ2から供給される命令が格納されるレジスタ
である。この第2命令レジスタ16内の命令は、図示し
ないデコーダで解読されて第1セレクタ17に供給され
る。The second instruction register 16 is a register in which the instruction supplied from the second instruction buffer register 2 is stored. The instruction in the second instruction register 16 is decoded by a decoder (not shown) and supplied to the first selector 17.
【0045】第1セレクタ17は、第1命令レジスタ1
5及び第2命令レジスタ16から供給される命令のどち
らか一方をセレクトして、オペランド用アドレス加算器
6と命令用アドレス加算器12に供給する機能を備え
る。The first selector 17 is connected to the first instruction register 1
5 and the instruction supplied from the second instruction register 16 are selected and supplied to the operand address adder 6 and the instruction address adder 12.
【0046】第1分岐命令検出回路18は、第1の機能
として、第1命令レジスタ15に格納された命令が、分
岐命令であるか否かを検出し、分岐命令検出信号を第3
セレクタ21に供給する機能を備え、第2の機能とし
て、第1命令レジスタ15に格納された命令が、分岐命
令であり、かつ、条件コードが当該分岐命令のマスクフ
ィールドにより指定されている状態にセットされている
とき分岐先アドレスに分岐するという条件付分岐命令で
あった場合、当該条件付分岐命令のマスクフィールドの
状態を示す情報を第2セレクタ20に供給する機能を備
える。As a first function, the first branch instruction detection circuit 18 detects whether the instruction stored in the first instruction register 15 is a branch instruction, and outputs a branch instruction detection signal to the third instruction.
The second function is provided with a function of supplying the selector 21. As a second function, the instruction stored in the first instruction register 15 is a branch instruction and the condition code is designated by the mask field of the branch instruction. If the conditional branch instruction is to branch to the branch destination address when it is set, it has a function of supplying the second selector 20 with information indicating the state of the mask field of the conditional branch instruction.
【0047】第2分岐命令検出回路19は、第1の機能
として、第2命令レジスタ16に格納された命令が、分
岐命令であるか否かを検出し、分岐命令検出信号を第3
セレクタ21に供給する機能を備え、第2の機能とし
て、第2命令レジスタ16に格納された命令が、分岐命
令であり、かつ、条件コードが当該分岐命令のマスクフ
ィールドにより指定されている状態にセットされている
とき分岐先アドレスに分岐するという条件付分岐命令で
あった場合、当該条件付分岐命令のマスクフィールドの
状態を示す情報を第2セレクタ20に供給する機能を備
える。As a first function, the second branch instruction detection circuit 19 detects whether the instruction stored in the second instruction register 16 is a branch instruction and outputs a branch instruction detection signal to the third instruction.
The second function is provided with a function of supplying the selector 21. As a second function, the instruction stored in the second instruction register 16 is a branch instruction and the condition code is designated by the mask field of the branch instruction. If the conditional branch instruction is to branch to the branch destination address when it is set, it has a function of supplying the second selector 20 with information indicating the state of the mask field of the conditional branch instruction.
【0048】第2セレクタ20は、第1分岐命令検出回
路18と第2分岐命令検出回路19とから供給される条
件付分岐命令のマスクフィールドの状態を示す情報をセ
レクトして、分岐判定回路10に供給する機能を備え
る。The second selector 20 selects the information indicating the state of the mask field of the conditional branch instruction supplied from the first branch instruction detection circuit 18 and the second branch instruction detection circuit 19 to select the branch determination circuit 10. It has a function to supply to.
【0049】第3セレクタ21は、第1分岐命令検出回
路18と第2分岐命令検出回路19とから供給される分
岐命令検出信号をセレクトして、命令列選択回路11及
び命令用アドレス加算器12に供給する機能を備える。The third selector 21 selects the branch instruction detection signal supplied from the first branch instruction detection circuit 18 and the second branch instruction detection circuit 19, and the instruction sequence selection circuit 11 and the instruction address adder 12 are selected. It has a function to supply to.
【0050】前述したように構成される本発明の一実施
形態による情報処理装置は、分岐命令がパイプラインに
投入されたとき、当該分岐命令の次命令からのパイプラ
イン処理と、分岐先命令のパイプライン処理とを同時に
実行することにより、分岐判定の決定が遅い場合にも、
分岐命令の分岐判定が決定したとき、本来実行すべき命
令を、分岐命令の次命令からのパイプライン処理と、分
岐先命令のパイプライン処理の途中で選択することがで
きるようにしたものであって、以下に、その方法につい
て説明する。In the information processing apparatus according to the embodiment of the present invention configured as described above, when a branch instruction is input to the pipeline, the pipeline processing from the instruction next to the branch instruction and the branch destination instruction are executed. By executing pipeline processing at the same time, even if the decision of branch decision is slow,
When the branch judgment of a branch instruction is decided, the instruction to be originally executed can be selected during the pipeline processing from the instruction next to the branch instruction and the pipeline processing of the branch destination instruction. The method will be described below.
【0051】本発明の一実施形態による情報処理装置
は、命令レジスタ(図示しないデコーダを含む)と分岐
命令検出回路とをそれぞれ2つ設けることにより、パイ
プラインのDステージの処理を2つ同時に実行すること
ができる。そして、Dステージの処理によって得られた
値を選択することにより、選択後、どちらか一方の命令
のパイプラインのAステージから実行することができ
る。The information processing apparatus according to one embodiment of the present invention is provided with two instruction registers (including a decoder (not shown)) and two branch instruction detection circuits, so that two processes of the D stage of the pipeline are executed simultaneously. can do. Then, by selecting the value obtained by the processing of the D stage, it is possible to execute from the A stage of the pipeline of either one of the instructions after the selection.
【0052】すなわち、本発明の一実施形態による情報
処理装置は、第1命令レジスタ15と第2命令レジスタ
16、第1分岐命令検出回路18と第2分岐命令検出回
路19により、パイプラインのDステージの処理を2つ
同時に実行し、第1セレクタ17に、オペランド用アド
レス加算器6と命令用アドレス加算器12とに供給する
命令をセレクトさせ、第2セレクタ20に、分岐判定回
路10に供給する、当該条件付分岐命令のマスクフィー
ルドの状態を示す情報をセレクトさせ、第3セレクタ2
1に、命令列選択回路11及び命令用アドレス加算器1
2に供給する分岐命令検出信号をセレクトさせている。
第1セレクタ17、第2セレクタ20、及び、第3セレ
クタ21によるセレクトを制御する信号は、命令列選択
回路11の出力11Aであり、図3により説明した命令
列選択回路11の出力11Aと同一のものである。That is, in the information processing apparatus according to the embodiment of the present invention, the first instruction register 15 and the second instruction register 16, the first branch instruction detection circuit 18 and the second branch instruction detection circuit 19 are used for pipeline D The two stages are executed simultaneously, the first selector 17 is caused to select the instruction to be supplied to the operand address adder 6 and the instruction address adder 12, and the second selector 20 is supplied to the branch determination circuit 10. The third selector 2 selects the information indicating the state of the mask field of the conditional branch instruction.
1, an instruction sequence selection circuit 11 and an instruction address adder 1
The branch instruction detection signal supplied to 2 is selected.
The signal that controls the selection by the first selector 17, the second selector 20, and the third selector 21 is the output 11A of the instruction sequence selection circuit 11, which is the same as the output 11A of the instruction sequence selection circuit 11 described with reference to FIG. belongs to.
【0053】次に、本発明の一実施形態による情報処理
装置における分岐判定未決定時の先行処理について、図
2に示すタイムチャートを参照して説明する。図2に示
す例は、図5に示す命令列と同一の命令列を同一の条件
で実行した場合のパイプラインフローを示すものであ
る。Next, the preceding process when the branch determination is undecided in the information processing apparatus according to the embodiment of the present invention will be described with reference to the time chart shown in FIG. The example shown in FIG. 2 shows a pipeline flow when the same instruction sequence as that shown in FIG. 5 is executed under the same condition.
【0054】図1に示す情報処理装置において、命令用
記憶装置14から、A命令、BC命令、命令0、命令
1、命令2、命令3が第1命令バッファレジスタ1に読
み出されると、命令列選択回路11は、第1セレクタ1
7に第1命令レジスタ15をセレクトさせ、第2セレク
タ20に第1分岐命令検出回路18をセレクトさせ、第
3セレクタ21に第1分岐命令検出回路18をセレクト
させる。第1命令バッファレジスタ1に命令用記憶装置
から読み出されて格納された命令は、A命令から順次第
1命令レジスタ15に切り出され、図示しないデコーダ
で解読されて、パイプラインに投入される。In the information processing apparatus shown in FIG. 1, when the A instruction, the BC instruction, the instruction 0, the instruction 1, the instruction 2, and the instruction 3 are read from the instruction storage device 14 into the first instruction buffer register 1, the instruction string The selection circuit 11 includes the first selector 1
7 selects the first instruction register 15, the second selector 20 selects the first branch instruction detection circuit 18, and the third selector 21 selects the first branch instruction detection circuit 18. The instructions read from the instruction storage device and stored in the first instruction buffer register 1 are sequentially cut out from the A instruction to the first instruction register 15, decoded by a decoder (not shown), and input into the pipeline.
【0055】これにより、図2に示すように、第1サイ
クルから第6サイクルまで、A命令、BC命令、命令
0、命令1、命令2、命令3のDステージの処理が順次
開始される。As a result, as shown in FIG. 2, from the first cycle to the sixth cycle, the processing of the D stage of the A instruction, the BC instruction, the instruction 0, the instruction 1, the instruction 2, and the instruction 3 is sequentially started.
【0056】そして、BC命令が第1分岐命令検出回路
18により検出されると、分岐先命令を読み出す処理が
開始される。そして、命令列選択回路11が命令Zを第
2命令バッファレジスタ2に格納する。第2命令バッフ
ァレジスタ2に命令Zが格納されると、次の第6サイク
ルで、命令Zが第2命令レジスタ16に供給され、図示
しないデコーダで解読される。また、第2分岐命令検出
回路19によって分岐命令か否かの検出が行われる。When the BC instruction is detected by the first branch instruction detection circuit 18, the process of reading the branch destination instruction is started. Then, the instruction sequence selection circuit 11 stores the instruction Z in the second instruction buffer register 2. When the instruction Z is stored in the second instruction buffer register 2, the instruction Z is supplied to the second instruction register 16 and decoded by a decoder (not shown) in the next sixth cycle. Further, the second branch instruction detection circuit 19 detects whether or not it is a branch instruction.
【0057】すなわち、図2に示す第2サイクルで、分
岐先命令である命令Zを読み出すためのDiステージの
処理が開始され、前述したと同様に、以下Ai、Ti、
Biの処理が行われ、第6サイクルで命令ZのDステー
ジの処理が行われる。そして、第5サイクルでA命令の
演算が終了して条件コードが決定し、第6サイクルで分
岐判定が決定するため、命令Zのパイプライン処理を開
始することができるのは、第7サイクルとなる。そし
て、本発明の一実施形態では、前述したように、命令Z
のDステージの処理が第6サイクルで完了しているた
め、命令Zのパイプライン処理は、第7サイクルでAス
テージから開始することができる。また、同時に、第7
サイクルで命令0、命令1、命令2、命令3のパイプラ
イン処理がキャンセルされる。That is, in the second cycle shown in FIG. 2, the processing of the Di stage for reading the instruction Z, which is the branch destination instruction, is started, and as described above, Ai, Ti,
The processing of Bi is performed, and the processing of the D stage of the instruction Z is performed in the sixth cycle. Then, the operation of the A instruction is completed in the fifth cycle, the condition code is determined, and the branch determination is determined in the sixth cycle. Therefore, the pipeline processing of the instruction Z can be started in the seventh cycle. Become. Then, in one embodiment of the present invention, as described above, the instruction Z
Since the processing of the D stage of is completed in the sixth cycle, the pipeline processing of the instruction Z can be started from the A stage in the seventh cycle. At the same time, the 7th
In the cycle, the pipeline processing of instruction 0, instruction 1, instruction 2, and instruction 3 is canceled.
【0058】従来技術による図5に示す例と、図2に示
す本発明の実施形態による例とを比較すると、分岐先命
令である命令Zの処理が、本発明の実施形態の場合、従
来技術の場合より1サイクル速く終了していることが判
る。Comparing the example shown in FIG. 5 according to the prior art with the example according to the embodiment of the present invention shown in FIG. 2, when the processing of the instruction Z which is the branch destination instruction is the embodiment of the present invention, It can be seen that one cycle is completed faster than in the case of.
【0059】前述したように、本発明の実施形態によれ
ば、分岐判定が決定する前に分岐先命令をパイプライン
に投入し、当該分岐命令の次命令からのパイプライン処
理と、分岐先命令のパイプライン処理を同時に実行し、
分岐判定が決定したとき、実行すべき命令をパイプライ
ン処理の途中で選択することができるので、分岐命令を
含む命令列のパイプラインの処理速度を向上させること
ができる。As described above, according to the embodiment of the present invention, the branch destination instruction is input to the pipeline before the branch determination is determined, and the pipeline processing from the instruction next to the branch instruction and the branch destination instruction are executed. Pipeline processing of
When the branch determination is decided, the instruction to be executed can be selected in the middle of the pipeline processing, so that the processing speed of the pipeline of the instruction sequence including the branch instruction can be improved.
【0060】前述した本発明の一実施形態は、分岐命令
がパイプラインに投入されたとき、当該分岐命令の次命
令からのパイプライン処理と、分岐先命令のパイプライ
ン処理を同時に実行する手段として、Dステージの処理
のみを同時に実行する構成としているが、本発明は、D
ステージの処理のみに限らず、A、T、B、Eの各ステ
ージの処理を同時に実行するようにすることも可能であ
る。しかし、Aステージ以降の処理も同時に実行する構
成とするためには、装置を構成する物量が非常に多くな
り、また、パイプライン処理が乱れずに進行するケース
を想定した場合、分岐判定の決定待ちにより生じるオー
バヘッド(図5の命令Zの第6サイクルを指す)が、2
サイクル以上になるケースは比較的少ない。従って、前
述で説明した本発明の実施形態のように、Dステージの
処理のみを同時に実行する構成とすることが、できる限
り少ない物量で、効率良くオーバヘッドを低減するため
の最も適した構成であるといえる。The above-described embodiment of the present invention is a means for executing the pipeline processing from the instruction next to the branch instruction and the pipeline processing of the branch destination instruction at the same time when the branch instruction is input to the pipeline. , D stage processing is executed at the same time.
Not only the processing of the stages, but the processing of each of the A, T, B, and E stages can be executed simultaneously. However, in order to have a configuration in which the processing after the A stage is also executed at the same time, the amount of material that configures the device becomes very large, and in the case where the pipeline processing proceeds without being disturbed, the branch determination is determined. The overhead caused by waiting (indicating the sixth cycle of instruction Z in FIG. 5) is 2
There are relatively few cases that exceed the cycle. Therefore, as in the above-described embodiment of the present invention, the configuration in which only the processing of the D stage is executed simultaneously is the most suitable configuration for efficiently reducing the overhead with the least amount of material. Can be said.
【0061】また、前述した本発明の実施形態は、命令
バッファレジスタ、命令レジスタ、分岐命令検出回路を
それぞれ2つ備えるとして説明したが、本発明は、これ
らをさらに多数設けて構成してもよい。この場合、パイ
プラインにより同時に処理されている命令の中に、複数
の分岐命令が含まれる場合にも、それらの分岐命令を含
む命令列の処理を高速に行うことができる。Although the above-described embodiment of the present invention has been described as including two instruction buffer registers, two instruction registers, and two branch instruction detection circuits, the present invention may be configured by providing more of these. . In this case, even when a plurality of branch instructions are included in the instructions being simultaneously processed by the pipeline, the processing of the instruction sequence including those branch instructions can be performed at high speed.
【0062】なお、特許請求の範囲に記載した本発明以
外の本発明の実施態様として、以下に記すような実施態
様がある。The embodiments of the present invention other than the present invention described in the claims include the following embodiments.
【0063】1.メモリから逐次読出される命令列を一
時的に保持する命令バッファ手段を備え、該命令バッフ
ァ手段に保持された命令を順次読み出して、各命令に対
するデコード、オペランド読み出し、及び、実行の各ス
テージの処理をオーバラップして行うパイプライン処理
方式の情報処理装置において、分岐命令がパイプライン
に投入されたとき、この分岐命令の次の命令からのパイ
プライン処理と、前記分岐命令により決定される分岐先
命令のパイプライン処理とを同時に実行し、分岐判定の
決定時に、実行するべき命令をパイプライン処理の途中
で選択することを特徴とする情報処理装置。1. An instruction buffer unit for temporarily holding an instruction string sequentially read from the memory is provided, the instructions held in the instruction buffer unit are sequentially read, and processing of each stage of decoding, operand reading, and execution for each instruction is performed. In a pipeline processing type information processing apparatus that overlaps with each other, when a branch instruction is input to the pipeline, the pipeline processing from the instruction next to this branch instruction and the branch destination determined by the branch instruction An information processing apparatus, which executes pipeline processing of instructions at the same time, and selects an instruction to be executed in the middle of pipeline processing when a branch decision is determined.
【0064】2.分岐命令の次命令からのパイプライン
処理と、分岐先命令のパイプライン処理を同時に実行し
ている際、分岐判定の決定時に、本来実行するべき命令
がパイプライン処理の途中で選択された場合、その後の
パイプライン処理を継続して実行することを特徴とする
前記1記載の情報処理装置。2. When the pipeline processing from the instruction following the branch instruction and the pipeline processing of the branch destination instruction are being executed at the same time, when the instruction to be originally executed is selected in the middle of the pipeline processing when the branch judgment is decided, 2. The information processing apparatus according to 1, wherein the subsequent pipeline processing is continuously executed.
【0065】3.分岐命令の次命令からのパイプライン
処理と、分岐先命令のパイプライン処理を同時に実行し
ている際、分岐判定の決定時に、実行することが不要と
なった命令を、パイプライン処理の途中でキャンセルす
ることを特徴とする前記1記載の情報処理装置。3. When the pipeline processing from the instruction following the branch instruction and the pipeline processing of the branch target instruction are being executed at the same time, the instruction that becomes unnecessary to be executed at the time of the decision of the branch is processed in the middle of the pipeline processing. The information processing apparatus according to the above 1, wherein the information processing apparatus cancels.
【0066】[0066]
【発明の効果】以上説明したように、本発明によれば、
分岐命令がパイプラインに投入されたとき、当該分岐命
令の次命令からのパイプライン処理と、分岐先命令のパ
イプライン処理を同時に実行する手段を設けることによ
り、分岐命令を含む命令列のパイプラインの処理速度を
向上させることができる。As described above, according to the present invention,
When a branch instruction is input to the pipeline, a pipeline of an instruction string including the branch instruction is provided by providing means for simultaneously executing the pipeline processing from the instruction next to the branch instruction and the pipeline processing of the branch destination instruction. The processing speed of can be improved.
【図1】本発明の一実施形態によるパイプライン方式の
情報処理装置の構成を示すブロック図である。FIG. 1 is a block diagram showing a configuration of a pipeline type information processing apparatus according to an embodiment of the present invention.
【図2】本発明の一実施形態による情報処理装置による
命令列のパイプライン処理を説明するタイムチャートで
ある。FIG. 2 is a time chart illustrating pipeline processing of an instruction sequence by the information processing device according to the embodiment of the present invention.
【図3】従来技術によるパイプライン方式の情報処理装
置の構成を示すブロック図である。FIG. 3 is a block diagram showing a configuration of a pipeline type information processing apparatus according to a conventional technique.
【図4】従来技術による情報処理装置による命令列のパ
イプライン処理を説明するタイムチャートである。FIG. 4 is a time chart for explaining pipeline processing of an instruction sequence by the information processing device according to the related art.
【図5】従来技術による情報処理装置による命令列のパ
イプライン処理を説明するタイムチャートである。FIG. 5 is a time chart illustrating pipeline processing of an instruction sequence by an information processing device according to the related art.
1 第1命令バッファレジスタ 2 第2命令バッファレジスタ 3 セレクタ 4 命令レジスタ 5 分岐命令検出回路 6 オペランド用アドレス加算器 7 オペランド用アドレス修飾装置 8 オペランド用記憶装置 9 演算実行部 10 分岐判定回路 11 命令列選択回路 12 命令用アドレス加算器 13 命令用アドレス修飾装置 14 命令用記憶装置 15 第1命令レジスタ 16 第2命令レジスタ 17 第1セレクタ 18 第1分岐命令検出回路 19 第2分岐命令検出回路 20 第2セレクタ 21 第3セレクタ 1 First Instruction Buffer Register 2 Second Instruction Buffer Register 3 Selector 4 Instruction Register 5 Branch Instruction Detection Circuit 6 Operand Address Adder 7 Operand Address Modifier 8 Operand Storage 9 Operation Execution Unit 10 Branch Decision Circuit 11 Instruction Sequence Selection circuit 12 Instruction address adder 13 Instruction address modifier 14 Instruction storage device 15 First instruction register 16 Second instruction register 17 First selector 18 First branch instruction detection circuit 19 Second branch instruction detection circuit 20 Second Selector 21 Third selector
───────────────────────────────────────────────────── フロントページの続き (72)発明者 井上 司 神奈川県秦野市堀山下1番地 株式会社日 立コンピュータエレクトロニクス内 (72)発明者 平岡 徹 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 中谷 明洋 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 袴田 正史 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Tsukasa Inoue 1 Horiyamashita, Hadano City, Kanagawa Pref., Inside Hitachi Computer Electronics Co., Ltd. Inside the Hitachi Microcomputer System (72) Inventor Akihiro Nakatani 5-22-1 Kamimizuhonmachi, Kodaira-shi, Tokyo Inside the Hitachi Microcomputer System (72) Inventor Masafumi Hakada 1 Horiyamashita, Hadano, Kanagawa Hitate Works General Computer Division
Claims (2)
的に保持する命令バッファ手段を備え、該命令バッファ
手段に保持された命令を順次読み出して、各命令に対す
るデコード、オペランド読み出し、及び、実行の各ステ
ージの処理をオーバラップして行うパイプライン処理方
式の情報処理装置において、分岐命令がパイプラインに
投入されたとき、この分岐命令の次の命令からのパイプ
ライン処理と、前記分岐命令により決定される分岐先命
令のパイプライン処理とを同時に実行することを特徴と
する情報処理装置。1. An instruction buffer means for temporarily holding an instruction sequence sequentially read from a memory, sequentially reading the instructions held in the instruction buffer means, and decoding, operand reading, and executing each instruction. In a pipeline processing type information processing apparatus that performs the processing of each stage of 1), when a branch instruction is input to the pipeline, the pipeline processing from the instruction next to this branch instruction and the branch instruction An information processing apparatus, which executes pipeline processing of a determined branch destination instruction at the same time.
的に保持する命令バッファ手段を備え、該命令バッファ
手段に保持された命令を順次読み出して、各命令に対す
るデコード、オペランド読み出し、及び、実行の各ステ
ージの処理をオーバラップして行うパイプライン処理方
式の情報処理装置において、前記命令バッファ手段とし
ての複数の命令バッファレジスタと、該複数の命令バッ
ファレジスタに対応するデコーダを含む複数の命令レジ
スタと、該命令レジスタに対応する複数の分岐命令検出
回路と、前記複数の命令レジスタの1つからの命令を選
択するセレクタと、前記複数の分岐命令検出回路の1つ
からの条件付分岐命令のマスクフィールド状態情報を選
択するセレクタと、前記複数の分岐命令検出回路の1つ
からの分岐命令を選択するセレクタとを備え、分岐命令
がパイプラインに投入されたとき、この分岐命令の次の
命令からのパイプライン処理と、前記分岐命令により決
定される分岐先命令のパイプライン処理とを同時に実行
することを特徴とする情報処理装置。2. An instruction buffer means for temporarily holding an instruction sequence sequentially read from a memory is provided, the instructions held in the instruction buffer means are sequentially read, and decoding, operand reading, and execution for each instruction are performed. In an information processing apparatus of a pipeline processing system that performs the processing of each stage of the above, the plurality of instruction buffer registers as the instruction buffer means and a plurality of instruction registers including a decoder corresponding to the plurality of instruction buffer registers. A plurality of branch instruction detection circuits corresponding to the instruction register, a selector for selecting an instruction from one of the plurality of instruction registers, and a conditional branch instruction from one of the plurality of branch instruction detection circuits. A selector for selecting mask field state information and a branch instruction from one of the plurality of branch instruction detection circuits are selected. When a branch instruction is input to the pipeline, the pipeline processing from the instruction next to this branch instruction and the pipeline processing of the branch destination instruction determined by the branch instruction are executed at the same time. An information processing device characterized by:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8393096A JPH09274566A (en) | 1996-04-05 | 1996-04-05 | Information processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8393096A JPH09274566A (en) | 1996-04-05 | 1996-04-05 | Information processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH09274566A true JPH09274566A (en) | 1997-10-21 |
Family
ID=13816324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8393096A Withdrawn JPH09274566A (en) | 1996-04-05 | 1996-04-05 | Information processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH09274566A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100345937B1 (en) * | 1998-06-30 | 2002-07-24 | 가부시끼가이샤 도시바 | A digital signal processor |
-
1996
- 1996-04-05 JP JP8393096A patent/JPH09274566A/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100345937B1 (en) * | 1998-06-30 | 2002-07-24 | 가부시끼가이샤 도시바 | A digital signal processor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4476525A (en) | Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously | |
JPS633337B2 (en) | ||
US4739470A (en) | Data processing system | |
US4541047A (en) | Pipelined data processing system | |
EP0297943B1 (en) | Microcode reading control system | |
US5349671A (en) | Microprocessor system generating instruction fetch addresses at high speed | |
US5390306A (en) | Pipeline processing system and microprocessor using the system | |
JPH0743648B2 (en) | Information processing equipment | |
KR920006770B1 (en) | System for controlling instruction fetch controlling | |
JPH09274566A (en) | Information processor | |
JP3082944B2 (en) | Pipeline processing equipment | |
JPH0991139A (en) | Information processor | |
JP2596639B2 (en) | Prior control method | |
JP2591325B2 (en) | Branch control device | |
JPH06131180A (en) | Instruction processing system and instruction processor | |
JP3431503B2 (en) | Information processing apparatus and program control method | |
JP3493110B2 (en) | High-speed branch processing unit | |
JPH0228723A (en) | System for executing loop instruction | |
JP3070035B2 (en) | Arithmetic processing method | |
JPH06314196A (en) | Method and device for processing information | |
JPS60163131A (en) | Information processing unit | |
JPS62103736A (en) | Branch control system | |
JPH03263222A (en) | Microprogram branch processing system | |
JPH0581015A (en) | Method and system for controlling pipe line operation | |
JPH10283182A (en) | Pipeline information processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20030701 |