JPH0721154A - ベクトル処理装置 - Google Patents
ベクトル処理装置Info
- Publication number
- JPH0721154A JPH0721154A JP14942793A JP14942793A JPH0721154A JP H0721154 A JPH0721154 A JP H0721154A JP 14942793 A JP14942793 A JP 14942793A JP 14942793 A JP14942793 A JP 14942793A JP H0721154 A JPH0721154 A JP H0721154A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- data
- processor
- processing
- instruction
- 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
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】
【目的】 プロセッサ間のデータの転送を高速に行い、
また、ベクトル要素の圧縮および拡張を、簡易な制御に
より高速に行う。 【構成】 データの圧縮、拡張を必要とするプロセッサ
間のデータ転送を行う場合、ベクトルプロセッサVPA
1内のベクトルレジスタVRのベクトルデータあるいは
ベクトル演算器12aの演算結果データと、VMR18
のマスクデータとは、専用回路3に入力される。アライ
ナー回路21は、マスクデータと制御部CA4からの指
示により、有効データを抽出するデータの圧縮処理、デ
ータ並びを復元する拡張処理、または、単なるバッファ
としての処理を行い、その結果をベクトルプロセッサV
PB2内のVRに格納する。主記憶装置6以外の各装置
は、1つのLSI上に構成される。 【効果】 ベクトル要素の圧縮、拡張処理を主記憶装置
を経由することなく行い、プロセッサ間のデータ移動処
理を高速に実行することができる。
また、ベクトル要素の圧縮および拡張を、簡易な制御に
より高速に行う。 【構成】 データの圧縮、拡張を必要とするプロセッサ
間のデータ転送を行う場合、ベクトルプロセッサVPA
1内のベクトルレジスタVRのベクトルデータあるいは
ベクトル演算器12aの演算結果データと、VMR18
のマスクデータとは、専用回路3に入力される。アライ
ナー回路21は、マスクデータと制御部CA4からの指
示により、有効データを抽出するデータの圧縮処理、デ
ータ並びを復元する拡張処理、または、単なるバッファ
としての処理を行い、その結果をベクトルプロセッサV
PB2内のVRに格納する。主記憶装置6以外の各装置
は、1つのLSI上に構成される。 【効果】 ベクトル要素の圧縮、拡張処理を主記憶装置
を経由することなく行い、プロセッサ間のデータ移動処
理を高速に実行することができる。
Description
【0001】
【産業上の利用分野】本発明は、ベクトル処理装置に係
り、特に、複数のベクトルプロセッサを備えるベクトル
処理装置におけるベクトルプロセッサ間のデータ転送
を、ベクトル要素の圧縮及び拡張処理を伴って高速に行
うことができるベクトル処理装置に関する。
り、特に、複数のベクトルプロセッサを備えるベクトル
処理装置におけるベクトルプロセッサ間のデータ転送
を、ベクトル要素の圧縮及び拡張処理を伴って高速に行
うことができるベクトル処理装置に関する。
【0002】
【従来の技術】一般に、ベクトルプロセッサは、高いデ
ータ処理能力を実現するため、1マシンサイクル中に複
数のベクトル要素を並列に処理するすることができるよ
うに構成されている。
ータ処理能力を実現するため、1マシンサイクル中に複
数のベクトル要素を並列に処理するすることができるよ
うに構成されている。
【0003】例えば、4要素並列処理を行うことのでき
るベクトルプロセッサは、4n(n=0、1、2・・)
番要素を処理する複数のベクトルレジスタ及び演算器の
組と、4n+1番要素を処理する組と、4n+2番要素
を処理する組と、4n+3番要素を処理する組との、そ
れぞれ独立したベクトルレジスタ及び演算機の器を備え
て構成され、それぞれの組が1マシンサイクルに1要素
の演算処理を行い、これにより、1マシンサイクルに4
要素の演算処理を行うことができるようにしたものであ
る。
るベクトルプロセッサは、4n(n=0、1、2・・)
番要素を処理する複数のベクトルレジスタ及び演算器の
組と、4n+1番要素を処理する組と、4n+2番要素
を処理する組と、4n+3番要素を処理する組との、そ
れぞれ独立したベクトルレジスタ及び演算機の器を備え
て構成され、それぞれの組が1マシンサイクルに1要素
の演算処理を行い、これにより、1マシンサイクルに4
要素の演算処理を行うことができるようにしたものであ
る。
【0004】そして、ベクトルプロセッサを使用して画
像処理を行う場合等、より高速度の演算を可能とするた
めに、ベクトルプロセッサは、ベクトルデータのベクト
ル要素列中の有効要素のみを抽出し並び変える圧縮処
理、及び、抽出したデータを元のベクトル要素列に復元
する拡張処理を行う機能を備えている。この処理は、例
えば、行列演算において、行列間の演算を必要としない
成分データ、予め結果が予測できる成分データ(無効要
素データ)を除外して、有効要素データのみによって行
列データを構成しなおす圧縮を行い、この圧縮されたデ
ータによる演算を行い、その結果得られたデータを元の
並びに復元する拡張を行うというように利用される。
像処理を行う場合等、より高速度の演算を可能とするた
めに、ベクトルプロセッサは、ベクトルデータのベクト
ル要素列中の有効要素のみを抽出し並び変える圧縮処
理、及び、抽出したデータを元のベクトル要素列に復元
する拡張処理を行う機能を備えている。この処理は、例
えば、行列演算において、行列間の演算を必要としない
成分データ、予め結果が予測できる成分データ(無効要
素データ)を除外して、有効要素データのみによって行
列データを構成しなおす圧縮を行い、この圧縮されたデ
ータによる演算を行い、その結果得られたデータを元の
並びに復元する拡張を行うというように利用される。
【0005】このような行列データの圧縮、拡張の機能
を備えたベクトルプロセッサに関する従来技術として、
例えば、特開平3−196257号公報等に記載された
技術が知られている。
を備えたベクトルプロセッサに関する従来技術として、
例えば、特開平3−196257号公報等に記載された
技術が知られている。
【0006】この従来技術は、要素列単位に設けた複数
のベクトルレジスタに保持されているベクトルデータの
圧縮または拡張処理を、ベクトルレジスタからデータバ
ッファへのベクトルデータの読み出し処理と、専用処理
器による順序変換処理と、データバッファからベクトル
レジスタへのベクトルデータの書き込み処理の3段階に
分けて行うというものである。
のベクトルレジスタに保持されているベクトルデータの
圧縮または拡張処理を、ベクトルレジスタからデータバ
ッファへのベクトルデータの読み出し処理と、専用処理
器による順序変換処理と、データバッファからベクトル
レジスタへのベクトルデータの書き込み処理の3段階に
分けて行うというものである。
【0007】前述したような機能を備えたベクトルプロ
セッサを複数台、1つの主記憶に対して設置し、複数の
命令列をそれぞれのベクトルプロセッサに分配し、複数
のベクトルプロセッサに、同時にかつ並列にそれらの命
令列を実行させることにより、命令列全体の処理を高速
に行うことが可能となる。
セッサを複数台、1つの主記憶に対して設置し、複数の
命令列をそれぞれのベクトルプロセッサに分配し、複数
のベクトルプロセッサに、同時にかつ並列にそれらの命
令列を実行させることにより、命令列全体の処理を高速
に行うことが可能となる。
【0008】例えば、1つの主記憶装置に対して4要素
並列のベクトルプロセッサを2台(以下、これらをベク
トルプロセッサVPA、VPBと呼ぶことにする)設置
してベクトル処理装置を構成し、このベクトル処理装置
を構成する2台のベクトルプロセッサに、1つのベクト
ル命令列を3つのプログラムA、B、Cに分割分配して
処理させるものとする。この場合、3つのプログラムを
2台のベクトルプロセッサに分配し、2台のプロセッサ
に同時にかつ並列に処理を行わせることができる。
並列のベクトルプロセッサを2台(以下、これらをベク
トルプロセッサVPA、VPBと呼ぶことにする)設置
してベクトル処理装置を構成し、このベクトル処理装置
を構成する2台のベクトルプロセッサに、1つのベクト
ル命令列を3つのプログラムA、B、Cに分割分配して
処理させるものとする。この場合、3つのプログラムを
2台のベクトルプロセッサに分配し、2台のプロセッサ
に同時にかつ並列に処理を行わせることができる。
【0009】いま、仮に、プログラムAとBとが、互い
に全く関わりを持たない命令列であり、プログラムC
が、プログラムAで求めた結果を使用する命令列になっ
ているとすると、まず、ベクトルプロセッサVPAはプ
ログラムAを処理し、ベクトルプロセッサVPBはプロ
グラムBを処理して、それぞれ、その結果を主記憶装置
に書き込む。次に、プログラムAが終了次第、ベクトル
プロセッサVPAまたはVPBがプログラムCの処理を
開始する。
に全く関わりを持たない命令列であり、プログラムC
が、プログラムAで求めた結果を使用する命令列になっ
ているとすると、まず、ベクトルプロセッサVPAはプ
ログラムAを処理し、ベクトルプロセッサVPBはプロ
グラムBを処理して、それぞれ、その結果を主記憶装置
に書き込む。次に、プログラムAが終了次第、ベクトル
プロセッサVPAまたはVPBがプログラムCの処理を
開始する。
【0010】前述したように、複数のプロセッサにより
構成されるベクトル処理装置は、複数のプログラムの処
理を各プロセッサで分担して実行する場合、あるプログ
ラムの実行結果を必要とするプロセッサは、その結果を
主記憶装置を介して受け取っている。
構成されるベクトル処理装置は、複数のプログラムの処
理を各プロセッサで分担して実行する場合、あるプログ
ラムの実行結果を必要とするプロセッサは、その結果を
主記憶装置を介して受け取っている。
【0011】また、前述のようなベクトル処理装置にお
いて、データの圧縮、拡張が必要な場合、その処理は、
以下のようにして行われている。
いて、データの圧縮、拡張が必要な場合、その処理は、
以下のようにして行われている。
【0012】いま、ある命令列を2つのプログラムA、
Bに分割し、プログラムAの中の1命令結果をプログラ
ムBの中の1部の命令列(データのロード、演算、結
果データのストアにより構成される命令列)において使
用し、また、その結果をプログラムAの中の1部の命令
列(同)において使用するものとする。但し、命令列
は、各要素毎にデータの有効無効を示すマスクビット
を参照し、有効要素データのみを処理する命令列である
とする。また、命令列は、マスクビットを参照しな
い、全ベクトル要素についての処理をする命令列である
とする。そして、プログラムAとプログラムBとの大部
分は、互いに関わりのない命令列であるものとする。
Bに分割し、プログラムAの中の1命令結果をプログラ
ムBの中の1部の命令列(データのロード、演算、結
果データのストアにより構成される命令列)において使
用し、また、その結果をプログラムAの中の1部の命令
列(同)において使用するものとする。但し、命令列
は、各要素毎にデータの有効無効を示すマスクビット
を参照し、有効要素データのみを処理する命令列である
とする。また、命令列は、マスクビットを参照しな
い、全ベクトル要素についての処理をする命令列である
とする。そして、プログラムAとプログラムBとの大部
分は、互いに関わりのない命令列であるものとする。
【0013】この場合、2つのプログラムA、Bは、そ
れぞれ同時に、プロセッサVPA、VPBにおいて実行
を開始することができる。
れぞれ同時に、プロセッサVPA、VPBにおいて実行
を開始することができる。
【0014】いま、プロセッサVPBがプログラムBの
処理における命令列の処理に取り掛かるとき、装置全
体の制御部(プロセッサVPAの制御部をこれに当てる
ものとする)は、プロセッサVPBに停止命令を出力
し、これにより、プロセッサVPBは、再稼動命令が発
行されるまで稼動を停止する。但し、すでにプログラム
Aの前述した命令の結果データが主記憶装置へストアさ
れていれば停止命令は発行されない。
処理における命令列の処理に取り掛かるとき、装置全
体の制御部(プロセッサVPAの制御部をこれに当てる
ものとする)は、プロセッサVPBに停止命令を出力
し、これにより、プロセッサVPBは、再稼動命令が発
行されるまで稼動を停止する。但し、すでにプログラム
Aの前述した命令の結果データが主記憶装置へストアさ
れていれば停止命令は発行されない。
【0015】この場合、命令列において使用されるプ
ログラムAの命令結果データは、有効要素データのみ必
要であるとしたので、プログラムAには、該命令結果デ
ータを主記憶装置へストアする命令の前に、有効要素デ
ータの圧縮命令を挿入しておく。目的のデータが、圧縮
処理された後、主記憶装置の指定アドレスに書き込まれ
たことを確認した制御部は、プロセッサVPBを再稼動
させる。これにより、プロセッサVPBは、命令列の
実行を開始し、指定アドレスより圧縮されたデータをロ
ードし、命令の処理を行う。
ログラムAの命令結果データは、有効要素データのみ必
要であるとしたので、プログラムAには、該命令結果デ
ータを主記憶装置へストアする命令の前に、有効要素デ
ータの圧縮命令を挿入しておく。目的のデータが、圧縮
処理された後、主記憶装置の指定アドレスに書き込まれ
たことを確認した制御部は、プロセッサVPBを再稼動
させる。これにより、プロセッサVPBは、命令列の
実行を開始し、指定アドレスより圧縮されたデータをロ
ードし、命令の処理を行う。
【0016】一方、プロセッサVPAがプログラムAの
処理における命令列の処理に取り掛かるとき、装置全
体の制御部は、プロセッサVPAへ停止命令を出力し、
これにより、プロセッサVPAは、再稼動命令が発行さ
れるまで稼動を停止する。但し、前述の場合と同様に、
すでに命令列の結果データが主記憶装置へストアされ
ていれば停止命令は発行されない。
処理における命令列の処理に取り掛かるとき、装置全
体の制御部は、プロセッサVPAへ停止命令を出力し、
これにより、プロセッサVPAは、再稼動命令が発行さ
れるまで稼動を停止する。但し、前述の場合と同様に、
すでに命令列の結果データが主記憶装置へストアされ
ていれば停止命令は発行されない。
【0017】この場合、使用する命令列において使用
されるプログラムBの結果データは、無効要素も含んだ
全要素が必要である。このため、プログラムBには、命
令列の結果データを主記憶装置へストアする命令の前
に、有効要素データの拡張命令を挿入しておく。目的の
データが、拡張処理された後、主記憶装置の指定アドレ
スに書き込まれたことを確認した制御部は、プロセッサ
VPAを再稼動させる。これにより、プロセッサVPA
は、命令列の実行を開始し、指定アドレスより拡張さ
れたデータをロードし、命令の処理を行う。
されるプログラムBの結果データは、無効要素も含んだ
全要素が必要である。このため、プログラムBには、命
令列の結果データを主記憶装置へストアする命令の前
に、有効要素データの拡張命令を挿入しておく。目的の
データが、拡張処理された後、主記憶装置の指定アドレ
スに書き込まれたことを確認した制御部は、プロセッサ
VPAを再稼動させる。これにより、プロセッサVPA
は、命令列の実行を開始し、指定アドレスより拡張さ
れたデータをロードし、命令の処理を行う。
【0018】プログラムA、プログラムBは、それぞれ
において、残りの命令がプロセッサVPA、VPBによ
り処理され、全ての命令列の処理が終了させられる。
において、残りの命令がプロセッサVPA、VPBによ
り処理され、全ての命令列の処理が終了させられる。
【0019】
【発明が解決しようとする課題】前述した従来技術は、
各ベクトルプロセッサにおいて処理する命令列が、それ
ぞれ、完結した命令列であれば問題ないが、例えば、プ
ロセッサVPAにおける命令結果をVPBにおける命令
において使用するという相互に関わりのある命令列の処
理が行われる場合、プロセッサVPAからVPBへのデ
ータの移動が、一度そのデータを主記憶装置へ書き込
み、それが終了次第装置全体の制御部の指示により移動
先への読み出しを開始させることによって行われる。
各ベクトルプロセッサにおいて処理する命令列が、それ
ぞれ、完結した命令列であれば問題ないが、例えば、プ
ロセッサVPAにおける命令結果をVPBにおける命令
において使用するという相互に関わりのある命令列の処
理が行われる場合、プロセッサVPAからVPBへのデ
ータの移動が、一度そのデータを主記憶装置へ書き込
み、それが終了次第装置全体の制御部の指示により移動
先への読み出しを開始させることによって行われる。
【0020】このため、前述の従来技術は、データの転
送が処理速度の遅い主記憶装置を介して行われ、しか
も、データの転送が終了するまで、データの移動先のプ
ロセッサを停止させてしまい、全体の処理時間が増加し
てしまうという問題点を有し、また、ベクトルプロセッ
サの数が増加すると、データの書き込みアドレス、切替
タイミング等の制御が煩雑になるという問題点を有して
いる。
送が処理速度の遅い主記憶装置を介して行われ、しか
も、データの転送が終了するまで、データの移動先のプ
ロセッサを停止させてしまい、全体の処理時間が増加し
てしまうという問題点を有し、また、ベクトルプロセッ
サの数が増加すると、データの書き込みアドレス、切替
タイミング等の制御が煩雑になるという問題点を有して
いる。
【0021】また、前述の従来技術は、プロセッサVP
A、VPB、及び、主記憶装置が、それぞれ独立したL
SIに搭載されており、そのため、異なるLSI間パス
を介してデータの移動を行わなければならず、同一LS
I上のパスを使用する場合に比較して、データの移動に
時間がかかり、全体の処理時間が増加してしまうという
問題点を有している。
A、VPB、及び、主記憶装置が、それぞれ独立したL
SIに搭載されており、そのため、異なるLSI間パス
を介してデータの移動を行わなければならず、同一LS
I上のパスを使用する場合に比較して、データの移動に
時間がかかり、全体の処理時間が増加してしまうという
問題点を有している。
【0022】本発明の目的は、前述した従来技術の問題
点を解決し、プロセッサ間のデータの転送を高速に行う
ことができ、また、ベクトル要素の圧縮及び拡張を、簡
易な制御により高速に行うことのできるベクトル処理装
置を提供することにある。
点を解決し、プロセッサ間のデータの転送を高速に行う
ことができ、また、ベクトル要素の圧縮及び拡張を、簡
易な制御により高速に行うことのできるベクトル処理装
置を提供することにある。
【0023】
【課題を解決するための手段】本発明によれば前記目的
は、複数のベクトルプロセッサ間のデータの転送を、デ
ータの転送のための専用の回路を設けて行うようにする
ことにより、また、前記専用の回路にデータの圧縮、拡
張の機能を持たせることにより達成される。
は、複数のベクトルプロセッサ間のデータの転送を、デ
ータの転送のための専用の回路を設けて行うようにする
ことにより、また、前記専用の回路にデータの圧縮、拡
張の機能を持たせることにより達成される。
【0024】また、前記目的は、複数のベクトルプロセ
ッサ及び前記専用の回路を同一のLSI上に構成するこ
とにより達成される。
ッサ及び前記専用の回路を同一のLSI上に構成するこ
とにより達成される。
【0025】本発明は、これにより、異なるベクトルプ
ロセッサ間のデータの圧縮、拡張を伴うデータ転送を主
記憶装置を経由することなく、専用の回路を介して高速
に行うことが可能となる。
ロセッサ間のデータの圧縮、拡張を伴うデータ転送を主
記憶装置を経由することなく、専用の回路を介して高速
に行うことが可能となる。
【0026】
【作用】本発明によれば、データの圧縮、拡張の機能を
有する専用の回路を備え、また、複数のベクトルプロセ
ッサと前記専用の回路とを同一LSI上に搭載したの
で、主記憶装置を経由して行っていたプロセッサ間のデ
ータの転送、データの圧縮、拡張処理を、より高速に行
うことができ、全体の処理速度の向上を図ることが可能
となる。
有する専用の回路を備え、また、複数のベクトルプロセ
ッサと前記専用の回路とを同一LSI上に搭載したの
で、主記憶装置を経由して行っていたプロセッサ間のデ
ータの転送、データの圧縮、拡張処理を、より高速に行
うことができ、全体の処理速度の向上を図ることが可能
となる。
【0027】例えば、あるベクトル命令列により構成さ
れるプログラムを2つのプログラムA、Bに分割し、プ
ログラムAの中の1命令結果をプログラムBの中の1部
の命令列において使用し、また、その結果をプログラ
ムAの中の1部の命令列において使用するものとす
る。但し、命令列は、各要素毎にデータの有効無効を
示すマスクビットを参照するマスク付き命令であると
し、命令列は、マスクに関わりなく、全ベクトル要素
についての処理をする命令列であるとする。そして、プ
ログラムAとプログラムBとの大部分は、互いに関わり
のない命令列であるものとする。
れるプログラムを2つのプログラムA、Bに分割し、プ
ログラムAの中の1命令結果をプログラムBの中の1部
の命令列において使用し、また、その結果をプログラ
ムAの中の1部の命令列において使用するものとす
る。但し、命令列は、各要素毎にデータの有効無効を
示すマスクビットを参照するマスク付き命令であると
し、命令列は、マスクに関わりなく、全ベクトル要素
についての処理をする命令列であるとする。そして、プ
ログラムAとプログラムBとの大部分は、互いに関わり
のない命令列であるものとする。
【0028】この場合、2つのプログラムA、Bは、そ
れぞれ同時に、プロセッサVPA、VPBにおいて実行
を開始することができる。VPA、VPBは、ベクトル
処理装置を構成する複数のベクトルプロセッサのうちの
2台である。
れぞれ同時に、プロセッサVPA、VPBにおいて実行
を開始することができる。VPA、VPBは、ベクトル
処理装置を構成する複数のベクトルプロセッサのうちの
2台である。
【0029】いま、プロセッサVPBがプログラムBの
処理における命令列の処理に取り掛かるとき、装置全
体の制御部(プロセッサVPAの制御部をこれに当てる
ものとする)は、プロセッサVPBに停止命令を出力す
る。これにより、プロセッサVPBは、再稼動命令が発
行されるまで稼動を停止する。但し、すでにプログラム
Aの前述した命令の結果データが求められていれば停止
命令は発行されない。
処理における命令列の処理に取り掛かるとき、装置全
体の制御部(プロセッサVPAの制御部をこれに当てる
ものとする)は、プロセッサVPBに停止命令を出力す
る。これにより、プロセッサVPBは、再稼動命令が発
行されるまで稼動を停止する。但し、すでにプログラム
Aの前述した命令の結果データが求められていれば停止
命令は発行されない。
【0030】この場合、命令列において使用されるプ
ログラムAの命令結果データは、有効要素データのみ必
要であるとしたので、装置全体の制御部は、プロセッサ
VPAからVPBへデータの移動を行う際、データの圧
縮処理を指示する。この圧縮指示及びそのデータを受け
取った専用の回路は、これにより稼動を開始する。
ログラムAの命令結果データは、有効要素データのみ必
要であるとしたので、装置全体の制御部は、プロセッサ
VPAからVPBへデータの移動を行う際、データの圧
縮処理を指示する。この圧縮指示及びそのデータを受け
取った専用の回路は、これにより稼動を開始する。
【0031】専用の回路は、プロセッサVPAより無効
データと有効データとが混在しているn要素並列一列分
のデータn要素と、その無効・有効を表すマスクビット
n要素分のデータとを、回路内のバッファにそれぞれ読
み出す。専用の回路は、内部にアライナー回路を備えて
おり、このアライナー回路を使用して、マスクバッファ
のデータに従い有効データのみをデータバッファより抽
出し、これらの有効データのみを連続して、プロセッサ
VPB内のベクトルレジスタに書き込む。
データと有効データとが混在しているn要素並列一列分
のデータn要素と、その無効・有効を表すマスクビット
n要素分のデータとを、回路内のバッファにそれぞれ読
み出す。専用の回路は、内部にアライナー回路を備えて
おり、このアライナー回路を使用して、マスクバッファ
のデータに従い有効データのみをデータバッファより抽
出し、これらの有効データのみを連続して、プロセッサ
VPB内のベクトルレジスタに書き込む。
【0032】以下、前述と同様に、専用の回路は、デー
タを要素並列一列分ずつ圧縮処理していく。また、マス
クデータは、一列分ずつそのまま回路内のバッファを通
してプロセッサVPBのマスクレジスタに書き込まれ
る。プロセッサVPBは、マスクデータ内の有効マスク
ビット数をカウントし、カウント結果を有効要素データ
の数とし、最初の要素並列一列分n要素をカウントし、
それらのデータが書き込まれ次第、停止していた命令
の処理を開始する。
タを要素並列一列分ずつ圧縮処理していく。また、マス
クデータは、一列分ずつそのまま回路内のバッファを通
してプロセッサVPBのマスクレジスタに書き込まれ
る。プロセッサVPBは、マスクデータ内の有効マスク
ビット数をカウントし、カウント結果を有効要素データ
の数とし、最初の要素並列一列分n要素をカウントし、
それらのデータが書き込まれ次第、停止していた命令
の処理を開始する。
【0033】一方、プロセッサVPAがプログラムAの
処理における命令列の処理に取り掛かるとき、装置全
体の制御部は、プロセッサVPAへ停止命令を出力す
る。これにより、プロセッサVPAは、再稼動命令が発
行されるまで稼動を停止する。但し、前述の場合と同様
に、すでに命令列の結果データが求められていれば停
止命令は発行されない。
処理における命令列の処理に取り掛かるとき、装置全
体の制御部は、プロセッサVPAへ停止命令を出力す
る。これにより、プロセッサVPAは、再稼動命令が発
行されるまで稼動を停止する。但し、前述の場合と同様
に、すでに命令列の結果データが求められていれば停
止命令は発行されない。
【0034】この場合、命令列において使用されるプ
ログラムBの命令の結果データは、無効要素も含んだ
全要素が必要である。このため、制御部は、プロセッサ
VPBからVPAへデータの移動を行う際、拡張処理を
指示する。拡張指示及びそのデータを受け取った専用の
回路は、稼動を開始する。
ログラムBの命令の結果データは、無効要素も含んだ
全要素が必要である。このため、制御部は、プロセッサ
VPBからVPAへデータの移動を行う際、拡張処理を
指示する。拡張指示及びそのデータを受け取った専用の
回路は、稼動を開始する。
【0035】プロセッサVPBにおいて処理を行った命
令の結果データは、圧縮された有効要素のみにより構
成されたベクトルデータである。但し、最終要素からさ
かのぼって、無効マスクビットの数だけベクトル長より
短くなっている。このベクトルデータを元の並びに復元
するために、専用の回路は、プロセッサVPBよりn要
素並列一列分のマスクデータn要素分と、そのなかの有
効マスクビットの数m(m≦n)と等しい数のベクトル
有効要素データm要素とを回路内のバッファに読み出
す。そして、専用の回路は、アライナー回路を使用し
て、マスクバッファのデータに従い、有効データを元の
並びに復元し、n要素データ幅ずつプロセッサVPA内
のベクトルレジスタへ送る。
令の結果データは、圧縮された有効要素のみにより構
成されたベクトルデータである。但し、最終要素からさ
かのぼって、無効マスクビットの数だけベクトル長より
短くなっている。このベクトルデータを元の並びに復元
するために、専用の回路は、プロセッサVPBよりn要
素並列一列分のマスクデータn要素分と、そのなかの有
効マスクビットの数m(m≦n)と等しい数のベクトル
有効要素データm要素とを回路内のバッファに読み出
す。そして、専用の回路は、アライナー回路を使用し
て、マスクバッファのデータに従い、有効データを元の
並びに復元し、n要素データ幅ずつプロセッサVPA内
のベクトルレジスタへ送る。
【0036】専用の回路内のバッファのマスクデータ
は、そのままプロセッサVPAのマスクレジスタへ書き
込まれる。プロセッサVPAは、マスクデータ中の有効
要素を表す要素番号のデータのみをベクトルレジスタへ
書き込む処理を行い、無効要素番号のデータに対しては
何も行わない。
は、そのままプロセッサVPAのマスクレジスタへ書き
込まれる。プロセッサVPAは、マスクデータ中の有効
要素を表す要素番号のデータのみをベクトルレジスタへ
書き込む処理を行い、無効要素番号のデータに対しては
何も行わない。
【0037】以下、前述と同様のマスクデータの一列分
ずつの拡張処理が行われ、プロセッサVPAは、最初の
n要素並列一列分のデータがベクトルレジスタに書き込
まれ次第、停止していた命令の処理を開始する。
ずつの拡張処理が行われ、プロセッサVPAは、最初の
n要素並列一列分のデータがベクトルレジスタに書き込
まれ次第、停止していた命令の処理を開始する。
【0038】
【実施例】以下、本発明によるベクトル処理装置の一実
施例を図面により詳細に説明する。
施例を図面により詳細に説明する。
【0039】図1は本発明の一実施例によるベクトル処
理装置の構成を示すブロック図、図2はベクトルデータ
の圧縮・拡張処理の概念を説明する図である。図1にお
いて、1はベクトルプロセッサVPA、2はベクトルプ
ロセッサVPB、3は専用回路、4は制御部CA、5は
制御部CB、6は主記憶装置、VR0〜VR9はベクト
ルレジスタ、VMRはベクトルマスクレジスタ、8、1
0、15はセレクタ、12は演算器、20a〜20h、
24a〜24hはマスクバッファ、17a〜17h、2
2a〜22hはデータバッファ、21はアライナー回路
である。なお、以下の説明において、VPA、VPB内
の構成機器については、前記の符号に必要に応じ所属プ
ロセッサを示すサフィックスa、bを付与して示す。
理装置の構成を示すブロック図、図2はベクトルデータ
の圧縮・拡張処理の概念を説明する図である。図1にお
いて、1はベクトルプロセッサVPA、2はベクトルプ
ロセッサVPB、3は専用回路、4は制御部CA、5は
制御部CB、6は主記憶装置、VR0〜VR9はベクト
ルレジスタ、VMRはベクトルマスクレジスタ、8、1
0、15はセレクタ、12は演算器、20a〜20h、
24a〜24hはマスクバッファ、17a〜17h、2
2a〜22hはデータバッファ、21はアライナー回路
である。なお、以下の説明において、VPA、VPB内
の構成機器については、前記の符号に必要に応じ所属プ
ロセッサを示すサフィックスa、bを付与して示す。
【0040】本発明の一実施例によるベクトル処理装置
は、図1に示すように、2台のベクトルプロセッサVP
A1、VPB2と、データの圧縮、拡張の機能とバッフ
ァ機能とを備える専用回路3と、主記憶装置6とを備え
て構成され、2台のベクトルプロセッサVPA1、VP
B2と、専用回路3とは、同一のLSI上に構成されて
いる。
は、図1に示すように、2台のベクトルプロセッサVP
A1、VPB2と、データの圧縮、拡張の機能とバッフ
ァ機能とを備える専用回路3と、主記憶装置6とを備え
て構成され、2台のベクトルプロセッサVPA1、VP
B2と、専用回路3とは、同一のLSI上に構成されて
いる。
【0041】そして、ベクトルプロセッサVPA1、V
PB2は、要素並列に処理を行うベクトル処理部vpa
1a〜vpa1d、vpb2a〜vpb2dと、これら
のベクトル処理部を制御する制御部CA4、CB5とを
備えて構成される。各ベクトル処理部は、それぞれ、3
2本のベクトルレジスタVR0〜VR9と、ベクトルマ
スクレジスタVMRと、演算器12a、12bと、セレ
クタ8、10、1515とを備えて構成される。
PB2は、要素並列に処理を行うベクトル処理部vpa
1a〜vpa1d、vpb2a〜vpb2dと、これら
のベクトル処理部を制御する制御部CA4、CB5とを
備えて構成される。各ベクトル処理部は、それぞれ、3
2本のベクトルレジスタVR0〜VR9と、ベクトルマ
スクレジスタVMRと、演算器12a、12bと、セレ
クタ8、10、1515とを備えて構成される。
【0042】また、専用回路3は、マスクデータが入力
されるマスクバッファ20a〜20hと、マスクデータ
を出力するマスクバッファ24a〜24hと、演算デー
タが入力されるデータバッファ17a〜17hと、演算
データを出力するデータバッファ22a〜22hと、デ
ータの圧縮、拡張の処理を行うアライナー回路21とを
備えて構成される。
されるマスクバッファ20a〜20hと、マスクデータ
を出力するマスクバッファ24a〜24hと、演算デー
タが入力されるデータバッファ17a〜17hと、演算
データを出力するデータバッファ22a〜22hと、デ
ータの圧縮、拡張の処理を行うアライナー回路21とを
備えて構成される。
【0043】図1に示す本発明の一実施例において、い
ま、以下に示すベクトル命令列によるプログラムの処理
を行うものとする。そして、このプログラムを2分割
し、プログラムA、プログラムBとして、プログラムA
をVPA1に、プログラムBをVPB2にそれぞれ処理
させるものとする。
ま、以下に示すベクトル命令列によるプログラムの処理
を行うものとする。そして、このプログラムを2分割
し、プログラムA、プログラムBとして、プログラムA
をVPA1に、プログラムBをVPB2にそれぞれ処理
させるものとする。
【0044】 :(省略) Vload VR0←2000番地 ・・・(01) Vload VR1←3000番地 ・・・(02) Vload VR8←10000番地・・・(11) Vadd VR2=VR0+VR1・・・(03)<マスクビットなし> Vadd VR9=VR2+VR8・・・(12)<マスクビット付き> Vadd VR3=VR1+VR9・・・(04)<マスクビットなし> :(省略) 以上の命令列を以下に示すような2つのプログラムA、
Bに分割する。
Bに分割する。
【0045】 プログラムA : Vload VR0←2000番地 ・・・(01) Vload VR1←3000番地 ・・・(02) Vadd VR2=VR0+VR1・・・(03)<マスクビットなし> : Vadd VR3=VR1+VR9・・・(04)<マスクビットなし> : プログラムB : Vload VR8←10000番地・・・(11) Vadd VR9=VR2+VR8・・・(12)<マスクビット付き> : 前記の命令列は、本発明の一実施例の説明に必要な部分
のみを例示したものであり、プログラムA、Bの大部分
は相互に関連を持たない命令列であるとする。また、<
>内の注釈は、その命令がベクトルマスクレジスタVM
R18a、18b中のマスクビットを参照する(付
き)、しない(なし)を示している。プログラムA、B
は、1つの命令列を2つに分割したため、含まれるベク
トルレジスタ番号が共通であり、双方において使用する
ベクトルレジスタについては、ベクトルプロセッサVP
A1、VPB2の対応するベクトルレジスタに同一デー
タをコピーする必要がある。さらに、2つのベクトルプ
ロセッサVPA1、VPB2を含むベクトル処理装置全
体の制御は、VPA1側の制御部CA4で行うものとす
る。
のみを例示したものであり、プログラムA、Bの大部分
は相互に関連を持たない命令列であるとする。また、<
>内の注釈は、その命令がベクトルマスクレジスタVM
R18a、18b中のマスクビットを参照する(付
き)、しない(なし)を示している。プログラムA、B
は、1つの命令列を2つに分割したため、含まれるベク
トルレジスタ番号が共通であり、双方において使用する
ベクトルレジスタについては、ベクトルプロセッサVP
A1、VPB2の対応するベクトルレジスタに同一デー
タをコピーする必要がある。さらに、2つのベクトルプ
ロセッサVPA1、VPB2を含むベクトル処理装置全
体の制御は、VPA1側の制御部CA4で行うものとす
る。
【0046】次に、前述した条件の下における本発明の
一実施例の動作を説明する。
一実施例の動作を説明する。
【0047】(1)まず、ベクトルプロセッサVPA
1、VPB2のそれぞれの制御部CA4、CB5は、プ
ログラムA、プログラムBを受け取り処理を開始する。
この場合、VPA1は、パス4aを介して、VPB2
は、パス5a、4bを介して、また、専用回路3は、パ
ス4cを介して制御を受ける。
1、VPB2のそれぞれの制御部CA4、CB5は、プ
ログラムA、プログラムBを受け取り処理を開始する。
この場合、VPA1は、パス4aを介して、VPB2
は、パス5a、4bを介して、また、専用回路3は、パ
ス4cを介して制御を受ける。
【0048】(2)プロセッサVPA1は、プログラム
Aの命令(01)、命令(02)の命令処理を開始し、主記
憶装置6の2000番地、3000番地からベクトルデ
ータを読み出し、ロードパイプライン7a、VPA1内
部のセレクタ8aを介して、それぞれ、ベクトルレジス
タVR0a、VR1aにベクトルデータを格納する。そ
して、セレクタ10aによって、VR0a及びVR1a
のベクトルデータを選択し、パス11aを介してベクト
ル演算器12aへ送る。
Aの命令(01)、命令(02)の命令処理を開始し、主記
憶装置6の2000番地、3000番地からベクトルデ
ータを読み出し、ロードパイプライン7a、VPA1内
部のセレクタ8aを介して、それぞれ、ベクトルレジス
タVR0a、VR1aにベクトルデータを格納する。そ
して、セレクタ10aによって、VR0a及びVR1a
のベクトルデータを選択し、パス11aを介してベクト
ル演算器12aへ送る。
【0049】(3)ベクトル演算器12aは、命令(0
3)のVR0+VR1の加算命令を実行する。この演算
は、マスクレジスタVMRの参照なしであるため、全デ
ータについて行われる。求まった答えは、パス13a、
セレクタ8aを介してVR2へ書き込まれる。ベクトル
プロセッサVPA1は、命令(03)の終了後、命令(0
4)の直前までの命令列の処理を実行する。
3)のVR0+VR1の加算命令を実行する。この演算
は、マスクレジスタVMRの参照なしであるため、全デ
ータについて行われる。求まった答えは、パス13a、
セレクタ8aを介してVR2へ書き込まれる。ベクトル
プロセッサVPA1は、命令(03)の終了後、命令(0
4)の直前までの命令列の処理を実行する。
【0050】(4)一方、ベクトルプロセッサVPB2
は、ベクトルプロセッサVPA1のプログラムAの処理
開始と同時にプログラムBの処理を開始し、命令(11)
の命令処理を行う。すなわち、ベクトルプロセッサVP
B2は、主記憶装置6の10000番地からベクトルデ
ータを読み出し、ロードパイプライン7b及びVPB2
内部のセレクタ8bを介して、ベクトルレジスタVR8
bへ、ベクトルデータを格納する。
は、ベクトルプロセッサVPA1のプログラムAの処理
開始と同時にプログラムBの処理を開始し、命令(11)
の命令処理を行う。すなわち、ベクトルプロセッサVP
B2は、主記憶装置6の10000番地からベクトルデ
ータを読み出し、ロードパイプライン7b及びVPB2
内部のセレクタ8bを介して、ベクトルレジスタVR8
bへ、ベクトルデータを格納する。
【0051】次の命令(12)を実行するためには、VR
8bのほかに、前述した(2)の処理の結果データであ
るベクトルプロセッサVPA1内のベクトルレジスタV
R2a内のデータが必要である。このデータがすでに求
まっていれば、このデータが、ベクトルプロセッサVP
B2内のベクトルレジスタVR2bへコピーされる。求
められていなければ、ベクトルプロセッサVPA1内の
制御部CA4からのパス4bの信号により、ベクトルプ
ロセッサVPB2は稼動を停止し、このデータが求まり
次第データのコピーが開始される。
8bのほかに、前述した(2)の処理の結果データであ
るベクトルプロセッサVPA1内のベクトルレジスタV
R2a内のデータが必要である。このデータがすでに求
まっていれば、このデータが、ベクトルプロセッサVP
B2内のベクトルレジスタVR2bへコピーされる。求
められていなければ、ベクトルプロセッサVPA1内の
制御部CA4からのパス4bの信号により、ベクトルプ
ロセッサVPB2は稼動を停止し、このデータが求まり
次第データのコピーが開始される。
【0052】また、命令(12)は、マスクレジスタVM
Rの参照付きの命令であり、ベクトルプロセッサVPA
1からVPB2へのデータのコピーに当たって、データ
の圧縮処理が行われることになり、これにより、ベクト
ル演算器の使用効率の向上を図る。
Rの参照付きの命令であり、ベクトルプロセッサVPA
1からVPB2へのデータのコピーに当たって、データ
の圧縮処理が行われることになり、これにより、ベクト
ル演算器の使用効率の向上を図る。
【0053】(5)データの圧縮処理は、図2に示すよ
うに、圧縮、拡張機能を備える専用回路3によりデータ
の乗り換えを行うことにより実行される。すなわち、ベ
クトルプロセッサVPA1を構成するベクトル処理部v
pa1a〜vpa1dのベクトル演算器12aは、それ
ぞれ、1要素のデータを同時に求めるため、ベクトルプ
ロセッサVPA1からは計4要素分が同時に求められ
る。これらのデータは、パス14a及びセレクタ15a
によって選択され、パス16aを介して4要素並列に一
列分のデータ4要素が、専用回路3へ送られる。
うに、圧縮、拡張機能を備える専用回路3によりデータ
の乗り換えを行うことにより実行される。すなわち、ベ
クトルプロセッサVPA1を構成するベクトル処理部v
pa1a〜vpa1dのベクトル演算器12aは、それ
ぞれ、1要素のデータを同時に求めるため、ベクトルプ
ロセッサVPA1からは計4要素分が同時に求められ
る。これらのデータは、パス14a及びセレクタ15a
によって選択され、パス16aを介して4要素並列に一
列分のデータ4要素が、専用回路3へ送られる。
【0054】専用回路3は、セレクタ26aを介してベ
クトル処理部vpa1aの結果データをデータバッファ
17aに、vpa1bの結果データをデータバッファ1
7bに、vpa1cの結果データをデータバッファ17
cに、vpa1dの結果データをデータバッファ17d
に書き込みを行う。同一タイミングで、ベクトルプロセ
ッサVPA1の各ベクトル処理部のマスクレジスタVM
R18a内のマスクビット4要素分のデータが、パス1
9aを介して専用回路3内のバッファ20a〜20d
に、4データ(=4ビット)同時に書き込まれる。アラ
イナー回路21は、マスクデータの有効無効情報に従っ
て、データバッファ17に書き込んだデータのうち有効
要素データのみを、データバッファ22e〜22hへ左
詰めに連続して格納する。
クトル処理部vpa1aの結果データをデータバッファ
17aに、vpa1bの結果データをデータバッファ1
7bに、vpa1cの結果データをデータバッファ17
cに、vpa1dの結果データをデータバッファ17d
に書き込みを行う。同一タイミングで、ベクトルプロセ
ッサVPA1の各ベクトル処理部のマスクレジスタVM
R18a内のマスクビット4要素分のデータが、パス1
9aを介して専用回路3内のバッファ20a〜20d
に、4データ(=4ビット)同時に書き込まれる。アラ
イナー回路21は、マスクデータの有効無効情報に従っ
て、データバッファ17に書き込んだデータのうち有効
要素データのみを、データバッファ22e〜22hへ左
詰めに連続して格納する。
【0055】ベクトルプロセッサVPA1の制御部CA
4には、バッファ22に書き込んだデータ数を数えるた
めに、「3」まで数えた後「0」に戻るカウンターが備
えられている。いま、例えば、マスクデータが“100
1 1011”(有効データを“1”で表すものとす
る)である場合の圧縮処理を説明する。
4には、バッファ22に書き込んだデータ数を数えるた
めに、「3」まで数えた後「0」に戻るカウンターが備
えられている。いま、例えば、マスクデータが“100
1 1011”(有効データを“1”で表すものとす
る)である場合の圧縮処理を説明する。
【0056】まず、先の4要素について処理を行う。有
効要素データは、データバッファ17a第0番及び17
d第3番要素であり、アライナー回路21によって第0
番要素データがデータバッファ22eへ、第3番要素デ
ータがデータバッファ22fへ書き込まれる。この場
合、データバッファ22g、22hには何も書き込まれ
ない。そして、このとき、制御部CA4内のカウンター
は「2」を示す。データバッファ22e〜22fに書き
込まれた2個のベクトルデータは、パス23b及びセレ
クタ8bを介して、それぞれベクトルプロセッサVPB
2内のベクトル処理部vpb2a、vpb2bのベクト
ルレジスタVR2bへ1データずつ同時に書き込まれ
る。
効要素データは、データバッファ17a第0番及び17
d第3番要素であり、アライナー回路21によって第0
番要素データがデータバッファ22eへ、第3番要素デ
ータがデータバッファ22fへ書き込まれる。この場
合、データバッファ22g、22hには何も書き込まれ
ない。そして、このとき、制御部CA4内のカウンター
は「2」を示す。データバッファ22e〜22fに書き
込まれた2個のベクトルデータは、パス23b及びセレ
クタ8bを介して、それぞれベクトルプロセッサVPB
2内のベクトル処理部vpb2a、vpb2bのベクト
ルレジスタVR2bへ1データずつ同時に書き込まれ
る。
【0057】同一のタイミングで、バッファ20a〜2
0dのマスクデータは、バッファ24a〜24d及びパ
ス25bを介してベクトルプロセッサVPB2内のベク
トルマスクレジスタVMR18bに、4データ同時に書
き込まれる。
0dのマスクデータは、バッファ24a〜24d及びパ
ス25bを介してベクトルプロセッサVPB2内のベク
トルマスクレジスタVMR18bに、4データ同時に書
き込まれる。
【0058】次に、次の4要素分について処理を行う。
有効要素データは、データバッファ17a第4番、17
c第6番及び17d第7番の各要素であり、アライナー
回路21によって、前述と同様に、これらの要素がそれ
ぞれをデータバッファ22へ書き込まれる。この処理の
開始前、制御部CA4のカウンターは「2」を示してい
るので、書き込みは、データバッファ22gから連続さ
せて行われることになる。すなわち、データバッファ1
7a、17c、17dのデータが、バッファ22g、2
2h、22eへ書き込まれる。データバッファ22fへ
は何も書き込まれない。
有効要素データは、データバッファ17a第4番、17
c第6番及び17d第7番の各要素であり、アライナー
回路21によって、前述と同様に、これらの要素がそれ
ぞれをデータバッファ22へ書き込まれる。この処理の
開始前、制御部CA4のカウンターは「2」を示してい
るので、書き込みは、データバッファ22gから連続さ
せて行われることになる。すなわち、データバッファ1
7a、17c、17dのデータが、バッファ22g、2
2h、22eへ書き込まれる。データバッファ22fへ
は何も書き込まれない。
【0059】この状態で、前述のカウンターは「1」を
示す。データバッファ22e、22g、22hに書き込
まれた3個のベクトルデータは、パス23b及びセレク
タ8bを介して、ベクトルプロセッサVPB2内のベク
トル処理部vpb2a、vpb2c、vpb2dのベク
トルレジスタVR2bに1データずつ同時に書き込まれ
る。同一のタイミングで、マスクバッファ20a〜20
d内のマスクデータは、バッファ24a〜24d及びパ
ス25bを介して、ベクトルプロセッサVPB2内の各
ベクトル処理部のベクトルマスクレジスタVMR18b
に4データ同時に書き込まれる。以下、同様に全ベクト
ルデータについて圧縮処理が実行される。
示す。データバッファ22e、22g、22hに書き込
まれた3個のベクトルデータは、パス23b及びセレク
タ8bを介して、ベクトルプロセッサVPB2内のベク
トル処理部vpb2a、vpb2c、vpb2dのベク
トルレジスタVR2bに1データずつ同時に書き込まれ
る。同一のタイミングで、マスクバッファ20a〜20
d内のマスクデータは、バッファ24a〜24d及びパ
ス25bを介して、ベクトルプロセッサVPB2内の各
ベクトル処理部のベクトルマスクレジスタVMR18b
に4データ同時に書き込まれる。以下、同様に全ベクト
ルデータについて圧縮処理が実行される。
【0060】(6)ベクトルプロセッサVPB2内の制
御部CB5には、有効マスクビットをカウントするマス
クカウンターが備えられており、有効要素データが4要
素書き込まれる毎に4要素並列演算を行う指示を発行す
る。すなわち、ベクトル処理部vpb2a〜vpb2d
のベクトルレジスタVR2bに、各1要素ずつの4要素
並列な1列分(もしくはそれ以上の)データが揃ったと
ころで、セレクタ10bは、ベクトルレジスタVR2b
のデータと、すでに、主記憶装置6から読み出されてベ
クトルレジスタVR8bに格納されているデータとを選
択し、パス11bを介してこれらのデータをベクトル演
算器12bへ送る。
御部CB5には、有効マスクビットをカウントするマス
クカウンターが備えられており、有効要素データが4要
素書き込まれる毎に4要素並列演算を行う指示を発行す
る。すなわち、ベクトル処理部vpb2a〜vpb2d
のベクトルレジスタVR2bに、各1要素ずつの4要素
並列な1列分(もしくはそれ以上の)データが揃ったと
ころで、セレクタ10bは、ベクトルレジスタVR2b
のデータと、すでに、主記憶装置6から読み出されてベ
クトルレジスタVR8bに格納されているデータとを選
択し、パス11bを介してこれらのデータをベクトル演
算器12bへ送る。
【0061】命令(12)のVR9=VR2+VR8の演
算がベクトル演算器12bにおいて実行され、その結果
は、パス13b及びセレクタ8bを介してベクトルレジ
スタVR9bへ書き込まれる。以降、ベクトルプロセッ
サVPB2は、プログラムBに割り当てられたベクトル
命令の処理を続ける。
算がベクトル演算器12bにおいて実行され、その結果
は、パス13b及びセレクタ8bを介してベクトルレジ
スタVR9bへ書き込まれる。以降、ベクトルプロセッ
サVPB2は、プログラムBに割り当てられたベクトル
命令の処理を続ける。
【0062】(7)プログラムAにおいて、命令(04)
は、ベクトルレジスタVR9bのデータを必要とするた
め、前述の処理(5)の結果を、ベクトルプロセッサV
PA1のベクトルレジスタVR9aにへコピーしなくて
はならない。但し、この命令は、マスク参照なしの命令
であり、一方、前述の(6)処理で得られた結果データ
は、圧縮されたデータであるため、前述の結果データの
拡張処理を行った後、ベクトルレジスタVR9aに書き
込む必要がある。
は、ベクトルレジスタVR9bのデータを必要とするた
め、前述の処理(5)の結果を、ベクトルプロセッサV
PA1のベクトルレジスタVR9aにへコピーしなくて
はならない。但し、この命令は、マスク参照なしの命令
であり、一方、前述の(6)処理で得られた結果データ
は、圧縮されたデータであるため、前述の結果データの
拡張処理を行った後、ベクトルレジスタVR9aに書き
込む必要がある。
【0063】(8)データの拡張処理は、図2に示すよ
うに、圧縮、拡張機能を備える専用回路3によりデータ
の乗り換えを行うことにより実行される。すなわち、ベ
クトルプロセッサVPB2内の制御部CB5のマスクカ
ウンターは、ベクトルマスクレジスタVMR18bにお
けるマスクデータの4要素並列の1列分中の有効要素の
数をカウントし、その結果と同数の要素データ(0ない
し4個)を、ベクトルレジスタVR9bよりセレクタ1
0b、パス11b及びセレクタ15bによって選択す
る。この結果選択されたデータは、パス16b、セレク
タ26bを介して、要素番号の若い順に専用回路3内の
バッファ17e〜17hに、全データを左詰めにして同
時に書き込まれる。
うに、圧縮、拡張機能を備える専用回路3によりデータ
の乗り換えを行うことにより実行される。すなわち、ベ
クトルプロセッサVPB2内の制御部CB5のマスクカ
ウンターは、ベクトルマスクレジスタVMR18bにお
けるマスクデータの4要素並列の1列分中の有効要素の
数をカウントし、その結果と同数の要素データ(0ない
し4個)を、ベクトルレジスタVR9bよりセレクタ1
0b、パス11b及びセレクタ15bによって選択す
る。この結果選択されたデータは、パス16b、セレク
タ26bを介して、要素番号の若い順に専用回路3内の
バッファ17e〜17hに、全データを左詰めにして同
時に書き込まれる。
【0064】また、同一のタイミングで、ベクトルプロ
セッサVPB2のベクトルマスクレジスタVMR18b
内のマスクデータ4要素分のデータが、パス19bを介
して専用回路3内のバッファ20e〜20hへ書き込ま
れる。専用回路3は、このマスクデータの有効無効情報
に従って、バッファ17に書き込んだデータを元の並び
に復元する。いま、ベクトルマスクレジスタレジスタV
MRの内容が“1001 1011”であるとして復元
の動作を説明する。
セッサVPB2のベクトルマスクレジスタVMR18b
内のマスクデータ4要素分のデータが、パス19bを介
して専用回路3内のバッファ20e〜20hへ書き込ま
れる。専用回路3は、このマスクデータの有効無効情報
に従って、バッファ17に書き込んだデータを元の並び
に復元する。いま、ベクトルマスクレジスタレジスタV
MRの内容が“1001 1011”であるとして復元
の動作を説明する。
【0065】まず、先の4要素についての処理を行う。
この場合、有効マスクビット“1”が2個であるから、
ベクトルデータとしては、ベクトル処理部vpb2a、
vpb2bのベクトルレジスタVR9bから各1個ずつ
計2個が選択され、セレクタ26bを介してバッファ1
7e、17fへ書き込まれる。アライナー回路21は、
マスクビットに従い、レジスタ17eのデータを第0番
要素データとしてレジスタ22aへ、レジスタ17fの
データを第3番要素データとして22dへ、並びかえ
る。
この場合、有効マスクビット“1”が2個であるから、
ベクトルデータとしては、ベクトル処理部vpb2a、
vpb2bのベクトルレジスタVR9bから各1個ずつ
計2個が選択され、セレクタ26bを介してバッファ1
7e、17fへ書き込まれる。アライナー回路21は、
マスクビットに従い、レジスタ17eのデータを第0番
要素データとしてレジスタ22aへ、レジスタ17fの
データを第3番要素データとして22dへ、並びかえ
る。
【0066】拡張されたデータは、パス23a及びベク
トルプロセッサVPA1内のセレクタ8aによって選択
され、有効要素データのみが該当要素番号のベクトル処
理部のベクトルレジスタVR9aに同時に書き込まれ、
無効要素第1、2番のベクトル処理部に対するデータの
書換えは行われない。また、同一のタイミングで、バッ
ファ20e〜20hのマスクデータは、バッファ24e
〜24hからパス25aを介してベクトルプロセッサV
PA1内のベクトルマスクレジスタVMRaに4データ
同時に書き込まれる。
トルプロセッサVPA1内のセレクタ8aによって選択
され、有効要素データのみが該当要素番号のベクトル処
理部のベクトルレジスタVR9aに同時に書き込まれ、
無効要素第1、2番のベクトル処理部に対するデータの
書換えは行われない。また、同一のタイミングで、バッ
ファ20e〜20hのマスクデータは、バッファ24e
〜24hからパス25aを介してベクトルプロセッサV
PA1内のベクトルマスクレジスタVMRaに4データ
同時に書き込まれる。
【0067】その後、次のマスクデータ4要素分につい
ての処理を行う。ベクトルデータは、セレクタ26bに
よりベクトル処理部vpb2c、vpb2d、vpb2
aからこの順に選択され、そのデータの順に左詰めにし
てバッファ17e〜17gへ同時に書き込まれる。アラ
イナー回路21は、マスクデータに従い、これらのデー
タを、それぞれ、第4、6、7番要素データとしてレジ
スタ22a、22c、22dへ並び変える。
ての処理を行う。ベクトルデータは、セレクタ26bに
よりベクトル処理部vpb2c、vpb2d、vpb2
aからこの順に選択され、そのデータの順に左詰めにし
てバッファ17e〜17gへ同時に書き込まれる。アラ
イナー回路21は、マスクデータに従い、これらのデー
タを、それぞれ、第4、6、7番要素データとしてレジ
スタ22a、22c、22dへ並び変える。
【0068】拡張されたデータは、パス23a及びベク
トルプロセッサVPA1内セレクタ8aにより選択さ
れ、有効要素データのみが、該当要素番号のベクトル処
理部のベクトルレジスタVR9aに同時に書き込まれ、
無効要素番号のベクトル処理部に対するデータの書換え
は行われない。また、同一のタイミングで、バッファ2
0e〜20hのマスクデータは、バッファ24e〜24
hからパス25aを介してベクトルプロセッサVPA1
内のベクトルマスクレジスタVMRaに4データ同時に
書き込まれる。以下、同様にしてデータの拡張処理が実
行される。
トルプロセッサVPA1内セレクタ8aにより選択さ
れ、有効要素データのみが、該当要素番号のベクトル処
理部のベクトルレジスタVR9aに同時に書き込まれ、
無効要素番号のベクトル処理部に対するデータの書換え
は行われない。また、同一のタイミングで、バッファ2
0e〜20hのマスクデータは、バッファ24e〜24
hからパス25aを介してベクトルプロセッサVPA1
内のベクトルマスクレジスタVMRaに4データ同時に
書き込まれる。以下、同様にしてデータの拡張処理が実
行される。
【0069】(9)ベクトルプロセッサVPA1内の制
御部CA4は、要素データが書き込まれる毎に4要素並
列に演算を行う指示を発行する。ベクトル処理部vpa
1a〜vpa1d内の各ベクトルレジスタVR9aに各
1要素ずつ、すなわち、4要素並列1列分のデータが揃
ったところで、セレクタ10aは、制御部CA4によっ
てベクトルレジスタVR1a及びVR9aのデータを選
択し、これらのデータをパス11aを介してベクトル演
算器12aへ送る。
御部CA4は、要素データが書き込まれる毎に4要素並
列に演算を行う指示を発行する。ベクトル処理部vpa
1a〜vpa1d内の各ベクトルレジスタVR9aに各
1要素ずつ、すなわち、4要素並列1列分のデータが揃
ったところで、セレクタ10aは、制御部CA4によっ
てベクトルレジスタVR1a及びVR9aのデータを選
択し、これらのデータをパス11aを介してベクトル演
算器12aへ送る。
【0070】ベクトル演算器12aは、命令(04)VR
3=VR1+VR9を実行し、その結果は、パス13a
及びセレクタ8aを介してベクトルレジスタVR3aに
書き込まれる。以降、ベクトルプロセッサVPA1は、
プログラムAとして割り当てられたベクトル命令の処理
を行う。
3=VR1+VR9を実行し、その結果は、パス13a
及びセレクタ8aを介してベクトルレジスタVR3aに
書き込まれる。以降、ベクトルプロセッサVPA1は、
プログラムAとして割り当てられたベクトル命令の処理
を行う。
【0071】前述した本発明の一実施例は、ベクトルプ
ロセッサVPA1からVPB2へのデータ転送時に圧縮
処理を行い、ベクトルプロセッサVPB2からVPA1
へのデータ転送時に拡張処理を行うとして説明したが、
本発明は、逆の処理も専用回路3に行わせることができ
る。また、本発明は、ベクトルプロセッサの数が2台以
上になった場合にも、同様に、プロセッサ相互間のデー
タ転送時に、データの圧縮、拡張の処理を行うことが可
能である。
ロセッサVPA1からVPB2へのデータ転送時に圧縮
処理を行い、ベクトルプロセッサVPB2からVPA1
へのデータ転送時に拡張処理を行うとして説明したが、
本発明は、逆の処理も専用回路3に行わせることができ
る。また、本発明は、ベクトルプロセッサの数が2台以
上になった場合にも、同様に、プロセッサ相互間のデー
タ転送時に、データの圧縮、拡張の処理を行うことが可
能である。
【0072】さらに、前述の専用回路3は、データの圧
縮、拡張を必要としないプロセッサ間のデータの転送に
際して、単にデータバッファとして使用することがで
き、高速なプロセッサ間のデータ転送を行うことができ
る。また、前述の専用回路3は、1つのベクトルプロセ
ッサが、データの圧縮、拡張を行う場合にも使用するこ
とができる。
縮、拡張を必要としないプロセッサ間のデータの転送に
際して、単にデータバッファとして使用することがで
き、高速なプロセッサ間のデータ転送を行うことができ
る。また、前述の専用回路3は、1つのベクトルプロセ
ッサが、データの圧縮、拡張を行う場合にも使用するこ
とができる。
【0073】前述した本発明の一実施例によれば、複数
のベクトルプロセッサを備えて構成されるベクトル処理
装置において、プロセッサ間のデータ転送、データ転送
時のデータの圧縮、拡張処理を専用の回路を使用して高
速に行うことができ、処理装置全体の処理時間の短縮を
図ることができる。また、データの圧縮処理により有効
データのみにより構成されるベクトデータを作成してベ
クトル演算を行わせることができるので、ベクトル演算
器の使用効率の向上を図ることができるので、処理すべ
きベクトル長が長ければ長いほど、高速な処理を行うこ
とができる。
のベクトルプロセッサを備えて構成されるベクトル処理
装置において、プロセッサ間のデータ転送、データ転送
時のデータの圧縮、拡張処理を専用の回路を使用して高
速に行うことができ、処理装置全体の処理時間の短縮を
図ることができる。また、データの圧縮処理により有効
データのみにより構成されるベクトデータを作成してベ
クトル演算を行わせることができるので、ベクトル演算
器の使用効率の向上を図ることができるので、処理すべ
きベクトル長が長ければ長いほど、高速な処理を行うこ
とができる。
【0074】さらに、本発明の実施例は、複数のベクト
ルプロセッサと専用回路とを同一のLSI上に搭載して
構成することができ、これにより、さらに高速な処理を
行わせることができる。
ルプロセッサと専用回路とを同一のLSI上に搭載して
構成することができ、これにより、さらに高速な処理を
行わせることができる。
【0075】
【発明の効果】以上説明したように本発明によれば、デ
ータの圧縮、拡張処理に必要な時間の短縮、プロセッサ
間のデータ転送時間の短縮を図り、これにより処理装置
全体の処理の高速化を図ることができる。また、圧縮処
理により有効データのみによるデータを、ベクトレジス
タ内に作成することができるので、ベクトル演算器の使
用効率を上げることができ、この結果ベクトル長が長け
れば長いほど、処理時間の短縮を図ることができる。
ータの圧縮、拡張処理に必要な時間の短縮、プロセッサ
間のデータ転送時間の短縮を図り、これにより処理装置
全体の処理の高速化を図ることができる。また、圧縮処
理により有効データのみによるデータを、ベクトレジス
タ内に作成することができるので、ベクトル演算器の使
用効率を上げることができ、この結果ベクトル長が長け
れば長いほど、処理時間の短縮を図ることができる。
【図1】本発明の一実施例によるベクトル処理装置の構
成を示すブロック図である。
成を示すブロック図である。
【図2】ベクトルデータの圧縮・拡張処理の概念を説明
する図である。
する図である。
1 ベクトルプロセッサVPA 2 ベクトルプロセッサVPB 3 専用回路 4 制御部CA 5 制御部CB 6 主記憶装置 VR0〜VR9 ベクトルレジスタ 18a、18b ベクトルマスクレジスタ(VMR) 8、10、15 セレクタ 12 演算器 20a〜20h、24a〜24h マスクバッファ 17a〜17h、22a〜22h データバッファ 21 アライナー回路
Claims (4)
- 【請求項1】 ベクトルデータを保持する複数のベクト
ルレジスタと、前記ベクトルレジスタから読み出したベ
クトルデータを処理する演算器とを有するベクトル演算
部を複数備えて成るベクトルプロセッサを、少なくとも
2台備えて構成されるベクトル処理装置において、前記
ベクトルプロセッサ間のデータ転送のための専用回路を
備えることを特徴とするベクトル処理装置。 - 【請求項2】 前記ベクトルレジスタから読み出したベ
クトルデータの有効、無効を示す情報を格納するベクト
ルマスクレジスタを備え、前記専用回路は、前記ベクト
ルプロセッサの1つから出力された複数のベクトルデー
タに対して、前記ベクトルマスクレジスタから同時に出
力されたマスクデータに従って前記ベクトルデータの有
効情報のみを取り出すデータの圧縮を行い、その結果
を、前記ベクトルデータを出力したベクトルプロセッサ
または他のベクトルプロセッサに送出することを特徴と
する請求項1記載のベクトル処理装置。 - 【請求項3】 前記専用回路は、前記ベクトルプロセッ
サの1つから出力された複数のベクトルデータに対し
て、前記ベクトルマスクレジスタから同時に出力された
マスクデータに従って、前記ベクトルデータを有効要素
番号に割り当てるデータの拡張を行い、その結果を、前
記ベクトルデータを出力したベクトルプロセッサまたは
他のベクトルプロセッサに送出することを特徴とする請
求項2記載のベクトル処理装置。 - 【請求項4】 前記ベクトルプロセッサと専用回路とが
1つのLSI上に形成されて構成されることを特徴とす
る請求項1、2または3記載のベクトル処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14942793A JPH0721154A (ja) | 1993-06-21 | 1993-06-21 | ベクトル処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14942793A JPH0721154A (ja) | 1993-06-21 | 1993-06-21 | ベクトル処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0721154A true JPH0721154A (ja) | 1995-01-24 |
Family
ID=15474875
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP14942793A Pending JPH0721154A (ja) | 1993-06-21 | 1993-06-21 | ベクトル処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0721154A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010097595A (ja) * | 2008-10-15 | 2010-04-30 | Internatl Business Mach Corp <Ibm> | 高密度スレッド化ネットワーク・オン・ア・チップにおけるソフトウェア制御の任意ベクトル・オペランド選択をサポートする直接スレッド間通信バッファ |
| JP2015522196A (ja) * | 2012-07-11 | 2015-08-03 | エイアールエム リミテッド | ベクトル処理中のデータ要素処理のための順序制御 |
-
1993
- 1993-06-21 JP JP14942793A patent/JPH0721154A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010097595A (ja) * | 2008-10-15 | 2010-04-30 | Internatl Business Mach Corp <Ibm> | 高密度スレッド化ネットワーク・オン・ア・チップにおけるソフトウェア制御の任意ベクトル・オペランド選択をサポートする直接スレッド間通信バッファ |
| JP2015522196A (ja) * | 2012-07-11 | 2015-08-03 | エイアールエム リミテッド | ベクトル処理中のデータ要素処理のための順序制御 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0731669B2 (ja) | ベクトル・プロセツサ | |
| JPS59160267A (ja) | ベクトル処理装置 | |
| JPH03286332A (ja) | デジタルデータ処理装置 | |
| JPH0410108B2 (ja) | ||
| JP2000222384A (ja) | 演算処理装置 | |
| JPH0721154A (ja) | ベクトル処理装置 | |
| JPS5814257A (ja) | 論理シミユレ−シヨン用デ−タ処理装置 | |
| JP3305406B2 (ja) | プログラム制御のプロセッサ | |
| JP3403614B2 (ja) | 動的な資源利用機能を備えたデータ処理システム | |
| JP3771682B2 (ja) | ベクトル処理装置 | |
| JPH07325805A (ja) | ベクトル処理装置 | |
| JP2654451B2 (ja) | データ出力方法 | |
| JPH10116191A (ja) | 圧縮命令用バッファを備えたプロセッサ | |
| JP3144918B2 (ja) | ベクトル処理装置 | |
| JP3088956B2 (ja) | 演算装置 | |
| JP2002108604A (ja) | Simd型マイクロプロセッサにおけるテーブル変換 | |
| JP3068406B2 (ja) | ベクトル演算装置 | |
| JPH07191908A (ja) | マイクロプロセッサとその制御方法 | |
| JPS60178539A (ja) | 情報処理装置におけるバイパス制御方式 | |
| JP2583614B2 (ja) | ベクトル演算装置 | |
| JPS5995646A (ja) | 演算制御装置 | |
| JPH03196257A (ja) | ベクトル処理装置 | |
| JPH09325953A (ja) | プロセッサおよびデータ処理装置 | |
| JPH0520353A (ja) | ベクトルデータ処理装置 | |
| JPH023822A (ja) | データ処理装置 |