JPH0644292A - ベクトル処理装置 - Google Patents

ベクトル処理装置

Info

Publication number
JPH0644292A
JPH0644292A JP4158412A JP15841292A JPH0644292A JP H0644292 A JPH0644292 A JP H0644292A JP 4158412 A JP4158412 A JP 4158412A JP 15841292 A JP15841292 A JP 15841292A JP H0644292 A JPH0644292 A JP H0644292A
Authority
JP
Japan
Prior art keywords
vector
data
mask
stored
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP4158412A
Other languages
English (en)
Other versions
JP2665111B2 (ja
Inventor
Takeshi Nishikawa
岳 西川
Yoko Isobe
洋子 磯部
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.)
NEC Corp
NEC Computertechno Ltd
Original Assignee
NEC Corp
NEC Computertechno 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
Priority to JP4158412A priority Critical patent/JP2665111B2/ja
Application filed by NEC Corp, NEC Computertechno Ltd filed Critical NEC Corp
Priority to DE69332458T priority patent/DE69332458T2/de
Priority to CA002098674A priority patent/CA2098674C/en
Priority to EP99101058A priority patent/EP0926603B1/en
Priority to EP93109683A priority patent/EP0574909B1/en
Priority to DE69329630T priority patent/DE69329630T2/de
Priority to US08/077,739 priority patent/US5511210A/en
Publication of JPH0644292A publication Critical patent/JPH0644292A/ja
Application granted granted Critical
Publication of JP2665111B2 publication Critical patent/JP2665111B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • G06F15/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Abstract

(57)【要約】 (修正有) 【目的】 IF文内のリストベクトル処理の場合に、マ
スク付きリストベクトル命令を実現して補助操作を不要
にし、更に主記憶部へのアクセスを減らして高速にマス
ク付きリストベクトル命令を処理する。 【構成】 条件付き命令を処理する際のマスク情報を格
納するベクトル制御レジスタ3と、主記憶制御部6内
に、ベクトルレジスタ2−1〜8に格納されている主記
憶部7をアクセスするためのアドレス情報登録手段9
と、ベクトル制御レジスタ3の内容を保持するマスク登
録手段8と、アドレス情報登録手段9のアドレスで主記
憶部7をアクセスし得たデータを一時保持しておくロー
ドデータ格納手段11とを設け、ロードデータ格納手段
11のデータとマスク登録手段8のマスクデータをベク
トル処理部1に送出しマスクデータの内容でベクトルレ
ジスタ2−1〜8にロードデータを格納してマスク付き
リストベクトルロードを実現するベクトル処理装置。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はベクトル処理装置に関す
る。
【0002】
【従来の技術】従来、IF文処理の中にリストベクトル
命令が出現する際に、マスク付きリストベクトルを処理
する手段がなかった為、マスク付ベクトル演算、ベクト
ル縮退、ベクトル展開命令を用いてIF文を処理してい
た。
【0003】ここで、ベクトル縮退命令とは図5に示す
ように、ベクトルデータA(a1,a2,a3,a4,
a5)のうちベクトル制御レジスタM(1、0、1、
0、1)のマスクビットが“1”の部分の要素だけを収
集し、ベクトルデータB(b1,b2,b3,b4,b
5)の最初の方からオーバーライトし、ベクトルレジス
タの余ったところはベクトルデータBのデータを残すこ
とによってベクトルデータB1(a1,a3,a5,b
4,b5)を生成する命令のことで以後、VCP(Vecto
r Compress)と呼ぶ。
【0004】また、ベクトル展開命令とは図6に示すよ
うに、ベクトル制御レジスタM(1、0、1、0、1)
のマスクビットが“1”の部分にベクトルデータA(a
1,a2,a3,a4,a5)をベクトルデータB(b
1,b2,b3,b4,b5)上に書き込み、マスクビ
ットが“0”の時はベクトルデータBのデータを残すこ
とによってベクトルデータB1(a1,b2,a2,b
4,a3)を生成する命令のことで以後、VEX(Vecto
r EXpand)と呼ぶ。
【0005】従来のこのようなベクトル処理装置の例を
図4に示す。図4において、ベクトルレジスタ2−1〜
2−8、ベクトル制御レジスタ3はクロスバー5を経由
して演算器4−1〜4−4と接続されている。演算器4
−1〜4−4の演算結果は任意のベクトルレジスタ2−
1〜2−8に格納することができる。また、マスク付き
演算においてはベクトル制御レジスタ3に格納されてい
るマスクデータによって演算結果をベクトルレジスタに
格納するか否か制御する。つまり、ベクトル制御レジス
タ3中のマスクデータが“0”の要素に対しては演算結
果の格納は行われないが、“1”の要素に対しては演算
結果の格納が行われる。更に、ベクトルレジスタ2−1
〜2−8は主記憶制御部6を介して主記憶部7にデータ
を送出したり、主記憶部7からデータを受取ったりでき
るようになっている。
【0006】次式のようなIF文、 DO 10 I=1,N IF(M(I).EQ.0) THEN X(I)=A(B(I))+C(D(I)) ELSE X(I)=1 10 CONTINUE を処理する場合には、全ベクトル要素数(以後、VLと
呼ぶ)を処理の対象にしてマスク付き演算処理を行う方
法や、VCP/VEX命令を利用して条件式が成立する
要素のみを処理する方法などが一般的であった。前者の
処理方法について図7のフローチャートと図8の各レジ
スタの内容を対比して説明する。
【0007】まず、比較命令M(I)と0を比較し、マ
スク生成命令ではオペレーションコードにおいて比較条
件(=≠><≧≦)が指定でき条件が成立した場合は
“1”、不成立の場合は“0”をベクトル制御レジスタ
3に格納する。この時、マスクデータは(1,1,0,1,0,1,
1,0, …) となると仮定する。次にB(I)(b1,b2,b3,b
4, …),D(I)(d1,d2,d3,d4, …) を主記憶部7 から
ベクトルレジスタ2−1、2−2にロードする。
【0008】ベクトルレジスタ2−1、2−2を読み出
して主記憶制御部6に送出しB(I),D(I)をアド
レスデータとして主記憶部7をアクセスし主記憶制御部
6を介してA(B(I)(a1,a2,a3,a4, …) ,C(D
(I))(c1,c2,c3,c4, …)をベクトルレジスタ2−
3、2−4にロードする。ベクトルレジスタ2−3、2
−4を読み出して演算器4−1に入力して処理し、結果
はマスクデータが“1”である箇所に対応する要素のみ
をベクトルレジスタ2−5に格納する。
【0009】次にマスク反転命令によってベクトル制御
レジスタ3の内容のビット毎の否定をとり(M1(0,0,
1,0,1,0,0,1, …))、マスクデータが“1”である箇所
に対応するベクトルレジスタ2−5に即値“1”を代入
する。その後、ベクトルレジスタ2−5の内容を主記憶
部7にストアする。この方法の利点は補助操作がいらな
いことであるが、欠点は真率が低い場合でも常に全ベク
トル要素数分の処理を行わなければならないことであ
る。次に、後者の処理方法について図9のフローチャー
トと図10の各レジスタの内容を対比して説明する。
【0010】まず、比較命令でM(I)と0を比較し、
マスク生成命令ではマスクデータをベクトル制御レジス
タ3に格納する。この時、マスクデータは(1,1,0,1,0,
1,1,0, …) になると仮定する。次にB(I),D
(I)を主記憶部7からベクトルレジスタ2−1、2−
2にロードする。VCP命令によってベクトル制御レジ
スタ3の内容に従ってベクトルレジスタ2−1、2−2
内のB(I),D(I)を縮退し、B1(I)(b1,b2,b
4,b6,b7 …) ,D1(I)(d1,d2,d4,d6,d7,…) という
テ゛ータ を生成しベクトルレジスタ2−3、2−4に格納
する。
【0011】ここで、ベクトル制御レジスタ3のデータ
中で“1”であるビット数を数え(PCNT命令)、そ
の値をベクトル処理要素数(VL1:VL1<VL)と
し、以後VLを再セットするまでVL1で処理をする。
次に、ベクトルレジスタ2−3、2−4を読み出して主
記憶制御部6にデータを送出しB1(I),D1(I)
をアドレスとして主記憶部7をアクセスし主記憶制御部
6を介してA(B(I))(a1,a2,a4,a6,a7,…) ,C
(D(I))(c1,c2,c4,c6,c7,…) をベクトルレジスタ
2−5、2−6にロードする。ベクトルレジスタ2−
5、2−6を読み出して加算器4−1に入力して処理し
結果をベクトルレジスタ2−7に格納する。ここで、元
のVLに再セットし、VEX命令によってベクトルレジ
スタ2−7のデータを展開し結果をベクトルレジスタ2
−8に格納する。
【0012】次に、マスク反転命令によってベクトル制
御レジスタ3の内容のビット毎の否定をとりM1(0,0,
1,0,1,0,0,1, …) 、マスクデータが“1”である箇所
に対応するベクトルレジスタ2−8に即値“1”を代入
する。その後、ベクトルレジスタ2−8の内容を主記憶
部7にストアする。
【0013】この方法の利点はIF文において条件の成
立したベクトル要素のみを処理の対象とするので真率が
低い場合には演算時間が短くなる。ところが、VCP/
VEX/PCNT命令などの補助操作が必要になるので
真率が高い場合はこの補助操作の為に余計な時間がかか
ってしまうという欠点がある。
【0014】また、次式のようなIF文、 DO 10 I=1,N IF(M(I).EQ.0) GO TO 10 X(C(I))=A(I)+B(I) 10 CONTINUE を処理する従来の方法としてVCP/VEX命令を使用
して条件が成立する要素のみを処理する方法が一般的で
ある。この方法について図11のフローチャートと図1
2各レジスタの内容を対比して説明する。
【0015】まず、比較命令でM(I)と0を比較し、
マスク生成命令ではマスクデータをベクトル制御レジス
タ3に格納する。この時、マスクデータはM(1,1,0,1,
0,1,1,0, …) になると仮定する。次に、A(I),B
(I),C(I)を主記憶部7からベクトルレジスタ2
−1、2−2、2−3にロードする。ベクトルレジスタ
2−1、2−2を読み出して加算器4−1に入力して処
理し結果はベクトル制御レジスタ3のマスクデータが
“1”である箇所に対応する要素のみをベクトルレジス
タ2−4に格納する。
【0016】更に、VCP命令によってベクトル制御レ
ジスタ3の内容に従ってベクトルレジスタ2−3、2−
4内の加算結果(ストアデータ)とC(I)(アドレス
データ)を縮退し結果をベクトルレジスタ2−5、2−
6に格納する。ここで、ベクトル制御レジスタ3の
“1”であるビット数を数え(PCNT命令)、その値
をベクトル処理要素数(VL1)とし、以後VLを再セ
ットするまでVL1で処理をする。ベクトルレジスタ2
−5に格納されているストアデータとベクトルレジスタ
2−6に格納されているアドレスデータ(C1(I))
を読み出して主記憶制御部6に送出しC1(I)をアド
レスとしてストアデータを主記憶部7にストアする。
【0017】この方法の利点はIF文において条件の成
立したベクトル要素のみを処理の対象とするので余計な
要素は処理しないがVCP/PCNT命令などの補助操
作の為に余計な時間がかかってしまうという欠点があ
る。
【0018】
【発明が解決しようとする課題】上述した従来のベクト
ル処理装置は、IF文内のリストベクトルの処理におい
て、全ベクトル要素数を処理の対象にしマスク付き演算
処理を行う方法では補助操作は不要だがIF文の真率が
低い場合でも全ベクトル要素数を処理する為無駄な処理
が生じ、VCP/VEX命令を使用してIF文の条件を
満足する要素のみの演算処理を行う方法ではIF文の条
件式が成立したベクトル要素のみを処理の対象とするの
で真率が低い場合には演算時間が短くなるがVCP/V
EX命令などの補助操作が必要になるという利害得失が
あった。
【0019】また、ベクトル計算機の持つ性能を最大限
に引き出す為には、プログラムに最も適切な方式をとる
必要がある。その為にはプログラム中のIF文の条件式
の真率などの情報を検討した上で上記2方法の内のどち
らかの方法を選択することができるようなコンパイラが
必要になる。
【0020】
【課題を解決するための手段】本発明の装置は、1つ以
上のベクトルレジスタと条件付き命令を処理する際のマ
スク情報を格納すベクトル制御レジスタとを有するベク
トル処理部と、複数の記憶単位から構成される主記憶部
と、該主記憶部を制御する主記憶制御部とを備え、前記
ベクトル処理部から送られてくるベクトルデータをアド
レスとして前記主記憶部をアクセスする機能を有するベ
クトル処理装置において、前記主記憶制御部内に、前記
ベクトルレジスタに格納されている前記主記憶部をアク
セスするためのアドレスデータを格納するアドレス情報
登録手段と、前記ベクトル制御レジスタの内容を保持す
るマスク登録手段と、前記アドレス情報登録手段に格納
されているアドレスで前記主記憶部をアクセスし得たデ
ータを一時保持しておくロードデータ格納手段とを設
け、前記ロードデータ格納手段に格納されているデータ
と前記マスク登録手段に格納されているマスクデータを
前記ベクトル処理部に送出しマスクデータの内容にした
がって前記ベクトルレジスタにロードデータを格納する
ことによってマスク付きリストベクトルロードを実現す
ることを特徴とする。
【0021】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
【0022】図1は本発明の第1の実施例を示す構成図
である。図中1はベクトル処理部であり、1つ以上のベ
クトルレジスタ2−1〜2−8とベクトル制御レジスタ
3を含み、べクトルレジスタ2−1〜2−8とベクトル
制御レジスタ3はクロスバー5を経由して複数の演算器
4−1〜4−4と接続されている。
【0023】演算器4−1〜4−4の演算結果は任意の
ベクトルレジスタ2−1〜2−8に格納することがで
き、更にマスク付き演算においてはベクトル制御レジス
タ3に格納されているマスクデータによって演算結果の
各要素をベクトルレジスタ2−1〜2−8に格納するか
否かを制御する。また、ベクトルレジスタ2−1〜2−
8は後述する主記憶制御部6を介して主記憶部7にデー
タを送出したり、主記憶部7からデータを受取ったりで
きるようになっている。
【0024】主記憶制御部6内はマスク登録手段8とア
ドレス情報登録手段9とロードデータ格納手段11とス
トアデータ格納手段10とリクエスト変換手段15とを
含む。ベクトルレジスタ2−1〜2−8から送られてく
る主記憶部7をアクセスする為のアドレスをアドレス情
報登録手段9に、主記憶部7にストアするデータをスト
アデータ格納手段10に格納する。
【0025】ロードデータ格納手段11には主記憶部7
をアクセスし得たロードデータを一時保持する。マスク
登録手段8はベクトル制御レジスタ3から送られてくる
マスクデータを保持し、そのマスクデータはロードデー
タ格納手段11に格納されているロードデータとともに
ベクトル処理部1に送出される。また、リクエスト変換
手段15はマスク登録手段8に格納されているマスクデ
ータをリクエスト信号に変換する。主記憶部7はリクエ
スト信号を受けた要素のみについて、ストアデータ格納
手段10に格納されているストアデータを格納するよう
になっている。
【0026】マスク付きリストベクトルロード命令を処
理する際、アドレス情報登録手段9内のアドレスによっ
て主記憶部7をアクセスし、それによって得たデータは
ロードデータ格納手段11に一時保持され、マスク登録
手段8のマスクデータとともにベクトル処理部1に送出
する。主記憶制御部6から送られたマスクデータが
“1”である箇所に対応するベクトルレジスタの要素に
主記憶制御部6から送出されたロードデータを格納し、
マスクデータが“0”である箇所に対応するベクトルレ
ジスタの要素には主記憶制御部6から送出されたロード
データは格納せずにベクトルレジスタに格納されていた
データを残す。
【0027】また、マスク付きリストベクトルストア命
令を処理する際、リクエスト変換手段15はマスク登録
手段8に格納されているマスクデータが“1”である場
合、データを主記憶部7に書き込むように指示するリク
エスト信号に変換し、マスクデータが“0”である場合
にはリクエスト信号には変換しない。リクエスト変換後
のデータとともにアドレス及びストアデータを主記憶部
7に送出し、主記憶部7はリクエスト信号を認識すると
ストアデータを格納する。つまり、マスク登録手段8に
格納されているマスクデータが“1”である箇所に対応
するストアデータは主記憶部7に格納するが、マスクデ
ータが“0”である箇所に対応するストアデータは主記
憶部7には格納しない。
【0028】図2は本発明の第2の実施例を示す構成図
であるが、図1に示した実施例との違いは、マスク登録
手段8を、主記憶制御装置6からベクトル処理部1に移
し、主記憶制御部6からストアデータ格納手段10およ
びリクエスト変換手段15を除去した点である。
【0029】マスク付きリストベクトルロード命令を処
理する際、ベクトル処理部1内のベクトル制御レジスタ
3のマスクデータを同じベクトル処理部1内のマスク登
録手段8に格納する。主記憶部7をアクセスして得たロ
ードデータはロードデータ格納手段11を経由してベク
トル処理部1に送出される。ベクトル処理部1は、ロー
ドデータが主記憶制御部6から送出されるとマスク登録
手段8からマスクデータを読み出し、マスクデータの
“1”である箇所に対応するベクトルレジスタの要素に
ロードデータを格納し、マスクデータが“0”である箇
所にはロードデータは格納せずにベクトルレジスタに格
納されていたデータを残す。
【0030】図3は本発明の第3の実施例を示す構成図
であり、ベクトル処理部1は図1に示した実施例におけ
るベクトル処理部1と変るところがない。
【0031】主記憶制御部6内にはマスク登録手段8と
メモリアクセス情報登録手段14とロードデータ格納手
段11とメモリアクセス制御手段12とロードデータ展
開手段13とを含む。メモリアクセス情報登録手段14
は主記憶部7をアクセスするアドレスを格納するアドレ
ス情報登録手段9と主記憶部7にストアするデータを格
納するストアデータ格納手段10で構成されている。
【0032】マスク登録手段8はベクトル処理部1内の
ベクトル制御レジスタ3から送られてくるマスクデータ
を保持し、メモリアクセス制御手段12はマスク登録手
段8に格納されているマスクデータの内容に従って主記
憶部7をアクセスする情報をメモリアクセス情報登録手
段14から選択する。
【0033】リストベクトルロード命令を処理する際、
メモリアクセス制御手段12はマスク登録手段8に格納
されているマスクデータが“1”である箇所に対応する
アドレス情報登録手段9内のアドレスによって主記憶部
7をアクセスし、マスクデータが“0”である箇所に対
応するアドレスでは主記憶部7をアクセスしないように
制御する。
【0034】主記憶部7をアクセスして得たロードデー
タはロードデータ格納手段11に一時保持され、ロード
データ展開手段13はロードデータ格納手段11内のロ
ードデータをVEX命令と同じ原理で展開する。つま
り、マスクデータが“1”である箇所にロードデータを
展開し、マスクデータが“0”である箇所には任意の値
を格納する。
【0035】但し、この時の値は保証する必要はない。
ロードデータ展開手段13で生成したデータをベクトル
処理部1に送出し任意のベクトルレジスタに格納する
が、この時マスク登録手段8のマスクデータも一緒にベ
クトル処理部1の送出し、マスクデータが“1”である
箇所に対応するベクトルレジスタの要素に主記憶制御部
6から送出されたデータを格納し、マスクデータが
“0”である箇所には主記憶制御部6から送出されたデ
ータは格納せずにベクトルレジスタに格納されていたデ
ータを残す。
【0036】ここで、図13のデータの流れを用いてマ
スク付きリストベクトルロード命令の動作を説明する。
ベクトルレジスタ2−1には主記憶部7をアクセスする
アドレスA(a1,a2,a3,…,a10) 、ベクトルレジスタ2−
2にはX(x1,x2,x3,…,x10)、ベクトル制御レジスタ3
には(1、1 、0 、1 、0 、1 、1 、0 、0 、1)が格納さ
れていると仮定する。
【0037】マスク付きリストベクトルロード命令が発
行されるとベクトル処理部1より、アドレスデータ、マ
スクデータが主記憶制御部6に送られ、マスク登録手段
8には(1、1 、0 、1 、0 、1 、1 、0 、0 、1)、アド
レス情報登録手段9には(a1,a2,a3,…,a10) が格納され
る。メモリアクセス制御手段12はマスク登録手段8内
のマスクデータの“1”に対応するアドレス、つまり(a
1,a2,a4,a6,a7,a10)を主記憶部7に送出する。アドレス
を受けた主記憶部7はアドレス(a1,a2,a4,a6,a7,a10)に
対応するデータをロードデータ格納手段11に送出す
る。その時のデータをB(b1,b2,b4,b6,b7,b10)と仮定す
る。
【0038】ロードデータ展開手段13はB(b1,b2,b4,
b6,b7,b10)をマスク登録手段8のマスクデータが“1”
である箇所(第1,2,4,6,7,10要素)に格納し、更にマス
クデータが“0”である箇所 (第3,5,8,9 要素) には任
意の値(*)を格納することによってB1(b1,b2,*,b4,
*,b6,b7,*,*,b10)というデータを生成する。次にデータ
B1をベクトル処理部1に送出しベクトルレジスタ2−
2に格納する。
【0039】ベクトルレジスタ2−2にデータを格納す
る時にはベクトル制御レジスタ3のマスクデータが
“1”である箇所 (第1,2,4,6,7,10要素)にデータB1
(b1,b2,*,b4,*,b6,b7,*,*,b10)を格納し、マスクデータ
が“0”である箇所 (第3,5,8,9要素)にはベクトルレ
ジスタ2−2に元から格納されていたデータX(x3,x5,x
8,x9) を格納する。つまり、ベクトルレジスタ2−2に
はマスク付きリストベクトルロード命令によってX1(b
1,b2,x3,b4,x5,b6,b7,x8,x9,b10)というデータが格納さ
れることになる。
【0040】また、リストベクトルストア命令を処理す
る際、マスク登録手段8に格納されているマスクデータ
が“1”である箇所に対応するストアデータ格納手段1
0内のストアデータとその要素に対応するアドレス情報
登録手段9内のアドレスを主記憶部7に送出してストア
データを主記憶部7にストアし、マスクデータが“0”
の時は主記憶部7にはストアしない。
【0041】ここで、図14のデータの流れを用いてマ
スク付きリストベクトルストア命令の動作を説明する。
ベクトルレジスタ2−1には主記憶部7をアクセスする
アドレスA(a1,a2,a3,…,a10) 、ベクトルレジスタ2−
2には主記憶部7にはストアすべきデータB(b1,b2,b3,
…,b10) 、ベクトル制御レジスタ3には(1,1,0,1,0,1,
1,0,0,1) が格納されていると仮定する。
【0042】マスク付きリストベクトルストア命令が発
行されるとベクトル処理部1より、アドレスデータ、ス
トアデータ、マスクデータが主記憶制御部6に送られ、
マスク登録手段8には(1,1,0,1,0,1,1,0,0,1) 、アドレ
ス情報登録手段9には(a1,a2,a3,…,a10) 、ストアデー
タ格納手段10には(b1,b2,b3,…,b10) が格納される。
メモリアクセス制御手段12はマスク登録手段8内のマ
スクデータが“1”である箇所 (第1,2,4,6,7,10要素)
に対応するアドレスとストアデータ、つまり(a1,a2,a4,
a6,a7,a10)と(b1,b2,b4,b6,b7,b10)を主記憶部7に送出
する。主記憶部7はアドレス(a1,a2,a4,a6,a7,a10)に対
応する箇所にストアデータ(b1,b2,b4,b6,b7,b10)をスト
アする。
【0043】次式のようなIF文を例にとって図15の
フローチャートと図16の各レジスタの内容を対比して
説明する。
【0044】DO 10 I=1,N IF(M(I).EQ.0} THEN X(I)=A(B(I))+C(D(I)) ELSE X(I)=1 10 CONTINUE まず、比較命令でM(I)と0を比較し、マスク生成命
令ではマスクデータをベクトル制御レジスタ3に格納す
る。この時、マスクデータは(1,1,0,1,0,1,1,0, …) に
なると仮定する。B(I),D(I)を主記憶部7から
ベクトルレジスタ2−1、2−2にロードする。
【0045】次にマスク付きリストベクトルロード命令
によってベクトルレジスタ2−1、2−2を読み出して
主記憶制御部6に送出すると同時にベクトル制御レジス
タ3のマスクデータも主記憶制御部6に送出する。主記
憶制御部6で前述したような方法でIF文の条件が成立
する要素 (第1,2,4,6,7,…要素) に対してA(B
(I))(a1,a2,*,a4,*,a6,a7,…) 、C(D(I))(c
1,c2,*,c4,c6,c7,…) をロードしベクトルレジスタ2−
3、2−4に格納する。更にベクトルレジスタ2−3、
2−4を読み出して加算器4−1に入力して処理し結果
をベクトルレジスタ2−5に格納する。
【0046】次に、マスク反転命令によってベクトル制
御レジスタ3の内容のビット毎の否定をとりM1(0,0,
1,0,1,0,0,1, …) 、マスクデータが“1”である箇所
(第3,5,8,…要素) のベクトルレジスタ2−5に即値
“1”を代入する。その後、ベクトルレジスタ2−5の
内容を主記憶部7にストアする。
【0047】また、次式のようなIF文を例にとって図
17のフロータートと図18の各レジスタの内容を対比
して説明する。
【0048】DO 10 I=1,N IF(M(I).EQ.0) GO TO 10 X(C(I))=A(I)+B(I) 10 CONTINUE まず、比較命令でM(I)と0を比較し、マスク生成命
令ではマスクデータをベクトル制御レジスタ3に格納す
る。この時、マスクデータは(1,1,0,1,0,1,1,0, …) に
なると仮定する。
【0049】A(I),B(I),C(I)を主記憶部
7からベクトルレジスタ2−1、2−2、2−3にロー
ドする。ベクトルレジスタ2−1、2−2を読み出して
加算器4−1に入力して処理し結果はベクトル制御レジ
スタ3のマスクデータが“1”である箇所 (第1,2,4,6,
7,…要素) に対応する要素のみをベクトルレジスタ2−
4に格納し、“0”である箇所 (第3,5,8,…要素) には
ベクトルレジスタ2−4の最初のデータを残す(a1+b1,a
2+b2,*,a4+b4,*,a6+b6,a7+b7,*, …) 。
【0050】次に、マスク付きリストベクトルストア命
令によってベクトルレジスタ2−3(アドレス)とベク
トルレジスタ2−4(ストアデータ)を読み出して主記
憶制御部6に送出する。主記憶制御部6はアドレスデー
タとストアデータを受け取ると前述したような方法でI
F文の条件が成立する要素 (第1,2,4,6,7,…要素) に対
するストアデータを主記憶部7にストアする。
【0051】
【発明の効果】以上説明したように本発明によれば、I
F文内のリストベクトルロードの処理の際、マスク付き
リストベクトルロード命令を行うことで補助操作が不要
になる。更に、IF文の条件が成立する場合のみ主記憶
部をアクセスしロードデータを得ることができるので主
記憶部へのアクセスが減る為、条件付きリストベクトル
ロードを高速に処理することができる。
【0052】また、IF文内のリストベクトルストアの
処理の際、マスク付きベクトルストア命令を行うことで
補助操作が不要になる。更に、IF文の条件が成立する
場合のみ主記憶部をアクセスし対象データをストアする
ことができるので主記憶部へのアクセスが減る為、条件
付きリストベクトルストアを高速に処理することができ
る。
【0053】また、IF文の真率などの情報によって処
理方法を変えるコンパイラも不要になる。
【図面の簡単な説明】
【図1】本発明の第1の実施例のブロック図である。
【図2】本発明の第2の実施例のブロック図である。
【図3】本発明の第3の実施例のブロック図である。
【図4】従来のベクトル処理装置の一例を示すブロック
図である。
【図5】VCP命令の動作の概念図である。
【図6】VEX命令の動作の概念図である。
【図7】従来のベクトル処理装置におけるリストベクト
ルロードを含むIF文の処理を一方法で行った時のフロ
ーチャートである。
【図8】図7のフローチャートに対応する各レジスタの
内容を示す図である。
【図9】従来のベクトル処理装置におけるリストベクト
ルロードを含むIF文の処理を他の方法で行った時のフ
ローチャートである。
【図10】図9のフローチャートに対応する各レジスタ
の内容を示す図である。
【図11】従来のベクトル処理装置におけるリストベク
トルストアを含むIF文の処理を示すフローチャートで
ある。
【図12】図11のフロータートに対応する各レジスタ
の内容を示す図である。
【図13】本発明の実施例の動作において、マスク付き
リストベクトルロード命令の動作の概念を示す図であ
る。
【図14】本発明の実施例の動作において、マスク付き
リストベクトルストア命令の動作の概念を示す図であ
る。
【図15】本発明の実施例の動作において、リストベク
トルロードを含むIF文の処理を行った時のフローチャ
ートである。
【図16】図15のフローチャートに対応する各レジス
タの内容を示す図である。
【図17】本発明の実施例の動作において、リストベク
トルストアを含むIF文の処理を行った時のフローチャ
ートである。
【図18】図17のフロータートに対応する各レジスタ
の内容を示す図である。
【符号の説明】
1 ベクトル処理部 2−1〜2−8 ベクトルレジスタ 3 ベクトル制御レジスタ 4−1〜4−4 演算器 5 クロスバー 6 主記憶制御部 7 主記憶部 8 マスク登録手段 9 アドレス情報登録手段 10 ストアデータ格納手段 11 ロードデータ格納手段 12 メモリアクセス制御手段 13 ロードデータ展開手段 14 メモリアクセス情報登録手段 15 リクエスト変換手段

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】1つ以上のベクトルレジスタと条件付き命
    令を処理する際のマスク情報を格納すベクトル制御レジ
    スタとを有するベクトル処理部と、複数の記憶単位から
    構成される主記憶部と、該主記憶部を制御する主記憶制
    御部とを備え、前記ベクトル処理部から送られてくるベ
    クトルデータをアドレスとして前記主記憶部をアクセス
    する機能を有するベクトル処理装置において、 前記主記憶制御部内に、前記ベクトルレジスタに格納さ
    れている前記主記憶部をアクセスするためのアドレスデ
    ータを格納するアドレス情報登録手段と、前記ベクトル
    制御レジスタの内容を保持するマスク登録手段と、前記
    アドレス情報登録手段に格納されているアドレスで前記
    主記憶部をアクセスし得たデータを一時保持しておくロ
    ードデータ格納手段とを設け、 前記ロードデータ格納手段に格納されているデータと前
    記マスク登録手段に格納されているマスクデータを前記
    ベクトル処理部に送出しマスクデータの内容にしたがっ
    て前記ベクトルレジスタにロードデータを格納すること
    によってマスク付きリストベクトルロードを実現するこ
    とを特徴としたベクトル処理装置。
  2. 【請求項2】前記マスク登録手段を前記主記憶制御部か
    ら前記ベクトル処理部内に移し、前記主記憶制御部から
    ロードデータのみを受け取り前記ベクトル処理部内のマ
    スク登録手段に格納されているマスクデータの内容に従
    って前記ベクトルレジスタにロードデータを格納するこ
    とを特徴とした請求項1記載のベクトル処理装置。
  3. 【請求項3】前記主記憶部内に前記主記憶部に格納すべ
    きデータを保持するストアデータ格納手段と、前記主記
    憶制御部内のマスク登録手段に格納されているマスクデ
    ータを前記主記憶部を制御するリクエスト信号に変換す
    るリクエスト変換手段とを設け、リクエスト信号にした
    がって前記主記憶部にストアデータを格納することによ
    ってマスク付きリストベクトルストアを実現することを
    特徴とした請求項1記載のベクトル処理装置。
  4. 【請求項4】前記マスク登録手段に登録されている情報
    に従って前記主記憶部をアクセスするアドレスを選択す
    るメモリアクセス制御手段と、該ロードデータ格納手段
    の内容を前記マスク登録手段に従って展開するロードデ
    ータ展開手段とを設け、 また前記ロードデータ格納手段は前記メモリアクセス制
    御手段で選択されたアドレスで前記主記憶部をアクセス
    して得たデータを一時保持しておき、 前記ロードデータ展開手段によって展開されたデータを
    前記ベクトル制御レジスタの内容にしたがって前記ベク
    トルレジスタに格納することによってマスク付きリスト
    ベクトルロードを処理することを特徴とした請求項1記
    載のベクトル処理装置。
  5. 【請求項5】前記ストアデータ格納手段と前記アドレス
    情報登録手段とで構成するメモリアクセス情報登録手段
    と、前記マスク登録手段に従って前記主記憶部に格納す
    るストアデータとアドレスデータを前記メモリアクセス
    情報登録手段から選択するメモリアクセス制御手段とを
    設けることによってマスク付きリストベクトルストアを
    処理することを特徴とした請求項3記載のベクトル処理
    装置。
JP4158412A 1992-06-18 1992-06-18 ベクトル処理装置 Expired - Fee Related JP2665111B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP4158412A JP2665111B2 (ja) 1992-06-18 1992-06-18 ベクトル処理装置
CA002098674A CA2098674C (en) 1992-06-18 1993-06-17 Vector processing device
EP99101058A EP0926603B1 (en) 1992-06-18 1993-06-17 Vector processing device
EP93109683A EP0574909B1 (en) 1992-06-18 1993-06-17 Vector processing device
DE69332458T DE69332458T2 (de) 1992-06-18 1993-06-17 Vektorprozessor
DE69329630T DE69329630T2 (de) 1992-06-18 1993-06-17 Vorrichtung zur Vektorverarbeitung
US08/077,739 US5511210A (en) 1992-06-18 1993-06-18 Vector processing device using address data and mask information to generate signal that indicates which addresses are to be accessed from the main memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4158412A JP2665111B2 (ja) 1992-06-18 1992-06-18 ベクトル処理装置

Publications (2)

Publication Number Publication Date
JPH0644292A true JPH0644292A (ja) 1994-02-18
JP2665111B2 JP2665111B2 (ja) 1997-10-22

Family

ID=15671196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4158412A Expired - Fee Related JP2665111B2 (ja) 1992-06-18 1992-06-18 ベクトル処理装置

Country Status (5)

Country Link
US (1) US5511210A (ja)
EP (2) EP0926603B1 (ja)
JP (1) JP2665111B2 (ja)
CA (1) CA2098674C (ja)
DE (2) DE69332458T2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014130580A (ja) * 2012-12-31 2014-07-10 Intel Corp 条件付きループをベクトル化する命令及び論理
CN104049943A (zh) * 2013-03-15 2014-09-17 英特尔公司 有限范围向量存储器访问指令、处理器、方法和系统
KR20150038058A (ko) * 2012-09-28 2015-04-08 인텔 코포레이션 판독 및 기입 마스크들에 의해 제어되는 벡터 이동 명령어
JP2015524978A (ja) * 2012-09-28 2015-08-27 インテル・コーポレーション 独立したデータに対する再帰演算のベクトル化のための読み出し及び書き込みマスク更新命令
JP2018124877A (ja) * 2017-02-02 2018-08-09 富士通株式会社 コード生成装置、コード生成方法、およびコード生成プログラム

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3304444B2 (ja) * 1992-11-30 2002-07-22 富士通株式会社 ベクトル処理装置
US6006315A (en) * 1996-10-18 1999-12-21 Samsung Electronics Co., Ltd. Computer methods for writing a scalar value to a vector
US6052769A (en) * 1998-03-31 2000-04-18 Intel Corporation Method and apparatus for moving select non-contiguous bytes of packed data in a single instruction
US7237093B1 (en) 1998-12-16 2007-06-26 Mips Technologies, Inc. Instruction fetching system in a multithreaded processor utilizing cache miss predictions to fetch instructions from multiple hardware streams
US6389449B1 (en) * 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
US7020879B1 (en) * 1998-12-16 2006-03-28 Mips Technologies, Inc. Interrupt and exception handling for multi-streaming digital processors
US7257814B1 (en) * 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
US7529907B2 (en) * 1998-12-16 2009-05-05 Mips Technologies, Inc. Method and apparatus for improved computer load and store operations
US7035997B1 (en) 1998-12-16 2006-04-25 Mips Technologies, Inc. Methods and apparatus for improving fetching and dispatch of instructions in multithreaded processors
CA2406679A1 (en) * 2000-01-18 2001-07-26 Mips Technologies, Inc. Method and apparatus for improved computer load and store operations
WO2002006959A1 (en) 2000-07-14 2002-01-24 Clearwater Networks, Inc. Instruction fetch and dispatch in multithreaded system
US20020112145A1 (en) * 2001-02-14 2002-08-15 Bigbee Bryant E. Method and apparatus for providing software compatibility in a processor architecture
US20100274988A1 (en) * 2002-02-04 2010-10-28 Mimar Tibet Flexible vector modes of operation for SIMD processor
US7793084B1 (en) 2002-07-22 2010-09-07 Mimar Tibet Efficient handling of vector high-level language conditional constructs in a SIMD processor
US6741257B1 (en) 2003-01-20 2004-05-25 Neomagic Corp. Graphics engine command FIFO for programming multiple registers using a mapping index with register offsets
US7873812B1 (en) 2004-04-05 2011-01-18 Tibet MIMAR Method and system for efficient matrix multiplication in a SIMD processor architecture
US7725678B2 (en) * 2005-02-17 2010-05-25 Texas Instruments Incorporated Method and apparatus for producing an index vector for use in performing a vector permute operation
US7765386B2 (en) * 2005-09-28 2010-07-27 Intel Corporation Scalable parallel pipeline floating-point unit for vector processing
US7404065B2 (en) * 2005-12-21 2008-07-22 Intel Corporation Flow optimization and prediction for VSSE memory operations
US7600104B2 (en) * 2006-08-15 2009-10-06 Peter Neumann Method and system for parallel vector data processing of vector data having a number of data elements including a defined first bit-length
US9069547B2 (en) * 2006-09-22 2015-06-30 Intel Corporation Instruction and logic for processing text strings
US20090172348A1 (en) * 2007-12-26 2009-07-02 Robert Cavin Methods, apparatus, and instructions for processing vector data
US9529592B2 (en) * 2007-12-27 2016-12-27 Intel Corporation Vector mask memory access instructions to perform individual and sequential memory access operations if an exception occurs during a full width memory access operation
US8909901B2 (en) 2007-12-28 2014-12-09 Intel Corporation Permute operations with flexible zero control
US10387151B2 (en) * 2007-12-31 2019-08-20 Intel Corporation Processor and method for tracking progress of gathering/scattering data element pairs in different cache memory banks
US7984273B2 (en) * 2007-12-31 2011-07-19 Intel Corporation System and method for using a mask register to track progress of gathering elements from memory
GB2470782B (en) * 2009-06-05 2014-10-22 Advanced Risc Mach Ltd A data processing apparatus and method for handling vector instructions
US10175990B2 (en) 2009-12-22 2019-01-08 Intel Corporation Gathering and scattering multiple data elements
US8271433B2 (en) * 2009-12-30 2012-09-18 Nokia Corporation Method and apparatus for providing automatic controlled value expansion of information
US20120254592A1 (en) * 2011-04-01 2012-10-04 Jesus Corbal San Adrian Systems, apparatuses, and methods for expanding a memory source into a destination register and compressing a source register into a destination memory location
WO2013048368A1 (en) * 2011-09-26 2013-04-04 Intel Corporation Instruction and logic to provide vector scatter-op and gather-op functionality
KR101714133B1 (ko) * 2011-09-26 2017-03-08 인텔 코포레이션 벡터 로드 및 저장에 스트라이드 및 마스킹 기능을 제공하는 명령어 및 로직
KR101572770B1 (ko) * 2011-09-26 2015-11-27 인텔 코포레이션 벡터 로드-op/저장-op에 스트라이드 기능을 제공하는 명령어 및 로직
US9454507B2 (en) 2011-12-23 2016-09-27 Intel Corporation Systems, apparatuses, and methods for performing a conversion of a writemask register to a list of index values in a vector register
US9606961B2 (en) * 2012-10-30 2017-03-28 Intel Corporation Instruction and logic to provide vector compress and rotate functionality
US9645820B2 (en) 2013-06-27 2017-05-09 Intel Corporation Apparatus and method to reserve and permute bits in a mask register
US10503502B2 (en) * 2015-09-25 2019-12-10 Intel Corporation Data element rearrangement, processors, methods, systems, and instructions
US11327862B2 (en) 2019-05-20 2022-05-10 Micron Technology, Inc. Multi-lane solutions for addressing vector elements using vector index registers
US11507374B2 (en) * 2019-05-20 2022-11-22 Micron Technology, Inc. True/false vector index registers and methods of populating thereof
US11340904B2 (en) * 2019-05-20 2022-05-24 Micron Technology, Inc. Vector index registers
US11403256B2 (en) 2019-05-20 2022-08-02 Micron Technology, Inc. Conditional operations in a vector processor having true and false vector index registers
CN115934449B (zh) * 2023-02-08 2023-06-02 合肥智芯半导体有限公司 一种寄存器的校验方法、装置及设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57209570A (en) * 1981-06-19 1982-12-22 Fujitsu Ltd Vector processing device
JPS59111569A (ja) * 1982-12-17 1984-06-27 Hitachi Ltd ベクトル処理装置
JPS6015771A (ja) * 1983-07-08 1985-01-26 Hitachi Ltd ベクトルプロセッサ
JPS6069746A (ja) * 1983-09-26 1985-04-20 Fujitsu Ltd ベクトル・デ−タ処理装置の制御方式
US4791555A (en) * 1983-10-24 1988-12-13 International Business Machines Corporation Vector processing unit
JPS62276668A (ja) * 1985-07-31 1987-12-01 Nec Corp ベクトルマスク演算制御ユニツト
US4740893A (en) * 1985-08-07 1988-04-26 International Business Machines Corp. Method for reducing the time for switching between programs
JPS6266377A (ja) * 1985-09-19 1987-03-25 Fujitsu Ltd マスクパタ−ン生成方式
JPH0731669B2 (ja) * 1986-04-04 1995-04-10 株式会社日立製作所 ベクトル・プロセツサ
JPS63251835A (ja) * 1987-04-08 1988-10-19 Hitachi Ltd ベクトル処理装置
JP2607689B2 (ja) * 1989-07-10 1997-05-07 株式会社日立製作所 ベクトル処理装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150038058A (ko) * 2012-09-28 2015-04-08 인텔 코포레이션 판독 및 기입 마스크들에 의해 제어되는 벡터 이동 명령어
JP2015524978A (ja) * 2012-09-28 2015-08-27 インテル・コーポレーション 独立したデータに対する再帰演算のベクトル化のための読み出し及び書き込みマスク更新命令
JP2015528610A (ja) * 2012-09-28 2015-09-28 インテル・コーポレーション リードマスク及びライトマスクにより制御されるベクトル移動命令
JP2017107579A (ja) * 2012-09-28 2017-06-15 インテル・コーポレーション リードマスク及びライトマスクにより制御されるベクトル移動命令
JP2014130580A (ja) * 2012-12-31 2014-07-10 Intel Corp 条件付きループをベクトル化する命令及び論理
JP2016015152A (ja) * 2012-12-31 2016-01-28 インテル・コーポレーション 条件付きループをベクトル化する命令及び論理
CN104049943A (zh) * 2013-03-15 2014-09-17 英特尔公司 有限范围向量存储器访问指令、处理器、方法和系统
JP2014182807A (ja) * 2013-03-15 2014-09-29 Intel Corp 限定範囲ベクトルメモリアクセス命令、プロセッサ、方法、及びシステム
US9244684B2 (en) 2013-03-15 2016-01-26 Intel Corporation Limited range vector memory access instructions, processors, methods, and systems
US9448795B2 (en) 2013-03-15 2016-09-20 Intel Corporation Limited range vector memory access instructions, processors, methods, and systems
JP2018124877A (ja) * 2017-02-02 2018-08-09 富士通株式会社 コード生成装置、コード生成方法、およびコード生成プログラム

Also Published As

Publication number Publication date
DE69329630T2 (de) 2001-03-01
CA2098674C (en) 1999-03-02
US5511210A (en) 1996-04-23
EP0574909A3 (en) 1995-05-10
EP0926603B1 (en) 2002-10-30
CA2098674A1 (en) 1993-12-19
DE69329630D1 (de) 2000-12-14
EP0926603A1 (en) 1999-06-30
JP2665111B2 (ja) 1997-10-22
DE69332458D1 (de) 2002-12-05
DE69332458T2 (de) 2003-03-20
EP0574909A2 (en) 1993-12-22
EP0574909B1 (en) 2000-11-08

Similar Documents

Publication Publication Date Title
JP2665111B2 (ja) ベクトル処理装置
US5168571A (en) System for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data
JP3170301B2 (ja) アドレス変換装置
US20130036426A1 (en) Information processing device and task switching method
JP2636088B2 (ja) 情報処理装置
JPH0544049B2 (ja)
JPS6051947A (ja) 仮想記憶計算機における命令先取方式
JPS63261430A (ja) 情報処理方式および装置
JPS6148737B2 (ja)
JPH08272411A (ja) ラダー命令処理装置
JPH10111798A (ja) 情報処理装置
JP4315626B2 (ja) データ駆動型情報処理装置のメモリ制御部における情報処理方法
JP2845746B2 (ja) マイクロプログラム制御装置
JPS60178539A (ja) 情報処理装置におけるバイパス制御方式
JPH1040165A (ja) データ読み出し方法およびリードバッファ
JP3008483B2 (ja) リンク処理装置
JP2583614B2 (ja) ベクトル演算装置
JP2586155B2 (ja) 論理シミュレータ
JP2895892B2 (ja) データ処理装置
JPH06274529A (ja) ベクトル処理装置
JPH06332867A (ja) バス・インタフェース内部バッファ制御方式
JP2000298641A (ja) 情報処理装置およびそのデータ転送方法ならびにデータ転送制御プログラムを格納した記憶媒体
JP2001195389A (ja) バウンダリ実行制御装置及びバウンダリ制御方法
JPH02278428A (ja) 分岐制御方式
JPS62109176A (ja) 画像メモリの転送アドレス制御方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19970610

LAPS Cancellation because of no payment of annual fees