JPH01194031A - Information processor - Google Patents
Information processorInfo
- Publication number
- JPH01194031A JPH01194031A JP1706688A JP1706688A JPH01194031A JP H01194031 A JPH01194031 A JP H01194031A JP 1706688 A JP1706688 A JP 1706688A JP 1706688 A JP1706688 A JP 1706688A JP H01194031 A JPH01194031 A JP H01194031A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- signal
- execution
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 18
- 230000010365 information processing Effects 0.000 claims description 16
- 238000001514 detection method Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 10
- 230000002401 inhibitory effect Effects 0.000 claims 2
- 239000000872 buffer Substances 0.000 description 30
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 239000000725 suspension Substances 0.000 description 5
- 238000006073 displacement reaction Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 101000945119 Solanum lycopersicum Homeotic protein knotted-1 Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 101100372898 Caenorhabditis elegans vha-5 gene Proteins 0.000 description 1
- 102100035692 Importin subunit alpha-1 Human genes 0.000 description 1
- 101710118223 Importin subunit alpha-4 Proteins 0.000 description 1
- 101100029846 Oryza sativa subsp. japonica PIP1-1 gene Proteins 0.000 description 1
- 101100029854 Oryza sativa subsp. japonica PIP1-3 gene Proteins 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はいわゆる汎用コンピュータ等の、プログラムか
らみて概念的に命令が一つずつ実行される情報処理装置
に関わり、特に処理速度向上のために複数の演算器にて
複数の命令を同時に実行する上で重要となる方式に関す
る。[Detailed Description of the Invention] [Industrial Application Field] The present invention relates to an information processing device such as a so-called general-purpose computer, in which instructions are conceptually executed one by one when viewed from a program. It relates to a method that is important when multiple instructions are executed simultaneously by multiple arithmetic units.
概念的に命令が一つずつ実行されるコンピュータの内、
並列演算によって高速化を図った例として、I BM3
60/91に関する文献(R,M。Among computers, conceptually, instructions are executed one by one.
As an example of speeding up by parallel calculation, IBM 3
References regarding 60/91 (R, M.
Tomasule An Efflcient
A1gorithw* forExploiting
Multiple Arithmetic unit
s”、 IBMJournal、1967、 Jan)
や日本公開特許昭58−176751“命令語解読ユニ
ット”に記載の技術がある。これらのコンピュータでは
、概念的に順序付けられた複数命令が異なる演算器で実
行されるため結果の書き込みが概念的順序と異なる場合
がある。従って割り込みが発生した場合割り込みの原因
となった命令に対し、どの命令まで実行されたかが一般
的には識別回置である。また分岐命令で分岐判定が下る
までの間予側判定に基づく実行を行なう方式を用いる場
合、予測失敗時に予測命令による結果の誤った書き込み
が生じると、その回復処理が必要となる。Tomasule An Efficient
A1gorithw* for Exploiting
Multiple Arithmetic units
s”, IBM Journal, 1967, Jan)
There is a technique described in Japanese Patent Publication No. 58-176751 "Instruction word decoding unit". In these computers, a plurality of conceptually ordered instructions are executed by different arithmetic units, so the writing of results may differ from the conceptual order. Therefore, when an interrupt occurs, it is generally determined which instruction has been executed compared to the instruction that caused the interrupt. Furthermore, when using a method in which execution is performed based on a prediction-side decision until a branch decision is made with a branch instruction, if a result of a prediction instruction is incorrectly written when prediction fails, recovery processing is required.
米国IBM社の370アーキテクチャ−に準拠する情報
処理装置に於いては、上記のような結果の書き込み順序
の逆転はプログラムから観測されてはならない、従って
上記のような複数演算器を有し命令の同時もしくは追い
抜き実行の有り得る情報処理装置では、370アーキテ
クチャ−における命令実行順序仕様に準拠するためには
結果の書き込みによって失われる記憶装置のフィールド
上のデータとそのアドレスを個々の命令実行に際して予
め待避しておき、命令実行のオーバランが発生し該命令
の実行を無効化する必要が生じた場合は待避したデータ
を再び元のフィールドに回復するといった処理を行なう
必要がある。この方法は日本特公昭56−40382
r情報処理装置」又は対応するUS特許4 、385
、365にて開示されているように従来でも類似の目
的のために使用することがある。しかし、この方法は制
御が複雑であること、データとアドレスの待避レジスタ
が必要でコストが高くなること、データの回復に時間を
要するので、この命令実行の無効化が頻発すると処理装
置全体の性能を返って下げる可能性がある等の問題点が
ある。またさらに、370アーキテクチャ−における主
記憶に対して書き込みのオーバランが発生すると、フィ
ールドの回復前に他のプロセッサやチャネルからオーバ
ランして書き込まれたデータを参照される可能性があり
、その場合は上記待避回復による順序保証方式によって
も該アーキテクチャ−による順序規定に準拠することが
できない。In information processing devices based on IBM's 370 architecture in the United States, reversal of the writing order of results as described above must not be observed from the program. In an information processing device where simultaneous or catch-up execution is possible, in order to comply with the instruction execution order specifications in the 370 architecture, it is necessary to save the data on the field of the storage device and its address that will be lost due to writing of the result before executing each instruction. However, if an overrun occurs in the execution of an instruction and it becomes necessary to invalidate the execution of the instruction, it is necessary to perform processing such as restoring the saved data to the original field. This method is based on the Japanese Special Public Service No. 56-40382.
r information processing device” or corresponding US Pat. No. 4, 385.
, 365, it may also be used for similar purposes in the past. However, this method is complicated to control, requires save registers for data and addresses, which increases cost, and requires time to recover data. There are problems such as the possibility of lowering the value. Furthermore, if a write overrun occurs to main memory in the 370 architecture, there is a possibility that the data written in the overrun will be referenced by other processors or channels before the field is recovered. Even with the order guarantee method using save and recovery, it is not possible to comply with the order regulation by the architecture.
上述のような命令実行のオーバランが発生するのは命令
実行に付随する割り込みが起こる場合や、分岐命令の後
続命令を予測実行していたときに予測が誤っていたこと
が判定された場合等である。Instruction execution overruns as described above occur when an interrupt occurs along with instruction execution, or when it is determined that the prediction was incorrect when the instruction following a branch instruction was predicted and executed. be.
本発明は複数の演算器を有し複数の命令を効率的に実行
できる情報処理装置を提供することを目的とする。An object of the present invention is to provide an information processing device that has a plurality of arithmetic units and can efficiently execute a plurality of instructions.
さらに本発明は、複数の命令を並列に実行でき、かつ命
令の実行の中断を簡単に行える情報処理装置を提供する
ことを他の目的とする。Another object of the present invention is to provide an information processing device that can execute a plurality of instructions in parallel and easily interrupt the execution of instructions.
上記目的は、本発明に於いては、同時に実行する複数の
命令の間では結果の書き込みの追い抜きが発生しないよ
う制御することで実現する。この為、以下に述べるよう
な命令実行に関する制御手段を用いる。In the present invention, the above object is achieved by controlling so that overtaking of result writing does not occur between a plurality of instructions executed simultaneously. For this purpose, a control means for instruction execution as described below is used.
(1)概念的実行順序の観点から連続している複数の命
令を同時に演算器にセットアツプする命令セットアツプ
手段。ただし、分岐命令の後続命令は分岐の成立側、不
成立側のいずれであっても該分岐命令に連続すると見な
す。(1) An instruction set-up means for simultaneously setting up a plurality of consecutive instructions in an arithmetic unit from the viewpoint of conceptual execution order. However, instructions subsequent to a branch instruction are considered to be consecutive to the branch instruction, regardless of whether the branch is taken or not taken.
(2)同時にセットアツプする複数の命令のうちの任意
の命令に着目した場合、該命令の演算実行に付随し該命
令もしくはその後続命令を無効化する要因が検出される
可韻性のある最終演算ステージより前に書き込みを実行
する後続命令が同時にセットアツプすることのないよう
、演算器ヘセットアツプする命令の組合せを制限するセ
ットアツプ命令制限手段。(2) When focusing on an arbitrary instruction among multiple instructions that are set up at the same time, a rhyming final result is detected in which a factor that invalidates the instruction or its successor instruction is detected accompanying the execution of the operation of the instruction. Setup instruction restriction means for limiting combinations of instructions to be set up to an arithmetic unit so that subsequent instructions that execute writing before the arithmetic stage are not set up at the same time.
(3)同時にセットアツプした複数命令の実行に当たっ
て、何らかの命令で実行待ち合わせ要因が発生したとき
、書き込みを行なう可能性のある全ての後続命令の実行
を待ち合わせるよう制御する後続命令実行待ち合わせ手
段。(3) Successive instruction execution waiting means for controlling the execution of all subsequent instructions that may perform writing when an execution waiting factor occurs in some instruction during the execution of a plurality of instructions set up at the same time.
(4)同時にセットアツプした複数の命令のうちのいず
れかの命令の演算実行に付随して該命令もしくはその後
続命令を無効化する要因が検出された場合、該命令及び
同時に実行している全ての後続命令の内、無効化すべき
全ての命令実行をそれらの書き込みステージまでに抑止
する後続命令実行抑止手段。(4) If a factor that invalidates the instruction or its successor instruction is detected accompanying the execution of any instruction among multiple instructions set up at the same time, that instruction and all instructions being executed simultaneously Subsequent instruction execution suppressing means for suppressing execution of all instructions to be invalidated among subsequent instructions until their writing stage.
上記(1)〜(4)で述べた手段を設けることにより、
同時に演算実行されている複数命令の何れに於いても自
命令もしくは後続命令を無効化する要因がない場合はこ
れ等は同時に実行が終了するので処理時間は大幅に短縮
される。もし、いずれかで無効化要因が検出されたとき
には書き込みのオーバランがおきないので、上で述べた
ような回復動作無しに引き続き正しい命令もしくは割り
込み処理等を直ちに開始することができる。By providing the means described in (1) to (4) above,
If there is no factor that invalidates the own instruction or the succeeding instruction in any of the plural instructions that are being executed at the same time, the execution of these instructions will be completed at the same time, and the processing time will be significantly shortened. If any invalidation factor is detected, a write overrun will not occur, so correct instructions or interrupt processing can be immediately started without the above-mentioned recovery operation.
以下本発明に好適な実施例を図面を用いて説明する。以
下の実施例では日立製作所のMシリーズアーキテクチャ
に基づく計算機を例に取り説明を行なう。Preferred embodiments of the present invention will be described below with reference to the drawings. The following embodiment will be explained using a computer based on Hitachi's M series architecture as an example.
上記アーキテクチャにおける命令フォーマットの例を第
9図に示す、(1)はロード命令、ストア命令、四則演
算命令等に用いられる命令形式の例である。OPは命令
コードであり、命令の種類を示す、R1は第1オペラン
ドを格納する汎用レジスタの番号を示す、R2,B2は
第2オペランドのアドレスを生成するために用いるイン
デックスレジスタ、及びペースレジスタの番号を示す、
インデックスレジスタ、及びペースレジスタは汎用レジ
スタを指定する。D2はアドレスを生成するために用い
るアドレス変位である。オペランドアドレスはインデッ
クスレジスタ、ペースレジスタ、およびアドレス変位を
加算して生成される。加算命令は第2オペランドアドレ
ス上の主記憶データを読みだし、R1で指定される汎用
レジスタ上の第1オペランドと加算し、結果を再び汎用
レジスタR1上に格納する。(2)は条件分岐命令に用
いられる命令形式の例である。OPは命令コードであり
、命令の種類を示す、Mlは分岐成立となる条件コード
の値を指定するマスク値である。x2゜B2.D2は(
1)と同様に第2オペランドアドレスを指定する1分岐
成立の場合第2オペランドアドレス上の命令から実行を
継続する。An example of an instruction format in the above architecture is shown in FIG. 9. (1) is an example of an instruction format used for a load instruction, a store instruction, an arithmetic operation instruction, etc. OP is the instruction code and indicates the type of instruction. R1 indicates the number of the general-purpose register that stores the first operand. R2 and B2 indicate the index register and pace register used to generate the address of the second operand. showing the number,
The index register and pace register specify general-purpose registers. D2 is the address displacement used to generate the address. The operand address is generated by adding the index register, pace register, and address displacement. The addition instruction reads the main memory data on the second operand address, adds it to the first operand on the general-purpose register specified by R1, and stores the result in the general-purpose register R1 again. (2) is an example of an instruction format used for a conditional branch instruction. OP is an instruction code that indicates the type of instruction, and Ml is a mask value that specifies the value of a condition code that makes a branch take place. x2゜B2. D2 is (
Similarly to 1), if one branch that specifies the second operand address is established, execution continues from the instruction at the second operand address.
第1図は本発明による計算機の全体構成を示す。FIG. 1 shows the overall configuration of a computer according to the present invention.
1は記憶装置、2は命令制御ユニット、3は演算ユニッ
ト、4.5.6はn個の演算器El、E2゜、、、、、
En、7は演算制御ユニット、8は入力交換回路、9は
出力交換回路、そして10は入出力装置である。1 is a storage device, 2 is an instruction control unit, 3 is an arithmetic unit, 4.5.6 is n arithmetic units El, E2゜...
En, 7 is an arithmetic control unit, 8 is an input exchange circuit, 9 is an output exchange circuit, and 10 is an input/output device.
記憶装置1はプログラムやデータを保持し、さらにこれ
等の読みだし、書き込みの制御を行い従来技術により構
成する。また入出力装置10は記憶装置1に対し外部デ
ータの書き込みと、外部へのデータ読みだしを要求する
が、これも従来技術にて構成する。命令制御ユニット2
は、複数の命令を記憶装置1から読みだし、同時に最大
p個の命令の解読を行ない、これらの命令に必要なオペ
ランドの読みだしを同時に行なう、このため命令制御ユ
ニット2から命令読みだしアドレスMAIが記憶装置t
1に送出され、命令列MDIが記憶装置llから命令制
御ユニット2に送出される。また最大p個のオペランド
アドレスMAi(i−1〜p)が同時に2から1に送出
され、読みだされた9個のオペランドデータMDOi(
i=1〜p)が1から2に送出される*MAi(i=1
〜p)の送出とともに、後述の命令キュー(211(第
2図))の9個の入力ポインタQIPi (i=1〜
p)が命令制御ユニット2から記憶装置1に送出され、
さらにオペランドデータMDOi(i=1〜p)の送出
に伴って、データの送出を示すアドバンス信号ADVi
(i=1〜p)及び各データの一時格納場所である後述
のオペランドバッファ(216(第2図))の番号0B
NOi (i=1〜p)が記憶袋w1から命令制御ユニ
ット2に送出される0本実施例では0BNOi (i=
1〜p)としては順に入力ポインタQIPi (i=
1〜P)と同じ値を返す、これは後述するように本実施
例では命令キュー211(第2図)とオペランドバッフ
ァ216(第2図)を1対1に対応させ、同一の入出カ
ポインタにより制御するからである。The storage device 1 holds programs and data, and also controls reading and writing of these, and is constructed using conventional technology. Further, the input/output device 10 requests the storage device 1 to write external data and read data to the outside, but this is also configured using conventional technology. Command control unit 2
reads a plurality of instructions from the storage device 1, decodes a maximum of p instructions at the same time, and reads out the operands necessary for these instructions at the same time.For this purpose, the instruction read address MAI is read from the instruction control unit 2. is the storage device t
1, and the instruction sequence MDI is sent from the storage device 11 to the instruction control unit 2. Also, the maximum p operand addresses MAi (i-1 to p) are simultaneously sent from 2 to 1, and the nine operand data MDOi (
i=1~p) is sent from 1 to 2 *MAi(i=1
~p), nine input pointers QIPi (i=1~
p) is sent from the instruction control unit 2 to the storage device 1,
Furthermore, along with the transmission of operand data MDOi (i=1 to p), an advance signal ADVi indicating data transmission is generated.
(i = 1 to p) and the number 0B of the operand buffer (216 (Figure 2)), which will be described later, which is a temporary storage location for each data.
NOi (i=1 to p) is sent from the memory bag w1 to the command control unit 2. In this embodiment, 0BNOi (i=
1 to p) are input pointers QIPi (i=
1 to P). This is because, as described later, in this embodiment, the instruction queue 211 (Fig. 2) and the operand buffer 216 (Fig. 2) are in a one-to-one correspondence, and the same input/output pointer is used. This is because it controls.
命令制御ユニット2は解読の完了した命令の中から実行
順に連続した最大m個を選択し、これ等及びこれ等の付
随情報を演算ユニット3に同時にセットアツプする。こ
のため、各情報のセットアツプを行なうための信号線群
をm命令分としてm組設ける。これらをセットアツプボ
ートi (i=1〜m)と呼ぶ、入力交換回路8にセッ
トアツプする情報には、セットアツプボートi (i=
1〜m)に対応して、命令lN5Ti(i=1〜m)。The instruction control unit 2 selects a maximum of m consecutive instructions in the order of execution from among the instructions that have been completely decoded, and sets up these and their accompanying information in the arithmetic unit 3 at the same time. Therefore, m sets 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 set-up to the input exchange circuit 8 includes set-up ports i
1 to m), and instruction lN5Ti (i=1 to m).
レジスタオペランドRDi (i=1〜m)、メモリ
オペランドMDi(i=1〜m)、オペランドアドレス
MAi(i=1〜m)、そして書き込みレジスタ番号R
WAi(i=1〜m)がある、また演算制御ユニット7
にセットアツプする情報には、セットアツプボートi
(i=1〜m)によりセットアツプする命令のうち有効
なものを示す有効命令信号I RD Y i (i =
1〜mL各命令の演算を実行させる演算器番号ENO
i(i=1〜m)。Register operand RDi (i=1 to m), memory operand MDi (i=1 to m), operand address MAi (i=1 to m), and write register number R
There is WAi (i=1 to m), and the arithmetic control unit 7
The information to be set up in the setup boat i
Valid command signal IRDYi (i =
1 to mL Computing unit number ENO that executes the computation of each instruction
i (i=1-m).
条件分岐命令であることを示す解読情報BCi(i=1
〜m)2条件分岐命令のM1フィールド(マスク) B
CM i (i = 1〜m ) 、そしてメモリ
オペランドの読みたしが遅れていることを示すオペラン
ド待ち信号A D V W i (i = 1〜m)が
ある、命令制御ユニット2は上記命令セットアツプ制御
を行なうため、演算制御ユニット7からセットアツプボ
ート1(i=1〜m)毎にそのセットアツプ完了を示す
信号0BTi (i=1〜m)、同時にセットアツプさ
れた命令の個々の演算開始時刻のうち最後の時刻を示す
最終開始時刻信号LBOP、そして同時にセットアツプ
サれた命令の個数を示す信号LINOを受は取る。さら
に命令制御ユニット2は演算制御ユニット7から条件分
岐命令の分岐成立信号TKNと、割り込みの発生を示す
信号INTを受は取る。Deciphering information BCi (i=1
~m) M1 field (mask) of 2-conditional branch instruction B
CM i (i = 1 to m), and an operand wait signal ADVW i (i = 1 to m) indicating that reading of a memory operand is delayed. The instruction control unit 2 uses the above instruction set. In order to perform setup control, a signal 0BTi (i=1 to m) indicating setup completion is sent from the arithmetic control unit 7 to each setup board 1 (i=1 to m), and a signal 0BTi (i=1 to m) indicating the completion of the setup is sent to each setup board 1 (i=1 to m). It receives a final start time signal LBOP indicating the last of the start times and a signal LINO indicating the number of instructions set up at the same time. Further, the instruction control unit 2 receives from the arithmetic control unit 7 a branch completion signal TKN of a conditional branch instruction and a signal INT indicating the occurrence of an interrupt.
命令制御ユニット2は出力交換回路9からセットアツプ
ポートi (i=1〜m)に対応した演算結果EDi
(i=1〜m)とそのレジスタ書き込み指令RWCi(
i=1〜m)、書き込みレジスタ番号RWA i (
i = 1〜m)を受は取り、これに従い汎用レジスタ
群200にこれらの結果の書き込みを行なう。The instruction control unit 2 receives the calculation result EDi corresponding to the setup port i (i=1 to m) from the output exchange circuit 9.
(i=1~m) and its register write command RWCi(
i=1 to m), write register number RWA i (
i = 1 to m), and write these results into the general-purpose register group 200 accordingly.
演算器4,5.6はそれぞれ特定の種類の命令グループ
のみ実行可能なものあるいは全てを実行可能とするもの
のいずれかで構成するものとする。The arithmetic units 4, 5.6 are each configured to be capable of executing only a specific type of instruction group or to be able to execute all of them.
各演算器には演算に必要な入力データと演算実行制御情
報が入力交換回路8から送出される。演算器Ei (i
=1〜n)への入力データとしては、命令コードlN5
TEi、レジスタオペランドRDE i 、メモリオペ
ランドMDEi、オペランドアドレスMAEi、Wき込
みレジスタ番号RWAEiがあり、演算実行制御情報と
しては、セットアツプ完了信号0BTEi、演算実行許
可信号EXEi及び演算実行の取り消し信号RESEX
がある。各演算器Eiからは演算の出力データ及び演算
制御情報が出力交換回路9に送出される。Input data necessary for calculation and calculation execution control information are sent to each calculation unit from the input exchange circuit 8. Arithmetic unit Ei (i
The input data to =1 to n) is the instruction code lN5.
There are TEi, register operand RDEi, memory operand MDEi, operand address MAEi, and write register number RWAEi.The operation execution control information includes a setup completion signal 0BTEi, an operation execution permission signal EXEi, and an operation execution cancellation signal RESEX.
There is. Each arithmetic unit Ei sends arithmetic output data and arithmetic control information to an output exchange circuit 9.
演算器Eiからの出力としては、演算結果EDEi 。The output from the calculator Ei is the calculation result EDEi.
結果のレジスタ書き込み指令RWCEi、書き込みレジ
スタ番号RWAEi、結果のメモリ書き込み指令5TC
Ei、書き込みメモリアドレス5TAEi 。Result register write command RWCEi, write register number RWAEi, result memory write command 5TC
Ei, write memory address 5TAEi.
条件コードの変更を示す信号CC3Ei、そして条件コ
ードCCEiがあり、また演算制御情報としては演算の
終了を示す信号EOPEi、完了型割り完了条割の発生
を示す信号INTCEi、そして抑止型割り込み条件の
発生を示す信号INTSEiがある。There are a signal CC3Ei indicating a change in the condition code and a condition code CCEi, and the arithmetic control information includes a signal EOPEi indicating the end of the operation, a signal INTCEi indicating the occurrence of a completion-type interrupt completion condition, and the occurrence of an inhibit-type interrupt condition. There is a signal INTSEi indicating.
全ての演算器Ei (i=1〜n)には、演算制御ユニ
ット7から演算実行取り消し信号RESを入力する。取
消信号はRESは割り込み条件が発生したときもしくは
条件分岐命令で分岐予測が失敗したときに′1′となり
、このとき、各演算器Ei (i=1〜n)は後続命令
の演算実行を取り消す、特にレジスタ書き込み指令RW
CEi(i=1〜n)、及びメモリ書き込み指令MWC
Ei(i=1〜n)を抑止し、取り消すべき命令による
結果の書き込みが生じないようにする。またこの時全て
の演算器Ei (i=1〜n)は演算終了信号EOPE
i (i=1〜n)を11′とする。An arithmetic execution cancellation signal RES is inputted from the arithmetic control unit 7 to all the arithmetic units Ei (i=1 to n). The cancellation signal RES becomes '1' when an interrupt condition occurs or when branch prediction fails with a conditional branch instruction, and at this time, each arithmetic unit Ei (i = 1 to n) cancels the execution of the subsequent instruction. , especially register write command RW
CEi (i=1 to n) and memory write command MWC
Ei (i=1 to n) is suppressed to prevent writing of results due to instructions to be canceled. Also, at this time, all the arithmetic units Ei (i=1 to n) receive the operation end signal EOPE.
Let i (i=1 to n) be 11'.
演算器Eiはセットアツプ完了信号OB T E iに
同期して入力データを取り込む、以後命令やオペランド
の条件等により工ないし複数サイクルをかけて演算実行
を行なうが、各サイクルの実行は信号EXEiが′1′
のときのみ許可される。信号EXEiが′0′のときは
演算実行は待ち状態になる。信号EXEiが′O′とな
るのは例えば必要なメモリオペランドが到着していない
ときである。また、RESEi信号が′1′となった場
合、演算器Eiは直ちに演算実行を取り消す、この時レ
ジスタ書き込み指令RWCEi、及びメモリ書き込み指
令MWCEiを抑止し、取り消すべき命令による結果の
書き込みが生じないようにし、また演算終了信号EOP
Eiを1とする6個々の演算器の実行制御は複雑な命令
の演算を行なうものはよく知られたマイクロプログラム
制御によって、また簡単な命令の演算を行なうものは通
常の論理回路による制御等で行なえばよい。The arithmetic unit Ei takes in input data in synchronization with the set-up completion signal OBTEi, and thereafter executes the arithmetic operation over several cycles or cycles depending on the conditions of the command and operand, but the execution of each cycle is determined by the signal EXEi. '1'
Permitted only when When the signal EXEi is '0', the execution of the operation is in a waiting state. The signal EXEi becomes 'O' when, for example, a necessary memory operand has not arrived. Furthermore, when the RESEi signal becomes '1', the arithmetic unit Ei immediately cancels the execution of the 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 calculation end signal EOP
Execution control of the six individual arithmetic units, where Ei is 1, is carried out by well-known microprogram control for those that operate on complex instructions, and by ordinary logic circuits for those that operate on simple instructions. Just do it.
第11図は第1番目の演算器Eiの構成例を示す、11
01.1102は演算数を保持するワークレジスタであ
る。1101には入力交換回路よりレジスタオペランド
RDEiを、1102には入力交換回路よりメモリオペ
ランドMDEiを、さらに両者に命令セットアツプ完了
信号0BTE i信号を入力する。ワークレジスタ11
01,1102は信号0BTEiが“1′となったとき
、それぞれ信RDEi、MDEiを取り込む、1103
は入力交換回路から0BTEi信号を受は取り、これが
′1′の時オペランドアドレスMAEi、書き込みレジ
スタアドレスRWAEiを取り込む。FIG. 11 shows an example of the configuration of the first arithmetic unit Ei.
01.1102 is a work register that holds arithmetic numbers. A register operand RDEi is input from the input exchange circuit to 1101, a memory operand MDEi is input from the input exchange circuit to 1102, and an instruction set-up completion signal 0BTEi signal is input to both. Work register 11
01 and 1102 take in the signals RDEi and MDEi, respectively, when the signal 0BTEi becomes "1'," 1103
receives the 0BTEi signal from the input switching circuit, and when it is '1', takes in the operand address MAEi and write register address RWAEi.
1104は加減算器、シフタ、論理演算器等からなるA
LUである。ALUI 104にはワークレジスタ11
01,1102から演算数を、ALU制御回路1107
からALU制御信号を入力し、各命令の演算を行なう、
ワークレジスタ1101゜1102にはALUの出力デ
ータパスを接続し、複数サイクルに及ぶ演算を可能とす
る。このためALU制御回路1107からはワークレジ
スタ1101.1102へのデータ取り込み制御信号を
入力する。ALU制御回路1107には0BTEi 。1104 is A consisting of an adder/subtracter, a shifter, a logical operator, etc.
It is LU. ALUI 104 has work register 11
01, 1102, the ALU control circuit 1107
Inputs ALU control signals from and performs calculations for each instruction.
The output data path of the ALU is connected to the work registers 1101 and 1102 to enable calculations that span multiple cycles. Therefore, the ALU control circuit 1107 inputs a data import control signal to the work registers 1101 and 1102. The ALU control circuit 1107 has 0BTEi.
I N5TE i 、 1EXEi信号を入力する。A
LU制御回路1107はマイクロプログラムとその実行
制御回路からなる従来技術で構成し、○BTEi信号が
61′となったとき、I N S T E i信号を取
り込み、この命令に対応したマイクロプログラムの最初
のマイクロ命令を読み出す、演算ステージが1サイクル
で終了する命令の場合、この最初のマイクロ命令に演算
終了を、また複数サイクルを要する場合は最後の演算ス
テージを制御するマイクロ命令に演算終了を指定し、こ
れをEOPEi信号として出力する。マイクロ命令は各
演算サイクル毎のALU制御を指定するが、指定に従っ
て実際に実行するのはEXEi信号が11′となったと
きである。1108は条件コード生成回路であり、AL
Uから演算結果、ALU制御回路1107から条件コー
ド生成情報を入力し、演算ステージより1サイクル後に
条件コードCCEiを生成する。Input the IN5TEi and 1EXEi signals. A
The LU control circuit 1107 is composed of a conventional technology consisting of a microprogram and its execution control circuit, and when the BTEi signal becomes 61', it takes in the INSTEi signal and executes the first command of the microprogram corresponding to this instruction. In the case of an instruction that reads a microinstruction whose calculation stage is completed in one cycle, specify the end of the calculation in the first microinstruction, and if it requires multiple cycles, specify the end of the calculation in the microinstruction that controls the last calculation stage. , and outputs this as an EOPEi signal. The microinstruction specifies ALU control for each operation cycle, but it is actually executed according to the specification when the EXEi signal becomes 11'. 1108 is a condition code generation circuit,
The calculation result is input from U and the condition code generation information is input from the ALU control circuit 1107, and the condition code CCEi is generated one cycle after the calculation stage.
1109は割り込み条件検出回路でありALUからの演
算結果とALU制御回路1107からの割り込み検出制
御情報を入力し演算ステージより1サイクル後に割り込
み条件発生信号I N T CE i 。An interrupt condition detection circuit 1109 inputs the calculation result from the ALU and the interrupt detection control information from the ALU control circuit 1107, and generates an interrupt condition generation signal INTCEi one cycle after the calculation stage.
INTSEiを生成する。1110は書き込み制御回路
であり、ALU制御回路1107から結果書き込み制御
情報を入力し演算ステージより1サイクル後に5TCE
i、RWCEi、CC3Ei信号を生成する。また制御
回路111oには入力交換回路8から信号RESEi、
演算制御ユニット7から信号RESを入力し、これらの
うち何れが11′であっても、5TCEi、RWCEi
。Generate INTSEi. 1110 is a write control circuit which inputs result write control information from the ALU control circuit 1107 and writes 5TCE one cycle after the calculation stage.
i, RWCEi, and CC3Ei signals are generated. The control circuit 111o also receives a signal RESEi from the input exchange circuit 8.
When the signal RES is input from the arithmetic control unit 7, no matter which one of them is 11', 5TCEi, RWCEi
.
CC3Eiの各信号を直ちに′0′に抑止する。Immediately suppress each signal of CC3Ei to '0'.
信号RES、及びRESiはさらにALU制御回路11
07にも入力し、これ等のうち何れが51′となっても
1107によるALU制御をキャンセルする。1105
.1106は演算結果、書き込みメモリアドレス、書き
込みレジスタ番号を保持するパイプラインレジスタであ
り、演算ステージより1サイクル後にE D E i
、 5TAEi、 RVAEiを出力する。El−nの
何れの演算器に於いてもALU制御回路1107.書込
み制御回路1110に相当する回路を有し、RES、T
ESi信号に対する動作は同様である。The signals RES and RESi are further transmitted to the ALU control circuit 11.
07, and even if any of these becomes 51', the ALU control by 1107 is canceled. 1105
.. 1106 is a pipeline register that holds the operation result, write memory address, and write register number, and E D E i one cycle after the operation stage.
, 5TAEi, and RVAEi are output. ALU control circuit 1107. It has a circuit corresponding to the write control circuit 1110, and has RES, T
The operation for the ESi signal is similar.
演算制御ユニット7は上記複数の演算器による命令の並
列実行を制御する。すなわち7は、演算終了信号EOP
i(i=1〜m)を監視し、現在演算実行中の全ての命
令が終了した時に、有効命令信号I RDY i (i
= 1〜m)で示される最大m個の後続命令に対しセ
ットアツプ完了信号0BTi(i=1〜m)を発行し、
これを命令制御ユニット2と入力交換回路8に送出する
。またこのとき命令制御ユニット2から送出される演算
器番号ENOi (i=1〜m)を取り込み、セットア
ツプした命令の演算実行中これを保持し、入力交換回路
8及び出力交換回路9に送出する。The arithmetic control unit 7 controls parallel execution of instructions by the plurality of arithmetic units. In other words, 7 is the calculation end signal EOP
i (i=1 to m), and when all instructions currently being executed are completed, a valid instruction signal I RDY i (i
Issues a set-up completion signal 0BTi (i = 1 to m) to a maximum of m subsequent instructions indicated by = 1 to m),
This is sent to the command control unit 2 and input exchange circuit 8. Also, at this time, the arithmetic unit number ENOi (i=1 to m) sent from the instruction control unit 2 is taken in, held during the execution of the set-up instruction, and sent to the input exchange circuit 8 and output exchange circuit 9. .
演算制御ユニット7はオペランド待ち信号ADVWi
(i=1〜m)を監視し、メモリオペランドの到着して
いない命令がある場合その到着まで、EXi (i=1
〜m)信号のうち該命令及びその後続命令の演算実行許
可信号を′O′とする。この制御により、本発明におい
ては該命令の後続命令の演算実行が先に始まることを防
止する。The arithmetic control unit 7 receives the operand wait signal ADVWi.
EXi (i=1 to m) is monitored, and if there is an instruction whose memory operand has not arrived, EXi (i=1
~m) Among the signals, the operation execution permission signal for the instruction and its successor instruction is set to 'O'. Through this control, the present invention prevents the execution of arithmetic operations of instructions subsequent to the instruction from starting first.
演算制御ユニット7は条件分岐命令の分岐判定を行ない
、分岐成立信号TKNを命令制御ユニット2に送出する
。このため出力交換回路9から条件コード変更信号CC
8i (i=1〜m)、条件コードCCi (i=
l〜m)を受は取る0本実施例では条件分岐命令が解読
された時点では、従来の計算機でよく行なわれるように
該分岐命令は不成立となるものと予測し、ひき続く命令
を解読していく、従って分岐成立信号TKNが11′と
なったことは、予測が失敗したことを意味するので、直
ちに現在命令制御ユニット2にて解読中の命令を取り消
し、次にターゲットストリーム上の命令解読を始める。The arithmetic control unit 7 makes a branch determination of the conditional branch instruction and sends a branch completion signal TKN to the instruction control unit 2. Therefore, the condition code change signal CC from the output exchange circuit 9
8i (i=1 to m), condition code CCi (i=
In this embodiment, when a conditional branch instruction is decoded, it is predicted that the branch instruction will not be taken, as is often done in conventional computers, and the following instructions are decoded. Therefore, when the branch taken signal TKN becomes 11', it means that the prediction has failed, so immediately cancel the instruction currently being decoded by the instruction control unit 2, and then decode the instruction on the target stream. Start.
また現在演算実行中の命令のうち該分岐命令の後続命令
に対し演算実行の取り消しを示す信号RESi(i=l
〜m)を入力交換回路8に送出する。Also, among the instructions currently being executed, a signal RESi (i=l
~m) to the input exchange circuit 8.
演算制御ユニット7は出力交換回路9から演算実行中の
命令についての割り込み条件発生信号INTCi (i
=1〜m)及びI NTS i (i =1〜m)を受
取り、完了型割り込み条件が発生した場合、割り込み条
件の発生した命令の後続命令の演算実行を取り消し、抑
止型割り込み条件が発生した場合、割り込み条件の発生
した命令とその後続命令の演算実行を取り消すよう取消
信号RESi (i=1〜m)信号を発行する。さらに
直後にセットアツプした後続命令グループの演算実行を
取り消すため、取消指示信号RESを全ての演算器に対
し送出する。また同時に命令制御ユニット2に対し割込
み信号INTを送出する。The arithmetic control unit 7 receives an interrupt condition generation signal INTCi (i
= 1 to m) and INTS i (i = 1 to m), and if a completion type interrupt condition occurs, the operation execution of the instruction subsequent to the instruction in which the interrupt condition occurred is canceled, and a suppressed type interrupt condition occurs. In this case, a cancellation signal RESi (i=1 to m) is issued to cancel the execution of the instruction in which the interrupt condition has occurred and its successor instruction. Furthermore, in order to cancel the operation execution of the subsequent instruction group set up immediately after, a cancellation instruction signal RES is sent to all the arithmetic units. At the same time, an interrupt signal INT is sent to the instruction control unit 2.
入力交換回路8はセットアツプポート1(i=1〜m)
を介してセットアツプするm個の命令に対し、上記のセ
ットアツプデータをそれぞれの命令を演算実行する演算
器に振り分けて送出する。Input exchange circuit 8 is set up port 1 (i=1 to m)
The set-up data for m instructions to be set up via the CPU is distributed and sent to the arithmetic units that execute the respective instructions.
このために演算制御ユニット7からセットアツプポート
対応に演算器番号ENOi(i=1〜m)を受は取る。For this purpose, the arithmetic unit number ENOi (i=1 to m) is received from the arithmetic control unit 7 corresponding to the setup port.
出力交換回路9には演算器Ei (i=1〜n)から
上記出力データや演算制御情報を入力しセットアツプポ
ートi (i=1〜m)の順に並べかえて出力する。こ
のために演算制御ユニット7がら演算器番号ENOi(
i=1〜m)を受は取る。The output data and arithmetic control information are inputted to the output exchange circuit 9 from the arithmetic unit Ei (i=1 to n), rearranged in the order of the set-up port i (i=1 to m), and outputted. For this purpose, the arithmetic control unit 7 has the arithmetic unit number ENOi (
i = 1 to m).
出力情報は上記のように各ユニットに送出するが、さら
に、演算結果のうち記憶袋fftlに書き込むものに対
し、そのデータEDi (i=1〜m)、アドレス5T
Ai(i=1〜m)、及びメモリ書き込み指令5TCi
(i=1〜m)を記憶装置1に送出する。記憶装置ll
はこれらを受は取りメモリに書き込みをおこなう。The output information is sent to each unit as described above, but in addition, for the calculation results to be written to the memory bag fftl, the data EDi (i = 1 to m), address 5T
Ai (i=1 to m), and memory write command 5TCi
(i=1 to m) is sent to the storage device 1. storage device ll
receives these and writes them to memory.
第2図は命令制御ユニット2の詳細構成を示す。FIG. 2 shows the detailed configuration of the command control unit 2. As shown in FIG.
201は命令読み出し回路であり、先読み命令バッファ
202の空き状態を監視し、空きがあるときは命令読み
出しアドレスMAIを記憶装置1に送出し、読みだされ
た命令データMDIを命令バッファ202にセットとす
る。−回の命令読み出しで通常は連続する数命令を得る
。従って、先読み命令バッファ202は少なくとも一回
の読み出しで得られる命令の分だけの大きさを有する様
構成する。命令バッファとして分岐命令のターゲット命
令列を格納するためにもう一つの命令バッファ203が
設けら九ている0分岐命令で分岐成立が判定されないう
ちはセレクタ204は202を選択し命令読みだし回路
201に送出する1分岐命令で分岐成立が判定されると
分岐成功信号TKNを演算制御ユニットからセレクタ2
04に送出し、これに応答して以後セレクタ204は命
令バッファ203を選択しこれを命令読出し回路201
に送出する0以上の命令読みだし制御は通常の汎用計算
機では最も典型的なものであり、容易に従来技術によっ
て構成することができる。Reference numeral 201 denotes an instruction reading circuit, which monitors the empty state of the prefetch instruction buffer 202 and, when there is an empty space, sends the instruction read address MAI to the storage device 1 and sets the read instruction data MDI in the instruction buffer 202. do. - Normally, several consecutive instructions are obtained by reading the instructions twice. Therefore, the prefetch instruction buffer 202 is configured to have a size corresponding to the number of instructions obtained by at least one read. Another instruction buffer 203 is provided as an instruction buffer to store the target instruction string of the branch instruction.Until it is determined that the branch is taken with a 0 branch instruction, the selector 204 selects 202 and sends the instruction to the instruction reading circuit 201. When it is determined that the branch is established with the 1 branch instruction to be sent, the branch success signal TKN is sent to the selector 2 from the arithmetic control unit.
In response to this, the selector 204 selects the instruction buffer 203 and sends it to the instruction reading circuit 201.
The control for reading out zero or more instructions to be sent to a computer is the most typical in a general-purpose computer, and can be easily configured using conventional technology.
205〜206はp個の命令レジスタである。205 to 206 are p instruction registers.
命令読み出し回路201は、セレクタ204で選択した
命令バッファ202,203上の命令列から、連続した
p個の命令を切り出し命令レジスタ205から206に
順にセットする。このための命令読みだし回路201の
構成は日本公開特許昭58−176751“命令語解読
ユニット”に開示されているのと同様である。207〜
208はp個の命令解読器でありそれぞれ命令レジスタ
205〜206に対応して命令を解読し解読情報を出力
する。解読情報としてデコーダDECi(i=1〜p)
より順に、命令のインデックスレジスタ指定部XAi
(i=1〜p)yベースレジスタ指定部BAi (i
=1〜p)を汎用レジスタ群209に、アドレス変位部
DSPi (i=1〜p)をp個のアドレス加算器21
4〜215に、メモリオペランドを用いる命令であるこ
とを示す情報UOBi(i=1〜p)をオペランド待ち
制御回路210に送出する。さらに解読情報として、命
令コードlN5TDi (i=1〜p)t レジスタ
オペランド番号RAi (i=1〜p)、演算結果を格
納するための書き込みレジスタ番号WAi(i=1〜p
)、命令の演算サイクル数E L i (i = 1〜
p)、その命令の演算が各演算器Ei(i=1−n)に
おいて実行可能である事を示す情報EISDi (i=
1〜p)、E2SDi(i=1〜P)*−−−+EnS
Di (i=1〜P)e条件分岐命令であることを示す
情報BCDi (i=l〜p)2条件分岐命令のマスク
値BCMDi (i=1〜p)のそれぞれを、命令キュ
ー211に送出する。命令の解読が完了したことを示す
信号DSi(i−1〜p)をデコーダDECi (i−
1〜p)から命令キュー制御回路212.命令セットア
ツプ制御回路213.命令キュー211.オペランド待
ち制御回路210にそれぞれ送出する。The instruction reading circuit 201 extracts p consecutive instructions from the instruction string on the instruction buffers 202 and 203 selected by the selector 204 and sequentially sets them in the instruction registers 205 to 206. The configuration of the instruction reading circuit 201 for this purpose is similar to that disclosed in Japanese Patent Publication No. 58-176751 "Instruction word decoding unit". 207~
Reference numeral 208 denotes p instruction decoders, each of which decodes instructions corresponding to the instruction registers 205 to 206 and outputs decoding information. Decoder DECi (i=1 to p) as decoding information
In order, the index register specification part XAi of the instruction
(i = 1 to p) y base register specification part BAi (i
=1 to p) to the general-purpose register group 209, and the address displacement part DSPi (i=1 to p) to p address adders 21.
4 to 215, information UOBi (i=1 to p) indicating that the instruction uses a memory operand is sent to the operand wait control circuit 210. Furthermore, as decoding information, instruction code lN5TDi (i=1~p)t, register operand number RAi (i=1~p), write register number WAi (i=1~p) for storing the operation result.
), the number of operation cycles of the instruction E Li (i = 1 ~
p), information EISDi (i=
1~p), E2SDi (i=1~P) *---+EnS
Di (i=1 to P) e Information indicating that the branch instruction is a conditional branch instruction BCDi (i=l to p) 2 Send each of the mask values BCMDi (i=1 to p) of the conditional branch instruction to the instruction queue 211 do. The decoder DECi (i-
1 to p) to the instruction queue control circuit 212. Instruction set-up control circuit 213. Instruction queue 211. Each is sent to the operand wait control circuit 210.
汎用レジスタ群209は命令で指定される16本の4バ
イトのレジスタからなる。デコーダ207〜208から
インデックスレジスタ指定部XAi(i=1〜p)tベ
ースレジスタ指定部B A 1(i=1〜p)を入力し
、指定された番号のレジスタを読みだし、インデックス
レジスタデータXDi (i=1〜P)及びペースレ
ジスタデータBDi (i=1〜p)として順にアド
レス加算器AAi (i=1〜P)に送出する。汎用
レジスタ群209には命令待ちキュー211からm個の
セットアツプポート対応のレジスタオペランド番号RR
Ai (i=1〜m)を入力し、これらに指定された
レジスタを読みだし、レジスタオペランドデータRD
i (i = 1〜m)として入力交換回路8に送出す
る。さらに汎用レジスタ群209には出力交換回路9よ
りm個のセットアツプボート対応の演算結果EDi(i
=1〜m)、書き込みレジスタ番号RWA i (i
= 1〜m)及びレジスタ書き込み指令RWCi(i=
1〜m)を入力し、指定されたレジスタにこれらを書き
込む、汎用レジスタ群209は上記のように、同時に複
数の読みだし、書き込みを行なうが、これは従来により
容易に構成可能である。The general-purpose register group 209 consists of 16 4-byte registers specified by instructions. The index register designation part XAi (i=1 to p) and base register designation part B A1 (i=1 to p) are input from the decoders 207 to 208, and the register with the designated number is read out, and the index register data XDi (i=1-P) and pace register data BDi (i=1-p) are sequentially sent to the address adder AAi (i=1-P). The general-purpose register group 209 contains register operand numbers RR corresponding to m set-up ports from the instruction waiting queue 211.
Input Ai (i=1 to m), read the registers specified by these, and read the register operand data RD.
It is sent to the input exchange circuit 8 as i (i = 1 to m). Furthermore, the general-purpose register group 209 receives the calculation result EDi(i
= 1 to m), write register number RWA i (i
= 1 to m) and register write command RWCi (i =
As described above, the general-purpose register group 209, which inputs the data 1 to m) and writes these to designated registers, performs multiple readings and writes at the same time, but this can be easily configured using conventional methods.
アドレス加算器AAi(i=1〜p)には、それぞれ、
インデックスレジスタデータXDi (i=INp)e
ベースレジスタデータBDi (i=1〜p)tアド
レス変位DSPi (i=1〜p)を入力し、これ等の
加算結果をオペランドアドレスMAi(i=1〜p)と
して記憶装置1と命令キュー211に送出する。オペラ
ンドアドレスMAi(i=1〜p)は、該命令が分岐命
令でなければ、メモリオペランドのアドレスであり、記
憶袋W1から読み出したデータはデータ信号MDOi(
i=1〜p)によってオペランドバッファ216に送出
する。一方、該命令が分岐命令であった場合はメモリオ
ペランドアドレスM A i (i = 1〜p)のう
ち対応するものはターゲット命令アドレスであり、記憶
袋W11から読み出したデータはデータ信号MDIによ
って命令バッファ202もしくは203に送出する。Address adders AAi (i=1 to p) each include:
Index register data XDi (i=INp)e
Base register data BDi (i=1 to p), t address displacement DSPi (i=1 to p) are input, and these addition results are used as operand addresses MAi (i=1 to p) to the storage device 1 and the instruction queue 211. Send to. The operand address MAi (i=1 to p) is the address of the memory operand if the instruction is not a branch instruction, and the data read from the memory bag W1 is sent to the data signal MDOi (
i=1 to p) to the operand buffer 216. On the other hand, if the instruction is a branch instruction, the corresponding memory operand address M A i (i = 1 to p) is the target instruction address, and the data read from the memory bag W11 is transferred to the instruction by the data signal MDI. Send to buffer 202 or 203.
命令キュー211は上記命令解読情報を保持するに命令
骨のキューレジスタとその入出力回路からなる。にの値
は少なくとも上記p、mの何れよりも下回らないように
する。命令キュー211には、デコーダDEdi(i=
1〜p)から2個の連続した命令の解読情報を入力しこ
れらを同時にキューイングする。この時実際にキューイ
ングする命令は対応するデコード完了信号DSi (i
=1〜p)信号の31′となっているものであり、この
とき、入力ポインタQIPi(i=1〜p)で示される
キューレジスタにそれぞれセットする。The instruction queue 211 consists of an instruction queue register for holding the instruction decoding information and its input/output circuit. The value of should not be lower than at least either p or m. The instruction queue 211 includes a decoder DEdi (i=
The decoding information of two consecutive instructions from 1 to p) is input and queued simultaneously. At this time, the instruction actually queued is the corresponding decoding completion signal DSi (i
=1 to p) signal 31', and at this time, each is set in the queue register indicated by the input pointer QIPi (i=1 to p).
入力ポインタQIPi (i=1〜P)の値は、命令待
ち行列内の最新の命令のキューレジスタの次から連続す
る2個のキューレジスタを順に示すようにする。なおに
番目のキューレジスタの次は1番目のキューレジスタが
連続するものとする。命令キュー211からは、キュー
内の最も古い命令から最大m個の連続した命令の解読情
報を同時に取り出す、このため、m個の出力ポインタQ
OPi (i=1〜P)の値は、待ち行列内の最も古い
命令から連続するm個のキューレジスタを順に示すよう
にする。出力ポインタQOPi(i=1〜m)で選ばれ
たm命令分の出力が上記m個のセットアツプボートの実
体である。このとき実際に取り出したと見なすのは、命
令セットアツプ制御回路213から出力する上記有効命
令信号I RDY 1(i=1〜m)が11″となって
いるものである。The value of the input pointer QIPi (i=1 to P) is set to indicate in order two successive queue registers following the queue register of the latest instruction in the instruction queue. It is assumed that the first queue register follows the first queue register. From the instruction queue 211, the decoding information of up to m consecutive instructions is simultaneously retrieved from the oldest instruction in the queue. Therefore, m output pointers Q
The value of OPi (i=1 to P) is set to indicate m consecutive queue registers in order starting from the oldest instruction in the queue. The outputs of m instructions selected by the output pointer QOPi (i=1 to m) are the substance of the m set-up votes. At this time, the valid instruction signal I RDY 1 (i=1 to m) outputted from the instruction set-up control circuit 213 is considered to be actually taken out.
命令待ち行列の出力として、命令コードTNST 1(
i=l〜m)pオペランドアドレスMAi(i=1〜m
)、書き込みレジスタ番号RWAi(i=1〜m)を入
力交換回路8へ、レジスタオペランド番号RRAi
(i=1〜m)を汎用レジスタ209へ、条件分岐命令
表示BCi(i=1〜p)。As the output of the instruction queue, instruction code TNST 1 (
i=l~m)p operand address MAi(i=1~m
), write register number RWAi (i=1 to m) to input exchange circuit 8, register operand number RRAi
(i=1-m) to the general-purpose register 209, conditional branch instruction display BCi (i=1-p).
条件分岐命令のマスク値BCMi(i=1〜p)を演算
制御ユニット7へ、そして演算サイクル数E L i
(i = 1〜m ) 、演算器Ei(i=1〜n)で
の実行可能性表示情報EISi (i=1〜m)。The mask value BCMi (i=1 to p) of the conditional branch instruction is sent to the arithmetic control unit 7, and the number of arithmetic cycles E L i
(i = 1 to m), executable possibility display information EISi (i = 1 to m) in the arithmetic unit Ei (i = 1 to n).
E2Si (i=1〜m)t 、、、、EnSi (i
=1〜m)を命令セットアツプ制御回路213へそれぞ
れ送出する。E2Si (i=1~m)t ,,,,EnSi (i
=1 to m) are sent to the instruction set-up control circuit 213, respectively.
オペランドバッファ216は、記憶装置1から送出され
るオペランドデータMDOi(i=1〜p)を保持する
に個のバッファレジスタ(図示せず)とその入出力回路
からなる。216は記憶装置1からアドバンス信号AD
Vi(i=1〜p)を受は取ると、付随して送出される
オペランド番号0BNOi (i=1〜p)で示される
バッファレジスタにオペランドデータMDOi(i=1
〜p)を格納する。216は同時に最大2個のデータを
格納する0本実施例ではに個のバッファレジスタは上記
命令キューのに個のキューレジスタに対応している。す
なわちメモリオペランドを必要とする命令に関して、解
読情報を格納するキューレジスタとメモリオペランドを
格納するバッファレジスタとは同一番号のものを用いる
。The operand buffer 216 is composed of buffer registers (not shown) for holding operand data MDOi (i=1 to p) sent from the storage device 1 and their input/output circuits. 216 is the advance signal AD from the storage device 1.
When Vi (i=1 to p) is received, operand data MDOi (i=1 to
~p) is stored. 216 stores a maximum of two pieces of data at the same time. In this embodiment, the number of buffer registers corresponds to the number of queue registers of the instruction queue. That is, for an instruction requiring a memory operand, the queue register for storing decoding information and the buffer register for storing the memory operand have the same number.
オペランドバッファ216は、セットアツプボート対応
に最大m個の命令のオペランドデータMDi(i=1〜
m)を同時に読みだし入力交換回路8に送出する。この
ため、オペランドバッファ216には命令キュー制御回
路212から命令キュー出カポインタQOPi (i=
1〜p)を入力する。The operand buffer 216 stores operand data MDi (i=1 to
m) is simultaneously read out and sent to the input exchange circuit 8. Therefore, the operand buffer 216 receives the instruction queue output pointer QOPi (i=
1 to p).
命令キュー制御回路212は命令キュー211のp個の
入力ポインタQIPi(i=1〜p)及びm個の出力ポ
インタQOPi(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。The instruction queue control circuit 212 generates p input pointers QIPi (i=1 to p) and m output pointers QOPi (i=1 to m) of the instruction queue 211. This control circuit 212 transfers QIPi (i=1 to p) to an instruction set-up control circuit 213. Instruction queue 211. The operand queue control circuit 210 then sends it to the storage device 1. The control circuit 212 output pointer QOPi (i-1 to m)
The instruction set-up control circuit 213. Instruction queue 211
It is sent to the operand queue control circuit 210 and the operand buffer 216. The control circuit 212 also receives a decoding completion signal DSi (i=1-p) from the decoder DECi (i=1-p) and a final start time signal LBOP from the arithmetic control unit 7.
命令個数信号L I No、分岐成功信号TKN、そし
て割込み信号INTを入力する。命令キュー制御回路2
12のより詳細な構成を第8図にしめす。The instruction number signal L I No, branch success signal TKN, and interrupt signal INT are input. Instruction queue control circuit 2
A more detailed configuration of 12 is shown in FIG.
801はQIPIの値を保持するレジスタである。801 is a register that holds the value of QIPI.
802〜803は定数値のインクリメンタであり、レジ
スタ801の値を入力し、これに、順に1゜−−−eP
1を加算(ただしpを法とする)して得られる値を
入力ポインタQIP2−pとして出力する。804は入
力ポインタ更新回路であり、p個のデコード完了信号D
Si (i=1〜p)と入力ポインタQIPIを入力し
、分岐成功信号DSi (i=1〜p)のなかで1′と
なっている信号の数と入力ポインタQIPIの値をpを
法として加算し、結果をレジスタ801にセットする0
例えば同時に解読が完了した命令が2個であった場合、
信号DSL、DS2が1′でありDSj (j=3〜
p)は0′である。このときこの2つの命令は入力ポイ
ンタQIPI、QIP2で示されるキューレジスタ(図
示せず)にその解読情報が格納される。そして、レジス
タ801の内容は2増加される。レジスタ801の初期
値は0とする。すなわち最初の命令の処理に当たって予
め値Oを設定しておく、805はORゲートであり、演
算制御ユニット7からの分岐成立信号TKN、及び割り
込み検出信号INTを入力しこれらの論理和を出力し、
これを入力ポインタ更新回路804及び出力ポインタ更
新回路806に送出する。出力ポインタ更新回路804
はORゲート805の出力値が11′となったとき、レ
ジスタ801を0に設定する。これは、条件分岐命令が
分岐成立となったときは予測失敗を意味するので、命令
待ち行列内の後続命令を全て無効化し、改めてターゲッ
ト命令の解読から処理をやり直す必要があるからである
。802 to 803 are constant value incrementers, which input the value of register 801 and increment them in turn by 1°---eP.
The value obtained by adding 1 (modulo p) is output as the input pointer QIP2-p. 804 is an input pointer update circuit, which receives p decoding completion signals D.
Input Si (i = 1 to p) and input pointer QIPI, and calculate the number of signals that are 1' among branch success signals DSi (i = 1 to p) and the value of input pointer QIPI, modulo p. 0 to add and set the result in register 801
For example, if two instructions are decoded at the same time,
Signals DSL and DS2 are 1' and DSj (j=3~
p) is 0'. At this time, the decoding information of these two instructions is stored in queue registers (not shown) indicated by input pointers QIPI and QIP2. The contents of register 801 are then incremented by two. The initial value of register 801 is 0. That is, in processing the first instruction, a value O is set in advance. 805 is an OR gate, which inputs the branch completion signal TKN from the arithmetic control unit 7 and the interrupt detection signal INT, and outputs the logical sum of these;
This is sent to input pointer update circuit 804 and output pointer update circuit 806. Output pointer update circuit 804
sets the register 801 to 0 when the output value of the OR gate 805 becomes 11'. This is because when a conditional branch instruction results in a branch taken, it means a prediction failure, so it is necessary to invalidate all subsequent instructions in the instruction queue and restart the process from decoding the target instruction.
807はQOPIの値を保持するためのレジスタである
。808〜809はm−1個のインクリメンタであり、
レジスタ807は値を入力し、順にmを法として1.、
、、、m−1インクリメントした値を出力ポインタ信号
QOPj (j=2〜m)として出力する。出力ポイ
ンタ更新回路806にはレジスタ807の値と演算制御
ユニット7からの最終開始時刻信号LBOP、命令数L
INOを入力し、信号LBOPが′1′となったとき信
号LINOの値とレジスタ807の値をmを法として加
算して得られる値をレジスタ807に設定する。レジス
タ807の初期値はレジスタ801に合わせ、0とする
。ORゲート805の出力値が11′となったときはレ
ジスタ807をOに設定する。その理由は上記入力ポイ
ンタの場合と同じである。807 is a register for holding the value of QOPI. 808 to 809 are m-1 incrementers,
The register 807 inputs values, 1 to 1 modulo m in order. ,
, , the value incremented by m-1 is output as the output pointer signal QOPj (j=2 to m). The output pointer update circuit 806 receives the value of the register 807, the final start time signal LBOP from the arithmetic control unit 7, and the number of instructions L.
INO is input, and when the signal LBOP becomes '1', the 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 register 807 is set to 0, matching that of register 801. When the output value of OR gate 805 becomes 11', register 807 is set to O. The reason is the same as for the input pointer above.
第2図の命令セットアツプ制御回路213は、命令キュ
ー211内の解読済み命令の中から、セットアツプ可能
な最大m個の命令を選び、これを有効命令信号IRDY
i (i=1〜m)によって表示する。すなわち制御回
路213は、命令キュー211から上記各論理回路に同
時に送出するm命令分のセットアツプポート1(i=1
〜m)のうち、どれが有効な命令の解読情報を載せてい
るかを有効信号IRDYi (i=1〜m)によって表
示する。信号I RDY i (i = 1〜m)の中
で′1′となっている信号に対応した命令が有効であり
、次のセットアツプの対象である。−回でセットアツプ
可能な命令グループの条件は次の通りとする。The instruction set-up control circuit 213 in FIG.
It is represented by i (i=1 to m). That is, the control circuit 213 controls the setup port 1 (i=1
-m), which one carries valid instruction decoding information is indicated by a valid signal IRDYi (i=1-m). The command corresponding to the signal ``1'' among the signals IRDYi (i = 1 to m) is valid and is the target of the next setup. The conditions for an instruction group that can be set up in - times are as follows.
(1)セットアツプ可能な命令グループは、命令待ち行
列の中で最も古い、すなわちプログラムにおける実行順
序として最初に実行すべき命令を第1の命令として、連
続する最大m個の命令からなる。(1) An instruction group that can be set up consists of a maximum of m consecutive instructions, with the oldest instruction in the instruction queue, that is, the instruction that should be executed first in the program execution order, as the first instruction.
(2)該命令グループ内の全ての命令を同時に演算実行
するに十分な数と機能を有する演算器が存在する。(2) There are arithmetic units that have sufficient numbers 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 subsequent 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 the arithmetic unit that executes the operation for each instruction to be set up,
A signal ENOi (i=1 to m) indicating the arithmetic unit number is sent to the arithmetic control unit 7.
ここで上記(1)〜(3)の条件を満足するような命令
有効信号I RDY i (i = 1〜m)及びEN
Oi(i=1〜m)を生成する命令セットアツプ制御回
路213を第7A〜7D図を用いてより詳細に説明する
。第7A図は信号I RD Y i (i = 1〜
m)が上記(1)の条件を満たすために、その必要条件
を示す信号Q RD Y i (i = 1〜m)を生
成する回路である。701〜702はに個のフリップフ
ロップであり、命令キューのに個のキューレジスタ(図
示せず)に対応し、そのキューレジスタに解読済でセッ
トアツプ待ちの命令が格納されている状態を表示する。Here, the command valid signal I RDY i (i = 1 to m) and EN that satisfy the conditions (1) to (3) above are
The instruction set-up control circuit 213 that generates Oi (i=1 to m) will be explained in more detail using FIGS. 7A to 7D. FIG. 7A shows the signal I RD Y i (i = 1~
m) is a circuit that generates a signal Q RD Y i (i = 1 to m) indicating the necessary condition in order to satisfy the condition (1) above. 701 to 702 are flip-flops, which correspond to queue registers (not shown) of the instruction queue, and display the state in which instructions that have been decoded and are waiting to be set up are stored in the queue registers. .
703〜704はに個のORゲートであり、701〜7
02に対応し、各フリップフロップを11′にセットす
る信号を送出する。705〜706はp個のデコーダで
あり、それぞれ第2図のp個の命令解読器DECi(i
=1〜p)に対応し、順に命令解読完了信号DSi(i
=1〜p)及び命令待ち行列入力ポインタ信号QIPi
(i=1〜p)を入力し、k本のデコード出力を順にO
Rゲート703〜704に送出する。705〜706の
各デコーダは、命令解読完了信号が11′となったとき
、命令キュ量大カポインタ信号で示されるキューレジス
タに対応したデコード出力信号値を“1′とする。この
時ORゲート703〜704の内対応したゲートが1′
を出力し、これにより対応したフリップフロップが“1
′にセットされる。2命令以上が同時に解読を完了した
場合DSLからその命令数分だけの命令解読完了信号が
“1′となるが、この時は入力ポインタQIPIで示さ
れるフリップフロップから連続する上記命令数分のフリ
ップフロップが11′にセットされる。707〜708
はに個のORゲートであり、701〜702に対応し、
各フリップフロップを0′にリセットする信号を送出す
る。709〜710はm個のデコーダであり、それぞれ
出力交換回路9のm命令分の出力ポート、つまりセット
アツプポートi (121〜m)に対応し、順にセット
アツプ完了信号0BTi (121〜m)及び命令キ
ュー出カポインタ信号QOPi (i=1〜m)を入力
し、k本のデコード出力を順にORゲート707〜70
8に送出する。709〜710の各デコーダは、セット
アツプ完了信号が1′となったとき、命令キュー出カポ
インタ信号で示されるキューレジスタに対応したデコー
ド出力信号値を1′とする。703-704 are OR gates, 701-7
02, and sends out a signal that sets each flip-flop to 11'. 705 to 706 are p decoders, each of which corresponds to p instruction decoders DECi (i
= 1 to p), and the instruction decoding completion signal DSi(i
=1 to p) and instruction queue input pointer signal QIPi
(i = 1 to p), and output k decoded outputs in order.
It is sent to R gates 703-704. When the instruction decoding completion signal becomes 11', each of the decoders 705 to 706 sets the decode output signal value corresponding to the queue register indicated by the large instruction queue amount pointer signal to "1". At this time, the OR gate 703 The corresponding gate among ~704 is 1'
This causes the corresponding flip-flop to become “1”.
’. If two or more instructions complete decoding at the same time, the instruction decoding completion signal for the number of instructions from the DSL becomes "1", but at this time, the flip-flops for the number of consecutive instructions from the flip-flop indicated by the input pointer QIPI are 707-708
There are 2 OR gates, corresponding to 701 to 702,
A signal is sent to reset each flip-flop to 0'. 709 to 710 are m decoders, each of which corresponds to an output port for m instructions of the output exchange circuit 9, that is, a set-up port i (121 to m), and sequentially outputs a set-up completion signal 0BTi (121 to m) and An instruction queue output pointer signal QOPi (i=1 to m) is input, and k decoded outputs are sequentially output to OR gates 707 to 70.
Send on 8th. Each of the decoders 709 to 710 sets the decode 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'.
この時ORゲート707〜708の内対応したゲートが
1′を出力し、これにより対応したフリップフロップが
0′にリセットされる。2命令以上が同時にセットアツ
プを完了した場合信号0BTIからその命令数分だけの
セットアツプ完了信号が1′となるが、この時球出カポ
インタQOPIで示されるフリップフロップから連続す
る上記命令数分のフリップフロップが0′にリセットさ
れる。711はORゲートであり、演算制御ユニット7
から送出される上記TKN、並びにINT信号の論理和
をORゲート707〜708に送出する。従って、条件
分岐命令が分岐成立、即ち予測失敗と判定された場合、
もしくは、割り込み条件が発生し、以後の命令実行を取
り消す場合、それぞれTKN、INT信号が11′とな
り、711.707〜708を介して701〜702の
全てのフリップフロップが0′にリセットされる。71
2〜713はセットアツプポートj(121〜m)に対
応したm個のセレクタである。At this time, a corresponding one of the OR gates 707 to 708 outputs 1', thereby resetting the corresponding flip-flop to 0'. If two or more instructions complete set-up at the same time, the set-up completion signal for the number of instructions from signal 0BTI becomes 1', but at this time, the set-up completion signal for the number of consecutive instructions from the flip-flop indicated by the output pointer QOPI becomes 1'. The flip-flop is reset to 0'. 711 is an OR gate, and the arithmetic control unit 7
The logical sum of the TKN and INT signal sent from the INT signal is sent to OR gates 707-708. Therefore, if a conditional branch instruction is determined to be a branch taken, that is, a prediction failure,
Alternatively, when an interrupt condition occurs and subsequent instruction execution is canceled, the TKN and INT signals become 11', and all flip-flops 701-702 are reset to 0' via 711.707-708. 71
2 to 713 are m selectors corresponding to the setup ports j (121 to m).
各セレクタにはそれぞれフリップフロップ701〜70
2の出力である合計に本のキュービジー信号QBSYi
(i=1〜k)を入力する。また、各セレクタには順に
命令待ち行列出カポインタQOPi (i=1〜m)
を入力し、それぞれQBSYl−にの中から該ポインタ
で示されるキューレジスタに対応するキュービジー信号
の値を選択し、信号QRDYi(121〜m)信号とし
て出力する。上記の様に本発明に於いては命令待ち行列
には、−度に最大p個の連続する命令が既にキューイン
グ済みの命令に連続して格納され、また−度に最大m個
の連続する命令がセットアツプのために取りだされる。Each selector has flip-flops 701 to 70.
2, the total queue busy signal QBSYi is the output of
Input (i=1 to k). In addition, each selector has an instruction queue output pointer QOPi (i=1 to m) in order.
is input, and the value of the queue busy signal corresponding to the queue register indicated by the pointer is selected from QBSY1-, and output as the signal QRDYi (121 to m). As described above, in the present invention, in the instruction queue, a maximum of p consecutive instructions are stored consecutively to the already queued instructions at a time, and a maximum of m consecutive instructions are stored at a time. Instructions are retrieved for setup.
QOPi (121〜m)は解読済の命令のなかで最も
古いものを格納するキューレジスタから連続するm個の
キューレジスタを示すので、解読済の命令がi個成る場
合、iがmより小さい場合QRDYj (j”1〜i)
が1′。QOPi (121~m) indicates m consecutive queue registers starting from the queue register storing the oldest decoded instruction, so if there are i decoded instructions, if i is less than m, QRDYj (j”1~i)
is 1′.
Q RD Y j (j = i + 1〜m )が1
0′となり、iがm以上の場合、QRDYi(121〜
m)すべてが、11′となる6以上の説明から信号PR
DYi(121〜m)が上記(1)の条件を示すことが
言える。Q RD Y j (j = i + 1~m) is 1
0', and if i is greater than or equal to m, QRDYi(121~
m) Signal PR from 6 or more explanations where all are 11'
It can be said that DYi (121-m) exhibits the condition (1) above.
第7B図は信号IRDYi (i=l 〜m)が上記(
2)の条件を満たすために、その必要条件を示すm−1
本の信号EAi (i=2〜m)を生成する回路である
。この回路はセットアツプボート1(121〜m)を介
してセットアツプする各命令に対して、その演算実行を
行な−う演算器番信号ENOi (121〜m)を決
定する機能も有する。FIG. 7B shows that the signal IRDYi (i=l to m) is
In order to satisfy the condition 2), m-1 indicates the necessary condition.
This is a circuit that generates a signal EAi (i=2 to m). This circuit also has the function of determining the arithmetic unit number signal ENOi (121-m) for executing the operation for each instruction set up via the set-up board 1 (121-m).
720.721はセットアツプする最大m個の命令のう
ち順に第1番目、及びi+1番目の命令に対EAi、E
NOi及びEAi+1.ENOi+1信号を生成する演
算器割当制御回路EACである。EACはセットアツプ
ボートi (i = 1〜m)に対応してm個ある。7
22〜725は演算器に対応したn個のANDゲートで
あり、順に第i命令に対する各演算器の空き状態を示す
信号EIAi、、、、、EnAiと、第i命令の演算を
実行する機能を有するか否かを各演算器毎に示す命令解
読情報EISi、、、、、EnSiを入力し、その論理
積を出力する。この論理積が1′であれば、対応する演
算器が空いており、しかもその演算器は該命令の演算実
行機能を有するわけであり、割り当てる演算器の候補で
あることを示す。720.721 sets up the first and i+1th instructions in order among the maximum m instructions to be set up.
NOi and EAi+1. This is an arithmetic unit assignment control circuit EAC that generates the ENOi+1 signal. There are m EACs corresponding to set-up ports i (i = 1 to m). 7
22 to 725 are n AND gates corresponding to the arithmetic units, which sequentially output signals EIAi, . Instruction decoding information EISi, . If the logical product is 1', this means that the corresponding arithmetic unit is vacant, and that arithmetic unit has the function of executing the arithmetic operation of the instruction, indicating that it is a candidate for the arithmetic unit to be allocated.
一般には割当可能な演算器の候補は複数ある。Generally, there are multiple candidates for assignable arithmetic units.
726はORゲートであり、722〜725の出力の論
理和をE A i信号として出力する。722〜725
の出力の中で何れかが11′であれば、該命令を割り当
てる演算器が存在するので、この時EAi信号が11′
となる。727〜729はn−1個のANDゲートであ
り、上記割り当て候補が複数存在した時に、実際に割り
当てる演算器を1つに絞るためのものである。即ち、7
27〜729は順に演算器E2〜Enが実際に割り当て
られたとき′1′を出力する。このため、727〜72
9には順に723〜725の出力信号を入力し、対応す
る演算器が割り当て候補となったとき、′1′を出力し
得るようにする。さらに、722の出力信号の否定を7
27〜729に、723の出力信号の否定を728〜7
29に入力する。一般に722〜725の出力信号のう
ち、演算器Ejに対応したゲートの出力値の否定を、7
27〜729のうちの演算器Ei+1〜nに対応したゲ
ートに入力する。こうすることで、n個のゲート722
,727〜729の出力は、1つ以上の演算器割り当て
候補が存在したとき、最も小さい番号を有する演算器に
対応した出力のみ11′となり、残りはj OP どな
る、730はエンコーダであり上記n個のゲート出力を
受は取り、11′となっている演算器番号をENOi信
号として出力する。731〜734は各演算器に対応し
たn個のANDゲートであり、順に上記演算器空き状態
信号EIAi、、、、、EnAiと、上記n個のゲート
722,727〜729の出力の否定を入力し、これら
の論理積を第i + 1番目の命令に対する演算器空き
状態信号E I A i + 1 。726 is an OR gate, which outputs the logical sum of the outputs of 722 to 725 as an E A i signal. 722-725
If any of the outputs is 11', there is an arithmetic unit that assigns the instruction, so the EAi signal is 11' at this time.
becomes. 727 to 729 are n-1 AND gates, which are used to narrow down the arithmetic units to be actually allocated to one when a plurality of the above allocation candidates exist. That is, 7
27 to 729 sequentially output '1' when the arithmetic units E2 to En are actually assigned. For this reason, 727-72
The output signals 723 to 725 are sequentially input to 9, so that when the corresponding arithmetic unit becomes an allocation candidate, it can output '1'. Furthermore, the negation of the output signal of 722 is
27 to 729, the negation of the output signal of 723 to 728 to 7
29. Generally, among the output signals 722 to 725, the negation of the output value of the gate corresponding to the arithmetic unit Ej is
It is input to the gates corresponding to the arithmetic units Ei+1 to Ei+n out of 27 to 729. By doing this, n gates 722
, 727 to 729, when one or more arithmetic unit assignment candidates exist, only the output corresponding to the arithmetic unit with the smallest number becomes 11', and the rest are j OP. 730 is an encoder and the above n It receives the gate outputs and outputs the arithmetic unit number 11' as the ENOi signal. Numerals 731 to 734 are n AND gates corresponding to each arithmetic unit, which sequentially input the arithmetic unit empty status signals EIAi, ..., EnAi and the negation of the outputs of the n gates 722, 727 to 729. Then, the logical product of these is calculated as the arithmetic unit empty status signal EIAi+1 for the i+1st instruction.
、 0.、EnAi+1として出力する。上記説明から
明らかなように、EIAi+1.、、、。, 0. , EnAi+1. As is clear from the above explanation, EIAi+1. ,,,.
E n A i + 1は対応するE I A L +
1 * −−−eE n A iのうちで、第1番目
の命令に対し割り当てられた演算器に対応した信号のみ
′0′としたものといえる。第1番目の命令に対するE
ACにおいては、演算器空き状態信号EIAI、、、、
。E n A i + 1 is the corresponding E I A L +
1*---eE n A i, it can be said that only the signal corresponding to the arithmetic unit assigned to the first instruction is set to '0'. E for the first instruction
In AC, the computing unit empty state signal EIAI,...
.
EnAlはすべて空きを示す11′とする。EnAl is assumed to be 11' indicating that all are empty.
第7C図は信号IRDYi (i=1〜m)が上記(3
)の条件を満たすために、その必要条件を示すm−1本
の信号ELOKi (i=1〜m)を生成する回路であ
る。740は比較回路であり、命令待ち行列211より
入力する第1.第2番目の命令の演算サイクル数ELL
及びEL2を比較し、後者が前者と同じかそれ以上であ
るとき出力信号ELOK2を′1′とする。741〜7
42は740と同一構成のm −2個の比較回路であり
、順に第3番目から第m#目の命令に対応し、その演算
サイクル数と直前の命令の演算サイクル数を入力し、後
者が前者と同じかそれ以上であるとき出力信号を′1′
とする。743〜744はm−2個のANDゲートであ
り、順に第3番ぽから第m番目の命令に対応し信号EL
OKi(i=3〜m)を出力する。740及び741の
出力は743〜744の全てに入力する。一般に比較回
路741〜742のうち第1番目(ただしi〉2)の命
令に対応するものの出力を、ANDゲート743〜74
4のうち第1番目以降の命令に対応するもの全てに入力
する。したがって、ANDゲート744には740〜7
42の全ての出力を入力する1以上の構成により、EL
OKi信号は第1番目から第1番目にいたる、全ての命
令について、上記(3)の条件が成立したとき、そして
そのときにのみ′1′となる。FIG. 7C shows that the signal IRDYi (i=1 to m) is
), this circuit generates m-1 signals ELOKi (i=1 to m) indicating the necessary conditions. 740 is a comparison circuit which receives the first . Number of operation cycles for the second instruction ELL
and EL2 are compared, and when the latter is equal to or greater than the former, the output signal ELOK2 is set to '1'. 741-7
Reference numeral 42 denotes m -2 comparator circuits having the same configuration as the 740, which correspond to the third to m#th instructions in order, and input the number of operation cycles of the instruction and the number of operation cycles of the immediately preceding instruction, and the latter When it is equal to or greater than the former, the output signal is set to '1'.
shall be. 743 to 744 are m-2 AND gates, which correspond to the 3rd to mth instructions in order and output the signal EL.
Output OKi (i=3 to m). The outputs of 740 and 741 are input to all of 743-744. Generally, the output of the comparator circuit 741 to 742 corresponding to the first (i>2) instruction is output to the AND gates 743 to 74.
4, input to all those corresponding to the first and subsequent instructions. Therefore, AND gate 744 has 740 to 7
By one or more configurations inputting all 42 outputs, the EL
The OKi signal becomes '1' when and only when the above condition (3) is satisfied for all the instructions from the first to the first instruction.
第7D図は、上記第7A図、第7B図、第7C図にて説
明した信号QRDYi (i=1〜m)。FIG. 7D shows the signal QRDYi (i=1 to m) explained in FIGS. 7A, 7B, and 7C above.
信号EAi(i=2〜m)、信号ELOKi(i=2〜
m)を用いて、有効命令信号IRDY(i=1〜m)を
生成する回路を示す、750はANDゲートであるが、
本実施例に於いてはQRDYlのみを入力しそのままの
値を出力しIRDY1信号とする。即ち、QOPIで示
される解読済命令は必ずセットアツプすることができる
。751〜753は、同時にセットアツプする最大m個
の命令に於ける第2ないし第m番目までのm−1個の命
令に対応するANDゲートであり、順にQRDY 1(
i=2〜m)及びELOKi (i=2〜m)を入力す
る。さらにEA2信号を751〜753のすべてに、E
A3信号を752〜753の全てに入力する。一般に、
第1番目(ただしi〉1)の命令に対応する演算器割り
当て信号EAiを、ゲート751〜753のうち、第1
番目以降の命令に対応するものすべてに入力する。従っ
て例えば、ゲート753には、EAi (i=2〜m)
のすべてを入力する。ゲート751〜753は、各々の
入力の論理積を順にIRDYi(i=2〜m)信号とし
て出力する0以上の構成により、IRDYi (i=1
〜m)信号は上記(1)〜(3)の条件を全て満たす有
効命令信号となる。Signal EAi (i=2~m), signal ELOKi (i=2~m)
750 is an AND gate, and 750 is an AND gate.
In this embodiment, only QRDYl is input and the value is output as it is as an IRDY1 signal. That is, the decoded instruction indicated by QOPI can always be set up. 751 to 753 are AND gates corresponding to m-1 instructions from the second to the m-th among the maximum of m instructions that are set up at the same time;
input i=2~m) and ELOKi (i=2~m). Furthermore, the EA2 signal is applied to all 751 to 753, and the E
Input the A3 signal to all 752-753. in general,
The arithmetic unit assignment signal EAi corresponding to the first (i>1) instruction is applied to the first one of the gates 751 to 753.
Input everything that corresponds to the instruction after the th instruction. Therefore, for example, the gate 753 has EAi (i=2~m)
Enter everything. The gates 751 to 753 have a configuration of 0 or more that sequentially outputs the AND of each input as an IRDYi (i=2 to m) signal.
~m) The signal becomes a valid command signal that satisfies all of the conditions (1) to (3) above.
第2図のオペランド待ち制御回路210はセットアツプ
された最大m個の命令のそれぞれについて、必要とする
オペランドデータがオペランドバッファに読みだされて
いるかどうかを示す信号A D V W i (i =
1〜m )を生成し、これを演算制御ユニット7に送
出する。このため、命令解読器207〜208より信号
DSi(i=1〜p)及びUOBi (i=1〜P)、
命令待ち行列制御回路212より信号QTPi (i=
1〜p)及びQOPi (i=l〜m) 、記憶装置1
より信号ADVi (i=1〜p)及び○BNOi (
i=1〜p)をそれぞれ入力する。The operand wait control circuit 210 in FIG. 2 receives a signal ADVW i (i =
1 to m) and sends it to the arithmetic and control unit 7. Therefore, the signals DSi (i=1 to p) and UOBi (i=1 to P) from the instruction decoders 207 to 208,
The instruction queue control circuit 212 outputs a signal QTPi (i=
1 to p) and QOPi (i=l to m), storage device 1
The signals ADVi (i=1 to p) and ○BNOi (
i=1 to p), respectively.
第6図を用いて、オペランド待ち°制御回路210の構
成をより詳細に説明する。601〜602はに個のフリ
ップフロップであり、オペランドバッファ216のに個
のバッファレジスタに対応し、そのバッファレジスタに
必要なオペランドが到着していない状態を表示する。す
なわち、あるフリッププロップが1″の時、対応するバ
ッファレジスタにオペランドを読み出す必要があるがま
だ到着していない事を、またO′の時、対応するバッフ
ァレジスタにオペランドを読み出す必要がないか、ある
いは既に到着している事を示す。The configuration of the operand wait control circuit 210 will be described in more detail with reference to FIG. 601 to 602 are flip-flops, which correspond to buffer registers of the operand buffer 216, and indicate a state in which a necessary operand has not arrived at the buffer register. That is, when a certain flip-flop is 1'', it is necessary to read the operand to the corresponding buffer register, but it has not arrived yet, and when it is O', it is not necessary to read the operand to the corresponding buffer register. Or it indicates that it has already arrived.
603〜604はに個のORゲートであり、フリップフ
ロップ601〜602のそれぞれに対し、セットする値
を送出する。605〜606はp個のデコーダであり、
それぞれ第2図のp個の命令解読器DECi (i=1
〜p)に対応し、順にUOBi(i=1〜p)及び命令
待ち行列入力ポインタ信号Q I P i (i =
1〜p)を入力し、それぞれに本のデコード出力を順に
ORゲート603〜604に送出する。605〜606
の各デコーダは、UOBi(i=1〜p)のうち対応す
る信号が1″となったとき、命令待ち行列入力ポインタ
信号で示されるバッファレジスタに対応したデコード出
力信号値を1″とする。この時ORゲート603〜60
4の内対応したゲートが11′を出力する。607〜6
08はに個のORゲートであり、フリップフロップ60
1〜602のそれぞれに対し、上記603〜604から
の入力データをセットするためのクロック信号を送出す
る。603-604 are OR gates, which send values to be set to each of the flip-flops 601-602. 605 to 606 are p decoders;
p instruction decoders DECi (i=1
~ p), and in turn UOBi (i = 1 ~ p) and the instruction queue input pointer signal Q I P i (i =
1 to p) are input, and the decoded output of each book is sequentially sent to OR gates 603 to 604. 605-606
Each decoder sets the decode output signal value corresponding to the buffer register indicated by the instruction queue input pointer signal to 1'' when the corresponding signal among UOBi (i=1 to p) becomes 1''. At this time, OR gates 603 to 60
The corresponding gate of 4 outputs 11'. 607-6
08 is an OR gate of 60 flip-flops.
A clock signal for setting the input data from the above-mentioned 603-604 is sent to each of 1-602.
609〜610はp個のデコーダであり、それぞれ第2
図のp個の命令解読器DECi (i=1〜p)に対応
し、順にDSi(i=1〜p)及び命令待ち行列入力ポ
インタ信号QIPi (i=1〜p)を入力し、それぞ
れに本のデコード出力を順に○Rゲート607〜6o8
に送出する。609〜610の各デコーダは、DSi(
i=1〜p)のうち対応する信号が1″となったとき、
命令待ち行列入力ポインタ信号で示されるバッファレジ
スタに対応したデコード出力信号値を1″とする。この
時ORゲート607〜608の内対応したゲートがクロ
ック信号値′1′を出力する。609 to 610 are p decoders, each with a second
Corresponding to p instruction decoders DECi (i=1 to p) in the figure, DSi (i=1 to p) and instruction queue input pointer signal QIPi (i=1 to p) are input in order, and each Decode output of book in order ○R gate 607~6o8
Send to. Each decoder 609 to 610 has a 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 gate among the OR gates 607 to 608 outputs the clock signal value '1'.
これにより対応したフリップフロップに上記入力データ
がセットされる。2命令以上が同時に解読を完了した場
合DSLからの命令数分だけの命令解読完了信号が1″
となるが、この時はQIPlで示されるフリップフロッ
プから連続する上記命令数分のフリップフロップが各々
の入力データ値にセットされる。611〜612はに個
のORゲートであり、601〜602に対応し、各フリ
ップフロップを0″にリセットする信号を送出する。6
13〜614はp個のデコーダであり、それぞれ記憶装
置1からのp個の出力ボートに対応し、順にアドバンス
信号A D V i (i = 1〜p)及びオペラン
ドバッファ番号0BNOi (i=1〜p)を入力し、
それぞれに本のデコード出力を順にORゲート611〜
612に送出する。613〜614の各デコーダは、ア
ドバンス信号が“1′、すなわちオペランドが記憶装置
から送出されてきたとき、オペランドバッファ番号で示
されるバッファレジスタに対応したデコード出力信号値
を1′とする。この時ORゲート611〜612の内対
応したゲートが1′を出力し、これにより対応したフリ
フップロップが0′にリセットされる。2つ以上のオペ
ランドが同時に読みだされた場合、そのオペランド数分
だけのアドバンス信号が11′となるが、この時は上記
オペランド数分のフリップフロップが0′にリセットさ
れる。As a result, the input data is set in the corresponding flip-flop. If two or more instructions complete decoding at the same time, the instruction decoding completion signal for the number of instructions from the DSL will be 1''.
However, at this time, the flip-flops corresponding to the number of consecutive instructions from the flip-flop indicated by QIPl are set to each input data value. 611-612 are OR gates corresponding to 601-602, and send out a signal to reset each flip-flop to 0''.6
13 to 614 are p decoders, each of which corresponds to p output ports from the storage device 1, and sequentially input an advance signal ADVi (i=1 to p) and an operand buffer number 0BNOi (i=1 to p),
The decoded output of each book is sequentially sent to the OR gate 611~
612. 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, the operand is sent from the storage device. The corresponding one of the OR gates 611 to 612 outputs 1', which resets the corresponding flip-flop to 0'.If two or more operands are read at the same time, the output is as many as the number of operands. The advance signal becomes 11', but at this time, the flip-flops corresponding to the number of operands are reset to 0'.
615〜616はセットアツプポートi (i=1〜m
)対応のm個のセレクタである。各セレクタにはそれぞ
れフリップフロップ601〜602の出力である合計に
本のオペランド待ち信号ADVWQi (i=1〜k
)を入力する。また、各セレクタには順に命令待ち行列
出カポインタQOPi(i=1〜m)を入力し、それぞ
れADVVQi(i=1〜k)の中から該ポインタで示
されるバッファレジスタに対応するオペランド待ち信号
の値を選択し、信号ADVWi (i=1〜m)として
出力する0以上の説明から明らかなように、信号ADV
Wi(i=1〜m)はセットアツプした最大m個の命令
のそれぞれに対応して、必要なオペランドがオペランド
バッファに到着していないことを示す。615 to 616 are setup ports i (i=1 to m
) corresponding m selectors. Each selector has a total of operand waiting signals ADVWQi (i=1 to k
). In addition, the instruction queue output pointer QOPi (i=1 to m) is input to each selector in order, and the operand wait signal corresponding to the buffer register indicated by the pointer is selected from ADVVQi (i=1 to k). The signal ADV
Wi (i=1 to m) indicates that a necessary operand has not arrived at the operand buffer corresponding to each of the maximum m instructions set up.
第3A図及び第3B図を用いて演算制御ユニット7の構
成を説明する。第3A図は演算実行許可信号EXi (
i=1〜m)、セットアツプ完了信号0BTi (i=
1〜m)v最終演算開始信号LBOP、セットアツプ命
令数LINOを生成する回路である。301〜303は
セットアツプポート1(i=1〜m)に対応するm個の
NORゲートであり、各セットアツプポートを介してセ
ットアツプした命令に対する演算実行保留条件を入力し
、その論理和の否定を出力する。演算実行保留条件とし
てポート1に対応するセットアツプ命令中第1番目の命
令のオペランドが未到着である条件FWI をANDゲ
ート317より301〜303の全てに入力する。ボー
ト2に対応する第2番目の命令についてのオペランド未
到着条件FW2をANDゲート318より302〜30
3に入力する。一般に、第i番目の命令についてのFW
i信号をNORゲート301〜3o3のうちポルトiか
らボートmに対応するものに入力する。The configuration of the arithmetic and control unit 7 will be explained using FIG. 3A and FIG. 3B. FIG. 3A shows the calculation execution permission signal EXi (
i=1~m), setup completion signal 0BTi (i=
1 to m) v This is a circuit that generates the final operation start signal LBOP and the number of set-up instructions LINO. 301 to 303 are m NOR gates corresponding to set-up port 1 (i=1 to m), which input the operation execution suspension condition for the set-up instruction through each set-up port, and calculate the logical sum of the Outputs negation. A condition FWI, in which the operand of the first instruction among the set-up instructions corresponding to port 1 has not arrived, is inputted to all of 301 to 303 from the AND gate 317 as an operation execution pending condition. Operand non-arrival condition FW2 for the second instruction corresponding to boat 2 is set to 302 to 30 by AND gate 318.
Enter 3. In general, the FW for the i-th instruction
The i signal is input to one of the NOR gates 301 to 3o3 corresponding to port i to port m.
304〜306はセットアツプポートi (i=1〜
m)に対応したm個のフリップフロップであり、NOR
ゲート301〜303のうち対応するものの出力値を毎
サイクル保持し、EXi(i=1〜m)信号として出力
する。上記構成により、第i番目の命令でFWi信号が
1′となった場合、第1番目以降のすべての演算実行許
可信号EXi(i=1〜m)は0′となり、第iないし
m番目の命令の演算実行を開始しない0本実施例では演
算実行保留条件としてオペランド未到着条件のみを示し
たが、その他の保留条件に関しても上記と同様にNOR
ゲート301〜303に入力することにより、演算実行
の追い越しを防止する。304 to 306 are setup ports i (i=1 to
m) corresponding to NOR
Output values of corresponding gates 301 to 303 are held every cycle and output as EXi (i=1 to m) signals. With the above configuration, when the FWi signal becomes 1' in the i-th instruction, all operation execution permission signals EXi (i=1 to m) after the first instruction become 0', and the i-th to m-th 0 Do not start the operation execution of the instruction In this embodiment, only the operand non-arrival condition is shown as the operation execution suspension condition, but other suspension conditions can also be NOR as described above.
By inputting to the gates 301 to 303, overtaking of calculation execution is prevented.
307〜309はセットアツプポートi (i=1〜m
)に対応するm個のANDゲートであり、出力交換回路
9から送出される各命令の演算終了信号EOPi (i
==1〜m)とフリップフロップ304〜306から送
出される演算実行許可信号EXi (i=1〜m)のう
ち、対応するポートの信号を入力し、その論理積を信号
EOPEXi(i=1〜m)として出力する。信号EO
PEXiは第i番目の命令に対する演算終了が実際に許
可されたことを示す、310はANDゲートであり、信
号EOPEXi (i=1〜m)を入力しその論理積を
信号ERDYとして出力する。信号ERDYはセットア
ツプした命令が全て演算を完了し、従って全ての演算器
Ei (i=1〜n)が空いたことを示す0本実施例で
は信号ERDY信号が1′となって初めて後続命令グル
ープのセットアツプを行なう、311〜313はセット
アツプポート1(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)信号をクロック端子に入力し、セ
ットアツプ完了信号0BTi(i=1〜m)を出力する
。314〜316のうちセットアツプポートiに対応す
るフリップフロップに関して見ると、該ポートに対応し
て有効な命令が存在した場合その命令セットアツプの完
了したサイクルに信号0BTiが1′となり、対応する
演算実行が実際に開始したとき、その次のサイクルから
401となる。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
から信号0BTi(i=1〜m)を入力し、それらの論
理積をオペランド未到着条件信号FWi(i=1〜m)
として出力する。320〜322は、セットアツプポー
トi (i=1〜m)に対応するm個のANDゲートで
あり、順に上記NORゲート301〜303から演算実
行許可信号を、またフリッププロップ314〜316か
らセットアツプ完了信号0BTi(i=1〜m)を入力
し、これらの論理積を演算実行開始信号BOPi(i=
1〜m)として出力する。323〜325は、セットア
ツプポート1(i=1〜m)に対応するm個のANDゲ
ートであり、各々対応するポートを介してセットアツプ
された命令が、同時にセットアツプされた命令の中で概
念的に最後の命令であり、しかも該命令が演算実行を開
始したことを検出する。このためセットアツプポートi
に応答するANDゲートには信号BOPiと、信号0B
Ti+1の否定値を入力する。ただしゲート325にお
いては信号BOPmのみを入力する信号BOPi(i<
m)が1′となった時に次のポートi+1に対応する信
号がO′であった場合、該第i番目の命令が最後の命令
である。何故ならば、もし第i番目の命令が最後でない
と仮定すると、第i+1ないし第m番目のポートに対応
して命令がセットアツプされたことになる。もしポート
i+1に対応して命令がセットアツプされていたとする
と、第i+1番目の命令の演算実行開始は第i番目のそ
れを追い抜かないので、信号0BTi+1は信号BOP
iが1′となったときにはO′では有り得ず、上記に矛
盾する。またもしポートi + 1に対して命令がセッ
トアツプされていなかったとすると、第i+2ないしm
番目のポートに対して命令セットアツプが行なわれたこ
とになるが、これは本実施例では命令セットアツプは連
続したポートに対して行なわれるので有り得ない、これ
は第i番目の命令が最後でないと仮定したことに誤りが
有るからである。従って上記の場合は第i番目の命令が
セットアツプされた命令のうち最後の命令であることが
いえる。また信号BOPmが111となったときは第m
番目の命令が最後の命令であることは明らかである。こ
のときゲート323〜325のうち、第i番目のゲート
の出力が“1′となる。また、明らかにその他のゲート
の出力は0′である。326はORゲートでありゲート
323〜325の出力の全ての論理和をとり、信号LB
OPとして出力する。307 to 309 are setup ports i (i=1 to m
), and the operation end signal EOPi (i
==1 to m) and the operation execution permission signals EXi (i=1 to m) sent from the flip-flops 304 to 306, the signals of the corresponding ports are input, and the logical product is calculated as the signal EOPEXi (i=1 to m). ~m). Signal EO
PEXi indicates that completion of the operation for the i-th instruction is actually permitted. 310 is an AND gate which inputs the signal EOPEXi (i=1 to m) and outputs the logical product thereof as the signal ERDY. The signal ERDY is 0, which indicates that all set-up instructions have completed their operations and therefore all the arithmetic units Ei (i=1 to n) are vacant. Group setup is performed. 311 to 313 are m ANDs corresponding to setup port 1 (i=1 to m).
The outputs of 311 to 313, which are gates, input the valid instruction signal IRDYi (i=1 to m) sequentially sent from the instruction control unit 2 and the above signal ERDY, and output their logical product. 314 to 316 are set-up ports i (i =
m flip-flops corresponding to 1 to m),
Sequentially, set-up completion conditions are input from 311 to 313 to the data input terminals, EXi (i=1 to m) signals from flip-flops 304 to 306 are input to the clock terminal, and a set-up completion signal 0BTi (i=1 to m) is input. Output. Regarding the flip-flop corresponding to set-up port i among 314 to 316, if there is a valid instruction corresponding to that port, the signal 0BTi becomes 1' in the cycle in which the instruction set-up is completed, and the corresponding operation is performed. 401 from the next cycle when execution actually starts. 337-339 are setup ports 1
m registers corresponding to gates 311 to 313, which sequentially input signals ENOi (i=1 to m) from the instruction control unit 2, and the output of the corresponding one of the gates 311 to 313 is 1'.
When the signal ENOi (i=1 to m) is taken in, the contents of those registers are sent to the input exchange circuit 8. 317 to 319 are setup ports i (i =
m AND gates corresponding to the operand wait signals ADVWi(
i=1 to m), and flip-flops 314 to 316
Input the signal 0BTi (i=1~m) from
Output as . 320-322 are m AND gates corresponding to set-up ports i (i=1-m), which sequentially receive operation execution permission signals from the NOR gates 301-303 and set-up ports from flip-flops 314-316. Input the completion signal 0BTi (i=1 to m), and calculate the AND of these signals as the operation execution start signal BOPi (i=1 to m).
1 to m). 323 to 325 are m AND gates corresponding to the set-up port 1 (i=1 to m), and the instructions set up through the respective corresponding ports are selected among the instructions set up at the same time. It is detected that the instruction is conceptually the last instruction and that the instruction has started execution of an operation. Therefore, the setup port i
The AND gate that responds to the signal BOPi and the signal 0B
Input the negative value of Ti+1. However, in the gate 325, the signal BOPi (i<
If the signal corresponding to the next port i+1 is O' when m) becomes 1', the i-th instruction is the last instruction. This is because, assuming that the i-th instruction is not the last, instructions are set up corresponding to the (i+1)-th to m-th ports. If an instruction is set up corresponding to port i+1, the start of operation execution of the i+1st instruction does not overtake that of the i-th instruction, so the signal 0BTi+1 is set up as the signal BOP.
When i becomes 1', it cannot be O', which contradicts the above statement. Also, if no instructions are set up for port i+1, then
This means that the instruction set-up was performed on the i-th port, but this is impossible because the instruction set-up is performed on consecutive ports in this embodiment.This means that the i-th instruction is not the last. This is because there is a mistake in assuming that. Therefore, in the above case, it can be said that the i-th instruction is the last instruction among the set-up instructions. Also, when the signal BOPm becomes 111, the mth
It is clear that the second command is the last command. At this time, the output of the i-th gate among the gates 323 to 325 becomes "1'. Also, obviously the outputs of the other gates are 0'. 326 is an OR gate, and the output of the gates 323 to 325 Take the logical OR of all of the signal LB
Output as OP.
327はエンコーダであり、ANDゲート323〜32
5の出力を受は取り、11′を出力しているゲートに対
応するポート番号を生成し、信号LINOとして出力す
る。327 is an encoder, and AND gates 323 to 32
The receiver receives the output of 5, generates a port number corresponding to the gate outputting 11', and outputs it as a signal LINO.
第3B図は演算制御ユニットのうち条件分岐判定信号T
KN、割り込み検出信号INT、及び演算実行取り消し
信号RESi (i=1〜m)を生成する回路である。Figure 3B shows the conditional branch judgment signal T in the arithmetic control unit.
This circuit generates KN, an interrupt detection signal INT, and an operation execution cancellation signal RESi (i=1 to m).
350は条件コード選択回路であり、出力交換回路によ
りセットアツプポートに対応した各命令の条件コードC
Ci (121〜m)及びそれらのセット信号CC3i
(121〜m)を受は取り、′1′となっている信号
CC3i(121〜m)のうち最も番号の大きいものに
対応した条件コードを選択し、レジスタ351に送出す
る。352はORゲートであり、信号CC81(121
〜m)を受は取り、これらの論理和を351のクロック
端子に送出する。351は条件コードレジスタであり、
352からのクロック信号が′1′となったとき、35
0が出力する条件コード値をセットする。351が出力
する条件コードCCPは、同時にセットアツプされた命
令が全て実行を完了した場合の条件コードを示す、35
3はセットアツプポート1に条件分岐命令がセットアツ
プされた時の分岐判定制御回路である。また354〜3
55は、セットアツプポート1(132〜m)に対応し
た分岐判定制御回路である。350 is a condition code selection circuit, which uses an output exchange circuit to select the condition code C of each instruction corresponding to the setup port.
Ci (121~m) and their set signals CC3i
(121-m), selects the condition code corresponding to the largest number among the signals CC3i (121-m) that are '1', and sends it to the register 351. 352 is an OR gate, and the signal CC81 (121
~m) and sends their logical sum to the clock terminal of 351. 351 is a condition code register;
When the clock signal from 352 becomes '1', 35
Sets the condition code value that 0 outputs. The condition code CCP output by the 351 indicates the condition code when all the instructions set up at the same time have completed execution.
Reference numeral 3 denotes a branch judgment control circuit when a conditional branch instruction is set up at the set-up port 1. Also 354-3
55 is a branch determination control circuit corresponding to setup port 1 (132-m).
356.358〜359はセットアツプポート1(12
1〜m)に対応するm個のレジスタであり。356.358-359 are setup ports 1 (12
1 to m).
命令制御ユニットから送出する条件分岐命令信号BCi
(121〜m)及びマスク信号BCMi(121〜m)
のうち、対応するポートのものをセットする。各レジス
タにはクロック信号として演算制御ユニット内部で生成
する上記QBTi (121〜m)信号を入力する。3
62〜363は条件コードの選択回路であり、対応する
セットアツプポートから条件分岐命令がセットアツプさ
れたとき、該条件分岐命令にとって最新の条件コードを
出力する。このため362には、上記ccp。Conditional branch instruction signal BCi sent from the instruction control unit
(121~m) and mask signal BCMi (121~m)
Set the one for the corresponding port. The QBTi (121-m) signal generated inside the arithmetic control unit is input as a clock signal to each register. 3
Reference numerals 62 to 363 denote condition code selection circuits, which output the latest condition code for the conditional branch instruction when the conditional branch instruction is set up from the corresponding set-up port. Therefore, in 362, the above-mentioned ccp.
CC1そしてCC81を入力する。CC81が“1′で
あれば第1番目の命令が最新の条件コードを設定してお
り、このとき362はCCIの値を出力し、CC81が
101であればccpを出力する。一般に、362〜3
63のうちセットアツプポートi(但しi〉1)に対応
して選択回路にはCCP、CC1,、、、、CC1−1
,CGSL。Input CC1 and CC81. If CC81 is "1", the first instruction sets the latest condition code, and in this case, 362 outputs the value of CCI, and if CC81 is 101, outputs ccp.Generally, 362~ 3
63, the selection circuit corresponds to the set-up port i (where i>1), and the selection circuit includes CCP, CC1, , CC1-1.
,CGSL.
、、、、CC3i−1を入力する。この時、CC3I、
、、、、CC3i−1がすべて′O′。, , , Input CC3i-1. At this time, CC3I,
, , CC3i-1 are all 'O'.
すなわち、同時にセットアツプされた命令のなかでは該
条件分岐命令に先だって条件コードを設定はる命令が無
い場合、該選択回路はCCPを出力し、CGSL、、、
、、CC:5i−1のうちで少なくとも1つが11′の
場合、′1′である条件コードセット信号の中で最も番
号の大きいポートに対応した条件コードを出力する0以
上により362〜363は、対応するセットアツプポー
トから条件分岐命令がセットアツプされたとき、該条件
分岐命令にとって最新の条件コードを出力することがわ
かる。357,360〜361は分岐判定回路である。That is, if there is no instruction that sets a condition code prior to the conditional branch instruction among the instructions set up at the same time, the selection circuit outputs CCP, CGSL,...
,, CC: If at least one of 5i-1 is 11', 362 to 363 are output by 0 or more, which outputs the condition code corresponding to the port with the largest number among the condition code set signals that are '1'. , it can be seen that when a conditional branch instruction is set up from the corresponding set-up port, the latest condition code for the conditional branch instruction is output. 357, 360-361 are branch determination circuits.
357には条件コードレジスタ351からCCP、35
gからBCI、BCMI、そして演算制御ユニット内部
で生成する上記信号EOPEXIを入力する。信号EO
PEXIは第1番目の命令の演算実行が終了したサイク
ルであることを示し、このとBClが11′、すなわち
該命令が条件分岐命令であれば、マスク値BCMIと最
新の条件コードであるCCPから分岐の有無を判定し、
判定結果を信号TKN1として出力する。同様にして3
60〜361には順に362〜363からそれぞれに対
する最新の条件コード。357 is the condition code register 351 to CCP, 35
BCI, BCMI, and the above-mentioned signal EOPEXI generated inside the arithmetic and control unit are input from g. Signal EO
PEXI indicates the cycle in which the operation execution of the first instruction has finished, and if BCl is 11', that is, if the instruction is a conditional branch instruction, then from the mask value BCMI and the latest condition code CCP Determine whether there is a branch,
The determination result is output as signal TKN1. Similarly, 3
60-361 are the latest condition codes for each of 362-363 in order.
358〜359からBCi(132〜m)、BCMi(
132〜m)、そして演算制御ユニット内部で生成する
上記信号EOPEXi (i=2〜m)を入力する。さ
らに353と同様にして分岐判定を行ない、結果を信号
TKNi(132〜m)として出力する。364〜36
6はセットアツプポート1(121〜m)に対応するm
個のORゲートであり、対応する命令の演算実行取り消
し信号RESi(121〜m)を出力する。このため3
65〜366の全てに上記TKN1及び出力交換回路か
らの信号INTCIを入力する。さらに一般に信号TK
Ni及びINTCi (132〜m)を、365〜36
6のうちポートi+1からポートmに対応した全てのゲ
ートに入力する。また364〜366の全てに出力交換
回路からのINTSI信号を入力する。さらに一般に信
号INTSi(132〜m)を、365〜366のうち
ポートiからポートmに対応した全てのゲートに入力す
る0以上から分るように、第i番目の命令に於いて分岐
成立もしくは完了型割り込みが発生すると第i+1番目
以降の命令の演算を実行している全ての演算器に対し、
また第i番目の命令において抑止型割り込みが発生する
と第1番目以降の命令の演算を実行している全ての演算
器に対し、取り消し信号RESi+1.....RES
mが送出される。367及び368はORゲートであり
、それぞれ全ての分岐成立信号TKNi(121〜m)
及び割り込み検出信号INTCi (121〜m)。358-359 to BCi (132-m), BCMi (
132-m) and the above-mentioned signal EOPEXi (i=2-m) generated inside the arithmetic and control unit. Further, branch determination is performed in the same manner as in step 353, and the result is output as signal TKNi (132 to m). 364-36
6 is m corresponding to setup port 1 (121~m)
These are OR gates that output operation execution cancellation signals RESi (121 to m) of the corresponding instructions. For this reason 3
The above TKN1 and the signal INTCI from the output switching circuit are input to all of the terminals 65 to 366. Furthermore, generally signal TK
Ni and INTCi (132~m), 365~36
6, input to all gates corresponding to port i+1 to port m. In addition, the INTSI signal from the output switching circuit is input to all of 364 to 366. Furthermore, as can be seen from the fact that the signal INTSi (132 to m) is input to all gates corresponding to port i to port m among 365 to 366 from 0 to 0, a branch is established or completed in the i-th instruction. When a type interrupt occurs, for all the arithmetic units executing the operation of the i+1st instruction and after,
Furthermore, when a suppressed interrupt occurs in the i-th instruction, a cancellation signal RESi+1. .. .. .. .. RES
m is sent. 367 and 368 are OR gates, which respectively output all branch establishment signals TKNi (121 to m).
and interrupt detection signal INTCi (121-m).
I NTS i (i = 1〜m)の論理和を、TK
N及びINT信号として命令制御ユニットに送出する。The logical sum of I NTS i (i = 1 to m) is TK
N and INT signals to the command control unit.
369はORゲートテあり上記INT及びTKN信号の
論理和をフリップフロップ370に送出するフリップフ
ロップ370は369の出力を1サイクル保持し、その
出力信号RESを全ての演算器Ei(i=1〜n)に送
出する。RES信号により、直後のサイクルでセットア
ツプされた命令グループの演算実行を抑止する。369 has an OR gate. The flip-flop 370 sends the logical sum of the INT and TKN signals to the flip-flop 370. The flip-flop 370 holds the output of 369 for one cycle, and sends the output signal RES to all the arithmetic units Ei (i=1 to n). Send to. The RES signal inhibits execution of the instruction group set up in the immediately following cycle.
第4図は入力交換回路8の構成を示す、401〜403
は演算器Ei (i=1〜n)に対応したn個のORゲ
ートであり、演算器にセットアツプするデータを出力す
る。404〜406はセットアツプポートi (121
〜m)に対応するm個のデコーダであり、順に入力デー
タdi (121〜m)及び演算器番号ENOi (
i=1〜m)を入力し、演算器Ei (i=1〜n)に
対応したn本のデコード信号を順に401〜403に送
出する。FIG. 4 shows the configuration of the input exchange circuit 8, 401 to 403.
are n OR gates corresponding to the arithmetic unit Ei (i=1 to n), which output data to be set up to the arithmetic unit. 404 to 406 are setup ports i (121
m decoders corresponding to input data di (121 to m) and arithmetic unit number ENOi (
i=1 to m) is input, and n decoded signals corresponding to the arithmetic units Ei (i=1 to n) are sequentially sent to 401 to 403.
各デコーダは入力データが1′の時演算器番号で示され
るデコード信号を1″とする。入力データdi(i=1
〜m)としては、上記のlN5Ti。Each decoder sets the decode signal indicated by the arithmetic unit number to 1'' when the input data is 1'.Input data di (i=1
~m) is the above-mentioned IN5Ti.
RD i 、 M A i 、 M D i 、 RW
A i 、 OB T i pEXi、RESi
(121〜m)等があり、それぞれに対して第4図の交
換回路を設ける。RD i , M A i , M D i , RW
A i , OB T i pEXi, RESi
(121-m), etc., and the exchange circuit shown in FIG. 4 is provided for each.
第5図は出力交換回路9の構成を示す、501〜503
はセットアツプボートi (121〜m)に対応するm
個のセレクタあり、各セレクタに順に演算制御ユニット
7から演算器番号E N O1(121〜m)を、また
全ての演算器からの出力データのi (i=l〜n)
を各セレクタに入力する。セレクタ501〜503は入
力データei(i=1〜n)のうちそれぞれの演算器番
号で示されるものを信号di (121〜m)として出
力する。出力データとしては、上記EDi (121〜
m)、RWAi (i=1〜m)、5TAi (121
〜m)等がある。FIG. 5 shows the configuration of the output switching circuit 9, 501 to 503.
is m corresponding to setup boat i (121~m)
There are selectors, and each selector receives the operator number E N O1 (121~m) from the operation control unit 7 in turn, and the output data i (i=l~n) from all the operators.
Enter into each selector. The selectors 501 to 503 output the input data ei (i=1 to n) indicated by the respective arithmetic unit numbers as signals di (121 to m). As output data, the above EDi (121~
m), RWAi (i=1 to m), 5TAi (121
~ m) etc.
以下では典型的な命令列を例にとり、本実施例になる計
算機の動作を説明する。第10A図は、Load、 M
ultiplyt Load、 5torsの4命令列
に対する動作タイムチートである0本実施例では1つの
命令処理は命令読み出しを除くと6つのステージからな
る。Dステージでは命令解読及びオペランドアドレス生
成、Aステージでは命令解読情報の命令待行列への格納
とメモリオペランドもしくは分岐命令のターゲット命令
読み出し、Lステージでは命令セットアツプ、Eステー
ジでは演算実行、Pステージでは演算結果のチエツクも
しくは、条件分岐判定および演算結果の書き込み指令の
発行。The operation of the computer according to this embodiment will be explained below using a typical instruction sequence as an example. Figure 10A shows Load, M
ultiplyt Load, 0 which is an operation time cheat for 4 instruction sequences of 5tors In this embodiment, one instruction processing consists of 6 stages excluding instruction read. In the D stage, the instruction is decoded and the operand address is generated. In the A stage, the instruction decoded information is stored in the instruction queue and the target instruction of the memory operand or branch instruction is read. In the L stage, the instruction is set up. In the E stage, the operation is executed. Check the calculation results or issue conditional branch judgment and write commands for the calculation results.
Sステージでは演算結果のレジスタもしくは記憶装置へ
の書き込みを行なう、命令により、Sステージの無い場
合がある。最も簡単な命令においては各ステージは1サ
イクルで実行するが命令により特定のステージを複数サ
イクルで実行する場合もある。第10A図では横軸はマ
シンサイクルを単位とした時間を、縦軸は上記命令列及
び主要信号もしくは主要処理を示す、上記4命令には図
中の参照のため1〜4の命令番号を付す、さて、本発明
では命令1,2が同時にセットアツプされ、演算実行を
したところ、命令2において完了型割り込みが発生した
ため、後続の命令3,4の処理を取り消す場合を示して
いる。命令1,2はサイクルC1にて同時に解読され、
この時C2にて命令解読完了信号DSL、2が“1′と
なる。C3にて有効命令信号IRDY1.2が11′と
なる。この時演算器は全て空いているとすると、E R
DY信号が1′であり、従ってこのサイクルで命令セッ
トアツプが行なわれ0BTI、2信号が1′となる。こ
の時特に演算実行保留条件が無いので、直ちに演算が開
始され、BOPI、2信号が1′となる。またC4から
は、演算実行許可信号EX1.2が′1′となる。命令
1のEステージは1サイクルで終了するのでC4にて演
算終了信号EOP1が11′となる。一方命令2はEス
テージは3サイクルを要するので、C6にてEOP2が
11′となる。従って次にERDY信号が11′となる
のはC6である。この例では命令2のEステージの終了
時点で完了型割り込み条件が検出されるのでINTC2
信号がPステージで′1′となり、これに応答してRE
S信号がSステージで′1′となる。一方命令3,4は
命令1,2より1サイクル遅れてDステージが始まりC
4からIRDYI、2信号が“1′となるものの、先行
する命令グレーグの演算が全て終了しておらず、従って
ERDY信号が′0′なので、セットアツプが待たされ
る。C6にてERDYが11′となり、命令3,4のセ
ットアツプが完了する。引続き命令3,4はE、Pステ
ージを実行し、C9でSステージに入る。しかし、先行
する命令2にて割り込みが発生しており、C8にてRE
S信号′1′となっているので、これによりC8での命
令3,4による結果の書き込み指令RWC1。In the S stage, there may be no S stage due to an instruction that writes the result of an operation to a register or a storage device. In the simplest instruction, each stage is executed in one cycle, but depending on the instruction, a specific stage may be executed in multiple cycles. In Figure 10A, the horizontal axis shows time in machine cycles, and the vertical axis shows the above instruction sequence and main signals or main processing.The above four instructions are given instruction numbers 1 to 4 for reference in the figure. Now, in the present invention, when instructions 1 and 2 are set up at the same time and arithmetic operations are executed, a completion type interrupt occurs in instruction 2, so the processing of subsequent instructions 3 and 4 is canceled. Instructions 1 and 2 are decoded simultaneously in cycle C1,
At this time, the instruction decoding completion signal DSL, 2 becomes "1' at C2. The valid instruction signal IRDY1.2 becomes 11' at C3. Assuming that all the arithmetic units are empty at this time, E R
The DY signal is 1', therefore, instruction set-up is performed in this cycle, and the 0BTI and 2 signals become 1'. At this time, since there is no particular operation suspension condition, the operation is started immediately and the BOPI, 2 signal becomes 1'. Further, from C4, the calculation execution permission signal EX1.2 becomes '1'. Since the E stage of instruction 1 is completed in one cycle, the operation end signal EOP1 becomes 11' at C4. On the other hand, since the E stage of instruction 2 requires three cycles, EOP2 becomes 11' at C6. Therefore, the next time the ERDY signal becomes 11' is C6. In this example, the completion type interrupt condition is detected at the end of the E stage of instruction 2, so INTC2
The signal becomes '1' at the P stage, and in response to this, the RE
The S signal becomes '1' at the S stage. On the other hand, instructions 3 and 4 start the D stage one cycle later than instructions 1 and 2.
Although the IRDYI and 2 signals become "1" from C6, all the calculations of the preceding instruction Greg have not been completed, and therefore the ERDY signal is "0", so the setup is awaited.At C6, ERDY becomes "11". Then, the setup of instructions 3 and 4 is completed.Instructions 3 and 4 continue to execute the E and P stages, and enter the S stage at C9.However, an interrupt has occurred in the preceding instruction 2, and the C8 At RE
Since the S signal is '1', this causes a write command RWC1 for the results of instructions 3 and 4 in C8.
MWC2がそれぞれ抑止される。これは命令3゜4のセ
ットアツプを命令1,2の演算実行の終了を待って行な
ったため、命令3,4の書き込み指令発行が命令1,2
の割り込み検出を行なうPステージより後になったから
可能であった。従来は命令3,4は必ずしも命令1,2
の終了を待たずしてセットアツプされ演算を開始してい
たので命令2の割り込みが検出された時点では一般的に
は結果の書き込みはすでに終了してしまう、従って、レ
ジスタの場合は予め待避しておいたデータを回復する必
要があり、また記憶装置の場合はMシリーズアーキテキ
チャの仕様を守ることが困難である。MWC2 are each inhibited. This is because the setup of instructions 3 and 4 was performed after waiting for the completion of the calculation execution of instructions 1 and 2, so the write commands for instructions 3 and 4 were issued only when instructions 1 and 2 were set up.
This was possible because it occurred after the P stage, which performs interrupt detection. Conventionally, instructions 3 and 4 were not necessarily instructions 1 and 2.
Since it was set up and the operation started without waiting for the completion of the instruction, by the time the instruction 2 interrupt is detected, the writing of the result has generally already finished. Therefore, in the case of a register, save it in advance. In the case of storage devices, it is difficult to comply with the specifications of the M series architecture.
第10B図は、主記憶装置上に並ぶCo■pare*B
ranch on Condition、 Load、
5toreの4命令列において、第2のBC命令が分
岐成立となり、予測実行していたLoad、 5tor
e命令をキャンセルし、ターゲット命令Addを実行す
る例である0本例は命令1のメモリオペランド読み出し
が2サイクル遅れる場合を示す、C1にて命令1,2.
3の解読が完了し、C2にてDSL、2,3信号が′1
′となる。C3にてIRDYI、2,3信号が51′と
なる。この時全ての演算器が空いておりERDY信号が
11′であるとすると、命令セットアツプが行なわれ、
0BTI、2.3信号が11′となる。またこのC3か
ら05までの2サイクルの間、命令1のメモリオペラン
ドが到着していないことを示すADVWI信号が′1′
となる。これに応答してこの2サイクルの間、後続命令
に対する演算実行許可信号EXI、2,3及び演算実行
開始信号BOPI、2.3が抑止される。Figure 10B shows Co■ pare *B arranged on the main storage device.
Ranch on Condition, Load,
In the 4-instruction sequence of 5tor, the second BC instruction takes a branch, and the predicted execution of Load, 5tor
This is an example of canceling the e instruction and executing the target instruction Add. This example shows a case where the memory operand reading of instruction 1 is delayed by two cycles. Instructions 1, 2, .
The decoding of 3 is completed, and the DSL, 2 and 3 signals are '1' at C2.
'. At C3, the IRDYI, 2, and 3 signals become 51'. At this time, assuming that all arithmetic units are empty and the ERDY signal is 11', instruction set-up is performed,
0BTI, 2.3 signal becomes 11'. Also, during these two cycles from C3 to C05, the ADVWI signal indicating that the memory operand of instruction 1 has not arrived is '1'.
becomes. In response, during these two cycles, operation execution permission signals EXI, 2, 3 and operation execution start signals BOPI, 2.3 for subsequent instructions are suppressed.
C6にて命令1,2.3の演算実行が開始され、BC命
令はそのPステージ(C7)にて分岐成立信号TKN2
が′1′となる。これに応答してRES3信号がC7、
RES信号がC8にて′1′となり、これらにより順に
命令3のレジスタ書き込み指令RWC3及び命令4によ
り記憶装置1へのメモリ書き込み指令MWC1が抑止さ
れる。命令3の結果の書き込み指令抑止が可能であった
のは、その演算実行開始を命令1,2の演算実行開始を
待って行ない、しかも命令3の演算ステージサイクル数
が命令2より短くないため、命令3の書き込み指令発行
が命令2の分岐判定を行なうPステージより後になった
から可能であった。なおターゲット命令の解読はC8ス
テージから開始される。従来は令命3は必ずしも命令1
の演算実行保留条件により伴って演算実行を保留しない
ので命令2の分岐成立が検出された時点では一般的には
結果の書き込みはすでに終了してしまう、従って、予め
待避しておいたデータをレジスタに回復する必要があり
、またもし命令3が5tore命令であった場合はMシ
リーズアーキテクチャの仕様を守ることが困難である。Operational execution of instructions 1, 2, and 3 is started at C6, and the BC instruction receives branch completion signal TKN2 at its P stage (C7).
becomes '1'. In response, the RES3 signal changes to C7,
The RES signal becomes '1' at C8, and as a result, the register write command RWC3 of command 3 and the memory write command MWC1 to the storage device 1 by command 4 are suppressed in this order. It was possible to suppress the write command for the result of instruction 3 because the execution of the operation was waited for after the start of execution of instructions 1 and 2, and the number of operation stage cycles of instruction 3 was not shorter than that of instruction 2. This was possible because the write command for instruction 3 was issued after the P stage where the branch decision for instruction 2 was made. Note that decoding of the target instruction starts from the C8 stage. Previously, command 3 was not necessarily command 1.
Because the execution of the operation is not suspended due to the execution suspension condition of , generally the writing of the result has already been completed by the time the establishment of the branch of instruction 2 is detected. If instruction 3 is a 5tore instruction, it is difficult to comply with the specifications of the M series architecture.
命令4の記憶装置への書き込み指令が抑止可能であった
のは第10A図におけると同様の理由による。The reason why the instruction to write instruction 4 to the storage device can be suppressed is the same as that in FIG. 10A.
本発明によれば、プログラムから見て1つずつ命令が処
理されるアーキテクチャに基づくタイプの情報処理装置
において、並列実行方式により高速化を図る場合、割り
込みや分岐命令により予測失敗時の順序性保証が極めて
容易かつ高速となる。According to the present invention, in an information processing device based on an architecture in which instructions are processed one by one from the perspective of a program, when speeding up by a parallel execution method, ordering is guaranteed in the event of a prediction failure using an interrupt or a branch instruction. is extremely easy and fast.
仮に本方式を用いないと、レジ゛スタに結果を格納する
命令に関しては常に予め書き込み前のレジスタの内容を
待避しておき上記のケースにおいてレジスタの回復処理
を行なう必要があり、そのための制御回路が必要となり
、また処理時間も大きくなる。また主記憶に結果を書き
込む命令に関しては上記順序仕様を守ることが現状の技
術では不可能である。If this method were not used, it would be necessary to always save the contents of the register before writing for an instruction that stores the result in a register, and perform register recovery processing in the above case, and the control circuit for this would be required. This also increases the processing time. Furthermore, with the current technology, it is impossible to adhere to the above order specifications for instructions that write results into main memory.
第1図は本発明になる計算機の全体ブロック図、第2図
は第1図の命令制御ユニット(2)の詳細構成図、第3
A図は第1図の演算制御ユニット(7)の一部の詳細構
成図、第3B図は第1図の演算制御ユニット(7)の残
りの部分の詳細構成図、第4図は第1図の入力交換回路
(8)の一般的な構成図、第5図は第1図の出力交換回
路(9)の一般的な構成図、第6図は第2図のオペラン
ド待ち制御回路(210)の詳細構成図、第7A図から
第7D図はそれぞれ第2図の命令セットアツプ制御回路
(213)の異なる部分の詳細構成図、第8図は第2図
の命令キュー制御回路(212)の詳細構成図、第9図
は第1図の装置で用いる命令の形式例、第10A図及び
108図は簡単な命令列に於けるいろいろの信号のタイ
ムチャート、第11図は第1図の演算第 4 図
盈
第 5 図
咬倉=iへ1(\Lと
冨 7C図
スリ(−等杓
% 7F) 図
Zυ(一部今少FIG. 1 is an overall block diagram of the computer according to the present invention, FIG. 2 is a detailed configuration diagram of the instruction control unit (2) in FIG. 1, and FIG.
Figure A is a detailed configuration diagram of a part of the arithmetic and control unit (7) in Figure 1, Figure 3B is a detailed configuration diagram of the remaining part of the arithmetic and control unit (7) in Figure 1, and Figure 4 is a detailed configuration diagram of the remaining part of the arithmetic and control unit (7) in Figure 1. 5 is a general configuration diagram of the input exchange circuit (8) in FIG. 1, FIG. 5 is a general configuration diagram of the output exchange circuit (9) in FIG. ), FIGS. 7A to 7D are detailed configuration diagrams of different parts of the instruction set-up control circuit (213) in FIG. 2, and FIG. 8 is a detailed configuration diagram of the instruction queue control circuit (212) in FIG. 2. 9 is an example of the command format used in the device shown in FIG. 1, FIGS. 10A and 108 are time charts of various signals in a simple command sequence, and FIG. Calculation 4th figure 5th figure 5th figure
Claims (1)
するにあたり着目した場合、該先行命令による該後続命
令の取り消し処理開始時刻T_1と、該後続命令による
結果の書き込み処理開始時刻T_2との間に、T_1<
T_2なる条件が満たされることを判定する判定手段を
有し、上記条件を満たす場合、該後続命令の該所定の処
理を該先行命令の該所定の処理と同時もしくはそれ以前
に開始する手段を有し、上記条件を満たさない場合、該
後続命令の該所定の処理の開始を上記条件が満たされる
時刻以降に待ち合わせる開始時刻待ち合わせ手段を有す
る情報処理装置。 2、特許請求の範囲第1項において上記取り消し処理に
より、該先行命令の該所定の処理と同時もしくはそれ以
前に、該所定の処理を開始した該後続命令の結果の書き
込みを抑止し、該先行命令よりさらに先行する命令の結
果の書き込みは抑止しない、選択的な結果書き込みの抑
止手段を有する情報処理装置。 3、特許請求の範囲第1項において該後続命令の該所定
の処理を開始するにあたり、上記条件を満たさなかつた
場合は、全ての先行命令についての該所定の処理が終了
するまで、該後続命令の該所定の処理を待ち合わせる手
段を有する情報処理装置。 4、特許請求の範囲第1項において該所定の処理が特に
演算実行である情報処理装置。 5、特許請求の範囲第1項において該先行命令の該所定
の処理から該取り消し処理開始までの時間の上限値Δt
_1が命令の種類により定まり、該後続命令の該所定の
処理から該結果の書き込み開始までの時間の下限値Δt
_2が命令の種類により定まり、該先行命令の該所定の
処理の開始時刻をt_1、該後続命令の該所定の処理の
開始時刻ををt_2としたとき、上記開始時刻待ち合わ
せ手段としてt_2が、t_1+Δt_1<t_2+Δ
t_2を満たすことを判定する手段を含む情報処理装置
。 6、概念的に命令が1つずつ処理され結果が概念的に順
序的に記憶装置に書き込まれる情報処理装置において、
M個命令の解読およびオペランド読み出しを並列に行え
る命令制御手段と、複数の命令の演算を相互に並列に行
うことのできる、該Mより大きいか等しいN個の演算手
段と、該N個の演算手段のうち該命令制御手段にて解読
されたM個の命令が必要とするM個の演算手段が全て空
きか否かを検出する検出手段と、該検出手段の検出結果
が否である間は、該解読されたM個の命令の演算実行を
待ち合わせるための待ち合わせ手段を有することを特徴
とする情報処理装置。 7、プログラムとデータを格納する記憶手段と、複数の
命令を同時に実行するための複数の命令実行手段を持つ
情報処理装置に於いて、該命令実行手段群に同時にセッ
トアップする複数命令を、プログラムから見た概念的実
行順序の連続した複数命令に制限する第1の命令セット
アップ制限手段を有し、各命令に付随する該命令もしく
はその後続命令の実行を無効化する条件の検出ステージ
に関する第1の属性情報と、各命令に付随する該命令に
おける演算結果の書き込みステージに関する第2の属性
情報とを生成する手段を有し、上記第1及び第2の属性
情報から同時にセットアップする任意の2命令に着目し
た場合先行命令の上記無効化条件検出ステージが後続命
令の上記書き込みステージより遅れることがないような
命令グループのみをセットアップするように制限する第
2の命令セットアップ制限手段を有し、全ての演算器が
空くまで命令セットアップを待ち合わせる第3の命令セ
ットアップ制限手段を有し、上記第1、第2及び第3の
命令セットアップ制限手段による制限を全て満たすよう
に命令グループを上記命令実行手段群にセットアップす
る命令セットアップ手段を有し、同時にセットアップし
た命令の実行に当たつて何れかの命令で実行待ち合わせ
要因が発生したとき、書き込みを行なう可能性のある全
ての後続命令の実行を待ち合わせる手段を有し、同時に
セットアップした命令の何れかで該命令もしくはその後
続命令を無効化する要因を検出した場合該命令もしくは
その後続命令の実行及び結果の書き込みを抑止する手段
を有することを特徴とする情報処理装置。[Scope of Claims] 1. When focusing on starting each predetermined process in any two instructions, the start time T_1 of the cancellation process of the subsequent instruction by the preceding instruction and the start of the writing process of the result by the subsequent instruction. Between time T_2, T_1<
It has a determination means for determining whether a condition T_2 is satisfied, and has a means for starting the predetermined processing of the subsequent instruction at the same time as or before the predetermined processing of the preceding instruction when the above condition is satisfied. However, if the above-mentioned condition is not satisfied, the information processing device has a start time waiting means for waiting for the start of the predetermined processing of the subsequent instruction after the time when the above-mentioned condition is satisfied. 2. In claim 1, the cancellation process suppresses writing of the result of the subsequent instruction that started the predetermined process at the same time as or before the predetermined process of the preceding instruction, and An information processing device having selective result writing inhibiting means that does not inhibit writing of results of an instruction that precedes an instruction. 3. If the above conditions are not met when starting the predetermined processing of the subsequent instruction in claim 1, the subsequent instruction will not be executed until the predetermined processing of all preceding instructions is completed. An information processing device comprising means for waiting for said predetermined processing. 4. An information processing apparatus according to claim 1, wherein the predetermined process is particularly the execution of an arithmetic operation. 5. In claim 1, the upper limit value Δt of the time from the predetermined processing of the preceding instruction to the start of the cancellation processing
_1 is determined by the type of instruction, and is the lower limit value Δt of the time from the predetermined processing of the subsequent instruction to the start of writing of the result.
_2 is determined by the type of instruction, and when the start time of the predetermined process of the preceding instruction is t_1 and the start time of the predetermined process of the subsequent instruction is t_2, t_2 is t_1+Δt_1 as the start time waiting means. <t_2+Δ
An information processing device including means for determining whether t_2 is satisfied. 6. In an information processing device in which instructions are conceptually processed one by one and the results are conceptually written sequentially to a storage device,
an instruction control means capable of decoding M instructions and reading operands in parallel; N arithmetic means greater than or equal to M and capable of performing operations of a plurality of instructions in parallel; and the N arithmetic operations. Among the means, there is a detection means for detecting whether or not all the M calculation means required by the M instructions decoded by the instruction control means are free, and while the detection result of the detection means is negative, , an information processing device comprising waiting means for waiting for the execution of the arithmetic operations of the M decoded instructions. 7. In an information processing device having a storage means for storing programs and data, and a plurality of instruction execution means for simultaneously executing a plurality of instructions, multiple instructions to be set up simultaneously in the instruction execution means group are set up from the program. a first instruction setup restriction means for limiting the conceptual execution order to a plurality of consecutive instructions; It has means for generating attribute information and second attribute information related to the writing stage of the operation result in the instruction accompanying each instruction, and the means for generating the attribute information for any two instructions to be set up simultaneously from the first and second attribute information. In this case, a second instruction setup restriction means is provided for restricting the setting up of only instruction groups in which the invalidation condition detection stage of the preceding instruction does not lag behind the writing stage of the subsequent instruction, and all operations are and a third instruction setup limiting means for waiting for instruction setup until a space becomes available, and setting up an instruction group in the instruction execution means group so as to satisfy all the restrictions imposed by the first, second and third instruction setup limiting means. It has an instruction setup means to wait for the execution of all subsequent instructions that may write when an execution wait factor occurs in any instruction during the execution of the instructions set up at the same time. , an information processing device characterized by having means for inhibiting the execution of the instruction or its successor instructions and the writing of results when a factor that invalidates the instruction or its successor instructions is detected in any of the instructions set up at the same time. .
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 true JPH01194031A (en) | 1989-08-04 |
JP3161711B2 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) |
-
1988
- 1988-01-29 JP JP01706688A patent/JP3161711B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP3161711B2 (en) | 2001-04-25 |
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 | |
US3825902A (en) | Interlevel communication in multilevel priority interrupt system | |
US4016545A (en) | Plural memory controller apparatus | |
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 | |
EP0087978B1 (en) | Information processing unit | |
EP0021399B1 (en) | A method and a machine for multiple instruction execution | |
CA1242281A (en) | Vector processing | |
JPS5911943B2 (en) | Trap mechanism for data processing equipment | |
AU598969B2 (en) | Method and apparatus for executing instructions for a vector processing system | |
US3988719A (en) | Microprogrammed data processing systems | |
JPS61107434A (en) | Data processor | |
US3654621A (en) | Information processing system having means for dynamic memory address preparation | |
JPH09120359A (en) | Method and system for tracking of resource allocation at inside of processor | |
JPH0430053B2 (en) | ||
US4562538A (en) | Microprocessor having decision pointer to process restore position | |
JP3093673B2 (en) | Method and processor for allocating rename register | |
JP3207124B2 (en) | Method and apparatus for supporting speculative execution of a count / link register change instruction | |
EP0265108B1 (en) | Cache storage priority | |
US20020099922A1 (en) | Data processing apparatus including a plurality of pipeline processing mechanisms in which memory access instructions are carried out in a memory access pipeline | |
KR100431975B1 (en) | Multi-instruction dispatch system for pipelined microprocessors with no branch interruption | |
JPH06161779A (en) | Interruption control system for data processor | |
CA1304823C (en) | Apparatus and method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions | |
JPH01194031A (en) | Information processor | |
CA1302580C (en) | Apparatus and method for using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |