JP3161711B2 - Information processing device - Google Patents

Information processing device

Info

Publication number
JP3161711B2
JP3161711B2 JP01706688A JP1706688A JP3161711B2 JP 3161711 B2 JP3161711 B2 JP 3161711B2 JP 01706688 A JP01706688 A JP 01706688A JP 1706688 A JP1706688 A JP 1706688A JP 3161711 B2 JP3161711 B2 JP 3161711B2
Authority
JP
Japan
Prior art keywords
instruction
instructions
circuit
group
subsequent
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
JP01706688A
Other languages
Japanese (ja)
Other versions
JPH01194031A (en
Inventor
洋一 新谷
和則 栗山
亨 庄内
栄樹 釜田
潔 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP01706688A priority Critical patent/JP3161711B2/en
Publication of JPH01194031A publication Critical patent/JPH01194031A/en
Application granted granted Critical
Publication of JP3161711B2 publication Critical patent/JP3161711B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はいわゆる汎用コンピユータ等の、プログラム
からみて概念的に命令が一つずつ実行される情報処理装
置に関わり、特に処理速度向上のために複数の演算器に
て複数の命令を同時に実行する上で重要となる方式に関
する。
The present invention relates to an information processing apparatus such as a so-called general-purpose computer which executes instructions one by one conceptually from the viewpoint of a program. The present invention relates to a method that is important in simultaneously executing a plurality of instructions by a plurality of arithmetic units.

〔従来の技術〕[Conventional technology]

概念的に命令が一つずつ実行されるコンピユータの
内、並列演算によって高速化を図つた例として、IBM360
/91に関する文献(R.M.Tomasule“An Efficient Algori
thm for Exploiting Multiple Arithmetic units",IBM
Journal,1967.Jan)や日本公開特許昭58−176751“命令
語解読ユニツト”に記載の技術がある。これらのコンピ
ユータでは、概念的に順序付けられた複数命令が異なる
演算器で実行されるため結果の書き込みが概念的順序と
異なる場合がある。従つて割り込みが発生した場合割り
込みの原因となつた命令に対し、どの命令まで実行され
たかが一般的には識別困難である。また分岐命令で分岐
判定が下るまでの間予測判定に基づく実行を行なう方式
を用いる場合、予測失敗時に予測命令による結果の誤つ
た書き込みが生じると、その回復処理が必要となる。
Among the computers that execute instructions one by one conceptually, IBM360
/ 91 (RMTomasule “An Efficient Algori
thm for Exploiting Multiple Arithmetic units ", IBM
Journal, 1967. Jan.) and Japanese Patent Application Laid-Open No. 58-177671, "Command word decoding unit". In these computers, the writing of the result may be different from the conceptual order because a plurality of conceptually ordered instructions are executed by different arithmetic units. Therefore, when an interrupt occurs, it is generally difficult to identify up to which instruction the instruction that caused the interrupt has been executed. Further, in the case of using a method in which the execution based on the prediction determination is performed until the branch determination is made by the branch instruction, if the result of the prediction instruction is erroneously written at the time of prediction failure, recovery processing is required.

〔発明が解決しようとする課題〕[Problems to be solved by the invention]

米国IBM社の370アーキテクチヤーに準拠する情報処理
装置に於いては、上記のような結果の書き込み順序の逆
転はプログラムから観測されてはならない。従つて上記
のような複数演算器を有し命令の同時もしくは追い抜き
実行の有り得る情報処理装置では、370アーキテクチヤ
ーにおける命令実行順序仕様に準拠するためには結果の
書き込みによつて失われる記憶装置のフイールド上のデ
ータとそのアドレスを個々の命令実行に際して予め待避
しておき、命令実行のオーバランが発生し該命令の実行
を無効化する必要が生じた場合は待避したデータを再び
元のフイールドに回復するといつた処理を行なう必要が
ある。この方法は日本特公昭56−40382「情報処理装
置」又は対応するUS特許4,385,365にて開示されている
ように従来でも類似の目的のために使用することがあ
る。しかし、この方法は制御が複雑であること、データ
とアドレスの待避レジスタが必要でコストが高くなるこ
と、データの回復に時間を要するので、この命令実行の
無効果が頻発すると処理装置全体の性能を返つて下げる
可能性がある等の問題点がある。またさらに、370アー
キテクチヤーにおける主記憶に対して書き込みのオーバ
ランが発生すると、フイールドの回復前に他のプロセツ
サやチヤネルからオーバランして書き込まれたデータを
参照される可能性があり、その場合は上記待避回復によ
る順序保証方式によつても該アーキテクチヤーによる順
序規定に準拠することができない。
In an information processing apparatus conforming to the IBM 370 architecture, the reversal of the result writing order as described above should not be observed from the program. Therefore, in an information processing apparatus having a plurality of arithmetic units as described above and capable of simultaneously executing or overtaking an instruction, in order to comply with the instruction execution order specification in the 370 architecture, a storage device lost by writing a result is required. The data on the field and its address are saved in advance at the time of execution of each instruction. If an overrun of the instruction execution occurs and it becomes necessary to invalidate the execution of the instruction, the saved data is restored to the original field again. Then, it is necessary to perform some processing. This method may be conventionally used for a similar purpose as disclosed in Japanese Patent Publication No. 56-40382 "Information processing apparatus" or the corresponding US Pat. No. 4,385,365. However, this method requires complicated control, requires a save register for data and address, increases the cost, and requires time for data recovery. There is a problem that there is a possibility of lowering by returning. Furthermore, if a write overrun occurs in the main memory in the 370 architecture, there is a possibility that data that is overrun and written from another processor or channel will be referenced before the field is recovered. Even the order guarantee method based on the backup recovery cannot conform to the order regulation by the architecture.

上述のような命令実行のオーバランが発生するのは命
令実行に付随する割り込みが起こる場合や、分岐命令の
後続命令を予測実行していたときに予測が誤つていたこ
とが判定された場合等である。
The overrun of the instruction execution as described above occurs when an interrupt accompanying the instruction execution occurs, or when it is determined that the prediction was incorrect when the instruction following the branch instruction was being predicted and executed. It is.

本発明は複数の演算器を有し複数の命令を効率的に実
行できる情報処理装置を提供することを目的とする。
An object of the present invention is to provide an information processing apparatus having a plurality of arithmetic units and capable of efficiently executing a plurality of instructions.

さらに本発明は、複数の命令を並列に実行でき、かつ
命令の実行の中断を簡単に行える情報処理装置を提供す
ることを他の目的とする。
It is another object of the present invention to provide an information processing apparatus capable of executing a plurality of instructions in parallel and easily interrupting the execution of the instructions.

〔課題を解決するための手段〕[Means for solving the problem]

上記目的は、本発明に於いては、同時に実行する複数
の命令の間では結果の書き込みの追い抜きが発生しない
よう制御することで実現する。この為、以下に述べるよ
うな命令実行に関する制御手段を用いる。
The above object is achieved in the present invention by performing control so that overwriting of result writing does not occur between a plurality of instructions executed at the same time. For this purpose, a control means relating to instruction execution as described below is used.

(1)概念的実行順序の観点から連続している複数の命
令を同時に演算器にセツトアツプする命令セツトアツプ
手段。ただし、分岐命令の後続命令は分岐の成立側,不
成立側のいずれであつても該分岐命令に連続すると見な
す。
(1) Instruction set-up means for simultaneously setting up a plurality of instructions that are continuous from the viewpoint of a conceptual execution order in an arithmetic unit. However, the instruction following the branch instruction is regarded as being continuous with the branch instruction regardless of whether the branch is taken or not taken.

(2)同時にセツトアツプする複数の命令のうちの任意
の命令に着目した場合、該命令の演算実行に付随し該命
令もしくはその後続命令を無効化する要因が検出される
可能性のある最終演算ステージより前に書き込みを実行
する後続命令が同時にセツトアツプすることのないよ
う、演算器へセツトアツプする命令の組合せを制限する
セツトアツプ命令制限手段。
(2) When focusing on an arbitrary instruction among a plurality of instructions that are set up at the same time, a final operation stage in which a factor accompanying the execution of the instruction and invalidating the instruction or a subsequent instruction may be detected. Set-up instruction restricting means for restricting a combination of instructions to be set-up to an arithmetic unit so that subsequent instructions which execute writing earlier do not simultaneously set up.

(3)同時にセツトアツプした複数命令の実行に当たつ
て、何らかの命令で実行待ち合わせ要因が発生したと
き、書き込みを行なう可能性のある全ての後続命令の実
行を待ち合わせるよう制御する後続命令実行待ち合わせ
手段。
(3) Subsequent instruction execution queuing means for controlling execution of a plurality of instructions set up at the same time so as to wait for the execution of all succeeding instructions which may be written when an execution queuing factor occurs for any instruction.

(4)同時にセツトアツプした複数の命令のうちのいず
れかの命令の演算実行に付随して該命令もしくはその後
続命令を無効化する要因が検出された場合、該命令及び
同時に実行している全ての後続命令の内、無効化すべき
全ての命令実行をそれらの書き込みステージまでに抑止
する後続命令実行抑止手段。
(4) If a factor that invalidates the instruction or a subsequent instruction is detected along with the execution of the operation of any one of the plurality of instructions set up at the same time, the instruction and all the instructions that are being executed simultaneously are detected. Subsequent instruction execution inhibiting means for inhibiting the execution of all instructions to be invalidated among the subsequent instructions before the writing stage.

〔作用〕[Action]

上記(1)〜(4)で述べた手段を設けることによ
り、同時に演算実行されている複数命令の何れに於いて
も自命令もしくは後続命令を無効化する要因がない場合
はこれ等は同時に実行が終了するので処理時間は大幅に
短縮される。もし、いずれかで無効化要因が検出された
ときには書き込みのオーバランがおきないので、上で述
べたような回復動作成しに引き続き正しい命令もしくは
割り込み処理等を直ちに開始することができる。
By providing the means described in (1) to (4) above, if there is no cause for invalidating the own instruction or the succeeding instruction in any of a plurality of instructions being executed at the same time, these are executed simultaneously. , The processing time is greatly reduced. If an invalidation factor is detected in any of them, no overrun occurs in writing, so that a correct instruction or interrupt processing can be immediately started immediately after the recovery operation is created as described above.

〔実施例〕〔Example〕

以下本発明に好適な実施例を図面を用いて説明する。
以下の実施例では日立製作所のMシリーズアーキテクチ
ヤに基づく計算機を例に取り説明を行なう。
Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings.
In the following embodiment, a computer based on the Hitachi M-series architecture will be described as an example.

上記アーキテクチヤにおける命令フオーマツトの例を
第9図に示す。(1)はロード命令,ストア命令,四則
演算命令等に用いられる命令形式の例である。OPは命令
コードであり、命令の種類を示す。R1は第1オペランド
を格納する汎用レジスタの番号を示す。X2,B2は第2オ
ペランドのアドレスを生成するために用いるインデツク
スレジスタ、及びベースレジスタの番号を示す。インデ
ツクスレジスタ、及びベースレジスタは汎用レジスタを
指定する。D2はアドレスを生成するために用いるアドレ
ス変位である。オペランドアドレスはインデツクスレジ
スタ,ベースレジスタ、およびアドレス変位を加算して
生成される。加算命令は第2オペランドアドレス上の主
記憶データを読みだし、R1で指定される汎用レジスタ上
の第1オペランドと加算し、結果を再び汎用レジスタR1
上に格納する。(2)は条件分岐命令に用いられる命令
形式の例である。OPは命令コードであり、命令の種類を
示す。M1は分岐成立となる条件コードの値を指定するマ
スク値である。X2,B2,D2は(1)と同様に第2オペラン
ドアドレスを指定する。分岐成立の場合第2オペランド
アドレス上の命令から実行を継続する。
FIG. 9 shows an example of an instruction format in the above-mentioned architecture. (1) is an example of an instruction format used for a load instruction, a store instruction, an arithmetic operation instruction, and the like. OP is an instruction code, which indicates the type of instruction. R1 indicates the number of a general-purpose register that stores the first operand. X2 and B2 indicate the numbers of the index register and the base register used for generating the address of the second operand. The index register and the base register specify general-purpose registers. D2 is the address displacement used to generate the address. An operand address is generated by adding an index register, a base register, and an address displacement. The add instruction reads the main memory data on the second operand address, adds it to the first operand on the general register specified by R1, and returns the result again to the general register R1.
Store above. (2) is an example of an instruction format used for a conditional branch instruction. OP is an instruction code, which indicates the type of instruction. M1 is a mask value that specifies the value of a condition code that establishes a branch. X2, B2, and D2 specify the second operand address as in (1). If the branch is taken, execution is continued from the instruction on the second operand address.

第1図は本発明による計算機の全体構成を示す。1は
記憶装置,2は命令制御ユニツト、3は演算ユニツト、4,
5,6はn個の演算器E1,E2,....,En、7は演算制御ユニツ
ト、8は入力交換回路、9は出力交換回路、そして10は
入出力装置である。
FIG. 1 shows the overall configuration of a computer according to the present invention. 1 is a storage device, 2 is an instruction control unit, 3 is an operation unit, 4,
Reference numerals 5, 6 denote n operation units E1, E2,..., En, 7 an operation control unit, 8 an input switching circuit, 9 an output switching circuit, and 10 an input / output device.

記憶装置1はプログラムやデータを保持し、さらにこ
れ等の読みだし、書き込みの制御を行い従来技術により
構成する。また入出力装置10は記憶装置1に対し外部デ
ータの書き込みと、外部へのデータ読みだしを要求する
が、これも従来技術にて構成する。命令制御ユニツト2
は、複数の命令を記憶装置1から読みだし、同時に最大
p個の命令の解読を行ない、これらの命令に必要なオペ
ランドの読みだしを同時に行なう。このため命令制御ユ
ニツト2から命令読みだしアドレスMAIが記憶装置1に
送出され、命令列MDIが記憶装置1から命令制御ユニツ
ト2に送出される。また最大p個のオペランドアドレス
MAi(i=1〜p)が同時に2から1に送出され、読み
だされたp個のオペランドデータMDOi(i=1〜p)が
1から2に送出される。MAi(i=1〜p)の送出とと
もに、後述の命令キユー(211(第2図))のp個の入
力ポインタQIPi(i=1〜p)が命令制御ユニツト2か
ら記憶装置1に送出され、さらにオペランドデータMDOi
(i=1〜p)の送出に伴つて、データの送出を示すア
ドバンス信号ADVi(i=1〜p)及び各データの一次格
納場所である後述のオペランドバツフア(216(第2
図))の番号OBNOi(i=1〜p)が記憶装置1から命
令制御ユニツト2に送出される。本実施例ではOBNOi
(i=1〜p)としては順に入力ポインタQIPi(i=1
〜p)と同じ値を返す。これは後述するように本実施例
では命令キユー211(第2図)とオペランドバツフア216
(第2図)を1対1に対応させ、同一の入出力ポインタ
により制御するからである。
The storage device 1 holds programs and data, and further controls reading and writing of the programs and data, and is configured by a conventional technique. The input / output device 10 requests the storage device 1 to write external data and read data to the outside. This is also configured by a conventional technique. Command control unit 2
Reads a plurality of instructions from the storage device 1, decodes at most p instructions at the same time, and simultaneously reads operands required for these instructions. Therefore, the instruction read address MAI is sent from the instruction control unit 2 to the storage device 1, and the instruction sequence MDI is sent from the storage device 1 to the instruction control unit 2. Also, at most p operand addresses
MAi (i = 1 to p) are simultaneously transmitted from 2 to 1, and p read operand data MDOi (i = 1 to p) are transmitted from 1 to 2. Along with the transmission of MAi (i = 1 to p), p input pointers QIPi (i = 1 to p) of the instruction queue (211 (FIG. 2)) to be described later are transmitted from the instruction control unit 2 to the storage device 1. And operand data MDOi
With the transmission of (i = 1 to p), an advance signal ADVi (i = 1 to p) indicating the transmission of data and an operand buffer (216 (second
The numbers OBNOi (i = 1 to p) of FIG. 1) are sent from the storage device 1 to the instruction control unit 2. In this embodiment, OBNOi
As (i = 1 to p), the input pointer QIPi (i = 1)
~ P). As will be described later, in this embodiment, the instruction queue 211 (FIG. 2) and the operand buffer 216 are used.
(FIG. 2) is made to correspond one-to-one and is controlled by the same input / output pointer.

命令制御ユニツト2は解読の完了した命令の中から実
行順に連続した最大m個を選択し、これ等及びこれ等の
付随情報を演算ユニツト3に同時にセツトアツプする。
このため、各情報のセツトアツプを行なうための信号線
群をm命令分としてm組設ける。これらをセツトアツプ
ポートi(i=1〜m)と呼ぶ。入力交換回路8にセツ
トアツプする情報には、セツトアツプポート(i=1〜
m)に対応して、命令INSTi(i=1〜m),レジスタ
オペランドRDi(i=1〜m),メモリオペランドMDi
(i=1〜m),オペランドアドレスMAi(i=1〜
m)、そして書き込みレジスタ番号RWAi(i=1〜m)
がある。また演算制御ユニツト7にセツトアツプする情
報には、セツトアツプポートi(i=1〜m)によりセ
ツトアツプする命令のうち有効なものを示す有効命令信
号IRDYi(i=1〜m),各命令の演算を実行させる演
算器番号ENOi(i=1〜m),条件分岐命令であること
を示す解読情報BCi(i=1〜m),条件分岐命令のM1
フイールド(マスク)BCMi(i=1〜m)、そしてメモ
リオペランドの読みだしが遅れていることを示すオペラ
ンド待ち信号ADVWi(i=1〜m)がある。命令制御ユ
ニツト2は上記命令セツトアツプ制御を行なうため、演
算制御ユニツト7からセツトアツプポートi(i=1〜
m)毎にそのセツトアツプ完了を示す信号OBTi(i=1
〜m)、同時にセツトアツプされた命令の個々の演算開
始時刻のうち最後の時刻を示す最終開始時刻信号LBOP、
そして同時にセツトアツプサれた命令の個数を示す信号
LINOを受け取る。さらに命令制御ユニツト2は演算制御
ユニツト7から条件分岐命令の分岐成立信号TKNと、割
り込みの発生を示す信号INTを受け取る。
The instruction control unit 2 selects at most m consecutive instructions in the order of execution from the decoded instructions, and sets up these and their accompanying information to the arithmetic unit 3 at the same time.
Therefore, m groups of signal lines for setting up each information are provided for m instructions. These are called set-up ports i (i = 1 to m). The information to be set up in the input switching circuit 8 includes a set-up port (i = 1 to 1).
m), the instruction INSTi (i = 1 to m), the register operand RDi (i = 1 to m), and the memory operand MDi
(I = 1 to m), operand address MAi (i = 1 to m)
m), and the write register number RWAi (i = 1 to m)
There is. The information to be set up in the arithmetic control unit 7 includes an effective instruction signal IRDYi (i = 1 to m) indicating an effective instruction among the instructions set up by the set up port i (i = 1 to m), and the operation of each instruction. (I = 1 to m), decoding information BCi (i = 1 to m) indicating a conditional branch instruction, and M1 of the conditional branch instruction
There are a field (mask) BCMi (i = 1 to m) and an operand waiting signal ADVWi (i = 1 to m) indicating that the reading of the memory operand is delayed. The instruction control unit 2 performs the above-described instruction set-up control, so that the operation control unit 7 sends the set-up port i (i = 1 to
m), the signal OBTi (i = 1) indicating the completion of the setup
To m), the last start time signal LBOP indicating the last time among the individual operation start times of the instructions set up simultaneously.
And a signal indicating the number of instructions set up at the same time.
Receive LINO. Further, the instruction control unit 2 receives from the arithmetic control unit 7 a branch establishment signal TKN of a conditional branch instruction and a signal INT indicating occurrence of an interrupt.

命令制御ユニツト2は出力交換回路9からセツトアツ
プポートi(i=1〜m)に対応した演算結果EDi(i
=1〜m)とそのレジスタ書き込み指令RWCi(i=1〜
m)、書き込みレジスタ番号RWAi(i=1〜m)を受け
取り、これに従い汎用レジスタ群200にこれらの結果の
書き込みを行なう。
The instruction control unit 2 outputs from the output switching circuit 9 the operation result EDi (i) corresponding to the set-up port i (i = 1 to m).
= 1 to m) and its register write command RWCi (i = 1 to
m), the write register number RWAi (i = 1 to m) is received, and these results are written to the general-purpose register group 200 in accordance with the received register numbers RWAi (i = 1 to m).

演算器4,5,6はおれぞれ特定の種類の命令グループの
み実行可能なものあるいは全てを実行可能とするものの
いずれかで構成するものとする。各演算器には演算に必
要な入力データと演算実行制御情報が入力交換回路8か
ら送出される。演算器Ei(i=1〜n)への入力データ
としては、命令コードINSTEi,レジスタオペランドRDEi,
メモリオペランドMDEi,オペランドアドレスMAEi,書き込
みレジスタ番号RWAEiがあり、演算実行制御情報として
は、セツトアツプ完了信号OBTEi,演算実行許可信号EXEi
及び演算実行の取り消し信号RESEiがある。各演算器Ei
からは演算の出力データ及び演算制御情報が出力交換回
路9に送出される。演算器Eiからの出力としては、演算
結果EDEi,結果のレジスタ書き込み指令RWCEi,書き込み
レジスタ番号RWAEi,結果のメモリ書き込み指令STCEi,書
き込みメモリアドレスSTAEi,条件コードの変更を示す信
号CCSEi、そして条件コードCCEiがあり、また演算制御
情報としては演算の終了を示す信号EOPEi,完了型割り込
み条件の発生を示す信号INTCEi、そして抑止型割り込み
条件の発生を示す信号INTSEiがある。
Each of the arithmetic units 4, 5, and 6 is configured to be one that can execute only a specific type of instruction group or one that can execute all. Input data and operation execution control information required for the operation are sent from the input exchange circuit 8 to each operation unit. The input data to the arithmetic unit Ei (i = 1 to n) include an instruction code INSTEi, a register operand RDEi,
There are a memory operand MDEi, an operand address MAEi, and a write register number RWAEi. The operation execution control information includes a set-up completion signal OBTEi and an operation execution enable signal EXEi.
And an operation execution cancel signal RESEi. Each operator Ei
Then, the output data of the operation and the operation control information are sent to the output switching circuit 9. The output from the arithmetic unit Ei includes an operation result EDEi, a result register write command RWCEi, a write register number RWAEi, a result memory write command STCEi, a write memory address STAEi, a signal CCSEi indicating a change in a condition code, and a condition code CCEi. The operation control information includes a signal EOPEi indicating the end of the operation, a signal INTCEi indicating the occurrence of the completion type interrupt condition, and a signal INTSEi indicating the occurrence of the inhibition type interrupt condition.

全ての演算器Ei(i=1〜n)には、演算制御ユニツ
ト7から演算実行取り消し信号RESを入力する。取消信
号はRESは割り込み条件が発生したときもしくは条件分
岐命令で分岐予測が失敗したときに‘1'となり、このと
き、各演算器Ei(i=1〜n)は後続命令の演算実行を
取り消す。特にレジスタ書き込み指令RWCEi(i=1〜
n)、及びメモリ書き込み指令MWCEi(i=1〜n)を
抑止し、取り消すべき命令による結果の書き込みが生じ
ないようにする。またこの時全ての演算器Ei(i=1〜
n)は演算終了信号EOPEi(i=1〜n)を‘1'とす
る。
The operation execution cancel signal RES is input from the operation control unit 7 to all the operation units Ei (i = 1 to n). The cancel signal becomes "1" when an interrupt condition occurs or when branch prediction fails with a conditional branch instruction. At this time, each of the arithmetic units Ei (i = 1 to n) cancels the execution of the operation of the subsequent instruction. . In particular, the register write command RWCEi (i = 1 to
n) and the memory write command MWCEi (i = 1 to n) are suppressed so that writing of a result by an instruction to be canceled does not occur. At this time, all the arithmetic units Ei (i = 1 to
n) sets the operation end signal EOPEi (i = 1 to n) to '1'.

演算器Eiはセツトアツプ完了信号OBTEiに同期して入
力データを取り込む。以後命令やオペランドの条件等に
より1ないし複数サイクルをかけて演算実行を行なう
が、各サイクルの実行は信号EXEiが‘1'のときのみ許可
される。信号EXEiが‘0'のときは演算実行は待ち状態に
なる。信号EXEiが‘0'となるのは例えば必要なメモリオ
ペランドが到着していないときである。また、RESEi信
号が‘1'となつた場合、演算器Eiは直ちに演算実行を取
り消す。この時レジスタ書き込み指令RWCEi、及びメモ
リ書き込み指令MWCEiを抑止し、取り消すべき命令によ
る結果の書き込みが生じないようにし、また演算終了信
号EOPEiを1とする。個々の演算器の実行制御は複雑な
命令の演算を行なうものはよく知られたマイクロプログ
ラム制御によつて、また簡単な命令の演算を行なうもの
は通常の論理回路による制御等で行なえばよい。
The arithmetic unit Ei takes in input data in synchronization with the set-up completion signal OBTEi. Thereafter, the operation is executed over one or more cycles depending on the condition of the instruction or the operand, but the execution of each cycle is permitted only when the signal EXEi is "1". When the signal EXEi is “0”, the operation execution is in a waiting state. The signal EXEi becomes '0' when, for example, a required memory operand has not arrived. When the RESEi signal becomes “1”, the arithmetic unit Ei immediately cancels the execution of the arithmetic operation. At this time, the register write command RWCEi and the memory write command MWCEi are suppressed to prevent the result from being written by the command to be canceled, and the operation end signal EOPEi is set to 1. The execution control of the individual arithmetic units may be performed by well-known microprogram control for operations of complicated instructions, and may be performed by control of ordinary logic circuits for operations of simple instructions.

第11図は第i番目の演算器Eiの構成例を示す。1101,1
102は演算数を保持するワークレジスタである。1101に
は入力交換回路よりレジスタオペランドRDEiを、1102に
は入力交換回路よりメモリオペランドMDEiを、さらに両
者に命令セツトアツプ完了信号OBTEi信号を入力する。
ワークレジスタ1101,1102は信号OBTEiが‘1'となつたと
き、それぞれ信RDEi,MDEiを取り込む。1103は入力交換
回路からOBTEi信号を受け取り、これが‘1'の時オペラ
ンドアドレスMAEi、書き込みレジスタアドレスRWAEiを
取り込む。1104は加減算器,シフタ,論理演算器等から
なるALUである。ALU1104にはワークレジスタ1101,1102
から演算数を、ALU制御回路1107からALU制御信号を入力
し、各命令の演算を行なう。ワークレジスタ1101,1102
にはALUの出力データパスを接続し、複数サイクルに及
ぶ演算を可能とする。このためALU制御回路1107からは
ワークレジスタ1101,1102へのデータ取り込み制御信号
を入力する。ALU制御回路1107にはOBTEi,INSTEi,EXEi信
号を入力する。ALU制御回路1107はマイクロプログラム
とその実行制御回路からなる従来技術で構成し、OBTEi
信号が‘1'となつたとき、INSTEi信号を取り込み、この
命令に対応したマイクロプログラムの最初のマイクロ命
令を読み出す。演算ステージが1サイクルで終了する命
令の場合、この最初のマイクロ命令に演算終了を、また
複数サイクルを要する場合は最後の演算ステージを制御
するマイクロ命令に演算終了を指定し、これをEOPEi信
号として出力する。マイクロ命令は各演算サイクル毎の
ALU制御を指定するが、指定に従つて実際に実行するの
はEXEi信号が‘1'となつたときである。1108は条件コー
ド生成回路であり、ALUから演算結果、ALU制御回路1107
から条件コード生成情報を入力し、演算ステージより1
サイクル後に条件コードCCEiを生成する。1109は割り込
み条件検出回路でありALUからの演算結果とALU制御回路
1107からの割り込み検出制御情報を入力し演算ステージ
より1サイクル後に割り込み条件発生信号INTCEi,INTSE
iを生成する。1110は書き込み制御回路であり、ALU制御
回路1107から結果書き込み制御情報を入力し演算ステー
ジより1サイクル後にSTCEi,RWCEi,CCSEi信号を生成す
る。また制御回路1110には入力交換回路8から信号RESE
i、演算制御ユニツト7から信号RESを入力し、これらの
うち何れが‘1'であつても、STCEi,RWCEi,CCSEiの各信
号を直ちに‘0'に抑止する。信号RES、及びRESiはさら
にALU制御回路1107にも入力し、これ等のうち何れが
‘1'となつても1107によるALU制御をキヤンセルする。1
105,1106は演算結果、書き込みメモリアドレス,書き込
みレジスタ番号を保持するパイプラインレジスタであ
り、演算ステージより1サイクル後にEDEi,STAEi,RWAEi
を出力する。E1−nの何れの演算器に於いてもALU制御
回路1107,書込み制御回路1110に相当する回路を有し、R
ES,TESi信号に対する動作は同様である。
FIG. 11 shows a configuration example of the i-th arithmetic unit Ei. 1101,1
102 is a work register that holds the number of operations. The register operand RDEi is input to 1101 from the input exchange circuit, the memory operand MDEi is input to the input exchange circuit from 1102, and the instruction set-up completion signal OBTEi signal is input to both.
When the signal OBTEi becomes '1', the work registers 1101 and 1102 fetch the signals RDEi and MDEi, respectively. 1103 receives the OBTEi signal from the input switching circuit, and when it is "1", fetches the operand address MAEi and the write register address RWAEi. An ALU 1104 includes an adder / subtracter, a shifter, a logical operation unit, and the like. ALU1104 has work registers 1101 and 1102
, And an ALU control signal from the ALU control circuit 1107, and performs the operation of each instruction. Work registers 1101, 1102
Is connected to the output data path of the ALU, enabling arithmetic over multiple cycles. For this reason, the ALU control circuit 1107 inputs data capture control signals to the work registers 1101 and 1102. The OBTEi, INSTEi, and EXEi signals are input to the ALU control circuit 1107. The ALU control circuit 1107 is composed of a conventional technology consisting of a microprogram and its execution control circuit,
When the signal becomes "1", the INSTEi signal is fetched, and the first micro instruction of the micro program corresponding to this instruction is read. If the operation stage ends in one cycle, the first microinstruction specifies the end of the operation. If multiple cycles are required, the last microinstruction that controls the operation stage specifies the end of the operation. Output. The micro instruction is
ALU control is specified, but execution is performed according to the specification when the EXEi signal becomes "1". Reference numeral 1108 denotes a condition code generation circuit, which calculates an operation result from the ALU, an ALU control circuit 1107.
Input the condition code generation information from the
After the cycle, a condition code CCEi is generated. 1109 is an interrupt condition detection circuit, which is an operation result from the ALU and an ALU control circuit.
Input interrupt detection control information from 1107, and generate interrupt condition generation signals INTCEi and INTSE one cycle after the operation stage.
Generate i. Reference numeral 1110 denotes a write control circuit which receives result write control information from the ALU control circuit 1107 and generates STCEi, RWCEi, and CCSEi signals one cycle after the operation stage. The control circuit 1110 also receives a signal RESE from the input switching circuit 8.
i, The signal RES is input from the arithmetic control unit 7, and even if any of them is "1", the signals STCEi, RWCEi, and CCSEi are immediately suppressed to "0". The signals RES and RESi are further input to the ALU control circuit 1107, and the ALU control by 1107 is canceled regardless of which of these becomes “1”. 1
Reference numerals 105 and 1106 denote pipeline registers for holding the operation result, write memory address, and write register number. EDEi, STAEi, RWAEi one cycle after the operation stage.
Is output. Any arithmetic unit of E1-n has a circuit corresponding to the ALU control circuit 1107 and the write control circuit 1110.
The operation for the ES and TESi signals is the same.

演算制御ユニツト7は上記複数の演算器による命令の
並列実行を制御する。すなわち7は、演算終了信号EOPi
(i=1〜m)を監視し、現在演算実行中の全ての命令
が終了した時に、有効命令信号IRDYi(i=1〜m)で
示される最大m個の後続命令に対しセツトアツプ完了信
号OBTi(i=1〜m)を発行し、これを命令制御ユニツ
ト2と入力交換回路8に送出する。またこのとき命令制
御ユニツト2から送出される演算器番号ENOi(i=1〜
m)を取り込み、セツトアツプした命令の演算実行中こ
れを保持し、入力交換回路8及び出力交換回路9に送出
する。
The arithmetic control unit 7 controls the parallel execution of instructions by the plurality of arithmetic units. That is, 7 is the operation end signal EOPi
(I = 1 to m) is monitored, and when all the instructions currently being executed are completed, a set-up completion signal OBTi is sent to a maximum of m succeeding instructions indicated by an effective instruction signal IRDYi (i = 1 to m). (I = 1 to m), and sends them to the instruction control unit 2 and the input exchange circuit 8. At this time, the operation unit number ENOi (i = 1 to 1) transmitted from the instruction control unit 2
m), which is retained during the execution of the set-up instruction, and transmitted to the input exchange circuit 8 and the output exchange circuit 9.

演算制御ユニツト7はオペランド待ち信号ADVWi(i
=1〜m)を監視し、メモリオペランドの到着していな
い命令がある場合その到着まで、EXi(i=1〜m)信
号のうち該命令及びその後続命令の演算実行許可信号を
‘0'とする。この制御により、本発明においては該命令
の後続命令の演算実行が先に始まることを防止する。
The arithmetic control unit 7 outputs the operand wait signal ADVWi (i
= 1 to m), and when there is an instruction for which a memory operand has not arrived, the execution execution enable signal of the instruction and its succeeding instruction among the EXi (i = 1 to m) signals is set to “0” until the arrival. And With this control, in the present invention, the execution of the operation of the instruction following the instruction is prevented from starting first.

演算制御ユニツト7は条件分岐命令の分岐判定を行な
い、分岐成立信号TKNを命令制御ユニツト2に送出す
る。このため出力交換回路9から条件コード変更信号CC
Si(i=1〜m),条件コードCCi(i=1〜m)を受
け取る。本実施例では条件分岐命令が解読された時点で
は、従来の計算機でよく行なわれるように該分岐命令は
不成立となるものと予測し、ひき続く命令を解読してい
く。従つて分岐成立信号TKNが‘1'となつたことは、予
測が失敗したことを意味するので、直ちに現在命令制御
ユニツト2にて解読中の命令を取り消し、次にターゲツ
トストリーム上の命令解読を始める。また現在演算実行
中の命令のうち該分岐命令の後続命令に対し演算実行の
取り消しを示す信号RESi(i=1〜m)を入力交換回路
8に送出する。
The operation control unit 7 makes a branch determination of the conditional branch instruction and sends a branch taken signal TKN to the instruction control unit 2. Therefore, the condition code change signal CC is output from the output switching circuit 9.
Si (i = 1 to m) and condition code CCi (i = 1 to m) are received. In this embodiment, when a conditional branch instruction is decoded, the branch instruction is predicted to be unsatisfied, as is often done in a conventional computer, and subsequent instructions are decoded. Therefore, the fact that the branch taken signal TKN has become '1' means that the prediction has failed. Therefore, the instruction currently being decoded by the instruction control unit 2 is immediately canceled, and then the instruction decoding on the target stream is performed. start. Also, it sends out to the input switching circuit 8 a signal RESi (i = 1 to m) indicating that the execution of the operation is canceled for the instruction following the branch instruction among the instructions currently being executed.

演算制御ユニツト7は出力交換回路9から演算実行中
の命令についての割り込み条件発生信号INTCi(i=1
〜m)及びINTSi(i=1〜m)を受取り、完了型割り
込み条件が発生した場合、割り込み条件の発生した命令
の後続命令の演算実行を取り消し、抑止型割り込み条件
が発生した場合、割り込み条件の発生した命令とその後
続命令の演算実行を取り消すよう取消信号RESi(i=1
〜m)信号を発行する。さらに直後にセツトアツプした
後続命令グループの演算実行を取り消すため、取消指示
信号RESを全ての演算器に対し送出する。また同時に命
令制御ユニツト2に対し割込み信号INTを送出する。
The operation control unit 7 outputs from the output switching circuit 9 an interrupt condition generating signal INTCi (i = 1) for the instruction being executed.
To m) and INTSi (i = 1 to m), when the completion type interrupt condition occurs, the execution of the instruction following the instruction in which the interrupt condition occurs is canceled, and when the inhibition type interrupt condition occurs, the interrupt condition Signal RESi (i = 1) to cancel the execution of the operation of the instruction in which
~ M) Issue a signal. Further, in order to cancel the execution of the operation of the succeeding instruction group set up immediately thereafter, the cancel instruction signal RES is sent to all the arithmetic units. At the same time, it sends an interrupt signal INT to the instruction control unit 2.

入力交換回路8はセツトアツプポートi(i=1〜
m)を介してセツトアツプするm個の命令に対し、上記
のセツトアツプデータをそれぞれの命令を演算実行する
演算器に振り分けて送出する。このために演算制御ユニ
ツト7からセツトアツプポート対応に演算器番号ENOi
(i=1〜m)を受け取る。
The input exchange circuit 8 has a set-up port i (i = 1 to
For the m instructions to be set up via m), the above set-up data is distributed to an arithmetic unit for executing the respective instructions and transmitted. For this purpose, the operation unit number ENOi corresponds to the set-up port from the operation control unit 7.
(I = 1 to m).

出力交換回路9には演算器Ei(i=1〜n)から上記
出力データや演算制御情報を入力しセツトアツプポート
i(i=1〜m)の順に並べかえて出力する。このため
に演算制御ユニツト7から演算器番号ENOi(i=1〜
m)を受け取る。出力情報は上記のように各ユニツトに
送出するが、さらに、演算結果のうち記憶装置1に書き
込むものに対し、そのデータEDi(i=1〜m),アド
レスSTAi(i=1〜m)、及びメモリ書き込み指令STCi
(i=1〜m)を記憶装置1に送出する。記憶装置1は
これらを受け取りメモリに書き込みをおこなう。
The output switching circuit 9 receives the output data and the operation control information from the operation units Ei (i = 1 to n), rearranges them in the order of the set-up ports i (i = 1 to m), and outputs them. For this purpose, the arithmetic unit No. ENOi (i = 1 to
m). The output information is sent to each unit as described above. Further, the data EDi (i = 1 to m), the address STAi (i = 1 to m), And memory write command STCi
(I = 1 to m) to the storage device 1. The storage device 1 receives these and writes them in the memory.

第2図は命令制御ユニツト2の詳細構成を示す。201
は命令読み出し回路であり、先読み命令バツフア202の
空き状態を監視し、空きがあるときは命令読み出しアド
レスMAIを記憶装置1に送出し、読みだされた命令デー
タMDIを命令バツフア202にセツトする。一回の命令読み
出しで通常は連続する数命令を得る。従つて、先読み命
令バツフア202は少なくとも一回の読み出しで得られる
命令の分だけの大きさを有する様構成する。命令バツフ
アとして分岐命令のターゲツト命令列を格納するために
もう一つの命令バツフア203が設けられている。分岐命
令で分岐成立が判定されないうちはセレクタ204は202を
選択し命令読みだし回路201に送出する。分岐命令で分
岐成立が判定されると分岐成功信号TKNを演算制御ユニ
ツトからセレクタ204に送出し、これに応答して以後セ
レクタ204は命令バツフア203を選択しこれを命令読出し
回路201に送出する。以上の命令読みだし制御は通常の
汎用計算機では最も典型的なものであり、容易に従来技
術によつて構成することができる。
FIG. 2 shows a detailed configuration of the instruction control unit 2. 201
Is an instruction read circuit which monitors the empty state of the prefetch instruction buffer 202, sends an instruction read address MAI to the storage device 1 when there is an empty space, and sets the read instruction data MDI in the instruction buffer 202. Normally, several consecutive instructions are obtained by one instruction read. Therefore, the look-ahead instruction buffer 202 is configured to have a size corresponding to an instruction obtained by at least one read. Another instruction buffer 203 is provided as an instruction buffer for storing a target instruction sequence of a branch instruction. The selector 204 selects 202 and sends it to the instruction reading circuit 201 unless the branch instruction is determined to be taken. If it is determined by the branch instruction that the branch is taken, a branch success signal TKN is sent from the arithmetic and control unit to the selector 204. In response, the selector 204 selects the instruction buffer 203 and sends it to the instruction reading circuit 201. The above-described instruction reading control is the most typical in a general-purpose computer, and can be easily configured by a conventional technique.

205〜206はp個の命令レジスタである。命令読み出し
回路201は、セレクタ204で選択した命令バツフア202,20
3上の命令列から、連続したp個の命令を切り出し命令
レジスタ205から206に順にセツトする。このための命令
読みだし回路201の構成は日本公開特許昭58−176751
“命令語解読ユニツト”に開示されているのと同様であ
る。207〜208はp個の命令解読器でありそれぞれ命令レ
ジスタ205〜206に対応して命令を解読し解読情報を出力
する。解読情報としてデコーダDECi(i=1〜p)より
順に、命令のインデツクスレジスタ指定部XAi(i=1
〜p),ベースレジスタ指定部BAi(i=1〜p)を汎
用レジスタ群209に、アドレス変位部DSPi(i=1〜
p)をp個のアドレス加算器214〜215に、メモリオペラ
ンドを用いる命令であることを示す情報UOBi(i=1〜
p)をオペランド待ち制御回路210に送出する。さらに
解読情報として、命令コードINSTDi(i=1〜p),レ
ジスタオペランド番号RAi(i=1〜p),演算結果を
格納するための書き込みレジスタ番号WAi(i=1〜
p),命令の演算サイクル数ELi(i=1〜p)、その
命令の演算が各演算器Ei(i=1〜n)において実行可
能である事を示す情報E1SDi(i=1〜p),E2SDi(i
=1〜p),...,EnSDi(i=1〜p),条件分岐命令で
あることを示す情報BCDi(i=1〜p)、条件分岐命令
のマスク値BCMDi(i=1〜p)のそれぞれを、命令キ
ユー211に送出する。命令の解読が完了したことを示す
信号DSi(i=1〜p)をデコーダDECi(i=1〜p)
から命令キユー制御回路212,命令セツトアツプ制御回路
213,命令キユー211,オペランド待ち制御回路210にそれ
ぞれ送出する。
205 to 206 are p instruction registers. The instruction reading circuit 201 includes an instruction buffer 202, 20 selected by the selector 204.
(3) From the above instruction sequence, p consecutive instructions are cut out and set in the instruction registers 205 to 206 in order. The configuration of the instruction reading circuit 201 for this purpose is disclosed in Japanese Patent Application No.
This is the same as that disclosed in the “Command word decoding unit”. Reference numerals 207 to 208 denote p instruction decoders, which decode instructions corresponding to the instruction registers 205 to 206 and output decoding information. As decoding information, in order from the decoder DECi (i = 1 to p), the index register specifying section XAi (i = 1
.. P), the base register specifying unit BAi (i = 1 to p) is added to the general-purpose register group 209, and the address displacement unit DSPi (i = 1 to
p) is added to p address adders 214 to 215 with information UOBi (i = 1 to 1) indicating that the instruction uses a memory operand.
p) is sent to the operand waiting control circuit 210. Further, as decoding information, an instruction code INSTDi (i = 1 to p), a register operand number RAi (i = 1 to p), a write register number WAi (i = 1 to 1) for storing an operation result.
p), the number of operation cycles ELi of the instruction (i = 1 to p), and information E1SDi (i = 1 to p) indicating that the operation of the instruction is executable in each of the arithmetic units Ei (i = 1 to n). , E2SDi (i
= 1 to p),..., EnSDi (i = 1 to p), information BCDi (i = 1 to p) indicating that the instruction is a conditional branch instruction, and mask value BCMDi of the conditional branch instruction (i = 1 to p) ) Are sent to the instruction queue 211. A signal DSi (i = 1 to p) indicating that the instruction has been decoded is supplied to a decoder DECi (i = 1 to p).
To instruction key control circuit 212, instruction set-up control circuit
213, an instruction queue 211, and an operand wait control circuit 210.

汎用レジスタ群209は命令で指定される16本の4バイ
トのレジスタからなる。デコーダ207〜208からインデツ
クスレジスタ指定部XAi(i=1〜p),ベースレジス
タ指定部BAi(i=1〜p)を入力し、指定された番号
のレジスタを読みだし、インデツクスレジスタデータXD
i(i=1〜p)及びベースレジスタデータBDi(i=1
〜p)として順にアドレス加算器AAi(i=1〜p)に
送出する。汎用レジスタ群209には命令待ちキユー211か
らm個のセツトアツプポート対応のレジスタオペランド
番号RRAi(i=1〜m)を入力し、これらに指定された
レジスタを読みだし、レジスタオペランドデータRDi
(i=1〜m)として入力交換回路8に送出する。さら
に汎用レジスタ群209には出力交換回路9よりm個のセ
ツトアツプポート対応の演算結果EDi(i=1〜m),
書き込みレジスタ番号RWAi(i=1〜m)及びレジスタ
書き込み指令RWCi(i=1〜m)を入力し、指定された
レジスタにこれらを書き込む。汎用レジスタ群209は上
記のように、同時に複数の読みだし,書き込みを行なう
が、これは従来により容易に構成可能である。
The general-purpose register group 209 includes 16 4-byte registers specified by the instruction. The index register specifying section XAi (i = 1 to p) and the base register specifying section BAi (i = 1 to p) are input from the decoders 207 to 208, the register having the specified number is read, and the index register data XD is read.
i (i = 1 to p) and base register data BDi (i = 1
To p) to the address adder AAi (i = 1 to p) in order. Register operand numbers RRAi (i = 1 to m) corresponding to the m set-up ports are input from the instruction waiting queue 211 to the general-purpose register group 209, and the registers designated by these are read out, and the register operand data RDi is read.
(I = 1 to m) is sent to the input switching circuit 8. Further, in the general-purpose register group 209, the operation results EDi (i = 1 to m) corresponding to m set-up ports from the output switching circuit 9 are provided.
A write register number RWAi (i = 1 to m) and a register write command RWCi (i = 1 to m) are input, and these are written to a designated register. As described above, the general-purpose register group 209 performs a plurality of read and write operations simultaneously, but this can be easily configured by the related art.

アドレス加算器AAi(i=1〜p)には、それぞれ、
インデツクスレジスタデータXDi(i=1〜p),ベー
スレジスタデータBDi(i=1〜p),アドレス変位DSP
i(i=1〜p)を入力し、これ等の加算結果をオペラ
ンドアドレスMAi(i=1〜p)として記憶装置1と命
令キユー211に送出する。オペランドアドレスMAi(i=
1〜p)は、該命令が分岐命令でなければ、メモリオペ
ランドのアドレスであり、記憶装置1から読み出したデ
ータはデータ信号MDOi(i=1〜p)によつてオペラン
ドバツフア216に送出する。一方、該命令が分岐命令で
あつた場合はメモリオペランドアドレスMAi(i=1〜
p)のうち対応するものはターゲツト命令アドレスであ
り、記憶装置1から読み出したデータはデータ信号MDI
によつて命令バツフア202もしくは203に送出する。
Address adders AAi (i = 1 to p) respectively
Index register data XDi (i = 1 to p), base register data BDi (i = 1 to p), address displacement DSP
i (i = 1 to p) is input, and the result of addition is sent to the storage device 1 and the instruction queue 211 as an operand address MAi (i = 1 to p). Operand address MAi (i =
1 to p) are addresses of memory operands if the instruction is not a branch instruction, and data read from the storage device 1 is sent to the operand buffer 216 by the data signal MDOi (i = 1 to p). . On the other hand, if the instruction is a branch instruction, the memory operand address MAi (i = 1 to 1)
The corresponding one of p) is the target instruction address, and the data read from the storage device 1 is the data signal MDI.
Is sent to the instruction buffer 202 or 203.

命令キユー211は上記命令解読情報を保持するk命令
分のキユーレジスタとその入出力回路からなる。kの値
は少なくとも上記p,mの何れよりも下回らないようにす
る。命令キユー211には、デコーダDECi(i=1〜p)
からp個の連続した命令の解読情報を入力しこれらを同
時にキユーイングする。この時実際にキユーイングする
命令は対応するデコード完了信号DSi(i=1〜p)信
号の‘1'となつているものであり、このとき、入力ポイ
ンタQIPi(i=1〜p)で示されるキユーレジスタにそ
れぞれセツトする。入力ポインタQIPi(i=1〜p)の
値は、命令待ち行列内の最新の命令のキユーレジスタの
次から連続するp個のキユーレジスタを順に示すように
する。なおk番目のキユーレジスタの次は1番目のキユ
ーレジスタが連続するものとする。命令キユー211から
は、キユー内の最も古い命令から最大m個の連続した命
令の解読情報を同時に取り出す。このため、m個の出力
ポインタQOPi(i=1〜p)の値は、待ち行列内の最も
古い命令から連続するm個のキユーレジスタを順に示す
ようにする。出力ポインタQOPi(i=1〜m)で選ばれ
た命令分の出力が上記m個のセツトアツプポートの実体
である。このとき実際に取り出したと見なすのは、命令
セツトアツプ制御回路213から出力する上記有効命令信
号IRDYi(i=1〜m)が‘1'となつているものであ
る。命令待ち行列の出力として、命令コードINSTi(i
=1〜m),オペランドアドレスMAi(i=1〜m),
書き込みレジスタ番号RWAi(i=1〜m)を入力交換回
路8へ、レジスタオペランド番号RRAi(i=1〜m)を
汎用レジスタ209へ、条件分岐命令表示BCi(i=1〜
p),条件分岐命令のマスク値BCMi(i=1〜p)を演
算制御ユニツト7へ、そして演算サイクル数ELi(i=
1〜m),演算器Ei(i=1〜n)での実行可能性表示
情報E1Si(i=1〜m),E2Si(i=1〜m),...,EnSi
(i=1〜m)を命令セツトアツプ制御回路213へそれ
ぞれ送出する。
The instruction queue 211 includes a k-register for the k instructions for holding the instruction decoding information and its input / output circuit. The value of k should not be lower than at least any of the above p and m. The instruction queue 211 includes a decoder DECi (i = 1 to p)
, And decoding information of p consecutive instructions is input and these are simultaneously queued. At this time, the instruction actually keyed is "1" of the corresponding decode completion signal DSi (i = 1 to p) signal. At this time, the instruction is indicated by the input pointer QIPi (i = 1 to p). Set in each of the queue registers. The value of the input pointer QIPi (i = 1 to p) is set so as to sequentially indicate the p consecutive queue registers following the queue register of the latest instruction in the instruction queue. It is assumed that the k-th queue register is followed by the first queue register. From the instruction queue 211, decoding information of a maximum of m consecutive instructions from the oldest instruction in the queue is simultaneously extracted. For this reason, the values of the m output pointers QOPi (i = 1 to p) indicate the m successive queue registers starting from the oldest instruction in the queue. The outputs for the instructions selected by the output pointers QOPi (i = 1 to m) are the entities of the m set-up ports. At this time, it is considered that the effective instruction signal IRDYi (i = 1 to m) output from the instruction set-up control circuit 213 is "1". As an output of the instruction queue, an instruction code INSTi (i
= 1 to m), operand address MAi (i = 1 to m),
Write register number RWAi (i = 1 to m) to input exchange circuit 8, register operand number RRAi (i = 1 to m) to general-purpose register 209, conditional branch instruction display BCi (i = 1 to m)
p), the mask value BCMi (i = 1 to p) of the conditional branch instruction to the operation control unit 7 and the operation cycle number ELi (i =
1-m), feasibility display information E1Si (i = 1-m), E2Si (i = 1-m),..., EnSi in the arithmetic unit Ei (i = 1-n)
(I = 1 to m) are sent to the instruction set-up control circuit 213, respectively.

オペランドバツフア216は、記憶装置1から送出され
るオペランドデータMDOi(i=1〜p)を保持するk個
のバツフアレジスタ(図示せず)とその入出力回路から
なる。216は記憶装置1からアドバンス信号ADVi(i=
1〜p)を受け取ると、付随して送出されるオペランド
番号OBNOi(i=1〜p)で示されるバツフアレジスタ
にオペランドデータMDOi(i=1〜p)を格納する。21
6は同時に最大p個のデータを格納する。本実施例では
k個のバツフアレジスタは上記命令キユーのk個のキユ
ーレジスタに対応している。すなわちメモリオペランド
を必要とする命令に関して、解読情報を格納するキユー
レジスタとメモリオペランドを格納するバツフアレジス
タとは同一番号のものを用いる。
Operand buffer 216 is composed of k buffer registers (not shown) that hold operand data MDOi (i = 1 to p) sent from storage device 1 and their input / output circuits. Reference numeral 216 denotes an advance signal ADVi (i =
When receiving the operand data MDOi (i = 1 to p), the buffer data indicated by the accompanying operand number OBNOi (i = 1 to p) is stored. twenty one
6 stores a maximum of p data at the same time. In this embodiment, the k buffer registers correspond to the k queue registers of the instruction queue. That is, for an instruction requiring a memory operand, the same number is used for the queue register for storing the decoding information and the buffer register for storing the memory operand.

オペランドバツフア216は、セツトアツプポート対応
に最大m個の命令のオペランドデータMDi(i=1〜
m)を同時に読みだし入力交換回路8に送出する。この
ため、オペランドバツフア216には命令キユー制御回路2
12から命令キユー出力ポインタQOPi(i=1〜p)を入
力する。
The operand buffer 216 stores operand data MDi (i = 1 to 1) of up to m instructions corresponding to the set-up port.
m) at the same time and sends it to the input exchange circuit 8. Therefore, the instruction buffer control circuit 2 is provided in the operand buffer 216.
An instruction key output pointer QOPi (i = 1 to p) is input from 12.

命令キユー制御回路212は命令キユー211のp個の入力
ポインタQIPi(i=1〜p)及びm個の出力ポインタQO
Pi(i=1〜m)を生成する。この制御回路212はQIPi
(i=1〜p)を命令セツトアツプ制御回路213,命令キ
ユー211,オペランドキユー制御回路210、そして、記憶
装置1へ送出する。制御回路212は出力ポインタQOPi
(i=1〜m)を命令セツトアツプ制御回路213,命令キ
ユー211,オペランドキユー制御回路210、そしてオペラ
ンドバツフア216に送出する。また、制御回路212にはデ
コーダDECi(i=1〜p)からデコード完了信号DSi
(i=1〜p)を、演算制御ユニツト7から最終開始時
刻信号LBOP,命令個数信号LINO,分岐成功信号TKN、そし
て割込み信号INTを入力する。命令キユー制御回路212の
より詳細な構成を第8図にしめす。801はQIP1の値を保
持するレジスタである。802〜803は定数値のインクリメ
ンタであり、レジスタ801の値を入力し、これに、順に
1,...,p−1を加算(ただしpを法とする)して得られ
る値を入力ポインタQIP2−pとして出力する。804は入
力ポインタ更新回路であり、p個のデコード完了信号DS
i(i=1〜p)と入力ポインタQIP1を入力し、分岐成
功信号DSi(i=1〜p)のなかで‘1'となつている信
号の数と入力ポインタQIP1の値をpを法として加算し、
結果をレジスタ801にセツトする。例えば同時に解読が
完了した命令が2個であつた場合,信号DS1,DS2が‘1'
でありDSj(j=3〜p)は‘0'である。このときこの
2つの命令は入力ポインタQIP1,QIP2で示されるキユー
レジスタ(図示せず)にその解読情報が格納される。そ
して、レジスタ801の内容は2増加される。レジスタ801
の初期値は0とする。すなわち最初の命令の処理に当た
つて予め値0を設定しておく。805はORゲートであり、
演算制御ユニツト7からの分岐成立信号TKN、及び割り
込み検出信号INTを入力しこれらの論理和を出力し、こ
れを入力ポインタ更新回路804及び出力ポインタ更新回
路806に送出する。出力ポインタ更新回路804はORゲート
805の出力値が‘1'となつたとき、レジスタ801を0に設
定する。これは、条件分岐命令が分岐成立となつたとき
は予測失敗を意味するので、命令待ち行列内の後続命令
を全て無効化し、改めてターゲツト命令の解読から処理
をやり直す必要があるからである。
The instruction queue control circuit 212 includes p input pointers QIPi (i = 1 to p) and m output pointers QO of the instruction queue 211.
Pi (i = 1 to m) is generated. This control circuit 212 is QIPi
(I = 1 to p) are sent to the instruction set-up control circuit 213, the instruction queue 211, the operand queue control circuit 210, and the storage device 1. The control circuit 212 has an output pointer QOPi
(I = 1 to m) are sent to the instruction set-up control circuit 213, the instruction queue 211, the operand queue control circuit 210, and the operand buffer 216. Further, the control circuit 212 sends a decode completion signal DSi from the decoder DECi (i = 1 to p).
(I = 1 to p), the last start time signal LBOP, the number of instructions signal LINO, the branch success signal TKN, and the interrupt signal INT are input from the arithmetic control unit 7. A more detailed configuration of the instruction key control circuit 212 is shown in FIG. A register 801 holds the value of QIP1. Reference numerals 802 to 803 denote constant value incrementers, which input the value of the register 801 and sequentially
A value obtained by adding 1,..., P−1 (modulo p) is output as an input pointer QIP2-p. Reference numeral 804 denotes an input pointer update circuit, which outputs p decode completion signals DS
i (i = 1 to p) and the input pointer QIP1 are input, and the number of signals that are "1" in the branch success signal DSi (i = 1 to p) and the value of the input pointer QIP1 are modulo p. And add
The result is set in a register 801. For example, if two instructions have been decoded at the same time, the signals DS1 and DS2 will be '1'.
And DSj (j = 3 to p) is '0'. At this time, decoding information of these two instructions is stored in a key register (not shown) indicated by input pointers QIP1 and QIP2. Then, the content of the register 801 is increased by two. Register 801
Has an initial value of 0. That is, the value 0 is set in advance in the processing of the first instruction. 805 is an OR gate,
The branch taken signal TKN and the interrupt detection signal INT from the arithmetic control unit 7 are input and the logical sum of them is output, and this is sent to the input pointer updating circuit 804 and the output pointer updating circuit 806. Output pointer update circuit 804 is an OR gate
When the output value of 805 becomes “1”, the register 801 is set to “0”. This is because when the conditional branch instruction is taken, the prediction is failed, which means that all subsequent instructions in the instruction queue must be invalidated and the process must be restarted from the decoding of the target instruction.

807はQOP1の値を叔父するためのレジスタである。808
〜809はm−1個のインクリメンタであり、レジスタ807
は値を入力し、順にmを法として1,...,m−1インクリ
メントした値を出力ポインタ信号QOPj(j=2〜m)と
して出力する。出力ポインタ更新回路806にはレジスタ8
07の値と演算制御ユニツト7からの最終開始時刻信号LB
OP,命令数LINOを入力し、信号LBOPが‘1'となつたとき
信号LINOの値とレジスタ807の値をmを法として加算し
て得られる値をレジスタ807に設定する。レジスタ807の
初期値はレジスタ801に合わせ、0とする。ORゲート805
の出力値が‘1'となつたときはレジスタ807を0に設定
する。その理由は上記入力ポインタの場合と同じであ
る。
A register 807 is used to uncle the value of QOP1. 808
809 are m-1 incrementers, and register 807
, Inputs a value, and sequentially outputs a value obtained by incrementing 1,..., M−1 by modulo m as an output pointer signal QOPj (j = 2 to m). Register 8 in the output pointer update circuit 806
07 value and last start time signal LB from arithmetic control unit 7
The OP and the number of instructions LINO are input, and when the signal LBOP becomes “1”, a value obtained by adding the value of the signal LINO and the value of the register 807 modulo m is set in the register 807. The initial value of the register 807 is set to 0 in accordance with the register 801. OR gate 805
When the output value of "1" becomes "1", the register 807 is set to "0". The reason is the same as in the case of the input pointer.

第2図の命令セツトアツプ制御回路213は、命令キユ
ー211内の解読済み命令の中から、セツトアツプ可能な
最大m個の命令を選び、これを有効命令信号IRDYi(i
=1〜m)によつて表示する。すなわち制御回路213
は、命令キユー211から上記各論理回路に同時に送出す
るm命令分のセツトアツプポートi(i=1〜m)のう
ち、どれが有効な命令の解読情報を載せているかを有効
信号IRDYi(i=1〜m)によつて表示する。信号IRDYi
(i=1〜m)の中で‘1'となつている信号に対応した
命令が有効であり、次のセツトアツプの対象である。一
回でセツトアツプ可能な命令グループの条件は次の通り
とする。
The instruction set-up control circuit 213 of FIG. 2 selects up to m instructions that can be set up from the decoded instructions in the instruction queue 211 and sends them to the valid instruction signal IRDYi (i
= 1 to m). That is, the control circuit 213
The validity signal IRDYi (i) indicates which of the set-up ports i (i = 1 to m) for m instructions which are simultaneously transmitted from the instruction queue 211 to each of the above logic circuits carries decoding information of valid instructions. = 1 to m). Signal IRDYi
The instruction corresponding to the signal of "1" in (i = 1 to m) is valid and is the subject of the next setup. The conditions of the instruction group that can be set up at one time are as follows.

(1)セツトアツプ可能な命令グループは、命令待ち行
列の中で最も古い、すなわちプログラムにおける実行順
序として最初に実行すべき命令を第1の命令として、連
続する最大m個の命令からなる。
(1) An instruction group that can be set up is composed of a maximum of m consecutive instructions, with the oldest instruction in the instruction queue, that is, the instruction to be executed first as the execution order in the program as the first instruction.

(2)該命令グループ内の全ての命令を同時に演算実行
するに十分な数と機能を有する演算器が存在する。
(2) There are arithmetic units having a sufficient number and functions to simultaneously execute all instructions in the instruction group.

(3)該命令グループ内の隣合う2命令に着目した場
合、後続命令の演算サイクル数は先行命令の演算サイク
ル数と同じかそれ以上である。
(3) When focusing on two adjacent instructions in the instruction group, the number of operation cycles of the succeeding instruction is equal to or greater than the number of operation cycles of the preceding instruction.

命令セツトアツプ制御回路213は、セツトアツプする
各命令に対してその演算実行を行なう演算器を決定し、
演算器番号を示す信号ENOi(i=1〜m)を演算制御ユ
ニツト7に送出する。
The instruction set-up control circuit 213 determines an arithmetic unit for executing the operation for each instruction to be set up,
A signal ENOi (i = 1 to m) indicating the operation unit number is sent to the operation control unit 7.

ここで上記(1)〜(3)の条件を満足するような命
令有効信号IRDYi(i=1〜m)及びENOi(i=1〜
m)を生成する命令セツトアツプ制御回路213を第7A〜7
D図を用いてより詳細に説明する。第7A図は信号IRDi
(i=1〜m)が上記(1)の条件を満たすために、そ
の必要条件を示す信号QRDYi(i=1〜m)を生成する
回路である。701〜702はk個のフリツプフロツプであ
り、命令キユーのk個のキユーレジスタ(図示せず)に
対応し、そのキユーレジスタに解読済でセツトアツプ待
ちの命令が格納されている状態を表示する。703〜704は
k個のORゲートであり、701〜702に対応し、各フリツプ
フロツプを‘1'にセツトする信号を送出する。705〜706
はp個のデコーダであり、それぞれ第2図のp個の命令
解読器DECi(i=1〜p)に対応し、順に命令解読完了
信号DSi(i=1〜p)及び命令待ち行列入力ポインタ
信号QIPi(i=1〜p)を入力し、k本のデコード出力
を順にORゲート703〜704に送出する。705〜706の各デコ
ーダは、命令解読完了信号が‘1'となつたとき、命令キ
ユー入力ポインタ信号で示されるキユーレジスタに対応
したデコード出力信号値を‘1'とする。この時ORゲート
703〜704の内対応したゲートが‘1'を出力し、これによ
り対応したフリツプフロツプが‘1'にセツトされる。2
命令以上が同時に解読を完了した場合DS1からその命令
数分だけの命令解読完了信号が‘1'となるが、この時は
入力ポインタQIP1で示されるフリツプフロツプから連続
する上記命令数分のフリツプフロツプが‘1'にセツトさ
れる。707〜708はk個のORゲートであり、701〜702に対
応し、各フリツプフロツプを‘0'にリセツトする信号を
送出する。709〜710はm個のデコーダであり、それぞれ
出力交換回路9のm命令分の出力ポート、つまりセツト
アツプポートi(i=1〜m)に対応し、順にセツトア
ツプ完了信号OBTi(i=1〜m)及び命令キユー出力ポ
インタ信号QOPi(i=1〜m)を入力し、k本のデコー
ド出力を順にORゲート707〜708に送出する。709〜710の
各デコーダは、セツトアツプ完了信号が‘1'となつたと
き、命令キユー出力ポインタ信号で示されるキユーレジ
スタに対応したデコード出力信号値を‘1'とする。この
時ORゲート707〜708の内対応したゲートが‘1'を出力
し、これにより対応したフリツプフロツプが‘0'にリセ
ツトされる。2命令以上が同時にセツトアツプを完了し
た場合信号OBT1からその命令数分だけのセツトアツプ完
了信号が‘1'となるが、この時は出力ポインタQOP1で示
されるフリツプフロツプから連続する上記命令数分のフ
リツプフロツプが‘0'にリセツトされる。711はORゲー
トであり、演算制御ユニツト7から送出される上記TK
N、並びにINT信号の論理和をORゲート707〜708に送出す
る。従つて、条件分岐命令が分岐成立、即ち予測失敗と
判定された場合、もしくは、割り込み条件が発生し、以
後の命令実行を取り消す場合、それぞれTKN,INT信号が
‘1'となり、711,707〜708を介して701〜702の全てのフ
リツプフロツプが‘1'にリセツトされる。712〜713はセ
ツトアツプポートi(i=1〜m)に対応したm個のセ
レクタである。各セレクタにはそれぞれフリツプフロツ
プ701〜702の出力である合計k本のキユービジー信号QB
SYi(i=1〜k)を入力する。また、各セレクタには
順に命令待ち行列出力ポインタQOPi(i=1〜m)を入
力し、それぞれQBSY1−kの中から該ポインタで示され
るキユーレジスタに対応するキユービジー信号の値を選
択し、信号QRDYi(i=1〜m)信号として出力する。
上記の様に本発明に於いては命令待ち行列には、一度に
最大p個の連続する命令が既にキユーイング済みの命令
に連続して格納され、また一度に最大m個の連続する命
令がセツトアツプのために取りだされる。QOPi(i=1
〜m)は解読済の命令のなかで最も古いものを格納する
キユーレジスタから連続するm個のキユーレジスタを示
すので、解読済の命令がi個或る場合、iがmより小さ
い場合QRDYj(j=1〜i)が‘1',QRDYj(j=i+1
〜m)が‘0'となり、iがm以上の場合、QRDYi(i=
1〜m)すべてが、‘1'となる。以上の説明から信号PR
DYi(i=1〜m)が上記(1)の条件を示すことが言
える。
Here, the instruction valid signals IRDYi (i = 1 to m) and ENOi (i = 1 to 1) satisfying the above conditions (1) to (3).
m) to generate the instruction set-up control circuit 213 for the 7th through 7th
This will be described in more detail with reference to FIG. Figure 7A shows the signal IRDi
(I = 1 to m) is a circuit for generating a signal QRDYi (i = 1 to m) indicating the necessary condition in order to satisfy the condition (1). Reference numerals 701 to 702 denote k flip-flops, which correspond to the k queue registers (not shown) of the instruction queue, and indicate a state in which the decoded instructions waiting to be set up are stored. Reference numerals 703 to 704 denote k OR gates, which correspond to 701 to 702 and transmit a signal for setting each flip-flop to "1". 705-706
Are p decoders, which correspond to the p instruction decoders DECi (i = 1 to p) in FIG. 2, respectively, and sequentially have an instruction decoding completion signal DSi (i = 1 to p) and an instruction queue input pointer A signal QIPi (i = 1 to p) is input, and k decoded outputs are sequentially sent to OR gates 703 to 704. Each of the decoders 705 to 706 sets the decode output signal value corresponding to the queue register indicated by the instruction queue input pointer signal to "1" when the instruction decoding completion signal becomes "1". At this time OR gate
The corresponding gate among 703 to 704 outputs "1", whereby the corresponding flip-flop is set to "1". 2
When the decoding of more than the instructions is completed at the same time, the instruction decoding completion signal for the number of instructions from DS1 becomes '1'. Set to 1 '. Reference numerals 707 to 708 denote k OR gates, which correspond to 701 to 702 and transmit a signal for resetting each flip-flop to "0". Reference numerals 709 to 710 denote m decoders, each corresponding to an output port for m instructions of the output switching circuit 9, that is, a set-up port i (i = 1 to m). m) and the instruction queue output pointer signal QOPi (i = 1 to m) are input, and k decoded outputs are sequentially sent to the OR gates 707 to 708. Each of the decoders 709 to 710 sets the decoded output signal value corresponding to the queue register indicated by the instruction queue output pointer signal to "1" when the set-up completion signal becomes "1". At this time, the corresponding one of the OR gates 707 to 708 outputs "1", whereby the corresponding flip-flop is reset to "0". When two or more instructions complete the setup at the same time, the setup completion signal for the number of instructions from the signal OBT1 becomes "1". Reset to '0'. 711 is an OR gate, and the above TK sent from the arithmetic control unit 7
The logical sum of the N and INT signals is sent to the OR gates 707 to 708. Therefore, when the conditional branch instruction is taken, that is, when it is determined that the prediction is unsuccessful, or when an interrupt condition occurs and the subsequent instruction execution is canceled, the TKN and INT signals become '1', and 711, 707 to 708 are set. All flip-flops 701 to 702 are reset to '1'. 712 to 713 are m selectors corresponding to the set-up port i (i = 1 to m). Each selector has a total of k BUSY signals QB output from flip-flops 701 to 702, respectively.
SYi (i = 1 to k) is input. Also, instruction queue output pointers QOPi (i = 1 to m) are sequentially input to each selector, and a value of a busy signal corresponding to the queue register indicated by the pointer is selected from QBSY1-k, respectively. (I = 1 to m) is output as a signal.
As described above, in the present invention, a maximum of p consecutive instructions are stored in the instruction queue at a time in succession of already queued instructions, and a maximum of m consecutive instructions are set up at a time. Taken out for. QOPi (i = 1
Mm) indicate m consecutive queuing registers from the queuing register storing the oldest decoded instruction, so that if there are i decoded instructions, QRDYj (j = j) if i is smaller than m 1 to i) are '1', QRDYj (j = i + 1)
-M) is '0' and i is greater than or equal to m, QRDYi (i =
1 to m) all become '1'. From the above explanation, the signal PR
It can be said that DYi (i = 1 to m) indicates the above condition (1).

第7B図は信号IRDYi(i=1〜m)が上記(2)の条
件を満たすために、その必要条件を示すm−1本の信号
EAi(i=2〜m)を生成する回路である。この回路は
セツトアツプポートi(i=1〜m)を介してセツトア
ツプする各命令に対して、その演算実行を行なう演算器
番信号ENOi(i=1〜m)を決定する機能も有する。72
0,721はセツトアツプする最大m個の命令のうち順に第
i番目、及びi+1番目の命令に対EAi,ENOi及びEAi+
1,ENOi+1信号を生成する演算器割当制御回路EACであ
る。EACはセツトアツプポートi(i=1〜m)に対応
してm個ある。722〜725は演算器に対応したn個のAND
ゲートであり、順に第i命令に対する各演算器の空き状
態を示す信号E1Ai,...,EnAiと、第i命令の演算を実行
する機能を有するか否かを各演算器毎に示す命令解読情
報E1Si,...,EnSiを入力し、その論理積を出力する。こ
の論理積が‘1'であれば、対応する演算器が空いてお
り、しかもその演算器は該命令の演算実行機能を有する
わけであり、割り当てる演算器の候補であることを示
す。一般には割当可能な演算器の候補は複数ある。726
はORゲートであり、722〜725の出力の論理和をEAi信号
として出力する。722〜725の出力の中で何れかが‘1'で
あれば、該命令を割り当てる演算器が存在するので、こ
の時EAi信号が‘1'となる。727〜729はn−1個のANDゲ
ートであり、上記割り当て候補が複数存在した時に、実
際に割り当てる演算器を1つに絞るためのものである。
即ち、727〜729は順に演算器E2〜Enが実際に割り当てら
れたとき‘1'を出力する。このため、727〜729には順に
723〜725の出力信号を入力し、対応する演算器が割り当
て候補となつたとき、‘1'を出力し得るようにする。さ
らに、722の出力信号の否定を727〜729に、723の出力信
号の否定を728〜729に入力する。一般に722〜725の出力
信号のうち、演算器Ejに対応したゲートの出力値の否定
を、727〜729のうちの演算器Ei+1〜nに対応したゲー
トに入力する。こうすることで、n個のゲート722,727
〜729の出力は、1つ以上の演算器割り当て候補が存在
したとき、最も小さい番号を有する演算器に対応した出
力のみ‘1'となり、残りは‘0'となる。730はエンコー
ダであり上記n個のゲート出力を受け取り、‘1'となつ
ている演算器番号をENOi番号として出力する。731〜734
は各演算器に対応したn個のANDゲートであり、順に上
記演算器空き状態信号E1Ai,...,EnAiと、上記n個のゲ
ート722,727〜729の出力の否定を入力し、これらの論理
積を第i+1番目の命令に対する演算器空き状態信号E1
Ai+1,...,EnAi+1として出力する。上記説明から明ら
かなように、E1Ai+1,...,EnAi+1は対応するE1Ai+
1,...,EnAiのうちで、第i番目の命令に対し割り当てら
れた演算器に対応した信号のみ‘0'としたものといえ
る。第1番目の命令に対するEACにおいては、演算器空
き状態信号E1A1,...,EnA1はすべて空きを示す‘1'とす
る。
FIG. 7B shows m-1 signals indicating the necessary conditions for the signal IRDYi (i = 1 to m) to satisfy the above condition (2).
This is a circuit that generates EAi (i = 2 to m). This circuit also has a function of determining an operation unit number signal ENOi (i = 1 to m) for executing an operation for each instruction set up through the set-up port i (i = 1 to m). 72
0,721 corresponds to the ith and the (i + 1) th instructions of the maximum m instructions to be set up with EAi, ENOi and EAi +, respectively.
1, an arithmetic unit assignment control circuit EAC that generates an ENOi + 1 signal. There are m EACs corresponding to the set-up ports i (i = 1 to m). 722 to 725 are n ANDs corresponding to arithmetic units
.., EnAi, which are gates and sequentially indicate the idle state of each operation unit for the i-th instruction, and instruction decoding indicating for each operation unit whether or not it has a function of executing the operation of the i-th instruction. Information E1Si, ..., EnSi is input and its logical product is output. If this logical product is “1”, the corresponding computing unit is empty, and the computing unit has the function of executing the operation of the instruction, and indicates that it is a candidate for the computing unit to be assigned. In general, there are a plurality of assignable arithmetic unit candidates. 726
Is an OR gate, which outputs the logical sum of the outputs of 722 to 725 as an EAi signal. If any of the outputs of 722 to 725 is "1", there is a computing unit to which the instruction is assigned, and at this time, the EAi signal becomes "1". Reference numerals 727 to 729 denote n-1 AND gates, which are used to reduce the number of arithmetic units to be actually assigned to one when there are a plurality of assignment candidates.
That is, 727 to 729 output '1' when the arithmetic units E2 to En are sequentially assigned. Therefore, 727-729
Output signals 723 to 725 are input, and when the corresponding arithmetic unit becomes a candidate for assignment, '1' can be output. Further, the negation of the output signal of 722 is input to 727 to 729, and the negation of the output signal of 723 is input to 728 to 729. Generally, of the output signals of 722 to 725, the negation of the output value of the gate corresponding to the arithmetic unit Ej is input to the gate of 727 to 729 corresponding to the arithmetic units Ei + 1 to n. In this way, the n gates 722,727
When one or more arithmetic unit assignment candidates exist, only the output corresponding to the arithmetic unit having the smallest number becomes “1”, and the remaining outputs become “0”. Reference numeral 730 denotes an encoder which receives the n gate outputs and outputs the arithmetic unit number which is "1" as an ENOi number. 731-734
Are n AND gates corresponding to each of the arithmetic units. The AND unit empty state signals E1Ai,. The product is calculated as the operation unit empty state signal E1 for the (i + 1) th instruction.
Output as Ai + 1, ..., EnAi + 1. As is clear from the above description, E1Ai + 1,..., EnAi + 1 are the corresponding E1Ai +
It can be said that among the 1,..., EnAi, only the signal corresponding to the arithmetic unit assigned to the i-th instruction is set to “0”. In the EAC for the first instruction, all the arithmetic unit empty state signals E1A1,..., EnA1 are set to “1” indicating empty.

第7C図は信号IRDYi(i=1〜m)が上記(3)の条
件を満たすために、その必要条件を示すm−1本の信号
ELOKi(i=1〜m)を生成する回路である。740は比較
回路であり、命令待ち行列211より入力する第1,第2番
目の命令の演算サイクル数EL1及びEL2を比較し、後者が
前者と同じかそれ以上であるとき出力信号ELOK2を‘1'
とする。741〜742は740と同一構成のm−2個の比較回
路であり、順に第3番目から第m番目の命令に対応し、
その演算サイクル数と直前の命令の演算サイクル数を入
力し、後者が前者と同じかそれ以上であるとき出力信号
を‘1'とする。743〜744はm−2個のANDゲートであ
り、順に第3番目から第m番目の命令に対応し信号ELOK
i(i=3〜m)を出力する。740及び741の出力は743〜
744の全てに入力する。一般に比較回路741〜742のうち
第i番目(ただしi>2)の命令に対応するものの出力
を、ANDゲート743〜744のうち第i番目以降の命令に対
応するもの全てに入力する。したがつて、ANDゲート744
には740〜742の全ての出力を入力する。以上の構成によ
り、ELOKi信号は第1番目から第i番目にいたる、全て
の命令について、上記(3)の条件が成立したとき、そ
してそのときにのみ‘1'となる。
FIG. 7C shows m-1 signals indicating the necessary conditions for the signal IRDYi (i = 1 to m) to satisfy the above condition (3).
This is a circuit that generates ELOKi (i = 1 to m). A comparison circuit 740 compares the number of operation cycles EL1 and EL2 of the first and second instructions input from the instruction queue 211, and outputs an output signal ELOK2 of '1' when the latter is equal to or greater than the former. '
And 741 to 742 are m-2 comparison circuits having the same configuration as the 740, and correspond to the third to mth instructions in order,
The number of operation cycles and the number of operation cycles of the immediately preceding instruction are input, and when the latter is equal to or greater than the former, the output signal is set to '1'. Reference numerals 743 to 744 denote m-2 AND gates, which correspond to the third to m-th instructions in order, and output signals ELOK.
i (i = 3 to m) is output. Output of 740 and 741 is 743 ~
Fill in all of 744. In general, the outputs of the comparison circuits 741 to 742 corresponding to the i-th (where i> 2) instruction are input to all of the AND gates 743 to 744 corresponding to the i-th and subsequent instructions. Therefore, AND gate 744
Input all outputs of 740-742. With the above configuration, the ELOKi signal becomes "1" when the condition (3) is satisfied for all instructions from the first to the i-th, and only then.

