JP3278441B2 - ベクトル処理装置 - Google Patents
ベクトル処理装置Info
- Publication number
- JP3278441B2 JP3278441B2 JP21876591A JP21876591A JP3278441B2 JP 3278441 B2 JP3278441 B2 JP 3278441B2 JP 21876591 A JP21876591 A JP 21876591A JP 21876591 A JP21876591 A JP 21876591A JP 3278441 B2 JP3278441 B2 JP 3278441B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- register
- vector register
- contents
- index
- 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 - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Description
【0001】
【産業上の利用分野】本発明は科学技術計算用の高速計
算機のベクトル処理装置に関し、特にベクトル計算機と
称するパイプライン並列動作を基本とする計算機のベク
トル処理装置に関する。
算機のベクトル処理装置に関し、特にベクトル計算機と
称するパイプライン並列動作を基本とする計算機のベク
トル処理装置に関する。
【0002】
【従来の技術】例えば場の物理量を計算するプログラム
の中には、 DO10I=1,LEN A(P(I))=A(P(I))+B(I) 10CONTINUE のような間接アドレスベクトル量に対する演算が頻繁に
あらわれる。
の中には、 DO10I=1,LEN A(P(I))=A(P(I))+B(I) 10CONTINUE のような間接アドレスベクトル量に対する演算が頻繁に
あらわれる。
【0003】従来のベクトル処理装置では、この計算を
処理する場合、間接指標ベクトルであるP(I)の内容
によって異なる処理法が用いられる。
処理する場合、間接指標ベクトルであるP(I)の内容
によって異なる処理法が用いられる。
【0004】第1の処理法は、P(I)中に重複して同
じ値が出現しない場合に用いられる方法である。この場
合、ベクトル処理が可能であり、P(I)及びB(I)
は連続ベクトルアクセス命令を用いてロードし、A(P
(I))はリストベクトル参照命令を用いてロードされ
る。レジスタ間ベクトル演算を行なった後に、A(P
(I))をリストベクトルストア命令を用いて結果を主
記憶に格納する。
じ値が出現しない場合に用いられる方法である。この場
合、ベクトル処理が可能であり、P(I)及びB(I)
は連続ベクトルアクセス命令を用いてロードし、A(P
(I))はリストベクトル参照命令を用いてロードされ
る。レジスタ間ベクトル演算を行なった後に、A(P
(I))をリストベクトルストア命令を用いて結果を主
記憶に格納する。
【0005】第2の処理法は、P(I)中に重複して同
じ値が出現する場合に用いられる方法である。この場
合、A(P(I))の定義/引用に依存関係があるため
にベクトル演算を行なうことはできず、スカラ命令を用
いて逐次処理が行なわれる。P(I)中に重複して同じ
値があらわれるかどうかはプログラムの実行時に定まる
場合があるため、上記のループをベクトル処理するかど
うかは、コンパイル時点でのユーザ指示に基づいて静的
にベクトル処理もしくはスカラ処理のオブジェクトコー
ドをコンパイラが生成する。もしくは、スカラ処理とベ
クトル処理の両方のオブジェクトコードを用意しておい
て、プログラムの実行時に動的にP(I)中の重複の有
無を判定して、スカラもしくはベクトル処理を選択して
実行するオブジェクトコードをコンパイラが生成する手
法等が用いられている。
じ値が出現する場合に用いられる方法である。この場
合、A(P(I))の定義/引用に依存関係があるため
にベクトル演算を行なうことはできず、スカラ命令を用
いて逐次処理が行なわれる。P(I)中に重複して同じ
値があらわれるかどうかはプログラムの実行時に定まる
場合があるため、上記のループをベクトル処理するかど
うかは、コンパイル時点でのユーザ指示に基づいて静的
にベクトル処理もしくはスカラ処理のオブジェクトコー
ドをコンパイラが生成する。もしくは、スカラ処理とベ
クトル処理の両方のオブジェクトコードを用意しておい
て、プログラムの実行時に動的にP(I)中の重複の有
無を判定して、スカラもしくはベクトル処理を選択して
実行するオブジェクトコードをコンパイラが生成する手
法等が用いられている。
【0006】
【発明が解決しようとする課題】上述した従来のベクト
ル処理装置は以下の問題点を持っている。即ち、A(P
(I))の定義/引用に依存関係がある場合、スカラ演
算で処理され、ベクトル処理と比べて性能向上の妨げに
なっている。
ル処理装置は以下の問題点を持っている。即ち、A(P
(I))の定義/引用に依存関係がある場合、スカラ演
算で処理され、ベクトル処理と比べて性能向上の妨げに
なっている。
【0007】本発明の目的は、定義/引用に依存関係が
ある場合に対してベクトル処理する手段を有するベクト
ル処理装置を提供することである。
ある場合に対してベクトル処理する手段を有するベクト
ル処理装置を提供することである。
【0008】
【課題を解決するための手段】本第1の発明のベクトル
処理装置は、少なくとも1つのベクトル演算器と、複数
のベクトルレジスタと、主記憶装置と、前記ベクトル演
算器と前記ベクトルレジスタと前記主記憶装置間でのデ
ータ転送を行なうためのネットワークとから構成される
ベクトル処理装置において、第1のベクトルレジスタに
0から始まる数列をベクトルロード命令によってロード
した後に前記第1のベクトルレジスタの内容をリストベ
クトルストア命令によってインデックス配列の要素のう
ちの間接指標ベクトルデータの各要素の値に対応する要
素にストアし且つ該ストア後の前記インデックス配列の
要素のうちの前記間接指標ベクトルデータの各要素の値
に対応する要素の内容をリストベクトルロード命令によ
って前記第1のベクトルレジスタにロードすることによ
り前記第1のベクトルレジスタ上にインデックスベクト
ルを生成する構成と、演算対象のベクトルデータの要素
のうちの前記間接指標ベクトルデータの各要素の値に対
応する要素の内容をリストベクトルロード命令によって
第2のベクトルレジスタにロードする構成を有し、且
つ、前記第2のベクトルレジスタからのベクトル要素読
みだし順序を前記第1のベクトルレジスタの内容によっ
て指定する第1の指定手段と、前記第2のベクトルレジ
スタへのベクトル要素書き込み順序を前記第1のベクト
ルレジスタの内容によって指定する第2の指定手段とを
備えている。
処理装置は、少なくとも1つのベクトル演算器と、複数
のベクトルレジスタと、主記憶装置と、前記ベクトル演
算器と前記ベクトルレジスタと前記主記憶装置間でのデ
ータ転送を行なうためのネットワークとから構成される
ベクトル処理装置において、第1のベクトルレジスタに
0から始まる数列をベクトルロード命令によってロード
した後に前記第1のベクトルレジスタの内容をリストベ
クトルストア命令によってインデックス配列の要素のう
ちの間接指標ベクトルデータの各要素の値に対応する要
素にストアし且つ該ストア後の前記インデックス配列の
要素のうちの前記間接指標ベクトルデータの各要素の値
に対応する要素の内容をリストベクトルロード命令によ
って前記第1のベクトルレジスタにロードすることによ
り前記第1のベクトルレジスタ上にインデックスベクト
ルを生成する構成と、演算対象のベクトルデータの要素
のうちの前記間接指標ベクトルデータの各要素の値に対
応する要素の内容をリストベクトルロード命令によって
第2のベクトルレジスタにロードする構成を有し、且
つ、前記第2のベクトルレジスタからのベクトル要素読
みだし順序を前記第1のベクトルレジスタの内容によっ
て指定する第1の指定手段と、前記第2のベクトルレジ
スタへのベクトル要素書き込み順序を前記第1のベクト
ルレジスタの内容によって指定する第2の指定手段とを
備えている。
【0009】本第2の発明のベクトル処理装置は、少な
くとも1つのベクトル演算器と、複数のベクトルレジス
タと、主記憶装置と、前記ベクトル演算器と前記ベクト
ルレジスタと前記主記憶装置間でのデータ転送を行なう
ためのネットワークとから構成されるベクトル処理装置
において、第1のベクトルレジスタに0から始まる数列
をベクトルロード命令によってロードした後に前記第1
のベクトルレジスタの内容をリストベクトルストア命令
によってインデックス配列の要素のうちの間接指標ベク
トルデータの各要素の値に対応する要素にストアし且つ
該ストア後の前記インデックス配列の要素のうちの前記
間接指標ベクトルデータの各要素の値に対応する要素の
内容をリストベクトルロード命令によって前記第1のベ
クトルレジスタにロードすることにより前記第1のベク
トルレジスタ上にインデックスベクトルを生成する構成
と、演算対象のベクトルデータの要素のうちの前記間接
指標ベクトルデータの各要素の値に対応する要素の内容
をリストベクトルロード命令によって第2のベクトルレ
ジスタにロードする構成を有し、且つ、前記第2のベク
トルレジスタからのベクトル要素読みだし順序を前記第
1のベクトルレジスタの内容によって指定する第1の指
定手段と、前記第2のベクトルレジスタへのベクトル要
素書き込み順序を前記第1のベクトルレジスタの内容に
よって指定する第2の指定手段と、この第2の指定手段
により書き込み中の前記第2のベクトルレジスタを引き
続き読出すために、読出しベクトル要素に対する書き込
みが完了しているかを判定する判定手段と、この判定手
段により書き込み未了と判定された場合に後続するベク
トル要素の読出しを待たせる読出待機手段とを備えてい
る。
くとも1つのベクトル演算器と、複数のベクトルレジス
タと、主記憶装置と、前記ベクトル演算器と前記ベクト
ルレジスタと前記主記憶装置間でのデータ転送を行なう
ためのネットワークとから構成されるベクトル処理装置
において、第1のベクトルレジスタに0から始まる数列
をベクトルロード命令によってロードした後に前記第1
のベクトルレジスタの内容をリストベクトルストア命令
によってインデックス配列の要素のうちの間接指標ベク
トルデータの各要素の値に対応する要素にストアし且つ
該ストア後の前記インデックス配列の要素のうちの前記
間接指標ベクトルデータの各要素の値に対応する要素の
内容をリストベクトルロード命令によって前記第1のベ
クトルレジスタにロードすることにより前記第1のベク
トルレジスタ上にインデックスベクトルを生成する構成
と、演算対象のベクトルデータの要素のうちの前記間接
指標ベクトルデータの各要素の値に対応する要素の内容
をリストベクトルロード命令によって第2のベクトルレ
ジスタにロードする構成を有し、且つ、前記第2のベク
トルレジスタからのベクトル要素読みだし順序を前記第
1のベクトルレジスタの内容によって指定する第1の指
定手段と、前記第2のベクトルレジスタへのベクトル要
素書き込み順序を前記第1のベクトルレジスタの内容に
よって指定する第2の指定手段と、この第2の指定手段
により書き込み中の前記第2のベクトルレジスタを引き
続き読出すために、読出しベクトル要素に対する書き込
みが完了しているかを判定する判定手段と、この判定手
段により書き込み未了と判定された場合に後続するベク
トル要素の読出しを待たせる読出待機手段とを備えてい
る。
【0010】本第3の発明のベクトル処理装置は、少な
くとも1つのベクトル演算器と、複数のベクトルレジス
タと、主記憶装置と、前記ベクトル演算器と前記ベクト
ルレジスタと前記主記憶装置間でのデータ転送を行なう
ためのネットワークとから構成されるベクトル処理装置
において、第1のベクトルレジスタに0から始まる数列
をベクトルロード命令によってロードした後に前記第1
のベクトルレジスタの内容をリストベクトルストア命令
によってインデックス配列の要素のうちの間接指標ベク
トルデータの各要素の値に対応する要素にストアし且つ
該ストア後の前記インデックス配列の要素のうちの前記
間接指標ベクトルデータの各要素の値に対応する要素の
内容をリストベクトルロード命令によって前記第1のベ
クトルレジスタにロードすることにより前記第1のベク
トルレジスタ上にインデックスベクトルを生成する構成
と、演算対象のベクトルデータの要素のうちの前記間接
指標ベクトルデータの各要素の値に対応する要素の内容
をリストベクトルロード命令によって第2のベクトルレ
ジスタにロードする構成を有し、且つ、前記第2のベク
トルレジスタからのベクトル要素読みだし順序を前記第
1のベクトルレジスタの内容によって指定する第1の指
定手段と、前記第2のベクトルレジスタへのベクトル要
素書き込み順序を前記第1のベクトルレジスタの内容に
よって指定する第2の指定手段と、ベクトル演算結果を
前記第2の指定手段により書き込み中の前記第2のベク
トルレジスタを引き続き読出すために、読出しベクトル
要素に対する書込みが完了しているかを判定する判定手
段と、この判定手段により書込み未了と判定された場合
に後続するベクトル要素の読出しを前記ベクトル演算器
の出力をバイパスして行なう読出手段とを備えている。
くとも1つのベクトル演算器と、複数のベクトルレジス
タと、主記憶装置と、前記ベクトル演算器と前記ベクト
ルレジスタと前記主記憶装置間でのデータ転送を行なう
ためのネットワークとから構成されるベクトル処理装置
において、第1のベクトルレジスタに0から始まる数列
をベクトルロード命令によってロードした後に前記第1
のベクトルレジスタの内容をリストベクトルストア命令
によってインデックス配列の要素のうちの間接指標ベク
トルデータの各要素の値に対応する要素にストアし且つ
該ストア後の前記インデックス配列の要素のうちの前記
間接指標ベクトルデータの各要素の値に対応する要素の
内容をリストベクトルロード命令によって前記第1のベ
クトルレジスタにロードすることにより前記第1のベク
トルレジスタ上にインデックスベクトルを生成する構成
と、演算対象のベクトルデータの要素のうちの前記間接
指標ベクトルデータの各要素の値に対応する要素の内容
をリストベクトルロード命令によって第2のベクトルレ
ジスタにロードする構成を有し、且つ、前記第2のベク
トルレジスタからのベクトル要素読みだし順序を前記第
1のベクトルレジスタの内容によって指定する第1の指
定手段と、前記第2のベクトルレジスタへのベクトル要
素書き込み順序を前記第1のベクトルレジスタの内容に
よって指定する第2の指定手段と、ベクトル演算結果を
前記第2の指定手段により書き込み中の前記第2のベク
トルレジスタを引き続き読出すために、読出しベクトル
要素に対する書込みが完了しているかを判定する判定手
段と、この判定手段により書込み未了と判定された場合
に後続するベクトル要素の読出しを前記ベクトル演算器
の出力をバイパスして行なう読出手段とを備えている。
【0011】
【実施例】次に、本発明について図面を参照して説明す
る。
る。
【0012】図1は本第1の発明の一実施例を示すブロ
ック図である。
ック図である。
【0013】図1において、本実施例は、従来の技術の
項で示した、場の物理量を計算するプログラム中のA
(P(I))中に依存関係を発生させるP(I)=P
(J)の関係が|I−J|≦Nに存在しない場合にベク
トル化を可能とする(ここで、ベクトルレジスタから1
個ベクトル要素データを読み出して加算演算を行ない、
さらに結果をベクトルレジスタに書き込むまでに要する
ターンアラウンドタイムをMクロックとした場合、Nは
Mクロック中にベクトルレジスタから読み出されて演算
器に送り込まれる最大ベクトル要素数である)ベクトル
処理装置である。以下、N=M=7の場合を例として説
明する。
項で示した、場の物理量を計算するプログラム中のA
(P(I))中に依存関係を発生させるP(I)=P
(J)の関係が|I−J|≦Nに存在しない場合にベク
トル化を可能とする(ここで、ベクトルレジスタから1
個ベクトル要素データを読み出して加算演算を行ない、
さらに結果をベクトルレジスタに書き込むまでに要する
ターンアラウンドタイムをMクロックとした場合、Nは
Mクロック中にベクトルレジスタから読み出されて演算
器に送り込まれる最大ベクトル要素数である)ベクトル
処理装置である。以下、N=M=7の場合を例として説
明する。
【0014】図1において、本実施例のベクトル処理装
置は、任意の入力ポート,出力ポート間を接続するクロ
スバスイッチ1と、ベクトルレジスタ(VR0〜VR
4)2〜6と、ベクトルレジスタ(VR0)2上での間
接参照を行うためのレジスタ読み/書き制御回路7と、
ベクトル演算を行うベクトル演算器8,9とを有して構
成している。
置は、任意の入力ポート,出力ポート間を接続するクロ
スバスイッチ1と、ベクトルレジスタ(VR0〜VR
4)2〜6と、ベクトルレジスタ(VR0)2上での間
接参照を行うためのレジスタ読み/書き制御回路7と、
ベクトル演算を行うベクトル演算器8,9とを有して構
成している。
【0015】図2は図1に示す本実施例におけるレジス
タ読み/書き制御回路のブロック図である。
タ読み/書き制御回路のブロック図である。
【0016】図2において、本第1の発明の一実施例に
おけるレジスタ読み/書き制御回路7は順アドレス生成
回路31と、処理要素の有無を示す信号保持レジスタ2
5,27,29と、ベクトルレジスタ間接参照を行なう
ためのレジスタ要素番号を保持するベクトル要素番号保
持レジスタ26,28,30とを有して構成し、信号3
3は図1における信号17に対応し、信号32は信号3
3の供給に同期して与えられる起動信号であり(処理す
るベクトル要素の個数回起動信号は与えられる)、信号
34と信号35は図1における信号22に対応し、信号
36と信号37は図1における信号23に対応し、信号
38と信号39は図1における信号24に対応する。
おけるレジスタ読み/書き制御回路7は順アドレス生成
回路31と、処理要素の有無を示す信号保持レジスタ2
5,27,29と、ベクトルレジスタ間接参照を行なう
ためのレジスタ要素番号を保持するベクトル要素番号保
持レジスタ26,28,30とを有して構成し、信号3
3は図1における信号17に対応し、信号32は信号3
3の供給に同期して与えられる起動信号であり(処理す
るベクトル要素の個数回起動信号は与えられる)、信号
34と信号35は図1における信号22に対応し、信号
36と信号37は図1における信号23に対応し、信号
38と信号39は図1における信号24に対応する。
【0017】図3は図2中の順アドレス生成回路のブロ
ック図である。
ック図である。
【0018】図3において、順アドレス生成回路31
は、レジスタ40,43と、加算器41と、切り替え回
路42とを有して構成し、信号44は図2における信号
34に対応し、信号45は図2における信号36に対応
し、信号46は図2における信号37に対応し、信号4
7,48は順アドレス生成回路31における内部接続信
号である。
は、レジスタ40,43と、加算器41と、切り替え回
路42とを有して構成し、信号44は図2における信号
34に対応し、信号45は図2における信号36に対応
し、信号46は図2における信号37に対応し、信号4
7,48は順アドレス生成回路31における内部接続信
号である。
【0019】図4は図3中の切り替え回路のブロック図
である。
である。
【0020】図4において、切り替え回路42はインバ
ータ49と、AND回路50,51と、OR回路52と
を有して構成し、信号53は図3における信号46に対
応し、信号54は図3における信号47に対応し、信号
56は図3における信号48に対応する。
ータ49と、AND回路50,51と、OR回路52と
を有して構成し、信号53は図3における信号46に対
応し、信号54は図3における信号47に対応し、信号
56は図3における信号48に対応する。
【0021】図5はFORTRANを用いて記述した場
の物理量を計算するソースプログラム例の総和演算を示
す図である。
の物理量を計算するソースプログラム例の総和演算を示
す図である。
【0022】図6は図5で示されるプログラムに対して
コンパイラが生成するベクトル実行オブジェクトプログ
ラムの要約を示した図である。
コンパイラが生成するベクトル実行オブジェクトプログ
ラムの要約を示した図である。
【0023】図6において、プログラムステップ6が本
実施例によるベクトル処理演算であり、ステップ1〜5
と7は既存のベクトル処理装置の機能を用いた処理であ
る。
実施例によるベクトル処理演算であり、ステップ1〜5
と7は既存のベクトル処理装置の機能を用いた処理であ
る。
【0024】図6におけるLENは図5におけるLEN
と等しく、DOループを繰り返す回数を指定している。
図6におけるMAXVLはハードウェアが備えるベクト
ルレジスタの長さの最大値、VLは図6のベクトルルー
ププログラムを実行する際に各ループで実際に用いられ
るベクトル長を表している。VLはプログラムのループ
の繰り返しに従って、MAXVL、もしくはLENをM
AXVLで割った余りの数のいずれかの値となる。
と等しく、DOループを繰り返す回数を指定している。
図6におけるMAXVLはハードウェアが備えるベクト
ルレジスタの長さの最大値、VLは図6のベクトルルー
ププログラムを実行する際に各ループで実際に用いられ
るベクトル長を表している。VLはプログラムのループ
の繰り返しに従って、MAXVL、もしくはLENをM
AXVLで割った余りの数のいずれかの値となる。
【0025】図7は図6のプログラム例を実行する際の
データの一例を示す図である。
データの一例を示す図である。
【0026】図8は図6のプログラム例に図7のデータ
を用いてVL=11とした場合のプログラムを示す図で
ある。
を用いてVL=11とした場合のプログラムを示す図で
ある。
【0027】次に、本実施例の実行動作を図1〜図4,
図8を用いて説明する。
図8を用いて説明する。
【0028】ステップ1ではレジスタインデックス生成
の種となるデータをベクトルレジスタ(VR0)2に設
定している。この初期データ{0,1,2,3,VL−
1}は配列P(I)中に重複して同一データが出現しな
い場合を表しており、メモリ中に格納しておいた0から
始まる数列をベクトルロードすることでベクトルレジス
タ(VR0)2に設定する。ステップ2ではベクトルレ
ジスタ(VR0)2に格納されているデータをIDX
(P(I))に格納する(リストベクトルストア)こと
を示している。
の種となるデータをベクトルレジスタ(VR0)2に設
定している。この初期データ{0,1,2,3,VL−
1}は配列P(I)中に重複して同一データが出現しな
い場合を表しており、メモリ中に格納しておいた0から
始まる数列をベクトルロードすることでベクトルレジス
タ(VR0)2に設定する。ステップ2ではベクトルレ
ジスタ(VR0)2に格納されているデータをIDX
(P(I))に格納する(リストベクトルストア)こと
を示している。
【0029】IDX配列はコンパイラにより用意された
作業用配列であり、リストストアすることでP(I)中
に重複して出現する数値5,7,15に対応するIDX
(5),IDX(7),IDX(15)には重複データ
が最後に出現した位置を示す7、9、15の数値が最終
値として残ることになる。従ってステップ3で再びID
X(P(I))をベクトルレジスタ(VR0)2にロー
ドすると目的とするレジスタインデックスを得ることが
可能である。
作業用配列であり、リストストアすることでP(I)中
に重複して出現する数値5,7,15に対応するIDX
(5),IDX(7),IDX(15)には重複データ
が最後に出現した位置を示す7、9、15の数値が最終
値として残ることになる。従ってステップ3で再びID
X(P(I))をベクトルレジスタ(VR0)2にロー
ドすると目的とするレジスタインデックスを得ることが
可能である。
【0030】初期データ{0,1,2,3,4,5,
6,7,8,9,10}に対してステップ3を完了した
時点で得られた(7’,9’,2,3,4,5,1
0’,7,8,9,10}は、P(I)中の重複データ
に対するインデックスを同一ベクトルレジスタ要素番号
を示すように修正がうまく行なえることを示している
(“’”を施した部分がP(I)中で重複するために変
更されたインデックス要素)。
6,7,8,9,10}に対してステップ3を完了した
時点で得られた(7’,9’,2,3,4,5,1
0’,7,8,9,10}は、P(I)中の重複データ
に対するインデックスを同一ベクトルレジスタ要素番号
を示すように修正がうまく行なえることを示している
(“’”を施した部分がP(I)中で重複するために変
更されたインデックス要素)。
【0031】ステップ4と5はリスト総和演算を行なう
ために配列Aと配列Bをロードすることを示している。
ステップ5は本第1の発明の本実施例によるベクトル処
理ステップであり、ベクトルレジスタ(VR1)3中の
Aのベクトルに対してベクトルレジスタ(VR0)2中
のレジスタインデックスを用いてベクトルレジスタ(V
R2)4中のBのベクトルと加算を行なう。
ために配列Aと配列Bをロードすることを示している。
ステップ5は本第1の発明の本実施例によるベクトル処
理ステップであり、ベクトルレジスタ(VR1)3中の
Aのベクトルに対してベクトルレジスタ(VR0)2中
のレジスタインデックスを用いてベクトルレジスタ(V
R2)4中のBのベクトルと加算を行なう。
【0032】図1においてベクトルレジスタ(VR0)
2中のインデックスベクトルは信号17によりレジスタ
読み/書き制御回路7に伝えられる。レジスタ読み/書
き制御回路7は、ベクトルレジスタ(VR1)3に対す
るベクトル要素読みだしアドレス信号22を用いてイン
デックスベクトルで指示されたAベクトルの要素を読み
だし、またベクトルレジスタ(VR2)4に対してはベ
クトル要素読みだしアドレス信号23を用いてBベクト
ルを先頭から読みだす。さらに、ベクトルレジスタ(V
R1)3に対するベクトル要素書き込みアドレス信号2
4を用いて演算結果を書き込む。
2中のインデックスベクトルは信号17によりレジスタ
読み/書き制御回路7に伝えられる。レジスタ読み/書
き制御回路7は、ベクトルレジスタ(VR1)3に対す
るベクトル要素読みだしアドレス信号22を用いてイン
デックスベクトルで指示されたAベクトルの要素を読み
だし、またベクトルレジスタ(VR2)4に対してはベ
クトル要素読みだしアドレス信号23を用いてBベクト
ルを先頭から読みだす。さらに、ベクトルレジスタ(V
R1)3に対するベクトル要素書き込みアドレス信号2
4を用いて演算結果を書き込む。
【0033】図2に示しているように、信号32で与え
られる起動信号と信号33で得られたベクトルレジスタ
(VR0)2(インデックスベクトル)を信号34と3
5としてベクトルレジスタ(VR1)3(Aベクトル)
の読みだしに用いる。ベクトルレジスタ(VR2)4の
読みだしには、起動信号32を用いた順アドレス生成回
路31(インクリメントカウンタ)の出力である信号3
6と37を用いている。ベクトルレジスタ(VR1)3
に対する書き込みは演算結果を得るまでの遅延を伴うた
め、必要となる遅延時間(Nクロック)を信号保持レジ
スタ27とベクトル要素番号信号レジスタ28を複数段
重ねて持ち回った信号38と39を用いることで実現し
ている。
られる起動信号と信号33で得られたベクトルレジスタ
(VR0)2(インデックスベクトル)を信号34と3
5としてベクトルレジスタ(VR1)3(Aベクトル)
の読みだしに用いる。ベクトルレジスタ(VR2)4の
読みだしには、起動信号32を用いた順アドレス生成回
路31(インクリメントカウンタ)の出力である信号3
6と37を用いている。ベクトルレジスタ(VR1)3
に対する書き込みは演算結果を得るまでの遅延を伴うた
め、必要となる遅延時間(Nクロック)を信号保持レジ
スタ27とベクトル要素番号信号レジスタ28を複数段
重ねて持ち回った信号38と39を用いることで実現し
ている。
【0034】以上、本第1の発明の一実施例を図を用い
て説明し、本第1の発明がA(P(I))中に依存関係
を発生させるP(I)=P(J)の関係が|I−J|≦
Nに存在しない場合にベクトル処理可能であることを示
した。
て説明し、本第1の発明がA(P(I))中に依存関係
を発生させるP(I)=P(J)の関係が|I−J|≦
Nに存在しない場合にベクトル処理可能であることを示
した。
【0035】次に、本第2の発明のA(P(I))の定
義/引用の参照関係に何らの限定を加えることなくベク
トル化を可能とするベクトル処理装置の一実施例を図を
用いて説明する。
義/引用の参照関係に何らの限定を加えることなくベク
トル化を可能とするベクトル処理装置の一実施例を図を
用いて説明する。
【0036】図9は本第2の発明によるベクトル処理装
置の一実施例を示すブロック図である。
置の一実施例を示すブロック図である。
【0037】図9において、本実施例は任意の入力ポー
トと出力ポート間を接続するクロスバスイッチ57と、
ベクトルレジスタ(VR0〜VR2)58〜60と、ベ
クトルレジスタ(VR0〜VR2)58〜60上での間
接参照を行なうためのレジスタ読み/書き制御回路61
と、ベクトル演算器62とを有して構成している。
トと出力ポート間を接続するクロスバスイッチ57と、
ベクトルレジスタ(VR0〜VR2)58〜60と、ベ
クトルレジスタ(VR0〜VR2)58〜60上での間
接参照を行なうためのレジスタ読み/書き制御回路61
と、ベクトル演算器62とを有して構成している。
【0038】図10は図9におけるレジスタ読み/書き
制御回路61のブロック図である。
制御回路61のブロック図である。
【0039】図10において、レジスタ読み/書き制御
回路61は順アドレス生成回路74と、OR回路75
と、切り替え回路76,77と、起動信号を保持するレ
ジスタ78と、レジスタインデックスを保持するレジス
タ79と、AND回路80と、インバータ81と、起動
信号を保持する起動信号保持レジスタ82,84,86
と、レジスタインデックスを保持するベクトル要素番号
保持レジスタ83,85,87と、一致比較器88と、
OR回路89と、順アドレス生成回路90とを有して構
成し、信号92と93は図9における信号70のベクト
ルレジスタ(VR0)58の読みだしアドレス指定信号
に対応し、信号94と95は図9における信号67のベ
クトルレジスタ(VR0)58の読みだしデータ67
(起動信号を含む)に対応し、信号96は処理全体を起
動する信号、信号97と98は内部信号、信号99と1
00は図9のベクトルレジスタ(VR1)59の読みだ
しアドレス信号71に対応し、信号101と102は図
9におけるベクトルレジスタ(VR2)60の読みだし
アドレス信号73に対応し、信号103と104は図9
のベクトルレジスタ(VR1)59の書き込みアドレス
信号72に対応する。
回路61は順アドレス生成回路74と、OR回路75
と、切り替え回路76,77と、起動信号を保持するレ
ジスタ78と、レジスタインデックスを保持するレジス
タ79と、AND回路80と、インバータ81と、起動
信号を保持する起動信号保持レジスタ82,84,86
と、レジスタインデックスを保持するベクトル要素番号
保持レジスタ83,85,87と、一致比較器88と、
OR回路89と、順アドレス生成回路90とを有して構
成し、信号92と93は図9における信号70のベクト
ルレジスタ(VR0)58の読みだしアドレス指定信号
に対応し、信号94と95は図9における信号67のベ
クトルレジスタ(VR0)58の読みだしデータ67
(起動信号を含む)に対応し、信号96は処理全体を起
動する信号、信号97と98は内部信号、信号99と1
00は図9のベクトルレジスタ(VR1)59の読みだ
しアドレス信号71に対応し、信号101と102は図
9におけるベクトルレジスタ(VR2)60の読みだし
アドレス信号73に対応し、信号103と104は図9
のベクトルレジスタ(VR1)59の書き込みアドレス
信号72に対応する。
【0040】図11は図10における比較器のブロック
図である。
図である。
【0041】図11において、比較器88はXOR回路
107と、インバータ108と、AND回路109とを
有し、信号110は図10における信号98に対応し、
信号111は図10における起動信号保持レジスタ82
もしくは84からの信号入力に対応し、信号112は図
10におけるベクトル要素番号保持レジスタ83もしく
は85からの信号入力に対応する。
107と、インバータ108と、AND回路109とを
有し、信号110は図10における信号98に対応し、
信号111は図10における起動信号保持レジスタ82
もしくは84からの信号入力に対応し、信号112は図
10におけるベクトル要素番号保持レジスタ83もしく
は85からの信号入力に対応する。
【0042】本第2の発明の実施例における基本動作
は、先に図5〜図8のプログラム例と図1〜図4のブロ
ック図を用いて説明した本第1の発明の一実施例と同様
であるが、本第2の発明の実施例は、A(P(I))の
定義/引用の参照関係に何らの限定を加えることなくベ
クトル化を可能とする。すなわちA(P(I))中に依
存関係を発生させるP(I)=P(J)の関係が|I−
J|≦Nに存在する場合にもベクトル処理可能である。
は、先に図5〜図8のプログラム例と図1〜図4のブロ
ック図を用いて説明した本第1の発明の一実施例と同様
であるが、本第2の発明の実施例は、A(P(I))の
定義/引用の参照関係に何らの限定を加えることなくベ
クトル化を可能とする。すなわちA(P(I))中に依
存関係を発生させるP(I)=P(J)の関係が|I−
J|≦Nに存在する場合にもベクトル処理可能である。
【0043】このことを、図8〜図11を用い、VR1
(VR0[0:10])=VR1(VR0[0:1
0])+VR2[0:10]の処理過程を通じて説明す
る。
(VR0[0:10])=VR1(VR0[0:1
0])+VR2[0:10]の処理過程を通じて説明す
る。
【0044】図10において、順アドレス生成回路74
とその出力信号92,93は、ベクトルレジスタ(VR
0)58に対する読みだしアドレスを指定している。指
定アドレスに基づいてベクトルレジスタ(VR0)58
から読みだされたデータは信号94,95により切り替
え回路76,77を介してレジスタ78,79に格納さ
れる。信号99,100はベクトルレジスタ(VR1)
59に対する読みだしアドレスを指定している。順アド
レス生成回路90の出力である信号101,102はベ
クトルレジスタ(VR2)60に対する読みだしアドレ
スを指定する。信号103,104はベクトルレジスタ
(VR1)59に対する書き込みアドレスを指定してい
る。レジスタ78,79はこれから読みだそうとするベ
クトルレジスタ(VR1)59の要素アドレスを保持す
るレジスタである。
とその出力信号92,93は、ベクトルレジスタ(VR
0)58に対する読みだしアドレスを指定している。指
定アドレスに基づいてベクトルレジスタ(VR0)58
から読みだされたデータは信号94,95により切り替
え回路76,77を介してレジスタ78,79に格納さ
れる。信号99,100はベクトルレジスタ(VR1)
59に対する読みだしアドレスを指定している。順アド
レス生成回路90の出力である信号101,102はベ
クトルレジスタ(VR2)60に対する読みだしアドレ
スを指定する。信号103,104はベクトルレジスタ
(VR1)59に対する書き込みアドレスを指定してい
る。レジスタ78,79はこれから読みだそうとするベ
クトルレジスタ(VR1)59の要素アドレスを保持す
るレジスタである。
【0045】他方、レジスタ82,83および複数段に
構成されたレジスタ84,85さらにレジスタ86,8
7はベクトルレジスタ(VR1)59に関する、読みだ
し処理→加算処理→書き込み処理中状態にあるベクトル
レジスタ(VR1)59の要素に対応するインデックス
を保持している。ここで複数の比較器88、切り替え回
路76,77、論理ゲート75,80,81,89は以
下のように動作する。
構成されたレジスタ84,85さらにレジスタ86,8
7はベクトルレジスタ(VR1)59に関する、読みだ
し処理→加算処理→書き込み処理中状態にあるベクトル
レジスタ(VR1)59の要素に対応するインデックス
を保持している。ここで複数の比較器88、切り替え回
路76,77、論理ゲート75,80,81,89は以
下のように動作する。
【0046】すなわち、現在、読みだし処理→加算処理
→書き込み処理中状態にあるベクトルレジスタ(VR
1)59の要素に対応するインデックスと、これから読
みだそうとするレジスタ78,79が保持するインデッ
クスとが等しい場合、読みだしを中止する。また逆に、
現在、読みだし処理→加算処理→書き込み処理中状態に
あるベクトルレジスタ(VR1)59の要素に対応する
インデックスと、これから読出そうとするレジスタ7
8,79が保持するインデックスとが等しくない場合に
は、読みだしを開始する。
→書き込み処理中状態にあるベクトルレジスタ(VR
1)59の要素に対応するインデックスと、これから読
みだそうとするレジスタ78,79が保持するインデッ
クスとが等しい場合、読みだしを中止する。また逆に、
現在、読みだし処理→加算処理→書き込み処理中状態に
あるベクトルレジスタ(VR1)59の要素に対応する
インデックスと、これから読出そうとするレジスタ7
8,79が保持するインデックスとが等しくない場合に
は、読みだしを開始する。
【0047】これにより、A(P(I))中に依存関係
を発生させるP(I)=P(J)の関係が|I−J|≦
Nに存在する場合には、先行する演算の完了を待ち、演
算依存関係が解決されたタイミングにおいて後続演算を
開始することを可能としている。
を発生させるP(I)=P(J)の関係が|I−J|≦
Nに存在する場合には、先行する演算の完了を待ち、演
算依存関係が解決されたタイミングにおいて後続演算を
開始することを可能としている。
【0048】以上述べたように、本第2の発明の実施例
は、A(P(I))の定義/引用の参照関係に何らの限
定を加えることなくベクトル化を可能とするものである
が、依存関係に従い演算結果を得るまでの待ち時間を短
縮するために、演算器出力データを入力側にバイパスす
る回路を併設し、さらに高速化を計ることも可能であ
る。
は、A(P(I))の定義/引用の参照関係に何らの限
定を加えることなくベクトル化を可能とするものである
が、依存関係に従い演算結果を得るまでの待ち時間を短
縮するために、演算器出力データを入力側にバイパスす
る回路を併設し、さらに高速化を計ることも可能であ
る。
【0049】次に、本第3の発明について説明する。
【0050】図12は本第3の発明の一実施例を示すブ
ロック図である。
ロック図である。
【0051】図12において、本第3の発明の実施例は
任意の入力ポートと出力ポート間を接続するクロスバス
イッチ114と、ベクトルレジスタ(VR0〜VR2)
115〜117と、ベクトル演算器118と、ベクトル
レジスタ(VR0〜VR2)115〜117上での間接
参照を行なうためのレジスタ読み/書き制御回路119
と、切り替え回路127とを有し、120〜126と1
28〜134はユニット間を接続する信号線である。
任意の入力ポートと出力ポート間を接続するクロスバス
イッチ114と、ベクトルレジスタ(VR0〜VR2)
115〜117と、ベクトル演算器118と、ベクトル
レジスタ(VR0〜VR2)115〜117上での間接
参照を行なうためのレジスタ読み/書き制御回路119
と、切り替え回路127とを有し、120〜126と1
28〜134はユニット間を接続する信号線である。
【0052】図13は図12におけるレジスタ読み/書
き制御回路のブロック図である。
き制御回路のブロック図である。
【0053】図13において、本第3の発明の一実施例
におけるレジスタ読み/書き制御回路119は、順アド
レス生成回路135と、ORゲート136と、切り替え
回路137,138と、ANDゲート139と、起動信
号保持レジスタ140と、ベクトル要素番号保持レジス
タ141と、インバータ142と、起動信号保持レジス
タ143と、ベクトル要素番号保持レジスタ144と、
比較器145と、起動信号保持レジスタ146と、ベク
トル要素番号保持レジスタ147と、起動信号保持レジ
スタ148と、ベクトル要素番号保持レジスタ149
と、比較器150と、起動信号保持レジスタ151と、
ベクトル要素番号保持レジスタ152と、起動信号保持
レジスタ153と、ベクトル要素番号保持レジスタ15
4と、ORゲート155と、順アドレス生成回路156
とを有して構成し、信号158と159は図12におけ
る信号128をベクトルレジスタ(VR0)115の読
みだしアドレス指定信号に対応し、信号160と161
は図12における信号124の読みだしデータ信号(起
動信号を含む)に対応し、信号162は処理全体を起動
する信号、信号163〜165は内部信号、信号166
と167は図12における信号129のベクトルレジス
タ(VR1)116の読みだしアドレス指定信号に対応
し、信号168と169は図12における信号130の
ベクトルレジスタ(VR2)117の読みだしアドレス
指定信号に対応し、信号170は図12における信号1
32で示される切り替え回路127へ入力信号(選択制
御信号)に対応し、信号171と172は図12におけ
る信号131のベクトルレジスタ(VR2)117の書
き込みアドレス指定信号に対応する。
におけるレジスタ読み/書き制御回路119は、順アド
レス生成回路135と、ORゲート136と、切り替え
回路137,138と、ANDゲート139と、起動信
号保持レジスタ140と、ベクトル要素番号保持レジス
タ141と、インバータ142と、起動信号保持レジス
タ143と、ベクトル要素番号保持レジスタ144と、
比較器145と、起動信号保持レジスタ146と、ベク
トル要素番号保持レジスタ147と、起動信号保持レジ
スタ148と、ベクトル要素番号保持レジスタ149
と、比較器150と、起動信号保持レジスタ151と、
ベクトル要素番号保持レジスタ152と、起動信号保持
レジスタ153と、ベクトル要素番号保持レジスタ15
4と、ORゲート155と、順アドレス生成回路156
とを有して構成し、信号158と159は図12におけ
る信号128をベクトルレジスタ(VR0)115の読
みだしアドレス指定信号に対応し、信号160と161
は図12における信号124の読みだしデータ信号(起
動信号を含む)に対応し、信号162は処理全体を起動
する信号、信号163〜165は内部信号、信号166
と167は図12における信号129のベクトルレジス
タ(VR1)116の読みだしアドレス指定信号に対応
し、信号168と169は図12における信号130の
ベクトルレジスタ(VR2)117の読みだしアドレス
指定信号に対応し、信号170は図12における信号1
32で示される切り替え回路127へ入力信号(選択制
御信号)に対応し、信号171と172は図12におけ
る信号131のベクトルレジスタ(VR2)117の書
き込みアドレス指定信号に対応する。
【0054】本第3の発明の実施例においては、A(P
(I))中に依存関係を発生させるP(I)=P(J)
の関係が|I−J|≦Nに存在する場合に、先行する演
算の完了を単に待たせるのみではなく、図13で示した
一致比較回路150からの出力信号で図12における切
り替え回路127を制御し、待ち合わせ対象データが、
図12におけるベクトル演算器118から出力されるタ
イミングでこれを信号134で示される入力側へバイパ
スし、先行する演算の完了待ち合わせ時間の短縮をはか
っている。
(I))中に依存関係を発生させるP(I)=P(J)
の関係が|I−J|≦Nに存在する場合に、先行する演
算の完了を単に待たせるのみではなく、図13で示した
一致比較回路150からの出力信号で図12における切
り替え回路127を制御し、待ち合わせ対象データが、
図12におけるベクトル演算器118から出力されるタ
イミングでこれを信号134で示される入力側へバイパ
スし、先行する演算の完了待ち合わせ時間の短縮をはか
っている。
【0055】
【発明の効果】以上説明したように本発明のベクトル処
理装置は、例えば、 DO10I=1,LEN A(P(I))=A(P(I))+B(I) 10CONTINUE のような間接アドレスベクトル量に対する演算におい
て、A(P(I))の定義/引用に依存関係がある場合
に対してもベクトル処理を行なうことができる効果があ
る。
理装置は、例えば、 DO10I=1,LEN A(P(I))=A(P(I))+B(I) 10CONTINUE のような間接アドレスベクトル量に対する演算におい
て、A(P(I))の定義/引用に依存関係がある場合
に対してもベクトル処理を行なうことができる効果があ
る。
【0056】また定義/参照関係の依存発生を示すP
(I)=P(J)に関し、本第1の発明では、|I−J
|≦N中にP(I)=P(J)が存在しない場合にベク
トル化を可能にすることができる効果を有する。(ここ
でNは、ベクトルレジスタから1個ベクトル要素データ
を読み出して加算演算を行ない、さらに結果をベクトル
レジスタに書き込むまでに要するターンアラウンドタイ
ムをMクロックとした場合、NはMクロック中にベクト
ルレジスタから読み出されて演算器に送り込まれる最大
ベクトル要素数)。
(I)=P(J)に関し、本第1の発明では、|I−J
|≦N中にP(I)=P(J)が存在しない場合にベク
トル化を可能にすることができる効果を有する。(ここ
でNは、ベクトルレジスタから1個ベクトル要素データ
を読み出して加算演算を行ない、さらに結果をベクトル
レジスタに書き込むまでに要するターンアラウンドタイ
ムをMクロックとした場合、NはMクロック中にベクト
ルレジスタから読み出されて演算器に送り込まれる最大
ベクトル要素数)。
【0057】さらに本第2の発明は、本第1の発明での
依存関係の制限をなくし、A(P(I))の定義/引用
にどのような依存関係がある場合にもベクトル化が出来
るという効果を有する。
依存関係の制限をなくし、A(P(I))の定義/引用
にどのような依存関係がある場合にもベクトル化が出来
るという効果を有する。
【0058】さらにまた、本第3の発明は、第2の発明
によるベクトル処理装置を高速化することができる効果
を有している。
によるベクトル処理装置を高速化することができる効果
を有している。
【図1】本第1の発明の一実施例を示すブロック図であ
る。
る。
【図2】図1に示す本実施例におけるレジスタ読み/書
き制御回路のブロック図である。
き制御回路のブロック図である。
【図3】図2中の順アドレス生成回路のブロック図であ
る。
る。
【図4】図3中の切り替え回路のブロック図である。
【図5】FORTRANを用いて記述した場の物理量を
計算するソースプログラム例の総和演算を示す図であ
る。
計算するソースプログラム例の総和演算を示す図であ
る。
【図6】図5で示されるプログラムに対しコンパイラが
生成するベクトル実行オブジェクトプログラムの要約を
示した図である。
生成するベクトル実行オブジェクトプログラムの要約を
示した図である。
【図7】図6のプログラム例を実行する際のデータの一
例を示す図である。
例を示す図である。
【図8】図6のプログラム例に図7のデータを用いてV
L=11とした場合のプログラムを示す図である。
L=11とした場合のプログラムを示す図である。
【図9】本第2の発明の一実施例を示すブロック図であ
る。
る。
【図10】図9に示す本実施例におけるレジスタ読み/
書き制御回路のブロック図である。
書き制御回路のブロック図である。
【図11】図10中の比較器のブロック図である。
【図12】本第3の発明の一実施例を示すブロック図で
ある。
ある。
【図13】図12に示す本実施例におけるレジスタ読み
/書き制御回路のブロック図である。
/書き制御回路のブロック図である。
1 クロスバスイッチ 2 ベクトルレジスタ(VR0) 3 ベクトルレジスタ(VR1) 4 ベクトルレジスタ(VR2) 5 ベクトルレジスタ(VR3) 6 ベクトルレジスタ(VR4) 7 レジスタ読み/書き制御回路 8 ベクトル演算器 9 ベクトル演算器 10 演算器出力信号 11 演算器出力信号 12〜16 クロスバ出力信号 17〜21 ベクトルレジスタ出力信号 22〜24 レジスタ読み書き制御回路の出力信号 25,27,29 処理要素の有無を示す信号保持レ
ジスタ 26,28,30 ベクトル要素番号保持レジスタ 31 順アドレス生成回路 32,34,36 起動信号 33,35,37,39 ベクトル要素番号信号 40,43 レジスタ 41 加算器 42 切り替え回路 44,45 起動信号 46,48 ベクトル要素番号信号 47 加算器出力 49 インバータ 50 ANDゲート 51 ANDゲート 52 ORゲート 53 切り替え回路入力信号 54 切り替え回路入力信号 55 選択信号 56 切り替え回路出力信号 57 クロスバスイッチ 58 ベクトルレジスタ(VR0) 59 ベクトルレジスタ(VR1) 60 ベクトルレジスタ(VR2) 61 レジスタ読み/書き制御回路 62 ベクトル演算器 63 演算器出力信号 64〜66 クロスバ出力信号 67〜69 ベクトルレジスタ出力信号 70〜73 レジスタ読み書き制御回路の出力信号 74 順アドレス生成回路 75 ORゲート 76,77 切り替え回路 78,82,84,86 起動信号保持レジスタ 79,83,85,87 ベクトル要素番号保持レジ
スタ 80 ANDゲート 81 インバータ 88 比較器 89 ORゲート 90 順アドレス生成回路 92〜94,99,101,103,105 起動信
号 93,95,98,100,102,104 ベクト
ル要素番号信号 96 処理全体の起動信号 97 ANDゲート出力信号 107 XORゲート 108 インバータ 109 ANDゲート 110 比較器入力データ信号 111 比較器出力活性化信号 112 比較器入力データ信号 113 比較器出力信号 114 クロスバスイッチ 115 ベクトルレジスタ(VR0) 116 ベクトルレジスタ(VR1) 117 ベクトルレジスタ(VR2) 118 ベクトル演算器 119 レジスタ読み/書き制御回路 120 演算器出力信号 121〜123 クロスバ出力信号 124〜126 ベクトルレジスタ出力信号 127 切り替え回路 128〜133 レジスタ読み書き制御回路の出力信
号 134 切り替え回路出力信号 135 順アドレス生成回路 136 ORゲート 137 切り替え回路 138 切り替え回路 139 ANDゲート 140,143,146,148,151,153
起動信号保持レジスタ 141,144,147,149,152,154
ベクトル要素番号保持レジスタ 142 インバータ 145 比較器 150 インバータ 155 ORゲート 156 順アドレス生成回路 158,160,164,166,168,171
起動信号 159,161,165,167,169,172
ベクトル要素番号信号 162 処理全体の起動信号 163 ANDゲート出力信号 170 インバータ出力信号
ジスタ 26,28,30 ベクトル要素番号保持レジスタ 31 順アドレス生成回路 32,34,36 起動信号 33,35,37,39 ベクトル要素番号信号 40,43 レジスタ 41 加算器 42 切り替え回路 44,45 起動信号 46,48 ベクトル要素番号信号 47 加算器出力 49 インバータ 50 ANDゲート 51 ANDゲート 52 ORゲート 53 切り替え回路入力信号 54 切り替え回路入力信号 55 選択信号 56 切り替え回路出力信号 57 クロスバスイッチ 58 ベクトルレジスタ(VR0) 59 ベクトルレジスタ(VR1) 60 ベクトルレジスタ(VR2) 61 レジスタ読み/書き制御回路 62 ベクトル演算器 63 演算器出力信号 64〜66 クロスバ出力信号 67〜69 ベクトルレジスタ出力信号 70〜73 レジスタ読み書き制御回路の出力信号 74 順アドレス生成回路 75 ORゲート 76,77 切り替え回路 78,82,84,86 起動信号保持レジスタ 79,83,85,87 ベクトル要素番号保持レジ
スタ 80 ANDゲート 81 インバータ 88 比較器 89 ORゲート 90 順アドレス生成回路 92〜94,99,101,103,105 起動信
号 93,95,98,100,102,104 ベクト
ル要素番号信号 96 処理全体の起動信号 97 ANDゲート出力信号 107 XORゲート 108 インバータ 109 ANDゲート 110 比較器入力データ信号 111 比較器出力活性化信号 112 比較器入力データ信号 113 比較器出力信号 114 クロスバスイッチ 115 ベクトルレジスタ(VR0) 116 ベクトルレジスタ(VR1) 117 ベクトルレジスタ(VR2) 118 ベクトル演算器 119 レジスタ読み/書き制御回路 120 演算器出力信号 121〜123 クロスバ出力信号 124〜126 ベクトルレジスタ出力信号 127 切り替え回路 128〜133 レジスタ読み書き制御回路の出力信
号 134 切り替え回路出力信号 135 順アドレス生成回路 136 ORゲート 137 切り替え回路 138 切り替え回路 139 ANDゲート 140,143,146,148,151,153
起動信号保持レジスタ 141,144,147,149,152,154
ベクトル要素番号保持レジスタ 142 インバータ 145 比較器 150 インバータ 155 ORゲート 156 順アドレス生成回路 158,160,164,166,168,171
起動信号 159,161,165,167,169,172
ベクトル要素番号信号 162 処理全体の起動信号 163 ANDゲート出力信号 170 インバータ出力信号
フロントページの続き (56)参考文献 特開 昭62−237573(JP,A) 特開 平1−224840(JP,A) 特開 昭57−31049(JP,A) 特開 昭59−172078(JP,A) 特開 昭63−289677(JP,A) 特開 昭61−267174(JP,A) 特開 昭59−176874(JP,A) 特開 平3−263264(JP,A) 特開 平4−127367(JP,A) 特開 平4−127366(JP,A) 特開 平4−116768(JP,A) 特開 昭62−285180(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 17/16 G06F 9/38
Claims (3)
- 【請求項1】 少なくとも1つのベクトル演算器と、複
数のベクトルレジスタと、主記憶装置と、前記ベクトル
演算器と前記ベクトルレジスタと前記主記憶装置間での
データ転送を行なうためのネットワークとから構成され
るベクトル処理装置において、第1のベクトルレジスタ
に0から始まる数列をベクトルロード命令によってロー
ドした後に前記第1のベクトルレジスタの内容をリスト
ベクトルストア命令によってインデックス配列の要素の
うちの間接指標ベクトルデータの各要素の値に対応する
要素にストアし且つ該ストア後の前記インデックス配列
の要素のうちの前記間接指標ベクトルデータの各要素の
値に対応する要素の内容をリストベクトルロード命令に
よって前記第1のベクトルレジスタにロードすることに
より前記第1のベクトルレジスタ上にインデックスベク
トルを生成する構成と、演算対象のベクトルデータの要
素のうちの前記間接指標ベクトルデータの各要素の値に
対応する要素の内容をリストベクトルロード命令によっ
て第2のベクトルレジスタにロードする構成を有し、且
つ、前記第2のベクトルレジスタからのベクトル要素読
みだし順序を前記第1のベクトルレジスタの内容によっ
て指定する第1の指定手段と、前記第2のベクトルレジ
スタへのベクトル要素書き込み順序を前記第1のベクト
ルレジスタの内容によって指定する第2の指定手段とを
備え、ベクトルレジスタ間接指定による演算を行なえる
ことを特徴とするベクトル処理装置。 - 【請求項2】 少なくとも1つのベクトル演算器と、複
数のベクトルレジスタと、主記憶装置と、前記ベクトル
演算器と前記ベクトルレジスタと前記主記憶装置間での
データ転送を行なうためのネットワークとから構成され
るベクトル処理装置において、第1のベクトルレジスタ
に0から始まる数列をベクトルロード命令によってロー
ドした後に前記第1のベクトルレジスタの内容をリスト
ベクトルストア命令によってインデックス配列の要素の
うちの間接指標ベクトルデータの各要素の値に対応する
要素にストアし且つ該ストア後の前記インデックス配列
の要素のうちの前記間接指標ベクトルデータの各要素の
値に対応する要素の内容をリストベクトルロード命令に
よって前記第1のベクトルレジスタにロードすることに
より前記第1のベクトルレジスタ上にインデックスベク
トルを生成する構成と、演算対象のベクトルデータの要
素のうちの前記間接指標ベクトルデータの各要素の値に
対応する要素の内容をリストベクトルロード命令によっ
て第2のベクトルレジスタにロードする構成を有し、且
つ、前記第2のベクトルレジスタからのベクトル要素読
みだし順序を前記第1のベクトルレジスタの内容によっ
て指定する第1の指定手段と、前記第2のベクトルレジ
スタへのベクトル要素書き込み順序を前記第1のベクト
ルレジスタの内容によって指定する第2の指定手段と、
この第2の指定手段により書き込み中の前記第2のベク
トルレジスタを引き続き読出すために、読出しベクトル
要素に対する書き込みが完了しているかを判定する判定
手段と、この判定手段により書き込み未了と判定された
場合に後続するベクトル要素の読出しを待たせる読出待
機手段とを備え、ベクトルレジスタ間接指定において定
義/引用参照関係に依存性を含むベクトル演算を行なえ
ることを特徴とするベクトル処理装置。 - 【請求項3】 少なくとも1つのベクトル演算器と、複
数のベクトルレジスタと、主記憶装置と、前記ベクトル
演算器と前記ベクトルレジスタと前記主記憶装置間での
データ転送を行なうためのネットワークとから構成され
るベクトル処理装置において、第1のベクトルレジスタ
に0から始まる数列をベクトルロード命令によってロー
ドした後に前記第1のベクトルレジスタの内容をリスト
ベクトルストア命令によってインデックス配列の要素の
うちの間接指標ベクトルデータの各要素の値に対応する
要素にストアし且つ該ストア後の前記インデックス配列
の要素のうちの前記間接指標ベクトルデータの各要素の
値に対応する要素の内容をリストベクトルロード命令に
よって前記第1のベクトルレジスタにロードすることに
より前記第1のベクトルレジスタ上にインデックスベク
トルを生成する構成と、演算対象のベクトルデータの要
素のうちの前記間接指標ベクトルデータの各要素の値に
対応する要素の内容をリストベクトルロード命令によっ
て第2のベクトルレジスタにロードする構成を有し、且
つ、前記第2のベクトルレジスタからのベクトル要素読
みだし順序を前記第1のベクトルレジスタの内容によっ
て指定する第1の指定手段と、前記第2のベクトルレジ
スタへのベクトル要素書き込み順序を前記第1のベクト
ルレジスタの内容によって指定する第2の指定手段と、
ベクトル演算結果を前記第2の指定手段により書き込み
中の前記第2のベクトルレジスタを引き続き読出すため
に、読出しベクトル要素に対する書込みが完了している
かを判定する判定手段と、この判定手段により書込み未
了と判定された場合に後続するベクトル要素の読出しを
前記ベクトル演算器の出力をバイパスして行なう読出手
段とを備え、ベクトルレジスタ間接指定において定義/
引用参照関係に依存性を含むベクトル演算を行なえるこ
とを特徴とするベクトル処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21876591A JP3278441B2 (ja) | 1991-08-29 | 1991-08-29 | ベクトル処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21876591A JP3278441B2 (ja) | 1991-08-29 | 1991-08-29 | ベクトル処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0554059A JPH0554059A (ja) | 1993-03-05 |
JP3278441B2 true JP3278441B2 (ja) | 2002-04-30 |
Family
ID=16725050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21876591A Expired - Fee Related JP3278441B2 (ja) | 1991-08-29 | 1991-08-29 | ベクトル処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3278441B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7513080B2 (ja) * | 2020-02-17 | 2024-07-09 | 日本電気株式会社 | 処理システム及び処理方法 |
US20220283947A1 (en) * | 2020-03-18 | 2022-09-08 | Nec Corporation | Information processing device and information processing method |
-
1991
- 1991-08-29 JP JP21876591A patent/JP3278441B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0554059A (ja) | 1993-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5261113A (en) | Apparatus and method for single operand register array for vector and scalar data processing operations | |
US4399507A (en) | Instruction address stack in the data memory of an instruction-pipelined processor | |
JP2645669B2 (ja) | データ処理システム | |
US5081573A (en) | Parallel processing system | |
US4228498A (en) | Multibus processor for increasing execution speed using a pipeline effect | |
KR100346515B1 (ko) | 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일 | |
GB1575214A (en) | Floating point data processor | |
US5381360A (en) | Modulo arithmetic addressing circuit | |
JPS6028015B2 (ja) | 情報処理装置 | |
JPH0157817B2 (ja) | ||
US4150434A (en) | Matrix arithmetic apparatus | |
JPH02226420A (ja) | 浮動小数点演算実行装置 | |
US4954947A (en) | Instruction processor for processing branch instruction at high speed | |
JPH03286332A (ja) | デジタルデータ処理装置 | |
JP2518293B2 (ja) | デ−タフロ−プロセツサ | |
JP3278441B2 (ja) | ベクトル処理装置 | |
US4924377A (en) | Pipelined instruction processor capable of reading dependent operands in parallel | |
JP2654451B2 (ja) | データ出力方法 | |
JP2861560B2 (ja) | データ処理装置 | |
JP3696625B2 (ja) | データ駆動型情報処理装置 | |
JPH0343865A (ja) | ベクトル・データ処理装置 | |
JP3441847B2 (ja) | データメモリを有するプロセッサ | |
JPH0646412B2 (ja) | デ−タフロ−プロセツサ | |
JP3693873B2 (ja) | マスクビット数演算装置、ベクトル処理装置、情報処理装置 | |
JP3180447B2 (ja) | ディジタル信号処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313115 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |