JPH09198374A - ベクトル処理装置 - Google Patents

ベクトル処理装置

Info

Publication number
JPH09198374A
JPH09198374A JP935896A JP935896A JPH09198374A JP H09198374 A JPH09198374 A JP H09198374A JP 935896 A JP935896 A JP 935896A JP 935896 A JP935896 A JP 935896A JP H09198374 A JPH09198374 A JP H09198374A
Authority
JP
Japan
Prior art keywords
vector
instruction
register
circuit
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP935896A
Other languages
English (en)
Inventor
Mihoko Koga
美穂子 古賀
Yahoko Nakagawa
八穂子 中川
Takeshi Ihira
剛 猪平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP935896A priority Critical patent/JPH09198374A/ja
Publication of JPH09198374A publication Critical patent/JPH09198374A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 ベクトル演算器、データ転送回路等の使用効
率を高め、ベクトル処理のオーバヘッドを短縮して、ベ
クトル処理全体の処理効率の向上を図る。 【解決手段】 スカラー処理ユニット3内に、先行する
ベクトル命令列とのアドレス競合の有無と、ベクトル命
令を要素番号に注目して複数のベクトル演算処理ユニッ
トに分割して処理する時のベクトル演算処理ユニットの
数を示す要素並列度から、複数のベクトル命令列の並列
処理の可否を判定するベクトル処理判定回路4を設け、
ベクトル命令バッファ、ベクトル長レジスタ、ベクトル
命令レジスタ、命令実行判定回路、起動制御回路をそれ
ぞれ多重化したものをベクトル演算処理ユニット51〜
54内に設置する。そして、ベクトル長の短い複数のベ
クトル命令列を、並列にかつそれぞれ複数のベクトル演
算処理ユニットで分割して処理を行わせる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ベクトル処理装置
に係り、特に、ベクトル長の短い複数のベクトル命令列
を高速に処理することのできるベクトル処理装置に関す
る。
【0002】
【従来の技術】ベクトル処理装置に関する従来技術とし
て、例えば、特開昭60−77265号公報等に記載さ
れた技術が知られている。この従来技術によるベクトル
処理装置は、複数のベクトルレジスタと少なくとも1つ
のベクトル演算器と少なくとも1つのデータ転送回路と
を備えるベクトル演算処理ユニットを複数用意し、1つ
のベクトル命令を要素番号に応じて複数のベクトル演算
処理ユニットで分割して処理できるように、各ベクトル
演算処理ユニット毎に処理すべきベクトル要素数を指示
し、全体として本来処理すべき要素の数だけベクトル処
理を行うように構成されている。
【0003】前記従来技術は、これにより、ベクトル演
算器の使用効率を高め、処理の高速化を実現することが
できるものであり、また、内積、総和を求めるベクトル
命令、1次巡回演算を行うベクトル命令のような1つの
ベクトル演算処理ユニットで処理する必要のあるベクト
ル命令を処理する場合、1つのベクトル演算処理ユニッ
トで処理するように任意に切り替えられるように構成さ
れている。
【0004】
【発明が解決しようとする課題】ベクトル処理装置は、
一般に、ベクトル処理実行のための固有のオーバヘッド
を有し、このため、ベクトル長が短いベクトル命令の処
理の処理効率が、ベクトル長の長いベクトル命令の処理
に比べてが低下し、高速な処理を行うことが困難である
という問題点を有している。
【0005】すなわち、前述の従来技術のように、1つ
のベクトル命令を複数のベクトル演算処理ユニットによ
り分割して処理することは、1つのベクトル命令列に対
しては高速処理に都合がよいが、複数のベクトル命令列
を連続して処理する場合で、しかも、各ベクトル命令列
が共にそのベクトル長が短い場合、各ベクトル命令列の
ベクトル処理の起動毎にオーバヘッドを生じて、高速処
理が難しくなる。
【0006】本発明の目的は、前記従来技術の問題点を
解決し、ベクトル長が短い複数のベクトル命令列を処理
する場合に、ベクトル処理のオーバヘッドを短縮し、ベ
クトル命令列の高速な処理を行うことが可能なベクトル
処理装置を提供することにある。
【0007】
【課題を解決するための手段】本発明によれば前記目的
は、複数のベクトルレジスタと少なくとも1つのベクト
ル演算器と少なくとも1つのデータ転送回路とを有する
ベクトル演算処理ユニットを複数備え、1つのベクトル
命令を前記ベクトル演算処理ユニットで分割して処理す
るベクトル処理装置において、複数の異なるベクトル命
令列の並列処理が可能か否かを判定する判定手段を備
え、前記複数のベクトル演算処理ユニットを複数に分割
し、分割された複数のベクトル演算処理ユニットにそれ
ぞれ前記異なるベクトル命令列の1つを割り当てて、複
数の異なるベクトル命令列を並列に処理することにより
達成される。
【0008】前記目的は、さらに、複数の異なるベクト
ル命令のそれぞれで処理すべき全体のベクトル要素数が
セットされる複数の第1の記憶手段と、前記複数のベク
トル演算処理ユニットのそれぞれで処理すべきベクトル
要素数がセットされる複数の第2の記憶手段と、前記複
数の第1の記憶手段にセットされたそれぞれの内容に基
づいて前記第2の記憶手段にセットする内容を決定する
複数のベクトル要素数変換手段とを備えることにより達
成される。
【0009】そして、前記目的は、前記判定手段が、前
記複数の異なるベクトル命令列がアクセスするアドレス
の競合の有無と、各ベクトル命令列を処理するベクトル
演算処理ユニットの数を示す要素並列度とを受け取り、
アドレスの競合が無く、かつ、未使用のベクトル演算処
理ユニットの数と、受け取った要素並列度とを比較し
て、少ない方が1以上の場合にのみ、複数のベクトル命
令列の並列処理が可能であると判定することにより、ま
た、前記ベクトル要素数変換手段が、複数の異なるベク
トル命令列を並列処理させる際、各ベクトル命令列を処
理する前記ベクトル演算処理ユニットの数に伴い、対応
するベクトル演算処理ユニットを選択することにより達
成される。
【0010】前記判定手段は、ベクトル命令列の処理要
求があったとき、先行するベクトル命令列とアドレス競
合が無く、未使用のベクトル演算処理ユニットの数と、
要素並列度とを比較し、小さい方が1以上のときに、そ
のベクトル命令列を先行するベクトル命令列と並列に処
理を行うことが可能であると判定し、ベクトル演算制御
ユニットに対して、ベクトル命令の処理開始の信号を送
出する。ベクトル演算制御ユニット内では、現在処理中
のベクトル命令列のベクトル命令と新しく処理を開始す
るベクトル命令列のベクトル命令とが、前記判定手段の
制御を受け、それぞれいくつかのベクトル演算処理ユニ
ットに要素単位で分割して送出されて並列に処理され
る。
【0011】その際、使用するベクトルレジスタ、ベク
トル演算器、データ転送回路が使用中であることを示す
表示子が“1”にセットされる。また、各ベクトル演算
処理ユニットは、処理すべき要素数をカウンタで管理
し、ベクトル要素を1個処理する毎に、カウンタの値を
−1し、カウンタの値が“0”になったときベクトル演
算制御ユニットに対して信号を送り処理終了を知らせ
る。ベクトル演算制御ユニットは、そのベクトル命令を
処理しているすべてのベクトル演算処理ユニットから信
号が送られてきたら、使用していたベクトルレジスタ、
ベクトル演算器、データ転送回路の使用中の表示子をリ
セットする。
【0012】本発明は、このようにして、演算器等の空
きを管理し、使用効率を高めるとともに、複数のベクト
ル命令列を並列に処理することを可能とする。
【0013】
【発明の実施の形態】以下、本発明によるベクトル処理
装置の実施形態を図面により詳細に説明する。
【0014】図1は本発明の第1の実施形態によるベク
トル処理装置の全体の構成を示すブロック図、図2は図
1におけるスカラー演算処理ユニットの詳細を示すブロ
ック図、図3は図1におけるベクトル演算制御ユニット
とベクトル演算処理ユニットの中のデータ転送回路の詳
細を示すブロック図、図4は図1におけるベクトル演算
制御ユニットとベクトル演算処理ユニットの中の命令実
行部の詳細を示すブロック図である。図1〜図4におい
て、1は主記憶装置、2は記憶制御ユニット、3はスカ
ラー演算処理ユニット、4はベクトル処理判定回路、9
〜11はデータ転送回路、12はベクトルレジスタ、1
3はベクトル演算器、14は命令実行制御部、15、1
6は接続パス選択回路、23はベクトル演算制御ユニッ
ト、51〜54はベクトル演算処理ユニット、75は命
令バッファ、87は接続回路である。
【0015】本発明の第1の実施形態によるベクトル処
理装置は、図1に示すように、主記憶装置1、記憶制御
ユニット2、ベクトル処理並列化の可否を判定するベク
トル処理判定回路4を有するスカラー演算処理ユニット
3、ベクトル演算処理ユニット51〜54、ベクトル演
算処理ユニット51〜54の動作を制御するベクトル演
算制御ユニット23を備えて構成されている。ベクトル
演算処理ユニット51〜54は、それぞれ、複数のベク
トルレジスタ12、1つまたは複数のベクトル演算器1
3、記憶制御ユニット2を介して主記憶装置1との間で
データの転送を行うデータ転送回路9〜11、複数のベ
クトルレジスタ12とデータ転送回路9〜11あるいは
ベクトル演算器13との間のデータパスを形成する接続
パス選択回路15、16、これらの要素と接続されベク
トル演算処理ユニット全体の動作を制御する命令実行制
御部14により構成されている。
【0016】前述において、データ転送回路9、10は
フェッチ用、データ転送回路11はストア用である。ま
た、接続パス選択回路15、16は、図に示す例ではベ
クトル演算処理ユニット毎に独立して設けられている
が、全てのベクトル演算処理ユニットに共通に設けられ
てもよい。
【0017】図1において、いま、スカラー演算処理ユ
ニット3があるタスクを処理していて、その途中でベク
トル処理を行わなければならなくなったものとする。こ
の場合、スカラ演算処理ユニット3は、そのベクトル処
理をベクトル演算制御ユニット23を介して、ベクトル
演算処理ユニット51〜54に処理させるようにする。
このとき、1つのベクトル命令を、ベクトル演算処理ユ
ニット51〜54により最大4つに分割して処理させる
ことができる。すなわち、1つのベクトル命令が処理す
べきベクトル要素全体を、要素番号に従い4つに分割し
て、ベクトル演算処理ユニット51〜54に割り当て、
各ベクトル演算処理ユニットが独立して並列に処理を行
うようにする。これにより、図1に示すベクトル処理装
置は、演算器等の使用効率を高め、ベクトル処理の高速
化を図ることができる。
【0018】ここで、スカラー演算処理ユニット3で実
行されるプログラムの中に、次の2つのDOループによ
るベクトル命令列が存在する場合を考えてみる。なお、
プログラム上では、DOループ(A)がDOループ
(B)より先に現われるものとする。
【0019】 (A) DO10 I=1,30 A(I)=B(I)+C(I) 10 CONTINUE (B) DO20 J=1,20 D(J)=E(J)+F(J) 20 CONTINUE これらのDOループによるベクトル命令は、アクセスす
るアドレスに全く競合がないものとする。本発明の第1
の実施形態は、前述のDOループを処理する場合、これ
らのベクトル命令が共にベクトル長が短いため、最初に
DOループ(A)のベクトル処理をベクトル演算処理ユ
ニット51〜54により分割して処理し、その後、DO
ループ(B)のベクトル処理をベクトル演算処理ユニッ
ト51〜54により分割して処理するのではなく、DO
ループ(A)のベクトル処理をベクトル演算処理ユニッ
ト51、52により、DOループ(B)のベクトル処理
をベクトル演算処理ユニット53、54で分割して行う
こととする。このような処理を行うことにより、装置全
体としてのベクトル処理のオーバーヘッドを少なくする
ことができる。
【0020】以下、前述したような異なる2つのベクト
ル命令列をそれぞれ2つのベクトル演算処理ユニットに
より並列に処理を行う場合の動作を説明する。
【0021】前述したDOループは、機械語では、それ
ぞれ3つのLMA(Load MultipleVector Address & In
crement)命令と、LMB(Load Multiple Vector Bas
e)命令と、1つのEXVP(Execute Vector Processi
ng)命令とに展開される。すなわち、 (A)LMA VAIR0 :ベクトルアドレスレジス
タVAR0に行列Aの先頭アドレス(ディスプレースメ
ントアドレス)を、ベクトル増分レジスタVIR0に定
数(アドレス間隔)をセットすることを指令 LMB VBR0 :ベクトルベースレジスタVBR
0に行列Aの先頭アドレス(ベースアドレス)をセット
することを指令 LMA VAIR2 :ベクトルアドレスレジスタVA
R2に行列Bの先頭アドレス(ディスプレースメントア
ドレス)を、ベクトル増分レジスタVIR2に定数(ア
ドレス間隔)をセットすることを指令 LMB VBR2 :ベクトルベースレジスタVBR
2に行列Bの先頭アドレス(ベースアドレス)をセット
することを指令 LMA VAIR4 :ベクトルアドレスレジスタVA
R4に行列Cの先頭アドレス(ディスプレースメントア
ドレス)を、ベクトル増分レジスタVIR4に定数(ア
ドレス間隔)をセットすることを指令 LMB VBR4 :ベクトルベースレジスタVBR
4に行列Cの先頭アドレス(ベースアドレス)をセット
することを指令 EXVP X :処理すべきベクトル要素数L
(ここでは、L=30)、要素並列度P(ここではP=
2)、ベクトル命令列番号N(この場合N=1)を指令
するとともに、主記憶装置1のアドレスXを先頭アドレ
スとして、そこからベクトル命令列を読み出して、それ
をベクトル演算制御ユニット23に送出することを指令 (B)LMA VAIR6 :ベクトルアドレスレジス
タVAR6に行列Dの先頭アドレス(ディスプレースメ
ントアドレス)を、ベクトル増分レジスタVIR6に定
数(アドレス間隔)をセットすることを指令 LMB VBR6 :ベクトルベースレジスタVBR
6に行列Dの先頭アドレス(ベースアドレス)をセット
することを指令 LMA VAIR8 :ベクトルアドレスレジスタVA
R8に行列Eの先頭アドレス(ディスプレースメントア
ドレス)を、ベクトル増分レジスタVIR8に定数(ア
ドレス間隔)をセットすることを指令 LMB VBR8 :ベクトルベースレジスタVBR
8に行列Eの先頭アドレス(ベースアドレス)をセット
することを指令 LMA VAIR10:ベクトルアドレスレジスタVA
R10に行列Fの先頭アドレス(ディスプレースメント
アドレス)を、ベクトル増分レジスタVIR10に定数
(アドレス間隔)をセットすることを指令 LMB VBR10 :ベクトルベースレジスタVBR
10に行列Fの先頭アドレス(ベースアドレス)をセッ
トすることを指令 EXVP Y :処理すべきベクトル要素数L
(ここでは、L=20)、要素並列度P(ここではP=
2)、ベクトル命令列番号N(この場合N=2)を指令
するとともに、主記憶装置1のアドレスYを先頭アドレ
スとして、そこからベクトル命令列を読み出して、それ
をベクトル演算制御ユニット23に送出することを指令 前述の命令の説明において、要素並列度Pとは、1つの
ベクトル命令を分割処理するベクトル演算処理ユニット
の数である。また、ベクトル命令列番号Nとは、並列に
分割処理可能なベクトル命令列を識別するもので、1か
ら始まり、先行するベクトル命令列とアドレス競合が無
ければ、先行するベクトル命令列番号+1、アドレス競
合が有れば、先行するベクトル命令列番号と同一番号が
付加されるようになっている。要素並列度P、ベクトル
命令列番号Nの情報は、プログラム作成時にプログラム
内で指定されるものであり、共にソフトウェアから受け
取る。
【0022】DOループ(A)の処理において、まず、
前述のLMA、LMB命令及びEXVP命令は、図2に
示すスカラー演算処理ユニット3の中の命令バッファ7
5に送出され、順次処理される。図には、命令バッファ
75に格納される命令フォーマットとしてEXVP命令
の場合を示しているが、LMA、LMB命令の場合、
L、N、Pでなくレジスタ番号が指定される。
【0023】スカラー演算処理ユニット3は、LMA、
LMB命令により行列Aから行列Cに関するアドレス制
御データを、ベクトル演算制御ユニット23内のベクト
ルアドレスレジスタ321、ベクトルベースレジスタ3
31、ベクトル増分レジスタ341にセットする。次
に、EXVP命令で指定されるベクトル処理要素数Lを
ベクトル演算制御ユニット23の中のベクトル長レジス
タ241に送出し、ベクトル命令列番号Nと要素並列度
Pとをモードレジスタ761にセットする。
【0024】モードレジスタ761のベクトル命令列番
号N1に値がセットされると、スカラー演算処理ユニッ
ト3は、ベクトル演算制御ユニット23の中の命令実行
判定回路261に対して、ベクトル並列処理開始信号8
11を送出し、要素並列度P1を、新要素並列度レジス
タ791を介して、命令実行判定回路261に送出す
る。
【0025】一方、EXVP命令のベクトル命令先頭ア
ドレスからベクトル命令列の読み出しが行われる。この
ベクトル命令列は、以下のように、それぞれ2つのVL
(ベクトル・ロード)命令と1つのVEA(ベクトル・
エレメントワイズ・アド)命令と1つのVST(ベクト
ル・ストア)命令からなっている。
【0026】 (A) VL VR2,VAIR2,VBR2 VL VR4,VAIR4,VBR4 VEA VR0,VR2,VR4 VST VR0,VAIR0,VBR0 VEND これらのベクトル命令列は、それぞれベクトル演算制御
ユニット23の中のベクトル命令バッファ251に送出
される。
【0027】図3に示すベクトル演算制御ユニット23
とベクトル演算処理ユニットの中のデータ転送回路との
詳細は、異なる2つのベクトル命令列をそれぞれ要素並
列度2で処理する場合に使用する回路のみを示してお
り、次に、ベクトル演算制御ユニット23の動作を、図
1〜図3を参照して説明する。
【0028】図3に示す命令実行判定回路261は、ス
カラー演算処理ユニット3からベクトル並列処理開始信
号811を受け取ると、ベクトル命令が入力されたベク
トル命令バッファ251の先頭取り出し位置から1つの
ベクトル命令を取り出し、それが実行可能か否かを判定
する。表示回路27は、ベクトル演算処理ユニット51
〜54に対して共通に設けられているもので、各ベクト
ル演算処理ユニットの中のベクトルレジスタ12、ベク
トル演算器13、データ転送回路9〜11のそれぞれに
対応する1個ずつの表示子を備え、それらが使用中であ
るか否かを表示している。
【0029】命令実行判定回路261は、これら表示子
を参照することにより、取り出したベクトル命令で指定
されたベクトルレジスタ12、そのベクトル命令で指定
された演算を行うためのベクトル演算器13等が空いて
いるか否かを調べ、必要なものが全て空いていることを
検出すると、そのベクトル命令の実行が可能であると判
定する。そして、そのベクトル命令の実行が可能である
場合、そのベクトル命令で使用するベクトルレジスタ1
2、ベクトル演算器13、データ転送回路9〜11に対
応する表示子を、それらが使用中であることを表示する
ようにセットし、そのベクトル命令を命令レジスタ31
1に送出すると共に、起動制御回路281に起動信号2
91を送出する。また、図2に示すように、新要素並列
度P’1をデコーダ801でデコードし、その結果も起
動制御回路281に送出する。
【0030】図3のベクトル命令バッファ251には、
スカラー演算処理ユニット3から送出される1つのベク
トル命令のフォーマットを示してあり、また、命令レジ
スタ311には、命令実行判定回路261から送出され
る1つのベクトル命令のフォーマットを示してある。
【0031】ベクトル命令バッファ251のフォーマッ
トにおいて、OPは演算の種類を表すオペレーションコ
ード、VRN1〜VRN3はベクトルレジスタ番号を指
定するベクトルレジスタ指定部、VAIRNはベクトル
アドレスレジスタ番号とベクトル増分レジスタ番号を指
定するベクトルアドレス・増分レジスタ指定部、VBR
Nはベクトルベースレジスタ番号を指定するベクトルベ
ースレジスタ指定部である。なお、ベクトル命令によっ
ては、ベクトルアドレスレジスタ等を使用しないもの
(例えば前記VEA命令)があり、その場合には、該当
の指定部は存在しない。以下、説明の都合上、特に説明
のない限り、VRN1〜VRN3は全て存在するものと
して扱う。
【0032】また、命令レジスタ311のフォーマット
中の空白部分は、ベクトル命令バッファ251から送出
されたものを、命令実行判定回路261がそのまま出力
したOP、VRN1〜VRN3、VAIRN、VBRN
であり、ALNとTRNとは、共に命令実行判定回路2
61で新たに付加されたもので、この回路で新たに使用
中とした表示子に対応するベクトル演算器、データ転送
回路を指定する演算器指定部、データ転送回路指定部で
ある。
【0033】説明している実施形態では、要素並列度を
2としているので、ベクトル要素番号をiとすると、1
つのベクトル命令は、2個のベクトル演算処理ユニット
で次のように分担して処理されることになる。
【0034】 ベクトル要素番号 ベクトル演算処理ユニット i=0,2,4,6,・・・ 51 i=1,3,5,7,・・・ 52 命令レジスタ311のVAIRNとVBRN以外の部分
は、各ベクトル演算処理ユニット51、52に送出され
る。そして、起動制御回路281は、図2に示すよう
に、命令実行判定回路261からの起動信号291と新
要素並列度P’1のデコード結果とをANDし、要素並
列度と同数のベクトル演算処理ユニットにユニット起動
信号を送出する。この場合、ベクトル演算処理ユニット
51へはユニット起動信号301が、ベクトル演算処理
ユニット52へはユニット起動信号3011が送出され
る。
【0035】各ベクトル演算処理ユニットの命令実行制
御部14は、命令レジスタ311から受け取った情報に
基づいて、そのベクトル演算処理ユニットにベクトル処
理動作を行わせる。各命令実行制御部14は、実行すべ
きベクトル命令がVL命令、VST命令のように、ベク
トルレジスタ12とデータ転送回路とを使用するベクト
ル命令の場合、VRN1〜VRN3の内のいずれか(V
L命令、VST命令では1つのベクトルレジスタだけが
使用され、ここではそれをVRN1で指定するものとす
る)及びTRNを図1に示す接続パス選択回路15ある
いは16に送出する。このとき、接続パス選択回路15
あるいは16は、VRN1によって指定されるベクトル
レジスタ12と、TRNによって指定されるデータ転送
回路との間の接続パスを選択する。
【0036】そして、ベクトル演算処理ユニット51
は、図3に示すように、命令実行制御部14に、ベクト
ル演算制御ユニットの命令レジスタ311の中のVAI
RNで指定されたベクトルアドレスレジスタ321の内
容と、VBRNで指定されたベクトルベースレジスタ3
31の内容とを、加算回路351によって加算した結果
を格納したアドレスレジスタ361の内容を読み出させ
る。TRNによって指定されたデータ転送回路(以下、
これをデータ転送回路9として説明する)は、読み出し
た内容をセレクタ17とレジスタ18とを介して、アク
セスアドレスとして記憶制御ユニット2に送出する。
【0037】一方、その間に、ベクトル演算処理ユニッ
ト51において、ベクトル増分レジスタ341から読み
出された内容が、2倍回路382とレジスタ19とを介
して加算回路20に入力され、レジスタ18の内容との
和が求められる。そして、この結果が、セレクタ17を
介してレジスタ18にセットされる。この新しい内容
は、前述の場合と同様にして、アクセスアドレスとして
記憶制御ユニット2に送出され、以下、同様の動作が繰
り返される。
【0038】また、ベクトル演算処理ユニット52の中
のデータ転送回路9は、ベクトル演算制御ユニット23
内の加算回路421で求められたアドレスレジスタ36
1の内容と、ベクトル増分レジスタ341から読み出さ
れた内容との和をセレクタ17とレジスタ18とを介し
て、アクセスアドレスとして記憶制御ユニット2に送出
する。一方、その間に、ベクトル増分レジスタ341か
ら読み出された内容が、2倍回路382とレジスタ19
とを介して加算回路20に入力され、レジスタ18の内
容との和が求められる。そして、この結果が、セレクタ
17を介してレジスタ18にセットされる。この新しい
内容は、前述の場合と同様にして、アクセスアドレスと
して記憶制御ユニット2に送出され、以下、同様の動作
が繰り返される。
【0039】なお、アドレス演算回路37は、図3には
データ転送回路9用に用意された1つしか示していない
が、同様なアドレス演算回路が他のデータ転送回路10
または11に対しても用意されている。従って、TRN
で指定されるデータ転送回路が10または11の場合、
命令実行制御部14は、それに対応したアドレス演算回
路に信号を送り、それを動作させる。
【0040】図1に示すように、各ベクトル演算処理ユ
ニット51〜52の中のデータ転送回路9から、記憶制
御ユニット2に送出されたアクセスアドレスは、主記憶
装置1に送出される。TRNで指定されたデータ転送回
路がフェッチ用のデータ転送回路9または10であれ
ば、主記憶装置1からの読み出しデータが、信号線21
を介してデータ転送回路9または10に送出され、その
後、接続パス選択回路15を介して、VRN1で指定さ
れたベクトルレジスタ12にロードされる。また、TR
Nで指定されたデータ転送回路がストア用のデータ転送
回路11であれば、VRN1で指定されたベクトルレジ
スタ12からの読み出しデータが、接続パス選択回路1
6を介してデータ転送回路11に送出され、その後、信
号線22と記憶制御ユニット2とを介して、主記憶装置
1に書き込まれる。
【0041】各命令実行制御部14は、実行すべきベク
トル命令がVEA命令のように、ベクトルレジスタ12
とベクトル演算器13とを使用するベクトル命令の場
合、VRN1〜VRN3及びALNを、接続パス選択回
路15、16に送出する。このとき、接続パス選択回路
15、16は、VRN1〜VRN3によって指示される
1つのベクトル演算器13との間の接続パスを選択す
る。その後、選択した2つのベクトルレジスタ12から
データが読み出され、選択したベクトル演算器13によ
って演算が行われ、結果が選択した1つのベクトルレジ
スタ12に書き込まれる。
【0042】前述で説明したように、1つのベクトル命
令は、4つのベクトル演算処理ユニットの中の2つのベ
クトル演算処理ユニット51と52とにより分割して処
理されることになる。
【0043】なお、接続パス選択回路15、16は、そ
れぞれ同時に複数の接続パスを選択することができる。
これにより、命令実行制御部14は、指定されたベクト
ルレジスタ12、ベクトル演算器13、データ転送回路
9〜11が空いていれば、命令レジスタ311から与え
られたベクトル命令の実行を次々と開始し、複数のベク
トル命令を同時に実行することができる。そして、次に
処理するベクトル命令が、VEND命令になると、命令
実行判定回路261は、ベクトル命令バッファ251か
らのベクトル命令の取出しを停止し、図2に示すよう
に、ベクトル処理が終了したことを示す信号861をス
カラー演算処理ユニット3の中の制御回路87に報告す
る。
【0044】本発明の第1の実施形態によるベクトル処
理装置は、前述のようにして、ベクトル命令列の処理を
行うが、このとき、ベクトル演算処理ユニット53〜5
4では、前述の処理と全く同様に、別のベクトル命令列
を処理することができる。すなわち、本発明の第1の実
施形態によるベクトル処理装置は、DOループ(B)の
処理をDOループ(A)の処理と並行して行うことがで
きる。次に、このDOループ(B)のベクトル処理につ
いて説明する。
【0045】DOループ(B)のベクトル処理の場合も
前述の場合と同様に、LMA、LMB命令及びEXVP
命令は、図2に示すスカラー演算処理ユニット3の中の
命令バッファ75に送出され、順次処理される。すなわ
ち、スカラー演算処理ユニット3は、LMA、LMB命
令により行列Dから行列Fに関するアドレス制御データ
を、ベクトル演算制御ユニット23内のベクトルアドレ
スレジスタ322、ベクトルベースレジスタ332、ベ
クトル増分レジスタ342の中にセットする。スカラー
演算処理ユニット3は、次に、EXVP命令で指定され
るベクトル処理要素数Lを、ベクトル演算制御ユニット
23内のベクトル長レジスタ242に送出し、ベクトル
命令列番号Nと要素並列度Pとを、ベクトル処理判定回
路4の中のモードレジスタ762に送出する。
【0046】モードレジスタ762のベクトル命令列番
号N2は、比較回路772により、先行するDOループ
(A)によるベクトル命令列のベクトル命令列番号N1
と比較される。一方、要素並列度P2と、減算回路88
2により得られる未使用のベクトル演算処理ユニット数
を示す値(4−P1)のうち小さい方が、セレクタ78
2によりセレクトされ、新要素並列度レジスタ792に
送出される。比較回路892によりこの値が1以上であ
ることが検出され、かつ、比較回路772の結果が異な
っている場合にのみ、命令実行判定回路262にベクト
ル並列処理開始信号812が送出される。また、新要素
並列度P’2も、命令実行判定回路262に送出され
る。
【0047】一方、EXVP命令のベクトル命令先頭ア
ドレスからベクトル命令列の読出しが行われる。このベ
クトル命令列は、以下のように、それぞれ2つのVL命
令と1つのVEA命令と1つのVST命令からなってい
る。
【0048】 (B) VL VR8,VAIR8,VBR8 VL VR10,VAIR10,VBR10 VEA VR6,VR8,VR10 VST VR6,VAIR6,VBR6 VEND これらのベクトル命令列は、それぞれ、図3に示すベク
トル演算制御ユニット23内のベクトル命令バッファ2
52に送出される。
【0049】命令実行判定回路262は、スカラー演算
処理ユニット3からベクトル並列処理開始信号812を
受け取ると、ベクトル命令が入力されたベクトル命令バ
ッファ252の先頭取出し位置から1つのベクトル命令
を取り出し、それが実行可能か否かを判定する。そし
て、実行可能の場合には、そのベクトル命令で使用する
ベクトルレジスタ12、ベクトル演算器13、データ転
送回路9〜11に対応する表示回路27の表示子を、そ
れらが使用中であることを表示するようにセットし、そ
のベクトル命令を命令レジスタ312に送出すると共
に、起動制御回路282に起動信号292を送出する。
また、図2に示すように、新要素並列度P’2をデコー
ダ802でデコードし、その結果も起動制御回路282
に送出する。
【0050】この結果、ベクトル演算処理ユニット5
3、54は、ベクトル要素番号をiとすると、次のよう
に分担して処理を行うことになる。
【0051】 ベクトル要素番号 ベクトル演算処理ユニット i=0,2,4,6,・・・ 53 i=1,3,5,7,・・・ 54 起動制御回路282は、新要素並列度P’2をデコード
した結果と起動信号292とをANDし、要素並列度と
同数のベクトル演算処理ユニットに対して、ユニット起
動信号を送出する。この場合、ベクトル演算処理ユニッ
ト53に対してユニット起動信号302を、ベクトル演
算処理ユニット54に対してユニット起動信号3021
を送出する。
【0052】各ベクトル演算処理ユニットの命令実行制
御部14は、ユニット起動信号を受け取ると、命令レジ
スタ312から受け取った情報に基づき、そのベクトル
演算処理ユニットにベクトル処理動作を行わせる。
【0053】ベクトル演算処理ユニット53、54での
動作は、前述したベクトル演算処理ユニット51、52
の動作と同様である。図1に示すように、各命令実行制
御部14は、実行すべきベクトル命令がVL命令、VS
T命令の場合、VRN1〜VRN3の内のいずれか及び
TRNを、接続パス選択回路15あるいは16に送出す
る。このとき、接続パス選択回路15あるいは16は、
VRN1によって指定されるベクトルレジスタ12と、
TRNによって指定されるデータ転送回路との間の接続
パスを選択する。
【0054】そして、ベクトル演算処理ユニット53で
は、命令実行制御部14に、図3に示すように、加算回
路352によって、命令レジスタ312の中のVAIR
Nで指定されたベクトルアドレスレジスタ322の内容
と、VBRNで指定されたベクトルベースレジスタ33
2の内容とを加算した結果を格納したアドレスレジスタ
362の内容を読み出させる。TRNによって指定され
たデータ転送回路は、読み出した内容をセレクタ17と
レジスタ18を介して、アクセスアドレスとして記憶制
御ユニット2に送出する。
【0055】一方、その間に、ベクトル増分レジスタ3
42から読出された内容は、2倍回路382とレジスタ
19とを介して加算回路20に入力され、レジスタ18
の内容との和が求められる。そして、この結果が、セレ
クタ17を介してレジスタ18にセットされる。この新
しい内容は、前述した場合と同様にして、アクセスアド
レスとして記憶制御ユニット2に送出される。以下、同
様の動作が繰り返される。
【0056】また、ベクトル演算処理ユニット54の中
のデータ転送回路9は、加算回路421で求められたア
ドレスレジスタ362の内容と、ベクトル増分レジスタ
342から読出した内容との和を、セレクタ17とレジ
スタ18とを介してアクセスアドレスとして記憶制御ユ
ニット2に送出する。
【0057】一方、その間に、ベクトル増分レジスタ3
42から読み出された内容は、2倍回路382とレジス
タ19とを介して加算回路20に入力され、レジスタ1
8の内容との和が求められる。そして、この結果は、セ
レクタ17を介してレジスタ18にセットされる。この
新しい内容は、前と同様にして、アクセスアドレスとし
て記憶制御ユニット2に送出される。以下、同様の動作
が繰り返される。
【0058】各ベクトル演算処理ユニット53、54の
中のデータ転送回路9から、記憶制御ユニット2に送出
されたアクセスアドレスは、主記憶装置1に送出され
る。主記憶装置1からの読出しデータ、主記憶装置1へ
の書き込みデータの処理は、ベクトル演算処理ユニット
51、52の場合と全く同様に行われる。
【0059】前述のようにして、もう1つのベクトル命
令列が、並列して、2つのベクトル演算処理ユニット5
3、54により分割して処理される。
【0060】次に、各ベクトル演算処理ユニット51〜
54により処理されるベクトル要素数の制御について、
図4を参照して説明する。
【0061】図4に示すように、各ベクトル演算処理ユ
ニット51〜54の中の命令実行制御部14の中には、
その中のベクトルレジスタ、ベクトル演算器、データ転
送回路の各々に対応して1個ずつのカウンタ63が用意
されている。実行すべきベクトル命令が、ベクトルレジ
スタとデータ転送回路を使用するVL命令、VST命令
等の場合におけるVRN1とTRNとにより指定された
ベクトルレジスタとデータ転送回路とに対応するカウン
タ63の動作、及び、実行すべきベクトル命令がベクト
ルレジスタとベクトル演算器とを使用するVEA命令の
場合におけるVRN1〜VRN3とALNとにより指定
されたベクトルレジスタとベクトル演算器とに対応する
カウンタ63の動作は、以下のとおりである。なお、図
4ではカウンタの1つだけを示してあるが、他のカウン
タについても同様である。
【0062】図4において、DOループ(A)のベクト
ル処理のために、スカラー演算処理ユニット3から与え
られ、ベクトル長レジスタ241にセットされたベクト
ル要素数Lを表すデータの下1ビットは、補正回路48
1に送出され、下1ビットを除く部分は、そのままベク
トル演算処理ユニット51、52のカウンタ63にセッ
トされる。補正回路481は、ベクトル長レジスタ24
1の下1ビットが“1”の場合、信号線6611に出力
を発して、ベクトル演算処理ユニット51のカウンタ6
3を+1させ、また、“0”の場合、何も行わない。
【0063】同様に、DOループ(B)のベクトル信号
のために、スカラー演算処理ユニット3から与えられ、
ベクトル長レジスタ242にセットされたベクトル要素
数Lを表すデータの下1ビットは、補正回路482に送
出され、下1ビットを除く部分はそのままベクトル演算
処理ユニット53、54のカウンタ63にセットされ
る。補正回路482は、ベクトル長レジスタ242の下
1ビットが“1”の場合、信号線6621に出力を発し
て、ベクトル演算処理ユニット53のカウンタ63を+
1させ、“0”の場合、何も行わない。
【0064】ベクトル演算処理ユニット51、52のそ
れぞれによりベクトル命令が実行されるとき、前述のよ
うにしてセットされたカウンタ63の値は、ベクトル要
素を1個処理する毎に−1される。そして、カウンタ6
3の値が“0”になったときに信号線671に出力を発
する。同様に、ベクトル演算処理ユニット53、54の
それぞれによりベクトル命令が実行されるときも、前述
のようにしてセットされたカウンタ63の値は、ベクト
ル要素を1個処理する毎に−1される。そして、カウン
タ63の値が“0”になったときに信号線672に出力
が発せられる。
【0065】各信号線671の出力は、ベクトル演算制
御ユニット23内の優先順位回路491を介して、カウ
ンタ601に送出される。また、各信号線672の出力
も、ベクトル演算制御ユニット23内の優先順位回路4
92を介して、カウンタ602に送出される。
【0066】優先順位回路491、カウンタ601、最
終値レジスタ621は、ベクトル演算処理ユニット5
1、52に対し共通に設けられ、また、優先順位回路4
92、カウンタ602、最終値レジスタ622は、ベク
トル演算処理ユニット53、54に対し共通に設けられ
ているものであり、その中のベクトルレジスタ12、ベ
クトル演算器13、データ転送回路9〜11のそれぞれ
に対応して、1個ずつ用意されている。
【0067】優先順位回路491は、複数の信号線67
1に同時に出力が現われない場合に、それぞれの出力を
そのままカウンタ601に与え、同時に出力が現われた
場合、それらを1クロック時間ずつずらせてカウンタ6
01に与える。カウンタ601は、優先順位回路491
からの出力をカウントし、そのカウント値が最終値レジ
スタ621の値と等しくなると、比較回路611が出力
を発する。
【0068】同様に、優先順位回路492は、複数の信
号線672に同時に出力が現われない場合に、それぞれ
の出力をそのままカウンタ602に与え、同時に出力が
現われた場合、それらを1クロック時間ずつずらせてカ
ウンタ602に与える。カウンタ602は、優先順位回
路492からの出力をカウントし、そのカウント値が最
終値レジスタ622の値と等しくなると、比較回路61
2が出力を発する。
【0069】表示回路27は、比較回路611、612
からの出力に基づいて、それに対応するベクトルレジス
タ、ベクトル演算器、データ転送回路の表示子を、空き
を表示するようにリセットする。
【0070】ベクトル長レジスタ241にセットされる
ベクトル要素数Lが2以上の場合、起動制御回路281
は、命令実行判定回路261からの起動信号291と新
要素並列度P’1のデコード結果とをアンドゲート85
によってANDし、ベクトル演算処理ユニット51に対
しユニット起動信号301を、ベクトル演算処理ユニッ
ト52に対しユニット起動信号3011を出力する。ま
た、最終値レジスタ621には“2”がセットされる。
ベクトル要素数Lが1の場合、起動制御回路281の中
の1検出回路64から出力が発せられるため、アンドゲ
ート65の働きにより、ベクトル演算処理ユニット52
へのユニット起動信号3011は阻止される。最終値レ
ジスタ621には“1”がセットされる。
【0071】同様に、ベクトル演算処理ユニット53、
54での処理において、ベクトル要素数Lが2以上の場
合、起動制御回路282は、命令実行判定回路262か
らの起動信号292と新要素並列度P’2のデコード結
果とをアンドゲート85によってANDし、ベクトル演
算処理ユニット53に対しユニット起動信号302を、
ベクトル演算処理ユニット54に対しユニット起動信号
3021を出力する。また、最終値レジスタ622には
“2”がセットされる。ベクトル要素数Lが1の場合
は、起動制御回路282の中の1検出回路64から出力
が発せられるため、アンドゲート65の働きにより、ベ
クトル演算処理ユニット54へのユニット起動信号30
21は阻止される。そして、最終値レジスタ622には
“1”がセットされる。
【0072】前述で説明した本発明の第1の実施形態に
よれば、ベクトル長の短い2つのベクトル命令列
(A)、(B)を、それぞれベクトル演算処理ユニット
51、52及び53、54により並列に処理することが
でき、ベクトル命令列(A)の処理終了後、再びベクト
ル処理の起動を行い、ベクトル命令列(B)を処理する
場合に比べて、ベクトル処理の起動の起動に伴うベクト
ル処理のオーバーヘッドを短縮することができる。
【0073】前述した本発明の第1の実施形態は、2つ
のベクトル命令列をそれぞれ要素並列度2で並列に処理
を行うとして説明したが、本発明は、アクセスするアド
レスに競合がなければ、任意の数のベクトル命令列を任
意の要素並列度で並列に処理することが可能である。
【0074】この場合、図3に示すベクトル演算処理ユ
ニット23の中のベクトル命令バッファ251、25
2、ベクトル長レジスタ241、242、命令実行判定
回路261、262、起動制御回路281、282、補
正回路481、482、ベクトル命令レジスタ311、
312、ベクトルアドレスレジスタ321、322、ベ
クトルベースレジスタ331、332、ベクトル増分レ
ジスタ341、342、アドレスレジスタ361、36
2、及び、図3に示す優先順位回路491、492、カ
ウンタ601、602、最終値レジスタ621、622
を、必要な要素並列度の数に多重化することにより実現
することができる。
【0075】図5〜図8は本発明の第2の実施形態を説
明する図であり、図5はスカラー演算処理ユニットとベ
クトル演算制御ユニットとの構成を示すブロック図、図
6はベクトル演算制御ユニットの中の起動制御回路と補
正回路、ベクトル演算処理ユニットの中の命令実行部の
詳細を示すブロック図、図7はベクトル演算処理ユニッ
トの総数を4個としたときのアドレス演算回路37の詳
細を示すブロック図、図8はベクトル演算制御ユニット
の中の優先順位回路への信号線の詳細を示す図である。
この例は、任意の数のベクトル命令列を任意の要素並列
度で処理することができるベクトル処理装置において、
ベクトル演算処理ユニットが4個の場合の例である。
【0076】図5には、ベクトル処理判定回路4の詳細
を示しており、ベクトル処理判定回路4は、各ベクトル
命令列のベクトル命令列番号が、先行するベクトル命令
列のベクトル命令列番号と異なり、かつ、未使用のベク
トル演算処理ユニットが1つ以上の場合にのみ、命令実
行判定回路に対して、異なるベクトル命令列の並列実行
を指令するベクトル並列処理開始信号を送るように構成
されている。
【0077】すなわち、まず、1番目のベクトル命令列
のベクトル命令列番号と要素並列度とが、制御回路87
からモードレジスタ761にセットされる。ベクトル処
理判定回路4は、モードレジスタ761のベクトル命令
列番号N1に値がセットされると、ベクトル演算制御ユ
ニット23内の命令実行判定回路261に対してベクト
ル並列処理開始信号811を送出する。要素並列度P1
はそのまま新要素並列度レジスタ791にセットされ、
命令実行判定回路261に送出される。命令実行判定回
路261は、ベクトル並列処理開始信号811を受け取
ると、ベクトル命令バッファからベクトル命令の取り出
しを開始する。取り出したベクトル命令が実行可能であ
れば、起動信号291と、新要素並列度P’1をデコー
ダ801によりデコードした結果が、起動制御回路28
1に送出される。
【0078】次に、2番目のベクトル命令列のベクトル
命令列番号と要素並列度とが、モードレジスタ762に
セットされる。ベクトル処理判定回路4は、ベクトル命
令列番号N2と1番目のベクトル命令列のベクトル命令
列番号N1とを比較回路772によって比較させる。一
方、要素並列度P2と、減算回路882により得られる
未使用のベクトル演算処理ユニット数を示す値(4−P
1)のうち小さい方がセレクタ782によりセレクトさ
れて、その値が新要素並列度レジスタ792にセットさ
れる。比較回路892によりこの値が1以上であること
が検出され、かつ、比較回路772の結果が異なってい
る場合にのみ、命令実行判定回路262にベクトル並列
処理開始信号812が送出される。
【0079】その際の要素並列度は、新要素並列度レジ
スタ792の値P’2であり、命令実行判定回路262
に送出される。命令実行判定回路262は、ベクトル並
列処理開始信号812を受け取ると、ベクトル命令バッ
ファからベクトル命令の取り出しを開始する。取り出し
たベクトル命令が実行可能であれば、起動信号292
と、新要素並列度P’2をデコーダ802によりデコー
ドした結果とが、起動制御回路282に送出される。
【0080】3番目のベクトル命令列についても同様
に、ベクトル命令列番号と要素並列度とが、モードレジ
スタ763にセットされる。ベクトル処理判定回路4
は、ベクトル命令列番号N3と2番目のベクトル命令列
のベクトル命令列番号N2とを比較回路773によって
比較させる。一方、要素並列度P3と、減算回路883
により得られる未使用のベクトル演算処理ユニット数を
示す値(4−P1−P2)のうち小さい方がセレクタ7
83によりセレクトされて、新要素並列度レジスタ79
3にセットされる。比較回路893によりこの値が1以
上であることが検出され、かつ、比較回路773の結果
が異なっている場合にのみ、命令実行判定回路263に
ベクトル並列処理開始信号813が送出される。
【0081】その際の要素並列度は、新要素並列度レジ
スタ793の値P’3であり、命令実行判定回路263
に送出される。命令実行判定回路263は、ベクトル並
列処理開始信号813を受け取ると、ベクトル命令バッ
ファからベクトル命令の取り出しを開始する。取り出し
たベクトル命令が実行可能であれば、起動信号293
と、新要素並列度P’3をデコーダ803によりデコー
ドした結果とが、起動制御回路283に送出される。
【0082】4番目のベクトル命令列についても同様
に、ベクトル命令列番号と要素並列度とが、モードレジ
スタ764にセットされる。ベクトル処理判定回路4
は、ベクトル命令列番号N4と3番目のベクトル命令列
のベクトル命令列番号N3とを比較回路774によって
比較させる。一方、要素並列度P4と、減算回路884
により得られる未使用のベクトル演算処理ユニット数を
示す値(4−P1−P2−P3)のうち小さい方がセレ
クタ784によりセレクトされて、新要素並列度レジス
タ794にセットされる。比較回路894によりこの値
が1以上であることが検出され、かつ、比較回路774
の結果が異なっている場合にのみ、命令実行判定回路2
64にベクトル並列処理開始信号814が送出される。
【0083】その際の要素並列度は、新要素並列度レジ
スタ794の値P’4であり、命令実行判定回路264
に送出される。なお、この場合、1番目〜3番目のベク
トル命令列の要素並列度がすべて1の場合のみ、P’4
=1となり、並列処理が可能である。命令実行判定回路
264は、ベクトル並列処理開始信号814を受け取る
と、ベクトル命令バッファからベクトル命令の取り出し
を開始する。取り出したベクトル命令が実行可能であれ
ば、起動信号294と、新要素並列度P’4をデコーダ
804によりデコードした結果とが、起動制御回路28
4に送出される。
【0084】5番目以降のベクトル命令列は、制御回路
87が1番目〜4番目のベクトル命令列の実行が終了し
たことを示す信号線861〜864からの信号を受け取
るまで処理が行われない。
【0085】ベクトル演算処理ユニットの総数が4個の
場合、前述したように、アドレスレジスタの競合が無け
れば、最大4個までのベクトル命令列を並列処理するこ
とができるが、この場合、ベクトル演算制御ユニット2
3の中には、図6に示すように、それらのベクトル命令
列に対応した起動制御回路281〜284と、1番目〜
3番目のベクトル命令列に対応した補正回路481〜4
83とが設けられている。起動制御回路281は、1〜
3を検出する検出回路64、オアゲート68、アンドゲ
ート65、85により構成され、起動制御回路282
は、1、2を検出する検出回路64、オアゲート68、
アンドゲート65、85により構成され、起動制御回路
283は、1を検出する検出回路64、アンドゲート6
5、85により構成され、起動制御回路284は、アン
ドゲート85により構成される。また、補正回路481
は、1〜3を検出する検出回路69、オアゲート70に
より構成され、補正回路482は、1、2を検出する検
出回路69、オアゲート70により構成され、補正回路
483は、1を検出する検出回路69により構成され
る。
【0086】要素並列度をPとすると、ベクトル要素数
LがP以上のとき、ベクトル要素数LをPで割った商
が、ベクトル演算処理ユニット51〜54のカウンタ6
3に送出され、ベクトル要素数LをPで割った余りが補
正回路481に送出される。補正回路481は、ベクト
ル要素数LをPで割った余りの値に応じて、各ベクトル
演算処理ユニットの中のカウンタ63を+1する処理を
行う。すなわち、補正回路481は、1〜3の検出回路
69とオアゲート70との働きにより、ベクトル要素数
LをPで割った余りの値が、1であればベクトル演算処
理ユニット51に信号線6611を介した信号を、2で
あればベクトル演算処理ユニット51に信号線6611
を介した信号、及び、ベクトル演算処理ユニット52に
信号線6612を介した信号を、3であればベクトル演
算処理ユニット51に信号線6611を介した信号、ベ
クトル演算処理ユニット52に信号線6612を介した
信号、及び、ベクトル演算処理ユニット53に信号線6
613をを介した信号を送り、カウンタ63の値を+1
する。余りの値が0であれば何もしない。なお、最終値
レジスタ621には“P”がセットされる。
【0087】また、ベクトル要素数Lが要素並列度Pよ
り小さいとき、ベクトル長レジスタ241の値が起動制
御回路281に送出される。起動制御回路281は、1
〜3を検出する検出回路64、オアゲート68、アンド
ゲート65の働きにより、L(この例ではL<4)個の
ベクトル演算処理ユニット51〜5L以外のベクトル演
算処理ユニット5(L+1)〜54へのユニット起動信号
を抑止する。なお、最終値レジスタ621には“L”が
セットされる。もちろん、このような場合には、ベクト
ル演算処理ユニット5(L+1)〜54を他のベクトル命
令列で使用する方が効率が良いのはいうまでもない。補
正回路482〜483、起動制御回路282〜284に
ついても同様である。
【0088】また、ベクトル要素数Lが要素並列度P以
上のとき、各起動制御回路は、命令実行判定回路から受
け取った起動信号と要素並列度のデコード結果とをアン
ドゲート85によってANDし、要素並列度と同じ数の
ベクトル演算処理ユニットにユニット起動信号を送出す
る。例えば、ベクトル演算処理ユニット51へは、1番
目のベクトル命令列の処理を行うよう、起動制御回路2
81よりユニット起動信号301が送出される。また、
ベクトル要素数によっては、補正回路481より信号線
6611への信号が送出される。
【0089】ベクトル演算処理ユニット52は、1番目
のベクトル命令列を処理する場合と2番目のベクトル命
令列を処理する場合との2つの場合が考えられるため、
起動制御回路281または起動制御回路282から、ユ
ニット起動信号3011と302とのどちらか1つが送
出される。また、ベクトル要素数によっては、補正回路
481または補正回路482から、信号線6612と6
621とのどちらか1つに信号が送出される。
【0090】ベクトル演算処理ユニット53は、1番目
のベクトル命令列を要素並列度3または4で処理する場
合と、1番目のベクトル命令列が要素並列度2であるこ
とにより、2番目のベクトル命令列を要素並列度1また
は2で処理する場合と、1番目のベクトル命令列が要素
並列度1であることにより、2番目のベクトル命令列を
要素並列度2または3で処理する場合と、3番目のベク
トル命令列を要素並列度1または2で処理する場合との
4つの処理の状態が考えられ、起動制御回路281〜2
83の1つから、ユニット起動信号3012、302、
3021、303のどれか1つが送出される。また、ベ
クトル要素数によっては、補正回路481〜483の1
つから、信号6613、6621、6622、6631
のどれか1つが送出される。
【0091】ベクトル演算処理ユニット54は、1番目
〜4番目のベクトル命令列を要素並列度1で処理する場
合と、1番目のベクトル命令列を要素並列度4で処理す
る場合と、1番目のベクトル命令列が要素並列度3であ
ることにより、2番目のベクトル命令列を要素並列度1
で処理する場合と、1番目のベクトル命令列が要素並列
度2であることにより、2番目のベクトル命令列を要素
並列度2で処理する場合と、1番目のベクトル命令列が
要素並列度1であることにより、2番目のベクトル命令
列を要素並列度3で処理する場合と、1番目と2番目と
のベクトル命令列が要素並列度があわせて3であること
により、3番目のベクトル命令列を要素並列度1で処理
する場合と、1番目と2番目とのベクトル命令列が要素
並列度1で3番目のベクトル命令列を要素並列度2で処
理する場合との7つの処理の状態が考えられ、起動制御
回路281〜284の1つから、ユニット起動信号30
13、302、3021、3022、303、303
1、304のどれか1つが送出される。
【0092】図7には、ベクトル演算処理ユニットの総
数を4個としたときのアドレス演算回路37の詳細が示
されている。
【0093】図7において、ベクトル演算処理ユニット
51へは、アドレスレジスタ361から読み出された内
容がセレクタ17に送出される。ベクトル演算処理ユニ
ット51が、1番目のベクトル命令列を要素並列度1で
処理する場合、ベクトル増分レジスタ341から読み出
された内容が、セレクタ41を介してレジスタ19に送
出される。そして、2番目のベクトル命令列を処理する
ことになるベクトル演算処理ユニット52へは、アドレ
スレジスタ362の内容がセレクタ451を介してセレ
クタ17に送出される。
【0094】また、ベクトル演算処理ユニット51、5
2が、1番目のベクトル命令列を要素並列度2で処理す
る場合、ベクトル演算処理ユニット51へは、ベクトル
増分レジスタ341から読み出された内容が、2倍回路
382とセレクタ41とを介してレジスタ19に送出さ
れる。また、ベクトル演算処理ユニット52へは、アド
レスレジスタ361の内容と、ベクトル増分レジスタ3
41から読み出された内容との和が加算回路421で求
められ、それがセレクタ451を介してセレクタ17に
送出される。そして、ベクトル増分レジスタ341から
読み出された内容が、2倍回路382とセレクタ41と
を介してレジスタ19に送出される。そして、2番目の
ベクトル命令列を処理することになるベクトル演算処理
ユニット53へは、アドレスレジスタ362の内容がセ
レクタ452を介してセレクタ17に送出される。
【0095】また、ベクトル演算処理ユニット51〜5
3が、1番目のベクトル命令列を要素並列度3で処理す
る場合、ベクトル演算処理ユニット51へは、ベクトル
増分レジスタ341から読み出された内容が、3倍回路
383とセレクタ41を介してレジスタ19に送出され
る。ベクトル演算処理ユニット52へは、アドレスレジ
スタ361の内容と、ベクトル増分レジスタ341から
読み出された内容との和が加算回路421で求められ、
それがセレクタ451を介してセレクタ17に送出され
る。そして、ベクトル増分レジスタ341から読み出さ
れた内容が、3倍回路383とセレクタ41とを介して
レジスタ19に送出される。また、ベクトル演算処理ユ
ニット53へは、アドレスレジスタ361の内容と、ベ
クトル増分レジスタ341から読み出された内容を2倍
回路382で2倍したものとの和が加算回路422で求
められ、それがセレクタ452を介してセレクタ17に
送出される。そして、ベクトル増分レジスタ341から
読み出された内容が、3倍回路383とセレクタ41を
介してレジスタ19に送出される。2番目のベクトル命
令列を処理することになるベクトル演算処理ユニット5
4へは、アドレスレジスタ362の内容がセレクタ45
3を介してセレクタ17に送出される。
【0096】以下、2番目のベクトル命令列に関しても
要素並列度に応じて、前述と同様に処理が行われる。
【0097】本発明の第2の実施形態は、ベクトル演算
処理ユニットの総数が4個としているので、図8に示す
ようにベクトル演算制御ユニット23には4個の優先順
位回路491〜494が設けられている。そして、優先
順位回路491〜494に対してベクトル演算処理ユニ
ット51〜54から送出される信号線67上の信号は、
その全てが有効なわけではなく、各ベクトル命令列を処
理しているベクトル演算処理ユニットからの信号のみが
有効である。
【0098】図8において、各ベクトル演算処理ユニッ
ト51〜54により処理されるベクトル要素数の制御に
ついては、前述で説明した本発明の第1の実施形態の場
合と同様に行われる。そして、本発明の第2の実施形態
においては、図8に示すように、各ベクトル演算処理ユ
ニット51〜54から出力されるカウンタ63の値が
“0”となったことを報告する信号線67は、起動制御
回路281〜284からのユニット起動信号により制御
される。
【0099】すなわち、起動制御回路281〜284
は、1番目〜4番目のベクトル命令列を処理するベクト
ル演算処理ユニット51〜54のそれぞれに対して、ユ
ニット起動信号301〜304、3011〜3013、
3021〜3022、3031のいずれかを送出すると
同時に、優先順位回路491〜494に対してもこれら
のユニット起動信号を送出する。
【0100】優先順位回路491〜494は、これらの
ユニット起動信号を受けると、ベクトル命令列を処理す
るベクトル演算処理ユニットからの信号線67上の信号
のみを有効としてカウンタ601〜604に報告する。
その後の処理については、本発明の第1の実施形態の場
合と同様に行われる。
【0101】前述では、ベクトル演算処理ユニットの総
数が4個の場合の、任意の数のベクトル命令列の任意の
要素並列度での処理について説明したが、本発明は、ベ
クトル演算処理ユニットの総数が4個以上の場合も、前
述の場合と同様に適用するすることができる。
【0102】前述した本発明の実施形態によれば、ベク
トル長の短い複数のベクトル命令列を、並列にかつそれ
ぞれ複数のベクトル演算処理ユニットで分割して処理を
行うことにより、ベクトル演算器、データ転送回路等の
使用効率を高めて、ベクトル処理のオーバーヘッドを短
縮することができ、効率的なベクトル演算を実行するこ
とができる。
【0103】
【発明の効果】以上説明したように本発明によれば、ベ
クトル長の短い複数のベクトル命令列を、並列にかつそ
れぞれ複数のベクトル演算処理ユニットにより分割して
処理することができるので、ベクトル演算器、データ転
送回路等の使用効率を高め、さらに、ベクトル処理のオ
ーバヘッドを短縮することができるので、ベクトル処理
全体の処理効率の向上を図ることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態によるベクトル処理装
置の全体の構成を示すブロック図である。
【図2】図1におけるスカラー演算処理ユニットの詳細
を示すブロック図である。
【図3】図1におけるベクトル演算制御ユニットとベク
トル演算処理ユニットの中のデータ転送回路の詳細を示
すブロック図である。
【図4】図1におけるベクトル演算制御ユニットとベク
トル演算処理ユニットの中の命令実行部の詳細を示すブ
ロック図である。
【図5】本発明の第2の実施形態を説明するスカラー演
算処理ユニットとベクトル演算制御ユニットとの構成を
示すブロック図である。
【図6】本発明の第2の実施形態を説明するベクトル演
算制御ユニットの中の起動制御回路と補正回路、ベクト
ル演算処理ユニットの中の命令実行部の詳細を示すブロ
ック図である。
【図7】本発明の第2の実施形態を説明するベクトル演
算制御ユニット内のアドレス演算回路の詳細を示すブロ
ック図である。
【図8】ベクトル演算制御ユニットの中の優先順位回路
への信号線の詳細を示す図である。
【符号の説明】
1 主記憶装置 2 記憶制御ユニット 3 スカラー演算処理ユニット 4 ベクトル処理判定回路 51〜54 ・・・・・・・ ベクトル演算処理ユニッ
ト 9〜11 データ転送回路 12 ベクトルレジスタ 13 ベクトル演算器 14 命令実行制御部 23 ベクトル演算制御ユニット 241〜244 ベクトル長レジスタ 261〜264 命令実行判定回路 281〜284 起動制御回路 481〜484 補正回路 37 アドレス演算回路

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 複数のベクトルレジスタと少なくとも1
    つのベクトル演算器と少なくとも1つのデータ転送回路
    とを有するベクトル演算処理ユニットを複数備え、1つ
    のベクトル命令を前記ベクトル演算処理ユニットで分割
    して処理するベクトル処理装置において、複数の異なる
    ベクトル命令列の並列処理が可能か否かを判定する判定
    手段を備え、前記複数のベクトル演算処理ユニットを複
    数に分割し、分割された複数のベクトル演算処理ユニッ
    トにそれぞれ前記異なるベクトル命令列の1つを割り当
    てて、複数の異なるベクトル命令列を並列に処理するこ
    とを特徴とするベクトル処理装置。
  2. 【請求項2】 複数の異なるベクトル命令のそれぞれで
    処理すべき全体のベクトル要素数がセットされる複数の
    第1の記憶手段と、前記複数のベクトル演算処理ユニッ
    トのそれぞれで処理すべきベクトル要素数がセットされ
    る複数の第2の記憶手段と、前記複数の第1の記憶手段
    にセットされたそれぞれの内容に基づいて前記第2の記
    憶手段にセットする内容を決定する複数のベクトル要素
    数変換手段とをさらに備えることを特徴とする請求項1
    記載のベクトル処理装置。
  3. 【請求項3】 前記判定手段は、前記複数の異なるベク
    トル命令列がアクセスするアドレスの競合の有無と、各
    ベクトル命令列を処理するベクトル演算処理ユニットの
    数を示す要素並列度とを受け取り、アドレスの競合が無
    く、かつ、未使用のベクトル演算処理ユニットの数と、
    受け取った要素並列度とを比較して、少ない方が1以上
    の場合にのみ、複数のベクトル命令列の並列処理が可能
    であると判定することを特徴とする請求項1または2記
    載のベクトル処理装置。
  4. 【請求項4】 前記ベクトル要素数変換手段は、複数の
    異なるベクトル命令列を並列処理させる際、各ベクトル
    命令列を処理する前記ベクトル演算処理ユニットの数に
    伴い、対応するベクトル演算処理ユニットを選択するこ
    とを特徴とする請求項2または3記載のベクトル処理装
    置。
