JP2814683B2 - The instruction processing unit - Google Patents

The instruction processing unit

Info

Publication number
JP2814683B2
JP2814683B2 JP9810290A JP9810290A JP2814683B2 JP 2814683 B2 JP2814683 B2 JP 2814683B2 JP 9810290 A JP9810290 A JP 9810290A JP 9810290 A JP9810290 A JP 9810290A JP 2814683 B2 JP2814683 B2 JP 2814683B2
Authority
JP
Grant status
Grant
Patent type
Prior art keywords
means
instruction
register
flag
branch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP9810290A
Other languages
Japanese (ja)
Other versions
JPH03218524A (en )
Inventor
敏一 丸島
Original Assignee
日本電気株式会社
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
Grant date

Links

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、分岐予測先の命令の実行結果を使用してさらにその先の命令の処理を行う命令処理装置に関するものである。 DETAILED DESCRIPTION OF THE INVENTION (INDUSTRIAL FIELD) The present invention relates to an instruction processing unit for further processing the previous instruction using the execution result of the branch prediction target instruction.

(従来の技術) 従来の命令処理装置では、分岐予測先の命令をフェッチ、デコードするもの(例えば、IBM360/91命令処理装置:DWAndreson,FJSparacio,FMTomasulo:“The IB The (prior art) conventional instruction processing unit, fetching the predicted branch target instruction, which decodes (e.g., IBM 360/91 instruction processor: DWAndreson, FJSparacio, FMTomasulo: "The IB
M System/360 Model 91:Machine Philosophy and Instr M System / 360 Model 91: Machine Philosophy and Instr
uction Handling",IBM Hounal of Research & Develop uction Handling ", IBM Hounal of Research & Develop
ment,pp.8−24,No.1,Mol.1,Jan.1967.)や分岐先が確定していなくてもオペランドが揃った命令は実行するがその実行結果は他の命令のソースオペランドにはならないもの(例えば、「新風」命令処理装置:久我、村上、富田:“「新風」プロセッサの高速化メカニズム”、情報処理学会第37回全国大会講演論文集、4N−2,1988.)がある。これらの命令処理装置は、第16図に示すように、 ment, pp.8-24, No.1, Mol.1, Jan.1967.) and although the branch target instruction also operand are aligned not been determined to perform source operand of the execution result is other instructions It shall not be in (for example, "fresh air" instruction processing unit: Kuga, Murakami, Tomita: "faster mechanism of" fresh air "processor", information processing Society 37th Annual Conference Proceedings, 4N-2,1988.) there are. these instruction processing apparatus, as shown in FIG. 16,
命令記憶手段10、レジスタ書込み予約手段20、命令発行手段40′,オペランドアクセス制御手段50,命令実行手段60,分岐予測先命令実行結果格納手段70′及びレジスタ80を備えているが、後述の本願装置の分岐予測先命令実行結果格納手段からオペランド読出しをする手段を備えていない。 Instruction storage means 10, a register write reservation unit 20, the instruction issue unit 40 ', an operand access control unit 50, the instruction execution unit 60, the predicted branch target instruction execution result storage unit 70' is provided with the and register 80, the present application will be described later no means for the operands read from the predicted branch target instruction execution result storage means of the device.

(発明が解決しようとする課題) しかしながら、従来の命令処理装置では、予測した分岐先の命令実行は命令発行前の前処理のみであったり、 (0006) However, in the conventional instruction processing unit, instruction execution predicted branch destination or was only pre-treatment before instruction issue,
予測先の命令を実行してもこの実行結果を使用する命令は分岐先が確定するまでは実行されなかった。 Instruction be executed predicted target instruction to use the execution result is to the branch destination is determined not executed. このような制約を加えることは、本来実行可能な命令を待たせることになり、性能低下を及ぼすという問題点があった。 The addition of such constraints, will be to wait for the original executable instructions, there is a problem that cause performance degradation.

本発明の目的は、このような従来の問題点を除去して、分岐予測先の命令の実行結果を使用してさらにその先の命令の処理を行う命令処理装置を提供することにある。 An object of the present invention, such by removing the conventional problems, is to provide an instruction processing unit for further processing the previous instruction using the execution result of the branch prediction target instruction.

(課題を解決するための手段) 前述の問題点を解決するために本願第1の発明は; 分岐命令による分岐先の確定を待たずに分岐先アドレスを分岐予測方式において、処理すべき命令を記憶する第1の手段と、命令の実行結果を書き込むレジスタという第2の手段と、第1の手段より得られた命令が実行結果として行なうレジスタへの書込みをあらかじめ予約する第3の手段と、第3の手段により予約された命令を保持し、命令を発行する第4の手段と、第4の手段により発行された命令を実行する第5の手段と、第5の手段と第2の手段との間に配置される、予測されていながら確定していない分岐先にある命令による実行結果を一時的に保持する第6の手段と、第6の手段により保持された実行結果を第2の手段へ転送する第7の手段と First invention to solve the aforementioned problems (Means for Solving the Problems); in the branch prediction system branch destination address without waiting for the branch destination determined by the branch instruction, to be processed instruction first means for storing a second means of registers for writing the execution result of the instruction, and third means commands obtained from the first means to advance book writing to register for the execution result, It retains instructions reserved by the third means, the fourth means for issuing a command, and a fifth means for executing instructions issued by the fourth means, the fifth means and the second means is disposed between the, and the sixth means for temporarily holding the execution result by the expected been determined while they do not branch destination is an instruction, the execution result of the second held by the sixth means a seventh means for transferring to the unit 第6の手段により保持された実行結果を第4の手段がオペランドとして読み出す第8の手段と、第2の手段により保持された実行結果を第4の手段がオペランドとして読み出す第9の手段とを備え、さらに第4の手段は、分岐先未確定の分岐命令以前の命令系列保持する第10の手段と、 And eighth means for reading an execution result held as a fourth means operand by the sixth means, the execution result held by the second means the fourth means and the ninth means for reading out as an operand comprising further the fourth means comprises a tenth means for the instruction series holding previous branch destination undetermined branch instructions,
第10の手段に保持された命令と第3の手段により予約された命令を第5の手段に発行する第11の手段と、第3の手段によるレジスタ書込み予約を受取り、第11の手段が行う命令発行の履歴情報を受取り、第5の手段による分岐先確定情報を受け取ることにより、第11の手段が行うオペランドアクセスに対して、制御を加える第12の手段を備え、予測された確定前の分岐先の命令の実行結果を使用してさらにその先の命令の処理を行うことを特徴とする。 And eleventh means for issuing a command that has been reserved by instructions held in the tenth means of the third means to the fifth means receives the register write reservation by the third means, eleventh means performs receive history information instruction issue, by receiving the branch destination determining information according to the fifth means, with respect to the operand access unit 11 performs, with a twelfth aspect of adding control, predicted established before further by using the execution result of the branch target instruction and performs processing of the previous instruction.

また本願第2の発明は; 前記第10の手段を2つ以上備え、第3の手段により予約された命令を、分岐命令を区切りとして複数の第10の手段に対して、順次振り分けることを特徴とする。 The second aspect of the invention; includes the tenth means two or more of instructions reserved by the third means, for a plurality of tenth means the branch instruction as a separator, characterized in that sequentially distributes to.

また本願第3の発明は; 前記第2の手段と第6の手段と第7の手段と第8の手段と第9の手段との代わりに、第2の手段と第9の手段の組を2つ以上と、その複数の第2の手段に保持されている値を互いに転送する手段とを備え、予測されていながら確定していない分岐先にある命令による実行結果を、複数の第2の手段のいずれかに保持することを特徴とする。 The third invention is, instead of the second means and sixth means and the seventh means and the eighth means and the ninth means, a second set of means and the ninth means two or more, and means for transferring the value held in the plurality of second means each other, an execution result of the predicted in branch destination not determined while not instruction, multiple second characterized in that it held in any means.

また本願第4の発明は; 前記第11の手段を2つ以上備えることにより、複数の命令を同時に発行することを可能とすることを特徴とする。 The fourth aspect of the invention; by providing the eleventh means two or more of, and characterized by making it possible to issue a plurality of instructions simultaneously.

(作用) このような手段をとることによって、分岐命令以前の命令系列と予測された分岐先の命令系列を可能な限り同時に実行しながら、予測された確定前の分岐先の命令による実行結果であってもオペランドとして使用することを可能とする。 (Operation) By taking such means, while performing as much as possible the predicted branch destination instruction series and the branch instruction prior instruction series simultaneously, with the result executed by the predicted determined before the branch target instruction even makes it possible to use as an operand. これにより、分岐命令の確定待ちによる命令実行開始の遅延を抑えることができ、高速な処理を可能とする。 This can suppress an instruction execution start of the delay caused by deterministic waiting for the branch instruction, to enable high-speed processing.

