JPS61180370A - Data processor - Google Patents
Data processorInfo
- Publication number
- JPS61180370A JPS61180370A JP200686A JP200686A JPS61180370A JP S61180370 A JPS61180370 A JP S61180370A JP 200686 A JP200686 A JP 200686A JP 200686 A JP200686 A JP 200686A JP S61180370 A JPS61180370 A JP S61180370A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- vector
- line
- output
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明は、プログラム制御のデジタル計算機、特にベク
トル演算を高速で実行するのに好適なディジタル計算機
(以下これをベクトルプロセッサとよぶ)に関する。DETAILED DESCRIPTION OF THE INVENTION [Field of Application of the Invention] The present invention relates to a program-controlled digital computer, and particularly to a digital computer suitable for executing vector operations at high speed (hereinafter referred to as a vector processor).
科学技術計算に頻繁に現れる大形行列計算などの高速処
理用にベクトルプロセッサが考案されている。Vector processors have been devised for high-speed processing such as large matrix calculations that frequently appear in scientific and technical calculations.
特に、複数個のパイプライン演算器の高速性を有効に発
揮し、演算データの転送能力を向上させるため、ベクト
ル・レジスタとチェイニング機能を有するベクトルプロ
セッサが提案されている(米国特許4,128,880
号)。In particular, a vector processor with vector registers and a chaining function has been proposed in order to effectively exploit the high speed of multiple pipeline arithmetic units and improve the transfer ability of arithmetic data (US Pat. No. 4,128). ,880
issue).
A、従来の装置ではチェイニングについて次の問題点が
ある。このことをベクトル演算の簡単な例を挙げて説明
する。A. Conventional devices have the following problems with chaining. This will be explained using a simple example of vector calculation.
FORTRAN文
Do 10 I=1.L
10 Y(I)=A(T)+B(I)IC(I)この
処理を、ベクトル命令の形式に表現すると1 、 Ve
cl、、or Load V RO←A2 、
Vector Load V R14−B3
゜V ector L oad V R2←C
4、Vector Multiply V R3←
VRI*VR2
5、Vector Add V R4←VRO
+VR3
6、Vector S tore V R4−’
) YここでV Riはi番目のベクトルレジスタを表
わす。各ベクトル命令は、演算、データ転送を、エレメ
ントL個分、繰り返して実行する。FORTRAN statement Do 10 I=1. L 10 Y(I)=A(T)+B(I)IC(I) If this process is expressed in the form of a vector instruction, 1, Ve
cl,, or Load V RO←A2,
Vector Load V R14-B3
゜V ector L oad V R2←C
4.Vector Multiply V R3←
VRI*VR2 5, Vector Add V R4←VRO
+VR3 6, Vector Store VR4-'
) Y where V Ri represents the i-th vector register. Each vector instruction repeatedly executes calculations and data transfers for L elements.
上側では、最終結果を求める前の中間結果であるベクト
ルBとCの乗算結果をベクトルレジスタVR3へ一時的
に格納して、これとベクトルAとの加算結果Yのみを主
記憶にしている。一般的に、ベクトルレジスタを備える
ベクトルプロセッサでは、演算の中間結果のベクトルを
一時的にベクトルVRIへ格納し、最終結果ベクトルの
みを主記憶装置ヘスドアする。これにより、実質的に主
記憶装置との間のデータ転送回数が減少する。したがっ
てベクトルレジスタの書込み読出し動作を高速化すれば
、これに比べ主記憶装置のアクセス能力は比較的に低く
ても、演算に必要なデータ転送能力を十分確保すること
が可能である。On the upper side, the multiplication result of vectors B and C, which is an intermediate result before obtaining the final result, is temporarily stored in the vector register VR3, and only the addition result Y of this and vector A is stored in the main memory. Generally, in a vector processor equipped with a vector register, a vector of intermediate results of an operation is temporarily stored in a vector VRI, and only a final result vector is stored in the main memory. This substantially reduces the number of data transfers to and from the main memory. Therefore, by speeding up the write and read operations of the vector register, it is possible to ensure sufficient data transfer capacity necessary for calculations even though the access capacity of the main memory device is relatively low compared to this.
このように従来のベクトルプロセッサは、演算器を複数
個設け、それらを同時に実行させる方式を採用している
が、このとき、複数の命令の相互関係によってこれらの
演算器が空いているにもかかわらず利用されないことが
ある。従来のベクトルプロセッサでは、主記憶装置に格
納されている順に命令を読出し、実行の可否を判断し、
実行可能であれば実行に移る。演算器がすべて使用中。In this way, conventional vector processors employ a system in which multiple arithmetic units are installed and executed simultaneously, but at this time, due to the interrelationship of multiple instructions, even if these arithmetic units are vacant, It may not be used at all. Conventional vector processors read instructions in the order they are stored in main memory, determine whether they can be executed,
If it is executable, move on to execution. All computing units are in use.
あるいは、レジスタが使用中等の理由で実行不可能であ
れば、実行可能となるまで待つという制御方式をとるも
のが多い、この場合、実行不可能な命令の次の命令が実
行可能な命令であっても、無条件に命令の解読が待たさ
れてしまうために演算器が利用されないことになる。Alternatively, if a register cannot be executed because it is in use, etc., many control systems wait until it becomes executable. In this case, the next instruction after the unexecutable instruction is an executable instruction. However, the arithmetic unit is not used because the decoding of the instruction is made to wait unconditionally.
本発明の目的は解読済みの命令を複数個保持し。 An object of the present invention is to hold a plurality of decoded instructions.
演算器利用状況に応じ、論理的に矛盾することなく命令
の実行順序を入れかえることができ、それでもって演算
器やメモリ・リクエスタの有効利用をはかるデータ処理
装置を提供することにある。It is an object of the present invention to provide a data processing device that can change the execution order of instructions without logically contradicting itself according to the usage status of arithmetic units, thereby making effective use of arithmetic units and memory requesters.
このため1本発明では、解読した命令を複数保持する手
段と、該保持された命令の内、実行可能な命令を検出す
る手段と、この実行可能な命令の起動を指示する手段と
を設け、該検出手段は、命令が必要とするレジスタおよ
びリソースが利用可能であること、かつ、その命令より
先に解読された該命令保持手段内の他の命令との間でレ
ジスタコンフリクトがないという二つの条件を満す命令
を実行可能な命令として検出するように構成されていて
、該命令の起動を指示する手段は、該検出された実行可
能な命令に対して、その命令より先に解読された命令の
起動より前に起動可能に構成されている。 −
この結果、先に解読された命令の起動が不可能なときに
、後で解読された命令を先に起動することができ、演算
器やメモリ・リクエスタ等のリソースの有効利用を用い
ることができる。For this reason, one aspect of the present invention includes means for holding a plurality of decoded instructions, means for detecting an executable instruction among the held instructions, and means for instructing activation of the executable instruction, The detecting means performs two checks: that the registers and resources required by the instruction are available, and that there is no register conflict with other instructions in the instruction holding means that were decoded before the instruction. The means is configured to detect an instruction that satisfies the condition as an executable instruction, and the means for instructing activation of the instruction is configured to detect an instruction that is decoded before the detected executable instruction. It is configured to be able to be activated before the instruction is activated. − As a result, when it is impossible to start the instructions that were decoded first, the instructions that were decoded later can be started first, making effective use of resources such as arithmetic units and memory requesters. can.
以下、本発明を実施例を参照して詳細に説明する。 Hereinafter, the present invention will be explained in detail with reference to Examples.
■ 概略装置楕成
第1図において主記憶制御ユニットUlは命令読出しユ
ニットU2、メモリ・リクエスタU10゜Ullからの
メモリ要求(ベクトルデータの読出しまたは格納および
ベクトル命令の読出し)に応じて所定の動作を行なう。■ Schematic device structure In FIG. 1, the main memory control unit Ul performs predetermined operations in response to memory requests (reading or storing vector data and reading vector instructions) from the instruction reading unit U2 and the memory requester U10゜Ull. Let's do it.
命令読出しユニットU2は、主記憶制御ユニットUlに
対し、信号線Qlで命令読出し要求を、信号線Q2で命
令アドレスを送出する。主記憶制御ユニットU1はこれ
に応答して、この命令アドレスで指定される複数の命令
を読出し、読出した命令を信号線Q3にそれが有効であ
ることを示す信号を信号線Q4に乗せて返す。The instruction read unit U2 sends an instruction read request via a signal line Ql and an instruction address via a signal line Q2 to the main memory control unit Ul. In response to this, the main memory control unit U1 reads the plurality of instructions specified by this instruction address, and returns the read instructions to the signal line Q3 with a signal indicating that the instructions are valid placed on the signal line Q4. .
命令読出しユニットU2は、読出された命令を命令バッ
ファ(図示せず)に入れ、これらの命令を一つづつ命令
制御ユニットU3に送る。信号線116には命令が、信
号線a5には命令有効信号がのせられる。命令読出しユ
ニットU2は、命令制御ユニットU3から信号線Q7に
よって、命令送出の停止が要求されない限り、次々と命
令を読出しては、命令制御ユニットU3に送りこむ。The instruction reading unit U2 puts the read instructions into an instruction buffer (not shown) and sends these instructions one by one to the instruction control unit U3. A command is placed on the signal line 116, and a command valid signal is placed on the signal line a5. The instruction reading unit U2 reads out instructions one after another and sends them to the instruction control unit U3, unless a request to stop sending out the instructions is requested from the instruction control unit U3 via the signal line Q7.
命令制御ユニットU3は、命令を解読し、命令に応じて
、メモリ・リクエスタUIO,Ull、ベクトルレジス
タユニットU4、演算器U20゜Q21に起動信号他を
送出する。The instruction control unit U3 decodes the instruction and sends activation signals and the like to the memory requesters UIO and Ull, the vector register unit U4, and the arithmetic unit U20°Q21 according to the instruction.
■ 概略動作
(1) 命令実行起動
命令制御ユニットU3が命令実行を起動するときには、
信号線fill〜Q14に必要なデータをセットし、起
動信号を線Q10にセットし、メモリ・リクエスタUI
O,Ul 1とベクトルレジスタユニットU4、または
、演算器U20.U21とベクトルレジスタユニットU
4に起動をかける。■ Outline of operation (1) When the instruction execution start instruction control unit U3 starts instruction execution,
Set the necessary data on the signal line fill~Q14, set the activation signal on the line Q10, and then open the memory requester UI.
O, Ul 1 and vector register unit U4 or arithmetic unit U20. U21 and vector register unit U
Start on 4.
ここで、命令起動の条件は、必要なメモリ・リクエスタ
UIO又はUllまたは演算器U20又はQ21が現在
使用中でなく、かつベクトルレジスタユニットU4内に
あるベクトルレジスタVRの内、命令に必要なレジスタ
が使用できる状態にあるということである。Here, the conditions for starting the instruction are that the necessary memory requester UIO or Ull or the arithmetic unit U20 or Q21 is not currently in use, and that the registers necessary for the instruction among the vector registers VR in the vector register unit U4 are not currently in use. This means that it is in a usable condition.
ここで、あるベクトルレジスタが使用可能か否かは、後
述するようにそのベクトルレジスタが現在使用中か否か
とは異なる。使用中でなくても。Here, whether or not a certain vector register can be used differs from whether or not that vector register is currently in use, as will be described later. Even if it's not in use.
使用できないベクトルレジスタもあり、使用中にもかか
わらず使用可能なものもある。Some vector registers cannot be used, and others can be used even though they are in use.
起動条件が満たされていない命令は、起動待ち命令列に
登録し、その後、起動条件を満す命令が解読されたとき
、この解読された命令を先に起動する。Instructions for which activation conditions are not met are registered in a sequence of instructions waiting to be activated, and subsequently, when an instruction that satisfies the activation conditions is decoded, this decoded instruction is activated first.
信号線1211は、実行すべき命令の演算の種類、たと
えば、加算2乗算、ベクトル読出し、ベクトル書込み等
を指定する命令コードを送出する。A signal line 1211 sends out an instruction code that specifies the type of operation of the instruction to be executed, such as addition and squaring, vector read, vector write, and the like.
信号線Q12は、命令が使用するレジスタ番号を指定す
る。ここでは、各命令はレジスタを最大3つ指定可能と
する。本実施例では、ベクトルレジスタユニットU4に
8つのベクトルレジスタVRO〜VR7が設けられ、同
数のベクトルアドレスレジスタU5.ベクトルアドレス
増分レジスタU6がメモリ・リクエスタ0,1に接続さ
れている。これらのベクトルレジスタ、ベクトルアドレ
スレジスタ、ベクトルアドレス増分レジスタにはそれぞ
れ番号O〜7,8〜15.16〜23があらかじめ割り
あてられている。Signal line Q12 specifies the register number used by the instruction. Here, each instruction can specify up to three registers. In this embodiment, the vector register unit U4 is provided with eight vector registers VRO to VR7, and the same number of vector address registers U5. A vector address increment register U6 is connected to memory requesters 0,1. Numbers O~7, 8~15, and 16~23 are assigned in advance to these vector registers, vector address registers, and vector address increment registers, respectively.
信号線Q13は、起動するメモリ・リクエスタまたは演
算器の番号を指定する。ここでは信号線Q13は3本で
、1本はメモリ・リクエスタを指定、1本は演算器を指
定、もう1本は命令が使用するメモリ・リクエスタ又は
演算器のいずれかの番号を指定する。メモリ・リクエス
タ又は演算器の数はそれぞれ二つなので、これらの番号
を指定する線は一本でよい。Signal line Q13 specifies the number of the memory requester or arithmetic unit to be activated. Here, there are three signal lines Q13: one specifies the memory requester, one specifies the arithmetic unit, and the other specifies the number of either the memory requester or the arithmetic unit used by the instruction. Since the number of memory requesters or arithmetic units is two each, only one line is required to specify these numbers.
信号線Q14は処理すべきベクトル要素数を指定する。Signal line Q14 specifies the number of vector elements to be processed.
メモリ・リクエスタUIO,Ull、ベクトルレジスタ
ユニットU4.演算器U20.Q21は線Q10上の起
動信号に応答して次の動作を行う。Memory requestor UIO, Ull, vector register unit U4. Arithmetic unit U20. Q21 performs the following operations in response to the activation signal on line Q10.
(ii) 主記憶からのベクトルデータの読出しこの
ための命令の実行が線Ω11上の命令コードにより指定
されると、たとえばメモリ・リクエスタUIOは、信号
線Ω12で指定される第2゜第3のレジスタ番号に従っ
て、ベクトルアドレスレジスタU5およびベクトルアド
レス増分レジスタU6の各々一つを選択してベクトルア
ドレスおよびその増分を内部にセットする。メモリ・リ
クエスタUIOは読出しコマンドと、ベクトルアドレス
とアドレス有効信号とをそれぞれ信号線Q20、 Q2
1.Q23を介して主記憶制御ユニットUlに送る。主
記憶制御ユニットU1はこのベクトルアドレスで指定さ
れるベクトル要素データを主記憶(ここでは示されてい
ない)から読出して、そのデータFDと、データ有効信
号とをそれぞれ信号線(124,Q25を介してメモリ
・リクエスタUIOに戻す。メモリ・リクエスタUIO
は、このデータとデータ有効信号をそれぞれ信号線Q2
9.Q30にのせて、ベクトルレジスタユニットU4に
送出する。ベクトルレジスタユニットU4では、信号線
Q12により指定された第1のレジスタ番号のベクトル
レジスタに線Q29から入力されたベクトル要素データ
を格納する。メモリ・リクエスタUIOはセットしたベ
クトルアドレス増分値に基づきベクトルアドレスを更新
し、更新後のアドレスに基づき、次のベクトル要素デー
タを同様に読出す、この動作は信号線Q14で指定され
たベクトル要素数だけ繰返される。メモリ・リクエスタ
UIOは最終ベクトル要素アドレスを主記憶制御ユニッ
トU1に送出するときに。(ii) Reading vector data from main memory When the execution of an instruction for this purpose is specified by the instruction code on line Ω11, the memory requester UIO, for example, reads the second and third signals specified on signal line Ω12. According to the register number, one each of vector address register U5 and vector address increment register U6 is selected to set the vector address and its increment therein. The memory requester UIO sends read commands, vector addresses, and address valid signals to signal lines Q20 and Q2, respectively.
1. It is sent to the main memory control unit Ul via Q23. The main memory control unit U1 reads the vector element data specified by this vector address from the main memory (not shown here), and sends the data FD and a data valid signal via signal lines (124, Q25). and returns it to the memory requester UIO.Memory requester UIO
connects this data and data valid signal to signal line Q2, respectively.
9. Q30 and sends it to vector register unit U4. In the vector register unit U4, the vector element data input from the line Q29 is stored in the vector register having the first register number designated by the signal line Q12. The memory requester UIO updates the vector address based on the set vector address increment value, and similarly reads the next vector element data based on the updated address. This operation is performed based on the number of vector elements specified by the signal line Q14. is repeated. When memory requester UIO sends the final vector element address to main memory control unit U1.
線Ω32に最終ベクトルデータ信号を送出する。The final vector data signal is sent on line Ω32.
主記憶制御ユニットU1は最終ベクトル要素を出力する
ときに線433にこの信号を送出する。メモリ・リクエ
スタUIOは、最終のベクトル要素のデータ有効信号の
送出と同時に、信号線Q2Gに最終ベクトルデータ信号
をのせる。この信号は。Main memory control unit U1 sends this signal on line 433 when outputting the final vector element. The memory requester UIO places the final vector data signal on the signal line Q2G at the same time as sending out the data valid signal of the final vector element. This signal is.
命令制御ユニットU3に送られて、このメモリ・リクエ
スタUIOが空いたことを知らせるとともに、ベクトル
レジスタユニットU4にも送られ、ベクトルレジスタ書
込みの終了制御にも使用される。ベクトルレジスタの書
込み終了は、信号線Q15を経て、ベクトルレジスタユ
ニットU4から命令制御ユニットU3にも知られる。It is sent to the instruction control unit U3 to notify that this memory requester UIO is vacant, and is also sent to the vector register unit U4, where it is also used to control the end of vector register writing. The end of vector register writing is also known from vector register unit U4 to instruction control unit U3 via signal line Q15.
(iii) 主記憶へのベクトルデータの格納主記憶
へのベクトルデータの格納の命令が実行される場合も、
ベクトルアドレス、その増分は(ii)と同様にメモリ
・リクエスタUIOにセットされる。(iii) Storing vector data in main memory When an instruction to store vector data in main memory is executed,
The vector address and its increment are set in the memory requester UIO as in (ii).
格納の場合には、ベクトルレジスタユニットU4にて信
号線1212で指示される番号のベクトルレジスタから
次々とベクトルデータがよみ出され、信号線Q27に乗
せられるとともに、データ有効信号が線f128に乗せ
られて、たとえばメモリ・リクエスタUIOに送られる
。メモリ・リクエスタUIOはこれらにさらにベクトル
アドレスを付し、書込みコマンド、ベクトルアドレス、
ベクトル要素データ、データ有効信号をそれぞれ信号線
Q20. Q21.Q22,1123にのせて主記憶制
御ユニットU1に送る。送るべきベクトルデータ要素が
最終要素のときにはさらに、線Q32に最終ベクトルデ
ータ信号を送出する。主記憶制御ユニットU1はさらに
主記憶への格納を制御する。In the case of storage, vector data is read out one after another from the vector register of the number indicated by the signal line 1212 in the vector register unit U4, and is placed on the signal line Q27, and a data valid signal is placed on the line f128. and is sent to the memory requester UIO, for example. The memory requester UIO further attaches a vector address to these, and writes a write command, a vector address,
Vector element data and data valid signals are transmitted through signal lines Q20. Q21. Q22, 1123 and sends it to the main memory control unit U1. When the vector data element to be sent is the final element, a final vector data signal is further sent to line Q32. The main memory control unit U1 further controls storage in the main memory.
必要な数のベクトル要素の送出がベクトルレジスタユニ
ットU4から行なわれると、最終ベクトルデータ信号が
信号線Q31を経てメモリ・リクエスタUIOに送られ
、メモリ・リクエスタUIOは、 (ii)の場合と
同様、信号線Q26にそれをのせて、命令制御ユニット
U3に知らせる。When the required number of vector elements has been sent from the vector register unit U4, the final vector data signal is sent to the memory requester UIO via the signal line Q31, and the memory requester UIO performs the following as in case (ii). It is placed on the signal line Q26 and notified to the command control unit U3.
(iV) ベクトル演算
ベクトル演算命令実行のために演算器U20またはU2
1 (ここではU3Oとする)とベクトルレジスタユニ
ットU4に起動がかかったときには、これらは次のよう
に動作する。なお、ここでは各演算器は種々の命令が必
要とする複数種類の演算を実行可能とする。(iv) Vector operation Arithmetic unit U20 or U2 for executing vector operation instructions
When vector register unit U4 (here referred to as U3O) is activated, they operate as follows. Note that each arithmetic unit is capable of executing a plurality of types of operations required by various instructions.
ベクトルレジスタユニットU4は、信号線Q工2で指定
さ九る一般には二つのレジスタ番号のベクトルレジスタ
から最初の要素データを読出し、それぞれのデータを信
号線Q41.Q42にのせ、データ有効信号を信号線f
143にのせて、演算器U20に送る。演算器U20で
は2組のベクトル要素データを線1211上のOPコー
ドに従かい演算後、その結果と、データ有効信号をそれ
ぞれ信号線ρ45.ρ46に乗せて、ベクトルレジスタ
ユニットU4に送り返す、ベクトルレジスタ書込ッI−
04では、信号線Q12で指定される信号のベクトルレ
ジスタに結果を格納する。これらの処理が順次1次の要
素データについて行なわれる。The vector register unit U4 reads the first element data from the vector registers of generally two register numbers specified by the signal line Q2, and sends each data to the signal line Q41. Q42 and send the data valid signal to the signal line f.
143 and sent to the arithmetic unit U20. The arithmetic unit U20 calculates the two sets of vector element data according to the OP code on the line 1211, and then sends the results and the data valid signal to the signal line ρ45. The vector register write signal I- is sent back to the vector register unit U4 on ρ46.
At step 04, the result is stored in the vector register of the signal specified by the signal line Q12. These processes are sequentially performed on the primary element data.
最後のベクトル要素になると、最終ベクトルデータ信号
が、信号線1240を介してベクトルレジスタユニット
U4から演算器U20に送られ、演算器U20からの最
終結果に同期して、信号線Q44により、再びベクトル
レジスタユニットU4に戻されるやこの信号は、同時に
、命令制御ユニットU3にも知らされ、演算器の空きお
よびベクトルレジスタの空きを知らせる。When the last vector element is reached, the final vector data signal is sent from the vector register unit U4 to the arithmetic unit U20 via the signal line 1240, and in synchronization with the final result from the arithmetic unit U20, the vector data signal is sent again via the signal line Q44. Once returned to the register unit U4, this signal is also notified to the instruction control unit U3 at the same time, informing it of the vacancy of the arithmetic unit and the vacancy of the vector register.
以上において、ベクトル要素データの転送はマシンクロ
ックに応答してなされるが、ベクトルレジスタユニット
U4は、転送すべき一対のベクトル要素データが二つの
ベクトルレジスタにそろっていないとき、これがそろう
まで転送を禁止する。In the above, vector element data is transferred in response to the machine clock, but if a pair of vector element data to be transferred is not available in two vector registers, the vector register unit U4 prohibits transfer until the pair of vector element data is available. do.
したがって、ベクトル要素の読出しあるいは格納が間欠
的に行なわれる。Therefore, vector elements are read or stored intermittently.
なお、メモリ・リクエスタUl 1.演算11U21の
構成はそれぞれメモリ・リクエスタU10゜演算器U2
0と全く同一であり、第1図でプライム(“)の付けた
信号線はこれのないものに応答する。Note that the memory requester Ul1. The configuration of calculation unit 11U21 is memory requester U10° and calculation unit U2.
0, and the signal lines marked with a prime (") in FIG. 1 respond to those without it.
■ レジスタ
詳細な動作説明に先立ち、以下において必要なレジスタ
の形成を以下に述べる。第2図(a)は、命令がセット
される命令レジスタ(Iレジスタ)の構成を示す。ここ
で、OPフィールドは命令コードを、R1,R2,R3
フィールドはレジスタ番号を示す。勿論、命令自身この
図に示すフィールドを有する。R1−R3フィールドに
よって示されるレジスタはベクトルレジスタ、ベクトル
・アドレスレジスタ、ベクトルアドレス増分レジスタで
あり、いずれのレジスタが指定されるかは命令の種類に
より次のようになる。■Registers Before explaining the detailed operation, the formation of necessary registers will be described below. FIG. 2(a) shows the configuration of an instruction register (I register) in which instructions are set. Here, the OP field indicates the instruction code, R1, R2, R3
The field indicates the register number. Of course, the instruction itself has the fields shown in this figure. The registers indicated by the R1-R3 fields are a vector register, a vector address register, and a vector address increment register, and which register is designated depends on the type of instruction as follows.
(i) 演算器にて演算を行う命令(加算2乗算命令
等)
R1:演算結果ベクトルを格納すべきベクトルレジスタ
番号
R2:演算されるベクトルデータ(被加数、被乗数等)
が格納されているベクトルレジスタ番号
R3:演算すべきベクトルデータ(加数1乗数等)が格
納されているベクトルレジスタ番号
ここでは、R1,R2,R3フィールドではすべて異な
るベクトルレジスタを指定することとする。(i) Instructions to perform calculations in the arithmetic unit (addition 2 multiplication instructions, etc.) R1: Vector register number in which the calculation result vector is to be stored R2: Vector data to be calculated (addend, multiplicand, etc.)
Vector register number where R3 is stored: Vector register number where vector data to be calculated (addend 1 multiplier, etc.) is stored Here, the R1, R2, and R3 fields all specify different vector registers. .
なお、命令によっては、R3フィールドが使用されない
場合がある(転送命令等)。Note that the R3 field may not be used depending on the instruction (transfer instruction, etc.).
(ii) 主記憶からデータを読出す命令R1:デー
タを格納すべきベクトルレジスタ番号
R2:ベクトルアドレスレジスタ番号
R3:ベクトルアドレス増分レジスタ番号(iii)
主記憶にデータをストアする命令R1:データが格納
されているベクトルレジスタ番号
R2:ベクトルアドレスレジスタ番号
R3:ベクトルアドレス増分レジスタ番号第2図(b)
は演算器U20.U21.メモリ・リクエスタUIO,
Ull(以下、これらをまとめてリソースとよぶことか
ある)の制御にかがおるレジスタ、すなわち、デコード
リソースレジスタ (DSレジスタ)、キューリソース
レジスタ(QSレジスタ)、実行可能リソースレジスタ
(ESレジスタ)、レジスタユニットリソースレジスタ
(RSレジスタ)の形式を示す、ここで、S、A、Nフ
ィールドはそれぞれメモリ・リクエスタの使用、演算器
の使用、メモリ・リクエスタまたは演算器の番号をそれ
ぞれ指定する。なお、DSレジスタ、QSレジスタには
Nフィールドはない。(ii) Instruction to read data from main memory R1: Vector register number to store data R2: Vector address register number R3: Vector address increment register number (iii)
Instruction to store data in main memory R1: Vector register number in which data is stored R2: Vector address register number R3: Vector address increment register number Figure 2 (b)
is the computing unit U20. U21. memory requester UIO,
Registers that control Ull (hereinafter sometimes referred to collectively as resources), namely, decode resource register (DS register), queue resource register (QS register), executable resource register (ES register), This shows the format of a register unit resource register (RS register), where the S, A, and N fields specify the use of a memory requester, the use of an arithmetic unit, and the number of the memory requester or arithmetic unit, respectively. Note that the DS register and QS register do not have an N field.
第2図(e)はベクトルレジスタの制御にかかわるレジ
スタ、すなわち、デコードレジスタレジスタ(DGレジ
スタ)キューレジスタレジスタ(QSレジスタ)〜メモ
リリクエスタレジスタレジスタ(MGレジスタ)、レジ
スタユニットレジスタレジスタ(RGレジスタ)の形式
を示す、ここでVi (i=1〜3)フィー/L/ド
はWi、GNiフィールドに有効データがあるかどうか
を指定するフィールド、W i lよ、次のGNiのフ
ィールドで指定されたベクトルレジスタが書込みに使用
されるか、読出しに使用されるかを指定するフィールド
で書込み、読出しのときにそれぞれ′l″又は#103
1となり、GNiフィールドには命令のRiミツイール
ドのものがセットされる。なお。Figure 2(e) shows the registers involved in vector register control, namely the decode register register (DG register), queue register register (QS register), memory requester register register (MG register), and register unit register register (RG register). Indicates the format, where Vi (i = 1 to 3) field is Wi, a field that specifies whether there is valid data in the GNi field, W i l, the field specified in the next GNi field. A field that specifies whether the vector register is used for writing or reading; 'l' or #103 for writing and reading, respectively.
1, and the Ri Mitsuield of the instruction is set in the GNi field. In addition.
MGレジスタはGN2.GN3フィールドのみを持つ。The MG register is GN2. It has only GN3 field.
第2図(d)はリソースの状態を制御するリソース状態
語レジスタ(R5SWレジスタ)の形式を示す。ここで
、SO,SLフィールドはそれぞれメモリ・リクエスタ
UIO,Ul 1が使用中かどうかを示し、AO,At
フィールドはそれぞれ演算器U20.U21が使用中か
どうかを示す(使用中のときl″とする)。FIG. 2(d) shows the format of the resource status word register (R5SW register) that controls the status of resources. Here, the SO, SL fields indicate whether the memory requester UIO, Ul 1 is in use, and the AO, At
The fields are each operated by arithmetic unit U20. Indicates whether U21 is in use (when in use, it is set as l'').
第2図(a)はベクトルレジスタの状態を制御するレジ
スタ状態語レジスタ(RGSWレジスタ)の形式を示す
、ここでWO〜W7フイールドはそれぞれベクトルレジ
スタVRO〜VR7が書込みのために使用中かどうかを
示し、RO〜R7フイールドはそれぞれベクトルレジス
タVRO〜VR7が読出しのために使用中かどうかを示
す(使用中のとき” 1 ”とする)。Figure 2(a) shows the format of the register status word register (RGSW register) that controls the state of vector registers, where fields WO to W7 indicate whether vector registers VRO to VR7 are in use for writing, respectively. The RO-R7 fields each indicate whether the vector registers VRO-VR7 are in use for reading (when in use, they are set to "1").
■ 命令制御ユニットの詳細 以下に、第1図に述べた各ユニットの詳細を説明する。■Details of command control unit The details of each unit shown in FIG. 1 will be explained below.
なお、主記憶制御ユニット(第1図のUl)、命令読出
しユニット(第1図のU2)は、二つのメモリ・リクエ
スタUIO,Ullからのアクセス要求に応答し、かつ
、これらのりクエスタから同時にアクセス要求がなされ
たときには。Note that the main memory control unit (Ul in FIG. 1) and the instruction reading unit (U2 in FIG. 1) respond to access requests from two memory requesters UIO and Ull, and simultaneously handle access from these requesters. when a request is made.
その一方を優先して主記憶をアクセスするものであり、
従来、実現されているものと同等なので、ここでは説明
しない。また、フリップフロップ、レジスタへのタイミ
ング入力は省略する。制御信号の入っていない、フリッ
プフロップ、レジスタは常にあらかじめ定められたタイ
ミングによって入力がセットされるとする。It gives priority to one of them and accesses the main memory,
Since this is the same as what has been achieved in the past, it will not be explained here. Furthermore, timing inputs to flip-flops and registers are omitted. It is assumed that inputs of flip-flops and registers that do not receive control signals are always set at predetermined timings.
第3図を参照するに、命令読出しユニットU2にて読出
されたベクトル命令と、その命令に対する有効信号がそ
れぞれ線n6.Q5を介して送られて来、命令レジスタ
(■レジスタ)r301に命令がセットされ、命令有効
信号がフリップフロップf30+にセットされる。命令
有効信号はレジスタIR,r301へのセラ1〜信号と
しても使用される。命令制御ユニットU3が線Q7にて
、命令送出停止要求を送出しない限り、命令読出しユニ
ットU2から次々と命令が送られてくる。この間隔は、
■レジスタr301の命令が、デコード命令レジスタ
(DIレジスタ)r302に移されるとすぐ、次の命令
が入力されるように制御される。■レジスタ指定例外に
セットされた命令は。Referring to FIG. 3, the vector command read by the command reading unit U2 and the valid signal corresponding to the command are shown on lines n6. The instruction is sent through Q5, the instruction is set in the instruction register (register 2) r301, and the instruction valid signal is set in the flip-flop f30+. The instruction valid signal is also used as a signal to the register IR, r301. Unless the instruction control unit U3 sends a request to stop sending instructions on the line Q7, instructions will be sent one after another from the instruction reading unit U2. This interval is
■The instruction in register r301 is the decode instruction register.
(DI register) As soon as it is moved to r302, the next instruction is controlled to be input. ■Instructions set to register specification exceptions.
4つのルートに分けて転送される。DIレジスタr30
2にはOPフィールドが転送される。このときフリップ
フロップf301の出力が、DIレジスタr302のセ
ットを制御するとともに、フリップフロップf302へ
もアンドゲートg307を経て転送される。ここでアン
ドゲートg307には、フリップフロップf301の出
力のほかに指定例外検出回路b316の出力が入力され
ており、この回路b316はエレジスタ「301にセッ
トされているベクトル命令のR1〜R3フィールドをチ
ェックし、レジスタ指定例外がない場合にのみ、゛ビ′
を出力する。この結果フリップフロップf302に命令
有効信号がセットされる。レジスタIR,r3Ql内の
命令はまた。デコーダb301へ送られ、その○Pフィ
ールドにより、使用するリソースが判別されて、その結
果がデコードリソースレジスタ(DSレジスタ)r30
3にセラ1−される。DSレジスタ「303は第2図(
b)に示すごと<S、Aフィールドを有す。但しNフィ
ールドはない、デコーダb301はこの○Pフィールド
がメモリ・リクエスタUIO又はUllを使用するもの
のときは、Sフィールドに1を入力し、又この命令が演
算滞U20又はU21を使用するもののときはAフィー
ルドに1を入力する。DSレジスタr303のこれらの
データのセントにも、アンドゲートg307の出力が使
用される。■レジスタr301の命令はさらにデコーダ
b303へも送られ、そのOPコード、R1,R2,R
3フィールドの内容がデコードされて、その結果がデコ
ードレジスタレジスタ(DGレジスタ)r305にセッ
トされる。DGレジスタr305は第2図(c)に示す
ようにIレジスタ指定例外にセットされている命令が使
用するベクトルレジスタの番号を示すフィールドGN
i (i = 1〜3)、そのレジスタの用途が読出
し用か、書込み用かを示すフィールドWi(i=1〜3
)およびこれらのフィールドが有効か否かを示すフィー
ルドVi(i=1〜3)を有し、デコーダb303はI
レジスタ「301の命令を解読してこれらのフィールド
の情報を出力する。すなわち、命令のOPコードにより
、命令のR1−R3のフィールドがレジスタ指定として
有効か否かがあらかじめ定められているので、デコーダ
b303はOPコードによりViを定める。また、有効
と判定されたレジスタフィールドRiが書込み用か否か
もOPコードによりあらかじめ定められているので、デ
コーダb303はOPコードをみて、ピットWiを定め
ることができる。デコーダb303はフィールドR4の
内容をGNtNフィールド力する。こうして、DSしジ
スタr303への入力が定まる。DGレジスタr305
へのセント制御にも、アントゲ−1〜g307の出力が
使用される。It will be transferred via four routes. DI register r30
2, the OP field is transferred. At this time, the output of the flip-flop f301 controls the setting of the DI register r302, and is also transferred to the flip-flop f302 via the AND gate g307. Here, the output of the specified exception detection circuit b316 is input to the AND gate g307 in addition to the output of the flip-flop f301, and this circuit b316 checks the R1 to R3 fields of the vector instruction set in the E register "301". and only if there are no register specification exceptions
Output. As a result, an instruction valid signal is set in the flip-flop f302. The instructions in registers IR, r3Ql are also. It is sent to the decoder b301, the resource to be used is determined by the ○P field, and the result is sent to the decode resource register (DS register) r30.
Sera 1- is done in 3. DS register "303 is shown in Figure 2 (
As shown in b), it has <S, A fields. However, there is no N field, and the decoder b301 inputs 1 to the S field when this ○P field uses memory requester UIO or Ull, and when this instruction uses operation block U20 or U21. Enter 1 in the A field. The output of AND gate g307 is also used to input these data in DS register r303. ■The instruction in register r301 is further sent to decoder b303, and its OP code, R1, R2, R
The contents of the 3 fields are decoded and the result is set in the decode register (DG register) r305. As shown in FIG. 2(c), the DG register r305 contains a field GN indicating the number of the vector register used by the instruction set to I register specification exception.
i (i = 1 to 3), a field Wi (i = 1 to 3) indicating whether the register is used for reading or writing.
) and a field Vi (i=1 to 3) indicating whether these fields are valid or not, and the decoder b303 has I
It decodes the instruction in register 301 and outputs the information in these fields.In other words, it is predetermined by the OP code of the instruction whether or not fields R1-R3 of the instruction are valid as register specifications, so the decoder b303 determines Vi based on the OP code.Also, whether or not the register field Ri determined to be valid is for writing is also determined in advance by the OP code, so the decoder b303 can determine the pit Wi by looking at the OP code. .The decoder b303 inputs the contents of the field R4 to the GNtN field.In this way, the input to the DS register r303 is determined.DG register r305
The outputs of the anime games 1 to g307 are also used to control the cents.
以上の説明から明らかなとおり、DSレジスタr303
とDGレジスタr305にセットされたデコード結果は
DIレジスタr302にセットされた命令コードととも
に同一の命令に対するものであり、以下では、これらの
レジスタにセットされたデータの各々を命令と呼びある
いはこれらをまとめてDIレジスタr302内の命令と
呼ぶことがある。DIレジスタr302;DSレジスタ
r303;DGレジスタr305に命令がセソ1〜され
ると、次はリソースの起動の可否がチェックされる。As is clear from the above explanation, DS register r303
The decoding results set in the DG register r305 and the instruction code set in the DI register r302 are for the same instruction, and hereinafter, each piece of data set in these registers will be referred to as an instruction, or they will be collectively referred to as an instruction. This is sometimes referred to as the instruction in the DI register r302. When an instruction is set to DI register r302; DS register r303; and DG register r305, it is next checked whether or not the resource can be activated.
命令キューレジスタ(Qlレジスタ)q301は、実行
待ちの命令のoPコードをDIレジスタ「302から受
けとりス1へアするための三つのレジスタQTRO−Q
IR2からなる。同様にキューリソースレジスタ(QS
レジスタ)q302はこれら三つのレジスタQIRO〜
2内のOPコードに対するリソース使用要求をDSレジ
スタr303から受けとり、ストアする三つのレジスタ
QSRO〜2からなり、キューレジスタレジスタ(QG
レジスタ)q303は、レジスタQIRO〜2内のOP
コードに対するベクトルレジスタ使用要求をDGレジス
タR,r305から受けとり、ストアする三つのレジス
タQGRO〜3からなる。The instruction queue register (Ql register) q301 is composed of three registers QTRO-Q for receiving the OP code of the instruction waiting for execution from the DI register 302 and transferring it to the register 1.
Consists of IR2. Similarly, the queue resource register (QS
register) q302 is these three registers QIRO~
The queue register register (QG
register) q303 is the OP in register QIRO~2
It consists of three registers QGRO to 3 that receive and store vector register use requests for codes from DG registers R and r305.
結局、レジスタq301−q302により三つの実行待
ちの命令がストアされることになる。以下では簡単化の
ためにこれらの三つのキューレジスタをまとめて命令キ
ューレジスタあるいは命令キューレジスタq301と呼
ぶことがある。In the end, three instructions waiting to be executed are stored in registers q301-q302. Hereinafter, for the sake of simplicity, these three queue registers may be collectively referred to as an instruction queue register or instruction queue register q301.
DIレジスタr302に上述のごとく、新たにセットさ
れた命令に対するリソースの起動可否はこれらの命令キ
ューレジスタ内にすでに命令がストアされているか否か
等に依存して異なる基準にて判断される。As mentioned above, whether a resource can be activated for a newly set instruction in the DI register r302 is determined based on different criteria depending on whether or not an instruction is already stored in these instruction queue registers.
すなわち、次の場合がある。That is, there are the following cases.
(a) 命令キューレジスタに命令が入っていない場
合。(a) When there are no instructions in the instruction queue register.
(a−1)DIレジスタr302内の命令に対してすぐ
に起動がかけられる場合。(a-1) A case where the instruction in the DI register r302 is activated immediately.
(a−2)DIレジスタr302内の命令に対してすぐ
に起動がかけられず、命令キューレジスタに命令を入れ
なければならない場合。(a-2) A case where the instruction in the DI register r302 cannot be activated immediately and the instruction must be placed in the instruction queue register.
(b) 命令キューレジスタに命令が入っている場合
。(b) When the instruction queue register contains an instruction.
(b−1)命令キューレジスタ内の命令を起動する場合
。(b-1) When starting an instruction in the instruction queue register.
(b−2)命令キューレジスタに命令があるにもかかわ
らず、DIレジスタr302にある命令を起動する場合
。(b-2) A case where the instruction in the DI register r302 is activated even though there is an instruction in the instruction queue register.
各々の場合の装置動作を以下に述べる。The device operation in each case will be described below.
(a−1)命令キューレジスタq301中に命令がなく
DIレジスタr302内の命令を起動する場合。(a-1) When there is no instruction in the instruction queue register q301 and the instruction in the DI register r302 is activated.
これは、DIレジスタr302内の命令が必要トするリ
ソース(演算器またはメモリ・リクエスタ)およびベク
トルレジスタがともに使用可能であるときに生じる。This occurs when the resource (operator or memory requester) and vector register required by the instruction in DI register r302 are both available.
本実施例では各リソースは、ある時期には一つの命令に
よってものみ使用可能に構成さ九でおり、したがって、
リソースが使用可能か否かはリソースが使用中でないか
あるいは使用中かによりきまる。In this embodiment, each resource is configured to be usable by only one instruction at a certain time, and therefore,
Whether a resource is available or not depends on whether the resource is not in use or in use.
リソースの空きの状況の判断は1次のように行なう。概
略的には、DSレジスタr303にて指定される要求リ
ソースと、R8SWレジスタr304にて管理している
リソースの状態をリソース使用チェック回路b305が
チェックし、要求リソースが空いているかどうかを線Q
310に。The resource availability status is determined as follows. Roughly speaking, a resource usage check circuit b305 checks the status of the requested resource specified by the DS register r303 and the resource managed by the R8SW register r304, and checks whether the requested resource is available via the line Q.
At 310.
空いているリソース番号をQ309に出力する。The vacant resource number is output to Q309.
詳細を第5図を参照して説明する。Details will be explained with reference to FIG.
DSレジスタr303中のSフィールドr3031の出
力は、アンドゲートg320.g321に入力され、こ
れらのアンドゲートg320、g321にはそれぞれ、
さらにR55Wレジスタ「304中のSOフィールドr
3041゜Slフィールドr3042の出力がそれぞれ
反転ゲートg335.g336を介して入力されている
。したがって、アンドゲートg 3201g321の出
力はそれぞれメモリ・リクエスタ0と1の使用が要求さ
れ、かつメモリ・リクエスタ0と1がそれぞれ空きのと
きに′1″となる。アンドゲートg320.g321の
出力はオアゲートg328に入力される。したがって、
オアゲー1−g332の出力は、使用要求されたメモリ
・リクエスタO又はIのが空いているとき′″1″′と
なる。The output of S field r3031 in DS register r303 is connected to AND gate g320. g321, and these AND gates g320 and g321 each have
Furthermore, the SO field r in R55W register “304”
3041°Sl field r3042 outputs are respectively inverted gates g335. It is input via g336. Therefore, the output of AND gate g3201g321 becomes '1'' when memory requesters 0 and 1 are requested to be used, and memory requesters 0 and 1 are free, respectively. g328. Therefore,
The output of the or game 1-g 332 becomes ``1'' when the requested memory requester O or I is free.
また、アンドゲートg320.g321の出力はエンコ
ーダb320にも入力され、使用可能なメモリ・リクエ
スタ番号が出力される。つまり、アントゲートg320
の出力が″ビ′のときにはアンドゲートg321の出力
によらず、エンコーダb320の出力は”0” (メ
モリ・リクエスタ0の空きを示す)、アンドゲートg3
20の出力が”o”、アントゲ−h g 321の出力
が″ビ′のときにはエンコーダb320の出力は”1”
(メモリ・リクエスタ1の空きを示す)になる(本実施
例では、メモリ・リクエスタは2つしがないので、エン
コーダの出力線は1本である)。アンドゲートg320
.g32+の出力がともにOのときにはエンコーダb3
21の出力はいずれの値でもよい。同様に、演算器の空
きの状態についてもDSレジスタr303のAフィール
ドr3032の出力と、R35Wレジスタr304のA
O,AIフィールドr3043.r3044の出力とか
ら反転ゲートg337.g338.アンドゲートg32
2.g323、オアゲートg329、エンコーダb32
1によってチェックされ、命令で演算器の使用要求がな
され、使用要求が出された演算器0又はlがおいていれ
ば、オアゲー+−g329の出力が″ビ′に演算器番号
がエンコーダb321から出力される。オアゲートg3
28゜g329の出力は、オアゲートg332に入力さ
れ、この出力線Q310は要求されたリソースが空いて
いることを指示する。一方、エンコータb320、b3
21の出力はセレクタ5310にていずれかが選択され
て線Q、3093にのせられ、オアゲートg32g、g
329の出力線Q3091、Q3092とあわせて線Q
30つとして出力される。ここでは、オアゲートg32
9の出力によりセレクタ5310を制御することにより
、演算器の使用要求がなされ、かつこれが空きのときに
は、演算器番号がそれ以外のときにはメモリ・リクエス
タ番号が選択されるとした。なお、線Q309の内容は
セレクタ5302で選択され、線Q320に出力される
。線320はメモリ・リクエスタの空きを示す信号線3
201、演算器の空きを示す信号線3202.メモリ・
リクエスタ又は演算器の番号を示す信号LA3203か
らなり。Also, and gate g320. The output of g321 is also input to encoder b320, and an available memory requester number is output. In other words, antgate g320
When the output of the encoder b320 is "B", regardless of the output of the AND gate g321, the output of the encoder b320 is "0" (indicating that memory requester 0 is empty), and the AND gate g3
When the output of the encoder b320 is “o” and the output of the anime game h g 321 is “bi”, the output of the encoder b320 is “1”.
(indicating the availability of memory requester 1) (in this embodiment, there are no more than two memory requesters, so the encoder has one output line). and gate g320
.. When both outputs of g32+ are O, encoder b3
The output of 21 may have any value. Similarly, regarding the empty state of the arithmetic unit, the output of the A field r3032 of the DS register r303 and the A field of the R35W register r304 are
O, AI field r3043. From the output of r3044 to the inverting gate g337. g338. and gate g32
2. g323, or gate g329, encoder b32
1, the instruction requests the use of an arithmetic unit, and if the requested arithmetic unit 0 or l is present, the output of the ORG+-g329 is "BI" and the arithmetic unit number is sent from the encoder b321. Output.OR gate g3
The output of 28°g329 is input to OR gate g332, whose output line Q310 indicates that the requested resource is free. On the other hand, encoders b320, b3
21 is selected by the selector 5310 and placed on the line Q, 3093, and the OR gates g32g, g
Line Q along with output lines Q3091 and Q3092 of 329
Output as 30 pieces. Here, orgate g32
By controlling the selector 5310 with the output of 9, when a request for use of the arithmetic unit is made and the arithmetic unit is vacant, the memory requester number is selected when the arithmetic unit number is other than that. Note that the contents of line Q309 are selected by selector 5302 and output to line Q320. Line 320 is signal line 3 indicating the availability of memory requester.
201, a signal line 3202 indicating the availability of arithmetic units; memory·
Consists of signal LA3203 indicating the number of the requester or arithmetic unit.
それぞれに線Q3091〜+113093の信号がセレ
クタ5302により選択的に出力される。セレクタ53
02は線Q309とQ311を入力線Q321が# O
+lかrr 1 rrかに応じて選択するもので、今の
場合は後述するように入力線Q321はパ0″′である
。こうして線Q320に要求リソースの内、空いている
リソース番号が出力される。Selector 5302 selectively outputs signals on lines Q3091 to +113093, respectively. selector 53
02 connects lines Q309 and Q311 to input line Q321 #O
+l or rr 1 rr, and in this case, as described later, the input line Q321 is PA0'''.In this way, the vacant resource number among the requested resources is output to the line Q320. Ru.
線Q320は、デコーダb302にも入力され、R55
WレジスタY304の各ビットのセットに使用される。Line Q320 is also input to decoder b302 and R55
It is used to set each bit of W register Y304.
ここで、デコーダb302は、メモリ・リクエスタ番号
のデコーダb3022と、演算器番号のデコーダb30
21とから成り、それぞれ、デコード有効端子Eを有し
ていて、Eが11111のときのみデコード入力信号を
デコードする。デコーダb3021のデコード有効端子
Eには線Q320のうち、演算器の空きを示す線a32
02がデコードされる入力信号端子には番号を示す線Q
3203が接続されている。同様に、デコーダb302
2のデコード有効端子Eには、線Q320のうち、メモ
リ・リクエスタの空きを示す線123201が、デコー
ドされる信号としては、番号を示す線123203が接
続されている。Here, the decoder b302 includes a memory requester number decoder b3022 and an arithmetic unit number decoder b30.
21, each having a decode enable terminal E, and decodes the decode input signal only when E is 11111. The decoding valid terminal E of the decoder b3021 is connected to the line a32 of the line Q320, which indicates the vacant space of the arithmetic unit.
The input signal terminal where 02 is decoded has a line Q indicating the number.
3203 is connected. Similarly, decoder b302
Of the lines Q320, a line 123201 indicating an empty memory requester is connected to the decode valid terminal E of No. 2, and a line 123203 indicating a number is connected as a signal to be decoded.
デコーダb3021.b3022の出力は対応したR5
5Wレジスタr304を構成する4つのフィールドr3
041−r3044 (これらはいずれもフリップフ
ロップからなる)のセット端子Sに接続され、線Q32
01. Q3203から入力される空きのリソース番号
に対応した。SO,Sl、AO,AIの各フィールドの
いずれかがセットされる。こうして1回路b305によ
りリソース使用チェックがなされるとともに、チェック
結果に応じて、R35Wレジスタr304が更新される
。Decoder b3021. The output of b3022 is the corresponding R5
Four fields r3 forming the 5W register r304
041-r3044 (all of which consist of flip-flops) is connected to the set terminal S of the line Q32.
01. Corresponds to the empty resource number input from Q3203. One of the SO, Sl, AO, and AI fields is set. In this way, resource use is checked by the single circuit b305, and the R35W register r304 is updated according to the check result.
次に、第3図に戻ってDIレジスタr302中にある命
令が使用するベクトルレジスタ使用に関するチェックに
ついて述べる。第1のチェックは、DCレジスタr30
5中に示される使用要求ベクトルレジスタ番号、使用形
態(読出し/書込み)と、RGSWレジスタr306中
にあるベクトルレジスタ使用状況により、レジスタ使用
チェック回路b307がDIレジスタr302内の命令
が要;拉するベクトルレジスタが現在使用可能か否かを
チェックすることである。今の場合、命令キューレジス
タq301内に命令がないと仮定している。しかし一般
的には命令キューレジスタ9301にリソース空き待ち
の命令が蓄えられており、DIレジスタr302中にあ
る命令を命令キューレジスタ9301にすでに貯えられ
た命令を追越して実行したとき5ベク1−ルレジスタ使
用順序りの矛盾がないかをレジスタ競合チェック回路b
309〜b311にてチェックする必要がある。Next, returning to FIG. 3, a check regarding the use of vector registers used by instructions in the DI register r302 will be described. The first check is DC register r30
Based on the usage request vector register number and usage type (read/write) shown in 5, and the vector register usage status in the RGSW register r306, the register usage check circuit b307 determines whether the instruction in the DI register r302 is required; The purpose is to check whether a register is currently available. In this case, it is assumed that there is no instruction in the instruction queue register q301. However, in general, instructions waiting for resource availability are stored in the instruction queue register 9301, and when the instruction in the DI register r302 is executed by overtaking the instruction already stored in the instruction queue register 9301, the 5-vector register 9301 is stored. Register conflict check circuit b to check if there is any conflict in the order of use
It is necessary to check in 309-b311.
これが第2のチェックである。なお、本実施例ではこの
第1.第2のチェックはベクトルレジスタのみについて
行ない、ベクトルアドレスレジスタU5、ベクトルアド
レス増分レジスタU6については行なわない。本実施例
では、簡単化のために、これらのレジスタの内容の変更
はなく、二つのメモリ・リクエスタが同時にこれらのレ
ジスタを読出せるように構成されている(詳細後述)。This is the second check. Note that in this embodiment, this first. The second check is performed only on the vector register, not on the vector address register U5 or the vector address increment register U6. In this embodiment, for simplicity, the contents of these registers are not changed, and the configuration is such that two memory requesters can read these registers simultaneously (details will be described later).
このため、これらのレジスタ使用の可否についてチェッ
クする必要がない。Therefore, there is no need to check whether these registers can be used.
第6a図は、レジスタ使用チェック回路b307の詳細
をDGレジスタr305とRS SWレジスタr306
を含めて表わしたものである。Figure 6a shows the details of the register usage check circuit b307 between the DG register r305 and the RS SW register r306.
It is expressed including.
DGレジスタr305中のR1フィールド r3051
と、RGSWレジスタr306の出力に基づき、第ルジ
スタ使用チェック回路b3071は第6図(b)に示す
場合のみレジスタ使用可と判断する。すなわち、レジス
タの使用要求がベクトルレジスタに対する書込みのとき
(V!=W+=、l GNI<8)には1番号GNI
のベクトルレジスタが未使用のとき(W i =Ri
=0.1=GN1)、使用要求がベクトルレジスタの読
出しのとき(Vl=1.W1=0.GNI<8)には、
その番号GNIのベクトルレジスタが未使用または書込
み中のとき(Ri=0,1=GNI)にのみ使用可と判
断し、アンドゲートg343に′″1″を出力する。v
iビットが′0′″のときには、ベクトルレジスタが使
用可とし、この場合にもアンドゲートg343にrr
1 rrを出力する。同様に、DCレジスタr305の
R2フィールドr3052.R3フィールドr3053
についてもそれぞれ第2.第3使用チェック回路b30
72、b3073にて全く同様の基準でチェックされ、
アンドゲートg343に結果が入力される。こうして、
R1,R2,R3フィールドが指定するベクトルレジス
タがいずれも使用可のときに、!f1313にベクトル
レジスタ使用可を示す信号” 1″′が出力される。R1 field r3051 in DG register r305
Based on the output of the RGSW register r306, the RGSW register use check circuit b3071 determines that the register can be used only in the case shown in FIG. 6(b). In other words, when the register use request is a write to a vector register (V!=W+=, l GNI<8), the number GNI
When the vector register of is unused (W i = Ri
=0.1=GN1), and when the use request is to read the vector register (Vl=1.W1=0.GNI<8),
It is determined that the vector register with the number GNI is usable only when it is unused or is being written (Ri=0, 1=GNI), and outputs ``1'' to the AND gate g343. v
When the i bit is '0''', the vector register can be used, and in this case as well, the AND gate g343 is set to rr.
1 Output rr. Similarly, R2 field r3052. of DC register r305. R3 field r3053
Regarding the second. Third usage check circuit b30
72, b3073, checked using exactly the same criteria,
The result is input to AND gate g343. thus,
When all the vector registers specified by the R1, R2, and R3 fields are available, ! A signal "1"' indicating that the vector register can be used is output to f1313.
なお、レジスタ使用チェック回路b305は、DIレジ
スタ「302内の命令が必要とするベクトルレジスタが
先行する命令により現在書込み中であっても、そのレジ
スタが使用可能と判断する点に特徴がある。これは、後
述するように本実施例においては、ベグ1−ル要素を書
込み中のベクトルレジスタに対してこの書込み動作に並
行して読出し動作を行えるように、ベクトルレジスタの
チェイニングがなされるからである。Note that the register use check circuit b305 is characterized in that it determines that the register can be used even if the vector register required by the instruction in the DI register 302 is currently being written by a preceding instruction. This is because, as will be described later, in this embodiment, vector registers are chained so that a read operation can be performed in parallel with the write operation to the vector register in which the vector element is being written. be.
第7図(a)はレジスタ競合チェック回路b309〜b
311の詳細を示す。レジスタ競合チェック回路b30
9は第1〜第3のレジスタ競合チェック回路b3091
〜b3093からなり、それぞれによりDGレジスタr
305のR1−R3フィールドr 3051− r 3
053にて指示されるベクトルレジスタ使用要求とQG
レジスタq303 b”、て指示されるベクトルレジス
タ使用要求の競合をチェックする。これらの回路の出力
は競合がないときに′l″となる(詳細後述)。アンド
ゲートg353は、これらのチェック回路b3091−
b3093の出力がいずれも117″をオアゲーhg3
59を介して線Q315に出力する。一方オアゲートg
359には1反転ゲートg356の出力も入力されてい
る。したがって、反転ゲートg356への入力線Q32
5が′O″のときも、線Ω315に競合なしを示す信号
II 1 +1が出力されるようになっている。レジス
タ競合チェック回路b310.b311も回路b309
と同じ構成を有し、アンドゲートg354.g355又
は、反転ゲートg357.g358、オアゲートg36
0.g361により、線R316゜9317上に競合チ
ェック結果を出力する。FIG. 7(a) shows register conflict check circuits b309 to b.
311 details are shown. Register conflict check circuit b30
9 is the first to third register conflict check circuit b3091
〜b3093, and each register r
R1-R3 fields of 305 r 3051- r 3
Vector register use request and QG indicated by 053
Conflicts between vector register use requests indicated by register q303b'' are checked. When there is no conflict, the outputs of these circuits become 'l'' (details will be described later). AND gate g353 connects these check circuits b3091-
Both b3093 outputs are 117″ or game hg3
59 to line Q315. On the other hand, or gate g
The output of the 1-inversion gate g356 is also input to 359. Therefore, input line Q32 to inverting gate g356
Even when 5 is 'O'', a signal II 1 +1 indicating no conflict is output to the line Ω315.The register conflict check circuits b310 and b311 are also connected to the circuit b309.
It has the same configuration as AND gate g354. g355 or inversion gate g357. g358, or gate g36
0. g361 outputs the conflict check result on line R316°9317.
線Q323〜Q325は、フリップフロップf304〜
f306 (第3図)に接続されている。Lines Q323 to Q325 represent flip-flops f304 to
f306 (Figure 3).
これらのフリップフロップは、命令キューレジスタ(1
301(第7図)中のレジスタQIRO〜QIR2の各
々に対応して設けられ、これらのレジスタ内に命令が存
在するときにセットされる(詳細後述)。These flip-flops are connected to the instruction queue register (1
301 (FIG. 7), and is set when an instruction exists in these registers (details will be described later).
今の場合には、命令キューレジスタq301に命令はな
いとしているので、これらのフリップフロップはセット
されておらす、その出力線Q323、R324,Q32
5は110 Hとなっている。したがって、線Q315
〜Q317の出力はすべて1である。こうして命令キュ
ーレジスタq301中に命令がない場合には競合チェッ
ク回路b309〜b311の出力とは無関係にベクトル
レジスタの競合がないことを示す信号を作り出している
。In this case, it is assumed that there is no instruction in the instruction queue register q301, so these flip-flops are set, and their output lines Q323, R324, Q32
5 is 110H. Therefore, line Q315
The outputs of ~Q317 are all 1. In this way, when there is no instruction in the instruction queue register q301, a signal indicating that there is no conflict in the vector register is generated regardless of the outputs of the conflict check circuits b309 to b311.
再び第3図に戻って説明する。レジスタ競合チェック回
路b309〜b31]からの出力線。The explanation will be given by returning to FIG. 3 again. Output lines from the register conflict check circuits b309 to b31].
Q315〜Q317は、上記に述べたように′1′″に
なっている。したがってこれらを入力とするアンドゲー
トg301の出力12322は1となっている。今の場
合にはレジスタ使用チェック回路b307の出力線Q3
13も、ベクトルレジスタが使用することができるとの
前提からrr 1 rrになっており、したがってアン
ドゲートg302の出力も111 IIである。また、
リソース使用チェック回路b305の出力線p310も
、リソースが使用することができるとの前提から1′″
になっている。さらに、DIレジスタr302に有効な
命令があることを示すフリップフロップf302の出力
線Q302も′1″となっている。As mentioned above, Q315 to Q317 are set to ``1''. Therefore, the output 12322 of the AND gate g301 which receives these as input is 1. In this case, the register usage check circuit b307 Output line Q3
13 is also rr 1 rr on the assumption that the vector register can be used, and therefore the output of the AND gate g302 is also 111 II. Also,
The output line p310 of the resource usage check circuit b305 is also set to 1''' on the assumption that the resource can be used.
It has become. Further, the output line Q302 of the flip-flop f302 indicating that there is a valid instruction in the DI register r302 is also set to '1'.
後述のように、アンドゲートg305の出力はII O
rHのため、反転ゲートg310の出力は″′1パとな
っているにのような状態のとき、アンドゲートg304
の出力もII l ggとなり、従って、オアゲー1〜
g306の出力線n330に介してフリップフロップ、
f303がセットされる。このフリップフロップf30
3はタイミングのみでセット/リセットされるDタイプ
フリップフロップで。As described later, the output of AND gate g305 is II O
Because of rH, the output of the inverting gate g310 is ``'1pa.'' When the output of the AND gate g304 is
The output of is also II l gg, and therefore, or game 1~
A flip-flop via the output line n330 of g306,
f303 is set. This flip flop f30
3 is a D type flip-flop that is set/reset only by timing.
命令起動信号STを線QIOにより、ベクトルレジスタ
ユニットU4、メモリ・リクエスタU10゜Ull、演
算器U20.U21に送出する(第1図参照)。また、
命令キューレジスタq301中に命令がないことから、
レジスタQIRO〜QIR2に命令があるときに111
IIがセットされる対応のフリップフロップf304
〜f306の出力はいずれもit O71であり、その
出力線悲323〜Q325が入力されているセレクタ5
303の出力もセレクタ5303の選択動作(詳細後述
)に無関係に” o ”となっている6従って、この出
力線Q326が入力されているアンドゲートg305の
出力線Q32.1もII OIIとなる。セレクタ33
01.5302,5304は、それぞれDIレジスタr
302の出力線Q303上のオペコード、リソース使用
チェック回路b305の出口線Q309上のリソース使
用要求(リソース種類2番号)およびDGレジスタr3
05の出力線Q307上のベクトルレジスタ使用要求(
レジスタ番号、使用形態)を選択して、それぞれElレ
ジスタr308.、ESレジスタr309.EQレジス
タ「312にセットする。セットは線Q330により指
示される。なお、ベクトル長レジスタ(VLR)r30
7には、あらかじめ別の手段(図示せず)によって処理
すべきベクトル長(VL)が格納されているとする。こ
れらのレジスタの内容は、線Ω11−1114によって
、ベクトルレジスタユニットU4、各リソースU10゜
Ul 1.R20,R21に送出される。これによリ、
命令実行の起動が指令されたことになる。An instruction activation signal ST is transmitted via line QIO to vector register unit U4, memory requester U10.Ull, arithmetic unit U20. It is sent to U21 (see Figure 1). Also,
Since there is no instruction in the instruction queue register q301,
111 when there is an instruction in registers QIRO to QIR2
Corresponding flip-flop f304 where II is set
The outputs of ~f306 are all it O71, and the selector 5 to which the output lines 323~Q325 are input
The output of the AND gate g303 is also "o" regardless of the selection operation (described in detail later) of the selector 53036. Therefore, the output line Q32.1 of the AND gate g305 to which this output line Q326 is input also becomes II OII. Selector 33
01.5302, 5304 are DI registers r
302, the operation code on the output line Q303, the resource use request (resource type 2 number) on the exit line Q309 of the resource use check circuit b305, and the DG register r3.
Vector register use request on output line Q307 of 05 (
register number, usage type) and select each El register r308. , ES register r309. Set the EQ register to 312. The setting is indicated by the line Q330. Note that the vector length register (VLR) r30
It is assumed that the vector length (VL) to be processed by another means (not shown) is stored in advance in 7. The contents of these registers are transferred by lines Ω11-1114 to the vector register unit U4, each resource U10°U1. It is sent to R20 and R21. With this,
This means that a command has been issued to start executing the command.
なお、ここでは、DIレジスタr302中の命令はすぐ
に起動可能であるので命令キューレジスタq301に入
れる必要はない。今の場合、アンドゲート、g304の
出力がrr 1 rrであることから、反転ゲートg3
08の出力は′0″′となり、この出力が入力されてい
るアンドゲートg303の出力線Q327がII Og
gとなっている。こうして、この信吟線Q327により
制御される命令キューレジスタq301へのDIレジス
タr302の内容の入力がおさえられる。また、同様に
、レジスタq302.q303への新たな入力も禁止さ
れる。命令キューレジスタg301中に命令が存在する
ことを示すフリップフロップf304〜f :30 G
へのセット、次にセットすべき命令キューレジスタg3
01中の場所を示すインポインタ。Note that here, since the instruction in the DI register r302 can be started immediately, there is no need to put it in the instruction queue register q301. In this case, since the output of the AND gate g304 is rr 1 rr, the inversion gate g3
The output of 08 becomes '0''', and the output line Q327 of AND gate g303 to which this output is input becomes II Og.
g. In this way, input of the contents of DI register r302 to instruction queue register q301 controlled by signal line Q327 is suppressed. Similarly, register q302. New input to q303 is also prohibited. Flip-flops f304 to f: 30 G indicating that an instruction exists in the instruction queue register g301
instruction queue register g3 to be set next.
An inpointer indicating a location in 01.
IP、r310等の更新を抑止する。Suppress updates to IP, r310, etc.
また、命令の起動にともない、使用するリソース状態を
管理するRs s wレジスタr304、ベクj・ルレ
ジスタの状態を管理するRGSWレジスタ「306を変
更する必要がある。このうち、R55Wレジスタ「30
4の変更については、第5図の説明において述べた。R
GSWレジスタ「306の状態の変更については、次の
ようにする・すなわち、セレクタ、5304により選択
されたDGレジスタr305の出力が、デコーダb30
4に送られて、そこでベクトルレジスタの番号。Additionally, as the instruction starts, it is necessary to change the Rsw register r304, which manages the state of the resources used, and the RGSW register 306, which manages the state of the vector register.
4 was described in the explanation of FIG. R
To change the state of the GSW register 306, proceed as follows. In other words, the output of the DG register r305 selected by the selector 5304 is sent to the decoder b30.
4, where the vector register number.
読出し、書込み等が解読され、対応するRGSWレジス
タr306中のビットが゛′ビ′にセットされる。すな
わち、DGレジスタr305のフィールドRi(i=1
〜3)ごとに、Vi=1であることを条件に、Wiが1
か否かに応じてRGSWレジスタr305のWj (
j=GNi)又はRjを1にする。また、RGSWレジ
スタは後述するように、ベクトルレジスタの書込み又は
読出しが終了したことを示す信号がベクトルレジスタユ
ニットU4から線Q15.Q16を介して入力されたと
き、この信号で指定されるフィールドRj又はWjをリ
セットする。Reads, writes, etc. are decoded and the corresponding bit in RGSW register r306 is set to 'bi'. That is, field Ri (i=1
~3), Wi is 1 on the condition that Vi=1.
Wj (
j=GNi) or Rj is set to 1. Further, as will be described later, in the RGSW register, a signal indicating that writing or reading of the vector register has been completed is sent from the vector register unit U4 to the line Q15. When input via Q16, the field Rj or Wj specified by this signal is reset.
(a−2) 命令キューレジスタq301内に命令が
なく、DIレジスタr302内の命令に対して起動がか
けられず、これを命令キューレジスタq301に入れる
場合。(a-2) When there is no instruction in the instruction queue register q301, the instruction in the DI register r302 cannot be activated, and the instruction is placed in the instruction queue register q301.
これは、DIレジスタr302中にある命令が必要とす
るリソース(演算器または、メモリ・リクエスタ)また
はベクトルレジスタが使用可能でないときに生じる。This occurs when the resource (operator or memory requester) or vector register required by the instruction in DI register r302 is not available.
DIレジスタr302内の命令が使用するリソースおよ
びベクトルレジスタの使用状況のチェックについては、
第5〜7図に従って、(a−1)の説明にて述べた通り
である。今の場合リソースおよびベクトルレジスタの使
用状況のチェックの結果、DIレジスタr302中にあ
る命令が要求するリソースが使用中のため、リソース使
用チェック回路b305の出力Q310が“0″になる
。For checking the usage of resources and vector registers used by instructions in DI register r302,
This is as described in the explanation of (a-1) according to FIGS. 5 to 7. In this case, as a result of checking the usage status of resources and vector registers, the resource required by the instruction in the DI register r302 is in use, so the output Q310 of the resource usage check circuit b305 becomes "0".
また、DIレジスタ「302内の命令が要求するベクト
ルレジスタが使用不可の場合には、レジスタ使用チェッ
ク回路b307の出力Q313が′0″になる。いずれ
の場合もアンドゲートg304の出力はII Q #l
、従って、反転ゲートg308の出力は′1″となる。Further, if the vector register required by the instruction in the DI register "302" is unavailable, the output Q313 of the register use check circuit b307 becomes '0'. In either case, the output of AND gate g304 is II Q #l
, Therefore, the output of the inverting gate g308 becomes '1''.
また、命令キューレジスタ中に命令がないので、(a
−1)の説明でも述べたように、セレクタ5303の出
力線Q326は0″′であるから、アンドゲートg30
5の出力は0′″である。このため、フリップフロップ
f303は何もセットされず、命令起動信号STは線Q
lOに出力されない。反転ゲートg308の出力がIt
I IIであり、かつフリップフロップf302の出
力も1″′であるのでアンドゲートg303の出力線Q
327がII I Itとなる。これによって、命令を
命令キューレジスタに入れる動作が、次のように行なわ
れる。Also, since there is no instruction in the instruction queue register, (a
As mentioned in the explanation of -1), since the output line Q326 of the selector 5303 is 0'', the AND gate g30
5 is 0''. Therefore, the flip-flop f303 is not set to anything, and the instruction activation signal ST is on the line Q.
Not output to lO. The output of the inverting gate g308 is It
I II and the output of the flip-flop f302 is also 1'', so the output line Q of the AND gate g303
327 becomes II I It. As a result, the operation of putting an instruction into the instruction queue register is performed as follows.
命令キューレジスタq301の詳細を第4図に示す。第
4図において、命令キューレジスタへのセット信号Sが
線Q327にセットすべきレジスタの番号として、イン
ポインタ(IP)レジスタr310の出力IPが線Q3
28を介して送られてくると、それぞれデコーダb33
0のデコード有効端子(E)およびデータ端子に入力さ
れ、デコードされる。その結果、線a327が1117
1のときに線Q328の内容がデコードされ、その結果
、指定されたレジスタr350〜r352のいずれかに
、入力線(第3図における線Q303゜Q305、また
はR307)の内容がセットされる。以上が命令キュー
レジスタ(1301へのセットである。なお、後に述べ
る命令キューレジスタの’All 出し動作についても
ここで述べておく。読出しとは、アラ1−・ポインタ(
op)レジスタr311 (第3図)の出力OPにより
指定される番号のレジスタ【350〜r351の内容を
出力することで、これは、各レジスタr350〜r35
2の出力が接続されているセレクタ5350の選択制御
を○Pレジスタr311の出力線Q329により行なう
ことで実現できる。Details of the instruction queue register q301 are shown in FIG. In FIG. 4, the output IP of the in-pointer (IP) register r310 is the number of the register to be set on the line Q327 when the set signal S to the instruction queue register is set on the line Q327.
28, the respective decoders b33
It is input to the decoding enable terminal (E) of 0 and the data terminal and is decoded. As a result, line a327 is 1117
When it is 1, the contents of line Q328 are decoded, and as a result, the contents of the input line (lines Q303, Q305, or R307 in FIG. 3) are set in any of the designated registers r350 to r352. The above is the setting to the instruction queue register (1301).The 'All output operation of the instruction queue register, which will be described later, will also be described here.
op) Output of register r311 (Figure 3) By outputting the contents of the register [350 to r351] with the number specified by OP, this
This can be realized by controlling the selection of the selector 5350 to which the output of No. 2 is connected using the output line Q329 of the ○P register r311.
なお、QSレジスタ9302はレジスタr350〜r3
52が必要とするビット数の違いを除いて、命令キュー
レジスタq301と同一構造である。QGレジスタq3
03は、レジスタr350〜r352が必要とするビッ
ト数の違いの他に、レジスタr350〜r352からセ
レクタ5350を介さすに直接出力する信号線がさらに
別に設けられている点で命令キューレジスタq301と
異なるのみである。Note that the QS register 9302 includes registers r350 to r3.
52 has the same structure as the instruction queue register q301 except for the difference in the number of bits required. QG register q3
03 differs from the instruction queue register q301 in that, in addition to the difference in the number of bits required by registers r350 to r352, there is also an additional signal line for direct output from registers r350 to r352 via selector 5350. Only.
再び第3図に戻って説明する。こうして命令コード、そ
の命令が使用するリソースの種類等、およびレジスタの
番号等をそれぞれ命令キューレジスタq301=q30
3に!A録すると、これらの命令キューレジスタに命令
が存在することを示すフリップフロップf304〜f3
06のうち、今回登録したレジスタQIRi (i
=0.1or2)に対応するフリップフロップをセント
する。この動作は、線Q327がII I IIとなり
、これがデコーダb312のデコード有効端子に入力さ
れ、データ端子に入力された(出力線Q328)上のI
Pで指定される番号のフリップフロップf304〜f3
06のいずれかがデコーダb312によりセットされる
ことにより実現される。以上が終了すると、IPレジス
タr310が更新される。IPレジスタr310の出力
線Q328は3進カウンタb314に入力されて、次の
IPの値が作成され、線Q327が′1″となると、I
Pレジスタr310に1次のポインタの値がセットされ
る。3進カウンタb314は、入力が0.1゜2に従っ
て、1,2.Oを出力するものである。The explanation will be given by returning to FIG. 3 again. In this way, the instruction code, the type of resource used by the instruction, and the register number are stored in the instruction queue register q301=q30.
To 3! When recording A, flip-flops f304 to f3 indicate that instructions exist in these instruction queue registers.
Of 06, the register QIRi (i
=0.1or2). This operation causes line Q327 to become II I II, which is input to the decode valid terminal of decoder b312, and input to the data terminal (output line Q328).
Flip-flops f304 to f3 with numbers designated by P
06 is set by the decoder b312. When the above is completed, the IP register r310 is updated. The output line Q328 of the IP register r310 is input to the ternary counter b314 to create the next IP value, and when the line Q327 becomes '1'', the I
The value of the primary pointer is set in P register r310. The ternary counter b314 inputs 1, 2, . It outputs O.
なお、命令キューレジスタ(ここでは3つまでの命令が
キューイングできる)のすべてに命令が入ってしまうと
、それ以上命令を入れることはできないので、命令読出
しユニットU2 (第1図参照)からの命令送出を抑止
する必要がある。これは、命令キューレジスタ中に命令
が存在することを指定するフリップフロップf304〜
306の出力をアントゲ−1〜g309に入力し、この
出力aQ7を命令読出しユニットU2に送出することに
より実現される。Note that once all instructions have been placed in the instruction queue register (up to three instructions can be queued here), no more instructions can be placed in the instruction queue register. It is necessary to suppress instruction sending. This is a flip-flop f304~ that specifies that an instruction exists in the instruction queue register.
This is realized by inputting the output of 306 to the anime games 1 to 309 and sending this output aQ7 to the instruction reading unit U2.
以上のごとくにして、起動待ちの命令が、それらの解読
順序にしたがって、命令キューレジスタq301にスト
アされる。As described above, instructions waiting to be activated are stored in the instruction queue register q301 according to their decoding order.
(b−1) 命令キューレジスタにある命令を起動す
る場合。(b-1) When starting an instruction in the instruction queue register.
これは、命令キューレジスタq301内に命令があり、
これが必要とするリソースおよびベクトルレジスタが使
用可能のときに生じる。This means that there is an instruction in the instruction queue register q301,
This occurs when the required resources and vector registers are available.
これは、DIレジスタr302中の命令の有無あるいは
その命令の起動可否に関係しない。この場合、DIレジ
スタr302中に命令がある場合にはその命令は実行さ
れないので(a −2)に述べた手順に従って、DIレ
ジスタr302中の命令が命令キューレジスタq301
に登録される。This is regardless of whether there is an instruction in the DI register r302 or whether the instruction can be activated. In this case, if there is an instruction in DI register r302, that instruction will not be executed, so according to the procedure described in (a-2), the instruction in DI register r302 is transferred to instruction queue register q301.
will be registered.
以下では、命令キューレジスタq301から命令をとり
出して起動する処理について述べる。The following describes the process of taking out an instruction from the instruction queue register q301 and activating it.
命令キューレジスタq301から命令を取出して起動す
る処理は、Drレジスタr302中の命令を起動する場
合とよく似ている。すなわち、命令キューレジスタr3
01中のアウトポインタレジスタ「311で指定される
命令と、DIレジスタr302中の命令を入れ替えて考
えればよい。The process of taking out and activating an instruction from the instruction queue register q301 is very similar to the process of activating an instruction in the Dr register r302. That is, instruction queue register r3
The instruction specified by out pointer register ``311'' in 01 and the instruction in DI register r302 can be exchanged.
命令を起動するには、必要なリソースおよびベクトルレ
ジスタが使用可能状態にあることが必要であることは(
a−1)でも述べた。Invoking an instruction requires that the necessary resources and vector registers be available (
It was also mentioned in a-1).
命令キューレジスタq301内の命令が使用するリソー
スの空きのチェックは5第3図のリソース使用チェック
回路b306で、ベクトルレジスタの使用可否のチェッ
クは、同じく第3図のレジスタ使用チェック回路b30
8にて行なわれる。The availability of resources used by instructions in the instruction queue register q301 is checked by the resource usage check circuit b306 in Figure 3, and the availability of vector registers is checked by the register usage check circuit b30, also shown in Figure 3.
It will be held at 8.
リソース使用チェック回路h306の詳細は、第5図に
示した通りチェック回路b305と同じである。アウト
ポインタ、OPによって選択された命令キューレジスタ
q301中の命令が要求するリソースの種類は、QSレ
ジスタ9302から、腺Q318を介して入力される。The details of the resource usage check circuit h306 are the same as the check circuit b305 as shown in FIG. The type of resource required by the instruction in the instruction queue register q301 selected by the out pointer, OP, is input from the QS register 9302 via the gland Q318.
一方、リソースの状態がR35Wレジスタ「304から
入力されている。これらが、アン1〜ゲーh g 32
4〜に327によって比較されて、リソースの空きがチ
ェックされ、その結果、オアゲートg330゜g331
.g333、エンコーダb322゜!+ 323−セレ
クタ8311等によって最終的にはリソースが空いてい
ることを示す線Q312と、リソースの種類、番号を示
す線Q311に結果がのせられる。以上の動作は、DS
レジスタr′303とR35Wレジスタr304とのチ
ェックにより、線Q310とQ309に結果がのせるリ
ソース使用チェック回路b305の動作とまったく同一
なので、詳細の説明は省く。On the other hand, the resource status is input from the R35W register "304. These are the
4~ is compared by 327 to check the resource availability, and as a result, or gate g330゜g331
.. g333, encoder b322°! +323-Selector 8311 and the like ultimately place the result on a line Q312 indicating that the resource is vacant and a line Q311 indicating the type and number of the resource. The above operation is performed by DS
The operation is exactly the same as that of the resource usage check circuit b305, which places the results on the lines Q310 and Q309 by checking the register r'303 and the R35W register r304, so a detailed explanation will be omitted.
レジスタ使用チェック回路b308の構成はチェック回
路b307と同じであり、その動作は、第6図(a)に
おいて、DGレジスタr305の出力のかわりに、第3
図におけるQGレジスタq303の出力線Q319を接
続した場合の回路b307の動作と同一である。チェッ
クの結果は、レジスタ使用チェック回路b308の出力
線Q314 (第3図)に乗せられる。The configuration of the register use check circuit b308 is the same as that of the check circuit b307, and its operation is performed by using the third register instead of the output of the DG register r305 in FIG. 6(a).
The operation is the same as that of the circuit b307 when the output line Q319 of the QG register q303 in the figure is connected. The result of the check is placed on the output line Q314 (FIG. 3) of the register usage check circuit b308.
再び第3図に戻って説明する。リソース使用チェック回
路b306からリソースに空きがあることを示す信号線
Q312に′″1″が出力され、そのときのリソースの
種類2番号が線111311に出力され、さらに、レジ
スタ使用チェック回路b308からベクトルレジスタが
使用可能であることを示す信号線Q314にII 11
7が出力され、かつ、フリップフロップf304〜f3
06の出力をぞれぞれアウトポインタOPがO〜2のと
きに選択するセレクタ5303の出力線Q326が”l
”(アウトポインタで指定される、命令キューレジスタ
内のレジスタQ I Riに起動可能な命令があること
を意味する)になると、アントゲ−1〜g305の出力
線f1321が゛′ビ′になる。この出力線Q321が
# 1 nになると、セレクタS301.5302,5
3041.lれぞし命令キューレジスタq301の出力
線Q304. リソース使用チェック回路b306か
らの出力線Q311およびQGレジスタq303からの
出力線悲319の内容を選択してそれぞれEIレジスタ
r308、ESレジスタr309.EGレジスタr31
2に命令コード、リソースの種類と番号およびレジスタ
番号および使用形態をセットする。したがって、命令キ
ューレジスタq301内の命令の起動可能な場合には、
DIレジスタ「302内の命令が起動可能か否かに無関
係に、前者の命令が起動されることが分かる。また1B
Q321はオアゲートg306を介してフリップフロッ
プf303をセットし、ベクトルレジスタユニット。The explanation will be given by returning to FIG. 3 again. The resource usage check circuit b306 outputs ``1'' to the signal line Q312 indicating that the resource is vacant, the resource type 2 number at that time is output to the line 111311, and the register usage check circuit b308 outputs the vector II 11 on signal line Q314 indicating that the register is available
7 is output, and the flip-flops f304 to f3
The output line Q326 of the selector 5303 that selects the output of 06 when the out pointer OP is O~2 is "l".
” (meaning that there is an activatable instruction in the register Q I Ri in the instruction queue register specified by the out pointer), the output lines f1321 of the anime games 1 to g305 become ``BI''. When this output line Q321 becomes #1 n, selector S301.5302,5
3041. Output line Q304 of l-removed instruction queue register q301. The contents of the output line Q311 from the resource use check circuit b306 and the output line 319 from the QG register q303 are selected and sent to the EI register r308, ES register r309. EG register r31
2, set the instruction code, resource type and number, register number, and usage pattern. Therefore, if the instruction in the instruction queue register q301 can be activated,
It can be seen that the former instruction is activated regardless of whether the instruction in the DI register 302 can be activated or not.
Q321 sets the flip-flop f303 via the OR gate g306 and becomes a vector register unit.
各リソースに命令の起動信号STを線Q10を介して送
出する。オアゲートg30Gの出力線Q330は、El
レジスタr308.ESレジスタr309.EGレジス
タr312のセットの制御にも使用される。命令起動に
ついては、(a−1)の説明とまったく同様である。さ
らに、線Q321上のパビ′の信号は、反転ゲートg3
10により、アンドゲートg301を閉じる。その結果
1反転ゲー1” g 308の出力が′l″となり、D
Iレジスタr302に命令が入っている場合(フリップ
フロップf302が′1″の場合)には、線a327を
′1″としてその命令を命令キューレジスタに登録する
ように制御する。この処理は(a−2)に述べたとおり
である。また、線12321は、デコーダb313のデ
コード有効端子にも接続され、デコーダb313はアウ
トポインタ、OPで指定されるフリップフロップf30
4〜f306のいずれかをリセットする。これは、OP
で指定される命令キューレジスタ中の命令が取出され、
起動されるためである。最後に、線Q321は○Pレジ
スタr311のセットに使用され、アウトポインタが更
新される。この更新の制御は、インポインタの場合と同
様、3進で行なわれる。3進の値の生成は回路b314
と同じ構成の回路b315にて行なわれる。A command activation signal ST is sent to each resource via line Q10. The output line Q330 of the OR gate g30G is El
register r308. ES register r309. It is also used to control the set of EG register r312. The instruction activation is exactly the same as the explanation in (a-1). Furthermore, the signal of Pavi' on line Q321 is applied to the inverting gate g3
10 closes the AND gate g301. As a result, the output of 1 inversion game 1''g308 becomes 'l'', and D
When the I register r302 contains an instruction (when the flip-flop f302 is '1'), the line a327 is set to '1' and the instruction is controlled to be registered in the instruction queue register. This process is as described in (a-2). The line 12321 is also connected to the decoding enable terminal of the decoder b313, and the decoder b313 is connected to the flip-flop f30 specified by the out pointer, OP.
4 to f306. This is OP
The instruction in the instruction queue register specified by is fetched,
This is because it is activated. Finally, line Q321 is used to set the OP register r311, and the out pointer is updated. This update control is performed in ternary format, as in the case of the inpointer. Generation of ternary value is performed by circuit b314
This is performed in a circuit b315 having the same configuration as .
(b−2) 命令キューレジスタ中に命令があるにも
かかわらず、DIレジスタr302の命令が先に起動さ
れる場合。(b-2) Even though there is an instruction in the instruction queue register, the instruction in DI register r302 is activated first.
これは2次のような場合に生じつる。This occurs in the following secondary cases.
(1) 命令キューレジスタ中の命令が要求するリソ
ースまたはベクトルレジスタが使用不可能で、この命令
を起動することができない。かつ、
(2)DIレジスタr302中にある命令が要求するリ
ソース又はベクトルレジスタが使用可能であり、かつ、
命令キューレジスタq301中に蓄えられている命令と
、DIレジスタr302中にある命令間でベクトルレジ
スタの競合がない。(1) The resource or vector register required by the instruction in the instruction queue register is unavailable and the instruction cannot be activated. and (2) the resource or vector register required by the instruction in DI register r302 is available, and
There is no vector register conflict between the instructions stored in the instruction queue register q301 and the instructions in the DI register r302.
命令キューレジスタ(1301中にある命令を追越して
、DIレジスタ「302中の命令を先に起動するには、
レジスタの競合がないこと、すなわち、命令キューレジ
スタq301中にある命令にて変更するベクトルレジス
タを、DIレジスタr302中の命令が使用しないこと
、また命令キューレジスタq301中にある命令にて読
出すベクトルレジスタについては、DIレジスタr30
2中の命令が変更しないことが必要である。命令キュー
レジスタ中の命令で読出すのみに用いられるベクトルレ
ジスタを、DIレジスタ中の命令で読出すことについて
は、命令の追越しをしてもレジスタの読出す順序が逆転
するだけなので、問題はない。以上述べたレジスタ競合
チェックを行なう回路が、第3図の回路b309〜b3
11である。To overtake the instructions in the instruction queue register (1301) and start the instructions in the DI register 302 first,
There is no register conflict; that is, the instruction in DI register r302 does not use the vector register that is modified by the instruction in instruction queue register q301, and the vector read by the instruction in instruction queue register q301 is For registers, DI register r30
It is necessary that the instructions in 2 do not change. There is no problem with reading a vector register that is only used for reading by an instruction in the instruction queue register with an instruction in the DI register, because even if the instruction overtakes the vector register, the order in which the registers are read is simply reversed. . The circuits that perform the register conflict check described above are the circuits b309 to b3 in FIG.
It is 11.
この詳細を第7図に基づき説明する。The details will be explained based on FIG. 7.
第7図の回路の詳細は、回路b3091〜b3093の
詳細を除き、すでに説明した。The details of the circuit in FIG. 7 have already been described, except for the details of circuits b3091 to b3093.
第ルジスタ競合チェック回路b3091はDGレジスタ
r305のR1フィールドr3051とQGROレジス
タg3030のR1〜R3フィールドとを比較し、次の
条件のし)ずれかが満たされない場合に、レジスタ競合
なしを示す信号111 uをアンドゲートg353に出
力する。The register conflict check circuit b3091 compares the R1 field r3051 of the DG register r305 with the R1 to R3 fields of the QGRO register g3030, and if any of the following conditions is not met, a signal 111 u indicating that there is no register conflict is detected. is output to AND gate g353.
(1) DGL/ジスタのVl=1.W1=C1)と
き、レジスタQGROの一つのフィールドRjにおいて
yj =Wj =l、GNj =DGレジスタのNI
(2) DGL/ジスタ(7)Vl=1.W1=1(
7)とき。(1) DGL/distor Vl=1. W1 = C1), in one field Rj of register QGRO, yj = Wj = l, GNj = NI of DG register (2) DGL/register (7) Vl = 1. W1=1(
7) Time.
レジスタQGROの一つのフィールドRjにおいて
Vj=l、GNj=DGL/ジスタ(7)GNI同様に
、DGレジスタのR2フィールドr3052.R3フィ
ールドr3053についてそれぞれ第2.第3レジスタ
競合チェック回路b3092.b3093が同様のチェ
ックをする。In one field Rj of register QGRO, Vj=l, GNj=DGL/register (7) Similarly to GNI, R2 field r3052. of register DG. For R3 field r3053, the second . Third register conflict check circuit b3092. b3093 performs a similar check.
一方、命令キューレジスタ中に実行可能な命令が入って
いることを示すフリップフロップf304c第3図参照
)の出力が線Q323を介してアンドゲートg353に
入力され、アントゲ−h g 353の入力がすべてが
” I ”のとき2すの出力がオアゲートg35Gを経
て、線Q315に乗せられる。こうして、DGレジスタ
r305で指定されるベクトルレジスタが、レジスタQ
GRO中にて指定されるいずれのベクトルレジスタとも
競合しないか否かがチェックされる。これと同様に、D
Gレジスタr305で指定されるベクトルレジスタと、
レジスタQGRIで指定されるベクトルレジスタの競合
関係がチェック回路b310で、DGレジスタr305
で指定されるベクトルレジスタと、レジスタQGR2で
指定されるベクトルレジスタの競合関係がチェック回路
b311でチェックされ、その結果がそれぞれアンドゲ
ートg354.g355を経て、オアゲートg360.
g361の出力線、Q316゜Q317にのせられる。On the other hand, the output of the flip-flop f304c (see Figure 3) indicating that an executable instruction is stored in the instruction queue register is input to the AND gate g353 via the line Q323, and all the inputs of the AND gate g353 are When is "I", the output of 2 is passed through OR gate g35G and placed on line Q315. In this way, the vector register specified by DG register r305 becomes register Q
It is checked whether there is any conflict with any vector register specified in GRO. Similarly, D
A vector register specified by G register r305,
The competition relationship between the vector registers specified by the register QGRI is checked by the check circuit b310 and by the DG register r305.
A check circuit b311 checks the competitive relationship between the vector register specified by the vector register specified by the register QGR2 and the vector register specified by the register QGR2, and the results are sent to the respective AND gates g354. After g355, orgate g360.
The output line of g361 is placed on Q316゜Q317.
DIレジスタr302中にある命令が要求するリソース
およびレジスタの使用状況のチェックについては、(a
−1)の処理の説明にて詳細を述べたとおりである。To check the usage status of resources and registers required by instructions in DI register r302, see (a
The details are as described in the explanation of the process in -1).
チェックの結果、第3図において、リソース使用チェッ
ク回路b305の出力として、線Q310にリソースが
空いていることを示す” l ”の信号が、線Q309
にリソースの種類2番号がレジスタ使用チェック回路b
307の出力として、線Q313にベクトルレジスタが
使用可能であることを示す′″ビ′信号が出力される。As a result of the check, in FIG. 3, as the output of the resource use check circuit b305, a signal of "l" indicating that the resource is available on the line Q310 is output on the line Q309.
The resource type 2 number is register usage check circuit B
As an output of 307, a ``BI'' signal is output on line Q313 indicating that the vector register is available.
一方、命令キューレジスタ中のアウトポインタOPで指
定さオしる命令が使用するリソースまたはベクトルレジ
スタのいずれか一方または双方とも使用可能でないので
、リソース使用チェック回路b306の出力線Q312
または、レジスタ使用チェック回路b308の出力線Q
3I4の少くともいずれか一方はパ0″″になっている
。また、命令キューレジスタに命令が存在することから
、セレクタ5303の出力線Q326はII L Hに
、DIレジスタr302に命令が存在することから、線
Q302もrr 1 rrになっている。On the other hand, since either or both of the resources and vector registers used by the instruction specified by the out pointer OP in the instruction queue register are not usable, the output line Q312 of the resource usage check circuit b306
Or, the output line Q of the register usage check circuit b308
At least one of 3I4 is set to P0''''. Further, since an instruction exists in the instruction queue register, the output line Q326 of the selector 5303 becomes II L H, and since an instruction exists in the DI register r302, the line Q302 also becomes rr 1 rr.
このような状況のもとで、アンドゲートg305の出力
線Q321はre 1 、gとはならない。Under such circumstances, the output line Q321 of the AND gate g305 does not become re 1 , g.
今の場合、DIレジスタ中の命令と、命令キューレジス
タ中の命令が要求するレジスタ間で競合がないと仮定し
ているので、線Q315〜Q317がII 1 ggと
なり、アントゲ−h g 301の出力がII 10と
なる。アンドゲートg301の出力と。In this case, it is assumed that there is no conflict between the registers required by the instruction in the DI register and the instruction in the instruction queue register, so lines Q315 to Q317 become II 1 gg, and the output of Antogame h g 301 becomes II 10. and the output of AND gate g301.
線Q313が入力されるアンドゲートg302の出力が
(L 1 +1となり、この出力111 ′gと線Q3
10と、DIレジスタに有効な命令が入っていることを
示す線Q302と、線Q321を反転ゲートg310で
反転した出力の4つの信号とが入力されているアンドゲ
ートg304の出力がre 1 ggとなる。以後、命
令を起動するまでの処理は(a −1)におけるDIレ
ジスタ中の命令起動処理とまったく同様である。なお、
アンドゲートg304の出力が11111のため、その
出力を反転ゲートg308で反転した結果が入力されて
いるアンドゲートg303の出力線Q327、および先
に述べた線Q321はいずれもII O、Jのため。The output of AND gate g302 to which line Q313 is input becomes (L 1 +1, and this output 111'g and line Q3
10, a line Q302 indicating that the DI register contains a valid instruction, and the output of the AND gate g304, which is an output obtained by inverting the line Q321 with an inverting gate g310, outputs re 1 gg. Become. Thereafter, the process up to activating the instruction is exactly the same as the instruction activation process in the DI register in (a-1). In addition,
Since the output of AND gate g304 is 11111, the output line Q327 of AND gate g303 to which the result of inverting the output by inverting gate g308 is input, and the line Q321 mentioned above are both IIO, J.
IPおよびOPはいずれも更新されることはなく、また
、命令キューレジスタに命令が存在することを示すフリ
、プフロノブ「304〜f306の状態も変らない。Neither the IP nor the OP is updated, and the states of the flow knobs 304 to f306, which indicate that an instruction exists in the instruction queue register, do not change.
■ 命令制御ユニットの変形例
以上、命令制御ユニノl−03(第1図参照)の詳細を
述べた。本実施例においては、命令実行の追越しは、D
Iレジスタr302と命令キューレジスタとの間でのみ
行なわれ、命令が一旦、命令キューレジスタに入ってし
まうと、命令キューレジスタに入った順にアラ1〜ポイ
ンタでとり出されていくので、命令キューレジスタの間
での命令実行の追越しはおこなわれない。しかし、この
命令キューレジスタ内の命令の間の追越し実行も、DI
レジスタ内の命令と命令キューレジスタ内の命令の間の
追滅し実行と同様に制御すれば、容易に実現することが
できる。この場合には、命令キューレジスタ上の命令に
ついて、実行順序を記憶しておく必要がある。また、命
令キューレジスタへの命令の登録も、インポインタ(I
P)による順序通りの登録ではなく、空いたレジスタへ
の登録となる。(2) Modification of Command Control Unit The details of the command control unit 1-03 (see FIG. 1) have been described above. In this embodiment, the overtaking of instruction execution is D
This is carried out only between the I register r302 and the instruction queue register, and once an instruction enters the instruction queue register, it is taken out in the order in which it entered the instruction queue register by the pointer from 1 to the instruction queue register. There is no overtaking of instruction execution between the two. However, overtaking execution between instructions in this instruction queue register is also
This can be easily realized by controlling in the same manner as the execution of the instruction in the register and the instruction in the instruction queue register. In this case, it is necessary to remember the execution order of the instructions on the instruction queue register. In addition, registration of instructions to the instruction queue register is also done using the in-pointer (I
The registration is not performed in the order specified by P), but is performed in an empty register.
第8図は、これを実現するための回路の内、第3図の回
路と相異する部分を主に示したものである。図において
、フリップフロップf304.f305、f306は、
命令キューレジスタに有効な命令が入っていることを示
す(入っているときにII i ′1とするフリップフ
ロップで、第3図のフリップフロップf304〜f30
6と同一のものである。このフリップフロップの出力を
反転ゲートg380−g382で反転後、プライオリテ
ィ・エンコーダb395に入力すると、出力には、空き
の命令キュー内レジスタのうち、もっとも番号の小さな
ものの番号iが出力される。本変形例では、第3図のI
Pレジスタr310.3進カウンタb314にかえ、反
転ゲートg380〜g381、プライオリティエンコー
ダb395を用い、プライオリティエンコーダの出力を
インポインタIPとして、第3図のIPのかわりに使用
する。FIG. 8 mainly shows the parts of the circuit for realizing this that are different from the circuit of FIG. 3. In the figure, flip-flop f304. f305, f306 are
This is a flip-flop that indicates that a valid instruction is contained in the instruction queue register (when it is contained, it is set to II i '1), and the flip-flops f304 to f30 in FIG.
It is the same as 6. When the output of this flip-flop is inverted by inverting gates g380 to g382 and input to a priority encoder b395, the number i of the smallest number among the empty registers in the instruction queue is outputted. In this modification, I
In place of P register r310, ternary counter b314, inverting gates g380 to g381 and priority encoder b395 are used, and the output of the priority encoder is used as inpointer IP instead of IP in FIG.
また、命令キューレジスタq301中の命令の起動順序
を記憶しておく必要があり、このため。Furthermore, it is necessary to remember the activation order of the instructions in the instruction queue register q301.
本変形例では、フリップフロップf380〜f382と
実行順序変更回路b393が第3図の回路に追加される
。命令キューレジスタq301にI P=O〜2でもっ
てそれぞれセットされた命令をQO,Ql、Q2と名づ
けると、これらの命令を、
QO→ Ql →Q2
QO−+ Q2 →QI
Ql−)Q2 → QO
Ql →QO−+ 02
Q2 →QO→ QI
Q2 → Ql → QO
の順に起動する場合があり得る。この6つの状態をフリ
ップフロップf380〜f381で記憶する。フリップ
フロップf 380.g381゜[382の記憶情報と
このときの命令実行順序の関係は次の表のとおりである
。In this modification, flip-flops f380 to f382 and an execution order changing circuit b393 are added to the circuit of FIG. 3. If the instructions set in the instruction queue register q301 with IP=O~2 are named QO, Ql, and Q2, then these instructions are written as QO→ Ql →Q2 QO−+ Q2 →QI Ql−)Q2 → QO Ql → QO−+ 02 Q2 → QO → QI Q2 → Ql → QO may be activated in this order. These six states are stored in flip-flops f380 to f381. flip flop f 380. The relationship between the storage information of g381°[382 and the instruction execution order at this time is shown in the following table.
f 380 f 381 f 382 命令
実行順序0 0 0 QO−)
Ql →Q20 0 1 Q
O→Q2→Q10 1 0
Ql−>Q2→Q00 1 1
Ql →QO→Q21 0
0 Q2→QO−+Q11 0
1 Q2→Q1→QO命令の実行順序
の変更は、フリップフロップf304〜f306が′l
″から”O”(使用中から非使用中)になったときに行
なわれる。この変更を制御するのが変更制御回路b39
3である。f 380 f 381 f 382 Instruction execution order 0 0 0 QO-)
Ql →Q20 0 1 Q
O→Q2→Q10 1 0
Ql->Q2→Q00 1 1
Ql → QO → Q21 0
0 Q2→QO-+Q11 0
1 To change the execution order of Q2→Q1→QO instructions, flip-flops f304 to f306 are
” to “O” (from in use to not in use). This change is controlled by the change control circuit b39.
It is 3.
回路b393には、フリップフロップf304〜f30
6の出力Q323〜Q325と現在の起動状態を表わす
フリップフロップf380〜f382の出力Q396〜
Q398が入力され、次の起動状態が線Q376〜Q3
78に出力されて、再びフリップフロップf380〜「
382にセットされる。回路b393の内部では、命令
キューレジスタq301内の一つの命令が起動され線Q
323〜(1325がパビ′から” o ”に変化した
時点をとらえ、次のように線Q396〜Q398の内容
から、出力を作成し、線ρ376〜Q378にのせる。The circuit b393 includes flip-flops f304 to f30.
6 outputs Q323-Q325 and outputs Q396-Q380 of flip-flops f380-f382 representing the current activation state.
Q398 is input and the next activation state is on lines Q376 to Q3.
78, and the flip-flops f380~'
It is set to 382. Inside the circuit b393, one instruction in the instruction queue register q301 is activated and the line Q
323-(1325 captures the point in time when it changes from pavi' to "o", creates an output from the contents of lines Q396-Q398 as follows, and places it on lines ρ376-Q378.
すなわち、命令キューレジスタq301内の残りの二つ
の命令を先ず起動し、かつ、このとき、この二つの命令
の起動順序はそれまでにフリップフロップr380−f
382が指定していた順序とし、これらの二つの命令の
起動後に、今回起動された命令のかわりに新たに命令キ
ューレジスタにストアされた命令を起動するように、フ
リップ20ノブf380〜f382をセットする。That is, the remaining two instructions in the instruction queue register q301 are activated first, and at this time, the activation order of these two instructions is such that the flip-flops r380-f
382, and set flip 20 knobs f380 to f382 so that after activating these two instructions, the instruction newly stored in the instruction queue register will be activated instead of the currently activated instruction. do.
(])MQ323がII [、、→rl O′pとなっ
たとき。(]) When MQ323 becomes II [,,→rl O'p.
(2)線Q324が″ビ′→” o ”となったとき、
(3) 線Q325が′l″→” o ” となった
とき、なお、線Q323〜Q325が同時に″ビ′→”
o ”になることはない。なぜならば−命令ずつ起動
するからである。(2) When the line Q324 changes from "bi' to "o",
(3) When the line Q325 changes from ``l'' to ``o'', the lines Q323 to Q325 change from ``bi'' to ``o'' at the same time.
o'' because it is activated one by one.
命令キューレジスタq30+中のいずれの命令をも起動
可能とするためには、命令キューレジスタ中のすべての
命令について、リソースおよびベク1へルレジスタの使
用状況のチェックを行ない、かつ、命令キューレジスタ
上のすべての命令間のべり1−ルレジスタの競合チェッ
クを行なう必要がある。第8図においてレジスタq30
20〜q 3022 (Q S RO/ 1 / 2
)は命令キューレジ゛スタq301中の命令が要求する
リソースの種類を保持するもので、第3図のQSレジス
タq 302 II弓こあるものである。ただし1本変
形例においては、各レジスタq3020〜q3030か
ら、○Pとは無関係に直接リソース使用要求を送出する
信g線が設けられている。この各命令のリソース要求と
、リソースの状態を管理するR S S Wレジスタr
304の内容が5第3図のリソース使用チェック回路b
306にかえて本変形例で設けられたリソース使用チェ
ック回路b380〜b382でチェックされ、それぞれ
からリソースが空いているかどうかを示す信号が線12
380〜Q382に、使用可能なリソースの種類と番号
が線Q383〜Q385に出力される。In order to be able to start any instruction in the instruction queue register q30+, check the resource and vector 1 register usage status for all instructions in the instruction queue register, and It is necessary to check for conflicts in registers between all instructions. In Figure 8, register q30
20~q 3022 (Q S RO/ 1/2
) holds the type of resource required by the instruction in the instruction queue register q301, and is similar to the QS register q302 II in FIG. However, in this modification, a signal g line is provided to directly send out a resource use request from each register q3020 to q3030, regardless of ○P. The RSSW register r manages resource requests for each instruction and resource status.
The content of 304 is 5Resource usage check circuit b in Figure 3
306 is checked by resource usage check circuits b380 to b382 provided in this modification, and a signal indicating whether or not the resource is vacant is sent from each to line 12.
380 to Q382, the types and numbers of available resources are output to lines Q383 to Q385.
リソース使用チェック回路b380〜b382は、第5
図で説明した回路b305とまったく同一構成を有する
。第8図において、QGRO〜QGR2レジスタq30
30〜(!3032は、命令キュー中の各命令が要求す
るレジスタの番号等を記憶しているもので、第3図のQ
Gレジスタq303中にあるものである。この各命令の
レジスタ要求と、ベクトルレジスタの状態を管理するR
GSWレジスタr306の内容が9本変形例において新
たに設けられたレジスタ使用チェック回路b383〜b
385でチェックされ、要求するすべてのベクトルレジ
スタが使用可能かどうかを示す信号がQ386〜Q38
8に出力される。これらのレジスタ使用チェック回路は
、第6図で説明した回路b307とまったく同一である
。また、各命令の要求するベタ1−ルレジスタ間の競合
をチェックするために1本変形ffl+で新たに設けら
れたレジスタ競合チェック回路b386〜b391が使
用される。命令キューレジスタ中の各命令の実行順序は
どのようなものでも許されるようにしたい。命告キュー
レジスタ中に3命令分保持できる局舎には。ある命令が
他の2命令に優先して起動さピるために2つのチェック
回路が必要で、それh−3命令分必要であるから、計6
個のレジスタ競合チェック回路b386〜b391が必
要となる。The resource use check circuits b380 to b382 are the fifth
It has exactly the same configuration as the circuit b305 explained in the figure. In FIG. 8, QGRO to QGR2 register q30
30~(!3032 stores the register number etc. required by each instruction in the instruction queue.
This is in the G register q303. R that manages register requests for each instruction and the state of vector registers.
The contents of the GSW register r306 are 9.Register usage check circuits newly provided in the modified example b383 to b
385, and a signal indicating whether all requested vector registers are available is sent to Q386-Q38.
8 is output. These register usage check circuits are exactly the same as the circuit b307 described in FIG. In addition, register conflict check circuits b386 to b391 newly provided in the single modified ffl+ are used to check conflicts between the standard registers required by each instruction. We want to allow any order of execution of the instructions in the instruction queue register. There is a station that can hold 3 instructions in the instruction queue register. Two check circuits are required in order for one instruction to be activated with priority over the other two instructions, which is equivalent to h-3 instructions, so a total of 6 check circuits are required.
register conflict check circuits b386 to b391 are required.
回路b386は、QGROのR1〜R3フィール1−と
Q G R1のR1〜R3フィールドとが入力され、前
者が後者の各々に対してレジスタ競合チェックを行い、
いずれのフィールドにもレジスタ競合が検出されないと
き、線Q390にII I IIを出力する。第7図の
レジスタ競合チェック回路b309と同一構成を有する
。回路b386には、フリップフロップf305の出力
線Q324も入力されており、回路b309 (第7図
)と同様に、この信号線Q324が″0″のときには、
無条件に線Q、390にII 11.を出力する。同様
に回路b387は、QGRIの各フィールドがQGRO
の各フィールドに対してレジスタ競合を有しないかをチ
ェックする回路である。同様に回路b688〜b391
はそれぞれQGR2に対してQGRIの、QGRIに対
してQGR2の、QGROに対してQGR2の、QGR
2に対してQGROの、レジスタ競合をチェックするも
のである。これらのレジスタ競合チェック回路b386
〜b391の出力線Q390〜Q395は命令選択回路
b394に人力される。命令選択回路b394には、先
に述べた、リソース使用チェック回路b380−b38
2の出力線Q380〜Q382、レジスタ使用チェック
回路b383〜b385の出力線Q386〜Q388、
命令の起動順序を指定するフリップフロップf380〜
f382の出力および命令キューレジスタ中に実行可能
な命令が入っていることを示すフリップフロップf30
4〜f306の出力線Q323〜Q325も入力され、
ベクトルレジスタ、リソースに空きがあり、かっぺり1
〜ルレジスタの使用上、競合が生じない命令キューレジ
スタ中の命令が命令選択回路、b394にて選択されて
、選択された命令の命令キューレジスタ中の番号がアウ
トポインタ○Pとして0.329に、命令キューレジス
タ中の命泊が選択されたことを示す信号が線Q321に
出力される。The circuit b386 receives the R1-R3 field 1- of QGRO and the R1-R3 field of QG R1, and the former performs a register conflict check on each of the latter.
When no register conflict is detected in any field, II II II is output on line Q390. It has the same configuration as the register conflict check circuit b309 in FIG. The output line Q324 of the flip-flop f305 is also input to the circuit b386, and similarly to the circuit b309 (Fig. 7), when this signal line Q324 is "0",
Unconditionally line Q, 390 to II 11. Output. Similarly, in circuit b387, each field of QGRI is QGRO.
This is a circuit that checks whether there is any register conflict for each field in the field. Similarly, circuits b688 to b391
are QGR2 to QGR2, QGR2 to QGRI, QGR2 to QGRO, and QGR
This is to check the register conflict of QGRO with respect to 2. These register conflict check circuit b386
Output lines Q390 to Q395 of ~b391 are manually inputted to an instruction selection circuit b394. The instruction selection circuit b394 includes the resource usage check circuits b380 to b38 described above.
2 output lines Q380 to Q382, output lines Q386 to Q388 of register use check circuits b383 to b385,
Flip-flop f380~ that specifies the instruction activation order
Output of f382 and flip-flop f30 indicating that an executable instruction is in the instruction queue register
Output lines Q323 to Q325 of 4 to f306 are also input,
Vector register, resources are empty, full 1
When using the ~le register, an instruction in the instruction queue register that does not cause a conflict is selected by the instruction selection circuit b394, and the number of the selected instruction in the instruction queue register becomes 0.329 as an out pointer ○P. A signal indicating that the instruction queue in the instruction queue register has been selected is output on line Q321.
命令選択回路b394の詳細を第9図に示す。Details of the instruction selection circuit b394 are shown in FIG.
アンドゲートg383には、フリップフロップ「304
の出力5Q 323、リソース使用チェック回路b38
0の出力線12380. レジスタ使用チェック回路
b383の出力線Q386、レジスタ競合チェック回路
b386.b39+の出力線1390.395が入力さ
れ、これらの入力かすノ\でかLL I ++のときに
、アントゲ−1−g 3 g 3の出力線Q370が”
] ”になる。これは、命令キューレジスタ中の第0
番の命令QOが実行してよいことを示す。同様に、アン
トゲ−1〜g384゜g385にも命令キューレジスタ
の第1.第2番に関する信号線が入力され、線Q371
゜Q372に出力される。線Q370−Q372は。The AND gate g383 has a flip-flop "304
Output 5Q 323, resource usage check circuit b38
0 output line 12380. Output line Q386 of register usage check circuit b383, register conflict check circuit b386. The output line 1390.395 of b39+ is input, and when these inputs are LL I ++, the output line Q370 of Antogame 1-g 3 g 3 is "
]”. This is the 0th position in the instruction queue register.
Indicates that the numbered instruction QO may be executed. Similarly, the first . The signal line related to No. 2 is input, and the line Q371
゜Output to Q372. The line Q370-Q372 is.
同時に” t ”になることもありうる。後Q370−
Q372はオアゲー1〜g387に入力され、いずれか
1つでも命令実行が可能のときには、オアゲートg38
7の出力線Q321をII 111とする。It is also possible that it becomes "t" at the same time. rear Q370-
Q372 is input to or gate g387, and if any one of them can execute the command, it is input to or gate g38.
The output line Q321 of No. 7 is designated as II 111.
線Q370〜Q372に出力された命令実行可能を示す
信号から、いずれを選択するかは命令実行順序判定回路
b395にて行なわれる。回路b395には、線Q37
0〜Q372のほかに、命令実行順序を示すフリップフ
ロップf380〜f382の出力線Q396〜Q398
が入力され、次のようにして実行すべき命令キューレジ
スタ上の番号が線Q329に出力される。線Q329は
実際には2本(7)lQ3290(上位)、Q329L
(下位)からなり、2本で2進数00,01゜10をあ
られして、命令キューレジスタ内の命令の番号を示すこ
ととする。The instruction execution order determining circuit b395 selects one of the signals output to lines Q370 to Q372 indicating that the instruction is executable. The circuit b395 has a line Q37.
In addition to 0 to Q372, output lines Q396 to Q398 of flip-flops f380 to f382 indicate the instruction execution order.
is input, and the number on the instruction queue register to be executed is output to line Q329 as follows. There are actually two lines Q329 (7) lQ3290 (upper), Q329L
(lower), and the binary numbers 00, 01°10 are represented by two lines indicating the number of the instruction in the instruction queue register.
(1)線l1396〜Q398が”o” ”o” ”o
”のとき
Q 370 Q 371 Q :372
Q :’1290 Q 32!111
* * OO(*はド
ントケアを示す)
(2)Ji!1Q396〜Q398がrl Orr #
l O++ 1″ビ′のとき
Q 370 Q 371 Q 372 Q 32
90 Q 3291i * *
o 。(1) Lines l1396 to Q398 are “o” “o” “o”
” Q 370 Q 371 Q: 372
Q:'1290 Q 32!111
* * OO (* indicates don't care) (2) Ji! 1Q396~Q398 is rl Orr #
l O++ When 1″ Bi’ Q 370 Q 371 Q 372 Q 32
90 Q 3291i * *
o.
(3)jljAQ39G−Q39BがII Ou +1
1 ++ II O++のとき
Q 370 Q 371 Q 372 Q
3290 Q 3291* 1
* 0 1(4) !
ff396−Q398が”O” ”1” ”l”のとき
Q 370 Q 371 Q 372 Q
3290 Q 32910 0 1
1 0゜* 1 *
O1
(5)線Q396−2398が”1” ”O” ”O”
のとき
Q 370 Q 371 Q 372 Q
3290 Q 3291* *
l I 0(
6)ap396−n39sが” 1 ” ”0” ”
I ”のとき
Q 370 Q 371 Q 372 fl 3
290 u 3291* * I
I O向合選択回路b394の出力である
線Q329゜線Q321を、第3図においてそれぞれア
ウトポインタ(○P)レジスタr311の出力、線Q3
29およびアントゲ−1〜g305の出力線Q321の
かわりに使用すればよい。したがって。(3) jljAQ39G-Q39B is II Ou +1
1 ++ II When O++ Q 370 Q 371 Q 372 Q
3290 Q 3291* 1
*0 1 (4)!
When ff396-Q398 is "O""1""l" Q 370 Q 371 Q 372 Q
3290 Q 32910 0 1
1 0゜* 1*
O1 (5) Line Q396-2398 is “1” “O” “O”
When Q 370 Q 371 Q 372 Q
3290 Q 3291* *
l I 0(
6) ap396-n39s is “1” “0””
Q 370 Q 371 Q 372 fl 3
290 u 3291 * * I
In FIG. 3, the output of the I/O direction selection circuit b394, the line Q329, and the line Q321 are respectively the output of the out pointer (○P) register r311 and the line Q3.
It can be used in place of the output line Q321 of 29 and Antogame 1 to g305. therefore.
第3 IIのアラ1−ホインタレジスタr311.3進
カウンタb315、セレクタ5303.アントゲh g
305は不用となる。3rd II Arara 1 - Pointer register r311. Ternary counter b315, selector 5303. Antoge h g
305 becomes unnecessary.
なお、第8図中のセレクタ5380は命令キューレジス
タ中の命令が要求するリソースの種類。Note that the selector 5380 in FIG. 8 indicates the type of resource required by the instruction in the instruction queue register.
番号をアラ1−ポインタ(線Q329上にある)に従が
って選択するもので5この出力線Ω311が。Select the number according to the 1-pointer (located on line Q329) and this output line Ω311 is 5.
第3図のリソース使用チェック回路b306の出力線の
かわりに使用される。It is used in place of the output line of the resource usage check circuit b306 in FIG.
以上のべたように、本発明により命令制御ユニットでは
、読出された命令を次々と解読し、起動できる命令は次
々と起動し、起動できない命令は命令キューレジスタに
入れていく。かつ、リソースが空きベク1へルレジスタ
が使用可能となると、ベクトルレジスタの使用順序に制
約がないことを条件に、解読した順序に関係なく命令を
起動していくことにより、リソース、ベタ1〜ルレジス
タが空いている時間を短縮させ、より短時間に命令を処
理させることができる。As described above, according to the present invention, the instruction control unit decodes read instructions one after another, activates instructions that can be activated one after another, and places instructions that cannot be activated into an instruction queue register. Then, when the vector 1 to 1 register with an empty resource becomes available, the resource and the vector 1 to 1 register can be used by activating instructions regardless of the order in which they are decoded, provided that there are no restrictions on the order in which vector registers are used. It is possible to shorten the idle time and process instructions in a shorter time.
■ ベクトルレジスタ要素ノ1〜
(1)概要
第10図は、ベクトルレジスタユニットU4は、ベクト
ルレジスタ制御ユニツI−’U 40と、ベクトルレジ
スタデータユニノl−041に分けられる。(2) Vector Register Element No. 1 to (1) Overview In FIG. 10, the vector register unit U4 is divided into a vector register control unit I-'U 40 and a vector register data unit I-041.
ベクトルレジスタ制御ユニノhU40では命令制御ユニ
ノ1〜U3よりの指令にもとづいて、ベタ1−ルレジス
タデータユニノ1〜041中にあろベクトルレジスタV
Rから必要なデータを読出し、演算器[J20.U21
、メモリ・リクエスタU20゜0+1(第5図)に送出
する制御、および演算器1J20.U21.メモリ・リ
クエスタU10゜Ullから送出されてくるデータをベ
クトルレジスタVRに書込む制御を行なう。また、ベク
トルレジスタVRの使用の終了を命令制御ユニットU3
に知らせる。In the vector register control unit hU40, based on the commands from the command control unit 1 to U3, the vector register V is set in the vector register data unit 1 to 041.
The necessary data is read from R, and the arithmetic unit [J20. U21
, control sent to memory requester U20°0+1 (FIG. 5), and arithmetic unit 1J20. U21. Controls writing of data sent from memory requester U10°Ull into vector register VR. Also, the instruction control unit U3 terminates the use of the vector register VR.
Let me know.
ベクトルレジスタVRの各々は3数のベクトル・要素を
保持するものであるが、ここでは従来技術ど同様、メモ
リ素子で構成されることとする。このため、書込みまた
は読出しアドレスを指示するためのアドレスカウンタ(
詳細後述)がベタ1−ルレジスタVRごとに存在する。Each of the vector registers VR holds three vector elements, but here it is assumed that it is constituted by a memory element as in the prior art. Therefore, an address counter (
(Details will be described later) exist for each solid register VR.
これらのアドレスカウンタは、ベクトルレジスタ制御ユ
ニノ1〜U4Oより制御される。These address counters are controlled by vector register control units 1 to U4O.
ベクI・ルレジスタVRからのベタ1−ル要素の読み出
しは、ベグ1−ルレジスタ制御ユニツ1〜U40の制御
下で1次のように行われるのに注意すべきである。本実
施例では、ある命令の実行により。It should be noted that the readout of vector elements from vector register VR is carried out in a linear manner under the control of vector register control units 1 to U40. In this embodiment, by executing a certain instruction.
あるベクトルレジスタVRにベクトルデータの要素を書
込み巾のときに、そのベタ1〜ルレジスタを読出したい
後続の命令があれば、このベクトルレジスタへ任意数の
要素が書込ま九た時点で、書込み動作と並行して読出し
動作が開始されるように、ベタ1〜ルレジスタのチェイ
ニングを行う。しかも、このチェイニングでは、先行す
る命令による書込み動作が間欠的に行なわれる場合には
、それに応じて後続の命令による読出しも間欠的に行な
われる。さらに、ある命令が読出し用に二つのべり1−
ルレジスタを用いる場合にあっては、これらのベクトル
レジスタの少くとも一方に一部のベクトルレジスタ要素
しか書込まれていない場合であっても、これらのベクト
ルレジスタに書込まれたベクトル要素の内、同一番号の
要素を対にして読出す動作を開始する。しかも、これら
のベクトルレジスタへの残りの要素が[1口公的にg込
まれる場合には、同−n号の一対の要素が同時に読出し
可能になるごとに、この−・対の要素を読出す。When an element of vector data is written to a certain vector register VR, if there is a subsequent instruction that wants to read the entire register, the write operation is executed as soon as an arbitrary number of elements have been written to this vector register. Chaining of all registers is performed so that read operations are started in parallel. Moreover, in this chaining, if the write operation by the preceding instruction is performed intermittently, the read operation by the subsequent instruction is also performed intermittently. Furthermore, a certain instruction has two edges 1-
When using vector registers, even if only some vector register elements are written to at least one of these vector registers, the vector elements written to these vector registers are Start reading out elements with the same number in pairs. Moreover, if the remaining elements to these vector registers are publicly input, each time a pair of elements of the same number -n become readable at the same time, the elements of this pair are read. put out.
演0 ’JA’jに供給されるベクトルデータは、通常
、1ミ記憶から読出され、一旦ベクトルレジスタに人士
りら71シ、そこから1寅算a](に供給さ才りる。デ
ータの読出しはマシンクロックに同期して行なわれるが
、主記憶から読出さJしろベタ1−ル要素は、主記憶上
の読出しの競合(たとえば2つのメモリ・リクエスタの
同時動作時に生ずる)からマシンサイクルごとにベクト
ルレジスタに連続して書込まれるとは限らない。このと
き、演算器に供給すl\きベクトル要素データは、間欠
的にベクトルレジスタに到着し、9込まれていく。この
ような条件のもとでも、!込みと並行して読出し動作(
チェイニング)を11ない、また、命令が二つのベタ1
−ルレジスタを必要とするときには演算器に対し、2つ
のベタ1−ルレジスタの同一ベクトル要素番号のベタ1
−ルデータを同時に0(給するようにすることにより、
命令の実行開始を早める三とができる。The vector data supplied to the operation 'JA'j is normally read out from the memory, stored in the vector register, and then supplied to the 'JA'j. is performed in synchronization with the machine clock, but the unreadable elements read from main memory are processed every machine cycle due to read contention on main memory (for example, which occurs when two memory requesters operate simultaneously). It is not always written to the vector register continuously. At this time, the vector element data supplied to the arithmetic unit intermittently arrives at the vector register and is written into the vector register. Even in the original, the read operation (!) is performed in parallel with the !
Chaining) is 11, and the command is 2 solid 1
- When a single register is required, the operator is asked to specify the single value of the same vector element number in the two single registers.
- By simultaneously supplying 0 (zero) data,
Three things can be done to speed up the start of command execution.
(11)ベク1へルレジスタ制御二二ソ1〜の概要ベク
トルレジスタ制御ユニツ1〜U40は第11図に示すよ
うに、命令起動制御回路b400と、ベクトルレジスタ
VRO〜VR7の各々に対応したベクトルレジスタ制御
回路b410〜b417と、演算器U20.U21とメ
モリ・リクエスタUIO,Ullの各々に対応したオペ
ランド制御回路b420−b423と、オペランド制御
@路b420〜b423からの出力をそれぞれ保持する
フリップフロップf400〜f407、および。(11) Overview of vector register control unit 1 to vector register control unit 1 to U40, as shown in FIG. Control circuits b410 to b417 and arithmetic unit U20. Operand control circuits b420 to b423 corresponding to U21 and memory requestors UIO and Ull, respectively, and flip-flops f400 to f407 holding outputs from operand control @paths b420 to b423, respectively.
リソース−レジスタ変換回路(以下S−G変換回路とよ
ぶ)b401.b404.b405、レジスターリソー
ス変換回路(以下G−3変換回路とよぶ)b402.b
403から成る。a−5変換回路b402.b403は
、命令制御ユニットU3により指定される読出し用の−
っ又は二つのベクトルレジスタ番号に対する。ベクトル
レジスタ制御回路b410〜b417のいずれか二つか
らの信号を、命令制御ユニツ1〜U3により指定される
リソース番号に対する、オペランド制御回路b/I20
〜b427の−っへ送出するものであり。Resource-register conversion circuit (hereinafter referred to as SG conversion circuit) b401. b404. b405, register resource conversion circuit (hereinafter referred to as G-3 conversion circuit) b402. b
Consists of 403. a-5 conversion circuit b402. b403 is a - for reading specified by the instruction control unit U3.
or for two vector register numbers. The operand control circuit b/I20 sends signals from any two of the vector register control circuits b410 to b417 to the resource numbers designated by the instruction control units 1 to U3.
It is sent to - of ~b427.
S−G変換回路b401 (又はb404とb 4’
05 )は命令制御ユニソI−U 3により指定され
た番号のリソース(又はこれに対するオペランド制御回
路b420〜b427)から送られてくる信号を、命令
制御ユニットU3により指定された書込み用のベタ1〜
ルレジスタ番号に対応するベグ1〜ルレジスタ制御回路
b460〜b467の一つ(又はこの番号のベクトルレ
ジスタ)へ送出するものである。SG conversion circuit b401 (or b404 and b4'
05) converts the signal sent from the resource with the number specified by the instruction control unit U3 (or the operand control circuits b420 to b427 for this) into the writing solids 1 to 1 specified by the instruction control unit U3.
The signal is sent to one of the vector register control circuits b460 to b467 (or the vector register of this number) corresponding to the vector register number.
まず、命令起動制御回路b400が命令制御ユニットU
3より、起動信号(線Q10上)、命令コード(線12
11上)、レジスタ番号(線Q12上)、リソース種類
番号(線Q13上)、処理ベクトル長(線Q14上)を
受けとり、命令コードがベクトルレジスタの使用を必要
とするもののときには、次のように動作する。First, the instruction activation control circuit b400 starts the instruction control unit U.
3, start signal (on line Q10), instruction code (on line 12)
11), register number (on line Q12), resource type number (on line Q13), and processing vector length (on line Q14), and if the instruction code requires the use of vector registers, use the following: Operate.
(1)S−G変換回路、b401.b404゜b405
.G−S変換回路、b402゜b403に変換に必要な
リソース番号とベクトルレジスタ番号、および、それら
のセット信号を送出する。(1) SG conversion circuit, b401. b404゜b405
.. The resource numbers and vector register numbers necessary for conversion, and their set signals are sent to the G-S conversion circuits b402 and b403.
(2) ベクトルレジスタ制御回路b41Q〜b41
7のうち、指定されたベクトルレジスタ番号のものに、
書込み、または読出しの起動信号を出す。(2) Vector register control circuit b41Q to b41
7, the one with the specified vector register number,
Issues a write or read start signal.
(3) オペランド制御回路b420〜b423のう
ち、指定されたリソースの種類と番号に対する回路に、
ベクトル長データと、そのセット信号、および、オペラ
ンドを1つしが使用しない命令においては、それを指示
する信号を出す。(3) Among the operand control circuits b420 to b423, the circuit corresponding to the specified resource type and number is
For instructions that do not use vector length data, its set signal, or at least one operand, a signal indicating this is issued.
命令実行時には1次のように制御信号が伝達される。こ
こでは、ベクトルレジスタ0および1からデータを読出
して演算器0で演算し、結果をベクトルレジスタ7に書
込む命令の実行時の動作について説明する。When an instruction is executed, a control signal is transmitted in a first-order manner. Here, the operation at the time of execution of an instruction to read data from vector registers 0 and 1, perform arithmetic operations on arithmetic unit 0, and write the result to vector register 7 will be described.
ベクトルレジスタOにであるベクトル要素の読出しが可
能になると、ベクトルレジスタ制御回路b410からベ
クトルレジスタ読出し許可信号が線Q480に出力さJ
しる。同しく、ベクトルレジスタ制御回路b411から
も線Q481に、ベクトルレジスタIでのベタ1−ルレ
ジスタ読出し許可信号が出力される。G−3変換回路b
402゜b403にて線Q480. Q481の信号
は、演算器Oに対する出力線Q490,0500に伝え
られ、オペランド制御回路b420に入力れされる。オ
ペランド制御回路b420は、これらのベクトルレジス
タ読出し許可(:′i号が同時に存在することを条件に
1ベク1−ル要素ごとのベクトルデータ送出信号を作成
し、 1i! (l S 20に出力する。この信号は
、フリップフロップf401で一旦受けた後、線Q43
にて演算器0にデータ有効信号として送られる。一方、
線Q520上のデータ送出(,1号はS−C変換回路b
404.b405にも入力さ汎、それぞれによりベタ1
−ルレジスタ番号0゜1に対応した線Q540.Q55
1に出力され、ぞれぞれ、オアゲー1− g400又は
g401および線Q470とQ 471により、ベクト
ルレジスタデータユニツ1〜U41(第10図参照)中
にあるベクトルレジスタOと1に対する読出しアドレス
カウンタ(後述)の更新に使用される。本発明では、ベ
クトル要素データ送出信号(線Q520上にある)を作
成した後、はじめて、ベタ1〜ルデータの読出し用のア
ドレスカウンタ(後述)を。When it becomes possible to read a certain vector element in the vector register O, a vector register read permission signal is output from the vector register control circuit b410 to the line Q480.
Sign. Similarly, the vector register control circuit b411 also outputs a full register read permission signal for the vector register I to the line Q481. G-3 conversion circuit b
Line Q480 at 402°b403. The signal of Q481 is transmitted to the output line Q490, 0500 for the arithmetic unit O, and is input to the operand control circuit b420. The operand control circuit b420 creates a vector data sending signal for each vector element on the condition that these vector register read permissions (:'i exist simultaneously), and outputs them to the S20. This signal is once received by the flip-flop f401 and then sent to the line Q43.
The data is sent to the arithmetic unit 0 as a data valid signal. on the other hand,
Data transmission on line Q520 (No. 1 is S-C conversion circuit b
404. b405 is also input, each is solid 1
- line Q540.corresponding to register number 0°1. Q55
1, respectively, and read address counters for vector registers O and 1 in vector register data units 1 to U41 (see FIG. 10) by lines Q470 and Q471, respectively (described later) is used for updating. In the present invention, after the vector element data sending signal (on line Q520) is created, the address counter (described later) for reading the flat data is activated.
次のアドレスに更新する点が特長の一つである。One of its features is that it updates to the next address.
実際にデータをよみ出す動作は、2つ(ここではベクト
ルレジスタOと1)のオペランドのデータ読出しが可能
になったことを確ごしてから行なうわけである。The operation of actually reading data is performed after confirming that it is possible to read data from two operands (vector registers O and 1 in this case).
さて、データ有効信号v(L@1243上)と、ベタ1
〜ル要素データが演算器0に送られ、演算されると演算
結果が線Q45(第10図)を介してベク1へルレジス
タデータユニノhU41に、データ有効信じVが線24
6を介してベタ1−ルレジスタ制御ユニy h U 4
0に戻さ!しる。このデータ有効信号■は、S−G変換
回路b401により書込みベク1へルレジスタ#7に対
応するaQ437に伝えらhる。線Q437の信号に応
答して、ベクトルレジスタ制御回路b417は、ベクト
ルレジスタ7への、!F込みアj〜゛レスカウンタ更新
信号をgl・127を介してベグ1−ルレジスタデータ
ユニノ1〜【J41に伝えるとともに、ベクトルレジス
タ制御回路令コー
のどのべり1〜ル要素まで書込みを行なったかのポイン
タ(後述)の管理に使用する。このポインタは、バク1
−ルレジスタ7を書込みながら、後続の命令でのこのベ
クトルレジスタ読出しに使用する際に、g込んだベクト
ル要素までを読出すように制御するために使用される。Now, the data valid signal v (on L@1243) and the solid 1
~ element data is sent to the arithmetic unit 0, and when it is calculated, the calculation result is sent to the vector 1 register data unit hU41 via the line Q45 (Fig. 10), and the data valid belief V is sent to the line 24.
6 through the register control unit y h U 4
Return it to 0! Sign. This data valid signal (2) is transmitted by the SG conversion circuit b401 to aQ437 corresponding to write vector 1 register #7. In response to the signal on line Q437, vector register control circuit b417 controls ! to vector register 7. In addition to transmitting the F-included address j ~ ゛ address counter update signal to the vector register data unit 1 ~ [J41 via gl 127, it also writes to any side 1 ~ element of the vector register control circuit command code. Used to manage small pointers (described later). This pointer is
- This is used to control reading of vector elements up to the input vector element when the vector register is used for reading in a subsequent instruction while writing to the vector register 7.
最終ベクトル要素を演算器0に送出する際に、そ九が最
終であることを指定するためにオペランド制tH回路b
420から、ベタ1〜ルデータ送出信号と同期して最終
ベクトルデータ信号Eが線Q510に出さオLる。つま
り、回路b420は、命な実行開始時にセットされる処
理ベクトル長を憶えておき、この数だけ、ベタ1−ルデ
ータ送出信号を出すと、最終ベタ1−ルデータ信号を出
すようにもが成されている。この信号は、フリップフロ
ップf400で一旦記憶さ九た後演算r10に線240
により送出され1最終演算結果と同J[(、て、線ρ4
4によりS−G変換回路b401に戻されてくる。線Q
44はS−G変換回路b401によりベクトルレジスタ
7に対応する線Q427に伝達され、ベタ1−ルレジス
タ制御回路b417に入力さ汎る。制御回路b417は
ベクトルレジスタ7への書込み動作を終了させるととも
に、線12I6にて、命令制御ユニットU3に、バク1
−ルレジスタ7の書込が終了したことを伝える。一方、
オペランド制御回路b420からの出力線R510上の
最終ベクトルデータ信号EはS−G変換回路b404.
b405にも入力されて、ベクトルレジスタ0,1に対
応する線Q530およびQ531に出力され、さらにオ
アゲートg410゜g411を経て、線Q460. Q
461により、ベクトルレジスタ制御回路b410.b
411に入力され、ベクトルレジスタの読出し動作を終
了させるとともに、線Q15にて、命令制御ユニットU
3に、ベクトルレジスタ0.1の読出しが終了したこと
を伝える。When sending the final vector element to arithmetic unit 0, operand control tH circuit b is used to specify that the final vector element is final.
From 420, the final vector data signal E is output to line Q510 in synchronization with the solid data transmission signal. In other words, the circuit b420 is configured to memorize the processing vector length that is set at the start of critical execution, and output the final beta data signal after issuing this number of beta data sending signals. ing. This signal is once stored in the flip-flop f400 and then sent to the line 240 in the calculation r10.
The same J[(, te, line ρ4
4, it is returned to the SG conversion circuit b401. Line Q
44 is transmitted to the line Q427 corresponding to the vector register 7 by the SG conversion circuit b401, and input to the vector register control circuit b417. The control circuit b417 terminates the write operation to the vector register 7, and also sends the instruction control unit U3 to the vector register 7 via the line 12I6.
- Informs that writing to register 7 has been completed. on the other hand,
The final vector data signal E on the output line R510 from the operand control circuit b420 is sent to the SG conversion circuit b404.
b405, is output to lines Q530 and Q531 corresponding to vector registers 0 and 1, and further passes through OR gates g410 to g411 to lines Q460. Q
461, the vector register control circuit b410. b
411 to terminate the read operation of the vector register, and the command control unit U is input to the line Q15.
3 to inform that the reading of vector register 0.1 has been completed.
(iii)命令起動制御回路
第12図に示すように、命令起動制御回路b400は命
令制御ユニットU3よりそれぞれ線Q10〜QL4を介
して入力される命令起動信号ST、命令コード使用レジ
スタ番号と使用形態。(iii) Instruction activation control circuit As shown in FIG. 12, the instruction activation control circuit b400 receives an instruction activation signal ST, an instruction code use register number, and a usage pattern input from the instruction control unit U3 through lines Q10 to QL4, respectively. .
使用リソース種類と番号、処理ベクトル長をそれぞれフ
リップフロップf410、レジスタRGR。The resource type and number used and the processing vector length are stored in the flip-flop f410 and register RGR, respectively.
r400.RIG、r401.R2H,r402゜RV
IR,r403にいずれも命令起動信号STに応答して
セットする。r400. RIG, r401. R2H, r402゜RV
Both IR and r403 are set in response to the instruction activation signal ST.
フリップフロップf410の出力は、S−G/a−S変
換回路402〜405(第14図)他への情報のセット
信号として、線Q419により送り出されるとともに、
内部での各種データ信号の作成に使用される。The output of the flip-flop f410 is sent out via a line Q419 as an information set signal to the S-G/a-S conversion circuits 402 to 405 (FIG. 14) and others.
Used to create various data signals internally.
RGR,r400の内容から、S−G変換回路。From the contents of RGR, r400, SG conversion circuit.
G−8変換回路(第11図)に与えるレジスタ番号と、
ベクトルレジスタ制御回路、ベクトルレジスタデータユ
ニットに与える初期化/起動信号を作成する。通常のベ
クトル命令では、RIフィールドで書込みベクトルレジ
スタ、R2/R3フィールドで読出しベクトルレジスタ
を使用する。このため、第11図のS−G変換回路b4
01には。The register number given to the G-8 conversion circuit (Figure 11),
Creates an initialization/activation signal to be given to the vector register control circuit and vector register data unit. A normal vector instruction uses a write vector register in the RI field and a read vector register in the R2/R3 fields. For this reason, the SG conversion circuit b4 in FIG.
In 01.
R1フィールドのレジスタ番号を、G−5変換回路b4
02、S−G変換回路b404にはR2フィールドのレ
ジスタ番号を、a−S変換回路b403、S−G変換回
路b405には、R3フィールドのレジスタ番号を与え
ればよい、しかし、第2図での説明に述べたように、主
記憶にベクトルデータを格納する命令においては、R1
フィールドは読出し用のベクトルレジスタ番号を指定す
るのでR1フィールドのレジスタ番号を、通常のR2フ
ィールドのレジスタ番号を送出する信号線に乗せ替える
必要がある。このために、RGRr400のGNIフィ
ールドとv1フィールドは併せて線a439を介して、
S−G変換回路b401に送出されるとともに、セレク
タ5400に第1の組として入力される。一方、レジス
タr400のGN2とv2フィールドは第2の組として
セレクタ5400に入力され、このいずれがが選択され
て、線Q449にて、S−G変換回路b404.G−8
変換回路b402に送出される。The register number of the R1 field is converted to the G-5 conversion circuit b4.
02, it is sufficient to give the register number of the R2 field to the S-G conversion circuit b404, and the register number of the R3 field to the a-S conversion circuit b403 and the S-G conversion circuit b405. As mentioned in the explanation, in the instruction to store vector data in main memory, R1
Since the field specifies the vector register number for reading, it is necessary to transfer the register number of the R1 field to the signal line that normally sends the register number of the R2 field. For this purpose, the GNI field and v1 field of RGRr400 are transmitted together via line a439,
It is sent to the SG conversion circuit b401 and is also input to the selector 5400 as the first set. On the other hand, the GN2 and v2 fields of the register r400 are input to the selector 5400 as a second set, and one of them is selected and the SG conversion circuit b404. G-8
It is sent to the conversion circuit b402.
このセレクタ5400の選択制御はデコーダb438が
行い、RIRr401内の命令コードが主記憶にベクト
ルデータを格納する命令に対するものか否かに応じて前
者又は後者が選択されるようにセレクタ5400が制御
される。RGRr400のGN3とv3フィールドは線
Q459により、そのまま、S−G変換回路b405、
G−8変換回路b403に送られる。The selection control of this selector 5400 is performed by the decoder b438, and the selector 5400 is controlled so that the former or the latter is selected depending on whether the instruction code in the RIRr401 is for an instruction to store vector data in the main memory. . The GN3 and v3 fields of RGRr400 are directly connected to the S-G conversion circuit b405 by the line Q459.
It is sent to the G-8 conversion circuit b403.
ベクトルレジスタ制御回路b410〜b417およびベ
クトルレジスタデータユニットU41中のベクトルレジ
スタに対し、書込みの起動を行なうために、RGR,r
400のR1〜R3フィールドはデコーダb430に送
られる。デコーダb430は、アンドゲート(A)付デ
コード有効端子(E)を有し、アンドゲート(A)への
入力線がすべて1”のときに、デコードが有効になる。In order to start writing to the vector register control circuits b410 to b417 and the vector register in the vector register data unit U41, RGR, r
400 R1-R3 fields are sent to decoder b430. The decoder b430 has a decode enable terminal (E) with an AND gate (A), and decoding is enabled when all input lines to the AND gate (A) are 1''.
デコーダb430のアンドゲート(A)には、v1フィ
ールド、W1フィールド、およびフリップフロップf4
10の出力がそれぞれ線Ω580゜11581、ff1
419が接続されており、また、デコードされる信号と
して、GNIフィールドが線Q439を介して入力され
ている。デコードが有効すなわち、GNIフィールドの
データに意味があり(Vlフィールド=“1n)、書込
みが指定されており(Wlフィールド;1”)かつ命令
起動(1419士“1”)時に線Q582を介して入力
されるGNIフィールドの内容がデコードされ、このG
NIフィールドがベクトルレジスタ0〜7のいずれかの
番号を有しているときには、出力線8本f1410−J
417(7)うちの1つが1′l”になる、ここでは、
GNIフィールドが“O”のとき、出力線Q410が1
1”、′1”のとき出力線n411が# l ##、“
2”のとき出力線Q412が゛(1#j゛というように
デコードされるとする。今、例として考えている命令で
はRGR,r400内のR1フィールドがベクトルレジ
スタ0への書込みを指示(W1=1.GN1=O)して
いるので線磨410のみが“1”となる、デコーグb4
30の出力線8410−12417は、ベクトルレジス
タ制御回路b410〜b417(第11図)およびベク
トルレジスタデータユニットU41に送出される。デコ
ーダb433〜b435は、ベクトルレジスタの読出し
の起動を行なうためのものである。これらのデコーダに
は、アンドゲート(A)付デコーダ有効端子へ、Wl。The AND gate (A) of the decoder b430 contains the v1 field, the W1 field, and the flip-flop f4.
10 outputs are respectively wire Ω580°11581, ff1
419 is connected, and the GNI field is input via line Q439 as a signal to be decoded. The decoding is valid, that is, the data in the GNI field has meaning (Vl field = “1n”), writing is specified (Wl field; The contents of the input GNI field are decoded and this GNI field is decoded.
When the NI field has a number from vector register 0 to 7, 8 output lines f1410-J
417(7) One of them becomes 1′l”, here,
When the GNI field is “O”, the output line Q410 is 1
1", '1", the output line n411 is # l ##, "
2", the output line Q412 is decoded as "(1#j"). In the instruction considered as an example, the R1 field in RGR, r400 instructs writing to vector register 0 (W1 =1.GN1=O), so only wire polishing 410 becomes "1", decoding b4
30 output lines 8410-12417 are sent to vector register control circuits b410-b417 (FIG. 11) and vector register data unit U41. Decoders b433 to b435 are for starting reading of the vector register. These decoders have Wl to the decoder valid terminal with AND gate (A).
W2.W3フィールドではなく、それぞれ反転ゲートg
420〜g422で反転した出力が線Q589〜591
を介して入力され、RGR。W2. W3 field instead of inversion gate g
The inverted output from 420 to g422 is the line Q589 to 591
input via RGR.
r400のフィールドRiが読出し用のとき(Wi=O
)のみ、デコードが有効となる点が異なるのみで、あと
はまったくデコーダb430と同様である。デコーダb
433〜b435の出力は、オアゲートg440〜g4
47を経て、線2400−2407により、それぞれベ
クトルレジスタ制御回路b410〜b417およびベク
トルレジスタデータユニットU41に読出し起動信号と
して送出される。以上の実施例においてデコーダb43
3を省略し、セレクタ5400の出力をデコーダb43
4に入力させてもよい。このときには、セレクタ540
0には、さらに、W1フィールドとW2フィールドの出
力もそれぞれGNI。When field Ri of r400 is for reading (Wi=O
), the only difference is that decoding is enabled, and the rest is completely the same as decoder b430. decoder b
The outputs of 433-b435 are OR gates g440-g4
47, and are sent as read activation signals to vector register control circuits b410 to b417 and vector register data unit U41, respectively, via lines 2400 to 2407. In the above embodiment, the decoder b43
3 is omitted and the output of the selector 5400 is sent to the decoder b43.
4 may be input. At this time, the selector 540
0, the outputs of the W1 field and W2 field are also GNI.
GN2フィールドとともに入力され、選択されるように
しておく必要がある。It must be entered together with the GN2 field and must be selected.
デコーダb436は、オペランド制御回路b420〜b
423に対する起動信号を送出するものである。デコー
ド有効端子Eには、線Q419が、データ端子DIには
、R2H,r402からリソース種類、番号が入力され
、これらがデコードされて線Q440〜Q443のいず
れかがIt I 11となる。この線Q440〜Q44
3の信号“1”は、それぞれオペランド制御回路b42
0〜b423に対する起動信号となる。The decoder b436 includes operand control circuits b420 to b
423. The line Q419 is input to the decode valid terminal E, and the resource type and number are input from R2H, r402 to the data terminal DI, and when these are decoded, one of the lines Q440 to Q443 becomes It I 11. This line Q440~Q44
The signal “1” of 3 is the operand control circuit b42.
This is the activation signal for 0 to b423.
デコーダb437は、オペランド制御回路b420〜b
423にて2つのベクトル要素の同期をとる必要のない
場合を指示するためにある。2つのオペランドの同期が
不要な場合とは、たとえば一つのベクトルレジスタから
主記憶へのベクトルデータの格納や、一対のベクトルレ
ジスタ間でのベトクルデータの転送、一つのベクトルレ
ジスタ内のベクトルデータを変換して他の一つのベクト
ルレジスタに格納するベクトルデータの変換のように、
読出すべきベクトルレジスタが一つであり、命令のR3
フィールドが不要の場合であり、このときには、RGR
,r400のv3フィールドがjJ OIIになってい
る。デコーダb437は2人カアンドゲート(A)付デ
コード有効端子Eがあり、そこには、線Q419の他に
、RGR。Decoder b437 includes operand control circuits b420 to b
423 to indicate a case where it is not necessary to synchronize two vector elements. Cases where synchronization of two operands is not required include, for example, storing vector data from one vector register to main memory, transferring vector data between a pair of vector registers, or converting vector data in one vector register. Like converting vector data to store in one vector register to another,
There is only one vector register to read, and R3 of the instruction
This is a case where the field is not required, and in this case, RGR
, r400's v3 field is jJ OII. The decoder b437 has a decoding enable terminal E with a two-way gate (A), which has an RGR signal in addition to the line Q419.
400の■3フィールドの出力を反転ゲートg423で
反転させた出力が入力される。デコーダb437は、R
2H,r402から与えられるリソースの種類、番号を
解読して、線Q450〜453の内の一つに“1”を出
力する。デコーダb437の出力は、線Ω450〜04
53を介してそれぞれオペランド制御回路b420−b
423に接続される。The output obtained by inverting the output of field 3 of 400 by an inversion gate g423 is input. The decoder b437 is R
2H, decodes the resource type and number given from r402 and outputs "1" to one of the lines Q450 to Q453. The output of decoder b437 is the line Ω450~04
53 respectively to the operand control circuit b420-b.
423.
R2H,r402内のリソース種類番号はまた線Q42
9を介してS−G変換回路b401.b404、b40
5.G−5変換回路b402.b403に共通に入力さ
れる。The resource type number in R2H, r402 is also the line Q42.
9 via the S-G conversion circuit b401. b404, b40
5. G-5 conversion circuit b402. It is commonly input to b403.
RVLR,r403内の処理ベクトル長は、線Q469
により、各オペランド制御回路b420〜b423に共
通に入力される。The processing vector length in RVLR, r403 is line Q469
Therefore, it is commonly input to each operand control circuit b420 to b423.
(tv) S−G変換回路
第13図は、 S−G変換回路b401の内、各リソー
スから与えられるデータ有効信号を、命令制御ユニット
U3により指定されるレジスタ番号に対するベクトルレ
ジスタ制御回路に供給する回路を示している。(tv) The SG conversion circuit in FIG. 13 supplies the data valid signal given from each resource in the SG conversion circuit b401 to the vector register control circuit for the register number specified by the instruction control unit U3. Shows the circuit.
第13図において、リソース種類番号が線Q429によ
りデコーダb439のデータ端子に入力され、書込み用
のベクトルレジスタ番号が線Ω439を介してリソース
対応に設けたレジスタr410〜r413に入力され、
命令起動信号STが、線Ω419によりデコーダb43
9のデコード有効端子(E)に入力される。レジスタr
410〜r413は、それぞれメモリ・リクエスタ0゜
1および演算器0.lに対応して設けられている。In FIG. 13, a resource type number is inputted to the data terminal of a decoder b439 via a line Q429, a vector register number for writing is inputted via a line Ω439 to registers r410 to r413 provided corresponding to the resources,
The command activation signal ST is sent to the decoder b43 via the line Ω419.
It is input to the decoding enable terminal (E) of No.9. register r
410 to r413 are memory requester 0.1 and arithmetic unit 0.413, respectively. It is provided corresponding to l.
線Q439上にはレジスタ番号GNIの他に、第12図
の説明でも述べたように、レジスタ番号が有効であるか
どうかを指示する信号Vも含まれている。これらの信号
はレジスタr 410 = r413の内線Q429上
にあるリソース種類、番号に対応するものにデコーダb
439によりリセットされる。レジスタr410〜r4
13内のレジスタ番号GNIは、それぞれデコーダb4
40〜b443のデコード入力端子に、Vビットはデコ
ーダb440−b443のアンドゲート(A)付デコー
ド有効端子(E)の一方の入力端子に入力される。これ
らの端子Eの他方の入力端子には、それぞれメモリ・リ
クエスタ0,1、演算器0,1からデータ有効信号がそ
れぞれ線Q46.Q46’ 、Q29.(129’ を
介して入力される。たとえば、レジスタr410にある
Vフィールドの出力+11 I+がデコーダb440の
アンドゲートに入力されている条件下では線Q46から
Ig 171が入力されるとデコーダb440がデコー
ド有効状態となり、レジスタr410のONフィールド
の出力がデコードされて、デコーダの出力端子0〜7の
いずれかが“1″となり、各出力端子に接続して設けら
れたオアゲートg430〜g437の出力線Q420〜
Q427のいずれかが“1”となる。この出力線Q42
0〜Q427はベクトルレジスタO〜7に対応していて
、それぞれベトクルレジスタ制御回路0〜7にデータ有
効信号を供給する。In addition to the register number GNI, the line Q439 also includes a signal V indicating whether the register number is valid, as described in the explanation of FIG. These signals are sent to the decoder b corresponding to the resource type and number on extension Q429 of register r410 = r413.
439. Registers r410 to r4
The register numbers GNI in 13 are respectively decoder b4.
The V bit is input to one input terminal of the decode enable terminal (E) with an AND gate (A) of the decoders b440 to b443. The other input terminals of these terminals E receive data valid signals from memory requesters 0 and 1 and arithmetic units 0 and 1, respectively, on lines Q46. Q46', Q29. For example, under the condition that the output +11 I+ of the V field in register r410 is input to the AND gate of decoder b440, when Ig 171 is input from line Q46, decoder b440 decodes The output of the ON field of the register r410 is decoded, and any of the output terminals 0 to 7 of the decoder becomes "1", and the output line Q420 of the OR gates g430 to g437 connected to each output terminal is activated. ~
One of Q427 becomes "1". This output line Q42
0 to Q427 correspond to vector registers O to 7, and supply data valid signals to vector register control circuits 0 to 7, respectively.
こうして、一度、レジスタr410”r413にデータ
がセットされた後、線Q46の“1”。In this way, once the data is set in the registers r410" and r413, the line Q46 becomes "1".
“0″の変化が、そのまま、線Q420〜Q427のい
ずれかに伝えられる。ここで、注意したいことは、レジ
スタr 410 = r 413内のレジスタ番号が異
なる限り、線Q46.fi46’ 。A change of "0" is directly transmitted to any of the lines Q420 to Q427. What should be noted here is that as long as the register numbers in register r 410 = r 413 are different, line Q46. fi46'.
Q29.Q29’の番号を同時にそれぞれ線Q420〜
Q427の内の対応する線に供給することができること
である。この同時供給は最大4つのレジスタ番号に対し
て可能である。こうして、4つのリソースを並列に動作
させることが可能となる。Q29. Q29' number at the same time each line Q420~
Q427 can be supplied to the corresponding line. This simultaneous supply is possible for up to four register numbers. In this way, it becomes possible to operate four resources in parallel.
なお、S−G変換回路b401の内、各リソースから供
給される最終ベクトルデータ信号を命令制御ユニツ1〜
U3により指定されるレジスタ番号に対するベトクルレ
ジスタ制御回路O〜7に供給する回路部分は、第13図
の線Q46.f146’ 。It should be noted that the final vector data signals supplied from each resource in the SG conversion circuit b401 are sent to the instruction control units 1 to 401.
The circuit portion that supplies the register control circuits O to 7 for the register number designated by U3 is indicated by line Q46. in FIG. f146'.
Q29.Q29’ をそれぞれ線144.Q44’ 。Q29. Q29' as line 144. Q44'.
Q26.Q2G’L:、より置換し、線Q42o〜Q4
27を線Q430〜Q437により置換すれば得られる
。Q26. Q2G'L:, replace with more, line Q42o~Q4
It can be obtained by replacing 27 with lines Q430 to Q437.
S−G変換回路b404は、各リソース対応のオペラン
ド制御回路0〜3からそれぞれ線f1520Q523を
介して入力されるベクトルデータ送出信号を命令制御ユ
ニットU3により指定されるレジスタ番号のベクトルレ
ジスタへ線Q540〜Q543のいずれかを介して送出
する回路部分と、オペランド制御回路O〜3から線a5
10〜f1513を介して入力される最終ベクトルデー
タ信号を、命令制御ユニットU3により指定されるリソ
ース番号に対するベクトルレジスタ制御回路0〜7に線
Ω530〜Q537を介して送出する回路部分とからな
る。前者は、第13図において、線Q439を線Ω44
9により置換し、線Q46.Q46’ 、Ω29′をそ
れぞれ、線Ω520−fi523により置換し、線fi
420〜Q427をそれぞれ線Q540〜Q547によ
り置換することにより得られる。後者は、第13図にお
いて、同様に線Ω459.線Q510〜Q513および
12530〜Q537を用いることにより得られる。S
−G変換回路b405も1回路b404と同様に形成さ
れるので、詳細は省略する、なお、これらの置換後の信
号線番号を、第13図において信号線番号046.Q4
6’ 、Q29、Q29’ 、f1420−Q427の
後のカッコにて示しである。The SG conversion circuit b404 transfers the vector data sending signals input from the operand control circuits 0 to 3 corresponding to each resource via the lines f1520Q523 to the vector registers having the register numbers specified by the instruction control unit U3 through lines Q540 to The circuit part that sends out via either Q543 and the line a5 from the operand control circuits O to 3.
10 to f1513 to vector register control circuits 0 to 7 for the resource number specified by instruction control unit U3 via lines Ω530 to Q537. In the former case, line Q439 is connected to line Ω44 in FIG.
9, line Q46. Q46' and Ω29' are respectively replaced by the line Ω520-fi523, and the line fi
420 to Q427 by lines Q540 to Q547, respectively. The latter is similarly connected to the line Ω459. in FIG. Obtained by using lines Q510-Q513 and 12530-Q537. S
The -G conversion circuit b405 is also formed in the same manner as the single circuit b404, so the details will be omitted.The signal line numbers after these replacements are indicated by signal line numbers 046. Q4
6', Q29, Q29', and are shown in parentheses after f1420-Q427.
(v)G−8変換回路
第14図は、a−S変換回路b402 (第11図)の
詳細を示したものである。置傘起動制御回路b400か
ら線Q429を介してリソースの種類、番号が入力され
、線j1449を介してレジスタ番号が入力され、線Q
419を介してのセット信号が入力される。線Q429
上のリソースの種類、番号は、ベクトルレジスタ対応の
レジスタr420〜r427の内、線2449上のレジ
スタ番号に対応するものにセットされる。セットすべき
レジスタの指定は、IIAQ449上のレジスタ番号が
データ端子に入力され、線C419上のセット信号と、
1Q449上のレジスタ番号の有効を示す信号Vをデコ
ーダb449のアンドゲート(A)に入力されるデコー
ダb449により制御される。レジスタr420〜r4
27の出力は、それぞれに対応したデコーダb450〜
b457に入力されている。デコーダb450−b45
7は、それぞれベクトルレジスタ制御回路0〜7がら信
号線f1480−Ω487を介してデコード有効端子(
E)に入力されるベクトルレジスタ続出許可信号が“1
”になると、データ久方端子より入力されているリソー
ス種類1番号に対応した出方端子のいずれか1つから#
#、1jlを出力する。この結果、デコーダb450〜
b457の0〜3番号の出方端子にそれぞれ接続された
オアゲートg440〜g443のいずれカニヨリ、線Q
490−f1493の内指定されたリソース対応の線が
゛′1″トナル、線Q480−Q487のいずれかが(
10”になると、デコーダb450〜b457の内の対
応するものがデコード有効でなくなるので、ga480
〜Q487の“1″、“O”が対応する信号線Q490
−Q498へ1”、“O”として伝達されることになる
。(v) G-8 conversion circuit FIG. 14 shows details of the a-S conversion circuit b402 (FIG. 11). The type and number of the resource are input from the umbrella start control circuit b400 via the line Q429, the register number is input via the line j1449, and the line Q
A set signal via 419 is input. Line Q429
The type and number of the above resource are set to the one corresponding to the register number on the line 2449 among the registers r420 to r427 corresponding to the vector registers. To specify the register to be set, the register number on IIAQ449 is input to the data terminal, and the set signal on line C419 is input.
It is controlled by a decoder b449 which inputs a signal V indicating the validity of the register number on 1Q449 to an AND gate (A) of the decoder b449. Registers r420 to r4
The outputs of 27 are sent to corresponding decoders b450~
b457 is input. decoder b450-b45
7 is a decoding enable terminal (
The vector register successive permission signal input to E) is “1”.
”, then # from any one of the output terminals corresponding to the resource type 1 number input from the data Kugata terminal.
#, outputs 1jl. As a result, decoders b450~
Any of the OR gates g440 to g443 connected to the output terminals numbered 0 to 3 of b457, line Q
The line corresponding to the specified resource among 490-f1493 is ``'1'' tonal, and any of the lines Q480-Q487 is (
10", the corresponding decoders b450 to b457 are no longer valid for decoding, so the ga480
~Q487 “1” and “O” correspond to signal line Q490
- It will be transmitted to Q498 as 1", "O".
なお、一度、レジスタr 420 ” r 427にセ
ットされたリソース番号種類が相互に異なるときは、線
Q480〜Q487の1”信号をそれぞれ線Ω490−
Q493内の対応する線に同時に供給可能であり、この
同時供給は最大4つのリソースに対して行いうる。これ
により4つのリソースの並列動作を可能にする。Note that once the resource number types set in the registers r420" and r427 are different, the 1" signals on the lines Q480 to Q487 are connected to the respective lines Ω490-
Corresponding lines within Q493 can be fed simultaneously, and this simultaneous feeding can be done for up to four resources. This allows parallel operation of four resources.
なお、第11図のG−8変換回路b403は、第14図
の信号線Q449を線12459により置換し、線Q4
90〜Q497をそれぞれ線a500−Q507により
置換すれば得られる。なお、第14図には、この置換後
の信号番号を置換すべき信号線の番号の後にカッコをつ
けて示しである。Note that the G-8 conversion circuit b403 in FIG. 11 replaces the signal line Q449 in FIG. 14 with a line 12459, and the line Q4
It can be obtained by replacing 90 to Q497 with lines a500 to Q507, respectively. In addition, in FIG. 14, the signal numbers after this replacement are shown in parentheses after the number of the signal line to be replaced.
(vi )ベトクルレジスタ制御回路
第15図は、ベクトルレジスタ制御回路b410の詳細
を示したものである。他のベクトルレジスタ制御回路1
〜7も全く同一構造で、この図の線Q400. C41
0,fi420゜C430,C460,n480がこれ
らの信号線番号の後のカッコ内に記載しである番号線に
置換することにより得られる。この制御回路では、書込
み又は読出しのみの動作と、チェイニング動作(書込み
、読出しの同時動作)の3動作を行う。(vi) Vector register control circuit FIG. 15 shows details of the vector register control circuit b410. Other vector register control circuit 1
. . . . . . . . . . . . . . . . . . . C41
0, fi420° C430, C460, n480 can be obtained by replacing these signal line numbers with the number lines written in parentheses. This control circuit performs three operations: a write or read only operation and a chaining operation (simultaneous write and read operations).
(a)書込みのみの動作
ベクトルレジスタOへの書込みの起動指示が命令起動制
御回路b400 (第14図)により線Q410を介し
て伝えられると、書込み中を示すフリップフロップf4
20がセットされ。(a) Write-only operation When an instruction to start writing to the vector register O is transmitted via the line Q410 by the instruction start control circuit b400 (FIG. 14), the flip-flop f4 indicates that writing is in progress.
20 is set.
アップ/ダウンカウンタ(以下U/Dカウンタ)C40
0がクリアされる。U/DカウンタC400は、U、D
端子の入力に対して次のような出力を供給する。Up/down counter (hereinafter referred to as U/D counter) C40
0 is cleared. The U/D counter C400 has U, D
Provides the following output for the input of the terminal.
入 力 出 力U D
(カウンタの内容)
OO変らず
0 1 −1される
1 o +1される
1 1 変らず
線Q420を介してS−G変換回路b401よりデータ
有効信号が入力されると、この信号は、フリップフロッ
プf420の出力n 1 nにより開かれているアンド
ゲートg420を経て。Input Output U D
(Contents of the counter) OO unchanged 0 1 -1 changed 1 o +1 changed 1 1 When a data valid signal is input from the SG conversion circuit b401 via the unchanged line Q420, this signal is sent to the flip-flop Through the AND gate g420 which is opened by the output n 1 n of f420.
U/DカウンタC400のU端子に入力され、カウンタ
の内容を+1するとともに、そのままベクトルレジスタ
データユニットU41(第10図)に送出される。S−
G変換回路b401からC430により、最終ベクトル
データ信号がつたえられると、この信号はフリップフロ
ップf420をリセットし、書込み中の状態を停止する
とともに、直接線Q430を介して命令制御ユニットU
3(第1図)にも送出され、RGSW、r306 (第
3図)内の書込み用ベクトルレジスタ番号(たとえばj
)に対応するビット(Wj)をリセットする。なお、線
f1430を他のベクトルレジスタ制御回路1〜7の対
応する出力線Q431〜Q437と一緒に束ねたものが
第1図の線Q15である。The signal is input to the U terminal of the U/D counter C400, increments the contents of the counter by 1, and is sent as is to the vector register data unit U41 (FIG. 10). S-
When the final vector data signal is sent from the G conversion circuits b401 to C430, this signal resets the flip-flop f420, stops the writing state, and sends the instruction control unit U via the direct line Q430.
3 (Figure 1), and the write vector register number (for example, j
) is reset. Note that the line Q15 in FIG. 1 is obtained by bundling the line f1430 with the corresponding output lines Q431 to Q437 of the other vector register control circuits 1 to 7.
(b)読出しのみの動作
ベクトルレジスタOの書込み動作が起動されていない状
態で、このベクトルレジスタの読出しの起動指示が命令
起動制御回路b400 (第11図)より線M400を
介して伝えられると、読出し中を示すフリップフロップ
f421がセットされる。フリップフロップf420は
リセットされた状態にあるので、その出力を反転ゲート
g451.オアゲートg452を介して入力され、また
フリップフロップf421の出力が入力される。アンド
ゲートg453の出力線U480は“1″となる。線Q
480は読出し可能信号として、G−3変換回路b40
2 (第11図)に供給される。したがって、命令制御
ユニットU3に関して説明したように、ある命令におい
てU3に関して説明したように、ある命令においてベク
トルレジスタが読出し用に使用されているときには、こ
のベクトルレジスタを書込み用に用いる後読の命令はこ
の読出しが終わるまで起動されない。したがって、フリ
ップフロップf420は、この読出しが終了するまでセ
ットされることはないので、線Q480にはフリップフ
ロップf421がリセットされるまで読出し可能信号が
送出されつづけることになる。こうして、ベクトルレジ
スタOの全要素の読出しが終了すると、線Q460を介
してS−G変換回路b404から最終ベクトルデータ信
号が入力され、この信号によりフリップフロップf42
1がリセットされる。(b) Read-only operation When the write operation of the vector register O is not activated and a read activation instruction for this vector register is transmitted via the instruction activation control circuit b400 (FIG. 11) stranded wire M400, Flip-flop f421 indicating that reading is in progress is set. Since flip-flop f420 is in a reset state, its output is passed to inverting gate g451. It is input via the OR gate g452, and the output of the flip-flop f421 is also input. The output line U480 of the AND gate g453 becomes "1". Line Q
480 is a readable signal, and the G-3 conversion circuit b40
2 (Figure 11). Therefore, as explained with respect to instruction control unit U3, when a vector register is used for reading in a certain instruction as explained with respect to U3 in a certain instruction, a read-behind instruction that uses this vector register for writing is It will not be activated until this reading is completed. Therefore, since flip-flop f420 is not set until this reading is completed, the read enable signal continues to be sent to line Q480 until flip-flop f421 is reset. In this way, when reading of all elements of the vector register O is completed, the final vector data signal is inputted from the SG conversion circuit b404 via the line Q460, and this signal causes the flip-flop f42 to
1 is reset.
なお、線Q460は、他のベクトルレジスタ制御回路b
411〜b417内の対応する信号線Q461〜Ω46
7と一緒にして、線1216として、命令制御ユニット
U3内のRGSW。Note that the line Q460 is connected to another vector register control circuit b.
Corresponding signal lines Q461 to Ω46 in 411 to b417
7, as line 1216, RGSW in command control unit U3.
r306 (第3図)に送られ、ベクトルレジスタOの
読出しが終了したことを知らせ、このレジスタのビット
ROを0にリセットするのに用いられる。r306 (FIG. 3) and is used to signal the completion of reading vector register O and to reset bit RO of this register to zero.
(c)チェイニング動作
チェイニング動作は、あるベクトルレジスタに対しては
じめにある命令のために書込み動作が指示され、その動
作が終了する前に他の命令のために読出し動作が指示さ
れたときに生ずる。(c) Chaining operation A chaining operation occurs when a write operation is first instructed to a certain vector register for a certain instruction, and then a read operation is instructed for another instruction before that operation is completed. arise.
書込み動作が指示されても、データ有効信号と書込みデ
ータがリソースから到着しないと、実際にはベクトルレ
ジスタには書込みがおこなわれないが、このデータ有効
信号の到着と、続出し動作の指示の時間的関係はどうで
もよい。Even if a write operation is instructed, unless a data valid signal and write data arrive from the resource, writing to the vector register will not actually be performed. It doesn't matter what the relationship is.
(c −1)
たとえば、書込み動作が線Q410により指示され、フ
リップフロップf420がセットされ、U/Dカウンタ
C400がリセットされた後、線2420からのデータ
有効信号の到着前に、読出し動作がt:’:: Q 4
00により指示され。(c −1) For example, after a write operation is commanded by line Q410, flip-flop f420 is set, and U/D counter C400 is reset, and before the arrival of the data valid signal from line 2420, a read operation is :':: Q 4
Directed by 00.
フリップフロップ5421がセットされると、U/Dカ
ウンタC400の出力に接続されているカウンタの内容
が1以上になっていることを検出する正検出回路b46
0の出力はII Ol#であり、反転ゲートg451の
出力も“0”なので、アンドゲートg453の出力線Q
480も“O”のままである。ここで、あるマシンサイ
クルnにおいて線Ω420にデータ有効信号がくると、
アンドゲートg450を経て、U/DカウンタC400
に、この信号が入り、このマシンサイクルnにおいて、
U/DカウンタC400の内容は+1になる。すると、
正検出回路b460の出力が“1″となり、オアゲート
g452、アンドゲートg453を経て、線a480に
ベクトルレジスタ読出し可能信号が出力される。線Q4
80は、U/DカウンタC400のD端子に接続されて
おり、マシンサイクル(n+1)において次のデータ有
効信号が線Q420から入ってこないときには、マシン
サイクル(n+1)以降ではカウンタC400の値は0
に戻る。したがって、読出し可能信号はQ480に1回
のみ出力されることになる。When the flip-flop 5421 is set, a positive detection circuit b46 detects that the content of the counter connected to the output of the U/D counter C400 is 1 or more.
The output of 0 is IIOl#, and the output of the inverting gate g451 is also "0", so the output line Q of the AND gate g453
480 also remains "O". Here, when a data valid signal comes to line Ω420 in a certain machine cycle n,
Via AND gate g450, U/D counter C400
This signal enters, and in this machine cycle n,
The content of the U/D counter C400 becomes +1. Then,
The output of the positive detection circuit b460 becomes "1", and a vector register read enable signal is output to the line a480 via the OR gate g452 and the AND gate g453. Line Q4
80 is connected to the D terminal of the U/D counter C400, and when the next data valid signal does not come in from the line Q420 in the machine cycle (n+1), the value of the counter C400 is 0 after the machine cycle (n+1).
Return to Therefore, the read enable signal will be output to Q480 only once.
その後も、データ有効信号が間けつ的に入力される場合
には、その都度読出し可能信号0480に出力される。Even after that, if the data valid signal is input intermittently, the read enable signal 0480 is output each time.
一方、マシンサイクル(n+1)以降もデータ有効信号
が連続して入力されると、U端子とD端子に“l”が入
力されるのでカウンタC400の値は変化せず1”のま
まとなり、線Q480には続けて“1”が出力されるこ
とになる。(c−2)
書込み動作が線Ω410により指示され、フリップフロ
ップf420がセットされ、U/DカウンタC400が
リセットされた後、データ有効信号が複数マシンサイク
ルにわたり到着して、その都度U/DカウンタC400
がカウントアツプされて、0でない値を表示している状
態で、マシンサイクルnにおいて読出し起動によりフリ
ップフロップf421がセットされると仮定する。U/
DカウンタC400の出力に接続されている正検出回路
b460の出力111 ##となっているので、ベクト
ルレジスタ読出し可能信号が線Q480に出力される。On the other hand, if the data valid signal is continuously input after machine cycle (n+1), "l" is input to the U and D terminals, so the value of counter C400 remains 1" without changing, and the line "1" is subsequently output to Q480. (c-2) A write operation is instructed by line Ω410, flip-flop f420 is set, and after U/D counter C400 is reset, data becomes valid. Each time a signal arrives over multiple machine cycles, the U/D counter C400
Assume that the flip-flop f421 is set by read activation in machine cycle n while the value is being counted up and displaying a non-zero value. U/
Since the output of the positive detection circuit b460 connected to the output of the D counter C400 is 111 ##, the vector register read enable signal is output to the line Q480.
線11480がU/DカウンタC400のD端子に入力
されるので、!f1420からデータ有効信号が次のマ
シンサイクル(n + 1)において入力されなければ
−1され、入力されれば値は変らない。Since line 11480 is input to the D terminal of U/D counter C400,! If the data valid signal from f1420 is not input in the next machine cycle (n+1), it is set to -1, and if it is input, the value remains unchanged.
U/Dカウンタc400の内容がOになるまで、上記動
作が繰返し行なわれる。読出し起動後あるマシンサイク
ルまでの間に線Q480に出力される読出し可能信号の
数は、フリップフロップf421がセットされる前のU
/Dカウンタc400の内容と、その後緑Q420から
入力されたデータ有効信号の数の和となる。このように
、 (c−1) 、 (c−2)のいずれの場合に
おいてもベクトルレジスタに書込まれたベクトル要素数
をこえて読出しがなされないように保証される。なお、
U/Dカウンタc400の内容は、ベクトルレジスタに
書込んだベクトル要素数とそこから読出しベクトル要素
数の差分を表現していると考えることができる。The above operation is repeated until the content of the U/D counter c400 becomes O. The number of read enable signals output on line Q480 during a machine cycle after read activation is equal to U before flip-flop f421 is set.
This is the sum of the contents of the /D counter c400 and the number of data valid signals subsequently input from the green Q420. In this way, in either case (c-1) or (c-2), it is guaranteed that the number of vector elements written in the vector register will not be read out. In addition,
The contents of the U/D counter c400 can be considered to represent the difference between the number of vector elements written into the vector register and the number of vector elements read from the vector register.
チェイニング動作中に書込みが完了して、フリップフロ
ップf420がリセットされると、U/Dカウンタの内
容は意味をもたなくなり、(b)の読出しのみの動作と
同等となる。When writing is completed during the chaining operation and the flip-flop f420 is reset, the contents of the U/D counter have no meaning and become equivalent to the read-only operation in (b).
(vii )オペランド制御回路
第16図は、オペランド制御回路Q、b420の詳細を
示したものである。他のオペランド制御回路1〜3の構
成も同じで、この図の信号線番号を、その後のカッコ内
に記した信号線番号に変更すればよい。(vii) Operand control circuit FIG. 16 shows details of the operand control circuit Q, b420. The configurations of the other operand control circuits 1 to 3 are the same, and the signal line numbers in this figure can be changed to the signal line numbers shown in parentheses afterward.
命令起動制御回路b400から起動信号が線a440を
介して出されると、セレクタ5410にて、線1469
上の処理ベクトル長(VL)(必ず1以上であると仮定
する)が選択され、ベクトル長カウンタ(VLCTR)
c403にセットされる。また、この起動信号によりU
/Dカウンタc401.c402の内容がクリアされる
。さらに、フリップフロップf431がセットされて、
本オペランド制御回路Oの処理が有効になったことを記
憶する。オペランド制御回路0に対応するメモリ・リク
エスタ0を必要とする命令が一つのベクトルレジスタの
読出ししか必要としない場合(ここでは命令のR3フィ
ールドがベクトルレジスタの読出しを指定しないと仮定
する)はそれを指示する信号が命令起動制御回路b40
0から線fi450を介して伝えられて、フリップフロ
ップf430をセットする。When the command start control circuit b400 outputs a start signal via the line a440, the selector 5410 selects the line 1469.
The above processing vector length (VL) (assumed to be greater than or equal to 1) is selected and the vector length counter (VLCTR)
Set to c403. Also, this activation signal causes U
/D counter c401. The contents of c402 are cleared. Furthermore, flip-flop f431 is set,
It is stored that the processing of this operand control circuit O has become valid. If an instruction that requires memory requester 0 corresponding to operand control circuit 0 only requires reading one vector register (assuming here that the R3 field of the instruction does not specify a vector register read), then The instruction signal is the command activation control circuit b40
0 via line fi450 to set flip-flop f430.
ここでは最初に、演算器Oを必要とする命令R2、R3
フィールドともベクトルレジスタの読出しを指定してい
る場合について説明する。この場合には、フリップフロ
ップf430はII OPIである。線Q490. Q
500はそれぞれG−8変換回路b402.b403か
らベクトルレジスタ読出し許可信号をそれぞれカウンタ
c401゜c402のU端子に入力する信号線で、この
信号の入力のされ方には、いろいろのケースがある。Here, first, instructions R2 and R3 that require arithmetic unit O
A case will be explained in which both the field and the vector register are designated to be read. In this case, flip-flop f430 is II OPI. Line Q490. Q
500 are G-8 conversion circuits b402. This signal line inputs a vector register read permission signal from b403 to the U terminals of counters c401 and c402, respectively, and there are various ways in which this signal can be input.
各マシンサイクルごとにこれらのケースに応じた動作が
なされる。ここでカウンタc401+ c402は、カ
ウンタc400 (第15図)と同じもので、正検出回
路b461.b462は正検出回路b460 (第15
図)と同じものである。Operations are performed in accordance with these cases for each machine cycle. Here, the counters c401+c402 are the same as the counters c400 (FIG. 15), and the positive detection circuits b461. b462 is a positive detection circuit b460 (15th
This is the same as in Figure).
(a)両方とも入力されないケース このケースはさらに、次の4つのケースがある。(a) Case where both are not input This case further includes the following four cases.
(a −1) U / Dカウンタc401.c40
2のいずれもOのとき、
(a −2) U / Dカウンタc401のみ正の
とき、
(a −3) U / Dカウンタc402のみ正の
とき、
(a −4) U / Dカウンタc401.c40
2のいずれも正のとき、
(a−1)〜(a−3)のケース
これらのケースでは、アンドゲートg461〜g464
のいずれの出力も11111とはならず、何らの出力も
出されない。(a-1) U/D counter c401. c40
(a-2) When only U/D counter c401 is positive; (a-3) When only U/D counter c402 is positive; (a-4) When U/D counter c401. c40
When both of 2 are positive, cases (a-1) to (a-3) In these cases, AND gates g461 to g464
None of the outputs becomes 11111, and no output is produced.
(a−4)のケース
このケースはすでに、線Q490. Q500を介して
ベクトルレジスタ読出し許可信号が送られた後に生じる
。このときには正検出回路b481゜b462の出力が
“1”になり前者は直接に、後者はオアゲートg460
を経てアンドゲートg464に入力される。このアンド
ゲートg464の出力111 ITは、オアゲートg4
65を経て、アンドゲートg466に入力される。アン
ドゲートg466には、フリップフロップf431の出
力“1”が入力されている。また、アンドゲートg46
6には@1630.fi631が入力されているが、こ
れについては後述する。ここではいずれも“1”である
とする。アンドゲートg466の出力線Q520にベク
トルデータ送出信号が出される。出力線n520は、U
/DカウンタC401、c402のD端子に入力され、
カウンタの内容が1だけ減数される。Case (a-4) In this case, the line Q490. Occurs after the vector register read enable signal is sent via Q500. At this time, the outputs of the positive detection circuits b481 and b462 become "1", and the former is directly connected to the OR gate g460.
is input to AND gate g464. The output 111 IT of this AND gate g464 is OR gate g4
65 and is input to AND gate g466. The output “1” of the flip-flop f431 is input to the AND gate g466. Also, and gate g46
6 @1630. fi631 is input, which will be described later. Here, it is assumed that both are "1". A vector data sending signal is output to the output line Q520 of AND gate g466. Output line n520 is U
/D is input to the D terminal of counters C401 and C402,
The contents of the counter are decremented by one.
また、出力線1520は、VLCTR。Further, the output line 1520 is VLCTR.
c403のセット信号として入力され、カウンタの値を
1だけ減する。すなわち、VLCTR,c403の出力
が一1減算回路b463に接続されて−1された値がセ
レクタ5410に入力されている。このときもはやセレ
クタ5410の制御端子には、線Q440を介して命令
起動信号がきていないので一1減算回路b463の出力
が選択され、 V L CT R、c 403にセット
される。この次の回路動作は、U/Dカウンタc4Q1
.c402の内容に応じて、また、1ifi490.f
1500からのベクトルレジスタ読出し可能信号の入力
状況に応じて異なる。It is input as a set signal to c403 and decrements the value of the counter by 1. That is, the output of VLCTR,c403 is connected to the 11 subtraction circuit b463, and the value obtained by -1 is input to the selector 5410. At this time, since the command activation signal is no longer coming to the control terminal of the selector 5410 via the line Q440, the output of the 11 subtraction circuit b463 is selected and set to V L CTR,c 403. This next circuit operation is performed by U/D counter c4Q1.
.. Depending on the content of c402, 1ifi490. f
This differs depending on the input status of the vector register read enable signal from 1500.
なお、ベクトルデータ送出信号が線Q520に出力され
た場合、1検出回路b464により、VLCTR,c4
01の、1減じる前の元の内容が11”であることが検
出されると、その信号はアンドゲートg467にてベク
トルデータ送出信号とアンドがとられた後、最終ベクト
ルデータ信号として、線Ω510に乗せられる。また、
この線f1510上の信号によって、フリップフロップ
f431.f430をリセットする。Note that when the vector data sending signal is output to the line Q520, the 1 detection circuit b464 detects VLCTR, c4.
When it is detected that the original content of 01 before being subtracted by 1 is 11'', that signal is ANDed with the vector data sending signal at AND gate g467, and then sent to line Ω510 as the final vector data signal. Also,
The signal on line f1510 causes flip-flops f431. Reset f430.
(b)線2490の方のみ入力されるケース又は(c)
線Ω500の方のみ入力されるケースいずれのケースに
も動作は同様であるので、ここでは(b)のケースにつ
いて説明する。このケースでは、さらに、次の二つのケ
ースがある。(b) Case where only line 2490 is input or (c)
Since the operation is the same in all cases where only the line Ω500 is input, case (b) will be explained here. In this case, there are two further cases:
(b−1) U/Dカウンタc402が0”のとき、
(b −2) U / D カラン’l c 402
がxi 正t+ (7)とき、
(b−1)のケース
このときには、正検出回路b462の出力は“O”であ
るので、アンドゲートg461〜g464のいずれも出
力はIt 11jとならず、従ってオアゲートg465
の出力、アンドゲートg466の出力も0”でU/Dカ
ウンタc 401 tc402のD端子入力はt# O
ITのままである。ベクトルデータ送出信号は線Q52
0には出力されない。U/Dカウンタc401のU端子
には、線Q490からベクトルレジスタ読出し許可信号
が入力されているので、U/Dカウンタc401は+1
される。(b-1) When U/D counter c402 is 0'', (b-2) U/D callan'l c 402
When xi positive t+ (7), case (b-1) At this time, the output of the positive detection circuit b462 is "O", so the output of none of the AND gates g461 to g464 becomes It 11j, and therefore or gate g465
The output of AND gate g466 is also 0", and the D terminal input of U/D counter c401 tc402 is t# O.
It remains IT. Vector data sending signal is on line Q52
It is not output to 0. Since the vector register read permission signal is input from the line Q490 to the U terminal of the U/D counter c401, the U/D counter c401 is +1.
be done.
(b −2)のケース
このときには、正検出回路b462の出力は“1″であ
るので、アンドゲートg462の出力が“1”となり、
オアゲートg465、アンドゲートg466を経て、ベ
クトルデータ送出信号が線n 520 L=送られる。Case (b-2) At this time, the output of the positive detection circuit b462 is "1", so the output of the AND gate g462 is "1",
A vector data sending signal is sent to line n 520 L= via OR gate g465 and AND gate g466.
VLCTRc403、フリップフロップf430.f4
31のリセット等の動作は(a−4)のケースと同一で
あるので、ここでは省略する。線Q520が“1″とな
るので、U/Dカウンタc401.c402のD端子は
いずれも“1”となる。U/Dカウンタc401のU端
子には“1”が入力されているので、カウンタの内容は
変らない。U/Dカウンタc402のU端子には、“O
Itが入力されているので、カウンタの内容は−1され
る。VLCTRc403, flip-flop f430. f4
Since the operations such as resetting 31 are the same as in case (a-4), they will be omitted here. Since the line Q520 becomes "1", the U/D counter c401. Both D terminals of c402 become "1". Since "1" is input to the U terminal of the U/D counter c401, the contents of the counter do not change. The U terminal of the U/D counter c402 has “O
Since It has been input, the contents of the counter are incremented by -1.
(d)線Q490. Q500のいずれも同時に入力さ
れるケース
このケースはさらに次の4つのケースに分けられる。(d) Line Q490. A case in which both Q500 are input at the same time This case can be further divided into the following four cases.
(d−1) U/Dカウンタc401.c402がい
ずれも0のとき、
(d−2) U/DカウンタC401のみ正のとき。(d-1) U/D counter c401. (d-2) When only the U/D counter C401 is positive.
(d−3) U/Dカウンタc402のみ正のとき。(d-3) When only the U/D counter c402 is positive.
(d−4) U/Dカウンタc401.c402がい
ずれも正のとき、
(d−1)のケース
このケースでは、線Q490. Q500上のベクトル
レジスタ読出し許可信号によりアンドゲートg461の
出力信号が“1″となり、この結果ベクトルデータ送出
信号が線Q520に出力される。U/Dカウンタc40
1.c402のU端子は“1”であり、D端子も線Q5
20上の1′1 #1が入力されるのでカウンタの内容
はかわらなし1゜VLCTR,c403の制御等の動作
は(a−4)のケースの説明と同一である。(d-4) U/D counter c401. When both c402 are positive, case (d-1) In this case, the line Q490. The vector register read permission signal on Q500 causes the output signal of AND gate g461 to become "1", and as a result, a vector data sending signal is output to line Q520. U/D counter c40
1. The U terminal of c402 is “1” and the D terminal is also connected to the line Q5.
Since 1'1 #1 on 20 is input, the contents of the counter remain unchanged.The operations such as control of 1°VLCTR and c403 are the same as those described in case (a-4).
(a−2) 、 (d−3)のケースこの両ケースで
の動作は同様であるので、(d −2)のケースについ
て述べる。Cases (a-2) and (d-3) Since the operations in both cases are similar, the case (d-2) will be described.
(d−2)のケースでは、U/DカウンタC401のみ
内容が正であるから、正検出器b461の出力が“1”
となり、アンドゲートg461およびg463の出力が
It 11jとなる。従ってオアゲートg465wアン
ドゲートg466を経て、線Q520に、ベクトルデー
タ送出信号が送出されることになる。VLCTR,c4
03等の制御は、(a−4)のケースと同一なので、説
明は省略する。U/Dカウンタc401.c402の内
容は、(d −1)のケースでの動作と同様なので変化
しない。In case (d-2), only the U/D counter C401 has a positive content, so the output of the positive detector b461 is “1”.
Then, the outputs of AND gates g461 and g463 become It 11j. Therefore, a vector data sending signal is sent to line Q520 via OR gate g465w and gate g466. VLCTR,c4
Since the control in case 03 and the like is the same as in case (a-4), the explanation will be omitted. U/D counter c401. The contents of c402 do not change because the operation is the same as in case (d-1).
(d−4)のケース
このケースでは、U/Dカウンタc 401 +c40
2の内容は正であるから、正検出回路b461.b46
2の出力が111”となり、アンドゲートg461〜g
464のすべての出力が“1”となる。以下の動作は(
d−2)のケースと同様で、ベクトルデータ送出信号が
線Q520に送出される。U/Dカウンタc401゜c
402の内容は同様に変化しない。Case (d-4) In this case, the U/D counter c 401 +c40
Since the content of 2 is positive, the positive detection circuit b461. b46
The output of 2 becomes 111", and the AND gate g461~g
All outputs of 464 become "1". The following behavior is (
Similar to case d-2), a vector data sending signal is sent on line Q520. U/D counter c401゜c
The contents of 402 similarly do not change.
以上の動作の説明かられかるように、U/Dカウンタc
401.c402は2つのオペランド(ベクトルデータ
)の送出に関し同期をとる役割を果たす、一方のみしか
ベクトルレジスタ読出し許可信号がこないときには、そ
れをカウンタに記憶しくカウンタを+1する)、それを
取り出すとカウンタを−1していく。ベクトルレジスタ
読出し許可信号が同時に到着したときにはカウンタの内
容は変化しない。As can be seen from the above explanation of the operation, the U/D counter c
401. c402 plays the role of synchronizing the sending of two operands (vector data). When only one of the vector register read permission signals comes, it is stored in the counter and the counter is incremented by 1). When it is taken out, the counter is incremented by -1. 1. When the vector register read permission signals arrive at the same time, the contents of the counter do not change.
次に、オペランドを一方しか使用しない場合について説
明する。この場合には、オペランド制御回路の起動時に
、オペランドを一方しか使用しないことを示すフリップ
フロップf430がセットされる。この出力は、正検出
回路b462の出力に接続されるオアゲートg460の
もう一方の入力端子に入力され、オアゲートg460の
出力をU/Dカウンタc402の内容の如何にかかわら
ず“1”としてしまう。こうすると、線Q490から入
力されるベクトルレジスタ読出し許可信号のみによって
、先と同様に、ベクトルデータ送出信号が作成される。Next, a case where only one operand is used will be explained. In this case, when the operand control circuit is activated, flip-flop f430 is set to indicate that only one of the operands is used. This output is input to the other input terminal of the OR gate g460 connected to the output of the positive detection circuit b462, and the output of the OR gate g460 is set to "1" regardless of the contents of the U/D counter c402. In this way, the vector data sending signal is generated as before only by the vector register read permission signal inputted from line Q490.
なお、第16図中に示した線Q630は、ベクトルデー
タ送出信号の送出を許可する信号で必要に応じて用いる
ものである。(本発明においてはとくに必要とはしない
)、これは、たとえば、演算器に対し、一定間隔以上は
なしてベクトルデータ(従ってデータ有効信号)を送出
したいとき(たとえば演算器が連続してデータを受取る
ことができないとき)に使用される。この場合には、こ
の許可信号はオペランド制御回路内で作成されろ。たと
えば、データ有効信号によってリセットされ、データ有
効信号から一定時間後にセットされるフリップフロップ
の出力がこの許可信号となる。また、メモリ・リクエス
タに送出するベクトルデータを一時停止するとき(主記
憶格納がまたされるとき)などにも使用される。この場
合には。Note that the line Q630 shown in FIG. 16 is a signal for permitting transmission of the vector data transmission signal, and is used as necessary. (This is not particularly necessary in the present invention.) This is useful, for example, when it is desired to send vector data (therefore, a data valid signal) to the arithmetic unit at a certain interval or more (for example, when the arithmetic unit receives data continuously). used when this is not possible). In this case, this enable signal should be created within the operand control circuit. For example, the output of a flip-flop that is reset by a data valid signal and set after a certain period of time from the data valid signal becomes this permission signal. It is also used when temporarily stopping vector data sent to a memory requester (when storing data in the main memory again). In this case.
この許可信号は主記憶制御ユニットUl(第5図参照)
、またはメモリ・リクエスタにて作成される。fi12
630にて、ベクトルデータ送出が不許可のとき、線Q
490.Q500から入力されるベクトルレジスタ読出
し許可信号はU/Dカウンタc40!、c402に入力
されてカウンタが更新される。af1630から許可信
号が入力されると、1iAQ490.Q500から信号
の入力がなくても、U/Dカウンタc401.c401
の内容が正であるため、アンドゲートg464の出力が
1”となって、ベクトルデータ送出信号が線a520に
出されることになる。同時に、U/Dカウンタc401
.c402は−1される。This permission signal is sent to the main memory control unit Ul (see Figure 5).
, or created by the memory requester. fi12
At 630, when vector data transmission is not permitted, the line Q
490. The vector register read permission signal input from Q500 is U/D counter c40! , c402 and the counter is updated. When the permission signal is input from af1630, 1iAQ490. Even if there is no signal input from Q500, U/D counter c401. c401
Since the content of is positive, the output of AND gate g464 becomes 1", and a vector data sending signal is sent to line a520. At the same time, U/D counter c401
.. c402 is set to -1.
また、タイミング制御回路b465はベクトルデータ送
出信号の送出タイミングを制御する回路である。第18
図の説明にて詳述するように、ベクトルレジスタに対し
読出し書込みをみかけ上回時に行なうために各ベクトル
レジスタを二つのメモリ素子にて構成し、各メモリ素子
に対して読出し書込みを交互に行なう。すなわち、ある
メモリ素子に書込みを行なうときには、もう一方のメモ
リ素子は読出しを、次のサイクルにはその逆を行なうと
いうように制御する。従って、書込みを行なっているメ
モリ素子に対しては同時に読出しを行なうことはできな
いので、そのサイクルは読出しを待たせ、次のサイクル
にて読出すように制御する必要がある。このために、ベ
クトルデータ送出信号の送出を一旦またせるように制御
する。この役割を相当するのがタイミング制御回路b4
65で1次のサイクルでは、ベクトルデータ送出信号を
送出してはならないと判断されると。Further, the timing control circuit b465 is a circuit that controls the sending timing of the vector data sending signal. 18th
As detailed in the explanation of the figure, each vector register is configured with two memory elements in order to read and write to the vector register when the number of times it appears exceeds the limit, and read and write to each memory element alternately. . That is, when writing to one memory element, the other memory element is controlled to read, and vice versa in the next cycle. Therefore, since it is not possible to simultaneously read from a memory element that is being written to, it is necessary to make the reading wait in that cycle and control the reading in the next cycle. For this purpose, control is performed so that the transmission of the vector data transmission signal is temporarily stopped. The timing control circuit b4 corresponds to this role.
In step 65, it is determined that the vector data transmission signal should not be transmitted in the first cycle.
タイミング制御回路b465は出力線Q631をII
OIIとしてアントゲ−1” g 466の出力を抑止
する。Timing control circuit b465 connects output line Q631 to II
The output of Antogame 1''g 466 is suppressed as OII.
具体的には、タイミング制御回路b465は。Specifically, the timing control circuit b465.
次のような動作をする。すなわち、あるマシンサイクル
にベクトルデータ送出信号が入力されると、次のマシン
サイクル、その2サイクル、4サイクル・・・・・・後
のマシンサイクルに11”を出力する。It works like this: That is, when a vector data sending signal is input in a certain machine cycle, 11'' is output in the next machine cycle, the second cycle, the fourth cycle, and so on.
1サイクル、3サイクル・・・・・・後のマシンサイク
ルにはII O11を:J′J力する。このタイミング
を第17図に示す。連続してベクトルデータ送出ずR時
が入力されると、7!Aのマシンサイクルは# I I
Iが出力されることから、タイミング制御回路b465
から連続して111 IIが出力されることに注意され
たい。1st cycle, 3rd cycle... For the next machine cycle, apply II O11 :J'J. This timing is shown in FIG. When R time is input without sending vector data continuously, 7! The machine cycle of A is # I I
Since I is output, the timing control circuit b465
Note that 111 II is output continuously from .
本実施例においては、オペランド制御回路は、2つのベ
クトルレジスタの読出し可能信号を入力した場合につい
て述べているが、3つ以上のべり1〜ルレジスタの読出
し可能信号を入力して、バク1−ルデータ送出信号を作
成することも同様に容易に実現できる。In this embodiment, the operand control circuit is described as inputting the read enable signals of two vector registers, but when the read enable signals of three or more registers are input, Creating a transmission signal can be similarly easily realized.
(暢)ベク1へルレジスタデータユニツ1へ第18図に
おいて、8個のバク1−ルレジスタの各々はそれぞれベ
クトルレジスタ回路b470〜b477中にある各ベク
トルレジスタは、その容量が大きいために、メモリ素子
にて構成される。In FIG. 18, each of the eight vector registers in the vector register circuits b470 to b477 has a large capacity, so each vector register has a large capacity. Consists of elements.
メモリ素子は、アドレスを5与えて、その個所にデータ
を書込みか、または、その個所のデータを読出すが、同
時に異なるアドレスについて読出し、書込みを行なうこ
とはできない。チェイニング動作を実現するには、ある
ベクトル要素を書込み、同時に他のベクトルデータを読
出す必要があるので、本実施例では、1つのベクトルレ
ジスタに対し2つのメモリ素子m4’oo、m401に
て−っのベクトルレジスタを楕成し、これらに対して交
互に読出しと書込みを行なう。こうすると異なるアドレ
スに対し同時に読出しと書込みを行うことができる。A memory element is given five addresses to write data to or read data from that location, but it is not possible to read and write to different addresses at the same time. In order to realize the chaining operation, it is necessary to write a certain vector element and read other vector data at the same time, so in this embodiment, two memory elements m4'oo and m401 are used for one vector register. - form vector registers, and read and write to them alternately. This allows simultaneous reading and writing to different addresses.
ベクトル要素の番号付けは偶数番目のベクトル要素と、
奇数番目のベクトル要素がそれぞれ同一のメモリ素子に
なるように配置されるとする。The numbering of vector elements is as follows:
It is assumed that odd-numbered vector elements are arranged so that they become the same memory element.
以下の動作に詳細を説明する。ここではベクトルレジス
タOに対する書込みおよび読出しについて説明するが、
他のベクトルレジスタへの動作についてもまったく同様
である。The details of the operation are explained below. Writing and reading from vector register O will be explained here.
The same applies to operations on other vector registers.
命令が起動されると、ベクトルレジスタ制御ユニットU
40中の命令起動制御回路b400 (第12図)より
、S−G変換回路b480.G−3変換回路b481.
b482にリソース種類、番号が線ρ429を介して、
書込みベクトルレジスタ番号が線Q439を介して、読
出しベクトルレジスタ番号(2つオペランドがあるので
双方の番号)が線1449.Q459を介して、以上の
セット信号が線Q419を介して送られてきて、S−G
変換回路b480.G−8変換回路b481゜b482
中にセットされる。S−G/S−G変換回路b480.
b481.b482は第13図。When an instruction is activated, the vector register control unit U
From the instruction start control circuit b400 (FIG. 12) in 40, the SG conversion circuit b480. G-3 conversion circuit b481.
The resource type and number are sent to b482 via line ρ429,
The write vector register number is sent via line Q439, and the read vector register number (both numbers since there are two operands) is sent via line 1449. The above set signal is sent via line Q419 via Q459, and the S-G
Conversion circuit b480. G-8 conversion circuit b481°b482
is set inside. SG/SG conversion circuit b480.
b481. b482 is Fig. 13.
第14図にて説明したぢのと同一である。This is the same as that explained with reference to FIG.
ベクトルレジスタ0への書込みは、次のように動作する
。まず、ベクトルレジスタ0への書込み開始を指示する
信号が、線Q410を介して命令起動制御回路b400
より送出されてくる。この信号によって書込みアドレス
カウンタc411を0にクリアする。書込みアドレスカ
ウンタc411の出力は、セレクタ5420,5421
に入力される。セレクタ5420,5421の他の入力
は読出しアドレスカウンタc410の出力であり、これ
らのセレクタの制御端子にはそれぞれタイミング制御回
路b482の出力およびそれを反転ゲートg480で反
転した出力が入力される。タイミング制御回路b482
は、1マシンサイクルごとに出されるクロックをトリガ
タイプフリップフロップ(図示せず)にて受信するよう
に構成されており、1マシンサイクルごとにit On
と1”を交互に出力する。従って、タイミング制御回路
b482は、これらのセレクタを、セレクタ5420に
て、読込みアドレスカウンタc410の出力を選択する
ときには、セレクタ5421では、書込みアドレスカウ
ンタC411の出力を選択し、次のマシンサイクルでは
、その逆を選択するように制御する。セレクタ5420
の出力がメモリ素子m400のアドレスとして、セレク
タ5421の出力がメモリ素子m401のアドレスとし
て与えられる。さて、演算器0.1またはメモリ・リク
エスタ0.1から線Q45゜Q45’ 、Q29.Q2
9’ を介して書込みデータがS−G変換回路b480
に到着すると、このデータは線Q429で指定されたリ
ソースから線f1439で指定されたベクトルレジスタ
に対応するベクトルレジスタ回路b470−b477の
いずれかに入力される。ここでは、ベクトルレジスタO
に書込むとしているので、回路b470に入力される。Writing to vector register 0 operates as follows. First, a signal instructing to start writing to vector register 0 is sent to instruction activation control circuit b400 via line Q410.
It is sent from. This signal clears the write address counter c411 to 0. The output of the write address counter c411 is sent to the selectors 5420 and 5421.
is input. The other inputs of the selectors 5420 and 5421 are the outputs of the read address counter c410, and the output of the timing control circuit b482 and the output obtained by inverting the same with the inverting gate g480 are input to the control terminals of these selectors, respectively. Timing control circuit b482
is configured so that a trigger type flip-flop (not shown) receives a clock issued every machine cycle, and it is turned on every machine cycle.
Therefore, when the timing control circuit b482 selects the output of the read address counter c410 with the selector 5420, the timing control circuit b482 selects the output of the write address counter C411 with the selector 5421. However, in the next machine cycle, control is performed to select the opposite.Selector 5420
The output of selector 5421 is given as the address of memory element m400, and the output of selector 5421 is given as the address of memory element m401. Now, lines Q45°Q45', Q29 . Q2
9', the write data is sent to the SG conversion circuit b480.
, this data is input from the resource specified by line Q429 to one of vector register circuits b470-b477 corresponding to the vector register specified by line f1439. Here, vector register O
Since the data is written to , it is input to circuit b470.
書込みデータは、回路b470の入口に設けられたレジ
スタVRIRE、r430゜VRIRO,r440にV
RIR入力制御回路b484の指示により、交互にセッ
トされる。The write data is sent to the registers VRIRE, r430°VRIRO, and r440 provided at the entrance of the circuit b470.
They are set alternately according to instructions from the RIR input control circuit b484.
VRIR入力制御回路b484には、データ有効信号1
1420が入力され、データ有効信号の偶数番目、奇数
番目ごとにそれぞれVRI RE 。The data valid signal 1 is input to the VRIR input control circuit b484.
1420 is input, and VRI RE is input for each even and odd data valid signal.
r430.VRIRO,r440にそれぞれデータをセ
ットするように制御する。書込みを行なうべきサイクル
が2つのメモリ素子m 400 。r430. Control is performed to set data in VRIRO and r440, respectively. Memory element m 400 in which there are two cycles for writing.
m401に交互に割当てられており(詳細後述)、任意
のサイクルに、任意のベクトル待たされることがあり、
このときに、同じベクトルレジスタ回路b470に次の
書込みデータが到着することがあるので、2つのレジス
タVRIRE、VRIROを設け、相続く二つの書込み
データを異なるメモリ素子m400.m401に書込め
るようにした。書込みの指示は、ベクトルレジスタ制御
回路0、(第14図)から線Q420を介して入力され
るデータ有効信号によりなされる。この信号は、書込み
タイミング制御回路b483に入力される。m401 (details will be described later), and may be forced to wait for any vector in any cycle.
At this time, the next write data may arrive at the same vector register circuit b470, so two registers VRIRE and VRIRO are provided to transfer two successive write data to different memory elements m400. Enabled to write to m401. A write instruction is given by a data valid signal input from vector register control circuit 0 (FIG. 14) via line Q420. This signal is input to the write timing control circuit b483.
回路b483は偶数番目/奇数番目の書込み指示に従っ
て2マシンサイクル間保持した信号第19図に示すよう
なタイミングで2本出力し、この出力はそれぞれアンド
ゲートg481.g482に入力される。一方、これら
のアンドゲートには、タイミング制御回路b482の出
力、およびそれを反転ゲートg480で反転させた出力
が入力され、その出力がそれぞれメモリ素子m400゜
m401の書込み有効信号となる。書込みアドレスカウ
ンタc411は次のアドレスをさすように+1回回路4
81を経て+1される。この制御はアンドゲートg48
1.g482の出力をオアゲートg48でオアした出力
により行なわれる。なお、書込みはメモリ素子m400
.m401に交互に書いていくので、書込みアドレスカ
ウンタc411は、メモリ素子m400.m401の双
方に書込んだ後に+1すればよいことになるが、ここで
は、書込みアドレスカウンタの下1ビットを無視した値
を書込みアドレスとして、セレクタ5420,5421
に入力させる。これは、読出しアドレスカウンタc41
0についても同様である。以上述べたように、ベクトル
要素はメモリ素子m400.m401に交互に書込まれ
ていく。The circuit b483 outputs two signals held for two machine cycles according to the even/odd write instructions at the timing shown in FIG. 19, and these outputs are respectively input to the AND gate g481. g482. On the other hand, the output of the timing control circuit b482 and the output obtained by inverting it by the inverting gate g480 are input to these AND gates, and the outputs become write enable signals for the memory elements m400 and m401, respectively. The write address counter c411 is +1 times circuit 4 so as to point to the next address.
+1 after 81. This control is and gate g48
1. This is performed by ORing the output of g482 with OR gate g48. Note that writing is performed in memory element m400.
.. Since data is written alternately to memory element m400. It would be sufficient to add +1 after writing to both of m401, but here, the value ignoring the lower 1 bit of the write address counter is set as the write address, and the selector 5420, 5421
input. This is the read address counter c41
The same applies to 0. As described above, the vector elements are memory elements m400. They are written alternately to m401.
以上の動作のタイムチャートにして第19図に示す。A time chart of the above operation is shown in FIG. 19.
ベクトルレジスタOからの読出しは、次のように動作す
る。最初に、ベクトルレジスタOからの読出し開始を指
示する信号が、線Q400を介して命令起動制御回路b
400より送出されてくる。Reading from vector register O operates as follows. First, a signal instructing the start of reading from vector register O is sent to instruction activation control circuit b via line Q400.
It is sent from 400.
この信号によって、読出しアドレスカウンタC410を
クリアする。最初は、読出しアドレスカウンタC410
は0にクリアされているので、セレクタ5420,54
21を経て、アドレスがメモリ素子m400.m401
に与えられ、0番地のデータが読出されて、セレクタ5
422に入力される。セレクタ5422の制御端子には
、タイミング制御回路b482の出力を反転ゲートg4
80で反転した出力が入力され、いずれのメモリ素子か
ら読出されたデータを選択するかが指示されてメモリm
400のよみ出しサイクルにはメモリm400の出力を
、次のサイクルにはメモリm401の出力とを交互に選
択するように制御される。これによって選択されたデー
タは、レジスタ(VROR)r450にて一旦セットさ
れた後、G−8変換回路b481.b482により、リ
ソース対応のデータに変換され、たとえば演算器0への
被演算数のデータならば、線Q41によって、演算器0
へ送出される。メモリ・リクエスタへのデータ(主記憶
への格納データ)は1つでよいのでG−5変換回路を1
つ使用すればよい。ここでは回路b481にて、G−8
変換を行なうようにしている。ベクトルデータのうち1
ベクトル要素を送出するととに、ベクトルレジスタ制御
ユニットU40より、ベクトルレジスタの読出しアドレ
スカウンタC410の更新信号が、線Q470を介して
送出される。これによって、読出しアドレスカウンタc
410が1ずつ更新される。更新は、カウンタC410
の出力を+1加算回路b480を経てカウンタc410
の入力に戻すことによって行なう。This signal clears the read address counter C410. At first, the read address counter C410
is cleared to 0, so selectors 5420 and 54
21, the address is the memory element m400. m401
is given to selector 5, the data at address 0 is read out, and the data at address 0 is read out.
422. The output of the timing control circuit b482 is connected to the control terminal of the selector 5422 through an inverting gate g4.
The inverted output is inputted at 80, and it is instructed which memory element to select the data read from, and the memory m
Control is performed so that the output of memory m400 is alternately selected in the readout cycle 400, and the output of memory m401 is selected in the next cycle. The data selected by this is once set in the register (VROR) r450, and then in the G-8 conversion circuit b481. b482, it is converted into data corresponding to the resource. For example, if it is data of an operand to arithmetic unit 0, it is converted to data corresponding to the resource by line Q41.
sent to. Since only one data is required for the memory requester (data stored in the main memory), only one G-5 conversion circuit is required.
Just use one. Here, in circuit b481, G-8
I am trying to do the conversion. 1 of vector data
When the vector element is sent out, the vector register control unit U40 sends out an update signal for the vector register read address counter C410 via the line Q470. As a result, the read address counter c
410 is updated one by one. Update is done by counter C410
The output of +1 is passed through the adder circuit b480 to the counter c410.
This is done by returning to the input of
以上述べてきたように、ベクトルレジスタユニットでは
、リソースに供給するベクトルデータの読出し、および
リソースから送出されてくるベクトルデータの格納を行
なう、ここで、リソースに供給するデータは、演算には
2つ必要なので、2つのベクトルデータを揃えてから送
出しなければならない。しかも、チェイニング動作によ
って、各ベクトルレジスタに不等間隔で格納される任意
の2つのベクトルレジスタ上のベクトル要素について、
2つともデータが揃ったことを確認した上で、読出す必
要がある。このために、ベクトルレジスタの各々が、読
出し可能か否かを検出する回路と、リソース対応に、2
つのデータが読出し可能を検出する回路を設け、読出し
可能のときはじめて、ベクトルレジスタからデータを読
出す(実際には、すでにデータが読出されており、次の
読出しのために、読出しアドレスカウンタを更新する)
。As mentioned above, the vector register unit reads the vector data supplied to the resource and stores the vector data sent from the resource. Since this is necessary, the two vector data must be aligned before being sent. Moreover, for vector elements on any two vector registers stored at unequal intervals in each vector register by chaining operation,
It is necessary to read the data after confirming that both data are complete. For this purpose, each of the vector registers has a circuit for detecting whether reading is possible or not, and two circuits corresponding to the resources.
The data is read from the vector register only when it is readable. (In reality, the data has already been read, and the read address counter is updated for the next read.) do)
.
■ メモリ・リクエスタ メモリ・リクエスタ0の回路の詳細を第20図に示す。■ Memory requester The details of the circuit of memory requester 0 are shown in FIG.
メモリ・リクエスタの動作は、命令起動時の初期化動作
、主記憶からの読出し動作、主記憶への格納動作の3つ
に分けられる。The operations of the memory requester are divided into three: initialization operation at the time of instruction activation, read operation from main memory, and storage operation to main memory.
(1)命令起動時の初期化動作
第20図において、命令制御ユニットU3によリ、線1
210を介して命令起動信号が、線Q13を介して、リ
ソース種類、番号が線Q11を介して、命令コードが、
線ρ12を介してレジスタ番号が、fiu14を介して
、処理ベクトル長が送られてくる。線Q13上のリソー
ス種類、番号は、デコーダblooでデコードされ、自
メモリ・リクエスタであることが指定されていると、デ
コーダbLOoより1′″が出力され、線Q10上の命
令起動信号とともに、アンドゲートglooに入力され
、その出力線R100にu 1 nが出力される。mQ
100はフリップフロップfloOに入力されてフリッ
プフロップをセットするとともに、レジスタMIR,r
loo、MGR,rlolのセット端子に入力されて、
それぞれ、命令コード、およびレジスタ番号をMIR,
MGRにセットする。また、1lQlooはセレクタ5
LO3の制御端子に入力されて、IIρ14上の処理ベ
クトル長を選択し、処理ベクトル長カウンタ(M V
L CTR)、clooに処理ベクトル長をセットする
。(1) Initialization operation at the time of command startup In FIG.
An instruction activation signal is sent via line Q13, a resource type and number are sent via line Q11, and an instruction code is sent via line Q11.
The register number is sent via line ρ12, and the processing vector length is sent via fiu14. The resource type and number on the line Q13 are decoded by the decoder bloo, and if the self memory requester is designated, 1''' is output from the decoder bLOo, and the AND It is input to the gate gloo, and u 1 n is output to its output line R100.mQ
100 is input to the flip-flop floO to set the flip-flop, and the register MIR,r
It is input to the set terminals of loo, MGR, rlol,
MIR the instruction code and register number, respectively.
Set it to MGR. Also, 1lQloo is selector 5
It is input to the control terminal of LO3, selects the processing vector length on IIρ14, and controls the processing vector length counter (M V
L CTR), set the processing vector length to cloo.
MVLCTR,c 100のセット端子にも、線Q10
0が接続されている。以上で初期化動作を終了する。Also connect the wire Q10 to the set terminal of MVLCTR,c 100.
0 is connected. This completes the initialization operation.
(n)主記憶からの読出し動作
主記憶からの読出し動作であることは、命令コードがセ
ットされているMIR,rlooの出力をデコーダb1
01でデコードすることによって知る。デコーダb10
1の出力線Q20は主記憶制御ユニットUl(第1図参
照)に送られて、読出しか、格納かの動作指定をすると
ともに、セレクタ5104,5105,5106,51
07の制御端子に入力され、それぞれのセレクタのJ(
FIIと記入されている側を選択する。なお、主記憶へ
の格納がMIR,rlooにて指定している場合には、
セレクタの′S”と記入されている側を選択する。(n) Read operation from main memory A read operation from main memory means that the output of MIR, rlooo, where the instruction code is set, is sent to decoder b1.
This can be known by decoding with 01. decoder b10
The output line Q20 of No. 1 is sent to the main memory control unit Ul (see FIG. 1), which specifies read or store operations, and selectors 5104, 5105, 5106, and
07 control terminal, and each selector's J(
Select the side marked FII. Note that if storage in main memory is specified by MIR, rlooo,
Select the side of the selector marked 'S'.
ベクトルアドレスレジスタU5、およびベクトルアドレ
ス増分レジスタU6 (第1図参照)の出力がそれぞれ
線Q18.線Q19に介してそれぞれセレクタs 10
0.5101に入力されて、レジスタ番号がセットされ
ているMGR,rlolの出力により指定されたベクト
ルアドレスレジスタU5.およびベクトルアドレス増分
レジスタU6の内容が選択され、さらに、ベクトルアド
レスはセレクタ(WVAR)rl 10、および、作業
用ベクトルアドレス増分レジスタ(WVAIR)rll
lにセットされる。両レジスタへのセットは、フリップ
フロップf100の出力MI2101により制御される
。また、セレクタ5102の制御端子にも線Qlo1が
接続され、セレクタ5100の出力を選択するように制
御する。ベクトルアドレスがWVAR,rlloにセッ
トされると、線f121により、主記憶制御ユニットU
1(第1図)に最初のベクトル要素アドレスが送られる
。同時に1MVLCTR,c 100の出力に接続され
た非零検出回路b104より(処理ベクトル長として1
以上がMVLCTRにセットされているとすると)
l#lFjが出力され、セレクタ5107を経て、線Q
23により、アドレス有効信号として、主記憶制御ユニ
ットU1に送られる。The outputs of vector address register U5 and vector address increment register U6 (see FIG. 1) are respectively connected to lines Q18. selector s10 respectively via line Q19
0.5101, and the vector address register U5.0 is specified by the output of MGR, rlol to which the register number is set. and the contents of the vector address increment register U6 are selected, and the vector address is selected in the selector (WVAR) rl 10 and the working vector address increment register (WVAIR) rll
It is set to l. Setting to both registers is controlled by the output MI2101 of the flip-flop f100. The line Qlo1 is also connected to the control terminal of the selector 5102, and controls the output of the selector 5100 to be selected. When the vector address is set to WVAR,rllo, the line f121 causes the main memory control unit U
1 (FIG. 1), the first vector element address is sent. At the same time, from the non-zero detection circuit b104 connected to the output of 1MVLCTR,c100 (1MVLCTR,c100
Assuming that the above is set in MVLCTR)
l#lFj is output, passes through selector 5107, and is connected to line Q.
23, the address is sent to the main memory control unit U1 as an address valid signal.
線Q23はまた、MVLCTR,clooの制御端子に
入力されて、MVLCTR,cloo(7)内容を−1
する。1減じた値は、MVLCTR,clooの出力に
接続された。1減算回路b103により作成され、セレ
クタ5103を経て、MVLCTR,rlooに入力さ
れる。さらに、線Q23は、WVAR,rllo(7)
制御端子ニも入力され、WVAR,rl 10と、WV
AIR。Line Q23 is also input to the control terminal of MVLCTR,cloo to set the contents of MVLCTR,cloo(7) to -1
do. The value subtracted by 1 was connected to the output of MVLCTR, cloo. It is created by the 1 subtraction circuit b103, and is input to MVLCTR, rloo through the selector 5103. Furthermore, line Q23 is WVAR,rllo(7)
Control terminal D is also input, WVAR, rl 10, and WV
AIR.
rlllの内容を加算器b102で加算した結果を、セ
レクタ5102を経て再びWVAR。The result of adding the contents of rllll by adder b102 is sent to WVAR again via selector 5102.
rlloにセットするように制御する。これによって1
次のベクトル要素アドレスがWVAR。control to set it to rllo. This results in 1
The next vector element address is WVAR.
rlloにセットされたことになる。これを次々と繰返
して、ベクトルアドレスを求めては、アドレス有効信号
(@(123)とともに、主記憶制御ユニットU1に線
Q21を介して送出し、主記憶の読出し動作が行なねれ
る。This means that it is set to rllo. By repeating this one after another, the vector address is determined and sent along with the address valid signal (@(123)) to the main memory control unit U1 via the line Q21, and the read operation of the main memory is not performed.
主記憶での読出し動作が完了すると、主記憶制御ユニッ
トU1より線Ω24を介して読出しデータが、線Q25
を介して、データ有効信号が返される。線1224上の
読出しデータは、セレクタ5105を経てデータレジス
タDR,r120に入力され、線Q25がセレクタ51
04を経て。When the read operation in the main memory is completed, the read data is transferred from the main memory control unit U1 to the line Q25 via the line Ω24.
A data valid signal is returned via. Read data on line 1224 is input to data register DR, r120 via selector 5105, and line Q25 is input to selector 51.
After 04.
DR,r120のセット端子に入力されて、読比しデー
タが、DR,r120にセットされ、その出力が線Q2
9を介して、ベクトルレジスタデータユニットU41(
第10図)に送られる。また。The reading ratio data is input to the set terminal of DR, r120 and is set to DR, r120, and its output is sent to the line Q2.
9, the vector register data unit U41 (
Figure 10). Also.
線Q25上のデータ有効信号はフリップフロップ、f1
02に一旦セットされ、線1230により、ベクトルレ
ジスタ制御ユニットU40に送られる。The data valid signal on line Q25 is connected to a flip-flop, f1.
02 and sent via line 1230 to vector register control unit U40.
MVLCTR,c 100が減算されていき、内容が“
1″になると、1検出回路b105によって。MVLCTR,c 100 is subtracted, and the contents become “
When it becomes 1'', it is determined by the 1 detection circuit b105.
最終ベクトル要素であることが検出され、線L32によ
って、最終ベクトルデータ信号が、主記憶制御ユニット
U1にベクトルアドレス(線Q21)、アドレス有効信
号(線Ω23)とともに送出され、線133によって、
読出しデータと同期して戻される。線Q33上の最終ベ
クトルデータ信号は、フリップフロップf103にて一
旦セシトされ、セレクタ5106を経て、線Q26によ
り、ベクトルレジスタ制御ユニットU4 (第10図)
に送られる。MVLCTR,clooの内容は、1減算
回路b103を経て110”になると、非零検出回路b
104はII OIfを出力し、アドレス有効信号の送
出が停止される。以上で、ベクトルデータの読出し動作
が終了する。It is detected that it is the final vector element, and the final vector data signal is sent to the main memory control unit U1 along with the vector address (line Q21) and address valid signal (line Ω23) via line L32, and via line 133,
Returned synchronously with read data. The final vector data signal on line Q33 is once set by flip-flop f103, passes through selector 5106, and is sent to vector register control unit U4 (FIG. 10) via line Q26.
sent to. When the contents of MVLCTR,cloo become 110" after passing through the 1 subtraction circuit b103, the non-zero detection circuit b
104 outputs II OIf, and the sending of the address valid signal is stopped. This completes the vector data read operation.
(■)ベクトルデータの格納動作
ベクトルデータの格納においては、まず、格納であるこ
とを指定する信号が、線Q20を介して主記憶制御ユニ
ットU1に送られる。この信号はMIR,rloOの内
容をデコーダb101でデコードすることにより作成さ
れる。格納すべきデータの主記憶アドレスの送出は、読
出し動作とまったく同じである。すなわち、ベクトルア
ドレスレジスタおよびベクトルアドレス増分レジスタ中
の指定された1つがセレクタ5loo、5lo1により
選択されて、それぞれWVAR,r 110 。(■) Storage operation of vector data In storing vector data, first, a signal designating storage is sent to the main memory control unit U1 via the line Q20. This signal is created by decoding the contents of MIR, rloO by the decoder b101. Sending out the main memory address of the data to be stored is exactly the same as the read operation. That is, a designated one of the vector address register and the vector address increment register is selected by selectors 5loo and 5lo1, respectively, WVAR, r 110 .
WVAIR,r120にセットされる。WVAR。WVAIR, set to r120. WVAR.
rlloの出力線121により主記憶制御ユニットU1
にベクトルアドレスが送られることも読出し動作と同様
である。The output line 121 of rllo connects the main memory control unit U1.
The fact that a vector address is sent to is also similar to the read operation.
格納されるデータは、線Q27により、データ有効信号
(線Q28上)とともにベクトルレジスタユニットU4
より送られてくる。ベクトルデータはセレクタ5105
を経て、DR,r 120にセットされる。DR,r1
20へのセットの制御は、線Q2B上のデータ有効信号
をセレクタ5105を経てDR,r120のセット端子
に入力することにより行なう。線Ω28上のデータ有効
信号はまた。フリップフロップ、flolにも入力され
、一旦セットされた後、その出力は、セレクタ5107
を経て、線Q23によりDR。The data to be stored is transferred by line Q27 to vector register unit U4 along with the data valid signal (on line Q28).
It is sent from Vector data is selector 5105
DR,r is set to 120. DR, r1
The setting to DR, r120 is controlled by inputting the data valid signal on line Q2B via selector 5105 to the set terminal of DR, r120. The data valid signal on line Ω28 is also present. It is also input to the flip-flop, flol, and once set, its output is sent to the selector 5107.
DR via line Q23.
r120上の格納すべきベクトルデータとともに主記憶
制御ユニットU1へおくられる。これによって、主記憶
制御ユニットは、主記憶への書込み動作を行なう。線1
23上のアドレス有効信号は。It is sent to the main memory control unit U1 together with the vector data to be stored on r120. As a result, the main memory control unit performs a write operation to the main memory. line 1
The address valid signal on 23 is.
WVAR,rlloのセット端子に入力されて。Input to the set terminal of WVAR, rllo.
WVAR,rl 10の更新に使用されることは読出し
動作と同様である0以上のようにして、ペクト°ルレジ
スタユニットから格納すべきデータとデータ有効信号が
送られてくるたびに、そのアドレスを付して主記憶制御
ユニットへ送出すると同時に、WVAR,rlloを更
新して1次のベクトルデータの格納にそなえる。これを
、ベクトルレジスタユニットからデータが送られてくる
限り繰返し行なう。WVAR, rl 10 is used to update the address in the same manner as the read operation. Each time the data to be stored and the data valid signal are sent from the spectrum register unit, the address is At the same time, WVAR and rllo are updated to prepare for storing the primary vector data. This is repeated as long as data is sent from the vector register unit.
なお、格納動作においては、MVLCTR。Note that in the storage operation, MVLCTR.
clooは、読出し動作と同様に動作はするが、意味は
もたない。最終ベクトルデータ信号が線Q32により主
記憶制御ユニットにおくられでも、格納動作時は無視さ
れる。cloo operates similarly to the read operation, but has no meaning. Even though the final vector data signal is sent to the main memory control unit on line Q32, it is ignored during store operations.
■ 演算器
第21図は、演算器0の概略を示したものである。演算
器1も同一構造である。本実施例においては、演算回路
b210〜b213はすでに公知のごとく、各々への入
力に対する部分演算を演算制御回路b201〜b204
の制御の下で行なうものである。ここで、パイプライン
演算は4つのステージに分けて実行されると仮定してい
るが、このステージ数に特に制限はない、又、演算器0
゜1は命令で指定される各種の演算を行いうるちのとす
る。本実施例においては、入力オペランドとしてベクト
ルデータ、およびそのデータ有効信号が入力されると、
パイプライン・ステージによって演算され、結果のベク
トルデータと、データ有効信号が同期して出力されるこ
と、最終ベクトルデータ信号が入力されたときには、こ
の信号もデータ有効信号と同期して出力されることが特
長である。(2) Arithmetic unit FIG. 21 shows an outline of the arithmetic unit 0. Arithmetic unit 1 also has the same structure. In this embodiment, as already known, the arithmetic circuits b210 to b213 perform partial arithmetic operations on inputs to each arithmetic circuits b201 to b204.
It is carried out under the control of Here, it is assumed that the pipeline operation is executed in four stages, but there is no particular limit to the number of stages, and there is no limit to the number of stages.
It is assumed that ゜1 is capable of performing various operations specified by instructions. In this embodiment, when vector data and its data valid signal are input as input operands,
The resulting vector data calculated by the pipeline stage and the data valid signal are output in synchronization, and when the final vector data signal is input, this signal is also output in synchronization with the data valid signal. is a feature.
動作の概略を以下に説明する。An outline of the operation will be explained below.
命令制御ユニットU3より線Q10を介して命令起動信
号がアンドゲートg200に入力され、線813を介し
てリソース種類1番号がデコーダb200に入力され1
,1ifillを介して命令コードがレジスタr200
に入力される。デコーダb200の出力は、それへの入
力が自演算器に対するものであるときに、“1”となり
、アンドゲートg200を介してレジスタAIR,r2
00に1lflll上の命令コードのセットを指示する
。An instruction activation signal is input from the instruction control unit U3 to the AND gate g200 via the line Q10, and the resource type 1 number is input to the decoder b200 via the line 813.
, 1ifill, the instruction code is transferred to register r200.
is input. The output of the decoder b200 becomes "1" when the input to it is for the self-operating unit, and is passed through the AND gate g200 to the registers AIR and r2.
Instructs 00 to set the instruction code on 1lfllll.
#IR,r200の出力は、演算制御回路b201〜b
204に入力されて、各ステージにおける演算回路b2
10〜b213の動作を制御する。The output of #IR, r200 is the arithmetic control circuit b201 to b
204 and is input to the arithmetic circuit b2 in each stage.
10 to b213.
一方、ベクトルレジスタユニットから、演算すべきベク
トルデータが線Q41.Q42により、データ有効信号
が線Q43により送出されてくると、ベクトルデータは
レジスタr210゜r220に、データ有効信号はフリ
ップフロップf200にセットされる。データ有効信号
(Q 43)は、レジスタr210.r220へのセッ
ト信号としても使用される。レジスタr210.r22
0上の内容は、演算回路b210にて演算されて、次の
サイクルにはレジスタr211.r221に中間結果が
セットされる。レジスタへのセットはフリップフロップ
f200の出力が使用され、この出力はまたフリップフ
ロップf210に伝えられる。同様に、レジスタr21
1.r212の出力は、演算回路b211に入力されて
演算を行ない、次のサイクルには、レジスタr212.
r222に中間結果がセットされる。これと同期して、
フリップフロップf201の出力はフリップフロップf
202に移される。以下、これを繰返して、演算回路b
212、レジスタr213、演算回路b213とデータ
が移動するとともに、演算が進行し、最終結果がレジス
タr214にセットされる。データ有効信号もフリップ
フロップf202からフリップフロップf203、フリ
ップフロップf204と移される。演算結果と、そのデ
ータが有効であることを示すデータ有効信号は、それぞ
れ、線悲45と線ff46により、ベクトルレジスタユ
ニットに戻される。On the other hand, the vector data to be calculated is transmitted from the vector register unit to the line Q41. When a data valid signal is sent out through line Q43 by Q42, vector data is set in registers r210 to r220, and the data valid signal is set in flip-flop f200. The data valid signal (Q43) is the register r210. It is also used as a set signal to r220. register r210. r22
The contents on the register r211. An intermediate result is set in r221. The output of flip-flop f200 is used to set the register, and this output is also transmitted to flip-flop f210. Similarly, register r21
1. The output of r212 is input to the arithmetic circuit b211 to perform arithmetic operations, and in the next cycle, the output is input to the register r212.
An intermediate result is set in r222. In sync with this,
The output of the flip-flop f201 is the flip-flop f
202. Hereafter, by repeating this, arithmetic circuit b
212, register r213, and arithmetic circuit b213, the arithmetic operation progresses and the final result is set in register r214. The data valid signal is also transferred from flip-flop f202 to flip-flop f203 and then to flip-flop f204. The calculation result and a data valid signal indicating that the data is valid are returned to the vector register unit by lines 45 and ff46, respectively.
演算すべきデータがレジスタr210*r220から、
レジスタr211.r221に移されると、次の演算す
べきデータがレジスタr210.r220にセットされ
ることは、一般のパイプライン演算器と同様である。The data to be calculated is from register r210*r220,
Register r211. Once transferred to r221, the next data to be operated on is transferred to register r210. Setting r220 is the same as in a general pipeline arithmetic unit.
最終ベクトルデータ信号が線140により、フリップフ
ロップf210に入力されると、レジスタ・へのセット
と同様にして、フリップフロップf210にセットされ
る。データ有効信号が、フリップフロップf200〜f
204を移動するのと同期して、最終ベクトルデータ信
号がフリップフロップf210−f214を移動し、線
Ω44に出力され、ベクトルレジスタユニットU4に戻
される。When the final vector data signal is input to flip-flop f210 by line 140, it is set in flip-flop f210 in the same manner as it is set in register. The data valid signal is applied to the flip-flops f200 to f.
204, the final vector data signal moves through flip-flops f210-f214 and is output on line Ω44 and returned to vector register unit U4.
以上述べたように、本発明における演算器ではベクトル
データと、データ有効信号が同期して入力され、データ
有効信号がパイプラインステージを移動するのと同期し
て、データが演算され、結果がデータ有効信号と同期し
て出力されることが特長である。最終ベクトルデータ信
号についても同様である。As described above, in the arithmetic unit of the present invention, vector data and a data valid signal are input synchronously, the data is operated in synchronization with the movement of the data valid signal through the pipeline stage, and the result is Its feature is that it is output in synchronization with the valid signal. The same applies to the final vector data signal.
(5)まとめ
以上説明したごとく、本発明によれば、演算器やメモリ
・リクエスタの空きの状況に応じて、論理的に矛盾する
ことなく命令の実行順序を入れかえて起動することがで
き、演算器、メモリ・リクエスタの有効利用をはかるこ
とができる。(5) Summary As explained above, according to the present invention, the execution order of instructions can be changed and started without logical contradiction, depending on the availability of the arithmetic unit or memory requester. It is possible to make effective use of memory requesters.
第1図は1本発明によるベクトルプロセッサの概略構成
図、第2図は、本発明にて使用する各種レジスタの構造
を示す図、第3図は、命令制御ユニットの詳細を示す図
、第4図は、命令キューレジスタの詳細を示す図、第5
図は、リソース使用チェック回路の詳細を示す図、第6
図(a)は、レジスタ使用チェック回路の詳細を示す図
、(b)はチェック条件を示す図、第7図は、レジスタ
競合チェック回路の詳細を示す図、第8図は、命令制御
ユニットの変形例を示す図、第9図は、第8図のセレク
タ(b 394)の詳細ブロック図、第10図は、ベク
トルレジスタユニットの構成を示す図、第11図は、ベ
クトルレジスタ制御二ニットの詳細図、第12図は、命
令起動制御回路の詳細を示す図、第13図は、S−G変
換回路の詳細を示す図、第14図は、G−8変換回路の
詳細を示す図、第15図は、ベクトルレジスタ制御回路
の詳細を示す図、第16図は、オペランド制御回路の詳
細を示す図、第17図は第16図のタイミン゛グ制御回
路の動作のタイムチャート、第18図は、ベクトルレジ
スタデータユニットの詳細を示す図、第19図は第18
図の回路のタイムチャート、第20図は、メモリ・リク
エスタの詳細を示す図、第21図は、演算器の詳細を示
す図である。
′i!54図
第2因
り
(シーi) λ−とンNl
慕; ドントケ7
洒う ノ8 121
第21目1 is a schematic configuration diagram of a vector processor according to the present invention; FIG. 2 is a diagram showing the structure of various registers used in the present invention; FIG. 3 is a diagram showing details of the instruction control unit; Figure 5 shows details of the instruction queue register.
Figure 6 shows details of the resource usage check circuit.
Figure (a) shows the details of the register usage check circuit, (b) shows the check conditions, Figure 7 shows the details of the register conflict check circuit, and Figure 8 shows the instruction control unit. 9 is a detailed block diagram of the selector (b 394) in FIG. 8, FIG. 10 is a diagram showing the configuration of the vector register unit, and FIG. 11 is a diagram showing the configuration of the vector register control unit. Detailed diagrams: FIG. 12 is a diagram showing details of the instruction activation control circuit; FIG. 13 is a diagram showing details of the SG conversion circuit; FIG. 14 is a diagram showing details of the G-8 conversion circuit; FIG. 15 is a diagram showing details of the vector register control circuit, FIG. 16 is a diagram showing details of the operand control circuit, FIG. 17 is a time chart of the operation of the timing control circuit of FIG. 16, and FIG. The figure shows the details of the vector register data unit.
20 is a diagram showing details of the memory requester, and FIG. 21 is a diagram showing details of the arithmetic unit. 'i! Figure 54 2nd reason (see i) λ-ton Nl 慕;
Claims (1)
レジスタと、 該複数のレジスタからデータを受け取るかもしくはそこ
にデータを供給する、複数のリソースと、命令を順次デ
コードして命令が必要とするレジスタとリソースを検出
するデコード手段と、該デコード手段でデコードされた
複数の命令を保持する命令記憶手段と、 該保持された複数の命令の内、実行可能な、少くとも一
つの命令を検出する手段と、 該検出された実行可能な命令の実行開始を指示する手段
と、 該実行開始指示された命令に応答して命令で指定された
レジスタからデータを読み出し命令で指定されたリソー
スに送出するか命令で指定されたリソースから命令で指
定されたレジスタにデータを送る命令実行手段とを有し
、 該検出手段は、命令が必要とするリソースおよびレジス
タが利用可能であるという条件と該命令記憶手段内に保
持され、その命令より先に解読された命令とその命令と
の間にレジスタコンクリフトがないという条件を両方満
す命令を実行可能な命令として検出する手段であり、 該実行開始指示手段は、該該先に解読された命令よりも
先に該実行可能な命令の実行開始を指示する手段である
データ処理装置。 2、該実行開始指示手段は、該命令保持手段に保持され
た命令の内、複数の命令が実行可能であると検出した場
合、該実行可能な複数の命令の内、最も古く解読された
命令の実行開始を他の命令より先に指示する手段である
第1項のデータ処理装置。 3、該検出手段は、該命令保持手段内に保持された命令
の内、最も古く解読された命令およびそれ以外の少くと
も一つの命令について実行可能性をそれぞれ検出する、
第1、第2の検出手段からなる第2項データ処理装置。 4、該第2の検出手段は、該命令保持手段内に保持され
た命令の内、最も新しく解読された命令の実行可能性を
検出する手段である第3項のデータ処理装置。 5、該第2の検出手段は、該最も新しく解読された命令
以外の命令の実行可能性を検出する手段である第3項の
データ処理装置。 6、該検出手段は、 各リソースの使用状態を指示する第1の状態指示手段と
、 各レジスタの使用状態を指示する第2の状態指示手段と
、 該第1、第2の状態指示手段による指示該命令保持手段
と保持された命令が要求するリソースおよびレジスタの
番号に基づいて、当該命令の実行可能性を判別する手段
とからなる第1項のデータ処理装置。 7、該実行開始指示手段は、実行開始指示した命令が必
要とするリソースおよびレジスタを実行開始指示時に使
用状態に変更すべく、該第1、第2の状態指示手段を制
御する手段を有し、該命令実行手段は、実行開始指示さ
れた命令のためのレジスタの読み出し又はレジスタの書
込み終了に同期して該第1の状態指示手段を制御し、該
命令のためのリソースの動作終了に同期して該第2の状
態指示手段を制御する手段を有する第6項のデータ処理
装置。 8、該検出手段は、該命令保持手段に保持された一つの
命令と、それより古く解読された命令のいずれか互いに
同一のレジスタへのデータ書込みを要求するか否かを検
出し、結果が肯定的なときに、該一つの命令についてレ
ジスタコンフリフトがあることを示す信号を出力する手
段を有する第1項のデータ処理装置。 9、各レジスタは複数のベクトル要素を保持するベクト
ルレジスタであり、各ベクトルレジスタは、各ベクトル
レジスタ内のベクトル要素を順次アクセスする互いに並
列動作可能な書込み手段および読み出し手段を有し、 各リソースは該ベクトルレジスタから順次ベクトル要素
を受けとるかもしくは該ベクトルレジスタにベクトル要
素を順次供給するものであり、該検出手段は、該命令保
持手段内に保持された一つの命令があるベクトルレジス
タに対する書き込みを必要とする場合、当該ベクトルレ
ジスタが読み出し状態であっても、当該命令を実行可能
と判断する手段からなる第1項のデータ処理装置。[Claims] 1. A plurality of program-specifiable registers that hold data, a plurality of resources that receive data from or supply data to the plurality of registers, and sequentially decode instructions. a decoding means for detecting registers and resources required by the instruction; an instruction storage means for holding a plurality of instructions decoded by the decoding means; means for detecting one instruction; means for instructing the start of execution of the detected executable instruction; and means for reading data from a register specified by the instruction in response to the instruction for starting execution; and an instruction execution means for sending data to a resource specified by the instruction or from a resource specified by the instruction to a register specified by the instruction, and the detection means is configured to detect that the resources and registers required by the instruction are available. means for detecting as an executable instruction an instruction that satisfies both the condition that the instruction is stored in the instruction storage means and that there is no register conflict between the instruction and the instruction that is decoded before the instruction. A data processing device, wherein the execution start instructing means instructs to start execution of the executable instruction before the previously decoded instruction. 2. When the execution start instructing means detects that a plurality of instructions are executable among the instructions held in the instruction holding means, the execution start instruction means selects the oldest decoded instruction among the plurality of executable instructions. 2. The data processing device according to claim 1, wherein the data processing device is means for instructing the start of execution of a command before other commands. 3. The detecting means detects the executable possibility of the oldest decoded instruction and at least one other instruction among the instructions held in the instruction holding means.
Item 2: A data processing device comprising first and second detection means. 4. The data processing device according to item 3, wherein the second detection means is means for detecting the executable possibility of the most recently decoded instruction among the instructions held in the instruction holding means. 5. The data processing device according to item 3, wherein the second detection means is means for detecting the possibility of executing an instruction other than the most recently decoded instruction. 6. The detecting means includes a first state indicating means for indicating the usage status of each resource, a second status indicating means for indicating the usage status of each register, and the first and second status indicating means. 2. The data processing device according to claim 1, comprising means for holding an instruction and means for determining whether or not the instruction is executable based on the resources and register numbers required by the held instruction. 7. The execution start instructing means has means for controlling the first and second state instructing means so as to change the state of use of resources and registers required by the instruction to which the execution start is directed at the time of the execution start instruction. , the instruction execution means controls the first state indication means in synchronization with the end of register reading or register writing for the instruction for which execution has been instructed, and in synchronization with the end of resource operation for the instruction. 7. The data processing device according to claim 6, further comprising means for controlling said second state indicating means. 8. The detection means detects whether one instruction held in the instruction holding means or an older decoded instruction requests data writing to the same register, and the result is 2. The data processing device according to claim 1, further comprising means for outputting a signal indicating that there is a register conflict for the one instruction when the result is positive. 9. Each register is a vector register that holds a plurality of vector elements, and each vector register has write means and read means that can operate in parallel with each other to sequentially access the vector elements in each vector register, and each resource The detection means sequentially receives vector elements from the vector register or sequentially supplies vector elements to the vector register, and the detection means requires writing to the vector register in which one instruction held in the instruction holding means is located. In this case, the data processing device according to item 1, further comprising means for determining that the instruction can be executed even if the vector register is in a read state.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP200686A JPS61180370A (en) | 1986-01-10 | 1986-01-10 | Data processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP200686A JPS61180370A (en) | 1986-01-10 | 1986-01-10 | Data processor |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP56210392A Division JPS58114274A (en) | 1981-12-28 | 1981-12-28 | Data processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS61180370A true JPS61180370A (en) | 1986-08-13 |
JPH0452986B2 JPH0452986B2 (en) | 1992-08-25 |
Family
ID=11517306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP200686A Granted JPS61180370A (en) | 1986-01-10 | 1986-01-10 | Data processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS61180370A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0232424A (en) * | 1988-06-30 | 1990-02-02 | Internatl Business Mach Corp <Ibm> | Instruction processor |
JPH0816392A (en) * | 1994-06-21 | 1996-01-19 | Sgs Thomson Microelectron Ltd | Computer system, computer-system operating method and computer-instruction-sequence execution method |
JP2009193378A (en) * | 2008-02-14 | 2009-08-27 | Nec Computertechno Ltd | Vector processing device |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56157538A (en) * | 1980-05-09 | 1981-12-04 | Fujitsu Ltd | Data processing system of advanced mode control |
-
1986
- 1986-01-10 JP JP200686A patent/JPS61180370A/en active Granted
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56157538A (en) * | 1980-05-09 | 1981-12-04 | Fujitsu Ltd | Data processing system of advanced mode control |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0232424A (en) * | 1988-06-30 | 1990-02-02 | Internatl Business Mach Corp <Ibm> | Instruction processor |
JPH0816392A (en) * | 1994-06-21 | 1996-01-19 | Sgs Thomson Microelectron Ltd | Computer system, computer-system operating method and computer-instruction-sequence execution method |
JP2009193378A (en) * | 2008-02-14 | 2009-08-27 | Nec Computertechno Ltd | Vector processing device |
Also Published As
Publication number | Publication date |
---|---|
JPH0452986B2 (en) | 1992-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS6152512B2 (en) | ||
US3739352A (en) | Variable word width processor control | |
US4890218A (en) | Variable length instruction decoding apparatus having cross coupled first and second microengines | |
US4488227A (en) | Program counter stacking method and apparatus for nested subroutines and interrupts | |
US3553651A (en) | Memory storage system | |
US4037213A (en) | Data processor using a four section instruction format for control of multi-operation functions by a single instruction | |
IL36347A (en) | Data processing system | |
EP0535820A2 (en) | Method and apparatus for a register providing atomic access to set and clear individual bits of shared registers without software interlock | |
US3325785A (en) | Efficient utilization of control storage and access controls therefor | |
JP3237858B2 (en) | Arithmetic unit | |
US5046040A (en) | Microprogram control apparatus using don't care bits as part of address bits for common instructions and generating variable control bits | |
US4598358A (en) | Pipelined digital signal processor using a common data and control bus | |
JPS61180370A (en) | Data processor | |
US4812970A (en) | Microprogram control system | |
JP3738128B2 (en) | Data-driven information processing device | |
US6901504B2 (en) | Result forwarding of either input operand to same operand input to reduce forwarding path | |
US5826098A (en) | Data processing system which converts received data packet into extended packet with prescribed field for accumulation process | |
US5475828A (en) | Digital processor having plurality of memories and plurality of arithmetic logic units corresponding in number thereto and method for controlling the same | |
JPS63100572A (en) | Data processor | |
JPS63100573A (en) | Data processor | |
JP2859921B2 (en) | Instruction queue controller | |
JPS6314239A (en) | Instruction generating unit for computer system | |
JPS61114341A (en) | Processing system | |
JPS62267827A (en) | Selection system for branch conditions | |
JPH0266624A (en) | Data processor |