第7D図は、上記第7A図,第7B図,第7C図にて説明した
信号QRDYi(i=1〜m),信号EAi(i=2〜m),信
号ELOKi(i=2〜m)を用いて、有効命令信号IRDY
(i=1〜m)を生成する回路を示す。750はANDゲート
であるが、本実施例に於いてはQRDY1のみを入力しその
ままの値を出力しIRDY1信号とする。即ち、QOP1で示さ
れる解読済命令は必ずセツトアツプすることができる。
751〜753は、同時にセツトアツプする最大m個の命令に
於ける第2ないし第m番目までのm−1個の命令に対応
するANDゲートであり、順にQRDYi(i=2〜m)及びEL
OKi(i=2〜m)を入力する。さらにEA2信号を751〜7
53のすべてに、EA3信号を752〜753の全てに入力する。
一般に、第i番目(ただしi>1)の命令に対応する演
算器割り当て信号EAiを、ゲート751〜753のうち、第i
番目以降の命令に対応するものすべてに入力する。従つ
て例えば、ゲート753には、EAi(i=2〜m)のすべて
を入力する。ゲート751〜753は、各々の入力の論理積を
順にIRDYi(i=2〜m)信号として出力する。以上の
構成により、IRDYi(i=1〜m)信号は上記(1)〜
(3)の条件を全て満たす有効命令信号となる。
FIG. 7D shows the signals QRDYi (i = 1 to m), the signal EAi (i = 2 to m), and the signal ELOKi (i = 2 to m) described in FIGS. 7A, 7B, and 7C. Using the valid command signal IRDY
2 shows a circuit for generating (i = 1 to m). Reference numeral 750 denotes an AND gate. In this embodiment, only the QRDY1 is input, and the value is output as it is to be the IRDY1 signal. That is, the decoded instruction indicated by QOP1 can always be set up.
Reference numerals 751 to 753 denote AND gates corresponding to the (m-1) second to m-th instructions in the maximum m instructions to be set up at the same time, and in order, QRDYi (i = 2 to m) and EL
Enter OKi (i = 2 to m). EA2 signal 751 ~ 7
The EA3 signal is input to all of 752 to 753 to all 53.
Generally, the arithmetic unit assignment signal EAi corresponding to the i-th (where i> 1) instruction is transmitted to the i-th instruction among the gates 751 to 753.
Enter all of the instructions corresponding to the second and subsequent instructions. Therefore, for example, all of EAi (i = 2 to m) is input to the gate 753. The gates 751 to 753 sequentially output the logical product of the inputs as IRDYi (i = 2 to m) signals. With the above configuration, the IRDYi (i = 1 to m) signals are (1) to (1)
An effective command signal that satisfies all of the conditions (3).

第2図のオペランド待ち制御回路210はセツトアツプ
された最大m個の命令のそれぞれについて、必要とする
オペランドデータがオペランドバツフアに読みだされて
いるかどうかを示す信号ADVWi(i=1〜m)を生成
し、これを演算制御ユニツト7に送出する。このため、
命令解読器207〜208より信号DSi(i=1〜p)及びUOB
i(i=1〜p)、命令待ち行列制御回路212より信号QI
Pi(i=1〜p)及びQOPi(i=1〜m)、記憶装置1
より信号ADVi(i=1〜p)及びOBNOi(i=1〜p)
をそれぞれ入力する。
The operand waiting control circuit 210 shown in FIG. 2 outputs a signal ADVWi (i = 1 to m) indicating whether or not required operand data is read out to the operand buffer for each of the set m instructions. And sends it to the arithmetic and control unit 7. For this reason,
Signals DSi (i = 1 to p) and UOB from instruction decoders 207 to 208
i (i = 1 to p), the signal QI from the instruction queue control circuit 212
Pi (i = 1 to p) and QOPi (i = 1 to m), storage device 1
Signals ADVi (i = 1 to p) and OBNOi (i = 1 to p)
Enter each.

第6図を用いて、オペランド待ち制御回路210の構成
をより詳細に説明する。601〜602はk個のフリツプフロ
ツプであり、オペランドバツフア216のk個のバツフア
レジスタに対応し、そのバツフアレジスタに必要なオペ
ランドが到着していない状態を表示する。すなわち、あ
るフリツプフロツプが‘1'の時、対応するバツフアレジ
スタにオペランドを読み出す必要があるがまだ到着して
いない事を、また‘0'の時、対応するバツフアレジスタ
にオペランドを読み出す必要がないか、あるいは既に到
着している事を示す。603〜604はk個のORゲートであ
り、フリツプフロツプ601〜602のそれぞれに対し、セツ
トする値を送出する。605〜606はp個のデコーダであ
り、それぞれ第2図のp個の命令解読器DECi(i=1〜
p)に対応し、順にUOBi(i=1〜p)及び命令待ち行
列入力ポインタ信号QIPi(i=1〜p)を入力し、それ
ぞれk本のデコード出力を順にORゲート603〜604に送出
する。605〜606の各デコーダは、UOBi(i=1〜p)の
うち対応する信号が‘1'となつたとき、命令待ち行列入
力ポインタ信号で示されるバツフアレジスタに対応した
デコード出力信号値を‘1'とする。この時ORゲート603
〜604の内対応したゲートが‘1'を出力する。607〜608
はk個のORゲートであり、フリツプフロツプ601〜602の
それぞれに対し、上記603〜604からの入力データをセツ
トするためのクロツク信号を送出する。609〜610はp個
のデコーダであり、それぞれ第2図のp個の命令解読器
DECi(i=1〜p)に対応し、順にDSi(i=1〜p)
及び命令待ち行列入力ポインタ信号QIPi(i=1〜p)
を入力し、それぞれk本のデコード出力を順にORゲート
607〜608に送出する。609〜610の各デコーダは、DSi
(i=1〜p)のうち対応する信号が‘1'となつたと
き、命令待ち行列入力ポインタ信号で示されるバツフア
レジスタに対応したデコード出力信号値を‘1'とする。
この時ORゲート607〜608の内対応したゲートがクロツク
信号値‘1'を出力する。これにより対応したフリツプフ
ロツプに上記入力データがセツトされる。2命令以上が
同時に解読を完了した場合DS1からの命令数分だけの命
令解読完了信号が‘1'となるが、この時はQIP1で示され
るフリツプフロツプから連続する上記命令数分のフリツ
プフロツプが各々の入力データ値にセツトされる。611
〜612はk個のORゲートであり、601〜602に対応し、各
フリツプフロツプを‘0'にリセツトする信号を送出す
る。613〜614はp個のデコーダであり、それぞれ記憶装
置1からのp個の出力ポートに対応し、順にアドバンス
信号ADVi(i=1〜p)及びオペランドバツフア番号OB
NOi(i=1〜p)を入力し、それぞれk本のデコード
出力を順にORゲート611〜612に送出する。613〜614の各
デコーダは、アドバンス信号が‘1'、すなわちオペラン
ドが記憶装置から送出されてきたとき、オペランドバツ
フア番号で示されるバツフアレジスタに対応したデコー
ド出力信号値を‘1'とする。この時ORゲート611〜612の
内対応したゲートが‘1'を出力し、これにより対応した
フリツプフロツプが‘0'にリセツトされる。2つ以上の
オペランドが同時に読みだされた場合、そのオペランド
数分だけのアドバンス信号が‘1'となるが、この時は上
記オペランド数分のフリツプフロツプが‘0'にリセツト
される。615〜616はセツトアツプポートi(i=1〜
m)対応のm個のセレクタである。各セレクタにはそれ
ぞれフリツプフロツプ601〜602の出力である合計k本の
オペランド待ち信号ADVWQi(i=1〜k)を入力する。
また、各セレクタには順に命令待ち行列出力ポインタQO
Pi(i=1〜m)を入力し、それぞれADVWQi(i=1〜
k)の中から該ポインタで示されるバツフアレジスタに
対応するオペランド待ち信号の値を選択し、信号ADVWi
(i=1〜m)として出力する。以上の説明から明らか
なように、信号ADVWi(i=1〜m)はセツトアツプし
た最大m個の命令のそれぞれに対応して、必要なオペラ
ンドがオペランドバツフアに到着していないことを示
す。
The configuration of the operand wait control circuit 210 will be described in more detail with reference to FIG. Numerals 601 to 602 denote k flip-flops, which correspond to the k buffer registers of the operand buffer 216, and indicate a state where the necessary operands have not arrived in the buffer registers. That is, when a flip-flop is '1', it is necessary to read the operand into the corresponding buffer register but it has not arrived yet, and when '0', it is necessary to read the operand into the corresponding buffer register. Indicates missing or has already arrived. Reference numerals 603 to 604 denote k OR gates, which send values to be set to the flip-flops 601 to 602, respectively. Reference numerals 605 to 606 denote p decoders, each of which includes p instruction decoders DECi (i = 1 to 1) shown in FIG.
In response to p), UOBi (i = 1 to p) and an instruction queue input pointer signal QIPi (i = 1 to p) are input in sequence, and k decode outputs are sequentially sent to OR gates 603 to 604, respectively. . When the corresponding signal of UOBi (i = 1 to p) becomes "1", each of the decoders 605 to 606 outputs the decoded output signal value corresponding to the buffer register indicated by the instruction queue input pointer signal. Set to '1'. At this time OR gate 603
The gate corresponding to .about.604 outputs "1". 607-608
Is a k number of OR gates, and sends clock signals for setting the input data from the above 603 to 604 to each of the flip flops 601 to 602. Reference numerals 609 to 610 denote p decoders, each of which has p instruction decoders shown in FIG.
Corresponds to DECi (i = 1 to p) and DSi (i = 1 to p) in order
And the instruction queue input pointer signal QIPi (i = 1 to p)
Input and OR gate the k decoded outputs in order.
607 to 608. Each decoder of 609 to 610 is DSi
When the corresponding signal among (i = 1 to p) becomes "1", the decode output signal value corresponding to the buffer register indicated by the instruction queue input pointer signal is set to "1".
At this time, the corresponding one of the OR gates 607 to 608 outputs the clock signal value '1'. Thus, the input data is set in the corresponding flip-flop. If two or more instructions have completed decoding simultaneously, the instruction decoding completion signal for the number of instructions from DS1 will be '1'. In this case, the flip-flops for the number of instructions consecutive from the flip-flop indicated by QIP1 Set to the input data value. 611
612 are k OR gates, corresponding to 601 to 602, for sending out signals for resetting each flip-flop to "0". Reference numerals 613 to 614 denote p decoders, which correspond to the p output ports from the storage device 1, respectively, and sequentially transmit the advance signal ADVi (i = 1 to p) and the operand buffer number OB.
NOi (i = 1 to p) is input, and k decode outputs are sequentially sent to OR gates 611 to 612, respectively. Each of the decoders 613 to 614 sets the decode output signal value corresponding to the buffer register indicated by the operand buffer number to "1" when the advance signal is "1", that is, when the operand is transmitted from the storage device. . At this time, the corresponding one of the OR gates 611 to 612 outputs "1", whereby the corresponding flip-flop is reset to "0". When two or more operands are read at the same time, the advance signals corresponding to the number of the operands become "1". At this time, the flip-flops corresponding to the number of the operands are reset to "0". 615 to 616 are set-up ports i (i = 1 to
m) Corresponding m selectors. Each selector receives a total of k operand wait signals ADVWQi (i = 1 to k), which are the outputs of flip-flops 601 to 602, respectively.
In addition, each selector has an instruction queue output pointer QO in turn.
Pi (i = 1 to m) is input, and ADVWQi (i = 1 to
k), the value of the operand wait signal corresponding to the buffer register indicated by the pointer is selected, and the signal ADVWi
(I = 1 to m). As is apparent from the above description, the signal ADVWi (i = 1 to m) indicates that the required operand has not arrived at the operand buffer corresponding to each of the set m instructions.

第3A図及び第3B図を用いて演算制御ユニツト7の構成
を説明する。第3A図は演算実行許可信号EXi(i=1〜
m),セツトアツプ完了信号OBTi(i=1〜m),最終
演算開始信号LBOP,セツトアツプ命令数LINOを生成する
回路である。301〜303はセツトアツプポートi(i=1
〜m)に対応するm個のNORゲートであり、各セツトア
ツプポートを介してセツトアツプした命令に対する演算
実行保留条件を入力し、その論理和の否定を出力する。
演算実行保留条件としてポート1に対応するセツトアツ
プ命令中第1番目の命令のオペランドが未到着である条
件FW1をANDゲート317より301〜303の全てに入力する。
ボート2に対応する第2番目の命令についてのオペラン
ド未到着条件FW2をANDゲート318より302〜303に入力す
る。一般に、第i番目の命令についてのFWi信号をNORゲ
ート301〜303のうちポートiからポートmに対応するも
のに入力する。304〜306はセツトアツプポートi(i=
1〜m)に対応したm個のフリツプフロツプであり、NO
Rゲート301〜303のうち対応するものの出力値を毎サイ
クル保持し、EXi(i=1〜m)信号として出力する。
上記構成により、第i番目の命令でFWi信号が‘1'とな
つた場合、第i番目以降のすべての演算実行許可信号EX
i(i=1〜m)は‘0'となり、第iないしm番目の命
令の演算実行を開始しない。本実施例では演算実行保留
条件としてオペランド未到着条件のみを示したが、その
他の保留条件に関しても上記と同様にNORゲート301〜30
3に入力することにより、演算実行の追い越しを防止す
る。
The configuration of the arithmetic and control unit 7 will be described with reference to FIGS. 3A and 3B. FIG. 3A shows an operation execution permission signal EXi (i = 1 to
m), a set-up completion signal OBTi (i = 1 to m), a final operation start signal LBOP, and a number of set-up instructions LINO. 301 to 303 are set-up ports i (i = 1)
M) NOR gates corresponding to .about.m), which input operation execution pending conditions for the set-up instruction via each set-up port, and output the negation of the logical sum.
The condition FW1 in which the operand of the first instruction among the set-up instructions corresponding to the port 1 has not arrived is input from the AND gate 317 to all of 301 to 303 as the execution suspension condition.
The operand non-arrival condition FW2 for the second instruction corresponding to the boat 2 is input from the AND gate 318 to 302 to 303. Generally, the FWi signal for the i-th instruction is input to one of the NOR gates 301 to 303 corresponding to the ports i to m. 304 to 306 are set-up ports i (i =
1 to m), and the number of flip-flops is NO.
The output value of the corresponding one of the R gates 301 to 303 is held every cycle and output as an EXi (i = 1 to m) signal.
According to the above configuration, when the FWi signal becomes “1” in the i-th instruction, all the i-th and subsequent arithmetic execution permission signals EX
i (i = 1 to m) becomes '0' and does not start the execution of the operation of the ith to mth instructions. In the present embodiment, only the operand non-arriving condition is shown as the operation execution pending condition.
By inputting to 3, it is possible to prevent the overtaking of the operation execution.

307〜309はセツトアツプポートi(i=1〜m)に対
応するm個のANDゲートであり、出力交換回路9から送
出される各命令の演算終了信号EOPi(i=1〜m)とフ
リツプフロツプ304〜306から送出される演算実行許可信
号EXi(i=1〜m)のうち、対応するポートの信号を
入力し、その論理積を信号EOPEXi(i=1〜m)として
出力する。信号EOPEXiは第i番目の命令に対する演算終
了が実際に許可されたことを示す。310はANDゲートであ
り、信号EOPEXi(i=1〜m)を入力しその論理積を信
号ERDYとして出力する。信号ERDYはセツトアツプした命
令が全て演算を完了し、従つて全ての演算器Ei(i=1
〜n)が空いたことを示す。本実施例では信号ERDY信号
が‘1'となつて初めて後続命令グループのセツトアツプ
を行なう。311〜313はセツトアツプポートi(i=1〜
m)に対応するm個のANDゲートであり、順に命令制御
ユニツト2から送出される有効命令信号IRDYi(i=1
〜m)を、またそれぞれに上記信号ERDYを入力し、それ
らの論理積を出力する311〜313の出力は対応するポート
を介してそのサイクルに命令セツトアツプが行なわれた
ことを示す。314〜316はセツトアツプポートi(i=1
〜m)に対応するm個のフリツプフロツプであり、順に
311〜313からセツトアツプ完了条件をデータ入力端子
に、またフリツプフロツプ304〜306からEXi(i=1〜
m)信号をクロツク端子に入力し、セツトアツプ完了信
号EBTi(i=1〜m)を出力する。314〜316のうちセツ
トアツプポートiに対応するフリツプフロツプに関して
見ると、該ポートに対応して有効な命令が存在した場合
その命令セツトアツプの完了したサイクルに信号OBTiが
‘1'となり、対応する演算実行が実際に開始したとき、
その次のサイクルから‘0'となる。337〜339はセツトア
ツプポート1〜mに対応したm個のレジスタであり、命
令制御ユニツト2から順に信号ENOi(i=1〜m)を入
力し、ゲート311〜313のうち、対応するものの出力が
‘1'となつたときに信号ENOi(i=1〜m)をとり込
む。それらのレジスタの内容は入力交換回路8に送られ
る。317〜319はセツトアツプポートi(i=1〜m)に
対応するm個のANDゲートであり、順に命令制御ユニツ
ト2からオペランド待ち信号ADVWi(i=1〜m)を、
またフリツプフロツプ314〜316から信号OBTi(i=1〜
m)を入力し、それらの論理積をオペランド未到着条件
信号FWi(i=1〜m)として出力する。320〜322は、
セツトアツプポートi(i=1〜m)に対応するm個の
ANDゲートであり、順に上記NORゲート301〜303から演算
実行許可信号を、またフリツプフロツプ314〜316からセ
ツトアツプ完了信号OBTi(i=1〜m)を入力し、これ
らの論理積を演算実行開始信号BOPi(i=1〜m)とし
て出力する。323〜325は、、セツトアツプポートi(i
=1〜m)に対応するm個のANDゲートであり、各々対
応するポートを介してセツトアツプされた命令が、同時
にセツトアツプされた命令の中で概念的に最後の命令で
あり、しかも該命令が演算実行を開始したことを検出す
る。このためセツトアツプポートiに応答するANDゲー
トには信号BOPiと、信号OBTi+1の否定値を入力する。
ただしゲート325においては信号BOPmのみを入力する信
号BOPi(i<m)が‘1'となつた時に次のポートi+1
に対応する信号が‘0'であつた場合、該第i番目の命令
が最後の命令である。何故ならば、もし第i番目の命令
が最後でないと仮定すると、第i+1ないし第m番目の
ポートに対応して命令がセツトアツプされたことにな
る。もしポートi+1に対応して命令がセツトアツプさ
れていたとすると、第i+1番目の命令の演算実行開始
は第i番目のそれを追い抜かないので、信号OBTi+1は
信号BOPiが‘1'となつたときには‘0'では有り得ず、上
記に矛盾する。またもしポートi+1に対して命令がセ
ツトアツプされていなかつたとすると、第i+2ないし
m番目のポートに対して命令セツトアツプが行なわれた
ことになるが、これは本実施例では命令セツトアツプは
連続したポートに対して行なわれるので有り得ない。こ
れは第i番目の命令が最後でないと仮定したことに誤り
が有るからである。従つて上記の場合は第i番目の命令
がセツトアツプされた命令のうち最後の命令であること
がいえる。また信号BOPmが‘1'となつたときは第m番目
の命令が最後の命令であることは明らかである。このと
きゲート323〜325のうち、第i番目のゲートの出力が
‘1'となる。また、明らかにその他のゲートの出力は
‘0'である。326はORゲートでありゲート323〜325の出
力の全ての論理和をとり、信号LBOPとして出力する。32
7はエンコーダであり、ANDゲート323〜325の出力を受け
取り、‘1'を出力しているゲートに対応するポート番号
を生成し、信号LINOとして出力する。
Reference numerals 307 to 309 denote m AND gates corresponding to the set-up ports i (i = 1 to m). The AND gates 307 to 309 are provided with an operation end signal EOPi (i = 1 to m) of each instruction sent from the output switching circuit 9 and a flip-flop. Of the operation execution permission signals EXi (i = 1 to m) transmitted from 304 to 306, the signal of the corresponding port is input, and the logical product thereof is output as a signal EOPEXi (i = 1 to m). The signal EOPEXi indicates that the end of the operation for the i-th instruction is actually permitted. An AND gate 310 receives a signal EOPEXi (i = 1 to m) and outputs a logical product of the signals as a signal ERDY. The signal ERDY indicates that all the set-up instructions have completed the operation, and therefore all the operation units Ei (i = 1)
To n) indicate that it is free. In this embodiment, the setup of the subsequent instruction group is performed only when the signal ERDY signal becomes "1". 311 to 313 are set-up ports i (i = 1 to
m) AND gates corresponding to m valid instruction signals IRDYi (i = 1) sequentially transmitted from the instruction control unit 2
M) and the signals ERDY respectively, and the outputs of 311 to 313 which output their logical product indicate that the instruction set-up has been performed in the cycle through the corresponding port. 314 to 316 are set-up ports i (i = 1
M) corresponding to (m).
From 311 to 313, the setup completion condition is input to the data input terminal, and from flip-flops 304 to 306, EXi (i = 1 to 1).
m) The signal is input to the clock terminal, and the set-up completion signal EBTi (i = 1 to m) is output. Looking at the flip-flop corresponding to the set-up port i among 314 to 316, if there is a valid instruction corresponding to the port, the signal OBTi becomes "1" in the cycle in which the instruction set-up is completed, and the corresponding operation is executed. Actually starts when
It becomes '0' from the next cycle. Reference numerals 337 to 339 denote m registers corresponding to the set-up ports 1 to m, which sequentially receive signals ENOi (i = 1 to m) from the instruction control unit 2 and output the corresponding one of the gates 311 to 313. Takes a signal ENOi (i = 1 to m) when becomes "1". The contents of these registers are sent to the input switching circuit 8. Reference numerals 317 to 319 denote m AND gates corresponding to the set-up port i (i = 1 to m), which sequentially receive an operand wait signal ADVWi (i = 1 to m) from the instruction control unit 2;
The signal OBTi (i = 1 to 1) is output from the flip-flops 314 to 316.
m) and outputs the logical product of them as the operand non-arrival condition signal FWi (i = 1 to m). 320-322
M number of ports corresponding to the set-up port i (i = 1 to m)
An AND gate, which sequentially receives an operation execution permission signal from the NOR gates 301 to 303 and a set-up completion signal OBTi (i = 1 to m) from the flip-flops 314 to 316, and calculates the logical product of these signals to execute the operation execution start signal BOPi (I = 1 to m). 323 to 325 are set-up ports i (i
= 1 to m), and the instruction set up via the corresponding port is conceptually the last instruction among the instructions set up at the same time, and the instruction is It detects that the execution of the operation has been started. Therefore, the signal BOPi and the negative value of the signal OBTi + 1 are input to the AND gate responding to the set-up port i.
However, in the gate 325, when the signal BOPi (i <m) for inputting only the signal BOPm becomes "1", the next port i + 1
Is "0", the i-th instruction is the last instruction. This is because if the i-th instruction is not the last, the instruction has been set up corresponding to the (i + 1) th through the mth ports. If an instruction is set up corresponding to port i + 1, the execution of the operation of the (i + 1) th instruction does not overtake that of the ith instruction, so that the signal OBTi + 1 becomes '0' when the signal BOPi becomes '1'. 'Is not possible and contradicts the above. If the instruction has not been set up for port i + 1, the instruction set-up has been performed for the (i + 2) -th to m-th ports. In this embodiment, the instruction set-up is performed for consecutive ports. It is impossible to do so. This is because there is an error in assuming that the ith instruction is not the last. Therefore, in the above case, it can be said that the ith instruction is the last instruction among the set-up instructions. When the signal BOPm becomes "1", it is clear that the m-th instruction is the last instruction. At this time, the output of the i-th gate among the gates 323 to 325 becomes “1”. Also, the outputs of the other gates are clearly '0'. Reference numeral 326 denotes an OR gate which takes the logical sum of all outputs of the gates 323 to 325 and outputs the result as a signal LBOP. 32
Reference numeral 7 denotes an encoder that receives the outputs of the AND gates 323 to 325, generates a port number corresponding to the gate that outputs “1”, and outputs the generated port number as a signal LINO.

第3B図は演算制御ユニツトのうち条件分岐判定信号TK
N,割り込み検出信号INT、及び演算実行取り消し信号RES
i(i=1〜m)を生成する回路である。350は条件コー
ド選択回路であり、出力交換回路によりセツトアツプポ
ートに対応した各命令の条件コードCCi(i=1〜m)
及びそれらのセツト信号CCSi(i=1〜m)を受け取
り、‘1'となつている信号CCSi(i=1〜m)のうち最
も番号の大きいものに対応した条件コードを選択し、レ
ジスタ351に送出する。352はORゲートであり、信号CCSi
(i=1〜m)を受け取り、これらの論理和を351のク
ロツク端子に送出する。351は条件コードレジスタであ
り、352からのクロツク信号が‘1'となつたとき、350が
出力する条件コード値をセツトする。351が出力する条
件コードCCPは、同時にセツトアツプされた命令が全て
実行を完了した場合の条件コードを示す。353はセツト
アツプポート1に条件分岐命令がセツトアツプされた時
の分岐判定制御回路である。また354〜355は、セツトア
ツプポートi(i=2〜m)に対応した分岐判定制御回
路である。356,358〜359はセツトアツプポートi(i=
1〜m)に対応するm個のレジスタであり、命令制御ユ
ニツトから送出する条件分岐命令信号BCi(i=1〜
m)及びマスク信号BCMi(i=1〜m)のうち、対応す
るポートのものをセツトする。各レジスタにはクロツク
信号として演算制御ユニツト内部で生成する上記OBTi
(i=1〜m)信号を入力する。362〜363は条件コード
の選択回路であり、対応するセツトアツプポートから条
件分岐命令がセツトアツプされたとき、該条件分岐命令
にとつて最新の条件コードを出力する。このため362に
は、上記CCP,CC1そしてCCS1を入力する。CCS1が‘1'で
あれば第1番目の命令が最新の条件コードを設定してお
り、このとき362はCC1の値を出力し、CCS1が‘0'であれ
ばCCPを出力する。一般に、362〜363のうちセツトアツ
プポートi(但しi>1)に対応して選択回路にはCCP,
CC1,...,CCi−1,CCS1,...,CCSi−1を入力する。この
時、CCS1,...,CCSi−1がすべて‘0'、すなわち、同時
にセツトアツプされた命令のなかでは該条件分岐命令に
先だつて条件コードを設定はる命令が無い場合、該選択
回路はCCPを出力し、CCS1,...,CCSi−1のうちで少なく
とも1つが‘1'の場合、‘1'である条件コードセツト信
号の中で最も番号の大きいポートに対応した条件コード
を出力する。以上により362〜363は、対応するセツトア
ツプポートから条件分岐命令がセツトアツプされたと
き、該条件分岐命令にとつて最新の条件コードを出力す
ることがわかる。357,360〜361は分岐判定回路である。
357には条件コードレジスタ351からCCP,356からBC1,BCM
1、そして演算制御ユニツト内部で生成する上記信号EOP
EX1を入力する。信号EOPEX1は第1番目の命令の演算実
行が終了したサイクルであることを示し、このとBC1が
‘1'、すなわち該命令が条件分岐命令であれば、マスク
値BCM1と最新の条件コードであるCCPから分岐の有無を
判定し、判定結果を信号TKN1として出力する。同様にし
て360〜361には順に362〜363からそれぞれに対する最新
の条件コード,358〜359からBCi(i=2〜m),BCMi
(i=2〜m)、そして演算制御ユニツト内部で生成す
る上記信号EOPEXi(i=2〜m)を入力する。さらに35
3と同様にして分岐判定を行ない、結果を信号TKNi(i
=2〜m)として出力する。364〜366はセツトアツプポ
ートi(i=1〜m)に対応するm個のORゲートであ
り、対応する命令の演算実行取り消し信号RESi(i=1
〜m)を出力する。このため365〜366の全てに上記TKN1
及び出力交換回路からの信号INTC1を入力する。さらに
一般に信号TKNi及びINTCi(i=2〜m)を、365〜366
のうちポートi+1からポートmに対応した全てのゲー
トに入力する。また364〜366の全てに出力交換回路から
のINTS1信号を入力する。さらに一般に信号INTSi(i=
2〜m)を、365〜366のうちポートiからポートmに対
応した全てのゲートに入力する。以上から分るように、
第i番目の命令に於いて分岐成立もしくは完了型割り込
みが発生すると第i+1番目以降の命令の演算を実行し
ている全ての演算器に対し、また第i番目の命令におい
て抑止型割り込みが発生すると第i番目以降の命令の演
算を実行している全ての演算器に対し、取り消し信号RE
Si+1,...,RESmが送出される。367及び368はORゲートで
あり、それぞれ全ての分岐成立信号TKNi(i=1〜m)
及び割り込み検出信号INTCi(i=1〜m),INTSi(i
=1〜m)の論理和を、TKN及びINT信号として命令制御
ユニツトに送出する。369はORゲートであり上記INT及び
TKN信号の論理和をフリツプフロツプ370に送出するフリ
ツプフロツプ370は369の出力を1サイクル保持し、その
出力信号RESを全ての演算器Ei(i=1〜n)に送出す
る。RES信号により、直後のサイクルでセツトアツプさ
れた命令グループの演算実行を抑止する。
FIG. 3B shows the conditional branch judgment signal TK of the arithmetic control unit.
N, interrupt detection signal INT, and operation execution cancel signal RES
i (i = 1 to m). Reference numeral 350 denotes a condition code selection circuit, which is a condition code CCi (i = 1 to m) of each instruction corresponding to a set-up port by an output switching circuit
And the set signal CCSi (i = 1 to m) thereof, and selects the condition code corresponding to the largest number among the signals CCSi (i = 1 to m) of "1". To send to. 352 is an OR gate, and the signal CCSi
(I = 1 to m) and sends their logical sum to the clock terminal 351. Reference numeral 351 denotes a condition code register, which sets the condition code value output by 350 when the clock signal from 352 becomes "1". The condition code CCP outputted by the reference numeral 351 indicates a condition code when all the instructions set up at the same time have completed execution. Reference numeral 353 denotes a branch determination control circuit when a conditional branch instruction is set up in the setup port 1. Reference numerals 354 to 355 denote branch determination control circuits corresponding to the set-up port i (i = 2 to m). 356, 358 to 359 are set-up ports i (i =
1 to m). Conditional branch instruction signals BCi (i = 1 to 1) sent from the instruction control unit.
m) and the mask signal BCMi (i = 1 to m) are set for the corresponding port. Each register has the OBTi which is generated as a clock signal inside the arithmetic control unit.
(I = 1 to m) signal is input. Numerals 362 to 363 denote condition code selection circuits which, when a conditional branch instruction is set up from a corresponding set-up port, output the latest condition code for the conditional branch instruction. Therefore, the CCP, CC1, and CCS1 are input to 362. If CCS1 is '1', the first instruction sets the latest condition code. At this time, 362 outputs the value of CC1, and if CCS1 is '0', outputs CCP. Generally, the selection circuit corresponding to the set-up port i (where i> 1) out of 362 to 363 has CCP,
Enter CC1, ..., CCi-1, CCS1, ..., CCSi-1. At this time, if CCS1,..., CCSi-1 are all “0”, that is, if there is no instruction to set a condition code prior to the conditional branch instruction among instructions set up at the same time, the selection circuit Outputs the CCP and outputs the condition code corresponding to the port with the highest number among the condition code set signals of "1" when at least one of CCS1, ..., CCSi-1 is "1". I do. From the above, it is understood that when the conditional branch instruction is set up from the corresponding set-up port, 362 to 363 output the latest condition code for the conditional branch instruction. 357, 360 to 361 are branch determination circuits.
357 contains condition code register 351 from CCP, 356 from BC1, BCM
1, and the above signal EOP generated inside the arithmetic and control unit
Enter EX1. The signal EOPEX1 indicates that this is the cycle in which the execution of the first instruction has been completed, and this indicates that the BC1 is '1', that is, the mask value BCM1 and the latest condition code if the instruction is a conditional branch instruction. The CCP determines whether there is a branch, and outputs the determination result as a signal TKN1. Similarly, the latest condition codes for 362 to 363 and the latest condition codes for 358 to 359 are assigned to BCi (i = 2 to m) and BCMi, respectively.
(I = 2 to m), and the signal EOPEXi (i = 2 to m) generated inside the arithmetic and control unit is input. An additional 35
A branch decision is made in the same manner as in 3, and the result is signal TKNi (i
= 2 to m). Reference numerals 364 to 366 denote m OR gates corresponding to the set-up port i (i = 1 to m), and an operation execution cancel signal RESi (i = 1) of the corresponding instruction.
To m). For this reason, the above TKN1
And a signal INTC1 from the output switching circuit. More generally, the signals TKNi and INTCi (i = 2 to m) are
Are input to all gates corresponding to ports i + 1 to m. Also, the INTS1 signal from the output switching circuit is input to all of 364 to 366. More generally, the signal INTSi (i =
2 to m) are input to all gates corresponding to ports i to m out of 365 to 366. As you can see,
When a branch is taken or a completion type interrupt is generated in the i-th instruction, all the arithmetic units executing the operations of the (i + 1) th and subsequent instructions are executed. The cancel signal RE is sent to all the arithmetic units executing the operations of the i-th and subsequent instructions.
Si + 1, ..., RESm are sent out. Reference numerals 367 and 368 denote OR gates, which are all branch establishment signals TKNi (i = 1 to m)
And interrupt detection signals INTCi (i = 1 to m), INTSi (i
= 1 to m) to the command control unit as TKN and INT signals. 369 is an OR gate, which has the above INT and
The flip-flop 370 sends the logical sum of the TKN signal to the flip-flop 370, holds the output of the 369 for one cycle, and sends the output signal RES to all the arithmetic units Ei (i = 1 to n). The execution of the operation of the instruction group set up in the immediately following cycle is suppressed by the RES signal.

第4図は入力交換回路8の構成を示す。401〜403は演
算器Ei(i=1〜n)に対応したn個のORゲートであ
り、演算器にセツトアツプするデータを出力する。404
〜406はセツトアツプポートi(i=1〜m)に対応す
るm個のデコーダであり、順に入力データdi(i=1〜
m)及び演算器番号ENOi(i=1〜m)を入力し、演算
器Ei(i=1〜n)に対応したn本のデコード信号を順
に401〜403に送出する。各デコーダは入力データが‘1'
の時演算器番号で示されるデコード信号を‘1'とする。
入力データdi(i=1〜m)としては、上記のINSTI,RD
i,MAi,MDi,RWAi,OBTi,EXi,RESi(i=1〜m)等があ
り、それぞれに対して第4図の交換回路を設ける。
FIG. 4 shows the configuration of the input switching circuit 8. Reference numerals 401 to 403 denote n OR gates corresponding to the operation units Ei (i = 1 to n), and output data to be set up to the operation units. 404
406 are m decoders corresponding to the set-up port i (i = 1 to m), and the input data di (i = 1 to
m) and a computing unit number ENOi (i = 1 to m) are input, and n decoding signals corresponding to the computing units Ei (i = 1 to n) are sequentially transmitted to 401 to 403. Each decoder has input data '1'
In this case, the decode signal indicated by the arithmetic unit number is set to '1'.
As the input data di (i = 1 to m), the above INSTI, RD
i, MAi, MDi, RWAi, OBTi, EXi, RESi (i = 1 to m), etc., and the switching circuit shown in FIG. 4 is provided for each of them.

第5図は出力交換回路9の構成を示す。501〜503はセ
ツトアツプポートi(i=1〜m)に対応するm個のセ
レクタあり、各セレクタに順に演算制御ユニツト7から
演算器番号ENOi(i=1〜m)を、また全ての演算器か
らの出力データのi(i=1〜n)を各セレクタに入力
する。セレクタ501〜503は入力データei(i=1〜n)
のうちそれぞれの演算器番号で示されるものを信号di
(i=1〜m)として出力する。出力データとしては、
上記EDi(i=1〜m),RWAi(i=1〜m),STAi(i
=1〜m)等がある。
FIG. 5 shows the configuration of the output switching circuit 9. Reference numerals 501 to 503 denote m selectors corresponding to the set-up port i (i = 1 to m). Each selector sequentially receives the operation unit numbers ENOi (i = 1 to m) from the operation control unit 7 and all the operation units. I (i = 1 to n) of the output data from the device is input to each selector. The selectors 501 to 503 input data ei (i = 1 to n)
The signal indicated by each operation unit number is signal di
(I = 1 to m). As output data,
The above EDi (i = 1 to m), RWAi (i = 1 to m), STAi (i
= 1 to m).

以下では典型的な命令列を例にとり、本実施例になる
計算機の動作を説明する。第10A図は、Load,Multiply,L
oad,Storeの4命令列に対する動作タイムチートであ
る。本実施例では1つの命令処理は命令読み出しを除く
と6つのステージからなる。Dステージでは命令解読及
びオペランドアドレス生成,Aステージでは命令解読情報
の命令待行列への格納とメモリオペランドもしくは分岐
命令のターゲツト命令読み出し、Lステージでは命令セ
ツトアツプ、Eステージでは演算実行、Pステージでは
演算結果のチエツクもしくは、条件分岐判定および演算
結果の書き込み指令の発行、Sステージでは演算結果の
レジスタもしくは記憶装置への書き込みを行なう。命令
により、Sステージの無い場合がある。最も簡単な命令
においては各ステージは1サイクルで実行するが命令に
より特定のステージを複数サイクルで実行する場合もあ
る。第10A図では横軸はマシンサイクルを単位とした時
間を、縦軸は上記命令列及び主要信号もしくは主要処理
を示す。上記4命令には図中の参照のため1〜4の命令
番号を付す。さて、本発明では命令1,2が同時にセツト
アツプされ、演算実行をしたところ、命令2において完
了型割り込みが発生したため、後続の命令3,4の処理を
取り消す場合を示している。命令1,2はサイクルC1にて
同時に解読され、この時C2にて命令解読完了信号DS1,2
が‘1'となる。C3にて有効命令信号IRDY1,2が‘1'とな
る。この時演算器は全て空いているとすると、ERDY信号
が‘1'であり、従つてこのサイクルで命令セツトアツプ
が行なわれOBT1,2信号が‘1'となる。この時特に演算実
行保留条件が無いので、直ちに演算が開始され、BOP1,2
信号が‘1'となる。またC4からは、演算実行許可信号EX
1,2が‘1'となる。命令1のEステージは1サイクルで
終了するのでC4にて演算終了信号EOP1が‘1'となる。一
方命令2はEステージは3サイクルを要するので、C6に
てEOP2が‘1'となる。従つて次にERDY信号が‘1'となる
のはC6である。この例では命令2のEステージの終了時
点で完了型割り込み条件が検出されるのでINTC2信号が
Pステージで‘1'となり、これに応答してRES信号がS
ステージで‘1'となる。一方命令3,4は命令1,2より1サ
イクル遅れてDステージが始まりC4からIRDY1,2信号が
‘1'となるものの、先行する命令グレープの演算が全て
終了しておらず、従つてERDY信号が‘0'なので、セツト
アツプが待たされる。C6にてERDYが‘1'となり、命令3,
4のセツトアツプが完了する。引続き命令3,4はE,Pステ
ージを実行し、C9でSステージに入る。しかし、先行す
る命令2にて割り込みが発生しており、C8にてRES信号
‘1'となつているので、これによりC8での命令3,4によ
る結果の書き込み指令RWC1,MWC2がそれぞれ抑止され
る。これは命令3,4のセツトアツプを命令1,2の演算実行
の終了を待つて行なつたため、命令3,4の書き込み指令
発行が命令1,2の割り込み検出を行なうPステージより
後になつたから可能であつた。従来は命令3,4は必ずし
も命令1,2の終了を待たずしてセツトアツプされ演算を
開始していたので命令2の割り込みが検出された時点で
は一般的には結果の書き込みはすでに終了してしまう。
従つて、レジスタの場合は予め待機しておいたデータを
回復する必要があり、また記憶装置の場合はMシリーズ
アーキテキチヤの仕様を守ることが困難である。
Hereinafter, the operation of the computer according to the present embodiment will be described using a typical instruction sequence as an example. Figure 10A shows Load, Multiply, L
This is an operation time cheat for four instruction strings of oad and Store. In the present embodiment, one instruction process consists of six stages except for the instruction reading. At the D stage, instruction decoding and operand address generation, at the A stage, instruction decoding information is stored in the instruction queue and the target instruction of memory operand or branch instruction is read, at the L stage, instruction set-up, at the E stage, operation is performed, and at the P stage, operation is performed. The result check or conditional branch determination and operation result write instruction issuance, and in the S stage, the operation result is written to a register or a storage device. Depending on the instruction, there may be no S stage. In the simplest instruction, each stage is executed in one cycle, but a specific stage may be executed in a plurality of cycles depending on the instruction. In FIG. 10A, the horizontal axis represents time in machine cycles, and the vertical axis represents the instruction sequence and the main signal or main processing. The four instructions are assigned instruction numbers 1 to 4 for reference in the figure. In the present invention, the instructions 1 and 2 are set up at the same time, and when the operation is executed, a completion interrupt occurs in the instruction 2, so that the processing of the subsequent instructions 3 and 4 is canceled. Instructions 1 and 2 are decoded at the same time in cycle C1.
Becomes '1'. At C3, the valid command signals IRDY1 and IRDY2 become '1'. At this time, assuming that all the arithmetic units are vacant, the ERDY signal is "1". Therefore, the instruction set-up is performed in this cycle, and the OBT1,2 signals become "1". At this time, since there is no calculation execution suspension condition, the calculation is started immediately and BOP1,2
The signal becomes '1'. From C4, the operation execution enable signal EX
1,2 becomes '1'. Since the E stage of the instruction 1 ends in one cycle, the operation end signal EOP1 becomes '1' at C4. On the other hand, in instruction 2, since the E stage requires three cycles, EOP2 becomes '1' at C6. Therefore, the next time the ERDY signal becomes "1" is C6. In this example, since the completion type interrupt condition is detected at the end of the E stage of the instruction 2, the INTC2 signal becomes "1" at the P stage, and in response, the RES signal becomes S.
It becomes '1' on the stage. On the other hand, in the instructions 3 and 4, the D stage starts one cycle later than the instructions 1 and 2, and the IRDY1 and 2 signals become '1' from C4. Since the signal is '0', the setup is waited. ERDY becomes '1' at C6 and instruction 3,
The setup of 4 is completed. Subsequently, instructions 3 and 4 execute the E and P stages, and enter the S stage at C9. However, since the interrupt occurred in the preceding instruction 2 and the RES signal was set to '1' in C8, the write commands RWC1 and MWC2 of the result by the instructions 3 and 4 in C8 were suppressed respectively. You. This is possible because the set-up of instructions 3 and 4 is performed after the completion of the execution of the operations of instructions 1 and 2, so that the write instruction of instructions 3 and 4 is issued after the P stage that detects interrupts of instructions 1 and 2. It was. Conventionally, instructions 3 and 4 are not always set up before the completion of instructions 1 and 2 and are started to operate. Therefore, when an interrupt of instruction 2 is detected, generally, writing of the result has already been completed. I will.
Therefore, in the case of a register, it is necessary to recover data that has been waiting in advance, and in the case of a storage device, it is difficult to observe the specifications of the M series architecture.

