JPH0517589B2 - - Google Patents
Info
- Publication number
- JPH0517589B2 JPH0517589B2 JP61172197A JP17219786A JPH0517589B2 JP H0517589 B2 JPH0517589 B2 JP H0517589B2 JP 61172197 A JP61172197 A JP 61172197A JP 17219786 A JP17219786 A JP 17219786A JP H0517589 B2 JPH0517589 B2 JP H0517589B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- control
- register
- control vector
- operand
- 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 - Lifetime
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
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はベクトル演算制御方式に係り、特に
IF文のネストを含んだDOループの処理の高速化
に好適なベクトルオペランドの演算制御方式に関
する。
IF文のネストを含んだDOループの処理の高速化
に好適なベクトルオペランドの演算制御方式に関
する。
本発明で対象とする計算機システムを第2図に
示す。命令制御部1は、計算機システムで実行さ
れる命令の解読、演算部2、記憶制御部3への動
作指令、命令実行順序の制御等を行う。演算部2
は命令の実行を行う。記憶制御部3は、主記憶装
置4に対するデータの読み出し(以下「フエツ
チ」と呼ぶことにする)、データの格納(以下
「ストア」と呼ぶことにする)を行う。主記憶装
置4は、アドレスづけされた記憶媒体であり、記
憶制御部3の指令により、データのフエツチ、ス
トアを行う。以後、「アドレス」という時は、主
記憶装置4のアドレスを指すものとする。汎用レ
ジスタ群5は、複数の番号づけされた汎用レジス
タからなり、使用するレジスタの番号は命令中に
指定される。
示す。命令制御部1は、計算機システムで実行さ
れる命令の解読、演算部2、記憶制御部3への動
作指令、命令実行順序の制御等を行う。演算部2
は命令の実行を行う。記憶制御部3は、主記憶装
置4に対するデータの読み出し(以下「フエツ
チ」と呼ぶことにする)、データの格納(以下
「ストア」と呼ぶことにする)を行う。主記憶装
置4は、アドレスづけされた記憶媒体であり、記
憶制御部3の指令により、データのフエツチ、ス
トアを行う。以後、「アドレス」という時は、主
記憶装置4のアドレスを指すものとする。汎用レ
ジスタ群5は、複数の番号づけされた汎用レジス
タからなり、使用するレジスタの番号は命令中に
指定される。
こゝで、演算部2の中に、ベクトル演算を行う
プロセツサが内蔵される。このプロセツサを内蔵
アレイプロセツサ(IAP:Integrated Array
Processor)と呼び、このIAPで使う命令をIAP
命令と呼ぶ。第3図にIAP命令の形式で示す。該
命令の動作は、「Bフイールドに示された汎用レ
ジスタの値+Dフイールドの値」(以後、副命令
と呼ぶことにする)によつて指定される。R1フ
イールドで示された汎用レジスタは、演算すべき
ベクトル要素の起点を示す初期カウントを格納す
る。R1フイールド中の数+1で示された汎用レ
ジスタは、演算回数に対応するベクトル長を格納
する。R3フイールドで示された汎用レジスタは、
OAV(Operand Address Vector)の最初のバイ
トの主記憶アドレスを与える。
プロセツサが内蔵される。このプロセツサを内蔵
アレイプロセツサ(IAP:Integrated Array
Processor)と呼び、このIAPで使う命令をIAP
命令と呼ぶ。第3図にIAP命令の形式で示す。該
命令の動作は、「Bフイールドに示された汎用レ
ジスタの値+Dフイールドの値」(以後、副命令
と呼ぶことにする)によつて指定される。R1フ
イールドで示された汎用レジスタは、演算すべき
ベクトル要素の起点を示す初期カウントを格納す
る。R1フイールド中の数+1で示された汎用レ
ジスタは、演算回数に対応するベクトル長を格納
する。R3フイールドで示された汎用レジスタは、
OAV(Operand Address Vector)の最初のバイ
トの主記憶アドレスを与える。
OAVは、ベクトルオペランドに対するVDT
(Vector Descriptor Table)のアドレスを与え
る主記憶上のテーブルである。具体的には、第3
図に示すように、VDT2(第2オペランドの
VDT)の先頭アドレス、VDT3(第3オペラン
ドのVDT)の先頭アドレス、VDT1(第1オペ
ランドのVDT)の先頭アドレス、コントロール
ベクトルアドレスから成る。
(Vector Descriptor Table)のアドレスを与え
る主記憶上のテーブルである。具体的には、第3
図に示すように、VDT2(第2オペランドの
VDT)の先頭アドレス、VDT3(第3オペラン
ドのVDT)の先頭アドレス、VDT1(第1オペ
ランドのVDT)の先頭アドレス、コントロール
ベクトルアドレスから成る。
VDTは第4図に示す形式をしており、最左端
または最右端のベクトル要素アドレス(すなわち
演算の対象となる最初のベクトル要素のアドレ
ス)、インクリメント値(ベクトル要素間の間隔)
から成る。
または最右端のベクトル要素アドレス(すなわち
演算の対象となる最初のベクトル要素のアドレ
ス)、インクリメント値(ベクトル要素間の間隔)
から成る。
コントロールベクトルは、0または1のビツト
列であり、第5図に示す形式をしている。コント
ロールベクトルの各々のビツトがオペレーシヨン
単位に対応する。つまり、左端のビツトが初期カ
ウント0に対応し、順次右へ1,2,…に対応す
る。コントロールベクトルの長さは、R1フイー
ルド中の数+1で示された汎用レジスタに示され
た数である。
列であり、第5図に示す形式をしている。コント
ロールベクトルの各々のビツトがオペレーシヨン
単位に対応する。つまり、左端のビツトが初期カ
ウント0に対応し、順次右へ1,2,…に対応す
る。コントロールベクトルの長さは、R1フイー
ルド中の数+1で示された汎用レジスタに示され
た数である。
IAP命令は、第2オペランドと第3オペランド
を演算して、第1オペランドに置きこむ。演算の
種類は、前述の副指令によつて指定され、各オペ
ランドベクトルのアドレスは前述のVDTに示さ
れる。演算の最初のオペランドの位置は、各オペ
ランドの先頭アドレスに、前述のR1フイールド
で示される初期カウントとVDT中のインクリメ
ント値の積を代数的に加算することによつて得ら
れる。R1フイールドで示されるる汎用レジスタ
の内容は、1組のベクトル要素に対する演算が終
了するたびに1ずつ加算され、次の演算は、各オ
ペランドの先頭アドレスに、この更新されたR1
レジスタ中の数とVDT中のインクリメント値の
積を代数的に加算したアドレスにあるオペランド
に対して行われる。R1レジスタの内容がR1+1
レジスタの内容と等しくなつた時、命令の実行は
終了する。
を演算して、第1オペランドに置きこむ。演算の
種類は、前述の副指令によつて指定され、各オペ
ランドベクトルのアドレスは前述のVDTに示さ
れる。演算の最初のオペランドの位置は、各オペ
ランドの先頭アドレスに、前述のR1フイールド
で示される初期カウントとVDT中のインクリメ
ント値の積を代数的に加算することによつて得ら
れる。R1フイールドで示されるる汎用レジスタ
の内容は、1組のベクトル要素に対する演算が終
了するたびに1ずつ加算され、次の演算は、各オ
ペランドの先頭アドレスに、この更新されたR1
レジスタ中の数とVDT中のインクリメント値の
積を代数的に加算したアドレスにあるオペランド
に対して行われる。R1レジスタの内容がR1+1
レジスタの内容と等しくなつた時、命令の実行は
終了する。
コントロールベクトルは、演算の実行の許可を
行う。コントロールベクトルは、第7図のような
条件文を含んだDOループ計算に使われる。第7
図の例の場合、A(I)=B(I)となるIに対するコン
トロールベクトルビツトを1にして、A(I)≠B(I)
とするIに対するコントロールベクトルビツトを
0にしておき、1でありコントロールベクトルビ
ツトに対応する要素に対してのみC(I)=D(I)+E
(I)の演算をすればよい。
行う。コントロールベクトルは、第7図のような
条件文を含んだDOループ計算に使われる。第7
図の例の場合、A(I)=B(I)となるIに対するコン
トロールベクトルビツトを1にして、A(I)≠B(I)
とするIに対するコントロールベクトルビツトを
0にしておき、1でありコントロールベクトルビ
ツトに対応する要素に対してのみC(I)=D(I)+E
(I)の演算をすればよい。
このため、従来の計算機システムには、「マス
ク命令」と「コントロールベクトル生成命令」が
用意されている。「マスク命令」は、副指令中の
「コントロールフラグビツト」が1である命令が
「マスク」命令であり、コントロールベクトルビ
ツトが1である要素に対してのみ、副指令中に指
定された演算を行い、コントロールベクトルビツ
トが0である要素に対しては演算を行わない。
「コントロールベクトル生成命令」は、第2オペ
ランドの各ベクトル要素に対応する第3オペラン
ドの各ベクトル要素が比較され、両オペランドが
副指令中に指定された条件(たとえば第2オペラ
ンド=第3オペランド)を満せば、対応する第1
オペランドの要素に「1」、そうでなければ「0」
が格納される。
ク命令」と「コントロールベクトル生成命令」が
用意されている。「マスク命令」は、副指令中の
「コントロールフラグビツト」が1である命令が
「マスク」命令であり、コントロールベクトルビ
ツトが1である要素に対してのみ、副指令中に指
定された演算を行い、コントロールベクトルビツ
トが0である要素に対しては演算を行わない。
「コントロールベクトル生成命令」は、第2オペ
ランドの各ベクトル要素に対応する第3オペラン
ドの各ベクトル要素が比較され、両オペランドが
副指令中に指定された条件(たとえば第2オペラ
ンド=第3オペランド)を満せば、対応する第1
オペランドの要素に「1」、そうでなければ「0」
が格納される。
第7図に示したDOループは、最初に、「コン
トロールベクトル生成命令」を実行して、A(I)=
B(I)となる要素が1になるコントロールベクトル
を生成し、該コントロールベクトルを用いて「マ
スク命令」を実行することによつて実行される。
トロールベクトル生成命令」を実行して、A(I)=
B(I)となる要素が1になるコントロールベクトル
を生成し、該コントロールベクトルを用いて「マ
スク命令」を実行することによつて実行される。
なお、上記「マスク命令」と「コントロールベ
クトル生成命令」に関しては、例えば
HITACM180/200H/280H内蔵アレイプロセツ
サ解説書(資料番号8080−2−041−20)に記載
されている。
クトル生成命令」に関しては、例えば
HITACM180/200H/280H内蔵アレイプロセツ
サ解説書(資料番号8080−2−041−20)に記載
されている。
従来技術では、コントロールベクトルの生成を
行うコントロールベクトル生成命令はコントロー
ルベクトルの制御を受けなかつた。したがつて、
第7図のような条件文を含んだDOループはIAP
命令に展開できるが、第8図のようなIF文のネ
ストを含むDOループは、2つ以上のコントロー
ルベクトルの制御を受けるため、IAP命令に展開
できず、実行時間が長くなる問題があつた。
行うコントロールベクトル生成命令はコントロー
ルベクトルの制御を受けなかつた。したがつて、
第7図のような条件文を含んだDOループはIAP
命令に展開できるが、第8図のようなIF文のネ
ストを含むDOループは、2つ以上のコントロー
ルベクトルの制御を受けるため、IAP命令に展開
できず、実行時間が長くなる問題があつた。
本発明の目的は、IF文のネストを含んだDOル
ープをIAP命令に展開して処理の高速化を図るベ
クトル演算制御方式を提供することにある。
ープをIAP命令に展開して処理の高速化を図るベ
クトル演算制御方式を提供することにある。
本発明は、各要素が1ビツトからなるコントロ
ールベクトルを保持するコントロールベクトルレ
ジスタを具備すると共に、ベクトル演算命令やコ
ントロールベクトル生成命令などのベクトル命令
を実行する計算システムにおいて、二つのベクト
ルオペランドの各要素の比較結果を保持する手段
と、前記保持された比較結果を、前記コントロー
ルベクトルレジスタに保持されているコントロー
ルベクトルの対応する要素の値に応じて有効ある
いは無効とする手段と、前記コントロールベクト
ルにより有効あるいは無効の制御を受けた比較結
果を該コントロールベクトルにセツトする手段を
設け、コントロールベクトル生成命令の実行にお
いて、既に保持されているコントロールベクトル
の制御を可能にしたことである。
ールベクトルを保持するコントロールベクトルレ
ジスタを具備すると共に、ベクトル演算命令やコ
ントロールベクトル生成命令などのベクトル命令
を実行する計算システムにおいて、二つのベクト
ルオペランドの各要素の比較結果を保持する手段
と、前記保持された比較結果を、前記コントロー
ルベクトルレジスタに保持されているコントロー
ルベクトルの対応する要素の値に応じて有効ある
いは無効とする手段と、前記コントロールベクト
ルにより有効あるいは無効の制御を受けた比較結
果を該コントロールベクトルにセツトする手段を
設け、コントロールベクトル生成命令の実行にお
いて、既に保持されているコントロールベクトル
の制御を可能にしたことである。
コントロールベクトルの制御をうけるコントロ
ールベクトル生成命令は、以下に示す仕様とす
る。
ールベクトル生成命令は、以下に示す仕様とす
る。
第2オペランドの各ベクトル要素と対応する第
3オペランドの各ベクトル要素が比較され、対応
するコントロールベクトルのビツトが「0」なら
ば、対応する第1オペランドの要素に「0」が格
納される。対応するコントロールベクトルのビツ
トが「1」ならば、第2,第3オペランドが副指
令中に指定された条件(たとえば、第2オペラン
ド=第3オペランド)を満たせば、対応する第1
オペランドの要素に「1」が、そうでなければ
「0」が格納される。
3オペランドの各ベクトル要素が比較され、対応
するコントロールベクトルのビツトが「0」なら
ば、対応する第1オペランドの要素に「0」が格
納される。対応するコントロールベクトルのビツ
トが「1」ならば、第2,第3オペランドが副指
令中に指定された条件(たとえば、第2オペラン
ド=第3オペランド)を満たせば、対応する第1
オペランドの要素に「1」が、そうでなければ
「0」が格納される。
こゝでは、「コントロールベクトルの制御をう
けるコントロールベクトル生成命令」として、副
指令中に条件「第2オペランド=第3オペラン
ド」が指定されたCEQE命令を例にとる。以下、
このCEQE命令を用いると、第8図のようなIF文
のネストを含むDOループがIAP命令に展開でき
ることを第9図にしたがつて説明する。
けるコントロールベクトル生成命令」として、副
指令中に条件「第2オペランド=第3オペラン
ド」が指定されたCEQE命令を例にとる。以下、
このCEQE命令を用いると、第8図のようなIF文
のネストを含むDOループがIAP命令に展開でき
ることを第9図にしたがつて説明する。
ベクトルA,B,C,Dが図中の数値であると
する。まず、ベクトルA,Bをそれぞれ第2,第
3オペランドとして、従来のコントロールベクト
ル生成命令(コントロールベクトルの制御をうけ
ない)を実行する。結果の第1オペランドは、A
(I)=B(I)となる要素番号のデータが1、A(I)≠B
(I)となる要素番号のデータが0となるベクトル
(ベクトルEとする)になる。次に、このベクト
ルEをコントロールベクトルとして、前記CEQE
命令(コントロールベクトルの制御をうけるコン
トロールベクトル生成命令)を、ベクトルC,D
をそれぞれ、第2,第3オペランドとして実行す
ると、結果の第1オペランドは、ベクトルEの1
である要素番号の中で、C(I)=D(I)となる要素番
号のデータが1、その他の要素番号のデータが0
となるベクトル(ベクトルFとする)になる。次
に、このベクトルFをコントロールベクトルとし
て、ベクトルX,Yにマスク命令を実行すれば、
第8図のDOループが実現されたことになる。す
なわち、第8図のDOループがIAP命令に展開さ
れる。
する。まず、ベクトルA,Bをそれぞれ第2,第
3オペランドとして、従来のコントロールベクト
ル生成命令(コントロールベクトルの制御をうけ
ない)を実行する。結果の第1オペランドは、A
(I)=B(I)となる要素番号のデータが1、A(I)≠B
(I)となる要素番号のデータが0となるベクトル
(ベクトルEとする)になる。次に、このベクト
ルEをコントロールベクトルとして、前記CEQE
命令(コントロールベクトルの制御をうけるコン
トロールベクトル生成命令)を、ベクトルC,D
をそれぞれ、第2,第3オペランドとして実行す
ると、結果の第1オペランドは、ベクトルEの1
である要素番号の中で、C(I)=D(I)となる要素番
号のデータが1、その他の要素番号のデータが0
となるベクトル(ベクトルFとする)になる。次
に、このベクトルFをコントロールベクトルとし
て、ベクトルX,Yにマスク命令を実行すれば、
第8図のDOループが実現されたことになる。す
なわち、第8図のDOループがIAP命令に展開さ
れる。
本発明は第2図中の演算部2に係わる。第1図
に本発明の一実施例を示す。
に本発明の一実施例を示す。
第1図で、10はコントロールベクトルレジス
タであり、第5図に示すコントロールベクトルが
第3図のOAVの中のコントロールベクトルアド
レスによつて示される主記憶アドレスから取り出
されて格納される。シフタ12はレジスタ10の
値を左または右にシフトする。レジスタ10の先
頭ビツトの値は演算結果有効信号14となる。フ
エツチアドレスレジスタ15,17は、それぞれ
フエツチするデータのアドレスを格納し、該アド
レスをアドレス線19,20を適して記憶制御部
3に送り、それぞれ該主記憶アドレスから読み出
されたデータを、データ線21,22にセツトす
る。ストアアドレスレジスタ28は、ストアする
データのアドレスを格納し、該アドレスをアドレ
ス線35を通して記憶制御部3に送り、ストアデ
ータレジスタ32に格納されているデータを、該
主記憶アドレスにストアする。
タであり、第5図に示すコントロールベクトルが
第3図のOAVの中のコントロールベクトルアド
レスによつて示される主記憶アドレスから取り出
されて格納される。シフタ12はレジスタ10の
値を左または右にシフトする。レジスタ10の先
頭ビツトの値は演算結果有効信号14となる。フ
エツチアドレスレジスタ15,17は、それぞれ
フエツチするデータのアドレスを格納し、該アド
レスをアドレス線19,20を適して記憶制御部
3に送り、それぞれ該主記憶アドレスから読み出
されたデータを、データ線21,22にセツトす
る。ストアアドレスレジスタ28は、ストアする
データのアドレスを格納し、該アドレスをアドレ
ス線35を通して記憶制御部3に送り、ストアデ
ータレジスタ32に格納されているデータを、該
主記憶アドレスにストアする。
30はIAP演算部であり、フエツチデータレジ
スタ23,24、演算器25、コントロールビツ
トレジスタ26、結果レジスタ27、判定論理部
29、抑止論理部31からなる。フエツチデータ
レジスタ23,24は前述のように、主記憶から
読み出されたデータを格納する。演算器25はレ
ジスタ23,24中のデータを用いて演算を行
う。演算の種類はIAP命令の副指令中に示され
る。コントロールベクトル生成命令の場合は、副
指令中に指定された条件(CEQE命令の場合は、
第2オペランド=第3オペランド)が成立するか
どうかを、演算結果から判定論理部29で判定
し、成立すると結果レジスタ27に1をセツトす
る。コントロールビツトレジスタ26は、コント
ロールベクトルレジスタ10の演算結果有効信号
14をセツトする。抑止論理部31では、レジス
タ26が1であると、レジスタ27の値を抑止せ
ずに結果コントロールビツト線37にのせる。レ
ジスタ26が0であると、レジスタ27の値を抑
止し、結果コントロールビツト線37は0にな
る。
スタ23,24、演算器25、コントロールビツ
トレジスタ26、結果レジスタ27、判定論理部
29、抑止論理部31からなる。フエツチデータ
レジスタ23,24は前述のように、主記憶から
読み出されたデータを格納する。演算器25はレ
ジスタ23,24中のデータを用いて演算を行
う。演算の種類はIAP命令の副指令中に示され
る。コントロールベクトル生成命令の場合は、副
指令中に指定された条件(CEQE命令の場合は、
第2オペランド=第3オペランド)が成立するか
どうかを、演算結果から判定論理部29で判定
し、成立すると結果レジスタ27に1をセツトす
る。コントロールビツトレジスタ26は、コント
ロールベクトルレジスタ10の演算結果有効信号
14をセツトする。抑止論理部31では、レジス
タ26が1であると、レジスタ27の値を抑止せ
ずに結果コントロールビツト線37にのせる。レ
ジスタ26が0であると、レジスタ27の値を抑
止し、結果コントロールビツト線37は0にな
る。
シフタ33は、ストアデータレジスタ32の内
容を左右にシフトする。ワークレジスタ34は、
シフタ33の出力と結果コントロールビツト線3
7の内容をセツトする。
容を左右にシフトする。ワークレジスタ34は、
シフタ33の出力と結果コントロールビツト線3
7の内容をセツトする。
本発明における演算部2は、マイクロプログラ
ムで制御される。CEQE命令のマイクロプログラ
ムを第6図に示す。
ムで制御される。CEQE命令のマイクロプログラ
ムを第6図に示す。
該マイクロプログラムの実行に先立つて、命令
制御部1は、フエツチアドレスレジスタ15に第
2オペランドの先頭アドレス(第3図のVDT2
中にある)を、フエツチアドレスレジスタ17に
第3オペランドの先頭アドレス(第3図のVDT
3中にある)を、ストアアドレスレジスタ28に
第1オペランドアドレス(第3図のVDT1中に
ある)を、コントロールベクトルレジスタ10に
コントロールベクトル(第3図のコントロールベ
クトルアドレスで示される主記憶中にある)をセ
ツトしておく。また、ストアデータレジスタ32
はゼロクリアしておく。これが前処理である。
制御部1は、フエツチアドレスレジスタ15に第
2オペランドの先頭アドレス(第3図のVDT2
中にある)を、フエツチアドレスレジスタ17に
第3オペランドの先頭アドレス(第3図のVDT
3中にある)を、ストアアドレスレジスタ28に
第1オペランドアドレス(第3図のVDT1中に
ある)を、コントロールベクトルレジスタ10に
コントロールベクトル(第3図のコントロールベ
クトルアドレスで示される主記憶中にある)をセ
ツトしておく。また、ストアデータレジスタ32
はゼロクリアしておく。これが前処理である。
マイクロプログラムのステツプを実行する時
は、演算部2に起動信号が出される。該起動信号
で、レジスタ10,15,17,23,24,2
6,27,32,34はセツトされる。
は、演算部2に起動信号が出される。該起動信号
で、レジスタ10,15,17,23,24,2
6,27,32,34はセツトされる。
マイクロプログラムのステツプを実行する
と、IAP演算部30に起動がかゝる。演算部25
は、フエツチデータレジスタ23に格納されてい
る第2オペランドベクトルの先頭要素から、フエ
ツチデータレジスタ24に格納されている第3オ
ペランドの先頭要素を減算して、その結果を判定
論理部29で判定し、第2オペランド=第3オペ
ランドなら1を、そうでなければ0を結果レジス
タ27にセツトする。一方、コントロールベクト
ルの先頭要素、すなわち、レジスタ10の先頭ビ
ツトが1の時は、演算結果有効信号14は1とな
り、コントロールビツトレジスタ26は1にな
る。同様に、コントロールベクトルの第1要素が
0の時は、コントロールビツトレジスタ26は0
になる。
と、IAP演算部30に起動がかゝる。演算部25
は、フエツチデータレジスタ23に格納されてい
る第2オペランドベクトルの先頭要素から、フエ
ツチデータレジスタ24に格納されている第3オ
ペランドの先頭要素を減算して、その結果を判定
論理部29で判定し、第2オペランド=第3オペ
ランドなら1を、そうでなければ0を結果レジス
タ27にセツトする。一方、コントロールベクト
ルの先頭要素、すなわち、レジスタ10の先頭ビ
ツトが1の時は、演算結果有効信号14は1とな
り、コントロールビツトレジスタ26は1にな
る。同様に、コントロールベクトルの第1要素が
0の時は、コントロールビツトレジスタ26は0
になる。
抑止論理部31は、レジスタ26の値が0であ
れば、結果コントロールビツト線37に0を、レ
ジスタ26の値が1であれば、第2オペランド=
第3オペランドの時、結果コントロールビツト線
37に1、第2オペランド≠第3オペランドの
時、結果コントロールビツト線37に0をのせ
る。
れば、結果コントロールビツト線37に0を、レ
ジスタ26の値が1であれば、第2オペランド=
第3オペランドの時、結果コントロールビツト線
37に1、第2オペランド≠第3オペランドの
時、結果コントロールビツト線37に0をのせ
る。
コントロールビツト線37の値がワークレジス
タ34の末尾1ビツトに入る。ワークレジスタ3
4の末尾以外には、ストアデータレジスタ32の
値がシフタ33で1ビツト左シフトされてセツト
されるが、レジスタ32は初め0にセツトされて
いる。ワークレジスタ34の内容は、ストアレジ
スタ32にセツトされる。このようにして、最も
新しく生成されたコントロールベクトルのビツト
の値がストアデータレジスタ32の末尾に入る。
タ34の末尾1ビツトに入る。ワークレジスタ3
4の末尾以外には、ストアデータレジスタ32の
値がシフタ33で1ビツト左シフトされてセツト
されるが、レジスタ32は初め0にセツトされて
いる。ワークレジスタ34の内容は、ストアレジ
スタ32にセツトされる。このようにして、最も
新しく生成されたコントロールベクトルのビツト
の値がストアデータレジスタ32の末尾に入る。
マイクロプログラムのステツプでは、同時
に、次のベクトル要素の処理のために、加算器1
6によりフエツチアドレスレジスタ15の内容に
第2オペランドのインクリメント値(第3図の
VDT2中にある)を加える。この値が、第2オ
ペランドベクトルの次の要素アドレスである。該
アドレスを用いて、第2オペランドベクトルの次
の要素をフエツチする。同時に、加算器18によ
りフエツチアドレスレジスタ17の内容に第3オ
ペランドのインクリメント値(第3図のVDT3
中にある)を加える。該レジスタ中のアドレス
(第3オペランドの次の要素のアドレスである)
を用いて、第3オペランドベクトルの次の要素を
フエツチする。
に、次のベクトル要素の処理のために、加算器1
6によりフエツチアドレスレジスタ15の内容に
第2オペランドのインクリメント値(第3図の
VDT2中にある)を加える。この値が、第2オ
ペランドベクトルの次の要素アドレスである。該
アドレスを用いて、第2オペランドベクトルの次
の要素をフエツチする。同時に、加算器18によ
りフエツチアドレスレジスタ17の内容に第3オ
ペランドのインクリメント値(第3図のVDT3
中にある)を加える。該レジスタ中のアドレス
(第3オペランドの次の要素のアドレスである)
を用いて、第3オペランドベクトルの次の要素を
フエツチする。
マイクロプログラムのステツプでは、また、
コントロールベクトルレジスタ10の中のデータ
をシフタ12を使つて、1ビツト左にシフトす
る。このシフト後のデータの先頭ビツトが、次の
ベクトル要素に対応するコントロールベクトルビ
ツトになる。
コントロールベクトルレジスタ10の中のデータ
をシフタ12を使つて、1ビツト左にシフトす
る。このシフト後のデータの先頭ビツトが、次の
ベクトル要素に対応するコントロールベクトルビ
ツトになる。
マイクロプログラムのステツプでは、また、
「1要素処理した」ということで、R1レジスタ
(初期カウントがはいつている)の値に1を加え
る。
「1要素処理した」ということで、R1レジスタ
(初期カウントがはいつている)の値に1を加え
る。
R1レジスタの値(最後に処理した要素の番号)
がR1+1レジスタの値(最終要素の番号)に等
しければ、演算終了とみなしてステツプに行
く。等しくなければ、ステツプに戻つて、次の
要素の処理を始める。
がR1+1レジスタの値(最終要素の番号)に等
しければ、演算終了とみなしてステツプに行
く。等しくなければ、ステツプに戻つて、次の
要素の処理を始める。
前述したように、各要素が演算される毎に、最
も新しく生成されたコントロールベクトルビツト
がストアデータレジスタ32の末尾に入り、それ
以前に生成されコントロールベクトルのビツト列
が、その末尾ビツトの前に並ぶため、ステツプ
に移つた時は、結果の生成されたコントロールベ
クトルが、ストアデータレジスタ32に左から順
に並んではいつている。
も新しく生成されたコントロールベクトルビツト
がストアデータレジスタ32の末尾に入り、それ
以前に生成されコントロールベクトルのビツト列
が、その末尾ビツトの前に並ぶため、ステツプ
に移つた時は、結果の生成されたコントロールベ
クトルが、ストアデータレジスタ32に左から順
に並んではいつている。
ステツプでは、ストアデータレジスタ32中
の生成されたコントロールベクトルを、ストアア
ドレスレジスタ28中のアドレス(第3図の
VDT1中に示される第1オペランドアドレス)
にストアする。ステツプの終了後、後処理に移
る。後処理では、最終オペレーシヨン単位の実行
に引い続いて起こる割込みの受付けやR1レジス
タの0クリアなどを行う。
の生成されたコントロールベクトルを、ストアア
ドレスレジスタ28中のアドレス(第3図の
VDT1中に示される第1オペランドアドレス)
にストアする。ステツプの終了後、後処理に移
る。後処理では、最終オペレーシヨン単位の実行
に引い続いて起こる割込みの受付けやR1レジス
タの0クリアなどを行う。
以上の動作によつて、CEQE命令が実行され
る。他の種類の「コントロールベクトルの制御を
うけるコントロールベクトル生成命令」も同様に
実行される。
る。他の種類の「コントロールベクトルの制御を
うけるコントロールベクトル生成命令」も同様に
実行される。
本発明によれば、コントロールベクトルの各ビ
ツトの値に応じて、二つのベクトルオペランドの
対応する要素の比較結果を有効化/無効化するこ
とによつて、コントロールベクトル生成命令がコ
ントロールベクトルの制御を受けるようにするこ
とができるので、IF文のネストを含むDOループ
をIAP命令に展開でき、該DOループの処理の高
速化が達成される。
ツトの値に応じて、二つのベクトルオペランドの
対応する要素の比較結果を有効化/無効化するこ
とによつて、コントロールベクトル生成命令がコ
ントロールベクトルの制御を受けるようにするこ
とができるので、IF文のネストを含むDOループ
をIAP命令に展開でき、該DOループの処理の高
速化が達成される。
第1図は本発明の一実施例の構成図、第2図は
本発明で対象とする計算機システムの概略ブロツ
ク図、第3図は本発明で対象とするIAP命令の形
式を示す図、第4図は第3図中のVDTの形式を
示す図、第5図は第3図中のコントロールベクト
ルの形式を示す図、第6図は本発明を実現するた
めのマイクロプログラムの一実施例を示す図、第
7図及び第8図はプログラムの一例を示す図、第
9図は本発明による処理を説明するためのデータ
を示す図である。 10……コントロールベクトルレジスタ、12
……シフタ、15,17……フエツチアドレスレ
ジスタ、23,24……フエツチデータレジス
タ、25……演算器、26……コントロールビツ
トレジスタ、27……結果レジスタ、28……ス
トアレジスタ、29……判定論理部、30……
IAP演算部、31……抑止論理部、32……スト
アデータレジスタ、33……シフタ、34……ワ
ークレジスタ。
本発明で対象とする計算機システムの概略ブロツ
ク図、第3図は本発明で対象とするIAP命令の形
式を示す図、第4図は第3図中のVDTの形式を
示す図、第5図は第3図中のコントロールベクト
ルの形式を示す図、第6図は本発明を実現するた
めのマイクロプログラムの一実施例を示す図、第
7図及び第8図はプログラムの一例を示す図、第
9図は本発明による処理を説明するためのデータ
を示す図である。 10……コントロールベクトルレジスタ、12
……シフタ、15,17……フエツチアドレスレ
ジスタ、23,24……フエツチデータレジス
タ、25……演算器、26……コントロールビツ
トレジスタ、27……結果レジスタ、28……ス
トアレジスタ、29……判定論理部、30……
IAP演算部、31……抑止論理部、32……スト
アデータレジスタ、33……シフタ、34……ワ
ークレジスタ。
Claims (1)
- 【特許請求の範囲】 1 各要素が1ビツトからなるコントロールベク
トルを保持するコントロールベクトルレジスタを
持ち、ベクトル演算命令では、オペランドベクト
ルの各要素間の演算を実行し、該演算結果を前記
コントロールベクトルの対応する要素の値に応じ
て有効あるいは無効とし、コントロールベクトル
生成命令では、二つのベクトルオペランドを各要
素毎に比較して、その比較結果を前記コントロー
ルベクトルレジスタの対応するビツト位置に格納
する、ベクトル命令を実行する計算システムにお
いて、 二つのベクトルオペランドの各要素の比較結果
を保持する手段と、前記保持された比較結果を、
前記コントロールベクトルレジスタに保持されて
いるコントロールベクトルの対応する要素の値に
応じて有効あるいは無効とする手段と、 前記コントロールベクトルにより有効あるいは
無効の制御を受けた比較結果を該コントロールベ
クトルにセツトする手段を設け、 前記コントロールベクトル生成命令の実行にお
いて、既に保持されているコントロールベクトル
の制御を可能にしたことを特徴とするベクトル演
算制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17219786A JPS6327975A (ja) | 1986-07-22 | 1986-07-22 | ベクトル演算制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17219786A JPS6327975A (ja) | 1986-07-22 | 1986-07-22 | ベクトル演算制御方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS6327975A JPS6327975A (ja) | 1988-02-05 |
| JPH0517589B2 true JPH0517589B2 (ja) | 1993-03-09 |
Family
ID=15937379
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP17219786A Granted JPS6327975A (ja) | 1986-07-22 | 1986-07-22 | ベクトル演算制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS6327975A (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04342067A (ja) * | 1991-05-20 | 1992-11-27 | Nec Software Ltd | ベクトル演算装置 |
| JP6616608B2 (ja) * | 2015-07-16 | 2019-12-04 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6053908B2 (ja) * | 1980-07-17 | 1985-11-27 | 富士通株式会社 | マスクレジスタを使用した演算方式 |
| JPH0616287B2 (ja) * | 1982-09-29 | 1994-03-02 | 株式会社日立製作所 | マスク付きベクトル演算処理装置 |
-
1986
- 1986-07-22 JP JP17219786A patent/JPS6327975A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS6327975A (ja) | 1988-02-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102413832B1 (ko) | 벡터 곱셈 덧셈 명령 | |
| US4740893A (en) | Method for reducing the time for switching between programs | |
| JPH04172533A (ja) | 電子計算機 | |
| US4396982A (en) | Microinstruction controlled data processing system including microinstructions with data align control feature | |
| US4954947A (en) | Instruction processor for processing branch instruction at high speed | |
| US5757685A (en) | Data processing system capable of processing long word data | |
| JP3578883B2 (ja) | データ処理装置 | |
| JP3834145B2 (ja) | ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法 | |
| JPH0517589B2 (ja) | ||
| KR100188374B1 (ko) | 연산처리장치 | |
| JPS61173345A (ja) | 計算機システム | |
| JP2001216136A (ja) | 加算回路およびプロセッサ | |
| JPS6125166B2 (ja) | ||
| JP2625510B2 (ja) | 計算機システム | |
| JP3568737B2 (ja) | 条件実行命令を備えるマイクロプロセッサ | |
| JPH07114534A (ja) | 擬似ベクトルプロセッサ | |
| CA1155232A (en) | Pipelined digital signal processor using a common data and control bus | |
| JPH06162067A (ja) | ベクトル命令制御装置および制御方法 | |
| JP2741717B2 (ja) | ベクトル処理装置 | |
| JPS6235694B2 (ja) | ||
| JPH04137169A (ja) | 情報処理装置 | |
| JPH0222417B2 (ja) | ||
| JPH03204079A (ja) | データ処理システムおよびデータ処理装置 | |
| JPH09325953A (ja) | プロセッサおよびデータ処理装置 | |
| JPH0997180A (ja) | プログラマブルコントローラ |