JP2810043B2 - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JP2810043B2 JP2810043B2 JP62285310A JP28531087A JP2810043B2 JP 2810043 B2 JP2810043 B2 JP 2810043B2 JP 62285310 A JP62285310 A JP 62285310A JP 28531087 A JP28531087 A JP 28531087A JP 2810043 B2 JP2810043 B2 JP 2810043B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- resource
- signal
- vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 239000013598 vector Substances 0.000 claims description 155
- 238000010586 diagram Methods 0.000 description 15
- 230000007246 mechanism Effects 0.000 description 11
- 238000000034 method Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000007704 transition Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 230000008676 import Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000001459 lithography Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
- G06F15/8084—Special arrangements thereof, e.g. mask or switch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、データ処理装置、特にベクトル演算を高速
に実行するのに好適なデータ処理装置(以下これをベク
トルプロセッサと呼ぶ)に関する。 〔従来の技術〕 ベクトルプロセッサは、科学技術計算において頻繁に
現れる行列計算を高速に行うため、1クロック毎にベク
トルデータを投入できるパイプライン構成のメモリリク
エスタや演算器(以下これらをまとめてリソースと呼
ぶ)を複数有している。また、上記リソースから供給さ
れるデータの一時的な格納や上記リソースへのデータの
供給を高速に行うために1クロック毎にベクトルデータ
の読出しもしくは書込みを行える複数のベクトルレジス
タを有するベクトルプロセッサが多い。 上記のリソースの1つに、行う演算種類に対応したオ
ペコード等の情報をパイプラインのステージに同期して
移動させて演算の各ステージを制御することにより、複
数の異なる種類の演算を行う場合でも、オペコード等の
制御情報を間隔をあけずに与えれば、各々の演算で扱う
ベクトルデータを間隔をあけずに受付けることのできる
ものがある。(特開昭58−106636)一方上記リソースへ
間隔をあけずにデータを供給、もしくはデータを受信す
るために、ベクトルレジスタの制御ユニットでは、各命
令を実行するリソースと命令で読出し、もしくは書込み
を指定されたベクトルレジスタの間のデータ転送パス
を、該命令の解読結果が与えられれば直ちに切換えて、
データの読出し/書込み指示を行うようにしている。
(特公昭61−52512) 上記命令の解読結果は命令制御ユニットから与えられ
る。命令制御ユニットでは命令を解読し、該解読した命
令が実行開始可能であるか否かを判定し、実行開始可能
であった場合は直ちに、また実行開始不可能であった場
合は開始可能になるのを待って、該命令の解読結果を上
記リソース及びベクトルレジスタ制御ユニット送出す
る。ここで命令が実行開始可能であるとは、該命令を実
行すべきリソースが使用中でなく、かつ該命令で読出
し、若しくは書込みを指定されたベクトルレジスタが読
出し、若しくは書込みに使用可能であることをいう。 上記の制御方法は特公昭61−52512に詳しい。 〔発明が解決しようとする問題点〕 上記従来技術では、各リソースの使用終了を示す命令
実行終了通知は、具体的には、実行中の命令で扱う最後
のベクトルデータを該リソースに投入した時に送出され
る。そのため、実行中の命令で扱う最後のベクトルデー
タがリソースに投入されてから、命令実行終了通知が命
令制御ユニットに到達し、実行開始可否判定が行われ、
実行開始可能な次の命令がリソース及びベクトルレジス
タ制御ユニットに届き、その命令で扱う最初のベクトル
データがリソースに投入されるまでに時間を要してい
た。その結果、従来は、各リソースやベクトルレジスタ
制御ユニットが毎クロックベクトルデータを処理できる
ように構成されているにも拘らず、前の命令の最後のベ
クトルデータを処理してから次の命令の最初のベクトル
データを処理するまでに間隔があき、リソースなどの使
用効率が良くなかった。 本発明は、各リソースに前の命令で扱う最後のベクト
ルデータが投入されたら、全く間隔をあけずに該リソー
ス及びベクトルレジスタ制御ユニットに次の命令を与
え、リソースに間断なくベクトルデータを投入できる手
段を提供することを目的とする。 〔問題点を解決するための手段〕 上記目的を達成するために、本発明では、リソースや
ベクトルレジスタの制御を行う命令実行制御部内に、各
リソースで実行中の命令以外に、各リソースに対応して
該命令の実行が終了すれば、該リソースを使用して実行
を開始できる命令を保持することのできる命令保持手段
を設け、リソースで実行中の命令が終了したら、保持し
ている実行開始可能命令のうち1つを直ちにリソース及
びベクトルレジスタ制御ユニットに与えるように上記命
令保持手段を制御するようにした。また、命令制御ユニ
ットは、解読した命令で読出し若しくは書込みを指定さ
れているベクトルレジスタが読出し若しくは書込みに使
用可能であるか否かを調べ、また解読した命令で使用す
るリソースに対応する命令保持手段がさらに命令を保持
可能であるか否かを調べ、レジスタの使用及び実行開始
可能命令の保持の双方共可能であった時のみ、該命令を
実行開始可能であると判定し、リソース対応の命令保持
手段に解読した命令の保持を指示するようにした。 また、命令制御ユニットから見ると、該命令保持手段
に保持を指示した命令は全て各リソースで実行中である
ように見えるようにした。即ち命令制御ユニットは、命
令で読出し/書込みを指定されているベクトルレジスタ
を、該命令の保持を命令保持手段に指示した時点で読出
し/書込みに使用中になったとみなして、次の命令に関
するレジスタ使用可否の判定を行うようにした。 さらに、ある命令を実行可能なリソースが複数ある場
合、命令制御ユニットは、上記の各リソースに対応する
命令保持手段の保持する命令数が最も少ない命令保持手
段に対し、命令の保持を指示するようにした。また、第
1のリソースは第1と第2の種類の命令を実行可能だ
が、第2のリソースは第1の種類の命令は実行可能だ
が、第2の種類の命令を実行不可能な場合で、しかも第
1と第2のリソースに対応する命令保持手段の保持する
命令数が同数の時には、命令制御ユニットは、第2のリ
ソースに対し第1の命令の保持を指示するようにした。 命令制御ユニットが、上記リソース対応の実行開始可
能命令保持手段に対して命令を保持するよう指示すると
いうことは、リソース及びベクトルレジスタ制御ユニッ
トに対し該命令の実行を予約したことになるので、以
下、命令を保持するよう指示することを、命令の実行開
始の予約と呼ぶ。また、リソース対応の実行開始可能命
令保持手段を予約手段と呼び、該予約手段に保持されて
いる命令を実行開始予約済命令、と呼ぶ。 〔作用〕 上記のように、命令実行制御部内にリソース対応の実
行開始可能命令の予約手段を設けたことにより、現在実
行中の命令で扱う最後のベクトルデータがリソースに投
入されれば、直ちに次に実行すべき命令がリソース及び
ベクトルレジスタ制御ユニットに与えられる。その結
果、各リソースに、前の命令と次の命令で扱うベクトル
データがリソースのパイプラインの各ステージを全くあ
けずに投入され、リソースの使用効率があがる。また、
命令制御ユニットは、解読した命令で読出し若しくは書
込みを指定されているベクトルレジスタが読出し、若し
くは書込みに使用可能である時にのみ、該解読結果をリ
ソース対応の予約手段に予約しているので、ベクトルレ
ジスタ制御ユニットは、該解読結果を受取ると直ちにベ
クトルデータを指定されているベクトルレジスタから読
出したり書込んだりしても矛盾を生じない。 また、ある命令を実行可能なリソースが複数ある時
は、該命令の実行が極力早く開始されるよう、命令制御
ユニットは予約済命令保持数の最も少ない予約手段に予
約指示を行うようにしている。さらに、第1の命令の予
約指示を行おうとした時に、該第1の命令を実行可能な
第1と第2のリソースに対応する予約手段の保持する予
約済命令数が同数で、しかも該第1のリソースは該第2
のリソースには実行不可能である第2の種類の命令を実
行可能である時は、第2のリソースに対して予約指示を
行うようにしたことにより、その後、第2の命令の実行
開始の予約が可能であるか調べる際に、上記制御の行な
わない場合と較べて、予約が可能である機会が多くなる
ようにした。 〔実施例〕 以下、本発明を実施例を参照して詳細に説明する。 全体構成 第2図は、本発明の概略装置構成を示す図である。 第2図中、1は主記憶、2は命令解読ユニット、9は
命令実行開始の予約信号を発行する命令発行ユニット、
10,11,12,13は夫々メモリリクエスタ0,メモリリクエス
タ1,加算器,乗算器であり、14はベクトルレジスタユニ
ットである。ベクトルレジスタユニット14内には、夫々
上記各リソースに対応する実行開始可能命令予約手段及
び該予約手段を制御する命令実行開始制御ユニットがあ
るが、第2図には示していない。 命令解読ユニット2は、命令取り出しユニット(図示
せず)の制御により主記憶1から取り出されたベクトル
命令を信号線l1を通じて受取り、命令を、実行すべき演
算の種類を示すオペコード,ベクトル長,読出し或いは
書込みに使用するベクトルレジスタ番号、使用するリソ
ース番号等の命令の実行に必要な情報に解読して、その
情報を信号線l2を通じて命令発行ユニット9に送出する
と共に、命令の実行で使用するベクトルレジスタの番号
とリソースの番号とを夫々信号線l3,l4を通じてレジス
タ読み出し/書き込み要求保持レジスタ3とリソース使
用要求保持レジスタ5とにセットする。本実施例ではリ
ソースはメモリリクエスタ0(10),メモリリクエスタ
1(11)と,加算器12,乗算器13の4つであるとし、各
々のリソース番号を0から3までとする。またベクトル
レジスタは0から31までの番号のついた32本とする。 図中4はレジスタ使用状態保持レジスタであり、各ベ
クトルレジスタ対応にそのレジスタが読み出しに使用中
か否か書き込みに使用中か否かの状態を保持している。
図中6はリソース予約状態保持レジスタであり、各リソ
ースが、実行開始予約済み命令を幾つ保持しているかを
表示している(詳細後述)。 レジスタ使用可否判定ユニット7はレジスタ読み出し
/書き込み要求保持レジスタ3とレジスタ使用状態保持
レジスタ4とに保持されている情報を信号線l5,l6を通
じて得、解読した命令で読み出し若しくは書き込みに使
用するベクトルレジスタが使用可能であるか否かを毎ク
ロック判定し、判定結果を信号線l9を通じて命令発行ユ
ニット9に伝える。レジスタ使用可否の判定方法は特公
昭61−52512に詳しいのでここでは割愛する。 リソース使用可否判定ユニット8はリソース使用要求
保持レジスタ5とリソース予約状態保持レジスタ6とに
保持されている情報を信号線l7,l8を通じて得、解読し
た命令を実行すべきリソースに対しさらに命令実行開始
予約を行なってよいか否かを毎クロック判定し、判定結
果を信号線l10を通じて命令発行ユニット9に伝える
(詳細後述)。 命令発行ユニット9は上記レジスタ使用可否判定結果
とリソース使用可否判定結果とが共に肯定的だった場合
に、以下の動作を行なう。 即ち、ベクトルレジスタユニット14に対し、信号線l1
4を通じてオペコード,ベクトル長,使用ベクトルレジ
スタ番号、等の命令実行に必要な情報を送ると共に、ベ
クトルレジスタユニット14に対し、該ユニット14内にあ
るリソース対応の該命令実行開始制御ユニットに対する
命令実行開始の予約信号を信号線l13を通じて発行す
る。また、実行開始の予約を行なった命令で使用するベ
クトルレジスタやリソースに関するレジスタ使用状態保
持レジスタ4とリソース予約状態保持レジスタ6の内容
を信号線l11を通じて更新する。さらに命令解読ユニッ
ト2に対し、信号線l12を通じて、該命令の実行開始予
約が終了した旨通知する。命令解読ユニット2は、命令
の実行開始予約が終了した旨の通知を受けると、次のベ
クトル命令の解読結果を信号線l2,l3,l4上に送出する。 命令発行ユニット9は、レジスタ使用可否判定結果と
リソース使用可否判定結果の少なくともいずれか一方が
否定的だった場合には信号線l11,l12,l13,l14に何も送
出しない。そのため命令解読ユニット2は次の命令の解
読結果を信号線l2,l3,l4上に送り出さず、レジスタ読み
出し/書き込み要求保持レジスタ3とリソース使用要求
保持レジスタ5の内容は変化しない。一方、レジスタ使
用状態保持レジスタ4とリソース予約状態保持レジスタ
6の内容は信号線l58,l59,l18,l28,l45,l53により、命
令の実行が終了すると更新される。レジスタ使用可否判
定ユニット7及びリソース使用可否判定ユニット8は毎
クロックレジスタ及びリソースの使用可否の判定を行な
っており、上記使用可否の判定結果が双方とも肯定的に
なった時に、命令発行ユニット9は命令実行開始予約を
行なう。 オペコード,ベクトル長,使用ベクトルレジスタ番
号、等の命令実行に必要な情報は信号線l14を通じてベ
クトルレジスタユニット14に伝えられる。ベクトルレジ
スタユニット14は、各リソース10,11,12,13に対して、
オペコード,ベクトル長などの情報を夫々信号線l15,l2
5,l41,l49を通じて送出し、各リソース10,11,12,13は該
信号線で示された命令を実行する。 以下各々のリソースの動作概略を説明する。 メモリリクエスタ0(10)は、信号線l15に示される
主記憶読み出し命令を実行する。主記憶読み出し命令
は、主記憶上のベクトルデータを読出し、ベクトルレジ
スタに格納する命令である。また、メモリリクエスタ0
(10)が信号線l15から受取る内容は、実行すべき命令
の種類を示すオペコード,該命令でアドレス生成に使用
するアドレスレジスタ(図示せず)の番号及びベクトル
長である。 メモリリクエスタ0(10)は、命令で指定されたアド
レスレジスタの情報を使用して、読み出しベクトルデー
タの主記憶上のアドレスを順次生成し、信号線l15で示
されたベクトル長分の該アドレス及び該アドレスが有効
であることを示すアドレスの有効信号を信号線l16,l17
を通じて主記憶制御ユニット(図示せず)から主記憶に
送出する。主記憶からのデータの読出しは、主記憶のア
ドレス競合及び読出しパス競合などにより、間欠的にな
る場合があるが、データの移動の際には常に該データの
有効性を示すデータ有効信号が送出され、命令の実行制
御は該データ有効信号に従って行われる。主記憶から読
み出されたベクトルデータはデータ有効信号と共に信号
l19,l20を通じてメモリリクエスタ0(10)に送られ、
ベクトルレジスタユニット14に、メモリリクエスタ0
(10)は該信号を信号線l22,l23を通じて送る。ベクト
ルレジスタユニット14は、信号線l22を介して受け取っ
たベクトルデータを、該データの有効信号が1の時の
み、メモリリクエスタ0(10)で実行中の命令に指定さ
れたベクトルレジスタに書き込む。メモリリクエスタ0
(10)は信号線l15で示されたベクトル命令で扱う最後
のベクトルデータのアドレス有効信号l17を主記憶に送
出する時に同時にアドレス最終信号l18も送出する。信
号線l15で示されたベクトル命令で扱う最後のベクトル
データが主記憶から読み出された時、該ベクトルデータ
の有効信号l20と同時にデータ最終信号l21も送出され、
さらにベクトルレジスタユニット14にも、信号線l23と
同時に、信号線l24を通じて送られる。 アドレス最終信号l18はベクトルレジスタユニット14
にも伝えられ、ベクトルレジスタユニット14は信号線l1
8を受取ると、信号線l15の内容をメモリリクエスタ0
(10)で次に実行すべき命令に直ちに切換える。 メモリリクエスタ0(10)は信号線l15に示されるオ
ペコード等の情報を毎クロック受取り、該情報をメモリ
リクエスタのパイプラインステージに同期させて移動さ
せて各ステージを制御する構成になっている。そのた
め、信号線l15上にある有効な命令が別の有効な命令に
間隔をあけずに切換わっても、メモリリクエスタ0(1
0)は夫々の命令で扱うデータのアドレスを間隔をあけ
ずに生成して、主記憶への送出を開始する。 さらに、アドレス最終信号l18は、メモリリクエスタ
0(10)でベクトル命令の実行が終了したことを通知す
る信号としてリソース予約状態保持レジスタ6にも送出
され、リソース予約状態保持レジスタ6の内容を更新す
る。 メモリリクエスタ1(11)は、信号線l25に示される
主記憶読み出し命令若しくは主記憶書き込み命令を実行
する。主記憶書込み命令は、ベクトルレジスタ上のベク
トルデータを読出し、主記憶に書込む命令である。ま
た、メモリリクエスタ1(11)が信号線l25から受け取
る内容は、実行する命令の種類を示すオペコード、使用
するアドレスレジスタの番号及びベクトル長である。 主記憶読み出し命令を実行する場合、メモリリクエス
タ1(11)は、命令で指定されたアドレスレジスタの情
報を使用して読み出しベクトルデータの主記憶アドレス
を順次生成し、該アドレス及び該アドレスの有効信号及
び該アドレスの最終信号を信号線l26,l27,l28を通じて
主記憶に送出する。主記憶から読み出されたベクトルデ
ータはデータ有効信号及びデータ最終信号と共に信号線
l29,l30,l31を通じてメモリリクエスタ1(11)に送ら
れ、ベクトルレジスタユニット14に、メモリリクエスタ
1(11)は該信号を信号線l35,l36,l37を通じて送る。
ベクトルレジスタユニット14は、信号線l35を介して受
け取ったベクトルデータを、該データの有効信号が1の
時のみ、メモリリクエスタ1(11)で実行中の命令に指
定されたベクトルレジスタに書き込む。 主記憶書き込み命令を実行する場合、メモリリクエス
タ1(11)は、ベクトルレジスタユニット14から信号線
l38,l39,l40を介して書き込みベクトルデータ,データ
有効信号,データ最終信号を受取り、該データの有効信
号が1の時のみ該データを書き込むべき主記憶上のアド
レスをアドレスレジスタの情報を使って順次生成し、該
アドレス及び該アドレスの有効信号,該アドレスのアド
レス最終信号を信号線l32,l33,l34を介し、主記憶に送
出する。 メモリリクエスタ1(11)もメモリリクエスタ0(1
0)と同様信号線l25上の有効な命令が別の有効な命令に
直ちに切換わっても、夫々の命令で扱うデータのアドレ
スを間隔をあけずに生成することができるように構成さ
れている。 アドレス最終信号l28はベクトルレジスタ14にも伝え
られ、ベクトルレジスタユニット14は信号線l25の内容
をメモリリクエスタ1(11)で次に実行すべき命令に直
ちに切換えると共に、該次の命令が主記憶書込み命令で
あった場合は、メモリリクエスタ1(11)へ信号線l38,
l39,l40を通じて囲みベクトルデータの送出を開始す
る。そして、メモリリクエスタ1(11)は直ちに次のベ
クトル命令で扱うベクトルデータのアドレスの主記憶へ
の送出を直ちに開始する。 さらに、アドレス最終信号l28は、メモリリクエスタ
1(11)でベクトル命令の実行が終了したことを通知す
る信号としてリソース予約状態保持レジスタ6にも送出
され、リソース予約状態保持レジスタ6の内容を更新す
る。 加算器12は信号線l41に示される加算系の演算命令を
実行する。演算命令は2本のベクトルレジスタから読み
出したベクトルデータ同士の演算を行ない、1本のベク
トルレジスタに格納する命令である。加算器12が信号線
l41から受け取る内容は、実行すべき演算の種類を示す
オペコードである。 加算器12は、ベクトルレジスタユニット14から信号線
l42,l43を介して送られた2このベクトルデータ同士
を、該データの有効信号l44が1の時のみ信号線l41で示
されるオペコードに従って演算し、演算結果を信号線l4
6に、該演算結果の有効性を示すデータ有効信号をl47に
送出して、ベクトルレジスタユニット14に送出する。ベ
クトルレジスタユニット14は、加算器12で実行する命令
で扱う最後のベクトルデータの有効信号l44を送出する
時同時に、データ最終信号l45を送出する。加算器12
は、該データ最終信号l45を受け取ると、上記最後のベ
クトルデータ同士の演算結果の有効信号l47と同時にデ
ータ最終信号l48を送出する。 ベクトルレジスタユニット14は、データ最終信号l45
を送出すると直ちに信号線l41の内容を加算器で次に実
行すべき命令に切換えると同時に、該命令で扱う読出し
データ及び該データの有効信号の信号線l42,l43,l44へ
の送出を開始する。 加算器12も、メモリリクエスタ0(10)と同様信号線
l41に示される命令のオペコード等の情報を毎クロック
受取り、該情報を加算器のパイプラインステージに同期
して移動させて各ステージを制御する構成になってい
る。そのため、信号線l41上にある有効な命令が別の演
算を指示する有効な命令に間隔をあけずに切換わって
も、夫々の命令で扱うベクトルデータを間隔をあけずに
信号線l42,l43から取って、異なる演算を加算器のパイ
プラインの各ステージを全くあけずに実行する。 さらに、データ最終信号l45は、加算器12でベクトル
命令の実行が終了したことを通知する信号としてリソー
ス予約状態保持レジスタ6にも送出され、リソース予約
状態保持レジスタ6の内容を更新する。 乗算器13は信号線49に示される乗算系の演算命令を実
行する。乗算器13は実行する演算命令が加算器12と異な
るが、その動作概略は既に述べた加算器12の動作と同様
である。 即ち、ベクトルレジスタユニット14から信号線l50,l5
1,l52,l53を介して送られる2つのベクトルデータ、該
データの有効信号、及び該データの最終信号を受け取る
と、2つのベクトルデータ同士に対し信号線l49に示さ
れた演算を施し、該演算結果,該演算結果の有効信号,
該演算結果の最終信号を信号線l54,l55,l56に送出す
る。また、ベクトルレジスタユニット14から送られる読
出しデータの最終信号l53は、命令の実行の終了に通知
としてレジスタ予約状態表示レジスタ6にも送られる。 上記のように各リソースは、ベクトルレジスタユニッ
ト14から実行すべき命令及び読出しベクトルデータを間
隔をあけずに受け取れば、パイプラインの各ステージを
全くあけずに処理を行うことができる。 ベクトルレジスタユニット 以下ベクトルレジスタユニット14の動作を第1図に従
って説明する。 第1図はベクトルレジスタユニット14の内部構成を示
した図である。 図中37,38,39は夫々ベクトルデータを保持するベクト
ルレジスタである。ベクトルレジスタは32本あるが、図
では省略して3本しか示していない。図中33,34,35,36
は、夫々メモリリクエスタ0(10),メモリリクエスタ
1(11),加算器12,乗算器13から信号線l22,l35,l46,l
54を介して送らてくる書込みデータを、各ベクトルレジ
スタへの書込みパスl80に振り分けるリソース対応のデ
ィストリビュータである。また、40,41,42は、各ベクト
ルレジスタの読出パスl81上の読出データを選択して夫
々メモリリクエスタ1(11),加算器12,乗算器13への
データ信号線l38,l42,l43,l50,l51へ送出するリソース
対応のセレクタである。 夫々のベクトルレジスタ37,38,39に対応して、該ベク
トルレジスタの読出し/書込みを制御するベクトルレジ
スタ制御回路18,19,20がある。 また29,30,31,32は夫々メモリリクエスタ0(10),
メモリリクエスタ1(11),加算器12,乗算器13に対す
る読出データ有効信号及び最終信号の送出等を行うリソ
ース対応のオペランド制御回路である。 図中22,24,26,28は夫々メモリリクエスタ0(10),
メモリリクエスタ1(11),加算器12,乗算器13で実行
中の命令を保持する命令レジスタであり、夫々実行開始
可能命令予約手段を内部にもつ上記4つのリソース対応
の命令実行開始制御ユニット21,23,25,27によって値を
設定される。該命令レジスタ22,24,26,28は命令で示さ
れるオペコード,ベクトル長,使用レジスタ番号等の情
報を保持している。また44,46,48は各々メモリリクエス
タ1(11),加算器12,乗算器13で実行中の命令で示さ
れる読出レジスタ番号を保持する命令レジスタであり、
夫々実行開始可能命令予約手段を内部に持つ上記3つの
リソース対応の命令実行開始制御ユニット43,45,47によ
って値を設定される。 命令レジスタ22,24,26,28の情報は夫々対応するリソ
ース及びオペランド制御回路に送られ、リソースでの命
令実行制御及びオペランド制御,書込データパスの切換
え制御に使われる。命令レジスタ44,46,48の情報は夫々
対応するセレクタに送られ、読出データパスの切換え制
御に使われる。 以下、動作の詳細を説明する。 ベクトルレジスタユニット14には、命令発行ユニット
9から、信号線l14を通じて実行すべき命令のオペコー
ド,ベクトル長,使用ベクトルレジスタ番号等の情報
が、信号線l13を通じて該命令の予約信号が送られてく
る。信号線l13は各リソース番号0から3に対応した4
ビットから成っていて、該命令を実行すべきリソースの
番号に対応するビットにのみ1が送られてくる。各命令
実行開始制御ユニット21,23,25,27は、信号線l13の各ビ
ットのうち、該命令実行開始制御ユニットが対応するリ
ソース番号に対応するビットの値が1の時のみ信号線l1
4の内容を取り込む。また、各命令実行開始制御ユニッ
ト43,45,47は、信号線l13の各ビットのうち、該命令実
行開始制御ユニットが対応するリソース番号に対応する
ビットの値が1の時のみ信号線l14の内容のうち読出レ
ジスタ番号情報のみを取り込む。 各命令実行開始制御ユニット21,23,25,27,43,45,47は
夫々独立に動作して、該命令実行開始制御ユニットに対
応するリソースで実行中の命令がなければ直ちに、実行
中の命令があれば該命令の実行終了通知l18,l28,l45,l5
3,l28,l45,l53を待って、取り込んだ信号線l14の内容
を、夫々信号線l68,l70,l72,l74,l82,l84,l86を通じ
て、対応する命令レジスタ22,24,26,28,44,46,48に設定
する。ここで、同一リソースに対応する命令レジスタ、
24と44,26と46,28と48には夫々同じタイミングで値が設
定される。(詳細後述) 命令レジスタ22,24,26,28の内容のうち、メモリリク
エスタ0(10)及びメモリリクエスタ1(11)にはオペ
コード及びベクトル長が、加算器12及び乗算器13にはオ
ペコードが、夫々信号線l15,l25,l41,l49を通じて直ち
に送られ、以降該命令の実行が終了するまで送り続けら
れる。 また、命令レジスタ22,24,26,28の内容は直ちに対応
するオペランド制御回路29,30,31,32に夫々信号線l69,l
71,l73,l75を通じて送られ、該信号を受取ったオペラン
ド制御回路は夫々独立に該信号に示される使用レジスタ
番号に対応するベクトルレジスタ制御回路18,19,20に読
出し若しくは書込みの開始指示を与える。読出し/書込
みの開始指示には各オペランド制御回路29,30,31,32か
らリソース対応に信号線l65−1に送出されるが、S−
G変換回路16によりレジスタ対応の読出し/書込み開始
指示に変換され、信号線l66を通じて各ベクトルレジス
タ制御回路18,19,20に与えられる。 また、命令レジスタ44,46,48に読出しレジスタ番号が
設定されると、読出パスのセレクタ40,41,42は信号線l8
3,l84,l85を経て該読出しレジスタ番号情報を得、直ち
に読出しパスの接続を切り換える。一方書込パスのディ
ストルビュータ33,34,35,36は、夫々信号線l76,l77,l7
8,l79の指示により切り換えられるが、該切換えの指示
は、夫々対応するオペランド制御回路により、対応する
命令レジスタに値が設定されてから一定の間隔をあけて
送出される。ここで一定の間隔とは各々のリソースに固
有の値であり、データが読出されてから演算を施され再
ひ書込まれるまでの時間(これをトラベルタイムと呼
ぶ)に等しい。さらに、各オペランド制御回路29,30,3
1,32は、信号線l65−2を通じて各リソースがどのレジ
スタに書込みを行うかの情報をトラベルタイム分の間隔
をあせてS−G変換回路15に与える。 さて、各命令レジスタに設定された命令がベクトルレ
ジスタの読出しを行う命令、即ち主記憶書込み命令若し
くは演算命令だった場合、該命令を実行するリソースで
あるメモリリクエスタ1(11),加算器12,乗算器13に
対応するオペランド制御回路30,31,32は読出しデータの
有効信号l39,l44,l52を命令レジスタ24,26,28で示され
たベクトル長分順次生成して、対応するリソースに送出
する。一方読出し開始指示をうけたベクトルレジスタ制
御回路は、対応するベクトルレジスタから順次データを
読出し、読出しパスl80に送出する。有効信号の生成制
御及びデータ読出し制御については特開昭61−52512に
詳しいのでここでは述べない。読出しパスl80上に読出
されたデータはセレクタ40,41,42により各リソースに信
号線l38,l42,l43,l50,l51を通じて順次送出される。こ
こで読出パスの切換えは、命令レジスタ44,46,48に値が
設定されると直ちに行われているので、読出されたデー
タは然るべきリソースに対して送出される。 メモリリクエスタ0(10),メモリリクエスタ1(1
1)で主記憶読出し命令を実行している場合、或いは加
算器12,乗算器で演算命令を実行している場合、各リソ
ースから信号線l22,l35,l46,l54を通じて書込みデータ
が、信号線l23,l36,l47,l55を通じて該データの有効信
号が順次送られてくる。書込みデータの有効信号l23,l3
6,l47,l55はリソース対応に送られてくるが、S−G変
換回路15により各ベクトルレジスタに対するデータ有効
信号l59,l61,l63に変換され、各ベクトルレジスタ制御
回路18,19,20に与えられる。ここでリソース番号とレジ
スタ番号の変換に必要な情報は、命令レジスタ22,24,2
6,28に値が設定されてからトラベルタイム分の間隔をあ
けて信号線l65−2を通じてS−G変換回路15に与えら
れ、各リソースから最初の書込みデータ有効信号がl23,
l36,l47,l55を通じて届くタイミングにちょうど間に合
うようになっている。 一方、各リソースから送られてくる書込みデータl22,
l35,l46,l54は、ディストリビュータ33,34,35,36により
然るべきベクトルレジスタへの書込みパスl80に振分け
られる。ここで書込みパスの切換え指示信号l76,l77,l7
8,l79は、命令レジスタ22,24,26,28に値が設定されてか
らトラベルタイム分の間隔をあけて送出され、各リソー
スから最初の書込みデータが信号線l22,l35,l46,l54を
通じて届くタイミングにちょうど間に合うようになって
いる。 予め書込み開始指示をうけていた各ベクトルレジスタ
制御回路18,19,20は、書込みデータ有効信号l59,l61,l6
3を順次受取り、該有効信号の値が1のみ、対応するベ
クトルレジスタ7,38,39に信号線l80上の値を順次書込
む。 メモリリクエスタ1(11),加算器12,乗算器13に対
応するオペランド制御回路30,31,32は、対応する命令レ
ジスタ24,26,28で示される命令で扱う最後のベクトルデ
ータの有効信号l39,l44,l52を各リソースに送出する時
同時にデータの最終信号l40,l45,l53を各リソースに対
して送出する。該データ最終信号のうち加算器12,乗算
器13に対応する最終信号l45,l53は同時に加算器12,乗算
器13の命令実行終了通知としても使用され、夫々命令実
行開始制御ユニット25と45、及び27と47に与えられる。
メモリリクエスタ0(10),メモリリクエスタ1(11)
の命令実行終了通知は夫々対応するリソースから信号線
l18,l28を通じて得られ、夫々命令実行開始制御ユニッ
ト21、及び23と43に与えられる。 さらに各オペランド制御回路29,30,31,32は、データ
最終信号を送出する時同時にベクトルレジスタ制御回路
に対し読出し終了通知を送出する。読出し終了通知は信
号線l67によりリソース対応に送出されるが、S−G変
換回路17によりレジスタ対応の読出し終了通知に変換さ
れ、信号線l68を通じて各ベクトルレジスタ制御回路18,
19,20に伝えられる。読出し終了通知を受取ったベクト
ルレジスタ制御回路18,19,20は、対応するベクトルレジ
スタの読出制御を終了し、信号線l57を通じてレジスタ
使用状態保持レジスタ4に対しレジスタ対応の読出終了
通知を送出する。 一方、各リソースから送られてくる書込みデータの有
効信号l23,l36,l47,l55の対応する書込みデータが各命
令で扱う最後の書込みデータであった場合は、該データ
有効信号と同時にデータ最終信号が信号線l24,l37,l48,
l56を通じて各リソースから送られてくる。該データ最
終信号l24,l37,l48,l56は、S−G変換回路15によりベ
クトルレジスタ対応のデータ最終信号l60,l62,l64に変
換されて各ベクトルレジスタ制御回路に与えられる。各
ベクトルレジスタ制御回路18,19,20は、データ最終信号
l60,l62,l64を書込み終了通知として受取り、対応する
ベクトルレジスタへの書込み制御を終了し、信号線l58
を通じてレジスタ使用状態保持レジスタ4に対してレジ
スタ対応の書込み終了通知を送出する。 各命令実行開始制御ユニット21,23,25,27,43,45,47は
命令実行終了通知l18,l28,l45,l53を受取ると直ちに対
応する命令レジスタ22,24,26,28,44,46,48の値を次に実
行すべき命令に切換える。(詳細後述) そのためメモリリクエスタ0(10),メモリリクエス
タ1(11)には、命令実行終了通知l18,l28が送出され
た次のクロックには、次に実行すべき命令のオペコード
及びベクトル長が送出される。また、メモリリクエスタ
0(10),メモリリクエスタ1(11)に対応するオペラ
ンド制御回路は、命令実行終了通知l18,l28が送出され
た次のクロックにはベクトルレジスタ制御回路18,19,20
に読出し/書込み開始指示を行うと共に、同時に該命令
で扱う最初の読出しデータの有効信号l39を送出でき
る。一方セレクタ40は、命令実行終了通知l28が送出さ
れた次のクロックには読出しパスl81の接続を切換える
ので、読出し開始指示を受けたベクトルレジスタ制御回
路18,19,20により読出されたデータは然るべきリソース
に送出される。 加算器12,乗算器13にも命令実行終了通知であるデー
タ読出し最終信号l45,l53が送出された次のクロックに
は次に実行すべき命令のオペコードが送出され、同じタ
イミングで各ベクトルレジスタ制御回路18,19,20に読出
し/書込み開始指示が伝えられると共に、該命令で扱う
最初の読出しデータの有効信号l44,l52が送出されるの
で、異なる命令間で全く間隔をあけずに各リソースにデ
ータ有効信号l44,l52が送出されることになる。一方で
該同じタイミングでセレクタ41,42は読出しパスl81の接
続を切換えるので、読出しデータは然るべきリソースに
送出される。 さらに、ディストルビュータ33,34,35,36による書込
パスl80の切換えは、ある命令の実行終了通知l18,l28,l
45,l53が送出されてから、該命令を実行するリソースの
トラベルタイムだけ間隔をあけて行われる。そのため、
該命令で扱う最後の書込データが該命令で書込みを指定
されたベクトルレジスタ37,38,39への書込みパスl80上
に送られてくるまで、書込パスl80は該命令の書込みレ
ジスタに接続されており、該データは然るべきレジスタ
に書込まれる。そして、その次のクロックには書込みパ
スl80の接続が切換えられ、該命令の次の命令で扱う最
初の書込データが間隔をあけずに該リソースから送られ
てきても、該書込みデータは然るべきレジスタに書込ま
れる。 上記のように、ベクトルレジスタユニット14内に、リ
ソース対応の実行開始可能命令予約手段を内部に持つ命
令実行開始制御ユニットを設けたことにより、各リソー
スに対し実行すべき命令のオペコード及びベクトル長と
読出しベクトルデータを間隔をあけずに送出することが
できる。 また、本実施例では、命令実行開始制御ユニットをベ
クトルレジスタユニット14内にのみ設け、該命令実行開
始制御ユニットから各リソースにオペコード及びベクト
ル長の情報を送ったが、各リソースを制御するユニット
内にもオペコード及びベクトル長の情報を保持する命令
予約手段と該予約手段の制御ユニットを設け、命令発行
ユニット9から直接各リソースに該情報を送出して命令
実行開始予約指示を行っても同じ効果が得られる。 また、本実施例では書込みパスl81の切換え指示はオ
ペランド制御回路29,30,31,32から行なったが、書込み
レジスタ番号情報のみを保持する命令予約手段と該予約
手段の制御ユニットを設けて該制御ユニットの出力信号
の指示によりディストルビュータ33,34,35,36の切換え
を行ってもよい。 さらに、本実施例では読出しレジスタ番号情報のみを
保持する命令予約手段を制御する命令実行開始制御ユニ
ット43,45,47を設け、該命令実行開始制御ユニット43,4
5,47の出力信号の指示により読出しパスl81の切換えを
行ったが、該命令実行制御ユニット43,45,47を設けず
に、オペランド制御回路30,31,32から直接読出しパスl8
1の切換えを指示してもよい。 実行開始制御ユニット 次に実行開始制御ユニットの動作を、第1図中の加算
器12に対応する実行開始制御ユニット25を例にとって第
3図を使って説明する。 第3図は実行開始制御ユニット25の内部の構成図であ
る。本実施例では、実行開始予約済み命令を、現在実行
中の命令を含め2つまで保持可能とし、実行開始制御ユ
ニット25は、実行開始の予約を受け付けた順に命令の実
行を開始させるものとする。 信号線l14には命令発行ユニット9からオペコード,
ベクトル長,使用ベクトルレジスタ番号等の命令実行に
必要な情報が送られてくる。信号線l13は、命令発行ユ
ニット9から送られる命令実行開始の予約信号であり、
上記命令実行情報を実行開始予約済み命令として取り込
むべきか否かを指定する。信号線l45は、加算器12から
送られてくる命令の実行が終了したことを知らせる信号
である。命令レジスタ26は加算器12で現在実行中の命令
を保持するレジスタであり、該レジスタ26の内容は信号
線l73,l15を通じて夫々オペランド制御回路31及び加算
器12に伝えられる。 第3図中49は実行待ち中の実行開始予約済み命令を保
持する命令レジスタであり、50はセレクタであり、信号
線l14の内容、若しくは信号線l88を介して得た実行待ち
命令レジスタ49の内容のいずれか一方を選択して信号線
l72に送出することができる。本実施例では実行開始の
予約を受け付けた順に命令の実行を開始させればよいの
で実行開始制御ユニットは以下の制御を行なえばよい。
即ち、現在実行中の命令がない時に信号線l13から命令
の実行開始予約指示を受けた場合は、直ちに信号線l14
上の実行開始予約命令を信号線l72に送出して命令レジ
スタ26にセットし、現在実行中の命令がある時に信号線
l13から命令の実行開始予約指示を受けた場合は、信号
線l14上の実行開始予約命令を実行待ち命令レジスタ49
にセットして、現在実行中の命令の実行終了の通知を待
って実行待ち命令レジスタ49の内容を命令レジスタ26に
セットするよう制御する。 以下、上記制御方法を詳しく述べる。 第3図において51は実行開始予約済み命令が幾つ保持
されているかを表示するレジスタで、2ビットからな
る。52は命令の実行開始制御機構で、実行開始予約命令
の予約指示信号l13及び実行中命令終了通知信号l45を受
けて予約済み命令保持状態表示レジスタ51の内容を更新
し、実行待ちレジスタ49へのセット信号l89,セレクタ50
の切り替えl90、及び命令レジスタ26へのセット信号l91
を送出する。 第4図は予約済み命令保持状態表示レジスタ51の状態
遷移図である。51−1,51−2,51−3,51−4の各ノードは
各々予約済み命令保持状態表示レジスタ51のビットがと
る値である。51−1は実行開始を予約されている命令が
全くない状態を表わしている。51−2は実行開始を予約
されている命令が1つだけあり、該命令が命令レジスタ
26に保持されている状態を表わしている。51−3は実行
開始を予約されている命令が2つあり、各々の命令が命
令レジスタ26及び実行待ち命令レジスタ49に保持されて
いる状態を表わしている。51−4は、機械が正常に動作
していれば本来起こり得ない信号の組合せを受け取った
時に生じる状態であり、この時マシンチェック信号(図
示せず)を送出する。第4図中の、I,,E,とは夫々
予約指示信号l13,実行中命令終了通知信号l45の値を示
しており、Iは予約指示信号l13の値が1であることを
示し、は予約指示信号l13の値が0であることを示
し、Eは実行中命令終了通知信号l45の値が1であるこ
とを示し、は実行中命令終了通知信号l45の値が0で
あることを示している。ここで、予約指示信号l13の値
が1であるとは命令実行開始の予約を指示されたことを
示し、0であることは命令実行開始の予約を指示されな
かったことを示している。また実行中命令終了通知信号
l45の値が1であるとは実行中命令の終了通知を受けた
ことを示し、0であるは実行中命令の終了通知を受けな
かったことを示している。 第3図中の実行開始制御機構52は、予約指示信号l13,
実行中命令終了通知信号l45を受けると、信号線l93を通
じて得たその時の予約済み命令保持状態表示レジスタ51
の値に応じて、信号線l92を介して該状態表示レジスタ5
1の値を第4図の状態遷移図に従い更新する。 予約済み命令保持状態表示レジスタ51の値が00で、実
行開始を予約されている命令が全くない状態の時に、予
約指示信号l13も実行中命令終了通知信号l45も受けとら
なかった場合(即ちかつ)は応対表示レジスタ51の
値を更新する必要はないので、アークa1の示すように状
態表示レジスタ51の値は00のままとする。状態表示レジ
スタ51の値が00の時に、予約指示信号l13を受取り実行
中命令終了通知信号l45を受けとらなかった場合(即ち
Iかつ)は、実行開始予約済み命令は命令レジスタ26
にのみ保持されるはずなので、アークa2の示すように状
態表示レジスタ51の値を01に更新する。状態表示レジス
タ51の値が00の時に、実行中命令終了通知信号l45を受
取った場合(即ちE)は、マシンチェック信号を送出し
て状態表示レジスタ51の値を11に更新する。 予約済み命令保持状態表示レジスタ51の値が01で、実
行開始を予約されている命令が1つだけあって該命令が
命令レジスタ26に保持されている状態の時に、予約指示
信号l13も実行中命令終了通知信号l45も受け取らなかっ
た場合(即ちかつ)は、状態表示レジスタ51の値を
更新する必要はないので、アークa4の示すように状態表
示レジスタ51の値は01のままとする。予約済み命令保持
状態表示レジスタ51の値が01の時に、予約指示信号l13
も実行中命令終了通知信号l45も受け取った場合(即ち
IかつE)は、命令レジスタ26の内容が直ちに信号線l1
4の内容に置き換えられて実行待ちレジスタ49には何も
保持されないはずであるので、アークa4の示すように状
態表示レジスタ51の値は01のままとする。予約済み命令
保持状態表示レジスタ51の値が01の時に、予約指示信号
l13を受取らず実行中命令終了通知信号l45を受けとった
場合(即ちかつE)は、保持すべき命令がなくなった
わけであるから、アークa5の示すように状態表示レジス
タ51の値を00に更新する。予約済み命令保持状態表示レ
ジスタ51の値が01の時に、予約指示信号l13を受け取っ
て実行中命令終了通知信号l45を受け取らなかった場合
(即ちIかつ)は、保持すべき実行開始予約済み命令
が2つになったので、アークa6の示すように状態表示レ
ジスタ51の値を10に更新する。 予約済み命令保持状態表示レジスタ51の値が10で、実
行開始を予約されている命令が2つあって各々の命令が
命令レジスタ26及び実行命令レジスタ49に保持されてい
る状態の時に、予約指示信号l13も実行中命令終了通知
信号l45も受け取らなかった場合(即ちかつ)は、
状態表示レジスタ51の値を更新する必要はないので、ア
ークa7の示すように状態表示レジスタ51の値は10のまま
とする。予約済み命令保持状態表示レジスタ51の値が10
の時に、予約指示信号l13を受取らず実行中命令終了通
知信号l45を受けとった場合(即ちかつE)は、命令
レジスタ26の内容が直ちに実行待ちレジスタ49の内容に
置き換えられて実行待ちレジスタ49には何も保持されな
いはずであるので、アークa8の示すように状態表示レジ
スタ51の値を01に更新する。予約済み命令保持状態表示
レジスタ51の値が10の時に、予約指示信号l13を受け取
った場合(即ちI)は、マシンチェック信号を送出して
状態表示レジスタ51の値を11に更新する。 第3図中の実行開始制御機構52は、予約指示信号l13,
実行中命令終了通知信号l45及び、信号線l93を通じて得
たその時の予約済み命令保持状態表示レジスタ51の値を
受け取って、命令レジスタ26へのセット信号l91,実行待
ちレジスタ49へのセット信号l89,セレクタ50の切り替え
信号l90を送出する。第5図は、命令レジスタへのセッ
ト信号l91,実行待ちレジスタ49へのセット信号l89,セレ
クタ50の切り替え信号l90に設定すべき値を、受け取っ
た信号l13,l45,l93の値に応じて示した表である。第3
図において、レジスタ26,49は夫々信号線l91,l89が1の
時、信号線l72,l14の値を保持するものとし、セレクタ5
0は、信号線l90の値が0の信号線l14の値を、信号線l90
の値が1の時信号線l88の値を選択して信号線l72に送出
するものとする。以下第5図に従って信号を送出した時
の第3図の動作を説明する。 状態表示レジスタ51の値が00で実行開始を予約されて
いる命令が全くない状態の時に、予約指示信号l13を受
取り実行中命令終了通知信号l45を受け取らなかった場
合は、セレクタ50の切り替え信号l90の値を0にして命
令レジスタ26へのセット信号l91を1にすれば、信号線l
14の内容を命令レジスタ26にセットすることができる。 状態表示レジスタ51の値が01で実行開始を予約されて
いる命令が命令レジスタ26にのみ保持されている状態の
時に、予約指示信号l13も実行中命令終了通知信号l45も
受け取った場合は、セレクタ50の切り替え信号l90の値
を1にして命令レジスタ26及び実行待ち命令レジスタ49
へのセット信号l91を1にすれば、実行待ち命令レジス
タの内容を命令レジスタ26にセットするとともに、信号
線l14の内容を実行待ち命令レジスタ49にセットするこ
とができる。 状態表示レジスタ51の値が01の時に、予約指示信号l1
3を受取り実行中命令終了通知信号l45を受け取らなかっ
た場合は、命令レジスタ26へのセット信号l91を0にし
て実行待ち命令レジスタ49へのセット信号l89を1にす
れば、信号線l14の内容を実行待ち命令レジスタ49にの
みセットすることができる。 状態表示レジスタ51の値が10で実行開始を予約されて
いる命令が命令レジスタ26及び実行命令レジスタ49に保
持されている状態の時に、予約指示信号l13を受取らず
実行中命令終了通知信号l45を受けとった場合は、セレ
クタ50の切り替え信号l90の値を1にして命令レジスタ2
6へのセット信号l91を1にすれば、実行待ち命令レジス
タの内容を命令レジスタ26にセットすることがきる。 上記以外の場合には、命令レジスタ26及び実行命令レ
ジスタ49に値をセットする必要がないので命令レジスタ
26へのセット信号l91、実行待ちレジスタ49へのセット
信号l89、セレクタ50の切り替え信号l90に全て0を設定
すればよい。 上記のように信号に値を設定することにより、実行開
始制御機構52は、現在実行中の命令がない時に信号線l1
3から命令の実行開始予約指示を受けた場合は、直ちに
信号線l14上の実行開始予約命令を信号線l72に送出して
命令レジスタ26にセットし、現在実行中の命令がある時
に線号線l13から命令の実行開始予約指示を受けた場合
は、信号線l14上の実行開始予約命令を実行待ち命令レ
ジスタ49にセットして、現在実行中の命令の実行終了の
通知を待って実行待ち命令レジスタ49の内容を命令レジ
スタ26にセットするように制御することができる。 命令発行制御 第2図において、命令の発行制御は、レジスタ使用可
否判定ユニット7及びリソース使用可否判定ユニット8
の判定結果に従って命令発行ユニット9が行う。リソー
スの使用可否の判定は、解読した命令のリソース使用要
求と各リソースの使用予約状態を比較して行う。以下そ
の判定方法及び命令発行制御を説明する。なお、レジス
タ使用可否判定の方法は、特公昭61−52512に詳しいの
で、ここでは述べない。 第6図はリソース予約状態保持レジスタ6の構成と、
該レジスタを更新する信号線とを示した図である。リソ
ース予約状態保持レジスタ6は、メモリリクエスタ0予
約状態保持部6−0,メモリリクエスタ1予約状態保持部
6−1,加算器予約状態保持部6−2,乗算器予約状態保持
部6−3の4つからなる。信号線l11は命令発行ユニッ
ト9から送出されるレジスタ使用状態保持レジスタ4及
びリソース予約状態保持レジスタ6の更新信号で、その
うちの4ビットl11−0,l11−1,l11−2,l11−3がリソー
ス予約状態保持レジスタ6の更新に使用される。l11−
0はメモリリクエスタ0に対し実行可能命令の予約指示
がなされたことを示す信号であり、l11−1はメモリリ
クエスタ1に対し、l11−2は加算器に対し、l11−3は
乗算器に対し夫々実行可能命令の予約指示がなされたこ
とを示す信号である。 信号線l18,l28,l45,l53は夫々メモリリクエスタ0,メ
モリリクエスタ1,加算器,乗算器から送出される命令実
行終了通知である。各リソースの予約状態保持部6−0,
6−1,6−2,6−3は各々2ビットからなり、その値の意
味する各リソースの実行開開予約済み命令保持状態は、
第3図の予約済み命令保持状態表示レジスタ51の値の意
味するものと同じである。また、状態保持部6−0,6−
1,6−2,6−3の各値を、リソース予約状態保持レジスタ
6の更新制御機構(図示せず)は、第4図の状態遷移図
に従って更新する。但し状態保持部6−0の更新におい
ては、第4図のIとは信号線l11−0の値が1であるこ
とを表わし、とは信号線l11−0の値が0であること
を、Eとは信号線l18の値が1であることを、とは信
号線l18の値が0であることを表わしている。また、状
態保持部6−1の更新においては、第4図のIとは信号
線l11−1の値が1であることを、とは信号線l11−1
の値が0であることを、Eとは信号線l28の値が1であ
ることを、とは信号線l28の値が0であることを表わ
している。さらに、状態保持部6−2の更新において
は、第4図のIとは信号線l11−2の値が1であること
を、とは信号線l11−2の値が0であることを、Eと
は信号線l45の値が1であることを、とは信号線l45の
値が0であることを表わしている。そして、状態保持部
6−3の更新においては、第4図のIとは信号線l11−
3の値が1であることを、とは信号線l11−3の値が
0であることを、Eとは信号線l53の値が1であること
を、とは信号線l53の値が0であることを表わしてい
る。 上記のように各状態保持部6−0,6−1,6−2,6−3の
値を更新することにより、各状態保持部6−0,6−1,6−
2,6−3は夫々各リソース対応の予約済命令保持状態表
示レジスタと全く同じ情報をもつことになる。 上記各状態保持部6−0,6−1,6−2,6−3の情報を使
用して、リソース使用可否判定ユニット8は、毎クロッ
クリソースの使用可否の判定を行い、また命令発行ユニ
ット9は、命令を実行させるべきリソースに対し、レジ
スタとリソースの使用が可能になると直ちに命令実行開
始の予約指示を行う。 以下、それらの動作を説明する。 第3図中のリソース使用可否判定ユニット8は、上記
のように値が更新されるリソース予約状態保持レジスタ
6とリソース使用要求保持レジスタ5とに保持されてい
る情報を夫々信号線l8,l7を通じて得、解読した命令で
使用するリソースに対しさらに命令実行開始予約を行な
ってよいか否かを判定し、その結果を信号線l10に送出
する。以下、その制御方法を説明する。 第7図は、上記判定を行なうことのできる回路図であ
る。第7図中、6はリソース予約状態保持レジスタであ
り、5はリソース使用要求保持レジスタである。状態保
持レジスタ6の構成は既に説明したとおりである。要求
保持レジスタ5は、各々1ビットのメモリリクエスタ0/
1使用要求保持部5−0,メモリリクエスタ1使用要求保
持部5−1,加算器使用要求保持部5−2,乗算器使用要求
保持部5−3から構成されている。本実施例では、主記
憶読み出し命令を実行できるリソースはメモリリクエス
タ0(10)及びメモリリクエスタ1(11)であり、主記
憶書き込み命令を実行できるリソースはメモリリクエス
タ1(11)のみであり、加算系の命令を実行できるリソ
ースは加算器12のみ、乗算系の命令を実行できるリソー
スは乗算器13のみである。そのため、命令解読ユニット
13は、解読した命令が主記憶読み出し命令ならばメモリ
リクエスタ0/1使用要求保持部5−0に値1を設定し、
主記憶書き込み命令ならばメモリリクエスタ1使用要求
保持部5−1に値1を設定し、加算系の命令ならば加算
器使用要求保持部5−2に値1を設定し、乗算系の命令
ならば乗算器使用要求保持部5−3に値1を設定する。
信号線l10はリソース使用可否判定結果を送出する信号
線である。 主記憶書き込み命令,加算系命令、若しくは乗算系命
令を実行するために、メモリリクエスタ1(11),加算
器12、若しくは乗算器13の使用可否判定を行なうために
は、各リソース予約保持部6−1,6−2,6−3のビット0
の値と、各リソース使用要求保持部5−1,5−2,5−3の
値とを、夫々信号線l8−1,l8−2,l8−3と信号線l7−1,
l7−2,l7−3とを通じてNANDゲートg3,g4,g5とに入力す
ればよい。何故ならば、各リソース予約保持部6−1,6
−2,6−3のビット0の値が0の時は各リソースは実行
開始予約済み命令を0若しくは1こ保持しているのでさ
らに実行可能命令を予約可能である。予約保持部6−1,
6−2,6−3のビット0の値が1の時は各リソースは実行
開始予約済み命令を2こ保持しているのでさらに実行可
能命令の予約はできない。一方、要求保持部5−1,5−
2,5−3は要求がある時のみ値が1になる。よって予約
保持部6−1,6−2,6−3のビット0の値と要求保持部5
−1,5−2,5−3の値のNANDをとると、信号線l96,l97,l9
8には、対応するリソースの使用要求があってかつ該リ
ソースに実行可能命令の予約ができない時のみ0が、実
行可能命令の予約ができる時もしくは予約要求がない時
は1が出力される。 主記憶読み出し命令を実行するためにリソースの使用
可否判定を行なうためには、メモリリクエスタ0予約保
持部6−1,メモリリクエスタ1予約保持部6−2のビッ
ト0の値を信号線l8−0,l8−1を通じてANDゲートg1に
入力し、その結果を信号線l94に出力し、信号線l94の値
と信号線l7−0を介して得たメモリリクエスタ0/1使用
要求保持部5−0の値とのNANDをゲートg2でとればよ
い。何故なら、メモリリクエスタ0予約保持部6−1,メ
モリリクエスタ予約保持部6−2のビット0の値のAND
は、メモリリクエスタ0及びメモリリクエスタ1が共に
実行開始予約済み命令を2こ保持していてさらに実行可
能命令の予約ができない時のみ1になるからである。よ
って信号線l94の値と要求保持部5−0の値のNANDをと
ると、信号線l95には、メモリリクエスタ0/1の使用要求
があってかつ該リソースに実行可能命令の予約ができな
い時のみ0が、実行可能命令の予約ができる時もしくは
予約要求がない時は1が出力される。よって信号線l95,
l96,l97,l98のANDをゲートg6でとれば、信号線l10には
あるリソースに実行可能命令の予約ができない時は0
が、実行可能命令の予約ができる時は1が出力される。 第2図中の命令発行ユニット9はレジスタ使用可否判
定結果と、上記のようにして得たリソース使用可否判定
結果、及び解読された命令とを夫々信号線l9,l10,l2を
通じて得、該レジスタ使用可否判定結果と該リソース使
用可否判定結果とが共に肯定的だった場合に、該解読さ
れた命令の実行開始の予約を行なうべきリソースを選択
し、ベクトルレジスタユニット14内にある、該リソース
に対応する命令実行開始制御ユニットに対し命令実行開
始の予約信号を信号線l13を通じて送出する。ここで、
リソースの選択を行なわなければならないのは、解読さ
れた命令が主記憶読み出し命令であった場合である。解
読された命令が主記憶読出し命令以外の命令であった場
合は、該命令を実行できるリソースは1つしかないの
で、リソースの選択を行う必要はない。解読された命令
が主記憶読み出し命令であり、メモリリクエスタ0及び
メモリリクエスタ1の保持する実行開始予約済み命令数
が同数でない場合は、上記命令数の少ない方のメモリリ
クエスタに、上記命令数が同数の場合は、主記憶書き込
み命令実行機能を持たないメモリリクエスタ0に予約を
行なう。以下、その制御方法を説明する。 第8図は、上記制御を行なうことのできる回路図であ
る。信号線l99上には、リソース予約状態保持レジスタ
6の内容が送出されている。信号線l2は、命令解読結果
であり、予約信号送出にはそのうちのメモリリクエスタ
0/1使用要求信号l2−0,メモリリクエスタ1使用要求信
号l2−1,加算器使用要求信号l2−2,乗算器使用要求信号
l2−3を使用する。メモリリクエスタ0/1使用要求信号l
2−0の値は、命令を解読した結果が主記憶読み出し命
令ならば1になっている。メモリリクエスタ1使用要求
信号l2−1の値は、命令を解読した結果が主記憶書き込
み命令ならば1になっている。加算器使用要求信号l2−
2の値は、命令を解読した結果が加算系の演算命令なら
ば1になっている。乗算器使用要求信号l2−3の値は、
命令を解読した結果が乗算系の演算命令ならば1になっ
ている。信号線l9はレジスタ使用可否判定結果であり、
信号線l10はリソース使用可否判定結果であり、信号線l
105にはゲートg10を介して信号線l9及びl10の値のANDが
送出されているので、該信号l105の値は上記判定結果が
共に肯定的であった場合のみ1となる。信号線l13−0,l
13−1,l13−2,l13−3は夫々メモリリクエスタ0,メモリ
リクエスタ1,加算器,乗算器に対応する命令実行開始制
御ユニットに対する命令実行開始の予約信号であり、上
記4ビットの信号線l13−0〜l3−3が信号線l13とし
て、ベクトルレジスタユニット14に送出される。 メモリリクエスタ選択機構53は、命令解読結果l2の内
容に関係なく、常に、信号線l99を通じて得たリソース
予約状態保持レジスタ6の内容に応じてメモリリクエス
タ0に予約指示を送出するか、メモリリクエスタ1に予
約指示を送出するかを選択する。メモリリクエスタ選択
機構53は、予約指示を送出すべきリソースとしてメモリ
リクエスタ0を選択した場合メモリリクエスタ0選択信
号l100に値1を、メモリリクエスタ1を選択した場合メ
モリリクエスタ1選択信号l101に値1を送出する。 第9図は、メモリリクエスタ選択機構53が、メモリリ
クエスタ0選択信号l100,メモリリクエスタ1選択信号l
101のどちらに1を設定すべきかを、信号線l99を通じて
受け取ったリソース予約状態保持レジスタ6の内容に応
じて示した図である。リソース予約状態保持レジスタ6
中のメモリリクエスタ0予約保持部6−0の値が00で、
メモリリクエスタ0が1つも実行開始予約済み命令を保
持していない状態の場合は、メモリリクエスタ1予約保
持部6−1の値に拘らず、メモリリクエスタ0選択信号
l100の値1を設定する。メモリリクエスタ0予約保持部
6−0の値が01で、メモリリクエスタ0が1つだけ実行
開始予約済み命令を保持している状態の場合は、メモリ
リクエスタ1予約保持部6−1の値が00でメモリリクエ
スタ0が1つも実行開始予約済み命令を保持していない
状態の時のみメモリリクエスタ1選択信号l101に値1
を、それ以外の時はメモリリクエスタ0選択信号l100に
値1を設定する。メモリリクエスタ0予約保持部6−0
の値が10で、メモリリクエスタ0が2つ実行開始予約済
み命令を保持している状態の場合は、メモリリクエスタ
1予約保持部6−0の値もまた10の場合を除いてメモリ
リクエスタ1選択信号l101に値1を設定する。 第8図において、上記のように設定された信号線l10
0,l101の値と、メモリリクエスタ0/1使用要求信号l2−
0の値とをゲートg7,g8を介してANDをとり、結果を信号
線l102,l103に送出する。信号線l102は、解読された命
令が主記憶読み出し命令であり、かつメモリリクエスタ
0が選択された時のみ値が1になり、信号線l103は、解
読された命令が主記憶読み出し命令であり、かつメモリ
リクエスタ1が選択された時のみ値が1になっている。
メモリリクエスタ0に対応する命令実行開始制御ユニッ
トに対する命令実行開始の予約信号l13−0には、レジ
スタ及びリソースの双方が使用可能の時のみ値が1にな
る信号線l105と信号線l102とのANDをゲートg11を介して
とった値を送出すればよい。 解読された命令が主記憶書き込み命令であった時に
は、メモリリクエスタ1使用要求信号l2−1の値が1に
なつているので、ゲートg9により信号線l103と信号線l2
−1とのORをとれば、信号線l104は解読された命令が主
記憶読み出し命令であってかつメモリリクエスタ1が選
択された時若しくは解読された命令が主記憶書き込み命
令であった時のみ、値が1になっている。よってメモリ
リクエスタ1に対応する命令実行開始制御ユニットに対
する命令実行開始の予約信号l13−1には、信号線l104
と信号線l105とのANDをゲートg12を介してとった値を送
出すればよい。 命令を解読した結果が加算命令若しくは乗算命令だっ
た場合は、夫々加算器使用要求信号l2−2,乗算器使用要
求信号l2−3の値が1になっているので、加算器,乗算
器に対応する命令実行開始制御ユニットに対する命令実
行開始の予約信号l13−2,l13−3に信号線l2−2,l2−3
の値と信号線l105の値を夫々ゲートg13,g14を介してAND
をとり、送出すればよい。 上記のようにリソース使用可否判定ユニット8及び命
令発行ユニット9を制御することにより、解読した命令
で使用するレジスタが使用可能になり、かつ使用するリ
ソースに対し命令実行の予約を行えるようになり、次
第、該リソースに対応する命令実行開始制御ユニット
に、該解読した命令の予約指示を行うことができる。 〔発明の効果〕 本発明によれば、各リソースで実行中の命令が終了す
ると直ちに実行可能な次の命令をリソース及び、ベクト
ルレジスタ制御ユニットに与えることが可能になり、そ
の結果、前の命令と次の命令とで扱うベクトルデータが
間断なく各リソースに投入できるようになるので、リソ
ースの使用効率が向上するという効果がある。
に実行するのに好適なデータ処理装置(以下これをベク
トルプロセッサと呼ぶ)に関する。 〔従来の技術〕 ベクトルプロセッサは、科学技術計算において頻繁に
現れる行列計算を高速に行うため、1クロック毎にベク
トルデータを投入できるパイプライン構成のメモリリク
エスタや演算器(以下これらをまとめてリソースと呼
ぶ)を複数有している。また、上記リソースから供給さ
れるデータの一時的な格納や上記リソースへのデータの
供給を高速に行うために1クロック毎にベクトルデータ
の読出しもしくは書込みを行える複数のベクトルレジス
タを有するベクトルプロセッサが多い。 上記のリソースの1つに、行う演算種類に対応したオ
ペコード等の情報をパイプラインのステージに同期して
移動させて演算の各ステージを制御することにより、複
数の異なる種類の演算を行う場合でも、オペコード等の
制御情報を間隔をあけずに与えれば、各々の演算で扱う
ベクトルデータを間隔をあけずに受付けることのできる
ものがある。(特開昭58−106636)一方上記リソースへ
間隔をあけずにデータを供給、もしくはデータを受信す
るために、ベクトルレジスタの制御ユニットでは、各命
令を実行するリソースと命令で読出し、もしくは書込み
を指定されたベクトルレジスタの間のデータ転送パス
を、該命令の解読結果が与えられれば直ちに切換えて、
データの読出し/書込み指示を行うようにしている。
(特公昭61−52512) 上記命令の解読結果は命令制御ユニットから与えられ
る。命令制御ユニットでは命令を解読し、該解読した命
令が実行開始可能であるか否かを判定し、実行開始可能
であった場合は直ちに、また実行開始不可能であった場
合は開始可能になるのを待って、該命令の解読結果を上
記リソース及びベクトルレジスタ制御ユニット送出す
る。ここで命令が実行開始可能であるとは、該命令を実
行すべきリソースが使用中でなく、かつ該命令で読出
し、若しくは書込みを指定されたベクトルレジスタが読
出し、若しくは書込みに使用可能であることをいう。 上記の制御方法は特公昭61−52512に詳しい。 〔発明が解決しようとする問題点〕 上記従来技術では、各リソースの使用終了を示す命令
実行終了通知は、具体的には、実行中の命令で扱う最後
のベクトルデータを該リソースに投入した時に送出され
る。そのため、実行中の命令で扱う最後のベクトルデー
タがリソースに投入されてから、命令実行終了通知が命
令制御ユニットに到達し、実行開始可否判定が行われ、
実行開始可能な次の命令がリソース及びベクトルレジス
タ制御ユニットに届き、その命令で扱う最初のベクトル
データがリソースに投入されるまでに時間を要してい
た。その結果、従来は、各リソースやベクトルレジスタ
制御ユニットが毎クロックベクトルデータを処理できる
ように構成されているにも拘らず、前の命令の最後のベ
クトルデータを処理してから次の命令の最初のベクトル
データを処理するまでに間隔があき、リソースなどの使
用効率が良くなかった。 本発明は、各リソースに前の命令で扱う最後のベクト
ルデータが投入されたら、全く間隔をあけずに該リソー
ス及びベクトルレジスタ制御ユニットに次の命令を与
え、リソースに間断なくベクトルデータを投入できる手
段を提供することを目的とする。 〔問題点を解決するための手段〕 上記目的を達成するために、本発明では、リソースや
ベクトルレジスタの制御を行う命令実行制御部内に、各
リソースで実行中の命令以外に、各リソースに対応して
該命令の実行が終了すれば、該リソースを使用して実行
を開始できる命令を保持することのできる命令保持手段
を設け、リソースで実行中の命令が終了したら、保持し
ている実行開始可能命令のうち1つを直ちにリソース及
びベクトルレジスタ制御ユニットに与えるように上記命
令保持手段を制御するようにした。また、命令制御ユニ
ットは、解読した命令で読出し若しくは書込みを指定さ
れているベクトルレジスタが読出し若しくは書込みに使
用可能であるか否かを調べ、また解読した命令で使用す
るリソースに対応する命令保持手段がさらに命令を保持
可能であるか否かを調べ、レジスタの使用及び実行開始
可能命令の保持の双方共可能であった時のみ、該命令を
実行開始可能であると判定し、リソース対応の命令保持
手段に解読した命令の保持を指示するようにした。 また、命令制御ユニットから見ると、該命令保持手段
に保持を指示した命令は全て各リソースで実行中である
ように見えるようにした。即ち命令制御ユニットは、命
令で読出し/書込みを指定されているベクトルレジスタ
を、該命令の保持を命令保持手段に指示した時点で読出
し/書込みに使用中になったとみなして、次の命令に関
するレジスタ使用可否の判定を行うようにした。 さらに、ある命令を実行可能なリソースが複数ある場
合、命令制御ユニットは、上記の各リソースに対応する
命令保持手段の保持する命令数が最も少ない命令保持手
段に対し、命令の保持を指示するようにした。また、第
1のリソースは第1と第2の種類の命令を実行可能だ
が、第2のリソースは第1の種類の命令は実行可能だ
が、第2の種類の命令を実行不可能な場合で、しかも第
1と第2のリソースに対応する命令保持手段の保持する
命令数が同数の時には、命令制御ユニットは、第2のリ
ソースに対し第1の命令の保持を指示するようにした。 命令制御ユニットが、上記リソース対応の実行開始可
能命令保持手段に対して命令を保持するよう指示すると
いうことは、リソース及びベクトルレジスタ制御ユニッ
トに対し該命令の実行を予約したことになるので、以
下、命令を保持するよう指示することを、命令の実行開
始の予約と呼ぶ。また、リソース対応の実行開始可能命
令保持手段を予約手段と呼び、該予約手段に保持されて
いる命令を実行開始予約済命令、と呼ぶ。 〔作用〕 上記のように、命令実行制御部内にリソース対応の実
行開始可能命令の予約手段を設けたことにより、現在実
行中の命令で扱う最後のベクトルデータがリソースに投
入されれば、直ちに次に実行すべき命令がリソース及び
ベクトルレジスタ制御ユニットに与えられる。その結
果、各リソースに、前の命令と次の命令で扱うベクトル
データがリソースのパイプラインの各ステージを全くあ
けずに投入され、リソースの使用効率があがる。また、
命令制御ユニットは、解読した命令で読出し若しくは書
込みを指定されているベクトルレジスタが読出し、若し
くは書込みに使用可能である時にのみ、該解読結果をリ
ソース対応の予約手段に予約しているので、ベクトルレ
ジスタ制御ユニットは、該解読結果を受取ると直ちにベ
クトルデータを指定されているベクトルレジスタから読
出したり書込んだりしても矛盾を生じない。 また、ある命令を実行可能なリソースが複数ある時
は、該命令の実行が極力早く開始されるよう、命令制御
ユニットは予約済命令保持数の最も少ない予約手段に予
約指示を行うようにしている。さらに、第1の命令の予
約指示を行おうとした時に、該第1の命令を実行可能な
第1と第2のリソースに対応する予約手段の保持する予
約済命令数が同数で、しかも該第1のリソースは該第2
のリソースには実行不可能である第2の種類の命令を実
行可能である時は、第2のリソースに対して予約指示を
行うようにしたことにより、その後、第2の命令の実行
開始の予約が可能であるか調べる際に、上記制御の行な
わない場合と較べて、予約が可能である機会が多くなる
ようにした。 〔実施例〕 以下、本発明を実施例を参照して詳細に説明する。 全体構成 第2図は、本発明の概略装置構成を示す図である。 第2図中、1は主記憶、2は命令解読ユニット、9は
命令実行開始の予約信号を発行する命令発行ユニット、
10,11,12,13は夫々メモリリクエスタ0,メモリリクエス
タ1,加算器,乗算器であり、14はベクトルレジスタユニ
ットである。ベクトルレジスタユニット14内には、夫々
上記各リソースに対応する実行開始可能命令予約手段及
び該予約手段を制御する命令実行開始制御ユニットがあ
るが、第2図には示していない。 命令解読ユニット2は、命令取り出しユニット(図示
せず)の制御により主記憶1から取り出されたベクトル
命令を信号線l1を通じて受取り、命令を、実行すべき演
算の種類を示すオペコード,ベクトル長,読出し或いは
書込みに使用するベクトルレジスタ番号、使用するリソ
ース番号等の命令の実行に必要な情報に解読して、その
情報を信号線l2を通じて命令発行ユニット9に送出する
と共に、命令の実行で使用するベクトルレジスタの番号
とリソースの番号とを夫々信号線l3,l4を通じてレジス
タ読み出し/書き込み要求保持レジスタ3とリソース使
用要求保持レジスタ5とにセットする。本実施例ではリ
ソースはメモリリクエスタ0(10),メモリリクエスタ
1(11)と,加算器12,乗算器13の4つであるとし、各
々のリソース番号を0から3までとする。またベクトル
レジスタは0から31までの番号のついた32本とする。 図中4はレジスタ使用状態保持レジスタであり、各ベ
クトルレジスタ対応にそのレジスタが読み出しに使用中
か否か書き込みに使用中か否かの状態を保持している。
図中6はリソース予約状態保持レジスタであり、各リソ
ースが、実行開始予約済み命令を幾つ保持しているかを
表示している(詳細後述)。 レジスタ使用可否判定ユニット7はレジスタ読み出し
/書き込み要求保持レジスタ3とレジスタ使用状態保持
レジスタ4とに保持されている情報を信号線l5,l6を通
じて得、解読した命令で読み出し若しくは書き込みに使
用するベクトルレジスタが使用可能であるか否かを毎ク
ロック判定し、判定結果を信号線l9を通じて命令発行ユ
ニット9に伝える。レジスタ使用可否の判定方法は特公
昭61−52512に詳しいのでここでは割愛する。 リソース使用可否判定ユニット8はリソース使用要求
保持レジスタ5とリソース予約状態保持レジスタ6とに
保持されている情報を信号線l7,l8を通じて得、解読し
た命令を実行すべきリソースに対しさらに命令実行開始
予約を行なってよいか否かを毎クロック判定し、判定結
果を信号線l10を通じて命令発行ユニット9に伝える
(詳細後述)。 命令発行ユニット9は上記レジスタ使用可否判定結果
とリソース使用可否判定結果とが共に肯定的だった場合
に、以下の動作を行なう。 即ち、ベクトルレジスタユニット14に対し、信号線l1
4を通じてオペコード,ベクトル長,使用ベクトルレジ
スタ番号、等の命令実行に必要な情報を送ると共に、ベ
クトルレジスタユニット14に対し、該ユニット14内にあ
るリソース対応の該命令実行開始制御ユニットに対する
命令実行開始の予約信号を信号線l13を通じて発行す
る。また、実行開始の予約を行なった命令で使用するベ
クトルレジスタやリソースに関するレジスタ使用状態保
持レジスタ4とリソース予約状態保持レジスタ6の内容
を信号線l11を通じて更新する。さらに命令解読ユニッ
ト2に対し、信号線l12を通じて、該命令の実行開始予
約が終了した旨通知する。命令解読ユニット2は、命令
の実行開始予約が終了した旨の通知を受けると、次のベ
クトル命令の解読結果を信号線l2,l3,l4上に送出する。 命令発行ユニット9は、レジスタ使用可否判定結果と
リソース使用可否判定結果の少なくともいずれか一方が
否定的だった場合には信号線l11,l12,l13,l14に何も送
出しない。そのため命令解読ユニット2は次の命令の解
読結果を信号線l2,l3,l4上に送り出さず、レジスタ読み
出し/書き込み要求保持レジスタ3とリソース使用要求
保持レジスタ5の内容は変化しない。一方、レジスタ使
用状態保持レジスタ4とリソース予約状態保持レジスタ
6の内容は信号線l58,l59,l18,l28,l45,l53により、命
令の実行が終了すると更新される。レジスタ使用可否判
定ユニット7及びリソース使用可否判定ユニット8は毎
クロックレジスタ及びリソースの使用可否の判定を行な
っており、上記使用可否の判定結果が双方とも肯定的に
なった時に、命令発行ユニット9は命令実行開始予約を
行なう。 オペコード,ベクトル長,使用ベクトルレジスタ番
号、等の命令実行に必要な情報は信号線l14を通じてベ
クトルレジスタユニット14に伝えられる。ベクトルレジ
スタユニット14は、各リソース10,11,12,13に対して、
オペコード,ベクトル長などの情報を夫々信号線l15,l2
5,l41,l49を通じて送出し、各リソース10,11,12,13は該
信号線で示された命令を実行する。 以下各々のリソースの動作概略を説明する。 メモリリクエスタ0(10)は、信号線l15に示される
主記憶読み出し命令を実行する。主記憶読み出し命令
は、主記憶上のベクトルデータを読出し、ベクトルレジ
スタに格納する命令である。また、メモリリクエスタ0
(10)が信号線l15から受取る内容は、実行すべき命令
の種類を示すオペコード,該命令でアドレス生成に使用
するアドレスレジスタ(図示せず)の番号及びベクトル
長である。 メモリリクエスタ0(10)は、命令で指定されたアド
レスレジスタの情報を使用して、読み出しベクトルデー
タの主記憶上のアドレスを順次生成し、信号線l15で示
されたベクトル長分の該アドレス及び該アドレスが有効
であることを示すアドレスの有効信号を信号線l16,l17
を通じて主記憶制御ユニット(図示せず)から主記憶に
送出する。主記憶からのデータの読出しは、主記憶のア
ドレス競合及び読出しパス競合などにより、間欠的にな
る場合があるが、データの移動の際には常に該データの
有効性を示すデータ有効信号が送出され、命令の実行制
御は該データ有効信号に従って行われる。主記憶から読
み出されたベクトルデータはデータ有効信号と共に信号
l19,l20を通じてメモリリクエスタ0(10)に送られ、
ベクトルレジスタユニット14に、メモリリクエスタ0
(10)は該信号を信号線l22,l23を通じて送る。ベクト
ルレジスタユニット14は、信号線l22を介して受け取っ
たベクトルデータを、該データの有効信号が1の時の
み、メモリリクエスタ0(10)で実行中の命令に指定さ
れたベクトルレジスタに書き込む。メモリリクエスタ0
(10)は信号線l15で示されたベクトル命令で扱う最後
のベクトルデータのアドレス有効信号l17を主記憶に送
出する時に同時にアドレス最終信号l18も送出する。信
号線l15で示されたベクトル命令で扱う最後のベクトル
データが主記憶から読み出された時、該ベクトルデータ
の有効信号l20と同時にデータ最終信号l21も送出され、
さらにベクトルレジスタユニット14にも、信号線l23と
同時に、信号線l24を通じて送られる。 アドレス最終信号l18はベクトルレジスタユニット14
にも伝えられ、ベクトルレジスタユニット14は信号線l1
8を受取ると、信号線l15の内容をメモリリクエスタ0
(10)で次に実行すべき命令に直ちに切換える。 メモリリクエスタ0(10)は信号線l15に示されるオ
ペコード等の情報を毎クロック受取り、該情報をメモリ
リクエスタのパイプラインステージに同期させて移動さ
せて各ステージを制御する構成になっている。そのた
め、信号線l15上にある有効な命令が別の有効な命令に
間隔をあけずに切換わっても、メモリリクエスタ0(1
0)は夫々の命令で扱うデータのアドレスを間隔をあけ
ずに生成して、主記憶への送出を開始する。 さらに、アドレス最終信号l18は、メモリリクエスタ
0(10)でベクトル命令の実行が終了したことを通知す
る信号としてリソース予約状態保持レジスタ6にも送出
され、リソース予約状態保持レジスタ6の内容を更新す
る。 メモリリクエスタ1(11)は、信号線l25に示される
主記憶読み出し命令若しくは主記憶書き込み命令を実行
する。主記憶書込み命令は、ベクトルレジスタ上のベク
トルデータを読出し、主記憶に書込む命令である。ま
た、メモリリクエスタ1(11)が信号線l25から受け取
る内容は、実行する命令の種類を示すオペコード、使用
するアドレスレジスタの番号及びベクトル長である。 主記憶読み出し命令を実行する場合、メモリリクエス
タ1(11)は、命令で指定されたアドレスレジスタの情
報を使用して読み出しベクトルデータの主記憶アドレス
を順次生成し、該アドレス及び該アドレスの有効信号及
び該アドレスの最終信号を信号線l26,l27,l28を通じて
主記憶に送出する。主記憶から読み出されたベクトルデ
ータはデータ有効信号及びデータ最終信号と共に信号線
l29,l30,l31を通じてメモリリクエスタ1(11)に送ら
れ、ベクトルレジスタユニット14に、メモリリクエスタ
1(11)は該信号を信号線l35,l36,l37を通じて送る。
ベクトルレジスタユニット14は、信号線l35を介して受
け取ったベクトルデータを、該データの有効信号が1の
時のみ、メモリリクエスタ1(11)で実行中の命令に指
定されたベクトルレジスタに書き込む。 主記憶書き込み命令を実行する場合、メモリリクエス
タ1(11)は、ベクトルレジスタユニット14から信号線
l38,l39,l40を介して書き込みベクトルデータ,データ
有効信号,データ最終信号を受取り、該データの有効信
号が1の時のみ該データを書き込むべき主記憶上のアド
レスをアドレスレジスタの情報を使って順次生成し、該
アドレス及び該アドレスの有効信号,該アドレスのアド
レス最終信号を信号線l32,l33,l34を介し、主記憶に送
出する。 メモリリクエスタ1(11)もメモリリクエスタ0(1
0)と同様信号線l25上の有効な命令が別の有効な命令に
直ちに切換わっても、夫々の命令で扱うデータのアドレ
スを間隔をあけずに生成することができるように構成さ
れている。 アドレス最終信号l28はベクトルレジスタ14にも伝え
られ、ベクトルレジスタユニット14は信号線l25の内容
をメモリリクエスタ1(11)で次に実行すべき命令に直
ちに切換えると共に、該次の命令が主記憶書込み命令で
あった場合は、メモリリクエスタ1(11)へ信号線l38,
l39,l40を通じて囲みベクトルデータの送出を開始す
る。そして、メモリリクエスタ1(11)は直ちに次のベ
クトル命令で扱うベクトルデータのアドレスの主記憶へ
の送出を直ちに開始する。 さらに、アドレス最終信号l28は、メモリリクエスタ
1(11)でベクトル命令の実行が終了したことを通知す
る信号としてリソース予約状態保持レジスタ6にも送出
され、リソース予約状態保持レジスタ6の内容を更新す
る。 加算器12は信号線l41に示される加算系の演算命令を
実行する。演算命令は2本のベクトルレジスタから読み
出したベクトルデータ同士の演算を行ない、1本のベク
トルレジスタに格納する命令である。加算器12が信号線
l41から受け取る内容は、実行すべき演算の種類を示す
オペコードである。 加算器12は、ベクトルレジスタユニット14から信号線
l42,l43を介して送られた2このベクトルデータ同士
を、該データの有効信号l44が1の時のみ信号線l41で示
されるオペコードに従って演算し、演算結果を信号線l4
6に、該演算結果の有効性を示すデータ有効信号をl47に
送出して、ベクトルレジスタユニット14に送出する。ベ
クトルレジスタユニット14は、加算器12で実行する命令
で扱う最後のベクトルデータの有効信号l44を送出する
時同時に、データ最終信号l45を送出する。加算器12
は、該データ最終信号l45を受け取ると、上記最後のベ
クトルデータ同士の演算結果の有効信号l47と同時にデ
ータ最終信号l48を送出する。 ベクトルレジスタユニット14は、データ最終信号l45
を送出すると直ちに信号線l41の内容を加算器で次に実
行すべき命令に切換えると同時に、該命令で扱う読出し
データ及び該データの有効信号の信号線l42,l43,l44へ
の送出を開始する。 加算器12も、メモリリクエスタ0(10)と同様信号線
l41に示される命令のオペコード等の情報を毎クロック
受取り、該情報を加算器のパイプラインステージに同期
して移動させて各ステージを制御する構成になってい
る。そのため、信号線l41上にある有効な命令が別の演
算を指示する有効な命令に間隔をあけずに切換わって
も、夫々の命令で扱うベクトルデータを間隔をあけずに
信号線l42,l43から取って、異なる演算を加算器のパイ
プラインの各ステージを全くあけずに実行する。 さらに、データ最終信号l45は、加算器12でベクトル
命令の実行が終了したことを通知する信号としてリソー
ス予約状態保持レジスタ6にも送出され、リソース予約
状態保持レジスタ6の内容を更新する。 乗算器13は信号線49に示される乗算系の演算命令を実
行する。乗算器13は実行する演算命令が加算器12と異な
るが、その動作概略は既に述べた加算器12の動作と同様
である。 即ち、ベクトルレジスタユニット14から信号線l50,l5
1,l52,l53を介して送られる2つのベクトルデータ、該
データの有効信号、及び該データの最終信号を受け取る
と、2つのベクトルデータ同士に対し信号線l49に示さ
れた演算を施し、該演算結果,該演算結果の有効信号,
該演算結果の最終信号を信号線l54,l55,l56に送出す
る。また、ベクトルレジスタユニット14から送られる読
出しデータの最終信号l53は、命令の実行の終了に通知
としてレジスタ予約状態表示レジスタ6にも送られる。 上記のように各リソースは、ベクトルレジスタユニッ
ト14から実行すべき命令及び読出しベクトルデータを間
隔をあけずに受け取れば、パイプラインの各ステージを
全くあけずに処理を行うことができる。 ベクトルレジスタユニット 以下ベクトルレジスタユニット14の動作を第1図に従
って説明する。 第1図はベクトルレジスタユニット14の内部構成を示
した図である。 図中37,38,39は夫々ベクトルデータを保持するベクト
ルレジスタである。ベクトルレジスタは32本あるが、図
では省略して3本しか示していない。図中33,34,35,36
は、夫々メモリリクエスタ0(10),メモリリクエスタ
1(11),加算器12,乗算器13から信号線l22,l35,l46,l
54を介して送らてくる書込みデータを、各ベクトルレジ
スタへの書込みパスl80に振り分けるリソース対応のデ
ィストリビュータである。また、40,41,42は、各ベクト
ルレジスタの読出パスl81上の読出データを選択して夫
々メモリリクエスタ1(11),加算器12,乗算器13への
データ信号線l38,l42,l43,l50,l51へ送出するリソース
対応のセレクタである。 夫々のベクトルレジスタ37,38,39に対応して、該ベク
トルレジスタの読出し/書込みを制御するベクトルレジ
スタ制御回路18,19,20がある。 また29,30,31,32は夫々メモリリクエスタ0(10),
メモリリクエスタ1(11),加算器12,乗算器13に対す
る読出データ有効信号及び最終信号の送出等を行うリソ
ース対応のオペランド制御回路である。 図中22,24,26,28は夫々メモリリクエスタ0(10),
メモリリクエスタ1(11),加算器12,乗算器13で実行
中の命令を保持する命令レジスタであり、夫々実行開始
可能命令予約手段を内部にもつ上記4つのリソース対応
の命令実行開始制御ユニット21,23,25,27によって値を
設定される。該命令レジスタ22,24,26,28は命令で示さ
れるオペコード,ベクトル長,使用レジスタ番号等の情
報を保持している。また44,46,48は各々メモリリクエス
タ1(11),加算器12,乗算器13で実行中の命令で示さ
れる読出レジスタ番号を保持する命令レジスタであり、
夫々実行開始可能命令予約手段を内部に持つ上記3つの
リソース対応の命令実行開始制御ユニット43,45,47によ
って値を設定される。 命令レジスタ22,24,26,28の情報は夫々対応するリソ
ース及びオペランド制御回路に送られ、リソースでの命
令実行制御及びオペランド制御,書込データパスの切換
え制御に使われる。命令レジスタ44,46,48の情報は夫々
対応するセレクタに送られ、読出データパスの切換え制
御に使われる。 以下、動作の詳細を説明する。 ベクトルレジスタユニット14には、命令発行ユニット
9から、信号線l14を通じて実行すべき命令のオペコー
ド,ベクトル長,使用ベクトルレジスタ番号等の情報
が、信号線l13を通じて該命令の予約信号が送られてく
る。信号線l13は各リソース番号0から3に対応した4
ビットから成っていて、該命令を実行すべきリソースの
番号に対応するビットにのみ1が送られてくる。各命令
実行開始制御ユニット21,23,25,27は、信号線l13の各ビ
ットのうち、該命令実行開始制御ユニットが対応するリ
ソース番号に対応するビットの値が1の時のみ信号線l1
4の内容を取り込む。また、各命令実行開始制御ユニッ
ト43,45,47は、信号線l13の各ビットのうち、該命令実
行開始制御ユニットが対応するリソース番号に対応する
ビットの値が1の時のみ信号線l14の内容のうち読出レ
ジスタ番号情報のみを取り込む。 各命令実行開始制御ユニット21,23,25,27,43,45,47は
夫々独立に動作して、該命令実行開始制御ユニットに対
応するリソースで実行中の命令がなければ直ちに、実行
中の命令があれば該命令の実行終了通知l18,l28,l45,l5
3,l28,l45,l53を待って、取り込んだ信号線l14の内容
を、夫々信号線l68,l70,l72,l74,l82,l84,l86を通じ
て、対応する命令レジスタ22,24,26,28,44,46,48に設定
する。ここで、同一リソースに対応する命令レジスタ、
24と44,26と46,28と48には夫々同じタイミングで値が設
定される。(詳細後述) 命令レジスタ22,24,26,28の内容のうち、メモリリク
エスタ0(10)及びメモリリクエスタ1(11)にはオペ
コード及びベクトル長が、加算器12及び乗算器13にはオ
ペコードが、夫々信号線l15,l25,l41,l49を通じて直ち
に送られ、以降該命令の実行が終了するまで送り続けら
れる。 また、命令レジスタ22,24,26,28の内容は直ちに対応
するオペランド制御回路29,30,31,32に夫々信号線l69,l
71,l73,l75を通じて送られ、該信号を受取ったオペラン
ド制御回路は夫々独立に該信号に示される使用レジスタ
番号に対応するベクトルレジスタ制御回路18,19,20に読
出し若しくは書込みの開始指示を与える。読出し/書込
みの開始指示には各オペランド制御回路29,30,31,32か
らリソース対応に信号線l65−1に送出されるが、S−
G変換回路16によりレジスタ対応の読出し/書込み開始
指示に変換され、信号線l66を通じて各ベクトルレジス
タ制御回路18,19,20に与えられる。 また、命令レジスタ44,46,48に読出しレジスタ番号が
設定されると、読出パスのセレクタ40,41,42は信号線l8
3,l84,l85を経て該読出しレジスタ番号情報を得、直ち
に読出しパスの接続を切り換える。一方書込パスのディ
ストルビュータ33,34,35,36は、夫々信号線l76,l77,l7
8,l79の指示により切り換えられるが、該切換えの指示
は、夫々対応するオペランド制御回路により、対応する
命令レジスタに値が設定されてから一定の間隔をあけて
送出される。ここで一定の間隔とは各々のリソースに固
有の値であり、データが読出されてから演算を施され再
ひ書込まれるまでの時間(これをトラベルタイムと呼
ぶ)に等しい。さらに、各オペランド制御回路29,30,3
1,32は、信号線l65−2を通じて各リソースがどのレジ
スタに書込みを行うかの情報をトラベルタイム分の間隔
をあせてS−G変換回路15に与える。 さて、各命令レジスタに設定された命令がベクトルレ
ジスタの読出しを行う命令、即ち主記憶書込み命令若し
くは演算命令だった場合、該命令を実行するリソースで
あるメモリリクエスタ1(11),加算器12,乗算器13に
対応するオペランド制御回路30,31,32は読出しデータの
有効信号l39,l44,l52を命令レジスタ24,26,28で示され
たベクトル長分順次生成して、対応するリソースに送出
する。一方読出し開始指示をうけたベクトルレジスタ制
御回路は、対応するベクトルレジスタから順次データを
読出し、読出しパスl80に送出する。有効信号の生成制
御及びデータ読出し制御については特開昭61−52512に
詳しいのでここでは述べない。読出しパスl80上に読出
されたデータはセレクタ40,41,42により各リソースに信
号線l38,l42,l43,l50,l51を通じて順次送出される。こ
こで読出パスの切換えは、命令レジスタ44,46,48に値が
設定されると直ちに行われているので、読出されたデー
タは然るべきリソースに対して送出される。 メモリリクエスタ0(10),メモリリクエスタ1(1
1)で主記憶読出し命令を実行している場合、或いは加
算器12,乗算器で演算命令を実行している場合、各リソ
ースから信号線l22,l35,l46,l54を通じて書込みデータ
が、信号線l23,l36,l47,l55を通じて該データの有効信
号が順次送られてくる。書込みデータの有効信号l23,l3
6,l47,l55はリソース対応に送られてくるが、S−G変
換回路15により各ベクトルレジスタに対するデータ有効
信号l59,l61,l63に変換され、各ベクトルレジスタ制御
回路18,19,20に与えられる。ここでリソース番号とレジ
スタ番号の変換に必要な情報は、命令レジスタ22,24,2
6,28に値が設定されてからトラベルタイム分の間隔をあ
けて信号線l65−2を通じてS−G変換回路15に与えら
れ、各リソースから最初の書込みデータ有効信号がl23,
l36,l47,l55を通じて届くタイミングにちょうど間に合
うようになっている。 一方、各リソースから送られてくる書込みデータl22,
l35,l46,l54は、ディストリビュータ33,34,35,36により
然るべきベクトルレジスタへの書込みパスl80に振分け
られる。ここで書込みパスの切換え指示信号l76,l77,l7
8,l79は、命令レジスタ22,24,26,28に値が設定されてか
らトラベルタイム分の間隔をあけて送出され、各リソー
スから最初の書込みデータが信号線l22,l35,l46,l54を
通じて届くタイミングにちょうど間に合うようになって
いる。 予め書込み開始指示をうけていた各ベクトルレジスタ
制御回路18,19,20は、書込みデータ有効信号l59,l61,l6
3を順次受取り、該有効信号の値が1のみ、対応するベ
クトルレジスタ7,38,39に信号線l80上の値を順次書込
む。 メモリリクエスタ1(11),加算器12,乗算器13に対
応するオペランド制御回路30,31,32は、対応する命令レ
ジスタ24,26,28で示される命令で扱う最後のベクトルデ
ータの有効信号l39,l44,l52を各リソースに送出する時
同時にデータの最終信号l40,l45,l53を各リソースに対
して送出する。該データ最終信号のうち加算器12,乗算
器13に対応する最終信号l45,l53は同時に加算器12,乗算
器13の命令実行終了通知としても使用され、夫々命令実
行開始制御ユニット25と45、及び27と47に与えられる。
メモリリクエスタ0(10),メモリリクエスタ1(11)
の命令実行終了通知は夫々対応するリソースから信号線
l18,l28を通じて得られ、夫々命令実行開始制御ユニッ
ト21、及び23と43に与えられる。 さらに各オペランド制御回路29,30,31,32は、データ
最終信号を送出する時同時にベクトルレジスタ制御回路
に対し読出し終了通知を送出する。読出し終了通知は信
号線l67によりリソース対応に送出されるが、S−G変
換回路17によりレジスタ対応の読出し終了通知に変換さ
れ、信号線l68を通じて各ベクトルレジスタ制御回路18,
19,20に伝えられる。読出し終了通知を受取ったベクト
ルレジスタ制御回路18,19,20は、対応するベクトルレジ
スタの読出制御を終了し、信号線l57を通じてレジスタ
使用状態保持レジスタ4に対しレジスタ対応の読出終了
通知を送出する。 一方、各リソースから送られてくる書込みデータの有
効信号l23,l36,l47,l55の対応する書込みデータが各命
令で扱う最後の書込みデータであった場合は、該データ
有効信号と同時にデータ最終信号が信号線l24,l37,l48,
l56を通じて各リソースから送られてくる。該データ最
終信号l24,l37,l48,l56は、S−G変換回路15によりベ
クトルレジスタ対応のデータ最終信号l60,l62,l64に変
換されて各ベクトルレジスタ制御回路に与えられる。各
ベクトルレジスタ制御回路18,19,20は、データ最終信号
l60,l62,l64を書込み終了通知として受取り、対応する
ベクトルレジスタへの書込み制御を終了し、信号線l58
を通じてレジスタ使用状態保持レジスタ4に対してレジ
スタ対応の書込み終了通知を送出する。 各命令実行開始制御ユニット21,23,25,27,43,45,47は
命令実行終了通知l18,l28,l45,l53を受取ると直ちに対
応する命令レジスタ22,24,26,28,44,46,48の値を次に実
行すべき命令に切換える。(詳細後述) そのためメモリリクエスタ0(10),メモリリクエス
タ1(11)には、命令実行終了通知l18,l28が送出され
た次のクロックには、次に実行すべき命令のオペコード
及びベクトル長が送出される。また、メモリリクエスタ
0(10),メモリリクエスタ1(11)に対応するオペラ
ンド制御回路は、命令実行終了通知l18,l28が送出され
た次のクロックにはベクトルレジスタ制御回路18,19,20
に読出し/書込み開始指示を行うと共に、同時に該命令
で扱う最初の読出しデータの有効信号l39を送出でき
る。一方セレクタ40は、命令実行終了通知l28が送出さ
れた次のクロックには読出しパスl81の接続を切換える
ので、読出し開始指示を受けたベクトルレジスタ制御回
路18,19,20により読出されたデータは然るべきリソース
に送出される。 加算器12,乗算器13にも命令実行終了通知であるデー
タ読出し最終信号l45,l53が送出された次のクロックに
は次に実行すべき命令のオペコードが送出され、同じタ
イミングで各ベクトルレジスタ制御回路18,19,20に読出
し/書込み開始指示が伝えられると共に、該命令で扱う
最初の読出しデータの有効信号l44,l52が送出されるの
で、異なる命令間で全く間隔をあけずに各リソースにデ
ータ有効信号l44,l52が送出されることになる。一方で
該同じタイミングでセレクタ41,42は読出しパスl81の接
続を切換えるので、読出しデータは然るべきリソースに
送出される。 さらに、ディストルビュータ33,34,35,36による書込
パスl80の切換えは、ある命令の実行終了通知l18,l28,l
45,l53が送出されてから、該命令を実行するリソースの
トラベルタイムだけ間隔をあけて行われる。そのため、
該命令で扱う最後の書込データが該命令で書込みを指定
されたベクトルレジスタ37,38,39への書込みパスl80上
に送られてくるまで、書込パスl80は該命令の書込みレ
ジスタに接続されており、該データは然るべきレジスタ
に書込まれる。そして、その次のクロックには書込みパ
スl80の接続が切換えられ、該命令の次の命令で扱う最
初の書込データが間隔をあけずに該リソースから送られ
てきても、該書込みデータは然るべきレジスタに書込ま
れる。 上記のように、ベクトルレジスタユニット14内に、リ
ソース対応の実行開始可能命令予約手段を内部に持つ命
令実行開始制御ユニットを設けたことにより、各リソー
スに対し実行すべき命令のオペコード及びベクトル長と
読出しベクトルデータを間隔をあけずに送出することが
できる。 また、本実施例では、命令実行開始制御ユニットをベ
クトルレジスタユニット14内にのみ設け、該命令実行開
始制御ユニットから各リソースにオペコード及びベクト
ル長の情報を送ったが、各リソースを制御するユニット
内にもオペコード及びベクトル長の情報を保持する命令
予約手段と該予約手段の制御ユニットを設け、命令発行
ユニット9から直接各リソースに該情報を送出して命令
実行開始予約指示を行っても同じ効果が得られる。 また、本実施例では書込みパスl81の切換え指示はオ
ペランド制御回路29,30,31,32から行なったが、書込み
レジスタ番号情報のみを保持する命令予約手段と該予約
手段の制御ユニットを設けて該制御ユニットの出力信号
の指示によりディストルビュータ33,34,35,36の切換え
を行ってもよい。 さらに、本実施例では読出しレジスタ番号情報のみを
保持する命令予約手段を制御する命令実行開始制御ユニ
ット43,45,47を設け、該命令実行開始制御ユニット43,4
5,47の出力信号の指示により読出しパスl81の切換えを
行ったが、該命令実行制御ユニット43,45,47を設けず
に、オペランド制御回路30,31,32から直接読出しパスl8
1の切換えを指示してもよい。 実行開始制御ユニット 次に実行開始制御ユニットの動作を、第1図中の加算
器12に対応する実行開始制御ユニット25を例にとって第
3図を使って説明する。 第3図は実行開始制御ユニット25の内部の構成図であ
る。本実施例では、実行開始予約済み命令を、現在実行
中の命令を含め2つまで保持可能とし、実行開始制御ユ
ニット25は、実行開始の予約を受け付けた順に命令の実
行を開始させるものとする。 信号線l14には命令発行ユニット9からオペコード,
ベクトル長,使用ベクトルレジスタ番号等の命令実行に
必要な情報が送られてくる。信号線l13は、命令発行ユ
ニット9から送られる命令実行開始の予約信号であり、
上記命令実行情報を実行開始予約済み命令として取り込
むべきか否かを指定する。信号線l45は、加算器12から
送られてくる命令の実行が終了したことを知らせる信号
である。命令レジスタ26は加算器12で現在実行中の命令
を保持するレジスタであり、該レジスタ26の内容は信号
線l73,l15を通じて夫々オペランド制御回路31及び加算
器12に伝えられる。 第3図中49は実行待ち中の実行開始予約済み命令を保
持する命令レジスタであり、50はセレクタであり、信号
線l14の内容、若しくは信号線l88を介して得た実行待ち
命令レジスタ49の内容のいずれか一方を選択して信号線
l72に送出することができる。本実施例では実行開始の
予約を受け付けた順に命令の実行を開始させればよいの
で実行開始制御ユニットは以下の制御を行なえばよい。
即ち、現在実行中の命令がない時に信号線l13から命令
の実行開始予約指示を受けた場合は、直ちに信号線l14
上の実行開始予約命令を信号線l72に送出して命令レジ
スタ26にセットし、現在実行中の命令がある時に信号線
l13から命令の実行開始予約指示を受けた場合は、信号
線l14上の実行開始予約命令を実行待ち命令レジスタ49
にセットして、現在実行中の命令の実行終了の通知を待
って実行待ち命令レジスタ49の内容を命令レジスタ26に
セットするよう制御する。 以下、上記制御方法を詳しく述べる。 第3図において51は実行開始予約済み命令が幾つ保持
されているかを表示するレジスタで、2ビットからな
る。52は命令の実行開始制御機構で、実行開始予約命令
の予約指示信号l13及び実行中命令終了通知信号l45を受
けて予約済み命令保持状態表示レジスタ51の内容を更新
し、実行待ちレジスタ49へのセット信号l89,セレクタ50
の切り替えl90、及び命令レジスタ26へのセット信号l91
を送出する。 第4図は予約済み命令保持状態表示レジスタ51の状態
遷移図である。51−1,51−2,51−3,51−4の各ノードは
各々予約済み命令保持状態表示レジスタ51のビットがと
る値である。51−1は実行開始を予約されている命令が
全くない状態を表わしている。51−2は実行開始を予約
されている命令が1つだけあり、該命令が命令レジスタ
26に保持されている状態を表わしている。51−3は実行
開始を予約されている命令が2つあり、各々の命令が命
令レジスタ26及び実行待ち命令レジスタ49に保持されて
いる状態を表わしている。51−4は、機械が正常に動作
していれば本来起こり得ない信号の組合せを受け取った
時に生じる状態であり、この時マシンチェック信号(図
示せず)を送出する。第4図中の、I,,E,とは夫々
予約指示信号l13,実行中命令終了通知信号l45の値を示
しており、Iは予約指示信号l13の値が1であることを
示し、は予約指示信号l13の値が0であることを示
し、Eは実行中命令終了通知信号l45の値が1であるこ
とを示し、は実行中命令終了通知信号l45の値が0で
あることを示している。ここで、予約指示信号l13の値
が1であるとは命令実行開始の予約を指示されたことを
示し、0であることは命令実行開始の予約を指示されな
かったことを示している。また実行中命令終了通知信号
l45の値が1であるとは実行中命令の終了通知を受けた
ことを示し、0であるは実行中命令の終了通知を受けな
かったことを示している。 第3図中の実行開始制御機構52は、予約指示信号l13,
実行中命令終了通知信号l45を受けると、信号線l93を通
じて得たその時の予約済み命令保持状態表示レジスタ51
の値に応じて、信号線l92を介して該状態表示レジスタ5
1の値を第4図の状態遷移図に従い更新する。 予約済み命令保持状態表示レジスタ51の値が00で、実
行開始を予約されている命令が全くない状態の時に、予
約指示信号l13も実行中命令終了通知信号l45も受けとら
なかった場合(即ちかつ)は応対表示レジスタ51の
値を更新する必要はないので、アークa1の示すように状
態表示レジスタ51の値は00のままとする。状態表示レジ
スタ51の値が00の時に、予約指示信号l13を受取り実行
中命令終了通知信号l45を受けとらなかった場合(即ち
Iかつ)は、実行開始予約済み命令は命令レジスタ26
にのみ保持されるはずなので、アークa2の示すように状
態表示レジスタ51の値を01に更新する。状態表示レジス
タ51の値が00の時に、実行中命令終了通知信号l45を受
取った場合(即ちE)は、マシンチェック信号を送出し
て状態表示レジスタ51の値を11に更新する。 予約済み命令保持状態表示レジスタ51の値が01で、実
行開始を予約されている命令が1つだけあって該命令が
命令レジスタ26に保持されている状態の時に、予約指示
信号l13も実行中命令終了通知信号l45も受け取らなかっ
た場合(即ちかつ)は、状態表示レジスタ51の値を
更新する必要はないので、アークa4の示すように状態表
示レジスタ51の値は01のままとする。予約済み命令保持
状態表示レジスタ51の値が01の時に、予約指示信号l13
も実行中命令終了通知信号l45も受け取った場合(即ち
IかつE)は、命令レジスタ26の内容が直ちに信号線l1
4の内容に置き換えられて実行待ちレジスタ49には何も
保持されないはずであるので、アークa4の示すように状
態表示レジスタ51の値は01のままとする。予約済み命令
保持状態表示レジスタ51の値が01の時に、予約指示信号
l13を受取らず実行中命令終了通知信号l45を受けとった
場合(即ちかつE)は、保持すべき命令がなくなった
わけであるから、アークa5の示すように状態表示レジス
タ51の値を00に更新する。予約済み命令保持状態表示レ
ジスタ51の値が01の時に、予約指示信号l13を受け取っ
て実行中命令終了通知信号l45を受け取らなかった場合
(即ちIかつ)は、保持すべき実行開始予約済み命令
が2つになったので、アークa6の示すように状態表示レ
ジスタ51の値を10に更新する。 予約済み命令保持状態表示レジスタ51の値が10で、実
行開始を予約されている命令が2つあって各々の命令が
命令レジスタ26及び実行命令レジスタ49に保持されてい
る状態の時に、予約指示信号l13も実行中命令終了通知
信号l45も受け取らなかった場合(即ちかつ)は、
状態表示レジスタ51の値を更新する必要はないので、ア
ークa7の示すように状態表示レジスタ51の値は10のまま
とする。予約済み命令保持状態表示レジスタ51の値が10
の時に、予約指示信号l13を受取らず実行中命令終了通
知信号l45を受けとった場合(即ちかつE)は、命令
レジスタ26の内容が直ちに実行待ちレジスタ49の内容に
置き換えられて実行待ちレジスタ49には何も保持されな
いはずであるので、アークa8の示すように状態表示レジ
スタ51の値を01に更新する。予約済み命令保持状態表示
レジスタ51の値が10の時に、予約指示信号l13を受け取
った場合(即ちI)は、マシンチェック信号を送出して
状態表示レジスタ51の値を11に更新する。 第3図中の実行開始制御機構52は、予約指示信号l13,
実行中命令終了通知信号l45及び、信号線l93を通じて得
たその時の予約済み命令保持状態表示レジスタ51の値を
受け取って、命令レジスタ26へのセット信号l91,実行待
ちレジスタ49へのセット信号l89,セレクタ50の切り替え
信号l90を送出する。第5図は、命令レジスタへのセッ
ト信号l91,実行待ちレジスタ49へのセット信号l89,セレ
クタ50の切り替え信号l90に設定すべき値を、受け取っ
た信号l13,l45,l93の値に応じて示した表である。第3
図において、レジスタ26,49は夫々信号線l91,l89が1の
時、信号線l72,l14の値を保持するものとし、セレクタ5
0は、信号線l90の値が0の信号線l14の値を、信号線l90
の値が1の時信号線l88の値を選択して信号線l72に送出
するものとする。以下第5図に従って信号を送出した時
の第3図の動作を説明する。 状態表示レジスタ51の値が00で実行開始を予約されて
いる命令が全くない状態の時に、予約指示信号l13を受
取り実行中命令終了通知信号l45を受け取らなかった場
合は、セレクタ50の切り替え信号l90の値を0にして命
令レジスタ26へのセット信号l91を1にすれば、信号線l
14の内容を命令レジスタ26にセットすることができる。 状態表示レジスタ51の値が01で実行開始を予約されて
いる命令が命令レジスタ26にのみ保持されている状態の
時に、予約指示信号l13も実行中命令終了通知信号l45も
受け取った場合は、セレクタ50の切り替え信号l90の値
を1にして命令レジスタ26及び実行待ち命令レジスタ49
へのセット信号l91を1にすれば、実行待ち命令レジス
タの内容を命令レジスタ26にセットするとともに、信号
線l14の内容を実行待ち命令レジスタ49にセットするこ
とができる。 状態表示レジスタ51の値が01の時に、予約指示信号l1
3を受取り実行中命令終了通知信号l45を受け取らなかっ
た場合は、命令レジスタ26へのセット信号l91を0にし
て実行待ち命令レジスタ49へのセット信号l89を1にす
れば、信号線l14の内容を実行待ち命令レジスタ49にの
みセットすることができる。 状態表示レジスタ51の値が10で実行開始を予約されて
いる命令が命令レジスタ26及び実行命令レジスタ49に保
持されている状態の時に、予約指示信号l13を受取らず
実行中命令終了通知信号l45を受けとった場合は、セレ
クタ50の切り替え信号l90の値を1にして命令レジスタ2
6へのセット信号l91を1にすれば、実行待ち命令レジス
タの内容を命令レジスタ26にセットすることがきる。 上記以外の場合には、命令レジスタ26及び実行命令レ
ジスタ49に値をセットする必要がないので命令レジスタ
26へのセット信号l91、実行待ちレジスタ49へのセット
信号l89、セレクタ50の切り替え信号l90に全て0を設定
すればよい。 上記のように信号に値を設定することにより、実行開
始制御機構52は、現在実行中の命令がない時に信号線l1
3から命令の実行開始予約指示を受けた場合は、直ちに
信号線l14上の実行開始予約命令を信号線l72に送出して
命令レジスタ26にセットし、現在実行中の命令がある時
に線号線l13から命令の実行開始予約指示を受けた場合
は、信号線l14上の実行開始予約命令を実行待ち命令レ
ジスタ49にセットして、現在実行中の命令の実行終了の
通知を待って実行待ち命令レジスタ49の内容を命令レジ
スタ26にセットするように制御することができる。 命令発行制御 第2図において、命令の発行制御は、レジスタ使用可
否判定ユニット7及びリソース使用可否判定ユニット8
の判定結果に従って命令発行ユニット9が行う。リソー
スの使用可否の判定は、解読した命令のリソース使用要
求と各リソースの使用予約状態を比較して行う。以下そ
の判定方法及び命令発行制御を説明する。なお、レジス
タ使用可否判定の方法は、特公昭61−52512に詳しいの
で、ここでは述べない。 第6図はリソース予約状態保持レジスタ6の構成と、
該レジスタを更新する信号線とを示した図である。リソ
ース予約状態保持レジスタ6は、メモリリクエスタ0予
約状態保持部6−0,メモリリクエスタ1予約状態保持部
6−1,加算器予約状態保持部6−2,乗算器予約状態保持
部6−3の4つからなる。信号線l11は命令発行ユニッ
ト9から送出されるレジスタ使用状態保持レジスタ4及
びリソース予約状態保持レジスタ6の更新信号で、その
うちの4ビットl11−0,l11−1,l11−2,l11−3がリソー
ス予約状態保持レジスタ6の更新に使用される。l11−
0はメモリリクエスタ0に対し実行可能命令の予約指示
がなされたことを示す信号であり、l11−1はメモリリ
クエスタ1に対し、l11−2は加算器に対し、l11−3は
乗算器に対し夫々実行可能命令の予約指示がなされたこ
とを示す信号である。 信号線l18,l28,l45,l53は夫々メモリリクエスタ0,メ
モリリクエスタ1,加算器,乗算器から送出される命令実
行終了通知である。各リソースの予約状態保持部6−0,
6−1,6−2,6−3は各々2ビットからなり、その値の意
味する各リソースの実行開開予約済み命令保持状態は、
第3図の予約済み命令保持状態表示レジスタ51の値の意
味するものと同じである。また、状態保持部6−0,6−
1,6−2,6−3の各値を、リソース予約状態保持レジスタ
6の更新制御機構(図示せず)は、第4図の状態遷移図
に従って更新する。但し状態保持部6−0の更新におい
ては、第4図のIとは信号線l11−0の値が1であるこ
とを表わし、とは信号線l11−0の値が0であること
を、Eとは信号線l18の値が1であることを、とは信
号線l18の値が0であることを表わしている。また、状
態保持部6−1の更新においては、第4図のIとは信号
線l11−1の値が1であることを、とは信号線l11−1
の値が0であることを、Eとは信号線l28の値が1であ
ることを、とは信号線l28の値が0であることを表わ
している。さらに、状態保持部6−2の更新において
は、第4図のIとは信号線l11−2の値が1であること
を、とは信号線l11−2の値が0であることを、Eと
は信号線l45の値が1であることを、とは信号線l45の
値が0であることを表わしている。そして、状態保持部
6−3の更新においては、第4図のIとは信号線l11−
3の値が1であることを、とは信号線l11−3の値が
0であることを、Eとは信号線l53の値が1であること
を、とは信号線l53の値が0であることを表わしてい
る。 上記のように各状態保持部6−0,6−1,6−2,6−3の
値を更新することにより、各状態保持部6−0,6−1,6−
2,6−3は夫々各リソース対応の予約済命令保持状態表
示レジスタと全く同じ情報をもつことになる。 上記各状態保持部6−0,6−1,6−2,6−3の情報を使
用して、リソース使用可否判定ユニット8は、毎クロッ
クリソースの使用可否の判定を行い、また命令発行ユニ
ット9は、命令を実行させるべきリソースに対し、レジ
スタとリソースの使用が可能になると直ちに命令実行開
始の予約指示を行う。 以下、それらの動作を説明する。 第3図中のリソース使用可否判定ユニット8は、上記
のように値が更新されるリソース予約状態保持レジスタ
6とリソース使用要求保持レジスタ5とに保持されてい
る情報を夫々信号線l8,l7を通じて得、解読した命令で
使用するリソースに対しさらに命令実行開始予約を行な
ってよいか否かを判定し、その結果を信号線l10に送出
する。以下、その制御方法を説明する。 第7図は、上記判定を行なうことのできる回路図であ
る。第7図中、6はリソース予約状態保持レジスタであ
り、5はリソース使用要求保持レジスタである。状態保
持レジスタ6の構成は既に説明したとおりである。要求
保持レジスタ5は、各々1ビットのメモリリクエスタ0/
1使用要求保持部5−0,メモリリクエスタ1使用要求保
持部5−1,加算器使用要求保持部5−2,乗算器使用要求
保持部5−3から構成されている。本実施例では、主記
憶読み出し命令を実行できるリソースはメモリリクエス
タ0(10)及びメモリリクエスタ1(11)であり、主記
憶書き込み命令を実行できるリソースはメモリリクエス
タ1(11)のみであり、加算系の命令を実行できるリソ
ースは加算器12のみ、乗算系の命令を実行できるリソー
スは乗算器13のみである。そのため、命令解読ユニット
13は、解読した命令が主記憶読み出し命令ならばメモリ
リクエスタ0/1使用要求保持部5−0に値1を設定し、
主記憶書き込み命令ならばメモリリクエスタ1使用要求
保持部5−1に値1を設定し、加算系の命令ならば加算
器使用要求保持部5−2に値1を設定し、乗算系の命令
ならば乗算器使用要求保持部5−3に値1を設定する。
信号線l10はリソース使用可否判定結果を送出する信号
線である。 主記憶書き込み命令,加算系命令、若しくは乗算系命
令を実行するために、メモリリクエスタ1(11),加算
器12、若しくは乗算器13の使用可否判定を行なうために
は、各リソース予約保持部6−1,6−2,6−3のビット0
の値と、各リソース使用要求保持部5−1,5−2,5−3の
値とを、夫々信号線l8−1,l8−2,l8−3と信号線l7−1,
l7−2,l7−3とを通じてNANDゲートg3,g4,g5とに入力す
ればよい。何故ならば、各リソース予約保持部6−1,6
−2,6−3のビット0の値が0の時は各リソースは実行
開始予約済み命令を0若しくは1こ保持しているのでさ
らに実行可能命令を予約可能である。予約保持部6−1,
6−2,6−3のビット0の値が1の時は各リソースは実行
開始予約済み命令を2こ保持しているのでさらに実行可
能命令の予約はできない。一方、要求保持部5−1,5−
2,5−3は要求がある時のみ値が1になる。よって予約
保持部6−1,6−2,6−3のビット0の値と要求保持部5
−1,5−2,5−3の値のNANDをとると、信号線l96,l97,l9
8には、対応するリソースの使用要求があってかつ該リ
ソースに実行可能命令の予約ができない時のみ0が、実
行可能命令の予約ができる時もしくは予約要求がない時
は1が出力される。 主記憶読み出し命令を実行するためにリソースの使用
可否判定を行なうためには、メモリリクエスタ0予約保
持部6−1,メモリリクエスタ1予約保持部6−2のビッ
ト0の値を信号線l8−0,l8−1を通じてANDゲートg1に
入力し、その結果を信号線l94に出力し、信号線l94の値
と信号線l7−0を介して得たメモリリクエスタ0/1使用
要求保持部5−0の値とのNANDをゲートg2でとればよ
い。何故なら、メモリリクエスタ0予約保持部6−1,メ
モリリクエスタ予約保持部6−2のビット0の値のAND
は、メモリリクエスタ0及びメモリリクエスタ1が共に
実行開始予約済み命令を2こ保持していてさらに実行可
能命令の予約ができない時のみ1になるからである。よ
って信号線l94の値と要求保持部5−0の値のNANDをと
ると、信号線l95には、メモリリクエスタ0/1の使用要求
があってかつ該リソースに実行可能命令の予約ができな
い時のみ0が、実行可能命令の予約ができる時もしくは
予約要求がない時は1が出力される。よって信号線l95,
l96,l97,l98のANDをゲートg6でとれば、信号線l10には
あるリソースに実行可能命令の予約ができない時は0
が、実行可能命令の予約ができる時は1が出力される。 第2図中の命令発行ユニット9はレジスタ使用可否判
定結果と、上記のようにして得たリソース使用可否判定
結果、及び解読された命令とを夫々信号線l9,l10,l2を
通じて得、該レジスタ使用可否判定結果と該リソース使
用可否判定結果とが共に肯定的だった場合に、該解読さ
れた命令の実行開始の予約を行なうべきリソースを選択
し、ベクトルレジスタユニット14内にある、該リソース
に対応する命令実行開始制御ユニットに対し命令実行開
始の予約信号を信号線l13を通じて送出する。ここで、
リソースの選択を行なわなければならないのは、解読さ
れた命令が主記憶読み出し命令であった場合である。解
読された命令が主記憶読出し命令以外の命令であった場
合は、該命令を実行できるリソースは1つしかないの
で、リソースの選択を行う必要はない。解読された命令
が主記憶読み出し命令であり、メモリリクエスタ0及び
メモリリクエスタ1の保持する実行開始予約済み命令数
が同数でない場合は、上記命令数の少ない方のメモリリ
クエスタに、上記命令数が同数の場合は、主記憶書き込
み命令実行機能を持たないメモリリクエスタ0に予約を
行なう。以下、その制御方法を説明する。 第8図は、上記制御を行なうことのできる回路図であ
る。信号線l99上には、リソース予約状態保持レジスタ
6の内容が送出されている。信号線l2は、命令解読結果
であり、予約信号送出にはそのうちのメモリリクエスタ
0/1使用要求信号l2−0,メモリリクエスタ1使用要求信
号l2−1,加算器使用要求信号l2−2,乗算器使用要求信号
l2−3を使用する。メモリリクエスタ0/1使用要求信号l
2−0の値は、命令を解読した結果が主記憶読み出し命
令ならば1になっている。メモリリクエスタ1使用要求
信号l2−1の値は、命令を解読した結果が主記憶書き込
み命令ならば1になっている。加算器使用要求信号l2−
2の値は、命令を解読した結果が加算系の演算命令なら
ば1になっている。乗算器使用要求信号l2−3の値は、
命令を解読した結果が乗算系の演算命令ならば1になっ
ている。信号線l9はレジスタ使用可否判定結果であり、
信号線l10はリソース使用可否判定結果であり、信号線l
105にはゲートg10を介して信号線l9及びl10の値のANDが
送出されているので、該信号l105の値は上記判定結果が
共に肯定的であった場合のみ1となる。信号線l13−0,l
13−1,l13−2,l13−3は夫々メモリリクエスタ0,メモリ
リクエスタ1,加算器,乗算器に対応する命令実行開始制
御ユニットに対する命令実行開始の予約信号であり、上
記4ビットの信号線l13−0〜l3−3が信号線l13とし
て、ベクトルレジスタユニット14に送出される。 メモリリクエスタ選択機構53は、命令解読結果l2の内
容に関係なく、常に、信号線l99を通じて得たリソース
予約状態保持レジスタ6の内容に応じてメモリリクエス
タ0に予約指示を送出するか、メモリリクエスタ1に予
約指示を送出するかを選択する。メモリリクエスタ選択
機構53は、予約指示を送出すべきリソースとしてメモリ
リクエスタ0を選択した場合メモリリクエスタ0選択信
号l100に値1を、メモリリクエスタ1を選択した場合メ
モリリクエスタ1選択信号l101に値1を送出する。 第9図は、メモリリクエスタ選択機構53が、メモリリ
クエスタ0選択信号l100,メモリリクエスタ1選択信号l
101のどちらに1を設定すべきかを、信号線l99を通じて
受け取ったリソース予約状態保持レジスタ6の内容に応
じて示した図である。リソース予約状態保持レジスタ6
中のメモリリクエスタ0予約保持部6−0の値が00で、
メモリリクエスタ0が1つも実行開始予約済み命令を保
持していない状態の場合は、メモリリクエスタ1予約保
持部6−1の値に拘らず、メモリリクエスタ0選択信号
l100の値1を設定する。メモリリクエスタ0予約保持部
6−0の値が01で、メモリリクエスタ0が1つだけ実行
開始予約済み命令を保持している状態の場合は、メモリ
リクエスタ1予約保持部6−1の値が00でメモリリクエ
スタ0が1つも実行開始予約済み命令を保持していない
状態の時のみメモリリクエスタ1選択信号l101に値1
を、それ以外の時はメモリリクエスタ0選択信号l100に
値1を設定する。メモリリクエスタ0予約保持部6−0
の値が10で、メモリリクエスタ0が2つ実行開始予約済
み命令を保持している状態の場合は、メモリリクエスタ
1予約保持部6−0の値もまた10の場合を除いてメモリ
リクエスタ1選択信号l101に値1を設定する。 第8図において、上記のように設定された信号線l10
0,l101の値と、メモリリクエスタ0/1使用要求信号l2−
0の値とをゲートg7,g8を介してANDをとり、結果を信号
線l102,l103に送出する。信号線l102は、解読された命
令が主記憶読み出し命令であり、かつメモリリクエスタ
0が選択された時のみ値が1になり、信号線l103は、解
読された命令が主記憶読み出し命令であり、かつメモリ
リクエスタ1が選択された時のみ値が1になっている。
メモリリクエスタ0に対応する命令実行開始制御ユニッ
トに対する命令実行開始の予約信号l13−0には、レジ
スタ及びリソースの双方が使用可能の時のみ値が1にな
る信号線l105と信号線l102とのANDをゲートg11を介して
とった値を送出すればよい。 解読された命令が主記憶書き込み命令であった時に
は、メモリリクエスタ1使用要求信号l2−1の値が1に
なつているので、ゲートg9により信号線l103と信号線l2
−1とのORをとれば、信号線l104は解読された命令が主
記憶読み出し命令であってかつメモリリクエスタ1が選
択された時若しくは解読された命令が主記憶書き込み命
令であった時のみ、値が1になっている。よってメモリ
リクエスタ1に対応する命令実行開始制御ユニットに対
する命令実行開始の予約信号l13−1には、信号線l104
と信号線l105とのANDをゲートg12を介してとった値を送
出すればよい。 命令を解読した結果が加算命令若しくは乗算命令だっ
た場合は、夫々加算器使用要求信号l2−2,乗算器使用要
求信号l2−3の値が1になっているので、加算器,乗算
器に対応する命令実行開始制御ユニットに対する命令実
行開始の予約信号l13−2,l13−3に信号線l2−2,l2−3
の値と信号線l105の値を夫々ゲートg13,g14を介してAND
をとり、送出すればよい。 上記のようにリソース使用可否判定ユニット8及び命
令発行ユニット9を制御することにより、解読した命令
で使用するレジスタが使用可能になり、かつ使用するリ
ソースに対し命令実行の予約を行えるようになり、次
第、該リソースに対応する命令実行開始制御ユニット
に、該解読した命令の予約指示を行うことができる。 〔発明の効果〕 本発明によれば、各リソースで実行中の命令が終了す
ると直ちに実行可能な次の命令をリソース及び、ベクト
ルレジスタ制御ユニットに与えることが可能になり、そ
の結果、前の命令と次の命令とで扱うベクトルデータが
間断なく各リソースに投入できるようになるので、リソ
ースの使用効率が向上するという効果がある。
【図面の簡単な説明】
第1図はベクトルレジスタユニットの構成図、第2図は
ベクトルプロセッサの概略構成図、第3図は命令実行開
始制御ユニットの構成図、第4図は予約済み命令保持状
態表示レジスタの値の状態遷移図、第5図は命令実行開
始制御ユニット内の信号に設定すべき値を示す表、第6
図はリソース予約状態保持レジスタの構成図、第7図は
リソース使用可否判定ユニットの構成図、第8図は命令
発行ユニットの構成図、第9図はメモリリクエスタ選択
機構の動作を説明する表である。 1……主記憶、2……命令解読ユニット、5……リソー
ス使用要求保持レジスタ、6……リソース予約状態保持
レジスタ、8……リソース使用可否判定ユニット、9…
…命令発行ユニット、10,11……メモリリクエスタ、12
……加算器、13……乗算器、 14……ベクトルレジスタユニット、 18,19,20……ベクトルレジスタ制御回路、 21,23,25,27,43,45,47……命令実行開始制御ユニット、 22,24,26,28,44,46,48……命令レジスタ、29,30,31,32
……オペランド制御回路、33,34,35,36……ディストリ
ビュータ、40,41,42……セレクタ、 37,38,39……ベクトルレジスタ、49……実行待ち命令レ
ジスタ、51……予約済み命令保持状態表示レジスタ、52
……実行開始制御機構、 53……メモリリクエスタ選択機構。
ベクトルプロセッサの概略構成図、第3図は命令実行開
始制御ユニットの構成図、第4図は予約済み命令保持状
態表示レジスタの値の状態遷移図、第5図は命令実行開
始制御ユニット内の信号に設定すべき値を示す表、第6
図はリソース予約状態保持レジスタの構成図、第7図は
リソース使用可否判定ユニットの構成図、第8図は命令
発行ユニットの構成図、第9図はメモリリクエスタ選択
機構の動作を説明する表である。 1……主記憶、2……命令解読ユニット、5……リソー
ス使用要求保持レジスタ、6……リソース予約状態保持
レジスタ、8……リソース使用可否判定ユニット、9…
…命令発行ユニット、10,11……メモリリクエスタ、12
……加算器、13……乗算器、 14……ベクトルレジスタユニット、 18,19,20……ベクトルレジスタ制御回路、 21,23,25,27,43,45,47……命令実行開始制御ユニット、 22,24,26,28,44,46,48……命令レジスタ、29,30,31,32
……オペランド制御回路、33,34,35,36……ディストリ
ビュータ、40,41,42……セレクタ、 37,38,39……ベクトルレジスタ、49……実行待ち命令レ
ジスタ、51……予約済み命令保持状態表示レジスタ、52
……実行開始制御機構、 53……メモリリクエスタ選択機構。
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 北井 克佳
東京都国分寺市東恋ケ窪1丁目280番地
株式会社日立製作所中央研究所内
(56)参考文献 特公 昭61−16113(JP,B2)
FUJITSU Vol.35 No.
4 p.465−475
(58)調査した分野(Int.Cl.6,DB名)
G06F 17/16
G06F 9/38
Claims (1)
- (57)【特許請求の範囲】 1.命令を実行するリソースと、 上記リソースから供給されるデータの格納し、又は上記
リソースへデータの供給を行うベクトルレジスタと、 上記リソースに対応して設けられ、上記リソースで実行
中及び実行すべき上記命令を保持する命令保持手段と、 上記命令を解読し、上記解読した命令により読み出し又
は書き込みが指定されている上記ベクトルレジスタが使
用可能であるか否かを判定し、上記命令保持手段が命令
保持可能であるか否かを判定し、上記ベクトルレジスタ
が使用可能であり、かつ、上記命令保持手段が命令保持
可能であると判定した場合に、上記命令保持手段に対し
て上記解読した命令を保持するよう指示する命令制御手
段と、 上記リソースで実行中の上記命令の実行終了通知を受け
た場合に、上記命令保持手段に保持している上記リソー
スで実行すべき命令を実行中にする実行開始制御手段と
を有することを特徴とするデータ処理装置。 2.上記リソースと、上記リソースに対応する上記命令
保持手段をそれぞれ複数有し、 上記命令制御手段は、上記複数の命令保持手段に保持さ
れている命令数を判定し、上記保持されている命令数が
少ない上記命令保持手段に対して上記解読した命令を保
持するよう指示することを特徴とする請求項1に記載の
データ処理装置。 3.上記複数のリソースは、第1及び第2の種類の命令
を実行可能な第1のリソースと、上記第1の種類の命令
は実行可能であるが、上記第2の種類の命令の実行は不
可能な第2のリソースとが含まれ、 上記命令制御手段は、上記解読した命令が上記第1の種
類の命令であり、上記第1のリソースに対応する上記命
令保持手段に保持される命令数と、上記第2のリソース
に対応する上記命令保持手段に保持される命令数とが同
数である場合に、上記第2のリソースに対応する上記命
令保持手段に対して上記解読した命令を保持するよう指
示することを特徴とする請求項2に記載のデータ処理装
置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62285310A JP2810043B2 (ja) | 1987-11-13 | 1987-11-13 | データ処理装置 |
US07/634,810 US5396603A (en) | 1987-11-13 | 1990-12-31 | Data processor having resources and execution start control for starting execution of succeeding instruction in resource before completion of preceding instruction |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62285310A JP2810043B2 (ja) | 1987-11-13 | 1987-11-13 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01128162A JPH01128162A (ja) | 1989-05-19 |
JP2810043B2 true JP2810043B2 (ja) | 1998-10-15 |
Family
ID=17689870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62285310A Expired - Lifetime JP2810043B2 (ja) | 1987-11-13 | 1987-11-13 | データ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5396603A (ja) |
JP (1) | JP2810043B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2016348C (en) * | 1989-05-10 | 2002-02-05 | Kenichi Asano | Multiprocessor type time varying image encoding system and image processor |
US5745723A (en) * | 1989-09-04 | 1998-04-28 | Mitsubishi Denki Kabushiki Kaisha | Data processing system capable of execution of plural instructions in parallel |
US5615349A (en) * | 1990-09-04 | 1997-03-25 | Mitsubishi Denki Kabushiki Kaisha | Data processing system capable of execution of plural instructions in parallel |
US5598549A (en) * | 1993-06-11 | 1997-01-28 | At&T Global Information Solutions Company | Array storage system for returning an I/O complete signal to a virtual I/O daemon that is separated from software array driver and physical device driver |
US5751983A (en) * | 1995-10-03 | 1998-05-12 | Abramson; Jeffrey M. | Out-of-order processor with a memory subsystem which handles speculatively dispatched load operations |
DE69836056T2 (de) * | 1997-08-29 | 2007-04-12 | Matsushita Electric Industrial Co., Ltd., Kadoma | Prozessor mit verringerter Zahl von bedingten Befehlen |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3593300A (en) * | 1967-11-13 | 1971-07-13 | Ibm | Arrangement for automatically selecting units for task executions in data processing systems |
US3631452A (en) * | 1968-12-23 | 1971-12-28 | Willard H Richard | Work-scheduling apparatus |
US3614745A (en) * | 1969-09-15 | 1971-10-19 | Ibm | Apparatus and method in a multiple operand stream computing system for identifying the specification of multitasks situations and controlling the execution thereof |
US3702006A (en) * | 1971-06-09 | 1972-10-31 | Ibm | Method for balancing the utilization of input/output devices |
CA1059639A (en) * | 1975-03-26 | 1979-07-31 | Garvin W. Patterson | Instruction look ahead having prefetch concurrency and pipe line features |
US4384324A (en) * | 1980-05-06 | 1983-05-17 | Burroughs Corporation | Microprogrammed digital data processing system employing tasking at a microinstruction level |
JPS57757A (en) * | 1980-06-04 | 1982-01-05 | Hitachi Ltd | Job execution schedule system |
US4495570A (en) * | 1981-01-14 | 1985-01-22 | Hitachi, Ltd. | Processing request allocator for assignment of loads in a distributed processing system |
US4403286A (en) * | 1981-03-06 | 1983-09-06 | International Business Machines Corporation | Balancing data-processing work loads |
JPS57191703A (en) * | 1981-05-20 | 1982-11-25 | Fanuc Ltd | Sequence controller |
US4532589A (en) * | 1981-12-02 | 1985-07-30 | Hitachi, Ltd. | Digital data processor with two operation units |
JPS58106636A (ja) * | 1981-12-18 | 1983-06-25 | Hitachi Ltd | パイプライン演算装置 |
JPS58114274A (ja) * | 1981-12-28 | 1983-07-07 | Hitachi Ltd | デ−タ処理装置 |
US4517641A (en) * | 1982-04-30 | 1985-05-14 | International Business Machines Corporation | Lookahead I/O device control subsystem |
US4521851A (en) * | 1982-10-13 | 1985-06-04 | Honeywell Information Systems Inc. | Central processor |
US4685058A (en) * | 1983-08-29 | 1987-08-04 | Amdahl Corporation | Two-stage pipelined execution unit and control stores |
US4627018A (en) * | 1983-09-08 | 1986-12-02 | Sperry Corporation | Priority requestor accelerator |
US4621359A (en) * | 1984-10-18 | 1986-11-04 | Hughes Aircraft Company | Load balancing for packet switching nodes |
JPH0769818B2 (ja) * | 1984-10-31 | 1995-07-31 | 株式会社日立製作所 | デ−タ処理装置 |
US4809157A (en) * | 1985-09-30 | 1989-02-28 | International Business Machines Corp. | Dynamic assignment of affinity for vector tasks |
JPH0622035B2 (ja) * | 1985-11-13 | 1994-03-23 | 株式会社日立製作所 | ベクトル処理装置 |
JP2533495B2 (ja) * | 1986-07-25 | 1996-09-11 | 株式会社日立製作所 | ワ−クスケジユ−リング方法及び装置 |
JPS6353678A (ja) * | 1986-08-22 | 1988-03-07 | Hitachi Ltd | ベクトル処理装置 |
US5185870A (en) * | 1987-04-10 | 1993-02-09 | Tandem Computers, Inc, | System to determine if modification of first macroinstruction to execute in fewer clock cycles |
-
1987
- 1987-11-13 JP JP62285310A patent/JP2810043B2/ja not_active Expired - Lifetime
-
1990
- 1990-12-31 US US07/634,810 patent/US5396603A/en not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
FUJITSU Vol.35 No.4 p.465−475 |
Also Published As
Publication number | Publication date |
---|---|
JPH01128162A (ja) | 1989-05-19 |
US5396603A (en) | 1995-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3461704B2 (ja) | 条件コードを使用する命令処理システムおよびコンピュータ | |
US5367690A (en) | Multiprocessing system using indirect addressing to access respective local semaphore registers bits for setting the bit or branching if the bit is set | |
CN101488103B (zh) | 高速缓冲存储器、系统和数据存储方法 | |
EP0061096A1 (en) | Data processing system for parallel processing | |
CN100535850C (zh) | 用于在编程引擎之间传送数据的方法和装置 | |
CN100552623C (zh) | 用于在系统处理器和协处理器之间进行消息传送的系统和方法 | |
JPS63113648A (ja) | キャッシュ記憶待ち行列 | |
WO1994003860A1 (en) | Massively parallel computer including auxiliary vector processor | |
JPH02140831A (ja) | データ処理装置 | |
JPH0622035B2 (ja) | ベクトル処理装置 | |
JPH05508495A (ja) | 多重プロセッサ用大域レジスタ | |
JP2001092772A (ja) | 同期固定レイテンシループを使用するデータバス | |
JPH10187661A (ja) | コンピュータにおけるスカラ値をベクトルに記入する方法 | |
US5077664A (en) | Direct memory access controller | |
CN100594482C (zh) | 在存储器部件之间保持数据一致性的方法和系统 | |
JP2810043B2 (ja) | データ処理装置 | |
JP2718254B2 (ja) | ベクトル処理装置 | |
JP2001117858A (ja) | データ処理装置 | |
EP2132645A1 (en) | A data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled | |
US5197145A (en) | Buffer storage system using parallel buffer storage units and move-out buffer registers | |
CN100568197C (zh) | 存储器克隆操作期间保护高速缓冲存储器线的方法和系统 | |
JP2000349816A (ja) | パケットデータ処理装置及びそれを用いたパケット中継装置 | |
EP0465847B1 (en) | Memory access control having commonly shared pipeline structure | |
JPH052568A (ja) | プロセツサ間の同期処理装置 | |
JPH1078940A (ja) | マルチノード情報処理システムにおけるチケット分配方法 |