JPH046992B2 - - Google Patents

Info

Publication number
JPH046992B2
JPH046992B2 JP22634187A JP22634187A JPH046992B2 JP H046992 B2 JPH046992 B2 JP H046992B2 JP 22634187 A JP22634187 A JP 22634187A JP 22634187 A JP22634187 A JP 22634187A JP H046992 B2 JPH046992 B2 JP H046992B2
Authority
JP
Japan
Prior art keywords
register
vector
instruction
line
output
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
Application number
JP22634187A
Other languages
English (en)
Other versions
JPS63100573A (ja
Inventor
Shigeo Nagashima
Hitoshi Abe
Yasuhiko Hatakeyama
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 JP22634187A priority Critical patent/JPS63100573A/ja
Publication of JPS63100573A publication Critical patent/JPS63100573A/ja
Publication of JPH046992B2 publication Critical patent/JPH046992B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
[発明の利用分野] 本発明は、プログラム制御のデジタル計算機、
特にベクトル演算を高速で実行するのに好適なデ
イジタル計算機(以下これをベクトルプロセツサ
とよぶ)に関する。 [従来技術] 科学技術計算に頻繁に現れる大形行列計算など
の高速処理用にベクトルプロセツサが考案されて
いる。 特に、複数個のパイプライン演算器の高速性を
有効に発揮し、演算データの転送能力を向上させ
るため、ベクトル・レジスタとチエイニング機能
を有するベクトルプロセツサが提案されている
(米国特許4128880号)。 A 従来の装置ではチエイニングについて次の問
題点がある。このことをベクトル演算の簡単な
例を挙げて説明する。 FORTRAN文 DO 10 I=1,L 1OY(I)=A(I)+B(I)*C(I) この処理を、ベクトル命令の形に表現すると 1 Vector Load VR0←A 2 Vector Load VR1←B 3 Vector Load VR2←C 4 Vector Multiply VR3←VR1 *VR2 4 Vector Add VR4←VR0 +VR3 4 Vector Store VR4←Y ここでVRiはi番目のベクトルレジスタを表わ
す。各ベクトル命令は、演算、データ転送を、エ
レメントL個分、繰り返して実行する。 上例では、最終結果を求める前の中間結果であ
るベクトルBとCの乗算結果をベクトルレジスタ
VR3へ一時的に格納して、これとベクトルAと
の加算結果Yのみを主記憶にしている。一般的
に、ベクトルレジスタを備えるベクトルプロセツ
サでは、演算の中間結果のベクトルを一時的にベ
クトルVR1へ格納し、最終結果ベクトルのみを
主記憶装置へストアする。これにより、実質的に
主記憶装置との間のデータ転送回数が減少する。
したがつてベクトルレジスタの書込み読出し動作
を高速化すれば、これに比べ主記憶装置のアクセ
ス能力を比較的低くても、演算に必要なデータ転
送能力を十分確保することが可能である。 ところで、上例の第4と5のベクトル命令に着
目してみると、先行命令4の乗算結果を格納する
ベクトルレジスタVR3は、後続のベクトル加算
命令5のオペラントを読出すべきベクトルレジス
タにもなつている。もし、第4のベクトル乗算命
令により、L個の結果が全てベクトルレジスタ
VR3へ書込れるまで待つて、後続のベクトル加
算命令5を起動するように制御すれば、複数の演
算器(例えば乗算器と加算器)を並列に動作させ
たことにならず、処理時間は延びる。このよう
に、先行するベクトル命令の演算結果あるいはフ
エツチ・ベクトルデータを格納するベクトルレジ
スタを、後続のベクトル命令がオペランドとして
続出するために生じる待ち状態は、上例のベクト
ル命令の2または3と4の間、1と5の間、5と
6の間にも存在している。この待ちを減少するの
がチエイニング機能である。従来技術ではチエイ
ニング動作として、先行のベクトル命令で得られ
る演算結果をたとえば、ベクトルレジスタVR1
書込むと同時に、即時に後続のベクトル命令のオ
ペランドとして演算器へ転送している。チエイニ
ングが可能ならば、先行ベクトル命令の最終エレ
メント演算終了まで待ちことなく、先行ベクトル
命令の最初のエレメントの演算結果が出力される
とともに後続ベクトル命令を起動することができ
る。これにより、多項形のベクトル計算において
も、複数の演算器を並列に動作させ、演算の並列
性を高めて高速処理を行なうことができる。 しかし、従来技術でのチエイニングでは、先行
ベクトル命令の演算結果ベクトルあるいはフエツ
チ・ベクトルデータの最初の要素があるベクトル
レジスタへ書込まれる時刻に完全に同期して、後
続ベクトル命令のための当該ベクトルレジスタの
読出しを開始していた。そこで命令起動時に、そ
の命令のオペランドを読出すべきベクトルレジス
タが先行命令により書込みのために用いられるか
の判定をしてこの判定が肯定的のときには上述の
チエイニングの可否を判定する。チエイニングが
可能ならその命令が起動されるが、不可能ならば
その命令は、該先行命令による全エレメントの書
込みが終了して、そのベクトルレジスタが開放さ
れるまで起動を待たされる。チエイニング可能な
命令の起動は、先行ベクトル命令の演算結果ある
いはフエツチ・データの第1番目のエレメントが
そのベクトルレジスタへ到着する時点で行なわれ
る。これはチエイン・スロツト・タイムと呼ぶこ
とがある。したがつて、このチエイン・スロツ
ト・タイムの時刻で、以後全エレメントについ
て、先行命令の書込みが後続命令の読出しと完全
に同期できると予測できるときにのみ、チエイニ
ング可能と判定する。 このような従来のベクトルプロセツサでは、ベ
クトルデータの各要素は連続するクロツク信号に
応答して連続してベクトルレジスタから読み出さ
れ、それに対応する結果ベクトルデータの各要素
も連続するクロツク信号に応答してベクトルレジ
スタに書き込まれるようになつている。しかしな
がら、ベクトルプロセツサとしては、ベクトルレ
ジスタからベクトルデータの各要素を間欠的に、
不等間隔でも読み出すことが望ましい場合がある
ことが分かつた。 たとえば、先行する命令の実行結果ベクトルデ
ータの各要素が何等かの理由により毎クロツク得
られないで不連続に得られる場合、その結果ベク
トルデータの各要素がベクトルレジスタに間欠的
に到着する。このベクトルデータに対して後続の
命令のためのベクトル演算を実行する場合、先行
する命令の結果ベクトルデータの全要素がそのベ
クトルレジスタに書き込まれるのをまたないで、
書き込み済のものから読み出す方法をとること
は、その後続命令の実行開始を早める点で有効で
ある。 このような場合、上記後続命令のためのベクト
ル要素の読み出しは、間欠的に行なわれることに
なる。また、上記のような事情とは別に、演算器
が演算の種類あるいはその構造によつては毎クロ
ツクベクトル要素を受けとることができないこと
も起りうる。このような場合でも、ベクトルレジ
スタからその演算器へのベクトル要素の読み出し
は間欠的にならざるをえない。 しかし、従来のベクトルプロセツサでは、ベク
トルレジスタからのベクトル要素の間欠的な読み
出しはできなかつた。 とくに、間欠的に読み出したベクトル要素に対
して、演算器をどのように動作させるかあるい
は、演算器の有効出力が必然的に間欠的にしかえ
られないため有効出力のみをどのようにしてベク
トルレジスタに書き込むかという解決すべき問題
がある。 [発明の目的] 本発明の目的は、ベクトルレジスタから不等間
隔でオペランドベクトル要素を読み出して、演算
器へ供給し、その結果、演算器から不等間隔で得
られる結果ベクトル要素をベクトルレジスタに書
き込みうるデ−タ処理装置を提供することにあ
る。 〔発明の概要〕 このため本発明では、不等間隔で入力されうる
複数の信号の各々に応答して、第1のベクトルレ
ジスタからオペランドベクトル要素を読み出す手
段と、ベクトル要素の読み出しの有無に関係なく
演算手段を動作させた状態で、ある読み出された
ベクトル要素に対して、該演算手段から出力され
る結果ベクトル要素をその出力のタイミングに同
期して第2のベクトルレジスタに書き込む手段と
を設けた。 この結果、演算器を動作させたままで、不等間
隔の読み出しおよびそれに同期した結果の書き込
みを行いうる。 [発明の実施例] 以下、本発明を実施例を参照にして詳細に説明
する。 概略装置構成 第1図において主記憶制御ユニツトU1は命令
読出しユニツトU2、メモリ・リクエスタU1
0,U11からのメモリ要求(ベクトルデータの
読出しまたは格納およびベクトル命令の読出し)
に応じて所定の動作を行なう。 命令読出しユニツトU2は、主記憶制御ユニツ
トU1に対し、信号線1で命令読出し要求を、
信号線2で命令アドレスを送出する。主記憶制
御ユニツトU1はこれに応答して、この命令アド
レスで指定される複数の命令を読出し、読出した
命令を信号3にそれが有効であることを示す信
号を信号線4に乗せて返す。 命令読出しユニツトU2は、読出された命令を
命令バツフア(図示せず)に入れ、これらの命令
を一つづつ命令制御ユニツトU3に送る、信号線
6には命令が、信号線5には命令有効信号が
のせられる。命令読出しユニツトU2は、命令制
御ユニツトU3から信号線7によつて、命令送
出の停止が要求されない限り、次々と命令を読出
しては、命令制御ユニツトU3に送りこむ。 命令制御ユニツトU3は、命令を解読し、命令
に応じて、メモリ・リクエスタU10,U11、
ベクトルレジスタユニツトU4、演算器U20、
U21に起動信号他を送出する。 概略動作 () 命令実行起動 命令制御ユニツトU3が命令実行を起動すると
きには、信号線11〜14に必要なデータを
セツトし、起動信号線10にセツトし、メモ
リ・リクエスタU10,U11とベクトルレジス
タユニツトU4、または、演算器U20,U21
とベクトルレジスタユニツトU4に起動をかけ
る。 ここで、命令起動の条件は、必要なメモリ・リ
クエスタU10又はU11または演算器U20又
はU212が現在使用中でなく、かつベクトルレ
ジスタユニツトU4内にあるベクトルレジスタ
VRの内、命令に必要なレジスタが使用できる状
態にあるということである。 ここで、あるベクトルレジスタが使用可能か否
かは、後述するようにそのベクトルレジスタが現
在使用中か否かとは異なる。使用中でなくても、
使用できないベクトルレジスタもあり、使用中に
もかかわらず使用可能なものもある。 起動条件が満たされていない命令は、起動待ち
命令列に登録し、その後、起動条件を満す命令が
解読されたとき、この解読された命令を先に起動
する。 信号線11は、実行すべき命令の演算の種
類、たとえば、加算、乗算、ベクトル読出し、ベ
クトル書込み等を指定する命令コードを送出す
る。 信号線12は、命令が使用するレジスタF号
を指定する。ここでは、各命令はレジスタを最大
3つ指定可能とする。本実施例では、ベクトルレ
ジスタユニツトU4に8つのベクトルレジスタ
VR0〜VR7が設けられ、同数のベクトルアドレス
レジスタU5、ベクトルアドレス増分レジスタU
6がメモリ・リクエスタ0,1に接続されてい
る。これらのベクトルレジスタ、ベクトルアドレ
スレジスタ、ベクトルアドレス増分レジスタには
それぞれ番号0〜7,8〜15,16〜23があ
らかじめ割りあてられている。 信号線13は、起動するメモリ・リクエスタ
または演算器の番号を指定する。ここでは信号線
13は3本で、1本はメモリ・リクエスタを指
定、1本は演算器を指定、もう1本は命令が使用
するメモリ・リクエスタ又は演算器のいずいれか
の番号を指定する。メモリ・リクエスタ又は演算
器の数はそれぞれ二つなので、これらの番号を指
定する線は一本でよい。 色信号14は処理すべきベクトル要素数を指
定する。 メモリ・リクエスタU10,U11、ベクトル
レジスタユニツトU4、演算器U20,U21は
線10上の起動信号に応答して次の動作を行
う。 () 主記憶からのベクトルデータの読出し このための命令の実行が線11上の命令コー
ドにより指定されると、たとえばメモリ・リクエ
スタU10は、信号電12で指定される第2、
第3のレジスタ番号に従つて、ベクトルアドレス
レジスタU5およびベクトルアドレス増分レジス
タU6の各々の一つを選択してベクトルアドレス
およびその増分を内部にセツトする。メモリ・リ
クエスタU10は読出しコマンドと、ベクトルア
ドレスとアドレス有効信号とをそれぞれ信号線
20、21、23を介して主記憶制御ユニツ
トU1に送る。主記憶制御ユニツトU1はこのベ
クトルアドレスで指定されるベクトル要素データ
を主記憶(ここでは示されていない)から読出し
で、そのデータFDと、データ有効信号とをそれ
ぞれ信号線24,25を介してメモリ・リク
エスタU10に戻す。メモリ・リクエスタU10
は、このデータとデータ有効信号をそれぞれ信号
線29,30にのせて、ベクトルレジスタユ
ニツトU4に送出する。ベクトルレジスタユニツ
トU4では、信号線12により指定された第1
のレジスタ番号のベクトルレジスタに線29か
ら入力されたベクトル要素データを格納する。メ
モリ・リクエスタU10はセツトしたベクトルア
ドレス増分値に基づきベクトルアドレスを更新
し、更新後のアドレスに基づき、次のベクトル要
素データを同様に読出す。この動作は信号線1
4で指定されたベクトル要素数だけ繰返される。
メモリ・リクエスタU10は最終ベクトル要素ア
ドレスを主記憶制御ユニツトU1に送出するとき
に、線32に最終ベクトルデータ信号を送出す
る。主記憶制御ユニツトU1は最終ベクトル要素
を出力するときに線33にこの信号を送出す
る。メモリ・リクエスタU10は、最終のベクト
ル要素のデータ有効信号の送出と同時に、信号線
26に最終ベクトルデータ信号をのせる。この
信号は、命令制御ユニツトU3に送られて、この
メモリ・リクエスタU10が空いたことを知らせ
るとともに、ベクトルレジスタユニツトU4にも
送られ、ベクトルレジスタ書込みの終了制御にも
使用される。ベクトルレジスタの書込み終了は、
信号線15を経て、ベクトルレジスタユニツト
U4から命令制御ユニツトU3にも知られる。 () 主記憶へのベクトルデータの格納 主記憶へのベクトルデータの格納の命令が実行
される場合も、ベクトルアドレス、その増分は
()と同様にメモリ・リクエスタU10にセツ
トされる。 格納の場合には、ベクトルレジスタユニツトU
4にて信号線12で指示される番号のベクトル
レジスタから次々とベクトルデータがよみ出さ
れ、信号線27に乗せられるとともに、データ
有効信号が線28に乗せられて、たとえばメモ
リ・リクエスタU10に送られる。メモリ・リク
エスタU10はこれらにさらにベクトルアドレス
を付し、書込みコマンド、ベクトルアドレス、ベ
クトル要素データ、データ有効信号をそれぞれ信
号線20,21,22,23にのせて主
記憶制御ユニツトU1に送る。送るべきベクトル
データ要素が最終要素のときにはさらに、線3
2に最終ベクトルデータ信号を送出する。主記憶
制御ユニツトU1はさらに主記憶への格納を制御
する。必要な数のベクトル要素の送出がベクトル
レジスタユニツトU4から行なわれると、最終ベ
クトルデータ信号が信号線31を経てメモリ・
リクエスタU10に送られ、メモリ・リクエスタ
U10は、()の場合と同様、信号線26に
それをのせて、命令制御ユニツトU3に知らせ
る。 () ベクトル演算 ベクトル演算命令実行のために演算U20また
はU21(ここではU20とする)とベクトルレ
ジスタユニツトU4に起動がかかつたときには、
これらは次のように動作する。なお、ここでは各
演算器は種々の命令が必要とする複数種類の演算
を実行可能とする。 ベクトルレジスタユニツトU4は、信号12
で指定される一般には二つのレジスタ番号のベク
トルレジスタから最初の要素データを読出し、そ
れぞれのデータ信号線41,42にのせ、デ
ータ有効信号を信号線43にのせて、演算器U
20に送る。演算器U20では2組のベクトル要
素データを線11上のOPコードに従い演算後、
その結果と、データ有効信号をそれぞれ信号線
45,46に乗せて、ベクトルレジスタユニツ
トU4に送り返す。ベクトルレジスタユニツトU
4では、信号線12で指定される信号のベクト
ルレジスタに結果を格納する。これらの処理が順
次、つぎの要素データについて行なわれる。最後
のベクトル要素になると、最終ベクトルデータ信
号が、信号線40を介してベクトルレジスタユ
ニツトU4から演算器U20に送られ、演算器U
20からの最終結果に同期して、信号線44に
より、再びベクトルレジスタユニツトU4に戻さ
れる。この信号は、同時に、命令正義ユニツトU
3にも知らされ、演算器の空きおよびベクトルレ
ジスタの空きを知らせる。 以上において、ベクトル要素データの転送はマ
シンクロツクに応答してなされるが、ベクトルレ
ジスタユニツトU4は、転送すべき一対のベクト
ル要素データが二つのベクトルレジスタにそろつ
ていないとき、これがそろうまで転送を禁止す
る。したがつて、ベクトル要素の読出しあるいは
格納が間欠的に行なわれる。 なお、メモリ・リクエスタU11、演算器U2
1の構成はそれぞれメモリ・リクエスタU10、
演算器u20と全く同一であり、第1図でプライ
ム(′)の付けた信号線はこれのないものに応答
する。 レジスタ 詳細な動作説明に先立ち、以下において必要な
レジスタの形成を以下に述べる。第2図aは命令
がセツトされる命令レジスタ(レジスタ)の構
成を示す。ここで、OPフイールド命令コードを、
R1,R2,R3フイールドはレジスタ番号を示す。
勿論、命令自身この図に示すフイールドを有す
る。R1〜R3フイールドによつて示されるレジス
タはベクトルレジスタ、ベクトル・アドレスレジ
スタ、ベクトルアドレス増分レジスタであり、い
ずれのレジスタが指定されるかは命令の種類によ
り次のようになる。 () 演算器にて演算を行う命令(加算、乗算
命令等) R1:演算結果ベクトルを格納すべきベクトル
レジスタ番号 R2:演算されるベクトルデータ(被加数、被
乗数等)が格納されているベクトルレジスタ
番号 R3:演算すべきベクトルデータ(加数、乗数
等)が格納されているベクトルレジスタ番号 ここでは、R1,R2,R3フイールドではす
べて異なるベクトルレジスタを指定すること
とする。 なお、命令によつて、R3フイールドが使
用されない場合がある。(転送命令等)。 () 主記憶からデータを読出す命令 R1:データを格納すべきベクトルレジスタ番
号 R2:ベクトルアドレスレジスタ番号 R3:ベクトルアドレス増分レジスタ番号 () 主記憶にデータをストアする命令 R1:データが格納されているベクトルレジス
タ番号 R2:ベクトルアドレスレジスタ番号 R3:ベクトルアドレス増分レジスタ番号 第2図bは演算器U20,U21、メモリリク
エスタU10,U11(以下、これをまとめてリ
ソースとよぶことがある)の制御にかかわるレジ
スタ、すなわちデコードリソースレジスタ(DS
レジスタ)、キユーリソースレジスタ(QSレジス
タ)、実行可能リソースレジスタ(ESレジスタ)、
レジスタユニツトリソースレジスタ(RSレジス
タ)の形式を示す。ここで、S,A,Nフイール
ドはそれぞれメモリ・リクエスタの使用、演算器
の使用、メモリ・リクエスタまたは演算器の番号
をそれぞれ指定する。なお、DSレジスタ、QSレ
ジスタにはNフイールドはない。 第2図Cはベクトルレジスタの制御にかかわる
レジスタ、すなわち、デコードレジスタレジスタ
(DGレジスタ)キユーレジスタレジスタ(QSレ
ジスタ)〜メモリリクエスタレジスタレジスタ
(MBレジスタ)、レジスタユニツトレジスタレジ
スタ(RGレジスタ)の形式を示す。ここでVi
(i=1〜3)フイールドはWi,GNiフイールド
に有効データがあるかどうかを指定するフイール
ド、Wiは、次のGNiのフイールドで指定された
ベクトルレジスタが書込みに使用されるか、読出
しに使用されるかを指定するフイールドで書込
み、読出しのときにそれぞれ“1”又は“0”と
なり、GNiフイールドには命令のRiフイールド
そのものがセツトされる。なお、MGレジスタは
GN2,GN3フイールドのみを持つ。 第2図dはリソースの状態を制御するリソース
状態語レジスタ(RSSWレジスタ)の形式を示
す。ここで、S0,S1フイールドはそれぞれメモ
リ・リクエスタU10,U11が使用中かどうか
を示し、A0,A1フイールドはそれぞれ演算器U
20,U21が使用中かどうかを示す(使用中の
とき“1”とする)。 第2図eはベクトルレジスタの状態を制御する
レジスタ状態語レジスタ(RGSWレジスタ)の
形式を示す。ここでW0〜W7フイールドはそれぞ
れベクトルレジスタVR0〜VR7が書込みのた
めに使用中かどうかを示し、R0〜R7フイールド
はそれぞれベクトルレジスタVR0〜VR7が読
出しのために使用中かどうかを示す(使用中のと
き“1”とする)。 命令制御ユニツトの詳細 以下に、第1図に述べた各ユニツトの詳細を説
明する。なお、主記憶制御ユニツト(第1図のU
1)、命令読出しユニツト(第2図のU2)は、
二つのメモリ・リクエスタU10,U11からの
アクセス要求に応答し、かつ、これらのリクエス
タから同時にアクセス要求がなされたときには、
その一方を優先して主記憶をアクセスするもので
あり、従来、実現されているものと同等なので、
ここでは説明しない。また、フリツプフロツプレ
ジスタへのタイミング入力は省略する。制御信号
の入つていない、フリツプフロツプ、レジスタは
常にあらかじめ定められたタイミングによつて入
力がセツトされるとする。 第3図を参照するに、命令読出しユニツトU2
にて読出されたベクトル命令と、その命令に対す
る有効信号がそれぞれ線6,5を介して送ら
れて来、命令レジスタ(Iレジスタ)r301に
命令がセツトされ、命令有効信号がフリツプフロ
ツプf301にセツトされる。命令有効信号はレ
ジスタIR,r301へのセツト信号としても使
用される、命令制御ユニツトU3が線7にて、
命令送出停止要求を送出しない限り、命令読出し
ユニツトU2から次々と命令が送られてくる。こ
の間隔は、Iレジスタr301の命令が、デコー
ド命令レジスタ(DIレジスタ)r302に移さ
れるとすく、次の命令が入力されるように制御さ
れる。Iレジスタr301にセツトされた命令
は、4つのルートに分けて転送される。DIレジ
スタr302にはOPフイールドが転送される。
このときフリツプフロツプf301の出力が、
DIレジスタr302のセツトを制御するととも
に、フリツプフロツプf302へもアンドゲート
g307を経て転送される。ここでアンドゲート
g307には、フリツプフロツプf301の出力
のほかに指定例外検出回路b316の出力が入力
されており、この回路b316はIレジスタr3
01にセツトされているベクトル命令のR1〜R3
フイールドをチエツクし、レジスタ指定例外がな
い場合にのみ、“1”を出力する。この結果フリ
ツプフロツプf302に命令有効信号がセツトさ
れる。レジスタIR,r301内の命令はまた、
デコーダb301へ送られ、そのOPフイールド
により、使用するリソースが判定されて、その結
果がデコードルソースレジスタ(DSレジスタ)
r303にセツトされる。DSレジスタr303
は第2図bに示すごとくS,Aフイールドを有
す。但しNフイールドではない。デコーダb30
1はこのOPフイールドがメモリ・リクエスタU
10又はU11を使用するもののときは、Sフイ
ールドに1を入力し、又この命令が演算器U20
又はU21を使用するもののときはAフイールド
に1を入力する。DSレジスタr303のこれら
のデータのセツトにも、アンドゲートg307の
出力が使用される。Iレジスタr301の命令は
さらにデコーダb303へも送られ、そのOPコ
ード、R1,R2,R3フイールドの内容がデコーダ
されて、その結果がデコードレジスタレジスタ
(DGレジスタ)r305にセツトされる。DGレ
ジスタr305は第2図cに示すようにIレジス
タr301にセツトされている命令が指用するベ
クトルレジスタの番号を示すフイールドGNi(I
=1〜3)、そのレジスタの用途が続出し用か、
書込み用かを示すフイールドWi(i=1〜3)お
よびこれらのフイールドが有効が否かを示すフイ
ールドVi(i=1〜3)を有し、デコーダb30
3はIレジスタr301の命令を解読してこれら
のフイールドの情報を出力する。すなわち、命令
のOPコードにより、命令のR1〜R3のフイールド
がレジスタ指定として有効か否かがあらかじめ定
められているので、デコーダb303はOPコー
ドによりViを定める。また、有効と判定された
レジスタフイールドRiが書き込み用か否かもOP
コードによりあらかじめ定められているもので、
デコーダb303はOPコードをみて、ピツトWi
を定めることができる。デコーダb303はフイ
ールドRiの内容をGNiフイールドに入力する。
こうして、DSレジスタr303への入力が定ま
る。DGレジスタr305へのセツト制御にも、
アンドゲードg307の出力が使用される。 以上の説明から明らかなとおり、DSレジスタ
r303とDGレジスタr305にセツトされた
デコード結果はDIレジスタr302にセツトさ
れた命令コードとともに同一の命令に対するもの
であり、以下では、これらのレジスタにセツトさ
れたデータの各々を命令と呼びあるいはこれらを
まとめてDIレジスタr302内の命令と呼ぶこ
とがある。DIレジスタr302;DSレジスタr
303;DGレジスタr305に命令がセツトさ
れると、次のリソースの起動の可否がチエツクさ
れる。 命令キユーレジスタ(QIレジスタ)q301
は、実行待ちの命令のOPコードをDIレジスタr
302から受けとりストアするための三つのレジ
スタQIR0〜QER2からなる。同様にキユーリ
ソースレジスタ(QSレジスタ)q302はこれ
ら3つのレジスタQIR0〜2内のOPコードに対
するリソース使用要求をDSレジスタr303か
ら受けとり、ストアする三つのレジスタQSR0
〜2からとなり、キユレジスタレジスタ(QGレ
ジスタ)q303は、レジスタQIR0〜2内の
OPコードに対するベクトルレジスタ使用要求を
DGレジスタR,r305から受けとり、ストア
する三つのレジスタQGR0〜3からなる。結局、
レジスタq301〜q302により三つの実行待
ちの命令がストアされることになる。以下では簡
単化のためにこれらの三つのキユーレジスタまと
めて命令キユーレジスタあるいは命令キユーレジ
スタq301と呼ぶことがある。 DIレジスタr302に上述のごとく、新たに
セツトされた命令に対するリソースの起動可否は
これらの命令キユーレジスタ内にすでに命令がス
トアされているか否か等に依存して異なる基準に
て判断される。 すなわち、次の場合がある。 (a) 命令キユーレジスタに命令が入つていない場
合 (a−1) DIレジスタr302内の命令に
対してすぐに起動がかけられる場合。 (a−2) DIレジスタr302内の命令に
対してすぐに起動がかけられず、命令キユー
レジスタに命令を入れなければならない場
合。 (b) 命令キユーレジスタに命令が入つている場
合。 (b−1) 命令キユーレジスタ内の命令を起
動する場合。 (b−2) 命令キユーレジスタに命令がある
にもかかわらず、DIレジスタr302にあ
る命令を起動する場合。 各々の場合の装置動作を以下に述べる。 (a−1) 命令キユーレジスタq301中に
命令がなくDIレジスタr302内の命令を
起動する場合。 これは、DIレジスタr302内の命令が
必要とするリソース(演算器またはメモリ・
リクエスタ)およびベクトルレジスタがとも
に使用可能であるときに生じる。 本実施例では各リソースは、ある時期には一つ
の命令によつてのみ使用可能に構成されており、
したがつて、リソースが使用可能か否かはリソー
スが使用中でないかあるいは使用知かによりきま
る。 リソースの空きの状況の判断は、次のように行
なう。概略的には、DSレジスタr303にて指
定される要求リソースと、RSSWレジスタr30
4にて管理しているリソースの場態をリソース使
用チエツク回路b305がチエツクし、要求リソ
ースが空いているかどうかを線310に、空い
ているリソース番号を309に出力する。詳細
を第5図をん参照して説明する。 DSレジスタr303中のSフイールドr30
31の出力は、アンドゲートg320,g321
に入力され、これらのアンドゲートg320,g
321にはそれぞれ、さらにRSSWレジスタr3
04中のS0フイールドr3041,S1フイー
ルドr3042の出力がそれぞれ反転ゲートg3
35,g336を介して入力されている。したが
つて、アンドゲートg320,g321の出力そ
れぞれメモリ・リクエスタ0と1の使用が要求さ
れ、かつメモリ・リクエスタ0と1がそれぞれ空
きのときに“1”となる。アンドゲートg32
0,g321の出力はオアゲートg328に入力
される。したがつて、オアゲートg332の出力
は、使用要求されたメモリ・リクエスタ0又は1
が空いているとき“1”となる。また、アンドゲ
ートg320,g321の出力はエンコーダb3
20にも入力され、使用可能なメモリ・リクエス
タ番号が出力される。つまり,アンドゲートg3
20の出力が“1”のときにはアンドゲートg3
21の出力によらず、エンコーダb320の出力
は“0”(メモリ・リクエスタU0の空きを示
す)。アンドゲートg320の出力が“0”、アン
ドゲートg321の出力が“1”のときにはエン
コーダb320の出力は“1”(メモリ・リクエ
スタ1ノ空きを示す)になる(本実施例では、メ
モリ・リクエスタは2つしかないので、エンコー
ダ出力線は1本である)。アンドゲートg329,
g321の出力がともに0のときにはエンコーダ
b321の出力いずれの値でもよい。同様に、演
算器の空きの状態についてもDSレジスタr30
3のAフイールドr3032の出力と、RSSWレ
ジスタr304のA0,A1フイールドr304
3,r3044の出力とから反転ゲートg33
7,g338,アンドゲートg322,g32
3、オアゲートg329、エアコーダb321に
よつてチエツクされ、命令で演算器の使用要求が
なされ、使用要求が出された演算器0又は1があ
いていれば、オアゲートg329の出力が“1”
に演算器番号がエンコーダb321から出力され
る。アオゲートg328,g329の出力の出力
は、オアゲートg332に入力され、この出力線
310は要互されたリソースが空いていること
を指示する。一方、エンコーダb320,b32
1の出力はセレクタS310にていずれかが選択
されて線3093にのせられ、オアゲートg3
28,g309の出力線3091,3092
とあわせて線309として出力される。ここで
は、オアゲートg329の出力によりセレクタS
310を制御することにより、演算器の使用要求
がなされ、かつこれが空きのときには、演算器番
号がそれ以外のときにはメモリ・リクエスタ番号
が選択されたとした。なお、線309の内容は
セレクタS302で選択され、線320に出力
される。線320はメモリ・リクエスタの空きを
示す信号線3201、演算器の空きを示す信号線
3202、メモリ・リクエスタ又は演算器の番号
を示す信号線3203からなり、それぞれに線
3091〜3093の信号がレクタS302に
より選択的に出力される。セレクタS302は線
309と311を入力線321が“0”か
“1”から応じて選択するもので、今の場合は後
述べするように入力線321は“0”である。
こうして線320に要求リソースの内、空いて
いるリソース番号が出力される。線320は、
デコーダb302にも入力されRSSWレジスタr
304の各ビツトのセツトに使用される。ここ
で、デコーダb302は、メモリ・リクエスタ番
号のデコーダb3022と、演算器番号のデコー
ダb3021とから成り、それぞれ、デコーダ有
効端子Eを有していて、Eが“1”のときのみデ
コード入力信号要デコードする。デコーダb32
01のデコード有効端子Eには線320のう
ち、演算器の空きを示す線3202がデコード
される入力信号端子には番号を示す線3203
が接続されている。同様に、デコーダb3022
のデコード有効端子Eには、線320のうち、
メモリ・リクエスタの空きを示す線3201
が、デコードされる信号としては、番号を示す線
3203が接続されている。デコーダb302
1,B3022の出力は対応したRSSWレジスタ
r304を構成する4つのフイールドr3041
〜r3044(これらはいずれもフリツプフロツ
プからなる)のセツト端子Sに接続され、線3
201,3203から入力される空きのリソー
ス番号に対応した、S0,S1,A0,A1の各フイー
ルドのいずれかがセツトされる。こうして、回路
b305によりリソース使用チエツクがなされる
とともに、チエツク結果に応じて、RSSWレジス
タr304が更新される。 次に、第3図に戻つてDIレジスタr302中
にある命令が使用するベクトルレジスタ使用に関
するチエツクについて述べる。第1のチエツク
は、DGレジスタr305中に示される使用要求
ベクトルレジスタ番号、使用形態(読出し/書込
み)と、RGSWレジスタr306中にあるベク
トルレジスタ使用状況により、レジスタ使用チエ
ツク回路b307がDIレジスタr302内の命
令が要求するベクトルレジスタが現在使用可能か
否かをチエツクすることである。今の場合、命令
キユーレジスタq301内に命令がないと仮定し
ている。しかし一般的に命令キユーレジスタq3
01にリソース空き待ち命令が蓄えられており、
DIレジスタr302中にある命令を命令キユー
レジスタq301にすでに貯えられた命令を追越
して実行したとき、ベクトルレジスタ使用順序上
の矛盾がないかをレジスタ競合チエツク回路b3
09〜b311にてチエツクする必要がある。こ
れが第2のチエツクである。なお、本実施例では
この第1、第2のチエツクはベクトルレジスタの
みについて行ない、ベクトルアドレスレジスタU
5、ベクトルアドレス増分レジスタU6について
は行なわない。本実施例では、簡単化のために、
これらのレジスタの内容の変更はなく、二つのメ
モリ・リクエスタが同時にこれらのレジスタを読
出せるように構成されている(詳細後述)。この
ため、これらのレジスタ使用の可否についてチエ
ツクする必要がない。 第6図aは、レジスタ使用チエツク回路b30
7の詳細をDGレジスタr305とRGSWレジス
タr306を含めて表わしたものである。DGレ
ジスタr305中のR1フイールドr3051と、
RGSWレジスタr306の出力に基づき、第1
レジスタ使用チエツクb3071は第6図bに示
す場合のみレジスタ使用可と判断する。すなわ
ち、レジスタの使用要求がベクトルレジスタに対
する書込みのとき(V1=W1=1 GN1<8)に
は、番号GN1のベクトルレジスタが未使用のと
き(Wi=Ri=0,i=GN1)、使用要求がベク
トルレジスタの読出しのとき(V1=1,W1=0
GN1<8)には、その番号GN1のベクトルレ
ジスタが未使用または書込み中のとき(Ri=0,
i=GN1)にのみ使用可と判断し、アンドゲー
トg343に“1”を出力する。V1ビツトが
“0”のときには、ベクトルレジスタが使用可と
し、この場合にもアンドゲートg343に“1”
を出力する。同様に、DGレジスタr305のR2
フイールドr3052,R3フイールドr305
3についてもそれぞれ第2,第3使用チエツク回
路b3072,b3073にて全く同様に基準で
チエツクされ、アントゲートg343に結果が入
力される。こうして、R1,R2,R3フイールドが
指定するベクトルレジスタがいずれも使用可のと
きに、線313にベクトルレジスタ使用可を示
す信号“1”が出力される。 なお、レジスタ使用チエツクb回路307は、
DIレジスタr302内の命令が必要とするベク
トルレジスタが先行する命令により現在書込み中
であつても、そのレジスタが使用可能と判断する
点に特徴がある。これは、後述するように本実施
例においれは、ベクトル要素を書込み中のベクト
ルレジスタに対してこの書込み動作に並行して読
出し動作を行えるように、ベクトルレジスタのチ
エイニングがなされるからである。 第7図はレジスタ競合チエツク回路b309,
b311の詳細を示す。レジスタ競合チエツク回
路b309は第1〜第3のレジスタ競合チエツク
回路b3091〜b3093からなり、それぞれ
によりDGレジスタr305のR1〜R3フイール
ドr3051〜r3053にて指示されるベクト
ルレジスタ使用要求をQGレジスタq303にて
指示されるベクトルレジスタ使用要求の競合をチ
エツクする。これらの回路の出力は競合がないと
きに、“1”となる。(詳細後述)。アンドゲート
g353は、これらのチエツク回路b3091〜
b3093の出力がいずれも“1”をオアゲート
g359を介して線315に出力する。一方オ
アゲートg359には、反転ゲートg356の出
力も入力されている。したがつて、反転ゲートg
356への入力線325が“0”のときも、線
315に競合なしを示す信号“1”が出力され
るようになつている。レジスタ競合チエツク回路
b310,b311も回路b309と同じ構成を
有し、アンドゲートg354,g355又は、反
転ゲートg357,g358,オアゲートg36
0,g361により線316,317上に競
合チエツク結果を出力する。 線323〜325は、フリツプフロツプf
304〜f306(第3図)に接続されている。
これらのフリツプフロツプは、命令キユーレジス
タq301(第7図)中のレジスタQIR0〜QIR
2の各々に対応して設けられ、これらのレジスタ
内に命令が存在するときにセツトされる(詳細後
述)。 今の場合には、命令キユーレジスタq301に
命令はないとしているので、これらのフリツプフ
ロツプはセツトされておれず、その出力線32
3,324,325は“0”となつている。
したがつて、線315〜317の出力はすべ
て1である。こうして命令キユーレジスタq30
1中に命令が内場合には競合チエツク回路b30
9〜b311の出力とは無関係にベクトルレジス
タの競合がないことを示す信号を作り出してい
る。 再び第3図に戻つて説明する。レジスタ競合チ
エツクb309〜b311から出力線、315
〜317は、上述に述べたように“1”になつ
ている。したがつてこれらを入力するアンドゲー
トg301の出力322は1となつている。今
の場合にはレジスタ使用チエツク回路b307の
出力線313も、ベクトルレジスタが使用する
ことが習きるのと前提から、“1”になつており、
したがつてアンドゲートg302の出力も“1”
である。また、リソース使用チエツク回路b30
5の出力線310も、リソースが使用すること
ができるのと前提から“1”になつている。さら
に、DIレジスタr302に有効な命令があるこ
とを示すフリツプフロツプf302の出力線3
02も“1”となつている。後述のように、アン
ドゲートg305の出力は“0”のため、反転ゲ
ートg310の出力は“1”となつている。この
ような状態のとき、アンドゲートg304の出力
も“1”となり、従つて、オアゲートg306の
出力線330を介してフリツプフロツプ,f3
03がセツトされる。このフリツプフロツプf3
03はタイミングのみでセツト/リセツトされる
Dタイプフリツプフロツプで、命令起動信号ST
を線10により、ベクトルレジスタユニツトU
4、メモリ・リクエスタU10、UYY、円鎖器
U20,U21に送出する(第1図参照)。また、
命令キユーレジスタq301中に命令がないこと
から、レジスタQIR0〜QIR2に命令があるとき
に、“1”がセツトされる対応のフリツプフロツ
プf307からf306の出力はいずれも“0”
であり、その出力線323〜325が入力さ
れているセレクタS303の出力もセレクタS3
03の選択動作(詳細後述)に無関係に“0”と
なつている。従つて、この出力線326が入力
されているアンドゲートg305の出力線32
1も“0”となる。セレクタS301,S30
2,S304は、それぞれDIレジスタr302
の出力線303上のオペコード、リソース使用
チエツク回路b305の出口線309上のリソ
ース使用要求(リソース種類、番号)およびDG
レジスタr305の出力線307上のベクトル
レジスタ使用要求(レジスタ番号、使用形態)を
選択して、それぞれEIレジスタr308、ESレ
ジスタr309,EGレジスタr312にセツト
する。セツトは線330により指示される。な
お、ベクトル長レジスタ(VLR)r307には、
あらかじめ別の手段(図示せず)によつて処理す
べきベクトル長(VL)の格納されているとする。
これらのレジスタの内容は、線11〜14に
よつて、ベクトルレジスタユニツトU4、各リソ
ースU10,U11,U20,U21に送出され
る。これにより、命令実行の起動が指令されるこ
とになる。 なお、ここでは、DIレジスタr302中の命
令はすぐに起動可能であるので命令キユーレジス
タq301に入れる必要はない。今の場合、アン
ドゲート、g303の出力が“1”であることか
ら、反転ゲートg308の出力は“0”となり、
この出力が入力されているアンドゲートg303
の出力線327が“0”となつている。こうし
て、この信号線327により制御される命令キ
ユーレジスタq301へのDIレジスタr302
の内容の入力がおさえられる、また同様に、レジ
スタq302,q303への新たな入力も禁止さ
れる。命令キユーレジスタq301中に命令が存
在することを示すフリツプフロツプf304〜f
306へのセツト、次にセツトすべき命令キユー
レジスタq301中の場所を示すインポインタ
aIP,r310等の更新を抑止する。 また、命令の起動にともない、使用するリソー
ス状態を管理するFSSWレジスタr304、ベク
トルレジスタの状態を管理するRGSWレジスタ
r306を変更する必要がある。このうち、
RSSWレジスタr304の変更については、第5
図の説明において述べたRGSWレジスタr30
6の状態の変更については、次のようにする。す
なわち、セレクタ、S304により選択された
DGレジスタr305の出力が、デコーダb30
4に送られて、そこでベクトルレジスタの番号、
読出し、書込み等が解読され、対応するRGSW
レジスタr306中のビツトが“1”にセツトさ
れる。すなわち、DGレジスタr305のフイー
ルドRi(i=1〜3)ごとに、Vi=1であること
を条件に、Wiが1か否かに応じてRGSWレジス
タR305のWj(j=GNi)又はRjを1にする。
また、RGSWレジスタは後述するように、ベク
トルレジスタの書込み又は読出しが終了したこと
を示す信号がベクトルレジスタユニツトU4から
線15,16を介して入力されたとき、この
信号で指定されるフイールドRj又はWjをリセツ
トする。 (a−2) 命令キユーレジスタq301内に
命令がなく、DIレジスタr302内の命令
に対して起動がかけられず、これを命令キユ
ーレジスタq301に入れる場合。 これはDIレジスタr302中にある命令ぎ必
要とするリソース(演算器または、メモリ・リク
エスタ)またはベクトルレジスタが使用可能でな
いときに生じる。 DIレジスタr302内の命令が使用するリソ
ースおよびベクトルレジスタの使用状況のチエツ
クについては、第5〜7図に従つて、(a−1)
の説明にて述べた通りである。今の場合リソース
およびベクトルレジスタの使用状況のチエツクの
結果、DIレジスタr302中にある命令が要求
するリソースイが使用中のため、リソース使用チ
エツク回路b305の出力310が“0”にな
る。また、DIレジスタr302内の命令が要求
するベクトルレジスタが使用可能の場合には、レ
ジスタ使用チエツク回路b307の出力313
が“0”になる。いずれの場合もアンドゲートg
304の出力は“0”、従つて、反転ゲートg3
08の出力は“1”となる。また、命令キユーレ
ジスタ中に命令がないので、(a−1)の説明で
も述べたように、セレクタS303の出力線3
26は“0”であるから、アンドゲートg305
の出力は“0”である。このため、フリツプフロ
ツプf303は何もセツトされず、命令起動信号
STは線10に出力されない。反転ゲートg3
08の出力が“1”であり、かつフリツプフロツ
プf302の出力も“1”であるのでアンドゲー
トg303の出力線327が“1”となる。こ
れによつて、命令を命令キユーレジスタに入れる
動作が、次のように行なわれる。 命令キユーレジスタq301の詳細を第4図に
示す、第4図において、命令キューレジスタへの
セツト信号Sが線327にセツトすべきレジス
タの番号として、インポインタ(IP)レジスタ
r310の出力IPが線328を介して送られ
てくると、それぞれデコーダb330のデコード
有効端子Eおよびデータ端子に入力され、デコー
ドされる。その結果、線327が“1”のとき
に線328の内容がデコードされ、その結果、
指定されたレジスタr350〜e352のいずれ
かに、入力線303の内容がセツトされる。以
上が命令キユーレジスタq301へのセツトであ
る。なお、後に述べる命令キユーレジスタの読出
し動作についてもここで述べておく。読出しと
は、アウト・ポインタ(OP)レジスタr311(第3
図)の出力OPにより指定される番号のレジスタ
r350〜r351の内容を出力することで、こ
れは、各レジスタr350〜r352の出力が接
続されているセレクタS350の選択制御をOP
レジスタr311の出力線329により行なう
ことで実現できる。 なお、QSレジスタq302はレジスタr35
0〜r352が必要とするビツト数の違いを除い
て、命令キユーレジスタq301と同一構造であ
る。QGレジスタq303は、レジスタr350
〜r352が必要とするビツト数の違いの他に、
レジスタr350〜352からセレクタS350
を介さずに直接出力する信号線がさらに別に設け
られている点で命令キユーレジスタq301と異
なるのみである。 再び第3図に戻つて説明する。こうして命令コ
ード、その命令が使用するリソース種類等、およ
びレジスタの番号等をそれぞれ命令キユーレジス
タq301〜q303に登録すると、これらの命
令キユーレジスタに命令が存在することを示すフ
リツプフロツプf304〜f306のうち、今回
登録したレジスタQIRi(i=0,1or2)に対応す
るフリツプフロツプをセツトする。この動作は、
線327が“1”となり、これがデコーダb3
12のデコード有効端子に入力され、データ端子
に入力された(出力線328)の上のIPで指
定される番号のフリツプフロツプf304〜f3
06のいずれかがデコーダb312によりセツト
されることにより実現される。以上が終了する
と、IPレジスタr310が更新される。IPレジ
スタr310の出力線328は3進カウンタb
314に入力され、次のIPの値が作成され、線
327が“1”となると、IPレジスタr31
0に、次のポインタの値がセツトされる。3進カ
ウンタb314は、入力が0,1,2に従つて、
1,2,0を出力するものである。 なお、命令キューレジスタ(ここでは3つまで
の命令がキューイングできる)のすべてに命令が
入つてしまうと、それ以上命令を入れることはで
きないので、命令読出しユニツトU2(第1図参
照)からの命令送出を抑止する必要がある。これ
は、命令キューレジスタ中に命令が存在すること
を指定するフリツプフロツプf304〜306の
出力をアンドゲートg309に入力し、この出力
線7を命令読出しユニツトU2に送出すること
により実現される。 以上のごとくにして、起動待ちの命令が、それ
らの解読順序にしたがつて、命令キユーレジスタ
q301にストアされる。 (b−1) 命令キユーレジスタにある命令を
起動する場合。 これは、命令キユーレジスタq301内に命令
があり、これが必要とするリソースおよびベクト
ルレジスタが使用可能のときに生じる。 これは、DIレジスタr302中の命令の有無
あるいはその命令の起動可否に関係しない。この
場合、DIレジスタr302中に命令がある場合
にはその命令は実行されないので(a−2)に述
べた手順に従つて、DIレジスタr302中の命
令が命令キユーレジスタq301に登録される。
以下では、命令キユーレジスタq301から命令
をとり出して起動する処理について述べる。 命令キユーレジスタq301から命令を取出し
て起動する処理は、DIレジスタr302なかの
命令を起動する場合とよく似ている。すなわち、
命令キユーレジスタr301中のアウトポインタ
レジスタr311で指定さレル命令と、DIレジ
スタr302中の命令を入れ替えて考えればよ
い。 命令を起動するには、必要なリソースおよびベ
クトルレジスタが使用へ能状態にあることが必要
であることは(a−1)でも述べた。 命令キユーレジスタq301内の命令が使用す
るリソースの空きのチエツクは、第3図のリソー
ス使用チエツク回路b306で、ベクトルレジス
タの使用可否のチエツクは、同じく第3図のレジ
スタ使用チエツク回路b308にて行なわれる。 リソース使用チエツク回路b306の詳細は、
第5図に示した通りチエツク回路b305と同じ
である。アウトポインタ、OPによつて選択され
た命令キユーレジスタq301中の命令が要求す
るリソースの種類は、QSレジスタq302から
線318を介して入力される。一方、リソース
の状態がRSSWレジスタr304から入力されて
いる。これらが、アンドゲートg324〜g32
7によつて比較されて、リソースの空きがチエツ
クされ、その結果、オアゲートg330,g33
1,g333、エンコーダb322,b323、
セレクタS311等によつて最終的にはリソース
が空いていることを示す線312と、リソース
の種類、番号を示す線311に結果がのせられ
る。以上の動作は、DSレジスタr303と
RSSWレジスタr304とのチエツクにより、線
310と309に結果がのせるリソース使用チ
エツク回路b305の動作とまつたく同一なの
で、詳細の説明を省く。 レジスタ使用チエツク回路b308の構成はチ
エツク回路b307と同じであり、その動作は、
第6図aにおいて、DGレジスタr305の出力
のかわりに、第3図におけるQGレジスタq30
3の出力線319を接続した場合の回路b30
7の動作と同一である。チエツクの結果は、レジ
スタ使用チエツク回路b308の出力線314
(第3図)に乗せられる。 再び第3図に戻つて説明する。リソース使用チ
エツク回路b306からリソースに空きがあるこ
とを示す信号線312に“1”が出力され、こ
のときのリソースの種類、番号が線311に出
力され、さらに、レジスタ使用チエツク回路b3
08からベクトルレジスタが使用可能であること
を示す信号線314に“1”が出力され、か
つ、フリツプフロツプf304〜f306の出力
をそれぞれアウトポインタOPが0〜2のときに
選択するセレクタS303の出力線326が
“1”(アウトポインタで指定される、命令キユー
レジスタ内のレジスタQIRiに起動可能な命令が
あることを意味する)になると、アンドゲートg
305の出力線321が“1”になる。この出
力線321が“1”になると、セレクタS30
1,S302,S304はそれぞれ命令キユーレ
ジスタq301の出力線304、リソース使用
チエツク回b306からの出力線311および
QGレジスタq303からの出力線319の内
容を選択してそれぞれEIレジスタr308,ES
レジスタr309、EGレジスタr312に命令
コード、リソースの種類と番号およびレジスタ番
号および使用形態をセツトする。したがつて、命
令キユーレジスタq301内の命令の起動可能な
場合には、DIレジスタr302内の命令が起動
可能が否かに無関係に、前者の命令が起動される
ことが分かる。また、線321はオアゲートg
306を介してフリツプフロツプf303をセツ
トし、ベクトルレジスタユニツト、各リソースに
命令の起動信号STを線10を介して送出する。
オアゲートg306の出力線330は、EIレ
ジスタr308 mESレジスタ309、EGレジ
スタr312のセツトの制御にも使用される。命
令起動については、(a−1)の説明とまつたく
同様である。さらに、線321上の“1”の信
号は、反転ゲートg310により、アンドゲート
g301を閉じる。その結果、反転ゲートg30
8の出力が“1”となり、DIレジスタr302
に命令が入つている場合(フリツプフロツプf3
02が“1”の場合)には、線327を“1”
としてその命令を命令キユーレジスタに登録する
ように制御する。この処理は(a−2)に述べた
とおりである。また、線321は、デコーダb
313のデコード有効端子にも接続され、デコー
ダb313はアウトポインタ、OPで指定される
フリツプフロツプf304〜f306のいずれか
をリセツトする。これは、OPで指定される命令
キユーレジスタ中の命令が取出され、起動される
ためである。最後に、線321はOPレジスタ
r311のセツトに使用され、アウトポインタが
更新される。この更新の制御は、インポインタの
場合と同様、3進で行なわれる。3進の値の生成
は回路b314と同じ構成の回路b315にて行
なわれる。 (b−2) 命令キユーレジスタ中に命令があ
るにもかかわらず、DIレジスタr302の
命令が先に起動される場合。 (1) 命令キユーレジスタ中の命令が要求するリソ
ースまたはベクトルレジスタが使用可能で、こ
の命令を鼓動することができない。かつ、 (2) DIレジスタr302中にある命令が要求す
るリソース又はベクトルレジスタが可能であ
り、かつ、命令キユーレジスタq301中に備
えられている命令と、DIレジスタr302中
にある命令間でベクトルレジスタの競合がな
い。 命令キユーレジスタq301中にある命令を追
越して、DIレジスタr302中の命令を先に起
動するには、レジスタの競合がないこと、すなわ
ち、命令キユーレジスタq301中にある命令に
変更するベクトルレジスタを、DIレジスタr3
02中の命令が使用しないこと、また命令キユー
レジスタq301中にある命令にて読出すベクト
ルレジスタについては、DIレジスタr302中
の命令が変更しないことが必要である。命令キユ
ーレジスタ中の命令で読出すのみに用いられるベ
クトルレジスタを、DIレジスタ中の命令で読出
すことについては、命令の追越しをしてもレジス
タの読出す順序が逆転するだけなので、問題はな
い。以上述べたレジスタ競合チエツクを行なう回
路が、第3図の回路b309〜b311である。
この詳細を第7図に基づき説明する。 第7図の回路の詳細は、回路b3091〜b3
093の詳細を除き、すでに説明した。 第1レジスタ競合チエツク回路b3091は
DGレジスタr305のRIフイールドr3051
とQGR0レジスタg3030のR1〜r3フイールド
とを比較し、次の条件のいずれかが満たされない
場合に、レジスタ競合なしを示す信号“1”をア
ンドゲートg353に出力する。 (1) DGレジスタのV1=1,W1=0のとき、
レジスタQGR0の一つのフイールドRjにおい
て VJ=WJ=1、GNJ=DGレジスタのGN1 (2) DGレジスタのV1=1,W1=1のとき、
レジスタQGR0の一つのフイールドRjにおい
て Vi=1、GNj=DGレジスタのGN1 同様に、DGレジスタのR2フイールドr305
2,R3フイールドr3053についてそれぞれ
第2、第3レジスタ競合チエツク回路b309
2,b3093が同様のチエツクをする。 一方、命令キユーレジスタ中に実行可能な命令
が入つていることを示すフリツプフロツプf30
4(第3図参照)の出力が線323を介してア
ンドゲートg353に入力され、アンドゲートg
353の入力がすべて“1”のとき、その出力が
オアゲートg356を経て、線315に乗せら
れる。こうして、DGレジスタr305で指定さ
れるベクトルレジスタが、レジスタQGR0にて
指定されるいずれのベクトルレジスタとも競合し
ないか否かがチエツクされる。これと同様に、
DGレジスタr305で指定されるベクトルレジ
スタと、レジスタQGR1で指定されるベクトル
レジスタの競合関係がチエツク回路b310で、
DGレジスタr305で指定されるベクトルレジ
スタと、レジスタQGR2で指定されるベクトル
レジスタの競合関係がチエツクb311でチエツ
クされ、その結果がそれぞれアンドゲートg35
4,g355を経て、オアゲートg360,g3
61の出力線、316,317にのせられ
る。 DIレジスタr302中にある命令が要求する
リソースおよびレジスタ使用状況のチエツクにつ
いては、(a−1)の処理の説明にて詳細を述べ
たとおりである。 チエツク結果、第3図においてリソース使用チ
エツク回路b305の出力として、線310に
リソースが空いていることを示す“1”の信号
が、線309にリソースの種類、番号がレジス
タ使用チエツク回路b307の出力として、線
313にベクトルレジスタが使用可能であること
を示す“1”の信号が出力される。一方、命令キ
ユーレジスタ中のアウトポインタOPで指定され
る命令が使用するリソースまたはベクトルレジス
タのいずれか一方または双方とも使用可能でない
ので、リソース使用チエツク回路b306の出力
線312または、リソース使用チエツク回路b
308の出力線314の少くともいずれか一方
は“0”になつている。また、命令キユーレジス
タに命令が存在することから、セレクタS303
の出力線326は“1”に、DIレジスタr3
02に命令が存在することから、線302も
“1”になつている。 このような状況のもまで、アンドゲートg30
5の出力線321“1”とはならない。今の場
合、DIレジスタ中の命令と、命令キユーレジス
タ中の命令が要求するレジスタ間で競合がないと
仮定しているので、線315〜317が
“1”となり、アンドゲートg301の出力が
“1”となる、。アンドゲートg301の出力と、
線313が入力されるアンドゲートg302の
出力が“1”となり、この出力“1”と線31
0と、DIレジスタに有効な命令が入つているこ
とを示す線302と、線321を反転ゲート
g310で反転した出力の4つの信号とが入力さ
れているアンドゲートg304の出力が“1”と
なる。以後、命令を起動するまでの処理は(a−
1)のおけるDIレジスタ中の命令起動処理とま
つたく同様である。なお、アンドゲートg304
の出力が“1”のため、その出力を反転ゲートg
308で反転した結果が入力されているアンドゲ
ートg303の出力線327、および先に述べ
た線321はいずれも“0”のため、IPおよ
びOPはいずれも更新されることはなく、また、
命令キユーレジスタに命令が存在することを示す
フリツプフロツプf304〜f306の状態も変
らない。 命令制御ユニツトの変形例 以上、命令制御ユニツトU3(第1図参照)の
詳細を述べた、本実施例においては、命令実行の
追越しは、DIレジスタr302と命令キユーレ
ジスタとの間でのみ行なわれ、命令が一旦、命令
キユーレジスタに入つてしまうと、命令キユーレ
ジスタに入つた順にアウトポインタでとり出され
ていくので、命令キユーレジスタの間での命令実
行の追越しはおこなわれない。しかし、この命令
キユーレジスタ内の命令の間の追越し実行も、
DIレジスタ内の命令ろ命令キユーレジスタ内の
命令の間の追越し実行とどうように制御すれば、
容易に実現することができる。この場合には、命
令キユーレジスタ上の命令について、実行順序を
記憶しておく必要がある。また、命令キユーレジ
スタへの命令の登録も、インタポインタ(IP)
による順序通りの登録ではなく、空いたレジスタ
への登録となる。 第8図は、これを実現するための回路の内、第
3図に回路と相違する部分を主に示したものであ
る。図において、フリツプフロツプf304,f
305,f306は、命令キユーレジスタに有効
な命令が入つていることを示す(入つているとき
に“1”とするフリツプフロツプで、第3図のフ
リツプフロツプf304〜f306と同一のもの
である。このフリツプフロツプの出力を反転ゲー
トg380〜g382で反転後、ブライオリデ
イ・エンコーダb395に入力すると、出力に
は、空きの命令キユー内レジスタのうち、もつと
も番号の小さなものの番号iで出力される。本変
形例では、第3図のIPレジスタr310、3進
カウンタb314にかえ、反転ゲートg380〜
g381、プライオリテイエンコーダb395を
用い、プライオリテイエンコーダの出力をインポ
インタIPとして、第3図のIPのかわりに使用す
る。 また、命令キユーレジスタq301中の命令の
起動順序を記憶しておく必要があり、このため、
本変形例では、フリツプフロツプf380〜f3
82と実行順序変更回路b393が第3図の回路
に追加される。命令キユーレジスタq301に
IP=0〜2でもつてそれぞれセツトされた命令
をQ0,Q1,Q2と名づけること、これらの命令
を、 Q0→Q1→Q2 Q0→Q2→Q1 Q1→Q2→Q0 Q1→Q0→Q2 Q2→Q0→Q1 Q2→Q1→Q0 の順に起動する場合があり得る。この6つの状態
をフリツプフロツプf380〜f381で記憶す
る。フリツプフロツプf380,g381,f3
82の記憶情報とこのときの命令実行順序の関係
は次の表のとおりである。
【表】
【表】 命令の実行順序の変更は、フリツプフロツプf
304〜f306が“1”から“0”(使用中か
ら非使用知)になつたときに行なわれる。この変
更を制御するのが変更制御回路b393である。回
路b393には、フリツプフロツプf304〜f
306の出力323〜325と現在の起動状
態を表わすフリツプフロツプf380〜f382
の出力396〜398が入力され、次の起動
状態が線376〜378に出力されて、再び
フリツプフロツプf380〜382にセツトされ
る。回路b393の内部では、命令キユーレジス
タq301内の一つの命令が起動され線323
〜325が“1”から“0”に変化した時点を
とらえ、次のように線396〜398の内容
から、出力を作成し、線376〜378にの
せる。 すなわち、命令キユーレジスタq301内の残
りの二つの命令を先ず起動し、かつ、このとき、
この二つの命令の起動順序はそれまでにフリツプ
フロツプf380〜f382が指定していた順序
とし、これらの二つの命令の起動後に、今回起動
された命令のかわりに新たに命令キユーレジスタ
にストアされた命令を起動するように、フリツプ
フロツプf380〜f382をセツトする。
【表】
【表】 なお、線323〜325が同時に“1”→
“0”になることはない。なぜならば一命令ずつ
起動するからである。 命令キユーレジスタq301中のいずれの命令
をも起動可能とするためには、命令キユーレジス
タ中のすべての命令について、リソースおよびベ
クトルレジスタの使用状況のチエツクを行ない、
かつ、命令キユーレジスタ上のすべての命令間の
ベクトルレジスタの競合のチエツクを行なう必要
がある、第8図においてレジスタq3020〜q
3022(QSR0/1/2)は命令キユーレジスタ
q301中の命令が要求するリソースの種類を保
持するもので、第3図のQSレジスタq302中
にあるものである。ただし、本変形例において
は、各レジスタq3020〜Q3030から、
OPとは無関係に直接リソース使用要求を送出す
る信号線が設けられている。この各命令のリソー
ス要求と、リソース状態を管理する。RSSWレジ
スタr304の内容が、第3図のリソース使用チ
エツク回路b306にかえて本変形例で設けられ
たリソース使用チエツク回路b380〜b382
でチエツクされ、それぞれからリソースが空いて
いるかどうかを示す信号が線380〜382
に、使用可能がリソースの種類と番号が線38
3〜385に出力される。リソース使用チエツ
ク回路b380〜b382は、第5図で説明した
回路b305とまつたく同一構成を有する。第8
図において、QGR0〜QGR2レジスタq303
0〜q3032は、命令キユー中の各命令が要求
するレジスタの番号等を記憶しているもので、第
3図のQGレジスタq303中にあるものであ
る。この各命令のレジスタ要求と、ベクトルレジ
スタの状態を管理するRGSWレジスタr306
の内容が、本変形例において新たに設けられたレ
ジスタ使用チエツク回路b383〜b385でチ
エツクされ、要求するすべてのベクトルレジスタ
が使用可能かどうかを示す信号が386〜3
88に出力される。これらのレジスタ使用チエツ
ク回路は、第6図で説明した回路b307とまつ
たく同一である。また、各命令の要求するベクト
ルレジスタ間の競合をチエツクするために、本変
形例で新たに設けられたレジスタ競合チエツク回
路b386〜b391が使用される。命令キユー
レジスタ中の各命令の実行順序がどのようなもの
でも許されるようにしたい。命令キユーレジスタ
中に3命令分保持できる場合には、ある命令が極
の2命令に優先して起動させるために2つのチエ
ツク回路が必要で、それが3命令分必要であるか
ら、計6個のレジスタ競合チエツク回路b386
〜b391が必要となる。回路b386は、
QGR0のR1〜R3フイールドとQGR1のR1〜R3
フイールドとが入力され、前者が後者の各々に対
してレジスタ競合チエツクを行い、いずれのフイ
ールドにもレジスタ競合が検出されないとき、線
390に“1”を出力する。第7図のレジスタ
競合チエツク回路b309と同一構成を有する。
回路b386には、フリツプフロツプf305の
出力線324も入力されており、回路b309
(第7図)と同様に、この信号線324が“0”
のときには、無条件に線390に“1”を出力
する。同様に回路b387は、QGR1の各フイ
ールドがQFR0の各フイールドに対してレジス
タ競合を有しないかをチエツクする回路である。
同様に回路b688〜b391はそれぞQGR2
に対してQGR1の、QGR1に対してQGR2の、
QGR0に対してQGR2のQGR2に対してQGR
0の、レジスタ競合をチエツクするものである。
これらのレジスタ競合チエツク回路b386〜b
391の出力線390〜395は命令選択回
路b394に入力される。命令選択回路b394
には、先に述べた、リソース使用チエツク回路b
380〜b382の出力線383〜b385の
出力線386〜388、命令の起動順序を指
定するフリツプフロツプf380〜f382の出
力および命令キユーレジスタ中に実行可能な命令
が入つていることを示すフリツプフロツプf30
4〜f306の出力線323〜325も入力
され、ベクトルレジスタ、リソースに空きがあ
り、かつベクトルレジスタに使用上、競合が生じ
ない命令キユーレジスタ中の命令が命令選択回
路、b394にて選択されて、選択された命令の
命令キユーレジスタ中の番号がアウトポインタ
OPとして329に、命令キユーレジスタ中に
命令が選択されたことを示す信号が線321に
出力される。 命令選択回路b394の詳細を第9図に示す。
アンドゲートg383には、フリツプフロツプf
304の出力線323、リソース使用チエツク
回路b383の出力線386、レジスタ競合チ
エツク回路b386,b391の出力線39
0,395が入力され、これらの入力がすべてが
“1”のときに、アンドゲートg383の出力線
370が“1”になる。これは命令キユーレジ
スタ中の第0番の命令Q0が実行してよいことを
示す。同様に、アンドゲートg384,g385
にも命令キユーレジスタの第1、第2番に関する
信号線が入力され、線371,372に出力
される。線370〜327は、同時に“1”
になることもありうる。後370〜372はオ
アゲートg387に入力され、いずれか1つでも
命令実行が可能のときには、オアゲートg387
の出力線321を“1”とする。線370〜
372に出力された命令実行可能を示す信号か
ら、いずれを選択するかは命令実行順序判定回路
b395にて行なわれる。回路b395には、線
370〜372のほかに、命令実行順序を示
すフリツプフロツプf380〜f382の出力線
396〜398が入力され、次のようにして
実行すべき命令キユーレジスタ上の番号が線3
29に出力される。線329は実際には2本の
線3290(上位)、3291(下位)から
なり、2本での2進数00,01,10をあらわして、
命令キユーレジスタ内の命令の番号を示すことと
する。
【表】 命令選択回路b394の出力である線32
9、線321を、第3図においてそれぞれアウ
トポインタ(OP)レジスタr311の出力、線
329およびアンドゲートg305の出力線
321のかわりに使用すればよい。したがつて、
第3図のアウトポインタレジスタr311、3進
カウンタb315、セレクタS303、アンドゲ
ートg305は不用となる。 なお、第8図中のセレクタS380は命令キユ
ーレジスタ中の命令が要求するリソースの種類、
番号をアウトポインタ(線329上にある)に
従つて選択するもので、この出力線311が、
第3図のリソース使用チエツク回路b306の出
力線のかわりに使用される。 以上のべたように、本発明により命令制御ユニ
ツトでは、読出された命令を次々と解読し、起動
できる命令は次々と起動し、起動できない命令は
命令キユーレジスタに入れていく。かつ、リソー
スが空きベクトルレジスタが使用可能となると、
ベクトルレジスタの使用順序に制約がないことを
条件に、解読した順序に関係なく命令を起動して
いくことにより、リソース、ボクトルレジスタが
空いている時間を短縮させ、より短時間に命令を
処理させることができる。 ベクトルレジスタユニツト (1) 概要 第10図は、ベクトルレジスタユニツトU4
は、ベクトルレジスタ制御ユニツトU40と、ベ
クトルレジスタデータユニツトU41に分けられ
る。 ベクトルレジスタ制御ユニツトU40では命令
制御ユニツトU3よりの指令にもとづいて、ベク
トルレジスタデータユニツトU41中にあるベク
トルレジスタVRから必要なデータを読出し、演
算器U20,U21、メモリ・リクエスタU1
0,U11(第5図)に送出する制御、および演
算器U20,U21、メモリ・リクエスタU1
0,U11から送出されてくるデータをベクトル
レジスタVRに書込む制御を行なう。また、ベク
トルレジスタVRの使用の終了を命令制御ユニツ
トU3に知らせる。 ベクトルレジスタVRの各々は多数のベクトル
要素を保持するものであるが、ここでは従来技術
と同様、メモリ素子で構成されることとする。こ
のため、書込みまたは読出しアドレスを指示する
ためのアドレスカウンタ(詳細後述)がベクトル
レジスタVRごとに存在する。これらのアドレス
カウンタは、ベクトルレジスタ制御ユニツトU4
0より制御される。 ベクトルレジスタVRからのベクトル要素の読
み出しは、ベクトルレジスタ制御ユニツトU40
の制御下で、次のように行なわれるのに注意すべ
きである。本実施例では、ある命令の実行によ
り、あるベクトルレジスタVRにベクトルデータ
の要素を書込み中のときに、そのベクトルレジス
タを読出したい後続の命令があれば、このベクト
ルレジスタへ任意数の要素が書込まれた時点で、
書込み動作と並行して読出し動作が開始されるよ
うに、ベクトルレジスタのチエイニングを行う。
しかも、このチエイニングでは、先行する命令に
よる書込み動作が間欠的に行なわれる場合には、
それに応じて後続の命令による読出しも間欠的に
行なわれる。さらに、ある命令が読出し用に二つ
のベクトルレジスタを用いる場合にあつては、こ
れらのベクトルレジスタの少くとも一方に一部の
ベクトルレジスタ要素しか書込みれていない場合
であつても、これらのベクトルレジスタに書込ま
れたベクトル要素の内、同一番号の要素を対にし
て読出す動作を開始する。しかも、これらのベク
トルレジスタへの残りの要素が間欠的に書込まれ
る場合には、同一番号の一対の要素が同時に読出
し可能になるごとに、この一対の要素を読出す。 演算器に供給されるベクトルデータは、通常、
主記憶から読出され、一旦ベクトルレジスタに入
れられ、そこから演算器に供給される。データの
読出しはマシンクロツクに同期して行なわれる
が、主記憶から読出されるベクトル要素は、主記
憶上の読出しの競合(たとえば2つのメモリ・リ
クエスタの同時動作時に生ずる)からマシンサイ
クルごとにベクトルレジスタに連続して書込まれ
るとは限らない。このとき、演算器に供給すべき
ベクトル要素データは、間欠的にベクトルレジス
タに到着し、書込まれていく。このような条件の
もとでも、書込みと並行して読出し動作(チエイ
ニング)を行ない、また、命令が二つのベクトル
レジスタを必要とするときには演算器に対し、2
つのベクトルレジスタの同一のベクトル要素番号
のベクトルデータを同時に供給するようにするこ
とにより、命令の実行開始を早めることができ
る。 () ベクトルレジスタ制御ユニツトの概要 ベクトルレジスタ制御ユニツトU40は第11
図に示すように、命令起動制御回路b400と、
ベクトルレジスタVR0〜VR7の各々に対応し
たベクトルレジスタ制御回路b410〜b417
と、演算器U20,U21とメモリ・リクエスタ
U10,U11の各々に対応したオペランド制御
回路b420,b423と、オペランド制御回路
b420,b423からの出力をそれぞれ保持す
るフリツプフロツプf400〜f407、およ
び、リソース−レジスタ変換回路(以下S−G変
換回路とよぶ)b401,b404,b405、
レジスタ−リソース変換回路(以下G−S変換回
路とよぶ)b402,b403から成る。G−S
変換回路b402,b403は、命令制御ユニツ
トU3により指定される読出し用一つ又は二つの
ベクトルレジスタ番号に対する、ベクトルレジス
タ制御回路b410〜b417のいずれか二つか
らの信号を、命令制御ユニツトU3により指定さ
れるリソース番号に対する、オペランド制御回路
b420〜b427の一つへ送出するものであ
り、S−G変換回路b401(又は404とb4
05)は命令制御ユニトU3により指定された番
号のリソース(又はこれに対するオペランド制御
回路b420〜b427)から送られてくる信号
を、命令制御ユニツトU3により指定された書込
み用のベクトルレジスタ番号に対応するベクトル
レジスタ制御回路b460〜b467の一つ(又
はこの番号のベクトルレジスタ)へ送出するもの
である。 まず、命令起動制御回路b400が命令制御ユ
ニツトU3より、起動信号(線10上)、命令
コード(線11上)、レジスタ番号(線12
上)、リソース種類番号(線13上)、処理ベク
トル長(線14上)を受けとり、命令コードが
ベクトルレジスタの使用を必要とするもののとき
には、次のように動作する。 (1) S−G変換回路、b401,b404,b4
05,G−S変換回路、b402,b403に
変換に必要なリソース番号とベクトルレジスタ
番号、および、それらのセツト信号を送出す
る。 (2) ベクトルレジスタ制御回路b410〜b41
7のうち、指定されたベクトルレジスタ番号の
ものに、書込み、または読出しの起動信号を出
す。 (3) オペランド制御回路b420〜b423のう
ち、指定されたリソースの種類と番号に対する
回路に、ベクトル長データと、そのセツト信
号、および、オペランドを1つしか使用しない
命令においては、それを指示する信号を出す。 命令実行時には、次のように制御信号が伝達さ
れる。ここでは、ベクトルレジスタ0および1か
らデータを読出して演算器0で演算し、結果をベ
クトルレジスタ7に書込み命令の実行時の動作に
ついて説明する。 ベクトルレジスタ0にてあるベクトル要素の読
出しが可能になると、ベクトルレジスタ制御回路
br10からベクトルレジスタ読出し許可信号が線
480に出力される。同じく、ベクトルレジス
タ制御回路b411からも線481に、ベクト
ルレジスタ1でのベクトルレジスタ読出し許可信
号が出力される。G−S変換回路b402,b4
03にて線480,481の信号は、演算器
0に対する出力線490,500に対えら
れ、オペランド制御回路b420に入力される。
オペランド制御回路b420は、これらのベクト
ルレジスタ読出し許可信号が同時に存在すること
を条件に1ベクトル要素ごと派ベクトルデータ送
出信号を作成し、線520に出力する。この信
号は、フリツプフロツプf401で一旦受けた
後、線43にて演算器0にデータ有効信号とし
て送られる。一方、線520上のデータ送出信
号はS−G変換回路b404,b405にも入力
され、それぞれによりベクトルレジスタ番号0,
1に対応した線540,551に出力され、
それぞれ、オアゲートg400又は401および
線470と471により、ベクトルレジスタ
データユニツトU41(第10図参照)中にある
ベクトルレジスタ0と1に対する読出しアドレス
カウンタ(後述)の更新に使用される。本発明で
は、ベクトル要素データ送出信号(線520上
にある)を作成した後、はじめて、ベクトルデー
タの読出し用のアドレスカウンタ(後述)を、次
のアドレスに更新する点が特長の一つである。実
際にデータをよみ出す動作は、2つ(ここではベ
クトルレジスタ0と1)のオペランドのデータ読
出しが可能になつたことを確認しなから行なうわ
けである。 さて、データ有効信号V(線43上)と、ベ
クトル要素データが演算器0に送られ、演算され
る演算結果が線45(第10図)を介してベク
トルレジスタデータユニツトU41に、データ有
効信号Vが線46を介してベクトルレジスタ制
御ユニツトU40に戻される。このデータ有効信
号Vは、S−G変換回路b401により書込みベ
クトルレジスタ#7に対応する線437に伝え
られる。線437の信号に応答して、ベクトル
レジスタ制御回路b417は、ベクトルレジスタ
7への書込みアドレスカウンタ更新信号を線4
27を介してベクトルレジスタデータユニツトU
41に伝えるとともに、ベクトルレジスタ制御回
路b417内にあり、ベクトルレジスタ#7中の
どのベクトル要素まで書込みを行なつたのかポイ
ンタ(後述)の管理に使用する。このポインタ
は、ベクトルレジスタ7を書込みながら、後続の
命令でこのベクトルレジスタ読出しに使用する際
に、書込んだベクトル要素までを読出すように制
御するために使用される。 最終ベクトル要素を演算器0に送出する際に、
それが最終であることを指定するために、オペラ
ンド制御回路b420から、ベクトルデータ送出
信号と同期して最終ベクトルデータ信号Eが線
510に出される。つまり、回路b420は、命
令実行開始時にセツトされる処理ベクトル長を憶
えておき、この数だけ、ベクトルデータ送出信号
を出すと、最終ベクトルデータ信号を出すように
構成されている。この信号は、フリツプフロツプ
f400で一旦記憶された後演算器0に線40
により送出され、最終演算結果と同期して、線
44によりS−G変換回路b401に戻されてく
る。線44はS−G変換回路b401によりベ
クトルレジスタ7に対応する線427に伝達さ
れ、ベクトルレジスタ制御回路b417に入力
る。制御回路b417はベクトルレジスタ7への
書込み動作を終了させるとともに、線16に
て、命令制御ユニツトU3に、ベクトルレジスタ
7の書込が終了したことを伝える。一方、オペラ
ンド制御回路b420からの出力線510上の
最終ベクトルデータ信号EはS−G変換回路b4
04,b405にも入力されて、ベクトルレジス
タ0,1に対応する線530および531に
出力され、さらにオアゲートg410,g411
を経て、線460,461により、ベクトル
レジスタ制御回路b410,b411に入力さ
れ、ベクトルレジスタの読出し動作を終了させる
とともに、線15にて、命令制御ユニツトU3
に、ベクトルレジスタ0,1の読出しが終了した
ことを伝える。 () 命令起動制御回路 第12図に示すように、命令起動制御回路b4
00は命令制御ユニツトU3よりそれぞれ線1
0〜14を介して入力される命令起動信号ST、
命令コード使用レジスタ番号と使用形確、使用リ
ソース種類と番号、処理ベクトル長をそれぞれフ
リツプフロツプf410、レジスタRGR,r4
00,RIG,r401,RST,r402,
RVIR,r403にいずれも命令起動信号STに
応答してセツトする。 フリツプフロツプf410の出力は、S−G/
G−S本換回路b402〜405(第14図)他
への情報のセツト信号として、線419により
送り出されるとともに、内部での各種データ信号
の作成に使用される。 RGR,r400の内容から、S−G変換回路、
G−S変換回路(第11図)に与えるレジスタ番
号と、ベクトルレジスタ制御回路、ベクトルレジ
スタデータユニツトに与える初期化/起動信号を
作成する。通常のベクトル命令では、R1フイー
ルドで書込みベクトルレジスタ、R2/R3フイー
ルドで読出しベクトルレジスタを使用する。この
ため、第11図のS−G変換回路b401には、
R1フイールドのレジスタ番号を、G−S変換回
路b402,S−G変換回路b404にはR″フ
イールドレジスタ番号を、G−S変換回路b40
3,S−G変換回路b405には、R3フイール
ドのレジスタ番号を与えればよい。しかし、第2
図での説明に述べたように、主記憶にベクトルデ
ータを格納する命令においては、R1フイールド
は読出し用のベクトルレジスタ番号を指定するの
でR1フイールドのレジスタ番号を、通常のR2フ
イールドのレジスタ番号を送出する信号線に乗せ
替える必要がある。このために、RGRr400の
GN1フイールドとV1フイールドは併せて線4
39を介して、S−G変換回路b401に送出さ
れるとともに、セレクタS400に第1の組とし
て入力される。一方、レジスタr400のGn2と
V2フイールドは第2の組としてセレクタS40
0に入力され、このいずれかが選択されて、線
449にて、S−G変換回路b404、G−S変
換回路b402に送出される。このセクタS40
0の選択制御はデコーダb438が行い、RIRr
401内の命令コードに対するものか否かに応じ
て前者又は後者が選択されるようにレクタS40
0が制御される。RGRr400のGN3とV3フイ
ールドは線459により、そのまま、S−G変
換回路b405,G−S変換回路b403に送ら
れる。 ベクトルレジスタ制御回路b410〜b417
およびベクトルレジスタに対し、書込みの起動を
行なうために、RGR,r400のR1〜R3フイー
ルドはデコーダb430に送られる。デコーダb
430は、アンドゲートA付デコード有効端子E
を有し、アンドゲートAへの入力線がすべて
“1”のときに、デコーダが有効になる。デコー
ダb430のアンドゲートAには、V1フイール
ド、W1フイールド、およびフリツプフロツプf
410の出力がそれぞれ線580,581,
419が接続されており、またデコードされる
信号として、GN1フイールドが線439を介
して入力されている。デコードが有効すなわち、
GN1フイールドのデータに意味があり(V1フイ
ールド=“1”)、書込みが指定されており(W1フ
イールド=“1”)かつ命令起動(419=
“1”)時に線582を介して入力されGN1フイー
ルドの内容がデコードされ、このGN1フイール
ドがベクトルレジスタ0〜7のいずれかの番号を
有しているときには、出力線8本410〜4
17のうちの1つが“1”になる。ここでは、
GN1フイールドが“0”のとき、出力線41
0が“1”,“1”のとき出力線411が“1”,
“2”のとき出力線412が“1”というようにデ
コードされるとする。今、例として考えている命
令ではRGR,r400内のR1フイールドがベク
トルレジスタ0への書込みを指示(W1=1,
GN1=0)しているので線410のみが“1”
となる。デコーダb430の出力線410〜
417は、ベクトルレジスタ制御回路b410〜
b417(第11図)およびベクトルレジスタデ
ータユニツトU41に送出される。デコーダb4
33〜b435は、ベクトルレジスタの読出しの
起動を行なうためのものである。これらのデコー
ダには、アンドゲートA付デコード有効端子へ、
W1,W2,W3フイールドではなく、それぞれを
反転ゲートg420〜g422で反転ゲートg4
20〜g422で反転した出力が線580,5
91を介して入力され、RGR,r400のフイ
ールドRiが読出し用のとき(Wi=0)のみ、デ
コードが有効となる点が異なるのみで、あとはま
つたくデコーダb430と同様である。デコーダ
b433〜b435の出力は、オアゲートg44
0〜g447を経て、線400〜407によ
り、それぞれベクトルレジスタ制御回路b410
〜b417およびベクトルレジスタデータユニツ
トU41に読出し起動信号として送出される。以
上の実施例においてデコーダb433を省略し、
セレクタS400の出力をデコーダb434に入
力されてもよい。このときには、セレクタS40
0には、さらに、W1フイールドとW2フイールド
の出力もそれぞれGN1,GN2フイールドととも
に入力され、選択されるようにしておく必要があ
る。 デコーダb436は、オペランド制御回路b4
20〜b423に対する起動信号を送出するもの
である。デコーダ有効端子Eには、線419
が、データ端子DIには、RSR,r402からリ
ソース種類、番号が入力され、これらがデコード
されて線440〜443のいずれかが“1”
となる。この線440〜443の信号“1”
は、それぞれオペランド制御回路b420〜b4
23に対する起動信号となる。 デコーダb437は、オペランド制御回路b4
20〜b423にて2つのベクトル要素の同期を
とる必要のない場合を指示するためにある。2つ
のオペランドの同期が不要な場合とは、たとえば
一つのベクトルレジスタから主記憶へのベクトル
データの格納や、一対のベクトルレジスタ間での
ベクトルデータの転送、一つのベクトルレジスタ
内のベクトルデータを変換して他の一つのベクト
ルレジスタに格納するベクトルデータの変換のよ
うに、読出すべきベクトルレジスタが一つであ
り、命令のR3フイールドが不要の場合であり、
このときには、RGR,r400のV3フイールド
が“0”になつている。デコーダb437は2入
力アンドゲートA付デコード有効端子Eがあり、
そこには、線419の他に、RGR,r400
のV3フイールドの出力を反転ゲートg423で
反転させた出力が入力される。デコーダb437
は、RSR,r402から与えられるリソースの
種類、番号を解読して、線450〜453の内の一つ
に“1”を出力する。デコーダb437の出力は、
線450〜453を介してそれぞれオペラン
ド制御回路b420〜b423に接続される。 RSR,r402内のリソース種類番号はまた
線429を介したS−G変換回路b401,b
404,b405,G−S変換回路b402,b
403に共通に入力される。 RVLR,r403内の処理ベクトル長は、線
469により、各オペランド制御回路b420
〜b423に共通に入力される。 () S−G変換回路 第13図は、S−G変換回路b401の内、各
リソースから与えられるデータ有効信号を、命令
制御ユニツトU3により指定されるレジスタ番号
に対するベクトルレジスタ制御回路に供給する回
路を示している。 第13図において、リソース種類番号が線4
29によりデコーダb439のデータ端子に入力
され、書込み用のベクトルレジスタ番号が線4
39を介してリソース対応に設けたレジスタr4
10〜r413に入力され、命令起動信号STが、
線419によりデコーダb439のデコード有
効端子Eに入力される。レジスタr410〜r4
13は、それぞれメモリ・リクエスタ0,1およ
び演算器0,1に対応して設けられている。線
439上にはレジスタ番号GN1の他に、第12
図の説明でも述べたように、レジスタ番号が有効
であるかどうかを指示する信号Vも含まれてい
る。これらの信号はレジスタr410,r413
の内線429上にあるリソース種類、番号に対
応するものにデコーダb439によりリセツトさ
れる。レジスタr410〜r413内のレジスタ
番号GN1は、それぞれデコーダb440〜b4
43のデコード入力端子に、Vビツトはデコーダ
b440〜b443のアンドゲートA付デコーダ
有効端子Eの一方の入力端子に入力される。これ
らの端子Eの他方の入力端子には、それぞれメモ
リ・リクエスタ0,1、演算器0,1からデータ
有効信号がそれぞれ線46,46′,29,
29′を介して入力される。たとえば、レジス
タr410にあるVフイールドの出力“1”がデ
コーダb440のアンドゲートに入力されている
条件下では線46から“1”が入力されるとデ
コーダb440がデコード有効状態となり、レジ
スタr410のGNフイールドの出力がデコード
されて、デコーダの出力端子0〜7のいずれかが
“1”となり、各出力端子に接続して設けられた
オアゲートg430〜g437の出力線420
〜427のいずれかが“1”となる。この出力
線420〜427はベクトルレジスタ0〜7
に対応していて、それぞれベクトルレジスタ制御
回路0〜7にデータ有効信号を供給する。 こうして、一度、レジスタr410〜r413
にデータがセツトされた後、線46の“1”、
“0”の変化が、そのまま、線420〜427
のいずれかに伝えられる。ここで、注意したいこ
とは、レジスタr410〜r413内のレジスタ
番号が異なり限り、線46,46′,29,
29′の信号を同時にそれぞれ線420〜
427の内の対応する線に供給することができる
ことである。この同時供給は最大4つのレジスタ
番号に対して可能である。こうして、4つのリソ
ースを並列に動作させることが可能となる。 なお、S−G変換回路b401の内、各リソー
スから供給される最終ベクトルデータ信号を命令
制御ユニツトU3により指定されるレジスタ番号
に対するベクトルレジスタ制御回路0〜7に供給
する回路部分は、第13図の線46,46′,
29,29′をそれぞれ線44,44′,
26,26′により置換し、線420〜
427を線430〜437により置換すれば
得られる。 S−G変換回路b404は、各リソース対応の
オペランド制御回路0〜3からそれぞれ線52
0〜523を介して入力されるベクトルデータ
送出信号を命令制御ユニツトU3により指定され
るレジスタ番号のベクトルレジスタへ線540
〜543のいずれかを介して送出する回路部分
と、オペランド制御回路0,3から線510〜
513を介して入力される最終ベクトルデータ
信号を、命令制御ユニツトU3により指定される
リソース番号に対するベクトルレジスタ制御回路
0,7に線530,537を介して送出する
回路部分とからなる。前者は、第13図におい
て、線439を線449により置換し、線
46,46′,29,29′をそれぞれ、線
520〜523により置換し、線420〜
427をそれぞれ線540〜547により
置換することにより得られる。後者は、第13図
において、同様に線459、線510〜5
13および530〜537を用いることによ
り得られる。S−G変換回路b405も、回路b
404と同様に形成されるので、詳細は省略す
る、なお、これらの置換後の信号線番号を、第1
3図において信号線番号46,46′,2
9,29′,420〜427の後のカツコ
にて示してある。 () G−S変換回路 第14図は、G−S変換回路b402(第11
図)の詳細を示したものである。命令起動制御回
路b400から線429を介してリソースの種
類、番号が入力され、線449を介してレジス
タ番号が入力され、線419を介してセツト信
号が入力される。線429上のリソースの種
類、番号は、ベクトルレジスタ対応のレジスタr
420〜r427の内、線449上のレジスタ
番号に対応するものにセツトされる。セツトすべ
きレジスタの指定は、線449上のレジスタ番
号がデータ端子に入力され、線419上のセツ
ト信号と、線449上のレジスタ番号の有効を
示す信号Vをデコーダb449のアンドゲートA
に入力されるデコーダb449により制御され
る。レジスタr420〜r427の出力は、それ
ぞれに対応したデコーダb450〜b457に入
力されている。デコーダb450〜b457は、
それぞれベクトルレジスタ制御回路0〜7から信
号線480〜487を介してデコード有効端
子Eに入力されるベクトルレジスタ読出許可信号
が“1”になると、データ入力端子より入力され
ているリソース種類、番号に対応した出力端子の
いずれか1つから“1”を出力する。この結果、
デコーダb450〜b457の0〜3番号の出力
端子にそれぞれ接続されたオアゲートg440〜
g443のいずれかにより、線490〜49
3の内指定されたリソース対応の線が“1”とな
る。線480〜487のいずれかが“0”に
なると、デコーダb450〜b457の内の対応
するものがデコード有効でなくなるので、線4
80〜487の“1”,“0”が対応する信号線
490〜493へ“1”,“0”として伝達さ
れることになる。 なお、一度、レジスタr420〜r427にセ
ツトされたリソース番号種類が相互に異なるとき
は、線480〜487の“1”信号をそれぞ
れ線490〜493内の対応する線に同時に
供給可能であり、この同時供給は最大4つのリソ
ースに対して行いうる。これにより4つのリソー
スの並列動作を可能にする。 なお、第11図のG−S変換回路b403は、
第14図の信号線449を線459により置
換し、線490〜497をそれぞれ線50
0〜507により置換すれば得られる。なお、
第14図には、この置換後の信号線番号を置換す
べき信号線の番号の後にカツコをつけて示してあ
る。 () ベクトルレジスタ制御回路 第15図は、ベクトルレジスタ制御回路b41
0の詳細を示したものである。他のベクトルレジ
スタ制御回路1〜7も全く同一構造で、この図の
線400,410,420,430,
460,480がこれらの信号番号の後のカツ
コ内に記載してある線信号に置換することにより
得られる。この制御回路では、書込み又は読出し
のみの動作と、チエイニング動作(書込み、読出
しの同時動作)の3動作を行なう。 (a) 書込みのみの動作 ベクトルレジスタ0への書込み起動指示が命令
起動制御回路b400(第14図)により線4
10を介して伝えられると、書込み中を示すフリ
ツプフロツプf420がセツトされ、アツプ/ダ
ウンカウンタ(以下U/Dカウンタ)C400が
クリアされる。U/DカウンタC400は、U,
D端子の入力に対して次のような出力を供給す
る。 入 力 出 力 U D (カウンタの内容) 0 0 変らず 0 1 −1される 1 0 +1される 1 1 変らず 線420を介してS−G変換回路b401よ
りデータ有効信号が入力されると、この信号は、
フリツプフロツプf420の出力“1”により開
かれているアンドゲートg420を経て、U/D
カウンタC400のU端子に入力され、カウント
の内容を+1するとともに、そのままベクトルレ
ジスタデータユニツトU41(第10図)に送出
される。S−G変換回路b401から線430
により、最終ベクトルデータ信号がつたえられる
と、この信号はフリツプフロツプf420をリセ
ツトし、書込み中の状態を停止するとともに、直
接線430を介して命令制御ユニツトU3(第1
図)にも送出され、RGSW,r306(第3図)
内の書込み用ベクトルレジスタ番号(たとえば
j)に対応するビツト(Wj)をリセツトする。
なお、線430を他のベクトルレジスタ制御回
路1〜7の対応する出力線431〜437と
一緒に束ねたものが第1図の線15である。 (b) 読出しのみの動作 ベクトルレジスタ0の書込み動作が起動されて
いない状態で、このベクトルレジスタの読出しの
起動指示が命令起動制御回路b400(第11
図)より線400を介して伝えられると、読出
し中を示すフリツプフロツプf421がセツトさ
れる。フリツプフロツプf420はリセツトされ
た状態にあるので、その出力を反転ゲートg45
1、オアゲートg452を介して入力され、また
フリツプフロツプf421の出力が入力される。
アンドゲートg453の出力線480は“1”
となる。線480は読出し可能信号として、G
−S変換回路b402(第11図)に供給され
る。したがつて、命令制御ユニツトU3に関して
説明したように、ある命令においてベクトルレジ
スタが読出し用に使用されているときには、この
ベクトルレジスタを書込み用に用いる後読の命令
はこの読出しが終わるまで起動されない。したが
つて、フリツプフロツプf420は、この読出し
が終了するまでセツトされることはないので、線
480にはフリツプフロツプf421がリセツ
トされるまで読出し可能信号が送出されつづける
ことになる。こうして、ベクルレジスタ0の全要
素の読出しが終了すると、線460を介してS
−G変換回路b404から最終ベクトルデータ信
号が入力され、この信号によりフリツプフロツプ
f421がリセツトされる。 なお、線460は、他のベクトルレジスタ制
御回路b411〜b417内の対応する信号線
461〜467と一緒にして、線16とし
て、命令制御ユニツトU3内のRGSW,r30
6(第3図)に送られ、ベクトルレジスタ0の読
出しが終了したことを知らせ、このレジスタのビ
ツトROをリセツトするのに用いられる。 (c) チエイニング動作 チエイニング動作は、あるベクトルレジスタに
対してはじめにある命令のために書込み動作が指
示され、その動作が終了する前に他の命令のため
に読出し動作が指示されたときに生ずる。書込み
動作が指示されても、データ有効信号と書込みデ
ータがリソースから到達しないと、実際にはベク
トルレジスタには書込みがおこなわれないが、こ
のデータ有効信号の到着と、読出し動作の指示の
時間的関係はどうでもよい。 (c−1) たとえば、書込み動作が線41
0により指示され、フリロツプフロツプf4
20がセツトされ、U/DカウウンタC40
0がリセツトされた後、線420からのデ
ータ有効信号の到着前に、読出し動作が線
400により指示され、フリツプフロツプ5
421がセツトされると、U/DカウンタC
400の出力に接続されているカウンタの内
容が1以上になつていることを検出する正検
出回路b406の出力は“0”であり、反転
ゲートg451の出力も“0”なので、アン
ドゲートg453の出力線480も“0”
のままである。ここで、あるマシンサイクル
nにおいて線420にデータ有効信号がく
ると、アントゲートg450を経て、U/D
カウンタC400に、この信号が入り、この
マシンサイクルnにおいて、U/Dカウンタ
C400の内容は+1になる。すると、正検
出回路b460の出力が“1”となり、オア
ゲートg452、アンドゲートg453を経
て、線480にベクトルレジスタ読出し可
能信号が出力される。線480は、U/D
カウンタC400のD端子に接続されてお
り、マシンサイクル(n+1)において次の
データ有効信号線420から入つてこない
ときには、マシンサイクル(n+1)以降で
はカウンタC400の値は0に戻る。したが
つて、読出し可能信号は線480に1回の
み出力されることになる。その後も、データ
有効信号が間けつ的に入力される場合には、
その都度読出し可能信号線480に出力さ
れる。一方、マシンサイクル(n+1)以降
もデータ有効信号が連続して入力されると、
U端子とD端子に“1”が入力されるのでカ
ウンタC400の値は変化せず“1”のまま
となり、線480には続けて“1”が出力
されることになる。 (c−2) 書込み動作が線410により指
示され、フリツプフロツプf420がセツト
され、U/DカウンタC400がリセツトさ
れた後、データ有効信号が複数マシンサイク
ルにわたり到着して、その都度U/Dカウン
タC400がカウントアツプされて、0でな
い値を表示している状態で、マシンサイクル
nにおいて読出し起動によりフリツプフロツ
プf421がセツトされると仮定する。U/
DカウンタC400の出力に接続されている
正検出回路b460の出力は“1”となつて
いるので、ベクトルレジスタ読出し可能信号
が線480に出力される。線480が
U/DカウンタC400の端子に入力されて
いるので、線420からデータ有効信号が
次のマシンサイクル(n+1)においては入
力されなければ−1され、入力されれば値は
変らない。C/DカウンタC400の内容が
0になるまで、上記動作が繰返し行なわれ
る。読出し起動後あるマシンサイクルまでの
間に線480に出力される読出し可能信号
の数は、フリツプフロツプf421がセツト
される前のU/DカウンタC400の内容
と、その後420から入力されたデータ有
効信号の数の和となる。このように、(c−
1),(c−2)のいずれの場合においてもベ
クトルレジスタに書込まれたベクトル要素数
をこえては読出しがなされないように保証さ
れる。なお、U/DカウンタC400の内容
は、ベクトルレジスタに書込んだベクトル要
素数とそこから読出しベクトル要素数の差分
を表現していると考えることができる。 チエイニング動作中に書込みが完了して、フリ
ツプフロツプf420がリセツトされると、U/
Dカウンタの内容は意味をもたなくなり、(b)の読
出しのみの動作と同等となる。 () オペランド制御回路 第16図は、オペランド制御回路0,b420
の詳細を示したものである。他のオペランド制御
回路1〜3の構成も同じで、この図の信号線番号
を、その後のカツコ内に記した信号線番号に変更
すればよい。 命令起動制御回路b400から起動信号が線
440を介して出されると、セレクタS410に
て、線469上の処理ベクトル長(VL)(必ず
1以上であると仮定する)が選択され、ベクトル
長カウンタ(VLCTR)C403にセツトされ
る。また、この起動信号によりU/DカウンタC
401,C402の内容がクリアされる。さら
に、フリツプフロツプf431がセツトされて、
本オペランド制御回路0の処理が有効になつてこ
とを記憶する。オペランド制御回路0に対応する
メモリ・リクエスタ0を必要とする命令が一つの
ベクトルレジスタの読出ししか必要としない場合
(ここでは命令のR3フイールドがベクトルレジス
タの読出しを指定しないと仮定する)はそれを指
示する信号が命令起動制御回路b400から線
450を介して伝えられて、フリツプフロツプf
430をセツトする。 ここでは、最初に、演算器0を必要とする命令
のR2,R3フイールドともベクトルレジスタの読
出しを指定している場合について説明する。この
場合には、フリツプフロツプf430は“0”で
ある。線490,500はそれぞれG−S変
換回路b402,b403からベクトルレジスタ
読出し許可信号をそれぞれカウンタC401,C
402のU端子に入力する信号線で、この信号の
入力され方には、いろいろのケースがある。 各マシンサイクルごとにこれらのケースに応じ
た動作がなされる。ここでカウンタC401,C
402は、カウンタC400(第15図)と同じ
もので、正検出回路b461,b462は正検出
回路b460(第15図)と同じものである。 (a) 両方とも入力されないケース このケースはさらに、次の4つのケースがあ
る。 (a−1) U/DカウンタC401,C40
2のいずれも0のとき、 (a−2) U/DカウンタC401のみ正の
とき、 (a−3) U/DカウンタC402のみ正の
とき、 (a−4) U/DカウンタC401,C40
2のいずれも正のとき、 (a−1)〜(a−3)のケース これらのケースでは、アンドゲースg461〜
G464のいずれの出力も“1”とはならず、何
らの出力も出されない。 (a−4)のケース このケースはすでに、線490,500を
介してベクトルレジスタ読出し許可信号が送られ
た後に生じる。このときには正検出回路b46
0、b462の出力が“1”になり前者は直接
に、後者はオアゲートg460を経てアンドゲー
トg464に入力される。このアンドゲートg4
64の出力“1”はオアゲートg465を経て、
アンドゲートg466に入力される。アンドゲー
トg466には、フリツプフロツプf431の出
力“1”が入力されている。また、アンドゲート
g466には線630,631が入力されて
いるが、これについては後述する。ここではいず
れも“1”であるとする。アンドゲートg466
の出力線520らベクトルデータ送出信号が出
される。出力線520は、U/DカウンタC4
01,C402のD端子に入力され、カウンタ内
容が1だけ減少される。 また、出力線520は、VLCTR,C403
のセツト信号として入力され、カウンタの値を1
だけ減ずる。すなわち、VLCTR,C403の出
力が−1減算回路b463に接続されて−1さ値
がセレクタS410に入力されている。このとき
もはやセレクタS410の制御端子には、線4
40を介して命令起動信号ができていないので−
1減算回路b463の出力が選択され、
VLCTR,C403にセツトされる。この次の回
路動作は、U/DカウンタC401,C402の
内容に応じて、また、線490〜500から
のベクトルレジスタ読出し許可信号の入力状況に
応じて異なる。 なお、ベクトルデータ送出信号が線520に
出力された場合、1検出回路b464により、
VLCTR,C403の、1減じる前の元の内容が
“1”であることが検出されると、その信号はア
ンドゲートg467にてベクトルデータ送出信号
とアンドがとられた後、最終ベクトルデータ信号
として、線510に乗せられる。また、この線
510上の信号によつて、フリツプフロツプf
431,f430をリセツトする。 (b) 線490の方のみ入力されるケース又は (c) 線500の方のみ入力されるース いずれのケースも動作は同様であるので、ここ
では(b)のケースについて説明する。このケースで
は、さらに、次の二つのケースがある。 (b−1) U/DカウンタC402が“0”
のとき、 (b−2) U/DカウンタC402が“正”
のとき、 (b−1)のケース このときには、正検出回路b462の出力は
“0”であるので、アンドゲートg461〜g4
64のいずれの出力は“1”とならず、従つてオ
アゲートg465の出力、アンドゲートg466
の出力も“0”ではU/DカウンタC401,C
402のD端子入力は“0”のままである。ベク
トルデータ送出信号は線520には出力されな
い。U/DカウンタC401のU端子には、線
490からベクトルレジスタ読出し許可信号が入
力されているので、U/DカウンタC401は+
1される。 (b−1)のケース このときには、正検出回路b462の出力は
“1”であるので、アンドゲートg462の出力
が“1”となり、オアゲートg465、アンドゲ
ートg466を経て、ベクトルデータ送出信号が
線520に送られる。VLCTR,C403、フ
リツプフロツプf430,f431のリセツト等
の動作は(a−4)のケースと同一であるので、
ここでは省略する。線520が“1”となるの
で、U/DカウンタC401,C402のD端子
はいずれも“1”となる。U/DカウンタC40
1のU端子には“1”が入力されているので、カ
ウンタの内容は変らない。U/DカウンタC40
2のU端子には、“0”が入力されているので、
カウンタの内容は−1される。 (d) 線490,500のいずれも同時に入力
されるケース このケースはさらに次の4つのケースに分けら
れる。 (d−1) U/DカウンタC401,C402がい
ずれも0のとき、 (d−2) U/DカウンタC401のみ正のと
き、 (d−3) U/DカウンタC402のみ正のと
き、 (d−4) U/DカウンタC401,C402がい
ずれも正のとき、 (d−1)のケース このケースでは、線490,500上のベ
クトルレジスタ読出し許可信号によりアンドゲー
トg461の出力信号が“1”となり、この結果
ベクトルデータ送出信号が線520に出力され
る。U/DカウンタC401,C402のU端子
は“1”であり、D端子も線520の上の
“1”が入力されるのでカウンタの内容はかわら
ない。VLCTR,C403の制御等の動作は(a
−4)のケースの説明と同一である。 (d−2),(d−3)のケース この両ケースの動作は同様であるので、(d−
2)のケースについて述べる。 (d−2)のケースでは、U/DカウンタC4
01のみ内容が正であるから、正検出器路b46
01のみ内容が正であるから、正検出器路b46
1の出力が“1”となり、アンドゲートg461
およびg463の出力が“1”となる。従互たオ
アゲートg465、アンドゲートg466を経
て、線520に、ベクトルデータ送出信号が送
出されることになる。VLCTR,C403等の制
御は、(a−4)のケースと同一なので、説明は
省略する。U/DカウンタC401,C402の
内容は、(d−1)のケースでの動作と同様なの
で変化しない。 (d−4)のケース このケースでは、U/DカウンタC401,C
402の内容は正であるから、正検出回路b46
1,b462の出力が“1”となり、アンドゲー
トg461〜g464のすべての出力が“1”と
なる。以下の動作は(d−2)のケースと同様
で、ベクトルデータ送出信号が線520に送出
される。U/DカウンタC401,C402の内
容は同様に変化しない。 以上の動作の説明からわかるように、U/Dカ
ウンタC401,C402は2つのオペランド
(ベクトルデータ)の送出に関し同期をとる役割
を果たす。一方のみしかベクトルレジスタ読出し
許可信号がこないときには、それをカウンタ記憶
し(カウンタ+1する)、それを取り出すとカウ
ンター−1していく。ベクトルレジスタ読出し許
可信号が同時に到着したときにはカウンタの内容
は変化しない。 次に、オペランドを一方しか使用しない場合に
ついて説明する。この場合には、オペランド制御
回路の起動時に、オペランドを一方しか使用しな
いことを示すフリツプフロツプf430がセツト
される。この出力は、正検出回路b462の出力
に接続されるオアゲートg460のもう一方の入
力端子に入力され、オアゲートg460の出力を
U/DカウンタC402の内容の如何にかかわら
ず“1”としてしまう。こうすると、線490
から入力されるベクトルレジスタ読出し許可信号
のみによつて、先と同様に、ベクトルデータ送出
信号が作成される。 なお、第16図中に示した線630は、ベク
トルデータ送出信号の送出を許可するベクトルで
ある。これは、たとえば、演算器に対し、一定間
隔以上はなしてベクトルデータ(従つてデータ有
効信号)を送出したいとき(たとえば演算器が連
続してデータを受取ることができないとき)に使
用される。この場合には、この許可信号はオペラ
ンド制御回路内で作成される。たとえば、データ
有効信号によつてリセツトされ、データ有効信号
から一定時間後にセツトされるフリツプフロツプ
の出力がこの許可信号となる。また、メモリ・リ
クエスタに送出するベクトルデータを一時停止す
るとき(主記憶格納がまたされるとき)などにも
使用される。この場合には、この許可信号に主記
憶制御ユニツトU1(第5図参照)、またはメモ
リ・リクエスタにて作成される。線630に
て、ベクトルデータ送出が不許可のとき、線4
90,500から入力されるベクトルレジスタ
読出し許可信号はU/DカウンタC401,C4
02に入力されてカウンタが更新される。線6
30から許可信号が入力されると、線490,
500から信号の入力がなくても、U/Dカウ
ンタC401,C402の内容が正であるため、
アンドゲートg464の出力が“1”となつて、
ベクトルデータ送出信号が線520に出される
ことになる。同時に、U/DカウンタC401,
C402は−1される。 また、タイミング制御回路b465はベクトル
データ送出信号の送出タイミングを制御する回路
である。第18図の説明にて詳述するように、ベ
クトルレジスタに対し読出し書込みをみかけ上同
時に行なうために各ベクトルレジスタを二つのメ
モリ素子にて構成し、各メモリ素子に対して読出
し書込みを交互に行なう。すなわち、あるメモリ
素子に書込みを行なうときには、もう一方のメモ
リ素子は読出しを、次のサイクルにはその逆を行
なうというように制御する。従つて、書込みを行
なつているメモリ素子に対しては同時に読出しを
行なうことはできないので、そのサイクルは読出
しを待たせ、次のサイクルにて読出すように制御
する必要がある。このために、ベクトルデータ送
出信号の送出を一旦またせるように制御する。こ
の役割を相当するのがタイミング制御回路b46
5で、次のサイクルでは、ベクトルデータ送出信
号を送出してはならないと判断されると、タイミ
ング制御回路b465は出力線631をを
“0”としてアンドゲートg466の出力を抑止
する。 具体的には、タイミング制御回路b465は、
次のような動作をする。すなわち、あるマシンサ
イクルにベクトルデータ送出信号が入力される
と、次のマシンサイクル、その2サイクル、4サ
イクル……後のマシンサイクルに“1”を出力す
る。1サイクル、3サイクル……後のマシンサイ
クルには“0”を出力する。このタイミングを第
17図に示す。連続してベクトルデータ送出信号
が入力されると、次のマシンサイクルは“1”が
出力されることから、タイミング制御回路b46
5から連続して“1”が出力されることに注意さ
れたい。 本実施例においては、オペランド制御回路は、
2つのベクトルレジスタの読出し可能信号を入力
した場合について述べているが、3つ以上のベク
トルレジスタの読出し可能信号を入力して、ベク
トルデータ送出信号を作成することも同様に容易
に実現できる。 () ベクトルレジスタデータユニツト 第18図において、8個のベクトルレジスタの
各々はそれぞれベクトルレジスタ回路b470〜
b477中にある各ベクトルレジスタは、その容
量が大きいために、メモリ素子にて構成される。
メモリ素子は、アドレスを与えて、その個所にデ
ータを書込むか、または、その箇所のデータを読
出すが、同時に異なるアドレスについて読出し、
書込みを行なうことはできない。チエイニング動
作を実現するには、あるベクトル要素を書込み、
同時に他のベクトルデータを読出す必要があるの
で、本実施例では、1つのベクトルレジスタに対
し2つのメモリ素子m400,m401にて二つ
のベクトルレジスタを構成し、これらに対して交
互に読出しと書込みを行なう。こうすると異なる
アドレスに対し同時に読出しと書込みを行うこと
ができる。 ベクトル要素の番号付けは偶数番目のベクトル
要素と、奇数番目のベクトル要素がそれぞれ同一
のメモリ素子になるように配置されるとする。 以下に動作の詳細を説明する。ここではベクト
ルレジスタ0に対する書込みおよび読出しについ
て説明するが、他のベクトルレジスタへの動作に
ついてもまったく同様である。 命令が起動されると、ベクトルレジスタ制御ユ
ニツトU40中の命令起動制御回路b400(第
12図)より、S−G変換回路b480、G−S
変換回路b481,b482にリソース種類、番
号が線439を介して、書込みベクトルレジス
タ番号が線439を介して、書込みベクトルレジ
スタ番号(2つオペランドがあるので双方の番
号)が線449,459を介して、以上のセ
ツト信号が線419を介して送られてきて、S
−G変換回路b480、G−S変換回路b48
1,b482中にセツトされる。S−G/G−S
変換回路b480,b481,b482は第13
図、第14図にて説明したものと同一である。 ベクトルレジスタ0への書込みは、次のように
動作する。まず、ベクトルレジスタ0への書込み
開始を指示する信号が、線410を介して命令
起動制御回路b400より送出されてくる。この
信号によつて書込みアドレスカウンタC411を
0にクリアする。書込みアドレスカウンタC41
1の出力は、セレクタS420,s421に入力
される。セレクタS420,s421の他の入力
は読出しアドレスカウンタC410の出力であ
り、これらのセレクタの制御端子にはそれぞれタ
イミング制御回路b482の出力およびそれを反
転ゲートg480で反転した出力が入力される。
タイミング制御回路b482は、1マシンサイク
ルごとに出されるクロツクをトリガタイプフリツ
プフロツプ(図示せず)にて受信するように構成
されており、1マシンサイクルごとに“0”と
“1”を交互に出力する。従つて、タイミング制
御回路b482は、これらのセレクタを、セレク
タs420にて、読出しアドレスカウンタC41
0の出力を選択するときには、セレクタs421
では、書込みアドレスカウンタc411の出力を
選択し、次のマシンサイクルでは、その逆を選択
するように制御する。セレクタs420の出力が
メモリ素子m400のアドレスとして、セレクタ
s421の出力がメモリ素子m401のアドレス
として与えられる。さて、演算器0,1またはメ
モリ・リクエスタ0,1から線45,45′,
29,29′を介して書込みデータがS−G
変換回路b480に到着すると、このデータは線
429で指定されたリソースから線439で
指定されたベクトルレジスタに対応するベクトル
レジスタ回路b470〜b477のいずれかに入
力される。ここでは、ベクトルレジスタ0に書込
むとしているので、回路b470に入力される。
書込みデータは、回路b470の入口に設けられ
たレジスタVRIRE,r430,VRIRO,r44
0にVRIR入力制御回路b484の指示により、
交互にセツトされる。VRIR入力制御回路b48
4には、データ有効信号420が入力され、デ
ータ有効信号420が入力され、データ有効信
号の偶数番目、奇数番目ごとにそれぞれVRIRE,
r430,VRIRO,r440にそれぞれデータ
をセツトするように制御する。書込みを行なうべ
きサイクルが2つのメモリ素子m400,m40
1に交互に割当てられており(詳細後述)、任意
サイクルに任意のベクトル要素に書込みを行なう
ことはできず、1サイクル待たされることがあ
り、このときに、同じベクトルレジスタ回路b4
70に次の書込みデータが到着することが慰るの
で、2つのレジスタVRIRE,VRIROを設け、相
続く二つの書込みデータに異なるメモリ素子m4
00,m401に書込めるようにした。書込みの
指示は、ベクトルレジスタ制御回路0、(第14
図)から線420を介して入力されるデータ有
効信号によりなされる。この信号は、書込みタイ
ミング制御回路b483に入力される。回路48
3は偶数番目/奇数番目の書込み指示に従つて2
マシンサイクル間保持した信号第19図に示すよ
うなタイミングで2本出力し、この出力はそれぞ
れアンドゲートg481,g482に入力され
る。一方、これらのアンゲートには、タイミング
制御回路b482の出力、およびそれを反転ゲー
トg480で反転させた出力が入力され、その出
力がそれぞれメモリ素子m400,m401の書
込み有効信号となる。書込みアドレスカウンタc
411は次のアドレスをさすように+1回路b4
81を経て+1される。この制御はアンドゲート
g481,g482の出力をオアゲートg48で
オアした出力により行なわれる。なお、書込みは
メモリ素子m400,m401に交互に書いてい
くので、書込みアドレスカウンタc411は、メ
モリ素子m400,m401の双方に書込んだ後
に+1すればよいことになるが、ここでは、書込
みアドレスカウンタの下1ビツトを無視した値を
書込みアドレスとして、セレクタs420,s4
21に入力される。これは、読出しアドレスカウ
ンタc410についても同様である。以上述べた
ように、ベクトル要素はメモリ素子m400,m
401に交互に書込まれていく。以上の動作のタ
イムチヤートにして第19図に示す。 ベクトルレジスタ0からの読出しは、次のよう
に動作する。最初に、ベクトルレジスタ0からの
読出し開始を指示する信号が、線400を介し
て命令起動制御回路b400より送出されてく
る。この信号によつて、読出しアドレスカウンタ
c410をクリアする。最初は、読出しアドレス
カウンタc410は0にクルアされているので、
セレクタs420,s421を経て、アドレスが
メモリ素子m400,m401に与えられ、0番
地のデータが読出されて、セレクタs422に入
力される。セレクタs422の制御端子には、タ
イミング制御回路b482の出力を反転ゲートg
480で反転した出力が入力され、いずれのメモ
リ素子から読出されたデータを選択するかが指示
されてメモリm400のよみ出しサイクルにはメ
モリm400の出力を、次のサイクルにはメモリ
m401の出力と交互に選択するように制御され
る。これによつて選択されたデータは、レジスタ
(VROR)r450にて一旦セツトされた後、G
−S変換回路b481,b482により、リソー
ス対応のデータに変換され、たとえば演算器0へ
の被演算数のデータならば、線41によつて、
演算器0へ送出される。メモリ・リクエスタへの
データ(主記憶への格納データ)は1つでよいの
でG−S変換回路を1つ使用すればよい。ここで
は回路b481にて、G−S変換を行なうように
している。ベクトルデータのうち1ベクトル要素
を送出するごとに、ベクトルレジスタ制御ユニツ
トU40より、ベクトルレジスタの読出しアドレ
スカウンタc410の更新信号が、線470を
介して送出される。これによつて、読出しアドレ
スカウンタc410が1ずつ更新される。更新
は、カウンタc410の出力を+1加算回路b4
80を経てカウンタc410の入力に戻すことに
よつて行なう。 以上述べてきたように、ベクトルレジスタユニ
ツトでは、リソースに供給するベクトルデータの
読出し、およびリソースから送出されてくるベク
トルデータの格納を行なう。ここでリソースに供
給するデータは、演算には2つの必要なので、2
つのベクトルデータを揃えてから送出しなければ
ならない。しかも、チエイニング動作によつて、
各ベクトルレジスタに不等間隔で格納される任意
の2つのベクトルレジスタ上のベクトル要素につ
いて、2つともデータが揃つたことを確認した上
で、読出す必要がある。このために、ベクトルレ
ジスタの各々が、読出し可能か否かを検出する回
路と、リソース対応に、2つのデータが読出し可
能を検出する回路を設け、読出し可能のときはじ
めて、ベクトルレジスタからデータを読出す(実
際には、すでにデータが読出されており、その読
出しのために、読出しアドレスカウンタを更新す
る)。 メモリ・リクエスタ メモリ・リクエスタ0の回路の詳細を第20図
に示す。メモリ・リクエスタの動作は、命令起動
時の初期化動作、主記憶からの読出し動作、主記
憶への格納動作の3つに分けられる。 () 命令起動時の初期化動作 第20図において、命令制御ユニツトU3によ
り、線10を介して命令起動信号が、線13
を介して、リソース種類、番号が線11を介し
て、命令コードが、線12を介してレジスタ番
号が、線14を介して、処理ベクトル長が送ら
れてくる。線13上のリソース種類、番号は、
デコーダb100でデコードされ、自メモリ・リ
クエスタであることが指定されていると、デコー
ダb100より“1”が出力され、線10上の
命令起動信号とともに、アンドゲートg100に
入力され、その出力線100に“1”が出力さ
れる。線100はフリツプフロツプf100に
入力されてフリツプフロツプをセツトするととも
に、レジスタMIR,r100,MGR,r101
のセツト端子に入力されて、それぞれ、命令コー
ド、およびレジスタ番号をMIR,MGRにセツト
する。また線100はセレクタs103の制御
端子に入力されて、線14上の処理ベクトル長
を選択し、処理ベクトル長カウンタ
(MVLCTR)、c100に処理ベクトル長にセツ
トする。MVLCTR,c100のセツト端子に
も、線100が接続されている。以上で初期化
動作を終了する。 () 主記憶から読出し動作 主記憶からの読出し動作であることは、命令コ
ードがセツトされているMIR,r100の出力
をデコーダb101でデコードすることによつて
知る。デコーダb101の出力線20は主記憶
制御ユニツトU1(第1図参照)に送られて、読
出しか、格納かの動作指定をするとともに、セレ
クタs104,s105,s106,s107の
制御端子に入力され、それぞれのセレクタの
“F”と記入されている側を選択する。なお、主
記憶への格納がMIR,r100にて指定してい
る場合には、セレクタの“S”と記入されている
側を選択する。 ベクトルアドレスレジスタU5、およびベクト
ルアドレス増分レジスタU6(第1図参照)の出
力がそれぞれ線18、線19に介してそれぞ
れセレクタs100,s101に入力されて、レ
ジスタ番号がセツトされているMGR,r101
の出力により指定されたベクトルアドレスレジス
タU5、およびベクトルアドレス増分レジスタU
6の内容が選択され、さらに、ベクトルアドレス
はセレクタs102を経て作業用ベクトルアドレ
スレジスタ(WVAR)r100、および作業用
ベクトルアドレス増分レジスタ(WVAIR)r1
11にセツトされる。両レジスタへのセツトは、
フリツプフロツプf100に出力線101によ
り制御される。また、セレクタs102の制御端
子にも線101が接続され、セレクタs100
の出力を選択するように制御する。ベクトルアド
レスWVAR,r110にセツトされると、線
21により、主記憶制御ユニツトU1(第1図)
に最初のベクトル要素アドレスが送られる。同時
に、MVLCTR,c100の出力に接続された非
零検出回路b104より(処理ベクトル長として
1以上がMVLCTR)にセツトされているとする
と)“1”が出力され、セレクタs107を経て、
線23によりアドレス有効信号として、主記憶
制御ユニツトU1により送られる。線23はま
た、MVLCTR,c100の制御端子に入力され
て、MVLCTR,c100に内容を−1する。1
減じた値はMVLCTR,c100の出力に接続さ
れた1減算回路b103により作成され、セレク
タs103を経て、MVLCTR,r100に入力
される。さらに、線23は、WVAR,r11
0の制御端子にも入力され、WVAR,r110
と、WVAIR,r111の内容を加算器b102
で加算した結果を、セレクタs102を経て再び
WVAIR,r110にセツトするように制御す
る。これによつて、次のベクトル要素アドレスが
WVAR,r110にセツトされたことになる。
これを次々と繰返して、ベクトルアドレスを求め
てはアドレス有効信号(線23)とともに、主
記憶制御ユニツトU1に線21を介して送出
し、主記憶の読出し動作が行なわれる。 主記憶での読出し動作が完了すると、主記憶制
御ユニツトU1より線24を介して読出しデー
タが、線25を介して、データ有効信号が返さ
れる。線24上の読出しデータは、セレクタs
105を経て、データレジスタDR,r120に
入力され、線25がセレクタs104を経て、
DR,r120のセツト端子に入力されて、読出
しデータが、DR,r120にセツトされ、その
出力が線29を介してベクトルレジスタデータ
ユニツトU41(第10図)に送られる。また、
線25上のデータ有効信号はフリツプフロツ
プ、f102に一旦セツトされ、線30によ
り、ベクトルレジスタ制御ユニツトU40に送ら
れる。 MVLCTR,c100が減算していき、内容が
“1”になると、1検出回路b105によつて、
最終ベクトル要素であることが検出され、線3
2によつて、最終レジスタデータ信号が、主記憶
制御ユニツトU1にベクトルアドレス(線2
1)、アドレス有効信号(線23)とともに送
出され、線33によつて、読出しデータと同期
して戻される。線33上の最終ベクトルデータ
信号は、フリツプフロツプf103にて一旦セツ
トされ、セレクタs106を経て、線26によ
り、ベクトルレジスタ制御ユニツトU4(第10
図)に送られたが、MVLCTR,c100の内容
は、1減算回路b103を経て“0”になると、
非零検出回路b104は“0”を出力し、アドレ
ス有効信号の送出が停止される。以上で、ベクト
ルデータの読出し動作が終了する。 () ベクトルデータの格納動作 ベクトルデータの格納においては、先ず、格納
できることを指定する信号が、線20を介して
主記憶制御ユニツトU1に送られる。この信号は
MIR,r100の内容をデコーダb101でデ
コードすることにより作成される。格納すべきデ
ータの主記憶アドレスの送出は、読出し動作とま
つたく同じである。すなわち、ベクトルアドレス
レジスタおよびベクトルアドレス増分レジスタ中
の指定された1つがセレクタs100,s101
により選択されて、それぞれWVAR,r110,
WVAIR,r120にセツトされる。WVAR,
r110の出力線21により主記憶制御ユニツ
トU1にベクトルアドレスが送られることも読出
し動作と同様である。 格納されるデータは、線27により、データ
有効信号(線28上)とともに、ベクトルレジ
スタユニツトU4より送られてくる。ベクトルデ
ータはセレクタs105を経て、DR,r120
にセツトされる。DR,r120へのセツトの制
御は、線28上のデータ有効信号をセレクタs
105を経てDR,r120のセツト端子に入力
することにより行なう。線28上のデータ有効
信号はまた、フリツプフロツプ、f101にも入
力され、一旦セツトされた後、その出力は、セレ
クタs107を経て、線23によりDR,r1
20上の格納すべきベクトルデータとともに主記
憶制御ユニツトU1へおくられる。これによつ
て、主記憶制御ユニツトは、主記憶への書込み動
作を行なう。線23上のアドレス有効信号は、
WVAR,r110のセツト端子に入力されて、
WVAR,r110の更新に使用されることは読
出し動作と同様である。以上のようにして、ベク
トルレジスタユニツトから格納すべきデータとデ
ータ有効信号が送られてくるたびに、そのアドレ
スを付して主記憶制御ユニツトへ送出すると同時
に、WVAR,r110を更新して、次のベクト
ルデータの格納にそなえる。これを、ベクトルレ
ジスタユニツトからデータが送られてくる限り繰
返し行なう。 なお、格納動作においては、MVLCTR,c1
00は、読出し動作と同様に動作はするが、意味
はもたない。最終ベクトルデータ信号が線32
により主記憶制御ユニツトにおくられても、格納
動作時は無視される。 演算器 第21図は、演算器0の概略を示したものであ
る。演算器1も同一構造である。本実施例におい
ては、演算回路b210〜b213はすでに公知
のごとく、各々への入力に対する部分演算を演算
制御回路b201〜b204の制御の下で行なう
ものである。ここで、パイプライン演算は4つの
ステージに分けて実行されると仮定しているが、
このステージ数に特に制限はない。又、演算器
0,1は命令で指定される各種の演算を行いうる
ものとする。本実施例においては、入力オペラン
ドとしてベクトルデータ、およびそのデータ有効
信号が入力されると、パイプライン・ステージに
よつて演算され、結果のベクトルデータと、デー
タ有効信号が同期して出力されること、最終ベク
トルデータ信号が入力されたときには、この信号
もデータ有効信号と同期して出力されることが特
長である。 動作の概略を以下に説明する。 命令制御ユニツトU3より線10を介して命
令起動信号がアンドゲートg200に入力され、
線13を介してリソース種類、番号がデコーダ
b200に入力され、線11を介して命令コー
ドがレジスタr200に入力される。デコーダb
200の出力は、それへの入力が自演算器に対す
るものであるときに、“1”となり、アンドゲー
トg200を介してレジスタAIR,r200に線
11上の命令コードのセツトを指示する。
AIR,r200の出力は、演算制御回路b201
〜b204に入力されて、各ステージにおける演
算回路b210〜b213の動作を制御する。 一方、ベクトルレジスタユニツトから、演算す
べきベクトルデータが線43により送出されて
くると、ベクトルデータはレジスタr210,r
220に、データ有効信号はフリツプフロツプf
200にセツトされる。データ有効信号(4
3)はレジスタr210,r220へのセツト信
号としても使用される。レジスタr210,r2
20上の内容は、演算回路b210にて演算され
て、次のサイクルにはレジスタr211,r22
1に中間結果がセツトされる。レジスタへのセツ
トはフリツプフロツプf200の出力が使用さ
れ、この出力はまたフリツプフロツプf210に
伝えられる。同様に、レジスタr211,r21
2の出力は、演算回路b211に入力されて演算
を行ない、次のサイクルには、レジスタr21
2,r222に中間結果がセツトされる。これと
同期して、フリツプフロツプf201の出力は、
フリツプフロツプf202に移される。以下、こ
れを繰返して、演算回路b212、レジスタr2
13,演算回路b213とデータが移動するとと
もに演算が進行し、最終結果がレジスタr214
にセツトされる。データ有効信号もフリツプフロ
ツプf202からフリツプフロツプf203、フ
リツプフロツプf204と移される。演算結果
と、そのデータが有効であることを示すデータ有
効信号は、それぞれ、線45と線46によ
り、ベクトルレジスタユニツトに戻される。 演算すべきデータがレジスタr210,r22
0から、レジスタr211,r221に移される
と、次の演算すべきデータがレジスタr210,
r220にセツトされることは、一般のパイプラ
イン演算器と同様である。 最終ベクトルデータ信号線40により、フリ
ツプフロツプf210に入力されると、レジスタ
へのセツトと同様にして、フリツプフロツプf2
10にセツトされる。データ有効信号が、フリツ
プフロツプf200〜f204を移動するのと同
期して、最終ベクトルデータ信号がフリツプフロ
ツプf210〜f214を移動し、線44に出
力され、ベクトルレジスタユニツトU4に戻され
る。 以上述べたように、本発明における演算器では
ベクトルデータと、データ有効信号が同期して入
力され、データ有効信号のパイプラインステージ
を移動するのと同期して、データが演算され、結
果がデータ有効信号と同期に出力されることが特
長である。最終ベクトルデータ信号についても同
様である。 以上のごこく、本発明によれば、演算器を動作
させたままで、不等間隔の読み出しおよびそれに
同期した結果の書き込みを行いうる。
【図面の簡単な説明】
第1図は、本発明によるベクトルプロセツサの
概略構成図、第2図は、本発明にて使用する各種
レジスタの形式を示す図、第3図は、命令制御ユ
ニツトの詳細を示す図、第4図は、命令キユーの
詳細を示す図、第5図は、リソース使用チエツク
回路の詳細を示す図、第6図aは、レジスタ使用
チエツク回路の詳細を示す図、bはチエツク条件
を示す図、第7図は、レジスタ競合チエツク回路
の詳細を示す図、第8図は、命令制御ユニツトの
変形例を示す図、第9図は、第8図のb394の
詳細ブロツク図、第10図は、ベクトルレジスタ
ユニツトの構成を示す図、第11図は、ベクトル
レジスタ制御ユニツトの詳細図、第12図は、命
令起動制御回路の詳細を示す図、第13図は、S
−G変換回路の詳細を示す図、第14図は、G−
S変換回路の詳細を示す図、第15図は、ベクト
ルレジスタ制御回路の詳細を示す図、第16図
は、オペランド制御回路の詳細を示す図、第17
図は第16図のタイミング制御回路の動作のタイ
ムチヤート、第18図は、ベクトルレジスタデー
タユニツトの詳細を示す図、第19図は第18図
の回路のタイムチヤート、第20図は、メモリ・
リクエスタの詳細を示す図、第21図は、演算器
の詳細を示す図である。

Claims (1)

  1. 【特許請求の範囲】 1 主記憶装置と、 複数のベクトルレジスタと、 それぞれパイプライン的に演算を行う複数の演
    算手段と、 ベクトル演算を要求する命令に応答して、第1
    のベクトルレジスタから演算を受けるべきオペラ
    ンドベクトル要素を読み出し、該複数の演算手段
    のうち、該ベクトル演算を実行する一つの演算手
    段へ供給し、該一つの演算手段からそれらのオペ
    ランドベクトル要素に対する演算結果として出力
    される複数の結果ベクトル要素を、第2のベクト
    ルレジスタに書き込む制御回路とを有し、 該制御回路は、不等間隔で入力されうる複数の
    信号の各々に応答して、該第1のベクトルレジス
    タからオペランドベクトル要素を読み出す手段
    と、該読み出し手段による、該第1のベクトルレ
    ジスタからのベクトル要素の読み出しの有無に関
    係なく、該一つの演算手段を動作させ、あるオペ
    ランドベクトル要素の読み出し後該一つの演算手
    段による演算時間に依存して定まる一定時間経過
    したタイミングに同期して、該一つの演算手段か
    ら出力される結果ベクトル要素を、該第2のベク
    トルレジスタに書き込む手段とを有するデータ処
    理装置。 2 該読み出し手段は、該第1のベクトルレジス
    タからのベクトル要素の読み出しと同期して読み
    出し有効信号を出力する手段を有し、該書き込み
    手段は、あるオペランドベクトル要素に対して出
    力された読み出し有効信号を、該一つの演算手段
    による演算時間に依存する一定の時間の間遅延す
    る手段と、その遅延手段から出力された読み出し
    有効信号に応答してそのオペランドベクトル要素
    に対して該一つの演算手段から供給される結果ベ
    クトル要素を該第2のベクトルレジスタに書き込
    む手段とを有する第1項のデータ処理装置。 3 該遅延手段は、複数の記憶手段を縦続接続し
    たものである第2項のデータ処理装置。
JP22634187A 1987-09-11 1987-09-11 データ処理装置 Granted JPS63100573A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22634187A JPS63100573A (ja) 1987-09-11 1987-09-11 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22634187A JPS63100573A (ja) 1987-09-11 1987-09-11 データ処理装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP56210392A Division JPS58114274A (ja) 1981-12-28 1981-12-28 デ−タ処理装置

Publications (2)

Publication Number Publication Date
JPS63100573A JPS63100573A (ja) 1988-05-02
JPH046992B2 true JPH046992B2 (ja) 1992-02-07

Family

ID=16843649

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22634187A Granted JPS63100573A (ja) 1987-09-11 1987-09-11 データ処理装置

Country Status (1)

Country Link
JP (1) JPS63100573A (ja)

Also Published As

Publication number Publication date
JPS63100573A (ja) 1988-05-02

Similar Documents

Publication Publication Date Title
JPS6152512B2 (ja)
JP5474014B2 (ja) サブワード実行を用いるvliwベースのアレイプロセッサで条件付き実行をサポートする方法及び装置
US4794517A (en) Three phased pipelined signal processor
CA1176757A (en) Data processing system for parallel processings
JP6660991B2 (ja) マルチスレッドプロセッサでのタスクのスケジューリング
US4745544A (en) Master/slave sequencing processor with forced I/O
US5081574A (en) Branch control in a three phase pipelined signal processor
US5073970A (en) Vector processing apparatus allowing succeeding vector instruction chain processing upon completion of decoding of a preceding vector instruction chain
US4658355A (en) Pipeline arithmetic apparatus
JPS6239780B2 (ja)
KR102458467B1 (ko) 벡터 생성 명령
JPS59128670A (ja) ベクトル処理装置
JPS60136870A (ja) ベクトル処理装置
JPH046992B2 (ja)
US5479620A (en) Control unit modifying micro instructions for one cycle execution
US8200943B2 (en) Microprocessor
JPH0454262B2 (ja)
JPS61180370A (ja) データ処理装置
JPH0616287B2 (ja) マスク付きベクトル演算処理装置
JP5145659B2 (ja) ベクトルリネーミング方式およびベクトル型計算機
JP2926045B2 (ja) マイクロプロセッサ
JPH05143447A (ja) デイジタルプロセツサ及びその制御方法
JPH0266624A (ja) データ処理装置
JP2556083B2 (ja) 複合演算パイプライン回路
JP4413905B2 (ja) Simd型プロセッサ