JPS61267174A - Vector processor - Google Patents

Vector processor

Info

Publication number
JPS61267174A
JPS61267174A JP10811685A JP10811685A JPS61267174A JP S61267174 A JPS61267174 A JP S61267174A JP 10811685 A JP10811685 A JP 10811685A JP 10811685 A JP10811685 A JP 10811685A JP S61267174 A JPS61267174 A JP S61267174A
Authority
JP
Japan
Prior art keywords
vector
processing
conflict
register
instruction
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
Application number
JP10811685A
Other languages
Japanese (ja)
Other versions
JP2564264B2 (en
Inventor
Koichiro Omoda
面田 耕一郎
Shigeo Nagashima
長島 重夫
Yasuhiro Inagami
稲上 泰弘
Takayuki Nakagawa
貴之 中川
Teruo Tanaka
輝雄 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP60108116A priority Critical patent/JP2564264B2/en
Publication of JPS61267174A publication Critical patent/JPS61267174A/en
Application granted granted Critical
Publication of JP2564264B2 publication Critical patent/JP2564264B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Abstract

PURPOSE:To execute efficiently the vector processing of a processing including the recursion calculation and to execute the processing at high speed by keeping a waiting condition until the previous processing is completed when the writing/ reading conflict presence/absence information is present, and executing successively the processing. CONSTITUTION:A conflict information preparing circuit 900 writes the vector data based upon the list type for the same area on a main memory 100, investigates, after that, whether the data are read or not, for respective elements of the vector data and prepares the reading/writing conflict presence/absence information. The reading/writing conflict presence/absence information is stored in a vector executing control register 700, based upon the information, an executing control circuit 800 controls a series of the vector processing to which the vector data are related, and when the conflict is present, the circuit controls to process successively as the waiting condition until the previous processing is completed. On the other hand, when the conflict is absent, the waiting condition is not obtained, the control is executed to process continuously.

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明はベクトル処理を高速に実行可能なベクトルプロ
セッサに関し、特に、リカージョン演算を効率良く処理
するベクトルプロセッサに関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Application of the Invention] The present invention relates to a vector processor that can perform vector processing at high speed, and particularly to a vector processor that can efficiently process recursion operations.

〔預明の背景〕[Background of the Prophecy]

ベクトル処理の適用範囲を拡大させるために、Cray
社のCraY−1、日立の8−810.富士通のVP−
100/200等のベクトルプロセッサには各種機能が
組込まれている。この中には、インンイレクトアドレッ
シングに基づくリスト処理をベクトル処理により高速実
行する機能がある。
In order to expand the scope of vector processing, Cray
Hitachi's CraY-1, Hitachi's 8-810. Fujitsu VP-
Vector processors such as 100/200 are equipped with various functions. This includes a function that performs list processing based on in-direct addressing at high speed using vector processing.

しかし、 DO10I=1.N。but, DO10I=1. N.

10  A(LX(I))=A(LY(I))+B(I
)のような処理に於て、異なるI、I’に対して。
10 A(LX(I))=A(LY(I))+B(I
) for different I, I'.

