JPS62285180A - Vector processor - Google Patents

Vector processor

Info

Publication number
JPS62285180A
JPS62285180A JP12791186A JP12791186A JPS62285180A JP S62285180 A JPS62285180 A JP S62285180A JP 12791186 A JP12791186 A JP 12791186A JP 12791186 A JP12791186 A JP 12791186A JP S62285180 A JPS62285180 A JP S62285180A
Authority
JP
Japan
Prior art keywords
vector
possibility
address
data
list
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.)
Pending
Application number
JP12791186A
Other languages
Japanese (ja)
Inventor
Tsuneya Kurihara
恒弥 栗原
Akio Yajima
矢島 章夫
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 JP12791186A priority Critical patent/JPS62285180A/en
Publication of JPS62285180A publication Critical patent/JPS62285180A/en
Pending 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)

Abstract

PURPOSE:To successively process the part only and to guarantee a correct counting result when the same indirect address value exists by suppressing the reading processing of a list vector when possibility P that the data on the main storage device of a list vector element are re-written by the result of the vector calculation which is executed at present exists. CONSTITUTION:Vector data (VD) are successively read from a main storage device 1 in accordance with the address shown by an address register (AR) 14 by a load instruction and accumulated through writing data registers (WR) 2-5 to vector registers (VR) 6-9. The VD of VRs 6-9 is read and sent through a reading register 10 to an AR 15 and a list vector control unit 19. The unit 19 decides whether possibility P that the data on a main storage device designated by the address are re-written by the result of the vector calculation which is executed at present exists. When the deciding result shows that the possibility exists, the unit 19 closes a gate 20, suppresses the load of the VD from the main storage device 1 and when the possibility does exist, the next processing is proceeded.

Description

【発明の詳細な説明】 3、発明の詳細な説明 〔産業上の利用分野〕 本発明は、ベクトル演算のためにリストベクトル形式で
表現されるベクトルデータの主記憶装置からの読出し、
演算処理、および主記憶装置への格納を高速に行うベク
トルプロセッサに関する。
Detailed Description of the Invention 3. Detailed Description of the Invention [Field of Industrial Application] The present invention provides a method for reading vector data expressed in a list vector format from a main storage device for vector operations;
The present invention relates to a vector processor that performs arithmetic processing and storage in a main memory at high speed.

〔従来の技術〕[Conventional technology]

科学技術計算に頻繁に現われる大型行列計算などの高速
処理用にベクトルプロセッサが考案されている。
Vector processors have been devised for high-speed processing such as large matrix calculations that frequently appear in scientific and technical calculations.

ベクトルプロセッサの多くには、特開昭59−1720
78に記載のように、以下に詳述するようなリストベク
トル処理機能がある。すなわち、間接アドレスで指定さ
れるリスト構造をもつベクトルデータの高速な読出し・
書込みが可能である。このリストベクトル処理機能を用
いれば、次のFortran文で示すような処理を高速
にベクトル処理することが可能である。
Many of the vector processors include
78, there is a list vector processing function as detailed below. In other words, high-speed reading/reading of vector data with a list structure specified by indirect addresses is possible.
Writing is possible. By using this list vector processing function, it is possible to perform vector processing at high speed as shown in the following Fortran sentence.

Do  10  I=1.N D(A(I))=B(A(I))+C 10C0NTINTJE すなわち、間接アドレスベクトル要素A(I)で、指示
されるベクトル要素B(A(I))に定数Cを加算し、
その演算結果を間接アドレスベクトル要素A(I)で指
示されるベクトル要素D(A(I))に格納する。この
ように、間接アドレスベクトルで指示されろベクトルデ
ータの演算をベクトルプロセッサはベクトル処理手法を
用いて高速に処理することができる。
Do 10 I=1. N D(A(I))=B(A(I))+C 10C0NTINTJE In other words, add the constant C to the vector element B(A(I)) indicated by the indirect address vector element A(I),
The calculation result is stored in vector element D (A(I)) indicated by indirect address vector element A(I). In this manner, the vector processor can perform operations on vector data specified by the indirect address vector at high speed using vector processing techniques.

しかし、次のFortran文で示すような処理は従来
のベクトルプロセッサではベクトル処理できなかった。
However, conventional vector processors cannot perform vector processing as shown in the following Fortran statement.

