JPH04205625A - Parallel processing computer - Google Patents

Parallel processing computer

Info

Publication number
JPH04205625A
JPH04205625A JP34034790A JP34034790A JPH04205625A JP H04205625 A JPH04205625 A JP H04205625A JP 34034790 A JP34034790 A JP 34034790A JP 34034790 A JP34034790 A JP 34034790A JP H04205625 A JPH04205625 A JP H04205625A
Authority
JP
Japan
Prior art keywords
instruction
instructions
abort
branch
stage
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.)
Granted
Application number
JP34034790A
Other languages
Japanese (ja)
Other versions
JP2835179B2 (en
Inventor
Kenji Minagawa
皆川 健二
Takeshi Aikawa
健 相川
Mitsuo Saito
斉藤 光男
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP34034790A priority Critical patent/JP2835179B2/en
Priority to US07/799,981 priority patent/US5446849A/en
Priority to DE69130757T priority patent/DE69130757T2/en
Priority to EP91311167A priority patent/EP0488819B1/en
Publication of JPH04205625A publication Critical patent/JPH04205625A/en
Priority to US08/429,103 priority patent/US5617553A/en
Application granted granted Critical
Publication of JP2835179B2 publication Critical patent/JP2835179B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To execute processing in high speed by means of making the most use of a rich software property by aborting the execution of respective instructions by means of the relation of aborting condition flags added to the respective instructions based on delayed branch instructions or squash branch instructions and the success or failure of the branch instructions. CONSTITUTION:Plural instructions fetched by a fetching circuit 1 are transmitted to an instruction buffer 2 and are latched and the instructions latched by the instruction buffer 2 are transmitted to an instruction feeder 3 and are transmitted to a conditions abort generation circuit 4. The instructions feeder 3 respectively supplies the instructions transmitted from the instruction buffer 2 to respective execution units 5 and a branch execution unit 6. Here, the execution of respective instructions are aborted by the relation of the abort condition flags added to the respective instructions based on the delayed branch instructions or the squash branch instructions and the success or failure of the branch instructions. Thus, high-speed processing is executed by making the most use of a rich software property.

Description

【発明の詳細な説明】 [発明の目的コ (産業上の利用分野) 本発明は、複数の命令を同時に実行可能とした並列処理
計算機に関するものである。
DETAILED DESCRIPTION OF THE INVENTION [Objective of the Invention (Industrial Field of Application) The present invention relates to a parallel processing computer capable of simultaneously executing a plurality of instructions.

(従来の技術) 、 −1− 従来、複数の命令を同時に実行する並列計算処理計算機
として、命令実行処理の速いRISC型のプロセッサか
用いられているか、最近、さらに高速に命令を実行する
ものとしてスーパスカラ型のプロセッサが開発され、現
在商品化されたものでは、インテル社の8096OCA
が知られている。
(Prior Art) -1- Conventionally, RISC type processors with fast instruction execution processing have been used as parallel computing computers that execute multiple instructions at the same time, and recently, RISC type processors with faster instruction execution processing have been used. A superscalar type processor has been developed and is currently commercialized, such as Intel's 8096OCA.
It has been known.

この場合、RISC型のプロセッサには、過去の豊富な
ソフトウェア資産が存在していることから、これらソフ
トウェアを有効活用するためにも、スーパスカラ型のプ
ロセッサを開発するにあたって、これまでのソフトウェ
アとオブジェクトコンパチビリティを持つプロセッサを
開発することが必要になっている。
In this case, since RISC processors have a wealth of past software assets, in order to make effective use of these software, when developing a superscalar processor, it is necessary to make object compatibility with previous software. It has become necessary to develop a processor with this ability.

ところで、RISC型のプロセッサには、ブランチ命令
に対する実行時の無駄な動作による損失を少なくするた
め、ディレィドブランチ方式やスカッシュブランチ方式
を採用したものがあり、例えば、サンマイクロシステム
ズ社のR2000゜R3000が知られている。ここで
、ディレィドブランチ方式は、ブライチ命令があると、
このブライチ命令の次の命令を実行してからブランチ先
命令を実行するようにしたもので、また、スカッシュブ
ランチ方式は、ブライチ命令があると、ブランチノット
ティクンのときは、ブランチ命令の次の命令を実行せず
に次の次の命令を実行し、ブランチティクンのときは、
ブランチ命令の次の命令を実行してブランチ先の命令を
実行するようにしたものである。
By the way, some RISC processors employ a delayed branch method or a squash branch method in order to reduce losses due to unnecessary operations when executing branch instructions.For example, Sun Microsystems' R2000 and R3000 It has been known. Here, in the delayed branch method, if there is a branch instruction,
The instruction next to this breech instruction is executed before the branch destination instruction is executed. Also, in the squash branch method, when there is a breech instruction, when the branch is not ticked, the next instruction after the branch instruction is executed. Execute the next instruction without executing the instruction, and when branch ticking,
The instruction following the branch instruction is executed to execute the instruction at the branch destination.

ところが、スーパスカラ型のプロセッサは、命令実行速
度は速いが、制御方式が複雑になるため、上述のディレ
ィドブランチ方式やスカッシュブランチ方式を採用した
RISC型マシシマシンジェクトコードをそのまま実行
することが困難であり、これらディレィドブランチ命令
やスカッシュブランチ命令を実行するRISC型のプロ
セッサのプログラムとオブジェクトコンパチビリティを
保つことはできなかった。
However, although superscalar processors have fast instruction execution speeds, their control methods are complex, making it difficult to directly execute RISC machine injection code that uses the above-mentioned delayed branch method or squash branch method. However, it has not been possible to maintain object compatibility with programs of RISC processors that execute these delayed branch instructions and squash branch instructions.

ちなみに、インテル社のスーパースカラ型プロセッサ8
0960CAは、同社のRISC型プロセッサ8096
0KAとオブジェクトコンパチビリティを保っているが
、80960KAは、ディレィドブランチ方式やスカッ
シュブランチ方式を採用していないのが現状である。
By the way, Intel's superscalar processor 8
0960CA is the company's RISC type processor 8096
Although the 80960KA maintains object compatibility with the 0KA, the current situation is that the 80960KA does not employ a delayed branch method or a squash branch method.

(発明が解決しようとする課題) このように、最近RISC型のプロセッサに代わって考
えられているスーパスカラ型プロセッサは、このままで
はディレィドブランチ命令やスカッシュブランチ命令を
実行することができないため、これらブランチ命令を実
行可能としたRISC型プロセッサのプログラムとオブ
ジェクトコンパチビリティを保つことができない欠点が
あった。
(Problems to be Solved by the Invention) As described above, superscalar processors, which have recently been considered to replace RISC processors, cannot execute delayed branch instructions or squash branch instructions as they are, so they It has a drawback that it cannot maintain object compatibility with programs of RISC type processors that can execute instructions.

本発明は、上記事情に鑑みてなされたもので、ディレィ
ドブランチ命令およびスカッシュブランチ命令のいずれ
も実行することができ、RISC型のプロセッサのプロ
グラムとオブジェクトコンパチビリティを保つことがで
きるスーパスカラ型プロセッサを有する並列処理計算機
を提供することを目的とする。
The present invention has been made in view of the above circumstances, and provides a superscalar processor that can execute both delayed branch instructions and squash branch instructions, and that maintains object compatibility with programs of RISC processors. The purpose of the present invention is to provide a parallel processing computer with the following features.

[発明の構成コ (課題を解決するための手段) 本発明の並列処理計算機は、複数の命令を同時に実行可
能としたものであって、複数の命令のうちからディレィ
ドブランチ命令またはスカッシュブランチ命令を判断す
るとともにこの判断結果に基づいて各命令にアボート条
件を示すフラグを付加するフラグ付加手段、上記各命令
に付加されたアボート条件を示すフラグと上記各ブラン
チ命令の成否により各命令の実行をアボートするアボー
ト実行手段より構成されるものである。
[Configuration of the Invention (Means for Solving the Problem) The parallel processing computer of the present invention is capable of simultaneously executing a plurality of instructions, and is capable of executing a delayed branch instruction or a squash branch instruction from among the plurality of instructions. and flag adding means for adding a flag indicating an abort condition to each instruction based on the result of this judgment, and execution of each instruction based on the flag indicating the abort condition added to each instruction and the success or failure of each branch instruction. It consists of an abort execution means that performs an abort.

(作用) この結果、本発明によればディレィドブランチ命令また
はスカッシュブランチ命令に基づいて各命令に付加され
るアボート条件フラグとブランチ命令の成否の関係から
各命令の実行をアボートできることから、スーパスカラ
型のプロセッサでも、ディレィドブランチ命令およびス
カッシュブランチ命令のいずれも実行することができる
ようになり、豊富なソフトウェア資産を有するRISC
型のプロセッサのプログラムとオブジェクトコンパチビ
リティを保つことができる。
(Operation) As a result, according to the present invention, the execution of each instruction can be aborted based on the relationship between the abort condition flag added to each instruction based on the delayed branch instruction or the squash branch instruction and the success or failure of the branch instruction. RISC processors with rich software assets can now execute both delayed branch instructions and squash branch instructions.
Object compatibility with type processor programs can be maintained.

(実施例) 以下、本発明の一実施例を図面にしたがい説明する。(Example) An embodiment of the present invention will be described below with reference to the drawings.

第1図は、本発明を5段パイプライン4命令同時実行の
スーパスカラマシンに適用した例を示すものである。こ
こでのパイプラインは、フェッチ(F)、デコード(D
)、実行(E)、メモリアクセス(M)、ライト(W)
のステージからなっている。
FIG. 1 shows an example in which the present invention is applied to a superscalar machine with a five-stage pipeline that executes four instructions simultaneously. The pipeline here consists of fetch (F), decode (D)
), execution (E), memory access (M), write (W)
It consists of stages.

図において、1はフェッチ回路で、このフェッチ回路1
は、図示しないインストラクションキャッシュメモリを
アクセスして複数の命令をフェッチするようになってい
る。
In the figure, 1 is a fetch circuit, and this fetch circuit 1
accesses an instruction cache memory (not shown) to fetch a plurality of instructions.

フェッチ回路1にフェッチされた複数の命令は、インス
トラクションバッファ2に送られラッチされる。また、
インストラクションバッファ2にラッチされた命令は、
命令供給器3に送られるとともに、条件アボート生成回
路4に送られる。
A plurality of instructions fetched by the fetch circuit 1 are sent to an instruction buffer 2 and latched. Also,
The instructions latched in instruction buffer 2 are
It is sent to the instruction supply unit 3 and also to the conditional abort generation circuit 4.

命令供給器3は、インストラクションバッファ2より送
られた命令を、各実行ユニット5およびブランチ実行ユ
ニット6にそれぞれ供給するようにしている。この場合
、実行ユニット5は、デコード(D)、実行(E)、メ
モリアクセス(M)、ライト(W)の各ステージよりな
っている。
The instruction supplier 3 supplies the instructions sent from the instruction buffer 2 to each execution unit 5 and branch execution unit 6, respectively. In this case, the execution unit 5 consists of decode (D), execution (E), memory access (M), and write (W) stages.

条件アボート生成回路4は、詳細は後述するか、実行ユ
ニット5およびフェッチ回路1に対する条件アボードフ
ラグを生成するもので、実行ユニット5に対してEステ
ージ条件アボート信号481およびDステージ条件アボ
ート信号482を与え、フェッチ回路1に対してFステ
ージ条件アボート信号483を与えるようにしている。
The condition abort generation circuit 4, the details of which will be described later, generates a condition abort flag for the execution unit 5 and the fetch circuit 1, and sends an E stage condition abort signal 481 and a D stage condition abort signal 482 to the execution unit 5. is given, and an F stage condition abort signal 483 is given to the fetch circuit 1.

第2図は、実行ユニット5の具体的回路を示す□もので
ある。
FIG. 2 shows a specific circuit of the execution unit 5.

この場合、命令供給器3より供給される命令は、デコー
ド(D)ステージのデコーダ51に送られる。デコーダ
51は、命令供給器3より供給される命令をデコードし
て(D)ステージのつ゛アリット信号521を生成する
ようにしている。このつ′入力端子に入力される。
In this case, the instructions supplied from the instruction supplier 3 are sent to the decoder 51 of the decode (D) stage. The decoder 51 decodes the command supplied from the command supply device 3 to generate an "alit signal 521" for the (D) stage. This signal is input to this input terminal.

このアンド回路53は、他方の入力端子に与えられるア
ボード判定回路54の出力内容により、ヴアリッド信号
521をネゲート可能にしている。
This AND circuit 53 enables the valid signal 521 to be negated based on the output content of the abord determination circuit 54 applied to the other input terminal.

アボード判定回路54は、ラッチ551にラッチされた
(D)ステージ条件アボード信号482とブランチする
かしないかを示すbarnch−taken522の関
係からアホードを判定するようにしたものである。
The abord determination circuit 54 determines an abord based on the relationship between the (D) stage condition abord signal 482 latched in the latch 551 and the barnch-taken 522 indicating whether or not to branch.

そして、アンド回路53の出力は、(E)ステージのラ
ッチ552にラッチされ、(E)ステージヴアリッド信
号523としてアンド回路55の一方の入力端子に送ら
れる。このアンド回路55も他方の入力端子に与えられ
るアボード判定回路56の出力内容により(E)ステー
ジヴアリッド化号523をネゲート可能にしている。
The output of the AND circuit 53 is latched by the latch 552 of the (E) stage and sent to one input terminal of the AND circuit 55 as the (E) stage valid signal 523. This AND circuit 55 also enables the (E) stage invalidation signal 523 to be negated by the output content of the abord determination circuit 56 applied to the other input terminal.

このアボード判定回路56も、上述したアボード判定回
路54と同様に、ラッチ553にラッチされた(E)ス
テージ条件アボード信号481とブランチするかしない
かを示すbarnch−taken522の関係からア
ボートを判定するようにしている。
This abord determination circuit 56 also determines abort based on the relationship between the (E) stage condition abord signal 481 latched in the latch 553 and the barnch-taken 522 indicating whether or not to branch, in the same way as the abord determination circuit 54 described above. I have to.

そして、このアンド回路55の出力は、(M)ステージ
のラッチ554、(W)ステージのラッチ555を介し
てレジスタファイル57のライトイネーブル信号EWと
して与えられる。
The output of this AND circuit 55 is given as a write enable signal EW to the register file 57 via a latch 554 in the (M) stage and a latch 555 in the (W) stage.

レジスタファイル57は、その内容をEステージのラッ
チ556.557を介して演算部58で演算されるとと
もに、その演算結果を(M)ステージのラッチ558、
(W)ステージのラッチ559を介して書込まれるよう
になっている。
The contents of the register file 57 are operated by the arithmetic unit 58 via the latches 556 and 557 of the E stage, and the result of the operation is sent to the latches 558 and 558 of the (M) stage.
(W) It is designed to be written via the latch 559 of the stage.

第3図は、条件アボート生成凹路4の具体的回路を示す
ものである。
FIG. 3 shows a specific circuit of the conditional abort generation concave path 4. In FIG.

この場合、インストラクションバッファ2にラッチされ
た複数(ここでは4つ)の命令は、ブランチ命令デコー
ダ44に送られる。
In this case, a plurality of (four in this case) instructions latched in the instruction buffer 2 are sent to the branch instruction decoder 44.

ブランチ命令デコーダ44は、インストラクションバッ
ファ2より与えられる命令についてデコードし、ディレ
ィドブランチ命令、スカッシュブランチ命令、あるいは
それ以外の命令を判断するようにしている。
The branch instruction decoder 44 decodes the instruction provided from the instruction buffer 2 and determines whether it is a delayed branch instruction, a squash branch instruction, or another instruction.

そして、ブランチ命令デコーダ44て判断された結果は
、それぞれアボート条件生成回路45.46.47に送
られる。
The results determined by the branch instruction decoder 44 are sent to abort condition generation circuits 45, 46, and 47, respectively.

ここで、アボート条件生成回路45は、ブランチ命令を
含む4つの命令のアボード条件を生成するようにしてい
る。また、アボート条件生成回路46は、ブランチ命令
を含む4つの命令の次の4つのアボード条件を生成する
ようにしている。さらに、アボート条件生成回路47は
、ブランチ命令を含む4つの命令の次の次の4つのアボ
ート条件を生成するようにしている。
Here, the abort condition generation circuit 45 generates abord conditions for four instructions including a branch instruction. Further, the abort condition generation circuit 46 generates the next four abort conditions for the four instructions including the branch instruction. Further, the abort condition generating circuit 47 generates the next four abort conditions following the four instructions including the branch instruction.

そして、アボート条件生成回路45の出力は、Eステー
ジ条件アボート信号481として出力されるとともに1
、マルチプレクサ49]を介してDステージ条件アボー
ト信号482、マルチプレクサ492を介してFステー
ジ条件アボート信号483としてそれぞれ出力可能にな
り、アボート条件生成回路46の出力は、マルチプレク
サ491を介してDステージ条件アボート信号482、
マルチプレクサ492を介してFステージ条件アボート
信号483としてそれぞれ出力可能になり、アボート条
件生成回路47の出力は、マルチプレクサ4°92を介
してFステージ条件アボート信号483として出力可能
になっている。
The output of the abort condition generation circuit 45 is outputted as an E stage condition abort signal 481 and 1
, multiplexer 49], the D stage condition abort signal 482, and the multiplexer 492, the F stage condition abort signal 483 can be output. signal 482,
The output of the abort condition generation circuit 47 can be output as the F stage condition abort signal 483 through the multiplexer 492, and the output of the abort condition generation circuit 47 can be output as the F stage condition abort signal 483 through the multiplexer 492.

この場合、マルチプレクサ491.492は、フェッチ
が行われたことを示す信号501に基づいてコントロー
ル回路50により制御されるが、ここでのマルチプレク
サ491.492のコントロールアルゴリズムは、次の
ようになっている。
In this case, the multiplexers 491 and 492 are controlled by the control circuit 50 based on the signal 501 indicating that a fetch has been performed, and the control algorithm for the multiplexers 491 and 492 here is as follows. .

Eステージ条件アボート信号481は、アボート条件生
成回路45により生成されるブランチ命令を含む4つの
命令の条件アボートフラグがそのまま出力される。□ま
た、Dステージの条件アボート信号482は、ブランチ
判定時(ブランチ命令がDステージでデコードされてか
ら、Eステージで実行が完了するまで)に1回もフェッ
チが行われないと、マルチプレクサ491を介してアボ
ート条件生成回路45により生成されるブランチ命令を
含む4つの命令の条件アボートフラグが出力され、ブラ
ンチ判定時に1回フェッチが行われると、マルチプレク
サ491を介してアボート条件生成回路46により生成
されるブランチ命令を含む4つの命令の次の4つの条件
アボードフラグが出力される。さらにFステージの条件
アボート信号183は、ブランチ判定時に1回もフェッ
チが行われないと、マルチプレクサ492を介してアボ
ート条件生成回路45により生成されるブランチ命令を
含む4つの命令の条件アボートフラグが出力され、ブラ
ンチ判定時に1回フェッチが行われると、マルチプレク
サ492を介してアボート条件生成回路46により生成
されるブランチ命令を含む4つの命令の次の4つの条件
アボードフラグが出力され、ブランチ判定時に2回フェ
ッチが行われると、マルチプレクサ492を介してアボ
ート条件生成回路47により生成されるブランチ命令を
含む4つの命令の次の次の4つの条件アボードフラグが
出力される。
The E-stage conditional abort signal 481 outputs the conditional abort flags of four instructions including the branch instruction generated by the abort condition generation circuit 45 as they are. □ Also, the conditional abort signal 482 of the D stage causes the multiplexer 491 to be activated if no fetch is performed at least once during branch determination (from when the branch instruction is decoded at the D stage until execution is completed at the E stage). The conditional abort flags of four instructions including the branch instruction generated by the abort condition generation circuit 45 are outputted through the multiplexer 491, and when a fetch is performed once during branch determination, the conditional abort flags are generated by the abort condition generation circuit 46 through the multiplexer 491. The next four conditional abord flags for the four instructions containing the branch instruction are output. Further, the F stage conditional abort signal 183 outputs conditional abort flags of four instructions including the branch instruction generated by the abort condition generation circuit 45 via the multiplexer 492 if no fetch is performed at the time of branch determination. When a fetch is performed once at the time of branch determination, the next four conditional abord flags of the four instructions including the branch instruction generated by the abort condition generation circuit 46 are outputted via the multiplexer 492, When the fetch is performed twice, four conditional abort flags following four instructions including a branch instruction generated by the abort condition generation circuit 47 are outputted via the multiplexer 492.

次に、以上のように構成した実施例の動作を説明する。Next, the operation of the embodiment configured as above will be explained.

まず、ディレィドブランチ方式を採用したディレィドブ
ランチ命令を実行する場合を説明する。
First, a case will be described in which a delayed branch instruction using the delayed branch method is executed.

ここでは、ディレィドブランチ命令を用いたアセンブラ
コードに対して条件アボートフラグは、例えば下記のよ
うに付加される。
Here, a conditional abort flag is added to an assembler code using a delayed branch instruction, for example, as shown below.

ステップ アセンブラコード アボートフラグ1   
  addi rl  ro l    alex2 
    addj r2  ro 2    alex
3     addj r3  ro 3    al
ex4     beq  r29r20  xi  
 alex5     addi r4  ro 4 
   alex6     addi r5  ro 
5    brad7     addi rat  
ro 6    brad8     addi r7
  ro 7    brad9     addi 
r8  ro 8    bradl 0    ad
di rlOro 10    bradつまり、ここ
では、ステップ1〜3までの命令に対して条件アボート
フラグalex (常に実行)が付加され、ステップ4
でディレィドブランチ命令beqが与えられると、ステ
ップ5のデイレイ命令まで条件アボートフラグalex
 (常に実行)が付加され、ステップ6以降の命令に対
して条件アボートフラグbrad (ブランチしたらア
ボート)が付加される。これにより、ディレィドブラン
チ命令beqが与えられると、次のステップの命令を実
行してからブランチ先命令が実行されることになる。
Step assembler code abort flag 1
addi rl ro l alex2
addj r2 ro 2 alex
3 addj r3 ro 3 al
ex4 beq r29r20 xi
alex5 addi r4 ro 4
alex6 addi r5 ro
5 brad7 addi rat
ro 6 brad8 addi r7
ro 7 brad9 addi
r8 ro 8 bradl 0 ad
di rlOro 10 brad In other words, here, the conditional abort flag alex (always executed) is added to the instructions in steps 1 to 3, and step 4
When the delayed branch instruction beq is given in step 5, the conditional abort flag alex is set until the delayed instruction in step 5.
(always execute) is added, and a conditional abort flag brad (abort if branched) is added to instructions after step 6. As a result, when the delayed branch instruction beq is given, the next step instruction is executed, and then the branch destination instruction is executed.

第4図は、スーバス力うマシンによるディレィドブラン
チ命令に対する具体的な動作例を示したものである。
FIG. 4 shows a specific example of the operation performed by the superbus machine in response to a delayed branch instruction.

この場合、一連の命令のうち命令2がブランチ命令、命
令13がブランチ先命令、命令3がデイレイ命令となり
、命令1から3までの条件アボートフラグはalex 
(常に実行)で、命令4から12までの条件アボートフ
ラグはbrad (ブランチしたらアボート)になって
いる。
In this case, among a series of instructions, instruction 2 is a branch instruction, instruction 13 is a branch destination instruction, instruction 3 is a delay instruction, and the conditional abort flags for instructions 1 to 3 are alex
(always executed), and the conditional abort flags for instructions 4 to 12 are brad (abort if branched).

しかして、この場合、フェッチ回路1によりフェッチさ
れた複数の命令は、インストラクションバッファ2にラ
ッチされるとともに、命令供給器3および条件アボート
生成回路4に送られる。
In this case, the plurality of instructions fetched by the fetch circuit 1 are latched into the instruction buffer 2 and sent to the instruction supply device 3 and the conditional abort generation circuit 4.

条件アボート生成回路4ては、複数の命令をブランチ命
令デコーダ44によりデコードし、命令2がディレィド
ブランチ命令であることを判断する。そして、この判断
結果は、アボート条件生成回路45.46.47に送ら
れる。
The conditional abort generation circuit 4 decodes a plurality of instructions using a branch instruction decoder 44 and determines that instruction 2 is a delayed branch instruction. This determination result is then sent to the abort condition generation circuits 45, 46, and 47.

すると、アボート条件生成回路45では、ブランチ命令
を含む4つの命令のアボード条件として命令1から4の
条件アボードフラグが生成され、また、アボート条件生
成回路45では、ブランチ命令を含む4つの命令の次の
4つのアボード条件として命令5から8の条件アボード
フラグが生成され、さらに、アボート条件生成回路47
では、ブランチ命令を含む4つの命令の次の次の4つの
アボード条件として命令9から12の条件アボードフラ
グか生成される。
Then, the abort condition generation circuit 45 generates conditional abord flags for instructions 1 to 4 as abord conditions for the four instructions including the branch instruction, and the abort condition generation circuit 45 generates the condition abord flags for instructions 1 to 4 as the abord conditions for the four instructions including the branch instruction. Conditional abord flags for instructions 5 to 8 are generated as the next four abord conditions, and the abort condition generation circuit 47
Then, conditional abord flags for instructions 9 to 12 are generated as the next four abord conditions for the four instructions including the branch instruction.

そして、アボート条件生成回路45て生成された命令1
から4のアボードフラグは、Eステージ条件アボート信
号481として1段目のパイプラインに出力され、アボ
ート条件生成回路46で生成された命令5から8のアボ
ードフラグは、マルチプレクサ491を介してDステー
ジ条件アボート信号482として2段目のパイプライン
に出力され、アボート条件生成回路47で生成された命
令8から12のアボートフラグは、マルチプレクサ49
2を介してFステージ条件アボート信号483として3
段目のパイプラインに出力される。
Then, instruction 1 generated by the abort condition generation circuit 45
The abord flags of instructions 5 to 4 are output to the first stage pipeline as the E stage condition abort signal 481, and the abord flags of instructions 5 to 8 generated by the abort condition generation circuit 46 are output to the D stage via the multiplexer 491. The abort flags for instructions 8 to 12, which are output as stage condition abort signals 482 to the second stage pipeline and generated by the abort condition generation circuit 47, are sent to the multiplexer 49.
3 as F stage condition abort signal 483 via 2
Output to the pipeline stage.

一方、インストラクションバッファ2より命令供給器3
に複数の命令が与えられると、命令供給器3より各実行
ユニット5に命令が供給される。
On the other hand, from the instruction buffer 2, the instruction supplier 3
When a plurality of instructions are given to the execution unit 5, the instruction supply device 3 supplies the instructions to each execution unit 5.

すると、各実行ユニット5では、Dステージのデコーダ
51で命令がデーコードされ、(D)ステージヴアリッ
ド信号521が(D)ステージのアンド回路53に、(
E)ステージヴアリッド信号523が(E)ステージの
アンド回路55に与えられるようになる。
Then, in each execution unit 5, the instruction is decoded by the decoder 51 of the D stage, and the (D) stage valid signal 521 is sent to the AND circuit 53 of the (D) stage.
The E) stage valid signal 523 is now given to the AND circuit 55 of the (E) stage.

この場合、命令1に対応する実行ユニット5では、Eス
テージ条件アボート信号481のアボードフラグはal
ex (常に実行)で、この時のbarnch−tak
en522はブランチしないを示すので、この時のアボ
ード判定回路56の出力によりアンド回路55を通って
(E)ステージヴアリッド信号523がそのまま出力さ
れ、レジスタファイル57にライトイネーブル信号とし
て与えられ、レジスタファイル57の内容に基づいた演
算が(E)ステージの演算部58で実行されるようにな
る。
In this case, in the execution unit 5 corresponding to instruction 1, the abord flag of the E stage condition abort signal 481 is set to al
ex (always executed), barnch-tak at this time
Since en522 indicates that there is no branch, the output of the abord determination circuit 56 at this time causes the (E) stage valid signal 523 to be output as is through the AND circuit 55, and is given to the register file 57 as a write enable signal. The calculation based on the contents of 57 is executed in the calculation unit 58 of the (E) stage.

また、命令2のブランチ命令に対応する実行ユニット5
についても、アボードフラグはalex (常に実行)
で、この時のbarnch−1aken523はブラン
チしないを示すので、上述したと同様にして(E)ステ
ージでの演算が実行される。さらに、命令3のデイレイ
命令に対応する実行ユニット5についても、アボードフ
ラグはalex (常に実行)で、この時のbarnc
h−taken522はブランチしないを示すので、上
述したと同様にして(E)ステージでの演算が実行され
る。そして、命令4に対応する実行ユニット5では、ア
ボードフラグはbrad (ブランチしたらアボート)
で、この時のbarnch−taken522はブラン
チするを示すので、この時のアボード判定回路56の出
力によりアンド回路55は(E)ステージヴアリッド信
号523をネゲートし、命令の実行がアボートされるよ
うになる。
Also, the execution unit 5 corresponding to the branch instruction of instruction 2
Also, the abord flag is alex (always run)
At this time, the barnch-1aken 523 indicates that there is no branching, so the calculation at the (E) stage is executed in the same manner as described above. Furthermore, for execution unit 5 corresponding to the delay instruction of instruction 3, the abord flag is alex (always executed), and barnc at this time is
Since h-taken 522 indicates that there is no branch, the operation at stage (E) is executed in the same manner as described above. Then, in execution unit 5 corresponding to instruction 4, the abord flag is brad (abort if branched)
Since the barnch-taken 522 at this time indicates that the branch is to be taken, the AND circuit 55 negates the (E) stage valid signal 523 based on the output of the abord determination circuit 56 at this time, so that the execution of the instruction is aborted. Become.

以下、上述したと同様にして、命令5から8についても
Dステージ条件アボート信号482のアボードフラグと
barnch−taken522の関係により各実行ユ
ニット5のアボートが実行され、さらに命令9から12
についてもFステージ条件アボート信号483のアボー
ドフラグとbarnch−1aken   。
Hereinafter, in the same way as described above, instructions 5 to 8 are also aborted in each execution unit 5 based on the relationship between the abord flag of the D stage condition abort signal 482 and barnch-taken 522, and further instructions 9 to 12 are aborted.
Regarding the F stage condition abort signal 483, the abord flag and barnch-1aken.

523の関係により各実行ユニット5ての命令の実行が
アボートされ、スーバスカラマシンによるディレィドブ
ランチ命令か実行できることになる。
523, the execution of instructions in each execution unit 5 is aborted, allowing the superscalar machine to execute a delayed branch instruction.

次に、第5図は、スーバス力うマシンによるディレィド
ブランチ命令に対する他の動作例を示すものである。
Next, FIG. 5 shows another example of operation in response to a delayed branch instruction by the superbus machine.

この場合、一連の命令のうち命令4がブランチ命令、命
令13がブランチ先命令、命令5がデイレイ命令となり
、命令1から5までの条件アボートフラグはalex 
(常に実行)で、命令6から12までの条件アボートフ
ラグはbrad (ブランチしたらアボート)になって
いる。
In this case, among a series of instructions, instruction 4 is a branch instruction, instruction 13 is a branch destination instruction, and instruction 5 is a delay instruction, and the conditional abort flags for instructions 1 to 5 are alex
(always executed), and the conditional abort flags for instructions 6 to 12 are brad (abort if branched).

このようにしても、上述したと同様にスーバス力うマシ
ンによるディレィドブランチ命令が実行できることにな
る。
Even in this case, the delayed branch instruction can be executed by the superfluous machine in the same way as described above.

また、第6図は、スーバス力うマシンによるディレィド
ブランチ命令に対する、さらに他の動作例を示すもので
ある。
Further, FIG. 6 shows still another example of operation in response to a delayed branch instruction by a superfluous machine.

この場合、一連の命令のうち命令3がブランチ命令、命
令13がブランチ先命令、命令4がデイレイ命令となり
、命令1から4までの条件アボートフラグはalex 
(常に実行)で、命令5から12までの条件アボートフ
ラグはbrad (ブランチしたらアボート)になって
いる。また、ここでは、命令3がブランチ釡令であるが
、命令3と命令4の間に依存関係がある場合で、命令4
が1サイクル送れて実行されるようになる。
In this case, among a series of instructions, instruction 3 is a branch instruction, instruction 13 is a branch destination instruction, instruction 4 is a delay instruction, and the conditional abort flags for instructions 1 to 4 are alex
(always executed), and the conditional abort flags for instructions 5 to 12 are brad (abort if branched). Also, here, instruction 3 is a branch order, but there is a dependency between instruction 3 and instruction 4, and instruction 4
will be executed after one cycle.

この場合、アボート条件生成回路45で生成されたアボ
ードフラグは、Eステージ条件アボート信号481とし
て出力されるとともに、マルチプレクサ491を介して
Dステージ条件アボート信号482として出力され、ア
ボート条件生成回路46で生成されたアボードフラグが
マルチプレクサ492を介してFステージ条件アボート
信号483として出力されることになる。
In this case, the abord flag generated by the abort condition generation circuit 45 is output as the E stage condition abort signal 481 and is also outputted as the D stage condition abort signal 482 via the multiplexer 491, and the abort flag generated by the abort condition generation circuit 46 is The generated abord flag is outputted as the F stage condition abort signal 483 via the multiplexer 492.

このようにしても、上述したと同様にスーパスカラマシ
ンによるディレィドブランチ命令が実行できることにな
る。
Even in this case, the delayed branch instruction can be executed by the superscalar machine in the same way as described above.

次に、スカッシュブランチ方式を採用したスカッシュブ
ランチ命令を実行する場合を説明する。
Next, a case will be described in which a squash branch instruction using the squash branch method is executed.

ここでも、ディレィドブランチ命令を用いたアセンブラ
コードに対してその実行シーケンスが、例えば下記のよ
うに与えられる。
Again, the execution sequence for the assembler code using delayed branch instructions is given as follows, for example.

ステップ アセンブラコード アボートフラグ1   
  addlrl  ro 1    alex2  
   addi r2  ro 2    alex3
     addi r3  ro 3    ale
x4    5beq  r29 r20  xi  
alex5     addi r4  ro 4  
  brex6     addi r5  ro 5
    brad7     addi re  rO
B    brad8     addi r7  r
o 7    brad9     addi r8 
 ro 8    bradl 0    ad+Hr
lOro 10    bradつまり、ここでは、ス
テップ1〜3までの命令に対して条件アボートフラグa
lex (常に実行)が付加され、ステップ4でスカッ
シュブランチ命令5beqが与えられると、ステップ5
の条件アボートフラグ旧ex (ブランチしたら実行)
が付加され、ステップ6以降の命令に対して条件アボー
トフラグbrad (ブランチしたらアボート)される
Step assembler code abort flag 1
addlrl ro 1 alex2
addi r2 ro 2 alex3
addi r3 ro 3 ale
x4 5beq r29 r20 xi
alex5 addi r4 ro 4
brex6 addi r5 ro 5
brad7 addi re rO
B brad8 addi r7 r
o 7 brad9 addi r8
ro 8 bradl 0 ad+Hr
lOro 10 bradIn other words, here, the conditional abort flag a is set for instructions from steps 1 to 3.
lex (always execute) is added and a squash branch instruction 5beq is given in step 4, step 5
Conditional abort flag old ex (run after branching)
is added, and a conditional abort flag brad (abort if branched) is set for instructions after step 6.

これにより、スカッシュブランチ命令5beqが与えら
れると、ブランチノットティクンのときは、、ブランチ
命令の次に命令を実行せずに次の次の命令を実行し、ブ
ランチティクンのときは、ブランチ命令の次の命令を実
行してブランチ先の命令を実行するようになる。
As a result, when a squash branch instruction 5beq is given, when branch not ticked, the next next instruction is executed without executing the instruction after the branch instruction, and when branch ticked, the branch instruction is executed. The next instruction will be executed and the branch destination instruction will be executed.

第7図は、スーパスカラマシンによるスカッシュブラン
チ命令に対する具体的な動作例を示したものである。
FIG. 7 shows a specific example of the operation of the superscalar machine in response to a squash branch instruction.

この場合、一連の命令のうち命令2がスカッシュブラン
チ命令、命令13がブランチ先命令、命令3がデイレイ
命令となり、命令1と2の条件アボートフラグはale
x (常に実行)で、命令3の条件アボートフラグはb
rex (ブランチしたら実行)、命令4から12まで
の条件アボートフラグはbrad(ブランチしたらアボ
ート)になっている。
In this case, among a series of instructions, instruction 2 is a squash branch instruction, instruction 13 is a branch destination instruction, instruction 3 is a delay instruction, and the conditional abort flags of instructions 1 and 2 are ale.
x (always executed), and the conditional abort flag of instruction 3 is b
rex (execute if branched), and the conditional abort flags for instructions 4 to 12 are brad (abort if branched).

しかして、この場合も、命令1、スカッシュブランチ命
令2にそれぞれ対応する実行ユニット5では、Eステー
ジ条件アボート信号481のアボードフラグはいずれも
alex (常に実行)で、この時のbarnch−t
aken522はブランチしないを示すので、この時の
アボード判定回路56の出力によリアンド回路55より
(E)ステージヴアリッド信号523かそのまま出力さ
れ、レジスタファイル57にライトイネーブル信号とし
て与えられ、レジスタファイル57の内容に基づいた演
算が(E)ステージの演算部58て実行される。
In this case as well, in the execution unit 5 corresponding to the instruction 1 and the squash branch instruction 2, the abord flags of the E stage condition abort signal 481 are all alex (always executed), and the barnch-t
Since the aken 522 indicates that there is no branching, the output of the abord determination circuit 56 at this time causes the reand circuit 55 to output the (E) stage valid signal 523 as it is, and gives it to the register file 57 as a write enable signal. The calculation based on the contents of is executed in the calculation section 58 of the (E) stage.

そして、命令3のデイレイ命令に対応する実行ユニット
5については、アボードフラグがblex(ブランチし
たら実行)であるので、この時のbarnch−tak
cn522かブランチしないブランチノットティクンを
示すものであれば、命令3を実行せず命令4以降に進み
、一方、barnch−taken522かブランチす
るブランチティクンを示すものであれば、命令3を実行
して命令4に進む。そして、命令4に対応する実行ユニ
ット5ては、アボードフラグはbrad (ブランチし
たらアボート)で、この時のbarnc’h−1ake
n522はブランチするを示すので、これに応じたアボ
ード判定回路56の出力によりアンド回路55は(E)
ステージヴアリッド信号523をネケートし命令の実行
がアボートされるようになる。
As for the execution unit 5 corresponding to the delayed instruction of instruction 3, the abord flag is blex (execute if branched), so the barnch-tak at this time is
If cn522 indicates a branch-not-tick that does not branch, do not execute instruction 3 and proceed to instruction 4. On the other hand, if barnch-taken522 indicates a branch-tick that does not branch, execute instruction 3. Then proceed to instruction 4. Then, in the execution unit 5 corresponding to instruction 4, the abord flag is brad (abort after branching), and at this time barnc'h-1ake
Since n522 indicates branching, the corresponding output of the abord determination circuit 56 causes the AND circuit 55 to execute (E).
The stage valid signal 523 is negated, and execution of the instruction is aborted.

以下、上述したと同様にして、命令5から8についても
Dステージ条件アボート信号482のアボードフラグと
barnch−taken522の関係により各実行ユ
ニット5のアボートが実行され、さらに命令9から12
についてもFステージ条件アボート信号483のアボー
ドフラグとbarnch−1aken522の関係によ
り各実行ユニット5での命令の実行がアボートされるよ
うになり、スーパス力うマシンによるスカッシュブラン
チ命令が実行できることになる。
Hereinafter, in the same way as described above, instructions 5 to 8 are also aborted in each execution unit 5 based on the relationship between the abord flag of the D stage condition abort signal 482 and barnch-taken 522, and further instructions 9 to 12 are aborted.
Also, due to the relationship between the abord flag of the F stage condition abort signal 483 and the barnch-1aken 522, the execution of instructions in each execution unit 5 is aborted, and the squash branch instruction can be executed by the superpower machine.

なお、本発明は上記実施例にのみ限定されず、要旨を変
更しない範囲で適宜変形して実施できる。
It should be noted that the present invention is not limited to the above-mentioned embodiments, but can be implemented with appropriate modifications without changing the gist.

[発明の効果] 本発明の並列処理計算機は、複数の命令を同時に実行可
能としたものであって、複数の命令のうちからディレィ
ドブランチ命令またはスカッシュブランチ命令を判断す
るとともにこの判断結果に基づいて各命令にアボート条
件を示すフラグを付加するフラグ付加手段、上記各命令
に付加されたアボート条件を示すフラグと上記各ブラン
チ命令の成否により各命令の実行をアボートするアボー
ト実行手段より構成したものであるから、ディレィドブ
ランチ命令またはスカッンユブランチ命令に基づいて各
命令に付加されるアボート条件フラグとブランチ命令の
成否の関係から各命令の実行をアボートできるようにな
り、スーパスカラ型のプロセッサでも、ディレィドブラ
ンチおよびスカッシュブランチを実行することかでき、
RISC型のプロセッサのプログラムとオブジェクトコ
ンパチビリティを保つことができることから、豊富なソ
フトウアア資産を有効に活用して、高速処理を実現する
ことかできる。
[Effects of the Invention] The parallel processing computer of the present invention is capable of executing a plurality of instructions at the same time. a flag adding means for adding a flag indicating an abort condition to each instruction, a flag indicating an abort condition added to each of the above instructions, and an abort execution means for aborting the execution of each instruction depending on the success or failure of each of the above branch instructions. Therefore, it is now possible to abort the execution of each instruction based on the relationship between the abort condition flag added to each instruction based on a delayed branch instruction or a scanned branch instruction and the success or failure of the branch instruction. Even in a superscalar type processor, You can perform delayed branches and squash branches,
Since it is possible to maintain object compatibility with programs of RISC type processors, it is possible to effectively utilize abundant software assets and achieve high-speed processing.

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

第1図は、本発明の一実施例の全体構成を示すブロック
図、第2図は、同実施例に用いられる実行ユニットを示
すブロック図、第3図は、同実施例に用いられる条件ア
ボート判定回路を示すブロック図、第4図乃至第7図は
、同実施例を説明するための図である。 1・・・フェッチ回路、2・インストラクションハッフ
ァ、3・・・命令供給器、4・・・条件アボート生成回
路、44・・・ブランチ命令デコーダ、45.46.4
7・・・アボート条件生成回路、491.492・・マ
ルチプレクサ、50・・・コントロール回路、5・・実
行ユニット、51・・・デコーダ、52]、523・つ
゛アリット信号、52.55・・・オアンド回路、54
.56・・・アボート判定回路、57・・レジスタファ
イル。 出願人代理人 弁理士 鈴 江 武 彦! に件アボートフラグ lex lex 旦1eX 1+raj br<J ri rad brへ6 br仄Δ rJ br必 br匂 ブランチ先命令 第7図
FIG. 1 is a block diagram showing the overall configuration of an embodiment of the present invention, FIG. 2 is a block diagram showing an execution unit used in the embodiment, and FIG. 3 is a block diagram showing a conditional abort used in the embodiment. Block diagrams showing the determination circuit, FIGS. 4 to 7, are diagrams for explaining the same embodiment. 1... Fetch circuit, 2. Instruction huffer, 3... Instruction supplier, 4... Condition abort generation circuit, 44... Branch instruction decoder, 45.46.4
7... Abort condition generation circuit, 491.492... Multiplexer, 50... Control circuit, 5... Execution unit, 51... Decoder, 52], 523... Alit signal, 52.55... Oand circuit, 54
.. 56...Abort judgment circuit, 57...Register file. Applicant's agent, patent attorney Takehiko Suzue! Abort flag lex lex dan1eX 1+raj br<J ri rad br6 br仄Δ rJ brnecessary branch destination instruction Figure 7