インデックスLX(I)とLY(I’)あるいはLX(
I勺とLY(I)がもし等しくなる場合には、上記のD
O文を従来のように制御変数工を単純に1〜Noまで連
続してベクトル処理しようとすると正しい結果が得られ
ない場合がある。なお、このようなケースの演算をリカ
ージョン演算と呼ぶ。このため、ベクトル命令を用いて
連続実行するのではなく、汎用プロセッサで処理してい
るように一般命令を用いて制御変数工の各位について逐
次処理を行なっていたため高い性能が得られないという
問題点があった。
Indexes LX(I) and LY(I') or LX(
If I and LY(I) are equal, then the above D
If an attempt is made to simply perform vector processing on the O statement in a continuous manner using control variables from 1 to No in the conventional manner, correct results may not be obtained. Note that an operation in such a case is called a recursion operation. For this reason, the problem is that high performance cannot be obtained because each part of the control variable engineering is processed sequentially using general instructions, as if it were processed by a general-purpose processor, instead of sequentially executing it using vector instructions. was there.

〔発明の目的〕 本発明はこのような問題点に鑑み、リカージョン演算を
含む処理を出来るだけ効率良くベクトル処理させて高速
実行させることによシ高い処理性能のベクトルプロセッ
サを実現することを目的としている。
[Object of the Invention] In view of these problems, an object of the present invention is to realize a vector processor with high processing performance by performing vector processing including recursion operations as efficiently as possible and executing them at high speed. It is said that

〔発明の概要〕[Summary of the invention]

主記憶上の同一領域に対してリスト形式に基づくベクト
ルデータを書込み、その後に読出すかどうかを、上記ベ
クトルデータの各要素毎に調べ、この書込み/読出しコ
ンフリクト有/無情報に基づき、上記ベクトルデータが
関連する一連のベクトル処理を、コンフリクト有シの場
合はそれ以前の処理が終了するまで待ち状態として逐時
処理させるように制御し、無しの場合は待ち状態とせず
従来通シ連続処理させるよう制御させる。
Write vector data based on a list format to the same area on the main memory, and check whether to read it after that for each element of the vector data, and based on this write/read conflict existence/non-existence information, the vector data If there is a conflict, a series of related vector processes are controlled to be processed sequentially in a waiting state until the previous process is completed, and if there is no conflict, they are not placed in a waiting state and are processed continuously as usual. Let it be controlled.

〔発明の実施例〕[Embodiments of the invention]

以下、本発明を実施例を参照して詳細に説明するが、初
めに本発明の詳細な説明を行う。
Hereinafter, the present invention will be explained in detail with reference to Examples, but first a detailed explanation of the present invention will be given.

第1図は本発明における動作例を説明するためのプログ
ラム例である。
FIG. 1 is an example of a program for explaining an example of operation in the present invention.

第2図(a)、 (b)は、第1図のプログラム例に於
けるインデックスデータLX(I)とLY(I)の数値
例を示したものである。なお、処理すべき要素数Nをこ
こでは15と仮定し、また、各インデックス値はベクト
ルデータAの要素番号を示すも−のとする。
FIGS. 2(a) and 2(b) show numerical examples of index data LX(I) and LY(I) in the program example of FIG. 1. It is assumed here that the number N of elements to be processed is 15, and each index value indicates an element number of vector data A.

LY(5)は15であるが、LX(滲も同じ15である
ため、LX(4)を用いたリストベクトルデータA (
15)への書込み(リストベクトルデータAは主記憶上
にある)の終了を待って、LY(5)を用いたリストベ
クトルデータA(15)を主記憶から読出す必要がある
。即ち、制御変数I=1〜4までは、主記憶への書込み
/読出しを意識する必要がなく、従来のベクトル処理が
可能である。しかし、I=5以降の処理はI=4の処理
の終了を待って開始させるものとし、また、I=13以
降の処理は工=12の処理の終了を待って開始させるも
のとする。
LY (5) is 15, but LX (Yuri is also 15, so list vector data A (
15) (list vector data A is on the main memory), it is necessary to read out the list vector data A(15) using LY(5) from the main memory. That is, for control variables I=1 to 4, there is no need to be aware of writing/reading to/from the main memory, and conventional vector processing is possible. However, the processing after I=5 is started after waiting for the completion of the processing for I=4, and the processing after I=13 is started after waiting for the completion of the processing for I=12.

なお、I=−11の処理の終了を待って工=12以降の
処理を開始させるように制御することも可能であるが、
特に差異はなく、どちらでも良い。
Note that it is also possible to perform control to wait for the end of the processing for I=-11 and then start the processing for I=12 and after.
There is no particular difference, and either is fine.

第2図(C)は第3図の数値例を基に作成した本発明の
特徴である読出し/書込みコンフリクト有/無情報を示
す。この情報は制御変数工の1〜15に対応して作成さ
れるものであり、110の値は待ち状態の要/不要を指
定する。
FIG. 2(C) shows read/write conflict presence/absence information, which is a feature of the present invention, created based on the numerical example shown in FIG. This information is created corresponding to control variables 1 to 15, and the value 110 specifies whether a wait state is necessary or not.

即ち、1の値が立っている対応する制御変数工の処理を
待ち状態とし、それ以前の処理の終了を待って再開する
ように制御するものである。
That is, the process of the corresponding control variable whose value is set to 1 is placed in a waiting state, and control is performed such that it waits for the previous process to finish before restarting.

第3図は本発明の一実施例を示す図である。FIG. 3 is a diagram showing an embodiment of the present invention.

図中、100は主記憶、200はスカラ処理装置%30
0はベクトル処理装置、400は命令制御部%500は
メモリアクセス制御部、600はベクトルレジスタ部、
700は前述の読出し/書込みコンフリクト有/無情報
を格納するベクトル実行制御レジスタ(vECR)、8
00はVECR,。
In the figure, 100 is the main memory, 200 is the scalar processing unit %30
0 is a vector processing unit, 400 is an instruction control unit, 500 is a memory access control unit, 600 is a vector register unit,
700 is a vector execution control register (vECR) that stores the above-mentioned read/write conflict presence/absence information;
00 is VECR,.

値に基づいてベクトル処理の実行を制御する実行制御回
路、900はインデックスデータを入力して読出し/書
込みコンフリクト有/無情報を作成するコンフリクト情
報作成回路、1000は演算処理部である。
An execution control circuit controls the execution of vector processing based on a value, 900 is a conflict information creation circuit that inputs index data and creates read/write conflict presence/absence information, and 1000 is an arithmetic processing unit.

次に、第4図に示した処理2(第1図参照)のベク)y
命令列を基に、前述したコンフリクト有/無情報の作成
方法を記す。なお、ベクトル処理の概略手原は次の通シ
である。まず、ベクトル命令を実行するための前処理を
スカラ命令を用いて行なう。この前処理としては、メモ
リアクセス制御部500にあるアドレスレジスタ群への
アドレス情報(主記憶1ooをアクセスする際のアドレ
ス情報)のセット等がある。次に、スカラ処理装置20
0がBXVP命令を解読すると、命令制御部400にベ
クトル命令列の処理開始の起動をかける。命令制御部4
00は、EXVP命令で指定された然りトル命令列をス
カラ処理装置200を介して取込む。そして、取込んだ
命令を順次解読し、VEND命令が出現するまでベクト
ル命令の処理を行なう。第5図にコンフリクト有/無情
報を作成するコンフリクト情報作成回路を示す。図中、
610/620は16要素のデータを格納できるペク)
 A/ レジスタVR()/VRI、R,100〜R1
15は16要素のインデックスデータを格納できるベク
トルインデックスレジスタ(VXR)L100〜L11
5はR100〜RIJ5に対するラッチ、C100NC
115は′PL10o〜R115に対する一致回路、G
100〜G115はC100〜C115に対応して設け
られるANDゲート“、R116はレジスタ、G116
はORゲート、700はベクトル実行制御レジスタ(V
ECR)である。
Next, the vector of process 2 (see FIG. 1) shown in FIG.
A method of creating the above-mentioned conflict presence/absence information will be described based on the instruction sequence. The outline of vector processing is as follows. First, preprocessing for executing a vector instruction is performed using a scalar instruction. This preprocessing includes setting address information (address information when accessing the main memory 1oo) to a group of address registers in the memory access control unit 500. Next, the scalar processing device 20
When 0 decodes the BXVP instruction, it activates the instruction control unit 400 to start processing the vector instruction sequence. Command control unit 4
00 takes in the exact instruction string specified by the EXVP instruction via the scalar processing device 200. Then, the fetched instructions are sequentially decoded and vector instructions are processed until a VEND instruction appears. FIG. 5 shows a conflict information creation circuit that creates conflict presence/absence information. In the figure,
610/620 can store 16 elements of data)
A/ Register VR()/VRI, R, 100~R1
15 is a vector index register (VXR) L100 to L11 that can store index data of 16 elements.
5 is a latch for R100 to RIJ5, C100NC
115 is a matching circuit for 'PL10o to R115, G
100 to G115 are AND gates provided corresponding to C100 to C115, R116 is a register, and G116
is an OR gate, 700 is a vector execution control register (V
ECR).

最初に、第4図の命令1で主記憶100に格納されてい
るインデックスベクトルLXを15要素分順次VB、O
,命令2でインデックスベク)yLYを15要素分順次
VRIへ読出す。次に、命令3でVTLOに読出した1
5要素のインデックスベクトルLXをレジスタR100
〜R114に転送する。なお、この場合、主記憶100
がら直接レジスタR100〜R114へ読出す方法も考
えられる。
First, the index vector LX stored in the main memory 100 is sequentially converted into 15 elements VB, O by instruction 1 in FIG.
, instruction 2 sequentially reads 15 elements of index vector)yLY to the VRI. Next, the 1 read to VTLO by instruction 3
The 5-element index vector LX is stored in register R100.
~Transfer to R114. In this case, the main memory 100
However, a method of directly reading the data to the registers R100 to R114 is also conceivable.