Do  to  I=1.N R(A(I))=Fl(A(T))+C10C0NTI
NUE すなわち、間接アドレスベクトル要素A(I)でそれぞ
れ指示されるベクトル要素B(A(I))に定数Cを加
算し、その演算結果を前記ベクトル要素R(A(I))
に格納する処理はベクトル処理できなかった。これはベ
クトル要素F3(A(I))の定義参照関係によるもの
である。すなわち、前記の例では、ベクトル要素B(A
(I))をデータとして、ある演算を行いその結果を用
いてベクトル要素R(A (I ))を更新するが、ベ
クトル処理においては前記ベクトル要素B(A(T))
の更新が終了する以前に、1番目以降のベクトル要素n
(A(J))が読出されるため、A(1)とA(J)の
内容が等しい場合にはB(A(T))に対して行われろ
演算結果が、R(A(J))に対して行われろ演算に反
映されないということが問題となる。このため、上記の
ような処理は、ベクトル処理できず、逐次的に実行する
ことになるので、高速処理は望めない。
Do to I=1. N R(A(I))=Fl(A(T))+C10C0NTI
NUE In other words, a constant C is added to the vector element B (A (I)) indicated by the indirect address vector element A (I), and the result of the operation is added to the vector element R (A (I)).
Vector processing could not be performed for storing data in . This is due to the defined reference relationship of vector element F3 (A(I)). That is, in the above example, vector element B(A
(I)) as data, a certain operation is performed and the result is used to update the vector element R(A(I)), but in vector processing, the vector element B(A(T))
Before the update of
(A(J)) is read, so if the contents of A(1) and A(J) are equal, the result of the operation performed on B(A(T)) is R(A(J)). The problem is that it is not reflected in the calculations performed on ). For this reason, the above processing cannot be vector processed and must be executed sequentially, so high-speed processing cannot be expected.

上記のような処理、すなわち、リストベクトルに演算を
施し、その結果を前記リストベクトルに格納する処理は
、例えば、コンピュータグラフィゲスにおける隠面消去
処理において必須のものである。Z−バッファ法等の隠
面消去処理では、各画素について奥行き値を比較し、そ
の比較結果によって主記憶装置上の奥行き値を変更する
。画素の位置はリストベクトルで与えられる。複数の多
角形についてベクトル処理を行うと同一画素をすなわち
同一のアドレスについてリストベクトル処理する場合が
生じ、これがまさに本特許で問題となっているベクトル
処理である。
The above-described processing, that is, the processing of performing calculations on a list vector and storing the results in the list vector, is essential in, for example, hidden surface removal processing in computer graphics. In hidden surface removal processing such as the Z-buffer method, the depth values of each pixel are compared, and the depth values on the main storage device are changed based on the comparison results. Pixel positions are given by list vectors. When vector processing is performed on a plurality of polygons, list vector processing may be performed on the same pixel, that is, the same address, and this is exactly the vector processing at issue in this patent.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

上記従来技術は、リストベクトルに演算を行い、その演
算結果を前記リストベクトルに格納する処理において、
同一の間接アドレス値が存在する場合の、配慮がされて
おらず、以前の処理が終了しリストベクトルの値が更新
されるのを待たずに次のリストベクトル要素を読み込む
ため、先の演算結果が後の演算データに反映されず、正
しい結果が得られないという聞届があった。
In the above-mentioned conventional technology, in the process of performing an operation on a list vector and storing the operation result in the list vector,
If the same indirect address value exists, this is not considered, and the next list vector element is read without waiting for the previous processing to finish and the list vector value to be updated, so the result of the previous operation is There were reports that the results were not reflected in the later calculation data, resulting in incorrect results being obtained.

本発明は、前記の問題点に鑑み、リストベクトルに演算
を施し、その演算結果を前記リストベクトルに格納する
処理において、同一の間接アドレス値が存在する場合に
も、正しい結果が得られるようなベクトルプロセッサを
提供することにある。
In view of the above-mentioned problems, the present invention provides a method that allows correct results to be obtained even when the same indirect address value exists in the process of performing an operation on a list vector and storing the result of the operation in the list vector. Its purpose is to provide a vector processor.

〔問題点を解決するための手段〕[Means for solving problems]

上記目的は、リストベクトルに対する演算において、リ
ストベクトル要素の主記憶装置上のデータが現在実行中
のベクトル演算の結果によって書変えられる可能性Pの
有無を判定する手段を用意し、リストベクトル要素を主
記憶装置から読出す前に該リストベクトル要素に対する
前記可能性Pを求め、該可能性Pが有の間は該リストベ
クトル要素の読出しを抑止することにより、達成されろ
The above object is to provide a means for determining whether or not there is a possibility P that the data on the main memory of a list vector element will be rewritten by the result of the currently executed vector operation in an operation on a list vector, and to This is achieved by determining the possibility P for the list vector element before reading it from main memory, and inhibiting reading of the list vector element while the possibility P exists.

〔作用〕[Effect]

リストベクトル制御ユニットは、リストベクトル処理に
おいて、現在実行されているベクトル演算によって害変
えられる可能性Pのある主記憶のアドレスを保持してい
る。リストベクトル制御ユニットは1次のリストベクト
ル要素を読み込む前に、該リストベクトルのアドレスに
対する前記可能性Pを求める。
In list vector processing, the list vector control unit holds addresses in main memory that have a probability P of being altered by the currently executed vector operation. Before reading a primary list vector element, the list vector control unit determines the possibility P for the address of the list vector.