Claims (1)

【特許請求の範囲】 複数の命令を同時に実行可能とした並列処理計算機にお
いて、 複数の命令のうちからディレイドブランチ命令またはス
カッシュブランチ命令を判断するとともにこの判断結果
に基づいて各命令にアボート条件を示すフラグを付加す
るフラグ付加手段と、上記各命令に付加されたアボート
条件を示すフラグと上記各ブランチ命令の成否の関係か
ら各命令の実行をアボートするアボート実行手段とを具
備したことを特徴とする並列処理計算機。
[Claims] In a parallel processing computer that can execute multiple instructions simultaneously, a delayed branch instruction or a squash branch instruction is determined from among the multiple instructions, and an abort condition is indicated to each instruction based on the result of this determination. The present invention is characterized by comprising a flag adding means for adding a flag, and an abort execution means for aborting the execution of each instruction based on the relationship between the flag added to each of the instructions indicating an abort condition and the success or failure of each of the branch instructions. Parallel processing computer.
JP34034790A 1990-11-30 1990-11-30 Parallel processing computer Expired - Fee Related JP2835179B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP34034790A JP2835179B2 (en) 1990-11-30 1990-11-30 Parallel processing computer
US07/799,981 US5446849A (en) 1990-11-30 1991-11-29 Electronic computer which executes squash branching
DE69130757T DE69130757T2 (en) 1990-11-30 1991-11-29 Execution device for conditional branch instructions
EP91311167A EP0488819B1 (en) 1990-11-30 1991-11-29 Conditional branch instructions execution apparatus
US08/429,103 US5617553A (en) 1990-11-30 1995-04-26 Computer system which switches bus protocols and controls the writing of a dirty page bit of an address translation buffer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34034790A JP2835179B2 (en) 1990-11-30 1990-11-30 Parallel processing computer

Publications (2)

Publication Number Publication Date
JPH04205625A true JPH04205625A (en) 1992-07-27
JP2835179B2 JP2835179B2 (en) 1998-12-14

Family

ID=18336068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34034790A Expired - Fee Related JP2835179B2 (en) 1990-11-30 1990-11-30 Parallel processing computer

Country Status (1)

Country Link
JP (1) JP2835179B2 (en)

Also Published As

Publication number Publication date
JP2835179B2 (en) 1998-12-14

Similar Documents

Publication Publication Date Title
KR100208889B1 (en) Parallel processing device amd parallel processing method
EP0996057B1 (en) Data processor with an instruction unit having a cache and a ROM
US20020029333A1 (en) Methods and apparatus for branch prediction using hybrid history with index sharing
US4954943A (en) Data processing system
EP0488819B1 (en) Conditional branch instructions execution apparatus
US7620804B2 (en) Central processing unit architecture with multiple pipelines which decodes but does not execute both branch paths
US7552313B2 (en) VLIW digital signal processor for achieving improved binary translation
JP3486690B2 (en) Pipeline processor
EP1354267A2 (en) A superscalar processor having content addressable memory structures for determining dependencies
US5390306A (en) Pipeline processing system and microprocessor using the system
JPH06266556A (en) Data processor
JPH02293931A (en) Control unit
JPH04205625A (en) Parallel processing computer
US5187782A (en) Data processing system
JP2006309454A (en) Program control method and processor
JP2591325B2 (en) Branch control device
JP2944563B2 (en) Pipeline type information processing device
JP3493110B2 (en) High-speed branch processing unit
JP2597744B2 (en) Branch control method
JPH0774992B2 (en) Data processing device
JP2001005662A (en) Processor device, code generation device and its method
JPH02211533A (en) Computer apparatus for performing selective execution of instruction following branch instruction
JPH07262007A (en) Information processor
JPH11306019A (en) Information processing device and processor
JPH02148328A (en) System for prefetching operand data

Legal Events

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

Free format text: PAYMENT UNTIL: 20081002

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20081002

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20091002

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20101002

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees