JPH0228765A - Instruction processing sequence control system - Google Patents
Instruction processing sequence control systemInfo
- Publication number
- JPH0228765A JPH0228765A JP8280989A JP8280989A JPH0228765A JP H0228765 A JPH0228765 A JP H0228765A JP 8280989 A JP8280989 A JP 8280989A JP 8280989 A JP8280989 A JP 8280989A JP H0228765 A JPH0228765 A JP H0228765A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- vector
- main memory
- store
- load
- 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
- 239000013598 vector Substances 0.000 claims abstract description 214
- 238000010586 diagram Methods 0.000 description 9
- 238000000034 method Methods 0.000 description 6
- 101150060298 add2 gene Proteins 0.000 description 4
- 101100490488 Mus musculus Add3 gene Proteins 0.000 description 3
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000000796 flavoring agent Substances 0.000 description 1
- 235000019634 flavors Nutrition 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Complex Calculations (AREA)
- Advance Control (AREA)
Abstract
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、ベクトル計算機において、プログラムで指定
された命令実行順序によらず命令を発行、実行する命令
処理順序制御システムに関する。DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to an instruction processing order control system in a vector computer that issues and executes instructions irrespective of the instruction execution order specified in a program.
命令処理の高速化のため、命令処理順序を動的に決定し
プログラムで指定された順序によらず演算部および主記
憶処理部に命令投入を行うシステムがスカシ処理用計算
機で用いられている。この詳細は、IBM社から196
7年1月発行された刊行物r I BM Journa
l of Re5earch & Devel。In order to speed up instruction processing, a system is used in a computer for search processing that dynamically determines the instruction processing order and inputs the instructions to the arithmetic unit and main memory processing unit regardless of the order specified in the program. The details are available from IBM at 196
Publications published in January 2017 r I BM Journal
l of Re5earch & Devel.
りmen tJ第11巻、第1号の第8頁−第24頁に
り。Rement J Vol. 11, No. 1, pages 8-24.
W、Anderson et、al、に・よりrThe
IBM System 1360Model 91:
Machine Ph1losophy and In
struction−HandlingJで記載された
論文およびIEEEから1984年発行された刊行物F
ilth Annual International
Sy−mposium on ComputerJの
第110頁−第118頁にS、Weiss et、al
によりrlNsTRUcTION l5SUELOG
ICFORPIPELINED SUPERCOMPU
TER3Jの題で示された論文を参照できる。By W. Anderson et al.
IBM System 1360 Model 91:
Machine Ph1losophy and In
Structure-Handling J and Publication F published by IEEE in 1984
ilth Annual International
Symposium on ComputerJ, pages 110-118, S., Weiss et al.
by rlNsTRUcTION l5SUELOG
ICFORPIPELINED SUPERCOMPU
You can refer to the paper titled TER3J.
これら命令処理順序制御を行う計算機では、命令の入出
力オペランドやメモリ・アドレスの衝突を検出し、また
演算器や主記憶処理装置の使用状況を判定しプログラム
で指定された順序によらず演算部や主記憶処理部への命
令投入を決定する手段を有している。このような計算機
での命令投入方式は、スカラ計算機のみならずベクトル
計算機にも適用可能である。しがし、ベクトル計算機で
は複数のメモリ参照ベクトル命令を、プログラムで指定
された順序と逆順にして主記憶処理部に投入してもよい
かの判定が困難である。即ち、プログラムで実行するこ
とが指定されているベクトルストア命令のストア開始起
点アドレスをbase■、該ベクトルストア命令がスト
アするベクトルの要素間距離をdistl、該ベクトル
ストア命令がストアするベクトル長の1enl (1e
i1)とし、該ベクトルストア命令より後で実行するこ
とかプログラムで指定されているベクトルロード命令の
ロード開始起点アドレスをbase2、該ベクトルロー
ド命令がロードするベクトルの要素間距離をc]1st
2、該ベクトルロード命]
今がロードするベクトル長を、Jen2 (len2≧
1)とすると、該ベクトルストア命令によってストアさ
れるアドレスの集合である(basel。Computers that control the order of instruction processing detect collisions between instruction input/output operands and memory addresses, and also determine the usage status of arithmetic units and main memory processing units. It also has means for deciding whether to input an instruction to the main memory processing section. This method of inputting instructions in a computer is applicable not only to scalar computers but also to vector computers. However, in a vector computer, it is difficult to determine whether it is acceptable to input a plurality of memory reference vector instructions to the main memory processing unit in the reverse order of the order specified in the program. That is, base is the store start address of the vector store instruction specified to be executed in the program, distl is the distance between elements of the vector stored by the vector store instruction, and 1enl is the length of the vector stored by the vector store instruction. (1e
i1), base2 is the load start address of the vector load instruction specified in the program to be executed after the vector store instruction, and c]1st is the distance between elements of the vector loaded by the vector load instruction.
2. The vector load command] The length of the vector to be loaded now is Jen2 (len2≧
1) is the set of addresses stored by the vector store instruction (basel.
basel+distlX1.basel+distl
X2.−、 bas e 1+d i s t LX
(l enl−1))と該ベクトルロート命令によって
ロートされるアドレスの集合である(base2.ba
se2十dist2X1.base2+dist2X2
゜base2+dist2X (1en2−1))との
交わりの集合が空である場合のみ、該ベクトルロート命
令は該ベクトルストア命令に先行して主記憶参照をおこ
なってもよいと判定される。しかし、任意のbasel
、distl、1enl (lenl≧1)、base
2.dist2,1en2 (len2≧1)の組合せ
に対して判定を短時間で下すのは困難である。basel+distlX1. basel+distl
X2. −, base e 1+d i s t LX
(l enl-1)) and the set of addresses to be loaded by the vector load instruction (base2.ba
se20dist2X1. base2+dist2X2
Only when the set of intersections with ゜base2+dist2X (1en2-1)) is empty, it is determined that the vector rot instruction may perform a main memory reference prior to the vector store instruction. But any basel
, distl, 1enl (lenl≧1), base
2. It is difficult to make a decision on the combination of dist2, 1en2 (len2≧1) in a short time.
そこで単純に判定可能な場合として、先行するベクトル
ストア命令で指定されたストア開始起点アドレスbas
elから該ベクトルストア命令の最終ストアアドレスで
あるbaselXdistlX (lenl−1)まで
の間をアドレス集合要素とする(addl:basel
≦addl≦(baselXdistlX (lenl
−1)))と、後続するベクトルロート命令で指定され
たロード開始起点アドレスbase2から該ベクトルス
トア命令の最終ストアアドレスであるbase2十(1
en2−])Xdist2までの間をアドレス集合要素
とする(add2:base2≦add2≦(base
2Xdist2X(len2−1)))との交わりの集
合が空であるならば主記憶参照に関して追い越しても構
わないとする、アドレス範囲の重複を判定する方法が提
案されている。Therefore, as a case where it can be determined simply, the store start start address bas specified in the preceding vector store instruction
The area from el to baselXdistlX (lenl-1), which is the final store address of the vector store instruction, is an address set element (addl:basel
≦addl≦(baselXdistlX (lenl
-1))) and the load start address base2 specified by the subsequent vector load instruction to base20 (1) which is the final store address of the vector store instruction.
en2-]) Xdist2 is the address set element (add2: base2≦add2≦(base
A method has been proposed for determining address range overlap, in which if the intersection set with 2Xdist2X(len2-1))) is empty, it may be overtaken in terms of main memory references.
この方法では、比較的簡単に実現できる反面、追越し可
能かどうかを正しく判定できるbasel、distl
、1enl (lenl≧1)、base2、dist
2,1en2 (len2≧1)の組合せも限定される
。即ち、プログラムで実行することが指定されているベ
クトルストア命令のストア開始起点アドレスをbase
L該ベクトルストア命令がストアするベクトルの要素間
距離をdistl、該ベクトルストア命令がストアする
ベクトル長を1enl (lenl≧1)、該ベクト
ルストア命令でストアされる最終ベクトル要素のアドレ
スを1astlとし、該ベクトルストア命令より後で実
行することがプログラムで指定されているベクトルロー
ド命令のロード開始起点アドレスをbase2、該ベク
トルロード命令がロードするベクトルの要素間距離をd
1st2、該ベクトルロード命令がロードするベクトル
長を1 en2(len2≧1)、該ベクトルロード命
令でロードされる最終ベクトル要素のアドレスを1as
t2とした場合、前述したアドレス範囲と重複を判定す
る方法では、basel、1astl、base2,1
ast2のアドレスの順序関係24通りのなかで、高々
8通り
(basel≦1astl≦base2≦1ast2)
(basel≦1astl≦Ba5t2≦base2)
(lastl≦basel≦base2≦1ast2)
(lastl≦basel≦1ast2≦base2)
(base2≦1ast2≦basel≦1astl)
(last2≦bast2≦basel≦1astl)
(base2≦1ast2≦1astl≦basel)
(last2≦base2≦1astl≦basel)
の場合しか正しく判定できないという欠点を有している
。Although this method is relatively easy to implement, it is possible to accurately determine whether overtaking is possible using basel, distl, etc.
, 1enl (lenl≧1), base2, dist
The combination of 2, 1en2 (len2≧1) is also limited. In other words, the store start address of the vector store instruction specified to be executed by the program is set as base.
L The distance between elements of the vector stored by the vector store instruction is distl, the length of the vector stored by the vector store instruction is 1enl (lenl≧1), the address of the final vector element stored by the vector store instruction is 1astl, Base2 is the load start address of the vector load instruction that is specified in the program to be executed after the vector store instruction, and d is the distance between elements of the vector loaded by the vector load instruction.
1st2, the length of the vector loaded by the vector load instruction is 1 en2 (len2≧1), and the address of the final vector element loaded by the vector load instruction is 1as
In the case of t2, in the method of determining address range and overlap described above, basel, 1astl, base2, 1
Among the 24 possible order relationships of ast2 addresses, there are at most 8 ways (basel≦1astl≦base2≦1ast2)
(basel≦1astl≦Ba5t2≦base2)
(lastl≦basel≦base2≦1ast2)
(lastl≦basel≦1ast2≦base2)
(base2≦1ast2≦basel≦1astl)
(last2≦bast2≦basel≦1astl)
(base2≦1ast2≦1astl≦basel)
(last2≦base2≦1astl≦basel)
It has the disadvantage that it can only be correctly determined in the following cases.
本発明の目的は、上述した欠点を除去し、主記憶参照に
関し命令の順序を追い越してもかまわないとする判定を
、より多くのbasel、distl、1enl、ba
se2.dist2,1en2の組合せに対して短時間
で行えることようにした命令処理順序制御システムを提
供することにある。SUMMARY OF THE INVENTION It is an object of the present invention to eliminate the above-mentioned drawbacks, and to improve the judgment that it is okay to overtake the order of instructions with respect to main memory references.
se2. It is an object of the present invention to provide an instruction processing order control system that can perform instruction processing for a combination of dist2 and 1en2 in a short time.
本発明の一態様に従ったシステムは、ベクトル演算器お
よび主記憶処理装置へ投入する命令群を保持する第1の
手段と、実行中の命令により使用されているベクトルレ
ジスタ、演算器、主記憶装置0
置の状態を保持する第2の手段と、該第1の手段により
保持されている命令群から該第2の手段により保持され
ている各種資源の状態に基づきプログラムで指定された
命令投入順序によらずベクトル演算器および主記憶処理
装置に投入する命令を決定する第3の手段を備え、該第
1の手段により保持されている命令群中のベクトルスト
ア命令と、該ベクトルストア命令よりも後から命令投入
することをプログラムで指定された該第1の手段により
保持されている命令群中のベクトルロード命令に関し、
該ベクトルストア命令で指定されたベクトル要素間距離
の大きさと該ベクトルロード命令で指定されたベクトル
要素間距離の大きさが等しく、かつ、該ベクトルストア
命令で指定されたストア開始起点アドレスと該ベクトル
ロード命令で指定されたロード命令で指定されたロード
開始起点アドレスが等しくなく、かつ、該ベクトルスト
ア命令で指定されたストア開始起点アドレスと該ベクト
ルロード命令で指定されたロード命令で指定されたロー
ド開始起点アドレスの差の大きさが該ベクトルロード命
令で指定されたベクトル要素間距離の大きさよりも小さ
い場合に、該ベクトルロード命令を該ベクトルストア命
令に先行してベクトル演算器および主記憶処理装置に投
入する手段を含んで構成される。A system according to one aspect of the present invention includes a first means for holding a group of instructions to be input to a vector arithmetic unit and a main memory processing unit, a vector register used by an instruction being executed, an arithmetic unit, and a main memory. A second means for holding the state of the device 0, and inputting an instruction specified by the program based on the state of various resources held by the second means from a group of instructions held by the first means. A third means for determining instructions to be input to the vector arithmetic unit and the main memory processing unit without regard to order; the vector store instruction in the instruction group held by the first means; Regarding the vector load instruction in the instruction group held by the first means specified in the program to input the instruction later,
The distance between vector elements specified by the vector store instruction is equal to the distance between vector elements specified by the vector load instruction, and the store start address specified by the vector store instruction and the vector The load start start address specified in the load instruction specified in the load instruction is not equal, and the store start start address specified in the vector store instruction and the load specified in the load instruction specified in the vector load instruction are If the magnitude of the difference in starting point addresses is smaller than the magnitude of the distance between vector elements specified by the vector load instruction, the vector load instruction is preceded by the vector store instruction and the vector arithmetic unit and main memory processing unit It consists of a means for inputting into the system.
次に本発明の一実施例について図面を参照して詳細に説
明する。Next, one embodiment of the present invention will be described in detail with reference to the drawings.
第1図を参照すると、本発明の一実施例は、プログラム
を記憶するプログラム保持部1.このプログラム保持部
1からの複数の命令1および2を投入待機のため格納す
る命令格納部2.複数のベクトルレジスタと1個以上の
演算器からなるベクトル演算器部5.主記憶装置へのア
クセスを制御する主記憶参照処理部6.実行中の命令に
より使用されている前記ベクトルレジスタ、演算器およ
び主記憶装置の状態を保持する状態保持部3.および前
記命令格納部2からの命令および前記状態保持部3から
の各種資源の状態に基づきプログラムで指定された命令
投入順序によらず前記ベクトル演算器部5および主記憶
参照処理部6に投入する命令を決定する命令処理順決定
部4を含む。Referring to FIG. 1, one embodiment of the present invention includes a program storage unit 1.1 that stores programs. An instruction storage section 2 that stores a plurality of instructions 1 and 2 from the program holding section 1 for waiting for input. Vector arithmetic unit section 5 consisting of a plurality of vector registers and one or more arithmetic units. Main memory reference processing unit 6 that controls access to the main memory. a state holding unit 3 that holds the states of the vector register, arithmetic unit, and main storage device used by the instruction being executed; Based on the instructions from the instruction storage section 2 and the status of various resources from the state holding section 3, the instructions are input to the vector arithmetic unit 5 and the main memory reference processing section 6 regardless of the instruction input order specified by the program. It includes an instruction processing order determining unit 4 that determines instructions.
命令格納部2は、空きが生ずる度、プログラムで指定さ
れた順序に従い、後続命令を格納する。The instruction storage unit 2 stores subsequent instructions in the order specified by the program whenever a space becomes available.
命令格納部2は、例えば、「命令1」と「命令2」との
2個の命令を保持し、プログラムで指定された順序上先
行する命令が「命令1」に、後続する命令が「命令2」
に保持するように保たれる。The instruction storage unit 2 holds, for example, two instructions, "instruction 1" and "instruction 2". 2"
It is kept in such a way as to keep it in place.
命令処理順決定部4は、主記憶参照論理競合チエツク部
9.レジスタ参照論理競合チエツク部8および命令投入
決定部7を含む。The instruction processing order determining unit 4 includes a main memory reference logic contention checking unit 9. It includes a register reference logic conflict check section 8 and an instruction input determination section 7.
第2図を参照すると、主記憶参照の論理競合チエツク部
9は、命令1のベクトルアクセス開始起点アドレス(b
asel)を格納するレジスタ21と、命令2のベクト
ルアクセス開始起点のアドレス(b a s e 2)
を格納するレジスタ22と、命令1のベクトルアクセス
する要素間距離(distl)を格納するレジスタ23
と、命令2のベクトルアクセスする要素間距離(d i
s t 2)を格納するレジスタ24と、減算回路2
5と、絶対値口路26と、絶対値回路27と、絶対値回
路28と、不等号関係が成立するかどうかを判定する比
較器29と、大なり関係が成立するかどうかを判定する
比較器30と、等量関係が成立するかどうかを判定する
比較器31と入力論理積32から構成される。Referring to FIG. 2, the main memory reference logic conflict check unit 9 checks the vector access start address (b) of instruction 1.
asel) and the address of the vector access start point of instruction 2 (ba se 2).
and a register 23 that stores the inter-element distance (distl) to be accessed by the vector of instruction 1.
and the distance between elements to be accessed by the vector of instruction 2 (d i
s t 2) and a subtraction circuit 2
5, an absolute value circuit 26, an absolute value circuit 27, an absolute value circuit 28, a comparator 29 that determines whether an inequality relationship holds true, and a comparator 29 that determines whether a greater-than relationship holds true. 30, a comparator 31 that determines whether an equivalence relationship holds, and an input logical product 32.
第7図を参照すると、レジスタ参照論理競合チエツク部
8は、先行命令である命令1の書込レジスタ番号71と
後続命令である命令2の書込レジスタ番号74とを比較
し、不一致のとき信号を出力する比較回路77、先行命
令である命令1の書込レジスタ番号71と後続命令であ
る命令2の第2の読出レジスタ番号76とを比較し不一
致のとき信号を出力する比較回路78.先行命令である
命令lの書込レジスタ番号71と後続命令である命令2
の第1の読出レジスタ番号75とを比較し不一致のとき
信号を出力する比較回路79.先行命令である命令1の
第1の読出レジスタ番号72と後続命令である命令2の
書込レジスタ番号74とを比較する比較回路80.先行
命令である命令L′14X−
■の第2の読出レジスタ番号73と後続命令である命令
2の書込レジスタ番号74とを比較する比較回路81.
およびこれら比較回路??−81からの出力の論理積を
とるアンドゲート82を含む。Referring to FIG. 7, the register reference logic conflict check unit 8 compares the write register number 71 of instruction 1, which is the preceding instruction, and the write register number 74 of instruction 2, which is the subsequent instruction, and when they do not match, a signal is sent. a comparison circuit 77 that outputs a signal, and a comparison circuit 78 that compares the write register number 71 of instruction 1, which is the preceding instruction, with the second read register number 76 of instruction 2, which is the subsequent instruction, and outputs a signal when they do not match. Write register number 71 of instruction l which is the preceding instruction and instruction 2 which is the succeeding instruction
and the first read register number 75, and outputs a signal when there is a mismatch. A comparison circuit 80 that compares the first read register number 72 of instruction 1, which is the preceding instruction, and the write register number 74 of instruction 2, which is the subsequent instruction. Comparison circuit 81 for comparing the second read register number 73 of instruction L'14X-1, which is the preceding instruction, and the write register number 74 of instruction 2, which is the subsequent instruction.
And these comparison circuits? ? -81 includes an AND gate 82 which ANDs the outputs from -81.
「命令追越しが可能」であるためには、基本的に次の3
条件を全て満足しなければならない。In order to be able to "overtake commands", there are basically the following three things.
All conditions must be met.
第1に、先行命令の実行結果を格納するレジスタの内容
を後続命令が読出してはならない。First, a subsequent instruction must not read the contents of a register that stores the execution result of a preceding instruction.
第2に、先行命令の読出対象となるレジスタに対し、後
続命令が書込動作を行なってはならない。Second, the subsequent instruction must not perform a write operation on the register that is the read target of the preceding instruction.
第3に、先行命令および後続命令の書込レジスタが同一
レジスタであってはならない。Third, the write registers of the preceding and succeeding instructions must not be the same register.
第7図に示すレズシタ参照論理競合チエツク部8はこれ
ら3つの条件を示す回路の一例であり、アンドゲート8
2の出力が論理″0″″ならば追越禁止を示し、′1″
”ならば追越可能を示す。The resistor reference logic conflict check unit 8 shown in FIG. 7 is an example of a circuit that shows these three conditions, and the AND gate 8
If the output of 2 is logic ``0'''', it indicates overtaking is prohibited, and ``1''
” indicates that overtaking is possible.
このチエツク部8の構成は、先行命令の読出レズシタの
内容を予めコピーすることで第2の条件を取り除くこと
が可能である。すなわち、後続命令の追越し実行に先立
って、先行命令が読出すレジスタの内容をバッファリン
クする。この場合、先行命令が読出すはすであったレジ
スタに後続命令が書込を行なったとしても、予めバッフ
ァリングしておいた値を先行命令の読出レジスタの値と
して用いることにより、先行命令を正しく実行させるこ
とができる。The configuration of the check section 8 makes it possible to eliminate the second condition by copying the contents of the read register of the preceding instruction in advance. That is, prior to overtaking execution of the subsequent instruction, the contents of the register read by the preceding instruction are buffer-linked. In this case, even if the succeeding instruction writes to the register that the preceding instruction was supposed to read, the value that has been buffered in advance can be used as the value of the reading register of the preceding instruction. can be executed correctly.
次に命令投入決定部γについて詳細に説明する。Next, the instruction input determining unit γ will be explained in detail.
第8図を参照すると、命令投入決定部7の主要部の1つ
である命令投入可否信号生成回路は、先行命令と後続命
令のそれぞれに対して構成される。Referring to FIG. 8, an instruction input permission signal generation circuit, which is one of the main parts of the instruction input determining section 7, is configured for each of the preceding instruction and the subsequent instruction.
各回路は、命令コードを解読するデコーダ83゜書込レ
ジスタ番号を解読するデコーダ84.第1の読出レジス
タ番号を解読するデコーダ85.第2の読出レジスタ番
号を解読するデコーダ86゜これらデコード83−86
の解読結果と第1図の状態保持部3から線14を介して
ビジーか否かを示す状態信号との論理積をとるアンドゲ
ート群87−101およびこれらアンドゲート群871
01の出力の論理和をとるオアゲー)102を含む。Each circuit includes a decoder 83 for decoding the instruction code and a decoder 84 for decoding the write register number. Decoder 85 for decoding the first read register number. Decoder 86 for decoding the second read register number These decodes 83-86
A group of AND gates 87-101 and these AND gate groups 871 and 87-101 which take a logical product of the decoding result and a status signal indicating whether or not the status is busy via the line 14 from the status holding unit 3 in FIG.
01 (OR game) 102.
この命令投入可否信号生成回路は、1つの命令に対して
投入(実行)可能かどうかを判定する回路である。状態
保持部3から線14を介してビジーか否かを示す信号は
、主記憶アクセスパス。This instruction input permission signal generation circuit is a circuit that determines whether or not one instruction can be input (executed). A signal indicating whether or not the state is busy is transmitted from the state holding unit 3 via the line 14 to the main memory access path.
加算器2乗算器、およびレジスタ(VRO〜VR3)に
対するもののみである。しかしこの信号の種類はこれに
限定されず、ベクトル演算器部5および主記憶参照処理
部6の構成に依存する。ここでは、説明の便宜上、最低
限必要とされるチエツク信号が示されている。Only for adder 2 multiplier and registers (VRO to VR3). However, the type of this signal is not limited to this, and depends on the configurations of the vector arithmetic unit 5 and the main memory reference processing unit 6. Here, for convenience of explanation, the minimum required check signal is shown.
デコーダ83は、命令コードの値に対応して、以下の第
1表のような出力信号を生成する。The decoder 83 generates output signals as shown in Table 1 below in accordance with the value of the instruction code.
第1表
また、デコーダ84−86は、レジスタ番号の値に対応
して、第2表に示す出力信号を生成する。Table 1 Also, decoders 84-86 generate output signals shown in Table 2 in accordance with the values of the register numbers.
第2表
次に、第4図に示すプログラム例を用いて作用を説明す
る。Table 2 Next, the operation will be explained using the program example shown in FIG.
第4図を参照すると、rVLOADJはベクトルロード
の命令コード、「■ADD」はベクトル加算の命令コー
ド、rVsTOREJはベクトルストアの命令コード、
rVMULTjはベクトル乗算の命令コードを示してい
る。また、rVROJからrVR3Jは命令オペランド
のベクトルレジスタを示し、各々のベクトルレジスタは
256個のベクトル要素を格納できるものとする。(a
、b。Referring to FIG. 4, rVLOADJ is a vector load instruction code, "■ADD" is a vector addition instruction code, rVsTOREJ is a vector store instruction code,
rVMULTj indicates a vector multiplication instruction code. Further, rVROJ to rVR3J indicate vector registers of instruction operands, and each vector register can store 256 vector elements. (a
, b.
C)の3つ組で示した命令オペランドは、ベクトルコー
ド/ストア命令の主記憶オペランドランドを示し、aは
ベクトルアクセスする開始起点アドレ←(b a s
e、 5,256)Jは、baseをメモリの開始起点
アドレス、ベクトル要素間距離5、ベクトル長256の
ベクトル要素を、ベクトルレジスタVROにロードする
命令であることを示している。The instruction operands shown in the triplet in C) indicate the main memory operand lands of the vector code/store instruction, and a is the starting point address for vector access ← (b a s
e, 5,256) J indicates an instruction to load a vector element with base as the starting address of the memory, distance between vector elements of 5, and vector length of 256 into the vector register VRO.
次に第4図で示したプログラムの主記憶参照に関する順
序性を第5図を用いて説明する。第5A図は第4図の1
番目の命令と2番目の主記憶アクセス命令が参照するメ
モリアドレスを示している。Next, the order in which the program shown in FIG. 4 refers to the main memory will be explained using FIG. 5. Figure 5A is 1 of Figure 4.
It shows the memory address referenced by the second instruction and the second main memory access instruction.
1番目の命令も2番目の命令もベクトルロードであり、
かつ、ベクトルレジスタの競合もないため、この場合、
プログラムで与えられた順序に従い実行される。次に、
1番目の命令と2番目の命令が実行開始されると、3番
目のベクトル加算命令がベクトル・レジスタvOと■1
に被演算対象にロードされるのに同期して実行に移され
るが、該加算命令の実行結果を主記憶装置に書き込む4
番目のベクトルストア命令は、該加算命令の演算結果が
VROに書き込み開始されるまで実行に移れない。一方
、5番目のベクトルロード命令は第5B図に示すように
、4番目のベクトルストア命令がストアした結果をロー
ドするのではないため、4番目のベクトルストア命令に
先行して実行を開始することが可能である。Both the first and second instructions are vector loads,
And since there is no vector register contention, in this case,
They are executed in the order given in the program. next,
When the first and second instructions start execution, the third vector addition instruction adds vector register vO and ■1
The execution result of the addition instruction is written to the main memory.
The th vector store instruction cannot be executed until the operation result of the addition instruction starts to be written to the VRO. On the other hand, as shown in Figure 5B, the fifth vector load instruction does not load the result stored by the fourth vector store instruction, so it starts execution before the fourth vector store instruction. is possible.
本発明はこの4番目のベクトルストア命令を5番目のベ
クトルロード命令が主記憶参照に関して追い越してもか
まわないことを判定するものであり、本発明を用いれば
、4番目のベクトルストア命令と5番目のベクトルロー
ド命令のベクトル要素間距離の大きさが等しく (いず
れも151)、かつ、4番目のベクトルストア命令のス
トア開始起点アドレス(b a s e)と5番目のベ
クトルロード命令のロード開始起点アドレス(base
十2)が等しくなく、かつ、該ベクトルストア命令のス
トア開始起点アドレスと該ベクトルロード命令のロード
開始起点アドレスの差の大きさ(lbasel+2−b
asel lすなわち2)が4番目のベクトルストア命
令の要素間距離の大きさ(15すなわち5)よりも小さ
いため、追越し可能と判定することができる。The present invention determines whether it is okay for the fifth vector load instruction to overtake this fourth vector store instruction in terms of main memory reference. The distances between the vector elements of the vector load instructions are the same (both are 151), and the store start point address (base) of the fourth vector store instruction and the load start point of the fifth vector load instruction are the same. Address (base)
(12) are not equal, and the size of the difference between the store start point address of the vector store instruction and the load start point address of the vector load instruction is (lbasel+2-b
Asel l, that is, 2) is smaller than the inter-element distance of the fourth vector store instruction (15, that is, 5), so it can be determined that overtaking is possible.
これに基づいて、命令投入決定部7について詳細に説明
する。Based on this, the instruction input determining section 7 will be explained in detail.
以下、実際の命令に対応して説明する。The following will explain the actual instructions.
・VLOAD VRO←(base、dist、1e
n)命令コードはVLOADであり、現在主記憶アクセ
スパスがBUSYであれば命令投入することは出来ない
。また、書込レジスタ番号9VROであり、現在VRO
が読みだしBUSYであれば本命令を投入することは出
来ない。・VLOAD VRO←(base, dist, 1e
n) The instruction code is VLOAD, and if the main memory access path is currently BUSY, the instruction cannot be input. Also, the write register number is 9VRO, and the current VRO
If it is read and BUSY, this command cannot be input.
・VSTORE VRI−+ (bas e、 d
i s t、 1 en)命令コードはVSTOREで
あり、現在主記憶アクセスパスがBUSYであれば命令
投入することは出来ない。また、読出レジスタ番号はV
RIであり、現在VRIが書込BUSYであれば本命令
を投入することは出来ない。・VSTORE VRI-+ (base e, d
i st, 1 en) The instruction code is VSTORE, and if the main memory access path is currently BUSY, the instruction cannot be input. Also, the read register number is V
RI, and if VRI is currently write BUSY, this command cannot be input.
・VMULT VB2 ←VRO,VRI命令コード
はVMULTであり、現在乗算器がBUSYであれば命
令投入することは出来ない。・VMULT VB2 ←VRO, VRI The instruction code is VMULT, and if the multiplier is currently BUSY, the instruction cannot be input.
また、書込レジスタ番号はVB2であり、現在VR2が
読出BUSYであれば本命令を投入することは出来ない
。さらに、読出レジスタはVRO及びVRIであり、何
れのレジスタが現在書込ビジーであっても本命令を投入
することは出来ない。Further, the write register number is VB2, and if VR2 is currently read BUSY, this instruction cannot be input. Furthermore, the read registers are VRO and VRI, and this command cannot be input even if which register is currently busy for writing.
以上の3例に対し、第8図の生成回路では、これから投
入しようとする命令が使用する予定のハードウェア資源
を既に投入された実行中の命令が使用しているかどうか
をチエツクするための回路である。In contrast to the above three examples, the generation circuit shown in Figure 8 is a circuit for checking whether an instruction currently being executed is already using the hardware resources that are to be used by the instruction that is about to be input. It is.
第1図を参照すると、命令投入部7の最終的な判定は、
線16を介して与えられる主記憶参照論理競合チエツク
部9の判定結果と、線15を介して与えられるレジスタ
参照論理競合チエツク部8の判定結果と、先行/後続命
令に対応して設けられた第8図の生成回路の判定結果を
総合して行う。Referring to FIG. 1, the final judgment of the instruction input unit 7 is as follows.
Provided corresponding to the judgment result of the main memory reference logic conflict check unit 9 given via the line 16, the judgment result of the register reference logic conflict check unit 8 given via the line 15, and the preceding/successful instructions. This is done by integrating the determination results of the generation circuit shown in FIG.
これらの関係は第3表に示される。These relationships are shown in Table 3.
Σ22−
次に本発明の一実施例の動作を説明する前に命令の実行
状態と各種ビジー信号との関係について第9図および第
10図を参照して詳細に説明する。Σ22- Next, before explaining the operation of an embodiment of the present invention, the relationship between the instruction execution state and various busy signals will be explained in detail with reference to FIGS. 9 and 10.
まず、命令の実行状態について説明する。First, the execution state of an instruction will be explained.
第9図を参照すると、VLOAD、VADD。Referring to FIG. 9, VLOAD, VADD.
VMU L T 、およびVSTORE等の命令の実行
状態は平行四辺形で示されている。この図形の意味を第
10図を用いて説明する。The execution states of instructions such as VMU L T and VSTORE are shown by parallelograms. The meaning of this figure will be explained using FIG.
ベクトル演算においては主記憶参照/演算等の処理をパ
イプライン方式で処理する。このため、ベクトルの第1
要素、第2要素、第3要素、・・・は互いにパイプライ
ン的に同時に処理されていく。In vector operations, main memory references/operations are processed in a pipeline manner. Therefore, the first vector
Elements, second elements, third elements, etc. are processed simultaneously in a pipeline manner.
平行四辺形における斜辺が、この各1要素に対する処理
の時間的な経過を示している。平行四辺形の横辺は、順
次、ベクトルの新しい要素の処理が進んでいくことを示
している。The oblique side of the parallelogram indicates the time course of processing for each element. The horizontal sides of the parallelogram indicate that new elements of the vector are processed in sequence.
各ベクトル要素に対する処理をベクトルロードを例とし
て説明すれば、アドレス生成、主記憶アクセス、ベクト
ルレジスタへの読出データの格納である。Taking a vector load as an example, the processing for each vector element will be described as address generation, main memory access, and storage of read data in a vector register.
各ベクトル要素に対する処理をベクトル演算(VADD
、VMULT) を例トシテ説明スレば、ベクトルレジ
スタからの読出、演算、ベクトルレジスタへの演算結果
の格納である。Processing for each vector element is performed by vector operation (VADD).
, VMULT) is an example of reading from a vector register, calculation, and storing the calculation result in the vector register.
次に、各種ビジー信号の状態変化を説明する。Next, state changes of various busy signals will be explained.
第9図を参照すると、実線で示されたビジー信号は、ビ
ジー信号のオン状態を示す。ビジー信号上の番号は、実
行中の命令のどの命令によりビジー状態となっているか
を示す。Referring to FIG. 9, the busy signal indicated by a solid line indicates the on state of the busy signal. The number on the busy signal indicates which instruction among the instructions being executed is causing the busy state.
例として、1番目の命令ffLOAD VRO←(b
ase、5,256))について説明する。As an example, the first instruction ffLOAD VRO←(b
ase, 5,256)) will be explained.
本命令が実行待機キューから取り出され実際の実行が開
始されると、主記憶アクセスパスとVROへの書き込み
がビジーとなる。ビジーが解除される時期は、主記憶ア
クセスパスビジーとVRO書き込みビジーでは異なる。When this instruction is taken out of the execution queue and actual execution begins, writing to the main memory access path and VRO becomes busy. The timing at which the busy state is released differs depending on whether the main memory access path is busy or when the VRO write is busy.
主記憶アクセスパスについては後続するVLOAD/V
STORE命令が主記憶アクセスパスを利用可能となる
直前までであり、VROレジスタ書き込みビジーについ
ては、後続してVROを読みだそうとする命令が実際に
読出可能となる直前までである。For the main memory access path, subsequent VLOAD/V
This is until immediately before the STORE instruction becomes able to use the main memory access path, and regarding the VRO register write busy, it is until immediately before the subsequent instruction that attempts to read the VRO becomes actually readable.
このビジー信号の種類とビジー信号が解除されるタイミ
ングの設定はベクトル演算器部、主記憶処理部の構成方
法によって異なるが、本実施例では各ベクトルレジスタ
に対する読出しは、複数の命令からの読出要求に対して
同時処理可能であることを仮定している。The type of this busy signal and the setting of the timing at which the busy signal is released differs depending on the configuration of the vector arithmetic unit section and main memory processing section, but in this embodiment, reading from each vector register is performed in response to a read request from multiple instructions. It is assumed that simultaneous processing is possible.
次に本発明の一実施例の動作について第4図のプログラ
ム例を用い、第1図、第2図、第6図および第9図を参
照して詳細に説明しよう。Next, the operation of one embodiment of the present invention will be explained in detail using the program example shown in FIG. 4 with reference to FIGS. 1, 2, 6, and 9.
第1図、第2図、第6図および第9図を参照すると、先
ず、初期状態(第9図の時刻t。)での実行待機キュー
2の状態は、命令1としてプログラムの1番目のベクト
ルロード命令、命令2としてプログラムの2香りのベク
トルロード命令がセットされる(第6図(a)の状態)
。レジスタ参照の論理競合チエツク部8はプログラム上
先行する命令1が書キ込みレジスタをプログラム上後続
する命令2が読み出し参照を行わず、かつ命令2が書き
込み参照を行うレジスタを命令1が読み出し参照しない
ため、追越し可能であることを命令投入決定部7に通知
する。主記憶参照の論理競合チエツク部9は第2図の回
路に従い、命令1の主記憶参照開始起点アドレスbas
elと命令2の主記憶参照開始起点アドレスbase2
が等しくなく、かつ、命令1のベクトル参照要素間距離
の大きさと命令2の主記憶参照要素間距離の大きさが等
しくなく、かつ、命令1の主記憶参照開始起点アドレス
baselと命令2の主記憶参照開始起点アドレスba
se2の差の大きさが命令1のベクトル参照要素間距離
の大きさより小さいために追越し可能であることを命令
投入決定部7に通知する。Referring to FIG. 1, FIG. 2, FIG. 6, and FIG. 9, first, the state of the execution waiting queue 2 in the initial state (time t in FIG. A vector load instruction with two flavors of the program is set as the vector load instruction and instruction 2 (state in FIG. 6(a)).
. The register reference logic conflict check unit 8 checks whether the preceding instruction 1 in the program does not read or refer to the write register, and the following instruction 2 does not read or refer to the register, and instruction 1 does not read or refer to the register to which instruction 2 writes or refers. Therefore, the command input determining unit 7 is notified that overtaking is possible. The main memory reference logic conflict check unit 9 follows the circuit shown in FIG.
Main memory reference start address base2 of el and instruction 2
are not equal, and the magnitude of the distance between vector reference elements of instruction 1 is not equal to the magnitude of the distance between main memory reference elements of instruction 2, and the main memory reference start address basel of instruction 1 is Memory reference start address ba
Since the magnitude of the difference in se2 is smaller than the magnitude of the vector reference element distance of instruction 1, the instruction input determining unit 7 is notified that overtaking is possible.
命令投入決定部7は状態保持部3からの信号により実行
中の命令が使用しているレジスタ及び演算器及び主記憶
処理部と、命令1が競合しないこと、命令2も競合しな
いことを判定する。従って、命令1も命令2も投入可能
であり、かつ、命令1と命令2の間にも論理的な順序関
係がないと判定されたため、命令1の番目の命令である
ベクトルロード命令を投入する(第9図時刻1+)。The instruction input determining unit 7 determines, based on the signal from the state holding unit 3, that instruction 1 does not conflict with the registers, arithmetic units, and main memory processing unit used by the instruction being executed, and that instruction 2 also does not conflict. . Therefore, it is determined that both instruction 1 and instruction 2 can be input, and that there is no logical order relationship between instruction 1 and instruction 2, so the vector load instruction, which is the second instruction of instruction 1, is input. (Figure 9 time 1+).
次に、次状態での実行待機キュー2の状態は、命令1と
してプログラムの2番目のベクトルロード命令、命令2
としてプログラムの3番目のベクトル加算命令がセット
される。(第6図(b)の状態)。レジスタ参照の論理
競合チエツク部8はプログラム上先行する命令1が書き
込むレジスタをフログラム上後続する命令2が読みだし
参照を行うため、追越し不能であることを命令投入決定
部7に通知する。主記憶参照の論理競合チェク部9は命
令3が主記憶参照を行わないため判定を行わない。命令
投入決定部7は、レジスタの論理競合チエツク部8から
の信号により命令1と命令2の間の追越しは認められな
いため、状態保持部3からの信号に従い主記憶参照処理
部6が次命令の処理可能となるタイミングで命令102
番目の命令であるベクトルロード命令を投入する(第9
図の時刻t2)。Next, the state of execution queue 2 in the next state is the second vector load instruction of the program as instruction 1, instruction 2
The third vector addition instruction of the program is set as . (The state shown in FIG. 6(b)). The register reference logic conflict check unit 8 notifies the instruction input determining unit 7 that it is impossible to overtake the register because the subsequent instruction 2 in the program reads and references the register written by the preceding instruction 1 in the program. The main memory reference logic conflict check unit 9 does not make a determination because the instruction 3 does not refer to the main memory. The instruction input determining unit 7 determines that the overtaking between instructions 1 and 2 is not allowed due to the signal from the register logic conflict check unit 8, so the main memory reference processing unit 6 determines whether the next instruction will be executed according to the signal from the state holding unit 3. instruction 102 at the timing when it becomes possible to process
Inputs the vector load instruction, which is the 9th instruction.
Time t2 in the figure).
次に、次状態での実行待機キュー2の状態は、命令1と
してプログラムの3番目のベクトル加算命令、命令2と
してプログラムの4番目のベクトルストア命令がセット
される(第6図(C)の状態)。レジスタ参照の論理競
合チエツク部8はプログラム上先行する命令1が書き込
むレジスタをプログラム上後続する命令2が読みだし参
照を行うため、追越し不能であることを命令投入決定部
7に通知する。主記憶参照の論理競合チエツク部9は命
令1が主記憶参照を行なわないため判定を行わない。命
令投入決定部7は、レジスタの論理競合チエツク部8か
らの信号により命令1と命令2の間の追越しは認められ
ないため、状態保持部3からの信号でベクトルレジスタ
VROとVRIが読みだし可能となるタイムンダで命令
1の3番目の命令であるベクトル加算命令を投入する(
第9図の時刻t3)。Next, the state of the execution queue 2 in the next state is such that the third vector addition instruction of the program is set as instruction 1, and the fourth vector store instruction of the program is set as instruction 2 (see FIG. 6(C)). situation). The register reference logic conflict check unit 8 notifies the instruction input determining unit 7 that it is impossible to overtake the register because the subsequent instruction 2 reads and references the register written by the preceding instruction 1 in the program. The main memory reference logic conflict check unit 9 does not make a determination because instruction 1 does not refer to the main memory. The instruction input determining unit 7 does not allow overtaking between instructions 1 and 2 due to the signal from the register logical conflict check unit 8, so the vector registers VRO and VRI can be read using the signal from the state holding unit 3. Input the vector addition instruction, which is the third instruction of instruction 1, in the timer that becomes (
Time t3 in FIG. 9).
次に、次状態での実行待機キュー2の状態は、命令1と
してプログラムの4番目のベクトルストア命令、命令2
としてプログラムの5番目のベクトルロード命令がセッ
トされる(第6図(d)の状態)。レジスタ参照の論理
競合チエツク部8はプログラム上先行する命令1が書き
込むレジスタなプログラム上後続する命令2が読みだし
参照を行わず、かつ命令2が書き込み参照を行うレジス
タを命令1が読みだし参照しないため、追越し可能であ
ることを命令投入決定部7に通知する。主記憶参照の論
理競合チエツク部9は第2図の回路に従い、命令1の主
記憶参照開始起点アドレスbase”lと命令2の主記
憶参照開始起点アドレスbase2が等しくなく、かつ
、命令1のベクトル参照要素間距離の大きさと命令2の
主記憶参照要素間距離の大きさが等しくなく、かつ、命
令1の主記憶器′照開始起点のアドレスbaselと命
令2の主記憶参照開始起点アドレスbase2の差の大
きさが命令1のベクトル参照要素□間距離の大きさより
小さいため追越し可能であることを命令投入決定部7に
通知する。命令投入決定部7は、状態保持部3からの信
号により命令1のベクトルストア命令は前状態で投入し
た3番目のベクトル加算命令の処理結果がベクトルレジ
スタVROに書キ込み開始されるまで投入できず、かつ
、命令2は命令1を追越し可能であるため、命令2の5
番目のベクトルロード命令を投入する(第9図の時刻t
4)。Next, the state of execution queue 2 in the next state is the fourth vector store instruction of the program as instruction 1, instruction 2
The fifth vector load instruction of the program is set as (the state shown in FIG. 6(d)). The logic conflict check unit 8 for register references is a register written by the preceding instruction 1 in the program, but the subsequent instruction 2 in the program does not read and refer to it, and instruction 1 reads and does not refer to the register to which instruction 2 writes and refers to it. Therefore, the command input determining unit 7 is notified that overtaking is possible. The main memory reference logic conflict check unit 9 follows the circuit shown in FIG. The size of the distance between reference elements and the size of the distance between main memory reference elements of instruction 2 are not equal, and the main memory reference start point address basel of instruction 1 and the main memory reference start point address base2 of instruction 2 are different from each other. Since the magnitude of the difference is smaller than the magnitude of the distance between the vector reference elements □ of instruction 1, the command input determining unit 7 is notified that overtaking is possible. The vector store instruction 1 cannot be input until the processing result of the third vector addition instruction input in the previous state starts to be written to the vector register VRO, and instruction 2 can overtake instruction 1. Instruction 2-5
Input the th vector load instruction (time t in Figure 9).
4).
次に、次状態での実行待機キュー2の状態は、命令1と
してプログラムの4番目のベクトルストア命令、命令2
としてプログラムの6番目のベクトルロード命令がセッ
トされる(第6図(e)の状態)。この時点では先に実
行投入した3番目のベクトル加算命令の演算結果はベク
トルレジスタVROに書き込み開始されているものとし
よう。Next, the state of execution queue 2 in the next state is the fourth vector store instruction of the program as instruction 1, instruction 2
The sixth vector load instruction of the program is set as (the state shown in FIG. 6(e)). At this point, it is assumed that the operation result of the third vector addition instruction executed earlier has started to be written to the vector register VRO.
レジスタ参照の論理競合チエツク部8はプログラム上先
行する命令1が書き込むレジスタをプログラム上後続す
る命令2が読みだし参照を行わず、かつ命令2が書き込
み参照を行うレジスタを命令1が読みだし参照しないた
め、追越し可能であることを命令投入決定部7に通知す
る。主記憶参照の論理競合チエツク部9は第2図の回路
に従い、命令1の主記憶参照開始起点アドレスbas
e 1と命令2の主記憶参照開始起点アドレスbase
2が等しくなく、かつ、命令1のベクトル参照要素間距
離の大きさと命令2の主記憶参照要素間距離の大きさが
等しくなく、かつ、命令1の主記憶参照開始起点アドレ
スbaselと命令2の主記憶参照開始起点アドレスb
ase2の差と大きさが命令1のベクトル参照要素間距
離の大きさより小さいため追越し可能であることを命令
投入決定部7に通知する。命令投入決定部7ば、状態保
持部3からの信号により実行中の命令が使用しているレ
ジスタ及び演算器及び主記憶処理部と、命令1が競合し
ないことと、命令2も競合しないことを判定する。従っ
て命令1も命令2も投入可能であり、かつ、命令1と命
令2の間にも論理的な順序関係がないと判定されたため
、命令1の4番目の命令であるベクトルストア命令投入
する(第9図の時刻t5)。The register reference logic conflict check unit 8 checks that the register written by the preceding instruction 1 in the program is not read or referenced by the subsequent instruction 2 in the program, and the register that is written and referenced by instruction 2 is read by instruction 1 and not referenced. Therefore, the command input determining unit 7 is notified that overtaking is possible. The main memory reference logic conflict check unit 9 follows the circuit shown in FIG.
Main memory reference start address base of e 1 and instruction 2
2 are not equal, and the magnitude of the distance between vector reference elements of instruction 1 and the magnitude of the distance between vector reference elements of instruction 2 are not equal, and the main memory reference start address basel of instruction 1 and the distance between vector reference elements of instruction 2 are Main memory reference start address b
Since the difference and magnitude of ase2 are smaller than the magnitude of the vector reference element distance of instruction 1, the instruction input determining unit 7 is notified that overtaking is possible. The instruction input determining unit 7 uses a signal from the state holding unit 3 to determine that instruction 1 does not conflict with the registers, arithmetic units, and main memory processing unit used by the instruction being executed, and that instruction 2 also does not conflict. judge. Therefore, it is determined that both instruction 1 and instruction 2 can be input, and there is no logical order relationship between instruction 1 and instruction 2, so the vector store instruction, which is the fourth instruction of instruction 1, is input ( time t5 in FIG. 9).
以降も同様な手順を経て実行待機キュー2の状態は第6
図(f)、第6図(g)と状態を変えていく。After that, the status of execution standby queue 2 is changed to 6th through the same procedure.
The state changes from Figure (f) to Figure 6 (g).
本実施例は上記に説明したように、はすかい関係にある
2個のベクトル主記憶参照関係の論理的追越し可能性を
判定するものであるが、命令待機キュー2のエントリ数
を3以上にすることも可能である。さらに、本実施例で
はベクトル・ストア命令をベクトル・ロード命令が追越
す動作例を示したが、ベクトル・ストア命令間、ベクト
ル・ロード命令間、ベクトル・ロード命令をベクトル・
ストア命令が追越す場合などにも適用できる。As explained above, this embodiment determines the logical overtaking possibility of two vector main memory reference relationships that are in a diagonal relationship, but the number of entries in the instruction waiting queue 2 is set to 3 or more. It is also possible to do so. Furthermore, in this embodiment, an example of operation in which a vector load instruction overtakes a vector store instruction has been shown, but between vector store instructions, between vector load instructions, and when a vector load instruction is
It can also be applied when a store command overtakes.
また、主記憶参照の論理競合チエツク部9において、先
行するベクトルストア命令で指定されたストア開始起点
アドレスbaselから該ベクトルストア命令の最終ス
トアアドレスであるbaseIXdistlX (le
nl−1)までの間をアドレス集合要素とする(add
l :base1≦addl≧(bas e IXd
i s t LX (1en 1−1)))と、後続す
るベクトル四−F命令で指定されたロード開始起点アド
レスbase2から該ベクトルロード命令の最終ストア
アドレスであるbase2十1en2−1)Xdist
2までの間をアドレス集合要素とする(add2:ba
se2≦add2≧(base2Xdist2X(le
n2−1)))との交わりの集合が空であるならば主記
憶参照に関して追越しても構わないと判定する回路を併
設するこ七により、アドレスのはすかい関係と重複関係
の両方の判定を行うことも可能である。In addition, in the main memory reference logic conflict check unit 9, from the store start starting point address basel specified in the preceding vector store instruction to the final store address baseIXdistlX (le
nl-1) as the address set element (add
l: base1≦addl≧(base IXd
i s t LX (1en 1-1))) and the load start point address base2 specified by the subsequent vector 4-F instruction to base2 1en2-1) Xdist, which is the final store address of the vector load instruction.
2 to 2 as address set elements (add2: ba
se2≦add2≧(base2Xdist2X(le
By installing a circuit that determines that if the set of intersections with n2-1))) is empty, it is OK to overtake the main memory reference, it is possible to determine both the fast relationship and the duplicate relationship of addresses. It is also possible to do this.
アドレスの重複関係を判定する場合の主記憶参照の論理
競合チエツク部9の他の1例を第3図を参照して詳細に
説明する。Another example of the logical conflict check section 9 for main memory reference when determining address duplication will be described in detail with reference to FIG.
第3図を参照すると、主記憶参照の論理競合チエツク部
9の他の例は、命令1のベクトルアクセスする開始起点
アドレス(basel)を格納するレジスタ33と、命
令1のベクトルアクセスするベクトル長(lenl)を
格納するレジスタ34と、命令1のベクトルアクセスす
る要素間距離(distl)を格納するレジスタ35と
、命令2のベクトルアクセスする開始起点アドレス(b
a s e 2)を格納するレジスタ36と、命令2
のベクトルアクセスするベクトル長(len2)を格納
するレジスタ37と、命令2のベクトルアクセスする要
素間距離(d i s t 2)を格納するレジスタ3
8と、加算器39と、乗算器4゜と、加算器41と、加
算器42と、乗算器43と、加算器44と、2×2のス
イッチング回路45と、レジスタ46〜49と、犬なり
関係が成立するかどうかを判定する比較器50と、小な
り関係が成立するかどうかを判定する比較器51と、大
なり関係が成立するかどうかを判定する比較器52と、
小なり関係が成立するかどうかを判定する比較器53と
、論理和回路54と、論理積回路55と、論理和回路5
6と、はすかい関係の判定回路57と、論理和回路58
から構成される。Referring to FIG. 3, another example of the main memory reference logic conflict check unit 9 includes a register 33 that stores the starting point address (basel) for vector access of instruction 1, and a vector length (basel) for vector access of instruction 1. lenl), a register 35 that stores the inter-element distance (distl) to be accessed by the vector of instruction 1, and a register 35 to store the distance between elements (distl) to be accessed by the vector of instruction 2;
a s e 2) and a register 36 that stores the instruction 2).
A register 37 stores the vector length (len2) to be accessed by the vector of instruction 2, and a register 3 stores the inter-element distance (d i s t 2) to be accessed by the vector of instruction 2.
8, adder 39, multiplier 4°, adder 41, adder 42, multiplier 43, adder 44, 2×2 switching circuit 45, registers 46 to 49, A comparator 50 that determines whether the less-than relationship holds true, a comparator 51 that determines whether the less-than relationship holds true, and a comparator 52 that determines whether the greater-than relationship holds true.
A comparator 53 that determines whether a less-than relationship is established, an OR circuit 54, an AND circuit 55, and an OR circuit 5
6, a hashite relationship determination circuit 57, and an OR circuit 58
It consists of
はすかい関係の判定回路57は第2図の回路と同じもの
である。また、2×2のスイッチング回路45は、命令
1のベクトルアクセスする要素間距離(d i s t
1)を格納するレジスタ35の符号部が負数を示す場
合にクロス状態に接続し、命令1のベクトルアクセスす
る要素間距離(distl)を格納するレジスタ35の
符号部が正数を示す場合に交わらない状態に接続する。The hashite relation determination circuit 57 is the same as the circuit shown in FIG. In addition, the 2×2 switching circuit 45 has the distance between elements to be accessed by the vector of instruction 1 (d i s t
When the sign part of the register 35 that stores instruction 1) indicates a negative number, it is connected to a cross state, and when the sign part of the register 35 that stores the distance (distl) between elements to be accessed by the vector of instruction 1 indicates a positive number, it crosses. Connect to no state.
本発明には、ベクトルストア命令と該ベクトルロード命
令にプログラム上で後続する該ベクトルストア命令とベ
クトル要素間距離が等しいベクトルロード命令が参照す
る主記憶上のアドレスが、籍巌
互いにはすかいになっており、かつ、該ベクトルストア
命令と該ベクトルロード命令がアクセスする開始起点ア
ドレスが、該ベクトルストアのベクトル要素間距離の大
きさ以上に離れていない場合に、主記憶参照に関して追
越し可能かどうかを正しく判定する効果を有している。In the present invention, addresses on main memory referenced by a vector store instruction and a vector load instruction that follows the vector store instruction and the vector load instruction that follow the vector load instruction in the program are far away from each other. and the start address accessed by the vector store instruction and the vector load instruction are not separated by more than the distance between vector elements of the vector store, whether overtaking is possible in terms of main memory reference. It has the effect of correctly determining the
第1図は本発明の一実施例を示す図;
第2図および第3図は、第1図の主記憶参照論理競合チ
エツク部9の一例を示す図;
第4図は本発明の詳細な説明するためのプログラム例を
示す図;
第5A図および第5B図は、ベクトルロード/ストア命
令の主記憶参照を示す図;
第6A図から第6G図は第1図の命令格納部2の命令格
納状態を示す図;
第7図は、レジスタ参照論理競合チエツク部8の詳細な
構成を示す図;
第8図は、命令投入決定部7の一部の詳細な構成を示す
図;
第9図は、命令の実行状態および命令の実行に伴って変
化する各種ビジー信号の状態を示す図;および第10図
は命令の実行状態を示す図である。
図において、1・・・・・・プログラム保持部、2・・
・・・・命令格納部、3・・・・・・状態保持部、4・
・・・・・命令処理順決定部、5・・・・・・ベクトル
演算器部、6・・・・・・主記憶参照処理部、7・・・
・・命令投入決定部、8・・・・・・レジスタ参照論理
競合チエツク部、9・・・・・・主記憶参照論理競合チ
エツク部。
代理人 弁理士 内 原 晋
ニさ
心4
へ
守く
心く
へ
25各日FIG. 1 is a diagram showing an embodiment of the present invention; FIGS. 2 and 3 are diagrams showing an example of the main memory reference logic contention check section 9 of FIG. 1; FIG. 4 is a diagram showing a detailed example of the present invention. Figures showing example programs for explanation; Figures 5A and 5B are diagrams showing main memory references for vector load/store instructions; Figures 6A to 6G are instructions in the instruction storage section 2 of Figure 1; A diagram showing the storage state; FIG. 7 is a diagram showing the detailed configuration of the register reference logic conflict check unit 8; FIG. 8 is a diagram showing the detailed configuration of a part of the instruction input determining unit 7; FIG. 10 is a diagram showing the execution state of an instruction and the states of various busy signals that change as the instruction is executed; and FIG. 10 is a diagram showing the execution state of the instruction. In the figure, 1...program holding unit, 2...
...Instruction storage section, 3...State holding section, 4.
...Instruction processing order determining unit, 5...Vector arithmetic unit, 6...Main memory reference processing unit, 7...
. . . Instruction input determination section, 8 . . . Register reference logic conflict check section, 9 . . . Main memory reference logic conflict check section. Agent Patent Attorney Susumu Hara Uchihara 4 Protect your heart 25 every day
Claims (2)
ベクトルレジスタと該演算器と該ベクトルレジスタを結
合するネットワークから構成されたベクトル演算器と、
ベクトルを単位とするロード/ストアを主記憶装置の該
ベクトルレジスタとの間で行う主記憶処理装置を備える
ベクトル処理装置において、 ベクトル演算器および主記憶処理装置へ投入する命令群
を保持する第1の手段と、 実行中の命令により使用されているベクトルレジスタ、
演算器、主記憶装置の状態を保持する第2の手段と、 該第1の手段により保持されている命令群から該第2の
手段により保持されている各種資源の状態に基づきプロ
グラムで指定された命令投入順序によらずベクトル演算
器および主記憶処理装置に投入する命令を決定する第3
の手段を備え、 この第3の手段は、該第1の手段により保持されている
命令群中のベクトルストア命令と、該ベクトルストア命
令よりも後から命令投入することをプログラムで指定さ
れた該第1の手段により保持されている命令群中のベク
トルロード命令に関し、該ベクトルストア命令で指定さ
れたベクトル要素間距離の大きさと該ベクトルロード命
令で指定されたベクトル要素間距離の大きさが等しく、
かつ、該ベクトルストア命令で指定されたストア開始起
点アドレスと該ベクトルロード命令で指定されたロード
命令で指定されたロード開始起点アドレスが等しくなく
、かつ、該ベクトルストア命令で指定されたストア開始
起点アドレスと該ベクトルロード命令で指定されたロー
ド命令で指定されたロード開始起点アドレスの差の大き
さが該ベクトルロード命令で指定されたベクトル要素間
距離の大きさよりも小さい場合に、該ベクトルロード命
令を該ベクトルストア命令に先行してベクトル演算器お
よび主記憶処理装置に投入する手段を持つことを特徴と
する命令処理順序制御システム。(1) A vector arithmetic unit composed of one or more pipelined arithmetic units, a plurality of vector registers, and a network connecting the arithmetic units and the vector registers;
In a vector processing device equipped with a main memory processing unit that performs load/store in units of vectors to and from the vector register of the main memory, and the vector registers used by the executing instruction,
a second means for holding the state of the arithmetic unit and the main memory; and a second means for holding the state of the arithmetic unit and the main memory; The third controller determines the instructions to be input to the vector arithmetic unit and the main memory processing unit regardless of the instruction input order.
The third means includes a vector store instruction in the instruction group held by the first means and a vector store instruction specified by the program to be input after the vector store instruction. Regarding the vector load instruction in the instruction group held by the first means, the magnitude of the distance between vector elements specified by the vector store instruction is equal to the magnitude of the distance between vector elements specified by the vector load instruction. ,
and the store start point address specified by the vector store instruction and the load start point address specified by the load instruction specified by the vector load instruction are not equal, and the store start point address specified by the vector store instruction If the difference between the address and the load start point address specified by the load instruction specified by the vector load instruction is smaller than the distance between vector elements specified by the vector load instruction, the vector load instruction An instruction processing order control system comprising means for inputting the vector store instruction to a vector arithmetic unit and a main memory processing unit in advance of the vector store instruction.
ベクトルレジスタと該演算器と該ベクトルレジスタを結
合するネットワークから構成されたベクトル演算器と、
ベクトルを単位とするロード/ストアを主記憶装置と該
ベクトルレジスタとの間で行う主記憶処理装置を備える
ベクトル処理装置において、 ベクトル演算器および主記憶処理装置へ投入する命令群
を保持する第1の手段と、 実行中の命令により使用されているベクトルレジスタ、
演算器、主記憶装置の状態を保持する第2の手段と、 該第1の手段により保持されている命令群から該第2の
手段により保持されている各種資源の状態に基できプロ
グラムで指定された命令投入順序によらずベクトル演算
器および主記憶処理装置に投入する命令を決定する第3
の手段を備え、 前記第3の手段は、該第1の手段により保持されている
命令群中のベクトルストア命令と、該ベクトルストア命
令よりも後から命令投入することをプログラムで指定さ
れた該第1の手段により保持されている命令群中のベク
トルロード命令に関し、該ベクトルストア命令によりス
トアされるストア開始起点アドレスから該ベクトルスト
ア命令によりストアされる最終ストア・アドレスまでの
連続するアドレス区間と該ベクトルロード命令によりロ
ードされるロード開始起点アドレスから該ベクトルロー
ド命令によりロードされる最終ロード・アドレスまでの
連続するアドレス区間とが交わらない場合にも、該ベク
トルロード命令を該ベクトルストア命令に先行してベク
トル演算器および主記憶処理装置に投入する手段を持つ
ことを特徴とする請求項1記載の命令処理順序制御シス
テム。(2) a vector arithmetic unit composed of one or more pipelined arithmetic units, a plurality of vector registers, and a network connecting the arithmetic units and the vector registers;
In a vector processing device equipped with a main memory processing unit that performs loads/stores in units of vectors between the main memory and the vector register, and the vector registers used by the executing instruction,
a second means for holding the state of the arithmetic unit and the main memory; The third controller determines the instructions to be input to the vector arithmetic unit and the main memory processing unit regardless of the order in which the instructions are input.
The third means includes a vector store instruction in the instruction group held by the first means and a vector store instruction specified by the program to be input after the vector store instruction. With respect to a vector load instruction in the instruction group held by the first means, a continuous address interval from a store start address stored by the vector store instruction to a final store address stored by the vector store instruction; Even if the continuous address range from the load start address loaded by the vector load instruction to the final load address loaded by the vector load instruction does not intersect, the vector load instruction is preceded by the vector store instruction. 2. The instruction processing order control system according to claim 1, further comprising means for inputting the data to the vector arithmetic unit and the main memory processing unit.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8280989A JPH0812661B2 (en) | 1988-04-01 | 1989-03-31 | Instruction processing order control system |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8151988 | 1988-04-01 | ||
| JP63-81519 | 1988-04-01 | ||
| JP8280989A JPH0812661B2 (en) | 1988-04-01 | 1989-03-31 | Instruction processing order control system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0228765A true JPH0228765A (en) | 1990-01-30 |
| JPH0812661B2 JPH0812661B2 (en) | 1996-02-07 |
Family
ID=26422538
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8280989A Expired - Lifetime JPH0812661B2 (en) | 1988-04-01 | 1989-03-31 | Instruction processing order control system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0812661B2 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010205088A (en) * | 2009-03-04 | 2010-09-16 | Nec Computertechno Ltd | Vector processing apparatus and vector processing method |
| JP2019517060A (en) * | 2016-04-26 | 2019-06-20 | エイアールエム リミテッド | Apparatus and method for managing address conflicts in performing vector operations |
-
1989
- 1989-03-31 JP JP8280989A patent/JPH0812661B2/en not_active Expired - Lifetime
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010205088A (en) * | 2009-03-04 | 2010-09-16 | Nec Computertechno Ltd | Vector processing apparatus and vector processing method |
| JP2019517060A (en) * | 2016-04-26 | 2019-06-20 | エイアールエム リミテッド | Apparatus and method for managing address conflicts in performing vector operations |
| US11132196B2 (en) | 2016-04-26 | 2021-09-28 | Arm Limited | Apparatus and method for managing address collisions when performing vector operations |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0812661B2 (en) | 1996-02-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0340453B1 (en) | Instruction handling sequence control system | |
| EP0437044B1 (en) | Data processing system with instruction tag apparatus | |
| US4745547A (en) | Vector processing | |
| JPS6224366A (en) | vector processing device | |
| CA1098214A (en) | Data processing system with an enhanced instruction pipeline control | |
| JPH06105460B2 (en) | Multiprocessor processor switching device | |
| JPH04336378A (en) | Information processor | |
| US4677549A (en) | Pipelined data processor system having increased processing speed | |
| JP3834145B2 (en) | Data processing apparatus having a microprocessor having a nestable delay branch instruction and a method of operating the microprocessor | |
| JP2632074B2 (en) | Data flow type information processing device | |
| JPH0228765A (en) | Instruction processing sequence control system | |
| KR100206350B1 (en) | Central processor | |
| EP0314342B1 (en) | Parallel pipelined computer processor | |
| JP2920968B2 (en) | Instruction processing order control method | |
| JPH05108345A (en) | Branch instruction processor | |
| JPS61194566A (en) | Vector data reference control system | |
| US5644745A (en) | Apparatus for replacing data availability information for an instruction subsequent to a branch with previous availability information upon branch prediction failure | |
| JP2702137B2 (en) | Vector operation instruction processing method | |
| JPS61143850A (en) | Processor | |
| JPH0247726A (en) | Information processor | |
| JPH0279122A (en) | Floating point arithmetic mechanism | |
| JP2506591B2 (en) | Auxiliary processor | |
| JPS63284673A (en) | Information processor | |
| Schneck | The CYBER 205 | |
| JPH0812662B2 (en) | Instruction processing order control method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080207 Year of fee payment: 12 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090207 Year of fee payment: 13 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100207 Year of fee payment: 14 |
|
| EXPY | Cancellation because of completion of term | ||
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100207 Year of fee payment: 14 |