最後に、命令4の処理を行なうが、処理に先立ってラッ
チL100〜L115を全て0にクリアするものとする
。第6図は第2図の数値例に従って命令4の処理過程の
1部分を示したものであシ、第6図を参照しながら、第
5図を基に命令4の処理内容を以下に説明する。
Finally, instruction 4 is processed, but prior to processing, all latches L100 to L115 are cleared to 0. FIG. 6 shows a part of the processing process of instruction 4 according to the numerical example of FIG. 2. The processing contents of instruction 4 will be explained below based on FIG. 5 while referring to FIG. do.

(1)ステップ1:ベクトルレジスタvR1からベクト
ルインデックスLY(1)を読出してレジスタR116
ヘセツトする。このとき、ラッチL100〜L115は
全て0のため、ゲートG100NG115は開かずゲー
)G116から0が出力され、VECR,の先頭要素に
0が格納される。
(1) Step 1: Read vector index LY(1) from vector register vR1 and register R116
to set. At this time, since the latches L100 to L115 are all 0, the gate G100NG115 is not opened and 0 is output from the gate G116, and 0 is stored in the first element of VECR.

(2)ステップ2:ベクトルレジスタVRIからLY(
2)を読出してレジスタR116ヘセツトすると同時に
、ラッチL100を1にセットする。このとき、ゲート
G100が開くが、レジスタ8116とR100の値が
不一致によシ一致回路C100からは0が出力されるた
め、ゲー)G116から0が出力されてVECRの2番
目要素に0が格納される。
(2) Step 2: From vector register VRI to LY(
2) is read and set in register R116, and at the same time, latch L100 is set to 1. At this time, gate G100 opens, but since the values of register 8116 and R100 do not match, 0 is output from coincidence circuit C100, so 0 is output from gate G116 and 0 is stored in the second element of VECR. be done.

