JPH0259961A - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH0259961A JPH0259961A JP21194388A JP21194388A JPH0259961A JP H0259961 A JPH0259961 A JP H0259961A JP 21194388 A JP21194388 A JP 21194388A JP 21194388 A JP21194388 A JP 21194388A JP H0259961 A JPH0259961 A JP H0259961A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- array
- register
- instruction
- element number
- 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
Links
- 230000010365 information processing Effects 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 230000008685 targeting Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はマスク機能付きのベクトル演算を行なうことが
できる情報処理装置に関する。
できる情報処理装置に関する。
科学技術計算等に於いては配列データを扱う場合が非常
に多く、配列データに対する演算はしばしば各々の配列
要素に対する同一演算の繰返しとなる。このような配列
データに対する演算を高速に行なうため、いわゆるベク
トル命令を使用できるようにした情報処理装置が従来よ
り実用化されている。
に多く、配列データに対する演算はしばしば各々の配列
要素に対する同一演算の繰返しとなる。このような配列
データに対する演算を高速に行なうため、いわゆるベク
トル命令を使用できるようにした情報処理装置が従来よ
り実用化されている。
ところで、配列データに対する演算に於いては、無条件
に全配列要素に対して演算操作を行なって良い場合と、
特定の条件を満足させる配列要素に対してしか演算操作
を行なってはならない場合とがある、後者の一例として
第3図に示すようなFORTRAN言語で記述したプロ
グラムがある。
に全配列要素に対して演算操作を行なって良い場合と、
特定の条件を満足させる配列要素に対してしか演算操作
を行なってはならない場合とがある、後者の一例として
第3図に示すようなFORTRAN言語で記述したプロ
グラムがある。
第3図に示したプログラムは、各々N個の配列要素から
なる配列データA (i) 、 B (i)、 C(
i)、D (i)と、別の数値データEとに対して、配
列AO1番目(i=1〜N)の配列要素が1ゼロ”以上
である場合は配列Cと配列りとのそれぞれi番目の配列
要素の積を計算し、その結果を配列Bのi番目の配列要
素とし、配列Aのi番目の配列要素が負の値である場合
は配列Bのi番目の配列要素に固定値Eを入れることを
示している。
なる配列データA (i) 、 B (i)、 C(
i)、D (i)と、別の数値データEとに対して、配
列AO1番目(i=1〜N)の配列要素が1ゼロ”以上
である場合は配列Cと配列りとのそれぞれi番目の配列
要素の積を計算し、その結果を配列Bのi番目の配列要
素とし、配列Aのi番目の配列要素が負の値である場合
は配列Bのi番目の配列要素に固定値Eを入れることを
示している。
ところで、第3図のプログラムに示したような配列デー
タに対する条件付きの演算を行なう場合、演算を高速に
実行するためマスク制御付ベクトル命令が一般に使用さ
れる。第4図はマスク制御付ベクトル命令を使用してプ
ログラムを実行する際の実行手順を示したフローチャー
トであり、先ず、マスク生成命令が実行され、第3図の
プログラムの文番号20に対応するベクトルマスクデー
タが得られる。即ち、Ai≧00場合は対応するベクト
ルマスクデータMASKiの内容を“1”として、そか
でない場合は“0”とする。このベクトルマスクデータ
MASKiは一般には主記憶装置上に格納されたり、或
いはベクトルマスクレジスタとして専用に設けられたレ
ジスタファイル等に格納される。
タに対する条件付きの演算を行なう場合、演算を高速に
実行するためマスク制御付ベクトル命令が一般に使用さ
れる。第4図はマスク制御付ベクトル命令を使用してプ
ログラムを実行する際の実行手順を示したフローチャー
トであり、先ず、マスク生成命令が実行され、第3図の
プログラムの文番号20に対応するベクトルマスクデー
タが得られる。即ち、Ai≧00場合は対応するベクト
ルマスクデータMASKiの内容を“1”として、そか
でない場合は“0”とする。このベクトルマスクデータ
MASKiは一般には主記憶装置上に格納されたり、或
いはベクトルマスクレジスタとして専用に設けられたレ
ジスタファイル等に格納される。
次に、マスク生成命令によって生成されたベクトルマス
クデータMへSKiに従ってマスク制御付ベクトル乗算
命令が実行される。この命令が実行されることにより、
ベクトルマスクデータMASKi=1に対応する配列要
素iに関してのみ乗算が行なわれ、乗算結果が配列Bに
格納される。
クデータMへSKiに従ってマスク制御付ベクトル乗算
命令が実行される。この命令が実行されることにより、
ベクトルマスクデータMASKi=1に対応する配列要
素iに関してのみ乗算が行なわれ、乗算結果が配列Bに
格納される。
それが終了すると、更にマスク制御付ベクトル移送命令
が実行され、ベクトルマスクデータMASKi=Oに対
応する配列要素iに関してのみ数値データEの移送が行
なわれる。尚、この例では、演算を行なう配列要素対応
のベクトルマスクデータMASKiを“1”、移送を行
なう配列要素対応のベクトルマスクデータMASKiを
“0″としたが、演算を行なう配列要素対応のベクトル
マスクデータMASKiを10”、移送を行なう配列要
素対応のベクトルマスクデータMASKiを1″として
も良く、ベクトルマスクデータMASKi力びO”、“
1“の何れの時に演算を有効にするかはソフトウェアの
命令コード等によって指定することができるものである
。
が実行され、ベクトルマスクデータMASKi=Oに対
応する配列要素iに関してのみ数値データEの移送が行
なわれる。尚、この例では、演算を行なう配列要素対応
のベクトルマスクデータMASKiを“1”、移送を行
なう配列要素対応のベクトルマスクデータMASKiを
“0″としたが、演算を行なう配列要素対応のベクトル
マスクデータMASKiを10”、移送を行なう配列要
素対応のベクトルマスクデータMASKiを1″として
も良く、ベクトルマスクデータMASKi力びO”、“
1“の何れの時に演算を有効にするかはソフトウェアの
命令コード等によって指定することができるものである
。
上述したように、マスク制御付ベクトル命令を使用する
ことにより、ループ中に条件文を含むような配列処理の
プログラムを実行する場合に於いても、情報処理装置上
での高速なベクトル演算の実行比率を高めることができ
るようになってきた。
ことにより、ループ中に条件文を含むような配列処理の
プログラムを実行する場合に於いても、情報処理装置上
での高速なベクトル演算の実行比率を高めることができ
るようになってきた。
しかし、上述した従来例は、全ての配列要素について対
応するベクトルマスクデータが“1″になっているか、
“0”になっているかを判定し、判定結果に基づいてベ
クトル演算を行なうか否かを決定するようにしているた
め、判定動作によるオーバヘッドが大きく、ベクトル演
算を行なうことによる効果を十分発揮できない場合があ
るという問題がある。
応するベクトルマスクデータが“1″になっているか、
“0”になっているかを判定し、判定結果に基づいてベ
クトル演算を行なうか否かを決定するようにしているた
め、判定動作によるオーバヘッドが大きく、ベクトル演
算を行なうことによる効果を十分発揮できない場合があ
るという問題がある。
本発明の目的はベクトルマスクデータの判定動作による
オーバヘフとを小さなものとすることにより、処理を高
速化することにある。
オーバヘフとを小さなものとすることにより、処理を高
速化することにある。
本発明は上記目的を達成するため、
配列データの演算を行なうベクトル命令と、条件によっ
て特定の配列要素の演算を抑止するためのベクトルマス
クデータを生成するベクトルマスク生成命令と、前記ベ
クトルマスクデータにより演算を抑止されている配列要
素以外の配列要素に対する演算を行なうマスク制御付ベ
クトル命令とを実行可能な情報処理装置に於いて、 配列要素列中の同一のベクトルマスクデータが最も長く
連続する部分の配列要素数を示す値が格納される最大要
素数保持レジスタと、 最大要素数保持レジスタに配列要素数を示す値が格納さ
れた部分の先頭の配列要素の要素番号が格納される反転
要素番号代表レジスタとを設け、前記配列要素列中の前
記最大要素数保持レジス夕に格納されている配列要素数
と前記反転要素番号代表レジスタに格納されている要素
番号によって示される部分については前記ベクトル命令
を実行し、他の部分については前記マスク制御付ベクト
ル命令を実行するようにしたものである。
て特定の配列要素の演算を抑止するためのベクトルマス
クデータを生成するベクトルマスク生成命令と、前記ベ
クトルマスクデータにより演算を抑止されている配列要
素以外の配列要素に対する演算を行なうマスク制御付ベ
クトル命令とを実行可能な情報処理装置に於いて、 配列要素列中の同一のベクトルマスクデータが最も長く
連続する部分の配列要素数を示す値が格納される最大要
素数保持レジスタと、 最大要素数保持レジスタに配列要素数を示す値が格納さ
れた部分の先頭の配列要素の要素番号が格納される反転
要素番号代表レジスタとを設け、前記配列要素列中の前
記最大要素数保持レジス夕に格納されている配列要素数
と前記反転要素番号代表レジスタに格納されている要素
番号によって示される部分については前記ベクトル命令
を実行し、他の部分については前記マスク制御付ベクト
ル命令を実行するようにしたものである。
最大要素数保持レジスタには配列要素列中の同一のベク
トルマスクデータが最も長く連続する部分の配列要素数
が格納され、反転要素番号代表レジスタにはその部分の
先頭の配列要素の要素番号が格納される。そして、最大
要素数保持レジスタ及び反転要素番号代表レジスタの内
容によって示される部分についてはベクトルマスクデー
タを参照する必要のないベクトル命令を実行し、他の部
分についてはマスク制御付ベクトル命令を実行すする。
トルマスクデータが最も長く連続する部分の配列要素数
が格納され、反転要素番号代表レジスタにはその部分の
先頭の配列要素の要素番号が格納される。そして、最大
要素数保持レジスタ及び反転要素番号代表レジスタの内
容によって示される部分についてはベクトルマスクデー
タを参照する必要のないベクトル命令を実行し、他の部
分についてはマスク制御付ベクトル命令を実行すする。
従って、同一のベクトルマスクデータが連続する部分の
内の最も配列要素数が多い部分については、ベクトルマ
スクデータの判定動作が行なわれないことになるので、
ベクトルマスクデータの判定動作によるオーバヘッドを
小さくし、ベクトル演算の処理速度を向上させることが
できる。
内の最も配列要素数が多い部分については、ベクトルマ
スクデータの判定動作が行なわれないことになるので、
ベクトルマスクデータの判定動作によるオーバヘッドを
小さくし、ベクトル演算の処理速度を向上させることが
できる。
次に本発明の実施例について図面を参照して詳細に説明
する。
する。
第1図は本発明の実施例のブロック図であり、マスク生
成用オペランドレジスタ1.2と、比較回路3.13と
、マスクデータレジスタ4と、命令語レジスタ5と、命
令デコーダ6と、演算制御部7と、要素番号レジスタ8
と、反転要素番号レジスタ9と、要素数保持レジスタ1
0と、要素数履歴レジスタ11と、要素数比較レジスタ
12と、最大要素数保持レジスタ14と、排他的論理和
回路15と、反転要素番号代表レジスタ16と、上位制
御部17とを含んでいる。
成用オペランドレジスタ1.2と、比較回路3.13と
、マスクデータレジスタ4と、命令語レジスタ5と、命
令デコーダ6と、演算制御部7と、要素番号レジスタ8
と、反転要素番号レジスタ9と、要素数保持レジスタ1
0と、要素数履歴レジスタ11と、要素数比較レジスタ
12と、最大要素数保持レジスタ14と、排他的論理和
回路15と、反転要素番号代表レジスタ16と、上位制
御部17とを含んでいる。
次に第3図に示したプログラムを実行する場合を例にと
って本実施例の動作を説明する。
って本実施例の動作を説明する。
先ず、第2図のフローチャートに示すように、マスク生
成命令が命令語レジスタ5にセントされ(ステップ31
)、ベクトルマスクデータが生成される。ベクトルマス
クデータの生成時、マスク生成用オペランドレジスタ1
,2にはマスク生成用の配列データが順次入力され、命
令語レジスフ5には上位制御部17によりマスク生成命
令がセットされる。この例の場合、マスク生成用オペラ
ンドレジスタ1,2の内の一方(例えばマスク生成用オ
ペランドレジスタ1)には配列データA(1)が、他方
(例えばマスク生成用オペランドレジスタ2)には数値
データ“0”がセットされる。
成命令が命令語レジスタ5にセントされ(ステップ31
)、ベクトルマスクデータが生成される。ベクトルマス
クデータの生成時、マスク生成用オペランドレジスタ1
,2にはマスク生成用の配列データが順次入力され、命
令語レジスフ5には上位制御部17によりマスク生成命
令がセットされる。この例の場合、マスク生成用オペラ
ンドレジスタ1,2の内の一方(例えばマスク生成用オ
ペランドレジスタ1)には配列データA(1)が、他方
(例えばマスク生成用オペランドレジスタ2)には数値
データ“0”がセットされる。
命令デコーダ6は命令語レジスタ5にマスク生成命令が
セットされると、それをデコードし、比較回路3に対し
て大小比較指示を送出する。比較回路3は大小比較指示
が加えられることにより、マスク生成用オペランドレジ
スタ1.2にセットされている配列データA (i)と
数値データ“0”とを比較し、そして、比較結果がA
(i)≧0であれば“1′を、A (+)<Oであれば
“0″を出力する。即ち、比較回路3の出力信号はマス
ク生成用オペランドレジスタ1にセントされている配列
要素対応のベクトルマスクデータとなる。
セットされると、それをデコードし、比較回路3に対し
て大小比較指示を送出する。比較回路3は大小比較指示
が加えられることにより、マスク生成用オペランドレジ
スタ1.2にセットされている配列データA (i)と
数値データ“0”とを比較し、そして、比較結果がA
(i)≧0であれば“1′を、A (+)<Oであれば
“0″を出力する。即ち、比較回路3の出力信号はマス
ク生成用オペランドレジスタ1にセントされている配列
要素対応のベクトルマスクデータとなる。
比較回路3から出力されたベクトルマスクデータはマス
クデータレジスタ4に加えられると共に排他的論理和回
路15に加えられる。マスクデータレジスタ4はベクト
ルマスクデータが加えられると、それを最下位ビットに
セットすると共に、それ以前にセットされていたベクト
ルマスクデータを1ビツトずつ上位ヘシフトする。マス
クデータレジスタ4に1ワ一ド分のベクトルマスクデー
タが格納される毎に、マスクデータレジスタ4から図示
しない主記憶装置へ上記lツー1分のベクトルマスクデ
ータが転送され、格納される。
クデータレジスタ4に加えられると共に排他的論理和回
路15に加えられる。マスクデータレジスタ4はベクト
ルマスクデータが加えられると、それを最下位ビットに
セットすると共に、それ以前にセットされていたベクト
ルマスクデータを1ビツトずつ上位ヘシフトする。マス
クデータレジスタ4に1ワ一ド分のベクトルマスクデー
タが格納される毎に、マスクデータレジスタ4から図示
しない主記憶装置へ上記lツー1分のベクトルマスクデ
ータが転送され、格納される。
要素番号レジスタ8はベクトルデータの演算或いはベク
トルマスクデータの生成時に於いて、現在処理中の配列
要素の要素番号を保持するレジスフであり、その出力は
反転要素番号レジスタ9に加えられている。反転要素番
号レジスタ9はマスクデータレジスタ4の最下位ビット
にセットされているベクトルマスクデータと比較回路3
から出力されたベクトルマスクデータとの排他的論理和
をとる排他的論理和回路15の出力信号が“1”となっ
た場合に限って要素番号レジスタ8の出力を保持する。
トルマスクデータの生成時に於いて、現在処理中の配列
要素の要素番号を保持するレジスフであり、その出力は
反転要素番号レジスタ9に加えられている。反転要素番
号レジスタ9はマスクデータレジスタ4の最下位ビット
にセットされているベクトルマスクデータと比較回路3
から出力されたベクトルマスクデータとの排他的論理和
をとる排他的論理和回路15の出力信号が“1”となっ
た場合に限って要素番号レジスタ8の出力を保持する。
ここで、排他的論理和回路15の出力信号が“1”とな
るのは、現在マスク生成用オペランドレジスタlにセッ
トされている配列要素対応のベクトルマスクデータが直
前の配列要素対応のベクトルマスクデータと異なるもの
になった時であるので、反転要素番号レジスタ9には対
応するベクトルマスクデータが直前の配列要素のベクト
ルマスクデータと異なるものとなった配列要素の内の最
も新しい配列要素の要素番号が格納される。
るのは、現在マスク生成用オペランドレジスタlにセッ
トされている配列要素対応のベクトルマスクデータが直
前の配列要素対応のベクトルマスクデータと異なるもの
になった時であるので、反転要素番号レジスタ9には対
応するベクトルマスクデータが直前の配列要素のベクト
ルマスクデータと異なるものとなった配列要素の内の最
も新しい配列要素の要素番号が格納される。
要素数保持レジスタ10は新たな配列要素についての処
理が開始される毎にその内容がカウントアツプされ、排
他的論理和回路15の出力信号が“1”となることによ
りリセットされる。また、要素数履歴レジスタ11には
リセットされる直前の要素数保持レジスタIOの内容が
格納される。従って、要素数履歴レジスタ11にはベク
トルマスクデータが同一の配列要素が何個連続したかを
示す値が格納されることになる。
理が開始される毎にその内容がカウントアツプされ、排
他的論理和回路15の出力信号が“1”となることによ
りリセットされる。また、要素数履歴レジスタ11には
リセットされる直前の要素数保持レジスタIOの内容が
格納される。従って、要素数履歴レジスタ11にはベク
トルマスクデータが同一の配列要素が何個連続したかを
示す値が格納されることになる。
要素数履歴レジスタ11の内容は要素数比較レジスタ1
2の内容と比較回路13に於いて比較される。
2の内容と比較回路13に於いて比較される。
尚、要素数比較レジスタ12の初期値は「0」になって
いるものである。比較回路13は要素数濯歴レジスタ1
1の内容と要素数比較レジスタ12の内容との内、大き
い方の値を要素数比較レジスタ12及び最大要素数保持
レジスタ14に格納する。また、比較回路13は要素数
雇歴レジスタ11の内容が要素数比較レジスタ12の内
容よりも大きい時、反転要素番号代表レジスタ16にセ
ット信号を加え、反転要素番号レジスタ9の内容を格納
させる。従って、最大要素数保持レジスタ14には配列
要素列中の同一のベクトルマスクデータが最も長く連続
する部分の配列要素数を示す値が格納され、反転要素番
号代表レジスタ16にはその部分の先頭要素番号が格納
される。
いるものである。比較回路13は要素数濯歴レジスタ1
1の内容と要素数比較レジスタ12の内容との内、大き
い方の値を要素数比較レジスタ12及び最大要素数保持
レジスタ14に格納する。また、比較回路13は要素数
雇歴レジスタ11の内容が要素数比較レジスタ12の内
容よりも大きい時、反転要素番号代表レジスタ16にセ
ット信号を加え、反転要素番号レジスタ9の内容を格納
させる。従って、最大要素数保持レジスタ14には配列
要素列中の同一のベクトルマスクデータが最も長く連続
する部分の配列要素数を示す値が格納され、反転要素番
号代表レジスタ16にはその部分の先頭要素番号が格納
される。
マスク生成命令の実行が終了すると、上位制御部17は
最大要素数保持レジスタ14に格納されている配列要素
数を示す値(mが格納されているとする)及び反転要素
番号代表レジスタ16に格納されている先頭要素番号(
nが格納されているとする。
最大要素数保持レジスタ14に格納されている配列要素
数を示す値(mが格納されているとする)及び反転要素
番号代表レジスタ16に格納されている先頭要素番号(
nが格納されているとする。
但し、n−1とする)を読込み、主記憶装置に格納され
ている上記先頭要素番号n対応のベクトルマスクデータ
が“1″であるかO″であるかを調べる。
ている上記先頭要素番号n対応のベクトルマスクデータ
が“1″であるかO″であるかを調べる。
次いで、上位制御部17は第2図に示すように、配列C
,DΦ1番目から(n−1)番目までの要素を対象にし
たマスク制御付ベクトル乗算命令、即ち、1番目の要素
から反転要素番号代表レジスタ16に格納されている要
素番号の要素の1つ前の要素までを対象にしたマスク制
御付ベクトル乗算命令を命令語レジスタ5にセットする
(ステップ32)。これにより、演算制御部7に於いて
配列C,Dの1番目の要素から(n−1)番目の要素の
内の対応するベクトルマスクデータが“l゛となってい
る要素同志の乗算が行なわれ、乗算結果が配列Bに格納
される。
,DΦ1番目から(n−1)番目までの要素を対象にし
たマスク制御付ベクトル乗算命令、即ち、1番目の要素
から反転要素番号代表レジスタ16に格納されている要
素番号の要素の1つ前の要素までを対象にしたマスク制
御付ベクトル乗算命令を命令語レジスタ5にセットする
(ステップ32)。これにより、演算制御部7に於いて
配列C,Dの1番目の要素から(n−1)番目の要素の
内の対応するベクトルマスクデータが“l゛となってい
る要素同志の乗算が行なわれ、乗算結果が配列Bに格納
される。
次いで、上位制御部17は第2図に示すように、1番目
から(n−1)番目までの要素を対象にしたマスク制御
付ベクトル移送命令を命令語レジスタ5にセントする(
ステップS3)、これにより、演算制御部7に於いて、
配列Bの1番目から(n−1)番目までの要素の内の対
応するベクトルマスクデータが“0”の要素に数値デー
タEが格納される。
から(n−1)番目までの要素を対象にしたマスク制御
付ベクトル移送命令を命令語レジスタ5にセントする(
ステップS3)、これにより、演算制御部7に於いて、
配列Bの1番目から(n−1)番目までの要素の内の対
応するベクトルマスクデータが“0”の要素に数値デー
タEが格納される。
1番目から(n−1)番目までの要素を対象にしたマス
ク制御付ベクトル移送命令の実行が終了すると、上位制
御部17は既に調べである要素番号n対応のベクトルマ
スクデータが“1”である場合は配列C,Dのn番目か
ら(04m)番目までの要素、即ち同一のベクトルマス
クデータが最も長(連続する部分対応の要素を対象とし
たマスク制御なしのベクトル乗算命令を命令語レジスタ
5にセットし、“0″である場合はn番目から(04m
)番目までの要素を対象にしたマスク制御なしのベクト
ル移送命令を命令語レジスタ5にセットする(ステップ
34)。ベクトル乗算命令が命令語レジスタ5にセット
された場合は、演算制御部7に於いて、配列C,Dのn
番目から(04m)番目までの要素の対応するもの同志
の乗算が行なわれ、乗算結果が配列Bの対応する要素に
格納される。また、ベクトル移送命令が命令語レジスク
5にセットされた場合は演算制御部7に於いて、配列B
のn番目の要素から(n8m)番目の要素までに数値デ
ータEが格納される。
ク制御付ベクトル移送命令の実行が終了すると、上位制
御部17は既に調べである要素番号n対応のベクトルマ
スクデータが“1”である場合は配列C,Dのn番目か
ら(04m)番目までの要素、即ち同一のベクトルマス
クデータが最も長(連続する部分対応の要素を対象とし
たマスク制御なしのベクトル乗算命令を命令語レジスタ
5にセットし、“0″である場合はn番目から(04m
)番目までの要素を対象にしたマスク制御なしのベクト
ル移送命令を命令語レジスタ5にセットする(ステップ
34)。ベクトル乗算命令が命令語レジスタ5にセット
された場合は、演算制御部7に於いて、配列C,Dのn
番目から(04m)番目までの要素の対応するもの同志
の乗算が行なわれ、乗算結果が配列Bの対応する要素に
格納される。また、ベクトル移送命令が命令語レジスク
5にセットされた場合は演算制御部7に於いて、配列B
のn番目の要素から(n8m)番目の要素までに数値デ
ータEが格納される。
ヘクトル制御なしのベクトル乗算命令或いはベクトル移
送命令の実行が終了すると、上位制御部17は配列C,
Dの第(n+m+1)番目から最後の要素までを対象に
したマスク制御付ベクトル乗算命令を命令語レジスタ5
にセントする(ステップS5)、これにより、演算制御
部7に於いて配列C,Dの(n+m+1)番目の要素か
ら最後の要素までの内の対応するベクトルマスクデータ
が“1”とならでいる要素同志の乗算が行なわれ、乗算
結果が配列Bの対応する要素に格納される。
送命令の実行が終了すると、上位制御部17は配列C,
Dの第(n+m+1)番目から最後の要素までを対象に
したマスク制御付ベクトル乗算命令を命令語レジスタ5
にセントする(ステップS5)、これにより、演算制御
部7に於いて配列C,Dの(n+m+1)番目の要素か
ら最後の要素までの内の対応するベクトルマスクデータ
が“1”とならでいる要素同志の乗算が行なわれ、乗算
結果が配列Bの対応する要素に格納される。
次いで、上位制御部17は(n +m+1)番目の要素
から最後の要素までを対象にしたマスク制御付ベクトル
移送命令を命令語レジスタ5にセントする(ステップS
6)、これにより、演算制御部7に於いて、配列Bの(
n+m+1)番目の要素から最後の要素までの内の対応
するベクトルマスクデータが“1′となっている要素に
数値データEが格納される。
から最後の要素までを対象にしたマスク制御付ベクトル
移送命令を命令語レジスタ5にセントする(ステップS
6)、これにより、演算制御部7に於いて、配列Bの(
n+m+1)番目の要素から最後の要素までの内の対応
するベクトルマスクデータが“1′となっている要素に
数値データEが格納される。
従って、配列要素中の最大要素数保持レジスタ14と反
転要素番号代表レジスタ16との内容によって示される
部分(上述した例はn番目の要素からn+m番目の要素
までの部分であって、同一のベクトルマスクデータが最
も長く連続する部分)についてはマスク制御なしのベク
トル命令が実行され、それ以外の部分についてはマスク
制御付きのベクトル命令が実行されることになる。
転要素番号代表レジスタ16との内容によって示される
部分(上述した例はn番目の要素からn+m番目の要素
までの部分であって、同一のベクトルマスクデータが最
も長く連続する部分)についてはマスク制御なしのベク
トル命令が実行され、それ以外の部分についてはマスク
制御付きのベクトル命令が実行されることになる。
(発明の効果〕
以上説明したように、本発明は配列要素列中の同一のベ
クトルマスクデータが最も長く連続する部分については
マスク制御付ヘクトル命令を実行せずにベクトル命令を
実行するようにしたものであり、その部分についてはベ
クトルマスクデータのチエツクを行なう必要がなくなる
ので、ベクトル演算を高速化することができる効果があ
る。特に、ベクトルマスクデータに於ける“1”と“0
″との割合が極端に違い、同一のベクトルマスクデータ
が連続する部分が長い場合はその効果は非常に大きい。
クトルマスクデータが最も長く連続する部分については
マスク制御付ヘクトル命令を実行せずにベクトル命令を
実行するようにしたものであり、その部分についてはベ
クトルマスクデータのチエツクを行なう必要がなくなる
ので、ベクトル演算を高速化することができる効果があ
る。特に、ベクトルマスクデータに於ける“1”と“0
″との割合が極端に違い、同一のベクトルマスクデータ
が連続する部分が長い場合はその効果は非常に大きい。
第1図は本発明の実施例のブロック図、第2図は実施例
に於けるFORTRANプログラムの実行手順を示すフ
ローチャート、第3図はFORTRANプログラムの一
例を示す図及び、 第4図は従来例に於は不FORTRANプログラムの実
行手順を示すフローチャートである。 図に於いて、l、2・・・マスク生成用オペランドレジ
スタ、3.13・・・比較回路、4・・・マスクデータ
レジスタ、5・・・命令語レジスタ、6・・・命令デコ
ーダ、7・・・演算制御部、8・・・要素番号レジスタ
、9・・・反転要素番号レジスタ、10・・・要素数保
持レジスタ、11・・・要素数層層レジスタ、12・・
・要素数比較レジスタ、14・・・最大要素数保持レジ
スタ、15・・・排他的論理和回路、16・・・反転要
素番号代表レジスタ、17・・・上位制御部。
に於けるFORTRANプログラムの実行手順を示すフ
ローチャート、第3図はFORTRANプログラムの一
例を示す図及び、 第4図は従来例に於は不FORTRANプログラムの実
行手順を示すフローチャートである。 図に於いて、l、2・・・マスク生成用オペランドレジ
スタ、3.13・・・比較回路、4・・・マスクデータ
レジスタ、5・・・命令語レジスタ、6・・・命令デコ
ーダ、7・・・演算制御部、8・・・要素番号レジスタ
、9・・・反転要素番号レジスタ、10・・・要素数保
持レジスタ、11・・・要素数層層レジスタ、12・・
・要素数比較レジスタ、14・・・最大要素数保持レジ
スタ、15・・・排他的論理和回路、16・・・反転要
素番号代表レジスタ、17・・・上位制御部。
Claims (1)
- 【特許請求の範囲】 配列データの演算を行なうベクトル命令と、条件によっ
て特定の配列要素の演算を抑止するためのベクトルマス
クデータを生成するベクトルマスク生成命令と、前記ベ
クトルマスクデータにより演算を抑止されている配列要
素以外の配列要素に対する演算を行なうマスク制御付ベ
クトル命令とを実行可能な情報処理装置に於いて、 配列要素列中の同一のベクトルマスクデータが最も長く
連続する部分の配列要素数を示す値が格納される最大要
素数保持レジスタと、 最大要素数保持レジスタに配列要素数を示す値が格納さ
れた部分の先頭の配列要素の要素番号が格納される反転
要素番号代表レジスタとを具備し、前記配列要素列中の
前記最大要素数保持レジスタに格納されている配列要素
数と前記反転要素番号代表レジスタに格納されている要
素番号によって示される部分については前記ベクトル命
令を実行し、他の部分については前記マスク制御付ベク
トル命令を実行することを特徴とする情報処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21194388A JPH0259961A (ja) | 1988-08-26 | 1988-08-26 | 情報処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21194388A JPH0259961A (ja) | 1988-08-26 | 1988-08-26 | 情報処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0259961A true JPH0259961A (ja) | 1990-02-28 |
Family
ID=16614262
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP21194388A Pending JPH0259961A (ja) | 1988-08-26 | 1988-08-26 | 情報処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0259961A (ja) |
-
1988
- 1988-08-26 JP JP21194388A patent/JPH0259961A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4879676A (en) | Method and apparatus for precise floating point exceptions | |
| US5051896A (en) | Apparatus and method for nullifying delayed slot instructions in a pipelined computer system | |
| US4740893A (en) | Method for reducing the time for switching between programs | |
| JP2645669B2 (ja) | データ処理システム | |
| JPH0766329B2 (ja) | 情報処理装置 | |
| US11416261B2 (en) | Group load register of a graph streaming processor | |
| US11481223B2 (en) | Reducing operations of sum-of-multiply-accumulate (SOMAC) instructions | |
| US5390306A (en) | Pipeline processing system and microprocessor using the system | |
| US5729723A (en) | Data processing unit | |
| JPH0259961A (ja) | 情報処理装置 | |
| JPH0512751B2 (ja) | ||
| JPS581246A (ja) | 命令処理順序制御方式 | |
| US20250390304A1 (en) | Systems and methods for executing an instruction by an arithmetic logic unit pipeline | |
| JP2979108B2 (ja) | データ処理装置における非同期処理の同期化方式 | |
| JPH06324861A (ja) | Cpu制御システム及び制御方法 | |
| JPH01223565A (ja) | 情報処理装置 | |
| JPH01223563A (ja) | 情報処理装置 | |
| JPH01319863A (ja) | ベクトルマスク制御方式 | |
| JP2843844B2 (ja) | 並列演算処理装置 | |
| JP2583614B2 (ja) | ベクトル演算装置 | |
| JPH0222417B2 (ja) | ||
| EP0634717B1 (en) | Data processing unit | |
| JPH01223564A (ja) | 情報処理装置 | |
| JPH04316127A (ja) | 情報処理装置 | |
| JPH04227541A (ja) | プロセッサ及びループ制御機能処理方法 |