リストベクトル制御ユニットは、前記可能性Pがあれば
、該リストベクトルの読出し処理を抑止する。このため
、同一の間接アドレス値が存在した場合には、その部分
だけ処理が逐次的になるので、正しい計算結果が保障さ
れる。
If the possibility P exists, the list vector control unit suppresses the read processing of the list vector. Therefore, if the same indirect address value exists, only that part is processed sequentially, so correct calculation results are guaranteed.

〔実施例〕〔Example〕

以下、本発明の一実施例を第】図により説明する。 Hereinafter, one embodiment of the present invention will be explained with reference to FIG.

第1図は、ベクトル演算を行うベクトルプロセッサシス
テムの本発明に関連する部分の構成を示したものである
。同図において、1は主記憶装置、2〜5はそれぞれの
ベクトルレジスタのライトデータレジスタ、6〜9はベ
クトルレジスタ、10〜13はベクトルレジスタからの
り一ドデータレジスタ、14〜]7はそれぞれのベクト
ルデータをアクセスするためのアドレスレジスタである
FIG. 1 shows the configuration of a portion of a vector processor system that performs vector operations that is related to the present invention. In the figure, 1 is the main memory, 2 to 5 are the write data registers of the respective vector registers, 6 to 9 are the vector registers, 10 to 13 are the data registers written from the vector registers, and 14 to 7 are the write data registers of the respective vector registers. This is an address register for accessing vector data.

18は演算器であり、予め指定された演算を行う。18 is an arithmetic unit, which performs a predetermined arithmetic operation.

リストベクトル制御ユニット19は本発明の特徴的なも
のであり、その詳細については後に述べる。
The list vector control unit 19 is a characteristic feature of the present invention, and its details will be described later.

20はゲートである。同図において、ベクトルライトレ
ジスタ2〜5への入力、ベクトルリードレジスタ10〜
13からの出力、アドレスレジスタ14〜17への入力
はそれぞれ固定されているが、実際には、それぞれセレ
クタ(図示せず)によって設定されているものとする。
20 is a gate. In the figure, inputs to vector write registers 2 to 5, vector read registers 10 to
The output from address register 13 and the input to address registers 14 to 17 are each fixed, but in reality, each is set by a selector (not shown).

すなわち、ライトレジスタ2〜5の入力は指定のプログ
ラムに対応してセレクタ(図示せず)で主記憶装置ff
l 1あるいは演算器18の出力に接続されている。ま
た、リードレジスタ10〜13の出力は指定のプログラ
ムに対応して、セレクタ(図示せず)でアドレスレジス
タ、リストベクトル制御ユニット、演S7器あるいは主
記憶装置に接続されている。
That is, the inputs of write registers 2 to 5 are sent to the main memory ff by a selector (not shown) in accordance with the specified program.
It is connected to l1 or the output of the arithmetic unit 18. Further, the outputs of the read registers 10 to 13 are connected to an address register, a list vector control unit, an S7 processor, or a main storage device by a selector (not shown) in accordance with a designated program.

次に動作を詳細に説明する。−例として次のようなFo
rtranプログラムで表わされるような演算を考える
Next, the operation will be explained in detail. -For example, the following Fo
Consider an operation as expressed in the rtran program.

Do  10  T=1.、N B(A(T))=B(A(I))+C 10C0NTINU  E 先ずロード命令によってアドレスレジスタ14の示すア
ドレスに従って主記憶装置1からベクトルデータが読み
出され、ライトデータレジスタ2を経てベクトルレジス
タ6にTi積される。アドレ −スレジスタ14は、ベ
クトルデータの読出しが終了するごとに+1されろ。以
上のようにして、生花装置からベクトルデータA(L〜
N)を順に読出し、ベクトルレジスタ6に蓄積する。
Do 10 T=1. , N B(A(T))=B(A(I))+C 10C0NTINU E First, vector data is read out from the main storage device 1 according to the address indicated by the address register 14 by a load instruction, and the vector data is read out from the main storage device 1 via the write data register 2. Ti is multiplied in register 6. The address register 14 is incremented by 1 each time reading of vector data is completed. As described above, vector data A (L ~
N) are sequentially read out and stored in the vector register 6.

次に、ベクトルレジスタ6のベクトルデータが読出され
、リードレジスタ10を経て、アドレスレジスタ15及
びリストベクトル制御ユニット19に送られろ。制御ユ
ニット19は、入力されたデータを主記憶装置のアドレ
スと見なす。
Next, the vector data in the vector register 6 is read out and sent to the address register 15 and list vector control unit 19 via the read register 10. The control unit 19 regards the input data as an address in the main memory.