(3)ステップ3:ベクトルレジスタVB、1がらLY
(8)を読出してレジスタR116ヘセツトすると同時
に、ラッチLIOIを1にセットする。このとき、更に
ゲー)GIOIも開くが、−数回路C100とC101
から0が出力されるためゲー)Gl 16から0が出力
されでVECRの3番目要素に0が格納される。
(3) Step 3: Vector register VB, LY from 1
(8) is read and set in register R116, and at the same time, latch LIOI is set to 1. At this time, the game) GIOI also opens, but - several circuits C100 and C101
Since 0 is output from G16, 0 is output from Gl 16 and 0 is stored in the third element of VECR.

(4)ステップ4:ベクトルレジスタV’RIからLY
(4)を読出してレジスタR116ヘセツトすると同時
に、ラッチL102を1にセットする。このとき、更に
ゲートGLO2も開くが、−数回路C100〜ClO2
から全て0が出力されるため、VECRの4番目要素に
0が格納される。
(4) Step 4: Vector register V'RI to LY
(4) is read and set in register R116, and at the same time, latch L102 is set to 1. At this time, the gate GLO2 is also opened, but - several circuits C100 to ClO2
Since all 0s are output from , 0 is stored in the fourth element of VECR.

(5)ステップ5:ベクトルレジスタVR,1からLY
(5)を読出してレジスタ8116ヘセツトすると同時
に、ラッチL103klにセットしゲートG103も開
く。このとき、−数回路ClO3から1が出力されるた
めVECRの5番目要素に1が格納される。
(5) Step 5: Vector register VR, 1 to LY
(5) is read and set in register 8116, and at the same time, it is set in latch L103kl and gate G103 is also opened. At this time, since 1 is output from the minus number circuit ClO3, 1 is stored in the fifth element of VECR.

(6)ステップ6:ベクトルレジスタVRIからLY(
6)を読出してレジスタR116ヘセツト   。
(6) Step 6: From vector register VRI to LY(
6) and set it in register R116.

すると同時に、ラッチL104を1にセットし、ゲー)
G104も開く。このとき、−数回路0100〜C10
4から全てOが出力されるため、VECRの6番目要素
に0が格納される。
At the same time, set latch L104 to 1 and
G104 also opens. At this time, - number circuits 0100 to C10
Since all O's are output from 4, 0 is stored in the 6th element of VECR.

以下同様に処理が進み、最終的には、VECRの先頭要
素から15番目要素までに第2図(C)に示したような
コンフリクト有/無情報が格納される。
The processing proceeds in the same manner, and finally, conflict presence/absence information as shown in FIG. 2(C) is stored from the first element to the 15th element of VECR.

なお、本実施例に於ては、専用のベクトル実行制御レジ
スタを用いているが、現状のベクトルプロセッサが保持
しているマスクレジスタを利用することも可能である。
Although this embodiment uses a dedicated vector execution control register, it is also possible to use a mask register held by current vector processors.

また、異なったフンフリクト有/無情報間で(例えば論
理)演算し、この演算結果を用いることも可能であシ、
この場合、マスクレジスタと共用するのが望ましい。
It is also possible to perform (for example, logical) calculations between different types of information with and without information, and use the results of this calculation.
In this case, it is desirable to share it with the mask register.

第7図はベクトル実行制御レジスタVEC3に基づく実
行制御回路である。図中、700はベクトル実行制御レ
ジスタVBCB%L810はベクトル実行制御モードラ
ッチ、R800〜B、804はレジスタ、820はアド
レスカウントアツプ回路、821はグラス1回路、82
2はサーチ回路、823は加算器、824は比較器、8
830〜5833はセレクタ、1840.、!841゜
1850−1856は信号線である。
FIG. 7 shows an execution control circuit based on the vector execution control register VEC3. In the figure, 700 is a vector execution control register VBCB%L810 is a vector execution control mode latch, R800-B, 804 is a register, 820 is an address count up circuit, 821 is a glass 1 circuit, 82
2 is a search circuit, 823 is an adder, 824 is a comparator, 8
830-5833 are selectors, 1840. ,! 841°1850-1856 are signal lines.