第10B図は、主記憶装置上に並ぶCompare,Branch on C
ondition,Load,Storeの4命令列において、第2のBC命
令が分岐成立となり、予測実行していたLoad,Store命令
をキヤンセルし、ターゲツト命令Addを実行する例であ
る。本例は命令1のメモリオペランド読み出しが2サイ
クル遅れる場合を示す。C1にて命令1,2,3の解読が完了
し、C2にてDS1,2,3信号が‘1'となる。C3にてIRDY1,2,3
信号が‘1'となる。この時全ての演算器が空いておりER
DY信号が‘1'であるとすると、命令セツトアツプが行な
われ、OBT1,2,3信号が‘1'となる。またこのC3からC3ま
での2サイクルの間、命令1のメモリオペランドが到着
していないことを示すADVW1信号が‘1'となる。これに
応答してこの2サイクルの間、後続命令に対する演算実
行許可信号EX1,2,3及び演算実行開始信号BOP1,2,3が抑
止される。C6にて命令1,2,3の演算実行が開始され、BC
命令はそのPステージ(C7)にて分岐成立信号TKN2が
‘1'となる。これに応答してRES3信号がC7、RES信号がC
8にて‘1'となり、これらにより順に命令3のレジスタ
書き込み指令RWC3及び命令4により記憶装置1へのメモ
リ書き込み指令MWC1が抑止される。命令3の結果の書き
込み指令抑止が可能であつたのは、その演算実行開始を
命令1,2の演算実行開始を待つて行ない、しかも命令3
の演算ステージサイクル数が命令2より短くないため、
命令3の書き込み指令発行が命令2の分岐判定を行なう
Pステージより後になつたから可能であつた。なおター
ゲツト命令の解読はC8ステージから開始される。従来は
令命3は必ずしも命令1の演算実行保留条件により伴つ
て演算実行を保留しないので命令2の分岐成立が検出さ
れた時点では一般的には結果の書き込みはすでに終了し
てしまう。従つて、予め待避しておいたデータをレジス
タに回復する必要があり、またもし命令3がStore命令
であつた場合はMシリーズアーキテクチヤの仕様を守る
ことが困難である。命令4の記憶装置への書き込み指令
が抑止可能であつたのは第10A図におけると同様の理由
による。
FIG.10B shows the Compare, Branch on C lined up in the main storage device.
In this example, in a four instruction sequence of ondition, Load, and Store, the second BC instruction is taken, the Load and Store instruction that has been predicted and executed is canceled, and the target instruction Add is executed. This example shows a case where the reading of the memory operand of the instruction 1 is delayed by two cycles. The decoding of the instructions 1, 2, and 3 is completed in C1, and the DS1, 2, and 3 signals become "1" in C2. IRDY1,2,3 at C3
The signal becomes '1'. At this time, all computing units are empty and ER
Assuming that the DY signal is "1", instruction setup is performed, and the OBT1, 2, and 3 signals become "1". During the two cycles from C3 to C3, the ADVW1 signal indicating that the memory operand of the instruction 1 has not arrived becomes "1". In response, during these two cycles, the operation execution permission signals EX1, 2, 3 and the operation execution start signals BOP1, 2, 3 for the subsequent instruction are suppressed. Execution of instructions 1, 2, and 3 starts at C6, and BC
In the instruction, the branch taken signal TKN2 becomes "1" at the P stage (C7). In response, RES3 signal is C7 and RES signal is C
At 8, the value becomes '1', whereby the register write instruction RWC3 of instruction 3 and the memory write instruction MWC1 to the storage device 1 are suppressed by instruction 4 in order. The reason why the write command of the result of the instruction 3 can be suppressed is that the execution of the operation is started only after the execution of the operations of the instructions 1 and 2 is started.
Is not shorter than instruction 2,
This is possible because the write instruction of the instruction 3 is issued after the P stage for determining the branch of the instruction 2. The decoding of the target instruction starts from the C8 stage. Conventionally, instruction 3 does not always suspend the execution of the operation due to the operation execution suspension condition of the instruction 1. Therefore, when the branch of the instruction 2 is detected, the writing of the result has already been completed. Therefore, it is necessary to restore the data saved in advance to the register, and if the instruction 3 is a Store instruction, it is difficult to observe the specifications of the M series architecture. The reason why the instruction to write the instruction 4 to the storage device can be suppressed is the same as in FIG. 10A.

本発明によれば、プログラムから見て1つずつ命令が
処理されるアーキテクチヤに基づくタイプの情報処理装
置において、並列実行方式により高速化を図る場合、割
り込みや分岐命令により予測失敗時の順序性保証が極め
て容易かつ高速となる。仮に本方式を用いないと、レジ
スタに結果を格納する命令に関しては常に予め書き込み
前のレジスタの内容を待避しておき上記のケースにおい
てレジスタの回復処理を行なう必要があり、そのための
制御回路が必要となり、また処理時間も大きくなる。ま
た主記憶に結果を書き込む命令に関しては上記順序仕様
を守ることが現状の技術では不可能である。
According to the present invention, in an information processing apparatus of the type based on an architecture in which instructions are processed one by one as viewed from a program, when speeding up is performed by a parallel execution method, an order at the time of prediction failure due to an interrupt or a branch instruction is improved. Assurance becomes extremely easy and fast. If this method is not used, it is necessary to always save the contents of the register before writing for the instruction to store the result in the register and perform the register recovery processing in the above case, and a control circuit for that is necessary And the processing time also increases. In addition, it is impossible with the current technology to observe the above order specification for an instruction for writing a result in the main memory.

【図面の簡単な説明】[Brief description of the drawings]

第1図は本発明になる計算機の全体ブロツク図、第2図
は第1図の命令制御ユニツト(2)の詳細構成図、第3A
図は第1図の演算制御ユニツト(7)の一部の詳細構成
図、第3B図は第1図の演算制御ユニツト(7)の残りの
部分の詳細構成図、第4図は第1図の入力交換回路
(8)の一般的な構成図、第5図は第1図の出力交換回
路(9)の一般的な構成図、第6図は第2図のオペラン
ド待ち制御回路(210)の詳細構成図、第7A図から第7D
図はそれぞれ第2図の命令セツトアツプ制御回路(21
3)の異なる部分の詳細構成図、第8図は第2図の命令
キユー制御回路(212)の詳細構成図、第9図は第1図
の装置で用いる命令の形式例、第10A図及び10B図は簡単
な命令列に於けるいろいろの信号のタイムチヤート、第
11図は第1図の演算ユニツト(4,5,6)の概略構成図で
ある。
FIG. 1 is an overall block diagram of a computer according to the present invention, FIG. 2 is a detailed block diagram of an instruction control unit (2) in FIG. 1, and FIG.
FIG. 3 is a detailed configuration diagram of a part of the arithmetic and control unit (7) of FIG. 1, FIG. 3B is a detailed configuration diagram of the remaining portion of the arithmetic and control unit (7) of FIG. 1, and FIG. 5 is a general configuration diagram of the output switching circuit (9) of FIG. 1, and FIG. 6 is an operand waiting control circuit (210) of FIG. 7A to 7D
The figures each show an instruction set-up control circuit (21
FIG. 8 is a detailed block diagram of the instruction key control circuit (212) of FIG. 2, FIG. 9 is an example of an instruction format used in the apparatus of FIG. 1, FIG. Figure 10B is a time chart of various signals in a simple command sequence,
FIG. 11 is a schematic configuration diagram of the operation units (4, 5, 6) of FIG.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 釜田 栄樹 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 井上 潔 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (56)参考文献 特開 昭59−2143(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38 ──────────────────────────────────────────────────続 き Continuing on the front page (72) Inventor Eiki Kamata 1-280 Higashi Koikebo, Kokubunji-shi, Tokyo Inside the Central Research Laboratory of Hitachi, Ltd. (72) Inventor Kiyoshi Inoue 1-280 Higashi Koikekubo, Kokubunji-shi, Tokyo Hitachi, Ltd. (56) References JP-A-59-2143 (JP, A) (58) Fields investigated (Int. Cl. 7 , DB name) G06F 9/38

Claims (32)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】複数の命令を並列に実行するための情報処
理装置であって、 複数の演算器と、 他の命令が要求する処理の実行時間と異なる実行時間を
要する処理の実行を要求する命令を含む実行すべき複数
の命令を保持するメモリと、 該メモリから命令をフェッチする命令フェッチ回路と、 該命令フェッチ回路でフェッチされた命令を解読する解
読回路と、 該解読回路で解読済みの複数の命令を該複数の演算器に
セットアップするセットアップ回路を有し、 該セットアップ回路は、 上記複数の演算器の内の複数の演算器にすでにセットア
ップされた先行する一群の命令に続いて実行されるべき
後続の複数の命令を含み、その中のいずれの命令も、そ
れぞれが要求する処理の実行時間がその命令のいずれの
後続の命令が要求する処理の実行時間より長くはないと
の条件を満たすとき、該複数の命令を、一群の命令とし
て該複数の演算器にセットアップする選択手段と、 上記先行する一群の命令が要求する処理の該複数の演算
器での実行完了に同期して、該選択された後続の一群の
命令を上記複数の演算器の内の複数の演算器に同時にセ
ットアップする手段とを有することを特徴とする情報処
理装置。
1. An information processing apparatus for executing a plurality of instructions in parallel, wherein the information processing apparatus requests execution of a plurality of arithmetic units and a process requiring an execution time different from an execution time of a process required by another instruction. A memory that holds a plurality of instructions to be executed including instructions, an instruction fetch circuit that fetches instructions from the memory, a decoding circuit that decodes the instruction fetched by the instruction fetch circuit, and a decoding circuit that has been decoded by the decoding circuit. A setup circuit for setting up a plurality of instructions in the plurality of operation units, wherein the setup circuit is executed following a preceding group of instructions already set up in the plurality of operation units among the plurality of operation units. Include a plurality of subsequent instructions to be executed, and any one of the instructions has an execution time of the processing requested by each of the instructions at the time of execution of the processing required by any subsequent instruction of the instruction. Selecting means for setting up the plurality of instructions as a group of instructions in the plurality of arithmetic units when a condition that the number of instructions is not longer than the interval, and the plurality of arithmetic units of processing required by the preceding group of instructions Means for simultaneously setting up the selected subsequent group of instructions in a plurality of arithmetic units out of the plurality of arithmetic units in synchronization with the completion of the execution of the information processing apparatus.
【請求項2】上記命令フェッチ回路は、複数の命令を同
時にフェッチする回路からなり、該解読回路は、該命令
フェッチ回路によりフェッチされた複数の命令を同時に
解読するための複数のデコーダを有することを特徴とす
る請求項1記載の情報処理装置。
2. An instruction fetch circuit comprising: a circuit for simultaneously fetching a plurality of instructions; and the decoding circuit having a plurality of decoders for simultaneously decoding a plurality of instructions fetched by the instruction fetch circuit. The information processing apparatus according to claim 1, wherein:
【請求項3】上記セットアップ回路により同時にセット
アップされる命令の最大数は、上記解読回路で同時に解
読される命令の総数より多いことを特徴とする請求項2
の情報処理装置。
3. The maximum number of instructions simultaneously set up by said setup circuit is greater than the total number of instructions simultaneously decoded by said decoding circuit.
Information processing device.
【請求項4】上記選択手段は、上記条件を満たす後続命
令の数により変化するように上記後続の命令群を選択す
ることを特徴とする請求項1記載の情報処理装置。
4. The information processing apparatus according to claim 1, wherein said selection means selects said subsequent instruction group so as to change according to the number of subsequent instructions satisfying said condition.
【請求項5】上記複数の演算器のいずれかで、上記先行
する命令群の内の一つの命令が要求する処理を実行中に
割り込み信号が発生したときに、その先行する命令群内
でその一つの命令の後続の命令を検出する手段と、 該検出された後続の命令が要求する処理の実行結果を上
記メモリまたは上記情報処理装置内の適当なレジスタに
書き込むのを禁止する手段とを有することを特徴とする
請求項1記載の情報処理装置。
5. When an interrupt signal is generated during execution of a process required by one of the preceding instruction groups in any of the plurality of arithmetic units, the interrupt signal is generated in the preceding instruction group. Means for detecting a subsequent instruction of one instruction; and means for prohibiting writing of an execution result of a process required by the detected subsequent instruction to the memory or an appropriate register in the information processing device. The information processing apparatus according to claim 1, wherein:
【請求項6】上記セットアップ回路内の上記選択手段
は、 上記先行する一群の命令に続いて実行すべき所定数の解
読済みの命令の各々が要求する処理の実行時間が、その
所定数の命令の中の、その命令のいずれかの後続の命令
が要求する処理の実行時間より長くないかを検出する回
路と、 上記検出回路の検出結果に依存して変化する数の命令
を、上記所定数の命令から選択する回路と、 グループ内のそれぞれの命令が要求する処理の実行時間
が、その所定数の命令の中の、その命令のいずれの後続
の命令が要求する処理の実行時間より長くないという条
件を満たす、上記検出回路による検出結果に依存して変
化する数の後続の一群の命令を、上記複数の演算器にセ
ットすべき上記後続の命令群として選択する回路とを有
することを特徴とする請求項1記載の情報処理装置。
6. A method according to claim 1, wherein said selecting means in said set-up circuit executes the processing time required by each of a predetermined number of decoded instructions to be executed following the preceding group of instructions, for the predetermined number of instructions. And a circuit for detecting whether any of the following instructions of the instruction is longer than the execution time of the processing required by the instruction; and changing the number of instructions depending on the detection result of the detection circuit to the predetermined number And the execution time of the processing required by each instruction in the group is not longer than the execution time of the processing required by any subsequent instruction of the instructions in the predetermined number of instructions. And a circuit that selects, as the subsequent instruction group to be set in the plurality of arithmetic units, a subsequent group of instructions that changes in number depending on the detection result of the detection circuit and satisfies the condition described above. Toss The information processing apparatus according to claim 1.
【請求項7】上記セットアップ回路内の上記選択手段
は、 上記先行する一群の命令に続いて実行すべき所定数の解
読済みの命令の各々が要求する処理の実行時間が、その
所定数の命令の中の、その命令のいずれの後続の命令が
要求する処理の実行時間より長くないという第1の条件
と、それぞれの命令が要求する処理を実行可能な全ての
演算器が上記情報処理装置の複数の演算器に含まれてい
るという第2の条件とに基づいて、上記一群の後続の命
令群として、これらの条件を満たすか否かに依存して変
化する数の命令群を選択する手段を有することを特徴と
する請求項1記載の情報処理装置。
7. The method according to claim 1, wherein the selecting means in the set-up circuit is configured to execute the processing time required by each of a predetermined number of decoded instructions to be executed subsequent to the preceding group of instructions by the predetermined number of instructions. Among the instructions, the first condition that the execution time of the processing required by any subsequent instruction of the instruction is not longer than that of the instruction, and all the arithmetic units capable of executing the processing requested by the respective instructions are Means for selecting, as the group of subsequent instructions, a number of instructions that varies depending on whether these conditions are satisfied, based on a second condition that the instructions are included in a plurality of arithmetic units The information processing apparatus according to claim 1, further comprising:
【請求項8】上記セットアップ回路内の上記選択手段
は、 上記先行する命令群に続いて実行すべき所定数解読済み
の命令の各々が要求する処理を実行可能な演算器が上記
所定数の演算器に含まれているかを検出する第1の検出
回路と、 上記所定数の解読済みの命令の各々が要求する処理の実
行時間が、その所定数の命令の中の、その命令のいずれ
かの後続の命令が要求する処理の実行時間より長くない
か否かを検出する第2の検出回路を有し、これら検出回
路の検出結果に応じて、先行する命令群に続いて実行す
べき一群の後続の命令を選択する回路を有することを特
徴とする請求項1記載の情報処理装置。
8. The selection means in the set-up circuit, wherein the arithmetic unit capable of executing a process required by each of a predetermined number of decoded instructions to be executed following the preceding instruction group has a predetermined number of arithmetic operations. A first detection circuit for detecting whether or not the instruction is included in the predetermined number of instructions; and an execution time of a process required by each of the predetermined number of decoded instructions, A second detection circuit for detecting whether or not the subsequent instruction is longer than the execution time of the requested processing; and, according to the detection result of these detection circuits, a group of groups to be executed following the preceding instruction group 2. The information processing apparatus according to claim 1, further comprising a circuit for selecting a subsequent instruction.
【請求項9】上記一群の先行する命令のいずれか一つの
命令が要求する処理の実行開始を遅らせるべきときに、
上記一群の先行する命令の内の、上記一つの命令の後続
の命令の実行開始を遅延する演算制御手段をさらに有す
ることを特徴とする請求項1記載の情報処理装置。
9. The method according to claim 1, wherein the start of execution of a process required by any one instruction of the group of preceding instructions is to be delayed.
2. The information processing apparatus according to claim 1, further comprising an arithmetic control unit that delays execution of an instruction subsequent to said one instruction in said group of preceding instructions.
【請求項10】上記演算制御手段は、上記先行する一群
の命令の中に、上記処理の実行開始を遅らせるべき命令
に先行する命令が含まれているときには、その先行する
命令の処理の開始は遅延しないことを特徴とする請求項
9記載の情報処理装置。
10. When the preceding group of instructions includes an instruction that precedes an instruction for which execution of the processing is to be delayed, the arithmetic control means starts processing of the preceding instruction. 10. The information processing apparatus according to claim 9, wherein there is no delay.
【請求項11】上記セットアップ手段は、 処理の開始を遅延した上記一つの命令およびその命令の
上記後続の命令が要求した処理の完了まで上記一群の後
続の命令のセットアップを禁止する手段を有することを
特徴とする請求項10記載の情報処理装置。
11. The set-up means includes means for prohibiting setup of the group of subsequent instructions until completion of the processing requested by the one instruction delayed in the start of the processing and the subsequent instruction of the one instruction. 11. The information processing device according to claim 10, wherein:
【請求項12】上記演算制御手段は、上記一つの命令が
要求する処理に使用する上記メモリ内のオペランドが利
用可能でないときに、上記一つの命令および上記後続の
命令が要求する処理の開始を遅延する手段を有すること
を特徴とする請求項9記載の情報処理装置。
12. An arithmetic control unit according to claim 1, wherein when an operand in said memory used for a process requested by said one instruction is not available, a start of a process requested by said one instruction and said subsequent instruction is started. The information processing apparatus according to claim 9, further comprising a delay unit.
【請求項13】上記解読回路により解読された命令が要
求するメモリオペランドを上記メモリからフェッチする
手段と、 フェッチされたメモリオペランドを一時的に保持するオ
ペランドバッファと、上記一群の先行する命令が上記セ
ットアップ回路によりセットアップされたときに、それ
らの命令の内、上記メモリオペランドを必要とする上記
一つの命令が指定するメモリオペランドが上記メモリか
らすでにフェッチされている場合には、その一つの命令
が要求する処理のためにそのメモリオペランドを供給
し、そのメモリオペランドがまだフェッチされていない
ときには、上記演算制御手段にそのメモリオペランドが
利用可能でないことを通知する手段とをさらに有するこ
とを特徴とする請求項12記載の情報処理装置。
13. A means for fetching, from the memory, a memory operand required by an instruction decoded by the decoding circuit, an operand buffer for temporarily storing the fetched memory operand, and the group of preceding instructions comprising: When set up by the setup circuit, if the memory operand specified by the one instruction requiring the memory operand among the instructions has already been fetched from the memory, the one instruction is requested. Means for providing the memory operand for processing to perform the operation, and when the memory operand has not been fetched yet, notifying the arithmetic control means that the memory operand is not available. Item 13. The information processing device according to item 12.
【請求項14】各演算器は、 その演算器にセットアップされた命令が指定する処理を
実行して結果データを生成する手段と、 そのデータの生成に同期して、処理の終了を示す信号を
出力する手段とを有し、 上記セットアップ回路内の上記セットアップ手段は、上
記先行する一群の命令がセットアップされた複数の演算
器の全てから処理終了信号が受信されたことに応答し
て、上記後続の一群の命令をセットアップする手段を有
することを特徴とする請求項1記載の情報処理装置。
14. Each operation unit executes a process specified by an instruction set up in the operation unit to generate result data, and outputs a signal indicating the end of the process in synchronization with the generation of the data. Means for outputting, wherein the setup means in the setup circuit, in response to receiving a processing end signal from all of the plurality of arithmetic units in which the preceding group of instructions has been set up, responds to the subsequent 2. The information processing apparatus according to claim 1, further comprising means for setting up a group of instructions.
【請求項15】上記情報処理装置は、上記複数の演算器
に接続された複数のレジスタをさらに有し、 各演算器は、上記複数のレジスタのうち、その演算器に
セットアップされた命令が指定する番号のレジスタに、
その演算器の上記結果データ生成手段により生成された
結果データを格納する手段を有することを特徴とする請
求項14記載の情報処理装置。
15. The information processing apparatus further includes a plurality of registers connected to the plurality of arithmetic units, wherein each of the arithmetic units specifies an instruction set up in the arithmetic unit among the plurality of registers. To the register with the number
15. The information processing apparatus according to claim 14, further comprising means for storing the result data generated by the result data generating means of the arithmetic unit.
【請求項16】上記セットアップ回路は、上記先行する
一群の命令に続いて実行すべき所定数の解読済みの命令
の各々が要求する処理の実行時間が、その所定数の命令
の中の、その命令のいずれの後続の命令が要求する処理
の実行時間より長くないという第1の条件と、および、
それぞれの命令が要求する処理を実行可能な全ての演算
器が上記情報処理装置の複数の演算器に含まれていると
いう第2の条件とを満たす後続の一群の命令がない場合
に、上記先行する一群の命令の後続の命令の先頭の命令
を上記複数の演算器の一つにセットアップする手段をさ
らに有すること特徴とする請求項1記載の情報処理装
置。
16. The setup circuit according to claim 1, wherein the execution time of the processing required by each of the predetermined number of decoded instructions to be executed after the preceding group of instructions is the execution time of the predetermined number of instructions among the predetermined number of instructions. A first condition that any subsequent instruction of the instruction is no longer than the execution time of the required processing; and
If there is no subsequent group of instructions satisfying the second condition that all the arithmetic units capable of executing the processing required by each instruction are included in the plurality of arithmetic units of the information processing apparatus, 2. The information processing apparatus according to claim 1, further comprising: means for setting up, at one of the plurality of arithmetic units, a head instruction of an instruction subsequent to the group of instructions to be executed.
【請求項17】上記セットアップ回路は、 上記先行する一群の命令に続いて実行すべき所定数の解
読済みの命令の各々が要求する処理の実行時間が、その
所定数の命令の中の、その命令のいずれかの後続の命令
が要求する処理の実行時間より長くないという条件を満
たさないときに、上記所定数の後続の命令の先頭の命令
を上記複数の演算器の一つにセットアップする手段をさ
らに有することを特徴とする請求項1記載の情報処理装
置。
17. The setup circuit according to claim 1, wherein the execution time of the processing required by each of the predetermined number of decoded instructions to be executed after the preceding group of instructions is the execution time of the predetermined number of instructions. Means for setting up the first instruction of the predetermined number of subsequent instructions in one of the plurality of arithmetic units when a condition that any one of the subsequent instructions is not longer than a required execution time of a process is not satisfied. The information processing apparatus according to claim 1, further comprising:
【請求項18】上記セットアップ回路の上記選択手段
は、 上記先行する一群の命令に続いて実行すべき後続の複数
の解読済みの命令の各々が要求する処理の実行時間が、
その所定数の命令の中の、その命令のいずれかの後続の
命令が要求する処理の実行時間より長くないという上記
条件とそれぞれの命令が指定する処理を実行可能な演算
器が利用可能であると言う他の条件とに基づいて、上記
後続の一群の命令を選択する手段を有し、 上記セットアップ回路は、上記条件および上記他の条件
を満たす上記後続の一群の命令が存在しないとき、上記
後続の複数の命令の先頭の命令を選択的に上記複数の演
算器の一つにセットアップする手段をさらに有すること
を特徴とする請求項1記載の情報処理装置。
18. The set-up circuit according to claim 18, wherein the selecting means of the set-up circuit executes execution time of a process required by each of a plurality of subsequent decoded instructions to be executed following the preceding group of instructions.
Among the predetermined number of instructions, the above-mentioned condition that any one of the following instructions of the instruction does not take longer than the execution time of the processing required and an arithmetic unit capable of executing the processing specified by each instruction are available. Means for selecting the subsequent group of instructions based on the other condition, wherein the set-up circuit, when there is no subsequent group of instructions satisfying the condition and the other condition, 2. The information processing apparatus according to claim 1, further comprising means for selectively setting up a head instruction of a plurality of subsequent instructions in one of the plurality of arithmetic units.
【請求項19】上記セットアップ回路内の上記選択手段
は、 上記複数の演算器が上記先行する一群の命令の後続の所
定数の命令が必要とする処理を実行可能な演算器を含ん
でいるか否かを検出する第1の検出回路と、 上記所定数の命令の各々が要求する処理の実行時間が、
その所定数の命令の中の、その命令のいずれかの後続の
命令が要求する処理の実行時間より長くないか否かを検
出する第2の検出回路と、 上記所定数の命令に対する上記第1、第2の検出回路の
検出結果が肯定的なときに、上記所定数の命令を上記後
続の一群の命令として選択する手段とを有し、 上記セットアップ回路は、上記所定数の命令に対する上
記第1、第2の検出回路の検出結果が否定的のときに、
上記所定数の命令の先頭の命令を選択的に上記複数の演
算器の一つにセットアップする手段をさらに有すること
を特徴とする請求項1記載の情報処理装置。
19. The selection means in the setup circuit, wherein the plurality of arithmetic units include an arithmetic unit capable of executing a process required by a predetermined number of instructions following the preceding group of instructions. A first detection circuit for detecting whether or not each of the predetermined number of instructions requires processing time;
A second detection circuit for detecting whether any of the following instructions of the predetermined number of instructions is longer than the execution time of the requested processing, and the first detection circuit for the predetermined number of instructions. Means for selecting the predetermined number of instructions as the subsequent group of instructions when the detection result of the second detection circuit is affirmative, the setup circuit comprising: 1. When the detection result of the second detection circuit is negative,
2. The information processing apparatus according to claim 1, further comprising: means for selectively setting up a first instruction of the predetermined number of instructions in one of the plurality of arithmetic units.
【請求項20】上記一群の先行する命令のいずれか一つ
の命令が要求する処理の実行開始を遅らせるべきとき
に、上記一群の先行する命令の内の、上記一つの命令の
後続の命令の実行開始を遅延する演算制御手段をさらに
有することを特徴とする請求項19記載の情報処理装置。
20. Execution of an instruction subsequent to said one of said group of preceding instructions when execution of a process required by any one of said group of preceding instructions is to be delayed. 20. The information processing apparatus according to claim 19, further comprising an arithmetic control unit that delays the start.
【請求項21】上記演算制御手段は、上記先行する一群
の命令の中に、上記一つの命令に先行する命令が含まれ
ているときには、その先行する命令の処理の開始は遅延
しないことを特徴とする請求項20記載の情報処理装置。
21. The arithmetic control means, when the preceding group of instructions includes an instruction preceding the one instruction, does not delay the start of processing of the preceding instruction. 21. The information processing device according to claim 20, wherein
【請求項22】上記セットアップ手段は、 処理の開始を遅延した上記一つの命令およびその命令の
上記後続の命令が要求した処理の完了まで上記一群の後
続の命令のセットアップを禁止する手段を有することを
特徴とする請求項20記載の情報処理装置。
22. The setup means includes means for inhibiting setup of the group of subsequent instructions until completion of the processing requested by the one instruction delayed in the start of processing and the instruction following the instruction. 21. The information processing device according to claim 20, wherein:
【請求項23】上記演算制御手段は、上記一つの命令が
要求する処理に使用する上記メモリ内のオペランドが利
用可能でないときに、上記一つの命令および上記後続の
命令が要求する処理の開始を遅延する手段を有すること
を特徴とする請求項20記載の情報処理装置。
23. The arithmetic control means, when an operand in the memory used for a process required by the one instruction is not available, starts the process required by the one instruction and the subsequent instruction. 21. The information processing apparatus according to claim 20, further comprising a delay unit.
【請求項24】上記解読回路により解読された命令が要
求するメモリオペランドを上記メモリからフェッチする
手段と、 フェッチされたメモリオペランドを一時的に保持するオ
ペランドバッファと、上記一群の先行する命令が上記セ
ットアップ回路によりセットアップされたときに、それ
らの命令の内、上記メモリオペランドを必要とする上記
一つの命令が指定するメモリオペランドが上記メモリか
らすでにフェッチされている場合には、その一つの命令
が要求する処理のためにそのメモリオペランドを供給
し、そのメモリオペランドがまだフェッチされていない
ときには、上記演算制御手段にそのメモリオペランドが
利用可能でないことを通知する手段とをさらに有するこ
とを特徴とする請求項23記載の情報処理装置。
24. A means for fetching, from the memory, a memory operand required by an instruction decoded by the decoding circuit, an operand buffer for temporarily storing the fetched memory operand, and the group of preceding instructions comprising: When set up by the setup circuit, if the memory operand specified by the one instruction requiring the memory operand among the instructions has already been fetched from the memory, the one instruction is requested. Means for providing the memory operand for processing to perform the operation, and when the memory operand has not been fetched yet, notifying the arithmetic control means that the memory operand is not available. Item 23. The information processing device according to item 23.
【請求項25】上記解読回路で解読された複数の命令
を、それらが該セットアップ回路によりセットアップさ
れるまで一時的に保持する命令キューをさらに有するこ
とを特徴とする請求項19記載の情報処理装置。
25. An information processing apparatus according to claim 19, further comprising an instruction queue for temporarily holding a plurality of instructions decoded by said decoding circuit until they are set up by said setup circuit. .
【請求項26】上記解読回路で解読された複数の命令
を、それらが該セットアップ回路によりセットアップさ
れるまで一時的に保持する命令キューをさらに有するこ
とを特徴とする請求項1記載の情報処理装置。
26. The information processing apparatus according to claim 1, further comprising an instruction queue for temporarily holding a plurality of instructions decoded by said decoding circuit until they are set up by said setup circuit. .
【請求項27】上記一群の先行する命令のいずれか一つ
の命令が要求する処理の実行開始を遅らせるべきとき
に、上記一群の先行する命令の内の、上記一つの命令の
後続の命令の実行開始を遅延する演算制御手段を有する
ことを特徴とする請求項1記載の情報処理装置。
27. Execution of an instruction subsequent to said one of said group of preceding instructions when execution of a process required by any one of said group of preceding instructions is to be delayed. 2. The information processing apparatus according to claim 1, further comprising an arithmetic control unit that delays the start.
【請求項28】上記演算制御手段は、上記一つの命令が
要求する処理に使用する上記メモリ内のオペランドが利
用可能でないときに、上記一つの命令および上記後続の
命令が要求する処理の開始を遅延する手段を有すること
を特徴とする請求項27記載の情報処理装置。
28. The arithmetic control means, when an operand in the memory used for the processing requested by the one instruction is not available, starts the processing required by the one instruction and the following instruction. 28. The information processing apparatus according to claim 27, further comprising a delay unit.
【請求項29】上記解読回路で解読された複数の命令
を、それらが該セットアップ回路によりセットアップさ
れるまで一時的に保持する命令キューをさらに有するこ
とを特徴とする請求項27記載の情報処理装置。
29. The information processing apparatus according to claim 27, further comprising an instruction queue for temporarily holding a plurality of instructions decoded by said decoding circuit until they are set up by said setup circuit. .
【請求項30】複数の命令を並列に実行するための情報
処理装置であって、 複数の演算器と、 実行すべき複数の命令を保持するメモリと、 該メモリから命令をフェッチする命令フェッチ回路と、 該命令フェッチ回路でフェッチされた命令を解読する解
読回路と、 該解読回路で解読済みの複数の命令を該複数の演算器に
セットアップするセットアップ回路を有し、 該セットアップ回路は、 先行して上記複数の演算器の内の複数の演算器にすでに
セットアップされた先行する一群の命令に続いて実行さ
れるべき後続の一群の命令を、上記先行する一群の命令
が要求する処理の該複数の演算器での実行完了に同期し
て、上記複数の演算器の内の複数の演算器に同時にセッ
トアップする手段と、 上記一群の先行する命令のいずれか一つの命令が要求す
る処理の実行開始を遅らせるべきときに、上記一群の先
行する命令の内の、上記一つの命令の後続の命令の実行
開始を遅延する演算制御手段とを有することを特徴とす
る情報処理装置。
30. An information processing apparatus for executing a plurality of instructions in parallel, comprising: a plurality of arithmetic units; a memory holding a plurality of instructions to be executed; and an instruction fetch circuit for fetching instructions from the memory A decoding circuit for decoding the instruction fetched by the instruction fetch circuit; and a setup circuit for setting up the plurality of instructions decoded by the decoding circuit in the plurality of arithmetic units. The plurality of processing units required by the preceding group of instructions to execute a subsequent group of instructions to be executed after the preceding group of instructions already set up in the plurality of processing units among the plurality of processing units. Means for simultaneously setting up in a plurality of computing units among the plurality of computing units in synchronization with the completion of execution in the computing unit, and any one of the preceding group of instructions is An operation control unit for delaying the start of execution of an instruction subsequent to the one of the group of preceding instructions when execution of the requested processing is to be delayed. .
【請求項31】上記演算制御手段は、上記一つの命令が
要求する処理に使用する上記メモリ内のオペランドが利
用可能でないときに、上記一つの命令および上記後続の
命令が要求する処理の開始を遅延する手段を有すること
を特徴とする請求項30記載の情報処理装置。
31. The arithmetic control means, when an operand in the memory used for a process required by the one instruction is not available, starts the process required by the one instruction and the subsequent instruction. 31. The information processing apparatus according to claim 30, further comprising a delay unit.
【請求項32】上記解読回路で解読された複数の命令
を、それらが該セットアップ回路によりセットアップさ
れるまで一時的に保持する命令キューをさらに有するこ
とを特徴とする請求項30記載の情報処理装置。
32. An information processing apparatus according to claim 30, further comprising an instruction queue for temporarily holding a plurality of instructions decoded by said decoding circuit until they are set up by said setup circuit. .
JP01706688A 1988-01-29 1988-01-29 Information processing device Expired - Lifetime JP3161711B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01706688A JP3161711B2 (en) 1988-01-29 1988-01-29 Information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01706688A JP3161711B2 (en) 1988-01-29 1988-01-29 Information processing device

Publications (2)

Publication Number Publication Date
JPH01194031A JPH01194031A (en) 1989-08-04
JP3161711B2 true JP3161711B2 (en) 2001-04-25

Family

ID=11933615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01706688A Expired - Lifetime JP3161711B2 (en) 1988-01-29 1988-01-29 Information processing device

Country Status (1)

Country Link
JP (1) JP3161711B2 (en)

Also Published As

Publication number Publication date
JPH01194031A (en) 1989-08-04

Similar Documents

Publication Publication Date Title
US5922068A (en) Information processing system and information processing method for executing instructions in parallel
EP0381471B1 (en) Method and apparatus for preprocessing multiple instructions in a pipeline processor
US5109495A (en) Method and apparatus using a source operand list and a source operand pointer queue between the execution unit and the instruction decoding and operand processing units of a pipelined data processor
CA1324671C (en) Decoding multiple specifiers in a variable length instruction architecture
CA1268555A (en) Branch stream coprocessor
US4782441A (en) Vector processor capable of parallely executing instructions and reserving execution status order for restarting interrupted executions
US5345567A (en) System and method for modifying program status word system mask, system access key, and address space code with overlap enabled
EP0495165B1 (en) Overlapped serialization
EP1296229B1 (en) Scoreboarding mechanism in a pipeline that includes replays and redirects
US4775927A (en) Processor including fetch operation for branch instruction with control tag
EP0394624B1 (en) Multiple sequence processor system
JP3683808B2 (en) Basic cache block microprocessor with instruction history information
KR19980079702A (en) A method of delivering the result of a store instruction and a processor implementing the same
EP0094535B1 (en) Pipe-line data processing system
US4739470A (en) Data processing system
US7219216B2 (en) Method for identifying basic blocks with conditional delay slot instructions
JP3207124B2 (en) Method and apparatus for supporting speculative execution of a count / link register change instruction
US6883090B2 (en) Method for cancelling conditional delay slot instructions
JP2001060153A (en) Information processor
US7765387B2 (en) Program counter control method and processor thereof for controlling simultaneous execution of a plurality of instructions including branch instructions using a branch prediction mechanism and a delay instruction for branching
US6502186B2 (en) Instruction processing apparatus
US6754813B1 (en) Apparatus and method of processing information for suppression of branch prediction
KR100431975B1 (en) Multi-instruction dispatch system for pipelined microprocessors with no branch interruption
JPH06161779A (en) Interruption control system for data processor
JP3161711B2 (en) Information processing device

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term