(実施例) 第1図は本発明の一実施例を示す装置構成図である。 (Example) FIG. 1 is a system configuration diagram showing an embodiment of the present invention.
図中10は処理すべき命令を記憶する命令記憶手段である。 Figure 10 is an instruction storage means for storing instructions to be processed. 20は命令記憶手段10より得た命令が実行結果として行うレジスタへの書込みをあらかじめ予約するレジスタ書込み予約手段である。 20 is a register write reservation means for pre-book a write to a register instruction obtained from the instruction storage means 10 performs as the execution result. 30はレジスタ書込み予約手段20 30 register write reservation means 20
により処理された命令を複数保持できる先入れ先出し機能を持つ命令保持手段であり、分岐先が確定し、実行されることが確定している命令系列を保持する。 An instruction holding means having a first-in first-out function processed instruction can more retained by the branch destination is determined, retains instructions sequence to be executed is determined. 40は命令保持手段により保持された命令、もしくはレジスタ書込み予約手段20により処理された、実行が確定していない命令を発行する命令発行手段である。 40 instruction held by the instruction holding means, or processed by a register write reservation unit 20, an instruction issuing means for issuing an instruction execution has not been determined. 50は命令発行手段 50 instruction issue means
40が行うオペランドアクセスに対し制御を加えるオペランドアクセス制御手段である。 To operand access which 40 performs an operand access control means for applying a control. 60は命令発行手段40により発行された命令を実行する命令実行手段である。 60 is an instruction execution means for executing the instruction issued by the instruction issuing means 40. 70は命令実行手段60から出力される結果の内、実行が確定していない命令による実行結果を一時的に保持する分岐予測先命令実行結果格納手段である。 70 of the result output from the instruction execution unit 60, a branch prediction target instruction execution result storage means for temporarily holding the execution result of instruction execution has not been determined. 80は命令実行手段60 80 instruction execution unit 60
から出力される結果の内、実行が確定している命令による実行結果を保持するレジスタである。 Of the outcome outputted from a register which holds the result execution by the instruction execution is determined.

第2図はオペランドアクセス制御手段50の要部を示したものである。 Figure 2 shows the main part of the operand access control unit 50. 510はレジスタ書込み予約手段20により設定されるレジスタを書込み履歴フラグであり、命令分岐から次の分岐命令までを一つブロックとを考え、過去から現在を通してブロック内で該レジスタに対して書込み予約があったどうかを示す。 510 is a register write history flag is set by a register write reservation unit 20, consider a single block to the next branch instruction from the instruction branch, write reserved for the register via the current from the past in the block shows the there was assimilation. 520はレジスタ書込み予約手段20により設定されるレジスタ書込み予約済フラグであり、現時点でブロック内で該レジスタに対して書込み予約がされているかどうかを示す。 520 is a register write reservation flag is set by a register write reservation unit 20, indicating whether the write reserved for the registers in the block at this time. 530は命令発行手段40により設定される命令発行済フラグであり、現時点でブロック内で該レジスタに対して書込み予約をしている命令が発行されているかでうかを示す。 530 is an instruction issued flag is set by the instruction issuing means 40, indicating whether it is or instructions that the write reservation with respect to the register is issued in the block at this time. レジスタ書込み履歴フラグ510、レジスタ書込み予約済フラグ520、命令発行済フラグ530は同一の形式で、第3図に示すように、レジスタの各要素に対応するフラグを持ち、さらに確定している命令用と確定していない命令用との2種類のフラグセットを備える。 Register write history flag 510, register write reservation flag 520, the instruction issued flag 530 in the same format, as shown in FIG. 3, it has a flag corresponding to each element of the register, a command that is further confirmed comprising two kinds of flags set of a command that is not determined to. この2種類のフラグレジスタを区別するため、A側、B側という用語を用いる。 To distinguish the two types of flag register, use the term A side, B side. 命令分岐から次の命令分岐までの一つのブロックには、A側かB側のどちらか一方が割り当てられる。 One block from the instruction branching to the next instruction branches, either the A side or B side is assigned. この割り当て該ブロックに含まれる全命令の終了時に解放され、次のブロックに割り当てることができるようになる。 This assignment is released at the end of all the instructions contained in the block, it is possible to allocate the next block. 540はレジスタ書込み履歴フラグ510、レジスタ書込み予約済フラグ520、命令発行済フラグ530における2種類のフラグセットの内、どちら側が確定している命令用であるかを示す確定命令系列フラグである。 540 register write history flag 510, register write reservation flag 520, of the two types of flags set in the instruction issued flag 530, which is a defined instruction sequence flag indicating which for instructions which side is determined. すなわち、現在実行中のA側かB側のどちら側が実行が確定している命令系列なのかを示す。 That indicates which side of the A side or B side of the currently executing that instruction sequence executed is determined. これにより、該ブロックが割り当てられている側が、確定命令系列540が規定する側と一致していれば該ブロックの実行は確定しているものと判定することができる。 Thus, the side where the block is assigned, execution of the block if the match to the side where confirmation instruction sequence 540 is defined can be determined that has been finalized. 550は命令発行手段40が行なうオペランドアクセスに対して情報を与えるオペランド読出し判定回路であり、オペランド読出しを分岐予測先命令実行結果格納手段70とレジスタ80のどちらかから行うという読出し元の情報と、読出しを行って良いかという読出し可否の情報とを、レジスタ書込み履歴フラグ510、レジスタ書込み予約済フラグ520、命令発行済フラグ530、確定命令系列フラグ540による値から作成する。 550 is the operand read determination circuit that provides information to the operand access instruction issuing means 40 performs a read source of information of performing operand read from either branch prediction target instruction execution result storage unit 70 and the register 80, and information read permission of whether it performs read, register write history flag 510, register write reservation flag 520, the instruction issued flag 530, to create the value by placing the instruction sequence flag 540. この読出し情報の判定流れ図を第4図に示す。 It shows the determination flow diagram of the read information in Figure 4. 第4図において、 In Figure 4,
レジスタ書込み履歴フラグ510をWH、レジスタ書込み予約済フラグ520をWB、命令発行済フラグ530をIB、確定命令系列フラグ540をFP、該ブロック側をBlk、該ブロックの反対側をrBlk、判定する該レジスタ番号をRegで表す。 The register write history flag 510 WH, the register write reservation flag 520 WB, instructions issued flag 530 IB, a confirmation instruction sequence flag 540 FP, Blk the block side, RBLK the opposite side of the block, determines the a register number represented by Reg. 特に、レジスタ書込み履歴フラグ510、レジスタ書込み予約済フラグ520、命令発行済フラグ530については、例えば、「レジスタ書込み予約済フラグ520の、該ブロック側のフラグセットの、該レジスタ番号が示すフラグ」を、WB(Blk,Reg)という形で表す。 In particular, register write history flag 510, register write reservation flag 520, the instruction issued flag 530, for example, "the register write reservation flag 520, the flag in the block side, a flag indicating that the register number" a , expressed in the form of WB (Blk, Reg).