JP935896A 1996-01-23 1996-01-23 ベクトル処理装置 Pending JPH09198374A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP935896A JPH09198374A (ja) 1996-01-23 1996-01-23 ベクトル処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP935896A JPH09198374A (ja) 1996-01-23 1996-01-23 ベクトル処理装置

Publications (1)

Publication Number Publication Date
JPH09198374A true JPH09198374A (ja) 1997-07-31

Family

ID=11718258

Family Applications (1)

Application Number Title Priority Date Filing Date
JP935896A Pending JPH09198374A (ja) 1996-01-23 1996-01-23 ベクトル処理装置

Country Status (1)

Country Link
JP (1) JPH09198374A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010501937A (ja) 2006-08-18 2010-01-21 クゥアルコム・インコーポレイテッド スカラー/ベクトル命令を使用したデータ処理システムおよび方法
CN110941789A (zh) * 2018-09-21 2020-03-31 北京地平线机器人技术研发有限公司 张量运算方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010501937A (ja) 2006-08-18 2010-01-21 クゥアルコム・インコーポレイテッド スカラー/ベクトル命令を使用したデータ処理システムおよび方法
JP2013175218A (ja) * 2006-08-18 2013-09-05 Qualcomm Inc スカラー/ベクトル命令を使用したデータ処理システムおよび方法
CN110941789A (zh) * 2018-09-21 2020-03-31 北京地平线机器人技术研发有限公司 张量运算方法和装置
CN110941789B (zh) * 2018-09-21 2023-12-15 北京地平线机器人技术研发有限公司 张量运算方法和装置

Similar Documents

Publication Publication Date Title
JP2918631B2 (ja) デコーダ
EP0368332B1 (en) Pipeline data processor
US5442762A (en) Instructing method and execution system for instructions including plural instruction codes
US5471626A (en) Variable stage entry/exit instruction pipeline
JP3555140B2 (ja) レジスタリネーム回路の半導体フロアプランと方法
EP0138451B1 (en) Vector data processing system for indirect address instructions
US6269440B1 (en) Accelerating vector processing using plural sequencers to process multiple loop iterations simultaneously
JPH0769818B2 (ja) デ−タ処理装置
US5561808A (en) Asymmetric vector multiprocessor composed of a vector unit and a plurality of scalar units each having a different architecture
JPH0374434B2 (ja)
JPH0260026B2 (ja)
JPH03286332A (ja) デジタルデータ処理装置
US5890009A (en) VLIW architecture and method for expanding a parcel
US7577824B2 (en) Methods and apparatus for storing expanded width instructions in a VLIW memory for deferred execution
JP2556182B2 (ja) デ−タ処理装置
JPH09198374A (ja) ベクトル処理装置
JPS59114677A (ja) ベクトル処理装置
US5682521A (en) Microprocessor control system which selects operating instructions and operands in an order based upon the number of transferred executable operating instructions
US6240540B1 (en) Cyclic redundancy check in a computer system
US5146599A (en) System for fetching a plurality vector-data groups using a plurality of addressing device
KR100732426B1 (ko) 고속 컨텍스트 전환을 갖는 컴퓨터
JP2752902B2 (ja) ベクトル処理装置
JPH0623977B2 (ja) ベクトル処理装置
JPS6033644A (ja) メモリバンク切換方法および装置
JP2883465B2 (ja) 電子計算機