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
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、ベクトル命令処理装置に関し、特に
ベクトル要素毎にマスク・ビツトによつてベクト
ル演算の実行を制御するベクトル命令処理装置に
関する。
ベクトル要素毎にマスク・ビツトによつてベクト
ル演算の実行を制御するベクトル命令処理装置に
関する。
従来のベクトル命令処理装置はベクトル・プロ
セサの処理能力をより高速に向上させるために、
より広範囲の種類の処理を高速に処理することが
必要で、とりわけ、FORTRANプログラムでIF
文を含むDOループをいかに高速に処理するかが
課題となつており、古くからマスク・ベクトルに
より演算を制御し、処理する方法が工夫されてい
る。
セサの処理能力をより高速に向上させるために、
より広範囲の種類の処理を高速に処理することが
必要で、とりわけ、FORTRANプログラムでIF
文を含むDOループをいかに高速に処理するかが
課題となつており、古くからマスク・ベクトルに
より演算を制御し、処理する方法が工夫されてい
る。
DOループのマスク・ベクトルによる演算の処
理過程の概念を第2図を参照して簡単に説明する
と、このDOループはベクトル・オペランドC(I)
とベクトル・オペランドC(I)の各ベクトル要素同
士の比較を行い、ベクトル・オペランドD(I)の値
より小なるベクトル・オペランドC(I)のベクトル
要素を、ベクトル・オペランドA(I),B(I)の対応
するベクトル要素同志の加算結果に置き換えるよ
うな処理をN組のベクトル要素について繰返す例
である。
理過程の概念を第2図を参照して簡単に説明する
と、このDOループはベクトル・オペランドC(I)
とベクトル・オペランドC(I)の各ベクトル要素同
士の比較を行い、ベクトル・オペランドD(I)の値
より小なるベクトル・オペランドC(I)のベクトル
要素を、ベクトル・オペランドA(I),B(I)の対応
するベクトル要素同志の加算結果に置き換えるよ
うな処理をN組のベクトル要素について繰返す例
である。
まずベクトル・オペランド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)のベクトル
要素は変化させない。
トル要素対応の比較を行い、C(I)>D(I)の場合は
“0”、C(I)<D(I)の場合は“1”の値を示すビツ
ト列を作成する。このビツト列がマスク・ベクト
ルであり、その各ビツトをマスク・ビツトと言
う。そして、この作成されたマスク・ベクトルに
従い、値が“1”であるマスク・ビツトに対応す
るベクトル・オペランドA(I),B(I)のベクトル要
素同志を加算し、結果をC(I)の対応するベクトル
要素に書き込む。それ以外のベクトル・オペラン
ドC(I)、つまり値が“0”であるマスク・ビツト
に対応するベクトル・オペランドC(I)のベクトル
要素は変化させない。
以上のようにして、マスク・ベクトルによる演
算の処理が行われる訳であるが、マスク・ベクト
ルの作成にあたつては、同種の比較器を複数組用
意することにより、一括して順次高速に作成する
ことが可能である。従つて、マスク・ベクトルに
よるベクトル演算を高速に処理するためには、一
括して順次作成されたマスク・ベクトルをいかに
高速に処理し、演算処理を実行するかが重要であ
る。
算の処理が行われる訳であるが、マスク・ベクト
ルの作成にあたつては、同種の比較器を複数組用
意することにより、一括して順次高速に作成する
ことが可能である。従つて、マスク・ベクトルに
よるベクトル演算を高速に処理するためには、一
括して順次作成されたマスク・ベクトルをいかに
高速に処理し、演算処理を実行するかが重要であ
る。
このために、従来のベクトル命令処理装置は第
3図に示すようにベクトル要素の読み出しリクエ
ストを要求する時点でマスク・ビツトによつて示
された有効なベクトル要素のみを読み出し、演算
を抑止されるベクトル要素の読み出しを抑止する
ことで、無効な演算を飛ばすようにしたベクトル
命令処理装置がある。
3図に示すようにベクトル要素の読み出しリクエ
ストを要求する時点でマスク・ビツトによつて示
された有効なベクトル要素のみを読み出し、演算
を抑止されるベクトル要素の読み出しを抑止する
ことで、無効な演算を飛ばすようにしたベクトル
命令処理装置がある。
この従来のベクトル命令処理装置においては処
理されるべきベクトル要素の要素数分に対応する
個数のマスク・ビツト列から構成されているマス
ク・ベクトルをある一定処理単位ごとに区切り、
その一定処理単位ごとに区切つたマスク・ベクト
ル(以下、マスク・ベクトル・データと呼ぶ)を
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
においては、マスク・ベクトル・データをもとに
処理が行われる。
理されるべきベクトル要素の要素数分に対応する
個数のマスク・ビツト列から構成されているマス
ク・ベクトルをある一定処理単位ごとに区切り、
その一定処理単位ごとに区切つたマスク・ベクト
ル(以下、マスク・ベクトル・データと呼ぶ)を
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
においては、マスク・ベクトル・データをもとに
処理が行われる。
第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 で得られる。
程と演算指示ビツトに対応するベクトル要素のア
ドレス生成手順を表わしたものである。一つのベ
クトル命令内では、ベクトル・オペランド・アド
レス(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 で得られる。
以上の操作をm回繰返すことで、第4図cに示
されるような第4図aの(n−3)ビツト目の演
算指示ビツト“1”が反転を受けて先頭のビツト
位置にシフトされたマスク・ベクトル・データが
得られる。この第4図cのマスク・ベクトル・デ
ータに対して、もう一度同じ操作を行つて得られ
る乗数4を用いて得られるベクトル要素のアドレ
ス(VHi,0′) VHi,0′=VHi,o-3+4×VIi は、新たに連続する次のマスク・ベクトル・デー
タの先頭ビツトに対応するベクトル要素のアドレ
スである。
されるような第4図aの(n−3)ビツト目の演
算指示ビツト“1”が反転を受けて先頭のビツト
位置にシフトされたマスク・ベクトル・データが
得られる。この第4図cのマスク・ベクトル・デ
ータに対して、もう一度同じ操作を行つて得られ
る乗数4を用いて得られるベクトル要素のアドレ
ス(VHi,0′) VHi,0′=VHi,o-3+4×VIi は、新たに連続する次のマスク・ベクトル・デー
タの先頭ビツトに対応するベクトル要素のアドレ
スである。
以上の操作は、各々の操作で得られる乗数を毎
回加算し、得られた加算値結果が読み出されたマ
スク・ベクトル・データのビツト長(n+1)と
一致するまで繰返され、一致を検出すると、一つ
のマスク・ベクトル・データの処理を終了する。
回加算し、得られた加算値結果が読み出されたマ
スク・ベクトル・データのビツト長(n+1)と
一致するまで繰返され、一致を検出すると、一つ
のマスク・ベクトル・データの処理を終了する。
再び、第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)の値を新た
に連続する次のマスク・ベクトル・データの先頭
ビツト位置に対応するベクトル要素のアドレスに
更新する目的だけに使用される。
データ処理部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)の値を新た
に連続する次のマスク・ベクトル・データの先頭
ビツト位置に対応するベクトル要素のアドレスに
更新する目的だけに使用される。
この動作と並行して、制御装置20は逐次処理
を実行すべく新たに連続する次のマスク・ベクト
ル・データを読み出すための指令を、マスク・ベ
クトル・データ読み出し部30に送出し、処理の
続行を開始する。
を実行すべく新たに連続する次のマスク・ベクト
ル・データを読み出すための指令を、マスク・ベ
クトル・データ読み出し部30に送出し、処理の
続行を開始する。
上述した従来のベクトル命令処理装置は、マス
ク・ベクトル・データ処理部で、一つのマスク・
ベクトル・データの処理が終了するのを待つてか
ら、次に処理すべき新たなマスク・ベクトル・デ
ータを記憶装置からフエツチしている。従つて、
マスク・ベクトル・データ処理部は、マスク・ベ
クトル・データが記憶装置から取出されマスク・
ベクトル・データ処理部に送出される迄、処理を
行えずに待たされ、これに伴い演算装置での処理
も、処理の行えない遊びの時間を生じ、記憶装置
のアクセス待ち時間による性能低下が著しくなる
という欠点がある。
ク・ベクトル・データ処理部で、一つのマスク・
ベクトル・データの処理が終了するのを待つてか
ら、次に処理すべき新たなマスク・ベクトル・デ
ータを記憶装置からフエツチしている。従つて、
マスク・ベクトル・データ処理部は、マスク・ベ
クトル・データが記憶装置から取出されマスク・
ベクトル・データ処理部に送出される迄、処理を
行えずに待たされ、これに伴い演算装置での処理
も、処理の行えない遊びの時間を生じ、記憶装置
のアクセス待ち時間による性能低下が著しくなる
という欠点がある。
本発明によれば、複数のマスク・ビツト列から
構成されるマスク・ベクトルを記憶する記憶装置
と、前記マスク・ベクトルを一定処理単位毎に区
切つたマスク・ベクトル・データを処理単位とし
て順次一括して処理するマスク・ベクトル・デー
タ処理部と、前記マスク・ベクトル・データを前
記記憶装置から読み出すマスク・ベクトル・デー
タ読み出し部とを含み、ベクトル要素毎にマス
ク・ビツトによつてベクトル演算の実行を制御す
るデータ処理装置において、逐次処理される前記
マスク・ベクトル・データのアドレスを保持する
マスク・ベクトル・データ・アドレス・レジス
タ、マスク・ベクトル・データの読み出しデータ
巾値を保持するマスク・ベクトル・データ読み出
しデータ巾レジスタおよび前記マスク・ベクト
ル・データ・アドレスとマスク・ベクトル・デー
タの読み出しデータ巾値とから、前記記憶装置上
の逐次処理されるべき、先行するマスク・ベクト
ル・データのアドレスを作成するアドレス加算器
を有し、前記記憶装置から該マスク・ベクトル・
データを次々と先行フエツチする前記マスク・ベ
クトル・データ読み出し部と、前記次々と先行フ
エツチされたマスク・ベクトル・データを蓄える
マスク・ベクトル・データ・バツフアとを含み、
前記マスク・ベクトル・データ処理部がマスク・
ベクトル・データを必要とした場合に前記マス
ク・ベクトル・データ・バツフアから該当マス
ク・ベクトル・データを前記マスク・ベクトル・
データ処理部に対して供給するようにしたことを
特徴とするベクトル命令処理装置が得られる。
構成されるマスク・ベクトルを記憶する記憶装置
と、前記マスク・ベクトルを一定処理単位毎に区
切つたマスク・ベクトル・データを処理単位とし
て順次一括して処理するマスク・ベクトル・デー
タ処理部と、前記マスク・ベクトル・データを前
記記憶装置から読み出すマスク・ベクトル・デー
タ読み出し部とを含み、ベクトル要素毎にマス
ク・ビツトによつてベクトル演算の実行を制御す
るデータ処理装置において、逐次処理される前記
マスク・ベクトル・データのアドレスを保持する
マスク・ベクトル・データ・アドレス・レジス
タ、マスク・ベクトル・データの読み出しデータ
巾値を保持するマスク・ベクトル・データ読み出
しデータ巾レジスタおよび前記マスク・ベクト
ル・データ・アドレスとマスク・ベクトル・デー
タの読み出しデータ巾値とから、前記記憶装置上
の逐次処理されるべき、先行するマスク・ベクト
ル・データのアドレスを作成するアドレス加算器
を有し、前記記憶装置から該マスク・ベクトル・
データを次々と先行フエツチする前記マスク・ベ
クトル・データ読み出し部と、前記次々と先行フ
エツチされたマスク・ベクトル・データを蓄える
マスク・ベクトル・データ・バツフアとを含み、
前記マスク・ベクトル・データ処理部がマスク・
ベクトル・データを必要とした場合に前記マス
ク・ベクトル・データ・バツフアから該当マス
ク・ベクトル・データを前記マスク・ベクトル・
データ処理部に対して供給するようにしたことを
特徴とするベクトル命令処理装置が得られる。
次に本発明の実施例について図面を参照して説
明する。
明する。
第1図は本発明の一実施例であるベクトル命令
処理装置を示す。第1図において、本実施例は複
数のマスク・ビツト列から構成されるマスク・ベ
クトルを一定処理単位毎に区切つたマスク・ベク
トル・データの組として記憶する記憶装置10
と、該記憶装置10から次々と先行フエツチされ
た該マスク・ベクトル・データを蓄えるマスク・
ベクトル・データ・バツフア11と、前記マス
ク・ベクトル・データを読み出すマスク・ベクト
ル・データ読み出し部30aと、前記マスク・ベ
クトル・データを一括して処理するマスク・ベク
トル・データ処理部40とを含む。
処理装置を示す。第1図において、本実施例は複
数のマスク・ビツト列から構成されるマスク・ベ
クトルを一定処理単位毎に区切つたマスク・ベク
トル・データの組として記憶する記憶装置10
と、該記憶装置10から次々と先行フエツチされ
た該マスク・ベクトル・データを蓄えるマスク・
ベクトル・データ・バツフア11と、前記マス
ク・ベクトル・データを読み出すマスク・ベクト
ル・データ読み出し部30aと、前記マスク・ベ
クトル・データを一括して処理するマスク・ベク
トル・データ処理部40とを含む。
記憶装置10は、複数のマスク・ベクトル・デ
ータで構成されるマスク・ベクトルや複数のベク
トル・オペランドのベクトル要素などが格納され
ている。マスク・ベクトル・データ・バツフア1
1は、複数のマスク・ベクトル・データの保持を
行う専用のデータ・バツフアである。マスク・ベ
クトル・データ処理部30aは逐次処理される先
行するマスク・ベクトル・データを読み出すため
のマスク・ベクトル・データ読み出し部であり、
セレクタS30と、マスク・ベクトル・データの
アドレスを保持するマスク・ベクトル・データ・
アドレス・レジスタ31と、マスク・ベクトル・
データの読み出しデータ巾値を保持する、マス
ク・ベクトル・データ読み出しデータ巾レジスタ
(以下読み出しデータ巾レジスタと略す)32と、
マスク・ベクトル・データ・アドレスレジスタ3
1の出力信号と読み出しデータ巾レジスタ32の
出力信号とを加算するアドレス加算器33とから
構成されている。
ータで構成されるマスク・ベクトルや複数のベク
トル・オペランドのベクトル要素などが格納され
ている。マスク・ベクトル・データ・バツフア1
1は、複数のマスク・ベクトル・データの保持を
行う専用のデータ・バツフアである。マスク・ベ
クトル・データ処理部30aは逐次処理される先
行するマスク・ベクトル・データを読み出すため
のマスク・ベクトル・データ読み出し部であり、
セレクタS30と、マスク・ベクトル・データの
アドレスを保持するマスク・ベクトル・データ・
アドレス・レジスタ31と、マスク・ベクトル・
データの読み出しデータ巾値を保持する、マス
ク・ベクトル・データ読み出しデータ巾レジスタ
(以下読み出しデータ巾レジスタと略す)32と、
マスク・ベクトル・データ・アドレスレジスタ3
1の出力信号と読み出しデータ巾レジスタ32の
出力信号とを加算するアドレス加算器33とから
構成されている。
更に本実施例は記憶装置10に、接続される演
算装置60と、マスク・ベクトル・データ処理部
40に接続されるアドレス生成部50と、マス
ク・ベクトル・データ・バツフア11の読み出し
ポインタ(以下マスク・ベクトル・データポイン
タと略す)70と、これらおよび各部を制御する
制御装置20とを有している。
算装置60と、マスク・ベクトル・データ処理部
40に接続されるアドレス生成部50と、マス
ク・ベクトル・データ・バツフア11の読み出し
ポインタ(以下マスク・ベクトル・データポイン
タと略す)70と、これらおよび各部を制御する
制御装置20とを有している。
本実施例はマスク・ベクトルによる演算処理開
始の命令を受付けると、初期値の設定を行ない、
マスク・ベクトル・データ・アドレスレジスタ3
1にはセレクタS30を通じて処理を行うべき先
頭のマスク・ベクトル・データに対応するアドレ
スが設定され、読み出しデータ巾レジスタ32に
は初期加算値“0”が設定される。初期値が設定
されると同時に制御装置20の指令により、マス
ク・ベクトル・データ・アドレスレジスタ31の
初期値と読み出しデータ巾レジスタ32の初期加
算値“0”がアドレス加算器33で加算されて、
処理を行うべき先頭のマスク・ベクトル・データ
のアドレスが生成され、記憶装置10に対してマ
スク・ベクトル・データの読み出しリクエストが
出される。この時、同時に制御装置20は読み出
しデータ巾レジスタ32にマスク・ベクトル・デ
ータの読み出しデータ巾値を設定する。以後読み
出しデータ巾レジスタ32にはマスク・ベクト
ル・データの読み出しデータ巾値が保持される。
このマスク・ベクトル・データの読み出しデータ
巾値は、各ベクトル命令処理装置固有に、記憶装
置10から読み出される一つのデータ長対応に任
意に設定することができる。
始の命令を受付けると、初期値の設定を行ない、
マスク・ベクトル・データ・アドレスレジスタ3
1にはセレクタS30を通じて処理を行うべき先
頭のマスク・ベクトル・データに対応するアドレ
スが設定され、読み出しデータ巾レジスタ32に
は初期加算値“0”が設定される。初期値が設定
されると同時に制御装置20の指令により、マス
ク・ベクトル・データ・アドレスレジスタ31の
初期値と読み出しデータ巾レジスタ32の初期加
算値“0”がアドレス加算器33で加算されて、
処理を行うべき先頭のマスク・ベクトル・データ
のアドレスが生成され、記憶装置10に対してマ
スク・ベクトル・データの読み出しリクエストが
出される。この時、同時に制御装置20は読み出
しデータ巾レジスタ32にマスク・ベクトル・デ
ータの読み出しデータ巾値を設定する。以後読み
出しデータ巾レジスタ32にはマスク・ベクト
ル・データの読み出しデータ巾値が保持される。
このマスク・ベクトル・データの読み出しデータ
巾値は、各ベクトル命令処理装置固有に、記憶装
置10から読み出される一つのデータ長対応に任
意に設定することができる。
マスク・ベクトル・データの読み出しリクエス
トを受けた記憶装置10は該当アドレスから目的
とするマスク・ベクトル・データを読み出し、マ
スク・ベクトル・データ・バツフア11に送出す
る。マスク・ベクトル・データ・バツフア11は
そのマスク・ベクトル・データをマスク・ベクト
ル・データ処理部40が使用する時迄保持する。
トを受けた記憶装置10は該当アドレスから目的
とするマスク・ベクトル・データを読み出し、マ
スク・ベクトル・データ・バツフア11に送出す
る。マスク・ベクトル・データ・バツフア11は
そのマスク・ベクトル・データをマスク・ベクト
ル・データ処理部40が使用する時迄保持する。
このように本実施例は処理を行うべき先頭のマ
スク・ベクトル・データのフエツチ動作を終了す
る。もともと、マスク・ベクトルは記憶装置10
上に連続に格納されており、そのマスク・ベクト
ルをある一定処理単位ごとに区切つたものがマス
ク・ベクトル・データであり、一定処理単位の大
きさはマスク・ベクトル・データの読み出しデー
タ巾値に対応させることができる。従つて一つの
マスク・ベクトル・データのアドレスに順次マス
ク・ベクトルデータの読み出しデータ巾値を足し
込んでいけば先行するマスク・ベクトル・データ
のアドレスが生成できる。処理を行うべき先頭の
マスク・ベクトル・データの読み出しリクエスト
が出されると、引続き制御装置20は新たに連続
するマスク・ベクトル・データを記憶装置10か
ら読み出すべく、マスク・ベクトル・データ・ア
ドレスレジスタ31の値と読み出しデータ巾レジ
スタ32に保持されているマスク・ベクトル・デ
ータの読み出しデータ巾値とをアドレス加算器3
3で加算を行い、新たに連続するマスク・ベクト
ル・データのアドレスを生成し、記憶装置10に
対して新たに連続するマスク・ベクトル・データ
の読み出しリクエストを送出する。これと、同時
に制御装置20はセレクタS30を通じて、マス
ク・ベクトル・データ・アドレスレジスタ31の
値を更新させる。
スク・ベクトル・データのフエツチ動作を終了す
る。もともと、マスク・ベクトルは記憶装置10
上に連続に格納されており、そのマスク・ベクト
ルをある一定処理単位ごとに区切つたものがマス
ク・ベクトル・データであり、一定処理単位の大
きさはマスク・ベクトル・データの読み出しデー
タ巾値に対応させることができる。従つて一つの
マスク・ベクトル・データのアドレスに順次マス
ク・ベクトルデータの読み出しデータ巾値を足し
込んでいけば先行するマスク・ベクトル・データ
のアドレスが生成できる。処理を行うべき先頭の
マスク・ベクトル・データの読み出しリクエスト
が出されると、引続き制御装置20は新たに連続
するマスク・ベクトル・データを記憶装置10か
ら読み出すべく、マスク・ベクトル・データ・ア
ドレスレジスタ31の値と読み出しデータ巾レジ
スタ32に保持されているマスク・ベクトル・デ
ータの読み出しデータ巾値とをアドレス加算器3
3で加算を行い、新たに連続するマスク・ベクト
ル・データのアドレスを生成し、記憶装置10に
対して新たに連続するマスク・ベクトル・データ
の読み出しリクエストを送出する。これと、同時
に制御装置20はセレクタS30を通じて、マス
ク・ベクトル・データ・アドレスレジスタ31の
値を更新させる。
この動作を繰返し、逐次処理されるべきマス
ク・ベクトル・データのフエツチが行なわれ、マ
スク・ベクトル・データ処理部40でマスク・ベ
クトル・データの使用要求が出される以前に、マ
スク・ベクトル・データ・バツフア11には複数
のマスク・ベクトル・データが蓄えられる。マス
ク・ベクトル・データ処理部40ではマスク・ベ
クトル・データの処理の為に、マスク・ベクト
ル・データが必要となつた場合には、制御装置2
0に対して、マスク・ベクトル・データの要求を
出す。この要求を受けた制御装置20は、マス
ク・ベクトル・データ・ポインタ70で示される
マスク・ベクトル・データ・バツフア11内の該
当位置から、蓄えられているマスク・ベクトル・
データをマスク・ベクトル・データ処理部40に
供給する。
ク・ベクトル・データのフエツチが行なわれ、マ
スク・ベクトル・データ処理部40でマスク・ベ
クトル・データの使用要求が出される以前に、マ
スク・ベクトル・データ・バツフア11には複数
のマスク・ベクトル・データが蓄えられる。マス
ク・ベクトル・データ処理部40ではマスク・ベ
クトル・データの処理の為に、マスク・ベクト
ル・データが必要となつた場合には、制御装置2
0に対して、マスク・ベクトル・データの要求を
出す。この要求を受けた制御装置20は、マス
ク・ベクトル・データ・ポインタ70で示される
マスク・ベクトル・データ・バツフア11内の該
当位置から、蓄えられているマスク・ベクトル・
データをマスク・ベクトル・データ処理部40に
供給する。
該当マスク・ベクトル・データを供給し終る
と、制御装置20はマスク・ベクトル・データ・
ポインタ70の値をマスク・ベクトル・データ・
バツフア11内に蓄えられている次に使用される
べきマスク・ベクトル・データを指し示すように
更新する。
と、制御装置20はマスク・ベクトル・データ・
ポインタ70の値をマスク・ベクトル・データ・
バツフア11内に蓄えられている次に使用される
べきマスク・ベクトル・データを指し示すように
更新する。
マスク・ベクトル・データ処理部40に供給さ
れたマスク・ベクトル・データは、マスク・ベク
トル・データ処理部40内で演算抑止ビツト
“0”の個数をカウントすることで、演算指示ビ
ツト“1”に対応する演算実行を指示されたベク
トル要素のアドレスのみを生成するためのベクト
ル要素間距離VIiの乗数を算出する処理が行われ
る訳であるが、以下の動作は従来技術の説明の項
で述べた動作と同じであり、又、本発明の要旨と
する所でないので説明は簡単に留める。
れたマスク・ベクトル・データは、マスク・ベク
トル・データ処理部40内で演算抑止ビツト
“0”の個数をカウントすることで、演算指示ビ
ツト“1”に対応する演算実行を指示されたベク
トル要素のアドレスのみを生成するためのベクト
ル要素間距離VIiの乗数を算出する処理が行われ
る訳であるが、以下の動作は従来技術の説明の項
で述べた動作と同じであり、又、本発明の要旨と
する所でないので説明は簡単に留める。
マスク・ベクトル・データ処理部40で算出さ
れたベクトル要素間距離VIiの乗数はアドレス生
成部50に送出され、目的とするベクトル要素の
アドレスが生成されて、記憶装置10に対してオ
ペランド・リクエストが送出される。記憶装置1
0は該当するベクトル要素を読み出し、演算装置
60に送出する。演算装置60は、あらかじめ出
されたオペランド・リクエストに対応する記憶装
置10上の該当位置に演算結果を格納する。
れたベクトル要素間距離VIiの乗数はアドレス生
成部50に送出され、目的とするベクトル要素の
アドレスが生成されて、記憶装置10に対してオ
ペランド・リクエストが送出される。記憶装置1
0は該当するベクトル要素を読み出し、演算装置
60に送出する。演算装置60は、あらかじめ出
されたオペランド・リクエストに対応する記憶装
置10上の該当位置に演算結果を格納する。
以上の動作において、制御装置20は、マス
ク・ベクトル・データの先行フエツチとマスク・
ベクトル・データ処理部40に対するマスク・ベ
クトル・データの供給及び記憶装置10に対する
演算実行を指示されたベクトル要素のオペラン
ド・リクエストの送出を互いに独立且つ並行に行
われるように制御し、又、演算結果の記憶装置1
0への格納もこれら3つの動作と独立に行われる
ように制御する。
ク・ベクトル・データの先行フエツチとマスク・
ベクトル・データ処理部40に対するマスク・ベ
クトル・データの供給及び記憶装置10に対する
演算実行を指示されたベクトル要素のオペラン
ド・リクエストの送出を互いに独立且つ並行に行
われるように制御し、又、演算結果の記憶装置1
0への格納もこれら3つの動作と独立に行われる
ように制御する。
以上説明したように本発明は、マスク・ベクト
ル・データのアドレスとマスク・ベクトル・デー
タの読み出しデータ巾値とから、逐次処理される
べき先行するマスク・ベクトル・データのアドレ
スを作成し、マスク・ベクトル・データ処理部が
マスク・ベクトル・データを必要とする以前に
次々とマスク・ベクトル・データの先行フエツチ
を行い、専用のマスク・ベクトル・データ・バツ
フアに蓄えておき、マスク・ベクトル・データ処
理部がマスク・ベクトル・データを必要とした場
合に、該当するマスク・ベクトル・データをマス
ク・ベクトル・データ・バツフアよりマスク・ベ
クトル・データ処理部に対して高速に供給するこ
とを可能にすることにより、マスク・ベクトル・
データ処理部に於けるマスク・ベクトル・データ
待ち時間による遊びを最小限に抑えることがで
き、マスク・ベクトル・データの高速連続処理が
可能となる効果がある。又、それに伴い演算装置
に於けるベクトル要素待ち時間による遊びも大幅
に削減でき演算装置の使用効率をより向上させる
ことが可能となる効果がある。
ル・データのアドレスとマスク・ベクトル・デー
タの読み出しデータ巾値とから、逐次処理される
べき先行するマスク・ベクトル・データのアドレ
スを作成し、マスク・ベクトル・データ処理部が
マスク・ベクトル・データを必要とする以前に
次々とマスク・ベクトル・データの先行フエツチ
を行い、専用のマスク・ベクトル・データ・バツ
フアに蓄えておき、マスク・ベクトル・データ処
理部がマスク・ベクトル・データを必要とした場
合に、該当するマスク・ベクトル・データをマス
ク・ベクトル・データ・バツフアよりマスク・ベ
クトル・データ処理部に対して高速に供給するこ
とを可能にすることにより、マスク・ベクトル・
データ処理部に於けるマスク・ベクトル・データ
待ち時間による遊びを最小限に抑えることがで
き、マスク・ベクトル・データの高速連続処理が
可能となる効果がある。又、それに伴い演算装置
に於けるベクトル要素待ち時間による遊びも大幅
に削減でき演算装置の使用効率をより向上させる
ことが可能となる効果がある。
第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……セレク
タ。
第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……セレク
タ。
Claims (1)
- 1 複数のマスク・ビツト列から構成されるマス
ク・ベクトルを記憶する記憶装置と、前記マス
ク・ベクトルを一定処理単位毎に区切つたマス
ク・ベクトル・データを処理単位として順次一括
して処理するマスク・ベクトル・データ処理部
と、前記マスク・ベクトル・データを前記記憶装
置から読み出すマスク・ベクトル・データ読み出
し部とを含み、ベクトル要素毎にマスク・ビツト
によつてベクトル演算の実行を制御するデータ処
理装置において、逐次処理される前記マスク・ベ
クトル・データのアドレスを保持するマスク・ベ
クトル・データ・アドレス・レジスタ、マスク・
ベクトル・データの読み出しデータ幅値を保持す
るマスク・ベクトル・データ読み出しデータ幅レ
ジスタおよび前記マスク・ベクトル・データ・ア
ドレスとマスク・ベクトル・データの読み出しデ
ータ幅値とから前記記憶装置上に逐次処理される
べき、先行するマスク・ベクトル・データのアド
レスを作成するアドレス加算器を有し、前記記憶
装置から該マスク・ベクトル・データを次々と先
行フエツチする前記マスク・ベクトル・データ読
み出し部と、前記次々と先行フエツチされたマス
ク・ベクトル・データを蓄えるマスク・ベクト
ル・データ・バツフアとを含み、前記マスク・ベ
クトル・データ処理部がマスク・ベクトル・デー
タを必要とした場合に前記マスク・ベクトル・デ
ータ・バツフアから該当マスク・ベクトル・デー
タを前記マスク・ベクトル・データ処理部に対し
て供給するようにしたことを特徴とするベクトル
命令処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6453485A JPS61221966A (ja) | 1985-03-28 | 1985-03-28 | ベクトル命令処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6453485A JPS61221966A (ja) | 1985-03-28 | 1985-03-28 | ベクトル命令処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS61221966A JPS61221966A (ja) | 1986-10-02 |
| JPH0357499B2 true JPH0357499B2 (ja) | 1991-09-02 |
Family
ID=13260982
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6453485A Granted JPS61221966A (ja) | 1985-03-28 | 1985-03-28 | ベクトル命令処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS61221966A (ja) |
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/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS61221966A (ja) | 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 (ja) | ||
| US4677547A (en) | Vector processor | |
| US4954947A (en) | Instruction processor for processing branch instruction at high speed | |
| JP2020502669A (ja) | ベクトル生成命令 | |
| JP6493088B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
| JPH0683582A (ja) | データ演算装置 | |
| US6785743B1 (en) | Template data transfer coprocessor | |
| JP2518293B2 (ja) | デ−タフロ−プロセツサ | |
| US5390306A (en) | Pipeline processing system and microprocessor using the system | |
| JPH0357499B2 (ja) | ||
| US11275712B2 (en) | SIMD controller and SIMD predication scheme | |
| US20200371793A1 (en) | Vector store using bit-reversed order | |
| JPH0340422B2 (ja) | ||
| JP2006515446A (ja) | 関連アプリケーションを相互参照するカルテシアンコントローラを有するデータ処理システム | |
| JP3278441B2 (ja) | ベクトル処理装置 | |
| JPS60241136A (ja) | デ−タ処理装置 | |
| JPH0721796B2 (ja) | ベクトル命令処理装置 | |
| JPH0517589B2 (ja) | ||
| JPH0418344B2 (ja) | ||
| JPS61139881A (ja) | ベクトル処理装置 | |
| JPH1063503A (ja) | 演算処理装置及び演算処理方法 | |
| JPH0256027A (ja) | ディジタルシグナルプロセッサの並列処理方式 |