以上のような構成の命令処理装置において、本発明の内容を説明するために、まず実行されることが確定している命令を処理する際の動作を説明する。 In the instruction processing apparatus having the above configuration, in order to explain the contents of the present invention, first be performed to explain an operation when processing instructions it has been finalized. 命令は命令記憶手段10から読み出され、その命令が実行結果として行うレジスタへの書込みを、レジスタ書込み予約手段20により予約する。 Instruction is read from the instruction storage means 10, a write to a register that instruction is performed as an execution result, to reserve the register write reservation unit 20. レジスタ書込みの予約の予約操作では、 In the reservation operation of the register write reservation,
レジスタ書込み履歴フラグ510とレジスタ書込み予約済フラグ520の両方に対して、該ブロック側フラグセットの該書込みレジスタ番号の示すフラグを設定する。 For both register write history flag 510 and registers write reservation flag 520, a flag indicating the said block-side flag in 該書 inclusive register number. ここで設定されたフラグの内、レジスタ書込み履歴フラグ51 Of the flag set here, the register write history flag 51
0は該ブロックの終了時、すなわち次の分岐命令までの全命令が終了した時点で解除され、レジスタ書込み予約済フラグ520は該命令が終了した時点で解除される。 0 At the end of the block, i.e. is released when all instruction to the next branch instruction is completed, the register write reservation flag 520 is released at the time the instruction is completed. レジスタ書込み予約手段20により予約が完了した命令は、 Instructions reserved by the register write reservation unit 20 is completed,
命令保持手段30に保持され、命令発行を待つ。 Held in the instruction holding means 30 waits for instruction issue. 命令保持手段30に保持されていた命令は、命令発行手段40においてオペランドアクセスを行ない、これに成功したものは命令実行手段60に転送される。 Instructions held in the instruction holding means 30 performs operand access in the instruction issuing means 40, which in one successful is transferred to the instruction execution unit 60. ここで行われるオペランドアクセスにあたって、読出しに関する情報を、オペランドアクセス制御手段50より受け取る。 In operand accesses made here, the information about the reading, receiving from the operand access control unit 50. このときオペランドアクセス制御手段50では、第4図の流れ図に沿って判定が下される。 In this case operand access control unit 50, determination is made as along the flow diagram of Figure 4. まず、該ブロックと確定命令系列フラグ540の比較が行われ(ステップ101)、これが一致していることから、該ブロックは実行されることが確定していることがわかる。 First, the block and comparing the determined instruction series flag 540 is performed (step 101), since this is consistent, the block is seen to confirm to be executed. そして、命令発行済フラグ530の該ブロック側フラグセットの該読出しレジスタ番号の示すフラグを判定し(ステップ102)、このフラグが解除された状態であれば、レジスタ80への該オペランドアクセスを許可する。 Then, to determine a flag indicating the said read register number of the block-side flag in instruction issued flag 530 (step 102), if the state of the flag is released, allowing the operand access to the register 80 . 命令発行手段40から命令を発行すると同時に、命令発行済フラグ530の該ブロック側フラグセットの該書込みレジスタ番号の示すフラグを設定する。 And simultaneously it issues an instruction from the instruction issue unit 40, a flag indicating the 該書 inclusive register number of the block-side flag in instruction issued flag 530. 命令発行手段40から発行された命令は命令実行手段60において該命令が規定する動作を行ない、その実行結果を生成する。 Instruction issued from the instruction issuing section 40 performs an operation for defining the instruction in the instruction execution unit 60 generates the execution result. 命令実行手段60において生成された実行結果は、レジスタ80に格納され、実行を終了する。 Execution results generated in the instruction execution unit 60 is stored in the register 80 and terminates execution. 命令の実行終了時には、レジスタ書込み予約済フラグ520と命令発行済フラグ530の両方に対して、該ブロック側フラグセットの該書込みレジスタ番号の示すフラグを解除する。 During execution of the instruction ends, to both register write reservation flag 520 and the instruction issued flag 530, cancels the flag indicating the said block-side flag in 該書 inclusive register number.

次に、分岐予測機構により予測された、実行が確定していない命令を実行する場合の動作について説明する。 Next, operation will be described in the case of executing predicted by the branch prediction mechanism, instructions whose execution has not been determined.
命令は命令記憶手段10さら読み出され、その命令が実行結果として行うレジスタへの書込みを、レジスタ書込み予約手段20により予約する。 Instructions are read command storage unit 10 further, the writing to the register to which the instruction performed as the execution result, to reserve the register write reservation unit 20. レジスタ書込みの予約操作では、レジスタ書込み履歴フラグ510とレジスタ書込み予約済フラグ520の両方に対して、該ブロック側の該書込みレジスタ番号の示すフラグを設定する。 The reservation operation register writes to both the register write history flag 510 and registers write reservation flag 520, a flag indicating the 該書 inclusive register number of the block side. ここで設定されたフラグの内、レジスタ書込み履歴フラグ510は次の分岐命令までの全命令が終了した時点で解除され、レジスタ書込み予約済フラグ520は該命令が終了した時点で解除される。 Of the flag set here, the register write history flag 510 is released when all instruction to the next branch instruction is completed, the register write reservation flag 520 is released at the time the instruction is completed. レジスタ書込み予約手段20により予約が完了した命令は、命令発行手段40においてオペランドアクセスを行ない、これに成功したものは命令実行手段60 Instructions reserved by the register write reservation unit 20 is completed, performs operand access in the instruction issuing means 40, the instruction execution means which has succeeded to 60
に転送される。 It is transferred to. ここで行われるオペランドアクセスにあたって、オペランド読出しを分岐予測先命令実行結果格納手段70とレジスタ80のどちらから行うかという読出し元の情報と、読出しを行って良いかという読出し可否の情報とを、オペランドアクセス制御手段50より受け取る。 In operand access performed here, and the read source information indicating either from or perform operand reading branch prediction target instruction execution result storage unit 70 and the register 80, and the read permission information as to be subjected to read, the operand receiving from the access control means 50. このときオペランドアクセス制御手段50では、第4 In this case operand access control unit 50, the fourth
図の流れ図に沿って判定が下される。 Determination along the flow chart of FIG is made. まず、該ブロックと確定命令系列フラグ540の比較が行われ(ステップ10 First, comparison of the block with the determined instruction sequence flag 540 is carried out (Step 10
1)、これが一致していないことから、該ブロックは実行されることが確定しないことがわかる。 1), since this does not match, the block is seen that not determined to be executed. 次にレジスタ書込み履歴フラグ510の該ブロック側フラグセットの該読出しレジスタ番号の示すフラグを判定し(ステップ10 Then determines a flag indicating the said block-side flag in said read register number register write history flag 510 (Step 10
3)、このフラグが解除された状態であればオペランドアクセスをレジスタ80から、設定された状態であればオペランドアクセスを分岐予測先命令実行結果格納手段70 3), this If the flag state which is released an operand access from the register 80, set as long as the state operand access the branch prediction target instruction execution result storage unit 70
から行うように、命令発行手段40に伝える。 As performed from informs the instruction issue unit 40. さらにこのオペランド読出し元情報を元に、オペランドアクセス制御手段50が命令発行手段40に対して伝える、オペランドアクセス許可情報を作成する。 Further based on the operand read source information, conveys an operand access control unit 50 to the instruction issue unit 40 creates the operand access permission information. すなわち、もしレジスタ In other words, if the register
80から読み出す場合であれば、レジスタ書込み予約済フラグ520の該ブロックの反対側のフラグセットの該読出しレジスタ番号の示すフラグを判定し(ステップ10 In the case of reading from 80 determines a flag indicating the register write reservation flag 520 of the opposite side of the flag in said read register number of the block (Step 10
4)、このフラグが解除された状態であればレジスタ80 4), the register 80 if the state of this flag is released
への該オペランドアクセスを許可する。 Allow the operand access to. もし、分岐予測先命令実行結果格納手段70から読み出す場合であれば、 If, in the case of reading from the predicted branch target instruction execution result storage unit 70,
命令発行済フラグ530の該ブロック側フラグセットの該レジスタ番号の示すフラグを判定し(ステップ105)、 Determines a flag indicating the said register number of said block-side flag in instruction issued flag 530 (step 105),
このフラグが解除された状態であれば分岐予測先命令実行結果格納手段70への該オペランドアクセスを許可する。 If a state where the flag is released to allow the operand access to branch prediction target instruction execution result storage unit 70. 命令発行手段40から命令を発行すると同時に、命令発行済フラグ530の該ブロック側フラグセットの該書込みレジスタ番号の示すフラグを設定する。 And simultaneously it issues an instruction from the instruction issue unit 40, a flag indicating the 該書 inclusive register number of the block-side flag in instruction issued flag 530. 命令発行手段 Instruction issue means
40から発行された命令は命令実行手段60において該命令が規定する動作を行ない、その実行結果を生成する。 Instruction issued from 40 performs an operation instruction is defined in the instruction execution unit 60 generates the execution result. 命令実行手段60において生成された実行結果は、分岐予測先命令実行結果格納手段70に一時的に保持される。 Execution results generated in the instruction execution unit 60 is temporarily held in a predicted branch target instruction execution result storage unit 70. この時点でとりあえず命令は終了したものとみなされ、レジスタ書込み予約済フラグ520と命令発行済フラグ530の両方に対して、該ブロック側の該書込みレジスタ番号の示すフラグを解除する。 This time being instruction time is deemed to have ended, with respect to both the register write reservation flag 520 and the instruction issued flag 530, it cancels the flag indicating the 該書 inclusive register number of the block side.

