JPS6134186B2 - - Google Patents

Info

Publication number
JPS6134186B2
JPS6134186B2 JP56047774A JP4777481A JPS6134186B2 JP S6134186 B2 JPS6134186 B2 JP S6134186B2 JP 56047774 A JP56047774 A JP 56047774A JP 4777481 A JP4777481 A JP 4777481A JP S6134186 B2 JPS6134186 B2 JP S6134186B2
Authority
JP
Japan
Prior art keywords
register
vector
instruction
waiting
instruction information
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
JP56047774A
Other languages
Japanese (ja)
Other versions
JPS57161938A (en
Inventor
Shigeaki Okuya
Tetsuo Okagata
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP56047774A priority Critical patent/JPS57161938A/en
Publication of JPS57161938A publication Critical patent/JPS57161938A/en
Publication of JPS6134186B2 publication Critical patent/JPS6134186B2/ja
Granted legal-status Critical Current

Links

Classifications

    • 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

Description

【発明の詳細な説明】[Detailed description of the invention]

本発明は、データ処理装置、例えばベクトル処
理装置において、後発の命令を先発の命令より先
に実行できるようにした命令制御方式に関するも
のである。 複数のエレメントを有する第2のオペランドA
(a0,a1,……ao-1)と複数のエレメントB
(b0,b1,……bo-1)とを対応するエレメント同
志に演算を施し、結果の第1オペランドC(c0
c1,……co-1)を得るデータ処理装置は、ベク
トル処理装置とよばれている。これに対してエレ
メントが1個(n=1)に限定された従来の汎用
処理装置はスカラー処理装置とよばれている。 第1図はベクトル処理装置の概要を示すもので
あつて、1は主記憶装置、2は主記憶制御装置、
3はベクトル処理装置、4はストア処理部、5は
ロード処理部、6はベクトル・レジスタ、7は乗
算器、8は加算器、9は命令制御部をそれぞれ示
している。なお、実線の矢印はデータの流れを示
し、点線の矢印は制御信号の流れを示している。
ストア制御部4は、ベクトル・レジスタのデータ
を主記憶装置1に格納するためのものであり、ロ
ード処理部5は、主記憶装置1からデータを読出
してベクトル・レジスタ6に格納するためのもの
である。ベクトル・レジスタ6は、複数のエレメ
ントよりなるベクトルデータを保持するベクト
ル・レジスタを複数個有している。ストア処理部
4、ロード処理部5、乗算器7および加算器8は
パイプライン構造のものである。命令制御部9
は、ベクトル・レジスタ6やストア処理部4、ロ
ード処理部5、乗算器7、加算器8などを制御す
る。本発明は、この命令制御部に関するものであ
る。また、本発明ではストア処理部4、ロード処
理部5、乗算器7、加算器8を含めて演算処理部
と称する。 ベクトル命令は、命令コード、第1オペランド
指定、第2オペランド指定および第3オペランド
指定部を有している。ベクトル乗算命令は、 VM1,2,3 で表わされる。これは、ベクトル・レジスタ2と
ベクトル・レジスタ3の内容とを乗算し、結果を
ベクトル・レジスタ1に入れるものである。ベク
トル加算命令は例えば VA4,5,1 で表わされる。これは、ベクトル・レジスタ5と
ベクトル・レジスタ1の内容を加算し、結果をベ
クトル・レジスタ1に入れるものである。 ベクトル命令を処理する場合は、乗算器7や加
算器8などをパイプライン構造とし、先行のエレ
メントの演算処理が完了する前に後続のエレメン
トを投入するようになつている。第2図は加算器
8におけるベクトル加算命令の処理状況を示すも
のであつて、 (1) データの読出し(READ) (2) 両オペランドの指数比較(COMPARE) (3) 指数合わせのためのシフト(PRE−
SHIFT) (4) 加算(ADD) (5) 演算後の正規化のためのシフト(POST
SHIFT) (6) データの書込み(WRITE) の6段階のパイプラインとなる。命令処理は、第
2図に示すように平行四辺形で表わされる。 次に、従来の命令制御方式の問題点について説
明する。いま、 VM1,2,3 VA4,5,1 VA7,8,9 というベクトル命令系列があつたとする。このと
きの従来の処理は第3図に示される。たゞし、ベ
クトル乗算命令は11段階のパイプラインであり、
エレメント数は8であるとする。第3図で、VA
4,5,1が時刻=11から始まつているのは、
VA4,5,1がVA1,2,3の結果データを使
用するからである。 ところで、VA7,8,9は先行の命令とベク
トル・レジスタの干渉がないので、VA4,5,
1の前にVA7,8,9を実行させることによつ
て、命令処理時間を短縮することが出来る。第4
図は、このときの状態を示している。第3図およ
び第4図から明らかなように、第4図のものは第
3図のものに比べ命令処理時間が9サイクル短か
くなつている。このように、プログラムで指示さ
れたベクトル命令の順序を変更するようなベクト
ル処理装置は、従来存在しなかつた。 スカラー処理装置では、複数の命令のオペラン
ドを保持するオペランド・レジスタを各演算処理
部毎に持つと共に、先行命令の結果データを使用
するような後続命令のオペランドのために、先行
命令の結果オペランドを識別するためのフラグ・
レジスタを持つオペランド予約部と、各演算処理
部の結果データをオペランド予約部に送る共通バ
スとを設ける方式がある。この方式をベクトル処
理装置に適用することは、オペランド予約部を巨
大化させ、いたずらに金物量を増させることにな
り、得策ではない。 本発明は、上記の考察に基づくものであつて、
先発命令より後発命令を先に実行させ、命令処理
時間を短縮する命令制御方式を少ない金物量で実
現することを目的としている。そしてそのため、
本発明の命令制御方式はベクトル・レジスタと、
該ベクトル・レジスタのベクトル・データをオペ
ランド・データとして処理を行う複数個のパイプ
ライン構造の演算処理部とを有するベクトル処理
装置において、ベクトル命令がセツトされる命令
レジスタと、複数の待合レジスタと、上記命令レ
ジスタのベクトル命令情報を上記待合レジスタに
格納する投入制御回路と、演算実行中のベクトル
命令のベクトル命令情報を保持する実行中情報保
持レジスタと、上記待合レジスタ内のベクトル命
令情報の発信を行うと共に発信したベクトル命令
情報を対応する実行中命令情報保持レジスタに格
納する命令発信制御回路と、上記待合レジスタの
ベクトル命令情報と上記実行中命令情報保持レジ
スタのベクトル命令情報とを比較する比較手段と
を具備し、且つ上記命令発信制御部が、上記複数
の待合レジスタのベクトル命令情報のうち上記比
較手段によつて命令実行開始を妨げる要因がない
と判断されたベクトル命令情報を発信することを
特徴とするものである。以下、本発明を図面を参
照しつつ説明する。 第5図は本発明の命令制御部の第1実施例のブ
ロツク図、第6図は命令の追越しが行われる場合
のタイムチヤート、第7図および第8図はレジス
タ干渉チエツク回路の1実施例のブロツク図であ
る。 第5図において、10はフエツチ・レジスタ、
11は待合レジスタ投入制御回路、12−1と1
2−2は待合レジスタ、13−1と13−2はレ
ジスタ干渉チエツク回路、14はセレクタ、15
は命令発信制御回路、16は乗算レジスタ、17
は加算レジスタ、18−1と18−2はレジスタ
干渉チエツク回路、19は選択制御回路をしれぞ
れ示している。 フエツチ・レジスタ10には、主記憶装置1か
ら取出された命令情報がセツトされる。待合レジ
スタ投入制御回路11は、レジスタ干渉チエツク
回路13−1および13−2がレジスタ干渉なし
を示していること等を条件として、フエツチ・レ
ジスタ10の命令情報を待合レジスタ12−1又
は12−2へ移す。レジスタ干渉チエツク回路1
3−1と13−2の詳細については後述する。セ
レクタ14は、選択制御回路19の制御信号に従
つて待合レジスタ12−1又は12−2を選択す
る。選択制御回路19は、1サイクル毎に制御信
号の値を反転する。命令発信制御回路15は、レ
ジスタ干渉チエツク回路18−1と18−2の双
方がレジスタ干渉なしを示していること等を条件
として、セレクタ14の出力がベクトル加算命令
のときはこれを加算レジスタ17に、セレクタ1
4の出力がベクトル乗算命令の場合にはこれを乗
算レジスタ16に移し、これと同時に演算処理部
起動情報を送出する。レジスタ干渉チエツク回路
18−1と18−2の詳細については後述する。 第6図は命令の追越しが行われる場合のタイム
チヤートである。VM1,2,3なる命令情報
は、時刻T=0でフエツチ・レジスタ10にセツ
トされ、T=1で待合レジスタ12−1に移さ
れ、T=2で乗算レジスタ16に移され、そして
乗算が開始される。乗算開始と同時にWRITE開
始前フラグオンされる。このフラグはベクトル・
レジスタへの演算結果の書込みが開始されると、
オフされる。VA4,5,1なる命令情報は、T
=1でフエツチ・レジスタ10にセツトされ、T
=2で待合レジスタ12−2にセツトされる。乗
算レジスタ16に保持されているVM1,2,3
の第1オペランド・レジスタと待合レジスタ12
−2に保持されているVA4,5,1の第1ベク
トル・レジスタとがレジスタ干渉を起しているの
で、待合レジスタ12−2の命令の発信は待たさ
れる。T=2でVA7,8,9がフエツチ・レジ
スタ10にセツトされる。待合レジスタ12−2
に保持されているVA4,5,1とフエツチ・レ
ジスタ10に保持されているVA7,8,9との
間にはレジスタ干渉がないので、T=3でVA
7,8,9が待合レジスタ12−1に移され、命
令の発信を妨げる要因がないので、T=4でVA
7,8,9は加算レジスタ17に移されると共
に、加算器8に対して処理の起動がかかる。 第7図はレジスタ干渉チエツク回路18−1の
1実施例を示すものである。なお、レジスタ干渉
チエツク回路18−1と18−2は同一構成であ
る。第7図において、20と21は一致回路、2
2と23はAND回路、24はOR回路をそれぞれ
示している。一致回路20には、演算処理中命令
第1オペランド・レジスタ番号と演算命令第2オ
ペランド・レジスタ番号とが入力され、一致回路
21には、演算処理中命令第1オペランド・レジ
スタ番号と演算処理命令第3オペランド・レジス
タ番号とが入力される。AND回路22には演算
処理中命令WRITE開始前フラグと一致回路20
の出力とが入力され、AND回路23には演算処
理命令WRITE開始前フラグと一致回路21の出
力が入力される。AND回路22,23の出力は
OR回路24に入力される。OR回路24の出力が
論理「1」のときレジスタ干渉ありを示す。 第8図はレジスタ干渉チエツク回路13−1の
1実施例を示すものである。第8図において、2
5ないし27は一致回路、28はOR回路をそれ
ぞれ示している。一致回路25,26,27の一
方の入力端子には命令レジスタ10の第1オペラ
ンド・レジスタ番号が入力され、一致回路25の
他方の入力端子には待合レジスタの第1オペラン
ド・レジスタ番号が入力され、一致回路26の他
方の入力端子には待合レジスタの第2オペラン
ド・レジスタ番号が入力され、一致回路27の他
方の入力端子には待合レジスタの第3のオペラン
ド・レジスタ番号が入力されれる。一致回路2
5,26,27の出力はOR回路28に入力され
る。OR回路28の出力が論理「1」のとき、レ
ジスタ干渉有りを示す。 第9図は本発明の第2実施例のブロツク図、第
10図は優先設定回路の論理を示すフローチヤー
ト、第11図はレジスタ干渉チエツク回路の1実
施例のブロツク図である。 第9図において、110は命令フエツチ・レジ
スタ、111は待合レジスタ投入制御回路、11
2−1と112−2は待合レジスタ、113はレ
ジスタ干渉チエツク回路、114はセレクタ、1
15は命令発信制御回路、116は乗算レジス
タ、117は加算レジスタ、118−1と118
−2はレジスタ干渉チエツク回路、120は優先
設定回路、121は優先フリツプ・フロツプをそ
れぞれ示している。なお、110,112−1,
112−2,114,116,117,118−
1,118−2で示されるものは、それぞれ符号
10,12−1,12−2,14,16,17,
18−1,18−2で示されるものと同一であ
る。 第9図の第2実施例は、待合レジスタ112−
1,112−2に格納される命令情報に対して優
先順位を与え、これらの命令情報のの間にレジス
タ干渉がある場合には、優先順位の高い命令を先
に実行するようにしたものである。この第2実施
例においては、待合レジスタ投入制御回路111
は、待合レジスタ112−1又は112に空きが
あると、レジスタ干渉をチエツクをすることな
く、フエツチ・レジスタ110の命令情報を空き
の待合レジスタに移す。 第10図は優先設定回路120の論理を示すフ
ローチヤートである。なお、Q1は待合レジスタ
112−1を示し、Q2は待合レジスタ112−
2を示している。優先順位の設定は下記のように
して設定される。 (イ) 命令情報がQ1にセツトされるか否かを調べ
る。Yesの場合は(ロ)の処理を行い、Noの場合は
(ホ)の処理を行う。 (ロ) Q2がパリツドであるか、否かを調べる。No
のときは(ニ)の処理を行い、Yesの場合は(ト)の処
理を行う。 (ハ) Q1がリリースされるか、否かを調べる。リ
リースとは、Q1の命令を命令発信制御回路1
15が取込み乗算レジスタ116又は加算レジ
スタ117にセツトすることを意味している。
Noのときは(ニ)の処理が行われ、Yesのときは(チ)
の処理が行われる。 (ニ) Q1の優先順位をQ2より高くする。 (ホ) 命令情報がQ2にセツトされるか、否かを調
べる。Noであれば(リ)の処理を行い、Yesであれ
ば(ヘ)の処理を行う。 (ヘ) Q1がバリツドであるか、否かを調べる。No
であれば(チ)の処理を行い、Yesの場合は(ハ)の処
理を行う。 (ト) Q2がリリースされるか否かを調べる。Noの
場合は(チ)の処理を行い、Yesの場合は(ニ)の処理
を行う。 (チ) Q2の優先順位をQ1より高くする。 (リ) Q1の優先順位がQ2より高きか、否かを調べ
る。Yesの場合は(ニ)の処理を行い、Noの場合は
(チ)の処理を行う。 第11図はレジスタ干渉チエツク回路113の
1実施例のブロツク図である。第11図におい
て、122ないし126は一致回路、127は
OR回路、128と129はAND回路、130は
OR回路をそれぞれ示している。 待合レジスタ112−2の第1オペランド・レ
ジスタ番号は一致回路122,123,124の
一方の入力端子に入力され、一致回路122の他
方の入力端子には待合レジスタ112−1の第2
オペランド・レジスタ番号が入力され、一致回路
123の他方の入力端子には待合レジスタ112
−1の第3オペランド・レジスタ番号が入力さ
れ、一致回路124の他方の入力端子には待合レ
ジスタ112−1の第1オペランド・レジスタ番
号が入力される。一致回路125,126の一方
の入力端子には待合レジスタ112−1の第1オ
ペランド・レジスタ番号が入力され、一致回路1
25の他方の入力端子には待合レジスタ112−
2の第2オペランド・レジスタ番号が入力され、
一致回路126の他方の入力端子には待合レジス
タ112−2の第3オペランド・レジスタ番号が
入力される。一致回路122,123,124,
125,126の出力はOR回路127に入力さ
れる。OR回路127の否定出力が論理「1」の
ときはレジスタ干渉なしを示しており、OR回路
127の肯定出力が論理「1」のときはレジスタ
干渉ありを示している。AND回路128は、レ
ジスタ干渉があること、待合レジスタ112−1
が選択されていること及び待合レジスタ112−
1の優先順位が高いことを条件として論理「1」
を出力する。AND回路129は、レジスタ干渉
があること、待合レジスタ112−2が選択され
ていること及び待合レジスタ112−2の優先順
位が高いことを条件として論理「1」を出力す
る。OR回路130には、OR回路127の否定出
力、AND回路128の出力およびAND回路12
9の出力が入力される。OR回路130の出力が
命令実行可能状態信号となり、この信号は命令発
信制御回路115に送られる。命令発信制御回路
115は、論理「1」の命令実行可能状態信号を
受取ると、セレクタ114の出力する命令情報を
取込み、レジスタ干渉チエツクなどを行う。上述
の説明では、第10図のような論理をもつ優先設
定回路120で以て優先順位を決定しているが、
フエツチ・レジスタ110から待合レジスタ11
2−1又は112−2に命令を投入するときに、
命令番号を付与して該番号により優先順位を決定
することも可能である。 第12図は本発明の第3実施例を示すブロツク
図、第13図はその動作を示すタイムチヤートで
ある。第12図において、210はフエツチ・レ
ジスタ、211は待合レジスタ投入制御回路、2
12は待合レジスタ、213−1と213−2も
待合レジスタ、224はセレクタ、225は命令
発信制御回路、226は乗算レジスタ、227は
加算レジスタ、228−1と228−2はレジス
タ干渉チエツク回路をそれぞれ示している。符号
210,224,225,226,227,22
8−1,228−2で示されるものは、それぞれ
付号10,14,15,16,17,18−1,
18−2で示されるものと略ぼ同じである。 待合レジスタ212には乗算命令が格納され、
待合レジスタ213−1および213−2には加
算命令が格納される。待合レジスタ213−1に
投入された加算命令は、待合レジスタ213−2
の加算命令が空きになると、待合レジスタ213
−2に移される。待合レジスタ投入制御回路21
1は、さきに述べたようにレジスタ干渉チエツク
を行つて待合レジスタ212又は213−1への
命令情報の投入を行つている。 第13図は第12図の実施例の動作を示すタイ
ムチヤートである。なお、Fはフエツチ・レジス
タ210、AQBは待合レジスタ213−1、AQ
は待合レジスタ213−2、ARは乗算レジスタ
227、MQは待合レジスタ212、MRは乗算
レジスタ226を意味している。第13図は、 VA1,2,3 VA4,5,1 VA7,8,4 VMA,B,C VMD,E,A という命令系列を実行する場合を示している。先
ず、の命令がフエツチ・レジスタFにセツトさ
れ、次のサイクルでこの命令は待合レジスタ
AQBに移され、次のサイクルでレジスタAQに移
され、T=0で加算レジスタARに移される。
の命令は1サイクル遅れてフエツチ・レジスタF
に移され、次のサイクルで待合レジスタAQBに
移され、T=0で待合レジスタAQに移される。
そして、の命令が終了すると、加算レジスタ
ARに移される。の命令は、の命令より1サ
イクル遅れてフエツチ・レジスタFにセツトさ
れ、次のサイクル(T=0)で待合レジスタ
AQBに移され、待合レジスタAQが空いたときそ
こに移され、の命令が終了すると、加算レジス
タARに移される。の命令は、の命令より1
サイクル遅れてT=0でフエツチ・レジスタFに
セツトされ、次のサイクルで待合レジスタMQに
移され、次のサイクルで乗算レジスタMRに移さ
れる。の命令は、T=1でフエツチ・レジスタ
Fにセツトされ、次のサイクルで待合レジスタ
MQに移され、の命令が終了すると、乗算レジ
スタMRに移される。 第14図は待合レジスタAQBが存在しない場
合に同一の命令系列を実行するための動作を示し
ている。第14図の場合にはないしの命令系
列を実行するためには55サイクルを必要とする
が、第13図に場合には39サイクルで済む。な
お、第12図の実施例において、待合レジスタ2
13−1と213−2の双方に命令が入つていな
い場合には、命令を直接に待合レジスタ213−
2に投入するように制御することも可能である。 以上の説明から明らかなように、本発明によれ
ば、少ない金物量で以て命令処理時間を大幅に短
縮することが可能となる。
The present invention relates to an instruction control system that allows a later instruction to be executed before an earlier instruction in a data processing device, such as a vector processing device. Second operand A with multiple elements
(a 0 , a 1 , ...a o-1 ) and multiple elements B
(b 0 , b 1 , ...b o-1 ) on the corresponding elements, and the first operand of the result C (c 0 ,
c 1 , . . . c o-1 ) is called a vector processing device. On the other hand, a conventional general-purpose processing device in which the number of elements is limited to one (n=1) is called a scalar processing device. FIG. 1 shows an overview of a vector processing device, in which 1 is a main memory, 2 is a main memory control device,
3 is a vector processing device, 4 is a store processing section, 5 is a load processing section, 6 is a vector register, 7 is a multiplier, 8 is an adder, and 9 is an instruction control section. Note that solid line arrows indicate the flow of data, and dotted line arrows indicate the flow of control signals.
The store control unit 4 is for storing data in the vector register in the main memory 1, and the load processing unit 5 is for reading data from the main memory 1 and storing it in the vector register 6. It is. The vector register 6 has a plurality of vector registers that hold vector data consisting of a plurality of elements. The store processing section 4, the load processing section 5, the multiplier 7, and the adder 8 have a pipeline structure. Command control unit 9
controls the vector register 6, store processing unit 4, load processing unit 5, multiplier 7, adder 8, etc. The present invention relates to this instruction control section. In the present invention, the store processing section 4, load processing section 5, multiplier 7, and adder 8 are collectively referred to as an arithmetic processing section. A vector instruction has an instruction code, a first operand designation, a second operand designation, and a third operand designation part. Vector multiplication instructions are represented by VM1,2,3. This multiplies the contents of vector register 2 and vector register 3 and places the result in vector register 1. A vector addition instruction is represented by VA4,5,1, for example. This adds the contents of vector register 5 and vector register 1 and places the result in vector register 1. When processing a vector instruction, the multiplier 7, adder 8, etc. are arranged in a pipeline structure, and the subsequent element is input before the arithmetic processing of the preceding element is completed. Figure 2 shows the processing status of the vector addition instruction in the adder 8. (1) Read data (READ) (2) Compare the exponents of both operands (COMPARE) (3) Shift for exponent matching (PRE−
SHIFT) (4) Addition (ADD) (5) Shift for normalization after operation (POST
SHIFT) (6) Data writing (WRITE) 6-stage pipeline. Instruction processing is represented by a parallelogram as shown in FIG. Next, problems with the conventional command control method will be explained. Now, suppose we have a vector instruction sequence: VM1, 2, 3 VA 4, 5, 1 VA 7, 8, 9. The conventional processing at this time is shown in FIG. However, the vector multiplication instruction is an 11-stage pipeline,
It is assumed that the number of elements is eight. In Figure 3, VA
The reason why 4, 5, 1 starts from time = 11 is because
This is because VA4, 5, and 1 use the result data of VA1, 2, and 3. By the way, VA7, 8, 9 do not interfere with the preceding instruction and the vector register, so VA4, 5,
By executing VA7, 8, and 9 before VA1, the instruction processing time can be shortened. Fourth
The figure shows the state at this time. As is clear from FIGS. 3 and 4, the instruction processing time in FIG. 4 is nine cycles shorter than that in FIG. 3. In this way, there has never been a vector processing device that changes the order of vector instructions instructed by a program. In a scalar processing unit, each arithmetic processing unit has an operand register that holds the operands of multiple instructions. Flags for identification
There is a method of providing an operand reservation section having registers and a common bus for sending result data of each arithmetic processing section to the operand reservation section. Applying this method to a vector processing device would make the operand reservation section huge and unnecessarily increase the amount of hardware, which is not a good idea. The present invention is based on the above considerations, and includes:
The objective is to realize an instruction control method that executes later instructions before earlier instructions and reduces instruction processing time with a small amount of hardware. And for that reason,
The instruction control method of the present invention uses vector registers,
In a vector processing device having a plurality of pipeline-structured arithmetic processing units that process vector data of the vector register as operand data, an instruction register in which a vector instruction is set, a plurality of waiting registers, an input control circuit that stores vector instruction information in the instruction register in the waiting register; an execution information holding register that holds vector instruction information of a vector instruction that is currently being executed; and an input control circuit that stores the vector instruction information in the waiting register. an instruction transmission control circuit that stores the transmitted vector instruction information in a corresponding executing instruction information holding register at the same time as executing the instruction; and a comparison means that compares the vector instruction information of the waiting register with the vector instruction information of the executing instruction information holding register. and the instruction transmission control unit transmits vector instruction information for which the comparison means has determined that there is no factor preventing the start of instruction execution from among the vector instruction information in the plurality of waiting registers. This is a characteristic feature. Hereinafter, the present invention will be explained with reference to the drawings. FIG. 5 is a block diagram of the first embodiment of the instruction control unit of the present invention, FIG. 6 is a time chart when an instruction is overtaken, and FIGS. 7 and 8 are one embodiment of a register interference check circuit. FIG. In FIG. 5, 10 is a fetch register;
11 is a waiting register input control circuit, 12-1 and 1
2-2 is a waiting register, 13-1 and 13-2 are register interference check circuits, 14 is a selector, 15
is an instruction transmission control circuit, 16 is a multiplication register, 17
18 shows an addition register, 18-1 and 18-2 a register interference check circuit, and 19 a selection control circuit, respectively. Fetch register 10 is set with instruction information fetched from main memory 1. The waiting register input control circuit 11 transfers the instruction information of the fetch register 10 to the waiting register 12-1 or 12-2 on the condition that the register interference check circuits 13-1 and 13-2 indicate that there is no register interference. Move to. Register interference check circuit 1
Details of 3-1 and 13-2 will be described later. The selector 14 selects the waiting register 12-1 or 12-2 according to a control signal from the selection control circuit 19. The selection control circuit 19 inverts the value of the control signal every cycle. When the output of the selector 14 is a vector addition instruction, the instruction transmission control circuit 15 transfers it to the addition register 17, provided that both register interference check circuits 18-1 and 18-2 indicate no register interference. , selector 1
If the output of step 4 is a vector multiplication instruction, it is transferred to the multiplication register 16, and at the same time, arithmetic processing unit activation information is sent out. Details of the register interference check circuits 18-1 and 18-2 will be described later. FIG. 6 is a time chart when instructions are overtaken. The instruction information VM1, 2, 3 is set in the fetch register 10 at time T=0, transferred to the waiting register 12-1 at T=1, transferred to the multiplication register 16 at T=2, and then multiplied. Begins. The pre-WRITE flag is turned on at the same time as multiplication starts. This flag is a vector
When writing of the operation result to the register starts,
It will be turned off. The command information VA4,5,1 is T
= 1, it is set in fetch register 10, and T
=2, it is set in the waiting register 12-2. VM1, 2, 3 held in multiplication register 16
1st operand register and waiting register 12
Since there is register interference with the first vector registers of VA4, 5, and 1 held at VA-2, the transmission of the command from the waiting register 12-2 is delayed. At T=2, VA7, 8, and 9 are set in fetch register 10. Waiting register 12-2
Since there is no register interference between VA4, 5, 1 held in the fetch register 10 and VA7, 8, 9 held in the fetch register 10, VA
7, 8, and 9 are moved to the waiting register 12-1, and since there is no factor that prevents the command from being issued, VA is set at T=4.
7, 8, and 9 are transferred to the addition register 17, and the adder 8 is started to process. FIG. 7 shows one embodiment of the register interference check circuit 18-1. Note that the register interference check circuits 18-1 and 18-2 have the same configuration. In FIG. 7, 20 and 21 are matching circuits, 2
2 and 23 are AND circuits, and 24 is an OR circuit, respectively. The matching circuit 20 receives the first operand register number of the instruction being processed and the second operand register number of the processing instruction, and the matching circuit 21 receives the first operand register number of the instruction currently processing and the processing instruction. The third operand register number is input. The AND circuit 22 includes a pre-start flag for the instruction WRITE during arithmetic processing and a match circuit 20.
The AND circuit 23 receives the arithmetic processing instruction WRITE pre-start flag and the output of the coincidence circuit 21 . The output of AND circuits 22 and 23 is
It is input to the OR circuit 24. When the output of the OR circuit 24 is logic "1", it indicates that there is register interference. FIG. 8 shows one embodiment of the register interference check circuit 13-1. In Figure 8, 2
5 to 27 indicate matching circuits, and 28 indicates an OR circuit, respectively. The first operand register number of the instruction register 10 is input to one input terminal of the matching circuits 25, 26, and 27, and the first operand register number of the waiting register is input to the other input terminal of the matching circuit 25. , the second operand register number of the waiting register is input to the other input terminal of the matching circuit 26, and the third operand register number of the waiting register is input to the other input terminal of the matching circuit 27. Matching circuit 2
The outputs of 5, 26, and 27 are input to an OR circuit 28. When the output of the OR circuit 28 is logic "1", it indicates that there is register interference. FIG. 9 is a block diagram of a second embodiment of the present invention, FIG. 10 is a flowchart showing the logic of the priority setting circuit, and FIG. 11 is a block diagram of one embodiment of the register interference check circuit. In FIG. 9, 110 is an instruction fetch register, 111 is a waiting register input control circuit, and 11
2-1 and 112-2 are waiting registers, 113 is a register interference check circuit, 114 is a selector, 1
15 is an instruction transmission control circuit, 116 is a multiplication register, 117 is an addition register, 118-1 and 118
-2 represents a register interference check circuit, 120 represents a priority setting circuit, and 121 represents a priority flip-flop. In addition, 110, 112-1,
112-2, 114, 116, 117, 118-
Those indicated by 1,118-2 are respectively 10, 12-1, 12-2, 14, 16, 17,
It is the same as that shown by 18-1 and 18-2. The second embodiment of FIG. 9 has a waiting register 112-
A priority is given to the instruction information stored in 1 and 112-2, and if there is register interference between these instruction information, the instruction with a higher priority is executed first. be. In this second embodiment, the waiting register input control circuit 111
If there is an empty waiting register 112-1 or 112, the instruction information in the fetch register 110 is moved to the empty waiting register without checking for register interference. FIG. 10 is a flowchart showing the logic of the priority setting circuit 120. Note that Q 1 indicates the waiting register 112-1, and Q 2 indicates the waiting register 112-1.
2 is shown. The priority order is set as follows. (b) Check whether the instruction information is set to Q1 . If Yes, process (b); if No, process
Perform the processing in (e). (b) Check whether Q 2 is paritud or not. No
If yes, perform process (d); if Yes, perform process (g). (c) Find out whether Q 1 will be released or not. Release means that the Q 1 command is sent to the command transmission control circuit 1.
15 means setting in the acquisition multiplication register 116 or addition register 117.
If No, process (d) will be performed, if Yes, process (ch) will be performed.
processing is performed. (d) Set the priority of Q 1 higher than Q 2 . (e) Check whether the instruction information is set to Q2 . If No, perform the process in (i), and if Yes, perform the process in (f). (f) Check whether Q 1 is valid or not. No
If so, perform the process in (H), and if Yes, perform the process in (C). (g) Find out whether Q 2 will be released. If No, perform process (H); if Yes, perform process (D). (H) Set the priority of Q 2 higher than Q 1 . (li) Check whether the priority of Q 1 is higher than Q 2 . If Yes, process (d); if No, process
Perform the processing in (h). FIG. 11 is a block diagram of one embodiment of register interference check circuit 113. In FIG. 11, 122 to 126 are matching circuits, and 127 is a matching circuit.
OR circuit, 128 and 129 are AND circuit, 130 is
Each shows an OR circuit. The first operand register number of the waiting register 112-2 is input to one input terminal of the matching circuits 122, 123, 124, and the second operand register number of the waiting register 112-1 is input to the other input terminal of the matching circuit 122.
The operand register number is input, and the waiting register 112 is input to the other input terminal of the matching circuit 123.
The third operand register number -1 is input, and the first operand register number of the waiting register 112-1 is input to the other input terminal of the matching circuit 124. The first operand register number of the waiting register 112-1 is input to one input terminal of the matching circuits 125 and 126, and the matching circuit 1
25 has a waiting register 112-
The second operand register number of 2 is input;
The third operand register number of the waiting register 112-2 is input to the other input terminal of the matching circuit 126. Matching circuits 122, 123, 124,
The outputs of 125 and 126 are input to an OR circuit 127. When the negative output of the OR circuit 127 is logic "1", it indicates that there is no register interference, and when the positive output of the OR circuit 127 is logic "1", it indicates that there is register interference. AND circuit 128 detects that there is register interference, waiting register 112-1
is selected and the waiting register 112-
Logical “1” with the condition that 1 has higher priority
Output. The AND circuit 129 outputs logic "1" under the conditions that there is register interference, that the waiting register 112-2 is selected, and that the priority of the waiting register 112-2 is high. The OR circuit 130 includes the negative output of the OR circuit 127, the output of the AND circuit 128, and the output of the AND circuit 12.
The output of 9 is input. The output of the OR circuit 130 becomes a command executable state signal, and this signal is sent to the command generation control circuit 115. When the instruction generation control circuit 115 receives the instruction executable state signal of logic "1", it takes in the instruction information output from the selector 114 and performs a register interference check and the like. In the above explanation, the priority order is determined by the priority setting circuit 120 having the logic as shown in FIG.
From fetish register 110 to waiting register 11
When inputting a command to 2-1 or 112-2,
It is also possible to assign an instruction number and determine the priority order based on the number. FIG. 12 is a block diagram showing a third embodiment of the present invention, and FIG. 13 is a time chart showing its operation. In FIG. 12, 210 is a fetch register, 211 is a waiting register input control circuit, and 2
12 is a waiting register, 213-1 and 213-2 are also waiting registers, 224 is a selector, 225 is an instruction transmission control circuit, 226 is a multiplication register, 227 is an addition register, 228-1 and 228-2 are register interference check circuits. are shown respectively. Code 210, 224, 225, 226, 227, 22
8-1, 228-2 are numbered 10, 14, 15, 16, 17, 18-1, respectively.
It is almost the same as that shown by 18-2. A multiplication instruction is stored in the waiting register 212,
Addition instructions are stored in waiting registers 213-1 and 213-2. The addition instruction input to the waiting register 213-1 is transferred to the waiting register 213-2.
When the addition instruction becomes empty, the waiting register 213
-2. Waiting register input control circuit 21
1 performs a register interference check as described above and inputs instruction information to the waiting register 212 or 213-1. FIG. 13 is a time chart showing the operation of the embodiment of FIG. 12. In addition, F is the fetch register 210, AQB is the waiting register 213-1, AQ
stands for the waiting register 213-2, AR stands for the multiplication register 227, MQ stands for the waiting register 212, and MR stands for the multiplication register 226. FIG. 13 shows the case where the instruction sequence VA1, 2, 3 VA 4, 5, 1 VA 7, 8, 4 VMA, B, C VMD, E, A is executed. First, the instruction is set in fetch register F, and in the next cycle, this instruction is set in fetch register F.
It is moved to AQB, and in the next cycle it is moved to register AQ, and at T=0 it is moved to addition register AR.
The instruction in fetch register F is delayed by one cycle.
In the next cycle, it is moved to the waiting register AQB, and at T=0, it is moved to the waiting register AQ.
Then, when the instruction of is finished, the addition register is
Moved to AR. The instruction is set in the fetch register F one cycle later than the instruction in , and is set in the fetch register F in the next cycle (T=0).
It is moved to AQB, when the waiting register AQ becomes free, it is moved there, and when the instruction in is completed, it is moved to the addition register AR. The command of is 1 more than the command of
After a cycle delay, it is set in fetch register F at T=0, moved to waiting register MQ in the next cycle, and moved to multiplication register MR in the next cycle. The instruction is set in the fetch register F at T=1, and is set in the waiting register F in the next cycle.
It is moved to MQ, and when the instruction in is completed, it is moved to multiplication register MR. FIG. 14 shows the operation for executing the same instruction sequence when the waiting register AQB does not exist. In the case of FIG. 14, 55 cycles are required to execute the instruction sequence, but in the case of FIG. 13, only 39 cycles are required. In addition, in the embodiment shown in FIG. 12, the waiting register 2
If there is no instruction in both registers 13-1 and 213-2, the instruction is sent directly to the waiting register 213-2.
It is also possible to control the amount to be input at 2. As is clear from the above description, according to the present invention, it is possible to significantly shorten the instruction processing time with a small amount of hardware.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図はベクトル処理装置の概要を示す図、第
2図は加算器におけるベクトル加算命令の処理状
況を示す図、第3図はベクトル命令系列の従来の
処理を示す図、第4図は後発のベクトル命令を先
発のベクトル命令より先に実行した場合の命令処
理時間の短縮を説明する図、第5図は本発明の第
1実施例のブロツク図、第6図は命令の追越しが
行われる場合のタイムチヤート、第7図および第
8図はレジスタ干渉チエツク回路の1実施例のブ
ロツク図、第9図は本発明の第2実施例のブロツ
ク図、第10図は優先設定回路の論理を示すフロ
ーチヤート、第11図は第2実施例におけるレジ
スタ干渉チエツク回路の1実施例のブロツク図、
第12図は本発明の第3実施例のブロツク図、第
13図はその動作を示すタイムチヤート、第14
図は比較のためのタイムチヤートである。 10…フエツチ・レジスタ、11…待合レジス
タ投入制御回路、12−1と12−2…待合レジ
スタ、13−1と13−2…レジスタ干渉チエツ
ク回路、14…セレクタ、15…命令発信制御回
路、16…乗算レジスタ、17…加算レジスタ、
18−1と18−2…レジスタ干渉チエツク回
路、19…選択制御回路、110…フエツチ・レ
ジスタ、111…待合レジスタ投入制御回路、1
12−1と112−2…待合レジスタ、113…
レジスタ干渉チエツク回路、120…優先設定回
路、121…優先フリツプ・フロツプ、212…
待合レジスタ、213−1と213−2…待合レ
ジスタ。
Figure 1 is a diagram showing an overview of a vector processing device, Figure 2 is a diagram showing the processing status of vector addition instructions in an adder, Figure 3 is a diagram showing conventional processing of vector instruction sequences, and Figure 4 is a diagram showing later development. FIG. 5 is a block diagram of the first embodiment of the present invention, and FIG. 6 is a diagram illustrating the reduction in instruction processing time when a vector instruction is executed before the preceding vector instruction. 7 and 8 are block diagrams of one embodiment of the register interference check circuit, FIG. 9 is a block diagram of the second embodiment of the present invention, and FIG. 10 shows the logic of the priority setting circuit. 11 is a block diagram of one embodiment of the register interference check circuit in the second embodiment,
FIG. 12 is a block diagram of the third embodiment of the present invention, FIG. 13 is a time chart showing its operation, and FIG.
The figure is a time chart for comparison. 10...Fetch register, 11...Waiting register input control circuit, 12-1 and 12-2...Waiting register, 13-1 and 13-2...Register interference check circuit, 14...Selector, 15...Instruction transmission control circuit, 16 ...Multiplication register, 17...Addition register,
18-1 and 18-2...Register interference check circuit, 19...Selection control circuit, 110...Fetch register, 111...Waiting register input control circuit, 1
12-1 and 112-2...waiting register, 113...
Register interference check circuit, 120...Priority setting circuit, 121...Priority flip-flop, 212...
Waiting registers, 213-1 and 213-2...Waiting registers.

Claims (1)

【特許請求の範囲】 1 ベクトル・レジスタと、該ベクトル・レジス
タのベクトル・データをオペランド・データとし
て処理を行う複数個のパイプライン構造の演算処
理部とを具備するベクトル処理装置において、ベ
クトル命令がセツトされる命令レジスタと、複数
の待合レジスタと、上記命令レジスタのベクトル
命令情報を上記待合レジスタに格納する投入制御
回路と、演算実行中のベクトル命令のベクトル命
令情報を保持する実行中情報保持レジスタと、上
記待合レジスタ内のベクトル命令情報の発信を行
うと共に発信したベクトル命令情報を対応する実
行中命令情報保持レジスタに格納する命令発信制
御回路と、上記待合レジスタのベクトル命令情報
と上記実行中命令情報保持レジスタのベクトル命
令情報とを比較する比較手段とを具備し、且つ上
記命令発信制御部が、上記複数の待合レジスタの
ベクトル命令情報のうち上記比較手段によつて命
令実行開始を妨げる要因がないと判断されたベク
トル命令情報を発信することを特徴とする命令制
御方式。 2 命令レジスタのベクトル命令情報と待合レジ
スタのベクトル命令情報を比較する比較手段を有
し、該比較手段によつて命令レジスタのベクトル
命令情報と待合レジスタのベクトル命令情報との
間にベクトル命令の順序性を区別する必要がない
と判断された時、投入制御回路によつて命令レジ
スタのベクトル命令情報が待合レジスタに移され
ることを特徴とする特許請求の範囲第1項記載の
命令制御方式。 3 複数の待合レジスタの中から1個を選択する
選択回路を設け、該選択回路で選択された待合レ
ジスタのベクトル命令情報と実行中命令情報保持
レジスタのベクトル命令情報とを比較手段で比較
することを特徴とする特許請求の範囲第1項又は
第2項記載の命令制御方式。 4 待合レジスタ間での順序性を識別する順序性
識別手段と、待合レジスタの間でベクトル命令情
報を比較する比較手段とを有し、該比較手段によ
つて待合レジスタの間でレジスタの干渉がないと
判断されたときには待合レジスタにある全てのベ
クトル命令が命令実行開始状態にあるとされ、待
合レジスタの間でレジスタ干渉があると判断され
たときには順序性識別手段によつて優先順位が高
いとされたベクトル命令が命令実行開始可能状態
にあるとされることを特徴とする特許請求の範囲
第1項記載の命令制御方式。 5 複数の待合レジスタは複数のグループに分割
され、グループ内では先入れ先出し方式で1個の
ベクトル命令情報が選択され、グループ毎に選択
された演算実行前のベクトル命令情報と実行中命
令情報保持レジスタのベクトル情報とが比較手段
で比較されることを特徴とする特許請求の範囲第
1項記載の命令制御方式。
[Claims] 1. In a vector processing device that includes a vector register and a plurality of pipeline-structured arithmetic processing units that process vector data in the vector register as operand data, a vector instruction is an instruction register to be set, a plurality of waiting registers, an input control circuit that stores the vector instruction information of the instruction register in the waiting register, and an execution information holding register that holds the vector instruction information of the vector instruction that is currently being executed. an instruction transmission control circuit that transmits vector instruction information in the waiting register and stores the transmitted vector instruction information in a corresponding executing instruction information holding register; and a comparison means for comparing the vector instruction information in the information holding register, and the instruction transmission control section determines, by the comparison means, a factor that prevents the start of instruction execution from among the vector instruction information in the plurality of waiting registers. An instruction control method characterized by transmitting vector instruction information that is determined not to exist. 2. Comparing means for comparing vector instruction information in the instruction register and vector instruction information in the waiting register, and by the comparing means, the order of vector instructions is determined between the vector instruction information in the instruction register and the vector instruction information in the waiting register. 2. The instruction control method according to claim 1, wherein the vector instruction information in the instruction register is transferred to the waiting register by the input control circuit when it is determined that there is no need to distinguish between the instructions. 3. A selection circuit for selecting one of a plurality of waiting registers is provided, and a comparison means compares the vector instruction information of the waiting register selected by the selection circuit with the vector instruction information of the executing instruction information holding register. An instruction control system according to claim 1 or 2, characterized in that: 4. It has an order identification means for identifying the order among the waiting registers, and a comparison means for comparing vector instruction information between the waiting registers, and the comparison means prevents register interference between the waiting registers. When it is determined that there is no vector instruction, all vector instructions in the waiting register are considered to be in the instruction execution start state, and when it is determined that there is register interference between the waiting registers, the ordering identification means determines that the vector instructions have a high priority. 2. The instruction control method according to claim 1, wherein the vector instruction that has been executed is considered to be in a state where instruction execution can be started. 5 A plurality of waiting registers are divided into a plurality of groups, one vector instruction information is selected in a first-in, first-out manner within a group, and the vector instruction information before execution of the operation selected for each group and the executing instruction information holding register are combined. 2. The instruction control method according to claim 1, wherein the vector information is compared with the vector information by a comparing means.
JP56047774A 1981-03-30 1981-03-30 Instruction control system Granted JPS57161938A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP56047774A JPS57161938A (en) 1981-03-30 1981-03-30 Instruction control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56047774A JPS57161938A (en) 1981-03-30 1981-03-30 Instruction control system

Publications (2)

Publication Number Publication Date
JPS57161938A JPS57161938A (en) 1982-10-05
JPS6134186B2 true JPS6134186B2 (en) 1986-08-06

Family

ID=12784722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56047774A Granted JPS57161938A (en) 1981-03-30 1981-03-30 Instruction control system

Country Status (1)

Country Link
JP (1) JPS57161938A (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59158441A (en) * 1983-03-01 1984-09-07 Nec Corp Pipeline control system
JPS6116335A (en) * 1984-07-02 1986-01-24 Nec Corp Information processor
DE3750055T2 (en) * 1986-06-12 1995-01-05 Ibm Sequence control and associated method in a command processing unit to put this unit in a release, execution, hold or release state.
JPH0673105B2 (en) * 1988-08-11 1994-09-14 株式会社東芝 Instruction pipeline type microprocessor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51854A (en) * 1974-06-21 1976-01-07 Hitachi Ltd Deijitarukeisankino senkoseigyohoshiki
JPS5199427A (en) * 1975-02-27 1976-09-02 Hitachi Ltd
JPS5421150A (en) * 1977-07-18 1979-02-17 Nec Corp Information processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51854A (en) * 1974-06-21 1976-01-07 Hitachi Ltd Deijitarukeisankino senkoseigyohoshiki
JPS5199427A (en) * 1975-02-27 1976-09-02 Hitachi Ltd
JPS5421150A (en) * 1977-07-18 1979-02-17 Nec Corp Information processor

Also Published As

Publication number Publication date
JPS57161938A (en) 1982-10-05

Similar Documents

Publication Publication Date Title
US4507728A (en) Data processing system for parallel processing of different instructions
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US4675806A (en) Data processing unit utilizing data flow ordered execution
US4734852A (en) Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
JP2503164B2 (en) Data processing system
US5261113A (en) Apparatus and method for single operand register array for vector and scalar data processing operations
US6219775B1 (en) Massively parallel computer including auxiliary vector processor
US5353418A (en) System storing thread descriptor identifying one of plural threads of computation in storage only when all data for operating on thread is ready and independently of resultant imperative processing of thread
JP2645669B2 (en) Data processing system
US5680338A (en) Method and system for vector processing utilizing selected vector elements
JPH0731597B2 (en) Processor with multiple microprogram controlled processors
US4967350A (en) Pipelined vector processor for executing recursive instructions
JP2008181551A (en) Vector tailgating for computer provided with vector register
JP3797570B2 (en) Apparatus and method using semaphore buffer for semaphore instructions
US4853890A (en) Vector processor
EP0295646A2 (en) Arithmetic operation processing apparatus of the parallel processing type and compiler which is used in this apparatus
US4631672A (en) Arithmetic control apparatus for a pipeline processing system
US5745725A (en) Parallel instruction execution with operand availability check during execution
US4974198A (en) Vector processing system utilizing firm ware control to prevent delays during processing operations
US5276822A (en) System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction
JPS6134186B2 (en)
JPS59106075A (en) Data processing system
JPS6161416B2 (en)
EP0700005B1 (en) Vector data bypass mechanism for vector computer
JP2503984B2 (en) Information processing device