JPH0812662B2 - Instruction processing order control method - Google Patents
Instruction processing order control methodInfo
- Publication number
- JPH0812662B2 JPH0812662B2 JP10600089A JP10600089A JPH0812662B2 JP H0812662 B2 JPH0812662 B2 JP H0812662B2 JP 10600089 A JP10600089 A JP 10600089A JP 10600089 A JP10600089 A JP 10600089A JP H0812662 B2 JPH0812662 B2 JP H0812662B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- vector
- unit
- register
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 16
- 238000010586 diagram Methods 0.000 description 6
- 102100022103 Histone-lysine N-methyltransferase 2A Human genes 0.000 description 1
- 101001045846 Homo sapiens Histone-lysine N-methyltransferase 2A Proteins 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Landscapes
- Advance Control (AREA)
- Complex Calculations (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は命令処理順序制御方式に関し、特にベクトル
計算機(ベクトル処理を行う計算機)においてプログラ
ムで指定された命令実行順序によらず命令を発行(投
入)し実行する制御を行う命令処理順序制御方式に関す
る。Description: TECHNICAL FIELD The present invention relates to an instruction processing order control method, and particularly issues an instruction regardless of the instruction execution order designated by a program in a vector computer (a computer that performs vector processing) ( The present invention relates to an instruction processing order control method for performing control of inputting and executing.
従来より、スカラ計算機(スカラ処理を行う計算機)
では、命令処理の高速化を目的として、命令処理順序を
動的に決定しプログラムで指定された命令実行順序によ
らない順序で演算器およひメモリ制御部に命令を投入す
る命令処理順序制御方式が用いられている。Traditionally, a scalar computer (a computer that performs scalar processing)
In order to speed up the instruction processing, the instruction processing order control that dynamically determines the instruction processing order and inputs the instructions to the arithmetic unit and the memory control unit in an order that does not depend on the instruction execution order specified by the program The scheme is used.
このような従来の命令処理順序制御方式は、命令の入
出力オペランドであるレジスタアドレス(レジスタ番
号)やメモリアドレスの競合の検出および演算器やメモ
リ制御部の使用状況を判定し、この判定に基づいて演算
器およびメモリ制御部への命令の投入の順序(プログラ
ムで指定された命令実行順序に依存しない順序)を決定
する手段を有していた。Such a conventional instruction processing order control method detects a conflict between a register address (register number) that is an input / output operand of an instruction and a memory address, determines the usage status of an arithmetic unit and a memory control unit, and based on this determination. And a means for deciding the order of inputting instructions to the arithmetic unit and the memory control unit (the order which does not depend on the instruction execution order specified by the program).
この手段はスカラ計算機のみならずベクトル計算機に
おける命令処理順序制御方式においても適用することが
可能であるが、ベクトル計算機では複数のメモリアクセ
スベクトル命令(ベクトルストア命令およびベクトルロ
ード命令等)をプログラムで指定された命令実行順序に
依存しない順序でメモリ制御部に投入してよいか否かと
いう判定(先行するベクトルストア命令(この命令は一
般的に実行時間が長い)を後続するベクトルロード命令
(この命令は一般的に実行時間が短い)が追越し可能で
あるか否かの判定)が困難である。This means can be applied not only to the scalar computer but also to the instruction processing order control method in the vector computer, but in the vector computer, a plurality of memory access vector instructions (vector store instruction and vector load instruction, etc.) are specified by the program. Whether the instructions may be input to the memory control unit in an order that does not depend on the executed instruction order (the preceding vector store instruction (this instruction generally takes a long time) is followed by the vector load instruction (this instruction Is generally short in execution time), but it is difficult to determine whether it is possible to overtake.
すなわち、ベクトルストア命令のストア開始起点アド
レスをbaselとし、当該ベクトルストア命令がストアす
る主記憶装置上のベクトル要素間距離をdist1とし、当
該ベクトルストア命令がストアするベクトル長(ベクト
ル要素数)をlen1(len1≧1)とし、当該ストア命令よ
りも後で実行することがプログラムで指定されているベ
クトルロード命令のロード開始起点アドレスをbase2と
し、当該ベクトルロード命令がロードする主記憶装置上
のベクトル要素間距離をdist2とし、当該ベクトルロー
ド命令がロードするベクトル長をlen2(len2≧1)とす
ると、当該ベクトルストア命令によってストアされるア
ドレスの集合である{base1,base1+dist1×1,base1+d
ist1×2,…,base1+dist1×(len1−1)}と当該ベク
トルロード命令によってロードされるアドレスの集合で
ある{base2,base2+dist2×1,base2+dist2×2,…,bas
e2+dist2×(len2−1)}との交わりの集合が空集合
である場合にのみ当該ベクトルロード命令は当該ベクト
ルストア命令に先行して(当該ベクトルストア命令を追
い越して)メモリアクセスを行ってもよいと判定される
が、任意のbase1,dist1,len1(len1≧1),base2,dist2
およびlen2(len1≧2)の組合せにより特定される全て
のベクトル要素に対して当該ベクトルストア命令を当該
ベクトルロード命令が追越し可能であるか否かの判定
(メモリアドレスの競合の検出等)を短時間で行うこと
は困難であった。That is, the store start origin address of the vector store instruction is basel, the distance between vector elements in the main storage device stored by the vector store instruction is dist1, and the vector length (the number of vector elements) stored by the vector store instruction is len1. (Len1 ≧ 1), the load start origin address of the vector load instruction that is specified in the program to be executed after the store instruction is base2, and the vector element on the main storage device loaded by the vector load instruction If the distance is dist2 and the vector length loaded by the vector load instruction is len2 (len2 ≧ 1), it is a set of addresses stored by the vector store instruction {base1, base1 + dist1 × 1, base1 + d
ist1 × 2, ..., Base1 + dist1 × (len1-1)} and the set of addresses loaded by the vector load instruction {base2, base2 + dist2 × 1, base2 + dist2 × 2, ..., bas
The vector load instruction may precede the vector store instruction (pass the vector store instruction) and perform the memory access only when the intersection set with e2 + dist2 × (len2-1)} is an empty set. It is determined that any base1, dist1, len1 (len1 ≧ 1), base2, dist2
And whether or not the vector load instruction can pass the vector store instruction for all vector elements specified by the combination of len2 and len2 (len1 ≧ 2) (detection of memory address conflict, etc.) is short. It was difficult to do in time.
上述した従来の命令処理順序制御方式では、任意のba
se1,dist1およびlen1(len1≧1)で特定されるベクト
ルストア命令のベクトル要素と任意のbast2,dist2およ
びlen2(len1≧1)で特定されるベクトルロード命令の
ベクトル要素との組合せに対して短時間でメモリアドレ
スの競合の検出等を行い、当該ベクトルストア命令を当
該ベクトルロード命令が追越し可能であるか否かを判定
することが困難であるので、命令処理順序制御方式を採
用しても命令処理の高速化を達成することができない
(したがって、スカラ計算機における上述したような命
令処理順序制御方式をベクトル計算機で採用することが
できない)という欠点がある。In the conventional instruction processing order control method described above, an arbitrary ba
Short for the combination of the vector element of the vector store instruction specified by se1, dist1 and len1 (len1 ≥ 1) and the vector element of the vector load instruction specified by bast2, dist2 and len2 (len1 ≥ 1) Since it is difficult to detect whether the vector load instruction can overtake the vector store instruction by detecting the memory address conflict in time, it is possible to use the instruction processing order control method even if the instruction processing order control method is adopted. There is a drawback that it is not possible to achieve high-speed processing (thus, the instruction processing order control method as described above in the scalar computer cannot be adopted in the vector computer).
本発明の目的は、上述の点に鑑み、ベクトルストア命
令のbase1およびdist1とベクトルロード命令のbase2お
よびdist2との関係を判定すること等により、ベクトル
計算機において命令処理の高速化を図ることができる命
令処理順序制御方式を提供することにある。In view of the above points, an object of the present invention is to speed up instruction processing in a vector computer by, for example, determining the relationship between base1 and dist1 of vector store instructions and base2 and dist2 of vector load instructions. It is to provide an instruction processing order control system.
本発明の命令処理順序制御方式は、複数のベクトルレ
ジスタと1以上のパイプライン化された演算器とを有す
るベクトル演算器および主記憶装置とベクトルレジスタ
との間で送受信されるベクトルデータの入出力を制御す
るメモリ制御部を備えるベクトル計算機における命令処
理順序制御方式において、ベクトル演算器およびメモリ
制御部に投入する命令群をプログラムで指定された命令
実行順序に基づいて保持する実行待ちキューと、実行中
の命令により使用されているベクトルレジスタ,演算器
およびメモリ制御部の状態を保持する状態保持部と、前
記実行待ちキューに保持されている命令群中の先行する
ベクトルストア命令と当該ベクトルストア命令に後続す
る前記実行待ちキューに保持されている命令群中のベク
トルロード命令とに関して一方のベクトル要素間距離の
絶対値が他方のベクトル要素間距離の絶対値の2以上の
整数倍になっていて両方のメモリアクセス開始起点アド
レスの差が0でなくその差の絶対値が両方のベクトル要
素間距離の絶対値の小さい方よりも小さい場合でレジス
タ競合関係が存在しないときに前記状態保持部に保持さ
れている状態に基づくタイミング等で当該ベクトルロー
ド命令を当該ベクトルストア命令に先行してベクトル演
算器およびメモリ制御部に投入する命令投入制御部とを
有する。The instruction processing order control method of the present invention is a vector arithmetic unit having a plurality of vector registers and one or more pipelined arithmetic units, and input / output of vector data transmitted / received between a main memory and a vector register. In an instruction processing order control method in a vector computer having a memory control section for controlling the execution, an execution waiting queue for holding an instruction group input to the vector arithmetic unit and the memory control section based on an instruction execution order specified by a program, and an execution State holding unit that holds the states of the vector register, the arithmetic unit, and the memory control unit that are used by the internal instruction, the preceding vector store instruction in the instruction group held in the execution waiting queue, and the vector store instruction. And a vector load instruction in the instruction group that is held in the execution queue that follows Then, the absolute value of the distance between one vector element is an integer multiple of 2 or more of the absolute value of the distance between the other vector elements, and the difference between both memory access start origin addresses is not 0 and the absolute value of the difference is When the absolute value of the distance between both vector elements is smaller than the smaller one and there is no register conflict relationship, the vector load instruction is changed to the vector store instruction at the timing based on the state held in the state holding unit. It has a vector operation unit and an instruction input control unit which inputs the information to the memory control unit in advance.
本発明の命令処理順序制御方式では、実行待ちキュー
がベクトル演算器およびメモリ制御部に投入する命令群
をプログラムで指定された命令実行順序に基づいて保持
し、状態保持部が実行中の命令により使用されているベ
クトルレジスタ,演算器およびメモリ制御部の状態を保
持し、命令投入制御部が実行待ちキューに保持されてい
る命令群中の先行するベクトルストア命令と当該ベクト
ルストア命令に後続する実行待ちキューに保持されてい
る命令群中のベクトルロード命令とに関して一方のベク
トル要素間距離の絶対値が他方のベクトル要素間距離の
絶対値の2以上の整数倍になっていて両方のメモリアク
セス開始起点アドレスの差が0でなくその差の絶対値が
両方のベクトル要素間距離の絶対値の小さい方よりも小
さい場合でレジスタ競合関係が存在しないときに状態保
持部に保持されている状態に基づくタイミング等で当該
ベクトルロード命令を当該ベクトルストア命令に先行し
てベクトル演算器およびメモリ制御部に投入する。According to the instruction processing order control method of the present invention, the execution waiting queue holds a group of instructions to be input to the vector computing unit and the memory control unit based on the instruction execution order designated by the program, and the state holding unit uses the instruction being executed. The state of the used vector register, arithmetic unit, and memory control unit is held, and the instruction injection control unit executes the subsequent vector store instruction in the instruction group held in the execution queue and the subsequent vector store instruction. Regarding the vector load instruction in the instruction group held in the wait queue, the absolute value of the distance between one vector element is an integer multiple of 2 or more of the absolute value of the distance between the other vector elements, and both memory accesses start. Register when the difference of the origin address is not 0 and the absolute value of the difference is smaller than the smaller absolute value of the distance between both vector elements. The timing or the like based on the state held in the state holding unit when the engagement relationship does not exist in advance the vector load instruction to the vector store instruction is put into vector calculator and memory controller.
次に、本発明について図面を参照して説明する。 Next, the present invention will be described with reference to the drawings.
第1図は、本発明の命令処理順序制御方式の一実施例
の構成を示すブロック図である。本実施例の命令処理順
序制御方式は、プログラムを記憶しているプログラム保
持部1と、ベクトル演算器5およびメモリ制御部6に投
入するプログラム保持部1内のプログラム中の命令を待
機させて保持する実行待ちキュー2と、実行中の命令に
より使用されているベクトル演算器5内のベクトルレジ
スタおよび演算器ならびにメモリ制御部6の状態を保持
している状態保持部3と、ベクトル演算器5およびメモ
リ制御部6に命令を投入する順序の制御を行う命令投入
制御部4と、複数のベクトルレジスタと1以上のパイプ
ライン化された演算器とを有するベクトル演算器5と、
主記憶装置(メモリ)へのアクセス(主記憶装置とベク
トルレジスタとの間で送受信されるベクトルデータの入
出力)を制御するメモリ制御部6と、データ線10〜19
(データ線15および16は命令投入制御部4内に存在する
(第2図参照))とを含んで構成されている。FIG. 1 is a block diagram showing the configuration of an embodiment of the instruction processing order control system of the present invention. In the instruction processing order control method of the present embodiment, the program holding unit 1 that stores a program and the instructions in the program in the program holding unit 1 that is input to the vector computing unit 5 and the memory control unit 6 are held and held. Execution queue 2, a state holding unit 3 that holds the states of the vector registers and arithmetic units in the vector arithmetic unit 5 used by the instruction being executed, and the memory control unit 6, the vector arithmetic unit 5 and An instruction input control unit 4 for controlling the order of inputting instructions to the memory control unit 6; a vector arithmetic unit 5 having a plurality of vector registers and one or more pipelined arithmetic units;
A memory controller 6 for controlling access to the main memory (memory) (input / output of vector data transmitted / received between the main memory and the vector register), and data lines 10 to 19
(Data lines 15 and 16 exist in the instruction input control unit 4 (see FIG. 2)).
実行待ちキュー2は、命令(1)および命令(2)の
2つの命令を保持しており、プログラム保持部1内のプ
ログラムで指定された命令実行順序において先行する命
令を命令(1)として保持し、後続する命令を命令
(2)として保持している。The execution queue 2 holds two instructions, an instruction (1) and an instruction (2), and holds an instruction preceding in the instruction execution order specified by the program in the program holding unit 1 as the instruction (1). However, the subsequent instruction is held as the instruction (2).
第2図を参照すると、命令投入制御部4は、命令投入
決定部7と、レジスタ競合チェック部8と、メモリアク
セス競合チェック部9とを含んで構成されている。Referring to FIG. 2, the instruction input control unit 4 includes an instruction input determination unit 7, a register conflict check unit 8, and a memory access conflict check unit 9.
第3図を参照すると、メモリアクセス競合チェック部
9は、命令(1)のベクトルアクセス開始起点アドレス
(base1。命令(1)がベクトルストア命令の場合には
ストア開始起点であり、命令(1)がベクトルロード命
令の場合にはロード開始起点である)を格納するレジス
タ21と、命令(2)のベクトルアクセス開始起点アドレ
ス(base2。命令(2)がベクトルストア命令の場合に
はストア開始起点であり、命令(2)がベクトルロード
命令の場合にはロード開始起点である)を格納するレジ
スタ22と、命令(1)のベクトル要素間距離(dist1)
を格納するレジスタ23と、命令(2)のベクトル要素間
距離(dist2)を格納するレジスタ24と、減算回路25
と、剰余回路26と、AND回路27と、コンパレータ(比較
器)28〜30とを含んで構成されている。Referring to FIG. 3, the memory access conflict check unit 9 determines that the vector access start point address of the instruction (1) (base1. If the instruction (1) is a vector store instruction, it is the store start point, and the instruction (1) If the is a vector load instruction, the register 21 that stores the load start origin) and the vector access start origin address of the instruction (2) (base2. At the store start origin if the instruction (2) is a vector store instruction) Yes, if the instruction (2) is a vector load instruction, the register 22 that stores the load start point) and the vector element distance (dist1) of the instruction (1)
, A register 23 for storing the distance (dist2) between the vector elements of the instruction (2), and a subtraction circuit 25.
A remainder circuit 26, an AND circuit 27, and comparators 28 to 30.
次に、このように構成された本実施例の命令処理順序
制御方式の動作について説明する。Next, the operation of the instruction processing order control system of this embodiment configured as described above will be described.
まず、プログラム保持部1からデータ線10を介してプ
ログラム保持部1内のプログラムで指定された命令実行
順序に、実行キュー2の命令(1)として最初の命令が
送出され、実行キュー2の命令(2)として次の命令が
送出される。First, the first instruction is sent from the program holding unit 1 via the data line 10 to the instruction execution order designated by the program in the program holding unit 1 as the instruction (1) of the execution queue 2, and the instruction of the execution queue 2 is sent. The following command is sent as (2).
これらの実行キュー2内の2つの命令は、データ線11
および12を介してそれぞれ命令投入制御部4に送出され
る。The two instructions in these execute queues 2 are data lines 11
And 12 are sent to the instruction input control unit 4, respectively.
命令投入制御部4では、以下に示すような処理が行わ
れる(第2図参照)。The instruction input control unit 4 performs the following processing (see FIG. 2).
まず、データ線11および12を介して送られてきた2つ
の命令は、命令投入決定部7,レジスタ競合チェック部8
およびメモリアクセス競合チェック部9にそれぞれ入力
される。First, the two instructions sent via the data lines 11 and 12 include the instruction input determination unit 7 and the register conflict check unit 8.
And the memory access conflict check unit 9, respectively.
命令投入制御部4内のレジスタ競合チェック部8で
は、プログラム上で先行する命令(1)と後続する命令
(2)との間にレジスタ競合関係(同一のベクトルレジ
スタが競合して使用される関係)が存在するか否かの判
定(チェック)が行われ、そのチェック結果がデータ線
15を介して命令投入決定部7に送出される。In the register conflict check unit 8 in the instruction input control unit 4, there is a register conflict relationship between a preceding instruction (1) and a succeeding instruction (2) in the program (a relationship in which the same vector register is used in competition. ) Exists, it is judged (check), and the check result is the data line.
It is sent to the instruction input determination unit 7 via 15.
命令投入制御部4内のメモリアクセス競合チェック部
9では、以下に示すような処理が行われる(第3図参
照)。The memory access conflict check unit 9 in the instruction input control unit 4 performs the following processing (see FIG. 3).
まず、データ線11を介して送られてきた命令(1)の
ベクトルアクセス開始起点アドレス(base1)がレジス
タ21に格納され、データ線11を介して送られてきた命令
(1)のベクトル要素間距離(dist1)がレジスタ23に
格納され、データ線12を介して送られてきた命令(2)
のベクトルアクセス開始起点アドレス(base2)がレジ
スタ22に格納され、データ線12を介して送られてきた命
令(2)のベクトル要素間距離(dist2)がレジスタ24
に格納される。First, the vector access start origin address (base1) of the instruction (1) sent via the data line 11 is stored in the register 21, and between the vector elements of the instruction (1) sent via the data line 11 The instruction (2) in which the distance (dist1) is stored in the register 23 and sent via the data line 12
Vector access start origin address (base2) is stored in the register 22, and the vector element distance (dist2) of the instruction (2) sent via the data line 12 is registered in the register 24.
Stored in.
レジスタ21に格納されたbase1とレジスタ22に格納さ
れたbase2とは、減算回路25に送出される。The base1 stored in the register 21 and the base2 stored in the register 22 are sent to the subtraction circuit 25.
減算回路25では、base1およびbase2の絶対値の間の差
(距離)が算出されて出力される。The subtraction circuit 25 calculates and outputs the difference (distance) between the absolute values of base1 and base2.
レジスタ23に格納されたdist1とレジスタ24に格納さ
れたdist2とは剰余回路26に送出される。The dist1 stored in the register 23 and the dist2 stored in the register 24 are sent to the remainder circuit 26.
剰余回路26では、dist1およびdist2の間で除算が行わ
れて剰余および除数が出力される(dist1およびdist2の
中で絶対値の小さい方が除数になる。除数が“0"の場合
またはdist1とdist2とが一致した場合には、剰余は“AL
L1(全てのビットが“1")”として出力される)。In the remainder circuit 26, division is performed between dist1 and dist2 and the remainder and divisor are output (the smaller absolute value of dist1 and dist2 is the divisor. When the divisor is “0” or dist1 and If dist2 matches, the remainder is “AL
L1 (all bits are output as "1") ".
減算回路25の出力である距離と“0"とはコンパレータ
28に入力されて比較され、コンパレータ28では比較対象
の両者が不一致であれば“1"が出力されて両者が一致す
れば“0"が出力される。The distance output from the subtraction circuit 25 and "0" are compared with each other.
The data is input to and compared with each other, and the comparator 28 outputs “1” if the two comparison targets do not match, and outputs “0” if the two match.
減算回路25の出力である距離と剰余回路26の出力であ
る除数とはコンパレータ29に入力されて比較され、コン
パレータ29では距離が除数よりも小さければ“1"が出力
されて距離が除数よりも小さくなければ“0"が出力され
る。The distance that is the output of the subtraction circuit 25 and the divisor that is the output of the remainder circuit 26 are input to the comparator 29 and compared. If the distance is smaller than the divisor, "1" is output and the distance is smaller than the divisor. If it is not smaller, "0" is output.
剰余回路26の出力である剰余と“0"とはコンパレータ
30に入力されて比較され、コンパレータ30では比較対象
の両者が一致すれば“1"が出力されて両者が不一致であ
れば“0"が出力される。The remainder output from the remainder circuit 26 and "0" are comparators.
The data is input to and compared with each other, and the comparator 30 outputs “1” if the both comparison targets match, and outputs “0” if the both do not match.
コンパレータ28〜30の比較結果はAND回路27に入力さ
れ、AND回路27では3つの入力(比較結果)のANDがメモ
リアクセス競合関係のチェック結果(競合しないことを
“1"で示し、競合することを“0"で示す)として算出さ
れデータ線16を介して命令投入決定部7に送出される。The comparison results of the comparators 28 to 30 are input to the AND circuit 27. In the AND circuit 27, the AND of the three inputs (comparison result) is the check result of the memory access conflict relationship (indicates that there is no conflict by "1", and conflicts. Is shown as “0”) and sent to the command input determination unit 7 via the data line 16.
命令投入制御部4内の命令投入決定部7では、データ
線15を介して送られてきたレジスタ競合チェック部8の
チェック結果と、データ線16を介して送られてきたメモ
リアクセス競合チェック部9のチェック結果と、データ
線14を介して状態保持部3から送られてきたベクトル演
算器5内のベクトルレジスタおよび演算器ならびにメモ
リ制御部6の状態の情報(状態保持部3では、データ線
19を介して取得されるベクトル演算器5内のベクトルレ
ジスタおよび演算器の状態ならびにデータ線20を介して
取得されるメモリ制御部6の状態が保持されている)と
に基づき、ベクトル演算器5およびメモリ制御部6に投
入すべき命令(命令(1)または命令(2))ならびに
その投入のタイミングが決定される(投入が決定された
命令は、所定のタイミングで、データ線17を介してベク
トル演算器5に投入され、データ線18を介してメモリ制
御部6に投入される)。なお、命令投入決定部7では、
上述の決定に先立って、データ線11および12を介して送
られてくる命令(1)および命令の命令コードに基づき
「命令(1)がベクトルストア命令であり命令(2)が
ベクトルロード命令である」という条件が満たされてい
るか否かがチェックされ、この条件が満たされない場合
にはデータ線14〜16を参照せずに命令(1)の投入が決
定される。In the instruction input determination unit 7 in the instruction input control unit 4, the check result of the register conflict check unit 8 sent via the data line 15 and the memory access conflict check unit 9 sent via the data line 16 are sent. Check result and the state information of the vector register and the arithmetic unit in the vector arithmetic unit 5 and the memory control unit 6 sent from the state holding unit 3 via the data line 14 (in the state holding unit 3, the data line
The state of the vector register and the arithmetic unit in the vector arithmetic unit 5 acquired via 19 and the state of the memory control unit 6 acquired via the data line 20 are held). And the instruction (command (1) or command (2)) to be input to the memory control unit 6 and the timing of the input (the instruction whose input has been determined is transmitted through the data line 17 at a predetermined timing). It is input to the vector operation unit 5 and input to the memory control unit 6 via the data line 18). In addition, in the instruction input determination unit 7,
Prior to the above-mentioned decision, "instruction (1) is a vector store instruction and instruction (2) is a vector load instruction based on the instruction (1) sent through the data lines 11 and 12 and the instruction code of the instruction. It is checked whether or not the condition "Yes" is satisfied, and if this condition is not satisfied, the instruction (1) is determined to be input without referring to the data lines 14-16.
命令投入決定部7では、さらに命令(1)および命令
(2)のいずれがベクトル演算器5およびメモリ制御部
6に投入されたかを示す信号(実行待ちキュー2のエン
トリ管理等に用いられる信号)がデータ線13を介して実
行待ちキュー2に送出される。In the instruction input determination unit 7, a signal indicating which of the instruction (1) and the instruction (2) has been input to the vector operation unit 5 and the memory control unit 6 (a signal used for entry management of the execution waiting queue 2). Is sent to the waiting queue 2 via the data line 13.
次に、本実施例の命令処理順序制御方式の具体的な動
作について説明する。なお、ここでは第4図に示すよう
なプログラムがプログラム保持部1に保持されている場
合の動作について、第1図〜第5図を参照して説明す
る。Next, a specific operation of the instruction processing order control system of this embodiment will be described. The operation when the program shown in FIG. 4 is held in the program holding unit 1 will be described with reference to FIGS. 1 to 5.
第4図に示すプログラムにおいて、“VLOAD"はベクト
ルロード命令の命令コードを示しており、“VADD"はベ
クトル加算命令の命令コードを示しており、“VSTORE"
はベクトルストア命令の命令コードを示しており、“VM
ULT"はベクトル乗算命令の命令コードを示している。In the program shown in FIG. 4, "VLOAD" indicates the instruction code of the vector load instruction, "VADD" indicates the instruction code of the vector addition instruction, and "VSTORE"
Indicates the instruction code of the vector store instruction.
ULT "indicates the instruction code of the vector multiplication instruction.
また、命令オペランド“VR0"〜“VR3"はベクトルレジ
スタを示しており、各ベクトルレジスタVR0〜VR3は256
個のベクトル要素を格納できるものとする。The instruction operands “VR0” to “VR3” indicate vector registers, and each vector register VR0 to VR3 has 256
It shall be possible to store 3 vector elements.
さらに、3つの要素a,bおよびcの組で示される命令
オペランド“(a,b,c)”はベクトルロード命令/ベク
トルストア命令の主記憶オペランドを示している。ここ
で、要素aはベクトルアクセス開始起点アドレスを示
し、要素bはベクトル要素間距離を示し、要素cはベク
トル長を示す。Further, the instruction operand "(a, b, c)" indicated by the set of three elements a, b and c indicates the main memory operand of the vector load instruction / vector store instruction. Here, the element a indicates the vector access start origin address, the element b indicates the inter-vector element distance, and the element c indicates the vector length.
例えば、1番目の命令“VLOAD VR0←(base,5,25
6)”は、メモリアクセス開始起点アドレス(ロード開
始起点アドレス)が“base"でありベクトル要素間距離
が“5"でありベクトル長が“256"であるベクトル要素を
ベクトルレジスタVR0にロードする命令を示している。For example, the first instruction "VLOAD VR0 ← (base, 5,25
6) ”is an instruction to load a vector element whose memory access start address (load start address) is“ base ”, vector element distance is“ 5 ”and vector length is“ 256 ”into vector register VR0. Is shown.
このプログラムの実行の際の初期状態における実行待
ちキュー2は、命令(1)としてこのプログラム中の1
番目の命令であるベクトルロード命令“VLOAD VR0←(b
ase,5,256)”をセットし、命令(2)として2番目の
命令であるベクトルロード命令“VLOAD VR1←(base+
1,5,256)”をセットしている(第5図(a)参照)。The waiting queue 2 in the initial state during execution of this program is 1 in this program as an instruction (1).
The second instruction, the vector load instruction “VLOAD VR0 ← (b
ase, 5,256) ”is set, and the vector load instruction“ VLOAD VR1 ← (base +
1,5,256) ”is set (see FIG. 5 (a)).
この状態において、命令投入制御部4内のレジスタ競
合チェック部8は、命令(1)である1番目の命令に使
用するベクトルレジスタVR0と命令(2)である2番目
の命令に使用するベクトルレジスタVR1との間にレジス
タ競合関係が存在しないことをチェックし、レジスタ競
合関係に関して命令(1)を命令(2)が追越し可能で
あることを示すチェック結果をデータ線15を介して命令
投入決定部7に通知する。In this state, the register conflict check unit 8 in the instruction input control unit 4 uses the vector register VR0 used for the first instruction which is the instruction (1) and the vector register used for the second instruction which is the instruction (2). It is checked that there is no register conflict relationship with VR1, and a check result indicating that instruction (1) and instruction (2) can pass the register conflict relationship is issued via the data line 15 to the instruction input determination unit. Notify 7.
メモリアクセス競合チェック部9内のレジスタ23は命
令(1)のベクトル要素間距離の“5"を保持し、レジス
タ24は命令(2)のベクトル要素間距離の“5"を保持す
る。これらが等しいことにより、剰余回路26は剰余の出
力を“ALL1"とする。これによりコンパレータ30は“0"
を出力し、AND回路27は“0"を出力する。The register 23 in the memory access conflict check unit 9 holds the vector element distance "5" of the instruction (1), and the register 24 holds the vector element distance "5" of the instruction (2). Since these are equal, the remainder circuit 26 sets the output of the remainder to "ALL1". As a result, the comparator 30 becomes "0".
And the AND circuit 27 outputs “0”.
このようにして、メモリアクセス競合チェック部9
は、第3図に示す回路構成により、データ線16を介して
命令投入決定部7にメモリアクセス競合関係に関して命
令(1)を命令(2)が追越し不可であることを示すチ
ェック結果(追越し不可信号。AND回路27の“0"の出
力)を通知する。In this way, the memory access conflict check unit 9
Is a check result indicating that the instruction (1) cannot pass the instruction (1) regarding the memory access conflict relationship via the data line 16 to the instruction input determination unit 7 (the overpass is impossible). Signal, which outputs "0" output of AND circuit 27).
命令投入決定部7は、データ線11および12を介して送
られてきた命令(1)および命令(2)の命令コードを
チェックして「命令(1)がベクトルストア命令であり
命令(2)がベクトルロード命令である」という条件を
満たしていないことを知り(したがって、上述したレジ
スタ競合チェック部8およびメモリアクセス競合チェッ
ク部9によるチェック結果は参照されない)、命令
(1)の命令(第4図に示すプログラム中の1番目の命
令)をデータ線17および18を介してベクトル演算器5お
よびメモリ制御部6に対してデータ線14を介した状態保
持部3からの信号に基づく所定のタイミングで投入す
る。また、命令投入決定部7は、命令(1)が投入され
たことをデータ線13を介して実行待ちキュー2に通知す
る。The instruction input determination unit 7 checks the instruction codes of the instruction (1) and the instruction (2) sent via the data lines 11 and 12 and confirms that “the instruction (1) is a vector store instruction and the instruction (2) Is a vector load instruction ”(therefore, the check results by the register conflict check unit 8 and the memory access conflict check unit 9 described above are not referred to), and the instruction of the instruction (1) (fourth The first instruction in the program shown in the figure) is sent to the vector operation unit 5 and the memory control unit 6 via the data lines 17 and 18 at a predetermined timing based on a signal from the state holding unit 3 via the data line 14. Throw in. Further, the instruction input determination unit 7 notifies the execution waiting queue 2 via the data line 13 that the instruction (1) has been input.
1番目の命令が投入された後の状態の実行待ちキュー
2は、命令(1)として2番目の命令をセットし、命令
(2)として3番目の命令であるベクトル加算命令“VR
0←VR0,VR1"をセットする(第5図(b)参照)。The execution waiting queue 2 in the state after the first instruction is input sets the second instruction as the instruction (1) and the vector addition instruction “VR” which is the third instruction as the instruction (2).
Set 0 ← VR0, VR1 "(see FIG. 5 (b)).
この状態において、命令投入制御部4内のレジスタ競
合チェック部8は、命令(1)である2番目の命令が使
用するベクトルレジスタVR1を命令(2)である3番目
の命令が読み出すこと(ベクトルレジスタVR1について
レジスタ競合関係が存在すること)をチェックし、レジ
スタ競合関係に関して命令(1)を命令(2)が追越し
不可であることを示すチェック結果をデータ線15を介し
て命令投入決定部7に通知する。In this state, the register conflict check unit 8 in the instruction input control unit 4 reads the vector register VR1 used by the second instruction (1) by the third instruction (2) (vector The register VR1 is checked for a register conflict relationship, and a check result indicating that the instruction (2) cannot pass the instruction (1) regarding the register conflict relationship is issued via the data line 15 to the instruction input determination unit 7 To notify.
メモリアクセス競合チェック部9は、命令(2)であ
る3番目の命令がメモリアクセスを行わないベクトル加
算命令であるためにチェックを行わない。The memory access conflict check unit 9 does not check because the third instruction, which is the instruction (2), is a vector addition instruction that does not access the memory.
メモリ投入決定部7は、データ線11および12を介して
送られてきた命令(1)および命令(2)の命令コード
をチェックして「命令(1)がベクトルストア命令であ
り命令(2)がベクトルロード命令である」という条件
を満たしていないことを知り(したがって、上述したレ
ジスタ競合チェック部8によるチェック結果を参照され
ない)、データ線14を介して状態保持部3からの信号に
基づいてメモリ制御部6が次命令の処理が可能となるタ
イミングで命令(1)である2番目の命令のベクトルロ
ード命令をデータ線17および18を介してベクトル演算器
5およびメモリ制御部6に投入する。また、命令投入決
定部7は、命令(1)が投入されたことをデータ線13を
介して実行待ちキュー2に通知する。The memory input determination unit 7 checks the instruction codes of the instruction (1) and the instruction (2) sent via the data lines 11 and 12 and confirms that "instruction (1) is a vector store instruction and instruction (2) Is a vector load instruction ”(therefore, the check result by the register conflict check unit 8 described above is not referred to), and based on the signal from the state holding unit 3 via the data line 14. The memory controller 6 inputs the vector load instruction of the second instruction, which is the instruction (1), into the vector calculator 5 and the memory controller 6 via the data lines 17 and 18 at the timing when the next instruction can be processed. . Further, the instruction input determination unit 7 notifies the execution waiting queue 2 via the data line 13 that the instruction (1) has been input.
2番目の命令が投入された後の状態の実行待ちキュー
2は、命令(1)として3番目の命令をセットし、命令
(2)として4番目の命令であるベクトルストア命令
“VSTORE VR0→(base,10,256)”をセットする(第5
図(c)参照)。The execution queue 2 in the state after the second instruction is input sets the third instruction as the instruction (1) and the vector store instruction “VSTORE VR0 → (4) which is the fourth instruction as the instruction (2). base, 10,256) ”(fifth
See FIG. (C)).
この状態において、命令投入制御部4内のレジスタ競
合チェック部8は、命令(1)である3番目の命令が書
き込むベクトルレジスタVR0を命令(2)である4番目
の命令が読み出すこと(ベクトルレジスタVR0について
レジスタ競合関係が存在すること)をチェックし、レジ
スタ競合関係に関して命令(1)を命令(2)が追越し
不可であることを示すチェック結果をデータ線15を介し
て命令投入決定部7に通知する。In this state, the register conflict check unit 8 in the instruction input control unit 4 reads out the vector register VR0 written by the third instruction which is the instruction (1) by the fourth instruction which is the instruction (2) (the vector register The existence of a register conflict relationship for VR0 is checked, and a check result indicating that the instruction (1) and the instruction (2) cannot pass the register conflict relationship is sent to the instruction input determination unit 7 via the data line 15. Notice.
メモリアクセス競合チェック部9は、命令(1)であ
る3番目の命令がメモリアクセスを行わないベクトル加
算命令であるためにチェックを行わない。The memory access conflict check unit 9 does not perform the check because the third instruction, which is the instruction (1), is a vector addition instruction that does not access the memory.
メモリ投入決定部7は、データ線11および12を介して
送られてきた命令(1)よび命令(2)の命令コードを
チェックして「命令(1)がベクトルストア命令であり
命令(2)がベクトルロード命令である」という条件を
満たしていないことを知り(したがって、上述したレジ
スタ競合チェック部8によるチェック結果は参照されな
い)、データ線14を介した状態保持部3からの信号に基
づいてベクトルレジスタVR0とベクトルレジスタVR1とが
読出し可能となるタイミングで命令(1)である3番目
の命令のベクトル加算命令をデータ線17および18を介し
てベクトル演算器5およびメモリ制御部6に投入する。
また、命令投入決定部7は、命令(1)が投入されたこ
とをデータ線13を介して実行待ちキュー2に通知する。The memory input determination unit 7 checks the instruction codes of the instruction (1) and the instruction (2) sent via the data lines 11 and 12 and confirms that "instruction (1) is a vector store instruction and instruction (2) Is a vector load instruction (therefore, the check result by the register conflict check unit 8 described above is not referred to), and based on the signal from the state holding unit 3 via the data line 14, At the timing when the vector register VR0 and the vector register VR1 can be read, the vector addition instruction of the third instruction which is the instruction (1) is input to the vector arithmetic unit 5 and the memory control unit 6 via the data lines 17 and 18. .
Further, the instruction input determination unit 7 notifies the execution waiting queue 2 via the data line 13 that the instruction (1) has been input.
3番目の命令が投入された後の状態の実行待ちキュー
2は、命令(1)として4番目の命令をセットし、命令
(2)として5番目の命令であるベクトルロード命令
“VR2←(base+2,5,256)”をセットする(第5図
(d)参照)。The execution queue 2 in the state after the third instruction is input sets the fourth instruction as the instruction (1) and the vector load instruction “VR2 ← (base + 2) which is the fifth instruction as the instruction (2). , 5,256) ”(see FIG. 5 (d)).
この状態において、命令投入制御部4内のレジスタ競
合チェック部8は、命令(1)である4番目の命令が読
み出すベクトルレジスタVR0に後読する命令(2)であ
る5番目の命令が書き込まずかつ命令(2)が書き込む
ベクトルレジスタVR2を命令(1)が読み出さないこと
(ベクトルレジスタVR0およびVR2についてレジスタ競合
関係が存在しないこと)をチェックし、レジスタ競合関
係に関して命令(1)を命令(2)が追越し可能である
ことを示すチェック結果をデータ線15を介して命令投入
決定部7に通知する。In this state, the register conflict check unit 8 in the instruction input control unit 4 does not write the fifth instruction, which is the instruction (2) to be read later, to the vector register VR0 read by the fourth instruction, which is the instruction (1). In addition, it is checked that the instruction (1) does not read the vector register VR2 written by the instruction (2) (there is no register conflict relationship between the vector registers VR0 and VR2), and the instruction (1) executes the instruction (2) regarding the register conflict relationship. ) Is notified to the instruction input determination unit 7 via the data line 15 that the check result indicating that it is possible to pass.
メモリアクセス競合チェック部9内のレジスタ21は命
令(1)のベクトルアクセス開始起点アドレス“base"
を保持し、レジスタ22は命令(2)のベクトルアクセス
開始起点アドレス“base+2"を保持する。これらが等し
くないことにより減算回路25の出力(距離)と“0"とが
等しくなくなってコンパレータ28は“1"を出力する。The register 21 in the memory access conflict check unit 9 stores the vector access start address “base” of the instruction (1).
The register 22 holds the vector access start point address “base + 2” of the instruction (2). Since they are not equal, the output (distance) of the subtraction circuit 25 and "0" are not equal, and the comparator 28 outputs "1".
メモリアクセス競合チェック部9内のレジスタ23は命
令(1)のベクトル要素間距離の“10"を保持し、レジ
スタ24は命令(2)のベクトル要素間距離の“5"を保持
する。これらが2倍の関係にあることにより剰余回路26
の剰余の出力と“0"とが等しくなってコンパレータ30は
“1"を出力する。The register 23 in the memory access conflict check unit 9 holds the vector element distance “10” of the instruction (1), and the register 24 holds the vector element distance “5” of the instruction (2). Since these are doubled, the remainder circuit 26
The output of the remainder of is equal to "0" and the comparator 30 outputs "1".
また、減算回路25の出力の“2"は剰余回路26の除数の
出力“5"よりも小さいのでコンパレータ29は“1"を出力
する。Further, since the output "2" of the subtraction circuit 25 is smaller than the divisor output "5" of the remainder circuit 26, the comparator 29 outputs "1".
以上のコンパレータ28〜30の出力により、AND回路27
はデータ線16に“1"を出力する。The output of the above comparators 28 to 30 makes the AND circuit 27
Outputs "1" to the data line 16.
このようにして、メモリアクセス競合チェック部9
は、第3図に示す回路構成により、データ線16を介して
命令投入決定部7にメモリアクセス競合関係に関して命
令(1)を命令(2)が追越し可能であることを示すチ
ェック結果(追越し可能信号。AND回路27の“1"の出
力)を通知する。In this way, the memory access conflict check unit 9
Is a check result indicating that the instruction (1) can pass the instruction (1) regarding the memory access competition relationship to the instruction input determination unit 7 via the data line 16 by the circuit configuration shown in FIG. Signal, which outputs "1" of AND circuit 27).
メモリ投入決定部7は、データ線11および12を介して
送られてきた命令(1)および命令(2)の命令コード
をチェックして「命令(1)がベクトルストア命令であ
る命令(2)がベクトルロード命令である」という条件
を満たしていることを知り、上述したレジスタ競合チェ
ック部8およびメモリアクセス競合チェック部9による
チェック結果ならびに状態保持部3からのベクトル演算
部5およびメモリ制御6の状態を示す信号を参照する。The memory input determination unit 7 checks the instruction codes of the instruction (1) and the instruction (2) sent via the data lines 11 and 12, and determines that "instruction (1) is a vector store instruction (2) Is a vector load instruction. ”, The check result by the register conflict check unit 8 and the memory access conflict check unit 9 described above, and the vector operation unit 5 and the memory control 6 from the state holding unit 3 Refer to the signal indicating the status.
命令投入決定部7は、上述の参照によって前状態(第
5図(c)参照)で投入したベクトル加算命令の処理結
果がベクトルレジスタVR0に書き込まれるまで命令
(1)であるベクトルストア命令を投入できないことを
知り、かつ上述の参照によって命令(2)は命令(1)
を追越し可能であることを知るので、命令(2)である
5番目の命令のベクトルロード命令を命令(1)に先行
してデータ線17および18を介してベクトル演算器5およ
びメモリ制御部6に投入する。また、命令投入決定部7
は、命令(2)が投入されたことをデータ線13を介して
実行待ちキュー2に通知する。The instruction input determination unit 7 inputs the vector store instruction which is the instruction (1) until the processing result of the vector addition instruction input in the previous state (see FIG. 5 (c)) by the above-mentioned reference is written in the vector register VR0. Knowing that it is not possible, and referring to the above, command (2) is command (1)
Since it is known that the vector load instruction of the fifth instruction which is the instruction (2) can be overtaken, the vector operation unit 5 and the memory control unit 6 precede the instruction (1) via the data lines 17 and 18. Throw in. Also, the instruction input determination unit 7
Notifies the execution waiting queue 2 via the data line 13 that the instruction (2) has been input.
5番目の命令が投入された後の状態の実行待ちキュー
2は、命令(1)として4番目の命令をセットし、命令
(2)として6番目の命令であるベクトルロード命令
“VR3←(base+3,15,256)”をセットする(第5図
(e)参照)。The pending queue 2 in the state after the fifth instruction is input sets the fourth instruction as the instruction (1) and the vector load instruction “VR3 ← (base + 3) which is the sixth instruction as the instruction (2). , 15, 256) ”(see FIG. 5 (e)).
この状態において、命令投入制御部4内のメモリアク
セス競合チェック部9は、剰余回路26の剰余の出力が
“0"ではないことによりコンパレータ30の出力を“0"と
し、データ線16を介して命令投入決定部7にメモリアク
セス競合関係に関して命令(1)を命令(2)が追越し
不可であることを示すチェック結果(追越し不可信号)
を通知する。In this state, the memory access conflict check unit 9 in the instruction input control unit 4 sets the output of the comparator 30 to “0” because the output of the remainder of the remainder circuit 26 is not “0”, and through the data line 16. A check result indicating that the instruction (1) cannot pass the instruction (1) with respect to the memory access conflict relationship with the instruction input determination unit 7 (passing impossible signal).
To notify.
命令投入決定部7は、この追越し不可信号に基づいて
命令(1)である4番目の命令のベクトルストア命令を
データ線17および18を介してベクトル演算器5およびメ
モリ制御部6に対してデータ線14を介して状態保持部3
からの信号に基づく所定のタイミングで投入する。ま
た、命令投入決定部7は、命令(1)が投入されたこと
をデータ線13を介して実行待ちキュー2に通知する。The instruction input determination unit 7 sends the vector store instruction of the fourth instruction, which is the instruction (1), to the vector operation unit 5 and the memory control unit 6 via the data lines 17 and 18 based on the non-overtaking signal. State holding unit 3 via line 14
It is turned on at a predetermined timing based on the signal from. Further, the instruction input determination unit 7 notifies the execution waiting queue 2 via the data line 13 that the instruction (1) has been input.
実行待ちキュー2が第5図(f)および(g)に示す
状態の場合には、命令投入制御部4内の命令投入決定部
7におけるチェックで「命令(1)がベクトルストア命
令であり命令(2)がベクトルロード命令である」とい
う条件が満たされないので、プログラムで指定された命
令実行順序に則り命令(1)がベクトル演算器5および
メモリ制御部6に投入される。When the execution queue 2 is in the state shown in FIGS. 5 (f) and 5 (g), the instruction input determination unit 7 in the instruction input control unit 4 checks that "instruction (1) is a vector store instruction Since the condition "(2) is a vector load instruction" is not satisfied, the instruction (1) is input to the vector operation unit 5 and the memory control unit 6 according to the instruction execution order specified by the program.
以上説明したように本発明は、実行待ちキュー,状態
保持部および命令投入制御部を設けることにより、プロ
グラム上で先行するベクトルストア命令とそれに後読す
るベクトルロード命令とに関して、一方のベクトル要素
間距離が他方のベクトル要素間距離の2以上の整数倍に
なっていて両方のメモリアクセス開始起点アドレスの差
の絶対値が0でなく両方のベクトル要素間距離の絶対値
の小さい方よりも小さい場合に、メモリアクセス競合関
係に関してベクトルロード命令がベクトルストア命令を
追い越し可能であることを短時間で判断することがで
き、ベクトル計算機においてもスカラ計算機と同様の命
令処理順序制御方式を採用することが可能になって命令
処理の高速化を達成することができるという効果があ
る。As described above, according to the present invention, by providing the pending queue, the state holding unit, and the instruction input control unit, the vector store instruction that precedes on the program and the vector load instruction that will be read later on one vector element The distance is an integer multiple of 2 or more of the distance between the other vector elements and the absolute value of the difference between the memory access start origin addresses is not 0 and is smaller than the smaller absolute value of the distance between the vector elements. In addition, it can be determined in a short time that the vector load instruction can pass the vector store instruction regarding the memory access conflict relationship, and the vector computer can adopt the same instruction processing order control method as the scalar computer. Therefore, there is an effect that it is possible to speed up the instruction processing.
第1図は本発明の一実施例の構成を示すブロック図、 第2図は第1図中の命令投入制御部の詳細な構成を示す
ブロック図、 第3図は第2図中のメモリアクセス競合チェック部の詳
細な構成を示すブロック図、 第4図は第1図に示す命令処理順序制御方式に適用され
るプログラムの一例を示す図、 第5図(a)〜(g)は第4図に示すプログラムの実行
時における第1図中の実行待ちキューの状態の変遷を示
す図である。 図において、 1……プログラム保持部、2……実行待ちキュー、3…
…状態保持部、4……命令投入制御部、5……ベクトル
演算器、6……メモリ制御部、7……命令投入決定部、
8……レジスタ競合チェック部、9……メモリアクセス
競合チェック部、10〜20……データ線、21〜24……レジ
スタ、25……減算回路、26……剰余回路、27……AND回
路、28〜30……コンパレータである。FIG. 1 is a block diagram showing a configuration of an embodiment of the present invention, FIG. 2 is a block diagram showing a detailed configuration of an instruction input control unit in FIG. 1, and FIG. 3 is a memory access in FIG. FIG. 4 is a block diagram showing a detailed configuration of the conflict check unit, FIG. 4 is a diagram showing an example of a program applied to the instruction processing order control system shown in FIG. 1, and FIGS. 5 (a) to 5 (g) are fourth diagrams. It is a figure which shows the transition of the state of the waiting queue in FIG. 1 at the time of execution of the program shown in FIG. In the figure, 1 ... Program holding unit, 2 ... Execution queue, 3 ...
... State holding unit, 4 ... Command input control unit, 5 ... Vector calculator, 6 ... Memory control unit, 7 ... Command input determination unit,
8 ... Register conflict check unit, 9 ... Memory access conflict check unit, 10-20 ... Data line, 21-24 ... Register, 25 ... Subtraction circuit, 26 ... Remainder circuit, 27 ... AND circuit, 28-30 ... Comparator.
Claims (1)
ライン化された演算器とを有するベクトル演算器および
主記憶装置とベクトルレジスタとの間で送受信されるベ
クトルデータの入出力を制御するメモリ制御部を備える
ベクトル計算機における命令処理順序制御方式におい
て、 ベクトル演算器およびメモリ制御部に投入する命令群を
プログラムで指定された命令実行順序に基づいて保持す
る実行待ちキューと、 実行中の命令により使用されているベクトルレジスタ,
演算器およびメモリ制御部の状態を保持する状態保持部
と、 前記実行待ちキューに保持されている命令群中の先行す
るベクトルストア命令と当該ベクトルストア命令に後続
する前記実行待ちキューに保持されている命令群中のベ
クトルロード命令とに関して一方のベクトル要素間距離
の絶対値が他方のベクトル要素間距離の絶対値の2以上
の整数倍になっていて両方のメモリアクセス開始起点ア
ドレスの差が0でなくその差の絶対値が両方のベクトル
要素間距離の絶対値の小さい方よりも小さい場合でレジ
スタ競合関係が存在しないときに前記状態保持部に保持
されている状態に基づくタイミング等で当該ベクトルロ
ード命令を当該ベクトルストア命令に先行してベクトル
演算器およびメモリ制御部に投入する命令投入制御部と を有することを特徴とする命令処理順序制御方式。1. A vector arithmetic unit having a plurality of vector registers and one or more pipelined arithmetic units and a memory control for controlling input / output of vector data transmitted / received between a main memory and a vector register. In the instruction processing order control method in a vector computer equipped with a section, it is used by the execution queue and the execution waiting queue that holds the instruction group input to the vector operation unit and the memory control section based on the instruction execution order specified by the program. Vector registers,
A state holding unit that holds the states of the arithmetic unit and the memory control unit; a preceding vector store instruction in the instruction group held in the execution waiting queue; and a holding queue that follows the vector store instruction. With respect to the vector load instruction in the present instruction group, the absolute value of the distance between one vector element is an integer multiple of 2 or more of the absolute value of the distance between the other vector elements, and the difference between both memory access start origin addresses is 0. If the absolute value of the difference is smaller than the smaller absolute value of the distance between both vector elements and there is no register conflict relationship, the vector is held at the timing based on the state held in the state holding unit. And an instruction input control unit for inputting a load instruction to the vector arithmetic unit and the memory control unit prior to the vector store instruction. Instruction processing order control method according to claim.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10600089A JPH0812662B2 (en) | 1989-04-27 | 1989-04-27 | Instruction processing order control method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10600089A JPH0812662B2 (en) | 1989-04-27 | 1989-04-27 | Instruction processing order control method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02291074A JPH02291074A (en) | 1990-11-30 |
| JPH0812662B2 true JPH0812662B2 (en) | 1996-02-07 |
Family
ID=14422431
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10600089A Expired - Lifetime JPH0812662B2 (en) | 1989-04-27 | 1989-04-27 | Instruction processing order control method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0812662B2 (en) |
-
1989
- 1989-04-27 JP JP10600089A patent/JPH0812662B2/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH02291074A (en) | 1990-11-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5349692A (en) | Instruction handling sequence control system for simultaneous execution of vector instructions | |
| US5075840A (en) | Tightly coupled multiprocessor instruction synchronization | |
| EP0768602B1 (en) | Variable word length VLIW-instruction processor | |
| JP2750311B2 (en) | Apparatus and method for controlling execution of data operations in a data processing device | |
| US5381531A (en) | Data processor for selective simultaneous execution of a delay slot instruction and a second subsequent instruction the pair following a conditional branch instruction | |
| KR100259306B1 (en) | Data processor having a branch command buffer | |
| EP0305639B1 (en) | Vector computer | |
| US5416911A (en) | Performance enhancement for load multiple register instruction | |
| KR100316710B1 (en) | Method and Apparatus for Instruction issuing in Out-of-Order for Parallel Processor | |
| EP0093430A2 (en) | Pipeline data processing system | |
| JP2004529405A (en) | Superscalar processor implementing content addressable memory for determining dependencies | |
| US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
| JPH08221273A (en) | Instruction level parallel processing control method and processor | |
| US5237664A (en) | Pipeline circuit | |
| JPH0812662B2 (en) | Instruction processing order control method | |
| JP2920968B2 (en) | Instruction processing order control method | |
| JP2503984B2 (en) | Information processing device | |
| JPH06230963A (en) | Memory access controller | |
| JP5185478B2 (en) | Pipeline processing method and pipeline processing apparatus using the method | |
| JPH0812661B2 (en) | Instruction processing order control system | |
| JP2597744B2 (en) | Branch control method | |
| JP2591325B2 (en) | Branch control device | |
| JP2856784B2 (en) | Electronic computer | |
| JP3015565B2 (en) | Information processing device with parallel execution function for multiple instructions | |
| JP4702004B2 (en) | Microcomputer |