次に、分岐命令による分岐先が確定し、予測した分岐先と一致していた時の動作を説明する。 Then, the branch destination is determined by the branch instruction, the operation when consistent with predicted branch destination. 分岐命令の分岐先が確定したら、その分岐命令以前の命令の実行終了を待った後、分岐予測先命令実行結果格納手段70に一時的に保持されていた実行結果をレジスタ80に転送する。 When the branch destination of the branch instruction is confirmed, it transferred after waiting the completion of execution of the branch instruction prior instruction, the execution result which has been temporarily retained in the branch prediction target instruction execution result storage unit 70 in the register 80. すべての転送が終了後、分岐予測先命令実行結果格納手段 After all the data has been transmitted, the predicted branch target instruction execution result storage unit
70の全要素を解除する。 Remove all elements of 70. レジスタ書込み履歴フラグ510 Register write history flag 510
では、確定命令系列フラグ540が規定するフラグセットを全要素解除する。 In the flag set to determine instruction sequence flag 540 defines cancel all elements. その後、確定命令系列フラグ540を反転させる。 Then, to reverse the confirmation instruction sequence flag 540.

次に、分岐命令による分岐先が確定したが、予測した分岐先と一致せず、分岐予測が失敗した時の動作を説明する。 Next, the branch destination by the branch instruction is determined, it does not match the predicted branch target, an operation when the branch prediction fails. 分岐予測失敗を検知すると、分岐予測失敗した先の命令の命令記憶手段10からの投入を停止し、命令実行手段40にすでに投入されている分岐予測失敗した先の命令の実行の終了を待ち、分岐予測先命令実行結果格納手段70の全要素を解除する。 Upon detecting a branch misprediction, branch prediction failed poured from the instruction storage means 10 of the previous instruction is stopped, waiting for the end of the branch prediction failed execution of the preceding instruction which has already been put into the instruction execution unit 40, Remove all elements of branch prediction target instruction execution result storage unit 70. レジスタ書込み履歴フラグ51 Register write history flag 51
0、レジスタ書込み予約済フラグ520、命令発行済フラグ 0, register write reservation flag 520, the instruction issued flag
530の全てにおいて、確定命令系列フラグ540が規定する側の逆側のフラグセットを全要素解除する命令記憶10からは確定した分岐先の命令を投入し、実行が確定した命令として実行を続行する。 In all 530, confirmation instruction sequence flag 540 is a flag set in the opposite side of the side defining put instructions were determined branch destination from the instruction memory 10 to release all the elements, continues the execution as the execution has been determined instruction .

次に第5図に示すプログラムにおいて動作例を説明する。 Then an operation example will be described in the program shown in Figure 5. プログラム中の分岐命令については分岐を起こさない方に予測されているものとする。 The branch instruction in the program is assumed to be predicted for those not cause branching. また、確定命令系列フラグ540は初期値としてA側を指示するものとする。 Further, confirmation instruction sequence flag 540 is assumed to instruct the A-side as the initial value.
つまり、最初に投入される命令から次の分岐命令までは、レジスタ書込み履歴フラグ510、レジスタ書込み予約済フラグ520、命令発行済フラグ530におけるA、B2種類のフラグセットの内、A側を使用する。 That is, the instruction to be initially charged to the next branch instruction, register write history flag 510, register write reservation flag 520, of A, B2 type of flag set in the instruction issued flag 530, using the A-side . まず第1サイクルでは命令(1)が命令記憶10から読み出されて、レジスタ書込み予約手段20を通じて、命令(1)の書込みレジスタr2に対応した、レジスタ書込み履歴フラグ510 First in the first cycle the instruction (1) is read from the instruction memory 10, through the register write reservation unit 20, corresponding to the write register r2 of the instruction (1), register write history flag 510
とレジスタ書込み予約済フラグ520の両者のA側の2番のフラグをONにする。 To ON 2nd flags of both A-side of register write reservation flag 520. 第2サイクルでは命令(2)が命令記憶手段10から読み出されて、レジスタ書込み予約手段20を通じて、命令(2)の書込みレジスタr4に対応した、レジスタ書込み履歴フラグ510とレジスタ書込み予約済フラグ520の両者のA側の4番のフラグをONにする。 In the second cycle the instruction (2) is read from the instruction storage means 10, through the register write reservation unit 20, corresponding to the write register r4 instruction (2), the register writing history flag 510 and registers write reservation flag 520 to oN fourth flags of both a-side. それと同時に、命令(1)が命令保持手段30により保持される。 At the same time, the instruction (1) is held by the instruction holding means 30. 第3サイクルでは、命令(3)が命令記憶手段10から読み出されるが、命令(3)はレジスタ書込みがないので、レジスタ書込み予約手段20は書込み予約はしない。 In the third cycle, but instruction (3) is read from the instruction storage means 10, the instruction (3) is because there is no register write, the register write reservation unit 20 does not write reservation. それと同時に命令(2)が命令保持手段30により保持される。 At the same time the instruction (2) is held by the instruction holding means 30. それと同時に命令発行手段40において命令(1)がオペランドr0とr1を読み出し、命令を発行する。 Instruction (1) is in the instruction issuing means 40 at the same time it reads the operand r0 and r1, and issues an instruction. この時、命令発行済フラグのA側の0番と1番フラグをチェックし、共にOFFであるのでオペランドアクセスは成功する。 In this case, check the 0th and 1st flags A side of the instruction issued flag, operand access since both are OFF succeeds. 命令発行時には、命令(1)の書込みレジスタr2に対応した、命令発行済フラグ530の両者のA側の2番のフラグをONにする。 During instruction issue, corresponding to the write registers r2 of the instruction (1), to ON 2nd flag of the A side of both the instruction issued flag 530. 第4サイクルでは、命令(4)が命令記憶手段10から読み出されて、レジスタ書込み予約手段20を通じて、命令(4)の書込みレジスタr5に対応した、レジスタ書込み履歴フラグ510とレジスタ書込み予約済フラグ520の両者のB側の5番のフラグをONにする。 In the fourth cycle, the instruction (4) is read from the instruction storage means 10, through the register write reservation unit 20, corresponding to the write register r5 instruction (4), the register writing history flag 510 and registers write reservation flag to oN 520 both B-side fifth flags of the. それと同時に命令(3)が命令保持手段 At the same time the instruction (3) is an instruction holding means
30により保持される。 30 is held by. それと同時に命令発行手段40において命令(2)がオペランドr2とr3を読み出そうとするが、命令発行済フラグのA側の2番のフラグがONになっているため、オペランドアクセスは失敗し、命令発行手段40に留まる。 At the same although the instruction (2) is in the instruction issuing means 40 simultaneously tries to read operand r2 and r3, for the No. 2 flags A side of the instruction issued flag is ON, the operand access fails, remain in the instruction issue means 40. 第4サイクルにおけるスナップショットを第6図に示す。 A snapshot of the fourth cycle is shown in Figure 6.

第5サイクルでは、命令(1)は演算実行を続け、命令(2)は命令発行手段40に、命令(3)は命令保持手段30に保持され続ける。 In the fifth cycle, the instruction (1) continues to execution, the instruction (2) in the instruction issue unit 40, the instruction (3) continues to be held in the instruction holding means 30. 命令(5)が命令記憶手段10から読み出されて、レジスタ書込み予約手段20を通じて、 Instruction (5) is read from the instruction storage means 10, through the register write reservation unit 20,
命令(5)の書込みレジスタr6に対応した、レジスタ書込み履歴フラグ510とレジスタ書込み予約済フラグ520の両者のB側の6番のフラグをONにする。 Instruction (5) corresponding to the write register r6 of, to both the B-side of the sixth ON flags register write history flag 510 and registers write reservation flag 520. 命令(4)は、 Instruction (4),
まず命令(4)の読出しレジスタr0、r3に対応した、レジスタ書込み履歴フラグ510のB側の0番と3番を判定し、共にOFFであるので共にレジスタ80からオペランドを読み出すことになる。 First corresponding to the read register r0, r3 instruction (4), to determine the 0th and 3rd B side register write history flag 510, thereby reading the operands from both the register 80 so are both OFF. そして、レジスタ書込み予約済フラグ520のA側の0番と3番を判定し、共にOFFであるのでオペランドアクセスは成功し、命令発行手段40から命令(4)が発行される。 Then, it is determined 0th and 3rd A side register write reservation flag 520, the operand access is successful because both are OFF, the instruction (4) is issued from the instruction issuing means 40. 第6のサイクルでは命令(6)が命令記憶手段10から投入される。 In the sixth cycle instruction (6) is turned from the instruction storage means 10. それと同時に命令発行手段40において命令(5)がオペランドr2とr3 At the same instruction in the instruction issuing means 40 simultaneously (5) operand r2 and r3
を読み出そうとするが、命令発行済フラグのA側の2番のフラグがONになっているため、オペランドアクセスは失敗し、命令発行手段40に留まる。 The although to be read, because the No. 2 flags A side of the instruction issued flag is ON, the operand access fails, remain in the instruction issue unit 40. 第7サイクルでは命令(7)が命令記憶手段10から投入されようとするが、 Although in the seventh cycle instruction (7) is about to be turned from the instruction storage means 10,
レジスタ書込み予約手段20に命令(6)が留まっているため、投入できない。 Since remains instructions (6) to the register write reservation unit 20, it can not be turned on. 第8サイクルでは変化がない。 There is no change in the eighth cycle. 第8サイクルにおけるスナップショットを第7図に示す。 A snapshot in the eighth cycle shown in Figure 7.

第9サイクルでは命令(1)の実行結果のレジスタ80 Register of the execution result instruction (1) in the ninth cycle 80
への書込みが起こり、レジスタ書込み予約済フラグ520 It occurs writing to the register write reservation flag 520
と命令発行済フラグのA側の2番をOFFにする。 And it turns OFF the number 2 on the A side of the instruction issued flag. これにより、命令発行済フラグのA側の2番がOFFになるのを待っていた、命令発行手段40にある命令(2)と命令(5)の両者のオペランドアクセスが成功するが、本実施例では同時には1つの命令しか発行できない構成になっているため、確定系列側の命令(2)のみが発行される。 Thus, the instruction No. 2 A side of the issued flag is waiting to become OFF, the although both operand access of an instruction in the instruction issue unit 40 (2) and instructions (5) is successful, the embodiment since has a structure which can not be issued only one instruction at the same time in the example, only the deterministic sequence-side instruction (2) is issued. 第10サイクルでは命令(3)の発行が試みられるが、命令(2)によって命令発行済フラグのA側の4番がONにされているためオペランドアクセスに失敗し、命令発行手段40に留まる。 Although an attempt to issue instructions (3) in the tenth cycle, No. 4 A side of the instruction issued flag by the instruction (2) fails to operand access because it is ON, the stays in the instruction issue unit 40. また第10サイクルでは前サイクルに保留された命令(5)の発行が行われる。 The issuance of the 10th cycle instructions which are pending previous cycle (5) is performed. これによって、第11サイクルでは命令(6)が命令発行手段40 Thus, in the eleventh cycle instruction (6) is instruction issue unit 40
に、命令(7)がレジスタ書込み予約手段20に進む。 To, the instruction (7) goes to the register write reservation means 20. また、命令(4)の実行結果の分岐予測先命令実行結果格納手段70への書込みが起こり、レジスタ書込み予約済フラグ520と命令発行済フラグ530のB側の5番をOFFにする。 Further, occurs writing to the branch prediction target instruction execution result storage unit 70 of the execution result of the instruction (4), turns OFF the number 5 B side register write reservation flag 520 and the instruction issued flag 530. これにより、以下のように命令発行手段40にある命令(6)にオペランドアクセスが成功し、命令(6)が発行される。 Thus, the operand access instructions (6) in the instruction issue unit 40 as follows is successful, the instruction (6) is issued. すなわち、レジスタ書込み履歴フラグ510 That is, the register write history flag 510
のB側の5番がONになっているため、オペランド読出し分岐予測先命令実行結果格納手段70からであることがわかり、命令発行済フラグ530のB側の5番がOFFになったことによりオペランドアクセスが許可されたことになる。 Since the number 5 of the B side is turned ON, found to be from the operand read branch prediction target instruction execution result storage unit 70, by the number 5 B side of the instruction issued flag 530 is turned OFF so that the operand access is granted. 第11サイクルにおけるスナップショットを第8図に示す。 A snapshot in the 11 cycle shown in Figure 8.

第12サイクルから第14サイクルの間は変化が起こらない。 During the first 12 cycles of the 14 cycle change does not occur. 第15サイクルでは命令(2)の実行結果のレジスタ In the 15th cycle register of the execution result of the instruction (2)
80への書込みが起こり、レジスタ書込み予約済フラグ52 It occurs writing to the 80, the register write reservation flag 52
0と命令発行済フラグ530のA側の4番をOFFにする。 0 to OFF No. 4 A side of the instruction issued flag 530. これにより、命令発行済フラグのA側の4番がOFFになるのを待っていた、命令発行手段40にある命令(3)が発行される。 Thereby, No. 4 A side of the instruction issued flag is waiting to become OFF, the instruction in the instruction issue unit 40 (3) is issued. 第16サイクルでは命令(2)の、そして第17 Instruction (2) in the first 16 cycles and 17
サイクルでは命令(6)の実行結果の分岐予測先命令実行結果格納手段70への書込みが起こり、レジスタ書込み予約済フラグ520と命令発行済フラグ530のB側の6番と7番をOFFにする。 The cycle occurs writing to the branch prediction target instruction execution result storage unit 70 of the execution result of the instruction (6), turns OFF the sixth and seventh of the B-side of register write reservation flag 520 and the instruction issued flag 530 . これにより、第17サイクルでは、命令発行済フラグのB側の7番がOFFになるのを待っていた、命令発行手段40にある命令(7)が発行される。 Thus, in the 17th cycle, No. 7 B-side of the instruction issued flag is waiting to become OFF, the instruction in the instruction issue unit 40 (7) is issued. The
18サイクルでは変化がない。 There is no change in the 18 cycle. 第19サイクルでは、命令(3)の実行が終了し、予測した分岐先に確定するので、分岐予測先命令実行結果格納手段70からレジスタ80 In a 19 cycle, it has finished running instruction (3), since the determined branch destination predicted, the register 80 from the branch prediction target instruction execution result storage unit 70
への転送を行う。 Carry out the transfer to. このとき分岐予測先命令実行結果格納手段70内には、命令(4),(5),(6)による実行結果r5,r6,r7があり、転送はこの3つについて行われる。 At this time the branch prediction target instruction execution result storage means 70, the instruction (4), (5), there is the execution result r5, r6, r7 by (6), the transfer is performed for these three. 転送後、分岐予測先命令実行結果格納手段70は解除される。 After the transfer, the predicted branch target instruction execution result storage unit 70 is released. そして、レジスタ書込み履歴フラグのA側を全要素解除し、確定命令系列フラグ540の規定する値をA Then, the A-side of register write history flag cancels all elements, the values ​​specified in the confirmation instruction series flag 540 A
側からB側に反転する。 Inverted from the side to the B side. これにより、次の第20サイクルではA側が新たに使用できるようになるので命令(8) Accordingly, since the A side will be able to newly used in the next 20th cycle instructions (8)
が命令記憶10から投入される。 There is introduced from the instruction memory 10. 第20サイクルにおけるスナップショットを第9図に示す。 A snapshot in the 20 cycle shown in FIG. 9.

第21サイクルでは、命令(7)の実行が終了し、予測した分岐先に確定する。 In a 21 cycle, execution is terminated in instruction (7), defined at the branch destination predicted. 但し、このとき分岐予測先命令実行結果格納手段70内には書込みが起きていないので、 However, since at this time the branch prediction target instruction execution result storage means 70 has not occurred writing,
分岐予測先命令実行結果格納手段70からレジスタ80への転送は行われない。 Predicted branch target instruction is transferred from the execution result storage unit 70 to the register 80 is not performed. そして、レジスタ書込み履歴フラグのB側を全要素解除し、確定命令系列フラグ540の規定する値をB側からA側に反転する。 Then, the B-side of register write history flag cancels all elements, inverted A-side the values ​​that define the confirmation instruction series flag 540 from the B side. 命令(8)は第21サイクルで発行され、第26サイクルで終了し、プログラムが終了する。 Instruction (8) are issued at the 21 cycle and ends at the 26th cycle, the program is terminated. プラグラムの開始から終了までのタイムチャートを第10図に示す。 Shown in FIG. 10 is a time chart from the start to the end of the Puraguramu.

以上、本願発明による命令処理装置において、命令の処理過程について説明した。 Above, in the instruction processing apparatus according to the present invention has been described process instructions.

次に、第1図の1つの命令保持手段30の代わりに2つの命令保持手段31,32を使用した場合の本発明の他の一実施例を第11図により説明する。 Next, another embodiment of the present invention when using two instruction holding means 31, 32 instead of one instruction holding means 30 of FIG. 1 by Figure 11.

第11図は、本発明による命令処理装置の一実施例である。 Figure 11 is an example of a command processing apparatus according to the present invention. 図において2つの命令保持手段31,32を備えている以外は、前述した第1図の本発明による命令処理装置の実施例と同じ構成となっている。 Except that has two instruction holding means 31, 32 in the figure has the same structure as the embodiment of the instruction processing apparatus according to the present invention of FIG. 1 described above. 本構成では、レジスタ書込み予約手段20により予約が完了した命令は、分岐命令を区切りとして、命令保持手段AもしくはBに保持される。 In this configuration, instructions reserved by the register write reservation unit 20 is completed, the branch instruction as a separator, is held in the instruction holding means A or B. 例えば、初めに命令保持手段Aに保持されていった命令系列では、分岐命令の次の命令以降を命令保持手段Bに保持し、またその次の分岐命令の次の命令以降を命令保持手段Aに保持していく。 For example, in the instruction sequence were being held in the instruction retaining means A in the beginning, the branch instruction of holding a subsequent instruction in the instruction retaining means B, also following the instructions after the instruction retaining means A for the next branch instruction continue to hold to. これにより、第5図のプログラムの例では、命令(7)は第10サイクルまで命令記憶10から投入できなかったが、命令保持手段を2つ使用した本発明では第6サイクルにおいて投入が可能となる。 Thus, in the example of FIG. 5 of the program, the instruction (7) could not be turned from the instruction memory 10 until the 10th cycle, the present invention uses two instruction holding means enabling turned in the sixth cycle Become. レジスタを2つ使用した場合の本発明のさらに他の一実施例を第12図により説明する。 Yet another embodiment of the present invention when the register was use two illustrated by Figure 12.

第12図の本発明の命令処理装置は2つのレジスタ81,8 Instruction processing unit of the two registers of the present invention of Figure 12 81,8
2とその間の転送手段90を備えており、分岐予測先命令実行結果格納手段70が省かれている以外は、前述した第1図の本発明による命令処理装置の実施例と同じ構成となっている。 2 and includes therebetween transfer means 90, except that a predicted branch target instruction execution result storage means 70 is omitted, the same structure as the embodiment of instruction processing apparatus according to the present invention of FIG. 1 described above there. 本構成では、命令実行手段60にて得られた結果は、確定している系列に属する命令による結果であれはレジスタA,Bの両者に書込むが、確定していない系列による結果であれば、分岐命令を区切りとして、レジスタAもしくはBのいずれかに保持される。 In this configuration, the results obtained in the instruction execution unit 60, there is a register A in the result of belonging to a sequence has been finalized instructions, written in both B, but if the result by sequence not determined , a branch instruction as a separator, is held in any of the registers a or B. 例えば、ある確定していない命令系列による結果をレジスタAに保持していった場合には、先行する分岐予測が成功してこの命令系列が確定した瞬間からこの系列による結果をレジスタA,Bの両者に書込む。 For example, in the case where the result of the finalized non instruction series began to hold in the register A is due to the sequence from the moment the preceding branch prediction this instruction sequence is to confirm successful result register A, and B write to both. そして、分岐命令の次の命令以降の結果は実行が確定するまでレジスタBだけに保持し、その命令系列が確定した瞬間からその系列による結果をレジスタA,Bの両者に書込む。 As a result of the subsequent instruction of the branch instruction is held by the register B to run is determined, written from the moment the instruction sequence has been determined, the results of the series register A, both the B. またその次の分岐命令の次の命令以降の結果を実行が確定するまではレジスタAに保持していき、以下これを繰り返す。 Also Until perform the next branch instruction of the next instruction after the results are finalized it continues to hold in the register A, hereinafter repeated. レジスタ間転送手段90では、レジスタ書込み済フラグという前述の第3図の形式のプラグレジスタを備え、上記の動作手順中で片方のレジスタにのみ結果が書き込まれた場合には、該当する側(すなわち、レジスタAならA側、レジスタBならB側)の該レジスタ番号のレジスタ書込み済フラグをONにする。 In register transfer means 90, when provided with a format of a plug register of FIG. 3 described above that register write completion flag, in the above-described operation procedure on one of the register only the result is written, the corresponding side (i.e. , the register a if a side, to oN register write flag of the register number of the register B if B side). そして、その命令系列の実行可否を決定する分岐命令が予測成功側に分岐した時点で、レジスタ書込み済フラグがONとなっている該ブロック側の該レジスタ番号のレジスタを、反対側の同一レジスタ番号に複写する。 Then, when the branch instruction is branched to predict success side to determine whether to execute the instruction sequence, the register of the block side of the register number register write flag is ON, the same register numbers on the opposite side copied to. レジスタ書込み済フラグは、この複写後OF Register write flag after the copying OF
Fとする。 And F. また、逆に予測失敗側に分岐した場合には、 Further, when the branch to the predicted failure side conversely,
レジスタ書込み済フラグがONとなっている該ブロック側の反対側の該レジスタ番号のレジスタを、レジスタ書込み済フラグがONとなっている該ブロック側の同一レジスタ番号に複写する。 Register the opposite side of the register number of the block-side register write flag is ON, the register writing flag are copied into the same register number of the block-side which is turned ON. レジスタ書込み済フラグは、この複写後OFFとする。 Register write flag is this copy after OFF. これにより、分岐予測先の実行結果を分岐先が確定する前に片側のレジスタに書込み、分岐成功時にはその結果を反対側に複写し、分岐予測失敗時にはその反対側の値を複写してくることにより元の値を復元することができる。 Thus, the branch target execution result of the branch prediction destination is written to one side of the register before confirming, at the time of branch success copying the result to the opposite side, at the time the branch prediction fails coming copies the value of the opposite side it is possible to restore the original value by.

第12図の実施例における、レジスタ読出しの可否と、 In the embodiment of Figure 12, and whether the register read,
いずれのレジスタから読出すべきかの判断を決定する流れ図を第13図に示す。 A flow diagram for determining whether the determination to be read from any register shown in FIG. 13. 使用する記号は第4図と同様である。 Symbols used are the same as Figure 4.

次に第12図の実施例における動作を、前述の第5図に示すプログラムにおいて説明する。 Next the operation of the embodiment of Figure 12, illustrating the program shown in Figure 5 above. 前述の第1図の場合に比べて、オペランド読出しと実行結果書込みの動作だけが異なるため、この部分についてのみ説明する。 As compared with the case of FIG. 1 described above, since the operation of only the operand read and execution result writing are different, a description for this part only. まず、命令(1)は確定系列側であり(第13図、ステップ First, the instruction (1) is determined sequence side (FIG. 13, step
201)、r2の書込みをする命令が実行中ではない(ステップ204)ので、第13図の流れ図に従いA側のr2を第3 201), because it is not in that instruction executes the writing of r2 (step 204), the r2 of A side accordance flow diagram of Figure 13 third
サイクルで読出すことが可能である。 It is possible to read in the cycle. また、命令(1) In addition, the instruction (1)
は書込み時には確定系列であるので両側のレジスタに書き込む。 Written on both sides of the register because at the time of writing is a definite series. 次の命令(2)はやはり確定系列側であるので、第13図の流れ図に従い該ブロック側、すなわちA側のレジスタからオペランド読出しをする。 Since the next instruction (2) is again established sequence side, the block-side in accordance with the flow chart of FIG. 13, that is, the operand read from the A side registers. この際、先行する命令(1)が、既にr2の書込みを予約している(すなわち、IB(Blk,Reg)がON)ため、命令(1)が終了する第9サイクルまでオペランド読出しが保留される。 At this time, preceding instructions (1) it has already reserved the writing r2 (i.e., IB (Blk, Reg) is ON) for an operand read is pending until the ninth cycle instruction (1) is completed that.
命令(5)は命令(2)と同じくr2を読み出そうとするが、確定していない系列側であり(第13図、ステップ20 Instruction (5) is to be read the same r2 and instructions (2), a sequence end which is not confirmed (FIG. 13, step 20
1)、該ブロックによるr2への書込みがされていない(ステップ202)ため、該ブロックの反対側、すなわちA側のレジスタからオペランド読出しを試みる。 1), the writing is not being to r2 by the block (step 202), the opposite side of the block, i.e. attempts operands read from the A side registers. ところが命令(1)がすでにr2の書込みを予約している(ステップ203)ため、命令(1)が終了するまでオペランド読出しが保留される(第9サイクルでは命令(2)が発行されるため、命令(5)の発行は第10サイクル)。 However Instruction (1) it has already reserved the writing r2 (step 203) because, since the operand reading is held until the instruction (1) is completed (in the 9th cycle is issued instruction (2), instruction issue of (5) the tenth cycle). また、命令(5)は書込み時にも確定していない系列側であるため、該ブロック側、すなわちB側のレジスタにのみ結果の書込みをする。 The instruction (5) Since a series side not fixed even during writing, to the block side, namely the writing of only the result in the register of the B side. その他の命令についても同様の動作をする。 The same operation for the other instruction.

