JP2580371B2 - ベクトルデ―タ処理装置 - Google Patents

ベクトルデ―タ処理装置

Info

Publication number
JP2580371B2
JP2580371B2 JP2190335A JP19033590A JP2580371B2 JP 2580371 B2 JP2580371 B2 JP 2580371B2 JP 2190335 A JP2190335 A JP 2190335A JP 19033590 A JP19033590 A JP 19033590A JP 2580371 B2 JP2580371 B2 JP 2580371B2
Authority
JP
Japan
Prior art keywords
operand
instruction
vector
adder
multiplier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2190335A
Other languages
English (en)
Other versions
JPH0476772A (ja
Inventor
正守 柏山
幸巳 松本
誠 古賀
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 JP2190335A priority Critical patent/JP2580371B2/ja
Publication of JPH0476772A publication Critical patent/JPH0476772A/ja
Application granted granted Critical
Publication of JP2580371B2 publication Critical patent/JP2580371B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、ベクトルデータ処理装置に係り、特に複数
の演算器で構成するベクトル演算器の演算器構成方式
と、演算実行方式に関するものである。
[従来の技術] ベクトルデータ処理装置は、先行する演算命令の演算
結果を格納するレジスタを後続の演算命令のオペランド
レジスタとして指定するいわゆるチェイニング機能によ
って複数の演算器を時間的にオーバーラップして使用す
ることができ、高いデータ処理能力を有している。ベク
トルデータ処理装置で大規模科学技術計算を行うとき、
プログラムコーディングスタイルは、並列演算器を活か
したコーディングが一般的である。すなわち、代入文の
右辺の演算項を多くする技法が性能向上に効果的であ
る。また、複素数演算やベクトル関数では、ベクトル演
算命令の出現比率が他のベクトル命令に比較して高く、
演算命令を高速に処理することが全体の性能向上に大き
く寄与する。
以下、この種の傾向に対応し性能向上を図った従来の
ベクトルデータ処理装置の構成を示す。
第6図は、複数の演算器を持つベクトルデータ処理装
置の一例の概略構成を示したものである。同図におい
て、ベクトルデータ処理装置は、高速のランダムアクセ
スメモリ(以下、RAMという)で構成され、各々独立に
読出し・書込みが可能で、各々128要素のベクトルデー
タを保持できるVR0〜VR31の32個のベクトルレジスタ111
a〜111hと、2つのオペランドデータに対応したスカラ
データを格納するスカラデータバッファ112a,112bと、
ベクトルレジスタ111a〜111hとスカラデータバッファ11
2a,112bの出力データを命令により各々のリソースへ選
択出力するスィッチマトリックス論理のセレクタ(以
下、SELという)114と、パイプライン加算器101から構
成される0番演算器102と、パイプライン乗算器103から
構成される1番演算器104と、SEL114を通して供給する
オペランドデータを0番演算器102へ入力するオペラン
ドパス105,106と、同様に、1番演算器103へ入力するオ
ペランドパス108,109と、0番演算器102の演算結果を出
力するリザルトパス107と、1番演算器104の演算結果を
出力するリザルトパス110と、命令によりリザルトパス1
07,110からの演算結果をVR0〜VR31のベクトルレジスタ1
11a〜111hに書き込むため選択するスィッチマトリック
ス論理で構成されるセレクタ(以下、DISTという)113
により構成されている。
尚、主記憶からベクトルレジスタへオペランドデータ
を供給するロードパイプラインとベクトルレジスタから
主記憶へデータを格納するストアパイプラインは図示は
しないが具備されているものとする。また、ここでいう
リソースとは、0番演算器102と、1番演算器104と、ロ
ードパイプラインとストアパイプラインを指し、各々の
リソースは命令により並列動作及びチェイニング動作が
可能である。
第6図に示したベクトルデータ処理装置において、2
つの演算リソースである0番演算器102と、1番演算器1
04は、各々並列動作が可能である。従って、加算命令と
乗算命令、または乗算命令と加算命令を並列に処理する
ことが可能であり、チェイニング動作を併用することで
高い処理性能を達成していた。
ところが、大規模科学技術計算における多項演算をベ
クトルデータ処理装置の命令列に展開したケースにおい
ては、理論的に同時並列処理可能な加算命令が連続する
ケースや、乗算命令が連続するケースが出現する場合が
多々ある。第4図(c),(e)に、第6図に示したベ
クトルデータ処理装置における、このようなケースの処
理シーケンスを図示する。第4図(c)において、命令
Vadd VR0 VR1 VR2は、ベクトルレジスタVR1,VR2の内容
を読み出してパイプライン加算器でベクトルデータ加算
を行い、その結果をベクトルレジスタVR0に書き込むと
いう命令を表わす。以下、この関係を以下のように表記
する。
Vadd VR0 VR1 VR2⇒VR1+VR2=VR0 次命令は、 Vadd VR3 VR4 VR5⇒VR4+VR5=VR3 であり、同様にベクトルレジスタVR4,VR5の内容を読み
出してベクトルデータ加算を行い、その結果をベクトル
レジスタVR3に書き込むという命令を示す。ところで、
この2つの命令列は理論的に同時並列動作可能である。
しかし、第6図に示したベクトルデータ処理装置の演算
器構成では、第4図(c)に示すように、複数段のパイ
プラインで構成されるベクトル加算器の先頭段をVR1+V
R2のためのオペランドデータが通過した後でないと、VR
4+VR5のためのオペランドデータをパイプライン先頭段
に供給できない。さらに、第4図(e)の乗算命令のケ
ースも同様である。また、第4図(c)に示したケース
においては、Vadd命令に先行する命令、例えば、ベクト
ルレジスタVR4へのロード命令とのテェイニング動作
は、途切れることになる。この様な状態を演算リソース
ネックと呼び、性能が低下する要因となる。さらに、第
4図(c),(e)のケースとも一方の演算リソースが
ビジー(busy)であるにもかかわらず、他方の演算リソ
ースが遊んでいることになり効率が悪い。
第7図は、複数の演算器構成をさらに改良したベクト
ルデータ処理装置の概略構成を表現したものである。同
図において、ベクトルレジスタ215a〜215h,スカラデー
タバッファ216a,216b,SEL218,オペランドパス209,210,2
12,213,リザルトパス211,214,DIST217及び、ロード/ス
トアパイプラインについては第6図と同様の構成であ
る。また、1番演算器205は、パイプライン加算器204で
構成される。ただし、0番演算器203は、パイプライン
乗算器202とパイプライン加算器201の複合構成になって
おり、パイプライン乗算器202の演算結果を出力パス206
を通してパイプライン加算器201の一方のオペランドと
してデータ供給ができる構成になっている。さらに、オ
ペランドパス209は、パイプライン乗算器202とパイプラ
イン加算器201の両方に対してデータを供給できる構成
になっている。パイプライン乗算器202の演算結果出力
パス206とパイプライン加算器201の演算結果出力パス20
7は、乗算命令実行時は出力パス206をセレクタ208によ
り選択し、乗算結果を一方のオペランドデータとした加
算命令実行時は出力パルス207をセレクタ208により選択
し、リザルトパス211に出力するように構成されてい
る。さらに、0番演算器203は、オペランドパス210から
のデータをパイプライン乗算器202がそのまま通過(ス
ルー)させることで、パイプライン加算器201を利用し
た単純加算命令を実行することも可能である。
第7図で示したベクトルデータ処理装置では、複合演
算器構成を活かした自動ベクトル化機能として複合演算
(内積,総和,等)をマクロ命令として処理している。
例えば、日立社製HITAC S−810やその後継機であるHI
TAC S−820ベクトルデータ処理装置では、ベクトル乗
算器の結果をベクトル加算器のオペランドデータとして
利用することで、連立一次方程式の解法に有効な内積演
算(S=S+A(I)*B(I)),3項の積和演算(A
(I)+C*B(I))などの複合演算をマクロ命令と
して一命令で実行するベクトル処理方式を適用し高速化
を図っている。この第7図に示したベクトルデータ処理
装置においては、加算器を2個有するので第4図(c)
で示したケースの同時並列処理が可能である。当該ケー
スを第4図(d)に示す。すなわち、加算演算リソース
の競合が無いため同時並列処理可能である。また、第5
図(i)で示す複合演算命令(マクロ命令)が0番演算
器203で可能である。第5図(i)において、 Vmltadd VR0 VR1 VR2 SR⇒(VR2×SR)+VR1=VR0 である。当該命令の処理において、先行する乗算がベク
トルデータVR2とスカラデータSRの積、後続する加算が
先行乗算結果のベクトルデータ(VR2×SR)とベクトル
データVR1の積となる。しかし、第7図に示したベクト
ルデータ処理装置において、例えば、 Vmltadd VR0 R1 VR2 VR3⇒(VR2×VR3)+VR1=VR0 等の全オペランドがベクトルデータであるオールベクト
ルオペランド処理は、不可能である。これは、ベクトル
データVR2とベクトルデータVR1の読み出しが両方共オペ
ランドパス209を使用するための制約である。オペラン
ドパス209を時分割で使用することも考えられるが、そ
のための制御が複雑になるとともに、処理性能を低減す
ることになる。
さらに、この様な演算器構成のベクトルデータ処理装
置で命令列のチェイニングを行い、高速のベクトルデー
タ処理を実現するためには、演算命令を各々の演算器に
効果的に割り当てるスケジューリング制御が必要であ
る。例えば、加算命令と乗算命令の連続ケースにおい
て、最初の加算命令を0番演算器203に割り当てた場
合、次の乗算命令起動では、演算リソースコンフリクト
が生じる。その結果、乗算処理が待たされチェイン切れ
を発生することになる。このように不均一な演算器構成
は、特に多項演算において複雑な演算命令スケジューリ
ングを必要とし、効率的な演算器割付けが困難である。
第8図に示すベクトルデータ処理装置は、複数の演算
器構成で多項演算処理を高速に行うもう一つの例であ
る。同図において、ベクトルレジスタ321a〜321h、スカ
ラデータバッファ322a,322b、及びロード/ストアパイ
プラインについては第6図と同様の構成である。SEL32
4、オペランドパス309,310,312,313,315,316,318,319、
リザルトパス311,314,317,320,DIST323については、第
6図に対して増加した演算器分のデータパス増加と、セ
レクタ論理変更とを行っている。また、パイプライン加
算器301で構成される0番演算器302と、パイプライン乗
算器303で構成される1番演算器304と、パイプライン加
算器305で構成される2番演算器306と、パイプライン乗
算器307で構成される3番演算器308とは、演算リソース
であり各々独立して並列に演算命令を実行することがで
きる。
この第8図に示したベクトルデータ処理装置に対し
て、第4図に示した加算命令の連続及び、乗算命令の連
続ケースを実行した場合第4図(d),(f)に示すよ
うに、同一種の演算リソースの競合が生じないため、命
令列の処理時間を短縮することができる。ところが、こ
の様な演算器構成の場合、複数の演算器がすべて各々一
つの演算命令を実行できる演算リソースとなるため、命
令制御側から見ると演算命令列をそれぞれの演算リソー
スに割り付けるスケジューリング処理が複雑になる。ま
た、データパス、およびSEL324を初めとする制御論理等
のハードウェア物量も多くなる。さらに、ベクトルデー
タ処理装置は、多項演算ケースばかりでなく、ロード/
ストア系命令と演算系命令が1対1の割合で混在する命
令列も多い。この様なケースにおいては、当該装置の演
算リソースは使用されない演算器が生じる。すなわち、
過剰な設計(オーバーデザイン)であるといえる。
ところで、第7図に示した従来例の代表的なベクトル
データ処理装置の例としては、日経エレクトロニクス、
1983年、4月11日、(No.314)第159〜第184頁、およ
び、同、1987年、12月28日、(No.437)第111〜第125頁
で紹介されている日立社製HITAC S−810,S−820があ
る。また、特開昭64−67678号にも同様のベクトルデー
タ処理装置が開示されている。さらに、第8図に示した
従来例に該当する装置は、同じく日立社製HITAC S−8
10がある。
[発明が解決しようとする課題] 以上の従来技術によれば、前記ベクトルデータ処理装
置は、第6図に示した複数の演算器の構成方式によって
は、同一種の演算命令が連続するケースにおいて演算リ
ソースネックが発生する。また、一方の演算リソースが
ビジーであるにもかかわらず、他方の演算リソースが遊
ぶケースが発生し効率が悪くなることがある。また、第
7図に示したような複合演算命令をサポートするため
に、乗算器と加算器を直列に接続した演算器構成では、
オールベクトルオペランド処理が不可能であった。さら
に、第8図に示した演算リソースを増やす方式は、従来
の2倍のデータパスを必要とするばかりか、複雑な演算
命令スケジューリングも必要であり、効率的な演算器割
付けが困難であった。また、かかる複雑な制御を実現す
るために、ハードウェア量が増大するという問題があっ
た。
そこで、本発明は、複数の演算器で構成するベクトル
データ処理装置において、ハードウェア量の増加を最小
限に押さえつつ、前記問題点を克服し、効率的なベクト
ルデータ処理を提供することを目的とする。
[課題を解決するための手段] 前記目的を達成するために、本発明によるベクトルデ
ータ処理装置は、複数のベクトル要素よりなるベクトル
データを複数組保持するベクトルデータバッファを有
し、該ベクトルデータバッファに保持されたベクトルデ
ータについてベクトル演算を行なうベクトルデータ処理
装置において、加算器および乗算器を含み、両演算器の
少なくとも一方の出力を他方の入力に帰還するパスを有
する第1の複合演算器と、該第1の複合演算器と同一構
成の第2の複合演算器と、前記第1の複合演算器の外部
から当該加算器および乗算器の全4入力のうち3入力を
一時に与えることができる第1,第2,第3のオペランドパ
スと、前記第2の複合演算器の外部から当該加算器およ
び乗算器の全4入力のうち3入力を一時に与えることが
できる第4,第5,第6のオペランドパスとを具備したもの
である。
好ましくは、前記第1および第2の複合演算器の各々
は、当該加算器の出力を前記4入力のうちの1入力に選
択的に帰還する手段と、当該乗算器の出力を前記4入力
のうちの1入力に選択的に帰還する手段とを有する。
また、好ましくは、連続する二つの同一種の演算命令
について、当該演算命令の種類の如何を問わず、先行す
る演算命令をビジーでない方の複合演算器に割り付け、
後続の演算命令を他方の複合演算器に割り付ける演算命
令スケジューリング手段を更に具備する。
この演算命令スケジューリング手段は、先行する加算
(または乗算)命令の結果を格納するレジスタを後続の
乗算(または加算)命令が当該オペランドレジスタとし
て指定している場合、両命令を同一の複合演算器に割り
付けることができる。
前記各複合演算器は、先行する加算(または乗算)命
令の結果を格納するレジスタを後続の乗算(または加
算)命令が当該オペランドレジスタとして指定している
場合、好ましくは、先行する第1の演算命令は加算器
(または乗算器)で3つのオペランドパスのうち2つを
用いて演算処理し、後続の演算命令は乗算器(または加
算器)で前記演算処理結果のフィードバックパスおよび
残りのオペランドパスを用いて演算処理する。
前記各複合演算器は、演算命令が、先行加算(または
乗算)結果を後続乗算(または加算)のオペランドデー
タとして用いるマクロ演算命令である場合、好ましく
は、先行する演算は加算器(または乗算器)で3つのオ
ペランドパスのうち2つを用いて演算処理し、後続の演
算は乗算器(または加算器)で前記演算処理結果のフィ
ードバックパスおよび残りのオペランドパスを用いて演
算処理する。
前記先行する演算の結果が前記フィードバックパスを
介して前記後続の演算の演算器に入力されるタイミング
で、前記残りのオペランドパスからのオペランドが当該
演算器に到達するよう当該オペランド自体またはその読
出し指示を遅延させる手段を具備してもよい。
本発明によるベクトルデータ処理装置は、他の見地に
よれば、複数のベクトル要素よりなるベクトルデータを
複数組保持するベクトルデータバッファを有し、該ベク
トルデータバッファに保持されたベクトルデータについ
てベクトル演算を行なうベクトルデータ処理装置におい
て、加算器および乗算器を含み、両演算器の少なくとも
一方の出力を他方の入力に帰還するパスを有する複合演
算器と、該複合演算器の外部から当該加算器および乗算
器の全4入力のうち3入力を一時に与えることができる
第1,第2,第3のオペランドパスとを具備し、前記複合演
算器は、当該加算器の出力を前記4入力のうちの1入力
に選択的に帰還する手段と、当該乗算器の出力を前記4
入力のうちの1入力に選択的に帰還する手段とを有する
ものである。
[作用] 本発明に係るベクトルデータ処理装置において、ベク
トル加算命令が連続するケースでは、最初の加算命令を
第1および第2の複合演算器のビジーでない方の複合演
算器に対して演算処理を割付け、後続の加算命令を先行
加算命令が割付けられた反対の複合演算器に割り付け
る。また、ベクトル乗算命令が連続するケースでは、最
初の乗算命令を第1および第2の複合演算器のビジーで
ない方の複合演算器に対して演算処理を割付け、後続の
乗算命令を先行乗算命令が割り付けられた反対の複合演
算器に割付ける。さらに、ベクトル加算命令とベクトル
乗算命令が連続で、両ベクトル演算命令同士がチェイニ
ング関係にあるとき、先行する加算命令について第1お
よび第2の複合演算器のビジーでない方の複合演算器に
対してその演算処理を割付け、後続の乗算命令も当該複
合演算器に割付ける。
前記先行する加算命令のオペランドは、命令で示すベ
クトルレジスタもしくはスカラデータバッファから読み
出し、加算命令を割付けた複合演算器が第1複合演算器
の場合は第1オペランドパスと第2オペランドパスを、
第2複合演算器の場合は第4オペランドパスと第5オペ
ランドパスを通じて当該パイプライン加算器に供給す
る。該供給オペランドは、該パイプライン加算器の演算
ステージ分経過した後、加算結果をリザルトパスへ出力
し、該加算命令が示すベクトルレジスタに書き込む。さ
らに、該加算結果は、フィードバックパスを通して当該
複合演算器のパイプライン乗算器に、後続する前記乗算
命令の被乗数データとして入力される。該乗算命令を乗
数データは、該乗算命令で示すベクトルレジスタもしく
はスカラデータバッファから該フィードバック結果の先
頭エレメントが、該パイプライン乗算器の先頭ステージ
に同時に到着するように読み出す制御を行い、当該複合
演算器が、第1複合演算器の場合は第3オペランドパス
を、第2複合演算器の場合は第6オペランドパスを通し
て該パイプライン乗算器に入力する。該供給オペランド
は、該パイプライン乗算器の演算ステージ分経過した
後、乗算結果をリザルトパスへ出力し、該乗算命令が示
すベクトルレジスタに書き込む。また、ベクトル乗算命
令とベクトル加算命令が連続で、両ベクトル演算命令同
士がチェイニング関係にあるときも、同様に同一複合演
算器に割付ける。
すなわち、当該処理装置においては、パイプライン加
算器を使用する演算命令と、パイプライン乗算器を使用
する演算命令がチェイニング関係にあるとき、これら命
令列は、同一複合演算器に割付ける制御処理を行う。
さらに、ベクトル加算とベクトル乗算を複合したマク
ロ命令の場合、第1および第2の複合演算器のビジーで
ない方の複合演算器に対して演算処理を割付ける。該マ
クロ演算処理は、演算処理のオペランドを、命令で示す
ベクトルレジスタもしくはスカラデータバッファから読
み出し、当該マクロ命令を割付けた複合演算器が第1複
合演算器の場合は、第1オペランドパス,第2オペラン
ドパス,第3オペランドパスを、第2複合演算器の場合
は、第4オペランドパス,第5オペランドパス,第6オ
ペランドパスを、通じて供給する。該供給オペランド
は、第1,第4オペランドが演算データ、第2,第5オペラ
ンドが被演算データとなる。前記演算データと被演算デ
ータが、当該マクロ命令の内容が示す加算もしくは乗算
の先行パイプライン演算器の演算ステージ分経過した
後、その演算結果をフィードバックパスを通して、該複
合演算器の該マクロ命令の内容が示す加算もしくは乗算
の後続パイプライン演算器に、後続演算の被演算データ
として入力される。該後続演算の演算データは、前記フ
ィードバック結果の先頭エレメントが該パイプライン演
算器の先頭ステージに同時に到着するように、当該複合
演算器が第1複合演算器の場合は第3オペランドパス
を、第2複合演算器の場合は第6オペランドパスを遅延
制御して前記パイプライン演算器に入力する。該供給オ
ペランドは、該パイプライン演算器の演算ステージ分経
過した後、その演算結果をリザルトパスへ出力し、当該
マクロ命令が示すベクトルレジスタに書き込む。
また、マクロ命令が連続するケースでは、最初のマク
ロ命令を第1および第2の複合演算器のビジーでない方
の複合演算器に対して演算処理を割付け、後続のマクロ
命令を先行マクロ命令が割付けられた反対の複合演算器
に割り付ける。
[実施例] 以下、本発明の実施例について詳細に説明する。
まず、本発明に係る第1のベクトルデータ処理装置の
実施例について説明する。第1図に、本実施例に係るベ
クトルデータ処理装置の制御部を除く構成を示す。
同図において、ベクトルデータ処理装置は、各々独立
に読出し・書込みが可能で、各々128要素のベクトルデ
ータを保持できるVR0〜VR31の32個のベクトルレジスタ3
3a〜33hと、3つのオペランドデータに対応したスカラ
データを格納するスカラデータバッファ34a〜34cと、ベ
クトルレジスタ33a〜33hとスカラデータバッファ34a〜3
4cの出力データを命令により各々のリソースへ選択する
スイッチマトリックス論理のSEL36と、各々のリソース
からベクトルレジスタ33a〜33hに送られる書き込みデー
タを、命令で示すベクトルレジスタ33a〜33hに選択して
送り出すスイッチマトリクス論理DIST35と、演算リソー
スである0番複合演算器3と、1番複合演算器6とで構
成される。また、図示はしないが、主記憶からベクトル
レジスタへオペランドを供給するロードパイプラインと
ベクトルレジスタから主記憶へデータを格納するストア
パイプラインは、具備されていて、それぞれ制御系から
はリソースとして制御する。
0番複合演算器3(以下、PDI(Parallel Dual Instr
uction)演算器0という)は、ベクトルデータ及びスカ
ラデータを、ベクトルレジスタ33a〜33hとスカラバッフ
ァ34a〜34cから読み出す第1オペランドパス15,第2オ
ペランドパス16,第3オペランドパス17と、パイプライ
ン加算器1と、パイプライン乗算器2と、パイプライン
加算器1の演算結果をフィードバックし、パイプライン
加算器1及びパイプライン乗算器2のオペランドとする
パス11と、パイプライン乗算器2の演算結果をフィード
バックしてパイプライン加算器1及びパイプライン乗算
器2のオペランドとするパス12と、第1オペランドパス
15とフィードバックパス11とフィードバックパス12から
の入力データを命令により選択してパイプライン加算器
1の被加数データとするセレクタ7と、第2オペランド
パス16と第3オペランドパス17とフィードバックパス11
とフィードバックパス12からの入力データを命令により
選択してパイプライン加算器1の加数データとするセレ
クタ8と、第1オペランドパス15とフィードバックパス
11とフィードバックパス12からの入力データを命令によ
り選択してパイプライン乗算器2の被乗数データとする
セレクタ9と、第2オペランドパス16と第3オペランド
パス17とフィードバックパス11とフィードバックパス12
からの入力データを命令により選択してパイプライン乗
算器2の乗数データとするセレクタ10と、パイプライン
加算器1の出力回路13と、パイプライン乗算器2の出力
回路14と、パイプライン加算器1の演算結果をベクトル
レジスタに書き込むリザルトパス18と、パイプライン乗
算器2の演算結果をベクトルレジスタに書き込むリザル
トパス19から構成される。
1番複合演算器6(以下、PDI演算器1という)は、
ベクトルデータ及びスカラデータを、ベクトルレジスタ
33a〜33hとスカラバッファ34a〜34cから読み出す第4オ
ペランドパス28,第5オペランドパス29,第6オペランド
パス30と、パイプライン加算器4と、パイプライン乗算
器5と、パイプライン加算器4の演算結果をフィードバ
ックしてパイプライン加算器4及びパイプライン乗算器
5のオペランドとするパス24と、パイプライン乗算器5
の演算結果をフィードバックしてパイプライン加算器4
及びパイプライン乗算器5のオペランドとするパス25
と、第4オペランドパス28とフィードバックパス24とフ
ィードバックパス25からの入力データを命令により選択
してパイプライン加算器4の被加数データとするセレク
タ20と、第5オペランドパス29と第6オペランドパス30
とフィードバックパス24とフィードバックパス25からの
入力データを命令により選択してパイプライン加算器4
の加数データとするセレクタ21と、第4オペランドパス
28とフィードバックパス24とフィードバックパス25から
の入力データを命令により選択してパイプライン乗算器
5の被乗数データとするセレクタ22と、第5オペランド
パス29と第6オペランドパス30とフィードバックパス24
とフィードバックパス25からの入力データを命令により
選択してパイプライン乗算器5の乗数データとするセレ
クタ23と、パイプライン加算器4の出力回路26と、パイ
プライン乗算器5の出力回路27と、パイプライン加算器
4の演算結果をベクトルレジスタに書き込むリザルトパ
ス31と、パイプライン乗算器5の演算結果をベクトルレ
ジスタに書き込むリザルトパス32とから構成される。
第2図に、本実施例に係るベクトルデータ処理装置と
命令制御部の構成を示す。
図において、ベクトルデータ処理装置命令制御部37
は、命令バッファ38と、PDI演算器1用実行命令キュー4
0(以下、PDI1Xiという)と、次実行命令キュー39(以
下、PDI1Niという)と、PDI演算器0用実行命令キュー4
2(以下、PDI0Xiという)と、次実行命令キュー41(以
下、PDI0Niという)と、命令バッファ38から命令キュー
39〜42への命令転送パス45と、DIST35,ベクトルレジス
タ33,SEL36,PDI演算器0に対してPDI0Xi,PDI0Niの内容
により制御指示を発行する制御パス44と、DIST35,ベク
トルレジスタ33,SEL36,PDI演算器1に対してPDI1Xi,PDI
1Niの内容により制御指示を発行する制御パス43とから
構成される。また、Xi,Niの2面の命令キューは、各リ
ソース対応に設けられており、各々ビジーフラグ(busy
falg)を持つことで命令キューとリソースのビジー状
態を管理することができる構成になっている。尚、図示
はしないがロード/ストアパイプライン用リソース命令
キューも、PDI0,1演算器用命令キュー同様設けられてい
る。
第3図は、本発明による第1のベクトルデータ処理装
置において、最も効果を発揮する演算命令列の一例を説
明した図である。
同図において、演算命令列は、 Vadd VR0 R1 VR2⇒VR1+VR2=VR0 Vmlt VR3 VR4 VR0⇒VR4×VR0=VR3 Vmlt VR5 VR6 VR7⇒VR6×VR7=VR5 Vadd VR8 VR9 VR5⇒VR9+VR5=VR8 であり、命令制御部37内の命令バッファ38に命令を先
頭として順次格納されているものとする。また、命令
の加算結果のVR0と命令のオペランドVR0及び命令の
乗算結果のVR5と命令のオペランドVR5がチェイニング
関係にある。
当該命令列を第1図に示す第1のベクトルデータ処理
装置で処理する場合の動作は、先行命令においてPDI演
算器0,1のリソースが使用されていないものとすると、
加算命令をPDI0Xiにアサインし、続く乗算命令を加
算命令とチェイニング関係にあるため同じPDI0Niにア
サインする。さらに、続く乗算命令は、PDI演算器0
がビジー状態にあるためPDI1Xiにアサインし、続く加算
命令を乗算命令とチェイニング関係にあるためPDI1
Niにアサインする。このように、連続する演算命令列が
互いにチェイニング関係にあるとき、これら二つの演算
命令列は同一リソースの命令キューにアサインする。命
令バッファから読み出した命令列は、リソース対応に設
けた命令キューに積まれる訳であるが、通常の演算命令
列、例えば、先行と後行の命令の間にチェイニング関係
が無いときは先行の命令がアサインされた反対の演算リ
ソース命令キューに積むことになる。
PDI0Xi42に格納した加算命令の起動によりベクトル
制御部37は、VR1とVR2を同時に読み出す指示をベクトル
レジスタ33に与えると共に、VR1とVR2のデータを第1オ
ペランドパス,第2オペランドパスにセレクトする指示
をSEL36に与え、第1オペランドパス,第2オペランド
パスからのデータを加算実行する指示をPDI演算器0に
与える。さらに、PDI演算器0のパイプライン加算器リ
ザルトパス18をVR0にセレクトする指示をDIST35に与
え、VR0に書き込む指示をベクトルレジスタ33に与え
る。
PDI0Ni41に格納した乗算命令は、加算命令の起動
からパイプライン加算器1の演算ステージタイムとフィ
ードバックパス11のトラベルタイムの合計時間経過後、
起動される。該起動制御は、命令起動と同時に、オペ
レーションサイクル毎に+1するカウント回路を用い
て、カウンター動作を行い、あらかじめ登録してあるリ
リースカウント値(演算ステージタイム+フィードバッ
クパストラベルタイム)とカウント値とが一致したとき
に行う。乗算命令の起動によりベクトル制御部37は、
VR4の読み出し指示をベクトルレジスタ33に与え、VR4の
データを第3オペランドパス17にセレクトする指示をSE
L36に与え、第3オペランドパス17とフィードバックパ
ス11からのデータを乗算する指示をPDI演算器0に与え
る。さらに、PDI演算器0のパイプライン乗算器リザル
トパス19をVR3にセレクトする指示をDIST35に与え、VR3
に乗算結果を書き込む指示をベクトルレジスタ33に与え
る。この結果、加算命令と乗算命令は、PDI演算器
0でオーバーラップして処理される。
一方、PDI1Xi40に格納した乗算命令の起動は、PDI
演算器1がビジー状態に無いとすると格納と同時に行
う。すなわち、PDI0Niへの命令格納の次のオペレーシ
ョンサイクルで行う。当該起動によりベクトル制御部37
は、VR6とVR7を同時に読み出す指示をベクトルレジスタ
33に与え、VR6とVR7のデータを第4オペランドパス,第
5オペランドパスにセレクトする指示をSEL36に与え、
第4オペランドパス,第5オペランドパスからのデータ
を乗算実行することをPDI演算器1に与える。さらに、P
DI演算器1のパイプライン乗算器リザルトパス32をVR5
にセレクトする指示をDIST35に与え、VR5に書き込む指
示をベクトルレジスタ33に与える。
PDI1Ni39に格納した加算命令は、の乗算命令の起
動からパイプライン乗算器5の演算ステージタイムとフ
ィードバックパス25のトラベルタイムの合計時間経過
後、起動される。加算命令の起動によりベクトル制御
部37は、VR9の読み出し指示をベクトルレジスタ33に与
え、VR9のデータを第6オペランドパス30にセレクトす
る指示をSEL36に与え、第6オペランドパス3とフィー
ドバックパス25からのデータを加算する指示をPDI演算
器1に与える。さらに、PDI演算器1のパイプライン加
算器リザルトパス31をVR8にセレクトする指示をDIST35
に与え、VR8に乗算結果を書き込む指示をベクトルレジ
スタ33に与える。この結果、乗算命令と加算命令
は、PDI演算器1でオーバーラップして処理される。
このようにPDI演算器では、先行演算命令と後行演算
命令がチェイニング関係にあるケースにおいて、先行演
算命令のパイプライン演算結果をベクトルレジスタに書
き込みつつ、フィードバックパスを介して、ペアーを構
成している他方のパイプライン演算器にオペランド供給
が可能である。すなわち、一つのPDI演算器においてチ
ェイニング関係にある演算命令を2命令まで同時並列実
行可能である。当該処理をマクロチェイニングモードと
呼ぶことにする。マクロチェイニングモードでは、先行
演算結果がベクトルレジスタに書き込まれることによ
り、当該演算結果を並列動作可能な他のリソースとの間
でチェイニング処理することが可能である。例えば、第
5図に示す演算命令列ケース Vadd VR0 VR1 VR2⇒VR1+VR2=VR0 Vmlt VR3 VR4 VR0⇒VR4×VR0=VR3 Vmlt VR5 VR6 VR0⇒VR6×VR7=VR5 において、従来例の第8図に示したベクトルデータ処理
装置では、第5図(g)に示すように命令列とが別
々の演算リソースでベクトルレジスタを介してチェイニ
ング処理されるため演算命令はリソースビジーになり
処理が遅れる。しかし、本発明による第1のベクトルデ
ータ処理装置では、第5図(h)に示すように命令列
との間を一方のPDI演算器を用いてマクロチェイニン
グモード処理を行いつつ、他方のPDI演算器を用いて命
令列とのチェニニングをオーバーラップ処理可能で
あることから処理時間の短縮が実現できる。また、命令
をVR0ストア命令に変更した場合、先行演算結果を主
記憶にストアするチェイニング処理も可能であり、同様
の効果を得ることができる。なお、前記演算命令列〜
の一連の処理関係を第3図(b)に示す。また、比較
として従来例の第8図に示したベクトルデータ処理装置
において、同一命令列実行時の処理関係を第3図(a)
に示す。本発明による第1のベクトルデータ処理装置に
おいては、第3図(b)に示すように演算処理時間の短
縮が可能である。
次に、本発明に係る第2のベクトルデータ処理装置の
実施例について説明する。
第9図に、本実施例に係るベクトルデータ処理装置の
制御部を除く構成を示す。この第2のベクトルデータ処
理装置においては、加算と乗算を任意に組み合わせたマ
クロ命令をそれぞれの複合演算器で並列処理することが
できる。なお、第1のベクトルデータ処理装置において
は、マクロ演算命令について説明しなかったが、第1の
ベクトルデータ処理装置においてもマクロ演算命令も同
様に実行することができる。
本実施例が第1の実施例と異なる点は、複合演算器内
の加算器と乗算器のいずれか一方の出力を選択する手段
を設けたことにある。これにより、第1の実施例に比
べ、演算結果をベクトルレジスタへ戻すリザルトパスの
数を半減させ、かつDISTの構成を簡略化することが可能
になる、以下、本実施例を具体的な構成および作用を説
明する。
第9図のベクトルデータ処理装置は、第1図のベクト
ルデータ処理装置同様、ベクトルレジスタ429a〜429h
と、スカラデータバッファ430a〜430cと、SEL432と、DI
ST431と、演算リソースである0番複合演算器403と、1
番複合演算器406で構成される。また、図示はしない
が、主記憶からベクトルレジスタへオペランドを供給す
るロードパイプラインとベクトルレジスタから主記憶へ
データを格納するストアパイプラインは、具備されてい
て、それぞれ制御系からはリソースとして制御する。
0番複合演算器403(以下、PDI演算器0という)は、
ベクトルデータ及びスカラデータを、ベクトルレジスタ
492a〜429hとスカラバッファ430a〜430cから読み出す第
1オペランドパス414,第2オペランドパス415,第3オペ
ランドパス416と、パイプライン加算器401と、パイプラ
イン乗算器402と、パイプライン加算器401の演算結果を
フィードバックしてパイプライン加算器401及びパイプ
ライン乗算器402のオペランドとするパス411と、パイプ
ライン乗算器402の演算結果をフィードバックしてパイ
プライン加算器401及びパイプライン乗算器402のオペラ
ンドとするパス412と、第1オペランドパス414とフィー
ドバックパス411とフィードバックパス412からの入力デ
ータを命令により選択してパイプライン加算器401の被
加数データとするセレクタ407と、第2オペランドパス4
15と第3オペランドパス416とフィードバックパス411と
フィードバックパス412からの入力データを命令により
選択してパイプライン加算器401の加数データとするセ
レクタ408と、第1オペランドパス414とフィードバック
パス411とフィードバックパス412からの入力データを命
令により選択してパイプライン乗算器402の被乗数デー
タとするセレクタ409と、第2オペランドパス415と第3
オペランドパス416とフィードバックパス411とフィード
バックパス412からの入力データを命令により選択して
パイプライン乗算器402の乗算データとするセレクタ410
と、パイプライン加算器401の演算結果フィードバック
パス411とパイプライン乗算器402の演算結果フィードバ
ックパス412をセレクトするセレクタ413と、PDI演算器
0の演算結果をベクトルレジスタに書き込むリザルトパ
ス417とから構成される。
1番複合演算器406(以下、PDI演算器1という)は、
ベクトルデータ及びスカラデータを、ベクトルレジスタ
429a〜429hとスカラバッファ430a〜430cから読み出す第
4オペランドパス425,第5オペランドパス426,第6オペ
ランドパス427と、パイプライン加算器404と、パイプラ
イン乗算器405と、パイプライン加算器404の演算結果を
フィードバックしてパイプライン加算器404及びパイプ
ライン乗算器405のオペランドとするパス422と、パイプ
ライン乗算器405の演算結果をフィードバックしてパイ
プライン加算器404及びパイプライン乗算器405のオペラ
ンドとするパス422と、第4オペランドパス425とフィー
ドバックパス422とフィードバックパス423からの入力デ
ータを命令により選択してパイプライン加算器404の被
加数データとするセレクタ418と、第5オペランドパス4
26と第6オペランドパス427とフィードバックパス422と
フィードバックパス423からの入力データを命令により
選択してパイプライン加算器404の加数データとするセ
レクタ419と、第4オペランドパス425とフィードバック
パス422とフィードバックパス423からの入力データを命
令により選択してパイプライン乗算器405の被乗数デー
タとするセレクタ420と、第5オペランドパス426と第6
オペランドパス427とフィードバックパス422とフィード
バックパス423からの入力データを命令により選択して
パイプライン乗算器405の乗数データとするセレクタ421
と、パイプライン加算器404の演算結果フィードバック
パス422とパイプライン乗算器405の演算結果フィードバ
ックパス423をセレクトするセレクタ424と、PDI演算器
1の演算結果をベクトルレジスタに書き込むリザルトパ
ス428とから構成される。
本実施例に係るベクトルデータ処理装置の命令制御部
の構成は、第1のベクトルデータ処理装置と同様で第2
図に示す通りであり、説明を省略する。
第11図は、本発明による第2のベクトルデータ処理装
置において、第3図に示した演算命令列,をマクロ
命令として、一命令で実行する演算命令の一例を説明し
た図である。
図において、演算命令は、 Vaddmlt VR3 VR4 VR1 VR2⇒ (VR1+VR2)×VR4=VR3 であり、図示はしないが、第3図に示した演算命令列
,も Vmltadd VR8 VR9 VR6 VR7⇒ (VR6×VR7}+VR9=VR8 と、マクロ命令で置き換え可能である。当該命令列は、
第2図に示した命令制御部37内の命令バッファ38に命令
を先頭として両マクロ命令が順次格納されているもの
とする。当該命令列を第9図に示す第2のベクトルデー
タ処理装置で処理する場合の動作は、先行命令において
PDI演算器0,1のリソースが使用されていないものとする
と、マクロ命令をPDI0Xiにアサインし、続くマクロ命
令は、PDI演算器0がbusy状態にあるためPDI1Xiにア
サインする。このように、演算命令列は、交互に演算リ
ソースを使用する演算スケジューリングを行うよう命令
キューにアサインする。
PDI0Xi42に格納したのマクロ命令の起動によりベク
トル制御部37は、VR1とVR2とVR4を同時に読み出す指示
をベクトルレジスタ429a〜429hに与え、VR1とVR2とVR4
のデータを、それぞれ第1オペランドパス,第2オペラ
ンドパス,第3オペランドパスにセレクトする指示をSE
L432に与え、第1オペランドパス,第2オペランドパス
からのデータを加算実行し、その加算結果であるフィー
ドバックパス411からのデータと第3オペランドパス416
からのデータを乗算する指示をPDI演算器0に与える。
この時、第10図に示すように、第3オペランドパスから
PDI演算器0に入力するオペランドを遅延回路501を設
け、遅延制御指示を発行することにより先行演算、この
場合加算処理の演算ステージタイム分遅延させる。この
ことにより加算結果の先頭ベクトルデータと第3オペラ
ンドパスから入力されるベクトルデータの先頭要素が同
時に演算開始できる。尚、図示はしないが遅延回路501
と同様の構成が第6オペランドパス427にも設けられて
いる。ところで、この遅延処理は、第3オペランドパ
ス,第6オペランドパスへのベクトルレジスタ読み出し
指示を、第1のベクトルデータ処理装置同様リリースカ
ウント回路を用いて遅らせる方法でも可能である。さら
に制御部37は、PDI演算器0のパイプライン乗算器402出
力結果を選択しリザルトパス417に送出する指示をセレ
クタ413に与え、PDI演算器0のリザルトパス417をVR3に
セレクトする指示をDIST431に与え、VR3にマクロ演算結
果を書き込む指示をベクトルレジスタ429a〜429hに与え
る。この結果、マクロ命令は、PDI演算器0で処理さ
れる。
一方、PDI1Xi40に格納したマクロ命令の起動は、PD
I演算器1がビジー状態に無いとすると格納と同時に行
う。すなわち、PDI0Xiへのマクロ命令格納の次のオペ
レーションサイクルで行う。当該起動によりベクトル制
御部37は、VR6とVR7とVR9を同時に読み出す指示をベク
トルレジスタ429a〜429hに与え、VR1とVR2とVR4のデー
タを、それぞれ第4オペランドパス,第5オペランドパ
ス,第6オペランドパスにセレクトする指示をSEL432に
与え、第4オペランドパス,第5オペランドパスからの
データを乗算実行し、その乗算結果であるフィードバッ
クパス23からのデータと遅延した第6オペランドパス42
7からのデータを加算する指示をPDI演算器1に与える。
さらに制御部37は、PDI演算器1のパイプライン加算器4
04出力結果を選択しリザルトパス428に送出する指示を
セレクト424に与え、PDI演算器1のリザルトパス428をV
R8にセレクトする指示をDIST431に与え、VR8にマクロ演
算結果を書き込む指示をベクトルレジスタ429a〜429hに
与える。この結果、マクロ命令は、PDI演算器1で処
理される。
このように本発明による第2のベクトルデータ処理装
置においては、加算と乗算を任意に組合せたマクロ演算
命令を2命令まで同時並列実行可能であり、演算処理時
間の短縮が可能である。
ところで、第1,第2のベクトルデータ処理装置は、3
つのスカラデータバッファを任意のオペランドパスに接
続可能であることから、スカラデータ,ベクトルデータ
を任意のオペランドに割り付ける柔軟な演算処理が可能
である。さらに、PDI演算器のフィードバックパスを加
算,乗算のパイプライン演算器毎に設け、該フィードバ
ックパスをそれぞれのパイプライン演算器の両方のオペ
ランドとして選択できることから、ベクトルデータもし
くはスカラデータを、A,B,Cとすると、以下に示す演算
処理が1つのマクロ演算命令で実行可能である。
(1) A±B (2) A×B (3) (A±B)×C (4) (A×B)±C (5) (A±B) さらに、本発明による第1,第2のベクトルデータ処理
装置に、1オペレーションサイクル中に複数のベクトル
エレメントを並列に処理する要素並列方式を組み合わせ
て構成した場合、例えば、4エレメント並列処理の場
合、4i(i=0,1,2…)番エレメントを処理する複数の
ベクトルレジスタと2つのPDI演算器の組と、4i+1番
エレメントを処理する組、4i+2番エレメントを処理す
る組、4i+3番エレメントを処理する各々独立した組か
ら構成され、それどれの組では、1オペレーションサイ
クルに1エレメントの処理が可能であり、装置全体で、
4エレメントの演算並列処理が可能であることから、更
に高い処理性能を得ることが可能である。
また、本発明による第1,第2のベクトルデータ処理装
置の方式、特にマクロチェイニングモード方式は、ベク
トルレジスタ,スカラレジスタ等のレジスタ類と複数の
パイプライン演算器を1チップに集積するマイクロプロ
セッサ等にはトラベルタイムを低減することが可能であ
り有用である。
[発明の効果] 以上のように、本発明によれば、次に示す効果を持っ
てベクトルデータ処理装置を提供することができる。
(1)同一種の演算命令が連続するケースにおいて演算
リソースネックを緩和することができる。
(2)同じく、加算器および乗算器からなる同一構成の
複合演算器を2組有するので、演算命令のスケジューリ
ング制御が容易となる。
(3)各複合演算器には3つのオペランドパスを設けた
ので、オールベクトルオペランドによる複合演算が可能
となる。
(4)(3)に加え、各複合演算器の加算器および乗算
器の各出力を当該加算器および乗算器の入力に帰還する
フィードバックパスを設けたので、ベクトルレジスタを
介在せずに、乗算と加算を任意に組み合わせた複合演算
が可能になる。
(5)以上より、データパス及び制御論理のハードウェ
ア量増加を最小限に押さえ、かつ処理時間の短縮を実現
しすることができる。
【図面の簡単な説明】
第1図は本発明の一実施例に係る第1のベクトルデータ
処理装置のデータ系概略ブロック図、第2図は本発明に
係るベクトルデータ処理装置の命令制御部の概略ブロッ
ク図、第3図(a)は従来例によるベクトルデータ処理
装置の処理概念を示すタイミング図、第3図(b)は本
発明による第1のベクトルデータ処理装置の処理概念を
示すタイミング図、第4図(c),(e)は従来例によ
るベクトルデータ処理装置の処理概念を示すタイミング
図、第4図(d),(f)は、本発明による第1,第2の
ベクトルデータ処理装置及び従来例の演算器並列方式ベ
クトルデータ処理装置の処理概念を示すタイミング図、
第5図(g)は従来例によるベクトルデータ処理装置の
処理概念を示すタイミング図、第5図(h)は本発明に
よる第1のベクトルデータ処理装置のマクロチェイニン
グモード処理概念を示すタイミング図、第5図(i)は
オールベクトルオペランドのマクロ命令処理が不可能な
従来例によるベクトルデータ処理装置の処理概念を示す
タイミング図、第6図は演算リソースネックになりやす
い従来のベクトルデータ処理装置を示すブロック図、第
7図はオールベクトルオペランドのマクロ命令処理が不
可能な従来のベクトルデータ処理装置を示すブロック
図、第8図は従来の演算器並列方式ベクトルデータ処理
装置を示すブロック図、第9図は本発明のベクトルデー
タ処理装置の第2の実施例のブロック図、第10図は第9
図のベクトルデータ処理装置のオペランド遅延回路を示
すブロック図、第11図は本発明による第2のベクトルデ
ータ処理装置の処理概念の一例を示すタイミング図であ
る。 1,4……パイプライン加算器、2,5……パイプライン乗算
器、3……0番複合演算器(PDI演算器0)、6……1
番複合演算器(PDI演算器1)、7〜10……セレクタ、1
1,12……フィードバックパス、13,14……出力回路、15
……第1オペランドパス、16……第2オペランドパス、
17……第3オペランドパス、18,19……リザルトパス、2
0〜23……セレクタ、24,25……フィードバックパス、2
6,27……出力回路、28……第4オペランドパス、29……
第5オペランドパス、30……第6オペランドパス、31,3
2……リザルトパス、33a〜33h,33……ベクトルレジス
タ、34a〜34c……スカラデータバッファ、35……DIST、
36……SEL、37……命令制御部、38……命令バッファ、3
9〜42……命令キュー、43,44……制御パス、501……遅
延回路。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭64−67678(JP,A) 特開 昭61−62174(JP,A) 特開 昭56−88561(JP,A) FUJITSU Vol.41 No. 1 P.3−11 IEEE Int Conf Aco ust Speech Signal Process Vol.1983 No. 1 P.447−450

Claims (11)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のベクトル要素よりなるベクトルデー
    タを複数組保持するベクトルデータバッファを有し、概
    ベクトルデータバッファに保持されたベクトルデータに
    ついてベクトル演算を行うベクトルデータ処理装置にお
    いて、 2つの複合演算器と、 前記2つの複合演算器の各々に対して、それぞれ3つづ
    つ設けられた、各々対応する複合演算器の1入力を与え
    る計6つのオペランドパスとを備え、 前記各複合演算器は、それぞれ、 加算器と、 乗算器と、 前記加算器の出力を当該複合演算器の1入力として与え
    る第1のフィードバックパスと、 前記乗算器の出力を当該複合演算器の1入力として与え
    る第2のフィードバックパスと、 当該複合演算器の加算器の各入力と乗算器の各入力の選
    択として、i、当該複合演算器に対して設けられた3つ
    のオペランドパスのうちの2つのオペランドパスによっ
    て与えられた2入力を加算器の2入力とする第1の選択
    と、ii、当該複合演算器に対して設けられた3つのオペ
    ランドパスのうちの2つのオペランドパスによって与え
    られた2入力を乗算器の2入力とする第2の選択と、ii
    i、当該複合演算器に対して設けられた3つのオペラン
    ドパスによって与えられた3入力を加算器の2入力と乗
    算器の1入力とし、第1のフィードバックパスによって
    与えられた1入力を乗算器の残る1入力とする第3の選
    択と、iv、当該複合演算器に対して設けられた3つのオ
    ペランドパスによって与えられた3入力を乗算器の2入
    力と加算器の1入力とし、第2のフィードバックパスに
    よって与えられた1入力を加算器の残る1入力とする第
    4の選択、との4つの選択を少なくとも行う選択手段
    と、 を有することを特徴とするベクトルデータ処理装置。
  2. 【請求項2】連続する二つの同一種の演算命令につい
    て、当該演算命令の種類の如何を問わず、先行する演算
    命令をビジーでない方の複合演算器に割り付け、後続の
    演算命令を他方の複合演算器に割り付ける演算命令スケ
    ジューリング手段を更に具備することを特徴とする請求
    項1記載のベクトルデータ処理装置。
  3. 【請求項3】前記演算命令スケジューリング手段は、先
    行する加算(または乗算)命令の結果を格納するレジス
    タを後続の乗算(または加算)命令が当該オペランドレ
    ジスタとして指定している場合、両命令を同一の複合演
    算器に割り付けることを特徴とする請求項2記載のベク
    トルデータ処理装置。
  4. 【請求項4】前記各複合演算器の選択手段は、先行する
    加算(または乗算)命令の結果を格納するレジスタを後
    続の乗算(または加算)命令が当該オペランドレジスタ
    として指定している場合に前記第3(または第4)の選
    択を行い、先行する第1の演算命令の演算は加算器(ま
    たは乗算器)で演算処理し、後続の演算命令の演算は乗
    算器(または加算器)で演算処理することを特徴とする
    請求項1記載のベクトル処理装置。
  5. 【請求項5】前記各複合演算器は、演算命令が、先行加
    算(または乗算)結果を後続乗算(または加算)のオペ
    ランドデータとして用いるマクロ演算命令である場合に
    前記第3(または第4)の選択を行い、先行する演算は
    加算器(または乗算器)で演算処理し、後続の演算は乗
    算器(または加算器)で演算処理することを特徴とする
    請求項1記載のベクトル処理装置。
  6. 【請求項6】先行する演算処理の結果が前記第1(また
    は第2)のフィードバックパスを介して後続の演算処理
    を行う演算器に入力されるタイミングで、オペランドパ
    スからのオペランドが後続の演算処理を行う演算器に到
    達するよう当該オペランド自体またはその読み出し指示
    を遅延させる手段を具備したことを特徴とする請求項4
    または5記載のベクトルデータ処理装置。
  7. 【請求項7】前記各複合演算器は、当概加算器および乗
    算器の各々について両演算結果を別個独立に外部に出力
    する演算結果パスを有することを特徴とする請求項1記
    載のベクトルデータ処理装置。
  8. 【請求項8】前記各複合演算器は、当該加算器および乗
    算器の各々について両演算結果の一方を選択的に外部に
    出力する演算結果パスを有することを特徴とする請求項
    1記載のベクトルデータ処理装置。
  9. 【請求項9】1オペレーションサイクル中に複数のベク
    トル要素を並列に処理する要素並列方式のベクトルデー
    タ処理装置において、少なくとも1要素並列につき請求
    項1記載の装置を採用したことを特徴とするベクトルデ
    ータ処理装置。
  10. 【請求項10】少なくとも前記ベクトルデータバッファ
    および前記第2つの複合演算器を1チップのマイクロプ
    ロセッサ中に構成したことを特徴とする請求項1記載の
    ベクトルデータ処理装置。
  11. 【請求項11】複数のベクトル要素よりなるベクトルデ
    ータを複数組み保持するベクトルデータバッファと、 複数のスカラデータを保持するスカラデータバッファ
    と、 各々加算器と乗算器とを備えた、2つの複合演算器と、 前記2つの複合演算器の各々に対して、それぞれ3つづ
    つ設けられた、各々対応する複合演算器にベクトルデー
    タもしくはスカラデータのオペランドを与える計6つの
    オペランドパスと、 前記ベクトルデータバッファおよびスカラデータバッフ
    ァの個々の読み出しパスをプログラム命令に応答して各
    オペランドパスに接続する手段と、 プログラム命令に応答して、前記各複合演算器の各加算
    器と各乗算器の各出力を、各々独立に、ベクトルデータ
    バッファまたはスカラデータバッファに接続し書き込む
    手段と、 を備え、 前記各複合演算器は、それぞれ、 当該複合演算器の前記加算器の出力を当該複合演算器の
    1オペランドとして与える第1のフィードバックパス
    と、 当該複合演算器の前記乗算器の出力を当該複合演算器の
    1オペランドとして与える第2のフィードバックパス
    と、 当該複合演算器の加算器の各オペランドと乗算器の各オ
    ペランドの選択として、i、当該複合演算器に対して設
    けられた3つのオペランドパスのうちの2つのオペラン
    ドパスによって与えられた2オペランドを加算器の2オ
    ペランドとする第1の選択と、ii、当該複合演算器に対
    して設けられた3つのオペランドパスのうちの2つのオ
    ペランドパスによって与えられた2オペランドを乗算器
    の2オペランドとする第2の選択と、iii、当該複合演
    算器に対して設けられた3つのオペランドパスによって
    与えられた3オペランドを加算器の2オペランドと乗算
    器の1オペランドとし、第1のフィードバックパスによ
    って与えられた1オペランドを乗算器の残る1オペラン
    ドとする第3の選択と、iv、当該複合演算器に対して設
    けられた3つのオペランドパスによって与えられた3オ
    ペランドを乗算器の2オペランドと加算器の1オペラン
    ドとし、第2のフィードバックパスによって与えられた
    1オペランドを加算器の残る1オペランドとする第4の
    選択、との少なくとも4つの選択をプログラム命令に応
    答して行う選択手段とを有することを特徴とするベクト
    ルデータ処理装置。
JP2190335A 1990-07-18 1990-07-18 ベクトルデ―タ処理装置 Expired - Lifetime JP2580371B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2190335A JP2580371B2 (ja) 1990-07-18 1990-07-18 ベクトルデ―タ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2190335A JP2580371B2 (ja) 1990-07-18 1990-07-18 ベクトルデ―タ処理装置

Publications (2)

Publication Number Publication Date
JPH0476772A JPH0476772A (ja) 1992-03-11
JP2580371B2 true JP2580371B2 (ja) 1997-02-12

Family

ID=16256482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2190335A Expired - Lifetime JP2580371B2 (ja) 1990-07-18 1990-07-18 ベクトルデ―タ処理装置

Country Status (1)

Country Link
JP (1) JP2580371B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3068406B2 (ja) * 1994-06-14 2000-07-24 甲府日本電気株式会社 ベクトル演算装置
US20150277904A1 (en) * 2014-03-28 2015-10-01 Roger Espasa Method and apparatus for performing a plurality of multiplication operations
GB2553783B (en) 2016-09-13 2020-11-04 Advanced Risc Mach Ltd Vector multiply-add instruction
CN108108189B (zh) * 2017-12-15 2020-10-30 安徽寒武纪信息科技有限公司 一种计算方法及相关产品
JP7296574B2 (ja) * 2019-03-04 2023-06-23 パナソニックIpマネジメント株式会社 プロセッサ及びプロセッサの制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5688561A (en) * 1979-12-21 1981-07-18 Fujitsu Ltd Vector arithmetic processor
JPS6162174A (ja) * 1984-09-03 1986-03-31 Nec Corp 情報婦理装置
JPS6467678A (en) * 1987-09-09 1989-03-14 Fujitsu Ltd Vector processor

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FUJITSU Vol.41 No.1 P.3−11
IEEE Int Conf Acoust Speech Signal Process Vol.1983 No.1 P.447−450

Also Published As

Publication number Publication date
JPH0476772A (ja) 1992-03-11

Similar Documents

Publication Publication Date Title
US10915297B1 (en) Hardware accelerator for systolic matrix multiplication
US6230180B1 (en) Digital signal processor configuration including multiplying units coupled to plural accumlators for enhanced parallel mac processing
US7171535B2 (en) Serial operation pipeline, arithmetic device, arithmetic-logic circuit and operation method using the serial operation pipeline
US6301653B1 (en) Processor containing data path units with forwarding paths between two data path units and a unique configuration or register blocks
US5825677A (en) Numerically intensive computer accelerator
US20100121899A1 (en) Methods and apparatus for efficient complex long multiplication and covariance matrix implementation
JP3595171B2 (ja) マイクロプロセッサ
JP3829166B2 (ja) 極長命令語(vliw)プロセッサ
CN111381939B (zh) 多线程处理器中的寄存器文件
CN109144469B (zh) 流水线结构神经网络矩阵运算架构及方法
US8892620B2 (en) Computer for Amdahl-compliant algorithms like matrix inversion
US7013321B2 (en) Methods and apparatus for performing parallel integer multiply accumulate operations
JP2580371B2 (ja) ベクトルデ―タ処理装置
US11907681B2 (en) Semiconductor device and method of controlling the semiconductor device
CN112074810B (zh) 并行处理设备
KR100722428B1 (ko) 리소스 공유 및 파이프 라이닝 구성을 갖는 재구성가능배열구조
EP1035479A2 (en) System for processing vector data
JP2004503872A (ja) 共同利用コンピュータシステム
CA2465008C (en) Context execution in a pipelined computer processor
JPS6069758A (ja) 多重ポ−トパイプライン構成プロセサ
JP2970512B2 (ja) ベクトルプロセッサ
JP7346235B2 (ja) 半導体装置
JPH05324694A (ja) 再構成可能並列プロセッサ
JP5786719B2 (ja) ベクトルプロセッサ
JP3894135B2 (ja) 情報処理装置