JP2920968B2 - 命令処理順序制御方式 - Google Patents
命令処理順序制御方式Info
- Publication number
- JP2920968B2 JP2920968B2 JP30794789A JP30794789A JP2920968B2 JP 2920968 B2 JP2920968 B2 JP 2920968B2 JP 30794789 A JP30794789 A JP 30794789A JP 30794789 A JP30794789 A JP 30794789A JP 2920968 B2 JP2920968 B2 JP 2920968B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- vector
- store
- input
- load
- 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 - Fee Related
Links
Landscapes
- Advance Control (AREA)
- Complex Calculations (AREA)
Description
【発明の詳細な説明】 (産業上の利用分野) 本発明は、ベクトル計算機における命令発行制御方式
において、プログラムで指定された命令実行順序によら
ず命令を発行、実行する方式に関するものである。
において、プログラムで指定された命令実行順序によら
ず命令を発行、実行する方式に関するものである。
(従来の技術) 従来より命令処理の高速化を目的とした、命令処理順
序を動的に決定しプログラムで指定された順序によらず
演算部、主記憶処理部に命令投入を行う方式がスカラ処
理を行う計算機で用いられている。(例えばIBM360/91
浮動少数処理装置:D.W.Anderson,F.J.Sparacio,F.M.Tom
asulo,“The IBM System/360 Model 91:Machine Philos
ophy and Instruction Handling"IBM Journal of Resea
rch & Development,pp.82−24,No.1Vol.11,January196
7:S.Weiss,J.E.Smith,“Instruction Issue Logic for
Pipelined Superconpmuters',11th Annual Internation
al Symposium on Computer Architecture,pp.110−118,
1984)。
序を動的に決定しプログラムで指定された順序によらず
演算部、主記憶処理部に命令投入を行う方式がスカラ処
理を行う計算機で用いられている。(例えばIBM360/91
浮動少数処理装置:D.W.Anderson,F.J.Sparacio,F.M.Tom
asulo,“The IBM System/360 Model 91:Machine Philos
ophy and Instruction Handling"IBM Journal of Resea
rch & Development,pp.82−24,No.1Vol.11,January196
7:S.Weiss,J.E.Smith,“Instruction Issue Logic for
Pipelined Superconpmuters',11th Annual Internation
al Symposium on Computer Architecture,pp.110−118,
1984)。
これら命令処理順序制御を行う計算機では、命令の入
出力オペランドであるレジスタやメモリ・アドレスの衝
突の検出および演算器や主記憶処理装置の使用状況を判
定しプログラムで指定された順序によらず演算部や主記
憶処理部への命令投入を決定する手段を有している。
出力オペランドであるレジスタやメモリ・アドレスの衝
突の検出および演算器や主記憶処理装置の使用状況を判
定しプログラムで指定された順序によらず演算部や主記
憶処理部への命令投入を決定する手段を有している。
上記の命令の入出力オペランドであるレジスタやメモ
リアドレスの衝突の検出及び演算器や主記憶装置の使用
状況を判定しプログラムで指定された順序によらず演算
部や主記憶処理部への命令投入を決定する方式は、スカ
ラ計算機のみならずベクトル計算機においても適用可能
であるが、ベクトル計算機では複数のメモリ参照ベクト
ル命令を、プログラムで指定された順序と逆順にして主
記憶処理部に投入してもよいかの判定が困難である。即
ち、プログラムで実行することが指定されているベクト
ルストア命令のストア開始起点アドレスをbasel、該ベ
クトルストア命令がストアするベクトルの要素間距離を
dist1、該ベクトルストア命令がストアするベクトル長
をlen1(len1≧1)とし、該ベクトルストア命令より後
で実行することがプログラムで指定されているベクトル
ロード命令のロード開始起点アドレスをbase2、該ベク
トルロード命令がロードするベクトルの要素間距離をdi
st2、該ベクトルロード命令がロードするベクトル長をl
en2(len2≧1)とすると、該ベクトルストア命令によ
ってストアされるアドレスの集合である{base1,base1
+dist1*1,base1+dist1*2,…,base1+dist1*(len1
−1)}と該ベクトルロード命令によってロードされる
アドレスの集合である{base2,base2+dist21,base2+d
ist2*2,…,base2+dist2*(len2−1)}との交わり
の集合が空である場合のみ、該ベクトルロード命令は該
ベクトルストア命令に先行して主記憶参照をおこなって
もよいと判定されるが、任意のbase1,dist1,len1(len1
≧1)、base2,dist2,len2(len2≧1)の組合せに対し
て判定を短時間で下すのは困難である。
リアドレスの衝突の検出及び演算器や主記憶装置の使用
状況を判定しプログラムで指定された順序によらず演算
部や主記憶処理部への命令投入を決定する方式は、スカ
ラ計算機のみならずベクトル計算機においても適用可能
であるが、ベクトル計算機では複数のメモリ参照ベクト
ル命令を、プログラムで指定された順序と逆順にして主
記憶処理部に投入してもよいかの判定が困難である。即
ち、プログラムで実行することが指定されているベクト
ルストア命令のストア開始起点アドレスをbasel、該ベ
クトルストア命令がストアするベクトルの要素間距離を
dist1、該ベクトルストア命令がストアするベクトル長
をlen1(len1≧1)とし、該ベクトルストア命令より後
で実行することがプログラムで指定されているベクトル
ロード命令のロード開始起点アドレスをbase2、該ベク
トルロード命令がロードするベクトルの要素間距離をdi
st2、該ベクトルロード命令がロードするベクトル長をl
en2(len2≧1)とすると、該ベクトルストア命令によ
ってストアされるアドレスの集合である{base1,base1
+dist1*1,base1+dist1*2,…,base1+dist1*(len1
−1)}と該ベクトルロード命令によってロードされる
アドレスの集合である{base2,base2+dist21,base2+d
ist2*2,…,base2+dist2*(len2−1)}との交わり
の集合が空である場合のみ、該ベクトルロード命令は該
ベクトルストア命令に先行して主記憶参照をおこなって
もよいと判定されるが、任意のbase1,dist1,len1(len1
≧1)、base2,dist2,len2(len2≧1)の組合せに対し
て判定を短時間で下すのは困難である。
そこで単純に判定可能な場合として、先行するベクト
ルストア命令で指定されたストア開始起点アドレスbase
1から該ベクトルストア命令の最終ストアアドレスであ
るbase1*dist1*(len1−1)までの間をアドレス集合
要素とする{add1:base1≦add1≧(base1*dist1*(le
n1−1))}と、後続するベクトルロード命令で指定さ
れたロード開始起点アドレスbase2から該ベクトルロー
ド命令の最終ストアアドレスであるbase2+(len2−
1)×dist2までの間をアドレス集合要素とする{add2:
base2≦add2≧(base2*dist2*(len2−1))}との
交わりの集合が空であるならば主記憶参照に関して追い
越しても構わないとする、アドレス範囲の重複を判定す
る方法が考案さている。
ルストア命令で指定されたストア開始起点アドレスbase
1から該ベクトルストア命令の最終ストアアドレスであ
るbase1*dist1*(len1−1)までの間をアドレス集合
要素とする{add1:base1≦add1≧(base1*dist1*(le
n1−1))}と、後続するベクトルロード命令で指定さ
れたロード開始起点アドレスbase2から該ベクトルロー
ド命令の最終ストアアドレスであるbase2+(len2−
1)×dist2までの間をアドレス集合要素とする{add2:
base2≦add2≧(base2*dist2*(len2−1))}との
交わりの集合が空であるならば主記憶参照に関して追い
越しても構わないとする、アドレス範囲の重複を判定す
る方法が考案さている。
(発明が解決しようとする問題点) 前述したアドレス範囲の重複を判定する方法は比較的
簡単に実現できる反面、追越し可能かどうかを正しく判
定できるbase1,dist1,len1(len1≧1),base2,dist2,l
en2(len2≧1)の組合せも限定される。即ち、プログ
ラムで実行することが指定されているベクトルストア命
令のストア開始起点アドレスをbase1、該ベクトルスト
ア命令がストアするベクトルの要素間距離をdist1、該
ベクトルストア命令がストアするベクトル長をlen1(le
n1≧1)、該ベクトルストア命令でストアされる最終ベ
クトル要素のアドレスをlast1とし、該ベクトルストア
命令より後で実行することがプログラムで指定されてい
るベクトルロード命令のロード開始起点アドレスをbase
2、該ベクトルロード命令がロードするベクトルの要素
間距離をdist2、該ベクトルロード命令がロードするベ
クトル長をlen2(len2≧1)、該ベクトルロード命令で
ロードされる最終ベクトル要素のアドレスをlast2とし
場合、前述したアドレス範囲の重複を判定する方法で
は、base1,last1,base2,last2のアドレスの順序関係24
通りのなかで、高々4通り (base1 last1 base2 last2) (base1 last1 last2 base1) (last1 base1 base2 last2) (last1 base1 last2 base2) の場合しか正しく判定できないという欠点を有してお
り、本発明の目的は正しく判定できる組合せを多くする
ことにある。
簡単に実現できる反面、追越し可能かどうかを正しく判
定できるbase1,dist1,len1(len1≧1),base2,dist2,l
en2(len2≧1)の組合せも限定される。即ち、プログ
ラムで実行することが指定されているベクトルストア命
令のストア開始起点アドレスをbase1、該ベクトルスト
ア命令がストアするベクトルの要素間距離をdist1、該
ベクトルストア命令がストアするベクトル長をlen1(le
n1≧1)、該ベクトルストア命令でストアされる最終ベ
クトル要素のアドレスをlast1とし、該ベクトルストア
命令より後で実行することがプログラムで指定されてい
るベクトルロード命令のロード開始起点アドレスをbase
2、該ベクトルロード命令がロードするベクトルの要素
間距離をdist2、該ベクトルロード命令がロードするベ
クトル長をlen2(len2≧1)、該ベクトルロード命令で
ロードされる最終ベクトル要素のアドレスをlast2とし
場合、前述したアドレス範囲の重複を判定する方法で
は、base1,last1,base2,last2のアドレスの順序関係24
通りのなかで、高々4通り (base1 last1 base2 last2) (base1 last1 last2 base1) (last1 base1 base2 last2) (last1 base1 last2 base2) の場合しか正しく判定できないという欠点を有してお
り、本発明の目的は正しく判定できる組合せを多くする
ことにある。
(問題点を解決するための手段) 本発明の方式は、ベクトル演算器および主記憶処理装
置へ投入する命令群を保持する第1の手段と、実行中の
命令により使用されているベクトルレジスタ、演算器、
主記憶装置の状態を保持する第2の手段と、該第1の手
段により保持されている命令群から該第2の手段により
保持されている各種資源の状態に基づきプログラムで指
定された命令投入順序によらずベクトル演算器および主
記憶処理装置に投入する命令を決定する第3の手段を備
え、該第1の手段により保持されている命令群中のベク
トルストア命令と、該ベクトルストア命令よりも後から
命令投入することをプログラムで指定され該第1の手段
により保持されている命令群中のベクトルロード命令に
関し、該ベクトルストア命令で指定されたストア開始起
点アドレスと該ベクトルロード命令で指定されたロード
開始起点アドレスとの差の絶対値が、該ベクトルストア
命令で指定されたベクトル要素間距離と該ベクトルロー
ド命令で指定されたベクトル要素間距離の最大公約数の
倍数でない場合に該ベクトルロード命令を該ベクトルス
トア命令に先行してベクトル演算器および主記憶処理装
置に投入する手段を含んで構成される。
置へ投入する命令群を保持する第1の手段と、実行中の
命令により使用されているベクトルレジスタ、演算器、
主記憶装置の状態を保持する第2の手段と、該第1の手
段により保持されている命令群から該第2の手段により
保持されている各種資源の状態に基づきプログラムで指
定された命令投入順序によらずベクトル演算器および主
記憶処理装置に投入する命令を決定する第3の手段を備
え、該第1の手段により保持されている命令群中のベク
トルストア命令と、該ベクトルストア命令よりも後から
命令投入することをプログラムで指定され該第1の手段
により保持されている命令群中のベクトルロード命令に
関し、該ベクトルストア命令で指定されたストア開始起
点アドレスと該ベクトルロード命令で指定されたロード
開始起点アドレスとの差の絶対値が、該ベクトルストア
命令で指定されたベクトル要素間距離と該ベクトルロー
ド命令で指定されたベクトル要素間距離の最大公約数の
倍数でない場合に該ベクトルロード命令を該ベクトルス
トア命令に先行してベクトル演算器および主記憶処理装
置に投入する手段を含んで構成される。
(作用) 第3図に示すプログラム例を用いてい作用を説明す
る。第3図において、VLOADはベクトルロードの命令コ
ード、VADDはベクトル加算の命令コード、VSTOREはベク
トルストアの命令コード、VMULTはベクトル乗算の命令
コードを示している。また、VR0からVR3は命令オペラン
ドのベクトルレジスタを示し、各々のベクトルレジスタ
は265込のベクトル要素を格納できるものとする。(a,
b,c)の3つ組で示した命令オペランドは、ベクトルロ
ード/ストア命令の主記憶オペランドを示し、aはベク
トルアクセスする開始起点アドレス、bはベクトル要素
間距離、cはベクトル長を示す。例えば第1番目の命令 VLOAD VR0←(base,5,256) は、baseをメモリの開始起点アドレス、ベクトル要素間
距離16、ベクトル長256のベクトル要素を、ベクトルレ
ジスタVR0にロードする命令であることを示している。
る。第3図において、VLOADはベクトルロードの命令コ
ード、VADDはベクトル加算の命令コード、VSTOREはベク
トルストアの命令コード、VMULTはベクトル乗算の命令
コードを示している。また、VR0からVR3は命令オペラン
ドのベクトルレジスタを示し、各々のベクトルレジスタ
は265込のベクトル要素を格納できるものとする。(a,
b,c)の3つ組で示した命令オペランドは、ベクトルロ
ード/ストア命令の主記憶オペランドを示し、aはベク
トルアクセスする開始起点アドレス、bはベクトル要素
間距離、cはベクトル長を示す。例えば第1番目の命令 VLOAD VR0←(base,5,256) は、baseをメモリの開始起点アドレス、ベクトル要素間
距離16、ベクトル長256のベクトル要素を、ベクトルレ
ジスタVR0にロードする命令であることを示している。
次に第4図を用いて、第3図で示したプログラムの主
記憶参照に関する順序性を説明しよう。第4図(a)は
第4図の1番目の命令と2番目の主記憶アクセス命令が
参照するメモリアドレスを示している。1番目の命令も
2番目の命令もベクトルロードであり、かつ、ベクトル
レジスタの競合もないため、この場合、プログラムで与
えられた順序に従い実行される。次に、1番目の命令と
2番目の命令が実行開始されると、3番目のベクトル加
算命令がベクトル・レジスタV0とV1に被演算対象にロー
ドされるのに同期して実行に移されるが、該加算命令の
実行結果を主記憶装置に書き込む4番目のベクトルスト
ア命令は、該加算命令の演算結果がVR0に書き込み開始
されるまで実行に移れない。一方、5番目のベクトルロ
ード命令は第4図(b)に示すように、4番目のベクト
ルストア命令がストアした結果をロードするのではない
ため、4番目のベクトルストア命令に先行して実行を開
始することが可能である。
記憶参照に関する順序性を説明しよう。第4図(a)は
第4図の1番目の命令と2番目の主記憶アクセス命令が
参照するメモリアドレスを示している。1番目の命令も
2番目の命令もベクトルロードであり、かつ、ベクトル
レジスタの競合もないため、この場合、プログラムで与
えられた順序に従い実行される。次に、1番目の命令と
2番目の命令が実行開始されると、3番目のベクトル加
算命令がベクトル・レジスタV0とV1に被演算対象にロー
ドされるのに同期して実行に移されるが、該加算命令の
実行結果を主記憶装置に書き込む4番目のベクトルスト
ア命令は、該加算命令の演算結果がVR0に書き込み開始
されるまで実行に移れない。一方、5番目のベクトルロ
ード命令は第4図(b)に示すように、4番目のベクト
ルストア命令がストアした結果をロードするのではない
ため、4番目のベクトルストア命令に先行して実行を開
始することが可能である。
本発明はこの4番目のベクトルストア命令を5番目の
ベクトルロード命令が主記憶参照に関して追い越しても
かまわないことを判定するものであり、本発明を用いれ
ば、4番目のベクトルストア命令と5番目のベクトルロ
ード命令のそれぞれのベクトル要素間距離の最大公約数
は4であり、4番目のベクトルストア命令のストア開始
起点アドレス(base)と5番目のベクロード命令のロー
ド開始起点アドレス(base+2)との差の絶対値が2
で、これは前記最大公約数4の倍数ではないため、追越
し可能と判定することができる。
ベクトルロード命令が主記憶参照に関して追い越しても
かまわないことを判定するものであり、本発明を用いれ
ば、4番目のベクトルストア命令と5番目のベクトルロ
ード命令のそれぞれのベクトル要素間距離の最大公約数
は4であり、4番目のベクトルストア命令のストア開始
起点アドレス(base)と5番目のベクロード命令のロー
ド開始起点アドレス(base+2)との差の絶対値が2
で、これは前記最大公約数4の倍数ではないため、追越
し可能と判定することができる。
以上に説明したように、本発明によれば、ベクトルス
トア命令が参照する主記憶上の複数のアドレスと該ベク
トルロード命令にプログラム上で後続するベクトルロー
ド命令が参照する主記憶上の複数のアドレスの間に同一
のものがないことを正しく判定し、主記憶参照に関して
追越し可能かどうかを正しく判定する作用を持ってい
る。
トア命令が参照する主記憶上の複数のアドレスと該ベク
トルロード命令にプログラム上で後続するベクトルロー
ド命令が参照する主記憶上の複数のアドレスの間に同一
のものがないことを正しく判定し、主記憶参照に関して
追越し可能かどうかを正しく判定する作用を持ってい
る。
(実施例) 次に、本発明の実施例について図面を参照して説明す
る。
る。
第1図は本発明の一実施例を示すブロック図である。
第1図の命令処理順序制御方式は、プログラムを記憶し
ているプログラム保持部1と、命令投入されるために命
令が待機している実行待機キュー2と、レジスタ及び演
算器及び主記憶処理部の状態を保持している状態保持部
3と、演算器及び主記憶処理装置に投入する命令を決定
する命令処理順序決定部4と、複数のベクトルレジスタ
と1個以上の演算器からなるベクトル演算器部5と、主
記憶装置へのアクセスを制御する主記憶参照処理部6か
ら構成される。
第1図の命令処理順序制御方式は、プログラムを記憶し
ているプログラム保持部1と、命令投入されるために命
令が待機している実行待機キュー2と、レジスタ及び演
算器及び主記憶処理部の状態を保持している状態保持部
3と、演算器及び主記憶処理装置に投入する命令を決定
する命令処理順序決定部4と、複数のベクトルレジスタ
と1個以上の演算器からなるベクトル演算器部5と、主
記憶装置へのアクセスを制御する主記憶参照処理部6か
ら構成される。
実行待機キュー2は、命令1と命令2の2個の命令を
保持し、プログラムで指定された順序上先行する命令が
命令1に、後続する命令が命令2に保持するように保た
れる。また、命令処理順序決定部4は、命令投入決定部
7と、レジスタ参照の論理競合チェック部8と、主記憶
参照の論理競合チェック部9から構成される。
保持し、プログラムで指定された順序上先行する命令が
命令1に、後続する命令が命令2に保持するように保た
れる。また、命令処理順序決定部4は、命令投入決定部
7と、レジスタ参照の論理競合チェック部8と、主記憶
参照の論理競合チェック部9から構成される。
次に、各ユニット間で伝達される信号を説明しよう。
命令10は、プログラム保持部1から実行待機キュー2に
送られるプログラムの命令であり、命令キュー2に空き
が生ずるごとに、プログラムで指定された順序に従い後
続命令が供給される。命令オペランド11と命令オペラン
ド12は命令キュー2で待機中の命令のオペランドを伝え
るものであり、オペランドの種類と、オペランドがレジ
スタであればレジスタ番号、オペンランドが即値データ
であればその値、オペランド主記憶参照に関するメモリ
アドレスやベクトル要素間距離やベクトル長の場合はそ
の値が送られる。制御信号13は命令投入決定部7が実行
待機キューの命令1もしくは命令2何れの命令を命令投
入したかを伝えるものであり、命令キューのエントリ管
理に用いられる。状態信号14は状態保持部3が保持して
いるレジスタ及び演算機及び主記憶処理部の状態を命令
投入決定部7に伝えるものである。レジスタ論理競合チ
ェック信号15はプログラム上で先行する命令1と後続す
る命令2の間に論理的なレジスタ競合関係が存在するか
どうかの判定結果である。主記憶参照の論理競合チェッ
ク信号16はプログラム上で先行する命令1と後続する命
令2の間に論理的な主記憶オペランド競合関係が存在す
るかどうかの判定結果である。命令信号17は投入が決定
された命令をベクトル演算部に伝える信号である。命令
信号18は投入が決定された命令を主記憶参照処理部に伝
える信号である。状態信号19はベクトル演算機部のレジ
スタ及び演算器の状態を伝える信号である。状態信号20
は主記憶参照処理部の状態を伝える信号である。
命令10は、プログラム保持部1から実行待機キュー2に
送られるプログラムの命令であり、命令キュー2に空き
が生ずるごとに、プログラムで指定された順序に従い後
続命令が供給される。命令オペランド11と命令オペラン
ド12は命令キュー2で待機中の命令のオペランドを伝え
るものであり、オペランドの種類と、オペランドがレジ
スタであればレジスタ番号、オペンランドが即値データ
であればその値、オペランド主記憶参照に関するメモリ
アドレスやベクトル要素間距離やベクトル長の場合はそ
の値が送られる。制御信号13は命令投入決定部7が実行
待機キューの命令1もしくは命令2何れの命令を命令投
入したかを伝えるものであり、命令キューのエントリ管
理に用いられる。状態信号14は状態保持部3が保持して
いるレジスタ及び演算機及び主記憶処理部の状態を命令
投入決定部7に伝えるものである。レジスタ論理競合チ
ェック信号15はプログラム上で先行する命令1と後続す
る命令2の間に論理的なレジスタ競合関係が存在するか
どうかの判定結果である。主記憶参照の論理競合チェッ
ク信号16はプログラム上で先行する命令1と後続する命
令2の間に論理的な主記憶オペランド競合関係が存在す
るかどうかの判定結果である。命令信号17は投入が決定
された命令をベクトル演算部に伝える信号である。命令
信号18は投入が決定された命令を主記憶参照処理部に伝
える信号である。状態信号19はベクトル演算機部のレジ
スタ及び演算器の状態を伝える信号である。状態信号20
は主記憶参照処理部の状態を伝える信号である。
次に、主記憶参照の論理競合チェック部の詳細を第2
図に示す。第2図の主記憶参照の論理競合チェック部
は、命令1のベクトルアクセス開始起点アドレス(base
1)を格納するレジスタ21と、命令2のベクトルアクセ
ス開始起点アドレス(base2)を格納するレジスタ22
と、命令1のベクトルアクセスする要素間距離(dist
1)を格納するレジスタ23と、命令2のベクトルアクセ
スする要素間距離(dist2)を格納するレジスタ24と、
減算回路25と、最大公約数生成回路26と、整数除算剰余
生成回路27と、不等号関係が設立するかどうかを判定す
る比較器28から構成される。ただし、整数除算剰余生成
回路27は減算回路25からの出力を最大公約数生成回路26
で整数除算した剰余を出力する回路である。
図に示す。第2図の主記憶参照の論理競合チェック部
は、命令1のベクトルアクセス開始起点アドレス(base
1)を格納するレジスタ21と、命令2のベクトルアクセ
ス開始起点アドレス(base2)を格納するレジスタ22
と、命令1のベクトルアクセスする要素間距離(dist
1)を格納するレジスタ23と、命令2のベクトルアクセ
スする要素間距離(dist2)を格納するレジスタ24と、
減算回路25と、最大公約数生成回路26と、整数除算剰余
生成回路27と、不等号関係が設立するかどうかを判定す
る比較器28から構成される。ただし、整数除算剰余生成
回路27は減算回路25からの出力を最大公約数生成回路26
で整数除算した剰余を出力する回路である。
次に本実施例の動作について第3図のプログラム例を
用い、第1図、第2図、第5図を参照して説明する。た
だし、第3図のプログラムは図の第3番目の命令から実
行を開始するものとする。
用い、第1図、第2図、第5図を参照して説明する。た
だし、第3図のプログラムは図の第3番目の命令から実
行を開始するものとする。
ある時間が経過すると実行待機キュー2の状態は、命
令1としてプログラムの3番目のベクトル加算命令、命
令2としてプログラムの4番目のベクトルストア命令が
セットされる(第5図(a)の状態)。レジスタ参照の
論理競合チェック部8はプログラム上先行する命令1が
書き込むレジスタをプログラム上後続する命令2が読み
だし参照を行うため、追越し不能であることを命令投入
決定部7に通知する、主記憶参照の論理競合チェック部
9は命令1が主記憶参照を行わないため判定を行わな
い。命令投入決定部7は、レジスタの論理競合チェック
部8からの信号により命令1と命令2の間の追越しは認
められないため、状態保持部3からの信号でベクトルレ
ジスタVR0とVR1が読みだし可能となるタイミングで命令
1の3番目の命令であるベクトル加算命令を投入する。
令1としてプログラムの3番目のベクトル加算命令、命
令2としてプログラムの4番目のベクトルストア命令が
セットされる(第5図(a)の状態)。レジスタ参照の
論理競合チェック部8はプログラム上先行する命令1が
書き込むレジスタをプログラム上後続する命令2が読み
だし参照を行うため、追越し不能であることを命令投入
決定部7に通知する、主記憶参照の論理競合チェック部
9は命令1が主記憶参照を行わないため判定を行わな
い。命令投入決定部7は、レジスタの論理競合チェック
部8からの信号により命令1と命令2の間の追越しは認
められないため、状態保持部3からの信号でベクトルレ
ジスタVR0とVR1が読みだし可能となるタイミングで命令
1の3番目の命令であるベクトル加算命令を投入する。
次に、次状態での実行待機キュー2の状態は、命令1
としてプログラムの4番目のベクトルストア命令、命令
2としてプログラムの5番目のベクトルロード命令がセ
ットされる(第5図(b)の状態)。レジスタ参照の論
理競合チェック部8はプログラム上先行する命令1が書
き込むレジスタをプラグラム上後続する命令2が読みだ
し参照を行わず、かつ命令2が書き込み参照を行うレジ
スタを命令1を読みだし参照しないため、追越し可能で
あることを命令投入決定部7に通知する。主記憶参照の
論理競合チェック部9は第2図の回路に従い、命令1の
ベクトルストアのベクトル要素間距離と命令2のベクト
ルロードのベクトル要素間距離との最大公約数が4であ
り、また命令1の主記憶参照開始起点アドレスbase1と
命令2の主記憶参照開始起点アドレスbase2の差の絶対
値が2で、これは前記最大公約数4の倍数でないため、
追越し可能であることを命令投入決定部7に通知する。
命令投入決定部7は、状態保持部3からの信号により命
令1のベクトルストア命令は前状態で投入した3番目の
ベクトル加算命令の処理結果がベクトルレジスタVR0に
書き終み開始されるまで投入できず、かつ、命令2は命
令1を追越し可能であるため、命令2の5番目のベクト
ルロード命令を投入する。
としてプログラムの4番目のベクトルストア命令、命令
2としてプログラムの5番目のベクトルロード命令がセ
ットされる(第5図(b)の状態)。レジスタ参照の論
理競合チェック部8はプログラム上先行する命令1が書
き込むレジスタをプラグラム上後続する命令2が読みだ
し参照を行わず、かつ命令2が書き込み参照を行うレジ
スタを命令1を読みだし参照しないため、追越し可能で
あることを命令投入決定部7に通知する。主記憶参照の
論理競合チェック部9は第2図の回路に従い、命令1の
ベクトルストアのベクトル要素間距離と命令2のベクト
ルロードのベクトル要素間距離との最大公約数が4であ
り、また命令1の主記憶参照開始起点アドレスbase1と
命令2の主記憶参照開始起点アドレスbase2の差の絶対
値が2で、これは前記最大公約数4の倍数でないため、
追越し可能であることを命令投入決定部7に通知する。
命令投入決定部7は、状態保持部3からの信号により命
令1のベクトルストア命令は前状態で投入した3番目の
ベクトル加算命令の処理結果がベクトルレジスタVR0に
書き終み開始されるまで投入できず、かつ、命令2は命
令1を追越し可能であるため、命令2の5番目のベクト
ルロード命令を投入する。
次に、次状態での実行待機キュー2の状態は、命令1
としてプログラムの4番目のベクトルストア命令、命令
2としてプログラムの6番目のベクトルロード命令がセ
ットされる(第5図(c)の状態)。この時点では先に
実行投入した3番目のベクトル加算命令の演算結果はベ
クトルレジスタVR0に書き込み開始されているものとし
よう。レジスタ参照の論理競合チェック部8はプログラ
ム上先行する命令1が書き込むレジスタをプログラム上
後続する命令2が読みだし参照を行わず、かつ命令2が
書き込み参照を行うレジスタを命令1が読みだし参照し
ないため、追越し可能であることを命令投入決定部7に
通知する。主記憶参照の論理競合チェック部9は第2図
の回路に従い、命令1のベクトルストアのベクトル要素
間距離と命令2のベクトルロードのベクトル要素間距離
との最大公約数が4であり、また命令1の主記憶参照開
始起点アドレスbase1と命令2の主記憶参照開始起点ア
ドレスbase2の差の絶対値が3で、これは前記最大公約
数4の倍数でないため、追越し可能であることを命令投
入決定部7に通知する。命令投入決定部7は、応対保持
部3からの信号により実行中の命令が使用しているレジ
スタ及び演算器及び主記憶処理部と、命令1が競合しな
いこと、命令2も競合しないことを判定する。従って命
令1も命令2も投入可能であり、かつ、命令1と命令2
の間にも論理的な順序関係がないと判定されたため、命
令1の4番目の命令であるベクトルストア命令を投入す
る。
としてプログラムの4番目のベクトルストア命令、命令
2としてプログラムの6番目のベクトルロード命令がセ
ットされる(第5図(c)の状態)。この時点では先に
実行投入した3番目のベクトル加算命令の演算結果はベ
クトルレジスタVR0に書き込み開始されているものとし
よう。レジスタ参照の論理競合チェック部8はプログラ
ム上先行する命令1が書き込むレジスタをプログラム上
後続する命令2が読みだし参照を行わず、かつ命令2が
書き込み参照を行うレジスタを命令1が読みだし参照し
ないため、追越し可能であることを命令投入決定部7に
通知する。主記憶参照の論理競合チェック部9は第2図
の回路に従い、命令1のベクトルストアのベクトル要素
間距離と命令2のベクトルロードのベクトル要素間距離
との最大公約数が4であり、また命令1の主記憶参照開
始起点アドレスbase1と命令2の主記憶参照開始起点ア
ドレスbase2の差の絶対値が3で、これは前記最大公約
数4の倍数でないため、追越し可能であることを命令投
入決定部7に通知する。命令投入決定部7は、応対保持
部3からの信号により実行中の命令が使用しているレジ
スタ及び演算器及び主記憶処理部と、命令1が競合しな
いこと、命令2も競合しないことを判定する。従って命
令1も命令2も投入可能であり、かつ、命令1と命令2
の間にも論理的な順序関係がないと判定されたため、命
令1の4番目の命令であるベクトルストア命令を投入す
る。
以降も同様な手順を経て実行待機キュー2の状態は第
5図(d)、第5図(e)と状態を変えていく。以上、
本実施例の動作を第3図のプログラム例を用い、第1
図、第2図、第5図を参照して説明する。
5図(d)、第5図(e)と状態を変えていく。以上、
本実施例の動作を第3図のプログラム例を用い、第1
図、第2図、第5図を参照して説明する。
(発明の効果) 本発明には、ベクトルストア命令と該ゲベクトルスト
ア命令にプログラム上で後続するベクトルロード命令が
参照する主記憶上のアドレスが、重複がないことを正し
く判定し、主記憶参照に関して追越し可能かどうかを正
しく判定する効果を持っている。
ア命令にプログラム上で後続するベクトルロード命令が
参照する主記憶上のアドレスが、重複がないことを正し
く判定し、主記憶参照に関して追越し可能かどうかを正
しく判定する効果を持っている。
第1図は本発明の一実施例を示すブロック図、第2図は
本発明のベクトルロード/ストア命令間のアドレスの重
複を判定する回路の一実施例を示すブロック図、第3図
は本発明の作用を説明するためのプログラム図、第4図
はベクトルロード/ストア命令が主記憶を参照アドレス
を説明する説明図、第5図は実行待機キューの状態変化
を示す説明図である。 図において 1……プログラム保持部、2……実行待機キュー、 3……状態保持部、4……命令処理順序決定部、 5……ベクトル演算器部、6……主記憶参照処理部、 7……命令投入決定部、 8……レジスタ参照の論理競合チェック部、 9……主記憶参照の論理競合チェック部、 21,22,23,24……レジスタ、25……減算回路、 26……最大公約数生成回路、 27……整数除算剰余生成回路、28……比較器。
本発明のベクトルロード/ストア命令間のアドレスの重
複を判定する回路の一実施例を示すブロック図、第3図
は本発明の作用を説明するためのプログラム図、第4図
はベクトルロード/ストア命令が主記憶を参照アドレス
を説明する説明図、第5図は実行待機キューの状態変化
を示す説明図である。 図において 1……プログラム保持部、2……実行待機キュー、 3……状態保持部、4……命令処理順序決定部、 5……ベクトル演算器部、6……主記憶参照処理部、 7……命令投入決定部、 8……レジスタ参照の論理競合チェック部、 9……主記憶参照の論理競合チェック部、 21,22,23,24……レジスタ、25……減算回路、 26……最大公約数生成回路、 27……整数除算剰余生成回路、28……比較器。
Claims (1)
- 【請求項1】1個以上のパイプライン化された演算器と
複数のベクトルレジスタと該演算器と該ベクトルレジス
タを結合するネットワークから構成されたベクトル演算
器と、ベクトルを単位とするロード/ストアを主記憶装
置と該ベクトルレジスタとの間で行う主記憶装置を備え
るベクトル処理装置において、 ベクトル演算器および主記憶処理装置へ投入する命令群
を保持する第1の手段と、 実行中の命令により使用されているベクトルレジスタ、
演算器、主記憶装置の状態を保持する第2の手段と、 該第1の手段により保持されている命令群から該第2の
手段により保持されている各種資源の状態に基づきプロ
グラムで指定された命令投入順序によらずベクトル演算
器および主記憶処理装置に投入する命令を決定する第3
の手段を備え、 該第3の手段は、該第1の手段により保持されている命
令群中のベクトルストア命令と、該ベクトルストア命令
よりも後から命令投入することをプログラムで指定され
た該第1の手段により保持されている命令群中のベクト
ルロード命令に関し、該ベクトルストア命令で指定され
たストア開始起点アドレスと該ベクトルロード命令で指
定されたロード開始起点アドレスとの差の絶対値が、該
ベクトルストア命令で指定されたベクトル要素間距離と
該ベクトルロード命令で指定されたベクトル要素間距離
の最大公約数の倍数でない場合に該ベクトルロード命令
を該ベクトルストア命令に先行してベクトル演算器およ
び主記憶処理装置に投入する命令として決定することを
特徴とする命令処理順序制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30794789A JP2920968B2 (ja) | 1989-11-27 | 1989-11-27 | 命令処理順序制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30794789A JP2920968B2 (ja) | 1989-11-27 | 1989-11-27 | 命令処理順序制御方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03166646A JPH03166646A (ja) | 1991-07-18 |
JP2920968B2 true JP2920968B2 (ja) | 1999-07-19 |
Family
ID=17975088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30794789A Expired - Fee Related JP2920968B2 (ja) | 1989-11-27 | 1989-11-27 | 命令処理順序制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2920968B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5549179B2 (ja) * | 2009-10-26 | 2014-07-16 | 日本電気株式会社 | データアクセス装置、データアクセス制御方式、及び、データアクセス制御プログラム |
-
1989
- 1989-11-27 JP JP30794789A patent/JP2920968B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH03166646A (ja) | 1991-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5349692A (en) | Instruction handling sequence control system for simultaneous execution of vector instructions | |
US5075840A (en) | Tightly coupled multiprocessor instruction synchronization | |
US5636353A (en) | Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating results bypassing | |
JP5573134B2 (ja) | ベクトル型計算機及びベクトル型計算機の命令制御方法 | |
US5680338A (en) | Method and system for vector processing utilizing selected vector elements | |
JPH0766329B2 (ja) | 情報処理装置 | |
JPS58151655A (ja) | 情報処理装置 | |
US4967350A (en) | Pipelined vector processor for executing recursive instructions | |
JP3797570B2 (ja) | セマフォ命令用のセマフォ・バッファを用いた装置と方法 | |
EP0363889B1 (en) | Vector processor using buffer for preparing vector data | |
JPH07244589A (ja) | 述語、及びブール式を解くためのコンピュータ・システム、及び方法 | |
CA2304609A1 (en) | Autonomously cycling data processing architecture | |
JP2920968B2 (ja) | 命令処理順序制御方式 | |
JPH0812661B2 (ja) | 命令処理順序制御システム | |
EP0600583A1 (en) | Vector processing device | |
JPH06139071A (ja) | 並列計算機 | |
JPH0812662B2 (ja) | 命令処理順序制御方式 | |
CN117667210A (zh) | 指令控制装置、方法、处理器、芯片和板卡 | |
JPH0279122A (ja) | 浮動小数点演算機構 | |
JP4116752B2 (ja) | 計算機とその制御方法 | |
JP2702137B2 (ja) | ベクトル演算命令の処理方法 | |
JPS6395538A (ja) | 命令処理順序制御装置 | |
JPH0748202B2 (ja) | ベクトル複合命令制御方式 | |
JPH05341995A (ja) | プロセッサにおける命令制御方法及びプロセッサ | |
JPH01147773A (ja) | ベクトル処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 9 Free format text: PAYMENT UNTIL: 20080430 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 10 Free format text: PAYMENT UNTIL: 20090430 |
|
LAPS | Cancellation because of no payment of annual fees |