JPS6152512B2 - - Google Patents

Info

Publication number
JPS6152512B2
JPS6152512B2 JP56210392A JP21039281A JPS6152512B2 JP S6152512 B2 JPS6152512 B2 JP S6152512B2 JP 56210392 A JP56210392 A JP 56210392A JP 21039281 A JP21039281 A JP 21039281A JP S6152512 B2 JPS6152512 B2 JP S6152512B2
Authority
JP
Japan
Prior art keywords
vector
instruction
register
read
line
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
JP56210392A
Other languages
English (en)
Other versions
JPS58114274A (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 JP56210392A priority Critical patent/JPS58114274A/ja
Priority to GB08236821A priority patent/GB2113878B/en
Priority to US06/453,094 priority patent/US4617625A/en
Priority to DE19823248215 priority patent/DE3248215A1/de
Publication of JPS58114274A publication Critical patent/JPS58114274A/ja
Priority to GB858510663A priority patent/GB8510663D0/en
Priority to GB08516951A priority patent/GB2159309B/en
Publication of JPS6152512B2 publication Critical patent/JPS6152512B2/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
    • G06F15/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Description

【発明の詳細な説明】
〔発明の利用分野〕 本発明は、プログラム制御のデジタル計算機、
特にベクトル演算を高速で実行するのに好適なデ
イジタル計算機(以下これをベクトルプロセツサ
とよぶ)に関する。 〔従来技術〕 科学技術計算に頻繁に現れる大形行列計算など
の高速処理用にベクトルプロセツサが考案されて
いる。 特に、複数個のパイプライン演算器の高速性を
有効に発揮し、演算データの転送能力を向上させ
るため、ベクトル・レジスタとチエイニング機能
を有するベクトルプロセツサが提案されている
(米国特許4128880号)。 A.従来の装置ではチエイニングについて次の問
題点がある。このことをベクトル演算の簡単な例
を挙げて説明する。 FORTRAN文 DO 10 I=1,L 10 Y(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 5.Vector Add VR4←VR0 +VR3 6.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) 第1エレメントの書込み時(即ち、チエイ
ン・スロツト・タイム)以後に解読されたベク
トル命令は、その解読時点がチエイン・スロツ
ト・タイムをすぎているので、チエイニング不
可能と判定され、後続命令の起動は先行命令に
よる書込みが全て終了するまで待たされる。例
えば、上記例でベクトル命令4と5の間に他の
複数のベクトル命令が存在し、そのため命令5
の解読時刻が命令4のチエイン・スロツト・タ
イムを経過してしまう場合には、ベクトルレジ
スタVR3のチエイニングは不可能となり、ベ
クトル命令4の実行が完全に終了するまで命令
5の開始は待たされ、結局処理時間は延びる。 (2) さらに演算の多くは、2つのベクトルオペラ
ンドを演算して1つの結果を出力する形である
から、この読出すべき2つのオペランドをそれ
ぞれ格納する二つのベクトルレジスタがとも
に、各々先行命令による書込み中であるとき、
これら両方をチエイニングして同一演算器へ入
力するためには、両オペランドの対応するエレ
メントが全て同一時刻に両Vレジスタへ書込ま
れることが保証されなければならない。例えば
上例でベクトル命令1による主記憶装置5から
のフエツチ・ベクトルデータのベクトルレジス
タVR0への到着と、ベクトル命令4の乗算結
果ベクトルのベクトルレジスタVR3への到着
が全エレメント対について同期することが、ベ
クトル命令5の解読時に予測されうるならば、
チエイニング可能と判定され即時起動される。 したがつて、両ベクトルデータの連続する要素
が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に起動信号他を送出する。 概略動作 (i) 命令実行起動 命令制御ユニツトU3が命令実行を起動すると
きには、信号線11〜14に必要なデータを
セツトし、起動信号を線10にセツトし、メモ
リ・リクエスタU10,U11とベクトルレジス
タユニツトU4、または、演算器U20,U21
とベクトルレジスタユニツトU4に起動をかけ
る。 ここで、命令起動の条件は、必要なメモリ・リ
クエスタU10又はU11または演算器U20又
はU21が現在使用中でなく、かつベクトルレジ
スタユニツトU4内にあるベクトルレジスタVR
の内、命令に必要なレジスタが使用できる状態に
あるということである。 ここで、あるベクトルレジスタが使用可能か否
かは、後述するようにそのベクトルレジスタが現
在使用中か否かとは異なる。使用中でなくても、
使用できないベクトルレジスタもあり、使用中に
もかかわらず使用可能なものもある。 起動条件が満たされていない命令は、起動待ち
命令列に登録し、その後、起動条件を満す命令が
解読されたとき、この解読された命令を先に起動
する。 信号線11は、実行すべき命令の演算の種
類、たとえば、加算、乗算、ベクトル読出し、ベ
クトル書込み等を指定する命令コードを送出す
る。 信号線12は、命令が使用するレジスタF号
を指定する。ここでは、各命令はレジスタを最大
3つ指定可能とする。本実施例では、ベクトルレ
ジスタユニツトU4に8つのベクトルレジスタ
VR0〜VR7が設けられ、同数のベクトルアドレ
スレジスタU5、ベクトルアドレス増分レジスタ
U6がメモリ・リクエスタ0,1に接続されてい
る。これらのベクトルレジスタ、ベクトルアドレ
スレジスタ、ベクトルアドレス増分レジスタには
それぞれ番号0〜7,8〜15,16〜23があ
らかじめ割りあてられている。 信号線13は、起動するメモリ・リクエスタ
または演算器の番号を指定する。ここでは信号線
13は3本で、1本はメモリ・リクエスタを指
定、1本は演算器を指定、もう1本は命令が使用
するメモリ・リクエスタ又は演算器のいずれかの
番号を指定する。メモリ・リクエスタ又は演算器
の数はそれぞれ二つなので、これらの番号を指定
する線は一本でよい。 信号線14は処理すべきベクトル要素数を指
定する。 メモリ・リクエスタU10,U11、ベクトル
レジスタユニツトU4、演算器U20,U21は
線10上の起動信号に応答して次の動作を行
う。 (ii) 主記憶からのベクトルデータの読出し このための命令の実行が線11上の命令コー
ドにより指定されると、たとえばメモリ・リクエ
スタU10は、信号線12で指定される第2、
第3のレジスタ番号に従つて、ベクトルアドレス
レジスタU5およびベクトルアドレス増分レジス
タU6の各々一つを選択してベクトルアドレスお
よびその増分を内部にセツトする。メモリ・リク
エスタU10は読出しコマンドと、ベクトルアド
レスとアドレス有効信号とをそれぞれ信号線2
0,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にも知られる。 (iii) 主記憶へのベクトルデータの格納 主記憶へのベクトルデータの格納の命令が実行
される場合も、ベクトルアドレス、その増分は(ii)
と同様にメモリ・リクエスタU10にセツトされ
る。 格納の場合には、ベクトルレジスタユニツトU
4にて信号線12で指示される番号のベクトル
レジスタから次々とベクトルデータがよみ出さ
れ、信号線27に乗せられるとともに、データ
有効信号が線28に乗せられて、たとえばメモ
リ・リクエスタU10に送られる。メモリ・リク
エスタU10はこれらにさらにベクトルアドレス
を付し、書込みコマンド、ベクトルアドレス、ベ
クトル要素データ、データ有効信号をそれぞれ信
号線20,21,22,23にのせて主
記憶制御ユニツトU1に送る。送るべきベクトル
データ要素が最終要素のときにはさらに、線3
2に最終ベクトルデータ信号を送出する。主記憶
制御ユニツトU1はさらに主記憶への格納を制御
する。必要な数のベクトル要素の送出がベクトル
レジスタユニツトU4から行なわれると、最終ベ
クトルデータ信号が信号線31を経てメモリ・
リクエスタU10に送られ、メモリ・リクエスタ
U10は、(ii)の場合と同様、信号線26にそれ
をのせて、命令制御ユニツトU3に知らせる。 (iv) ベクトル演算 ベクトル演算命令実行のために演算器U20ま
たはU21(ここではU20とする)とベクトル
レジスタユニツトU4に起動がかかつたときに
は、これらは次のように動作する。なお、ここで
は各演算器は種々の命令が必要とする複数種類の
演算を実行可能とする。 ベクトルレジスタユニツトU4は、信号線1
2で指定される一般には二つのレジスタ番号のベ
クトルレジスタから最初の要素データを読出し、
それぞれのデータを信号線41,42にの
せ、データ有効信号を信号線43にのせて、演
算器U20に送る。演算器U20では2組のベク
トル要素データを線11上のOPコードに従が
い演算後、その結果と、データ有効信号をそれぞ
れ信号線45,46に乗せて、ベクトルレジ
スタユニツトU4に送り返す。ベクトルレジスタ
ユニツトU4では、信号線12で指定される信
号のベクトルレジスタに結果を格納する。これら
の処理が順次、次の要素データについて行なわれ
る。最後のベクトル要素になると、最終ベクトル
データ信号が、信号線40を介してベクトルレ
ジスタユニツトU4から演算器U20に送られ、
演算器U20からの最終結果に同期して、信号線
44により、再びベクトルレジスタユニツトU
4に戻される。この信号は、同時に、命令制御ユ
ニツトU3にも知らされ、演算器の空きおよびベ
クトルレジスタの空きを知らせる。 以上において、ベクトル要素データの転送はマ
シンクロツクに応答してなされるが、ベクトルレ
ジスタユニツトU4は、転送すべき一対のベクト
ル要素データが二つのベクトルレジスタにそろつ
ていないとき、これがそろうまで転送を禁止す
る。したがつて、ベクトル要素の読出しあるいは
格納が間欠的に行なわれる。 なお、メモリ・リクエスタU11、演算器U2
1の構成はそれぞれメモリ・リクエスタU10、
演算器U20と全く同一であり、第1図でプライ
ム(′)の付けた信号線はこれのないものに応答
する。 レジスタ 詳細な動作説明に先立ち、以下において必要な
レジスタの形成を以下に述べる。第2図aは命令
がセツトされる命令レジスタ(Iレジスタ)の構
成を示す。ここで、OPフイールドは命令コード
を、R1,R2,R3フイールドはレジスタ番号を示
す。勿論、命令自身この図に示すフイールドを有
する。R1〜R3フイールドによつて示されるレジ
スタはベクトルレジスタ、ベクトル・アドレスレ
ジスタ、ベクトルアドレス増分レジスタであり、
いずれのレジスタが指定されるかは命令の種類に
より次のようになる。 (i) 演算器にて演算を行う命令(加算、乗算命令
等) R1:演算結果ベクトルを格納すべきベクトル
レジスタ番号 R2:演算されるベクトルデータ(被加数、被
乗数等)が格納されているベクトルレジ
スタ番号 R3:演算すべきベクトルデータ(加数、乗数
等)が格納されているベクトルレジスタ
番号 ここでは、R1,R2,R3フイールドで
はすべて異なるベクトルレジスタを指定
することとする。 なお、命令によつては、R3フイール
ドが使用されない場合がある(転送命令
等)。 (ii) 主記憶からデータを読出す命令 R1:データを格納すべきベクトルレジスタ番
号 R2:ベクトルアドレスレジスタ番号 R3:ベクトルアドレス増分レジスタ番号 (iii) 主記憶にデータをストアする命令 R1:データが格納されているベクトルレジス
タ番号 R2:ベクトルアドレスレジスタ番号 R3:ベクトルアドレス増分レジスタ番号 第2図bは演算器U20,U21、メモリ・リ
クエスタU10,U11(以下、これらをまとめ
てリソースとよぶことがある)の制御にかかわる
レジスタ、すなわち、デコードリソースレジスタ
(DSレジスタ)、キユーリソースレジスタ(QSレ
ジスタ)、実行可能リソースレジスタ、(ESレジ
スタ)、レジスタユニツトリソースレジスタ(RS
レジスタ)の形式を示す。ここで、S,A,Nフ
イールドはそれぞれメモリ・リクエスタの使用、
演算器の使用、メモリ・リクエスタまたは演算器
の番号をそれぞれ指定する。なお、DSレジス
タ、QSレジスタにはNフイールドはない。 第2図cはベクトルレジスタの制御にかかわる
レジスタ、すなわち、デコードレジスタレジスタ
(DGレジスタ)キユーレジスタレジスタ(QSレ
ジスタ)〜メモリリクエスタレジスタレジスタ
(MGレジスタ)、レジスタユニツトレジスタレジ
スタ(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フイールドはない。デコーダb301
はこのOPフイールドがメモリ・リクエスタU1
0又は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)を有し、デコーダb
303は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〜QIR2からなる。同様にキユーリソー
スレジスタ(QSレジスタ)q302はこれら三
つのレジスタQIR0〜2内のOPコードに対するリ
ソース使用要求をDSレジスタr303から受け
とり、ストアする三つのレジスタQSR0〜2から
なり、キユーレジスタレジスタ(QGレジスタ)
q303は、レジスタQIR0〜2内のOPコードに
対するベクトルレジスタ使用要求をDGレジスタ
R,r305から受けとり、ストアする三つのレ
ジスタQGR0〜3からなる。結局、レジスタq3
01〜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の出力がそれぞれ反転ゲートg33
5,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本である)。アンドゲートg32
0,g321の出力がともに0のときにはエンコ
ーダb321の出力はいずれの値でもよい。同様
に、演算器の空きの状態についてもDSレジスタ
r303のAフイールドr3032の出力と、
RSSWレジスタr304のA0,A1フイールドr
3043,r3044の出力とから反転ゲートg
337,g338、アンドゲートg322,g3
23、オアゲート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レジスタ
r304の各ビツトのセツトに使用される。ここ
で、デコーダb302は、メモリ・リクエスタ番
号のデコーダb3022と、演算器番号のデコー
ダb3021とから成り、それぞれ、デコード有
効端子Eを有していて、Eが“1”のときのみデ
コード入力信号をデコードする。デコーダb30
21のデコード有効端子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にすでに貯えられた命令を
追越して実行したとき、ベクトルレジスタ使用順
序上の矛循がないかをレジスタ競合チエツク回路
b309〜b311にてチエツクする必要があ
る。これが第2のチエツクである。なお、本実施
例ではこの第1、第2のチエツクはベクトルレジ
スタのみについて行ない、ベクトルアドレスレジ
スタU5、ベクトルアドレス増分レジスタ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)にのみ使用可と判断し、アンドゲートg
343に“1”を出力する。V1ビツトが“0”
のときには、ベクトルレジスタが使用可とし、こ
の場合にもアンドゲートg343に“1”を出力
する。同様に、DGレジスタr305のR2フイー
ルドr3052、R3フイールドr3053につ
いてもそれぞれ第2、第3使用チエツク回路b3
072,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”となる(詳細後述)。アンドゲートg3
53は、これらのチエツク回路b3091〜b3
093の出力がいずれも“1”をオアゲートg3
59を介して線315に出力する。一方オアゲ
ートg359には、反転ゲートg356の出力も
入力されている。したがつて、反転ゲートg35
6への入力線325が“0”のときも、線3
15に競合なしを示す信号“1”が出力されるよ
うになつている。レジスタ競合チエツク回路b3
10,b311も回路b309と同じ構成を有
し、アンドゲートg354、g355又は、反転
ゲートg357,g358、オアゲートg36
0、g361により、線316、317上に
競合チエツク結果を出力する。 線323〜325は、フリツプフロツプf
304〜f306(第3図)に接続されている。
これらのフリツプフロツプは、命令キユーレジス
タq301(第7図)中のレジスタQIR0〜QIR2
の各々に対応して設けられ、これらのレジスタ内
に命令が存在するときにセツトされる(詳細後
述)。 今の場合には、命令キユーレジスタq301に
命令はないとしているので、これらのフリツプフ
ロツプはセツトされておらず、その出力線32
3,324,325は“0”となつている。
したがつて、線315〜317の出力はすべ
て1である。こうして命令キユーレジスタq30
1中に命令がない場合には競合チエツク回路b3
09〜b311の出力とは無関係にベクトルレジ
スタの競合がないことを示す信号を作り出してい
る。 再び第3図に戻つて説明する。レジスタ競合チ
エツク回路b309〜b311からの出力線、
315〜317は、上記に述べたように“1”
になつている。したがつてこれらを入力とするア
ンドゲートg301の出力322は1となつて
いる。今の場合にはレジスタ使用チエツク回路b
307の出力線313も、ベクトルレジスタが
使用することができるのと前提から“1”になつ
ており、したがつてアンドゲートg302の出力
も“1”である。また、リソース使用チエツク回
路b305の出力線310も、リソースが使用
することができるのと前提から“1”になつてい
る。さらに、DIレジスタr302に有効な命令
があることを示すフリツプフロツプf302の出
力線302も“1”となつている。後述のよう
に、アンドゲートg305の出力は“0”のた
め、反転ゲートg310の出力は“1”となつて
いる。このような状態のとき、アンドゲートg3
04の出力も“1”となり、従つて、オアゲート
g306の出力線330を介してフリツプフロ
ツプ、f303がセツトされる。このフリツプフ
ロツプf303はタイミングのみでセツト/リセ
ツトされるDタイプフリツプフロツプで、命令起
動信号STを線10により、ベクトルレジスタ
ユニツトU4、メモリ・リクエスタU10,
UYY、演算器U20,U21に送出する(第1
図参照)。また、命令キユーレジスタq301中
に命令がないことから、レジスタQIR0〜QIR2に
命令があるときに“1”がセツトされる対応のフ
リツプフロツプf307〜f306の出力はいず
れも“0”であり、その出力線323〜32
5が入力されているセレクタS303の出力もセ
レクタS303の選択動作(詳細後述)に無関係
に“0”となつている。従つて、この出力線3
26が入力されているアンドゲートg305の出
力線321も“0”となる。セレクタS30
1,S302,S304は、それぞれDIレジス
タr302の出力線303上のオペコード、リ
ソース使用チエツク回路b305の出口線30
9上のリソース使用要求(リソース種類、番号)
およびDGレジスタr305の出力線307上
のベクトルレジスタ使用要求(レジスタ番号、使
用形態)を選択して、それぞれEIレジスタr3
08、ESレジスタr309、EGレジスタr31
2にセツトする。セツトは線330により指示
される。なお、ベクトル長レジスタ(VLR)r
307には、あらかじめ別の手段(図示せず)に
よつて処理すべきベクトル長(VL)が格納され
ているとする。これらのレジスタの内容は、線
11〜14によつて、ベクトルレジスタユニツ
トU4、各リソースU10,U11,U20,U
21に送出される。これにより、命令実行の起動
が指令されたことになる。 なお、ここでは、DIレジスタr302中の命
令はすぐに起動可能であるので命令キユーレジス
タq301に入れる必要はない。今の場合、アン
ドゲート、g303の出力が“1”であることか
ら、反転ゲートg308の出力は“0”となり、
この出力が入力されているアンドゲートg303
の出力線327が“0”となつている。こうし
て、この信号線327により制御される命令キ
ユーレジスタq301へのDIレジスタr302
の内容の入力がおさえられる。また、同様に、レ
ジスタq302,q303への新たな入力も禁止
される。命令キユーレジスタq301中に命令が
存在することを示すフリツプフロツプf304〜
f306へのセツト、次にセツトすべき命令キユ
ーレジスタq301中の場所を示すインポインタ
IP,r310等の更新を抑止する。 また、命令の起動にともない、使用するリソー
ス状態を管理するRSSWレジスタr304、ベク
トルレジスタの状態を管理するRGSWレジスタr
306を変更する必要がある。このうち、RSSW
レジスタr304の変更については、第5図の説
明において述べた。RGSWレジスタr306の状
態の変更については、次のようにする。すなわ
ち、セレクタ、S304により選択されたDGレ
ジスタr305の出力が、デコーダb304に送
られて、そこでベクトルレジスタの番号、読出
し、書込み等が解読され、対応するRGSWレジス
タr306中のビツトが“1”にセツトされる。
すなわち、DGレジスタr305のフイールドRi
(i=1〜3)ごとに、Vi=1であることを条件
に、Wiが1か否かに応じてRGSWレジスタr3
05の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)レジスタr
310の出力IPが線328を介して送られてく
ると、それぞれデコーダb330のデコード有効
端子Eおよびデータ端子に入力され、デコードさ
れる。その結果、線327が“1”のときに線
328の内容がデコードされ、その結果、指定
されたレジスタr350〜r352のいずれか
に、入力線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〜r352からセレクタS35
0を介さずに直接出力する信号線がさらに別に設
けられている点で命令キユーレジスタq301と
異なるのみである。 再び第3図に戻つて説明する。こうして命令コ
ード、その命令が使用するリソースの種類等、お
よびレジスタの番号等をそれぞれ命令キユーレジ
スタq301〜q303に登録すると、これらの
命令キユーレジスタに命令が存在することを示す
フリツプフロツプf304〜f306のうち、今
回登録したレジスタQIRi(i=0、1or2)に対
応するフリツプフロツプをセツトする。この動作
は、線327が“1”となり、これがデコーダ
b312のデコード有効端子に入力され、データ
端子に入力された(出力線328)上のIPで指
定される番号のフリツプフロツプf304〜f3
06のいずれかがデコーダb312によりセツト
されることにより実現される。以上が終了する
と、IPレジスタr310が更新される。IPレジス
タr310の出力線328は3進カウンタb3
14に入力されて、次のIPの値が作成され、線
327が“1”となると、IPレジスタr310
に、次のポインタの値がセツトされる。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はオアゲート
g306を介してフリツプフロツプf303をセ
ツトし、ベクトルレジスタユニツト、各リソース
に命令の起動信号STを線10を介して送出す
る。オアゲートg306の出力線330は、
EIレジスタr308、ESレジスタ309、EGレ
ジスタr312のセツトの制御にも使用される。
命令起動については、(a−1)の説明とまつた
く同様である。さらに、線321上の“1”の
信号は、反転ゲートg310により、アンドゲー
トg301を閉じる。その結果、反転ゲートg3
08の出力が“1”となり、DIレジスタr30
2に命令が入つている場合(フリツプフロツプf
302が“1”の場合)には、線327を
“1”としてその命令を命令キユーレジスタに登
録するように制御する。この処理は(a−2)に
述べたとおりである。また、線321は、デコ
ーダb313のデコード有効端子にも接続され、
デコーダ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レジスタr
302中の命令が使用しないこと、また命令キユ
ーレジスタq301中にある命令にて読出すベク
トルレジスタについては、DIレジスタr302
中の命令が変更しないことが必要である。命令キ
ユーレジスタ中の命令で読出すのみに用いられる
ベクトルレジスタを、DIレジスタ中の命令で読
出すことについては、命令の追越しをしてもレジ
スタの読出す順序が逆転するだけなので、問題は
ない。以上述べたレジスタ競合チエツクを行なう
回路が、第3図の回路b309〜b311であ
る。この詳細を第7図に基づき説明する。 第7図の回路の詳細は、回路b3091〜b3
093の詳細を除き、すでに説明した。 第1レジスタ競合チエツク回路b3091は
DGレジスタr305のR1フイールド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におい
て Vj=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でチ
エツクされ、その結果がそれぞれアンドゲートg
354,g355を経て、オアゲートg360,
g361の出力線、316,317にのせら
れる。 DIレジスタr302中にある命令が要求する
リソースおよびレジスタの使用状況のチエツクに
ついては、(a−1)の処理の説明にて詳細を述
べたとおりである。 チエツクの結果、第3図において、リソース使
用チエツク回路b305の出力として、線31
0にリソースが空いていることを示す“1”の信
号が、線309にリソースの種類、番号がレジ
スタ使用チエツク回路b307の出力として、線
313にベクトルレジスタが使用可能であるこ
とを示す“1”の信号が出力される。一方、命令
キユーレジスタ中のアウトポインタOPで指定さ
れる命令が使用するリソースまたはベクトルレジ
スタのいずれか一方または双方とも使用可能でな
いので、リソース使用チエツク回路b306の出
力線312または、リソース使用チエツク回路
b308の出力線314の少くともいずれか一
方は“0”になつている。また、命令キユーレジ
スタに命令が存在することから、セレクタS30
3の出力線326は“1”に、DIレジスタr
302に命令が存在することから、線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〜g
381、プライオリテイエンコーダ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の記憶情報とこのときの命令実行順序の関係
は次の表のとおりである。
【表】 命令の実行順序の変更は、フリツプフロツプf3
04〜f306が“1”から“0”(使用中から
非使用中)になつたときに行なわれる。この変更
を制御するのが変更制御回路b393である。回
路b393には、フリツプフロツプf304〜f
306の出力323〜325と現在の起動状
態を表わすフリツプフロツプf380〜f382
の出力396〜398が入力され、次の起動
状態が線376〜378に出力されて、再び
フリツプフロツプf380〜f382にセツトさ
れる。回路b393の内部では、命令キユーレジ
スタq301内の一つの命令が起動され線32
3〜325が“1”から“0”に変化した時点
をとらえ、次のように線396〜398の内
容から、出力を作成し、線376〜378に
のせる。 すなわち、命令キユーレジスタq301内の残
りの二つの命令を先ず起動し、かつ、このとき、
この二つの命令の起動順序はそれまでにフリツプ
フロツプf380〜f382が指定していた順序
とし、これらの二つの命令の起動後に、今回起動
された命令のかわりに新たに命令キユーレジスタ
にストアされた命令を起動するように、フリツプ
フロツプf380〜f382をセツトする。 (1) 線323が“1”→“0”となつたとき、
【表】 (2) 線324が“1”→“0”となつたとき、
【表】 (3) 線325が“1”→“0”となつたとき、
【表】 なお、線323〜325が同時に“1”→
“0”になることはない。なぜならば一命令ずつ
起動するからである。 命令キユーレジスタq301中のいずれの命令
をも起動可能とするためには、命令キユーレジス
タ中のすべての命令について、リソースおよびベ
クトルレジスタの使用状況のチエツクを行ない、
かつ、命令キユーレジスタ上のすべての命令間の
ベクトルレジスタの競合チエツクを行なう必要が
ある。第8図においてレジスタq3020〜q3
022(QSRO/1/2)は命令キユーレジスタq
301中の命令が要求するリソースの種類を保持
するもので、第3図のQSレジスタq302中に
あるものである。ただし、本変形例においては、
各レジスタq3020〜q3030から、OPと
は無関係に直接リソース使用要求を送出する信号
線が設けられている。この各命令のリソース要求
と、リソースの状態を管理する。RSSWレジスタ
r304の内容が、第3図のリソース使用チエツ
ク回路b306にかえて本変形例で設けられたリ
ソース使用チエツク回路b380〜b382でチ
エツクされ、それぞれからリソースが空いている
かどうかを示す信号が線380〜382に、
使用可能なリソースの種類と番号が線383〜
385に出力される。リソース使用チエツク回
路b380〜b382は、第5図で説明した回路
b305とまつたく同一構成を有する。第8図に
おいて、QGR0〜QGR2レジスタq3030〜q
3032は、命令キユー中の各命令が要求するレ
ジスタの番号等を記憶しているもので、第3図の
QGレジスタq303中にあるものである。この
各命令のレジスタ要求と、ベクトルレジスタの状
態を管理するRGSWレジスタr306の内容が、
本変形例において新たに設けられたレジスタ使用
チエツク回路b383〜b385でチエツクさ
れ、要求するすべてのベクトルレジスタが使用可
能かどうかを示す信号が386〜388に出
力される。これらのレジスタ使用チエツク回路
は、第6図で説明した回路b307とまつたく同
一である。また、各命令の要求するベクトルレジ
スタ間の競合をチエツクするために、本変形例で
新たに設けられたレジスタ競合チエツク回路b3
86〜b391が使用される。命令キユーレジス
タ中の各命令の実行順序はどのようなものでも許
されるようにしたい。命令キユーレジスタ中に3
命令分保持できる場合には、ある命令が他の2命
令に優先して起動させるために2つのチエツク回
路が必要で、それが3命令分必要であるから、計
6個のレジスタ競合チエツク回路b386〜b3
91が必要となる。回路b386は、QGR0のR1
〜R3フイールドどQGR1のR1〜R3フイールドと
が入力され、前者が後者の各々に対してレジスタ
競合チエツクを行い、いずれのフイールドにもレ
ジスタ競合が検出されないとき、線390に
“1”を出力する。第7図のレジスタ競合チエツ
ク回路b309と同一構成を有する。回路b38
6には、フリツプフロツプf305の出力線3
24も入力されており、回路b309(第7図)
と同様に、この信号線324が“0”のときに
は、無条件に線390に“1”を出力する。同
様に回路b387は、QGR1の各フイールドが
QGR0の各フイールドに対してレジスタ競合を有
しないかをチエツクする回路である。同様に回路
b688〜b391はそれぞれQGR2に対して
QGR1の、QGR1に対してQGR2の、QGR0に対し
てQGR2の、QGR2に対してQGR0の、レジスタ
競合をチエツクするものである。これらのレジス
タ競合チエツク回路b386〜b391の出力線
390〜395は命令選択回路b394に入
力される。命令選択回路b394には、先に述べ
た、リソース使用チエツク回路b380〜b38
2の出力線380〜382、レジスタ使用チ
エツク回路b383〜b385の出力線386
〜388、命令の起動順序を指定するフリツプ
フロツプf380〜f382の出力および命令キ
ユーレジスタ中に実行可能な命令が入つているこ
とを示すフリツプフロツプf304〜f306の
出力線323〜325も入力され、ベクトル
レジスタ、リソースに空きがあり、かつベクトル
レジスタの使用上、競合が生じない命令キユーレ
ジスタ中の命令が命令選択回路、b394にて選
択されて、選択された命令の命令キユーレジスタ
中の番号がアウトポインタOPとして329
に、命令キユーレジスタ中に命令が選択されたこ
とを示す信号が線321に出力される。 命令選択回路b394の詳細を第9図に示す。
アンドゲートg383には、フリツプフロツプf
304の出力線323、リソース使用チエツク
回路b380の出力線380、レジスタ使用チ
エツク回路b383の出力線386、レジスタ
競合チエツク回路b386、b391の出力線
390,395が入力され、これらの入力がすべ
てが“1”のときに、アンドゲートg383の出
力線370が“1”になる。これは、命令キユ
ーレジスタ中の第0番の命令Q0が実行してよい
ことを示す。同様に、アンドゲートg384,g
385にも命令キユーレジスタの第1、第2番に
関する信号線が入力され、線371,372
に出力される。線370〜372は、同時に
“1”になることもありうる。後370−3
72はオアゲートg387に入力され、いずれか
1つでも命令実行が可能のときには、オアゲート
g387の出力線321を“1”とする。線
370〜372に出力された命令実行可能を示
す信号から、いずれを選択するかは命令実行順序
判定回路b395にて行なわれる。回路b395
には、線370〜372のほかに、命令実行
順序を示すフリツプフロツプf380〜f382
の出力線396〜398が入力され、次のよ
うにして実行すべき命令キユーレジスタ上の番号
が線329に出力される。線329は実際に
は2本の線3290(上位)、3291(下
位)からなり、2本での2進数00,01,10をあら
わして、命令キユーレジスタ内の命令の番号を示
すこととする。 (1) 線396〜398が“0”“0”“0”の
とき
【表】 (2) 線396〜398が“0”“0”“1”の
とき
【表】 (3) 線396〜398が“0”“1”“0”の
とき
【表】 (4) 線396〜398が“0”“1”“1”の
とき
【表】 (5) 線396〜398が“1”“0”“0”の
とき
【表】 (6) 線396〜398が“1”“0”“1”の
とき
【表】 命令選択回路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
つのベクトルレジスタの同一ベクトル要素番号の
ベクトルデータを同時に供給するようにすること
により、命令の実行開始を早めることができる。 (ii) ベクトルレジスタ制御ユニツトの概要 ベクトルレジスタ制御ユニツトU40は第11
図に示すように、命令起動制御回路b400と、
ベクトルレジスタVR0〜VR7の各々に対応したベ
クトルレジスタ制御回路b410〜b417と、
演算器U20,U21とメモリ・リクエスタU1
0,U11の各々に対応したオペランド制御回路
b420〜b423と、オペランド制御回路b4
20〜b423からの出力をそれぞれ保持するフ
リツプフロツプf400〜f407、および、リ
ソース−レジスタ変換回路(以下S−G変換回路
とよぶ)b401,b404,b405、レジス
タ−リソース変換回路(以下G−S変換回路とよ
ぶ)b402,b403から成る。G−S変換回
路b402,b403は、命令制御ユニツトU3
により指定される読出し用の一つ又は二つのベク
トルレジスタ番号に対する、ベクトルレジスタ制
御回路b410〜b417のいずれか二つからの
信号を、命令制御ユニツトU3により指定される
リソース番号に対する、オペランド制御回路b4
20〜b427の一つへ送出するものであり、S
−G変換回路b401(又は404とb405)
は命令制御ユニツト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にてあるベクトル要素の読
出しが可能になると、ベクトルレジスタ制御回路
b410からベクトルレジスタ読出し許可信号が
線480に出力される。同じく、ベクトルレジ
スタ制御回路b411からも線481に、ベク
トルレジスタ1でのベクトルレジスタ読出し許可
信号が出力される。G−S変換回路b402,b
403にて線480,481の信号は、演算
器0に対する出力線490,500に伝えら
れ、オペランド制御回路b420に入力される。
オペランド制御回路b420は、これらのベクト
ルレジスタ読出し許可信号が同時に存在すること
を条件に1ベクトル要素ごとのベクトルデータ送
出信号を作成し、線520に出力する。この信
号は、フリツプフロツプf401で一旦受けた
後、線43にて演算器0にデータ有効信号とし
て送られる。一方、線520上のデータ送出信
号はS−G変換回路b404,b405にも入力
され、それぞれによりベクトルレジスタ番号0,
1に対応した線540,551に出力され、
それぞれ、オアゲートg400又はg401およ
び線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への書込みアドレスカウンタ更新信号を線
427を介してベクトルレジスタデータユニツト
U41に伝えるとともに、ベクトルレジスタ制御
回路b417内にあり、ベクトルレジスタ#7中
のどのベクトル要素まで書込みを行なつたかのポ
インタ(後述)の管理に使用する。このポインタ
は、ベクトルレジスタ7を書込みながら、後続の
命令でのこのベクトルレジスタ読出しに使用する
際に、書込んだベクトル要素までを読出すように
制御するために使用される。 最終ベクトル要素を演算器0に送出する際に、
それが最終であることを指定するためにオペラン
ド制御回路b420から、ベクトルデータ送出信
号と同期して最終ベクトルデータ信号Eが線5
10に出される。つまり、回路b420は、命令
実行開始時にセツトされる処理ベクトル長を憶え
ておき、この数だけ、ベクトルデータ送出信号を
出すと、最終ベクトルデータ信号を出すように構
成されている。この信号は、フリツプフロツプf
400で一旦記憶された後演算器0に線40に
より送出され、最終演算結果と同期して、線4
4により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の読出しが終了した
ことを伝える。 (iii) 命令起動制御回路 第12図に示すように、命令起動制御回路b4
00は命令制御ユニツトU3よりそれぞれ線1
0〜14を介して入力される命令起動信号
ST、命令コード使用レジスタ番号と使用形態、
使用リソース種類と番号、処理ベクトル長をそれ
ぞれフリツプフロツプf410、レジスタ
RGR,r400,RIG,r401,RSR,r40
2,RVIR,r403にいずれも命令起動信号ST
に応答してセツトする。 フリツプフロツプf410の出力は、S−G/
G−S変換回路b402〜405(第14図)他
への情報のセツト信号として、線419により
送り出されるとともに、内部での各種データ信号
の作成に使用される。 RGR,r400の内容から、S−G変換回
路、G−S変換回路(第11図)に与えるレジス
タ番号と、ベクトルレジスタ制御回路、ベクトル
レジスタデータユニツトに与える初期化/起動信
号を作成する。通常のベクトル命令では、RIフ
イールドで書込みベクトルレジスタ、R2/R3フ
イールドで読出しベクトルレジスタを使用する。
このため、第11図のS−G変換回路b401に
は、R1フイールドのレジスタ番号を、G−S変
換回路b402、S−G変換回路b404には
R2フイールドのレジスタ番号を、G−S変換回
路b403、S−G変換回路b405には、R3
フイールドのレジスタ番号を与えればよい。しか
し、第2図での説明に述べたように、主記憶にベ
クトルデータを格納する命令においては、R1フ
イールドは読出し用のベクトルレジスタ番号を指
定するのでR1フイールドのレジスタ番号を、通
常のR2フイールドのレジスタ番号を送出する信
号線に乗せ替える必要がある。このために、
RGRr400のGN1フイールドとV1フイールドは
併せて線439を介して、S−G変換回路b4
01に送出されるとともに、セレクタS400に
第1の組として入力される。一方、レジスタr4
00のGN2とV2フイールドは第2の組としてセ
レクタS400に入力され、このいずれかが選択
されて、線449にて、S−G変換回路b40
4、G−S変換回路b402に送出される。この
セレクタS400の選択制御はデコーダb438
が行い、RIRr401内の命令コードが主記憶に
ベクトルデータを格納する命令に対するものか否
かに応じて前者又は後者が選択されるようにセレ
クタS400が制御される。RGRr400のGN3
とV3フイールドは線459により、そのま
ま、S−G変換回路b405、G−S変換回路b
403に送られる。 ベクトルレジスタ制御回路b410〜b417
およびベクトルレジスタデータユニツトU41中
のベクトルレジスタに対し、書込みの起動を行な
うために、RGR,r400のR1〜R3フイールド
はデコーダb430に送られる。デコーダb43
0は、アンドゲートA付デコード有効端子Eを有
し、アンドゲートAへの入力線がすべて“1”の
ときに、デコーダが有効になる。デコーダb43
0のアンドゲートAには、V1フイールド、W1フ
イールド、およびフリツプフロツプf410の出
力がそれぞれ線580,581,419が
接続されており、また、デコードされる信号とし
て、GN1フイールドが線439を介して入力さ
れている。デコードが有効すなわち、GN1フイー
ルドのデータに意味があり(V1フイールド=
“1”)、書込みが指定されており(W1フイールド
=“1”)かつ命令起動(419=“1”)時に線
582を介して入力されるGN1フイールドの内容
がデコードされ、このGN1フイールドがベクトル
レジスタ0〜7のいずれかの番号を有していると
きには、出力線8本410〜417のうちの
1つが“1”になる。ここでは、GN1フイールド
が“0”のとき、出力線410が“1”,“1”
のとき出力線411が“1”,“2”のとき出力
線412が“1”というようにデコードされる
とする。今、例として考えている命令では
RGR、r400内のR1フイールドがベクトルレ
ジスタ0への書込みを指示(W1=1,GN1=
0)しているので線410のみが“1”とな
る。デコーダb430の出力線410〜41
7は、ベクトルレジスタ制御回路b410〜b4
17(第11図)およびベクトルレジスタデータ
ユニツトU41に送出される。デコーダb433
〜b435は、ベクトルレジスタの読出しの起動
を行なうためのものである。これらのデコーダに
は、アンドゲートA付デコード有効端子へ、
W1,W2,W3フイールドではなく、それぞれを
反転ゲートg420〜g422で反転した出力が
線589,591を介して入力され、RGR,
r400のフイールドRiが読出し用のとき(Wi
=0)のみ、デコードが有効となる点が異なるの
みで、あとはまつたくデコーダb430と同様で
ある。デコーダb433〜b435の出力は、オ
アゲートg440〜g447を経て、線400
〜407により、それぞれベクトルレジスタ制
御回路b410〜b417およびベクトルレジス
タデータユニツトU41に読出し起動信号として
送出される。以上の実施例においてデコーダb4
33を省略し、セレクタS400の出力をデコー
ダb434に入力させてもよい。このときには、
セレクタS400には、さらに、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に共通に入力される。 (iv) S−G変換回路 第13図は、S−G変換回路b401の内、各
リソースから与えられるデータ有効信号を、命令
制御ユニツトU3により指定されるレジスタ番号
に対するベクトルレジスタ制御回路に供給する回
路を示している。 第13図において、リソース種類番号が線4
29によりデコーダb439のデータ端子に入力
され、書込み用のベクトルレジスタ番号が線4
39を介してリソース対応に設けたレジスタr4
10〜r413に入力され、命令起動信号ST
が、線419によりデコーダb439のデコー
ド有効端子Eに入力される。レジスタr410〜
r413は、それぞれメモリ・リクエスタ0,1
および演算器0,1に対応して設けられている。
線439上にはレジスタ番号GN1の他に、第1
2図の説明でも述べたように、レジスタ番号が有
効であるかどうかを指示する信号Vも含まれてい
る。これらの信号はレジスタr410〜r413
の内線429上にあるリソース種類、番号に対
応するものにデコーダb439によりリセツトさ
れる。レジスタr410〜r413内のレジスタ
番号GN1は、それぞれデコーダb440〜b44
3のデコード入力端子に、Vビツトはデコーダb
440〜b443のアンドゲートA付デコード有
効端子Eの一方の入力端子に入力される。これら
の端子Eの他方の入力端子には、それぞれメモ
リ・リクエスタ0,1、演算器0,1からデータ
有効信号がそれぞれ線46,46′,2
9,29′を介して入力される。たとえば、レ
ジスタr410にあるVフイールドの出力“1”
がデコーダb440のアンドゲートに入力されて
いる条件下では線46から“1”が入力される
とデコーダb440がデコード有効状態となり、
レジスタr410のGNフイールドの出力がデコ
ードされて、デコーダの出力端子0〜7のいずれ
かが“1”となり、各出力端子に接続して設けら
れたオアゲートg430〜g437の出力線4
20〜427のいずれかが“1”となる。この
出力線420〜427はベクトルレジスタ0
〜7に対応していて、それぞれベクトルレジスタ
制御回路0〜7にデータ有効信号を供給する。 こうして、一度、レジスタr410〜r413
にデータがセツトされた後、線46の“1”,
“0”の変化が、そのまま、線420〜427
のいずれかに伝えられる。ここで、注意したいこ
とは、レジスタr410〜r413内のレジスタ
番号が異なる限り、線46,46′,2
9,29′の信号を同時にそれぞれ線420
〜427の内の対応する線に供給することがで
きることである。この同時供給は最大4つのレジ
スタ番号に対して可能である。こうして、4つの
リソースを並列に動作させることが可能となる。 なお、S−G変換回路b401の内、各リソー
スから供給される最終ベクトルデータ信号を命令
制御ユニツトU3により指定されるレジスタ番号
に対するベクトルレジスタ制御回路0〜7に供給
する回路部分は、第13図の線46,4
6′,29,29′をそれぞれ線44,4
4′,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の後のカツコ
にて示してある。 (v) 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をそれぞれ線500〜
507により置換すれば得られる。なお、第1
4図には、この置換後の信号線番号を置換すべき
信号線の番号の後にカツコをつけて示してある。 (vi) ベクトルレジスタ制御回路 第15図は、ベクトルレジスタ制御回路b41
0の詳細を示したものである。他のベクトルレジ
スタ制御回路1〜7も全く同一構造で、この図の
線400,410,420,430,
460,480がこれらの信号線番号の後のカ
ツコ内に記載してある線号線に置換することによ
り得られる。この制御回路では、書込み又は読出
しのみの動作と、チエイニング動作(書込み、読
出しの同時動作)の3動作を行なう。 (a) 書込みのみの動作 ベクトルレジスタ0への書込みの起動指示が
命令起動制御回路b400(第14図)により
線410を介して伝えられると、書込み中を
示すフリツプフロツプf420がセツトされ、
アツプ/ダウンカウンタ(以下U/Dカウン
タ)C400がクリアされる。U/Dカウンタ
C400は、U,D端子の入力に対して次のよ
うな出力を供給する。
【表】 線420を介してS−G変換回路b401
よりデータ有効信号が入力されると、この信号
は、フリツプフロツプf420の出力“1”に
より開かれているアンドゲートg420を経
て、U/DカウンタC400のU端子に入力さ
れ、カウントの内容を+1するとともに、その
ままベクトルレジスタデータユニツトU41
(第10図)に送出される。S−G変換回路b
401から線430により、最終ベクトルデ
ータ信号がつたえられると、この信号はフリツ
プフロツプf420をリセツトし、書込み中の
状態を停止するとともに、直接線430を介
して命令制御ユニツトU3(第1図)にも送出
され、RGSW、r306(第3図)内の書込み
用ベクトルレジスタ番号(たとえばj)に対応
するビツト(Wj)をリセツトする。なお、線
430を他のベクトルレジスタ制御回路1〜
7の対応する出力線431〜437と一緒
に束ねたものが第1図の線15である。 (b) 読出しのみの動作 ベクトルレジスタ0の書込み動作が起動され
ていない状態で、このベクトルレジスタの読出
しの起動指示が命令起動制御回路b400(第
11図)より線400を介して伝えられる
と、読出し中を示すフリツプフロツプf421
がセツトされる。フリツプフロツプf420は
リセツトされた状態にあるので、その出力を反
転ゲートg451、オアゲートg452を介し
て入力され、またフリツプフロツプf421の
出力が入力される。アンドゲートg453の出
力線480は“1”となる。線480は読
出し可能信号として、G−S変換回路b402
(第11図)に供給される。したがつて、命令
制御ユニツトU3に関して説明したように、あ
る命令においてベクトルレジスタが読出し用に
使用されているときには、このベクトルレジス
タを書込み用に用いる後読の命令はこの読出し
が終わるまで起動されない。したがつて、フリ
ツプフロツプf420は、この読出しが終了す
るまでセツトされることはないので、線48
0にはフリツプフロツプf421がリセツトさ
れるまで読出し可能信号が送出されつづけるこ
とになる。こうして、ベクトルレジスタ0の全
要素の読出しが終了すると、線460を介し
てS−G変換回路b404から最終ベクトルデ
ータ信号が入力され、この信号によりフリツプ
フロツプf421がリセツトされる。 なお、線460は、他のベクトルレジスタ
制御回路b411〜b417内の対応する信号
線461〜467と一緒にして、線16
として、命令制御ユニツトU3内のRGSW、r
306(第3図)に送られ、ベクトルレジスタ
0の読出しが終了したことを知らせ、このレジ
スタのビツトROを0にリセツトするのに用い
られる。 (c) チエイニング動作 チエイニング動作は、あるベクトルレジスタ
に対してはじめにある命令のために書込み動作
が指示され、その動作が終了する前に他の命令
のために読出し動作が指示されたときに生ず
る。書込み動作が指示されても、データ有効信
号と書込みデータがリソースから到達しない
と、実際にはベクトルレジスタには書込みがお
こなわれないが、このデータ有効信号の到着
と、読出し動作の指示の時間的関係はどうでも
よい。(c−1)たとえば、書込み動作が線
410により指示され、フリツプフロツプf4
20がセツトされ、U/DカウンタC400が
リセツトされた後、線420からのデータ有
効信号の到着前に、読出し動作が線400に
より指示され、フリツプフロツプ5421がセ
ツトされると、U/DカウンタC400の出力
に接続されているカウンタの内容が1以上にな
つていることを検出する正検出回路b460の
出力は“0”であり、反転ゲートg451の出
力も“0”なので、アンドゲートg453の出
力線480も“0”のままである。ここで、
あるマシンサイクルnにおいて線420にデ
ータ有効信号がくると、アンドゲートg450
を経て、U/DカウンタC400に、この信号
が入り、このマシンサイクルnにおいて、U/
DカウンタC400の内容は+1になる。する
と、正検出回路b460の出力が“1”とな
り、オアゲートg452、アンドゲートg45
3を経て、線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カウンタC40
0がカウントアツプされて、0でない値を表示
している状態で、マシンサイクルnにおいて読
出し起動によりフリツプフロツプf421がセ
ツトされると仮定する。U/DカウンタC40
0の出力に接続されている正検出回路b460
の出力は“1”となつているので、ベクトルレ
ジスタ読出し可能信号が線480に出力され
る。線480がU/DカウンタC400のD
端子に入力されているので、線420からデ
ータ有効信号が次のマシンサイクル(n+1)
において入力されなければ−1され、入力され
れば値は変らない。U/Dカウンタc400の
内容が0になるまで、上記動作が繰返し行なわ
れる。読出し起動後あるマシンサイクルまでの
間に線480に出力される読出し可能信号の
数は、フリツプフロツプf421がセツトされ
る前のU/Dカウンタc400の内容と、その
後線420から入力されたデータ有効信号の
数の和となる。このように、(c−1),(c−
2)のいずれの場合においてもベクトルレジス
タに書込まれたベクトル要素数をこえては読出
しがなされないように保証される。なお、U/
Dカウンタc400の内容は、ベクトルレジス
タに書込んだベクトル要素数とそこから読出し
ベクトル要素数の差分を表現していると考える
ことができる。 チエイニング動作中に書込みが完了して、フ
リツプフロツプf420がリセツトされると、
U/Dカウンタの内容は意味をもたなくなり、
(b)の読出しのみの動作と同等となる。 (vii) オペランド制御回路 第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,c4
02の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”であるとする。アンドゲートg4
66の出力線520にベクトルデータ送出信号
が出される。出力線520は、U/Dカウンタ
c401,c402のD端子に入力され、カウン
タの内容が1だけ減少される。 また、出力線520は、VLCTR、c403
のセツト信号として入力され、カウンタの値を1
だけ減ずる。すなわちVLCTR,c403の出力
が−1減算回路b463に接続されて−1された
値がセレクタS410に入力されている。このと
きもはやセレクタs410の制御端子には、線
440を介して命令起動信号がきていないので−
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,c4
02のD端子入力は“0”のままである。ベクト
ルデータ送出信号は線520には出力されな
い。U/Dカウンタc401のU端子には、線
490からベクトルレジスタ読出し許可信号が入
力されているので、U/Dカウンタc401は+
1される。 (b−2)のケース このときには、正検出回路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
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にて、ベクトルデータ送出が
不許可のとき、線490,500から入力さ
れるベクトルレジスタ読出し許可信号はU/Dカ
ウンタc401,c402に入力されてカウンタ
が更新される。線630から許可信号が入力さ
れると、線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つ以上のベク
トルレジスタの読出し可能信号を入力して、ベク
トルデータ送出信号を作成することも同様に容易
に実現できる。 (viii) ベクトルレジスタデータユニツト 第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,4
5′,29,29′を介して書込みデータがS
−G変換回路b480に到着すると、このデータ
は線429で指定されたリソースから線43
9で指定されたベクトルレジスタに対応するベク
トルレジスタ回路b470〜b477のいずれか
に入力される。ここでは、ベクトルレジスタ0に
書込むとしているので、回路b470に入力され
る。書込みデータは、回路b470の入口に設け
られたレジスタVRIRE,r430,VRIRO,r
440にVRIR入力制御回路b484の指示によ
り、交互にセツトされる。VRIR入力制御回路b
484には、データ有効信号420が入力さ
れ、データ有効信号の偶数番目、奇数番目ごとに
それぞれVRIRE,r430,VRIRO,r440
にそれぞれデータをセツトするように制御する。
書込みを行なうべきサイクルが2つのメモリ素子
m400,m401に交互に割当てられており
(詳細後述)、任意のサイクルに、任意のベクトル
要素に書込みを行なうことはできず、1サイクル
待たされることがあり、このときに、同じベクト
ルレジスタ回路b470に次の書込みデータが到
着することがあるので、2つのレジスタ
VRIRE、VRIROを設け、相続く二つの書込みデ
ータを異なるメモリ素子m400,m401に書
込めるようにした。書込みの指示は、ベクトルレ
ジスタ制御回路0、(第14図)から線420
を介して入力されるデータ有効信号によりなされ
る。この信号は、書込みタイミング制御回路b4
83に入力される。回路b483は偶数番目/奇
数番目の書込み指示に従つて2マシンサイクル間
保持した信号第19図に示すようなタイミングで
2本出力し、この出力はそれぞれアンドゲートg
481,g482に入力される。一方、これらの
アンドゲートには、タイミング制御回路b482
の出力、およびそれを反転ゲートg480で反転
させた出力が入力され、その出力がそれぞれメモ
リ素子m400,m401の書込み有効信号とな
る。書込みアドレスカウンタc411は次のアド
レスをさすように+1回路b481を経て+1さ
れる。この制御はアンドゲートg481,g48
2の出力をオアゲートg48でオアした出力によ
り行なわれる。なお、書込みはメモリ素子m40
0,m401に交互に書いていくので、書込みア
ドレスカウンタc411は、メモリ素子m40
0,m401の双方に書込んだ後に+1すればよ
いことになるが、ここでは、書込みアドレスカウ
ンタの下1ビツトを無視した値を書込みアドレス
として、セレクタs420,s421に入力され
る。これは、読出しアドレスカウンタc410に
ついても同様である。以上述べたように、ベクト
ル要素はメモリ素子m400,m401に交互に
書込まれていく。以上の動作のタイムチヤートに
して第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の更新信号が、線47
0を介して送出される。これによつて、読出しア
ドレスカウンタc410が1ずつ更新される。更
新は、カウンタc410の出力を+1加算回路b
480を経てカウンタc410の入力に戻すこと
によつて行なう。 以上述べてきたように、ベクトルレジスタユニ
ツトでは、リソースに供給するベクトルデータの
読出し、およびリソースから送出されてくるベク
トルデータの格納を行なう。ここで、リソースに
供給するデータは、演算には2つ必要なので、2
つのベクトルデータを揃えてから送出しなければ
ならない。しかも、チエイニング動作によつて、
各ベクトルレジスタに不等間隔で格納される任意
の2つのベクトルレジスタ上のベクトル要素につ
いて、2つともデータが揃つたことを確認した上
で、読出す必要がある。このために、ベクトルレ
ジスタの各々が、読出し可能か否かを検出する回
路と、リソース対応に、2つのデータが読出し可
能を検出する回路を設け、読出し可能のときはじ
めて、ベクトルレジスタからデータを読出す(実
際には、すでにデータが読出されており、次の読
出しのために、読出しアドレスカウンタを更新す
る)。 メモリ・リクエスタ メモリ・リクエスタ0の回路の詳細を第20図
に示す。メモリ・リクエスタの動作は、命令起動
時の初期化動作、主記憶からの読出し動作、主記
憶への格納動作の3つに分けられる。 (i) 命令起動時の初期化動作 第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が接続されている。以上で初期化
動作を終了する。 (ii) 主記憶から読出し動作 主記憶からの読出し動作であることは、命令コ
ードがセツトされている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)r
111にセツトされる。両レジスタへのセツト
は、フリツプフロツプf100の出力線101
により制御される。また、セレクタs102の制
御端子にも線101が接続され、セレクタs1
00の出力を選択するように制御する。ベクトル
アドレスがWVAR,r110にセツトされる
と、線21により、主記憶制御ユニツトU1
(第1図)に最初のベクトル要素アドレスが送ら
れる。同時に、MVLCTR,c100の出力に接
続された非零検出回路b104より(処理ベクト
ル長として1以上がMVLCTR)にセツトされて
いるとすると)“1”が出力され、セレクタs1
07を経て、線23によりアドレス有効信号と
して、主記憶制御ユニツトU1に送られる。線
23はまた、MVLCTR、c100の制御端子に
入力されて、MVLCTR,c100の内容を−1
する。1減じた値はMVLCTR,c100の出力
に接続された、1減算回路b103により作成さ
れ、セレクタs103を経て、MVLCTR,r1
00に入力される。さらに、線23は、
WVAR,r110の制御端子にも入力され、
WVAR,r110と、WVAIR,r111の内容
を加算器b102で加算した結果を、セレクタs
102を経て再びWVAR,r110にセツトす
るように制御する。これによつて、次のベクトル
要素アドレスがWVAR,r110にセツトされ
たことになる。これを次々と繰返して、ベクトル
アドレスを求めては、アドレス有効信号(線2
3)とともに、主記憶制御ユニツトU1に線2
1を介して送出し、主記憶の読出し動作が行なわ
れる。 主記憶での読出し動作が完了すると、主記憶制
御ユニツト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によつ
て、最終ベクトル要素であることが検出され、線
32によつて、最終レジスタデータ信号が、主
記憶制御ユニツトU1にベクトルアドレス(線
21)、アドレス有効信号(線23)とともに
送出され、線33によつて、読出しデータと同
期して戻される。線33上の最終ベクトルデー
タ信号は、フリツプフロツプf103にて一旦セ
ツトされ、セレクタs106を経て、線26に
より、ベクトルレジスタ制御ユニツトU4(第1
0図)に送られが。MVLCTR,c100の内容
は、1減算回路b103を経て“0”になると、
非零検出回路b104は“0”を出力し、アドレ
ス有効信号の送出が停止される。以上で、ベクト
ルデータの読出し動作が終了する。 (iii) ベクトルデータの格納動作 ベクトルデータの格納においては、まず、格納
であることを指定する信号が、線20を介して
主記憶制御ユニツトU1に送られる。この信号は
MIR,r100の内容をデコーダb101でデコ
ードすることにより作成される。格納すべきデー
タの主記憶アドレスの送出は、読出し動作とまつ
たく同じである。すなわち、ベクトルアドレスレ
ジスタおよびベクトルアドレス増分レジスタ中の
指定された1つがセレクタs100,s101に
より選択されて、それぞれWVAR,r110,
WVAIR,r120にセツトされる。WVAR,r
110の出力線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の動作を制御する。 一方、ベクトルレジスタユニツトから、演算す
べきベクトルデータが線41,42により、
データ有効信号が線43により送出されてくる
と、ベクトルデータはレジスタr210,r22
0に、データ有効信号はフリツプフロツプf20
0にセツトされる。データ有効信号(43)
は、レジスタr210,r220へのセツト信号
としても使用される。レジスタr210,r22
0上の内容は、演算回路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に入力されると、レジス
タへのセツトと同様にして、フリツプフロツプf
210にセツトされる。データ有効信号が、フリ
ツプフロツプf200〜f204を移動するのと
同期して、最終ベクトルデータ信号がフリツプフ
ロツプf210〜f214を移動し、線44に
出力され、ベクトルレジスタユニツトU4に戻さ
れる。 以上述べたように、本発明における演算器では
ベクトルデータと、データ有効信号が同期して入
力され、データ有効信号のパイプラインステージ
を移動するのと同期して、データが演算され、結
果がデータ有効信号と同期して出力されることが
特長である。最終ベクトルデータ信号についても
同様である。 (5) まとめ 以上述べたごとく、本発明によれば、先行命令
の開始タイミングに関係なしこれとチエインする
後続命令の実行開始を実現でき、チエイニング動
作をより頻繁に実現できる。また、ベクトルデー
タが間欠的な場合にもこの効果を達成しうる。
【図面の簡単な説明】
第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の状態指示手段をさらに有し、 該命令制御手段は、解読した命令が選択するベ
    クトルレジスタが使用可能か否かを該読出し使用
    状態指示と該書込み使用状態指示に基づいて検出
    し、使用可能なときに該解読した命令の実行開始
    を指示する開始制御手段を有し、該開始制御手段
    は、先に実行開始の指示がなされた命令により書
    込み使用状態にあるベクトルレジスタを読出しに
    使用せんとする命令については、そのベクトルレ
    ジスタを利用可能と検出して、該先に実行開始指
    示がなされた命令の実行開始指示タイミングに無
    関係にその命令の実行開始を指示可能なものであ
    る第1項のデータ処理装置。 3 命令が該開始制御手段により実行開始の指示
    がなされたとき、該命令が読出し又は書込みのた
    めに選択するベクトルレジスタの読出し使用状態
    指示又は書込み使用状態指示を非使用状態指示か
    ら使用状態指示に変更する第1の変更手段と、 該命令が読出し又は書込みのために選択するベ
    クトルレジスタについて所定数のベクトル要素の
    読み出し又は書き込みが完了するのに同期して、
    該ベクトルレジスタの読出し使用状態指示又は書
    込み使用状態指示を使用中指示から非使用中指示
    に変更する第2の変更手段とをさらに有する第2
    項のデータ処理装置。 4 該実行制御手段は、ベクトル要素の読み出し
    を要求する命令に応答して、その命令が指定する
    ベクトルレジスタについて、次に読み出すべきベ
    クトル要素がすでに書き込み済か否かを検出し、
    書き込み済のときに、そのベクトルレジスタに読
    み出し要求を送出する第1の手段を有し、該第2
    の変更手段は、該第1の手段から送出された読み
    出し要求をカウントし、所定数に達つしたとき
    に、そのベクトルレジスタに対する読み出し使用
    状態指示を不使用状態指示に変更する手段を有す
    る第3項のデータ処理装置。 5 それぞれのリソースが使用中か否かの使用状
    態を指示する第2の状態指示手段と、 解読された命令が必要とするリソースに対する
    使用状態指示が使用中を指示しているときに、該
    解読された命令の該開始制御手段による実行開始
    を禁止する手段とをさらに有する第2項データ処
    理装置。 6 該開始制御手段が一つの命令の実行開始を指
    示したときに該実行開始指示がなされた命令が必
    要とするリソースに対する、該第2の状態指示手
    段による使用状態指示を非使用中指示から使用中
    指示に変更する第1の変更手段と該実行開始が指
    示された命令が必要とするリソースに又はそこか
    ら供給されたベクトル要素数があらかじめ指定さ
    れた数になつたときに該リソースに対する該第2
    の状態指示手段による使用状態指示を使用中指示
    から非使用中指示に変更する第2の変更手段とを
    さらに有する第5項のデータ処理装置。 7 該第2の変更手段は、各リソースに対応して
    設けられたカウント手段であつて、各リソースか
    ら該ベクトル記憶手段に供給されたベクトル要素
    の数又は各リソースが該ベクトル記憶手段から受
    信したベクトル要素の数をカウントし、所定値に
    達したときに終了信号を出力する手段と、各リソ
    ースから与えられる終了信号に応答して各リソー
    スに対する使用状態指示を使用中状態指示から不
    使用状態指示に変更する手段からなる第6項のデ
    ータ処理装置。 8 該複数のリソースは異なる種類のリソースか
    らなり、少くとも一種類の同一の複数のリソース
    を有し、 該禁止手段は、命令が要求するリソースの種類
    と同一の種類の複数のリソースのいずれもが使用
    中のときには、該命令の実行開始を禁止する手段
    を有する第5項のデータ処理装置。 9 該リソースの内、ベクトル要素を該ベクトル
    群に供給可能なものは、間欠的にベクトルを供給
    でき、かつ、各ベクトルの供給と同期して書込み
    データ有効信号を該実行制御手段に供給する手段
    を有し、 該リソースの内、ベクトル要素を該ベクトルレ
    ジスタ群から受信可能なものは、該ベクトルレジ
    スタ群から間欠的に読み出されるベクトル要素の
    各々に同期して供給される読み出しデータ有効信
    号に応答して該ベクトル要素を受信する手段を有
    し、 該実行制御手段は該ベクトルレジスタ群へベク
    トル要素を供給するリソースを要求する命令に応
    答して、該要求されたリソースから供給されるベ
    クトル要素を当該リソースから供給される書込み
    データ有効信号に応答して、当該命令が指定する
    ベクトルレジスタに書き込む第1の手段と、該ベ
    クトルレジスタ群から読み出したベクトル要素を
    受信するリソースを要求する命令に応答して次に
    読み出すべきベクトル要素が当該命令が指定する
    ベクトルレジスタにすでに書き込まれているか否
    かを検出し、検出結果が肯定的なときのみ当該次
    のベクトル要素を読み出し、当該次のベクトル要
    素の読み出しと同期して読み出しデータ有効信号
    を該命令で要求されたリソースに供給する第2の
    手段とを有する第1項のデータ処理装置。 10 該ベクトル演算手段は、入力されるベクト
    ル要素に対するパイプライン演算器と、入力され
    る読み出しデータ有効信号をベクトル要素の演算
    に必要な時間に依存した時間だけ遅延して書込み
    データ有効信号として出力する手段とを有する第
    9項のデータ処理装置。 11 該複数のリソースは、該主記憶装置から第
    1種の命令に応答してベクトル要素を読み出し、
    該ベクトル記憶手段に供給し、第2種の命令に応
    答して、該ベクトル記憶手段から読み出されたベ
    クトル要素を該主記憶装置に書き込むメモリリク
    エスタを有し、 該メモリリクエスタは、該第1種の命令に応答
    して、該主記憶装置から読み出されたベクトル要
    素の供給と同期して書き込みデータ有効信号を該
    実行制御手段に供給し、該第2種の命令に応答し
    て該ベクトル記憶手段から読み出されたベクトル
    要素を該実行制御手段から供給される読み出しデ
    ータ有効信号に応答して受信する手段を有する第
    9項又は10項のデータ処理装置。 12 該メモリリクエスタは、 該第1種又は該第2種の命令に応答して主記憶
    装置のアドレスを順次発生する手段と、 該第1種の命令に応答して該発生されたアドレ
    スを該主記憶装置に読み出しアドレスとして送出
    し、該第2種の命令に応答して該発生されたアド
    レスを該主記憶装置に書き込みアドレスとして出
    力する手段を有する第11項のデータ処理装置。 13 該複数のリソースは、 第1種の命令に応答して該主記憶装置からベク
    トル要素を読み出し、該ベクトル記憶手段に供給
    する第1のメモリリクエスタと、 第2種の命令に応答して、該ベクトル記憶手段
    から読み出されたベクトル要素を受信し、該主記
    憶装置に書き込む第2のメモリリクエスタとを有
    し、 該第1のメモリリクエスタは、該ベクトル要素
    の供給と同期して書き込みデータ有効信号を該実
    行制御手段に供給する手段を有し、 該第2のメモリリクエスタは、該実行制御手段
    から供給される読み出しデータ有効信号に応答し
    て該ベクトル要素を受信する手段を有する第9項
    又は第10項のデータ処理装置。 14 該第1の手段は、ベクトル要素を読み出す
    べく命令で指定されたベクトルレジスタについ
    て、書き込み済のベクトル要素数と読み出し済ベ
    クトル要素数の差から、該次に読み出すべきベク
    トル要素がすでに書き込まれているか否かを検出
    する手段を有する第9項のデータ処理装置。 15 各ベクトルレジスタに対応して設けられた
    複数のカウント手段であつて、対応するベクトル
    レジスタを読み出しのために選択する命令が要求
    するリソースから与えられる書き込みデータ有効
    信号に応答して、対応してベクトルレジスタに書
    き込み済のベクトル要素数を表わす信号を出力す
    るものをさらに有し、 該検出手段は、命令ベクトル読み出しのために
    指定されたベクトルレジスタに対応するカウント
    手段からの書き込み済要素数を表わす信号と該第
    2の手段から該ベクトルレジスタに送出された読
    み出し要求の総数とから該ベクトルレジスタにつ
    いての該検出を行う手段である第14項のデータ
    処理装置。 16 該検出手段は、ベクトルレジスタからベク
    トル要素を受信可能なリソース対応に設けられた
    複数の検出手段からなり、 該実行制御手段は、 該複数のカウント手段の中で、命令によりベク
    トル要素を読み出すべく指定されたベクトルレジ
    スタに対応して設けられたカウント手段を、該複
    数の検出手段の中で、当該命令により要求される
    リソースに対応する検出手段に選択的に接続する
    手段と、 各検出手段から出力される読み出し要求を該命
    令で指定されたベクトルレジスタに送出する手段
    と、 各検出手段から出力される読み出し要求に応答
    して読み出しデータ有効信号を各検出手段に対応
    するリソースに供給する手段とを有し、 該第1の手段は、命令で指定されたリソースか
    ら供給される書込みデータ有効信号を該命令で指
    定されたベクトルレジスタに対応するカウント手
    段に供給する手段を有する第15項のデータ処理
    装置。 17 該接続する手段は、命令で指定する二つの
    ベクトルレジスタに対応する二つのカウント手段
    を当該命令で指定するリソースに対応する一つの
    検出手段に選択的に接続する手段を有し、 該検出手段は該二つのベクトルレジスタのいず
    れにも次に読み出すべきベクトル要素があるか否
    かを検出し、検出結果が肯定的なときのみ、読み
    出し要求を出力する手段であり、 該送出手段は該一つの検出手段から出力される
    読み出し要求を該二つのベクトルレジスタに送出
    する手段を有する第16項のデータ処理装置。 18 各ベクトルレジスタに対応して設けられ、
    それぞれ対応するベクトルレジスタに読み出しア
    ドレスおよび書き込みアドレスを与える、一対の
    読み出しカウントと書き込みカウンタとをさらに
    有し、 各ベクトルレジスタは互いに独立に動作可能に
    構成され、 該第1の手段は、ベクトル要素をベクトルレジ
    スタに書き込む命令に応答して該命令で指定され
    たリソースから与えられる書込みデータ有効信号
    を該命令で指定されたベクトルレジスタに対する
    書込みカウントに送出し、ベクトル要素をベクト
    ルレジスタから読み出す命令に応答して該命令で
    指定されたベクトルレジスタに対応する読み出し
    カウンタに読み出し要求を送出する手段を有する
    第9項のデータ処理装置。
JP56210392A 1981-12-28 1981-12-28 デ−タ処理装置 Granted JPS58114274A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP56210392A JPS58114274A (ja) 1981-12-28 1981-12-28 デ−タ処理装置
GB08236821A GB2113878B (en) 1981-12-28 1982-12-24 Vector processor
US06/453,094 US4617625A (en) 1981-12-28 1982-12-27 Vector processor
DE19823248215 DE3248215A1 (de) 1981-12-28 1982-12-27 Vektorprozessor
GB858510663A GB8510663D0 (en) 1981-12-28 1985-04-26 Vector processor
GB08516951A GB2159309B (en) 1981-12-28 1985-07-04 Vector processor

Applications Claiming Priority (1)

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

Related Child Applications (3)

Application Number Title Priority Date Filing Date
JP200686A Division JPS61180370A (ja) 1986-01-10 1986-01-10 データ処理装置
JP22634087A Division JPS63100572A (ja) 1987-09-11 1987-09-11 データ処理装置
JP22634187A Division JPS63100573A (ja) 1987-09-11 1987-09-11 データ処理装置

Publications (2)

Publication Number Publication Date
JPS58114274A JPS58114274A (ja) 1983-07-07
JPS6152512B2 true JPS6152512B2 (ja) 1986-11-13

Family

ID=16588567

Family Applications (1)

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

Country Status (4)

Country Link
US (1) US4617625A (ja)
JP (1) JPS58114274A (ja)
DE (1) DE3248215A1 (ja)
GB (3) GB2113878B (ja)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3486451T2 (de) * 1983-04-25 1997-09-25 Cray Research Inc Mehrprozessorsteuerung für Vektorrechner
US4967343A (en) * 1983-05-18 1990-10-30 International Business Machines Corp. Pipelined parallel vector processor including parallel configured element processors for processing vector elements in parallel fashion
JPS6057467A (ja) * 1983-09-09 1985-04-03 Nec Corp ベクトルデ−タ処理装置
JPS6072069A (ja) * 1983-09-28 1985-04-24 Nec Corp ベクトル演算処理装置
US4800486A (en) * 1983-09-29 1989-01-24 Tandem Computers Incorporated Multiple data patch CPU architecture
JPS6077265A (ja) * 1983-10-05 1985-05-01 Hitachi Ltd ベクトル処理装置
EP0167959B1 (en) * 1984-07-02 1992-05-06 Nec Corporation Computer vector register processing
JPH0640337B2 (ja) * 1984-10-03 1994-05-25 株式会社日立製作所 パイプライン演算装置
US5081573A (en) * 1984-12-03 1992-01-14 Floating Point Systems, Inc. Parallel processing system
EP0184791A1 (en) * 1984-12-07 1986-06-18 Nec Corporation Information processing device capable of rapidly processing instructions of different groups
US4890220A (en) * 1984-12-12 1989-12-26 Hitachi, Ltd. Vector processing apparatus for incrementing indices of vector operands of different length according to arithmetic operation results
JPS61160176A (ja) * 1984-12-29 1986-07-19 Hitachi Ltd ベクトル処理装置
JPS61173345A (ja) * 1985-01-29 1986-08-05 Hitachi Ltd 計算機システム
JPS61235985A (ja) * 1985-04-11 1986-10-21 Nec Corp ベクトルプロセツサ
JPH0766329B2 (ja) * 1985-06-14 1995-07-19 株式会社日立製作所 情報処理装置
US4777592A (en) * 1985-06-17 1988-10-11 Nec Corporation Information processing system comprising a register renewal waiting control circuit with renewal register number registering means
JPS6224366A (ja) * 1985-07-03 1987-02-02 Hitachi Ltd ベクトル処理装置
US5036453A (en) * 1985-12-12 1991-07-30 Texas Instruments Incorporated Master/slave sequencing processor
JPS62159274A (ja) * 1986-01-08 1987-07-15 Hitachi Ltd 条件分岐の分割・複写によるベクトル化方式
US5121488A (en) * 1986-06-12 1992-06-09 International Business Machines Corporation Sequence controller of an instruction processing unit for placing said unit in a ready, go, hold, or cancel state
DE3750055T2 (de) * 1986-06-12 1995-01-05 Ibm Ablauffolgesteuerung und zugehörige Methode in einer Befehlsverarbeitungseinheit, um diese Einheit in einen Freigabe-, Ausführungs-, Halte- oder Auflösezustand zu versetzen.
US4974198A (en) * 1986-07-16 1990-11-27 Nec Corporation Vector processing system utilizing firm ware control to prevent delays during processing operations
JPH06103494B2 (ja) * 1986-11-18 1994-12-14 株式会社日立製作所 ベクトル処理装置の制御方式
JP2679994B2 (ja) * 1987-08-14 1997-11-19 株式会社日立製作所 ベクトル処理装置
JP2602240B2 (ja) * 1987-08-28 1997-04-23 株式会社日立製作所 マルチプロセツサシステム
US5168573A (en) * 1987-08-31 1992-12-01 Digital Equipment Corporation Memory device for storing vector registers
US4980817A (en) * 1987-08-31 1990-12-25 Digital Equipment Vector register system for executing plural read/write commands concurrently and independently routing data to plural read/write ports
JPS6462764A (en) * 1987-09-03 1989-03-09 Agency Ind Science Techn Vector computer
JP2810043B2 (ja) * 1987-11-13 1998-10-15 株式会社日立製作所 データ処理装置
US4949247A (en) * 1988-02-23 1990-08-14 Stellar Computer, Inc. System for transferring multiple vector data elements to and from vector memory in a single operation
US5043867A (en) * 1988-03-18 1991-08-27 Digital Equipment Corporation Exception reporting mechanism for a vector processor
US5113521A (en) * 1988-03-18 1992-05-12 Digital Equipment Corporation Method and apparatus for handling faults of vector instructions causing memory management exceptions
US5008812A (en) * 1988-03-18 1991-04-16 Digital Equipment Corporation Context switching method and apparatus for use in a vector processing system
US4949250A (en) * 1988-03-18 1990-08-14 Digital Equipment Corporation Method and apparatus for executing instructions for a vector processing system
JPH01258068A (ja) * 1988-04-07 1989-10-16 Fujitsu Ltd ベクトル処理装置におけるリンケージ制御方式
US4969117A (en) * 1988-05-16 1990-11-06 Ardent Computer Corporation Chaining and hazard apparatus and method
US4935849A (en) * 1988-05-16 1990-06-19 Stardent Computer, Inc. Chaining and hazard apparatus and method
US5210834A (en) * 1988-06-01 1993-05-11 Digital Equipment Corporation High speed transfer of instructions from a master to a slave processor
EP0814411A3 (en) * 1988-06-07 1998-03-04 Fujitsu Limited Vector data processing apparatus
JP2941817B2 (ja) * 1988-09-14 1999-08-30 株式会社日立製作所 ベクトル処理装置
US5075840A (en) * 1989-01-13 1991-12-24 International Business Machines Corporation Tightly coupled multiprocessor instruction synchronization
US5185871A (en) * 1989-12-26 1993-02-09 International Business Machines Corporation Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
US5389835A (en) * 1991-04-12 1995-02-14 Hewlett-Packard Company Vector logic method and dynamic mousetrap logic gate for a self-timed monotonic logic progression
US5208490A (en) * 1991-04-12 1993-05-04 Hewlett-Packard Company Functionally complete family of self-timed dynamic logic circuits
US5530881A (en) * 1991-06-06 1996-06-25 Hitachi, Ltd. Vector processing apparatus for processing different instruction set architectures corresponding to mingled-type programs and separate-type programs
US5438669A (en) * 1991-11-20 1995-08-01 Hitachi, Ltd. Data processor with improved loop handling utilizing improved register allocation
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
JPH07271764A (ja) * 1994-03-24 1995-10-20 Internatl Business Mach Corp <Ibm> 計算機プロセッサ及びシステム
US6152613A (en) * 1994-07-08 2000-11-28 California Institute Of Technology Circuit implementations for asynchronous processors
US5623685A (en) * 1994-12-01 1997-04-22 Cray Research, Inc. Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
GB9514684D0 (en) * 1995-07-18 1995-09-13 Sgs Thomson Microelectronics An arithmetic unit
US5889947A (en) * 1996-12-16 1999-03-30 International Business Machines Corporation Apparatus and method for executing instructions that select a storage location for output values in response to an operation count
US6760880B1 (en) * 1998-09-10 2004-07-06 Ceva D.S.P. Ltd. Scalar product and parity check
US6745318B1 (en) * 1999-08-18 2004-06-01 Sanjay Mansingh Method and apparatus of configurable processing
US20080228927A1 (en) * 2007-03-15 2008-09-18 Microsoft Corporation Server directed browsing
US9292533B2 (en) 2010-06-08 2016-03-22 Dell Products L.P. Systems and methods for improving storage efficiency in an information handling system
US20230045443A1 (en) * 2021-08-02 2023-02-09 Nvidia Corporation Performing load and store operations of 2d arrays in a single cycle in a system on a chip

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5710874A (en) * 1980-06-25 1982-01-20 Fujitsu Ltd Instruction control device
JPS582975A (ja) * 1981-06-27 1983-01-08 Fujitsu Ltd ベクトル・デ−タ処理装置の制御方式

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3544973A (en) * 1968-03-13 1970-12-01 Westinghouse Electric Corp Variable structure computer
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
US4302818A (en) * 1979-07-10 1981-11-24 Texas Instruments Incorporated Micro-vector processor
JPS6043535B2 (ja) * 1979-12-29 1985-09-28 富士通株式会社 情報処理装置
JPS6057090B2 (ja) * 1980-09-19 1985-12-13 株式会社日立製作所 データ記憶装置およびそれを用いた処理装置
KR860001434B1 (ko) * 1980-11-21 1986-09-24 후지쑤 가부시끼가이샤 데이타 처리시 스템
US4458330A (en) * 1981-05-13 1984-07-03 Intergraph Corporation Banded vector to raster converter

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5710874A (en) * 1980-06-25 1982-01-20 Fujitsu Ltd Instruction control device
JPS582975A (ja) * 1981-06-27 1983-01-08 Fujitsu Ltd ベクトル・デ−タ処理装置の制御方式

Also Published As

Publication number Publication date
US4617625A (en) 1986-10-14
GB8516951D0 (en) 1985-08-07
GB8510663D0 (en) 1985-06-05
GB2159309B (en) 1986-11-05
GB2113878A (en) 1983-08-10
GB2113878B (en) 1986-10-29
DE3248215C2 (ja) 1989-08-24
JPS58114274A (ja) 1983-07-07
GB2159309A (en) 1985-11-27
DE3248215A1 (de) 1983-08-18

Similar Documents

Publication Publication Date Title
JPS6152512B2 (ja)
US4794517A (en) Three phased pipelined signal processor
CA1176757A (en) Data processing system for parallel processings
US5081574A (en) Branch control in a three phase pipelined signal processor
US3739352A (en) Variable word width processor control
US4658355A (en) Pipeline arithmetic apparatus
JPH0241053B2 (ja)
US4162519A (en) Data processor with address allocation to operations
JPS60136870A (ja) ベクトル処理装置
US8200943B2 (en) Microprocessor
JPH046992B2 (ja)
JPH0461390B2 (ja)
JPH0452986B2 (ja)
JPS63100572A (ja) データ処理装置
EP0542318A2 (en) Digital processor and method for controlling the same
JP2556083B2 (ja) 複合演算パイプライン回路
JPS6320536A (ja) 情報処理装置
JPH07110769A (ja) Vliw型計算機
JP2760808B2 (ja) データ処理装置
JP4413905B2 (ja) Simd型プロセッサ
JPS62267827A (ja) ブランチ条件選択方式
JPH0589159A (ja) データ処理システム
JPS5896346A (ja) 階層型演算方式
JPH052481A (ja) 演算制御回路
GB2069198A (en) Pipelined data processor