次に、命令発行手段を2つ使用した場合の一実施例を第14図、第15図により説明する。 Next, Figure 14 an embodiment of using two instruction issuing means, illustrated by Figure 15. 第14図は、本発明による命令処理装置の一実施例である。 Figure 14 is an embodiment of the instruction processing apparatus according to the present invention. 図において、2つの命令発行手段41,42を備え、複数命令を同時発行可能としており、これに対処するためにオペランドアクセス制御手段150、命令実行手段160、分岐予測先命令実行結果格納手段170、レジスタ180が同時アクセス可能な構成になっている以外は、前述した第1図の本発明による命令処理装置の実施例と同じ構成となっている。 In the figure, it comprises two instruction issuance unit 41, and a simultaneously can issue multiple instructions, operand access control means 150 in order to cope with this, the instruction execution unit 160, the predicted branch target instruction execution result storage unit 170, except that the register 180 is turned simultaneously accessible configuration has the same structure as the embodiment of instruction processing apparatus according to the present invention of FIG. 1 described above. また第15図はオペランドアクセス制御手段150の要部を示したものである。 The Figure 15 shows the main part of the operand access control unit 150. 図において、各フラグが同時アクセス可能になり、オペランド読出し判定回路を2つ備えている以外は、前述した第2図と同じ構成となっている。 In the figure, the flag allows concurrent access, except that it includes two operands read determination circuit, has the same configuration as FIG. 2 described above.

次に第14図の実施例における動作を、前述の第5図に示すプログラムにおいて説明する。 Next the operation of the embodiment of Figure 14, illustrating the program shown in Figure 5 above. 前述の第1図の場合に比べ、命令発行手段の動作タイミングだけが異なるため、この部分についてのみ説明する。 Compared with the case of FIG. 1 described above, since only the operation timing of the instruction issuance unit is different, a description for this part only. 第9サイクルでは命令(1)の実行結果のレジスタ80への書込みが起こり、レジスタ書込み予約済フラグ520と命令発行済フラグのA側の2番をOFFにする。 In the ninth cycle occurs writing to the register 80 of the execution result of the instruction (1), the No. 2 register write reservation flag 520 and the A side of the instruction issued flag to OFF. これにより、命令発行済フラグのA側の2番OFFになるのを待っていた、命令発行手段にある命令(2)と命令(5)の両者のオペランドアクセスが成功する。 Thus, waited to become No.2 OFF the A side of the instruction issued flag, both operand access of an instruction in the instruction issuing means (2) and instructions (5) is successful. 第1図の実施例では同時には1 In the same time the embodiment of FIG. 1 1
つの命令しか発行できない構成になっているため、確定系列側の命令(2)のみが発行されたが、第14図による実施例では命令発行手段を2つ備えて2命令同時発行可能であるため、第9サイクルに命令(2)と命令(5) Designed to reduce only One instruction can not be issued, determine sequence side of the instruction (2) Although only is issued, for Figure 14 in accordance with embodiment can 2-issue features two instruction issuing means , instructs the ninth cycle (2) and instructions (5)
の両者を発行する。 To issue them. 他の命令の動作については第1図の実施例の場合と同じである。 The operation of the other instructions is the same as the embodiment of Figure 1.

なお、第11図、第12図、第14図の各実施例については、これらを適宜組み合わせて命令処理装置を構成してもよい。 Incidentally, FIG. 11, Figure 12, for each example in FIG. 14 may be configured to instruction processor appropriately combined. すなわち、複数の命令保持手段A,B、レジスタ That is, a plurality of instruction holding means A, B, register
A,B及び命令発行手段A,Bのうちの少なくとも2つの手段を含むように命令処理装置を構成してもよい。 A, B and instruction issuance unit A, may constitute a instruction processor to include at least two means of B.

(発明の効果) 以上の説明で明らかなように、この発明によると分岐命令以前の命令系列と予測された分岐先の命令系列を可能な限り同時に実行しながら、予測された確定前の分岐先の命令による実行結果であってもオペランドとして使用することが可能となり、分岐命令の確定待ちによる命令実行開始の遅延を抑えることができ、高速な処理を行うことができる。 As is clear from the description above (Effect of the Invention), while executing the present invention in accordance with the branch instruction prior instruction series and as far as possible the predicted branch destination instruction sequence simultaneously predicted determined before the branch destination it is the result executed by the instruction it is possible to use as an operand, it is possible to suppress the instruction execution start of the delay caused by deterministic waiting for the branch instruction, it is possible to perform high-speed processing.

【図面の簡単な説明】 BRIEF DESCRIPTION OF THE DRAWINGS

第1図は本発明の一実施例を示す装置図、第2図は第1 Figure 1 is apparatus diagram showing an embodiment of the present invention, Figure 2 is the first
図のオペランドアクセス制御手段の一実施例を示す図、 Illustrates an embodiment of an operand access control means of the drawing,
第3図は第2図のレジスタ書込み履歴フラグ、レジスタ書込み予約済フラグ、命令発行済フラグ、第12図のレジスタ間転送手段のレジスタ書込み済フラグの構成を示す図である。 Figure 3 is a diagram showing register write history flag of FIG. 2, the register write reservation flag, instructions issued flag, the configuration of the register writing flag of the 12 views of inter-register transfer means. 第4図は第1図のオペランドアクセス制御手段における読出し許可判定のための流れ図である。 Figure 4 is a flow chart for the read permission determination in the operand access control unit of Figure 1. 第5 Fifth
図は動作例を示すために用いたプログラムである。 Figure is a program used to show an operation example. 第6, 6th,
7,8,9図はそれぞれ第5図によるプログラム動作例の第 7, 8, 9 figures the program operation according to Figure 5, respectively
4,8,11,20サイクルのスナップショットである。 4,8,11,20 is a snapshot of the cycle. 第10図は第5図によるプログラム動作例のタイムチャートである。 FIG. 10 is a time chart of a program operation according to Figure 5. 第11図は本願の第2の発明の一実施例を示す装置図である。 FIG. 11 is a device diagram of one embodiment of the second invention of the present application. 第12図は本願の第3の発明の一実施例を示す装置図である。 FIG. 12 is a device diagram showing an embodiment of a third invention of the present application. 第13図は第12図のオペランドアクセス制御手段における読出し許可判定のための流れ図である。 FIG. 13 is a flow chart for the read permission determination in the operand access control means of Figure 12. The
14図は本願の第4の発明の一実施例を示す装置図であり、第15図は第14図のオペランドアクセス制御手段の一実施例を示す図であり、第16図は従来の技術による装置図である。 14 Figure is a device diagram showing an embodiment of a fourth invention of the present application, according to FIG. 15 is a diagram showing an embodiment of an operand access control means in FIG. 14, FIG. 16 prior art it is a device diagram. 図において、 10は命令記憶手段、20はレジスタ書込み予約手段、30,3 In the figure, 10 instruction storage unit, 20 is a register write reservation means, 30,3
1,32は命令保持手段、40,41,42は命令発行手段、50はオペランドアクセス制御手段、60は命令実行手段、70は分岐予測先命令実行結果格納手段、80,81,82はレジスタ、 1,32 instruction holding means, the instruction issue unit 40, 41, 42, the operand access control unit 50, 60 is the instruction execution unit, 70 is the predicted branch target instruction execution result storage unit, 80, 81 and 82 are registers,
90はレジスタ間転送手段、150はオペランドアクセス制御手段、160は命令実行手段、170は分岐予測先命令実行結果格納手段、180はレジスタ、510はレジスタ書込み履歴フラグ、520はレジスタ書込み予約済フラグ、530は命令発行済フラグ、540は確定命令系列フラグ、550はオペランド読出し判定回路、561は分岐命令の分岐情報を伝える信号線、562は各命令の終了を伝える信号線、563は命令のレジスタへの書込み予約情報を伝える信号線、56 90 register transfer means, 150 is an operand access control unit, 160 the instruction execution unit, the branch prediction target instruction execution result storage unit 170, 180 is a register, 510 is a register write history flag, 520 register write reservation flag, 530 instructions issued flag, the determined instruction series flag 540, 550 is the operand read determination circuit, 561 signal line for transmitting the branch information of the branch instruction, 562 a signal line for transmitting the end of each instruction, 563 to the register instruction signal line for transmitting the write reservation information, 56
4は各命令の発行情報を伝える信号線、565はオペランド読出しの可否を伝える信号線、1510はレジスタ書込み履歴フラグ、1520はレジスタ書込み予約済フラグ、1530は命令発行済フラグ、1540は確定命令系列フラグである。 4 is a signal line for transmitting the issued information for each instruction, 565 a signal line for transmitting whether the operand read, 1510 register write history flag, 1520 register write reservation flag, 1530 instruction issued flag, confirmation instruction sequence 1540 it is a flag.

Claims (4)

    (57)【特許請求の範囲】 (57) [the claims]
  1. 【請求項1】分岐命令による分岐先の確定を待たずに分岐先アドレスを予測する分岐予測方式において、処理すべき命令を記憶する第1の手段と、命令の実行結果を書き込むレジスタという第2の手段と、前記第1の手段より得られた命令が実行結果として行うレジスタへの書込みをあらかじめ予約する第3の手段と、前記第3の手段により予約された命令を保持し、命令を発行する第4の手段と、前記第4の手段により発行された命令を実行する第5の手段と、前記第5の手段と前記第2の手段との間に配置される、予測されていながら確定していない分岐先にある命令による実行結果を一時的に保持する第6 1. A branch in the instruction branch prediction system for predicting the branch target address without waiting for the branch destination determined by the first means for storing to be processing instruction, the second of the execution result is written to the register of the instruction issuing means, and third means said first means instruction obtained from the advance reservation writing to register that as the execution result, retains instructions reserved by said third means, instructions to the fourth means, the fifth means for executing the issued instruction by said fourth means, disposed between said fifth means and said second means, determined while being predicted 6 for holding the execution result of the instruction in a manner not branch destination temporarily
    の手段と、前記第6の手段により保持された実行結果を前記第2の手段へ転送する第7の手段と、前記第6の手段により保持された実行結果を前記第4の手段がオペランドとして読み出す第8の手段と、前記第2の手段により保持された実行結果を前記第4の手段がオペランドとして読み出す第9の手段とを備え、さらに前記第4の手段は、分岐先未確定の分岐命令以前の命令系列を保持する第10の手段と、前記第10の手段に保持された命令と前記第3の手段により予約された命令を前記第5の手段に発行する第11の手段と、前記第3の手段によるレジスタ書込み予約と前記第11の手段が行なう命令発行の履歴情報と前記第5の手段による分岐先確定情報とを受け取ることにより、前記第11の手段が行なうオペランドアクセスに対して、制御を加 Means, and seventh means for transferring an execution result held to said second means by said sixth means as said sixth means and said fourth means operand execution result held by the and eighth means for reading, the second and a ninth means for reading out the execution result held as the fourth means operand by means, even the fourth means, the branch of the branch destination unconfirmed a tenth means for holding instructions previous instruction series, and eleventh means for issuing an instruction reserved by said tenth instructions held in the means of the third means to said fifth means, by receiving said third means by the register write reservation and the eleventh branch destination determining information history information instruction issue and by the fifth means of means performs the said eleventh operand access unit performs the relative Te, the control pressure える第12の手段を備え、予測された確定前の分岐先の命令の実行結果を使用してさらにその先の命令の処理を行うことを特徴とする命令処理装置。 Obtain comprising a twelfth means, the instruction processing unit and performs processing for addition of the above instructions using the execution result of the predicted determined before the branch destination instruction.
  2. 【請求項2】前記第10の手段を2つ以上備え、前記第3 2. A comprises two or more means of the first 10, the third
    の手段により予約された命令を、分岐命令を区切りとして複数の第10の手段に対して、順次振り分けることを特徴とする特許請求の範囲第1項記載の命令処理装置。 Instructions reserved by means of a branch instruction for a plurality of tenth means as a separator, sequentially distributes the instruction processing apparatus as set forth in claim 1, wherein claims, characterized in.
  3. 【請求項3】前記第2の手段と第6の手段と第7の手段と第8の手段と第9の手段との代わりに、第2の手段と第9の手段の組を2つ以上と、その複数の第2の手段に保持されている値を互いに転送する手段とを備え、予測されていながら確定していない分岐先にある命令による実行結果を、複数の第2の手段のいずれかに保持することを特徴とする特許請求の範囲第1項記載の命令処理装置。 Instead of claim 3 wherein said second means and sixth means and the seventh means and the eighth means and the ninth means, a second set of means and the ninth means two or more When, and means for transferring the value held in the plurality of second means each other, an execution result of the predicted in branch destination not determined while not instruction, any of the plurality of second unit instruction processor of the claims claim 1 wherein characterized in that it crab holding.
  4. 【請求項4】前記第11の手段を2つ以上備えることにより、複数の命令を同時に発行することを可能とすることを特徴とする特許請求の範囲第1項記載の命令処理装置。 By providing wherein two or more means of said eleventh, instruction processing apparatus of Claims paragraph 1, wherein the to be able to issue a plurality of instructions simultaneously.
JP9810290A 1989-11-08 1990-04-13 The instruction processing unit Expired - Lifetime JP2814683B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP28883289 1989-11-08
JP1-288832 1989-11-08
JP9810290A JP2814683B2 (en) 1989-11-08 1990-04-13 The instruction processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9810290A JP2814683B2 (en) 1989-11-08 1990-04-13 The instruction processing unit

Publications (2)

Publication Number Publication Date
JPH03218524A true JPH03218524A (en) 1991-09-26
JP2814683B2 true JP2814683B2 (en) 1998-10-27

Family

ID=26439306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9810290A Expired - Lifetime JP2814683B2 (en) 1989-11-08 1990-04-13 The instruction processing unit

Country Status (1)

Country Link
JP (1) JP2814683B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0886209B1 (en) 1991-07-08 2005-03-23 Seiko Epson Corporation Extensible risc microprocessor architecture
JP3637920B2 (en) 1992-05-01 2005-04-13 セイコーエプソン株式会社 System and method for retiring instructions At a superscalar microprocessor

Also Published As

Publication number Publication date Type
JPH03218524A (en) 1991-09-26 application

Similar Documents

Publication Publication Date Title
US5742822A (en) Multithreaded processor which dynamically discriminates a parallel execution and a sequential execution of threads
US5201040A (en) Multiprocessor system having subsystems which are loosely coupled through a random access storage and which each include a tightly coupled multiprocessor
US5414864A (en) Method for selectively saving/restoring first registers and bypassing second registers in register units based on individual lock/unlock status thereof
US5701493A (en) Exception handling method and apparatus in data processing systems
US6029222A (en) Method and processor for selectively marking instructions as interruptible or uninterruptible and judging interrupt requests based on the marked instruction
US3735363A (en) Information processing system employing stored microprogrammed processors and access free field memories
US5197138A (en) Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching
US4394725A (en) Apparatus and method for transferring information units between processes in a multiprocessing system
US4374409A (en) Method of and system using P and V instructions on semaphores for transferring data among processes in a multiprocessing system
US5504869A (en) High speed processing system capable of executing strings of instructions in order without waiting completion of previous memory access instruction
US5146569A (en) System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension
US5003458A (en) Suspended instruction restart processing system based on a checkpoint microprogram address
US5341482A (en) Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
US4964035A (en) Vector processor capable of high-speed access to processing results from scalar processor
US5291581A (en) Apparatus and method for synchronization of access to main memory signal groups in a multiprocessor data processing system
US5063497A (en) Apparatus and method for recovering from missing page faults in vector data processing operations
US4803620A (en) Multi-processor system responsive to pause and pause clearing instructions for instruction execution control
CN1841314A (en) Dual thread processor
US4821231A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
US5745725A (en) Parallel instruction execution with operand availability check during execution
US4713752A (en) Buffer storage system
US20060020776A1 (en) Multithread processor and register control method
US5634136A (en) Data processor and method of controlling the same
US4803615A (en) Microcode control of a parallel architecture microprocessor
JPH0689173A (en) Instruction execution processing device having branch history

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 9

Free format text: PAYMENT UNTIL: 20070814

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080814

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080814

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090814

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090814

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 12

Free format text: PAYMENT UNTIL: 20100814

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100814

Year of fee payment: 12