JP3726092B2 - Vector processing apparatus and vector loading method - Google Patents
Vector processing apparatus and vector loading method Download PDFInfo
- Publication number
- JP3726092B2 JP3726092B2 JP2003270882A JP2003270882A JP3726092B2 JP 3726092 B2 JP3726092 B2 JP 3726092B2 JP 2003270882 A JP2003270882 A JP 2003270882A JP 2003270882 A JP2003270882 A JP 2003270882A JP 3726092 B2 JP3726092 B2 JP 3726092B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- instruction
- load
- register
- unit
- 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
Images
Description
本発明はベクトル処理装置に関し、特に主記憶装置からベクトルレジスタにベクトルデータをロードするベクトルロード命令の処理方法に関する。 The present invention relates to a vector processing device, and more particularly to a vector load instruction processing method for loading vector data from a main storage device into a vector register.
一般にベクトル処理装置は、主記憶装置からロードしたベクトルデータやベクトル演算中の中間結果などを保持する複数のベクトルレジスタと、ベクトルレジスタに保持されたベクトルデータに対する演算を行うベクトル演算器とを備え、大量のデータを高速に演算することができるようになっている。また、主記憶装置のアクセス速度はベクトル演算の速度に比べて遅いため、ベクトルデータのベクトルレジスタへのロードを高速化するために、主記憶装置とベクトルレジスタとの間にベクトルデータを一時的に格納するロードバッファを備え、ベクトルロード命令の解読時に主記憶装置からロードバッファへのベクトルデータの読み出しを開始させ、ロードバッファからベクトルレジスタへの転送は命令発行順、つまりベクトルロード命令の発行ステージで実施する技術が提案されている(例えば特許文献1参照)。
しかし、ロードバッファからベクトルレジスタへの転送をベクトルロード命令の発行ステージで起動する構成では、そのベクトルロード命令に先行するベクトル命令がリソースビジー等の理由で発行ステージに留まっている限り、ロードバッファからベクトルレジスタへの転送を起動することができず、ベクトルロード処理の高速化が図れない。また、ロードバッファからベクトルレジスタへの転送をベクトルロード命令の発行ステージで起動する構成では、複数のベクトルロード命令の処理は命令発行順になり、後続のベクトルロード命令を先行するベクトルロード命令よりも早く処理するといった命令の追越し制御は行えない。 However, in the configuration in which the transfer from the load buffer to the vector register is activated at the issue stage of the vector load instruction, as long as the vector instruction preceding the vector load instruction remains at the issue stage for reasons such as resource busy, Transfer to the vector register cannot be started, and the speed of vector load processing cannot be increased. In addition, in the configuration in which the transfer from the load buffer to the vector register is started at the issue stage of the vector load instruction, the processing of a plurality of vector load instructions is in the instruction issue order, and the subsequent vector load instruction is performed earlier than the preceding vector load instruction. Instruction overtaking control such as processing cannot be performed.
そこで本発明の目的は、ロードバッファからベクトルレジスタへの転送を命令発行順でなく、ロードバッファに全要素が揃い且つ転送先のベクトルレジスタがビジー状態でないという条件が成立した順に実行することのできるベクトル処理装置を提供することにある。 Therefore, the object of the present invention is to execute the transfer from the load buffer to the vector register not in the order of instruction issuance, but in the order in which all the elements are aligned in the load buffer and the condition that the transfer destination vector register is not busy is satisfied. It is to provide a vector processing device.
本発明のベクトル処理装置は、主記憶装置とベクトルレジスタとの間に前記主記憶装置から読み出されたベクトルデータを一時的に格納するロードバッファを備え、前記主記憶装置から読み出されたベクトル命令を複数のステージで順次処理するベクトル制御部の命令解読ステージと命令発行ステージとの間に、仕掛かり中のベクトルロード命令が使用するベクトルレジスタが先行するベクトル命令と競合しなくなったことを検出するリソースチェック手段を備え、前記主記憶装置から読み出されたベクトルロード命令の解読時に前記主記憶装置から前記ロードバッファへのベクトルデータの読み出しを起動し、前記ベクトルデータの全要素が前記ロードバッファに格納され次第、前記ベクトルロード命令で使用するベクトルレジスタが先行するベクトル命令で使用するベクトルレジスタと競合しないことが前記リソースチェック手段で検出されていることを条件に、前記ロードバッファから前記ベクトルレジスタへのベクトルデータの転送を開始する。より具体的には、主記憶装置とこれに接続されたプロセッサとを備え、前記プロセッサは、前記主記憶装置から読み出されたベクトル命令がベクトルロード命令であった場合に前記主記憶装置からのベクトルデータの読み出しを起動するメモリアクセス処理部、前記主記憶装置から読み出されたベクトル命令を複数のステージで順次処理するベクトル制御部、複数のベクトルレジスタと1以上のベクトル演算器と複数のロードバッファとを備えるベクトル処理部を含み、前記ベクトル制御部の命令解読ステージと命令発行ステージとの間に、仕掛かり中のベクトルロード命令が使用するベクトルレジスタが先行するベクトル命令と競合しなくなったことを検出して前記ベクトル処理部に通知するリソースチェック手段を備え、前記ベクトル処理部は、前記主記憶装置から読み出されたベクトルデータを前記メモリアクセス処理部で割り当てられた前記ロードバッファに格納し、ベクトルデータの全要素が前記ロードバッファに格納され次第、前記ベクトルロード命令で使用するベクトルレジスタが先行するベクトル命令で使用するベクトルレジスタと競合しないことが前記ベクトル制御部から通知されていることを条件に、前記ロードバッファから前記ベクトルレジスタへのベクトルデータの転送を開始するベクトルロード管理部を備えている。 The vector processing device of the present invention includes a load buffer for temporarily storing vector data read from the main storage device between a main storage device and a vector register, and a vector read from the main storage device. Detects that the vector register used by the vector load instruction in progress no longer conflicts with the preceding vector instruction between the instruction decode stage and the instruction issue stage of the vector controller that sequentially processes instructions in multiple stages. Resource checking means for starting vector data read from the main memory to the load buffer when decoding a vector load instruction read from the main memory, and all elements of the vector data are loaded into the load buffer As soon as it is stored in the vector register, the vector register used by the vector load instruction precedes That it does not conflict with the vector registers used in the vector instruction is detected by the resource check means the condition that initiates the transfer of vector data from the load buffer to the vector register. More specifically, a main storage device and a processor connected to the main storage device are provided. When the vector instruction read from the main storage device is a vector load instruction, the processor A memory access processing unit for starting reading of vector data, a vector control unit for sequentially processing vector instructions read from the main storage device in a plurality of stages, a plurality of vector registers, one or more vector calculators, and a plurality of loads A vector processing unit including a buffer, and the vector register used by the vector load instruction in progress no longer conflicts with the preceding vector instruction between the instruction decoding stage and the instruction issuing stage of the vector control unit. Resource checking means for detecting and notifying the vector processing unit, The unit stores the vector data read from the main storage device in the load buffer allocated by the memory access processing unit, and when all the elements of the vector data are stored in the load buffer, the vector load instruction A vector that starts transfer of vector data from the load buffer to the vector register on the condition that the vector control unit notifies that the vector register to be used does not conflict with the vector register used in the preceding vector instruction A load management unit is provided.
また本発明のベクトルロード方法は、a)主記憶装置から読み出されたベクトルロード命令の解読時に、前記ベクトルロード命令によって前記主記憶装置から読み出すベクトルデータを一時的に格納するロードバッファを割り当てて、前記主記憶装置から前記ロードバッファへのベクトルデータの読み出しを起動する段階、b)前記ベクトルデータの全要素が前記ロードバッファに格納されたという第1の条件を検出する段階、c)前記ベクトルロード命令で使用するベクトルレジスタが先行するベクトル命令で使用するベクトルレジスタと競合しないという第2の条件を命令解読ステージと命令発行ステージとの間で検出する段階、d)前記第1および第2の条件が成立次第、前記ロードバッファから前記ベクトルレジスタへのベクトルデータの転送を開始する段階、を含んで構成される。 In the vector loading method of the present invention, a) a load buffer for temporarily storing vector data read from the main memory by the vector load instruction when the vector load instruction read from the main memory is decoded. Initiating reading of vector data from the main memory to the load buffer; b) detecting a first condition that all elements of the vector data are stored in the load buffer; c) the vector Detecting a second condition between the instruction decode stage and the instruction issue stage that the vector register used in the load instruction does not conflict with the vector register used in the preceding vector instruction; d) the first and second stages; As soon as the condition is met, the vector data from the load buffer to the vector register Initiating transfer of data, configured to include a.
本発明によれば、ロードバッファからベクトルレジスタへの転送を命令発行順ではなく、ロードバッファに全要素が揃い且つ転送先のベクトルレジスタがビジー状態でないという条件が成立した順に実行することができる。このため、ベクトルロード命令に先行するベクトル命令がリソースビジー等の理由で発行ステージに留まっていても、転送条件が成立次第、ロードバッファからベクトルレジスタへの転送を起動することができるため、ベクトルロード処理の高速化が可能となる。また、複数のベクトルロード命令の処理を命令発行順でなく、転送条件の成立順に行うことができ、後続のベクトルロード命令を先行するベクトルロード命令よりも早く処理するといった命令の追越し制御が可能となる。 According to the present invention, transfer from the load buffer to the vector register can be executed not in the order of instruction issuance, but in the order in which all the elements are aligned in the load buffer and the transfer destination vector register is not busy. For this reason, even if the vector instruction preceding the vector load instruction stays in the issue stage for reasons such as resource busy, transfer from the load buffer to the vector register can be started as soon as the transfer condition is satisfied. Processing speed can be increased. In addition, the processing of multiple vector load instructions can be performed in the order in which the transfer conditions are satisfied, not in the order of instruction issuance, and it is possible to control overtaking of instructions such that subsequent vector load instructions are processed earlier than the preceding vector load instructions. Become.
図1を参照すると、本発明の実施の形態にかかるベクトル処理装置は、プロセッサ1と主記憶装置7とを含んで構成される。プロセッサ1と主記憶装置7とは、主記憶装置7に記憶された命令をプロセッサ1から読み出すための信号線101と、主記憶装置7に記憶されたベクトルデータ等をプロセッサ1から読み出し、逆にプロセッサ1で生成したベクトルデータ等を主記憶装置7に書き込むための信号線102によって相互に接続されている。信号線102は多重化されており、複数のベクトルロード命令にかかる主記憶装置7からのベクトルデータの読み出し等を並行して行うことができるようになっている。
Referring to FIG. 1, the vector processing device according to the embodiment of the present invention includes a processor 1 and a main storage device 7. The processor 1 and the main storage device 7 read from the processor 1 the signal line 101 for reading out the instructions stored in the main storage device 7 from the processor 1, the vector data stored in the main storage device 7, etc. The vector data and the like generated by the processor 1 are connected to each other by a
プロセッサ1は、命令制御部2と、メモリアクセス処理部3と、プロセッサネットワーク部4と、ベクトル制御部5と、ベクトル処理部6とを含んで構成される。
The processor 1 includes an
命令制御部2は、主記憶装置7と信号線101で接続され、メモリアクセス処理部3と信号線103で接続され、ベクトル制御部5と信号線104で接続され、信号線101を通じて主記憶装置7から読み出した命令を解読する命令解読部21と、解読された命令がスカラ命令である場合にそのスカラ命令にかかる処理を実行するスカラ処理部22を有している。また、命令解読部21は、解読した命令がベクトル命令である場合にはそのベクトル命令を信号線104を通じてベクトル制御部5に出力し、更にそのベクトル命令がベクトルロード命令である場合は信号線103を通じてメモリアクセス処理部3に対して当該ベクトルロード命令を出力する。ベクトルロード命令には、ロードするベクトルデータの主記憶装置7のアドレスを特定する情報(例えば開始アドレスとベクトルデータの間隔)、ベクトルデータの要素数、ベクトルデータをロードするベクトルレジスタの番号が含まれている。
The
メモリアクセス処理部3は、主記憶装置7へのアクセスを制御する部分で、命令制御部2と信号線103で接続され、プロセッサネットワーク部4と信号線105で接続され、ベクトル制御部5と信号線106で接続され、ベクトル処理部6と信号線107で接続されている。メモリアクセス処理部3は、信号線103を通じて命令制御部2から送られてくるメモリアクセスにかかる命令を解読すると共にプロセッサネットワーク部4の状態を管理し、信号線105を通じてメモリアクセスリクエストを制御する信号をプロセッサネットワーク部4に送り、主記憶装置7との信号線102とベクトル処理部6との信号線108との間のデータの行き来を制御する。特にベクトルロード命令に関し、メモリアクセス処理部3は、ベクトル処理部6内に設けられている複数のロードバッファの空き管理を行っており、命令制御部2から信号線103を通じてベクトルロード命令を受信すると、このベクトルロード命令用に空き状態の1つのロードバッファを割り当ててそれを使用中状態として管理し、割り当てたロードバッファを一意に識別するバッファ番号を付随してメモリアクセスリクエストを信号線105を通じてプロセッサネットワーク部4に発行し、同時に、どのベクトルロード命令に対してどのバッファ番号のロードバッファを割り当てたかを信号線106を通じてベクトル制御部5に通知する。また、信号線107を通じてベクトル処理部6からバッファ番号を指定したバッファ解放通知を受けると、メモリアクセス処理部3はそのバッファ番号のロードバッファを再び空き状態として管理する。
The memory
プロセッサネットワーク部4は、主記憶装置7と信号線102で接続され、メモリアクセス処理部3と信号線105で接続され、ベクトル処理部6と信号線108で接続され、メモリアクセス処理部3から与えられるメモリアクセスリクエストに応じて主記憶装置7とベクトル処理部6との間でベクトルデータをやりとりする。ベクトルロード命令にかかるメモリアクセスリクエストに関し、プロセッサネットワーク部4は、主記憶装置7から読み出したベクトルデータを構成する各要素に、メモリアクセスリクエストに付随するバッファ番号を付随させ、信号線108を通じてベクトル処理部6に送出する。信号線108は多重化されており、複数のメモリアクセスリクエストにかかるベクトルデータを並行してベクトル処理部6に供給できるようになっている。
The processor network unit 4 is connected to the main storage device 7 through the
ベクトル処理部6は、メモリアクセス処理部3と信号線107で接続され、プロセッサネットワーク部4と信号線108で接続され、ベクトル制御部5と信号線109、110で接続され、ベクトルデータに対してベクトル演算を実行する機能を持つ。ベクトル処理部6は、少なくとも1つのベクトルパイプライン演算器61を備える。ベクトルパイプライン演算器61は、ベクトルデータを格納する複数のベクトルレジスタ62と、ベクトルレジスタ62に格納されたベクトルデータに対してベクトル演算を行う1つ以上のベクトル演算器63と、主記憶装置7から読み出されたベクトルデータを一時的に格納する複数のロードバッファ64と、ベクトルロード管理部65と、ベクトル演算器63およびロードバッファ64から出力されるベクトルデータをベクトルレジスタ62に振り分けるクロスバスイッチ回路66とを含んで構成される。なお、ベクトル演算されたベクトルデータを主記憶装置7にストアするストアバッファなど、ストアに関連する構成は本発明と直接関係しないため図示を省略している。
The vector processing unit 6 is connected to the memory
ベクトルロード管理部65は、メモリアクセス処理部3と信号線107で接続され、プロセッサネットワーク部4と信号線108で接続され、ベクトル制御部5と信号線109〜111で接続され、信号線108を通じて送られてきたベクトルデータの要素を、それに付随するバッファ番号のロードバッファ64に一旦格納し、その後、ロードバッファ64に格納されたベクトルデータをベクトルレジスタ62に転送する。図2にベクトルロード管理部65の構成例を示す。
The vector load management unit 65 is connected to the memory
図2を参照すると、ベクトルロード管理部65の一例は、レジスタ群651と、レジスタ設定部652と、ライト部653と、リード部654とを含んで構成される。 Referring to FIG. 2, an example of the vector load management unit 65 includes a register group 651, a register setting unit 652, a write unit 653, and a read unit 654.
レジスタ群651は、ロードバッファ64に1対1に対応するレジスタ651−0〜651−nの集合で構成され、各レジスタ651−i(i=0〜n)は、ロードバッファ番号フィールド6511、ベクトルレジスタ(VAR)番号フィールド6512、リソースチェックフラグフィールド6513、ライト要素数フィールド6514およびリード要素数フィールド6515を有する。ロードバッファ番号フィールド6511には、ロードバッファ64のバッファ番号が固定的に設定されている。ベクトルレジスタ番号フィールド6512には、ベクトルロード命令でロードするベクトルデータを格納するベクトルレジスタ62の番号が設定される。リソースチェックフラグフィールド6513には、ベクトルロード命令で使用するベクトルレジスタ62が先行するベクトル命令と競合するか否かを示すリソースチェックフラグが設定される。ライト要素数フィールド6514およびリード要素数フィールド6515には、ベクトルロード命令でロードするベクトルデータの要素数が初期値として設定される。ライト要素数フィールド6514に設定されたライト要素数は、ロードバッファ64へのベクトルデータ要素の書き込みに応じて減算され、全要素のロードバッファ64への書き込みが完了すると0となる。リード要素数フィールド6515に設定されたリード要素数は、ロードバッファ64からベクトルレジスタ62への読み出しに応じて減算され、全要素のロードバッファ64からの読み出しが完了すると0となる。
The register group 651 includes a set of registers 651-0 to 651-n corresponding to the load buffer 64 on a one-to-one basis. Each register 651-i (i = 0 to n) includes a load
レジスタ設定部652は、ベクトル制御部5と信号線109で接続され、レジスタ群651の初期設定等を行う。レジスタ設定部652は、信号線109を通じてベクトル制御部5から、ロードバッファ番号、ベクトルレジスタ番号および要素数を含むベクトルロード命令情報が伝達されると、そのロードバッファ番号をロードバッファ番号フィールド6511に持つレジスタ651−iのベクトルレジスタ番号フィールド6512にベクトルロード命令情報中のベクトルレジスタ番号を設定し、ライト要素数フィールド6514およびリード要素数フィールド6515にベクトルロード命令情報中の要素数を設定し、リソースチェックフラグフィールド6513には、リソースの競合有りを示すフラグ値1を設定する。また、レジスタ設定部652は、信号線109を通じてベクトル制御部5から、ロードバッファ番号を指定したリソースチェックOK信号が伝達されると、そのロードバッファ番号をロードバッファ番号フィールド6511に持つレジスタ651−iのリソースチェックフラグフィールド6513のフラグをリソース競合無しを示す値0に書き換える。
The register setting unit 652 is connected to the vector control unit 5 through the
ライト部653は、プロセッサネットワーク部4と信号線108で接続され、ベクトルデータのロードバッファ64への書き込みを行う。ライト部653は、信号線108を通じてプロセッサネットワーク部4からベクトルデータの要素を受信すると、受信した要素に付随するロードバッファ番号を持つロードバッファ64にその要素を書き込み、そのロードバッファ番号をロードバッファ番号フィールド6511に持つレジスタ651−iのライト要素数フィールド6514の値を書き込んだ要素数分だけ減算する。
The write unit 653 is connected to the processor network unit 4 through the
リード部654は、ベクトル制御部5と信号線109、110で接続され、ロードバッファ64からベクトルレジスタ62へのベクトルデータの転送を行う。リード部654は、レジスタ設定部652によってライト要素数フィールド6514が全要素数に初期設定されたレジスタ651−iについて、そのレジスタのロードバッファ番号フィールド6511に設定されたバッファ番号を持つロードバッファ64のデータを、そのレジスタのベクトルレジスタ番号フィールド6512に設定された番号のベクトルレジスタ62に転送する条件が満足されたかどうかを監視する。(1)ベクトルデータの全要素がロードバッファ64に格納済みである(ライト要素数フィールド6514の値が0である)、(2)先行するベクトル命令とベクトルレジスタが競合しない(リソースチェックフラグフィールド6513のフラグ値が0である)、の2つの要件が満たされた場合、転送可能と判断する。
The read unit 654 is connected to the vector control unit 5 through
リード部654は、或るレジスタ651−iについて転送可能と判断した場合、信号線110を通じてベクトル制御部5に対して、そのレジスタ651−iのロードバッファ番号フィールド6511に設定されたバッファ番号およびベクトルレジスタ番号フィールド6512に設定されたベクトルレジスタ番号を指定した転送開始通知を送出した後、ロードバッファ番号フィールド6511に設定されたバッファ番号を持つロードバッファ64に格納されているデータを順次に読み出して、ベクトルレジスタ番号フィールド6512に設定された番号のベクトルレジスタ62にクロスバスイッチ回路66を通じて書き込んでいく。このとき、ベクトルデータの1要素をロードバッファ64から読み出す毎に、リード要素数フィールド6515の値を1だけ減算する。リード要素数フィールド6515の値が0になると、転送完了となり、リード部654は、そのレジスタ651−iのロードバッファ番号フィールド6511に設定されたバッファ番号およびベクトルレジスタ番号フィールド6512に設定されたベクトルレジスタ番号を指定した転送終了通知を信号線110を通じてベクトル制御部5に送出すると同時に、そのレジスタ651−iのロードバッファ番号フィールド6511に設定されたバッファ番号を指定したバッファ解放通知を信号線107を通じてメモリアクセス処理部3に送出し、そのレジスタ651−iのフィールド6512〜6515を例えばNULLに初期化する。
When the read unit 654 determines that transfer is possible for a certain register 651-i, the buffer number and vector set in the load
再び図1を参照すると、ベクトル制御部5は、命令制御部2と信号線104で接続され、メモリアクセス処理部3と信号線106で接続され、ベクトル処理部6と信号線109〜111で接続され、ベクトル命令の発行制御を行う。このベクトル制御部5は、ベクトル命令の実行サイクルを、命令の解読、オペランドの計算と取り出し、命令の発行などと言った複数のステージに分割し、各ステージの処理を独立したハードウェアが行うことにより、複数のベクトル命令を並列に処理する。このため、ベクトル制御部5は、信号線104を通じて命令制御部2から入力されたベクトル命令を解読する命令デコード部51と、最終ステージである命令発行ステージ用のレジスタ52との間に、中間の各ステージに存在する命令のデコード情報等を保持する幾つかの命令レジスタ53、54、55と中間のステージにおける処理を実行するデコーダ56、57を備えている。なお、ステージの段数はプロセッサのアーキテクチャによって相違する。命令発行部58は、命令発行ステージのレジスタ52に格納された命令が発行可能かどうかをチェックし、発行可能でなければ発行可能になるまで待ち、発行可能であれば、信号線111を通じてベクトル処理部6に命令発行を通知し、同時に処理に必要な付随情報を通知する。レジスタ52に格納された命令が発行可能かどうかのチェックは、ベクトル処理部6のベクトルパイプライン演算器61におけるベクトルレジスタ62、ベクトル演算器63等の各リソース毎にそのリソースがビジー状態かどうかを保持するビジーフラグ群59のビジーフラグのうち、命令発行ステージのレジスタ52に格納された命令が使用するリソースのビジーフラグがビジー状態でないかどうかに基づいて行う。
Referring again to FIG. 1, the vector control unit 5 is connected to the
本実施の形態においては、ベクトルロード命令については、主記憶装置7から読み出されたベクトルデータの全要素がロードバッファ64に格納され、且つ、そのベクトルロード命令が使用するリソースが先行するベクトル命令で使用するリソースと競合しなければ、そのベクトルロード命令が命令発行ステージのレジスタ52に到着するのを待たずに速やかに、ロードバッファ64からベクトルレジスタ62への転送を開始させる。ベクトル制御部5のライト・ロードカウンタ部5A、リードカウンタ部5Bおよびロード命令情報管理部5Cは、そのような制御のために設けられている。 In the present embodiment, for the vector load instruction, all elements of the vector data read from the main storage device 7 are stored in the load buffer 64, and the vector instruction preceded by the resource used by the vector load instruction If there is no conflict with the resources used in step 1, the transfer from the load buffer 64 to the vector register 62 is started immediately without waiting for the vector load instruction to arrive at the register 52 in the instruction issue stage. The write / load counter unit 5A, the read counter unit 5B, and the load instruction information management unit 5C of the vector control unit 5 are provided for such control.
ライト・ロードカウンタ部5Aは、ベクトル制御部5内で仕掛かり中のベクトル命令でライトまたはロードのために使用されるベクトルレジスタ62とその使用命令数を管理する。構成例を図3のライト・ロードカウンタ部5Aのブロックに示す。この例のライト・ロードカウンタ部5Aは、ベクトル処理部6に存在するベクトルレジスタ62と1対1に対応するカウント部5A−0〜5A−mから構成されるカウンタ5ACを有する。カウンタ5ACの全てのカウント部5A−0〜5A−mの初期値は0である。命令デコード部51で解読された命令がベクトルレジスタ62へライトする命令またはベクトルレジスタ62へデータをロードする命令であった場合、カウンタ5ACは、デコード部51から出力される当該命令が使用するベクトルレジスタ62の情報に基づいて、そのベクトルレジスタ62に対応するカウント部5A−j(jは0〜m)の値を+1する。また、命令発行部58は、命令発行ステージのレジスタ52の命令の処理が終了すると、その命令がベクトルレジスタ62へライトする命令またはベクトルレジスタ62へデータをロードする命令であった場合、その命令で使用したベクトルレジスタ62のビジーフラグをリセットするタイミングで、ベクトルレジスタ62の番号をライト・ロードカウンタ部5Aに通知するようになっており、カウンタ5ACは、通知されたベクトルレジスタ62に対応するカウント部5A−jの値を−1する。 The write / load counter unit 5A manages a vector register 62 used for writing or loading with a vector instruction being processed in the vector control unit 5 and the number of instructions used. A configuration example is shown in the block of the write / load counter unit 5A in FIG. The write / load counter unit 5A in this example includes a counter 5AC including a vector register 62 existing in the vector processing unit 6 and count units 5A-0 to 5A-m corresponding one-to-one. The initial values of all the counting units 5A-0 to 5A-m of the counter 5AC are zero. When the instruction decoded by the instruction decoding unit 51 is an instruction for writing to the vector register 62 or an instruction for loading data into the vector register 62, the counter 5AC displays the vector register used by the instruction output from the decoding unit 51. Based on the information 62, the value of the count unit 5A-j (j is 0 to m) corresponding to the vector register 62 is incremented by one. In addition, when processing of the instruction in the register 52 at the instruction issuing stage is completed, the instruction issuing unit 58 determines that the instruction is an instruction to write to the vector register 62 or an instruction to load data to the vector register 62. At the timing when the busy flag of the used vector register 62 is reset, the number of the vector register 62 is notified to the write / load counter unit 5A, and the counter 5AC counts the counting unit 5A corresponding to the notified vector register 62. Decrease the value of -j by -1.
リードカウンタ部5Bは、ベクトル制御部5内で仕掛かり中のベクトル命令でリードされるベクトルレジスタ62とその使用命令数を管理する。構成例を図3のリードカウンタ部5Bのブロックに示す。この例のリードカウンタ部5Bは、ベクトル処理部6に存在するベクトルレジスタ62と1対1に対応するカウント部5B−0〜5B−mから構成されるカウンタ5BCを有する。カウンタ5BCの全てのカウント部5B−0〜5B−mの初期値は0である。命令デコード部51で解読された命令がベクトルレジスタ62をリードする命令であった場合、カウンタ5BCは、デコード部51から出力される当該命令が使用するベクトルレジスタ62の情報に基づいて、そのベクトルレジスタ62に対応するカウント部5B−jの値を+1する。また、命令発行部58は、命令発行ステージのレジスタ52の命令の処理が終了すると、その命令がベクトルレジスタ62をリードする命令であった場合、その命令で使用したベクトルレジスタ62のビジーフラグをリセットするタイミングで、ベクトルレジスタ62の番号をリードカウンタ部5Bに通知するようになっており、カウンタ5BCは、通知されたベクトルレジスタ62に対応するカウント部5B−jの値を−1する。 The read counter unit 5B manages the vector register 62 to be read by the vector command being processed in the vector control unit 5 and the number of used instructions. A configuration example is shown in the block of the read counter section 5B in FIG. The read counter unit 5B in this example includes a counter 5BC including a vector register 62 existing in the vector processing unit 6 and a count unit 5B-0 to 5B-m corresponding one-to-one. The initial values of all the counting units 5B-0 to 5B-m of the counter 5BC are zero. When the instruction decoded by the instruction decoding unit 51 is an instruction for reading the vector register 62, the counter 5BC determines the vector register based on the information of the vector register 62 used by the instruction output from the decoding unit 51. The value of the count unit 5B-j corresponding to 62 is incremented by one. Further, when processing of the instruction in the register 52 at the instruction issuing stage is completed, the instruction issuing unit 58 resets the busy flag of the vector register 62 used in the instruction when the instruction is an instruction that reads the vector register 62. At the timing, the number of the vector register 62 is notified to the read counter unit 5B, and the counter 5BC decrements the value of the count unit 5B-j corresponding to the notified vector register 62 by -1.
ロード命令情報管理部5Cは、ベクトル制御部5内で仕掛かり中のベクトルロード命令を管理し、ベクトル処理部6のベクトルロード管理部65に対して必要な情報を通知する部分である。構成例を図3のロード命令情報管理部5Cのブロックに示す。この例のロード命令情報管理部5Cは、レジスタ群5C1、リソース情報登録部5C2およびリソース情報チェック部5C3を含んで構成される。 The load instruction information management unit 5C is a part that manages a vector load instruction in progress in the vector control unit 5 and notifies the vector load management unit 65 of the vector processing unit 6 of necessary information. A configuration example is shown in the block of the load instruction information management unit 5C in FIG. The load instruction information management unit 5C in this example includes a register group 5C1, a resource information registration unit 5C2, and a resource information check unit 5C3.
レジスタ群5C1は、ベクトル処理部6に存在するロードバッファ64に1対1に対応するレジスタ5C1−0〜5C1−nの集合で構成され、各レジスタ5C1−i(i=0〜n)は、ロードバッファ番号フィールド5C11、ベクトルレジスタ番号フィールド5C12、要素数フィールド5C13、ライト・ロードカウンタ値フィールド5C14およびリードカウンタ値フィールド5C15を有する。ロードバッファ番号フィールド5C11には、ロードバッファ64のバッファ番号が固定的に設定されている。ベクトルレジスタ番号フィールド5C12には、ベクトルロード命令でロードするベクトルデータを格納するベクトルレジスタ62の番号が設定される。要素数フィールド5C13には、ベクトルロード命令でロードされるベクトルデータの要素数が設定される。ライト・ロードカウンタ値フィールド5C14には、ベクトルレジスタ番号フィールド5C12に設定された番号のベクトルレジスタ62をライトおよびロードに使用するベクトル命令の数が設定される。リードカウンタ値フィールド5C15には、ベクトルレジスタ番号フィールド5C12に設定された番号のベクトルレジスタ62をリードに使用するベクトル命令の数が設定される。 The register group 5C1 is composed of a set of registers 5C1-0 to 5C1-n corresponding one-to-one with the load buffer 64 existing in the vector processing unit 6, and each register 5C1-i (i = 0 to n) It has a load buffer number field 5C11, a vector register number field 5C12, an element number field 5C13, a write / load counter value field 5C14, and a read counter value field 5C15. In the load buffer number field 5C11, the buffer number of the load buffer 64 is fixedly set. In the vector register number field 5C12, the number of the vector register 62 that stores vector data to be loaded by the vector load instruction is set. In the element number field 5C13, the number of elements of vector data loaded by the vector load instruction is set. In the write / load counter value field 5C14, the number of vector instructions that use the vector register 62 of the number set in the vector register number field 5C12 for writing and loading is set. In the read counter value field 5C15, the number of vector instructions that use the vector register 62 of the number set in the vector register number field 5C12 for reading is set.
リソース情報登録部5C2は、命令レジスタ53の出力と、ライト・ロードカウンタ部5Aの出力と、リードカウンタ部5Bの出力とを入力とする。命令レジスタ53には、命令デコード部51でデコードされたベクトル命令がベクトルロード命令であった場合に、命令デコード部51のデコード情報に加えて信号線106を通じてメモリアクセス処理部3から通知された当該ベクトルロード命令に割り当てられたロードバッファ64の番号が保持されている。リソース情報登録部5C2は、命令レジスタ53からロードバッファ番号を入力すると、そのロードバッファ番号をロードバッファ番号フィールド5C11に持つレジスタ5C1−iのベクトルレジスタ番号フィールド5C12および要素数フィールド5C13に、命令レジスタ53から出力されるベクトルレジスタ番号および要素数を設定する。また、ライト・ロードカウンタ部5Aのカウンタ5ACのカウント部5A−0〜5A−mのうち、ベクトルレジスタ番号フィールド5C12に設定したベクトルレジスタ番号に対応するカウント部の内容をライト・ロードカウンタ値フィールド5C14に設定し、リードカウンタ部5Bのカウンタ5BCのカウント部5B−0〜5B−mのうち、ベクトルレジスタ番号フィールド5C12に設定したベクトルレジスタ番号に対応するカウント部の内容をリードカウンタ値フィールド5C15に設定する。そして、ロードバッファ番号フィールド5C11のロードバッファ番号、ベクトルレジスタ番号フィールド5C12に設定したベクトルレジスタ番号、要素数フィールド5C13に設定した要素数を含むベクトルロード命令情報を、信号線109を通じてベクトルロード管理部65に出力する。
The resource information registration unit 5C2 receives the output of the instruction register 53, the output of the write / load counter unit 5A, and the output of the read counter unit 5B. In the instruction register 53, when the vector instruction decoded by the instruction decoding unit 51 is a vector load instruction, the instruction notified from the memory
リソース情報チェック部5C3は、命令発行部58からの通知に応じてレジスタ群5C1のライト・ロードカウンタ値フィールド5C14およびリードカウンタ値フィールド5C15を更新し、先行するベクトル命令とベクトルレジスタの競合が生じなくなったタイミングで、信号線109を通じてベクトルロード管理部65に対して、ロードバッファ番号を指定したリソースチェックOK信号を送信する。具体的には、命令発行部58は、命令発行ステージのレジスタ52の命令の処理を終了すると、その命令がベクトルレジスタ62へライトする命令またはベクトルレジスタ62へデータをロードする命令であった場合、その命令で使用したベクトルレジスタ62のビジーフラグをリセットするタイミングで、そのベクトルレジスタ62の番号をロード命令情報管理部5Cに通知するようになっており、リソース情報チェック部5C3は、通知されたベクトルレジスタ番号をベクトルレジスタ番号フィールド5C12に持つレジスタのライト・ロードカウンタ値フィールド5C14の値を1だけ減算する。また、命令発行部58は、命令発行ステージのレジスタ52の命令の処理を終了すると、その命令がベクトルレジスタ62をリードする命令であった場合、その命令で使用したベクトルレジスタ62のビジーフラグをリセットするタイミングで、そのベクトルレジスタ62の番号をロード命令情報管理部5Cに通知するようになっており、リソース情報チェック部5C3は、通知されたベクトルレジスタ番号をベクトルレジスタ番号フィールド5C12に持つレジスタのリードカウンタ値フィールド5C15の値を1だけ減算する。そして、リソース情報チェック部5C3は、ライト・ロードカウンタ値フィールド5C14の値が1で、且つ、リードカウンタ値フィールド5C15の値が0となった場合に、そのレジスタのロードバッファ番号フィールド5C11に設定されているロードバッファ番号を指定したリソースチェックOK信号を信号線109を通じてベクトルロード管理部65に送信する。
The resource information check unit 5C3 updates the write / load counter value field 5C14 and the read counter value field 5C15 of the register group 5C1 in response to the notification from the instruction issuing unit 58, so that the conflict between the preceding vector instruction and the vector register does not occur. At the same time, a resource check OK signal designating a load buffer number is transmitted to the vector load management unit 65 through the
再び図1を参照すると、ロードバッファ番号管理部5Dは、信号線110を通じてベクトルロード管理部65から転送開始通知を受けると、その通知に含まれるロードバッファ64の番号を保持する。このロードバッファ番号管理部5Dは、命令発行ステージの命令レジスタ52に格納されたベクトルロード命令を処理する際に命令発行部58によって参照される。なお、ロードバッファ番号管理部5Dに記憶されたロードバッファ番号は、そのロードバッファ番号のロードバッファを使うベクトルロード命令が命令発行ステージの命令レジスタ52に格納されたときに、命令発行部58によって削除される。
Referring to FIG. 1 again, when the load buffer number management unit 5D receives a transfer start notification from the vector load management unit 65 through the
ビジーフラグ群59は、前述したように、ベクトル演算器63やベクトルレジスタ62等の各リソース毎にそのリソースがビジー中かどうかを保持しており、基本的には命令発行部58が命令発行ステージの命令レジスタ52に格納された命令を発行する際、その命令で使用するリソースをビジー状態に更新し、その命令の実行が終了した時点でビジー状態を解除する。但し、本実施の形態では、ベクトルロード管理部65側の判断でロードバッファ64の内容をベクトルレジスタ62に転送する動作を開始するため、信号線110を通じてベクトルロード管理部65から送られてくる転送開始通知および転送終了通知によってもビジーフラグ群59が更新される。具体的には、信号線110を通じてベクトルロード管理部65から転送開始通知を受けると、その通知に含まれるベクトルレジスタ62の番号で特定されるベクトルレジスタをビジー状態に更新し、信号線110を通じてベクトルロード管理部65から転送終了通知を受けると、その通知に含まれるベクトルレジスタ62の番号で特定されるベクトルレジスタのビジー状態を解除する。
As described above, the busy flag group 59 holds whether or not the resource is busy for each resource such as the vector computing unit 63 and the vector register 62. Basically, the instruction issuing unit 58 is in the instruction issuing stage. When the instruction stored in the instruction register 52 is issued, the resource used by the instruction is updated to the busy state, and the busy state is released when the execution of the instruction is completed. However, in this embodiment, since the operation of transferring the contents of the load buffer 64 to the vector register 62 is started at the judgment of the vector load managing unit 65, the transfer sent from the vector load managing unit 65 through the
次に本実施の形態にかかるベクトル処理装置の動作を、ベクトルロード命令の処理を中心に説明する。 Next, the operation of the vector processing apparatus according to the present embodiment will be described with a focus on vector load instruction processing.
命令制御部2の命令解読部21は、主記憶装置7から信号線101を通じて読み出した命令がベクトルロード命令であった場合、そのベクトルロード命令を信号線103を通じてメモリアクセス処理部3に送出すると同時に、信号線104を通じてベクトル制御部5に送出する。以下の説明の便宜上、上記ベクトルロード命令は、主記憶装置7の開始アドレスX、アクセスするベクトルデータの間隔D、要素数100、ベクトルデータをロードするベクトルレジスタの番号1をパラメータとして持つベクトルロード命令VLD1とする。
When the instruction read from the main storage device 7 through the signal line 101 is a vector load instruction, the
メモリアクセス処理部3は、複数存在するロードバッファ64の内から空き状態の1つのロードバッファを確保し、この確保したロードバッファの番号を指定して、命令制御部2から伝達されたベクトルロード命令VLD1にかかるメモリアクセスリクエストを信号線105を通じてプロセッサネットワーク部4に発行し、同時に前記確保したロードバッファの番号を信号線106を通じてベクトル制御部5へ通知する。今、確保されたロードバッファの番号は0であったものとする。
The memory
ベクトル制御部5の命令デコード部51は、ベクトルロード命令VLD1を解読し、ベクトルレジスタ番号1および要素数100などの解読情報と信号線106を通じてメモリアクセス処理部3から通知されたロードバッファ番号0の情報とを命令レジスタ53に格納する。また、ベクトルロード命令であるため、命令デコード部51は、ライト・ロードカウンタ部5Aのカウンタ5ACにおけるベクトルレジスタ番号1に対応するカウント部5A−1の値を+1する。次に、命令レジスタ53の内容は命令レジスタ54に格納されると同時にロード命令情報管理部5Cに出力される。ロード命令情報管理部5Cのリソース情報登録部5C2は、命令レジスタ53からロードバッファ番号0が出力されたため、そのロードバッファ番号0をロードバッファ番号フィールド5C11に持つレジスタ5C1−0のベクトルレジスタ番号フィールド5C12および要素数フィールド5C13に、命令レジスタ53から出力されたベクトルレジスタ番号1および要素数100を設定し、ライト・ロード命令カウンタ部5Aのカウンタ5ACにおけるベクトルレジスタ番号1に対応するカウント部5A−1の値をライト・ロードカウンタ値フィールド5C14に設定し、リード命令カウンタ部5Bのカウンタ5BCにおけるベクトルレジスタ番号1に対応するカウント部5B−1の値をリードカウンタ値フィールド5C15に設定する。そして、リソース情報登録部5C2は、ロードバッファ番号0、ベクトルレジスタ番号1、要素数100の情報を含むベクトルロード命令情報を信号線109を通じてベクトルロード管理部65に通知する。ベクトルロード管理部65のレジスタ設定部652は、ロードバッファ番号0がロードバッファ番号フィールド6511に設定されているレジスタ651−0におけるベクトルレジスタ番号フィールド6512にベクトルレジスタ番号1を設定し、ライト要素数フィールド6514およびリード要素数フィールド6515に要素数100を設定し、リソースチェックフラグフィールド6513のフラグは値1とする。
The instruction decode unit 51 of the vector control unit 5 decodes the vector load instruction VLD 1, decodes information such as the vector register number 1 and the number of elements 100, and the
ここで、ロード命令情報管理部5Cのレジスタ5C1−0のライト・ロードカウンタ値フィールド5C14の値とリードカウンタ値フィールド5C15の値とがどのような値になるかは、ベクトルロード命令VLD1に先行する仕掛かり中のベクトル命令の種類や数によって決定され、大別すると以下のようなケースに分けられる。 Here, the value of the write / load counter value field 5C14 and the value of the read counter value field 5C15 of the register 5C1-0 of the load instruction information management unit 5C precedes the vector load instruction VLD1. It is determined by the type and number of vector instructions in progress, and can be roughly divided into the following cases.
(1)ケース1:ベクトルロード命令VLD1が使用するベクトルレジスタと先行命令が使用するベクトルレジスタとが競合しない場合。このときは、ライト・ロードカウンタ値フィールド5C14の値は1、リードカウンタ値フィールド5C15の値は0になる。
(2)ケース2:ベクトルロード命令VLD1が使用するベクトルレジスタと先行命令が使用するベクトルレジスタとが競合する場合。このときは、ベクトルロード命令VLD1が使用するベクトルレジスタをライトに使う仕掛かり中のベクトル命令の数をaとすると、ライト・ロードカウンタ値フィールド5C14の値はa+1であり、ベクトルロード命令VLD1が使用するベクトルレジスタをリードに使う仕掛かり中のベクトル命令の数をbとすると、リードカウンタ値フィールド5C15の値はbである。なお、メモリアクセス処理部3は同じロードバッファ64を複数のベクトルロード命令に同時に割り当てることがないので、ベクトルロード命令VLD1に先行するベクトルロード命令が仕掛かり中であっても、ライト・ロードカウンタ値フィールド5C14の値に影響はない。
(1) Case 1: When the vector register used by the vector load instruction VLD1 does not conflict with the vector register used by the preceding instruction. At this time, the value of the write / load counter value field 5C14 is 1, and the value of the read counter value field 5C15 is 0.
(2) Case 2: When the vector register used by the vector load instruction VLD1 conflicts with the vector register used by the preceding instruction. At this time, assuming that the number of vector instructions in progress using the vector register used by the vector load instruction VLD1 for writing is a, the value of the write / load counter value field 5C14 is a + 1, and the vector load instruction VLD1 uses it. Assuming that the number of vector instructions in progress using the vector register to be read is b, the value of the read counter value field 5C15 is b. Since the memory
ケース1の場合、ロード命令情報管理部5Cのリソース情報チェック部5C3は、リソース情報登録部5C2が登録したレジスタ5C1−0のライト・ロードカウンタ値フィールド5C14の値が1で、且つ、リードカウンタ値フィールド5C15の値が0なので、ベクトルロード命令VLD1のリソースは仕掛かり中の他のベクトル命令と競合しないと判定し、ロードバッファ番号0を指定したリソースチェックOK信号を信号線109を通じてベクトルロード管理部65に通知する。他方、ケース2の場合、リソース情報チェック部5C3は、リソース情報登録部5C2が登録したレジスタ5C1−0のライト・ロードカウンタ値フィールド5C14の値が1になり、且つ、リードカウンタ値フィールド5C15の値が0になるのを監視する。ベクトル制御部5においてベクトルロード命令VLD1に先行する仕掛かり中のベクトル命令の実行が終了する毎に、命令発行部58からの通知に応じてリソース情報チェック部5C3はライト・ロードカウンタ値フィールド5C14の値およびリードカウンタ値フィールド5C15の値を減算する。そして、レジスタ5C1−0のライト・ロードカウンタ値フィールド5C14の値が1になり、且つ、リードカウンタ値フィールド5C15の値が0になると、リソース情報チェック部5C3は、ベクトルロード命令VLD1のリソースは仕掛かり中の他のベクトル命令と競合しないと判定し、ロードバッファ番号0を指定したリソースチェックOK信号を信号線109を通じてベクトルロード管理部65に通知する。
In case 1, the resource information check unit 5C3 of the load instruction information management unit 5C has a value of 1 in the write / load counter value field 5C14 of the register 5C1-0 registered by the resource information registration unit 5C2 and a read counter value. Since the value of the field 5C15 is 0, it is determined that the resource of the vector load instruction VLD1 does not compete with other vector instructions in progress, and the resource check OK signal designating the
ベクトルロード管理部65のレジスタ設定部652は、通知されたロードバッファ番号0をロードバッファ番号フィールド6511に持つレジスタ651−0のリソースチェックフラグフィールド6513のフラグ値を1から0に変更する。
The register setting unit 652 of the vector load management unit 65 changes the flag value of the resource
プロセッサネットワーク部4は、メモリアクセス処理部3から発行されたメモリアクセスリクエストに応じて、主記憶装置7の開始アドレスXの要素、開始アドレス+距離Dのアドレスの要素、…、最後の要素を順次読み出し、ロードバッファ番号0を添えて信号線108経由でベクトルロード管理部65に送出する。ベクトルロード管理部65のライト部653は、受信した各要素をロードバッファ番号0のロードバッファ64に格納し、ロードバッファ番号0がロードバッファ番号フィールド6511に設定されているレジスタ651−0のライト要素数フィールド6514の値を順次減算していく。100要素全てのデータがロードバッファ番号0のロードバッファ64に格納された時点で、ライト要素数フィールド6514の値は0となる。
In response to the memory access request issued from the memory
リード部654は、レジスタ651−0のライト要素数フィールド6514の値が0になったことで全要素がロードバッファ64に格納されたことを認識し、リソースチェックフラグフィールド6513のフラグの値が0か1かを判定する。1であれば0になるのを待ち、0であれば或いは0になれば、クロスバスイッチ回路66との間のパスが空いていれば直ちに、空いていなければ空き次第、ロードバッファ番号0およびベクトルレジスタ番号1を指定した転送開始通知を信号線110を通じてベクトル制御部5に送出する。ベクトル制御部5のロードバッファ番号管理部5Dは、ロードバッファ番号0を保持し、ビジーフラグ群59は、ベクトルレジスタ番号1のベクトルレジスタをビジー状態として管理する。リード部654は、転送開始通知を行うと同時にロードバッファ番号0のロードバッファ64の内容をクロスバスイッチ回路66を通じてベクトルレジスタ番号1のベクトルレジスタ62に転送する処理を開始する。
The read unit 654 recognizes that all the elements are stored in the load buffer 64 when the value of the write
リード部654は、1要素を転送する毎に、レジスタ651−0のリード要素数フィールド6515の値を1だけ減算していき、リード要素数フィールド6515の値が0になった時点で転送を終了し、ロードバッファ番号0とベクトルレジスタ番号1を指定した転送終了通知を信号線110を通じてベクトル制御部5に送出すると同時に、ロードバッファ番号0を指定したバッファ解放通知を信号線107を通じてメモリアクセス処理部3に送出する。ベクトル制御部5のビジーフラグ群59は、ベクトルレジスタ番号1のベクトルレジスタのビジー状態を解除する。また、メモリアクセス処理部3は、通知されたロードバッファ番号0のロードバッファを空き状態として管理する。
Each time one element is transferred, the read unit 654 decrements the value of the read element number field 6515 of the register 651-0 by 1, and ends the transfer when the value of the read element number field 6515 becomes 0. Then, a transfer end notification designating the
ベクトル制御部5において、ベクトルロード命令VLD1は、命令レジスタ54に格納された後、以降の各ステージで処理され、最終的に命令発行ステージの命令レジスタ52に格納される。命令発行部58は、命令レジスタ52に格納されたベクトルロード命令VLD1が使用するロードバッファの番号0(これは命令レジスタ53から順次持ち回って命令レジスタ52に保持されている)とロードバッファ番号管理部5Dに記憶されているロードバッファ番号とを比較し、ロードバッファ番号管理部5Dにロードバッファ番号0が格納されていなければ格納されるのを待ち合わせ、既に格納されているか、待ち合わせ中に格納されたら、ベクトルロード命令VLD1の命令発行を行わずにその命令の処理を終了し、ロードバッファ番号0をロードバッファ番号管理部5Dから削除する。このように命令発行部58がベクトルロード命令VLD1の命令発行を行わない理由は、ベクトルロード命令VLD1が使用するリソースが先行命令のリソースと競合しなくなり、且つ、ベクトルデータの全要素がロードバッファに格納されると、ベクトルロード管理部65によってベクトルレジスタへの転送が起動されるため、ベクトルロード命令VLD1の命令発行処理をあえて命令発行部58が行う必要がないからである。
In the vector control unit 5, the vector load instruction VLD1 is stored in the
このように本実施の形態によれば、ベクトルロード命令VLD1が命令発行ステージの命令レジスタ52に到着するのを待たずに、バッファ番号0のロードバッファ64からレジスタ番号1のベクトルレジスタ62への転送を開始できるため、レジスタ番号1のベクトルレジスタ62を使用する後続のベクトル命令の処理を早めることができると共に、バッファ番号0のロードバッファ64の解放を早め、処理効率を高めることができる。
As described above, according to the present embodiment, the transfer from the load buffer 64 with the
以上の説明では、1つのベクトルロード命令VLD1に着目したが、複数のベクトルロード命令が連続する場合でも同様の動作が行われる。この場合、本実施の形態では、ベクトルロード命令が命令発行ステージに到着した順でなく、ロードバッファに全要素が揃い且つリソースの競合がなくなった順にベクトルレジスタへの転送が起動されるため、先行するベクトルロード命令よりも先に後続のベクトルロード命令のベクトルデータをベクトルレジスタへ転送することも可能となる。例えば、先行するベクトルロード命令VLD1が、自命令で使用するベクトルレジスタを使用する仕掛かり中の先行ベクトル命令の終了を待ち合わせているか、或いは要素数が多いためにロードバッファに全要素が格納されるのを待ち合わせている間に、後続のベクトルロード命令VLD2の全要素がロードバッファに格納され且つベクトルロード命令VLD2が使用するベクトルレジスタが先行する仕掛かり中のベクトル命令のリソースと競合しない状況に至ると、ベクトルロード管理部65のリード部654は、ベクトルロード命令VLD1より先にベクトルロード命令VLD2について、ロードバッファからベクトルレジスタへの転送を開始する。 In the above description, attention is paid to one vector load instruction VLD1, but the same operation is performed even when a plurality of vector load instructions are consecutive. In this case, in this embodiment, the transfer to the vector register is started not in the order in which the vector load instructions arrive at the instruction issue stage but in the order in which all elements are aligned in the load buffer and there is no resource contention. It is also possible to transfer the vector data of the subsequent vector load instruction to the vector register before the vector load instruction to be performed. For example, the preceding vector load instruction VLD1 waits for the end of the preceding vector instruction in progress using the vector register used in its own instruction, or all elements are stored in the load buffer because of the large number of elements. All the elements of the subsequent vector load instruction VLD2 are stored in the load buffer and the vector register used by the vector load instruction VLD2 does not conflict with the resources of the preceding vector instruction in progress. Then, the read unit 654 of the vector load management unit 65 starts the transfer from the load buffer to the vector register for the vector load instruction VLD2 prior to the vector load instruction VLD1.
1…プロセッサ
2…命令制御部
3…メモリアクセス処理部
4…プロセッサネットワーク部
5…ベクトル制御部
6…ベクトル処理部
7…主記憶装置
DESCRIPTION OF SYMBOLS 1 ...
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003270882A JP3726092B2 (en) | 2003-07-04 | 2003-07-04 | Vector processing apparatus and vector loading method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003270882A JP3726092B2 (en) | 2003-07-04 | 2003-07-04 | Vector processing apparatus and vector loading method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005025693A JP2005025693A (en) | 2005-01-27 |
JP3726092B2 true JP3726092B2 (en) | 2005-12-14 |
Family
ID=34190714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003270882A Expired - Fee Related JP3726092B2 (en) | 2003-07-04 | 2003-07-04 | Vector processing apparatus and vector loading method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3726092B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4687729B2 (en) * | 2008-03-04 | 2011-05-25 | 日本電気株式会社 | Cache memory, vector processing apparatus, and vector data alignment method |
JP4789269B2 (en) * | 2008-04-10 | 2011-10-12 | エヌイーシーコンピュータテクノ株式会社 | Vector processing apparatus and vector processing method |
JP5240270B2 (en) * | 2010-10-12 | 2013-07-17 | 日本電気株式会社 | Processor and vector load instruction execution method |
JP5348698B2 (en) * | 2010-10-27 | 2013-11-20 | エヌイーシーコンピュータテクノ株式会社 | Information processing apparatus and information processing method |
-
2003
- 2003-07-04 JP JP2003270882A patent/JP3726092B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005025693A (en) | 2005-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5185868A (en) | Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy | |
US8850167B2 (en) | Loading/discarding acquired data for vector load instruction upon determination of prediction success of multiple preceding branch instructions | |
JPS61107434A (en) | Data processor | |
JPH06103494B2 (en) | Vector processor control system | |
JP2019169081A (en) | Information processing device, information processing method, and program | |
JP2531760B2 (en) | Vector processor | |
JP3726092B2 (en) | Vector processing apparatus and vector loading method | |
CN116414541B (en) | Task execution method and device compatible with multiple task working modes | |
JP4789269B2 (en) | Vector processing apparatus and vector processing method | |
JP2006313479A (en) | Semiconductor integrated circuit device and data transfer method | |
JP4631442B2 (en) | Processor | |
JP5093237B2 (en) | Instruction processing device | |
US20040128476A1 (en) | Scheme to simplify instruction buffer logic supporting multiple strands | |
JP3982077B2 (en) | Multiprocessor system | |
JP6926681B2 (en) | Arithmetic processing unit and control method of arithmetic processing unit | |
JP2668987B2 (en) | Data processing device | |
CN117407181B (en) | Heterogeneous computing process synchronization method and system based on barrier instruction | |
JPH0922397A (en) | Parallel computers | |
US11507372B2 (en) | Processing of instructions fetched from memory | |
US7779083B2 (en) | Message transmitting queue and associated method | |
JP2012173755A (en) | Information processor and information processing method | |
JPH0962633A (en) | Network control unit | |
JP7102840B2 (en) | Processor core, instruction control method, program | |
JP2001184259A (en) | Arithmetic processor and data transferring method in the device | |
JP2702137B2 (en) | Vector operation instruction processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050628 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050811 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050906 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050926 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |