JPS63100572A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPS63100572A
JPS63100572A JP22634087A JP22634087A JPS63100572A JP S63100572 A JPS63100572 A JP S63100572A JP 22634087 A JP22634087 A JP 22634087A JP 22634087 A JP22634087 A JP 22634087A JP S63100572 A JPS63100572 A JP S63100572A
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.)
Granted
Application number
JP22634087A
Other languages
English (en)
Other versions
JPH0454262B2 (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 JP22634087A priority Critical patent/JPS63100572A/ja
Publication of JPS63100572A publication Critical patent/JPS63100572A/ja
Publication of JPH0454262B2 publication Critical patent/JPH0454262B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [発明の利用分野] 本発明は、プログラム制御のデジタル計算機、特にベク
トル演算を高速で実行するのに好適なディジタル計算機
(以下これをベクトルプロセッサとよぶ)に関する。
[従来技術] 科学技術計算に頻繁に現れる大形行列計算などの高速処
理用にベクトルプロセッサが考案されている。
特に、複数個のパイプライン演算器の高速性を有効に発
揮し、演算データの転送能力を向上させるため、ベクト
ル・レジスタとチエイニング機能を有するベクトルプロ
セッサが提案されている(米国特許4128880号)
A、従来の装置ではチエイニングについて次の問題点が
ある。このことをベクトル演算の簡単な例を挙げて説明
する。
FORTRAN文 DO10I=1.L 10Y (I)=A (I)+B (I)*C(I)こ
の処理を、ベクトル命令の形に表現すると1 、 Ve
ctor Load        VRO4−A2 
、 Vector Load        V R1
←B3 、 Vector Load        
VR2←C4、Vector Multiply   
  V R3←VR1*VR2 4、Vector Add        VR4←V
R0+VR3 4、Vector 5tore        V R
4←YここでVRiはi番目のベクトルレジスタを表わ
す。各ベクトル命令は、演算、データ転送を、エレメン
トL個分、繰り返して実行する。
上側では、最終結果を求める前の中間結果であるベクト
ルBとCの乗算結果をベクトルレジスタVR3へ一時的
に格納して、これとベクトルAとの加算結果Yのみを主
記憶にしている。−殻内に、ベクトルレジスタを備える
ベクトルプロセッサでは、演算の中間結果のベクトルを
一時的にベクトルVRIへ格納し、最終結果ベクトルの
みを主記憶装置ヘスドアする。これにより、実質的に主
記憶装置との間のデータ転送回数が減少する。したがっ
てベクトルレジスタの書込み読出し動作を高速化すれば
、これに比べ主記憶装置のアクセス能力を比較的に低く
ても、演算に必要なデータ転送能力を十分確保すること
が可能である。
ところで、上側の第4と5のベクトル命令に着目してみ
ると、先行命令4の乗算結果を格納するベクトルレジス
タVR3は、後続のベクトル加算命令5のオペランドを
読出すべきベクトルレジスタにもなっている。もし、第
4のベクトル乗算命令により、L個の結果が全てベクト
ルレジスタVR3へ書込れるまで待って、後続のベクト
ル加算命令5を起動するように制御すれば、複数の演算
器(例えば乗算器と加算器)を並列に動作させたことに
ならず、処理時間は延びる。このように、先行するベク
トル命令の演算結果あるいはフェッチ・ベクトルデータ
を格納するベクトルレジスタを、後続のベクトル命令が
オペランドとして続出するために生じる待ち状態は、上
側のベクトル命令の2または3と4の間、1と5の間、
5と6の間にも存在している。この待ちを減少するのが
チエイニング機能である。従来技術ではチエイニング動
作として、先行のベクトル命令で得られる演算結果をた
とえば、ベクトルレジスタVR工へ書込むと同時に、即
時に後続のベクトル命令のオペランドとして演算器へ転
送している。チエイニングが可能ならば、先行ベクトル
命令の最終エレメント演算終了まで待ちことなく、先行
ベクトル命令の最初のエレメントの演算結果が出力され
るとともに後続ベクトル命令を起動することができる。
これにより、多項形のベクトル計算においても、複数の
演算器を並列に動作させ、演算の並列性を高めて高速処
理を行なうことができる。
しかし、従来技術でのチエイニングでは、先行ベクトル
命令の演算結果ベクトルあるいはフェッチ・ベクトルデ
ータの最初の要素があるベクトルレジスタへ書込まれる
時刻に完全に同期して、後続ベクトル命令のための当該
ベクトルレジスタの読出しを開始していた。そこで命令
起動時に、その命令のオペランドを読出すべきベクトル
レジスタが先行命令により書込みのために用いられるか
の判定をしてこの判゛定が肯定的のときには上述のチエ
イニングの可否を判定する。チエイニングが可能ならそ
の命令が起動されるが、不可能ならばその命令は、該先
行命令による全エレメントの書込みが終了して、そのベ
クトルレジスタが解放されるまで起動を待たされる。チ
エイニグ可能な命令の起動は、先行ベクトル命令の演算
結果あるいはフェッチ・データの第1番目のエレメント
がそのベクトルレジスタへ到着する時点で行なわれる。
これはチエイン・スロット・タイムと呼ぶことがある。
したがって、このチエイン・スロット・タイムの時刻で
、以後全エレメントについて、先行命令の書込みが後続
命令の読出しと完全に同期できると予測できるときにの
み、チエイニング可能と判定する。
したがって、従来のチエイニングには次の二つの制約が
ある。
(1)第1エレメントの書込み時(即ち、チエイン・ス
ロット・タイム)以後に解読されたベクトル命令は、そ
の解読時点がチエイン・スロット・タイムをすぎている
ので、チエイニング不可能と判定され、後続命令の起動
は先行命令による書込みが全て終了するもで待たされる
6例えば、上記例でベクトル命令4と5の間に他の複数
のベクトル命令が存在し、そのため命令5の解読時刻が
命令4のチエイン・スロット・タイムを経過してしまう
場合には、ベクトルレジスタVR3のチエイニングは不
可能となり、ベクトル命令4の実行が完全に終了するま
で命令5の開始は待たされ、結局処理時間は延びる。
(2)さらに演算の多くは、2つのベクトルオペランド
を演算して1つの結果を出力する形であるから、この読
出すべき2つのオペランドをそれぞれ格納する二つのベ
クトルレジスタがともに、各々先行命令による書込み中
であるとき、これら両方をチエイニングして同一演算器
へ入力するためには、両オペランドの対応するエレメン
トが全て同一時刻に両Vレジスタへ書込まれることが保
証されなければならない。例えば上側でベクトル命令1
による主記憶装置5からのフェッチ・ベクトルデータの
ベクトルレジスタVROへの到着と、ベクトル命令4の
乗算結果ベクトルのベクトルレジスタVR3への到着が
全エレメント対について同期することが、ベクトル命令
5の解読時に予測されうるならば、チエイニング可能と
判定され即時起動される。
したがって、両ベクトルデータの連続する要素が1サイ
クルピツチで連続してベクトルレジスタに到達するとと
もに、両ベクトルデータのチエインスロットタイムが同
一でなければならない。
しかし、−勢的に主記憶装置からのデータのフェッチは
、複数のメモリアクセスのバンク競合や、チャネル動作
の介入により、データ転送が間けっ的にあることがある
。このため、策行する命令により得られるフェッチ・ベ
クトルデータを後続の命令がチエイニングにより利用で
きる頻度は低い。
また、二つのベクトルデータのチエイン・スロット・タ
イムの一致は偶然にしかおこりえないのが実情である。
したがって、従来のベクトルプロセッサでは、チエイニ
ングが実行しえる頻度が小さい。
[発明の目的] 本発明の目的は、ベクトルレジスタへのベクトルデータ
の書込みを行う先の命令の実行と並行してその書込まれ
たベクトルデータを読出す後の命令をその命令と並行し
て実行させる動作(チエイニング)を先の命令の実行開
始時期と無関係に開始できるデータ処理装置を提供する
ことにある。
さらに、本発明の目的は、ベクトルデータが先の命令に
より間欠的にベクトルレジスタに書き込まれる場合にお
いても、上記後の命令を、先の命令の実行開始時期に無
関係に、先の命令の実行と並行して実行開始できるデー
タ処理装置を提供することにある。
[発明の実施例] 以下、本発明を実施例を参照にして詳細に説明する。
■ 概略装置構成 第1図において主記憶制御ユニットU1は命令読出しユ
ニットU2、メモリ・リクエスタU10゜tJllから
のメモリ要求(ベクトルデータの読出しまたは格納およ
びベクトル命令の読出し)に応じて所定の動作を行なう
命令読出しユニットU2は、主記憶制御ユニットU1に
対し、信号線Q1で命令読出し要求を、信号線Q2で命
令アドレスを送出する。主記憶制御ユニットU1はこれ
に応答して、この命令アドレスで指定される複数の命令
を読出し、読出した命令を信号線Ω3にそれが有効であ
ることを示す信号を信号線Q4に乗せて返す。
命令読出しユニットU2は、読出された命令を命令バッ
ファ(図示せず)に入れ、これらの命令を一つづつ命令
制御ユニットU3に送る。信号線f16には命令が、信
号線Q5には命令有効信号がのせられる。命令読出しユ
ニットU2は、命令制御ユニットU3から信号線Q7に
よって、命令送出の停止が要求されない限り、次々と命
令を読出しては、命令制御ユニットU3に送りこむ。
命令制御ユニットU3は、命令を解読し、命令に応じて
、メモリ・リクエスタUIO,Ull。
ベクトルレジスタユニットU4、演算器U20゜U21
に起動信号化を送出する。
■ 概略動作 (i)命令実行起動 命令制御ユニットU3が命令実行を起動するときには、
信号線Qll〜fi14に必要なデータをセットし、起
動信号線Ω10にセットし、メモリ惨リクエスタUIO
,UllとベクトルレジスタユニットU4、または、演
算器U20.U21とベクトルレジスタユニットU4に
起動をかける。
ここで、命令起動の条件は、必要なメモリ・リクエスタ
010又はtTllまたは演算器U20又はU212が
現在使用中でなく、かつベクトルレジスタユニットU4
内にあるベクトルレジスタ■Rの内、命令に必要なレジ
スタが使用できる状態にあるということである。
ここで、あるベクトルレジスタが使用可能か否かは、後
述するようにそのベクトルレジスタが現在使用中か否か
とは異なる。使用中でなくても、使用できないベクトル
レジスタもあり、使用中にもかかわらず使用可能なもの
もある。
起動条件が満たされていない命令は、起動待ち命令列に
登録し、その後、起動条件を満す命令が解読されたとき
、この解読された命令を先に起動する。
信号線Q11は、実行すべき命令の演算の種類、たとえ
ば、加算2乗算、ベクトル読出し、ベクトル書込み等を
指定する命令コードを送出する。
信号、l1QL2は、命令が使用するレジスタ2号を指
定する。ここでは、各命令はレジスタを最大3つ指定可
能とする。本実施例では、ベクトルレジスタユニットU
4に8つのベクトルレジスタVRo−VR,が設けられ
、同数のベクトルアドレスレジスタU5、ベクトルアド
レス増分レジスタU6がメモリ・リクエスタ0.1に接
続されている。これらのベクトルレジスタ、ベクトルア
ドレスレジスタ、ベクトルアドレス増分レジスタにはそ
れぞれ番号0〜7,8〜15.16〜23があらかじめ
割りあてられている。
信号線R13は、起動するメモリ・リクエスタまたは演
算器の番号を指定する。ここでは信号線fl13は3本
で、1本はメモリ・リクエスタを指定、1本は演算器を
指定、もう1本は命令が使用するメモリ・リクエスタ又
は演算器のいずれかの番号を指定する。メモリ・リクエ
スタ又は演算器の数はそれぞれ二つなので、これらの番
号を指定する線は一本でよい。
色信号fi14は処理すべきベクトル要素数を指定する
メモリ・リクエスタUIO,Ull、ベクトルレジスタ
ユニットU4、演算器U20.U21は線Q10上の起
動信号に応答して次の動作を行う。
(n)主記憶からのベクトルデータの読出しこのための
令命の実行が線R11上の命令コードにより指定される
と、たとえばメモリ・リクエスタUIOは、信号線11
2で指定される第2゜第3のレジスタ番号に従って、ベ
クトルアドレスレジスタU5およびベクトルアドレス増
分レジスタU6の各々の一つを選択してベクトルアドレ
スおよびその増分を内部にセットする。メモリ・リクエ
スタ010は読出しコマンドと、ベクトルアドレスとア
ドレス有効信号とをそれぞれ信号線Q20、R21,R
23を介して主記憶制御ユニットU1に送る。主記憶制
御ユニットU1はこのベクトルアドレスで指定されるベ
クトル要素データを主記憶(ここでは示されていない)
から読出しで、そのデータFDと、データ有効信号とを
それぞれ信号線Q24.Q25を介してメモリ・リクエ
スタUIOに戻す。メモリ・リクエスタUIOは、この
データとデータ有効信号をそれぞれ信号線1229. 
R30にのせて、ベクトルレジスタユニットU4に送出
する。ベクトルレジスタユニットtJ4では、信号線Q
12により指定された第1のレジスタ番号のベクトルレ
ジスタに線Q、29から入力されたベクトル要素データ
を格納する。メモリ・リクエスタUIOはセットしたベ
クトルアドレス増分値に基づきベクトルアドレスを更新
し、更新後のアドレスに基づき、次のベクトル要素デー
タを同様に読出す。この動作は信号filll14で指
定されたベクトル要素数だけ繰返される。メモリ・リク
エスタUIOは最終ベクトル要素アドレスを主記憶制御
ユニットU1に送出するときに、線Q32に最終ベクト
ルデータ信号を送出する。
主記憶制御ユニットU1は最終ベクトル要素を出力する
ときに線833にこの信号を送出する。メモリ・リクエ
スタtJ10は、最終のベクトル要素のデータ有効信号
の送出と同時に、信号線Q26に最終ベクトルデータ信
号をのせる。この信号は、命令制御ユニットU3に送ら
れて、このメモリ・リクエスタUIOが空いたことを知
らせるとともに、ベクトルレジスタユニットU4にも送
られ、ベクトルレジスタ書込みの終了制御にも使用され
る。ベクトルレジスタの書込み終了は、信号線Q15を
経て、ベクトルレジスタユニットU4から命令制御ユニ
ットU3にも知られる。
(iii)主記憶へのベクトルデータの格納主記憶への
ベクトルデータの格納の命令が実行される場合も、ベク
トルアドレス、その増分は(…)と同様にメモリ・リク
エスタUIOにセットされる。
格納の場合には、ベクトルレジスタユニットU4にて信
号線Q12で指示される番号のベクトルレジスタから次
々とベクトルデータがよみ出され、信号1iAQ27に
乗せられるとともに、データ有効信号が線Q2Bに乗せ
られて、たとえばメモリ・リクエスタUIOに送られる
。メモリ・リクエスタU10はこれらにさらにベクトル
アドレスを付し、書込みコマンド、ベクトルアドレス、
ベクトル要素データ、データ有効信号をそれぞれ信号線
Q20.Q21.Q22. R23にのせて主記憶制御
ユニットU1に送る。送るべきベクトルデータ要素が最
終要素のときにはさらに、線Q32に最終ベクトルデー
タ信号を送出する。主記憶制御ユニットU1はさらに主
記憶への格納を制御する。
必要な数のベクトル要素の送出がベクトルレジスタユニ
ットU4から行なわれると、最終ベクトルデータ信号が
信号線立31を経てメモリ・リクエスタU10に送られ
、メモリ・リクエスタUIOは、(n)の場合と同様、
信号線Q26にそれをのせて、命令制御ユニットU3に
知らせる。
(iv)ベクトル演算 ベクトル演算命令実行のために演算U20またはR21
(ここではR20とする)とベクトルレジスタユニット
U4に起動がかかったときには、これらは次のように動
作する。なお、ここでは各演算器は種々の命令が必要と
する複数種類の演算を実行可能とする。
ベクトルレジスタユニットU4は、信号線Q12で指定
される一般には二つのレジスタ番号のベクトルレジスタ
から最初の要素データを読出し、それぞれのデータ信号
線041.f142にのせ、データ有効信号を信号!R
43にのせて、演算器U20に送る。演算器tJ20で
は2組のベクトル要素データを線I211上のoPコー
ドに従い演算後、その結果と、データ有効信号をそれぞ
れ信号線!145,146に乗せて、ベクトルレジスタ
ユニットU4に送り返す。ベクトルレジスタユニットU
4では、信号線Q12で指定される信号のベクトルレジ
スタに結果を格納する。これらの処理が順次、次の要素
データについて行なわれる。最後のベクトル要素になる
と、最終ベクトルデータ信号が、信号線Q40を介して
ベクトルレジスタユニットU4から演算器U20に送ら
れ、演算器U20からの最終結果に同期して、信号線Q
44により、再びベクトルレジスタユニットU4に戻さ
れる。この信号は、同時に、命令制御ユニットU3にも
知らされ、演算器の空きおよびベクトルレジスタの空き
を知らせる。
以上において、ベクトル要素データの転送はマシンクロ
ックに応答してなされるが、ベクトルレジスタユニット
U4は、転送すべき一対のベクトル要素データが二つの
ベクトルレジスタにそろっていないとき、これがそろう
まで転送を禁止する。
したがって、ベクトル要素の読出しあるいは格納が間欠
的に行なわれる。
なお、メモリ・リクエスタUll、演算器U21の構成
はそれぞれメモリ・リクエスタUIO1演算器u20と
全く同一であり、第1図でプライム(′)の付けた信号
線はこれのないものに応答する。
■ レジスタ 詳細な動作説明に先立ち、以下において必要なレジスタ
の形成を以下に述べる。第2図aは命令がセットされる
命令レジスタ(Iレジスタ)の構成を示′す、ここで、
oPフィールド命令コードを、R1,R2,R3フィー
ルドはレジスタ番号を示す、勿論、命令自身この図に示
すフィールドを有する。R1〜R3フィールドによって
示されるレジスタはベクトルレジスタ、ベクトル・アド
レスレジスタ、ベクトルアドレス増分レジスタであり、
いずれのレジスタが指定されるかは命令の種類により次
のようになる。
(i)演算器にて演算を行う命令(加算、乗算命令等) R1:演算結果ベクトルを格納すべきベクトルレジスタ
番号 R2;演算されるベクトルデータ(被加数、被乗数等)
が格納されているベクトルレジスタ番号 R3:演算すべきベクトルデータ(加数、乗数等)が格
納されているベクトルレジスタ番号 ここでは、R1,R2,R3フィール ドではすべて異なるベクトルレジスタを指定することと
する。
なお、命令によって、R3フィールド が使用されない場合がある(転送命令等)。
(n)主記憶からデータを読出す命令 R1:データを格納すべきベクトルレジスタ番R2:ベ
クトルアドレスレジスタ番号 R3:ベクトルアドレス増分レジスタ番号(■)主記憶
にデータをストアする命令R1:データが格納されてい
るベクトルレジスタ番号 R2:ベクトルアドレスレジスタ番号 R3;ベクトルアドレス増分レジスタ番号第2図すは演
算器U20.U21、メモリリクエスタUIO,Ull
 (以下、これをまとめてリソースとよぶことがある)
の制御にかかわるレジスタ、すなわちデコードリソース
レジスタ(DSレジスタ)、キューリソースレジスタ(
QSレジスタ)、実行可能リソースレジスタ(ESレジ
スタ)、レジスタユニットリソースレジスタ(RSレジ
スタ)の形式を示す、ここで、S、A、Nフィールドは
それぞれメモリ・リクエスタの使用、演算器の使用、メ
モリ・リクエスタまたは演算器の番号をそれぞれ指定す
る。なお、DSレジスタ、QSレジスタにはNフィール
ドはない。
第2図Cはベクトルレジスタの制御にかかわるレジスタ
、すなわち、デコードレジスタレジスタ(DGレジスタ
)キューレジスタレジスタ(QSレジスタ)〜メモリリ
クエスタレジスタレジスタ(MBレジスタ)、レジスタ
ユニットレジスタレジスタ(RGレジスタ)の形式を示
す。ここでVi (i=1〜3)フィールドはWi、G
Niフィールドに有効データがあるかどうかを指定する
フィールド、Wiは、次のGNiのフィールドで指定さ
れたベクトルレジスタが書込みに使用されるか、読出し
に使用されるかを指定するフィールドで書込み、読出し
のときにそれぞれ“1″又は11011となり、GNi
フィールドには命令のRiミツイールドのものがセット
される。なお、MGレジスタはGN2.GN3フィール
ドのみを持つ。
第2図dはリソースの状態を制御するリソース状態語レ
ジスタ(R3SWレジスタ)の形式を示す、ここで、S
o、Slフィールドはそれぞれメモリ・リクエスタUI
O,Ullが使用中かどうかを示し、AO,Alフィー
ルドはそれぞれ演算器U20.U21が使用中かどうか
を示す(使用中のとき“1”とする)。
第2図eはベクトルレジスタの状態を制御するレジスタ
状態語レジスタ(RGSWレジスタ)の形式を示す。こ
こでWO〜W7フイールドはそれぞれベクトルレジスタ
VRO−VR7が書込みのために使用中かどうかを示し
、RO−R7フィールドはそれぞれベクトルレジスタV
RO−VR7が読出しのために使用中かどうかを示す(
使用中のとき“1”とする)。
■ 命令制御ユニットの詳細 以下に、第1図に述べた各ユニットの詳細を説明する。
なお、主記憶制御ユニット(第1図のUl)、命令読出
しユニット(第2図のU2)は、二つのメモリ・リクエ
スタUIO,Ullからのアクセス要求に応答し、かつ
、これらのりクエスタから同時にアクセス要求がなされ
たときには、その一方を優先して主記憶をアクセスする
ものであり、従来、実現されているものと同等なので、
ここでは説明しない。また、フリップフロップレジスタ
へのタイミング入力は省略する。制御信号の入っていな
い、フリップフロップ、レジスタは常にあらかじめ定め
られたタイミングによって入力がセットされるとする。
第3図を参照するに、命令読出しユニットU2にて読出
されたベクトル命令と、その命令に対する有効信号がそ
れぞれ線Q6.QSを介して送られて来、命令レジスタ
(エレジスタ)r301に命令がセットされ、命令有効
信号がフリップフロップf301にセットされる。命令
有効信号はレジスタIR,r301へのセット信号とし
ても使用される。命令制御ユニットU3が線127にて
、命令送出停止要求を送出しない限り、命令読出しユニ
ットU2から次々と命令が送られてくる。この間隔は、
エレジスタr301の命令が、デコード命令レジスタ(
DIレジスタ)r302に移されるとすく、次の命令が
入力されるように制御される。エレジスタr301にセ
ットされた命令は、4つのルートに分けて転送される。
DIレジスタr302にはOPフィールドが転送される
。このときフリップフロップf301の出力が、DIレ
ジスタr302のセットを制御するとともに、フリップ
フロップf302へもアンドゲートg307を経て転送
される。ここでアンドゲートg307には、フリップフ
ロップf301の出力のほかに指定例外検出回路b31
6の出力が入力されており、この回路b316はエレジ
スタr301にセットされているベクトル命令のRエル
R3フィールドをチエツクし、レジスタ指定例外がない
場合にのみ、“1”を出力する。この結果フリップフロ
ップf302に命令有効信号がセットされる。レジスタ
IR,r301内の命令はまた、デコーダb301へ送
られ、そのoPフィールドにより、使用するリソースが
判別されて、その結果がデコードリソースレジスタ(D
Sレジスタ)r303にセットされる。DSレジスタr
303は第2図すに示すごと<S、Aフィールドを有す
。但しNフィールドではない。デコーダb301はこの
OPフィールドがメモリ・リクエスタUIO又はUll
を使用するもののときは、Sフィールドに1を入力し、
又この命令が演算器U20又はU21を使用するものの
ときはAフィールドに1を入力する。DSレジスタr3
03のこれらのデータのセットにも、アンドゲートg3
07の出力が使用される。■レジスタ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)を有し、デコーダb303
はエレジスタr301の命令を解読してこれらのフィー
ルドの情報を出力する。すなわち、命令のOPコードに
より、命令のR1−R3のフィールドがレジスタ指定と
して有効が否かがあらかじめ定められているので、デコ
ーダb303はOPコードによりViを定める。
また、有効と判定されたレジスタフィールドRiが書き
込み用か否かもOPコードによりあらかじめ定められて
いるもので、デコーダb303はOPコードをみて、ピ
ットWiを定めることができる。デコーダb303はフ
ィールドRiの内容をGNiフィールドに入力する。こ
うして、DSレジスタr303への入力が定まる。DG
レジスタr305へのセット制御にも、アンドゲートg
307の出力が使用される。
以上の説明から明らかなとおり、DSレジスタr303
とDGレジスタr305にセットされたデコード結果は
DIレジスタr302にセットされた命令コードととも
に同一の命令に対するものであり、以下では、これらの
レジスタにセットされたデータの各々を命令と呼びある
いはこれらをまとめてDIレジスタr302内の命令と
呼ぶことがある。DIレジスタr302;DSレジスタ
r303;DGレジスタr305に命令がセットされる
と、次のリソースの起動の可否がチエツクされる。
命令キューレジスタ(QIレジスタ)q301は、実行
待ちの命令のoPコードをDIレジスタr302から受
けとリストアするための三つのレジスタQIRO〜QE
R2からなる。同様にキューリソースレジスタ(QSレ
ジスタ)q302はこれら3つのレジスタQIRO〜2
内のOPコードに対するリソース使用要求をDSレジス
タr303から受けとり、ストアする三つのレジスタQ
SRO〜2からとなり、キュレジスタレジスタ(QGレ
ジスタ)q303は、レジスタQIRO〜2内のOPコ
ードに対するベクトルレジスタ使用要求をDGレジスタ
R,r305から受けとり。
ストアする三つのレジスタQGRO〜3からなる。
結局、レジスタ9301〜q302により三つの実行待
ちの命令がストアされることになる。以下では簡単化の
ためにこれらの三つのキューレジスタまとめて命令キュ
ーレジスタあるいは命令キューレジスタq301と呼ぶ
ことがある。
DIレジスタr302に上述のごとく、新たにセットさ
れた命令に対するリソースの起動可否はこれらの命令キ
ューレジスタ内にすでに命令がストアされているか否か
等に依存して異なる基準にて判断される。
すなわち、次の場合がある。
(a)命令キューレジスタに命令が入っていない場合 (a−1)DIレジスタr302内の命令に対してすぐ
に起動がかけられる場合。
(a−2)DIレジスタr302内の命令に対してすぐ
に起動がかけられず、命 令キューレジスタに命令を入れなけ ればならない場合。
(b)命令キューレジスタに命令が入っている場合。
(b−1)命令キューレジスタ内の命令を起動する場合
(b−2)命令キューレジスタに命令があるにもかかわ
らず、DIレジスタr3 02にある命令を起動する場合。
各々の場合の装置動作を以下に述べる。
(a−1)命令キューレジスタq301中に命令がなく
DIレジスタr302内 の命令を起動する場合。
これは、DIレジスタr302内の命令が必要とするリ
ソース(演算器またはメモリ・リクエスタ)およびベク
トルレジスタがともに使用可能であるときに生じる。
本実施例では各リソースは、ある時期には一つの命令に
よってのみ使用可能に構成されており、したがって、リ
ソースが使用可能か否かはリソースが使用中でないかあ
るいは使用知かによりきまる。
リソースの空きの状況の判断は、次のように行なう。概
略的には、DSレジスタr303にて指定される要求リ
ソースと、R85Wレジスタr304にて管理している
リソースの場態をリソース使用チエツク回路b305が
チエツクし、要求リソースが空いているかどうかを線Q
310に、空いているリソース番号を2309に出力す
る。
詳細を第5図を参照して説明する。
DSレジスタr303中のSフィールドr3031の出
力は、アンドゲートg320.g321に入力され、こ
れらのアンドゲートg320、g321にはそれぞれ、
さらにR85Wレジスタr304中のSOフィールドr
3041゜S1フイールドr3042の出力がそれぞれ
反転ゲートg335.g336を介して入力されている
。したがって、アンドゲートg320゜g321の出力
それぞれメモリ・リクエスタOと1の使用が要求され、
かつメモリ・リクエスタOと1がそれぞれ空きのときに
“′1”となる。アンドゲートg320.g321の出
力はオアゲートg328に入力される。したがって、オ
アゲートg332の出力は、使用要求されたメモリ・リ
クエスタO又は1が空いているとき1”となる。
また、アンドゲートg320.g321の出力はエンコ
ーダb320にも入力され、使用可能なメモリ・リクエ
スタ番号が出力される。つまり、アンドゲートg320
の出力が“1”のときにはアンドゲートg321の出力
によらず、エンコーダb320の出力は“0” (メモ
リ・リクエスタUOの空きを示す)、アンドゲートg3
20の出力が“0″、アンドゲートg321の出力が“
1”のときにはエンコーダb320の出力は“1”(メ
モリ・リクエスタ1)空きを示す)になる(本実施例で
は、メモリ・リクエスタは2つしかないので、エンコー
ダ出力線は1本である)、アントゲートg320.g3
21の出力がともにOのときにはエンコーダb321の
出力いずれの値でもよい。同様に、演算器の空きの状態
についてもDSレジスタr303のAフィールドr30
32の出力と、R85Wレジスタr304のAO,Al
フィールドr3043.r3044の出力とから反転ゲ
ートg337.g338、アンドゲートg322.g3
23、オアゲートg329、エンコーダb321によっ
てチエツクされ、命令で演算器の使用要求がなされ、使
用要求が出された演算器O又は1がおいていれば、オア
ゲートg329の出力が“1″に演算器番号がエンコー
ダb321から出力される。オアゲートg328.g3
29の出力の出力は、オアゲートg332に入力され、
この出力線Q310は要互されたりンースが空いている
ことを指示する。一方、エンコーダb320.b321
の出力はセレクタ5310にていずれかが選択されて線
Q3o93にのせられ、オアゲートg328゜g309
の出力線Ω3091.Q3092とあわせて線Q309
として出力される。ここでは、オアゲートg329の出
力によりセレクタ5310を制御することにより、演算
器の使用要求がなされ、かつこれが空きのときには、演
算器番号がそれ以外のときにはメモリ・リクエスタ番号
が選択されたとした。なお、線Ω309の内容はセレク
タ5302で選択され、線Q320に出力される。
線320はメモリ・リクエスタの空きを示す信号線32
01、演算器の空きを示す信号線3202、メモリ・リ
クエスタ又は演算器の番号を示す信号線3203からな
り、それぞれに線93091〜Q3093の信号がレク
タ5302により選択的に出力される。セレクタ530
2は線Q309とΩ311を入力線Q321が“0″か
1”から応じて選択するもので、今の場合は後述するよ
うに入力線Ω321は“O”である、こうして線Q32
0に要求リソースの内、空いているリソース番号が出力
される。線l1320は、デコーダb302にも入力さ
れ、R85Wレジスタr304の各ビットのセットに使
用される。ここで、デコーダb302は、メモリ・リク
エスタ番号のデコーダb3022と、演算器番号のデコ
ーダb3021とから成り、それぞれ、デコード有効端
子Eを有していて、Eがパ1”のときのみデコード入力
信号要デコードする。デコーダb3021(7)デコー
ド有効端子E ニlia Q 320のうち、演算器の
空きを示す線Q3202がデコードされる入力信号端子
には番号を示す線Q3203が接続されている。同様に
、デコーダb3022のデコード有効端子Eには、線Q
320のうち、メモリ・リクエスタの空きを示す線Q3
201が、デコードされる信号としては、番号を示す線
123203が接続されている。デコーダb3021.
B5022の出力は対応したR85Wレジスタr304
を構成する4つのフィールドr3041〜r3044 
(これらはいずれもフリップフロップからなる)のセッ
ト端子Sに接続され、線13201,93203から入
力される空きのリソース番号に対応した、So、Sl。
AO,Alの各フィールドのいずれかがセットされる。
こうして、回路b305によりリソース使用チエツクが
なされるとともに、チエツク結果に応じて、R85Wレ
ジスタr304が更新される。
次に、第3図に戻ってDIレジスタr302中にある命
命が使用するベクトルレジスタ使用に関するチエツクに
ついて述べる。第1のチエツクは、DGレジスタr30
5中に示される使用要求ベクトルレジスタ番号、使用形
態(読出し/書込み)と、RGSWレジスタr306中
にあるベクトルレジスタ使用状況により、レジスタ使用
チエツク回路b307がDIレジスタr302内の命令
が要求するベクトルレジスタが現在使用可能か否かをチ
エツクすることである。今の場合、命令キ五−レジスタ
q301内に命令がないと仮定している。しかし−殻内
に命令キューレジスタq301にリソース空き待ち命令
が菩えられており、DIレジスタr302中にある命令
を命令キューレジスタq301にすでに貯えられた命令
を追越して実行したとき、ベクトルレジスタ使用順序上
の矛盾がないかをレジスタ競合チエツク回路b309〜
b311にてチエツクする必要がある。これが第2のチ
エツクである。なお、本実施例ではこの第1.第2のチ
エツクはベクトルレジスタのみについて行ない、ベクト
ルアドレスレジスタUS、ベクトルアドレス増分レジス
タU6については行なわない0本実施例では、簡単化の
ために、これらのレジスタの内容の変更はなく、二つの
メモリ・リクエスタが同時にこれらのレジスタを読出せ
るように構成されている(詳細後述)。このため、これ
らのレジスタ使用の可否についてチエツクする必要がな
い。
第6図aは、レジスタ使用チエツク回路b307の詳細
をDGレジスタr305とRGSWレジスタr306を
含めて表わしたものである。DGレジスタr305中の
R1フィールドr3051と、RGSWレジスタr30
6の出力に基づき、第ルジスタ使用チエツクb3071
は第6図すに示す場合のみレジスタ使用可と判断する。
すなわち、レジスタの使用要求がベクトルレジスタに対
する書込みのとき(V1=W1=I  GNl<8)に
は、番号GNIのベクトルレジスタが未使用のとき(W
 i = Ri = O、i = G N 1 ) 、
使用要求がベクトルレジスタの読出しのとき(■1=1
、W1=O,GNI<8)には、その番号GN1のベク
トルレジスタが未使用または書込み中のとき(Ri=O
,1=GN1)にのみ使用可と判断し、アンドゲートg
343に1”を出力する。
■1ビットが“0”のときには、ベクトルレジスタが使
用可とし、この場合にもアンドゲートg343に“1″
を出力する。同様に、DGレジスタr305のR2フィ
ールドr3052、R3フィールドr3053について
もそれぞれ第2゜第3使用チエツク回路b3072.b
3073にて全く同様に基準でチエツクされ、アントゲ
ートg343に結果が入力される。こうして、R1゜R
2,R3フィールドが指定するベクトルレジスタがいず
れも使用可のときに、線Q313にベクトルレジスタ使
用可を示す信号“1”が出力される。
なお、レジスタ使用チエツク5回路307は、DIレジ
スタr302内の命令が必要とするベクトルレジスタが
先行する命令により現在書込み中であっても、そのレジ
スタが使用可能と判断する点に特徴がある。これは、後
述するように本実施例においては、ベクトル要素を書込
み中のベクトルレジスタに対してこの書込み動作に並行
して読出し動作を行えるように、ベクトルレジスタのチ
エイニングがなされるからである。
第7図はレジスタ競合チエツク回路b309゜b311
の詳細を示す。レジスタ競合チエツク回路b309は第
1〜第3のレジスタ競合チエツク回路b3091〜b3
093からなり、それぞれによりDGレジスタr305
のR1〜R3フィールドr3051〜r3053にて指
示されるベクトルレジスタ使用要求をQGレジスタq3
03にて指示されるベクトルレジスタ使用要求の競合を
チエツクする。これらの回路の出力は競合がないときに
“1″となる(詳細後述)。アンドゲートg353は、
これらのチエツク回路b3091〜b3093の出力が
いずれも“′1”をオアゲートg359を介して線Q3
15に出力する。一方オアゲートg359には、反転ゲ
ートg356の出力も入力されている。したがって、反
転ゲートg356への入力線a325が“0”のときも
、線Q315に競合なしを示す信号“1”が出力される
ようになっている。レジスタ競合チエツク回路b310
.b311も回路b309と同じ構成を有し、アンドゲ
ートg354.g955又は、反転ゲートg357.g
358、オアゲートg360、g361により線f13
16. Q317上に競合チエツク結果を出力する。
線Q323〜Q325は、フリップフロップf304〜
f306 (第3図)に接続されている。
これらのフリップフロップは、命令キューレジスタq3
01 (第7図)中ルジスタQ工RO〜QIR2の各々
に対応して設けられ、これらのレジスタ内に命令が存在
するときにセットされる(詳細後述)。
今の場合には、命令キューレジスタq301に命令はな
いとしているので、これらのフリップフロップはセット
されておらず、その出力線Q323、Q324.Ω32
5は“O”となっている。
したがって、線Q315〜Q317の出力はすべて1で
ある。こうして命令キューレジスタq301中に命令が
ない場合には競合チエツク回路b309〜b311の出
力とは無関係にベクトルレジスタの競合がないことを示
す信号を作り出している。
再び第3図に戻って説明する。レジスタ競合チエツクb
309〜b311から出力線、Q315〜Q317は、
上述に述べたように“1”になっている、したがってこ
れらを入力とするアンドゲートg301の出力Q322
は1となっている。
今の場合にはレジスタ使用チエツク回路b307の出力
線Q313も、ベクトルレジスタが使用することが習き
るのと前提から“1”になっており、したがってアンド
ゲートg302の出力も“1”である、また、リソース
使用チエツク回路b305の出力線1310も、リソー
スが使用することができるのと前提から“1”になって
いる、さらに、DIレジスタr302に有効な命令があ
ることを示すフリップフロップf302の出力線Q30
2も“1”となっている、後述のように、アンドゲート
g305の出力は“0”のため1反転ゲートg310の
出力は“1′となっている。このような状態のとき、ア
ントゲートg304の出力も“1′となり、従って、オ
アゲートg306の出力@11330を介してフリップ
フロップ、f303がセットされる。このフリップフロ
ップf303はタイミングのみでセット/リセットされ
るDタイプフリップフロップで、命令起動信号STを線
Q10により、ベクトルレジスタユニットU4、メモリ
・リクエスタUIO,UYY、円鎖器U20.U21に
送出する(第1図参照)。また、命令キューレジスタq
301中に命令がないことから、レジスタQIRO〜Q
IR2に命令があるときに“1”がセットされる対応の
フリップフロップf307〜f306の出力はいずれも
0”であり、その出力線Q323〜Q325が入力され
ているセレクタ5303の出力もセレクタ5303の選
択動作(詳細後述)に無関係に“0”となっている、従
って、この出力線Ω326が入力されているアンドゲー
トg305の出力線Q321も“O”となる。セレクタ
8301,3302゜5304は、それぞれDIレジス
タr302の出力線R303上のオペコード、リソース
使用チエツク回路b305の出口線R309上のリソー
ス使用要求(リソース種類、番号)およびDGレジスタ
r305の出力線R307上のベクトルレジスタ使用要
求(レジスタ番号、使用形態)を選択して、それぞれE
Iレジスタr308、ESレジスタr309、EGレジ
スタr312にセットする。セットは線Q330により
指示される。なお、ベクトル長レジスタ(VLR)r3
07には、あらかじめ別の手段(図示せず)によって処
理すべきベクトル長(VL)が格納されているとする。
これらのレジスタの内容は、線Qll〜Q14によって
、ベクトルレジスタユニットU4.各リソ−XUIO,
Ull、R20,R21に送出される。これにより、命
令実行の起動が指令されることになる。
なお、ここでは、DIレジスタr302中の命令はすぐ
に起動可能であるので命令キューレジスタq301に入
れる必要はない。今の場合、アンドゲート、g303の
出力が7(11#であることがら、反転ゲートg308
の出力は′0″となり、この出力が入力されているアン
ドゲートg303の出力線Q327が“0”となってい
る。こうして、この信号@R327により制御される命
令キューレジスタq301へのDIレジスタr302の
内容の入力がおさえられる。また同様に、レジスタq3
02.q303への新たな入力も禁止される。命令キュ
ーレジスタq301中に命令が存在することを示すフリ
ップフロップf304〜f306へのセット、次にセッ
トすべき命令キューレジスタq301中の場所を示すイ
ンポインタaIP、r310等の更新を抑止する。
また、命令の起動にともない、使用するリソース状態を
管理するR85Wレジスタr304、ベクトルレジスタ
の状態を管理するRGSWレジスタr306を変更する
必要がある。このうち、R85Wレジスタr304の変
更については、第5図の説明において述べたRGSWレ
ジスタr306の状態の変更については、次のようにす
る。すなわち、セレクタ、5304により選択されたD
Gレジスタr305の出力が、デコーダb304に送ら
れて、そこでベクトルレジスタの番号、読出し、書込み
等が解読され、対応するRGSWレジスタr306中の
ビットが“1”にセットされる。すなわち、DGレジス
タr305のフィールドRi(i=1〜3)ごとに、V
 i = 1 ’t”あることを条件に、Wiが1か否
かに応じてRGSWレジスタr305のW j (j 
= G N i )又はRjを1にする。また、RGS
Wレジスタは後述するように、ベクトルレジスタの書込
み又は読出しが終了したことを示す信号がベクトルレジ
スタユニットU4からaQ15.R16を介して入力さ
れたとき、この信号で指定されるフィールドRj又はW
jをリセットする。
(a−2)命令キューレジスタq301内に命令がなく
、DIレジスタr302内の命令に対して起動がかけら
れず、これを命令キューレジスタq301に入れる場合
これはDIレジスタr302中にある命令ぎ必要とする
リソース(演算器または、メモリ・リクエスタ)または
ベクトルレジスタが使用可能でないときに生じる。
DIレジスタr302内の命令が使用するリソースおよ
びベクトルレジスタの使用状況のチエツクについては、
第5〜7図に従って、(a−1)の説明にて述べた通り
である。今の場合リソースおよびベクトルレジスタの使
用状況のチエツクの結果、DIレジスタr302中にあ
る命令が要求するリソースが使用中のため、リソース使
用チエツク回路b305の出力12310が“′0”に
なる。
また、DIレジスタr302内の命令が要求するベクト
ルレジスタが使用可能の場合には、レジスタ使用チエツ
ク回路b307の出力Q313が“0”になる。いずれ
の場合もアンドゲートg304の出力は“0”、従って
、反転ゲートg308の出力は“1”となる。また、命
令キューレジスタ中に命令がないので、(a−1)の説
明でも述べたように、セレクタ5303の出力線232
6は“0”である゛から、アンドゲートg305の出力
は“0′″である。このため、フリップフロップf30
3は何もセットされず、命令起動信号STは線Q10に
出力されない。反転ゲートg308の出力が1”であり
、かつフリップフロップf302の出力も“1”である
のでアンドゲートg303の出力線Q327が“1”と
なる。
これによって、命令を命令キューレジスタに入れる動作
が、次のように行なわれる。
命令キューレジスタq301の詳細を第4図に示す。第
4図において、命令キューレジスタへのセット信号Sが
線Q327にセットすべきレジスタの番号として、イン
ポインタ(I P)レジスタr310の出力IPが線Q
328を介して送られてくると、それぞれデコーダb3
30のデコード有効端子Eおよびデータ端子に入力され
、デコードされる。その結果、線Q327が111 I
+のときに線Q328の内容がデコードされ、その結果
、指定されたレジスタr350〜r3s2のイスれかに
、入力線Q303の内容がセットされる。以上が命令キ
ューレジスタq301へのセットである。なお、後に述
べる命令キューレジスタの読出し動作についてもここで
述べておく。読出しとは、アウト・ポインタ(op)レ
ジスタr311 (第3図)の出力OPにより指定され
る番号のレジスタr350〜r351の内容を出力する
ことで、これは、各レジスタr 350 = r 35
2の出力が接続されているセレクタ8350の選択制御
をOPレジスタr311の出力線Q329により行なう
ことで実現できる。
なお、QSレジスタq302はレジスタr350〜r3
52が必要とするビット数の違いを除いて、命令キュー
レジスタq301と同一構造である。QGレジスタq3
03は、レジスタr350〜r352が必要とするビッ
ト数の違いの他に、レジスタr350〜r352からセ
レクタ5350を介さずに直接出力する信号線がさらに
別に設けられている点で命令キューレジスタq301と
異なるのみである。
再び第3図に戻って説明する。こうして命令コード、そ
の命令が使用するリソース種類等、およびレジスタの番
号等をそれぞれ命令キューレジスタ9301〜q303
に登録すると、これらの命令キューレジスタに命令が存
在することを示すフリップフロップf304〜f306
のうち、今回登録したレジスタQIRi (i=o、1
or2)に対応するフリップフロップをセットする。こ
の動作は、線Q327が“1”となり、これがデコーダ
b312のデコード有効端子に入力され、データ端子に
入力された(出力線1328)の上のIPで指定される
番号のフリップフロップf304〜f306のいずれか
がデコーダb312によりセットされることにより実現
される。以上が終了すると、IPレジスタr310が更
新される。IPレジスタr310の出力線Q328は3
進カウンタb314に入力され、次のIPの値が作成さ
れ、1Q327が1“1”となると、IPレジスタr3
10に、次のポインタの値がセットされる。
3進カウンタb314は、入力がO,l、2に従って、
1,2.Oを出力するものである。
なお、命令キューレジスタ(ここでは3つまでの命令が
キューイングできる)のすべてに命令が入ってしまうと
、それ以上命令を入れることはできないので、命令読出
しユニットU2(第1図参照)からの命令送出を抑止す
る必要がある。これは、命令キューレジスタ中に命令が
存在することを指定するフリップフロップf304〜3
06の出力をアンドゲートg309に入力し、この出力
線Q、7を命令読出しユニットU2に送出することによ
り実現される。
以上のごとくにして、起動待ちの命令が、それらの解読
順序にしたがって、命令キューレジスタ(1301にス
トアされる。
(b−1)命令キューレジスタにある命令を起動する場
合。
これは、命令キューレジスタq301内に命令があり、
これが必要とするリソースおよびベクトルレジスタが使
用可能のときに生じる。
これは、DIレジスタr302中の命令の有無あるいは
その命令の起動可否に関係しない、この場合、DIレジ
スタr302中に命令がある場合にはその命令は実行さ
れないので(a−2)に述べた手順に従って、DIレジ
スタr302中の命令が命令キューレジスタq301に
登録される。
以下では、命令キューレジスタq301から命令をとり
出して起動する処理について述べる。
命令キューレジスタq301から命令を取出して起動す
る処理は、DIレジスタr302中の命令を起動する場
合とよく似ている。すなわち、命令キューレジスタr3
01中のアウトポインタレジスタr311で指定される
命令と、DIレジスタr302中の命令を入れ替えて考
えればよい。
命令を起動するには、必要なリソースおよびベクトルレ
ジスタが使用へ能状態にあることが必要であることは(
a−1)でも述べた。
命令キューレジスタq301内の命令が使用するリソー
スの空きのチエツクは、第3図のリソース使用チエツク
回路b306で、ベクトルレジスタの使用可否のチエツ
クは、同じく第3図のレジスタ使用チエツク回路b30
8にて行なわれる。
リソース使用チエツク回路b306の詳細は、第5図に
示した通りチエツク回路b305と同じである。アウト
ポインタ、OPによって選択された命令キューレジスタ
q301中の命令が要求するリソースの種類は、QSレ
ジスタq302から線f131Bを介して入力される。
一方、リソースの状態がR35Wレジスタr304から
入力されている。これらが、アンドゲートg324〜g
327によって比較されて、リソースの空きがチエツク
され、その結果、オアゲートg330*g331、g3
33、エンコーダb322.b323、セレクタ831
1等によって最終的にはリソースが空いていることを示
す線Q 312と、リソースの種類、番号を示す線Q3
11に結果がのせられる。以上の動作は、DSレジスタ
r303とR85Wレジスタr304とのチエツクによ
り、線悲310と309に結果がのせるリソース使用チ
エツク回路b305の動作とまったく同一なので、詳細
の説明を省く。
レジスタ使用チエツク回路b308の構成はチェッ、り
回路b307と同じであり、その動作は、第6図aにお
いて、DGレジスタr305の出力のかわりに、第3図
におけるQGレジスタq303の出力線Q319を接続
した場合の回路b307の動作と同一である。チエツク
の結果は、レジスタ使用チエツク回路b308の出力線
Q314(第3図)に乗せられる。
再び第3図に戻って説明する。リソース使用チエツク回
路b306からリソースに空きがあることを示す信号線
Q312に“1”が出力され、そのときのリソースの種
類、番号が線Q311に出力され、さらに、レジスタ使
用チエツク回路b308からベクトルレジスタが使用可
能であることを示す信号線Q314に“1”が出力され
、かつ、フリップフロップf304〜f306の出力を
それぞれアウトポインタOPがO〜2のときに選択する
セレクタ5303の出力線ta 32 e カ“1″(
アウトポインタで指定される、命令キューレジスタ内の
レジスタQIRiに起動可能な命令があることを意味す
る)になると、アンドゲートg305の出力線Q321
が“1”になる。この出力線Q321が“1′になると
、セレクタ5301.8302,5304はそれぞれ命
令キューレジスタq301の出力線Ω3o4.リソース
使用チエツク回b306からの出力線Q311およびQ
Gレジスタq303からの出力線Q319の内容を選択
してそれぞれEIレジスタr308、ESレジスタr3
09− EGレジスタr312に命令コード、リソース
の種類と番号およびレジスタ番号および使用形態をセッ
トする。したがって、命令キューレジスタ(1301内
の命令の起動可能な場合には、DIレジスタr302内
の命令が起動可能が否かに無関係に、前者の命令が起動
されることが分かる。また、線Q321はオアゲートg
306を介してフリップフロップf303をセットし、
ベクトルレジスタユニット、各リソースに命令の起動信
号STを線QIOを介して送出する。オアゲートg30
6の出力線Q330は、Eエレジスタr308  mE
Sレジスタ309、EGレジスタr312のセットの制
御にも使用される。命令起動については、(a−1)の
説明とまったく同様である。さらに、線Q321上のd
i I I+の信号は、反転ゲートg310により、ア
ントゲhg301を閉じる。その結果、反転ゲートg3
08の出力が“1”となり、DIレジスタr302に命
令が入っている場合(フリップフロップf302が“1
”の場合)には、線Q327を1”としてその命令を命
令キューレジスタに登録するように制御する。この処理
は(a−2)に述べたとおりである。また、線Q321
は、デコーダb313のデコード有効端子にも接続され
、デコーダb313はアウトポインタ、oPで指定され
るフリップフロップf304〜f306のいずれかをリ
セットする。これは、OPで指定される命令キューレジ
スタ中の命令が取出され、起動されるためである。最後
に、線Q321はOPレジスタr311のセットに使用
され、アウトポインタが更新される。この更新の制御は
、インポインタの場合と同様、3進で行なわれる。3進
の値の生成は回路b314と同じ構成の回路b315に
て行なわれる。
(b−2)命令キューレジスタ中に命令があるにもかか
わらず、DIレジスタr302の命令が先に起動される
場合。
(1)命令キューレジスタ中の命令が要求するリソース
またはベクトルレジスタが使用可能で、この令命を起動
することができない。かつ、(2)DIレジスタr30
2中にある命令が要求するリソース又はベクトルレジス
タが使用可能であり、かつ、命令キューレジスタq30
1中に備えられている命令と、DIレジスタr302中
にある命令間でベクトルレジスタの競合がない。
命令キューレジスタq301中にある命令を追越して、
DIレジスタr302中の命令を先に起動するには、レ
ジスタの競合がないこと、すなわち、命令キューレジス
タq301中にある命令に変更するベクトルレジスタを
、DIレジスタr302中の命令が使用しないこと、ま
た命令キューレジスタq301中にある命令にて読出す
ベクトルレジスタについては、DIレジスタr3Q2中
の命令が変更しないことが必要である。命令キューレジ
スタ中の命令で読出すのみに用いられるベクトルレジス
タを、DIレジスタ中の命令で読出すことについては、
命令の追越しをしてもレジスタの読出す順序が逆転する
だけなので、問題はない6以上述べたレジスタ競合チエ
ツクを行なう回路が、第3図の回路b309〜b311
である。この詳細を第7図に基づき説明する。
第7図の回路の詳細は、回路b3091〜b3093の
詳細を除き、すでに説明した。
第ルジスタ競合チエツク回路b3091はDGレジスタ
r305のR1フィールドr3051とQGROレジス
タg3030のR1〜R3フィールドとを比較し、次の
条件のいずれかが満たされない場合に、レジスタ競合な
しを示す信号1(I 11をアンドゲートg353に出
力する。
(1)DGL/ジスタ(7)V1=1.W1=Oのとき
、レジスタQGROの一つのフィールドRjにおいて VJ=WJ=1.GNJ=DGレジスタのGNI(2)
DGL/ジスタ(7)V1=1.W1=1(7)とき、
レジスタQCROの一つのフィールドRjにおいて V i = 1 、 GNj”DG レジスタのGN1
同様に、DGレジスタのR2フィールドr3052、R
3フィールドr3053についてそれぞれ第2.第3レ
ジスタ競合チエツク回路b3092、b3093が同様
のチエツクをする。
一方、命令キューレジスタ中に実行可能な命令が入って
いることを示すフリップフロップf304(第3図参照
)の出力が線Q323を介してアンドゲートg353に
入力され、アンドゲートg353の入力がすべてが“1
”のとき、その出力がオアゲートg356を経て、線Q
315に乗せられる。こうして、DGレジスタr305
で指定されるベクトルレジスタが、レジスタQGROに
て指定されるいずれのベクトルレジスタとも競合しない
か否かがチエツクされる。これと同様に、DGレジスタ
r305で指定されるベクトルレジスタと、レジスタQ
GRIで指定されるベクトルレジスタの競合関係がチエ
ツク回路b310で、DGレジスタr305で指定され
るベクトルレジスタと、レジスタQGR2で指定される
ベクトルレジスタの競合関係がチエツクb311でチエ
ツクされ、その結果がそれぞれアンドゲートg354、
g355を経て、オアゲートg 360s g 361
の出力線、f1316.Ω317にのせられる。
DIレジスタr302中にある命令が要求するリソース
およびレジスタ使用状況のチエツクについては、(a−
1)の処理の説明にて詳細を述べたとおりである。
チエツクの結果、第3図において、リソース使用チエツ
ク回路b305の出力として、線f1310にリソース
が空いていることを示す1 ytの信号が1.i!Q3
09にリソースの種類、番号がレジスタ使用チエツク回
路b307の出力として、線Q313にベクトルレジス
タが使用可能であることを示す“1″の信号が出力され
る。一方、命令キューレジスタ中のアウトポインタOP
で指定される命令が使用するリソースまたはベクトルレ
ジスタのいずれか一方または双方とも使用可能でないの
で、リソース使用チエツク回路b306の出力線Q31
2または、リソース使用チエツク回路b308の出力線
Ω314の少くともいずれか一方はIt O71になっ
ている。また、命令キューレジスタに命令が存在するこ
とから、セレクタ5303の出力線Q326は“1″に
、DIレジスタr302に命令が存在することがら、線
Q302も“1″になっている。
このような状況のもまで、アンドゲートg305の出力
線Q321は“1″とはならない。今の場合、DIレジ
スタ中の命令と、命令キューレジスタ中の命令が要求す
るレジスタ間で競合がないと仮定しているので、線Q3
15〜Q317が1111+となり、アンドゲートg3
01の出力が141 Itどなる。アンドゲートg30
1の出力と、11Q313が入力されるアンドゲートg
302の出力が11117となり、この出力“1″と線
Q310と、DIレジスタに有効な命令が入っているこ
とを示す線Q302と、線Q321を反転ゲートg31
0で反転した出力の4つの信号とが入力されているアン
ドゲートg304の出力が1“1”となる。以後、命令
を起動するまでの処理は(a −1)におけるDIレジ
スタ中の命令起動処理とまったく同様である。なお、ア
ンドゲートg304の出力が“1”のため、その出力を
反転ゲートg308で反転した結果が入力されているア
ントゲ−トg 303の出力fifi327、および先
に述べた線n321はいずれも“O″のため、IPおよ
びOPはいずれも更新されることはなく、また、命令キ
ューレジスタに命令が存在することを示すフリップフロ
ップf304〜f306の状態も変らない。
■ 命令制御ユニットの変形例 以上、命令制御ユニットU3(第1図参照)の詳細を述
べた。本実施例においては、命令実行の追越しは、DI
レジスタr302と命令キューレジスタとの間でのみ行
なわれ、命令が一旦、命令キューレジスタに入ってしま
うと、命令キューレジスタに入った順にアウトポインタ
でとり出されていくので、命令キューレジスタの間での
命令実行の追越しはおこなわれない。しかし、この命令
キューレジスタ内の命令の間の追越し実行も、DIレジ
スタ内の命令と命令キューレジスタ内の命令の間の追越
し実行と同様に制御すれば、容易に実現することができ
る。・この場合には、命令キューレジスタ上の命令につ
いて、実行順序を記憶しておく必要がある。また、命令
キューレジスタへの命令の登録も、インクポインタ(I
P)による順序通りの登録ではなく、空いたレジスタへ
の登録となる。
第8図は、これを実現するための回路の内、第3図の回
路と相異する部分を主に示したものである。図において
、フリップフロップf304.f305、f306は、
命令キューレジスタに有効な命令が入っていることを示
す(入っているときに′1”とするフリップフロップで
、第3図のフリッププロップf304〜f306と同一
のものである。このフリップフロップの出力を反転ゲー
トg380〜g382で反転後、プライオリデイ・エン
コーダb395に入力すると、出力には、空きの命令キ
ュー内レジスタのうち、もっとも番号の小さなものの番
号iで出力される9本変形例では、第3図のIPレジス
タr310,3進カウンタb314L、−かえ、反転ゲ
ートg 380 ” g381、プライオリティエンコ
ーダb395を用い、プライオリティエンコーダの出力
をインポインタIPとして、第3図のIPのかわりに使
用する。
また、命令キューレジスタci301中の命令の起動順
序を記憶しておく必要があり、このため、本変形例では
、フリップフロップf380〜f382と実行順序変更
回路b393が第3図の回路に追加される。命令キュー
レジスタq301にIP=o〜2でもってそれぞれセッ
トされた命令をQO,Ql、Q2と名づけること、これ
らの命令を、 QO→Q1→Q2 QO→Q2→QI Q1→Q2→QO Q1→QO−)Q2 Q2→QO−+QI Q2→Q1→Q0 の順に起動する場合があり得る。この6つの状態をフリ
ップフロップf380〜f381で記憶する。フリップ
フロップf380.g381.f382の記憶情報とこ
のときの命令実行順序の関係は次の表のとおりである。
f380   f381   f382   命令実行
順序0   0   0    QO→Q1→Q20 
  0   1    QO→Q2→q10   1 
  0    Ql→Q2→Q00   1   1 
   Ql→QO→Q21   0   0    Q
2→QO−)Qll    0   1    Q2→
Q1→QO命令の実行順序の変更は、フリップフロップ
f304〜f306が“1”から“0” (使用中から
非使用知)になったときに行なわれる。この変更を制御
するのが変更制御回路b393である0回目b393に
は、フリップフロップf304〜f306の出力旦32
3〜Q325と現在の起動状態を表わすフリッププロッ
プf380−f382の出力Q396〜Q398が入力
され、次の起動状態が線Q376〜Ω378に出力され
て、再びフリップフロップf380〜f382にセット
される0回路b393の内部では、命令キューレジスタ
q301内の一つの命令が起動され線Q323〜a32
5が“1”から“O”に変化した時点をとらえ、次のよ
うに線Q396〜Q398の内容から、出力を作成し、
!Q376〜1137Bにのせる。
すなわち、命令キューレジスタq301内の残りの二つ
の命令を先ず起動し、かつ、このとき、この二つの命令
の起動順序はそれまでにフリップフロップf380〜f
382が指定していた順序とし、これらの二つの命令の
起動後に、今回起動された命令のかわりに新たに命令キ
ューレジスタにストアされた命令を起動するように、フ
リップフロップf380〜f382をセットする。
(1)線Q323が“1”→1゛0″′となったとき、
(2)線Q324が1”→“0”となったとき、(3)
線325が′1”→“0”となったとき、なお、tlA
Q323〜Q325が同時に1″→“0”になることは
ない、なぜならば−命令ずつ起動するからである。
命令キューレジスタq301中のいずれの命令をも起動
可能とするためには、命令キューレジスタ中のすべての
命令について、リソースおよびベクトルレジスタの使用
状況のチエツクを行ない。
かつ、命令キューレジスタ上のすべての命令間のベクト
ルレジスタの競合のチエツクを行なう必要がある。第8
図においてレジスタq3020−q3022 (QSR
O/1/2)は命令キューレジスタq301中の命令が
要求するリソースの種類を保持するもので、第3図のQ
Sレジスタq302中にあるものである。ただし、本変
形例においては、各レジスタq3020〜q3030か
ら、OPとは無関係に直接リソース使用要求を送出する
信号線が設けられている。この各命令のリソース要求と
、リソース状態を管理する。R85Wレジスタr304
の内容が、第3図のリソース使用チエツク回路b306
にかえて本変形例で設けられたリソース使用チエツク回
路b380−b382でチエツクされ、それぞれからリ
ソースが空いているかどうかを示す信号が線Q380〜
Q382に、使用可能なリソースの種類と番号が線Q3
83〜Q385に出力される。リソース使用チエツク回
路b380〜b382は、第5図で説明した回路b30
5とまったく同一構成を有する。第8図において、QG
RO−QGR2レジスタq3030〜q3032は、命
令キュー中の各命令が要求するレジスタの番号等を記憶
しているもので、第3図のQGレジスタq303中にあ
るものである。この各命令のレジスタ要求と、ベクトル
レジスタの状態を管理するRGSWレジスタr306′
の内容が、本変形例において新たに設けられたレジスタ
使用チエツク回路b383〜b385でチエツクされ、
要求するすべてのベクトルレジスタが使用可能かどうか
を示す信号がQ386〜Q388に出力される。これら
のレジスタ使用チエツク回路は、第6図で説明した回路
b307とまったく同一である。また、各命令の要求す
るベクトルレジスタ間の競合をチエツクするために、本
変形例で新たに設けられたレジスタ競合チエツク回路b
386〜b391が使用される。命令キューレジスタ中
の各命令の実行順序はどのようなものでも許されるよう
にしたい。命令キューレジスタ中に3命令分保持できる
場合には、ある命令が極の2命令に優先して起動させる
ために2つのチエツク回路が必要で、それが3命令分必
要であるから、計6個のレジスタ競合チエツク回路b3
86〜b391が必要となる0回路b386は、QGR
OのR1〜R3フィールドとQGRIのR1〜R3フィ
ールドとが入力され、前者が後者の各々に対してレジス
タ競合チエツクを行い、いずれのフィールドにもレジス
タ競合が検出されないとき、IJAI2390に“1”
を出力する。第7図のレジスタ競合チエツク回路b30
9と同一構成を有する。
回路b386には、フリップフロップf305の出力線
Q324も入力されており、回路b309(第7図)と
同様に、この信号線Q324が“0”のときには、無条
件に線Q390に“1”を出力する。同様に回路b38
7は、QGRIの各フィールドがQGROの各フィール
ドに対してレジスタ競合を有しないかをチエツクする回
路である。
同様に回路b688〜b391はそれぞQGR2に対し
てQGRIの、QGRIに対してQGR2の、QGRO
に対してQGR2のQGR2に対してQGROの、レジ
スタ競合をチエツクするものである。これらのレジスタ
競合チエツク回路b386〜b391の出力線Q390
〜Q395は命令選択回路b394に入力される。命令
選択回路b394には、先に述べた、リソース使用チエ
ツク回路b380〜b382の出力線Q383〜b38
5の出力aQ 386−Q 388、命令ノ起動順序を
指定するフリップフロップf380〜f382の出力お
よび命令キューレジスタ中に実行可能な命令が入ってい
ることを示すフリップフロップf304〜f306の出
力線Q323〜Q325も入力され、ベクトルレジスタ
、リソースに空きがあり、かつベクトルレジスタの使用
上、競合が生じない命令キューレジスタ中の命令が命令
選択回路、b394にて選択されて、選択された命令の
命令キューレジスタ中の番号がアウトポインタOPとし
てQ329に、命令キューレジスタ中に命令が選択され
たことを示す信号が線Q321に出力される。
命令選択回路b394の詳細を第9図に示す。
アンドゲートg383には、フリップフロップf304
の出力線Q323、リソース使用チエツク回路b380
の出力線Q380、レジスタ使用チエツク回路b383
の出力線0386、レジスタ競合チエツク回路b386
.b391の出力!9390.395が入力され、これ
らの入力がすべてが“1”のときに、アンドゲートg3
83の出力線2370が“1”になる、これは、命令キ
ューレジスタ中の第0番の命令QOが実行してよいこと
を示す。同様に、アンドゲートg384.g385にも
命令キューレジスタの第1.第2番に関する信号線が入
力され、線f1371.Q372に出力される。線Q3
70〜11372は、同時に“1”になることもありう
る。後Q3’l0−Q372はオアゲートg387に入
力され、いずれか1つでも命令実行が可能のときには、
オアゲートg387の出力線Q321を“1”とする、
線Q370〜Q372に出力された命令実行可能を示す
信号から、いずれを選択するかは命令実行順序判定回路
b395にて行なわれる0回路b395には、線Q37
0〜Q372のほかに、命令実行順序を示すフリップフ
ロップf380−f382の出力線Q396〜Q398
が入力され、次のようにして実行すべき命令キューレジ
スタ上の番号が線Q329に出力される。線Q329は
実際には2本の線f13290 (上位)、fi329
1 (下位)からなり、2本での2進数00,01,1
0をあられして、命令キューレジスタ内の命令の番号を
示すこととする。
(1)線Q396〜Q398が“0″“0”0′。
のとき (*はドントケアを示す) (2)線Q396〜Q398が“0”O′3“1”のと
き (3)線Q396〜Q398が“OII ll I I
F 11011のとき 1370  ] 371 1372 13290 13
291(4)線Q396〜Q398が“O++ 1′I
 IT ai 1”のとき 101   0’0 (5)!Q396〜Q398が“1″10”0”のとき *           1     1     0
(6)線Q396〜Q398が(# l n 110 
II 1(l 99のとき 1m1   1   0 命令選択回路b394の出力である線Ω329゜線Q3
21を、第3図においてそれぞれアウトポインタ(op
)レジスタr311の出力、線Q329およびアンドゲ
ートg305の出力線12321のかわりに使用すれば
よい。したがって、第3図のアウトポインタレジスタr
811.3進カウンタb315、セレクタ5303、ア
ンドゲートg305は不用となる。
なお、第8図中のセレクタ5380は命令キューレジス
タ中の命令が要求するリソースの種類、番号をアウトポ
インタ(線Q329上にある)に従って選択するもので
、この出力線Q311が、第3図のリソース使用チエツ
ク回路b306の出力線のかわりに使用される。
以上のべたように、本発明により命令制御ユニットでは
、読出された命令を次々と解読し、起動できる命令は次
々と起動し、起動できない命令は命令キューレジスタに
入れていく。かつ、リソースが空きベクトルレジスタが
使用可能となると、ベクトルレジスタの使用順序に制約
がないことを条件に、解読した順序に関係なく命令を起
動していくことにより、リソース、ボクトルレジスタが
空いている時間を短縮させ、より短時間に命令を処理さ
せることができる。
(Φ ベクトルレジスタユニット (1)概要 第10図は、ベクトルレジスタユニットU4は、ベクト
ルレジスタ制御ユニットU40と、ベクトルレジスタデ
ータユニットU41に分けられる。
ベクトルレジスタ制御ユニットU40では命令制御ユニ
ットU3よりの指令にもとづいて、ベクトルレジスタデ
ータユニットU41中にあるベクトルレジスタVRから
必要なデータを読出し、演算器U20.U21、メモリ
・リクエスタU10゜Ull(第5図)に送出する制御
、および演算器U20.U21、メモリ・リクエスタU
IO,U11から送出されてくるデータをベクトルレジ
スタVRに書込む制御を行なう。また、ベクトルレジス
タVRの使用の終了を命令制御ユニットU3に知らせる
ベクトルレジスタVRの各々は多数のベクトル要素を保
持するものであるが、ここでは従来技術と同様、メモリ
素子で構成されることとする。このため、書込みまたは
読出しアドレスを指示するためのアドレスカウンタ(詳
細後述)がベクトルレジスタVRごとに存在する。これ
らのアドレスカウンタは、ベクトルレジスタ制御ユニッ
トtJ40より制御される。
ベクトルレジスタVRからのベクトル要素の読み出しは
、ベクトルレジスタ制御ユニットU40の制御下で、次
のように行なわれるのに注意すべきである。本実施例で
は、ある命令の実行により、あるベクトルレジスタVR
にベクトルデータの要素を書込み中のときに、そのベク
トルレジスタを読出したい後続の命令があれば、このベ
クトルレジスタへ任意数の要素が書込まれた時点で、書
込み動作と並行して読出し動作が開始されるように、ベ
クトルレジスタのチエイニングを行う。しかも、このチ
エイニングでは、先行する命令による書込み動作が間欠
的に行なわれる場合には、それに応じて後続の命令によ
る読出しも間欠的に行なわれる。さらに、ある命令が読
出し用に二つのベクトルレジスタを用いる場合にあって
は、これらのベクトルレジスタの少くとも一方に一部の
ベクトルレジスタ要素しか書込みれていない場合であっ
ても、これらのベクトルレジスタに書込まれたベクトル
要素の内、同一番号の要素を対にして読出す動作を開始
する。しかも、これらのベクトルレジスタへの残りの要
素が間欠的に書込まれる場合には、同一番号の一対の要
素が同時に読出し可能になるごとに、この一対の要素を
読出す。
演算器に供給されるベクトルデータは、通常、主記憶か
ら読出され、一旦ベクトルレジスタに入れられ、そこか
ら演算器に供給される。データの読出しはマシンクロッ
クに同期して行なわれるが、主記憶から読出されるベク
トル要素は、主記憶上の読出しの競合(たとえば2つの
メモリ・リクエスタの同時動作時に生ずる)からマシン
サイクルごとにベクトルレジスタに連続して書込まれる
とは限らない。このとき、演算器に供給すべきベクトル
要素データは、間欠的にベクトルレジスタに到着し、書
込まれていく。このような条件のもとでも、書込みと並
行して読出し動作(チエイニング)を行ない、また、命
令が二つのベクトルレジスタを必要とするときには演算
器に対し、2つのベクトルレジスタの同一のベクトル要
素番号のベクトルデータを同時に供給するようにするこ
とにより、命令の実行開始を早めることができる。
(ii)ベクトルレジスタ制御ユニットの概要ベクトル
レジスタ制御ユニットU40は第11図に示すように、
命令起動制御回路b400と、ベクトルレジスタVRO
〜VR7の各々に対応したベクトルレジスタ制御回路b
410〜b417と、演算器U20.U21とメモリ・
リクエスタUIO,Ullの各々に対応したオペランド
制御回路b420.b423と、オペランド制御回路b
420.b423からの出力をそiぞれ保持するフリッ
プフロップf400〜f407、および、リソース−レ
ジスタ変換回路(以下S−G変換回路とよぶ)b401
.b404.b405、レジスターリソース変換回路(
以下G−8変換回路とよぶ)b402.b403から成
る。G−8変換回路b402.b403は、命令制御ユ
ニットU3により指定される読出し用一つ又は二つのベ
クトルレジスタ番号に対する、ベクトルレジスタ制御回
路b410〜b417のいずれか二つからの信号を、命
令制御ユニットU3により指定されるリソース番号に対
する、オペランド制御回路b420〜b427の一つへ
送出するものであり、S−a変換回路b401 (又は
404とb405)は命令制御ユニトU3により指定さ
れた番号のリソース(又はこれに対するオペランド制御
回路b420〜b427)から送られてくる信号を、命
令制御ユニットU3により指定された書込み用のベクト
ルレジスタ番号に対応するベクトルレジスタ制御回路b
460〜b467の一つ(又はこの番号のベクトルレジ
スタ)へ送出するものである。
まず、命令起動制御回路b400が命令制御ユニットU
3より、起動信号(線Ω10上)、命令コード([12
11上) 、 L’レジスタ号(191Q 12上)、
リソース種類番号(線1213上)、処理ベクトル長(
線fl14上)を受けとり、命令コードがベクトルレジ
スタの使用を必要とするもののときには、次のように動
作する。
(1)S−G変換回路、b401.b404.b405
、G−3変換回路、b402.b403に変換に必要な
リソース番号とベクトルレジスタ番号、および、それら
のセット信号を送出する。
(2)ベクトルレジスタ制御回路b410〜b417の
うち、指定されたベクトルレジスタ番号のものに、書込
み、または読出しの起動信号を出す。
(3)オペランド制御回路b420〜b423のうち、
指定されたリソースの種類と番号に対する回路に、ベク
トル長データと、そのセット信号、および、オペランド
を1つしか使用しない命令においては、それを指示する
信号を出す。
命令実行時には、次のように制御信号が伝達される。こ
こでは、ベクトルレジスタOおよび1からデータを読出
して演算器Oで演算し、結果をベクトルレジスタ7に書
込み命令の実行時の動作について説明する。
ベクトルレジスタOにであるベクトル要素の読出しが可
能になると、ベクトルレジスタ制御回路b rloから
ベクトルレジスタ読出し許可信号が線Q480に出力さ
れる。同じく、ベクトルレジスタ制御回路b411から
も線Q481に、ベクトルレジスタ1でのベクトルレジ
スタ読出し許可信号が出力される。G−8変換回路b4
02.b403にて線Q480. Q481(7)信号
は、演算器Oに対する出力線Q490.Q500に対え
られ、オペランド制御回路b420に入力される。
オペランド制御回路b420は、これらのベクトルレジ
スタ読出し許可信号が同時に存在することを条件に1ベ
クトル要素ごと派ベクトルデータ送出信号を作成し、m
Q520に出力する。この信号は、フリップフロップf
401で一旦受けた後、mQ43にて演算器Oにデータ
有効信号として送られる。一方、線Q520上のデータ
送出信号はS−G変換回路b404.b405にも入力
され、それぞれによりベクトルレジスタ番号0,1に対
応した線Q540. Q551に出力され、それぞれ、
オアゲートg400又は401および線Q470とQ4
71により、ベクトルレジスタデータユニットU41(
第10図参照)中にあるベクトルレジスタOと1に対す
る読出しアドレスカウンタ(後述)の更新に使用される
。本発明では、ベクトル要素データ送出信号(線Q52
0上にある)を作成した後、はじめて、ベクトルデータ
の読出し用のアドレスカウンタ(後述)を、次のアドレ
スに更新する点が特長の一つである。実際にデータをよ
み出す動作は、2つ(ここではベクトルレジスタOと1
)のオペランドのデータ読出しが可能になったことを確
認しなから行なうわけである。
さて、データ有効信号V(線Q43上)と、ベクトル要
素データが演算器0に送られ、演算される演算結果が線
Q45(第10図)を介してベクトルレジスタデータユ
ニットU41に、データ有効信号■が線f146を介し
てベクトルレジスタ制御ユニットU40に戻される。こ
のデータ有効信号Vは、S−G変換回路b401により
書込みベクトルレジスタ#7に対応する線Q437に伝
えられる。線Q437の信号に応答して、ベクトルレジ
スタ制御回路b417は、ベクトルレジスタ7への書込
みアドレスカウンタ更新信号を線a427を介してベク
トルレジスタデータユニットU41に伝えるとともに、
ベクトルレジスタ制御口fib417内にあり、ベクト
ルレジスタ読出中のどのベクトル要素まで書込みを行な
ったのかポインタ(後述)の管理に使用する。このポイ
ンタは、ベクトルレジスタ7を書込みながら、後続の命
令でこのベクトルレジスタ読出しに使用する際に、書込
んだベクトル要素までを読出すように制御するために使
用される。
最終ベクトル要素を演算器Oに送出する際に、それが最
終であることを指定するためにオペランド制御回路b4
20から、ベクトルデータ送出信号と同期して最終ベク
トルデータ信号Eが線Q510に出される。つまり、回
路b420は、命令実行開始時にセットされる処理ベク
トル長を憶えておき、この数だけ、ベクトルデータ送出
信号を出すと、最終ベクトルデータ信号を出すように構
成されている。この信号は、フリップフロップf400
で一旦記憶された後演算器0に線Q40により送出され
、最終演算結果と同期して、線Q44によりS−G変換
回路b401に戻されてくる。線Q44はS−G変換回
路b401によりベクトルレジスタ7に対応する@Q4
2’!に伝達され、ベクトルレジスタ制御回路b417
に入力る。制御回路b417はベクトルレジスタ7への
書込み動作を終了させるとともに、線Q16にて、命令
制御ユニットU3に、ベクトルレジスタ7の書込が終了
したことを伝える。一方、オペランド制御回路b420
からの出力線Q510上の最終ベクトルデータ信号Eは
S−G変換回路b404゜b405にも入力されて、ベ
クトルレジスタ0゜1に対応する線Q530およびQ5
31に出力され、さらにオアゲートg410.g411
を経て、線Q460. Q461により、ベクトルレジ
スタ制御回路b410.b411に入力され、ベクトル
レジスタの読出し動作を終了させるとともに、線u15
にて、命令制御ユニットU3に、ベクトルレジスタ0.
1の読出しが終了したことを伝える。
(in)命令起動制御回路 第12図に示すように、命令起動制御回路b400は命
令制御ユニットU3よりそれぞれ線fllo〜1114
を介して入力される命令起動信号ST、命令コード使用
レジスタ番号と使用形確。
使用リソース種類と番号、処理ベクトル長をそれぞれフ
リップフロップf410.レジスタRGR。
r400.RIG、r401.RST、r402゜RV
IR,r403にいずれも命令起動信号STに応答して
セットする。
フリップフロップf410の出力は、S−G/a−S木
挽回路b402〜405(第14図)他への情報のセッ
ト信号として、線Q419により送り出されるとともに
、内部での各種データ信号の作成に使用される。
RGR,r400の内容から−8−G変換回路、G−8
変換回路(第11図)に与えるレジスタ番号と、ベクト
ルレジスタ制御回路、ベクトルレジスタデータユニット
に与える初期化/起動信号を作成する0通常のベクトル
命令では、RIフィールドで書込みベクトルレジスタ、
R2/R3フィールドで読出しベクトルレジスタを使用
する。このため、第11図のS−G変換回路b401に
は、R1フィールドのレジスタ番号を、G−3変換回路
b402.S−G変換回路b404にはR”フィールド
レジスタ番号を、G−8変換回路b403、S−G変換
回路b 405 ニは、R3フィー)Llドのレジスタ
番号を与えればよい、しかし、第2図での説明に述べた
ように、主記憶にベクトルデータを格納する命令におい
ては、R1フィールドは読出し用のベクトルレジスタ番
号を指定するのでR1フィールドのレジスタ番号を、通
常のR2フィールドのレジスタ番号を送出する信号線に
乗せ替える必要がある。このために、RGRr400の
GNIフィールドとv1フィールドは併せて線α439
を介して、S−G変換回路b401に送出されるととも
に、セレクタ5400に第1の組として入力される。一
方、レジスタr400のGn2と■2フィールドは第2
の組としてセレクタ5400に入力され、このいずれか
が選択されて、線Q449にて、S−G変換回路b40
4、G−8変換回路b402に送出される。このセクタ
5400の選択制御はデコーダb438が行い、RIR
r401内の命令コードに対するものか否かに応じて前
者又は後者が選択されるようにレクタ5400が制御さ
れる。RGRr400のGN3とv3フィールドは線Q
459により、そのまま、S−G変換回路b405、G
−3変換回路b403に送られる。
ベクトルレジスタ制御回路b410〜b417およびベ
クトルレジスタに対し、書込みの起動を行なうために、
RGR,r400のR1〜R3フィールドはデコーダb
430に送られる。デコーダb430は、アンドゲート
A付デコード有効端子Eを有し、アンドゲートAへの入
力線がすべて“1″のときに、デコーダが有効になる。
デコーダb430のアンドゲートAには、v1フィール
ド、W1フィールド、およびフリップフロップf410
の出力がそれぞれ線R580,1581゜Q419が接
続されており、またデコードされる信号として、GNI
フィールドが線Q439を介して入力されている。デコ
ードが有効すなわち、GNIフィールドのデータに意味
があり(Vlフィールド= ” 1 ” ) 、 8込
みが指定されており(Wlフィールド=“1″)かつ命
令起動(Q419=“1″)時に線Q582を介して入
力されGNIフィールドの内容がデコードされ、このG
N1フィールドがベクトルレジスタ0〜7のいずれかの
番号を有しているときには、出力線8本立410〜Q4
17のうちの1つが“1”になる。
ここでは、GNIフィールドが“0”のとき、出力線Q
410が111 It、“1”のとき出力線Q411が
“1”、“2”のとき出力線Q412が“1”というよ
うにデコードされるとする。今、例として考えている命
令ではRGR,r400内のR1フィールドがベクトル
レジスタOへの書込みを指示(W1=1.GN1=O)
しているので線Q410のみが6′1”となる。デコー
ダb430の出力線Q410〜Q417は、ベクトルレ
ジスタ制御回路b410〜b417 (第11図)およ
びベクトルレジスタデータユニットU41に送出される
。デコーダb433〜b435は、ベクトルレジスタの
読出しの起動を行なうためのものである。これらのデコ
ーダには、アンドゲートA付デコード有効端子へ、Wl
、W2.W3フィールドではなく、それぞれを反転ゲー
トg420〜g422で反転ゲートg420〜g422
で反転した出力が線Q580,591を介して入力され
、RGR,r400のフィールドRiが読出し用のとき
(Wi=O)のみ、デコードが有効となる点が異なるの
みで、あとはまったくデコーダb430と同様である。
デコーダb433〜b435の出力は、オアゲートg4
40〜g447を経て、線Q400〜Q407により、
それぞれベクトルレジスタ制御回路b410−b417
およびベクトルレジスタデータユニットU41に読出し
起動信号として送出される。以上の実施例においてデコ
ーダb433を省略し、セレクタ5400の出力をデコ
ーダb434に入力されてもよい。このときには、セレ
クタ5400には、さらに、W1フィールドとW2フィ
ールドの出力もそれぞれGNl、ON2フィールドとと
もに入力され、選択されるようにしておく必要がある。
デコーダb436は、オペランド制御回路b420−b
423に対する起動信号を送出するものである。デコー
ド有効端子Eには、線Q419が、データ端子DIには
、R2H,r402からリソース種類9番号が入力され
、これらがデコードされて線Q440−Q443のいず
れかが“1″となる。この線Q440〜Q443の信号
“1”は、それぞれオペランド制御回路b420〜b4
23に対する起動信号となる。
デコーダb437は、オペランド制御回路b420−b
423にて2つのベクトル要素の同期をとる必要のない
場合を指示するためにある。2つのオペランドの同期が
不要な場合とは、たとえば一つのベクトルレジスタから
主記憶へのベクトルデータの格納や、一対のベクトルレ
ジスタ間でのベクトルデータの転送、一つのベクトルレ
ジスタ内のベクトルデータを変換して他の一つのベクト
ルレジスタに格納するベクトルデータの変換のように、
読出すべきベクトルレジスタが一つであり、命令のR3
フィールドが不要の場合であり、このときには、RGR
,r400のv3フィールドが“0”になっている、デ
コーダb437は2人力アンドゲートA付デコード有効
端子Eがあり、そこには、線Q419の他に、RGR,
r400のv3フィールドの出力を反転ゲートg423
で反転させた出力が入力される。デコーダb437は、
R2H,r402から与えられるリソースの種類。
番号を解読して、82450〜453の内の一つに“1
”を出力する。デコーダb437の出力は、線Q450
−Q453を介してそれぞれオペランド制御回路b42
0〜b423に接続される。
R2H,r402内のリソース種類番号はまた線124
29を介したS−G変換回路b401.b404、b4
05.G−8変換回路b402.b403に共通に入力
される。
RVLR,r403内の処理ベクトル長は、線Q469
により、各オペランド制御回路b420〜b423に共
通に入力される。
(iv) S−G変換回路 第13図は、S−G変換回路b401の内、各リソース
から与えられるデータ有効信号を、命令制御ユニットU
3により指定されるレジスタ番号に対するベクトルレジ
スタ制御回路に供給する回路を示している。
第13図において、リソース種類番号が線Q429によ
りデコーダb439のデータ端子に入力され、書込み用
のベクトルレジスタ番号が線Q439を介してリソース
対応に設けたレジスタr410−r413に入力され、
命令起動信号STが、線Q419によりデコーダb43
9のデコード有効端T−Eに入力される。レジスタr4
10〜r413は、それぞれメモリ・リクエスタ0.1
および演算器0.1に対応して設けられている。線Q4
39上にはレジスタ番号GNIの他に、第12図の説明
でも述べたように、レジスタ番号が有効であるかどうか
を指示する信号Vも含まれている。
これらの信号はレジスタr410〜r413の内線Q4
29上にあるリソース種類2番号に対応するものにデコ
ーダb439によりリセットされる。
レジスタr410〜r413内のレジスタ番号GN1は
、それぞれデコーダb440〜b443のデコード入力
端子に、Vビットはデコーダb440〜b443のアン
ドゲートA付デコーダ有効端子Eの一方の入力端子に入
力される。これらの端子Eの他方の入力端子には、それ
ぞれメモリ・リクエスタ0,1、演算器0,1からデー
タ有効信号がそれぞれ線Q46.Q46’ 、Q29゜
Q29′を介して入力される。たとえば、レジスタr4
10にあるVフィールドの出力“1”がデコーダb44
0のアンドゲートに入力されている条件下では線Q46
から“1”が入力されるとデコーダb440がデコード
有効状態となり、レジスタr410のGNフィールドの
出力がデコードされて、デコーダの出力端子0〜7のい
ずれかが“1”となり、各出力端子に接続して設けられ
たオアゲートg430〜g437の出力線Q420〜Q
427のいずれかが“1”となる。この出力線Q420
〜f1427はベクトルレジスタO〜7に対応していて
、それぞれベクトルレジスタ制御回路0〜7にデータ有
効信号を供給する。
こうして、一度、レジスタr410−r413にデータ
がセットされた後、線Q46の“1”。
“O11の変化が、そのまま、線Q420〜427のい
ずれかに伝えられる。ここで、注意したいことは、レジ
スタr410〜r413内のレジスタ番号が異なり限り
、線Q46.Q46’ 、Q29゜Q29′の信号を同
時にそれぞれ線Q420〜12427の内の対応する線
に供給することができることである。この同時供給は最
大4つのレジスタ番号に対して可能である。こうして、
4つのリソースを並列に動作させることが可能となる。
なお、S−G変換回路b401の内、各リソースから供
給される最終ベクトルデータ信号を命令制御ユニットU
3により指定されるレジスタ番号に対するベクトルレジ
スタ制御回路O〜7に供給する回路部分は、第13図の
線Q46.Q4G’ 。
Q29.Q29’ をそれぞれ線Q44.Q44’ 。
Q26.Q26’ により置換し、線Q420〜Q42
7を線Q430〜Q437により置換すれば得られる。
S−G変換回路b404は、各リソース対応のオペラン
ド制御回路O〜3からそれぞれ線+2520〜Q523
を介して入力されるベクトルデータ送出信号を命令制御
ユニットU3により指定されるレジスタ番号のベクトル
レジスタへ線Q540〜Q543のいずれかを介して送
出する回路部分と、オペランド制御回路O〜3から線Q
510〜Q513を介して入力される最終ベクトルデー
タ信号を、命令制御ユニットU3により指定されるリソ
ース番号に対するベクトルレジスタ制御回路0〜7に線
Q530〜2537を介して送出する回路部分とからな
る。前者は、第13図において、線α439を線Q44
9により置換し、線Q46゜Q46’ 、Q29.Q2
9’ をそれぞれ、線Q520〜Q523により置換し
、線Q420〜Q427をそれぞれ@Q540〜Q54
7により置換することにより得られる。後者は、第13
図において、同様に線Q459、線Q510〜Q513
およびQ530〜Q537を用いることにより得られる
。S−G変換回路b405も、回路b404と同様に形
成されるので、詳細は省略する、なお、これらの置換後
の信号線番号を、第13図において信号線番号Q46.
Q46’ 、Q29.Q29’ 、Q420〜Q427
の後のカッコにて示しである。
(v)G−8変換回路 第14図は、a−S変換回路b402 (第11図)の
詳細を示したものである。命令起動制御回路b400か
ら線Q429を介してリソースの種類、番号が入力され
、線Q449を介してレジスタ番号が入力され、線Q4
19を介してセット信号が入力される。線C429上の
リソースの種類、番号は、ベクトルレジスタ対応のレジ
スタr42Q = r 427の内、線C449上のレ
ジスタ番号に対応するものにセットされる。セットすべ
きレジスタの指定は、線C449上のレジスタ番号がデ
ータ端子に入力され、fiQ419上のセット信号と、
線C449上のレジスタ番号の有効を示す信号■をデコ
ーダb449のアンドゲートAに入力されるデコーダb
449により制御される。レジスタr420〜r427
の出力は、それぞれに対応したデコーダb450〜b4
57に入力されている。デコーダb450〜b457は
、それぞれベクトルレジスタ制御回路0〜7から信号L
AQ480〜Q487を介してデコード有効端子Eに入
力されるベクトルレジスタ続出許可信号が“1″になる
と、データ入力端子より入力されているリソース種類、
番号に対応した出力端子のいずれか1つから“1”を出
力する。この結果、デコーダb450−b457のO〜
3番号の出力端子にそれぞれ接続されたオアゲートg4
40=g443のいずれかにより、線Q490−Ω49
3の内指定されたリソース対応の線が“1″となる。線
Q480−f1487のいずれかが“0”になると、デ
コーダb450〜b457の内の対応するものがデコー
ド有効でなくなるので、線Ω480〜Q487の“1t
t、n□”が対応する信号線Q490〜Q493へ“1
” IJ Onとして伝達されることになる。
なお、一度、レジスタr420〜r427にセットされ
たリソース番号種類が相互に異なるときは、線Q480
〜Q487の“1”信号をそれぞれ線Q490〜Q49
3内の対応する線に同時に供給可能であり、この同時供
給は最大4つのリソースに対して行いうる。これにより
4つのリソースの並列動作を可能にする。
なお、第11図のG−8変換回路b403は、第14図
の信号線Q449を線Q459により置換し、線Q49
0〜Q497をそれぞれ線[500〜Q507により置
換すれば得られる。なお、第14図には、この置換後の
信号線番号を置換すべき信号線の番号の後にカッコをつ
けて示しである。
(vi)ベクトルレジスタ制御回路 第15図は、ベクトルレジスタ制御回路b410の詳細
を示したものである。他のベクトルレジスタ制御回路1
〜7も全く同一構造で、この図の線Q400,1241
0.Q420.C430,C460,12480がこれ
らの信号番号の後のカッコ内に記載しである線信号に置
換することにより得られる。この制御回路では、書込み
又は読出しのみの動作と、チエイニング動作(書込み、
読出しの同時動作)の3動作を行なう。
(a)書込みのみの動作 ベクトルレ、ジスタOへの書込み起動指示が命令起動制
御回路b400 (第14図)により線Q410を介し
て伝えられると、書込み中を示すフリップフロップf4
20がセットされ、アップ/ダウンカウンタ(以下U/
Dカウンタ)C400がクリアされる。U/Dカウンタ
C400は、U。
D端子の入力に対して次のような出力を供給する。
入  力         出   力U    D(
カウンタの内容) 0  0    変らず 0  1   −1される 1   0    +1される 1   1    変らず 線Q420を介してS−G変換回路b401よリデータ
有効信号が入力されると、この信号は、フリップフロッ
プf420の出力14111により開かれているアンド
ゲートg420を経て、 U/DカウンタC400のU
端子に入力され、カウントの内容を+1するとともに、
そのままベクトルレジスタデータユニットU41 (第
10図)に送出される。S−G変換回路b401から線
Q430により、最終ベクトルデータ信号がつたえられ
ると、この信号はフリップフロップf420をリセット
し、書込み中の状態を停止するとともに、直接線Q43
0を介して命令制御ユニットU3(第1図)にも送出さ
れ、RG S W 、 r 306 (第3図)内の書
込み用ベクトルレジスタ番号(たとえばj)に対応する
ビット(W j )をリセットする。
なお、線Q430を他のベクトルレジスタ制御回路1〜
7の対応する出力線Q431〜Q437と一緒に束ねた
ものが第1図の線Q15である。
(b)読出しのみの動作 ベクトルレジスタOの書込み動作が起動されていない状
態で、このベクトルレジスタの読出しの起動指示が命令
起動制御回路b400 (第11図)より線Q400を
介して伝えられると、読出し中を示すフリップフロップ
f421がセットされる。
フリップフロップf420はリセットされた状態にある
ので、その出力を反転ゲートg451、オアゲートg4
52を介して入力され、またフリップフロップf421
の出力がへカされる。アンドゲートg453の出力線f
1480は“1”となる。
線Q480は読出し可能信号として、G−8変換回路b
402 (第11図)に供給される。したがって、命令
制御ユニットU3に関して説明したように、ある命令に
おいてベクトルレジスタが読出し用に使用されていると
きには、このベクトルレジスタを書込み用に用いる後続
の命令はこの読出しが終わるまで起動されない。したが
って、フリップフロップf420は、この読出しが終了
するまでセットされることはないので、線Q480には
フリップフロップf421がリセットされるまで読出し
可能信号が送出されつづけることになる。
こうして、ベクルレジスタOの全要素の読出しが終了す
ると、線Q460を介してS−G変換回路b404から
最終ベクトルデータ信号が入力され。
この信号によりフリップフロップf421がリセットさ
れる。
なお、線Q460は、他のベクトルレジスタ制御回路b
411〜b417内の対応する信号線Ω461〜Q46
7と一緒にして、線Q1Gとして、命令制御ユニットU
3内のRGSW、r306(第3図)に送られ、ベクト
ルレジスタOの読出しが終了したことを知らせ、このレ
ジスタのビットR○をリセットするのに用いられる。
(c)チエイニング動作 チエイニング動作は、あるベクトルレジスタに対しては
じめにある命令のために書込み動作が指示され、その動
作が終了する前に他の命令のために読出し動作が指示さ
れたときに生ずる。書込み動作が指示されても、データ
有効信号と書込みデータがリソースから到達しないと、
実際にはベクトルレジスタには書込みがおこなわれない
が、このデータ有効信号の到着と、読出し動作の指示の
時間的関係はどうでもよい。
(c−1)たとえば、書込み動作が線Q410により指
示され、フリップフロップf420がセットされ、U/
DカウウンタC400がリセットされた後、線Q420
からのデータ有効信号の到着前に、読出し動作が線Q4
00により指示され、フリップフロップ5421がセッ
トされると、U/DカウンタC400の出力に接続され
ているカウンタの内容が1以上になっていることを検出
する正検出回路b406の出力は“0″であり、反転ゲ
ートg451の出力も“0”なので、アンドゲートg4
53の出力線Q480も“0”のままである、ここで、
あるマシンサイクルnにおいて$0420にデータ有効
信号がくると、アントゲ−トg 450を経て、U/D
カウンタC400に、この信号が入り、このマシンサイ
クルnにおいて、U/DカウンタC400の内容は+1
になる。すると、正検出回路b460の出力が“1″と
なり、オアゲートg452、アンドゲートg453を経
て、線Q480にベクトルレジスタ読出し可能信号が出
力される。tQ Q 480は、U/DカウンタC40
0のD端子に接続されており、マシンサイクル(n+1
)において次のデータ有効信号線Q420から入ってこ
ないときには、マシンサイクル(n+1)以降ではカウ
ンタC400の値は0に戻る。したがって、読出し可能
信号は線Q480に1回のみ出力されることになる。そ
の後も、データ有効信号が間けつ的に入力される場合に
は、その都度読出し可能信号線Q480に出力される。
一方、マシンサイクル(n+1)以降もデータ有効信号
が連続して入力されると、U端子とD端子に“1”が入
力されるのでカウンタC400の値は変化せず“1″の
ままとなり、線Q480には続けて“1”が出力される
ことになる。
(c−2)書込み動作が線Ω410により指示され、フ
リップフロップf420がセットされ、U/Dカウンタ
C400がリセットされた後、データ有効信号が複数マ
シンサイクルにわたり到着して、その都度U/Dカウン
タC400がカウントアツプされて、0でない値を表示
している状態で、マシンサイクルnにおいて読出し起動
によりフリップフロップf421がセットされると仮定
する。
U/DカウンタC400の出力に接続されている正検出
回路b460の出力は“′1”となっているので、ベク
トルレジスタ読出し可能信号が線Q48oに出力される
。線Q480がU/DカウンタC400の端子に入力さ
れているので、線Q420からデータ有効信号が次のマ
シンサイクル(n+1)においては入力されなければ−
1され、入力されれば値は変らない。U/DカウンタC
400の内容がOになるまで、上記動作が繰返し行なわ
れる。読出し起動後あるマシンサイクルまでの間に′1
jAQ480に出力される読出し可能信号の数は、フリ
ップフロップf421がセットされる市のU/Dカウン
タC400の内容と、その後Q420から入力されたデ
ータ有効信号の数の和となる。このように、(c−1)
 、(c−2)のいずれの場合においてもベクトルレジ
スタに書込まれたベクトル要素数をこえては読出しがな
されないように保証される。なお、U/DカウンタC4
00の内容は、ベクトルレジスタに書込んだベクトル要
素数とそこから読出しベクトル要素数の差分を表現して
いると考えることができる。
チエイニング動作中に書込みが完了して、フリップフロ
ップf420がリセットされると、UZDカウンタの内
容は意味をもたなくなり、(b)の読出しのみの動作と
同等となる。
(報)オペランド制御回路 第16図は、オペランド制御回路0.b420の詳細を
示したものである。他のオペランド制御回路1〜3の構
成も同じで、この図の信号線番号を、その後のカッコ内
に記した信号線番号に変更すればよい。
命令起動制御回路b400から起動信号が線悲440を
介して出されると、セレクタ5410にて、線Q469
上の処理ベクトル長(VL)(必ず1以上であると仮定
する)が選択され、ベクトル長カウンタ(VLCTR)
C403にセットされる。また、この起動信号によりU
/DカウンタC401,C402の内容がクリアされる
。さらに、フリップフロップf431がセットされて、
本オペランド制御回路0の処理が有効になってことを記
憶する。オペランド制御回路Oに対応するメモリ・リク
エスタ0を必要とする命令が一つのベクトルレジスタの
読出ししか必要としない場合(ここでは命令のR3フィ
ールドがベクトルレジスタの読出しを指定しないと仮定
する)はそれを指示する信号が命令起動制御回路b40
0から線Q450を介して伝えられて、フリップフロッ
プf430をセットする。
ここでは、最初に、演算器Oを必要とする命令のR2,
R3フィールドともベクトルレジスタの読出しを指定し
ている場合について説明する。この場合には、フリップ
プロップf430は10”である。線0490.Q50
0はそれぞれG−8変換回路b402.b403からベ
クトルレジスタ読出し許可信号をそれぞれカウンタC4
01゜C402のU端子に入力する信号線で、この信号
の入力され方には、いろいろのケースがある。
各マシンサイクルごとにこれらのケースに応じた動作が
なされる。ここでカウンタC401,C402は、カウ
:、z夕c400 (第15図)ト同シもので、正検出
回路b461.b462は正検出回路b460 (第1
5図)と同じものである。
(a)両方とも入力されないケース このケースはさらに、次の4つのケースがある。
(a−1)U/DカウンタC401,C402のいずれ
も0のとき、 (a−2)U/DカウンタC401のみ正のとき、 (a−3)U/DカウンタC402のみ正のとき、 (a−4)U/DカウンタC401,C402のいずれ
も正のとき、 (a−1)〜(a−3)のケース これらのケースでは、アンドゲートg461〜G464
のいずれの出力も“1”とはならず、何らの出力も出さ
れない。
(a −4)のケース このケースはすでに、線Q490. +2500を介し
てベクトルレジスタ読出し許可信号が送られた後に生じ
る。このときには正検出回路b460゜b462の出力
が“1″になり前者は直接に、後者はオアゲートg46
0を経てアンドゲートg464に入力される。このアン
ドゲートg464の出力(1”はオアゲートg465を
経て、アンドゲートg466に入力される。アンドゲー
トg466には、フリップフロップf431の出力“′
l″が入力されている。また、アンドゲートg466に
は線Q630. Q631が入力されているが、これに
ついては後述する。ここではいずれも“1″であるとす
る。アンドゲートg466の出力線0520らベクトル
データ送出信号が出される。出力線Q520は、U/D
カウンタC401,C402のD端子に入力され、カウ
ンタ内容が1だけ減少される。
また、出力線Q520は、VLCTR,C403のセッ
ト信号として入力され、カウンタの値を1だけ減する。
すなわち、VLCTR,C403の出力が一1減算回路
b463に接続されて−1さ値がセレクタ5410に入
力されている。このときもはやセレクタ5410の制御
端子には、線Q440を介して命令起動信号ができてい
ないので一1減算回路b463の出力が選択され、VL
CTR,C403にセットされる。この次の回路動作は
、U/DカウンタC401,C402(7)内容に応じ
て、また、線Q490−1500からのベクトルレジス
タ読出し許可信号の入力状況に応じて異なる。
なお、ベクトルデータ送出信号が線Q520に出力され
た場合、1検出回路b464により、VLCTR,C4
03の、1減じる前の元の内容がLr 11jであるこ
とが検出されると、その信号はアンドゲートg467に
てベクトルデータ送出信号とアンドがとられた後、最終
ベクトルデータ信号として、線Q510に乗せられる。
また、この線Q510上の信号によって、フリッププロ
ップf431、f430をリセットする。
(b)線Q490の方のみ入力されるケース又は(c)
線Q500の方のみ入力されるースいずれのケースも動
作は同様であるので、ここでは(b)のケースについて
説明する。このケースでは、さらに、次の二つのケース
がある。
(b−1)U/DカウンタC402が′O″のとき、 (b−2)U/DカウンタC402が“正2′のとき、 (b−1)のケース このときには、正検出回路b462の出力は“0”であ
るので、アンドゲートg461〜g464のいずれの出
力は“1″とならず、従ってオアゲートg465の出力
、アンドゲートg466の出力も“0”ではU/Dカウ
ンタC401,C402のD端子入力は“0”のままで
ある。ベクトルデータ送出信号は線Q520には出力さ
れない、U/DカウンタC401のU端子には、線Q4
90からベクトルレジスタ読出し許可信号が入力されて
いるので、U/DカウンタC401は+1される。
(b−1)のケース このときには、正検出回路b462の出力は“1”であ
るので、アンドゲートg462の出力がパ1”となり、
オアゲートg465、アンドゲートg466を経て、ベ
クトルデータ送出信号が線Q 520 Lニー送られる
。VLCTRC403、フリップフロップf430.f
431のリセット等の動作は(a−4)のケースと同一
であるので、ここでは省略する。線Q520が“1”と
なるので、U/DカウンタC401,C402のD端子
はいずれも“1′″となる。U/DカウンタC401の
U端子には“1″が入力されているので、カウンタの内
容は変らない、U/DカウンタC402のU端子には、
′0”が入力されているので、カウンタの内容は−1さ
れる。
(d)線ff1490. Q500のいずれも同時に入
力されるケース このケースはさらに次の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)のケース このケースでは、線Q490.Q500上のベクトルレ
ジスタ読出し許可信号によりアンドゲートg461の出
力信号が1”となり、この結果ベクトルデータ送出信号
が線1520に出力される。U/DカウンタC401,
C402のU端子は“1”であり、D端子も線Q520
上のLL I P+が入力されるのでカウンタの内容は
かわらない。
VLCTR,C403の制御等の動作は(a−4)のケ
ースの説明と同一である。
(d−2)、(d−3)のケース この両ケースの動作は同様であるので、(d−2)のケ
ースについて述べる。
(d−2)のケースでは、U/DカウンタC401のみ
内容が正であるから、正検出器路b4601のみ内容が
正であるから、正検出器路b461の出力が“1″とな
り、アンドゲートg461およびg463の出力が“1
”となる、従互たオアゲートg465、アンドゲートg
466を経て、線Q520に、ベクトルデータ送出信号
が送出されることになる。VLCTR,C403等の制
御は、(a−4)のケースと同一なので、説明は省略す
る。U/Dカウンタc401.C402の内容は、(d
−1)のケースでの動作と同様なので変化しない。
(d−4)のケース このケースでは、U/DカウンタC401,C:402
の内容は正であるから、正検出回路b461、b462
の出力が(# I IFとなり、アンドゲートg461
〜g464のすべての出力が1”となる、以下の動作は
(d−2)のケースと同様で、ベクトルデータ送出信号
が線Q520に送出される。U/DカウンタC401,
C402の内容は同様に変化しない。
以上の動作の説明かられかるように、U/DカウンタC
401,C402は2つのオペランド(ベクトルデータ
)の送出に関し同期をとる役割を果たす、一方のみしか
ベクトルレジスタ続出し許可信号がこないときには、そ
れをカウンタ記憶しくカウンタ+1する)、それを取り
出すとカウンター−1していく、ベクトルレジスタ読出
し許可信号が同時に到着したときにはカウンタの内容は
変化しない。
次に、オペランドを一方しか使用しない場合について説
明する。この場合には、オペランド制御回路の起動時に
、オペランドを一方しか使用しないことを示すフリップ
フロップf430がセットされる。この出力は、正検出
回路b462の出力に接続されるオアゲートg460の
もう一方の入力端子に入力され、オアゲートg460の
出力をU/DカウンタC402の内容の如何にかかわら
ず“1″としてしまう。こうすると、線Q490から入
力されるベクトルレジスタ読出し許可信号のみによって
、先と同様に、ベクトルデータ送出信号が作成される。
なお、第16図中に示した線Q630は、ベクトルデー
タ送出信号の送出を許可するベクトルである。これは、
たとえば、演算器に対し、一定間隔以上はなしてベクト
ルデータ(従ってデータ有効信号)を送出したいとき(
たとえば演算器が連続してデータを受取ることができな
いとき)に使用される。この場合には、この許可信号は
オペランド制御回路内で作成される。たとえば、データ
有効信号によってリセットされ、データ有効信号から一
定時間後にセットされるフリップフロップの出力がこの
許可信号となる。また、メモリ・リクエスタに送出する
ベクトルデータを一時停止するとき(主記憶格納がまた
されるとき)などにも使用される。この場合には、この
許可信号は主記憶制御ユニットUl(第5図参照)、ま
たはメモリ・リクエスタにて作成される。線u630に
て、ベクトルデータ送出が不許可のとき、線Q490゜
Ω500から入力されるベクトルレジスタ読出し許可信
号はU/DカウンタC401,C402に入力されてカ
ウンタが更新される。線Q630から許可信号が入力さ
れると、線Q490.Q500から信号の入力がなくて
も、U/DカウンタC401、C402の内容が正であ
るため、アンドゲートg464の出力が′1”となって
、ベクトルデータ送出信号が線fl 520に出される
ことになる。同時に、U/DカウンタC401,C40
2は−1される。
また、タイミング制御回路b465はベクトルデータ送
出信号の送出タイミングを制御する回路である。第18
図の説明にて詳述するように、ベクトルレジスタに対し
読出し書込みをみかけ上回時に行なうために各ベクトル
レジスタを二つのメモリ素子にて構成し、各メモリ素子
に対して読出し書込みを交互に行なう。すなわち、ある
メモリ素子に書込みを行なうときには、もう一方のメモ
リ素子は読出しを、次のサイクルにはその逆を行なうと
いうように制御する。従って、書込みを行なっているメ
モリ素子に対しては同時に読出しを行なうことはできな
いので、そのサイクルは読出しを待たせ、次のサイクル
にて読出すように制御する必要がある。このために、ベ
クトルデータ送出信号の送出を一旦またせるように制御
する。この役割を相当するのがタイミング制御回路b4
65で、次のサイクルでは、ベクトルデータ送出信号を
送出してはならないと判断されると、タイミング制御回
路b465は出力線Q631をを“0″としてアンドゲ
ートg466の出力を抑止する。
具体的には、タイミング制御回路b465は、次のよう
な動作をする。すなわち、あるマシンサイクルにベクト
ルデータ送出信号が入力されると、次のマシンサイクル
、その2サイクル、4サイクル・・・・・・後のマシン
サイクルに“1”を出力する。
1サイクル、3サイクル・・・・・・後のマシンサイク
ルには“0′″を出力する。このタイミングを第17図
に示す。連続してベクトルデータ送出信号が入力される
と、次のマシンサイクルは“1”が出力されることから
、タイミング制御回路b465から連続して“1”が出
力されることに注意されたい。
本実施例においては、オペランド制御回路は、2つのベ
クトルレジスタの読出し可能信号を入力した場合につい
て述べているが、3つ以上のベクトルレジスタの読出し
可能信号を入力して、ベクトルデータ送出信号を作成す
ることも同様に容易に実現できる。
(i)ベクトルレジスタデータユニット第18図におい
て、8個のベクトルレジスタの各々はそれぞれベクトル
レジスタ回路b470〜b477中にある各ベクトルレ
ジスタは、その容量が大きいために、メモリ素子にて構
成される。
メモリ素子は、アドレスを与えて、その個所にデータを
書込むか、または、その個所のデータを読出すが、同時
に異なるアドレスについて読出し、書込みを行なうこと
はできない、チエイニング動作を実現するには、あるベ
クトル要素を書込み、同時に他のベクトルデータを読出
す必要があるので、本実施例では、1つのベクトルレジ
スタに対し2つのメモリ素子m400.m401にて二
つのベクトルレジスタを構成し、これらに対して交互に
読出しと書込みを行なう。こうすると異なるアドレスに
対し同時に読出しと書込みを行うことができる。
ベクトル要素の番号付けは偶数番目のベクトル要素と、
奇数番目のベクトル要素がそれぞれ同一のメモリ素子に
なるように配置されるとする。
以下に動作の詳細を説明する。ここではベクトルレジス
タ0に対する書込みおよび読出しについて説明するが、
他のベクトルレジスタへの動作についてもまったく同様
である。
命令が起動されると、ベクトルレジスタ制御ユニットU
40中の命令起動制御回路b400 (第12図)より
、S−G変換回路b480、G−8変換回路b481.
b482にリソース種類、番号が線Q439を介して、
書込みベクトルレジスタ番号が線439を介して、書込
みベクトルレジスタ番号(2つオペランドがあるので双
方の番号)が線Q449.Q459を介して、以上のセ
ラ(へ信号が1lQ419を介して送られてきて、S−
G変換回路b480、G−8変換回路b481.b48
2中にセットされる。S−G/G−3変換回路b480
.b481.b482は第13図、第14図にて説明し
たものと同一である。
ベクトルレジスタ0への書込みは、次のように動作する
。まず、ベクトルレジスタOへの書込み開始を指示する
信号が、線Q410を介して命令起動制御回路b400
より送出されてくる。この信号によって書込みアドレス
カウンタC411を0にクリアする。書込みアドレスカ
ウンタC4L1の出力は、セレクタ3420,5421
に入力される。セレクタ8420,5421の他の入力
は読出しアドレスカウンタC410の出力であり、これ
らのセレクタの制御端子にはそれぞれタイミング制御回
路b482の出力およびそれを反転ゲートg480で反
転した出力が入力される。タイミング制御回路b482
は、1マシンサイクルごとに出さ−れるクロックをトリ
ガタイプフリップフロップ(図示せず)にて受信するよ
うに構成されており、1マシンサイクルごとに“0”と
“′1”を交互に出力する。従って、タイミング制御回
路b482は、これらのセレクタを、セレクタ5420
にて、読出しアドレスカウンタC410の出力を選択す
るときには、セレクタ5421では、書込みアドレスカ
ウンタc411の出力を選択し、次のマシンサイクルで
は、その逆を選択するように制御する。セレクタ542
0の出力がメモリ素子m400のアドレスとして、セレ
クタ5421の出力がメモリ素子m401のアドレスと
して与えられる。さて、演算器0,1またはメモリ・リ
クエスタ0.1から線[45,f145’ 、Q29゜
Q29′を介して書込みデータがS−G変換回路b48
0に到着すると、このデータはM、m429で指定され
たリソースから線Q439で指定されたベクトルレジス
タに対応するベクトルレジスタ回路b470〜b477
のいずれかに入力されるゆここでは、ベクトルレジスタ
Oに書込むとしているので、回路b470に入力される
。書込みデータは、回路b470の入口に設けられたレ
ジスタVRIRE、r430.VRIRO,r440に
VRIR入力制御回路b484の指示により、交互にセ
ットされる。VRIR入力制御回路b484には、デー
タ有効信号Q420が入力され、データ有効信号Q42
0が入力され、データ有効信号の偶数番目、奇数番目ご
とにそれぞれVRIRE、r430.VRIRO,r4
40にそれぞれデータをセットするように制御する。書
込みを行なうべきサイクルが2つのメモリ素子m400
゜m401に交互に割当てられており(詳細後述)、任
意サイクルに、任意のベクトル要素に書込みを行なうこ
とはできず、1サイクル待たされることがあり、このと
きに、同じベクトルレジスタ回路b470に次の書込み
データが到着することが慰るので、2つのレジスタVR
IRE、VRIROを設け、相続く二つの書込みデータ
に異なるメモリ素子m400.m40Lに書込めるよう
にした。
書込みの指示は、ベクトルレジスタ制御回路O1(第1
4図)から線Q420を介して入力されるデータ有効信
号によりなされる。この信号は、書込みタイミング制御
回路b483に入力される。
回路483は偶数番目/奇数番目の書込み指示に従って
2マシンサイクル間保持した信号第19図に示すような
タイミングで2本出力し、この出力はそれぞれアンドゲ
ートg481.g482に入力される。一方、これらの
アンドゲートには、タイミング制御回路b482の出力
、およびそれを反転ゲートg480で反転させた出力が
入力され、その出力がそれぞれメモリ素子m400 、
 m401の書込み有効信号となる。書込みアドレスカ
ウンタc411は次のアドレスをさすように+1回回路
481を経て+1される。この制御はアンドゲートg4
81.g482の出力をオアゲートg48でオアした出
力により行なわれる。なお、書込みはメモリ素子m40
0.m401に交互に書いていくので、書込みアドレス
カウンタC411は、メモリ素子m400.m401の
双方に書込んだ後に+1すればよいことになるが、ここ
では、書込みアドレスカウンタの下1ビットを無視した
値を書込みアドレスとして、セレクタ5420゜542
1に入力される。これは、読出しアドレスカウンタc4
10についても同様である。以上述べたように、ベクト
ル要素はメモリ素子m400゜m401に交互に書込ま
れていく。以上の動作のタイムチャートにして第19図
に示す。
ベクトルレジスタOからの読出しは、次のように動作す
る。最初に、ベクトルレジスタ0からの読出し開始を指
示する信号が、線Q400を介して命令起動制御回路b
400より送出されてくる。
この信号によって、読出しアドレスカウンタC410を
クリアする。最初は、読出しアドレスカウンタc410
はOにクリアされているので、セレクタ5420,54
21を経て、アドレスがメモリ素子m400.m401
に与えられ、0番地のデータが読出されて、セレクタ5
422に入力される。セレクタ5422の制御端子には
、タイミング制御回路b482の出力を反転ゲートg4
80で反転した出力が入力され、いずれのメモリ素子か
ら読出されたデータを選択するかが指示されてメモリm
400のよみ出しサイクルにはメモリm400の出力を
、次のサイクルにはメモリm401の出力と交互に選択
するように制御される。
これによって選択されたデータは、レジスタ(VROR
)r450にて一旦セットされた後、G−8変換回路b
481.b482により、リソース対応のデータに変換
され、たとえば演算器0への被演算数のデータならば、
線[41によって、演算器0へ送出される。メモリ・リ
クエスタへのデータ(主記憶への格納データ)は1つで
よいのでG−8変換回路を1つ使用すればよい。ここで
は回路b481にて、G−3変換を行なうようにしてい
る。ベクトルデータのうち1ベクトル要素を送出するご
とに、ベクトルレジスタ制御ユニットU40より、ベク
トルレジスタの読出しアドレスカウンタc410の更新
信号が、線Q470を介して送出される。これによって
、読出しアドレスカウンタc410が1ずつ更新される
。更新は、カウンタc410の出力を+1加算回路b4
80を経てカウンタc410の入力に戻すことによって
行なう。
以上述べてきたように、ベクトルレジスタユニットでは
、リソースに供給するベクトルデータの読出し、および
リソースから送出されてくるベクトルデータの格納を行
なう。ここでリソースに供給するデータは、演算には2
つの必要なので、2つのベクトルデータを揃えてから送
出しなければならない。しかも、チエイニング動作によ
って、各ベクトルレジスタに不等間隔で格納される任意
の2つのベクトルレジスタ上のベクトル要素について、
2つともデータが揃ったことを確認した上で、読出す必
要がある。このために、ベクトルレジスタの各々が、読
出し可能か否かを検出する回路と、リソース対応に、2
つのデータが読出し可能を横比する回路を設け、読出し
可能のときはじめて、ベクトルレジスタからデータを読
出す(実際には、すでにデータが読出されており、その
読出しのために、読出しアドレスカウンタを更新する)
■ メモリ・リクエスタ メモリ・リクエスタOの回路の詳細を第20図に示す。
メモリ・リクエスタの動作は、命令起動時の初期化動作
、主記憶からの読出し動作、主記憶への格納動作の3つ
に分けられる。
(i)命令起動時の初期化動作 第20図において、命令制御ユニットU3により、線Q
10を介して命令起動信号が、線+213を介して、リ
ソース種類、番号が線Q11を介して、命令コードが、
線Q12を介してレジスタ番号が、線Q14を介して、
処理ベクトル長が送られてくる。線fila上のリソー
ス種類、番号は、デコーダblooでデコードされ、自
メモリ・リクエスタであることが指定されていると、デ
コーダblooより1′″が出力され、線Q10上の命
令起動信号とともに、アンドゲートg100に入力され
、その出力線Ω100に“1″が出力される。線Q10
0はフリップフロップf100に入力されてフリップフ
ロップをセットするとともに、レジスタMIR,r10
0.MGR,rlolのセット端子に入力されて、それ
ぞれ、命令コード、およびレジスタ番号をMIR,MG
Rにセットする。また線Q100はセレクタ5103の
制御端子に入力されて、線Q14上の処理ベクトル長を
選択し、処理ベクトル長カウンタ(MVLCTR)、c
looに処理ベクトル長にセットする。MVLCTR,
clooのセット端子にも、線Q100が接続されてい
る。以上で初期化動作を終了する。
(…)主記憶から読出し動作 主記憶からの読出し動作であることは、命令コードがセ
ットされているMIR,rlooの出力をデコーダbl
olでデコードすることによって知る。デコーダb10
1の出力線Q20は主記憶制御ユニットUl(第1図参
照)に送られて、読出しか、格納かの動作指定をすると
ともに、セレクタ5104,5105,5106,51
07の制御端子に入力され、それぞれのセレクタの11
 p 11と記入されている側を選択する。なお、主記
憶への格納がMIR,rlooにて指定している場合に
は、セレクタの“S”と記入されている側を選択する。
ベクトルアドレスレジスタU5、およびベクトルアドレ
ス増分レジスタU6(第1図参照)の出力がそれぞれ線
Q18.線019に介してそれぞれセレクタ5loo、
5lolに入力されて、レジスタ番号がセットされてい
るMGR,rlolの出力により指定されたベクトルア
ドレスレジスタU5、およびベクトルアドレス増分レジ
スタU6の内容が選択され、さらに、ベクトルアドレス
はセレクタ5102を経て作業用ベクトルアドレスレジ
スタ(WVAR)r 100、および作業用ベクトルア
ドレス増分レジスタ(WVAIR)rlllにセットさ
れる。両レジスタへのセットは、フリップフロップf1
00の出力線Q101により制御される。また、セレク
タ5102の制御端子にも線Q101が接続され、セレ
クタslo。
の出力を選択するように制御する。ベクトルアドレスW
VAR,rlloにセットされると、線Ω21により、
主記憶制御ユニットUl(第1図)に最初のベクトル要
素アドレスが送られる。同時に、MVLCTR,clo
oの出力に接続された非零検出回路b104より(処理
ベクトル長として1以上がMVLCTR)にセットされ
ているとすると)“1″が出力され、セレクタ5107
を経て、線f123によりアドレス有効信号として、主
記憶制御ユニットU1により送られる。線Q23はまた
、MVLCTR,clooの制御端子軸入力されて、M
VLCTR,clooの内容を一エする。1減じた値は
MVLCTR,clo。
の出力に接続された1減算回路b103により作成され
、セレクタ5103を経て、MVLCTR。
rlooに入力される。さらに、11 R23は、WV
AR,rlloの制御端子にも入力され、WVAR,r
lloと、WVAIR,rillの内容を加算器b10
2で加算した結果を、セレクタ5102を経て再びWV
AR,rlloにセットするように制御する。これによ
って、次のベクトル要素アドレスがWVAR,rllo
にセットされたことになる。これを次々と繰返して、ベ
クトルアドレスを求めてはアドレス有効信号(線Q23
)とともに、主記憶制御ユニットU1に線Q21を介し
て送出し、主記憶の読出し動作が行なわれる。
主記憶での読出し動作が完了すると、主記憶制御ユニッ
トU1より@Q 24を介して読出しデータが、線Q2
5を介して、データ有効信号が返される。線124上の
読出しデータは、セレクタ5105を経て、データレジ
スタDR,r120に入力され、線225がセレクタ5
104を経て、DR,r120のセット端子に入力され
て、読出しデータが、DR,r120にセットされ、そ
の出力が線Q29を介して、ベクトルレジスタデータユ
ニットU41(第10図)に送られる。また、線Q25
上のデータ有効信号はフリップフロップ、f102に一
旦セットされ、線1230により、ベクトルレジスタ制
御ユニットU40に送られる。
MVLCTR,clooが減算していき、内容が“1”
になると、1検出回路b105によって、最終ベクトル
要素であることが検出され、線Q32によって、最終レ
ジスタデータ信号が、主記憶制御ユニットU1にベクト
ルアドレス(線Q21)、アドレス有効信号(線Q23
)とともに送出され、線Q33によって、読出しデータ
と同期して戻される。線Q33上の最終ベクトルデータ
信号は、フリップフロップf103にて一旦セットされ
、セレクタ5106を経て、線Q26により、ベクトル
レジスタ制御ユニットU4 (第10図)に送られたが
、MVLCTR,c 100(7)内容は、1減算回路
b103を経て0”になると、非零検出回路b104は
“O”を出力し、アドレス有効信号の送出が停止される
。以上で、ベクトルデータの読出し動作が終了する。
(iii)ベクトルデータの格納動作 ベクトルデータの格納においては、まず、格納できるこ
とを指定する信号が、線Q20を介して主記憶制御ユニ
ットU1に送られる。この信号はMIR,rlooの内
容をデコーダblo1でデコードすることにより作成さ
れる。格納すべきデータの主記憶アドレスの送出は、読
出し動作とまったく同じである。すなわち、ベクトルア
ドレスレジスタおよびベクトルアドレス増分レジスタ中
の指定された1つがセレクタ5loo、5lo1により
選択されて、それぞれWVAR,rllo。
WVAIR,r120にセットされる。WVAR。
rlloの出力線Q21により主記憶制御ユニットU1
にベクトルアドレスが送られることも読出し動作と同様
である。
格納されるデータは、線Q27により、データ有効信号
(線f128上)とともに、ベクトルレジスタユニット
U4より送られてくる。ベクトルデータはセレクタ51
05を経て、DR,r120にセットされる。DR,r
120へのセットの制御は、線Q2B上のデータ有効信
号をセレクタ5105を経てDR,r120のセット端
子に入力することにより行なう、線Q2B上のデータ有
効信号はまた、フリップフロップ、f、101にも入力
され、一旦セットされた後、その出力は、セレクタ51
07を経て、線Q23によりDR,r120上の格納す
べきベクトルデータとともに主記憶制御ユニットU1へ
おくられる。これによって、主記憶制御ユニットは、主
記憶への書込み動作を行なう。線Q23上のアドレス有
効信号は、WvAR,r 110のセット端子に入力さ
れて、WvAR,r 110の更新に使用されることは
読出し動作と同様である。以上のようにして、ベクトル
レジスタユニットから格納すべきデータとデータ有効信
号が送られてくるたびに、そのアドレスを付して主記憶
制御ユニットへ送出すると同時に、WVAR,rllo
を更新して、次のベクトルデータの格納にそなえる。こ
れを、ベクトルレジスタユニットからデータが送られて
くる限り繰返し行なう。
なお、格納動作においては、M V L CT R、c
looは、読出し動作と同様に動作はするが、意味はも
たない。最終ベクトルデータ信号が線[32により主記
憶制御ユニットにおくられても、格納動作時は無視され
る。
■ 演算器 第21図は、演算器0の概略を示したものである。演算
器1も同一構造である。本実施例においては、演算回路
b210〜b213はすでに公知のごとく、各々への入
力に対する部分演算を演算制御回路b201〜b 20
4の制御の下で行なうものである。ここで、パイプライ
ン演算は4つのステージに分けて実行されると仮定して
いるが、このステージ数に特に制限はない。又、演算器
0゜1は命令で指定される各種の演算を行いうるちのと
する。本実施例においては、入力オペランドとしてベク
トルデータ、およびそのデータ有効信号が入力されると
、パイプライン・ステージによって演算され、結果のベ
クトルデータと、データ有効信号が同期して出力される
こと、最終ベクトルデータ信号が入力されたときには、
この信号もデータ有効信号と同期して出力されることが
特長である。
動作の概略を以下に説明する。
命令制御ユニットU3より線Q10を介して命令起動信
号がアンドゲートg200に入力され、aQ13を介し
てリソース種類9番号がデコーダb200に入力され、
線Q11を介して命令コードがレジスタr200に入力
される。デコーダb200の出力は、それへの入力が自
演算器に対するものであるときに、“1″となり、アン
ドゲートg200を介してレジスタA I R,r 2
00に線Qll上の命令コードのセットを指示する。
AIR,r200の出力は、演算制御回路b201〜b
204に入力されて、各ステージにおける演算回路b2
10−b213の動作を制御する。
一方、ベクトルレジスタユニットから、演算すべきベク
トルデータが線Q43により送出されてくると、ベクト
ルデータはレジスタr 210 v r220に、デー
タ有効信号はフリップフロップf200にセットされる
。データ有効信号(Q43)はレジスタr210.r2
20へのセット信号としても使用される。レジスタr2
10.r220上の内容は、演算回路b210にて演算
されて、次のサイクルにはレジスタr211.r221
に中間結果がセットされる。レジスタへのセットはフリ
ップフロップf200の出力が使用され、この出力はま
たフリップフロップf210に伝えられる。同様に、レ
ジスタr211.r212の出力は、演算回路b211
に入力されて演算を行ない、次のサイクルには、レジス
タr212.r222に中間結果がセットされる。これ
と同期して、フリップフロップf201の出力は、フリ
ップフロップf202に移される。以下、これを繰返し
て、演算回路b212、レジスタr213、演算回路b
213とデータが移動するとともに演算が進行し、最終
結果がレジスタr214にセットされる。データ有効信
号もフリップフロップf202からフリップフロップf
203、フリップフロップf204と移される。演算結
果と、そのデータが有効であることを示すデータ有効信
号は、それぞれ、線Q45と線Q46により、ベクトル
レジスタユニットに戻される。
演算すべきデータがレジスタr210.r220から、
レジスタr211.r221に移されると、次の演算す
べきデータがレジスタr210゜r220にセットされ
ることは、一般のパイプライン演算器と同様である。
最終ベクトルデータ信号線Q40により、フリップフロ
ップf210に入力されると、レジスタへのセットと同
様にして、フリップフロップf210にセットされる。
データ有効信号が、フリップフロップf200−f20
4を移動するのと同期して、最終ベクトルデータ信号が
フリップフロップf210−f214を移動し、線R4
44m出力され、ベクトルレジスタユニットU4に戻さ
れる。
以上述べたように、本発明における演算器ではベクトル
データと、データ有効信号が同期して入力され、データ
有効信号のパイプラインステージを移動するのと同期し
て、データが演算され、結果がデータ有効信号と同期し
て出力されることが特長である。最終ベクトルデータ信
号についても同様である。
(5)まとめ 以上述べたごとく、本発明によれば、先行命令の開始タ
イミングに関係なしこれとチエインする後続命令の実行
開始を実現でき、チエイニング動作をより頻繁に実現で
きる。また、ベクトルデータが間欠的な場合にもこの効
果を達成しうる。
【図面の簡単な説明】
第1図は、本発明によるベクトルプロセッサの概略構成
図、第2図は、本発明にて使用する各種レジスタの形式
を示す図、第3図は、命令制御ユニットの詳細を示す図
、第4図は、命令キューの詳細を示す図、第5図は、リ
ソース使用チエツク回路の詳細を示す図、第6図aは、
レジスタ使用チエツク回路の詳細を示す図、bはチエツ
ク条件を示す図、第7図は、レジスタ競合チエツク回路
の詳細を示す図、第8図は、命令制御ユニットの変形例
を示す図、第9図は、第8図のb394の旧 詳細ブロック図、第10瑣は、ベクトルレジスタユニッ
トの構成を示す図、第11図は、ベクトルレジスタ制御
ユニットの詳細図、第12図は、命令起動制御回路の詳
細を示す図、第13図は、S−G変換回路の詳細を示す
図、第14図は、G −8変換回路の詳細を示す図、第
15図は、ベクトルレジスタ制御回路の詳細を示す図、
第16図は、オペランド制御回路の詳細を示す図、第1
7図は第16図のタイミング制御回路の動作のタイムチ
ャート、第18図は、ベクトルレジスタデータユニット
の詳細を示す図、第19図は第18図の回路のタイムチ
ャート、第20図は、メモリ・リクエスタの詳細を示す
図、第21図は、演算器の詳細を示す図である。 第4 同 ′$J  羽 (L) (濾)ルー G7J1 亥、 Lン)ケア 第ブ呂 へ7Fkしwy、i 7−73−m IrUlaJ”+
禰)    ノ!、、    シ〕 !  Wや 吠 ・・\  (〈 1話 y    渇    嶋 乎7.?T□

Claims (1)

  1. 【特許請求の範囲】 1、記憶装置と、 それぞれが複数のベクトル要素を保持し、それぞれ、書
    込み動作と読み出し動作とを並列に実行でき、プログラ
    ム命令で指定可能な複数のベクトルレジスタの群と、 該ベクトルレジスタ群から読み出された複数のベクトル
    要素に順次受信するかあるいは該ベクトルレジスタ群に
    、書込むべき複数のベクトル要素を順次供給するかのい
    ずれか一方を少くともそれぞれ行う複数のリソースであ
    って、該ベクトルレジスタから読み出された複数のベク
    トル要素に対して演算を施し、演算の結果として得られ
    る複数のベクトル要素を該ベクトルレジスタに順次供給
    する少くとも一つのベクトル演算手段を該複数のリソー
    スの一つとして有するものと、 命令を解読し、解読した命令の実行開始を指示する命令
    制御手段であって、先に実行開始指示された第1の命令
    によりベクトル要素書込みのために指示されたベクトル
    レジスタと同じベクトルレジスタをベクトル要素の読出
    しのために指定する第2の命令実行開始を、該第1の命
    令の実行開始タイミングに無関係に指示することができ
    るものと、 該命令制御手段により実行開始された命令により指定さ
    れたベクトルレジスタから順次ベクトル要素を読み出し
    、該命令の実行に必要な一つのリソースに供給し、ある
    いは、該命令の実行に必要な一つのリソースから順次供
    給される複数のベクトル要素に該命令により指定された
    ベクトルレジスタに順次書込む実行制御手段とを有し、
    該実行制御手段は、各ベクトル要素を次に読み出すべき
    時点において、各ベクトル要素がすでに書き込まれてい
    るか否かに応じて各ベクトル要素の読み出しを制御する
    ことにより、該第1の命令による全ベクトル要素の書き
    込み完了前から該第2の命令のためのベクトル要素の読
    み出しを実行するものであるデータ処理装置。
JP22634087A 1987-09-11 1987-09-11 データ処理装置 Granted JPS63100572A (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22634087A JPS63100572A (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
JPS63100572A true JPS63100572A (ja) 1988-05-02
JPH0454262B2 JPH0454262B2 (ja) 1992-08-28

Family

ID=16843636

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPS63100572A (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5688559A (en) * 1979-12-21 1981-07-18 Fujitsu Ltd Pipeline arithmetic unit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5688559A (en) * 1979-12-21 1981-07-18 Fujitsu Ltd Pipeline arithmetic unit

Also Published As

Publication number Publication date
JPH0454262B2 (ja) 1992-08-28

Similar Documents

Publication Publication Date Title
JPS6152512B2 (ja)
US4794517A (en) Three phased pipelined signal processor
US5081574A (en) Branch control in a three phase pipelined signal processor
US4658355A (en) Pipeline arithmetic apparatus
US4539635A (en) Pipelined digital processor arranged for conditional operation
JPH0562390B2 (ja)
US3325785A (en) Efficient utilization of control storage and access controls therefor
US4598358A (en) Pipelined digital signal processor using a common data and control bus
US4812970A (en) Microprogram control system
JPH08221273A (ja) 命令レベルの並列処理制御方法およびプロセッサ
JPS63100572A (ja) データ処理装置
JPS61180370A (ja) データ処理装置
JPS63100573A (ja) データ処理装置
US3405396A (en) Digital data processing systems
US5475828A (en) Digital processor having plurality of memories and plurality of arithmetic logic units corresponding in number thereto and method for controlling the same
JP2760808B2 (ja) データ処理装置
JPH07110769A (ja) Vliw型計算機
JPH0250258A (ja) ベクトル処理装置
JPH0522935B2 (ja)
JP2693598B2 (ja) ディジタルシグナルプロセッサのプログラム実行制御装置
JPS5896346A (ja) 階層型演算方式
JP2912067B2 (ja) 調速処理装置及びデバッグ装置
JPH0221331A (ja) マイクロコンピュータのプログラム制御方式
GB2069198A (en) Pipelined data processor
JPH03111935A (ja) マイクロプログラム制御装置