リストベクトル制御ユニット19は該アドレスで指定さ
れろ主記憶装置上のデータが現在実行中のベクトル演算
の結果によって書き換えられる可能性Pがあるか否かを
判定する。
The list vector control unit 19 determines whether there is a possibility P that the data on the main memory specified by the address will be rewritten by the result of the vector operation currently being executed.

リストベクトル制御ユニット19の内部構成については
後に詳しく述べろ。前記可能性Pの有無によってリスト
ベクトル制御ユニットの動作は次のようになる。
The internal configuration of the list vector control unit 19 will be described in detail later. The operation of the list vector control unit is as follows depending on the presence or absence of the possibility P.

(1)可能性Pが有る場合 前記可能性Pが有る場合には、リストベクトル制御ユニ
ット19はゲート20に信号を送り、ゲート20を閉じ
、主記憶装置1からベクトルレジスタ7へのベクトルデ
ータのロードを抑止する。
(1) When there is a possibility P If the possibility P exists, the list vector control unit 19 sends a signal to the gate 20, closes the gate 20, and transfers the vector data from the main memory 1 to the vector register 7. Prevent loading.

実行中のベクトル演算が進み、該可能性Pが無くなった
ら、ゲート20に信号を送りゲートを開く。
When the vector operation being executed progresses and the possibility P disappears, a signal is sent to the gate 20 to open the gate.

(2)可能性Pが無い場合 前記可能性Pが無い場合には、リストベクトル制御ユニ
ット19は、前記アドレスに対応する前記可能性Pを有
にし、次の処理に進む。
(2) When there is no possibility P When there is no possibility P, the list vector control unit 19 sets the possibility P corresponding to the address to be valid and proceeds to the next process.

ゲート20が開いている場合には、次のロード命令によ
ってアドレスレジスタ15の示すアドレスに従って主記
憶装置1からベクトルデータが読み出され、ライトデー
タレジスタ3を経てベクトルレジスタ7に蓄積される。
When the gate 20 is open, vector data is read from the main memory device 1 according to the address indicated by the address register 15 by the next load instruction, and is stored in the vector register 7 via the write data register 3.

以上のようにして。Do as above.

主記憶装置i!21からリストベクトルデータ11(A
(1〜N))を読み出し、ベクトルレジスタ7に蓄積す
る。
Main memory i! 21 to list vector data 11 (A
(1 to N)) is read out and stored in the vector register 7.

さら1;、ベクトルレジスタ7のベクトルデータは、リ
ードレジスタ11を経て演算器18に送られ、予め指定
された演算(前記プログラム例では定数Cの加算)が行
われ、演算結果はライトレジスタ5を経てベクトルレジ
スタ9に送られる。以上のようにして、ベクトルデータ
B(A(1〜N))十Cがベクトルレジスタ9に蓄積さ
れる。
Furthermore, the vector data in the vector register 7 is sent to the arithmetic unit 18 via the read register 11, where a pre-specified arithmetic operation (addition of constant C in the above program example) is performed, and the result of the arithmetic operation is sent to the write register 5. The signal is then sent to the vector register 9. As described above, vector data B(A(1-N))+C are accumulated in the vector register 9.

ベクトルレジスタ8には、ベクトルレジスタ6における
と同様の処理によって、ベクトルデータA(L〜N)が
蓄積されろ。
Vector data A (L to N) is stored in the vector register 8 through the same processing as in the vector register 6.

ベクトルレジスタ8のベクトルデータは、リードレジス
タ12を経て、アドレスレジスタ17に送られろ。ベク
トルレジスタ9のベクトルデータは、リードレジスタ1
3を経て、アドレスレジスタコアに示すアドレスに従っ
て主記憶装置1に書込まれる。以上のようにして、ベク
トル演算結果B(A(,1〜N))+Cは主記憶装置に
書き込まれる。次に、アドレスレジスタ17のデータは
リストベクトル制御ユニット19に転送され、リストベ
クトル制御ユニット19は、該アドレスで指定される主
記憶上のデータが現在実行中のベクトル演算によって書
き変えられる可能性Pを無に変更する。
The vector data in the vector register 8 is sent to the address register 17 via the read register 12. Vector data in vector register 9 is read register 1
3, and is written into the main memory device 1 according to the address indicated in the address register core. As described above, the vector operation result B(A(,1-N))+C is written to the main memory. Next, the data in the address register 17 is transferred to the list vector control unit 19, and the list vector control unit 19 determines the possibility that the data in the main memory specified by the address will be rewritten by the vector operation currently being executed. change to nothing.

以上のようにして、前記プログラムによって示されるベ
クトル演算が実現される。
In the manner described above, the vector calculation indicated by the program is realized.