第1図に示したプログラム例に基づくベクトル命令列(
第4図参照)および第2図に示した数値例を用いて第7
図の動作を以下に説明する。なお、処理1〜処理3のベ
クトル命令列の各ベクトル命令の処理要素数は全て15
(即ち、ループ制御変数工が1〜15)とし、この値は
スカラ処理装置200が命令制御部400にベクトル命
令列の処理開始の起動を発行するとき、信号線t840
を介してレジスタR803にセットされ、同時に、ベク
トル命令列の先頭アドレスが信号線t841、セレクタ
8830を介してレジスタR800にセットされる。ま
た、このとき同時にラッチL810が0にクリアされる
。但し、レジスタFL803にセットされる値は処理要
素数−1となる。即ち、値14がレジスタR803にセ
ットされる。なお、処理1と処理3はリカージョン演算
が含まれていす、従来のベクトル処理が可能であるとす
る。
Vector instruction sequence (based on the program example shown in Figure 1)
(see Figure 4) and the numerical example shown in Figure 2.
The operation of the figure will be explained below. Note that the number of processing elements for each vector instruction in the vector instruction sequence of processing 1 to processing 3 is all 15.
(that is, the loop control variable is 1 to 15), and this value is set on the signal line t840 when the scalar processing device 200 issues an activation command to the instruction control unit 400 to start processing the vector instruction sequence.
At the same time, the start address of the vector instruction string is set in register R800 via signal line t841 and selector 8830. Furthermore, at the same time, latch L810 is cleared to 0. However, the value set in register FL803 is the number of processing elements minus 1. That is, the value 14 is set in register R803. It is assumed that processing 1 and processing 3 include recursion calculations and that conventional vector processing is possible.

処理1の各命令と、処理2の命令1〜4の実行に於ては
次のように処理要素数が決定される。セレクタ5833
からは開始要素番号が、セレクタ5832からは終了要
素番号が各々、信号線t855.t854を介して命令
制御部400へ転送されるが、今、ラッチL810が0
のため、開始要素番号として0、終了要素番号としてレ
ジスタR803の値である14が選択される。なお、こ
こでの要素番号0はループ制御変数I=1を。
In the execution of each instruction of process 1 and instructions 1 to 4 of process 2, the number of processing elements is determined as follows. selector 5833
The starting element number is from the selector 5832, the ending element number is from the selector 5832, and the signal line t855. The command is transferred to the instruction control unit 400 via t854, but now the latch L810 is 0.
Therefore, 0 is selected as the starting element number, and 14, which is the value of register R803, is selected as the ending element number. Note that the element number 0 here is the loop control variable I=1.

要素番号14は工=15に対応するものとする。It is assumed that element number 14 corresponds to engineering=15.

また、同時にベクトル命令列の先頭アドレス(処理lの
先頭命令のアドレス)が信号線t853を介して命令制
御部400へ転送される。即ち、この場合には、各命令
とも15の要素が一度に連続してベクトル処理可能であ
ることを意味している。
At the same time, the start address of the vector instruction sequence (the address of the start instruction of process 1) is transferred to the instruction control unit 400 via the signal line t853. That is, in this case, each instruction means that 15 elements can be vector-processed consecutively at once.

処理1の各命令と、処理2の命令1〜4t、命令列の最
初から順次解読して実行するが、命令5を解読すると、
詳細は省略するが、それ以前の命・  令の終了を待っ
てラッチL810を1にセットし。
Each instruction of process 1 and instructions 1 to 4t of process 2 are decoded and executed sequentially from the beginning of the instruction sequence, but when instruction 5 is decoded,
Although the details are omitted, latch L810 is set to 1 after waiting for the previous instruction to finish.

また、レジスタR802を−1にセットする。なお、こ
のとき、命令制御1i400から信号線t820を介し
てセット信号がラッチL810に転送されるものとする
。また、セット信号と同時に命令制御部400は信号線
t852を介して命令5のアドレスが転送される。そし
て、アドレスカウントアツプで次の命令6のアドレスを
指すようにカウントアツプして、セレクタ5830を介
してレジスタR,800にセットする。その後、レジス
タR802にセットされた−1の値はプラス1回路82
1で1を加えて値Oとなシ、レジスタR801にセット
されると同時に、サーチ回路822、加算器823へ転
送される。サーチ回路822では、プラス1回路821
から出力される値をVECR700の要素番号に対応さ
せ、指定された要素番号の次の要素番号から何個連続し
て0が出現するかをカウントしてその値を加算器823
に出力するが、この場合、値3を出力する。そして、加
算器823でプラス1回路821から出力される値0と
サーチ回路822から出力される値3とが加算されて、
値3がレジスタR804にセットされる。レジスタR8
04とレジスタR803の値を比較器824で比較し、
レジスタR804の値がレジスタR803の値よシ大き
いかまたは等しいとき信号線t856に1を出力する。
Also, register R802 is set to -1. Note that at this time, it is assumed that a set signal is transferred from the instruction control 1i400 to the latch L810 via the signal line t820. Further, at the same time as the set signal, the address of the instruction 5 is transferred to the instruction control unit 400 via the signal line t852. Then, the address is counted up to point to the address of the next instruction 6, and set in the register R, 800 via the selector 5830. After that, the value of -1 set in the register R802 is changed to the plus 1 circuit 802.
1 is added to the value O, which is set in the register R801 and simultaneously transferred to the search circuit 822 and adder 823. In the search circuit 822, the plus 1 circuit 821
The value output from the VECR 700 is made to correspond to the element number of the VECR 700, the number of successive 0's appearing from the element number next to the specified element number is counted, and the value is added to the adder 823.
In this case, the value 3 is output. Then, the adder 823 adds the value 0 output from the plus 1 circuit 821 and the value 3 output from the search circuit 822.
The value 3 is set in register R804. register R8
04 and the value of register R803 are compared by comparator 824,
When the value of register R804 is greater than or equal to the value of register R803, 1 is output to signal line t856.

