JPH01271875A - ベクトル演算制御方式 - Google Patents

ベクトル演算制御方式

Info

Publication number
JPH01271875A
JPH01271875A JP10082988A JP10082988A JPH01271875A JP H01271875 A JPH01271875 A JP H01271875A JP 10082988 A JP10082988 A JP 10082988A JP 10082988 A JP10082988 A JP 10082988A JP H01271875 A JPH01271875 A JP H01271875A
Authority
JP
Japan
Prior art keywords
vector
mask
data
bit
mask data
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
JP10082988A
Other languages
English (en)
Inventor
Hideshi Ishii
石井 英志
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
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP10082988A priority Critical patent/JPH01271875A/ja
Publication of JPH01271875A publication Critical patent/JPH01271875A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はベクトル演算制御方式に関し、特にマスク機能
を有するベクトル演算の制御方式に関する。
[従来の技術] 科学技術計算ではベクトルデータを扱う場合が非常に多
いため、スーパーコンピュータなどには大量のベクトル
データに対する演算を1命令で高速に実行するためのベ
クトル演算命令が用意されている。そしてこのようなベ
クトル演算命令は、一般にFORTRANで記述された
プログラムの最深Doループにおいて使用される。また
、プログラムの最深DoループがIF文を含む場合には
、以下に述べるベクトルマスクデータを使用することに
はりベクトル演算命令による実行が可能となる。
第3図はFORTRANで記述されたプログラムの最深
Doループの一例を示す図である。このDOループをベ
クトル演算命令により実行する場合には、ベクトルX 
(I) とベクトルY (I)の要素毎の比較が行なわ
れ、比較の結果により1要素に対して1ビットのベクト
ルマスクデータが作成される。即ちベクトルX (1)
とベクトルY(I)の対応する要素が一致したときは“
’l”、不一致のときは0′°がマスクデータとして発
生される。次に、ベクトルA(1)*ベクトルB(1’
)のマスク制御付ベクトル演算命令が実行されるが、こ
のとき対応するベクトルマスクデータが′1″゛である
ような要素のみがベクトルC(1)に格納され、°0°
゛であるような要素はベクトルC(1)には格納されな
いように制御される。こうすることにより第3図のDo
ループをベクトル演算命令により実行することができる
。第5図はこのようすを図示したもので、要素X。と要
素y。、要素x3と要素y3のみが一致することから要
素0と要素1に対応するベクトルマスクデータのビット
のみが“1°゛となり、要素a。と要素す。、要素a3
と要素b3の演算のみが実行され、他の要素CI+02
 + 04は同図の斜線部に示すようにマスクされて変