第2図は、本実施例の簡単なタイムチャートを示したも
のである。簡単のため、読み出しリクエスト、レジスタ
から演算器への転送等を省略している。主記憶装置1が
らベクトルデータA(1〜N)の読出しは、同図に示す
ようにエレメント1からエレメントNまで順に毎サイク
ル実行される。
FIG. 2 shows a simple time chart of this embodiment. For simplicity, read requests, transfers from registers to arithmetic units, etc. are omitted. Reading of vector data A (1 to N) from the main memory device 1 is performed every cycle in order from element 1 to element N, as shown in the figure.

さらに、次のサイクルで間接アドレスベクトルデータ 
(A(1〜N))に対して、リストベクトル制御ユニッ
ト19は、該アドレスに対するデータの書き変え可能性
Pを調べる。前記可能性Pが有るならば、該可能性Pが
無になるまでn (A (1〜N))の読出しは抑止さ
れる。同図ではA (2) =A (4)・ の場合を示している。n(A (4))の主記憶装置1
からの読み出しは、R(A (2))に対する演算が終
了するまで待つ必要がある。これは前記可能性Pが有る
ならば、該可能性Pが無になるまでR(A (i ))
の読出しを抑止することで実現される。
Additionally, indirect address vector data is added in the next cycle.
For (A(1-N)), the list vector control unit 19 examines the possibility P of rewriting data for the address. If the possibility P exists, reading of n (A (1 to N)) is inhibited until the possibility P becomes null. The figure shows the case where A (2) = A (4). Main storage device 1 of n(A (4))
It is necessary to wait until the operation on R(A (2)) is completed before reading from. This means that if the possibility P exists, R(A (i)) until the possibility P becomes null.
This is achieved by inhibiting the reading of .

同図において、エレメント1〜3に対する処理すなわち
A(1〜3)の読出し、B(A(1〜3))の読出し、
加算、演算結果の書込みについては、前記可能性Pが無
いため順に毎サイクル実行されろ。エレメント4につい
ては、前記可能性Pが有るためB(A(2))の処理が
終了するまでB(A(4))の読出しを待つ、B(A 
(2))の処理が終了した後は、r((A (4〜N)
)の読出し、加算、演算結果の格納は順に毎サイクル実
行される。
In the figure, processing for elements 1 to 3, that is, reading of A(1 to 3), reading of B(A(1 to 3)),
As for addition and writing of operation results, since there is no possibility P mentioned above, they should be executed in order every cycle. Regarding element 4, since the possibility P exists, reading of B(A(4)) is waited until the processing of B(A(2)) is completed.
After completing the process of (2)), r((A (4~N)
), addition, and storage of the operation results are executed in order every cycle.

上記のように、同一の間接アドレス値が存在する場合、
そのデータはパイプライン処理されず、逐次処理となる
。しかし、同一の間接アドレス値が存在しない限りベク
トル演算が行われる。このため、同一の間接アドレス値
がほとんどない場合には、はとんどのデータに対してパ
イプライン処理が可能であり、通常のベクトルプロセッ
サ並の速度が得られる。同一の間接アドレス値が数多く
存在する場合には、逐次処理が増加するが、最悪の場合
でも、逐次処理を行うスカラプロセッサの速度は保障さ
れる。
As above, if identical indirect address values exist,
The data is not pipelined, but processed sequentially. However, vector operations are performed unless identical indirect address values exist. Therefore, if there are almost no identical indirect address values, pipeline processing is possible for most of the data, and speeds comparable to ordinary vector processors can be obtained. If there are many identical indirect address values, sequential processing increases, but even in the worst case, the speed of a scalar processor that performs sequential processing is guaranteed.

第3図は従来方法によるベクトルプロセッサシステムの
概念図である。本発明との違いは、リストベクトル制御
ユニット19が存在しないことであり、動作は第1図に
示した本発明のベクトルプロセッサシステムとほとんど
同様である。第3図の例では、リストベクトルB(A(
1〜n))を主記憶装置1から読出す前に、咳値が現在
実行中のベクトル演算の結果によって書き変えられる可
能性の有無を判定をしない。このため、例えばA (2
) =A (4) の場合には、B(A (2))に対する演算結果がB 
(A (4) )の演算に反映されず、正しい結果が得
られない。第4図は従来方法によるベグトルプロセッサ
の簡憤なタイムチャートを示したものである。同図にお
いてR(A (4) )の読出しはB (A (2) 
’)の演算結果の書込み終了以前に行われる。このため
正しい結果が得られない。
FIG. 3 is a conceptual diagram of a vector processor system using a conventional method. The difference with the present invention is that the list vector control unit 19 is not present, and the operation is almost the same as the vector processor system of the present invention shown in FIG. In the example in Figure 3, the list vector B(A(
1 to n)) from the main memory 1, it is not determined whether or not there is a possibility that the cough value will be rewritten by the result of the vector operation currently being executed. For this reason, for example, A (2
) = A (4), the operation result for B(A (2)) is B
It is not reflected in the calculation of (A (4) ), and the correct result cannot be obtained. FIG. 4 shows a simple time chart of a Vegtor processor according to the conventional method. In the same figure, reading of R(A (4)) is B(A (2)
') is performed before the writing of the operation result is completed. For this reason, correct results cannot be obtained.

次に、第5図のフローチャートを参照しつつリストベク
トル制御ユニット19の一実施例を詳しく説明する。同
ユニットは第1図のリードレジスタ10からアドレスA
 (i)を受は取ることにより動作を開始する。第5図
(a)において、まずアドレスA (i)を入力しく1
01)、次に該アドレスA (i)にある演算ftt施
し結果f(A(i))を変数Keyに代入する。演算f
については後に詳述する。
Next, one embodiment of the list vector control unit 19 will be described in detail with reference to the flowchart of FIG. The unit is read from read register 10 in Figure 1 to address A.
The action begins by taking (i). In Figure 5 (a), first enter address A (i).
01), and then assigns the result f(A(i)) of the operation ftt at the address A(i) to the variable Key. Operation f
This will be explained in detail later.