この場合、比較器824から0が出力され、セレクタ5
831を介してレジスタR804の値3がレジスタR8
02にセットされる。そして、ラッチL810が1にな
っているためセレクタ8833からは開始要素番号とし
てレジスタR8010値0が、セレクタ5832からは
終了要素番号としてレジスタR802の値3が出力され
命令制御部400へ転送される。また、同時に、レジス
タR800にセットされた命令6のアドレスが信号線t
853を介して命令制御部400へ転送され、その後、
命令制御部400は命令6から処理を開始する。そして
、詳細は省略するが、命令10を解読すると次命令の解
読を抑止するものとする。
In this case, the comparator 824 outputs 0, and the selector 5
The value 3 of register R804 is transferred to register R8 via 831.
Set to 02. Since the latch L810 is set to 1, the selector 8833 outputs the value 0 of the register R8010 as the starting element number, and the selector 5832 outputs the value 3 of the register R802 as the ending element number, which are transferred to the instruction control unit 400. At the same time, the address of instruction 6 set in register R800 is set to signal line t.
853 to the instruction control unit 400, and then
The instruction control unit 400 starts processing from instruction 6. Although details are omitted, it is assumed that once instruction 10 is decoded, decoding of the next instruction is inhibited.

即ち、命令6〜9は制御変数I=1〜4までは連続して
ベクトル処理可能であることを示している。
That is, instructions 6 to 9 indicate that vector processing can be performed continuously for control variables I=1 to 4.

命令10を解読する。と、それ以前の処理の終了を待っ
て次に示す動作を行なう。なお、命令10の実行は行な
わない。前述したように、レジスタR802の値3がプ
ラス1回路821で1を加えられて値4となシ、レジス
タR801にセットされると同時に、サーチ回路822
、加算器823へ転送される。サーチ回路822から今
度は値7が加算器823へ出力され、プラス1回路82
1から出力される値4と加算されて値11がレジスタR
804にセットされる。そして、比較器824から前回
同様に0が出力されるため、レジスタR804の値11
がセレクタ5831を介してレジスタR802ヘセツト
される。その後、ラッチL810が1になっているため
開始要素番号としてレジスタR801の値4が、終了要
素番号としてレジスタR802の値11が命令制御部4
00へ転送され、°同時に、レジスタR800にセット
された命令6のアドレスが再度命令制御部400へ転送
されて、命令制御部400は命令6から処理を順次開始
する。そして、命令10を解読するとそれ以前の処理の
終了を待って次に示す動作を行なう。なお、命令10の
実行は行なわない。レジスタR801には値12がセッ
トされ、レジスタR804には値が15(但し、VEC
RO要素番号15の値は以前の演算結果が入っているが
、ここでは0を仮定している。なお、1であっても特に
問題はない)される。比較器824からは今度は1が出
力されるため、レジスタR,803の値14がセレクタ
5831を介してレジスタR,802にセットされる。
Decoding instruction 10. Then, it waits for the previous processing to complete and then performs the following operations. Note that instruction 10 is not executed. As mentioned above, the value 3 of the register R802 is incremented by 1 in the plus 1 circuit 821 to become the value 4, and is set in the register R801, and at the same time, the search circuit 822
, are transferred to adder 823. The search circuit 822 then outputs the value 7 to the adder 823, and the plus 1 circuit 82
The value 11 is added to the value 4 output from 1 and is sent to register R.
804. Then, since the comparator 824 outputs 0 as before, the value of the register R804 is 11.
is set in register R802 via selector 5831. After that, since the latch L810 is set to 1, the value 4 of the register R801 is set as the starting element number, and the value 11 of the register R802 is set as the ending element number to the instruction control unit 4.
At the same time, the address of instruction 6 set in register R800 is transferred again to instruction control unit 400, and instruction control unit 400 sequentially starts processing from instruction 6. Then, when instruction 10 is decoded, the following operation is performed after waiting for the completion of the previous processing. Note that instruction 10 is not executed. The value 12 is set in register R801, and the value 15 is set in register R804 (however, VEC
The value of RO element number 15 contains the previous calculation result, but it is assumed to be 0 here. Note that there is no particular problem even if it is 1). Since comparator 824 outputs 1 this time, the value 14 in register R, 803 is set in register R, 802 via selector 5831.

その後、開始要素番号12、終了要素番号14、命令6
のアドレスが命令制御部400へ転送され、命令6から
処理を順次開始する。そして、命令10を解読するが、
今度は信号線t856が1になっている(必要な要素数
を処理したことを示す)ため、本命令の処理を次のよう
に行なう。即ち、信号線t851を介してリセット信号
をラッチL810に転送してラッチL810をOにリセ
ットする。また、同時に、信号線t852を介して命令
10のアドレスをアドレスカウントアツプ回路820に
転送し、アドレスカウントアツプを行って次命令のアド
レス(処理3の先頭命令のアドレス)をセレクタ583
0を介してレジスタR800ヘセツトする。その後、処
理3の命令列の実行を、前述した処理1の場合と同様に
行なう。
After that, start element number 12, end element number 14, instruction 6
The address is transferred to the instruction control unit 400, and processing starts sequentially from instruction 6. Then, I decode instruction 10,
This time, since the signal line t856 is 1 (indicating that the required number of elements have been processed), the processing of this command is performed as follows. That is, a reset signal is transferred to the latch L810 via the signal line t851, and the latch L810 is reset to O. At the same time, the address of instruction 10 is transferred to the address count up circuit 820 via the signal line t852, the address is counted up, and the address of the next instruction (the address of the first instruction in process 3) is sent to the selector 583.
0 to register R800. Thereafter, the instruction sequence in process 3 is executed in the same manner as in process 1 described above.

〔発明の効果〕〔Effect of the invention〕

以上説明したように、本発明によれば、例えば同−DO
lv−プ内に、リカージョン演算がある場合であっても
、リカージョン演算を含む全DOループの処理を一括し
てベクトル処理できるため、従来のようにリカージョン
演算部をスカラ処理させる場合に比べて効率が良く、ま
た、リカージョン演算部を部分的ではあるが、ベクトル
処理することが可能であるため、従来のベクトルプロセ
ッサよシも高速処理が実現可能である。
As explained above, according to the present invention, for example, the -DO
Even if there is a recursion operation in the lv-p, the processing of all DO loops including the recursion operation can be vector-processed at once. It is more efficient than conventional vector processors, and because the recursion calculation section can perform vector processing, albeit partially, it is possible to achieve faster processing than conventional vector processors.

【図面の簡単な説明】[Brief explanation of the drawing]

第10図は、本発明の詳細な説明するためのプログラム
例を示す図、第2図は第1図のプログラム列に基づく数
値列を示す図、第3図は本発明の一実施例の概略構成を
示す図、第4図は第1図のプログラム列に基づく処理の
流れ図、第5図は本発明の特徴である書込み/m出しコ
ンフリクト有/無情報を作成するためのコンフリクト情
報作成回路を示す図、第6図は第5図の作成回路に基づ
く演算例を示す図、第7図は本発明の特徴である書込み
/読出しコンフリクト有/無情報に基づく実行制御回路
を示す図である。 茎 1  図 石 2 図 (L)()))       (C) 冨 3 図
FIG. 10 is a diagram showing an example of a program for explaining the present invention in detail, FIG. 2 is a diagram showing a numerical sequence based on the program sequence of FIG. 1, and FIG. 3 is an outline of an embodiment of the present invention. FIG. 4 is a flowchart of processing based on the program sequence shown in FIG. 1, and FIG. 5 shows a conflict information creation circuit for creating write/m output conflict presence/absence information, which is a feature of the present invention. FIG. 6 is a diagram showing an example of calculation based on the creation circuit of FIG. 5, and FIG. 7 is a diagram showing an execution control circuit based on write/read conflict presence/absence information, which is a feature of the present invention. Stem 1 Figure stone 2 Figure (L) ())) (C) Tomi 3 Figure

Claims (1)