更は行なわれない。
次に、第4図に示すようなりOループを実行する場合を
考える。この場合も第3図のDoループと同様にベクト
ルX (I) 、 Y (I)を比較することによりベ
クトルマスクデータが作成され、次のマスク制御付ベク
トル演算命令により参照される。
この場合、A (I) * B (I)のマスク制御付
ベクトル演算命令を実行するときは第3図のDOループ
と同様にベクトルマスクデータの対応するビットが1゛
′であるような要素の演算のみが実行されるが、ベクト
ルD(1)*ベクトルE (I)のマスク制御付ベクト
ル演算命令を実行するときは前記のA(I) * B(
I) (7)演算とは逆ニヘクト/l/X(I) とベ
クトルY (1)が不一致の要素に対する演算のみを実
行する必要があるため、前記のベクトルマス汐データを
そのまま使用することはできない。
そこで、従来のベクトル演算装置においては、D (1
) * El)(r)のマスク制御付ベクトル演算命令
を実行する前にソフトウェアによりベクトルマスクデー
タを反転するか、あるいは再度X (I)とY (1)
からベクトルマスクデータを作成し直して反転されたベ
クトルマスクデータで生成していた。第5図はこのよう
すを図示したもので、ベクトルA (1) 、 B(I
)(1)の要素a0〜a4.bo〜boについては第5
図と同様にして求めたベクトルマスクデータ(マスク0
)を用いて演算し、ベクトルD (1) 、 E (I
)の要素do ”d4.eo 〜e4については前述の
ようにしてマスクOを反転したベクトルマスクデータ(
マスク1)を作成し、要素d、と要素e+、要素d2と
要素e2゜要素d4と要素e4のみの演算を行ない、他
の要素f。、f3は同図の斜線部に示すようにマスクし
て変更を行なわせないようにするものである。
〔発明が解決しようとする課題〕
上述した従来のベクトル演算装置は、第4図に示したよ
うなりQループをベクトル演算命令により実行する場合
には、IF文が成立する場合と不成立の場合とで同一の
ベクトルマスクデータを使用することができず、マスク
データの作り直しが必要であるが、ソフトウェアにより
ベクトルマスクデータを反転するには、先ずマスクデー
タのビット数を認識し、そして全てのマスクビットを反
転しなければならないので多くの時間を要し、再度ベク
トルx (I) 、 y (1)からベクトルマスクデ
ータを作り直す場合も同様に多くの時間を要するので、
演算実行性能が低下するという欠点がある。
〔課題を解決するための手段〕
本発明のベクトル演算制御方式は、ベクトルマスク生成
命令が、各要素ごとに2ビットずつのベクトルマスクデ
ータを生成し、前記2ビットずつのベクトルマスクデー
タのうち上位の1ビットには指定されたマスク生成条件
に従って作成されたベクトルマスクデータの各ビットを
セットし、下位の1ビットにはそのベクトルマスクデー
タの各ビットの反転y−夕をセットするようにし、マス
り制御イ」ヘクトル命令において、演算処理時に使用す
るベクトルマスクデータとして前記上位のビットにセッ
トされたデータと前記下位のビットにセットされた反転
データのいずれを使用するかを指定するものである。
[作用1 したがって、IF文が成立する場合と不成立の場合の両
方でベクトルデータが必要である場合に、従来のソフト
ウェアによるベクトルマスクデータの反転あるいはベク
トル生成命令によるベクトルマスクデータの作り直しを
行なう方式に比べてベクトル演算を高速化できる。
[実施例〕 次に、本発明の実施例について図面を参照して説明する
第1図は本発明のベクトル演算制御方式が適用されたベ
クトル演算装置の一実施例のブロック図である。
ベクトルマスク生成命令は、以下に述べるように実行さ
れる。ベクトルマスクデータを作成するだめの条件とな
る配列要素は、主記憶1から読出されてオペランドレジ
スタ2およびオペランドレジスタ3にセットされる。オ
ペランドレジスタ2および3のデータは比較器4により
比較され、その結果に従って1ビットのマスクビットが
生成される。この生成されたマスクビットと、そのビッ
トをインバータ6により反転したビットがマスクレジス
タ5の最下位の2ビットに格納される。マスクレジスタ
5は生成されたマスクビットが最下位の2ビットに格納
されるときに、以前のデータが左へ2ビットシフトされ
るように構成されているため、全ての要素の比較が終了
した時点では生成されたベクトルマスクデータはマスク
レジスタ5に格納されている。このようにして生成され
たベクトルマスクデータは、主記憶1に格納される。
ベクトルマスク生成命令により主記憶1上にベクトルマ
スクデータが用意されると、次にマスク制御付ベクトル
命令が実行される。マスク制御付主記憶1からの続出し
が行なわれ、読出されたベクトルマスクデータを参照し
ながら主記憶1から要素の読出しが行なわれる。ベクト
ルマスクデータの読出しを行なう際に命令レジスタ7に
格納されている命令語の特定ビット(Sビット)により
左シフタ8が制御される。すなわちSビットが” o 
”のときは読出されたベクトルマスクデータをそのまま
マスクオペランドレジスタ9に格納し、Sビットが1″
のときは読出されたベクトルマスクデータを左シフタ8
により1ビット左にシフトしてマスクオペランドレジス
タ9に格納する。このようにすることにより、8ビット
が“1゛のときにはマスクオペランドレジスタ9の最上
位ビットに、反転されたベクトルマスクデータの先頭ビ
ットが位置するようにてきる。マスクオペランドレジス
タ9に格納されたベクトルマスクデータは最上位ビット
から順次とり出されて演算制御回路10へ送られる。こ
のとき1ビットがとり出されると同時にマスクオペラン
ドレジスタ9の内容が左へ2ビットシフトされる。こう
してマスクオペランドレジスタ9の最上位ビットからは
、前述のベクトルマスクデータのうちの反転されてない
ビットかあるいは反転されたビットのいずれか一方のみ
が順次とり出されて演算制御回路10へ送られることに
なる。このようにして演算制御回路10へ送られたベク
トルマスクデータに従って主記憶1から要素が読出され
、オペランドレジスタ2および3にセットされる。これ
らのレジスタ2.3にセットされた要素間の演算は演算
制御回路10の制御のもとてベクトル演算回路11によ
り実行され、その結果はりザルトレジスタ12に格納さ
れたのち、主記憶1の所定のロケーションに格納される
。ここで、ベクトル演算回路11による演算は、マスク
されていない要素に対してのみ実行されることは言うま
でもない。
第2図は、第4図のプログラムを本実施例により実行す
る場合の動作説明図である。
[発明の効果] 以上説明したように本発明は、ベクトルマスク生成命令
により各要素ごとに2ビットずつのべりトルマスクデー
タを生成し、その上位の1ビットには指定されたマスク
生成条件に従って作成されたベクトルマスクデータの各
ビットをセットし、下位の1ビットにはそのベクトルマ
スクデータの各ビットの反転データをセットするように
して、マスク制御付ベクトル命令において演算処理時に
使用するベクトルマスクデータとして上記上位のビット
位置にセットされたデータと下位のビット位置にセット
された反転データのいずれを使用するかを指定すること
により、IF文が成立する場合と不成立の場合の両方で
ベクトルマスクデータが必要である場合に、従来のソフ
トウェアによるベクトルマスクデータの反転あるいはベ
クロルマスク生成命令によるベクトルマスクデータの作
り直しを行なう方式に比べてベクトル演算を高速化でき
るという効果がある。
【図面の簡単な説明】
第1図は本発明のベクトル演算制御方式によるベクトル
演算装置の一実施例のブロック図、第2図は第4図のプ
ログラムを本実施例のベクトル演算装置により実行する
場合の動作説明図、第3図および第4図はFORTRA
Nで記述されたプログラムの最深DOループのそれぞれ
異なる例を示す図、第5図および第6図はそれぞれ第3
図および第4図のプログラムをベクトル演算命令で実行
する場合の動作説明図である。 1・・・・・・・・主記憶、 2.3・・・・オペランドレジスタ、 4・・・・・・・・比較器、 5・・・・・・・・マスクレジスタ、 6・・・・・・・・インバータ、 7・・・・・・・・命令レジスタ、 8・・・・・・・・左シフタ、 9・・・・・・・・マスクオペランドレジスタ、10・
・・・・・演算制御回路、 11・・・・・・ベクトル演算回路、 12・・・・・・リザルトレジスタ。

Claims (1)

  1. 【特許請求の範囲】 1、配列データの条件によって特定の配列要素に対する
    演算を抑止するためのベクトルマスクデータを生成する
    ベクトルマスク生成命令と、前記生成されたベクトルマ
    スクデータに従ってマスク指定されている要素以外の配
    列要素についてのみ演算処理をするマスク制御付ベクト
    ル命令とを有するベクトル演算装置において、 前記ベクトルマスク生成命令は、各要素ごとに2ビット
    ずつのベクトルマスクデータを生成し、前記2ビットず
    つのベクトルマスクデータのうち上位の1ビットには指
    定されたマスク生成条件に従って作成されたベクトルマ
    スクデータの各ビットをセットし、下位の1ビットには
    そのベクトルマスクデータの各ビットの反転データをセ
    ットするようにし、前記マスク制御付ベクトル命令にお
    いて、演算処理時に使用するベクトルマスクデータとし
    て前記上位のビットにセットされたデータと前記下位の
    ビットにセットされた反転データのいずれを使用するか
    を指定することを特徴とするベクトル演算制御方式。
JP10082988A 1988-04-22 1988-04-22 ベクトル演算制御方式 Pending JPH01271875A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10082988A JPH01271875A (ja) 1988-04-22 1988-04-22 ベクトル演算制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10082988A JPH01271875A (ja) 1988-04-22 1988-04-22 ベクトル演算制御方式

Publications (1)

Publication Number Publication Date
JPH01271875A true JPH01271875A (ja) 1989-10-30

Family

ID=14284210

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10082988A Pending JPH01271875A (ja) 1988-04-22 1988-04-22 ベクトル演算制御方式

Country Status (1)

Country Link
JP (1) JPH01271875A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008033446A (ja) * 2006-07-26 2008-02-14 Nec Computertechno Ltd ベクトル制御回路、ベクトル処理装置、ベクトル制御方法、および、ベクトル制御プログラム。
JP2010504594A (ja) * 2006-09-22 2010-02-12 インテル コーポレイション 文字列を処理するための命令及び論理回路
JP2017027149A (ja) * 2015-07-16 2017-02-02 ルネサスエレクトロニクス株式会社 半導体装置

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008033446A (ja) * 2006-07-26 2008-02-14 Nec Computertechno Ltd ベクトル制御回路、ベクトル処理装置、ベクトル制御方法、および、ベクトル制御プログラム。
US9703564B2 (en) 2006-09-22 2017-07-11 Intel Corporation Instruction and logic for processing text strings
US10261795B2 (en) 2006-09-22 2019-04-16 Intel Corporation Instruction and logic for processing text strings
US9740490B2 (en) 2006-09-22 2017-08-22 Intel Corporation Instruction and logic for processing text strings
US9069547B2 (en) 2006-09-22 2015-06-30 Intel Corporation Instruction and logic for processing text strings
US9448802B2 (en) 2006-09-22 2016-09-20 Intel Corporation Instruction and logic for processing text strings
US9495160B2 (en) 2006-09-22 2016-11-15 Intel Corporation Instruction and logic for processing text strings
US9720692B2 (en) 2006-09-22 2017-08-01 Intel Corporation Instruction and logic for processing text strings
US9632784B2 (en) 2006-09-22 2017-04-25 Intel Corporation Instruction and logic for processing text strings
US9740489B2 (en) 2006-09-22 2017-08-22 Intel Corporation Instruction and logic for processing text strings
JP2010504594A (ja) * 2006-09-22 2010-02-12 インテル コーポレイション 文字列を処理するための命令及び論理回路
US11537398B2 (en) 2006-09-22 2022-12-27 Intel Corporation Instruction and logic for processing text strings
US9063720B2 (en) 2006-09-22 2015-06-23 Intel Corporation Instruction and logic for processing text strings
US9645821B2 (en) 2006-09-22 2017-05-09 Intel Corporation Instruction and logic for processing text strings
US9772846B2 (en) 2006-09-22 2017-09-26 Intel Corporation Instruction and logic for processing text strings
US9772847B2 (en) 2006-09-22 2017-09-26 Intel Corporation Instruction and logic for processing text strings
US9804848B2 (en) 2006-09-22 2017-10-31 Intel Corporation Instruction and logic for processing text strings
JP2014063535A (ja) * 2006-09-22 2014-04-10 Intel Corp 文字列を処理するための命令及び論理回路
US10929131B2 (en) 2006-09-22 2021-02-23 Intel Corporation Instruction and logic for processing text strings
US11023236B2 (en) 2006-09-22 2021-06-01 Intel Corporation Instruction and logic for processing text strings
US11029955B2 (en) 2006-09-22 2021-06-08 Intel Corporation Instruction and logic for processing text strings
JP2022050519A (ja) * 2006-09-22 2022-03-30 インテル コーポレイション プロセッサ、システム及び方法
JP2017027149A (ja) * 2015-07-16 2017-02-02 ルネサスエレクトロニクス株式会社 半導体装置

Similar Documents

Publication Publication Date Title
US5710902A (en) Instruction dependency chain indentifier
US4903228A (en) Single cycle merge/logic unit
JPH0719244B2 (ja) アレイ・プロセツサ
JPS6367705B2 (ja)
KR20180126520A (ko) 벡터 술어 명령
JPS61160176A (ja) ベクトル処理装置
JP3573506B2 (ja) 述語、及びブール式を解くためのコンピュータ・システム、及び方法
US4954947A (en) Instruction processor for processing branch instruction at high speed
US4417305A (en) Method for evaluating boolean expressions
JPH01271875A (ja) ベクトル演算制御方式
JPH0380324A (ja) 中央演算処理装置
JPH02293931A (ja) 制御装置
JPH01271874A (ja) ベクトル演算制御方式
RU2066067C1 (ru) Центральный процессор для многопроцессорной вычислительной системы
JPH0616287B2 (ja) マスク付きベクトル演算処理装置
JP2006515446A (ja) 関連アプリケーションを相互参照するカルテシアンコントローラを有するデータ処理システム
JPS59184944A (ja) 丸め演算方式
JPS61141077A (ja) ベクトル演算装置
Kartashev et al. Adaptable pipeline system with dynamic architecture
JPS6243775A (ja) ベクトル演算装置
JPH01223565A (ja) 情報処理装置
Kowalik et al. An implementation of the fast Givens transformations on a MIMD computer
JPS6042983B2 (ja) 命令制御方式
JPS58205256A (ja) データ処理方法
JPH0338613B2 (ja)