JPH0357499B2 - - Google Patents
Info
- Publication number
- JPH0357499B2 JPH0357499B2 JP6453485A JP6453485A JPH0357499B2 JP H0357499 B2 JPH0357499 B2 JP H0357499B2 JP 6453485 A JP6453485 A JP 6453485A JP 6453485 A JP6453485 A JP 6453485A JP H0357499 B2 JPH0357499 B2 JP H0357499B2
- Authority
- JP
- Japan
- Prior art keywords
- mask
- vector data
- mask vector
- data
- vector
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、ベクトル命令処理装置に関し、特に
ベクトル要素毎にマスク・ビツトによつてベクト
ル演算の実行を制御するベクトル命令処理装置に
関する。DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a vector instruction processing device, and more particularly to a vector instruction processing device that controls the execution of vector operations using mask bits for each vector element.
従来のベクトル命令処理装置はベクトル・プロ
セサの処理能力をより高速に向上させるために、
より広範囲の種類の処理を高速に処理することが
必要で、とりわけ、FORTRANプログラムでIF
文を含むDOループをいかに高速に処理するかが
課題となつており、古くからマスク・ベクトルに
より演算を制御し、処理する方法が工夫されてい
る。
In order to improve the processing power of vector processors, conventional vector instruction processing devices
It is necessary to process a wider range of types of processing at high speed, especially IF in FORTRAN programs.
The challenge has been how to process DO loops containing statements at high speed, and methods have long been devised to control and process operations using mask vectors.
DOループのマスク・ベクトルによる演算の処
理過程の概念を第2図を参照して簡単に説明する
と、このDOループはベクトル・オペランドC(I)
とベクトル・オペランドC(I)の各ベクトル要素同
士の比較を行い、ベクトル・オペランドD(I)の値
より小なるベクトル・オペランドC(I)のベクトル
要素を、ベクトル・オペランドA(I),B(I)の対応
するベクトル要素同志の加算結果に置き換えるよ
うな処理をN組のベクトル要素について繰返す例
である。 To briefly explain the concept of the processing process using the mask vector in the DO loop with reference to Figure 2, this DO loop uses the vector operand C(I)
The vector elements of vector operand C(I) and vector operand C(I) are compared, and the vector element of vector operand C(I) that is smaller than the value of vector operand D(I) is divided into vector operand A(I), This is an example of repeating processing for N sets of vector elements to replace them with the addition result of corresponding vector elements of B(I).
まずベクトル・オペランドC(I)とD(I)の各ベク
トル要素対応の比較を行い、C(I)>D(I)の場合は
“0”、C(I)<D(I)の場合は“1”の値を示すビツ
ト列を作成する。このビツト列がマスク・ベクト
ルであり、その各ビツトをマスク・ビツトと言
う。そして、この作成されたマスク・ベクトルに
従い、値が“1”であるマスク・ビツトに対応す
るベクトル・オペランドA(I),B(I)のベクトル要
素同志を加算し、結果をC(I)の対応するベクトル
要素に書き込む。それ以外のベクトル・オペラン
ドC(I)、つまり値が“0”であるマスク・ビツト
に対応するベクトル・オペランドC(I)のベクトル
要素は変化させない。 First, the vector operands C(I) and D(I) are compared for each vector element correspondence, and if C(I)>D(I), it is "0", and if C(I)<D(I), it is "0". creates a bit string indicating the value "1". This bit string is a mask vector, and each bit is called a mask bit. Then, according to this created mask vector, the vector elements of vector operands A(I) and B(I) corresponding to the mask bit whose value is "1" are added together, and the result is converted into C(I). write to the corresponding vector element of . Other vector operands C(I), that is, vector elements of vector operand C(I) corresponding to mask bits whose value is "0" are not changed.
以上のようにして、マスク・ベクトルによる演
算の処理が行われる訳であるが、マスク・ベクト
ルの作成にあたつては、同種の比較器を複数組用
意することにより、一括して順次高速に作成する
ことが可能である。従つて、マスク・ベクトルに
よるベクトル演算を高速に処理するためには、一
括して順次作成されたマスク・ベクトルをいかに
高速に処理し、演算処理を実行するかが重要であ
る。 Arithmetic processing using mask vectors is performed in the above manner. When creating mask vectors, by preparing multiple sets of comparators of the same type, the comparators can be sequentially processed at high speed. It is possible to create one. Therefore, in order to process vector calculations using mask vectors at high speed, it is important to process mask vectors that are sequentially created in batches at high speed and perform calculation processing.
このために、従来のベクトル命令処理装置は第
3図に示すようにベクトル要素の読み出しリクエ
ストを要求する時点でマスク・ビツトによつて示
された有効なベクトル要素のみを読み出し、演算
を抑止されるベクトル要素の読み出しを抑止する
ことで、無効な演算を飛ばすようにしたベクトル
命令処理装置がある。 For this reason, the conventional vector instruction processing device reads only the valid vector elements indicated by the mask bits at the time of requesting a vector element read request, as shown in FIG. 3, and the operation is suppressed. There is a vector instruction processing device that skips invalid operations by inhibiting reading of vector elements.
この従来のベクトル命令処理装置においては処
理されるべきベクトル要素の要素数分に対応する
個数のマスク・ビツト列から構成されているマス
ク・ベクトルをある一定処理単位ごとに区切り、
その一定処理単位ごとに区切つたマスク・ベクト
ル(以下、マスク・ベクトル・データと呼ぶ)を
1処理単位として、順次高速に処理を行う。その
ために、マスク・ベクトルによる演算処理に先行
して一括して順次作成されるマスク・ベクトルを
一旦記憶装置に格納する。マスク・ベクトルの記
憶装置への格納が終了するか、あるいは格納動作
と並行して、ベクトル命令処理装置に対してはマ
スク・ベクトルによる演算処理開始の命令が発行
される。ベクトル命令処理装置が本命令を受付け
ると、まずベクトル・オペランド1,2及び3に
対応するベクトル・オペランド・アドレス(VH
1,2及びVH3)がそれぞれベクトル・アドレ
ス・レジスタ51,52及び53に、ベクトル・
オペランド1,2及び3に対応するベクトル要素
間距離(VI1,2及び3)がそれぞれベクトル
要素間距離レジスタ54,55及び56に初期設
定される。制御装置20では、マスク・ベクト
ル・データ読み出し部30に指令を出し、マス
ク・ベクトル・データ読み出し部30より記憶装
置10に対してマスク・ベクトル・データの読み
出しリクエストを出させる。マスク・ベクトル・
データの読み出しリクエストを受け取つた記憶装
置10は該当するマスク・ベクトル・データを読
み出し、マスク・ベクトル・データ処理部40に
送出する。マスク・ベクトル・データ処理部40
においては、マスク・ベクトル・データをもとに
処理が行われる。 In this conventional vector instruction processing device, a mask vector consisting of a number of mask bit strings corresponding to the number of vector elements to be processed is divided into certain processing units.
Mask vectors (hereinafter referred to as mask vector data) divided into fixed processing units are treated as one processing unit, and processing is sequentially performed at high speed. To this end, mask vectors that are sequentially created in batches are temporarily stored in a storage device prior to arithmetic processing using mask vectors. When the storage of the mask vector in the storage device is completed, or in parallel with the storage operation, an instruction to start arithmetic processing using the mask vector is issued to the vector instruction processing device. When the vector instruction processing device receives this instruction, it first reads the vector operand addresses (VH
1, 2 and VH3) in vector address registers 51, 52 and 53, respectively.
Vector element distances (VI1, 2, and 3) corresponding to operands 1, 2, and 3 are initialized in vector element distance registers 54, 55, and 56, respectively. The control device 20 issues a command to the mask vector data reading unit 30 to cause the mask vector data reading unit 30 to issue a request to the storage device 10 to read mask vector data. mask vector
Upon receiving the data read request, the storage device 10 reads the corresponding mask vector data and sends it to the mask vector data processing section 40. Mask vector data processing section 40
In , processing is performed based on mask vector data.
第4図は、マスク・ベクトル・データの処理過
程と演算指示ビツトに対応するベクトル要素のア
ドレス生成手順を表わしたものである。一つのベ
クトル命令内では、ベクトル・オペランド・アド
レス(VHi)に一定のベクトル要素間距離
(VIi)を加算すると、次のベクトル要素のベク
トル・オペランド・アドレスが得られる。ここ
で、第4図aを参照すると、読み出されたビツト
長(n+1)のマスク・ベクトル・データの値
は、3ビツト、8ビツト,…,(n−3)ビツト
目に演算指示ビツト“1”(その個数をmとする)
を示しており、他の(n−m+1)個のビツト全
てが演算抑止ビツト“0”を示している場合が示
されている。今ベクトル・オペランド・アドレス
(VHi,0)はマスク・ベクトル・データの0ビツ
ト目に対応するベクトル要素のアドレスである。
このとき、マスク・ベクトル・データの3ビツト
目に対応するベクトル要素のアドレス(VHi,3)
は
VHi,3=VHi,0+3×VIi
で得られる。ここで、ベクトル要素間距離
(VIi)の乗数3は、第4図aのマスク・ベクト
ル・データの先頭(0ビツト目)より最初の演算
指示ビツト“1”が見つかるまで演算抑止ビツト
“0”の個数をカウントすることで求められる。
さらに、次に演算すべきマスク・ベクトル・デー
タの8ビツト目に対応するベクトル要素のアドレ
ス(VHi,8)を求めるために、第4図bに示され
るように、第4図aのマスク・・ベクトル・デー
タを乗数に相当する3ビツト分だけ左シフトを行
ない、それに伴い3ビツト目の演算指示ビツト
“1”を反転させて、次に用いるマスク・ベクト
ル・データとする。この時、シフト・インに論理
レベル“1”を入力させる。このようにして得ら
れた第4図bのマスク・ベクトル・データに対し
て、再び先頭より演算指示ビツト“1”が見つか
るまで演算抑止ビツト“0”の個数をカウントす
る操作を行うことで新たな乗数5が得られ、第4
図aの8ビツト目に対応するベクトル要素のアド
レス(VHi,8)は
VHi,8=VHi,3+5×VIi
で得られる。 FIG. 4 shows the process of processing mask vector data and the procedure for generating addresses of vector elements corresponding to operation instruction bits. Within one vector instruction, adding a constant vector element distance (VIi) to the vector operand address (VHi) yields the vector operand address of the next vector element. Here, referring to FIG. 4a, the value of the read mask vector data of bit length (n+1) is the operation instruction bit "3rd bit, 8th bit, ..., (n-3)th bit". 1” (the number is m)
The case where all other (n-m+1) bits indicate the operation inhibit bit "0" is shown. The vector operand address (VHi, 0 ) is the address of the vector element corresponding to the 0th bit of the mask vector data.
At this time, the address of the vector element corresponding to the 3rd bit of the mask vector data (VHi, 3 )
is obtained by VHi, 3 = VHi, 0 + 3 × VIi. Here, the multiplier 3 of the distance between vector elements (VIi) is the operation suppression bit "0" until the first operation instruction bit "1" is found from the beginning (0th bit) of the mask vector data in Figure 4a. It can be found by counting the number of .
Furthermore, in order to obtain the address (VHi, 8 ) of the vector element corresponding to the 8th bit of the mask vector data to be calculated next, as shown in FIG. 4b, the mask vector data in FIG. - Shift the vector data to the left by 3 bits corresponding to the multiplier, and accordingly invert the 3rd bit, the operation instruction bit "1", to use as mask vector data to be used next. At this time, a logic level "1" is input to the shift-in. The thus obtained mask vector data of FIG. A multiplier of 5 is obtained, and the fourth
The address (VHi, 8 ) of the vector element corresponding to the 8th bit in Figure a is obtained by VHi, 8 = VHi, 3 + 5 x VIi.
以上の操作をm回繰返すことで、第4図cに示
されるような第4図aの(n−3)ビツト目の演
算指示ビツト“1”が反転を受けて先頭のビツト
位置にシフトされたマスク・ベクトル・データが
得られる。この第4図cのマスク・ベクトル・デ
ータに対して、もう一度同じ操作を行つて得られ
る乗数4を用いて得られるベクトル要素のアドレ
ス(VHi,0′)
VHi,0′=VHi,o-3+4×VIi
は、新たに連続する次のマスク・ベクトル・デー
タの先頭ビツトに対応するベクトル要素のアドレ
スである。 By repeating the above operation m times, the operation instruction bit "1" of the (n-3)th bit in FIG. 4a, as shown in FIG. 4c, is inverted and shifted to the first bit position. mask vector data is obtained. The address of the vector element obtained by performing the same operation once again on the mask vector data in Figure 4c and using the multiplier 4 (VHi, 0 ') VHi, 0 '=VHi, o-3 +4×VIi is the address of the vector element corresponding to the first bit of the next consecutive new mask vector data.
以上の操作は、各々の操作で得られる乗数を毎
回加算し、得られた加算値結果が読み出されたマ
スク・ベクトル・データのビツト長(n+1)と
一致するまで繰返され、一致を検出すると、一つ
のマスク・ベクトル・データの処理を終了する。 The above operations are repeated until the multipliers obtained in each operation are added each time, and the resulting added value matches the bit length (n+1) of the read mask vector data. When a match is detected, , ends the processing of one mask vector data.
再び、第3図を参照する。マスク・ベクトル・
データ処理部40はこれに供給された、マスク・
ベクトル・データを上述したように演算指示ビツ
ト“1”が見つかるまで演算抑止ビツト“0”の
個数をカウントする操作が行われ、得られた値が
ベクトル要素間距離VIiの乗数として、アドレス
生成部50に送出される。アドレス生成部50に
送出されたベクトル要素間距離VIiの乗数は、乗
算器57で、セレクタS50によつて選択された
ベクトル・オペランドのベクトル要素間距離VIi
と乗算されて、アドレス差分が生成され、アドレ
ス加算器58に送られる。アドレス加算器58で
は、乗算器57で生成されたアドレス差分と、セ
レクタS54によつて選択された対応するベクト
ル・オペランドのベクトル・オペランド・アドレ
スVHiと加算されて、演算を行うべきベクトル
要素のアドレスが得られ、記憶装置10に対し
て、ベクトル要素のオペランド・リクエストが送
出される。これと同時に、セレクタS51,5
2,53のいずれかのセレクタを通じて対応する
ベクトル・オペランドのベクトル・アドレス・レ
ジスタ(51,52若しくは53)の値が更新さ
れる。ベクトル要素のオペランド・リクエストを
受け取つた記憶装置10は、読み出しリクエスト
の場合は該当するベクトル要素を読み出し、演算
装置60に送出する。一つのベクトル要素間距離
VIiの乗数に対して、オペランド1,2及び3に
対応するベクトル要素のオペランド・リクエスト
を記憶装置10に対して送出し終ると、新たなベ
クトル要素間距離VIiの乗数が、マスク・ベクト
ル・データ処理部40からアドレス生成部50に
供給される。マスク・ベクトル・データ処理部4
0で生成されるベクトル要素間距離VIiの乗数
が、新たに連続する次のマスク・ベクトル・デー
タの先頭ビツト位置までの距離に対応することが
検出されると、制御装置20に報告され、以上の
一連の操作が終了する。アドレス生成部50に送
られる新たに連続する次のマスク・ベクトル・デ
ータの先頭ビツト位置までの距離に対応するベク
トル要素間距離VIiの乗数によつて生成される、
ベクトル要素のアドレスは、制御装置20の指令
により、記憶装置10へのオペランド・リクエス
トとしては使用されずに、ベクトル・アドレス・
レジスタ(51,52若しくは53)の値を新た
に連続する次のマスク・ベクトル・データの先頭
ビツト位置に対応するベクトル要素のアドレスに
更新する目的だけに使用される。 Referring again to FIG. mask vector
The data processing unit 40 receives the mask and
As described above, the vector data is counted by counting the number of operation inhibit bits ``0'' until the operation instruction bit ``1'' is found, and the obtained value is used as a multiplier of the vector element distance VIi to be used in the address generation section. 50. The multiplier for the inter-vector element distance VIi sent to the address generation unit 50 is determined by the multiplier 57.
An address difference is generated and sent to the address adder 58. The address adder 58 adds the address difference generated by the multiplier 57 and the vector operand address VHi of the corresponding vector operand selected by the selector S54 to obtain the address of the vector element to be operated on. is obtained, and an operand request for vector elements is sent to the storage device 10. At the same time, selector S51,5
The value of the vector address register (51, 52 or 53) of the corresponding vector operand is updated through either selector 2 or 53. When the storage device 10 receives an operand request for a vector element, in the case of a read request, the storage device 10 reads the corresponding vector element and sends it to the arithmetic unit 60 . Distance between one vector element
When the operand requests for the vector elements corresponding to operands 1, 2, and 3 have been sent to the storage device 10 for the multiplier of VIi, the new multiplier for the distance between vector elements VIi becomes the mask vector data. It is supplied from the processing section 40 to the address generation section 50. Mask vector data processing section 4
When it is detected that the multiplier of the vector element distance VIi generated at 0 corresponds to the distance to the first bit position of the next consecutive mask vector data, it is reported to the control device 20, and the above is performed. The series of operations ends. generated by the multiplier of the vector element distance VIi corresponding to the distance to the first bit position of the next consecutive mask vector data sent to the address generation unit 50.
The address of the vector element is not used as an operand request to the storage device 10 by command of the control device 20, but is used as a vector address.
It is used only for the purpose of updating the value of the register (51, 52 or 53) to the address of the vector element corresponding to the first bit position of the next consecutive mask vector data.
この動作と並行して、制御装置20は逐次処理
を実行すべく新たに連続する次のマスク・ベクト
ル・データを読み出すための指令を、マスク・ベ
クトル・データ読み出し部30に送出し、処理の
続行を開始する。 In parallel with this operation, the control device 20 sends a command to the mask vector data reading unit 30 to read out the next consecutive mask vector data to execute sequential processing, and continues processing. Start.
上述した従来のベクトル命令処理装置は、マス
ク・ベクトル・データ処理部で、一つのマスク・
ベクトル・データの処理が終了するのを待つてか
ら、次に処理すべき新たなマスク・ベクトル・デ
ータを記憶装置からフエツチしている。従つて、
マスク・ベクトル・データ処理部は、マスク・ベ
クトル・データが記憶装置から取出されマスク・
ベクトル・データ処理部に送出される迄、処理を
行えずに待たされ、これに伴い演算装置での処理
も、処理の行えない遊びの時間を生じ、記憶装置
のアクセス待ち時間による性能低下が著しくなる
という欠点がある。
The conventional vector instruction processing device described above has a mask vector data processing section that processes one mask vector instruction.
After waiting for vector data processing to finish, new mask vector data to be processed next is fetched from storage. Therefore,
The mask vector data processing unit retrieves the mask vector data from the storage device and processes the mask vector data.
The data has to wait without being processed until it is sent to the vector data processing unit, and as a result, the processing in the arithmetic unit has idle time during which processing cannot be performed, resulting in a significant drop in performance due to the wait time for accessing the storage device. It has the disadvantage of becoming.
本発明によれば、複数のマスク・ビツト列から
構成されるマスク・ベクトルを記憶する記憶装置
と、前記マスク・ベクトルを一定処理単位毎に区
切つたマスク・ベクトル・データを処理単位とし
て順次一括して処理するマスク・ベクトル・デー
タ処理部と、前記マスク・ベクトル・データを前
記記憶装置から読み出すマスク・ベクトル・デー
タ読み出し部とを含み、ベクトル要素毎にマス
ク・ビツトによつてベクトル演算の実行を制御す
るデータ処理装置において、逐次処理される前記
マスク・ベクトル・データのアドレスを保持する
マスク・ベクトル・データ・アドレス・レジス
タ、マスク・ベクトル・データの読み出しデータ
巾値を保持するマスク・ベクトル・データ読み出
しデータ巾レジスタおよび前記マスク・ベクト
ル・データ・アドレスとマスク・ベクトル・デー
タの読み出しデータ巾値とから、前記記憶装置上
の逐次処理されるべき、先行するマスク・ベクト
ル・データのアドレスを作成するアドレス加算器
を有し、前記記憶装置から該マスク・ベクトル・
データを次々と先行フエツチする前記マスク・ベ
クトル・データ読み出し部と、前記次々と先行フ
エツチされたマスク・ベクトル・データを蓄える
マスク・ベクトル・データ・バツフアとを含み、
前記マスク・ベクトル・データ処理部がマスク・
ベクトル・データを必要とした場合に前記マス
ク・ベクトル・データ・バツフアから該当マス
ク・ベクトル・データを前記マスク・ベクトル・
データ処理部に対して供給するようにしたことを
特徴とするベクトル命令処理装置が得られる。
According to the present invention, there is provided a storage device for storing mask vectors composed of a plurality of mask bit strings, and mask vector data obtained by dividing the mask vectors into fixed processing units, which are sequentially batched as processing units. a mask vector data processing unit for processing the mask vector data, and a mask vector data reading unit for reading the mask vector data from the storage device, and executes vector operations using mask bits for each vector element. In the data processing device to be controlled, a mask vector data address register that holds the address of the mask vector data that is sequentially processed, and a mask vector data that holds the read data width value of the mask vector data. creating an address of preceding mask vector data to be sequentially processed on the storage device from a read data width register and the mask vector data address and the read data width value of the mask vector data; an address adder, from the storage device to the mask vector;
the mask vector data reading unit for sequentially pre-fetching data; and the mask vector data buffer for storing the sequentially pre-fetched mask vector data;
The mask vector data processing section
When vector data is required, the corresponding mask vector data is transferred from the mask vector data buffer to the mask vector data buffer.
A vector instruction processing device is obtained, characterized in that the vector instruction processing device is supplied to a data processing section.
次に本発明の実施例について図面を参照して説
明する。
Next, embodiments of the present invention will be described with reference to the drawings.
第1図は本発明の一実施例であるベクトル命令
処理装置を示す。第1図において、本実施例は複
数のマスク・ビツト列から構成されるマスク・ベ
クトルを一定処理単位毎に区切つたマスク・ベク
トル・データの組として記憶する記憶装置10
と、該記憶装置10から次々と先行フエツチされ
た該マスク・ベクトル・データを蓄えるマスク・
ベクトル・データ・バツフア11と、前記マス
ク・ベクトル・データを読み出すマスク・ベクト
ル・データ読み出し部30aと、前記マスク・ベ
クトル・データを一括して処理するマスク・ベク
トル・データ処理部40とを含む。 FIG. 1 shows a vector instruction processing device which is an embodiment of the present invention. In FIG. 1, this embodiment uses a storage device 10 that stores mask vectors composed of a plurality of mask bit strings as sets of mask vector data divided into fixed processing units.
and a mask for storing the mask vector data fetched in advance from the storage device 10 one after another.
It includes a vector data buffer 11, a mask vector data reading section 30a that reads out the mask vector data, and a mask vector data processing section 40 that processes the mask vector data all at once.
記憶装置10は、複数のマスク・ベクトル・デ
ータで構成されるマスク・ベクトルや複数のベク
トル・オペランドのベクトル要素などが格納され
ている。マスク・ベクトル・データ・バツフア1
1は、複数のマスク・ベクトル・データの保持を
行う専用のデータ・バツフアである。マスク・ベ
クトル・データ処理部30aは逐次処理される先
行するマスク・ベクトル・データを読み出すため
のマスク・ベクトル・データ読み出し部であり、
セレクタS30と、マスク・ベクトル・データの
アドレスを保持するマスク・ベクトル・データ・
アドレス・レジスタ31と、マスク・ベクトル・
データの読み出しデータ巾値を保持する、マス
ク・ベクトル・データ読み出しデータ巾レジスタ
(以下読み出しデータ巾レジスタと略す)32と、
マスク・ベクトル・データ・アドレスレジスタ3
1の出力信号と読み出しデータ巾レジスタ32の
出力信号とを加算するアドレス加算器33とから
構成されている。 The storage device 10 stores mask vectors composed of a plurality of mask vector data, vector elements of a plurality of vector operands, and the like. Mask vector data buffer 1
1 is a dedicated data buffer that holds a plurality of mask vector data. The mask vector data processing section 30a is a mask vector data reading section for reading out preceding mask vector data that is sequentially processed,
Selector S30 and mask vector data holding the address of the mask vector data.
Address register 31 and mask vector
a mask vector data read data width register (hereinafter abbreviated as read data width register) 32 that holds a read data width value of data;
Mask vector data address register 3
The address adder 33 adds the output signal of 1 and the output signal of the read data width register 32.
更に本実施例は記憶装置10に、接続される演
算装置60と、マスク・ベクトル・データ処理部
40に接続されるアドレス生成部50と、マス
ク・ベクトル・データ・バツフア11の読み出し
ポインタ(以下マスク・ベクトル・データポイン
タと略す)70と、これらおよび各部を制御する
制御装置20とを有している。 Furthermore, this embodiment includes an arithmetic unit 60 connected to the storage device 10, an address generation unit 50 connected to the mask vector data processing unit 40, and a read pointer (hereinafter referred to as mask) of the mask vector data buffer 11.・Vector data pointer) 70, and a control device 20 that controls these and each part.
本実施例はマスク・ベクトルによる演算処理開
始の命令を受付けると、初期値の設定を行ない、
マスク・ベクトル・データ・アドレスレジスタ3
1にはセレクタS30を通じて処理を行うべき先
頭のマスク・ベクトル・データに対応するアドレ
スが設定され、読み出しデータ巾レジスタ32に
は初期加算値“0”が設定される。初期値が設定
されると同時に制御装置20の指令により、マス
ク・ベクトル・データ・アドレスレジスタ31の
初期値と読み出しデータ巾レジスタ32の初期加
算値“0”がアドレス加算器33で加算されて、
処理を行うべき先頭のマスク・ベクトル・データ
のアドレスが生成され、記憶装置10に対してマ
スク・ベクトル・データの読み出しリクエストが
出される。この時、同時に制御装置20は読み出
しデータ巾レジスタ32にマスク・ベクトル・デ
ータの読み出しデータ巾値を設定する。以後読み
出しデータ巾レジスタ32にはマスク・ベクト
ル・データの読み出しデータ巾値が保持される。
このマスク・ベクトル・データの読み出しデータ
巾値は、各ベクトル命令処理装置固有に、記憶装
置10から読み出される一つのデータ長対応に任
意に設定することができる。 When this embodiment receives an instruction to start arithmetic processing using a mask vector, it sets initial values,
Mask vector data address register 3
1 is set to the address corresponding to the first mask vector data to be processed through the selector S30, and the read data width register 32 is set to the initial addition value "0". At the same time as the initial value is set, the address adder 33 adds the initial value of the mask vector data address register 31 and the initial added value "0" of the read data width register 32 according to a command from the control device 20.
The address of the first mask vector data to be processed is generated, and a request to read the mask vector data is issued to the storage device 10. At this time, the control device 20 simultaneously sets the read data width value of the mask vector data in the read data width register 32. Thereafter, the read data width register 32 holds the read data width value of the mask vector data.
The read data width value of this mask vector data can be arbitrarily set to correspond to the length of one data read from the storage device 10, unique to each vector instruction processing device.
マスク・ベクトル・データの読み出しリクエス
トを受けた記憶装置10は該当アドレスから目的
とするマスク・ベクトル・データを読み出し、マ
スク・ベクトル・データ・バツフア11に送出す
る。マスク・ベクトル・データ・バツフア11は
そのマスク・ベクトル・データをマスク・ベクト
ル・データ処理部40が使用する時迄保持する。 Upon receiving the mask vector data read request, the storage device 10 reads the target mask vector data from the corresponding address and sends it to the mask vector data buffer 11. The mask vector data buffer 11 holds the mask vector data until the mask vector data processing section 40 uses it.
このように本実施例は処理を行うべき先頭のマ
スク・ベクトル・データのフエツチ動作を終了す
る。もともと、マスク・ベクトルは記憶装置10
上に連続に格納されており、そのマスク・ベクト
ルをある一定処理単位ごとに区切つたものがマス
ク・ベクトル・データであり、一定処理単位の大
きさはマスク・ベクトル・データの読み出しデー
タ巾値に対応させることができる。従つて一つの
マスク・ベクトル・データのアドレスに順次マス
ク・ベクトルデータの読み出しデータ巾値を足し
込んでいけば先行するマスク・ベクトル・データ
のアドレスが生成できる。処理を行うべき先頭の
マスク・ベクトル・データの読み出しリクエスト
が出されると、引続き制御装置20は新たに連続
するマスク・ベクトル・データを記憶装置10か
ら読み出すべく、マスク・ベクトル・データ・ア
ドレスレジスタ31の値と読み出しデータ巾レジ
スタ32に保持されているマスク・ベクトル・デ
ータの読み出しデータ巾値とをアドレス加算器3
3で加算を行い、新たに連続するマスク・ベクト
ル・データのアドレスを生成し、記憶装置10に
対して新たに連続するマスク・ベクトル・データ
の読み出しリクエストを送出する。これと、同時
に制御装置20はセレクタS30を通じて、マス
ク・ベクトル・データ・アドレスレジスタ31の
値を更新させる。 In this way, the present embodiment completes the fetch operation of the first mask vector data to be processed. Originally, the mask vector was stored in storage 10
The mask vector data is stored consecutively on the top, and the mask vector data is divided into certain processing units, and the size of the certain processing unit is determined by the read data width value of the mask vector data. It can be made to correspond. Therefore, by sequentially adding the read data width value of the mask vector data to the address of one mask vector data, the address of the preceding mask vector data can be generated. When a request to read the first mask vector data to be processed is issued, the control device 20 subsequently registers the mask vector data address register 31 in order to read new consecutive mask vector data from the storage device 10. address adder 3 and the read data width value of the mask vector data held in the read data width register 32.
3, the address of new continuous mask vector data is generated, and a read request for new continuous mask vector data is sent to the storage device 10. At the same time, the control device 20 updates the value of the mask vector data address register 31 through the selector S30.
この動作を繰返し、逐次処理されるべきマス
ク・ベクトル・データのフエツチが行なわれ、マ
スク・ベクトル・データ処理部40でマスク・ベ
クトル・データの使用要求が出される以前に、マ
スク・ベクトル・データ・バツフア11には複数
のマスク・ベクトル・データが蓄えられる。マス
ク・ベクトル・データ処理部40ではマスク・ベ
クトル・データの処理の為に、マスク・ベクト
ル・データが必要となつた場合には、制御装置2
0に対して、マスク・ベクトル・データの要求を
出す。この要求を受けた制御装置20は、マス
ク・ベクトル・データ・ポインタ70で示される
マスク・ベクトル・データ・バツフア11内の該
当位置から、蓄えられているマスク・ベクトル・
データをマスク・ベクトル・データ処理部40に
供給する。 By repeating this operation, the mask vector data to be sequentially processed is fetched, and before the mask vector data processing unit 40 issues a request to use the mask vector data, the mask vector data A plurality of mask vector data are stored in the buffer 11. In the mask vector data processing section 40, when mask vector data is required for processing the mask vector data, the control device 2
Issue a request for mask vector data to 0. Upon receiving this request, the control device 20 retrieves the stored mask vector data from the corresponding position in the mask vector data buffer 11 indicated by the mask vector data pointer 70.
The data is supplied to the mask vector data processing section 40.
該当マスク・ベクトル・データを供給し終る
と、制御装置20はマスク・ベクトル・データ・
ポインタ70の値をマスク・ベクトル・データ・
バツフア11内に蓄えられている次に使用される
べきマスク・ベクトル・データを指し示すように
更新する。 After supplying the corresponding mask vector data, the control device 20 supplies the mask vector data.
The value of pointer 70 is masked, vector data,
The mask vector data stored in the buffer 11 is updated to point to the mask vector data to be used next.
マスク・ベクトル・データ処理部40に供給さ
れたマスク・ベクトル・データは、マスク・ベク
トル・データ処理部40内で演算抑止ビツト
“0”の個数をカウントすることで、演算指示ビ
ツト“1”に対応する演算実行を指示されたベク
トル要素のアドレスのみを生成するためのベクト
ル要素間距離VIiの乗数を算出する処理が行われ
る訳であるが、以下の動作は従来技術の説明の項
で述べた動作と同じであり、又、本発明の要旨と
する所でないので説明は簡単に留める。 The mask vector data supplied to the mask vector data processing unit 40 is converted into an operation instruction bit “1” by counting the number of operation inhibit bits “0” in the mask vector data processing unit 40. A process is performed to calculate the multiplier of the distance VIi between vector elements in order to generate only the address of the vector element for which execution of the corresponding operation is instructed, and the following operation is described in the description of the conventional technology. Since the operation is the same as that of the first embodiment and is not the gist of the present invention, the explanation will be kept brief.
マスク・ベクトル・データ処理部40で算出さ
れたベクトル要素間距離VIiの乗数はアドレス生
成部50に送出され、目的とするベクトル要素の
アドレスが生成されて、記憶装置10に対してオ
ペランド・リクエストが送出される。記憶装置1
0は該当するベクトル要素を読み出し、演算装置
60に送出する。演算装置60は、あらかじめ出
されたオペランド・リクエストに対応する記憶装
置10上の該当位置に演算結果を格納する。 The multiplier of the vector element distance VIi calculated by the mask vector data processing unit 40 is sent to the address generation unit 50, which generates the address of the target vector element and sends an operand request to the storage device 10. Sent out. Storage device 1
0 reads the corresponding vector element and sends it to the arithmetic unit 60. The arithmetic device 60 stores the arithmetic result in the corresponding location on the storage device 10 corresponding to the operand request issued in advance.
以上の動作において、制御装置20は、マス
ク・ベクトル・データの先行フエツチとマスク・
ベクトル・データ処理部40に対するマスク・ベ
クトル・データの供給及び記憶装置10に対する
演算実行を指示されたベクトル要素のオペラン
ド・リクエストの送出を互いに独立且つ並行に行
われるように制御し、又、演算結果の記憶装置1
0への格納もこれら3つの動作と独立に行われる
ように制御する。 In the above operation, the control device 20 performs the preceding fetch of mask vector data and the mask vector data.
It controls the supply of mask vector data to the vector data processing unit 40 and the sending of operand requests for vector elements instructed to execute operations to the storage device 10 so that they are performed independently and in parallel, and also controls the operation results. storage device 1
The storage to 0 is also controlled to be performed independently of these three operations.
以上説明したように本発明は、マスク・ベクト
ル・データのアドレスとマスク・ベクトル・デー
タの読み出しデータ巾値とから、逐次処理される
べき先行するマスク・ベクトル・データのアドレ
スを作成し、マスク・ベクトル・データ処理部が
マスク・ベクトル・データを必要とする以前に
次々とマスク・ベクトル・データの先行フエツチ
を行い、専用のマスク・ベクトル・データ・バツ
フアに蓄えておき、マスク・ベクトル・データ処
理部がマスク・ベクトル・データを必要とした場
合に、該当するマスク・ベクトル・データをマス
ク・ベクトル・データ・バツフアよりマスク・ベ
クトル・データ処理部に対して高速に供給するこ
とを可能にすることにより、マスク・ベクトル・
データ処理部に於けるマスク・ベクトル・データ
待ち時間による遊びを最小限に抑えることがで
き、マスク・ベクトル・データの高速連続処理が
可能となる効果がある。又、それに伴い演算装置
に於けるベクトル要素待ち時間による遊びも大幅
に削減でき演算装置の使用効率をより向上させる
ことが可能となる効果がある。
As explained above, the present invention creates the address of preceding mask vector data to be sequentially processed from the address of the mask vector data and the read data width value of the mask vector data, and Before the vector data processing unit needs the mask vector data, the mask vector data is fetched one after another, stored in a dedicated mask vector data buffer, and then processed. To enable high-speed supply of corresponding mask vector data from a mask vector data buffer to a mask vector data processing section when the section requires the mask vector data. As a result, the mask vector
This has the effect that play due to mask vector data waiting time in the data processing section can be minimized, and high-speed continuous processing of mask vector data becomes possible. Additionally, the idle time due to vector element waiting time in the arithmetic unit can be significantly reduced, thereby making it possible to further improve the usage efficiency of the arithmetic unit.
第1図は本発明の一実施例を示すブロツク図、
第2図はマスク・ベクトルにより演算が制御され
処理が行われるFORTRANプログラムの例を示
す図、第3図は従来の装置を示すブロツク図、第
4図はマスク・ベクトル・データの処理過程と演
算指示ビツトに対応するベクトル要素のアドレス
生成手順を示した図である。
10……記憶装置、11……マスク・ベクト
ル・データ・バツフア、20……制御装置、30
a……マスク・ベクトル・データ読み出し部、4
0……マスク・ベクトル・データ処理部、50…
…アドレス生成部、60……演算装置、70……
マスク・ベクトル・データ読み出しポインタ、3
1……マスク・ベクトル・データ・アドレスレジ
スタ、32……マスク・ベクトル・データ読み出
しデータ巾レジスタ、51,52,53……ベク
トル・アドレスレジスタ、54,55,56……
ベクトル要素間距離レジスタ、33,58……ア
ドレス加算器、57……乗算器、S30,S5
0,S51,S52,S53,S54……セレク
タ。
FIG. 1 is a block diagram showing one embodiment of the present invention;
Figure 2 shows an example of a FORTRAN program whose calculations are controlled and processed by mask vectors, Figure 3 is a block diagram showing a conventional device, and Figure 4 shows the mask vector data processing process and calculations. FIG. 7 is a diagram showing a procedure for generating addresses of vector elements corresponding to instruction bits. 10...Storage device, 11...Mask vector data buffer, 20...Control device, 30
a...Mask vector data reading section, 4
0...Mask vector data processing unit, 50...
...address generation unit, 60... arithmetic unit, 70...
Mask vector data read pointer, 3
1...Mask vector data address register, 32...Mask vector data read data width register, 51, 52, 53...Vector address register, 54, 55, 56...
Vector element distance register, 33, 58... Address adder, 57... Multiplier, S30, S5
0, S51, S52, S53, S54...Selector.
Claims (1)
ク・ベクトルを記憶する記憶装置と、前記マス
ク・ベクトルを一定処理単位毎に区切つたマス
ク・ベクトル・データを処理単位として順次一括
して処理するマスク・ベクトル・データ処理部
と、前記マスク・ベクトル・データを前記記憶装
置から読み出すマスク・ベクトル・データ読み出
し部とを含み、ベクトル要素毎にマスク・ビツト
によつてベクトル演算の実行を制御するデータ処
理装置において、逐次処理される前記マスク・ベ
クトル・データのアドレスを保持するマスク・ベ
クトル・データ・アドレス・レジスタ、マスク・
ベクトル・データの読み出しデータ幅値を保持す
るマスク・ベクトル・データ読み出しデータ幅レ
ジスタおよび前記マスク・ベクトル・データ・ア
ドレスとマスク・ベクトル・データの読み出しデ
ータ幅値とから前記記憶装置上に逐次処理される
べき、先行するマスク・ベクトル・データのアド
レスを作成するアドレス加算器を有し、前記記憶
装置から該マスク・ベクトル・データを次々と先
行フエツチする前記マスク・ベクトル・データ読
み出し部と、前記次々と先行フエツチされたマス
ク・ベクトル・データを蓄えるマスク・ベクト
ル・データ・バツフアとを含み、前記マスク・ベ
クトル・データ処理部がマスク・ベクトル・デー
タを必要とした場合に前記マスク・ベクトル・デ
ータ・バツフアから該当マスク・ベクトル・デー
タを前記マスク・ベクトル・データ処理部に対し
て供給するようにしたことを特徴とするベクトル
命令処理装置。1. A storage device that stores mask vectors composed of a plurality of mask bit strings, and a mask vector that sequentially processes mask vector data in which the mask vectors are divided into fixed processing units as processing units. A data processing device that includes a vector data processing unit and a mask vector data reading unit that reads the mask vector data from the storage device, and controls execution of vector operations using mask bits for each vector element. a mask vector data address register that holds the address of the mask vector data to be processed sequentially;
A mask vector data read data width register holding a read data width value of vector data, and a mask vector data address and a read data width value of mask vector data sequentially processed onto the storage device. the mask vector data readout section, which has an address adder for creating an address of the preceding mask vector data to be read, and fetches the mask vector data one after another from the storage device; and a mask vector data buffer for storing previously fetched mask vector data, and when the mask vector data processing section requires mask vector data, the mask vector data buffer is stored. A vector instruction processing device characterized in that the mask vector data is supplied from a buffer to the mask vector data processing section.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6453485A JPS61221966A (en) | 1985-03-28 | 1985-03-28 | Vector instruction processor |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6453485A JPS61221966A (en) | 1985-03-28 | 1985-03-28 | Vector instruction processor |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS61221966A JPS61221966A (en) | 1986-10-02 |
| JPH0357499B2 true JPH0357499B2 (en) | 1991-09-02 |
Family
ID=13260982
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6453485A Granted JPS61221966A (en) | 1985-03-28 | 1985-03-28 | Vector instruction processor |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS61221966A (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8566496B2 (en) * | 2010-12-03 | 2013-10-22 | Lsi Corporation | Data prefetch in SAS expanders |
-
1985
- 1985-03-28 JP JP6453485A patent/JPS61221966A/en active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS61221966A (en) | 1986-10-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20250362913A1 (en) | Exposing valid byte lanes as vector predicates to cpu | |
| US4295193A (en) | Machine for multiple instruction execution | |
| US12461744B2 (en) | Streaming engine with early exit from loop levels supporting early exit loops and irregular loops | |
| JPS6131502B2 (en) | ||
| US4677547A (en) | Vector processor | |
| US4954947A (en) | Instruction processor for processing branch instruction at high speed | |
| JP2020502669A (en) | Vector generation instruction | |
| JP6493088B2 (en) | Arithmetic processing device and control method of arithmetic processing device | |
| JPH0683582A (en) | Data processing device | |
| JP2518293B2 (en) | Data Flow Processor | |
| US5390306A (en) | Pipeline processing system and microprocessor using the system | |
| US20200371793A1 (en) | Vector store using bit-reversed order | |
| US11275712B2 (en) | SIMD controller and SIMD predication scheme | |
| JPH0512751B2 (en) | ||
| JPS61221966A (en) | Vector instruction processor | |
| JPH0340422B2 (en) | ||
| JP2006515446A (en) | Data processing system with Cartesian controller that cross-references related applications | |
| JPS60241136A (en) | Data processor | |
| JPH0721796B2 (en) | Vector instruction processor | |
| JPH0517589B2 (en) | ||
| JP2000181705A (en) | Command controller | |
| JPH0418344B2 (en) | ||
| JPH0222417B2 (en) | ||
| JPS61139881A (en) | Vector processor | |
| JPH1063503A (en) | Arithmetic processor and its method |