次に変数Keyを用いて、該アドレスが使用中であるか
否かを保持するコンフリクトテーブルTableを引き
(103)、使用中(busy)でなければ、ゲート2
0に信号を送り、ゲート20を開き(104)、該テー
ブルをbusyとし、処理を終了する(105)、10
3において、busyの場合には、ゲート20に信号を
送り、ゲート20を閉じ(1,06)、103の処理に
戻る。
Next, using the variable Key, draw a conflict table that holds whether the address is in use or not (103), and if it is not in use, the gate 2
0, opens the gate 20 (104), makes the table busy, and ends the process (105).
In step 3, if it is busy, a signal is sent to the gate 20, the gate 20 is closed (1, 06), and the process returns to step 103.

第1図におけるアドレスレジスタ17の出力A(j)が
リストベクトル制御ユニット19に入力されると割り込
みがかかり、割り込み動作が開始される。第5図(b)
において、まずアドレスA(j)を入力しく201)、
次に該アドレスA (j)に演算fを施し、演算結果f
 (A (j) )をK e yに代入する(202)
。次にテーブルTableのKey番目の要素をno 
+ busyに設定し処理を終了する(203)。なお
、テーブルTabl。
When the output A(j) of the address register 17 in FIG. 1 is input to the list vector control unit 19, an interrupt is generated and an interrupt operation is started. Figure 5(b)
, first input the address A(j) (201),
Next, the operation f is performed on the address A (j), and the operation result f
Assign (A (j)) to K ey (202)
. Next, set the Key element of the table to no
+ is set to busy and the process ends (203). Note that the table Table.

は要素数Mの一次元配列であり、全要素についてno+
busyに初期化されているものとする。
is a one-dimensional array with M elements, and all elements are no+
It is assumed that it is initialized to busy.

アドレス値A (i)に施す演算fを恒等変換とすれば
、コンフリクトテーブルTablaの要素数Mはアクセ
スされ得ろすべてのアドレス数りとなる。
If the operation f applied to the address value A (i) is an identity transformation, the number M of elements of the conflict table Tabla will be the number of all addresses that can be accessed.

もしも、Lが比咬的小さい数であればfを恒等変換とし
て、参照され得るすべてのアドレスについてコンフリク
トテーブルを設ければよい。もしも、アクセスされ得る
全アドレス数が非常に大きい場合には、全アドレスに対
するコンフリクトテーブルを持つことはハードウェア的
に不利である。この時には演算fによってアドレスのピ
ッ1〜数を減少させることが有効となる。例えばr、:
2z0である場合、fとして下位8ビツトだけを有効と
するような演算を考えれば、コンフリクトテーブルの要
素数は256で充分である。
If L is a relatively small number, it is sufficient to set f as an identity transformation and provide a conflict table for all addresses that can be referenced. If the total number of addresses that can be accessed is very large, it is disadvantageous in terms of hardware to have a conflict table for all addresses. At this time, it is effective to reduce the number of addresses by the operation f. For example, r:
In the case of 2z0, if we consider an operation in which only the lower 8 bits of f are valid, then 256 elements in the conflict table is sufficient.

以上説明してきたように1本発明によれば、リストベク
トルに演算を行い、その演算結果を前記リストベクトル
に格納する処理において、同一の間接アドレス値が存在
する場合には、以前の処理が終了しリストベクトルの値
が更新された後に前記の同一の間接アドレスに対応する
リストベクトル要素を読出すため、同一の間接アドレス
値が存在しても正しい演算結果が得られる。また1本発
明を実現するために新たに必要となる処理は、関数Cの
演算およびテーブルルックアップだけであり、関数fを
マスク処理で行うことにすれば、高速に実現できる。こ
のため、同一の間接アドレス値が存在しない場合には、
従来の方法でも実行可能であるが、本発明の方法を■い
た場合にも速度の低下はほとんどなく、高速なベクトル
処理が可能である。
As explained above, according to the present invention, in the process of performing an operation on a list vector and storing the result of the operation in the list vector, if the same indirect address value exists, the previous process is terminated. Since the list vector element corresponding to the same indirect address is read after the value of the list vector is updated, a correct operation result can be obtained even if the same indirect address value exists. Further, the only new processing required to realize the present invention is the calculation of function C and table lookup, which can be realized at high speed by performing mask processing on function f. Therefore, if there are no identical indirect address values,
Although the conventional method can be used, even when the method of the present invention is used, there is almost no decrease in speed, and high-speed vector processing is possible.

最悪の場合、すなわち間接アドレス値がすべて同じ場合
には、処理は逐次的となるが、逐次処理を行うスカラプ
ロセッサの速度は保障される。
In the worst case, that is, when all indirect address values are the same, processing becomes sequential, but the speed of a scalar processor that performs sequential processing is guaranteed.

同−の間接アドレス値が、稀に存在する場合に、本発明
の効果が最も発揮される。従来方法のベクトルプロセッ
サでは上記のような場合には正しい結果が得ら九ず、逐
次処理する必要があり高速な処理は実現できない。しか
し、上記のような場合にも、本発明によれば、リストベ
クトル読出しの遅延はほとんどなく、通常のベクトルプ
ロセッサと同等の速度が得られる。
The effects of the present invention are most effective when the same indirect address value rarely exists. Conventional vector processors cannot obtain correct results in the above-mentioned cases, and require sequential processing, making it impossible to achieve high-speed processing. However, even in the above case, according to the present invention, there is almost no delay in reading list vectors, and a speed equivalent to that of a normal vector processor can be obtained.

本実施例では、リストベクトル要素にある定数を加算し
演算結果を前記リストベクトルに格納する場合について
述べたが、他のベクトルデータとの複数の演算について
も同様にベクトル処理できることは言うまでもない。
In this embodiment, a case has been described in which constants are added to list vector elements and the operation results are stored in the list vector, but it goes without saying that vector processing can be performed similarly for multiple operations with other vector data.

本実施例では、リストベクトル要素の競合からリストベ
クトル要素の主記憶装置からの読出しが抑止され、その
後競合がなくなった場合には、該リストベクトル要素を
主記憶装置に格納し、その直後に該要素を主記憶装置か
ら読出すことになる。
In this embodiment, reading of a list vector element from the main memory is inhibited due to a conflict between the list vector elements, and if there is no conflict after that, the list vector element is stored in the main memory, and immediately after that, the list vector element is stored in the main memory. The element will be read from main memory.

本実施例の変形として、リードレジスタ13の出力をセ
レクタを介してライトレジスタ3に入力すれば、主記憶
装置を参照する必要がなくなり、より一層の高速化が実
現できる。
As a modification of this embodiment, if the output of the read register 13 is input to the write register 3 via a selector, there is no need to refer to the main memory, and even higher speeds can be realized.

〔発明の効果〕 以上のように、本発明によれば、リストベクトルに演算
を行い、その演算結果を前記リストベクトルに格納する
処理において、同一の間接アドレスが存在する場合にも
、ベクトル処理が可能となり、処理速度が向上するとい
う効果がある。
[Effects of the Invention] As described above, according to the present invention, in the process of performing an operation on a list vector and storing the result of the operation in the list vector, vector processing is performed even when the same indirect address exists. This has the effect of improving processing speed.

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

第1図は本発明の一実施例の構成図、第2図は実施例の
タイムチャート、第3図は従来技術による一実施例の構
成図、第4図はそのタイ11チヤート、第5図(a)、
(b)はリストベクトル制御ユニットの処理を示すフロ
ーチャートである。
Fig. 1 is a block diagram of an embodiment of the present invention, Fig. 2 is a time chart of the embodiment, Fig. 3 is a block diagram of an embodiment according to the prior art, Fig. 4 is a tie 11 chart, and Fig. 5 (a),
(b) is a flowchart showing the processing of the list vector control unit.

Claims (1)

【特許請求の範囲】 1、複数のベクトルデータを有するベクトルプロセッサ
システムにおいて、間接アドレスベクトルデータ1に基
づき、演算用ベクトルデータ2を主記憶装置から読出す
手段と、該ベクトルデータ2に対して、予め指定された
演算を行う手段と、前記演算結果を前記間接アドレスベ
クトルデータ1に基づいて主記憶装置に書込む手段を有
するベクトルプロセッサにおいて、与えられたアドレス
値に対して、該アドレスで指定される主記憶装置上のデ
ータが現在実行中のベクトル演算の結果によって書変え
られる可能性があるか否かを判定するリストベクトル制
御ユニットを有し、前記間接アドレスベクトルデータ1
に基づき演算用ベクトルデータ2を主記憶装置から読出
す前に、現在実行中のベクトル演算の結果によって該ア
ドレス値が指定される主記憶装置上のデータが書変えら
れる可能性Pがあるか否かを前記リストベクトル制御ユ
ニットを用いて判定し、 (1)もしも、前記可能性Pがないならば、前記アドレ
ス値に基づき、演算用ベクトルデータ2を主記憶装置か
ら読み込み、該ベクトルデータ2に付して予め指定され
た演算を行い、前記演算結果を前記間接アドレスベクト
ルデータ1に基づいて主記憶装置に書込み、 (2)もしも前記可能性Pがあるならば、前記可能性P
がなくなるまで前記ベクトルデータ2の主記憶からの読
出しを抑止することを特徴とするベクトルプロセッサ。 2、第1項のベクトルプロセッサにおいて、参照され得
る全アドレスについての前記可能性Pを保持するコンフ
リクトテーブルを有し、前記可能性Pの判定を前記コン
フリクトテーブルのテーブルルックアップによって行う
ことを特徴とするベクトルプロセッサ。 3、第1項のベクトルプロセッサにおいて、アドレス値
に対して演算fを行う演算装置を有し、与えられたアド
レスaに対して前記演算fを施し、演算結果f(a)を
用いて前記コンフリクトテーブルを参照し前記可能性P
を判定することを特徴とするベクトルプロセッサ。
[Scope of Claims] 1. In a vector processor system having a plurality of vector data, means for reading vector data 2 for calculation from a main storage device based on indirect address vector data 1; In a vector processor having means for performing a pre-specified operation and means for writing the result of the operation into the main storage device based on the indirect address vector data 1, for a given address value, the indirect address vector data 1;
Before reading the calculation vector data 2 from the main storage based on the above, check whether there is a possibility P that the data on the main storage to which the address value is specified will be rewritten by the result of the vector calculation currently being executed. (1) If the possibility P does not exist, read the calculation vector data 2 from the main memory based on the address value, and (2) If the possibility P exists, the possibility P is
A vector processor characterized in that reading of the vector data 2 from a main memory is inhibited until the vector data 2 is exhausted. 2. The vector processor according to item 1 has a conflict table that holds the possibilities P for all addresses that can be referenced, and the possibility P is determined by table lookup of the conflict table. vector processor. 3. The vector processor of item 1 has an arithmetic unit that performs an operation f on an address value, performs the operation f on a given address a, and uses the operation result f(a) to resolve the conflict. Referring to the table, the possibility P
A vector processor characterized by determining.
JP12791186A 1986-06-04 1986-06-04 Vector processor Pending JPS62285180A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12791186A JPS62285180A (en) 1986-06-04 1986-06-04 Vector processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12791186A JPS62285180A (en) 1986-06-04 1986-06-04 Vector processor

Publications (1)

Publication Number Publication Date
JPS62285180A true JPS62285180A (en) 1987-12-11

Family

ID=14971695

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12791186A Pending JPS62285180A (en) 1986-06-04 1986-06-04 Vector processor

Country Status (1)

Country Link
JP (1) JPS62285180A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0392967A (en) * 1989-09-06 1991-04-18 Nec Corp Main storage controller
JPH03263264A (en) * 1990-03-14 1991-11-22 Nec Corp Information processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0392967A (en) * 1989-09-06 1991-04-18 Nec Corp Main storage controller
JPH03263264A (en) * 1990-03-14 1991-11-22 Nec Corp Information processor

Similar Documents

Publication Publication Date Title
US6061783A (en) Method and apparatus for manipulation of bit fields directly in a memory source
EP0084114B1 (en) Instruction prefetching data processing apparatus including a conditional branch instruction predictor
US6272596B1 (en) Data processor
KR100346515B1 (en) Temporary pipeline register file for a superpipe lined superscalar processor
JPH07105002A (en) Computer system
JPH0814801B2 (en) Programmable access memory
US5438669A (en) Data processor with improved loop handling utilizing improved register allocation
US4541047A (en) Pipelined data processing system
JPH0414385B2 (en)
JPS63240664A (en) Fast processing computer
KR100281007B1 (en) microprocessor, graphic processing device using the microprocessor and graphic processing method
JPS62285180A (en) Vector processor
JPH0552534B2 (en)
US5829049A (en) Simultaneous execution of two memory reference instructions with only one address calculation
JP3006204B2 (en) Information processing device
JP2783285B2 (en) Information processing device
JPS5896345A (en) Hierarchical arithmetic system
JP2685713B2 (en) Data processing device
JPH01187634A (en) Information processing device
JPS5844569A (en) Synchronous control system for instruction processing
JPS5896346A (en) Hierarchical arithmetic system
JP2895892B2 (en) Data processing device
JPH03119424A (en) Information processing system and its device
JPS6250867B2 (en)
JPH03119425A (en) Information processing system and its device