【特許請求の範囲】 1、リスト形式に基づくベクトルデータの主記憶からの
読出しおよび書込み機能を具備するベクトルプロセッサ
であつて、 該主記憶上の同一領域に対して該ベクトルデータを書込
み、その後に読出すかどうかを、該ベクトルデータの各
要素毎に検出して、書込み/読出しコンフリクトの有/
無情報として出力するコンフリクト生成手段、 該生成手段から出力される該書込み/読出しコンフリク
トの有/無情報を格納する格納手段、該格納手段に格納
された該書込み/読出しコンフリクト有/無情報に基づ
き、該ベクトルデータが関連する一連のベクトル処理に
於て該コンフリクトが有りの場合はそれ以前の処理が終
了するまで待ち状態として逐時処理させるよう制御し、
無しの場合は待ち状態とせず連続処理させるよう制御す
るベクトル命令実行制御手段、を持つことを特徴とする
ベクトルプロセッサ。 2、該ベクトル命令実行制御手段は、該格納手段に格納
された該書込み/読出しコンフリクト有/無情報に基づ
き一連のベクトル処理の実行を制御するか、また、該コ
ンフリクト有/無情報を無視してベクトル処理の実行を
制御するかの切換手段を持つ第1項のベクトルプロセッ
サ。
[Claims] 1. A vector processor having a function of reading and writing vector data from a main memory based on a list format, which writes the vector data to the same area on the main memory, and then Detects whether to read or not for each element of the vector data and determines whether there is a write/read conflict.
Conflict generation means for outputting as no information; storage means for storing the write/read conflict presence/absence information output from the generation means; based on the write/read conflict presence/absence information stored in the storage means; , if there is a conflict in a series of vector processing related to the vector data, control is performed so that the processing is performed sequentially in a waiting state until the previous processing is completed;
A vector processor characterized in that it has vector instruction execution control means for controlling the execution of vector instructions so that they are processed continuously without being placed in a waiting state when there is no waiting state. 2. The vector instruction execution control means controls execution of a series of vector processing based on the write/read conflict presence/absence information stored in the storage means, or ignores the conflict presence/absence information. The vector processor according to the first term has a switching means for controlling execution of vector processing.
JP60108116A 1985-05-22 1985-05-22 Vector processing method and vector processor Expired - Lifetime JP2564264B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60108116A JP2564264B2 (en) 1985-05-22 1985-05-22 Vector processing method and vector processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60108116A JP2564264B2 (en) 1985-05-22 1985-05-22 Vector processing method and vector processor

Publications (2)

Publication Number Publication Date
JPS61267174A true JPS61267174A (en) 1986-11-26
JP2564264B2 JP2564264B2 (en) 1996-12-18

Family

ID=14476311

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60108116A Expired - Lifetime JP2564264B2 (en) 1985-05-22 1985-05-22 Vector processing method and vector processor

Country Status (1)

Country Link
JP (1) JP2564264B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015530674A (en) * 2012-09-28 2015-10-15 インテル・コーポレーション Multiple systems, multiple devices, and multiple methods for performing conflict detection and broadcasting multiple contents of a register to multiple data element locations of another register

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59128670A (en) * 1983-01-12 1984-07-24 Hitachi Ltd Vector processor
JPS60150138A (en) * 1984-01-17 1985-08-07 Agency Of Ind Science & Technol Parallel processing system of recurrent procedure including indirect addressing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59128670A (en) * 1983-01-12 1984-07-24 Hitachi Ltd Vector processor
JPS60150138A (en) * 1984-01-17 1985-08-07 Agency Of Ind Science & Technol Parallel processing system of recurrent procedure including indirect addressing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015530674A (en) * 2012-09-28 2015-10-15 インテル・コーポレーション Multiple systems, multiple devices, and multiple methods for performing conflict detection and broadcasting multiple contents of a register to multiple data element locations of another register
JP2017062845A (en) * 2012-09-28 2017-03-30 インテル・コーポレーション Methods and apparatuses

Also Published As

Publication number Publication date
JP2564264B2 (en) 1996-12-18

Similar Documents

Publication Publication Date Title
JPS6239780B2 (en)
JP2560988B2 (en) Information processing apparatus and processing method
JPH03204737A (en) Debug circuit of signal processing processor
JPH0721034A (en) Character string copying processing method
JPH01147627A (en) Question answering device
JPS58181165A (en) Vector operating processor
JP2685245B2 (en) Programmable controller
US4580238A (en) Arithmetic operating system
JPS6368971A (en) Vector processor
JPS61267174A (en) Vector processor
JP2748957B2 (en) Data processing device
JPS6355636A (en) Data processing system
EP0136699B1 (en) Programmable controller
JP3055139B2 (en) Micro program control method
JP2781779B2 (en) Branch control circuit
JP3755168B2 (en) Programmable controller
JP3531856B2 (en) Program control method and program control device
JPS59123936A (en) Movement control system
JPS60220424A (en) Arithmetic system of array element
JPH06162067A (en) Device and method for controlling vector instruction
JPS58137081A (en) Vector processor
JPS5896346A (en) Hierarchical arithmetic system
JPH0512009A (en) Digital signal processing device
JPH0916399A (en) Computer
JPH0364903B2 (en)