Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5392810B2 - Instruction issue control device and instruction issue control method - Google Patents
[go: Go Back, main page]

JP5392810B2 - Instruction issue control device and instruction issue control method - Google Patents

Instruction issue control device and instruction issue control method Download PDF

Info

Publication number
JP5392810B2
JP5392810B2 JP2008234632A JP2008234632A JP5392810B2 JP 5392810 B2 JP5392810 B2 JP 5392810B2 JP 2008234632 A JP2008234632 A JP 2008234632A JP 2008234632 A JP2008234632 A JP 2008234632A JP 5392810 B2 JP5392810 B2 JP 5392810B2
Authority
JP
Japan
Prior art keywords
instruction
vector
register
unit
processing
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.)
Active
Application number
JP2008234632A
Other languages
Japanese (ja)
Other versions
JP2010067141A (en
Inventor
尊博 内田
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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2008234632A priority Critical patent/JP5392810B2/en
Publication of JP2010067141A publication Critical patent/JP2010067141A/en
Application granted granted Critical
Publication of JP5392810B2 publication Critical patent/JP5392810B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Complex Calculations (AREA)

Description

本発明は、主にベクトル演算命令発行制御に関する。   The present invention mainly relates to vector operation instruction issue control.

近年、プロセッサなどのハードウェア装置は、命令実行の速度がより速くなるように改善されており、一サイクルで同時に複数の命令を発行して実行することが可能になっている。例えば、ベクトル処理装置では、ベクトル命令を複数の演算器を用いて並列して実行している。ハードウェア装置の性能を改善する技術が例えば、特許文献1、2に開示されている。   In recent years, hardware devices such as processors have been improved so as to increase the speed of instruction execution, and a plurality of instructions can be issued and executed simultaneously in one cycle. For example, in a vector processing apparatus, vector instructions are executed in parallel using a plurality of arithmetic units. Technologies for improving the performance of hardware devices are disclosed in, for example, Patent Documents 1 and 2.

ベクトル命令を実行するベクトル処理装置では、ベクトルレジスタを用いて、ベクトル命令を実行し、演算結果をテンポラリレジスタに一時的に格納する演算処理命令と、テンポラリレジスタに格納した演算結果をベクトルレジスタへ転送する演算結果転送命令とに分解して実行している。
特開2006−079623号公報 特開昭58−154045号公報
A vector processing device that executes a vector instruction uses a vector register to execute the vector instruction, temporarily stores the operation result in the temporary register, and transfers the operation result stored in the temporary register to the vector register. It is broken down into operation result transfer instructions to be executed.
JP 2006-079623 A Japanese Patent Laid-Open No. 58-154045

ベクトル処理装置において、演算レジスタが1ポートRAM(Random Access Memory)で構成される場合に、演算命令実行時に演算処理命令によるレジスタからの読み出し処理と、演算結果転送命令による演算結果の書き込み処理とを実行するため、RAMへのアクセスが競合してしまうことがあった。   In a vector processing device, when an arithmetic register is composed of a 1-port RAM (Random Access Memory), a read process from a register by an arithmetic process instruction and an arithmetic result write process by an arithmetic result transfer instruction at the time of execution of the arithmetic instruction As a result, access to the RAM may compete.

これは、LSI(large Scale Integration)の面積を小さくするために演算レジスタその他のハードウェア量を最小限に抑える必要があるため、1ポートRAMを採用するためである。具体的には、1ポートRAM、すなわち、あるタイミングで読み出し処理または書き込み処理のどちらか一方を実行可能なRAMを採用するため、RAMへのアクセスが競合するという問題があった。   This is because a one-port RAM is used because it is necessary to minimize the amount of hardware such as arithmetic registers in order to reduce the area of an LSI (large scale integration). Specifically, since a 1-port RAM, that is, a RAM that can execute either a read process or a write process at a certain timing, is employed, there is a problem that access to the RAM competes.

また、LSIコスト削減の観点から論理演算部が占める面積を小さくするために演算レジスタその他のハードウェア量最小化は永年の課題である。従って、1ポートRAMを採用せざるをえない状況において、レジスタからの読み出し処理と演算結果の書き込み処理とで競合が発生してしまう構成においても演算性能向上が求められていた。   Also, minimizing the amount of arithmetic registers and other hardware has been a long-standing issue in order to reduce the area occupied by the logical operation unit from the viewpoint of LSI cost reduction. Therefore, in a situation where a 1-port RAM has to be adopted, there has been a demand for improvement in calculation performance even in a configuration in which contention occurs between the reading process from the register and the writing process of the calculation result.

本発明の目的は、効率的にベクトル命令が実行可能なベクトル処理装置及び方法を提供することにある。   An object of the present invention is to provide a vector processing apparatus and method capable of efficiently executing vector instructions.

本発明に係るベクトル処理装置の一態様は、ベクトル命令を受け付け、ベクトル命令の発行を管理するベクトル命令制御手段と、ベクトル命令制御手段から発行されたベクトル命令を受け付け、ベクトルレジスタを用いて、ベクトル命令を、演算結果をテンポラリレジスタに一時的に格納する演算処理命令と、テンポラリレジスタに格納した演算結果をベクトルレジスタへ転送する演算結果転送命令とに分解して実行するベクトル演算手段とを備えるベクトル処理装置であって、前記ベクトル命令制御手段は、実行待ちベクトル命令を、演算処理命令と演算結果転送命令に分解した状態で格納する命令発行待機バッファ手段と、ベクトル命令を受け付け、前記受け付けたベクトル命令が使用するテンポラリレジスタを決定し、前記受け付けたベクトル命令のオペランドに指定されたレジスタ番号がテンポラリレジスタと一致する場合、前記受け付けたベクトル命令のオペランドレジスタを前記テンポラリレジスタにリネームし、前記受け付けたベクトル命令と前記リネームしたベクトル命令とのいずれかについて、前記演算処理命令と前記演算結果転送命令とに分離して前記命令発行待機バッファ手段へ格納する命令解析手段と、前記実行待ちベクトル命令のうち書き込み先のベクトルレジスタが同じを解析し、同一ベクトルレジスタに格納する、先行して実行される演算処理命令を検出し、検出した演算処理命令に対応する演算結果転送命令発行を中止させる待機命令制御手段と、前記実行待ちベクトル命令の発行を管理する命令発行管理手段と、を備える。   One aspect of the vector processing apparatus according to the present invention is a vector instruction control unit that receives a vector instruction and manages the issuance of vector instructions, a vector instruction issued from the vector instruction control unit, and uses a vector register to A vector comprising: an operation processing instruction that temporarily stores an operation result in a temporary register; and a vector operation means that decomposes and executes an operation result instruction that transfers the operation result stored in the temporary register to a vector register In the processing apparatus, the vector instruction control means stores an execution waiting vector instruction in a state of being decomposed into an operation processing instruction and an operation result transfer instruction, accepts a vector instruction, and receives the received vector Determine the temporary register used by the instruction and accept the If the register number specified for the operand of the Kuttle instruction matches the temporary register, the operand register of the accepted vector instruction is renamed to the temporary register, and either the accepted vector instruction or the renamed vector instruction An instruction analysis unit that separates the arithmetic processing instruction and the operation result transfer instruction and stores the instruction in the instruction issuance waiting buffer unit; Waiting instruction control means for detecting an arithmetic processing instruction to be executed in advance, stored in a register, and canceling the issuance of an arithmetic result transfer instruction corresponding to the detected arithmetic processing instruction, and managing the issuance of the execution waiting vector instruction Command issue management means.

また、本発明に係るベクトル処理方法の一態様は、実行待ちベクトル命令を、演算結果をテンポラリレジスタに一時的に格納する演算処理命令と、テンポラリレジスタに格納した演算結果をベクトルレジスタへ転送する演算結果転送命令とに分解した状態で格納する命令発行待機バッファ手段を備えるベクトル処理方法であって、ベクトル命令を受け付け、前記受け付けたベクトル命令が使用するテンポラリレジスタを決定し、前記受け付けたベクトル命令のオペランドに指定されたレジスタ番号がテンポラリレジスタと一致する場合、前記受け付けたベクトル命令のオペランドレジスタを前記テンポラリレジスタにリネームし、前記受け付けたベクトル命令と前記リネームしたベクトル命令とのいずれかについて、前記演算処理命令と前記演算結果転送命令とに分離して前記命令発行待機バッファ手段へ格納し、前記実行待ちベクトル命令のうち書き込み先のベクトルレジスタが同じを解析し、同一ベクトルレジスタに格納する、先行して実行される演算処理命令を検出し、検出した演算処理命令に対応する演算結果転送命令発行を中止させ、前記実行待ちベクトル命令の発行を管理し、ベクトル命令を実行するベクトル演算手段へ出力する。   According to another aspect of the vector processing method of the present invention, an execution waiting vector instruction, an operation processing instruction for temporarily storing an operation result in a temporary register, and an operation for transferring the operation result stored in the temporary register to the vector register are provided. A vector processing method comprising instruction issue waiting buffer means for storing a result transfer instruction in a state of being decomposed, accepting a vector instruction, determining a temporary register used by the accepted vector instruction, If the register number specified for the operand matches the temporary register, the operand register of the accepted vector instruction is renamed to the temporary register, and the operation is performed on either the accepted vector instruction or the renamed vector instruction. Processing instructions and said It is separated into calculation result transfer instructions and stored in the instruction issue waiting buffer means, and the execution destination vector register of the execution waiting vector instructions is analyzed for the same and stored in the same vector register. An arithmetic processing instruction is detected, the operation result transfer instruction issuance corresponding to the detected arithmetic processing instruction is stopped, the issuance of the execution waiting vector instruction is managed, and output to the vector arithmetic means for executing the vector instruction.

本発明によれば、効率的にベクトル命令を実行することが可能となる。   According to the present invention, it is possible to execute a vector instruction efficiently.

以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. For clarity of explanation, the following description and drawings are omitted and simplified as appropriate. In the drawings, components having the same configuration or function and corresponding parts are denoted by the same reference numerals and description thereof is omitted.

(実施形態1)
実施形態では、ベクトル命令を分割した演算処理命令と演算結果転送命令のうち、演算結果転送命令の実行を制御することによって、ベクトル命令の実行の効率化を図る一態様を説明する。本発明の実施の形態について図面を参照して詳細に説明する。図1は、本発明の実施形態1に係るベクトル処理装置の命令発行機構の概略を示すブロック図である。ベクトル処理装置は、スカラープロセッシングユニット(以下、適宜「SPU」と記す)1、ベクトル命令制御部(以下、適宜「VIC」と記す)2、及びベクトル演算パイプ部(以下、適宜「VPP」と記す)を備える。
(Embodiment 1)
In the embodiment, an aspect of improving the efficiency of execution of a vector instruction by controlling the execution of the operation result transfer instruction among the operation processing instruction and the operation result transfer instruction obtained by dividing the vector instruction will be described. Embodiments of the present invention will be described in detail with reference to the drawings. FIG. 1 is a block diagram showing an outline of an instruction issue mechanism of the vector processing apparatus according to the first embodiment of the present invention. The vector processing apparatus includes a scalar processing unit (hereinafter referred to as “SPU” as appropriate) 1, a vector instruction control unit (hereinafter referred to as “VIC” as appropriate) 2, and a vector operation pipe unit (hereinafter referred to as “VPP” as appropriate). ).

図1において、スカラープロセッシングユニット1は、VPP30〜37の演算リソースを使うベクトル命令を識別してVIC2に送出する機能を持つ。   In FIG. 1, the scalar processing unit 1 has a function of identifying a vector instruction using calculation resources of VPPs 30 to 37 and sending it to the VIC 2.

ベクトル命令制御部(ベクトル命令制御手段)2は、SPU1から受けたベクトル命令をバッファリングし、演算リソースのビジーを管理し、適切なタイミングでベクトル命令の実行指示をVPP30〜37に送出する。   The vector instruction control unit (vector instruction control means) 2 buffers the vector instruction received from the SPU 1, manages the busy of operation resources, and sends an instruction to execute the vector instruction to the VPPs 30 to 37 at an appropriate timing.

ベクトル演算パイプ部30〜37は、VIC2から受けたベクトル命令実行指示に従って指定のベクトル演算処理を実行する。ここでは、8つのベクトル演算パイプ部30〜37を備える場合を示しているが、この数に限られるわけではない。また、以降の説明では、ベクトル演算パイプ部30〜37の全体を示す場合、ベクトル演算部(ベクトル演算手段)3という。   The vector operation pipe units 30 to 37 execute designated vector operation processing in accordance with the vector instruction execution instruction received from the VIC 2. Here, although the case where the eight vector operation pipe parts 30-37 are provided is shown, it is not necessarily restricted to this number. Moreover, in the following description, when the whole vector calculation pipe parts 30-37 are shown, it is called the vector calculation part (vector calculation means) 3.

続いて、VIC2の構成を説明する。VIC2は、命令解析手段41、待機命令制御手段42、命令発行管理手段43、及び命令発行待機バッファ部204から構成される。   Next, the configuration of the VIC 2 will be described. The VIC 2 includes an instruction analysis unit 41, a standby instruction control unit 42, an instruction issue management unit 43, and an instruction issue standby buffer unit 204.

命令解析手段41は、ベクトル命令を受け付け、受け付けたベクトル命令が使用するテンポラリレジスタを決定する。そして、受け付けたベクトル命令のオペランドに指定されたレジスタ番号がテンポラリレジスタと一致する場合、受け付けたベクトル命令のオペランドレジスタをテンポラリレジスタにリネームする。さらに、受け付けたベクトル命令と前記リネームしたベクトル命令とのいずれかについて、演算処理命令と演算結果転送命令とに分離して命令発行待機バッファ部204へ格納する。命令解析手段41は、ベクトル命令バッファ部201、命令間依存関係解析部202、及び、命令分解およびリネーム処理部203を備える。   The instruction analysis means 41 receives a vector instruction and determines a temporary register used by the received vector instruction. When the register number specified in the operand of the accepted vector instruction matches the temporary register, the operand register of the accepted vector instruction is renamed to the temporary register. Further, either the received vector instruction or the renamed vector instruction is separated into an operation processing instruction and an operation result transfer instruction and stored in the instruction issue standby buffer unit 204. The instruction analysis unit 41 includes a vector instruction buffer unit 201, an inter-instruction dependency analysis unit 202, and an instruction decomposition and rename processing unit 203.

また、待機命令制御手段42は、実行待ちベクトル命令のうち書き込み先のベクトルレジスタが同じを解析し、同一ベクトルレジスタに格納する、先行して実行される演算処理命令を検出し、検出した演算処理命令に対応する演算結果転送命令発行を中止させる。待機命令制御手段42は、同一VR書き込み認識部208、TR番号使用認識部209、及びリタイア命令無効化処理部210を備える。   The standby instruction control means 42 analyzes the same execution destination vector register among the execution waiting vector instructions, detects a previously executed arithmetic processing instruction stored in the same vector register, and detects the detected arithmetic processing. Stops issuing the operation result transfer instruction corresponding to the instruction. The standby command control means 42 includes an identical VR write recognition unit 208, a TR number use recognition unit 209, and a retire command invalidation processing unit 210.

命令発行管理手段43は、実行待ちベクトル命令の発行を管理する。命令発行管理手段43は、命令発行チェック部205、命令発行部206、及び、パスビジー管理部207を備える。   The instruction issuance management unit 43 manages the issuance of execution waiting vector instructions. The command issuance management unit 43 includes a command issuance check unit 205, a command issuance unit 206, and a pass busy management unit 207.

以上各手段の機能の概略を説明したが、命令解析手段41、待機命令制御手段42、及び命令発行管理手段43に含まれる各構成要素、及び命令発行待機バッファ部204について詳細に説明する。   The outline of the function of each means has been described above, but each component included in the instruction analysis means 41, the standby instruction control means 42, and the instruction issue management means 43, and the instruction issue standby buffer unit 204 will be described in detail.

ベクトル命令バッファ部201は、SPU1より受け取ったベクトル命令を一旦バッファリングする。SPU1から受け取るベクトル命令には、ベクトル命令の書き込み先レジスタ番号、VL長情報が含まれる。ベクトル命令バッファ部201は、命令発行待機バッファ部204がビジーで無ければバッファリングしたベクトル命令を読み出すとともにベクトル命令に対してIDを付与して命令間依存関係解析部202に送出する。「命令発行待機バッファ部204がビジー」とは、命令発行待機バッファ部204に空きがない状態をいう。また、命令発行待機バッファ部204がビジーである場合、ベクトル命令バッファ部201は、命令発行待機バッファ部204のビジー状態が解消されるまで待つ。このとき、SPU1より命令が送出され続けると、自己のメモリが一杯になり、SPU1からの命令を保持できないため、ベクトル命令バッファ部201は、SPU1へビジー信号を送信し、命令の送出停止を指示する。   The vector instruction buffer unit 201 temporarily buffers the vector instruction received from the SPU1. The vector instruction received from the SPU 1 includes the write destination register number of the vector instruction and VL length information. The vector instruction buffer unit 201 reads the buffered vector instruction if the instruction issue standby buffer unit 204 is not busy, assigns an ID to the vector instruction, and sends it to the inter-instruction dependency analysis unit 202. “The instruction issue standby buffer unit 204 is busy” means that the instruction issue standby buffer unit 204 is not empty. When the instruction issue standby buffer unit 204 is busy, the vector instruction buffer unit 201 waits until the busy state of the instruction issue standby buffer unit 204 is resolved. At this time, if the instruction continues to be sent from SPU1, its own memory becomes full and the instruction from SPU1 cannot be held. Therefore, the vector instruction buffer unit 201 sends a busy signal to SPU1 and instructs to stop sending the instruction. To do.

命令間依存関係解析部202は、ベクトル命令バッファ部201よりベクトル命令とIDとを受け取り、命令依存情報の生成し、ベクトル命令、ID、及び命令依存情報を命令分解およびリネーム処理部203へ送出する。具体的には、命令間依存関係解析部202は、受け取ったベクトル命令と命令分解およびリネーム処理部203および命令発行待機バッファ部204に存在する先行ベクトル命令とのレジスタ依存関係を解析し、解析した結果を命令依存情報として生成する。命令間依存関係は、Read after Write、Write after Read、Write after Write、または、依存関係なしのいずれかの情報となる。   The inter-instruction dependency analysis unit 202 receives a vector instruction and ID from the vector instruction buffer unit 201, generates instruction dependency information, and sends the vector instruction, ID, and instruction dependency information to the instruction decomposition and rename processing unit 203. . Specifically, the inter-instruction dependency analysis unit 202 analyzes and analyzes the register dependency between the received vector instruction and the preceding vector instruction existing in the instruction decomposition and rename processing unit 203 and the instruction issue waiting buffer unit 204. The result is generated as instruction dependent information. The inter-instruction dependency relationship is information of Read after Write, Write after Read, Write after Write, or no dependency relationship.

また、命令間依存関係解析部202に存在するベクトル命令の書き込み先レジスタ番号およびVL長情報およびIDを同一VR書き込み認識部208に送出する。命令間依存関係解析部202に存在するベクトル命令とは、ベクトル命令バッファ部201から送出されたベクトル命令である。命令間依存関係解析部202は、ベクトル命令バッファ部201から送出されたベクトル命令を保持し、次に新たなベクトル命令が送出されたときに、差し替えられる(上書きされる)。すなわち、命令間依存関係解析部202は、ベクトル命令バッファ部201から送出された最新のベクトル命令(一つ)を保持している。   Further, the write destination register number, VL length information and ID of the vector instruction existing in the inter-instruction dependency analysis unit 202 are sent to the same VR write recognition unit 208. The vector instruction existing in the inter-instruction dependency analysis unit 202 is a vector instruction sent from the vector instruction buffer unit 201. The inter-instruction dependency analysis unit 202 holds the vector instruction sent from the vector instruction buffer unit 201, and is replaced (overwritten) when a new vector instruction is sent next time. That is, the inter-instruction dependency analysis unit 202 holds the latest vector instruction (one) sent from the vector instruction buffer unit 201.

命令分解およびリネーム処理部203は、命令間依存関係解析部202より受け取ったベクトル命令が使用する演算結果格納用のテンポラリレジスタ領域を決定する。また、演算オペランドに指定されたレジスタ番号(VR番号)がテンポラリレジスタ(TR)に存在する場合にはオペランドに指定されたレジスタをテンポラリレジスタにリネームして、その情報を命令分解およびリネーム処理部203内のリネームテーブルに保持する。   The instruction decomposition and rename processing unit 203 determines a temporary register area for storing operation results used by the vector instruction received from the inter-instruction dependency analysis unit 202. If the register number (VR number) specified in the operation operand exists in the temporary register (TR), the register specified in the operand is renamed to a temporary register, and the information is decomposed into an instruction decomposition and rename processing unit 203. In the rename table.

図2にリネームテーブルの一例を示す。図2では、結果格納レジスタ番号が1種類である場合を示している。リネームテーブルに保持されたエントリを削除するタイミングはテンポラリレジスタからベクトルレジスタへの演算結果転送命令(リタイア命令)が発行されたタイミングである。命令発行待機バッファ部204内に格納されている未実行命令のオペランドにテンポラリレジスタ番号が含まれていない場合、エントリがリセットされることになる。すなわち、未実行命令のオペランドにテンポラリレジスタ番号が含まれている場合、転送命令を発行しないことが前提となっているため、結果として、エントリがリセットされることはない。   FIG. 2 shows an example of the rename table. FIG. 2 shows a case where the result storage register number is one type. The timing at which the entry held in the rename table is deleted is the timing at which the operation result transfer instruction (retire instruction) from the temporary register to the vector register is issued. If the temporary register number is not included in the operand of the unexecuted instruction stored in the instruction issue standby buffer unit 204, the entry is reset. That is, when the temporary register number is included in the operand of the unexecuted instruction, it is assumed that the transfer instruction is not issued, and as a result, the entry is not reset.

また、命令分解およびリネーム処理部203は、ベクトル命令をリネームした後に、ベクトル命令を演算結果格納用のテンポラリレジスタ領域に格納するまでの演算処理命令と、演算結果格納用のテンポラリレジスタ領域からレジスタに演算結果を転送する演算結果転送命令の2つに分解する。命令分解およびリネーム処理部203は、2つに分解されたベクトル命令(演算処理命令及び演算結果転送命令)、命令間依存関係解析部202から受け取った命令間依存情報及びIDを命令発行待機バッファ部204に送出する。さらにリネームした後のベクトル命令情報をTR番号使用認識部209に送出する。   The instruction disassembly and rename processing unit 203 renames the vector instruction and stores the operation instruction until the vector instruction is stored in the temporary register area for storing the operation result, and the temporary register area for storing the operation result. The operation result transfer instruction for transferring the operation result is decomposed into two. The instruction decomposition / rename processing unit 203 includes an instruction issuance standby buffer unit that receives the vector instruction (operation processing instruction and operation result transfer instruction) decomposed into two, inter-instruction dependency information and ID received from the inter-instruction dependency analysis unit 202 To 204. Further, the vector command information after the rename is sent to the TR number use recognition unit 209.

命令発行待機バッファ部204は、次の(1)〜(5)の機能を有する。(1)命令分解およびリネーム処理部203から受け取った分解されたベクトル命令、命令間依存情報及びIDを格納し、ベクトル命令の発行チェックに必要な情報を命令発行チェック部205に送出する機能。(2)後述の命令発行チェック部205からIDとエントリリセット指示を受け取り、指示のあったIDに対応するエントリを一定期間後にリセットする機能。さらに(3)リタイア命令無効化処理部210から命令発行待機バッファ部204内リタイア命令の格納フィールドにリタイア命令無効化禁止フラグが有効では無い場合に、リタイア命令無効化処理部210から受け取ったIDに対応する演算結果転送命令を無効化する機能。(4)リタイア命令無効化処理部210からリタイア命令無効化禁止フラグ有効化信号を受け取ると命令発行待機バッファ部204内に格納されている全ての演算結果転送命令の格納フィールドのリタイア命令無効化禁止フラグを有効とする機能。(5)リタイア命令無効化処理部210から受け取ったオペランド入力ベクトルレジスタ番号に対してライトするリタイア命令格納フィールドのリタイア命令無効化禁止フラグを有効とする機能。   The instruction issue standby buffer unit 204 has the following functions (1) to (5). (1) A function that stores the decomposed vector instruction, inter-instruction dependency information, and ID received from the instruction decomposition and rename processing unit 203, and sends information necessary for the issue check of the vector instruction to the instruction issue check unit 205. (2) A function of receiving an ID and an entry reset instruction from an instruction issue check unit 205 (to be described later) and resetting an entry corresponding to the instructed ID after a certain period. Further, (3) when the retire instruction invalidation prohibition flag is not valid in the storage field of the retired instruction in the instruction issue waiting buffer section 204 from the retire instruction invalidation processing section 210, the ID received from the retirement instruction invalidation processing section 210 Function to invalidate the corresponding operation result transfer instruction. (4) When the retirement instruction invalidation prohibition flag validation signal is received from the retirement instruction invalidation processing unit 210, the retirement instruction invalidation is prohibited in the storage field of all the operation result transfer instructions stored in the instruction issue waiting buffer unit 204. Function to enable flag. (5) A function for validating the retire instruction invalidation prohibition flag in the retire instruction storage field to be written to the operand input vector register number received from the retire instruction invalidation processing unit 210.

命令発行チェック部205は、命令発行待機バッファ部204からベクトル命令の発行チェックに必要な情報として命令間依存情報を受け、命令間依存関係が無く発行可能な命令の中から適切なベクトル命令を選択する。また、命令発行チェック部205は、その選択したベクトル命令で使用する演算器や各種データ転送パスなどの演算リソースビジー情報を後述のパスビジー管理部207から受け取り、使用する演算リソースすべてにおいてビジーではないという条件を確認すると発行確定と判断して命令発行部206およびパスビジー管理部207に発行確定となったベクトル命令を送出する。   The instruction issue check unit 205 receives inter-instruction dependency information as information necessary for the issuance check of the vector instruction from the instruction issue standby buffer unit 204, and selects an appropriate vector instruction from among the instructions that can be issued without inter-instruction dependency. To do. Further, the instruction issuance check unit 205 receives operation resource busy information such as an arithmetic unit to be used in the selected vector instruction and various data transfer paths from the path busy management unit 207 described later, and is not busy in all the operation resources to be used. When the conditions are confirmed, it is determined that the issue is confirmed, and the vector instruction whose issue is confirmed is sent to the instruction issue unit 206 and the pass busy management unit 207.

命令発行部206は、命令発行チェック部205より発行確定となったベクトル命令を受け取り、後述するベクトル演算部3でのベクトル命令実行に必要な情報の生成を行ってベクトル演算部3に送出する機能を持つ。   The instruction issuance unit 206 receives a vector instruction whose issue is confirmed from the instruction issuance check unit 205, generates information necessary for vector instruction execution in the vector operation unit 3 to be described later, and sends it to the vector operation unit 3 have.

パスビジー管理部207は、命令発行チェック部205から発行確定となったベクトル命令を受け取り、そのベクトル命令が使用する演算リソースそれぞれについてビジー情報を管理する機能と、すべての演算リソースのビジー情報を命令発行チェック部205に送出する機能を持つ。ここでは、命令発行部206は、VPP30〜37が同時に動作を開始するように指示することを前提としている。このため、パスビジー管理部207は、VPP30から37の一つのビジー情報を管理する。ここでは、VPP30〜37が同時に動作を開始するように指示することを前提としている。例えば、VPP30のVR303、VRR309のビジー情報(使用中であるか否か)を管理する。   The path busy management unit 207 receives a vector instruction that has been issued from the instruction issuance check unit 205, and issues a function for managing busy information for each computing resource used by the vector instruction and busy information for all the computing resources. It has a function of sending to the check unit 205. Here, it is assumed that the instruction issuing unit 206 instructs the VPPs 30 to 37 to start operations simultaneously. Therefore, the path busy management unit 207 manages one busy information of the VPPs 30 to 37. Here, it is assumed that the VPPs 30 to 37 instruct to start the operation at the same time. For example, it manages the busy information (whether it is in use) of VR303 and VRR309 of VPP30.

同一VR書き込み認識部208は、ベクトル命令の書き込み先レジスタ番号およびVL長情報を命令間依存関係解析部202から受け取る。同一VR書き込み認識部208は、命令間依存関係解析部202に存在する(受け取った)ベクトル命令の書き込み先レジスタ番号と、命令分解およびリネーム処理部203、命令発行待機バッファ部204に存在するベクトル命令の書き込み先レジスタ番号を比較して一致したベクトル命令のIDをすべてTR番号使用認識部209に送出する。具体的には、(1)命令間依存関係解析部202が保持するベクトル命令の書き込み先レジスタ番号と、命令分解およびリネーム処理部203が保持するベクトル命令の書き込み先レジスタ番号比較し、一致するベクトル命令の書き込み先レジスタ番号を抽出する。続いて、(2)命令間依存関係解析部202が保持するベクトル命令の書き込み先レジスタ番号と、命令発行待機バッファ部204が保持するベクトル命令の書き込み先レジスタ番号比較し、一致するベクトル命令の書き込み先レジスタ番号を抽出する。(3)上記(1)、(2)で抽出したベクトル命令の書き込み先レジスタ番号をTR番号使用認識部209へ送出する。   The same VR write recognition unit 208 receives the write destination register number and VL length information of the vector instruction from the inter-instruction dependency analysis unit 202. The same VR write recognition unit 208 includes a write destination register number of a vector instruction existing (received) in the inter-instruction dependency analysis unit 202, a vector instruction existing in the instruction decomposition / rename processing unit 203, and the instruction issue standby buffer unit 204. Are compared with each other and the IDs of the matched vector instructions are sent to the TR number use recognition unit 209. Specifically, (1) the vector instruction write destination register number held by the inter-instruction dependency analysis unit 202 is compared with the vector instruction write destination register number held by the instruction decomposition and rename processing unit 203, and the matching vectors Extracts the register number to which the instruction is written. Subsequently, (2) the vector instruction write destination register number held by the inter-instruction dependency analysis unit 202 is compared with the vector instruction write destination register number held by the instruction issue waiting buffer unit 204, and the matching vector instruction is written. Extract the destination register number. (3) The vector instruction write destination register number extracted in (1) and (2) above is sent to the TR number use recognition unit 209.

また、同一VR書き込み認識部208は、命令間依存関係解析部202から通知された、直近の演算命令のVL長情報を自己の記憶領域に保持する。同一VR書き込み認識部208は、保持しているVL長情報(直近のVL長情報)と命令間依存関係解析部202から受け取ったVL長情報を比較して、命令間依存関係解析部202から受け取ったVL長が小さい場合にはリタイア命令無効化禁止信号をTR番号使用認識部209に送出する。同一VR書き込み認識部208は、比較処理後、今回命令間依存関係解析部202から受け取ったVL長情報を直近のVL長情報として保持する(書き換える)。なお、同一VR書き込み認識部208は、直近のVL長情報として、初期値(ここでは、零)を保持する。   Further, the same VR write recognition unit 208 holds the VL length information of the latest operation instruction notified from the inter-instruction dependency analysis unit 202 in its own storage area. The same VR write recognition unit 208 compares the stored VL length information (the latest VL length information) with the VL length information received from the inter-instruction dependency analysis unit 202 and receives the inter-instruction dependency analysis unit 202. If the VL length is small, a retire command invalidation prohibition signal is sent to the TR number use recognition unit 209. After the comparison process, the same VR write recognition unit 208 holds (rewrites) the VL length information received from the current inter-command dependency analysis unit 202 as the latest VL length information. The same VR write recognition unit 208 holds an initial value (here, zero) as the latest VL length information.

TR番号使用認識部209は、命令分解およびリネーム処理部203からリネーム処理が終わったベクトル命令を受け取り、その入力オペランドが前記同一VR書き込み認識部208で一致が確認されたレジスタ番号からテンポラリレジスタ番号にリネームされていることを確認できた場合は同一VR書き込み認識部208から受け取ったIDを有効としてリタイア命令無効化処理部210に送出する。また、入力オペランドにベクトルレジスタが指定されている場合にはそのオペランド入力ベクトルレジスタ番号を最大オペランド数分リタイア命令無効化処理部210に送出する。すなわち、リネーム後のベクトル命令のオペランドにリネームされなかったレジスタ番号がある場合、リネームされなかったレジスタ番号すべてをリタイア命令無効化処理部210に送出する。例えばベクトル命令にオペランドが2つの場合、最大オペランド数は2となる。テンポラリレジスタが指定されている場合には特別な動作は行わない。また、TR番号使用認識部209は同一VR書き込み認識部208から受け取ったリタイア命令無効化禁止信号をリタイア命令無効化処理部210に送出する機能を持つ。   The TR number use recognizing unit 209 receives the vector instruction after the rename process from the instruction decomposition and rename processing unit 203, and changes the input operand from the register number whose coincidence is confirmed by the same VR write recognition unit 208 to the temporary register number. If it is confirmed that the name has been renamed, the ID received from the same VR write recognition unit 208 is validated and sent to the retirement instruction invalidation processing unit 210. If a vector register is designated as the input operand, the operand input vector register number is sent to the retired instruction invalidation processing unit 210 for the maximum number of operands. That is, if there is a register number that has not been renamed in the operand of the renamed vector instruction, all the register numbers that have not been renamed are sent to the retired instruction invalidation processing unit 210. For example, when a vector instruction has two operands, the maximum number of operands is two. No special operation is performed when a temporary register is specified. The TR number use recognizing unit 209 has a function of sending a retire command invalidation prohibition signal received from the same VR write recognizing unit 208 to the retire command invalidation processing unit 210.

リタイア命令無効化処理部210は、TR番号使用認識部209からIDとリタイア命令無効化禁止信号を受け取り、リタイア命令無効化禁止信号が有効でない場合は受け取ったIDに対応する演算結果転送命令を無効化する指示を命令発行待機バッファ部204に送出する機能を持つ。また、リタイア命令無効化処理部210はTR番号使用認識部209からリタイア命令無効化禁止信号を受け取ると命令発行待機バッファ部204に対してリタイア命令無効化禁止フラグ有効化信号を送出する機能をもつ。さらに、リタイア命令無効化処理部210はTR番号使用認識部209から受け取ったオペランド入力ベクトルレジスタ番号を命令発行待機バッファ部204に対して送出する機能をもつ。   The retirement instruction invalidation processing unit 210 receives the ID and the retirement instruction invalidation prohibition signal from the TR number use recognition unit 209, and invalidates the operation result transfer instruction corresponding to the received ID when the retirement instruction invalidation prohibition signal is not valid. The function to send the instruction to the instruction issue standby buffer unit 204 is provided. Further, the retirement instruction invalidation processing unit 210 has a function of transmitting a retirement instruction invalidation prohibition flag validation signal to the instruction issue standby buffer unit 204 when receiving a retirement instruction invalidation inhibition signal from the TR number use recognition unit 209. . Further, the retired instruction invalidation processing unit 210 has a function of sending the operand input vector register number received from the TR number use recognizing unit 209 to the instruction issue standby buffer unit 204.

ここで、VL長が小さくなるとリタイア命令無効化を抑止する理由は、同一VR番号に格納する演算命令が複数あった時に後続演算命令でVL長が小さくなったにもかかわらず先行命令を無効化してしまうとVLの差分に対応するデータがベクトルレジスタに書き込まれないという現象を防止するためである。アーキテクチャによっては許されるケースもあると思われるが、ここでは除外して考える。   Here, the reason why the retired instruction invalidation is inhibited when the VL length becomes small is that when there are a plurality of arithmetic instructions stored in the same VR number, the preceding instruction is invalidated even though the VL length becomes small in the subsequent arithmetic instruction. This is to prevent the phenomenon that the data corresponding to the VL difference is not written to the vector register. Depending on the architecture, there may be cases where it is allowed, but we will exclude it here.

先行するベクトル命令のVL長よりも後続のベクトル命令のVL長が大きい場合は、先行ベクトル命令のリタイア命令を無効化しても後続ベクトル命令のリタイア命令でベクトルレジスタに最新の演算結果が格納されるのでデータ一貫性の観点から見ても問題無い。従って、本実施形態では、先行するベクトル命令よりVL長が大きくなる場合、演算結果転送命令を無効化する。これにより、VL長が大きい場合に演算結果転送命令を無効化しない場合に比べ、演算結果転送命令を実行させる回数をより削減すること可能になる。   If the VL length of the subsequent vector instruction is larger than the VL length of the preceding vector instruction, the latest operation result is stored in the vector register by the retired instruction of the subsequent vector instruction even if the retired instruction of the preceding vector instruction is invalidated. So there is no problem from the viewpoint of data consistency. Therefore, in this embodiment, when the VL length becomes longer than the preceding vector instruction, the operation result transfer instruction is invalidated. Thereby, it is possible to further reduce the number of times that the operation result transfer instruction is executed when the operation result transfer instruction is not invalidated when the VL length is large.

なお、VIC2の各構成要素が備えるレジスタは、動作開始時にリセットされ、初期値(例えば、零)に設定される。   Note that the registers included in each component of the VIC 2 are reset at the start of operation and set to an initial value (for example, zero).

続いて、VPP30〜37の詳細を説明する。図3はベクトルパイプ部の構成例を示すブロック図である。VPP30〜37それぞれは同様の構成を有する。各VPPは、ロードデータ供給部301、レジスタ入力クロスバ302、ベクトルレジスタ303、レジスタ出力クロスバ304、タイミング調整FF(タイミング調整フリップフロップ)305、2入力セレクタ306、2入力セレクタ307、演算器308、テンポラリレジスタ309、ストアデータ送出部310、及びパイプライン制御部311を有する。   Next, details of the VPPs 30 to 37 will be described. FIG. 3 is a block diagram illustrating a configuration example of the vector pipe unit. Each of the VPPs 30 to 37 has the same configuration. Each VPP includes a load data supply unit 301, a register input crossbar 302, a vector register 303, a register output crossbar 304, a timing adjustment FF (timing adjustment flip-flop) 305, a two-input selector 306, a two-input selector 307, a computing unit 308, a temporary A register 309, a store data transmission unit 310, and a pipeline control unit 311 are included.

ロードデータ供給部301は、後述パイプライン制御部311の指示に従ってメモリからロードしたデータを、レジスタ入力クロスバ302を通じてベクトルレジスタ303に送出する。   The load data supply unit 301 sends the data loaded from the memory according to an instruction from the pipeline control unit 311 described later to the vector register 303 through the register input crossbar 302.

レジスタ入力クロスバ302は、ロードデータ供給部301またはテンポラリレジスタ309の出力データを後述パイプライン制御部311の指示に従って選択し、ベクトルレジスタ303に送出する機能を持つ。   The register input crossbar 302 has a function of selecting output data from the load data supply unit 301 or the temporary register 309 in accordance with an instruction from a pipeline control unit 311 described later, and sending the selected data to the vector register 303.

ベクトルレジスタ303は、本実施形態では4つの1ポートRAM(RAMそれぞれに入出力のポートを有する)から構成されており、時分割に割り当てられたポートを使って読み出し動作と書き込み動作を合計4多重に実施可能な機能を持つ。図4に、本実施形態におけるベクトルレジスタデータ要素格納イメージの一例を示す。以降の説明では、ベクトルレジスタ303の4つのRMAをRAM#0からRAM#3として説明する。   In this embodiment, the vector register 303 is composed of four 1-port RAMs (each of which has an input / output port), and a total of four read operations and write operations are performed using ports assigned in a time division manner. It has functions that can be implemented. FIG. 4 shows an example of a vector register data element storage image in the present embodiment. In the following description, the four RMAs of the vector register 303 are described as RAM # 0 to RAM # 3.

レジスタ出力クロスバ304は、レジスタ、ベクトルレジスタ303から出力されたレジスタリードデータをパイプライン制御部311の指示に従って後述のタイミング調整FF305または2入力セレクタ307またはストアデータ送出部310に出力する機能を持つ。   The register output crossbar 304 has a function of outputting the register read data output from the register / vector register 303 to a timing adjustment FF 305, a 2-input selector 307, or a store data transmission unit 310, which will be described later, in accordance with an instruction from the pipeline control unit 311.

タイミング調整FF305は、レジスタ出力クロスバ304から受けたレジスタリードデータを受け、1クロック後に2入力セレクタ306に送出する。   The timing adjustment FF 305 receives the register read data received from the register output crossbar 304 and sends it to the 2-input selector 306 after one clock.

2入力セレクタ306は、パイプライン制御部311の指示に従ってタイミング調整FF305出力のデータまたは後述のテンポラリレジスタ309出力データのどちらかを選択して演算器308の演算オペランドデータとして送出する。   The 2-input selector 306 selects either the data output from the timing adjustment FF 305 or the output data from a temporary register 309 described later according to the instruction from the pipeline control unit 311, and sends it as operation operand data of the operation unit 308.

2入力セレクタ307は、パイプライン制御部311の指示に従ってレジスタ出力クロスバ304出力のレジスタリードデータまたは後述のテンポラリレジスタ309出力データのどちらかを選択して演算器308の演算オペランドデータとして送出する。   The 2-input selector 307 selects either register read data output from the register output crossbar 304 or output data from a temporary register 309 described later in accordance with an instruction from the pipeline control unit 311 and transmits the selected data as operation operand data of the operation unit 308.

演算器308は、2入力セレクタ306および2入力セレクタ307の出力を演算オペランドデータとしてパイプライン制御部311の指示に従って演算を行い、演算結果データをテンポラリレジスタ309に出力する機能を持つ。   The arithmetic unit 308 has a function of performing an operation according to an instruction of the pipeline control unit 311 using the outputs of the 2-input selector 306 and the 2-input selector 307 as operation operand data, and outputting operation result data to the temporary register 309.

テンポラリレジスタ(VRR)309は、演算器308から受けた演算結果データを一時的に格納する機能を持つ。また、パイプライン制御部311からの指示に従ってテンポラリレジスタ領域からレジスタに演算結果を転送する演算結果転送命令として演算結果データを読み出してレジスタ入力クロスバ302に送出する機能と、パイプライン制御部311からの指示に従って読み出したデータを演算オペランドデータとして2入力セレクタ306または2入力セレクタ307に出力する機能を持つ。テンポラリレジスタ309は書き込みポートが1つと読み出しポートが3つの合計4ポートを備えたRAMで、前述の動作を同時に行うことが可能な機能を持つ。図5に、本実施形態におけるテンポラリレジスタデータ要素格納イメージの一例を示す。   The temporary register (VRR) 309 has a function of temporarily storing calculation result data received from the calculator 308. Further, according to an instruction from the pipeline control unit 311, a function of reading the operation result data as an operation result transfer instruction for transferring the operation result from the temporary register area to the register and sending it to the register input crossbar 302, and a function from the pipeline control unit 311 It has a function of outputting data read in accordance with the instruction to the 2-input selector 306 or 2-input selector 307 as operation operand data. The temporary register 309 is a RAM having a total of four ports, one write port and three read ports, and has a function capable of performing the above-described operations simultaneously. FIG. 5 shows an example of a temporary register data element storage image in the present embodiment.

ストアデータ送出部310は、パイプライン制御部311からの指示に従ってレジスタ出力クロスバ304より受けたレジスタリードデータをメモリに対してストア処理する機能を持つ。   The store data sending unit 310 has a function of storing the register read data received from the register output crossbar 304 in the memory in accordance with an instruction from the pipeline control unit 311.

パイプライン制御部311はパイプライン制御部で、命令発行部206から発行されたベクトル命令を受け取って命令識別処理を行い、所定のタイミングで前述のロードデータ供給部301〜ストアデータ送出部310の各構成要素に対してデータ転送指示および演算指示を行う機能を持つ。   The pipeline control unit 311 is a pipeline control unit, receives the vector instruction issued from the instruction issue unit 206, performs instruction identification processing, and each of the load data supply unit 301 to the store data transmission unit 310 described above at a predetermined timing. It has a function of giving data transfer instructions and calculation instructions to the components.

ベクトル命令は、一般に、ベクトルロード命令、ベクトルストア命令、ベクトル演算命令、マスク更新命令を含む。ベクトルロード命令は読み出しを行う命令、ベクトルストア命令は書き込みを行う命令、ベクトル演算命令は演算を行う命令、マスク更新命令は、マスクビットの操作を行う命令である。SPU1からベクトル命令バッファ部201へ送出されるベクトル命令は上述した4種類の命令が含まれている。ベクトル命令のうち、演算器308を使用する命令を「ベクトル演算命令」と呼び、区別する場合もある。しかし、本実施形態では特に区別せずにベクトル命令の名称を用いて説明する。   Vector instructions generally include vector load instructions, vector store instructions, vector operation instructions, and mask update instructions. The vector load instruction is a read instruction, the vector store instruction is a write instruction, the vector operation instruction is an operation instruction, and the mask update instruction is an instruction for operating a mask bit. The vector instructions sent from the SPU 1 to the vector instruction buffer unit 201 include the four types of instructions described above. Of the vector instructions, an instruction using the arithmetic unit 308 is called a “vector operation instruction” and may be distinguished. However, in the present embodiment, description will be made using the names of vector instructions without making any particular distinction.

次に図面を参照して本実施形態の動作を示す。最初にベクトル命令1つのみの場合の動きを示し、次にベクトル命令が2つの場合の動作を説明する。まず、ベクトル命令が1つの場合の動作を説明する。ここで用いる命令列(命令1とする)の一例を次に示す。
V7 ← V0 + V1 VL = 8・・・・(命令1)
この命令は8要素分(VL=8)のレジスタV0とレジスタV1を算術和してレジスタV7に格納するベクトル命令である。ここで命令の要素数(VL)はベクトル演算パイプ部(VPP)30〜37それぞれが処理する要素数である。例えば、図1では、VL=8の場合、8個のVPP30〜37が処理するため、8*8=64個の要素を並列処理することが可能となる。
Next, the operation of this embodiment will be described with reference to the drawings. First, the operation in the case of only one vector instruction is shown, and then the operation in the case of two vector instructions will be described. First, the operation when there is one vector instruction will be described. An example of an instruction sequence (referred to as instruction 1) used here is as follows.
V7 ← V0 + V1 VL = 8 ... (Instruction 1)
This instruction is a vector instruction that arithmetically sums the registers V0 and V1 of 8 elements (VL = 8) and stores them in the register V7. Here, the number of elements (VL) of the instruction is the number of elements processed by each of the vector operation pipe units (VPP) 30 to 37. For example, in FIG. 1, when VL = 8, since 8 VPPs 30 to 37 process, 8 * 8 = 64 elements can be processed in parallel.

命令1がSPU1でベクトル命令と識別されてVIC2内のベクトル命令バッファ部201に送出される。   The instruction 1 is identified as a vector instruction in the SPU 1 and sent to the vector instruction buffer unit 201 in the VIC 2.

ベクトル命令バッファ部201は、SPU1より受け取ったベクトル命令を一旦バッファリングする。ベクトル命令バッファ部201は、命令発行待機バッファ部204がビジーで無いことを確認して、バッファリングしたベクトル命令を読み出すとともに、ベクトル命令に対してID 「0001」を付与して命令間依存関係解析部202に送出する。   The vector instruction buffer unit 201 temporarily buffers the vector instruction received from the SPU1. The vector instruction buffer unit 201 confirms that the instruction issue standby buffer unit 204 is not busy, reads the buffered vector instruction, and assigns ID “0001” to the vector instruction to analyze the inter-instruction dependency relationship. To the unit 202.

命令間依存関係解析部202は、命令分解およびリネーム処理部203および命令発行待機バッファ部204に存在する先行ベクトル命令とのレジスタ依存関係を解析する。ここでは、命令分解およびリネーム処理部203および命令発行待機バッファ部204にはこの時点で命令が存在しないためRead after Write、Write after Read、Write after Writeの関係は無いという命令間依存情報とともにベクトル命令およびID 「0001」を命令分解およびリネーム処理部203に送出する。また、命令間依存関係解析部202は、自己に存在するベクトル命令(ベクトル命令バッファ部201から受け取ったベクトル命令)の書き込み先レジスタ番号、VL長情報、及びID 「0001」を同一VR書き込み認識部208に送出する。   The inter-instruction dependency analysis unit 202 analyzes a register dependency with the preceding vector instruction existing in the instruction decomposition / rename processing unit 203 and the instruction issue standby buffer unit 204. Here, since there is no instruction at this time in the instruction decomposition / rename processing unit 203 and the instruction issuance standby buffer unit 204, there is no inter-instruction dependency information indicating that there is no relationship between Read after Write, Write after Read, and Write after Write. And ID “0001” are sent to the instruction resolution and rename processing unit 203. In addition, the inter-instruction dependency analysis unit 202 uses the same VR write recognition unit for the write destination register number, the VL length information, and the ID “0001” of the vector instruction (the vector instruction received from the vector instruction buffer unit 201) existing in itself. Send to 208.

同一VR書き込み認識部208は、ベクトル命令の書き込み先レジスタ番号およびVL長情報を命令間依存関係解析部202から受け取る。同一VR書き込み認識部208は、まず、命令間依存関係解析部202に存在するID 「0001」ベクトル命令の書き込み先レジスタ番号と、命令分解およびリネーム処理部203、命令発行待機バッファ部204に存在するベクトル命令の書き込み先レジスタ番号を比較する。ここでは、命令分解およびリネーム処理部203、命令発行待機バッファ部204には命令が存在しないので、同一VR書き込み認識部208は、一致無しの情報をTR番号使用認識部209に送出する。また、同一VR書き込み認識部208は、命令間依存関係解析部202から今回受け取ったVL長情報を保持する(保持していたVL長情報と差し替える)。   The same VR write recognition unit 208 receives the write destination register number and VL length information of the vector instruction from the inter-instruction dependency analysis unit 202. First, the same VR write recognition unit 208 exists in the write destination register number of the ID “0001” vector instruction existing in the inter-instruction dependency analysis unit 202, the instruction decomposition / rename processing unit 203, and the instruction issue standby buffer unit 204. Compare the register number of the vector instruction write destination. Here, since there is no instruction in the instruction decomposition / rename processing unit 203 and the instruction issuance standby buffer unit 204, the same VR write recognition unit 208 sends the mismatch information to the TR number use recognition unit 209. In addition, the same VR write recognition unit 208 holds the VL length information received this time from the inter-instruction dependency analysis unit 202 (replaces the held VL length information).

命令分解およびリネーム処理部203は、命令間依存関係解析部202より受け取ったベクトル命令(命令1)が使用する演算結果格納用のテンポラリレジスタ領域をT0と決定し、その情報を命令分解およびリネーム処理部203内のリネームテーブルに保持する。演算オペランドに指定されたレジスタ番号(VR番号)はテンポラリレジスタ(TR)に存在しないのでオペランドに指定されたレジスタはリネームしない。   The instruction decomposition and rename processing unit 203 determines the temporary register area for storing the operation result used by the vector instruction (instruction 1) received from the inter-instruction dependency analysis unit 202 as T0, and uses the information as instruction decomposition and rename processing. This is held in the rename table in the section 203. Since the register number (VR number) specified for the operation operand does not exist in the temporary register (TR), the register specified for the operand is not renamed.

また、命令分解およびリネーム処理部203は、リネームした後にベクトル命令(命令1)を演算結果格納用のテンポラリレジスタに格納するまでの演算処理命令(命令1−1)と、演算結果格納用のテンポラリレジスタ領域からレジスタに演算結果を転送する演算結果転送命令(命令1−2)の2つに分解する。命令1−1、1−2を次に示す。
T0 ← V0 + V1 VL = 8・・・・(命令1−1)
V7 ← T0 VL = 8・・・・(命令1−2)
The instruction disassembly and rename processing unit 203 also includes an operation processing instruction (instruction 1-1) until the vector instruction (instruction 1) is stored in the operation result storage temporary register after being renamed, and an operation result storage temporary. An operation result transfer instruction (instruction 1-2) for transferring an operation result from the register area to the register is decomposed into two. Instructions 1-1 and 1-2 are shown below.
T0 ← V0 + V1 VL = 8... (Instruction 1-1)
V7 ← T0 VL = 8... (Instruction 1-2)

このとき命令IDはそれぞれ「0001a」「0001b」となり、さらにテンポラリレジスタのRead after Writeの順序関係を守るために2つに分解された2番目の演算結果転送命令(命令1−2)は演算処理命令(命令1−1)に対する命令間依存関係情報を付与され、これらの情報と命令間依存関係解析部202から受け取った命令間依存情報を命令発行待機バッファ部204に送出する。   At this time, the instruction IDs are “0001a” and “0001b”, respectively, and the second operation result transfer instruction (instruction 1-2), which has been divided into two in order to keep the order relationship of Read after Write of the temporary register, is an arithmetic process. The inter-instruction dependency relationship information for the instruction (instruction 1-1) is given, and the inter-instruction dependency information received from the inter-instruction dependency relation analyzing unit 202 is sent to the instruction issuance standby buffer unit 204.

命令間依存関係情報は、分解された命令に対して付与される情報であり、分解した命令間において、同一テンポラリレジスタ番号に書き込んだ後読み出すという順序を守る必要があるため付与される。ここでは、ID「0001a」の命令でVRR309のレジスタT0に演算結果が書き込まれ、その後ID「0001b」の命令でT0に書き込まれた演算結果を読み出してV7レジスタに格納する。このときT0を介してID「0001b」の命令はID「0001a」の命令に対してRead after Writeの依存関係があることになる。   The inter-instruction dependency relationship information is information given to the decomposed instructions, and is given because it is necessary to keep the order of reading after writing to the same temporary register number between the decomposed instructions. Here, the operation result is written to the register T0 of the VRR 309 by the instruction of ID “0001a”, and then the operation result written to T0 by the instruction of ID “0001b” is read and stored in the V7 register. At this time, the instruction with ID “0001b” has a dependency after Read Write with respect to the instruction with ID “0001a” via T0.

TR番号使用認識部209は、命令分解およびリネーム処理部203からリネーム処理が終わったベクトル命令「V7 ← V0 + V1」を受け取り、その入力オペランドがテンポラリレジスタ番号にリネームされていることを確認できないことから同一VR書き込み認識部208から受け取ったIDを無効とする。また、上述のとおり同一VR書き込み認識部208の出力が一致無しなので、TR番号使用認識部209は、該当ID無しの情報をリタイア命令無効化処理部210に送出する。   The TR number use recognizing unit 209 receives the vector instruction “V7 ← V0 + V1” after the rename processing from the instruction decomposition and rename processing unit 203, and cannot confirm that the input operand is renamed to the temporary register number. The ID received from the same VR write recognition unit 208 is invalidated. Further, as described above, since the outputs of the same VR write recognizing unit 208 do not match, the TR number use recognizing unit 209 sends information having no corresponding ID to the retired instruction invalidation processing unit 210.

命令発行待機バッファ部204は、命令分解およびリネーム処理部203から受け取った分解されたベクトル命令(命令1−1および命令1−2)と命令間依存情報とID「0001a」「0001b」を格納し、ベクトル命令の発行チェックに必要な情報を命令発行チェック部205に送出する。この状態を図6に示す。   The instruction issue standby buffer unit 204 stores the decomposed vector instructions (instruction 1-1 and instruction 1-2) received from the instruction decomposition and rename processing unit 203, inter-instruction dependency information, and IDs “0001a” and “0001b”. Information necessary for the issuance check of the vector instruction is sent to the instruction issuance check unit 205. This state is shown in FIG.

リタイア命令無効化処理部210は、TR番号使用認識部209から該当ID無しの情報を受け取り、無効化対象が無いので命令発行待機バッファ部204に対して無効化指示は送出しない。   The retired instruction invalidation processing unit 210 receives information without corresponding ID from the TR number use recognition unit 209 and does not send an invalidation instruction to the instruction issue standby buffer unit 204 because there is no invalidation target.

命令発行チェック部205は命令発行待機バッファ部204からベクトル命令の発行チェックに必要な情報として命令間依存情報を受け、命令間依存関係が無く発行可能なID「0001a」演算処理命令を選択し、演算処理命令が使用する演算リソースである演算器308とレジスタスロット(ベクトルレジスタ303の各RAM)がビジーでは無いことを確認し、発行確定として命令発行部206およびパスビジー管理部207に発行確定となったベクトル命令を送出する。このときID「0001b」演算結果転送命令はID「0001a」演算処理命令に対する命令間依存関係があるため命令選択条件にあてはまらないので発行されない。   The instruction issuance check unit 205 receives inter-instruction dependency information as information necessary for the issuance check of the vector instruction from the instruction issuance standby buffer unit 204, selects an ID “0001a” arithmetic processing instruction that can be issued without inter-instruction dependency, It is confirmed that the arithmetic unit 308 and the register slot (each RAM of the vector register 303) which are arithmetic resources used by the arithmetic processing instruction are not busy, and the issue is confirmed to the instruction issue unit 206 and the pass busy management unit 207 as issue confirmation. Send a vector instruction. At this time, the ID “0001b” operation result transfer instruction is not issued because it has an inter-instruction dependency on the ID “0001a” operation instruction and does not satisfy the instruction selection condition.

また、命令発行チェック部205は、ベクトルレジスタ303およびテンポラリレジスタ309のレジスタ入出力のタイミング管理をおこない、ID「0001a」演算処理命令によってテンポラリレジスタ309に演算結果が格納された直後にID「0001b」演算結果転送命令によるテンポラリレジスタ309からの演算結果読み出しが行われるよう命令発行待機バッファ部204に保持されている命令間依存関係情をクリアする。本実施形態ではID「0001a」演算処理命令が発行されてから9クロック後にID「0001b」演算結果転送命令が発行可能となるようなタイミングで命令発行待機バッファ部204に保持されている命令間依存関係情報をクリアする。   The instruction issuance check unit 205 manages the register input / output timing of the vector register 303 and the temporary register 309, and the ID “0001b” immediately after the operation result is stored in the temporary register 309 by the ID “0001a” operation processing instruction. The inter-instruction dependency information held in the instruction issuance standby buffer unit 204 is cleared so that the operation result is read from the temporary register 309 by the operation result transfer instruction. In this embodiment, inter-instruction dependency held in the instruction issue standby buffer unit 204 at such a timing that the ID “0001b” operation result transfer instruction can be issued 9 clocks after the ID “0001a” operation processing instruction is issued. Clear related information.

命令発行部206は、命令発行チェック部205より発行確定となった演算処理命令を受け取り、ベクトル命令実行に必要な情報の生成を行ってベクトル演算部3に含まれるベクトル演算パイプ部30〜37に送出する。   The instruction issuing unit 206 receives the operation processing instruction that has been issued and issued from the instruction issuance check unit 205, generates information necessary for executing the vector instruction, and sends it to the vector operation pipe units 30 to 37 included in the vector operation unit 3. Send it out.

パスビジー管理部207は命令発行チェック部205から発行確定となった演算処理命令を受け取り、そのベクトル命令が使用する演算リソースである演算器ビジー情報ならびにレジスタスロットのビジー情報を管理する。演算器ビジー情報は、演算器308が使用中であるか否かの情報である。レジスタスロットのビジー情報は、ベクトルレジスタ303内の読み出しアドレス(例えば RAM#0の読み出しアドレス)が使用中であるか否かの情報である。   The path busy management unit 207 receives the operation processing instruction whose issue is confirmed from the instruction issuance check unit 205, and manages the arithmetic unit busy information which is the operation resource used by the vector instruction and the busy information of the register slot. The computing unit busy information is information indicating whether the computing unit 308 is in use. The register slot busy information is information indicating whether or not a read address in the vector register 303 (for example, a read address of RAM # 0) is in use.

パイプライン制御部311は、命令発行部206より発行された演算処理命令「T0 ← V0 + V1 VL=8」(命令1−1)を受け取り、命令識別処理を行う。続いて、パイプライン制御部311は、ベクトルレジスタ303およびレジスタ出力クロスバ304に対して演算命令オペランドレジスタV0とV1を8要素分読み出すよう指示する。2入力セレクタ306および2入力セレクタ307に対してはレジスタリードデータを選択するよう指示する。パイプライン制御部311は、演算器308については2つのオペランドを算術和するよう指示する。パイプライン制御部311は、テンポラリレジスタ309には領域T0に演算結果を格納するよう指示する。   The pipeline control unit 311 receives the arithmetic processing instruction “T0 ← V0 + V1 VL = 8” (instruction 1-1) issued from the instruction issuing unit 206, and performs instruction identification processing. Subsequently, the pipeline control unit 311 instructs the vector register 303 and the register output crossbar 304 to read the operation instruction operand registers V0 and V1 for eight elements. The 2-input selector 306 and the 2-input selector 307 are instructed to select register read data. The pipeline control unit 311 instructs the arithmetic unit 308 to arithmetically sum two operands. The pipeline control unit 311 instructs the temporary register 309 to store the operation result in the area T0.

また、パイプライン制御部311は、演算処理命令「T0 ← V0 + V1 VL=8」(命令1−1)を受け取った9クロック後に演算結果転送命令「V7 ← T0 VL=8」(命令1−2)の識別処理を行い、テンポラリレジスタ309にT0データ読み出し指示と、レジスタ入力クロスバ302にT0データ選択指示と、ベクトルレジスタ303にT0データ書き込み指示を出す。   Further, the pipeline control unit 311 receives the operation processing instruction “T0 ← V0 + V1 VL = 8” (instruction 1-1) and receives the operation result transfer instruction “V7 ← T0 VL = 8” (instruction 1− 2), the T0 data read instruction is issued to the temporary register 309, the T0 data selection instruction is issued to the register input crossbar 302, and the T0 data write instruction is issued to the vector register 303.

図7は、一つのベクトル演算パイプ部において一つのベクトル命令の実行例を示すタイムチャートである。ここでは、VPP30の場合を一例として示している。   FIG. 7 is a time chart showing an execution example of one vector instruction in one vector operation pipe unit. Here, the case of VPP 30 is shown as an example.

ベクトルレジスタ303は最初にRAM#0に対して要素V0−00のアドレスを入力して読み出し動作を行い、V0−00要素を読み出す。この状態がタイムチャート図7のtiming_1である。以降の説明では、タイムチャートに示すクロック(Clock timing)を「timing_x」(x≧0)として示す。タイムチャートにおけるV0−00の前の"R"はRead動作であることを示している。"W"はライト動作であることを示す。   The vector register 303 first inputs the address of the element V0-00 to the RAM # 0, performs a read operation, and reads the V0-00 element. This state is timing_1 in the time chart of FIG. In the following description, the clock (Clock timing) shown in the time chart is indicated as “timing_x” (x ≧ 0). “R” before V0-00 in the time chart indicates a Read operation. “W” indicates a write operation.

次のクロックtiming_2ではRAM#0に対して要素V1−00のアドレスを入力して読み出し動作を行うと同時にRAM#1に対して要素V0−01のアドレスを入力して読み出し動作を行う。次のクロックtiming_3ではRAM#1に対し要素V1−01のアドレスを入力して読み出し動作を行うと同時にRAM#2に対して要素V0−02のアドレスを入力して読み出し動作を行う。次のクロックtiming_4ではRAM#2に対して要素V1−02のアドレスを入力して読み出し動作を行うと同時にRAM#3に対して要素V0−03のアドレスを入力して読み出し動作を行う。次のクロックtiming_5ではRAM#3に対して要素V1−03のアドレスを入力して読み出し動作を行うと同時にRAM#0に対して要素V0−04のアドレスを入力して読み出し動作を行う。   At the next clock timing_2, the read operation is performed by inputting the address of the element V1-00 to the RAM # 0 and simultaneously the read operation is performed by inputting the address of the element V0-01 to the RAM # 1. At the next clock timing_3, the address of the element V1-01 is input to the RAM # 1 to perform a read operation, and at the same time, the address of the element V0-02 is input to the RAM # 2 to perform the read operation. At the next clock timing_4, the address of the element V1-02 is input to the RAM # 2 to perform a read operation, and at the same time, the address of the element V0-03 is input to the RAM # 3 to perform the read operation. At the next clock timing_5, the address of the element V1-03 is input to the RAM # 3 to perform a read operation, and at the same time, the address of the element V0-04 is input to the RAM # 0 to perform the read operation.

このようにRAM#0〜RAM#3に対してV0とV1の先頭アドレスを順次入力して指示されたV0、V1レジスタの8要素を順次読み出す。   In this way, the leading addresses of V0 and V1 are sequentially input to RAM # 0 to RAM # 3, and the designated 8 elements of the V0 and V1 registers are sequentially read.

レジスタ出力クロスバ304はベクトルレジスタ303から読み出された要素を受け、クロスバ制御を1クロック毎に行って要素V0−00〜V0−07はタイミング調整FF305に送出され、要素V1−00〜V1−07を2入力セレクタ307に送出される。上述のようにして読み出された要素V0−00〜V0−07は要素V1−00〜V1−07に対して1クロック分早く読み出されるため、V0の各要素はタイミング調整FF305でタイミング調整されて2入力セレクタ306に入力される。   The register output crossbar 304 receives the element read from the vector register 303, performs crossbar control every clock, and transmits the elements V0-00 to V0-07 to the timing adjustment FF 305, and the elements V1-00 to V1-07. Is sent to the 2-input selector 307. Since the elements V0-00 to V0-07 read out as described above are read earlier by one clock than the elements V1-00 to V1-07, the timing of each element of V0 is adjusted by the timing adjustment FF 305. Input to the 2-input selector 306.

2入力セレクタ306はレジスタリードデータ(要素V0−00〜V0−07)を選択して演算器308に出力する。2入力セレクタ307はレジスタリードデータ(要素V1−00〜V1−07)を選択して演算器308に出力する。   The 2-input selector 306 selects the register read data (elements V0-00 to V0-07) and outputs them to the computing unit 308. The 2-input selector 307 selects register read data (elements V1-00 to V1-07) and outputs the selected data to the computing unit 308.

演算器308はオペランドデータとして要素V0−00および要素V1−00を演算器ステージAのタイミングで受け取り、演算器ステージEまでパイプライン動作で算術和演算処理を行い、演算結果をtiming_8でテンポラリレジスタ309に出力する。   The arithmetic unit 308 receives element V0-00 and element V1-00 as operand data at the timing of the arithmetic unit stage A, performs arithmetic sum operation processing by pipeline operation up to the arithmetic unit stage E, and outputs the operation result to the temporary register 309 at timing_8. Output to.

テンポラリレジスタ309は演算器308から受け取った演算結果を指定されたT0−00にtiming_9で書き込む。   The temporary register 309 writes the calculation result received from the calculator 308 to the designated T0-00 at timing_9.

テンポラリレジスタ309は、timing_9以降順次T0−01〜T0−07の8つの演算結果要素を書き込む。また、テンポラリレジスタ309は、T0データ読み出し指示を受け、timing_9でT0−00を読み出しレジスタ入力クロスバ302に送出する。   The temporary register 309 writes eight operation result elements T0-01 to T0-07 sequentially from timing_9. In addition, the temporary register 309 receives a T0 data read instruction and sends T0-00 to the read register input crossbar 302 at timing_9.

レジスタ入力クロスバ302はパイプライン制御部311からの指示に従い、テンポラリレジスタ309から送出されたT0−00を選択してベクトルレジスタ303内RAM#0に書き込みデータとして送出する。   The register input crossbar 302 selects T0-00 sent from the temporary register 309 according to an instruction from the pipeline control unit 311 and sends it to the RAM # 0 in the vector register 303 as write data.

timing_10でベクトルレジスタ303内のRAM#0にT0−00が書き込まれる。timing_11でRAM#1にT0−01が、timing_12でRAM#2にT0−02が、timing_13でRAM#3にT0−03が、timing_14でRAM#0にT0−04が書き込まれる。以降timing_17でRAM#3にT0−07が書き込まれて一連の動作が完了する。   T0-00 is written to RAM # 0 in the vector register 303 at timing_10. In timing_11, T0-01 is written in RAM # 1, in timing_12, T0-02 is written in RAM # 2, in timing_13, T0-03 is written in RAM # 3, and in timing_14, T0-04 is written in RAM # 0. Thereafter, T0-07 is written to RAM # 3 at timing_17, and a series of operations is completed.

次にベクトル命令が2つの場合の動作を説明する。ここで用いる二つの命令列(命令11、命令12とする)の一例を次に示す。
V7 ← V0 + V1 VL = 8・・・・(命令11)
V7 ← V2 + V7 VL = 8・・・・(命令12)
この命令列は命令11の書き込み先レジスタ番号と命令12のオペランドレジスタ番号と書き込み先レジスタ番号が一致していることが特徴である。ここで、命令の要素数(VL)はベクトル演算パイプ部(VPP)30〜37それぞれが処理する要素数であることは、命令1の場合と同様である。また、命令11、12の処理について、図1の構成図(一部の図ではベクトル演算部3を省略している)を用いて処理の流れを図8〜15に示す。これらの図では、図1で示した構成要素の名称にかえて、処理内容を示す。空欄の場合、処理を実行していないことになる。図8〜15を用いて動作を説明する。図8に初期状態(T)を示す。
Next, the operation when there are two vector instructions will be described. An example of two instruction sequences used here (instruction 11 and instruction 12) is shown below.
V7 ← V0 + V1 VL = 8 (... 11)
V7 ← V2 + V7 VL = 8... (Command 12)
This instruction sequence is characterized in that the write destination register number of the instruction 11 matches the operand register number of the instruction 12 and the write destination register number. Here, the number of elements (VL) of an instruction is the number of elements processed by each of the vector operation pipe units (VPP) 30 to 37 as in the case of the instruction 1. Further, the processing flow of the instructions 11 and 12 is shown in FIGS. 8 to 15 using the configuration diagram of FIG. 1 (the vector calculation unit 3 is omitted in some drawings). In these drawings, the processing contents are shown instead of the names of the components shown in FIG. If it is blank, the process is not executed. The operation will be described with reference to FIGS. FIG. 8 shows an initial state (T).

まず、命令11がSPU1でベクトル命令と識別されて、VIC2内のベクトル命令バッファ部201に送出される。次のクロックでは命令12がSPU1でベクトル命令と識別されて、VIC2内のベクトル命令バッファ部201に送出される(図8)。   First, the instruction 11 is identified as a vector instruction by the SPU 1 and sent to the vector instruction buffer unit 201 in the VIC 2. At the next clock, the instruction 12 is identified as a vector instruction by the SPU 1 and sent to the vector instruction buffer unit 201 in the VIC 2 (FIG. 8).

次のクロック(図9)では、ベクトル命令バッファ部201は、SPU1より受け取ったベクトル命令11を一旦バッファリングする。続いて、命令発行待機バッファ部204がビジーで無いことを確認して、バッファリングしたベクトル命令を読み出すとともにベクトル命令11に対してID 「0001」を付与して命令間依存関係解析部202に送出する。   In the next clock (FIG. 9), the vector instruction buffer unit 201 temporarily buffers the vector instruction 11 received from the SPU1. Subsequently, it is confirmed that the instruction issue waiting buffer unit 204 is not busy, reads the buffered vector instruction, assigns ID “0001” to the vector instruction 11 and sends it to the inter-instruction dependency analysis unit 202. To do.

次のクロック(図10)では、ベクトル命令バッファ部201は、ベクトル命令12をバッファリングする。続いて、ベクトル命令12に対してID 「0002」を付与して命令間依存関係解析部202に送出する。命令間依存関係解析部202は、自己に存在するベクトル命令の書き込み先レジスタ番号、VL長情報、及びID 「0001」を同一VR書き込み認識部208に送出することは、命令1のベクトル命令の場合と同様である。   In the next clock (FIG. 10), the vector instruction buffer unit 201 buffers the vector instruction 12. Subsequently, an ID “0002” is assigned to the vector instruction 12 and sent to the inter-instruction dependency analysis unit 202. The inter-instruction dependency analysis unit 202 sends the vector instruction write destination register number, VL length information, and ID “0001” to the same VR write recognition unit 208 in the case of the instruction 1 vector instruction. It is the same.

同一VR書き込み認識部208は、ベクトル命令の書き込み先レジスタ番号およびVL長情報(ここではV7とVL=8)を命令間依存関係解析部202から受け取る。同一VR書き込み認識部208は、まず、命令間依存関係解析部202に存在するID 「0001」ベクトル命令の書き込み先レジスタ番号と、命令分解およびリネーム処理部203、命令発行待機バッファ部204に存在するベクトル命令の書き込み先レジスタ番号を比較する。ここでは、命令分解およびリネーム処理部203、命令発行待機バッファ部204には命令が存在しないので、同一VR書き込み認識部208は、一致無しの情報をTR番号使用認識部209に送出する。また、同一VR書き込み認識部208は、命令間依存関係解析部202から今回受け取ったVL長情報を自己の記憶領域内に保持する。図13中、点線の矢印は比較動作を表す。図11〜15も同様とする。   The same VR write recognition unit 208 receives from the inter-instruction dependency analysis unit 202 the write destination register number of the vector instruction and VL length information (here, V7 and VL = 8). First, the same VR write recognition unit 208 exists in the write destination register number of the ID “0001” vector instruction existing in the inter-instruction dependency analysis unit 202, the instruction decomposition / rename processing unit 203, and the instruction issue standby buffer unit 204. Compare the register number of the vector instruction write destination. Here, since there is no instruction in the instruction decomposition / rename processing unit 203 and the instruction issuance standby buffer unit 204, the same VR write recognition unit 208 sends the mismatch information to the TR number use recognition unit 209. The same VR write recognition unit 208 holds the VL length information received this time from the inter-instruction dependency analysis unit 202 in its own storage area. In FIG. 13, a dotted arrow indicates a comparison operation. The same applies to FIGS.

命令間依存関係解析部202は、命令分解およびリネーム処理部203および命令発行待機バッファ部204に存在する先行ベクトル命令とのレジスタ依存関係を解析する。しかしながら、命令分解およびリネーム処理部203および命令発行待機バッファ部204にはこの時点で命令が存在しないためRead after Write、Write after Read、Write after Writeの関係は無いという命令間依存情報とともにベクトル命令11およびID 「0001」を命令分解およびリネーム処理部203に送出する。   The inter-instruction dependency analysis unit 202 analyzes a register dependency with the preceding vector instruction existing in the instruction decomposition / rename processing unit 203 and the instruction issue standby buffer unit 204. However, since there is no instruction at this time in the instruction disassembly and rename processing unit 203 and the instruction issue standby buffer unit 204, the vector instruction 11 has inter-instruction dependency information indicating that there is no relationship between Read after Write, Write after Read, and Write after Write. And ID “0001” are sent to the instruction resolution and rename processing unit 203.

次のクロック(図11)では、命令分解およびリネーム処理部203は、命令間依存関係解析部202より受け取ったベクトル命令11が使用する演算結果格納用のテンポラリレジスタ領域をT0と決定し、その情報を命令分解およびリネーム処理部203内のリネームテーブルに保持する。演算オペランドに指定されたレジスタ番号(VR番号)はテンポラリレジスタ(TR)に存在しないのでオペランドに指定されたレジスタはリネームしない。   At the next clock (FIG. 11), the instruction disassembly and rename processing unit 203 determines that the temporary register area for storing the operation result used by the vector instruction 11 received from the inter-instruction dependency analysis unit 202 is T0, and the information Is stored in a rename table in the instruction decomposition and rename processing unit 203. Since the register number (VR number) specified for the operation operand does not exist in the temporary register (TR), the register specified for the operand is not renamed.

また、命令分解およびリネーム処理部203は、リネームした後にベクトル命令11を演算結果格納用のテンポラリレジスタに格納するまでの演算処理命令部(命令11−1)と、演算結果格納用のテンポラリレジスタ領域からレジスタに演算結果を転送する演算結果転送命令部(命令11−1)の2つに分解する。命令11−1、11−2を次に示す。
T0 ← V0 + V1 VL = 8・・・・(命令11−1)
V7 ← T0 VL = 8・・・・(命令11−2)
The instruction disassembly and rename processing unit 203 includes an arithmetic processing instruction unit (instruction 11-1) until the vector instruction 11 is stored in a temporary register for storing operation results after renaming, and a temporary register area for storing operation results. The operation result transfer instruction part (instruction 11-1) for transferring the operation result from the register to the register is decomposed. Instructions 11-1 and 11-2 are shown below.
T0 ← V0 + V1 VL = 8... (Instruction 11-1)
V7 ← T0 VL = 8... (Instruction 11-2)

このとき命令IDはそれぞれ「0001a」「0001b」となり、さらにテンポラリレジスタのRead after Writeの順序関係を守るために2つに分解された2番目の演算結果転送命令部(命令11−2)は演算処理命令部(命令11−1)に対する命令間依存関係情報を付与され、これらの情報と命令間依存関係解析部202から受け取った命令間依存情報を命令発行待機バッファ部204に送出する。   At this time, the instruction IDs are “0001a” and “0001b”, respectively, and the second operation result transfer instruction part (instruction 11-2), which is divided into two parts in order to maintain the order relationship of Read after Write of the temporary register, is operated. The inter-instruction dependency relationship information for the processing instruction part (instruction 11-1) is given, and the inter-instruction dependency information received from the inter-instruction dependency relation analyzing unit 202 is sent to the instruction issuance standby buffer unit 204.

また、命令間依存関係解析部202は、命令12と、命令分解およびリネーム処理部203および命令発行待機バッファ部204に存在する先行ベクトル命令11とのレジスタ依存関係を解析する。命令間依存関係解析部202は、命令12が、命令分解およびリネーム処理部203に存在するベクトル命令11「V7 ← V0 + V1 VL=8」に対してRead after Write、Write after Writeの関係があることを検出し、この命令間依存情報とともにベクトル命令12およびID 「0002」を命令分解およびリネーム処理部203に送出する。また、命令間依存関係解析部202は、自己に存在するベクトル命令の書き込み先レジスタ番号およびVL長情報およびID 「0002」を同一VR書き込み認識部208に送出する。   Further, the inter-instruction dependency analysis unit 202 analyzes the register dependency between the instruction 12 and the preceding vector instruction 11 existing in the instruction decomposition / rename processing unit 203 and the instruction issue standby buffer unit 204. The inter-instruction dependency analysis unit 202 has a relationship of Read after Write and Write after Write with respect to the vector instruction 11 “V7 ← V0 + V1 VL = 8” existing in the instruction decomposition and rename processing unit 203. This is detected, and the vector instruction 12 and ID “0002” are sent to the instruction decomposition and rename processing unit 203 together with the inter-instruction dependency information. Further, the inter-instruction dependency analysis unit 202 sends the write destination register number, VL length information, and ID “0002” of the vector instruction existing in itself to the same VR write recognition unit 208.

同一VR書き込み認識部208は、ベクトル命令の書き込み先レジスタ番号およびVL長情報(ここではV7とVL=8)を命令間依存関係解析部202から受け取る。まず、同一VR書き込み認識部208は、命令間依存関係解析部202に存在するID 「0002」ベクトル命令12の書き込み先レジスタ番号と、命令分解およびリネーム処理部203に存在するベクトル命令11の書き込み先レジスタ番号を比較する。同一VR書き込み認識部208は、命令12と、命令分解およびリネーム処理部203に存在するID 「0001b」ベクトル命令11の書き込み先レジスタ番号が一致するので、一致したベクトル命令11−1のID 「0001b」をTR番号使用認識部209に送出する。また、同一VR書き込み認識部208は、VL長情報を保持する機能を持ち、保持しているVL長情報と命令間依存関係解析部202から受け取ったVL長情報を比較する。同一VR書き込み認識部208は、どちらも同じ「8」であることからリタイア命令無効化禁止信号をTR番号使用認識部209に送出しない。   The same VR write recognition unit 208 receives from the inter-instruction dependency analysis unit 202 the write destination register number of the vector instruction and VL length information (here, V7 and VL = 8). First, the same VR write recognition unit 208 writes the write destination register number of the ID “0002” vector instruction 12 present in the inter-instruction dependency analysis unit 202 and the write destination of the vector instruction 11 present in the instruction decomposition and rename processing unit 203. Compare register numbers. Since the same VR write recognition unit 208 matches the write destination register number of the instruction 12 and the ID “0001b” vector instruction 11 existing in the instruction decomposition and rename processing unit 203, the ID “0001b” of the matched vector instruction 11-1 Is sent to the TR number use recognition unit 209. The same VR write recognition unit 208 has a function of holding VL length information, and compares the held VL length information with the VL length information received from the inter-instruction dependency analysis unit 202. The same VR write recognizing unit 208 does not send a retire command invalidation prohibition signal to the TR number use recognizing unit 209 because both are the same “8”.

次のクロック(図12)では、命令分解およびリネーム処理部203は、命令間依存関係解析部202より受け取ったベクトル命令12が使用する演算結果格納用のテンポラリレジスタ領域を、リネームテーブルに保持されていた「V7 − T0」の関係からT0と決定し、その情報を命令分解およびリネーム処理部203内のリネームテーブルに保持する。このときのリネームテーブルの具体例が図2に相当する。演算オペランドに指定されたレジスタ番号も同様にリネームテーブルの情報からT0とリネームする。この処理の結果ベクトル命令12は次のようになる「T0 ← V2 + T0」。   At the next clock (FIG. 12), the instruction decomposition and rename processing unit 203 holds the temporary register area for storing the operation result used by the vector instruction 12 received from the inter-instruction dependency analysis unit 202 in the rename table. Further, T0 is determined from the relationship of “V7−T0”, and the information is stored in the rename table in the instruction decomposition and rename processing unit 203. A specific example of the rename table at this time corresponds to FIG. Similarly, the register number designated as the operation operand is renamed T0 from the information in the rename table. As a result of this processing, the vector instruction 12 is as follows: “T0 ← V2 + T0”.

また、命令分解およびリネーム処理部203は、リネームした後にベクトル命令12を演算結果格納用のテンポラリレジスタに格納するまでの演算処理命令部(命令12−1)と、演算結果格納用のテンポラリレジスタ領域からレジスタに演算結果を転送する演算結果転送命令部(命令12−2)の2つに分解する。命令12−1、12−2を次に示す。
T0 ← V2 + T0 VL = 8・・・・(命令12−1)
V7 ← T0 VL = 8・・・・(命令12−2)
The instruction disassembly and rename processing unit 203 includes an arithmetic processing instruction unit (instruction 12-1) until the vector instruction 12 is stored in a temporary register for storing operation results after renaming, and a temporary register area for storing operation results. The operation result transfer instruction part (instruction 12-2) for transferring the operation result from the register to the register is decomposed. The instructions 12-1 and 12-2 are shown below.
T0 ← V2 + T0 VL = 8... (Command 12-1)
V7 ← T0 VL = 8... (Command 12-2)

このとき命令IDはそれぞれ「0002a」「0002b」となり、さらにテンポラリレジスタのRead after Writeの順序関係を守るために2つに分解された2番目の演算結果転送命令部(命令12−2)は演算処理命令部(命令12−1)に対する命令間依存関係情報を付与され、これらの情報と命令間依存関係解析部202から受け取った命令間依存情報を命令発行待機バッファ部204に送出する。   At this time, the instruction IDs are “0002a” and “0002b”, respectively, and the second operation result transfer instruction part (instruction 12-2) divided into two parts in order to keep the order relationship of Read after Write of the temporary register is an operation. The inter-instruction dependency relationship information for the processing instruction part (instruction 12-1) is given, and the inter-instruction dependency information received from the inter-instruction dependency relation analyzing unit 202 is sent to the instruction issuance standby buffer unit 204.

TR番号使用認識部209は命令分解およびリネーム処理部203からリネーム処理が終わったベクトル命令12「T0 ← V2 + T0」を受け取り、その入力オペランドがテンポラリレジスタ番号にリネームされていることを確認し、同一VR書き込み認識部208から受け取ったID 「0001b」を有効としてリタイア命令無効化処理部210に送出する。   The TR number use recognizing unit 209 receives the vector instruction 12 “T0 ← V2 + T0” after the renaming process from the instruction decomposing and renaming unit 203 and confirms that the input operand is renamed to the temporary register number. The ID “0001b” received from the same VR write recognition unit 208 is validated and sent to the retirement instruction invalidation processing unit 210.

命令発行待機バッファ部204は、命令分解およびリネーム処理部203からID「0001a」、命令11−1とID「0001b」、命令11−2を受け取り、バッファリングする。この時の命令発行待機バッファ部204の状態を図6に示す。命令11は命令1と同じであるため、命令1の場合と同様の状態となる。   The instruction issue standby buffer unit 204 receives the ID “0001a”, the instruction 11-1 and the ID “0001b”, and the instruction 11-2 from the instruction decomposition and rename processing unit 203, and buffers them. The state of the instruction issue standby buffer unit 204 at this time is shown in FIG. Since the instruction 11 is the same as the instruction 1, the state is the same as the case of the instruction 1.

次のクロック(図13)では、命令発行待機バッファ部204は命令分解およびリネーム処理部203からID「0002a」、命令12−1とID「0002b」、命令12−2を受け取り、バッファリングする。この時の命令発行待機バッファ部204の状態を図16に示す。   At the next clock (FIG. 13), the instruction issue standby buffer unit 204 receives the ID “0002a”, the instruction 12-1 and the ID “0002b”, and the instruction 12-2 from the instruction disassembly and rename processing unit 203, and buffers them. The state of the instruction issue standby buffer unit 204 at this time is shown in FIG.

リタイア命令無効化処理部210は、TR番号使用認識部209から有効なID 「0001b」を受け取り、ID 「0001b」の演算結果転送命令を無効化する指示を命令発行待機バッファ部204に送出する。   The retirement instruction invalidation processing unit 210 receives a valid ID “0001b” from the TR number use recognition unit 209 and sends an instruction to invalidate the operation result transfer instruction with the ID “0001b” to the instruction issue standby buffer unit 204.

命令発行待機バッファ部204は、リタイア命令無効化処理部210からID 「0001b」の演算結果転送命令を無効化する指示を受け取り、ID 「0001b」の無効化禁止フラグが"0"であることからID 「0001b」の演算結果転送命令を無効化する。この時の命令発行待機バッファ部204の状態を図17に示す。個のタイミングで、命令発行待機バッファ部204に最初に格納された命令11−1が命令発行チェック部205へ送出される。   The instruction issue standby buffer unit 204 receives an instruction to invalidate the operation result transfer instruction with the ID “0001b” from the retirement instruction invalidation processing unit 210, and the invalidation prohibition flag with the ID “0001b” is “0”. The operation result transfer instruction with ID “0001b” is invalidated. The state of the instruction issue standby buffer unit 204 at this time is shown in FIG. At this timing, the instruction 11-1 first stored in the instruction issue standby buffer unit 204 is sent to the instruction issue check unit 205.

次のクロック(図14)では、命令11−1が命令発行部206へ送出され、次のクロック(図15)でベクトル演算部3において命令11−1が実行される。   At the next clock (FIG. 14), the instruction 11-1 is sent to the instruction issuing unit 206, and at the next clock (FIG. 15), the instruction 11-1 is executed in the vector operation unit 3.

命令発行待機バッファ部204にバッファリングされた命令が実行された時のタイムチャートを図18に示す。図18は、timing_18において、命令12−1の命令のオペランドデータ8要素目の読み出しされるまでを示している。図7のタイムチャートと比べると、(1)命令12−1の1要素目のオペランド読み出しがtiming_10で開始されていること、(2)オペランドの一方がV7→T0にリネームされているため、timing_11でテンポラリレジスタ309から読み出されていることが特徴的である。   FIG. 18 shows a time chart when an instruction buffered in the instruction issue standby buffer unit 204 is executed. FIG. 18 shows the timing until the eighth operand data of the instruction 12-1 is read in timing_18. Compared with the time chart of FIG. 7, (1) the operand reading of the first element of the instruction 12-1 has started at timing_10, and (2) one of the operands has been renamed from V7 to T0. It is characteristic that the data is read from the temporary register 309.

次に命令11、12をベースにVL長が小さくなる方向へ変化した場合の動作を使って説明する。この動作は従来の動作とも同じである。冗長な説明を略し、特徴的な点を説明する。ここで用いる二つの命令列(命令21、命令22とする)の一例を次に示す。命令21は、命令11と同じであるが説明をわかりやすくするため、命令21とする。
V7 ← V0 + V1 VL = 8・・・・(命令21)
V7 ← V2 + V7 VL = 6・・・・(命令22)
この命令列は命令11、12に示す命令列がベースとなっており、命令21のVL長は8であるが命令22のVL長は6とVL長が短くなっている。また、図19〜26に処理の流れを示す。図の表し方は、図8〜15と同様である。また、図19〜26は、命令の番号及び命令22のVL長が異なるため全クロックの処理の流れを示したが、図8〜18と同様の処理については説明を省略する。
Next, the operation when the VL length changes in the direction of decreasing based on the instructions 11 and 12 will be described. This operation is the same as the conventional operation. A redundant description will be omitted, and characteristic points will be described. An example of two instruction sequences (instruction 21 and instruction 22) used here is shown below. The instruction 21 is the same as the instruction 11 but is assumed to be the instruction 21 for easy understanding of the explanation.
V7 ← V0 + V1 VL = 8 ... (Instruction 21)
V7 ← V2 + V7 VL = 6 ... (Instruction 22)
This instruction sequence is based on the instruction sequences shown in the instructions 11 and 12. The VL length of the instruction 21 is 8, but the VL length of the instruction 22 is 6, which is VL. 19 to 26 show the flow of processing. The representation of the figure is the same as in FIGS. 19 to 26 show the flow of processing of all clocks because the instruction number and the VL length of the instruction 22 are different, but the description of the same processing as in FIGS. 8 to 18 is omitted.

命令分解およびリネーム処理部203が分解した命令列は次のようになる。分解の動作は命令11、12と同様である。
T0 ← V0 + V1 VL = 8・・・・(命令21−1)
V7 ← T0 VL = 8・・・・(命令21−2)
T0 ← V2 + T0 VL = 6・・・・(命令22−1)
V7 ← T0 VL = 6・・・・(命令22−2)
The instruction sequence decomposed by the instruction decomposition and rename processing unit 203 is as follows. The disassembly operation is the same as the instructions 11 and 12.
T0 ← V0 + V1 VL = 8... (Instruction 21-1)
V7 ← T0 VL = 8... (Instruction 21-2)
T0 ← V2 + T0 VL = 6... (Command 22-1)
V7 ← T0 VL = 6... (Command 22-2)

図22に示すように、図命令間依存関係解析部202は、命令分解およびリネーム処理部203および命令発行待機バッファ部204に存在する先行ベクトル命令とのレジスタ依存関係を解析する。命令22は、命令分解およびリネーム処理部203に存在するベクトル命令21「V7 ← V0 + V1 VL=8」に対してRead after Write、Write after Writeの関係があることを検出し、この命令間依存情報とともにベクトル命令22およびID 「0002」を命令分解およびリネーム処理部203に送出する。また、命令間依存関係解析部202は、自己に存在するベクトル命令の書き込み先レジスタ番号およびVL長情報およびID 「0002」を同一VR書き込み認識部208に送出する。   As shown in FIG. 22, the inter-instruction dependency relationship analysis unit 202 analyzes the register dependency with the preceding vector instruction existing in the instruction decomposition and rename processing unit 203 and the instruction issue standby buffer unit 204. The instruction 22 detects that there is a relationship of Read after Write and Write after Write with respect to the vector instruction 21 “V7 ← V0 + V1 VL = 8” existing in the instruction decomposition and rename processing unit 203, and depends on the inter-instruction. The vector instruction 22 and ID “0002” are sent to the instruction decomposition and rename processing unit 203 together with the information. Further, the inter-instruction dependency analysis unit 202 sends the write destination register number, VL length information, and ID “0002” of the vector instruction existing in itself to the same VR write recognition unit 208.

同一VR書き込み認識部208は、ベクトル命令の書き込み先レジスタ番号およびVL長情報を命令間依存関係解析部202から受け取る。まず、同一VR書き込み認識部208は、命令間依存関係解析部202に存在するID 「0002」ベクトル命令22の書き込み先レジスタ番号と、命令分解およびリネーム処理部203に存在するベクトル命令21の書き込み先レジスタ番号を比較する。同一VR書き込み認識部208は、命令分解およびリネーム処理部203に存在するID 「0001b」ベクトル命令21の書き込み先レジスタ番号が一致するので、一致したベクトル命令21−1のID 「0001b」をTR番号使用認識部209に送出する。また、同一VR書き込み認識部208は、1クロック前に通過した直近のベクトル命令21のVL長情報「8」を保持しており、その値と命令間依存関係解析部202から受け取ったベクトル命令22のVL長情報「6」を比較する。同一VR書き込み認識部208は、ベクトル命令22のVL長が、保持していたVL長より小さいことを検出し、リタイア命令無効化禁止信号をTR番号使用認識部209に送出する。また、同一VR書き込み認識部208は、今回命令間依存関係解析部202から受け取ったベクトル命令22のVL長情報「6」を自己の記憶領域内に保持する。   The same VR write recognition unit 208 receives the write destination register number and VL length information of the vector instruction from the inter-instruction dependency analysis unit 202. First, the same VR write recognizing unit 208 writes the write destination register number of the ID “0002” vector instruction 22 existing in the inter-instruction dependency analyzing unit 202 and the write destination of the vector instruction 21 existing in the instruction disassembly and rename processing unit 203. Compare register numbers. Since the write destination register number of the ID “0001b” vector instruction 21 existing in the instruction decomposition and rename processing unit 203 matches, the same VR write recognition unit 208 matches the ID “0001b” of the matched vector instruction 21-1 with the TR number. It is sent to the use recognition unit 209. The same VR write recognizing unit 208 holds the VL length information “8” of the most recent vector instruction 21 passed one clock ago, and the vector instruction 22 received from the value and inter-instruction dependency analyzing unit 202. The VL length information “6” is compared. The same VR write recognition unit 208 detects that the VL length of the vector instruction 22 is smaller than the held VL length, and sends a retire instruction invalidation prohibition signal to the TR number use recognition unit 209. The same VR write recognition unit 208 holds the VL length information “6” of the vector instruction 22 received from the inter-instruction dependency analysis unit 202 this time in its own storage area.

次のクロック(図23)では、TR番号使用認識部209は、命令分解およびリネーム処理部203からリネーム処理が終わったベクトル命令22「T0 ← V2 + T0」を受け取り、その入力オペランドがテンポラリレジスタ番号にリネームされていることを確認し、同一VR書き込み認識部208から受け取ったID 「0001b」を有効としてリタイア命令無効化処理部210に送出するとともに、同じく同一VR書き込み認識部208から受け取ったリタイア命令無効化禁止信号をリタイア命令無効化処理部210に送出する。   At the next clock (FIG. 23), the TR number use recognizing unit 209 receives the vector instruction 22 “T0 ← V2 + T0” whose rename processing is completed from the instruction decomposition and rename processing unit 203, and the input operand thereof is a temporary register number. The ID “0001b” received from the same VR write recognition unit 208 is validated and sent to the retire command invalidation processing unit 210, and the retire command received from the same VR write recognition unit 208 is also sent. An invalidation prohibition signal is sent to the retirement instruction invalidation processing unit 210.

リタイア命令無効化処理部210はTR番号使用認識部209から有効なID 「0001b」を受け取ると同時にリタイア命令無効化禁止信号を受け取るため、ID 「0001b」の演算結果転送命令を無効化する指示の送出を行わず、リタイア命令無効化禁止信号を命令発行待機バッファ部204に送出する(図23)。   The retirement instruction invalidation processing unit 210 receives a valid ID “0001b” from the TR number use recognizing unit 209 and simultaneously receives a retirement instruction invalidation prohibition signal. Therefore, the retirement instruction invalidation processing unit 210 receives an instruction to invalidate the operation result transfer instruction of ID “0001b”. The retired instruction invalidation prohibition signal is sent to the instruction issue standby buffer unit 204 without sending it (FIG. 23).

命令発行待機バッファ部204は、リタイア命令無効化処理部210からリタイア命令無効化禁止信号を受け取り、命令発行待機バッファ部204内にバッファリングされている全ての演算結果転送命令の無効化禁止フラグを有効化する(図24)。この時の命令発行待機バッファ部204の状態を図27に示す。また、図25、26に示すように、命令21−2は、無効化されることなく、命令発行待機バッファ部204に保持され、命令の実行を待つ。   The instruction issue standby buffer unit 204 receives the retirement instruction invalidation prohibition signal from the retirement instruction invalidation processing unit 210, and sets invalidation prohibition flags for all the operation result transfer instructions buffered in the instruction issue standby buffer unit 204. Enable (FIG. 24). The state of the instruction issue standby buffer unit 204 at this time is shown in FIG. As shown in FIGS. 25 and 26, the instruction 21-2 is held in the instruction issuance standby buffer unit 204 without being invalidated and waits for execution of the instruction.

命令発行待機バッファ部204にバッファリングされた命令が実行された時のタイムチャートを図28に示す。   FIG. 28 shows a time chart when an instruction buffered in the instruction issue standby buffer unit 204 is executed.

図28はtiming_18において、命令22−1の命令のオペランドデータ8要素目読み出しされるまでのタイムチャートを示している。命令21−2のリタイア命令が実行されるため図18のタイムチャートと比べると、(1)命令22−1の1要素目のオペランド読み出しが1クロック遅いtiming_11で開始されること、(2)命令22−1のオペランド読み出しが6要素分で終わっていることが特徴的である。   FIG. 28 shows a time chart until the 8th element of the operand data of the instruction 22-1 is read out in timing_18. Compared with the time chart of FIG. 18 because the retired instruction of the instruction 21-2 is executed, (1) the operand reading of the first element of the instruction 22-1 is started at timing_11 which is one clock later, (2) the instruction Characteristic is that the reading of the operand of 22-1 is completed for six elements.

以上の動作により、命令11、12の命令列のように命令間で書き込み先レジスタ番号が一致していて、かつVL長が同じであるような命令の場合は先行する命令のリタイア命令を無効化することで、RAMのポート競合確率を減少させることが可能となり、演算器の未使用時間が無いよう後続演算命令の実行を開始できる確率を高くできる。
また、命令を実行する上で一貫性を保証しつつ必要な命令のみ実行することでデータ変化率を減少させることが可能となる。
By the above operation, the retired instruction of the preceding instruction is invalidated in the case of an instruction in which the write destination register number matches between the instructions and the VL length is the same as in the instruction sequence of the instructions 11 and 12. By doing so, it is possible to reduce the RAM port contention probability, and to increase the probability that the execution of the subsequent operation instruction can be started so that there is no unused time of the operation unit.
In addition, it is possible to reduce the data change rate by executing only necessary instructions while ensuring consistency in executing the instructions.

(その他の実施形態)
実施形態1においてベクトルレジスタ303のベクトルレジスタは4つの1ポートRAMから構成して、時分割に割り当てられたポートを使って読み出し動作と書き込み動作を行うような動作となっているが、使用するRAMについてはリード動作とライト動作が同時に行える2ポートRAMで構成することも可能である。この場合読み出し動作とリタイア命令処理動作が競合することは無いが、ベクトルロード命令処理とリタイア命令処理が競合するケースがあるためリタイア命令無効化は性能向上に効果がある。
(Other embodiments)
In the first embodiment, the vector register 303 of the vector register 303 is composed of four 1-port RAMs, and is configured to perform a read operation and a write operation using ports assigned in a time division manner. Can be constituted by a two-port RAM capable of simultaneously performing a read operation and a write operation. In this case, there is no conflict between the read operation and the retire instruction processing operation, but since there is a case where the vector load instruction processing and the retire instruction processing conflict, the retire instruction invalidation is effective in improving the performance.

また、2ポートRAMからベクトルレジスタを構成する場合は1つのRAMにあるベクトルレジスタ番号の要素を全て格納するような構成を採ることも可能で、この場合は複数のRAMから時分割で読み出す必要は無く、1つのRAMから連続して要素を読み出す動作となり、この場合にもRAMのライトポート使用時間を削減できるためリタイア命令無効化は性能向上に効果がある。   When configuring a vector register from a 2-port RAM, it is possible to adopt a configuration in which all elements of the vector register number in one RAM are stored. In this case, it is necessary to read from a plurality of RAMs in a time-sharing manner. In this case, since the RAM write port usage time can be reduced, disabling the retire instruction is effective in improving the performance.

また、本実施形態では4つのRAMからベクトルレジスタを構成しているが、5つ以上のRAMから構成する装置においても性能向上に効果がある。   In the present embodiment, the vector register is composed of four RAMs. However, an apparatus composed of five or more RAMs is also effective in improving performance.

実施形態1ではベクトル命令を演算結果格納用のテンポラリレジスタに格納するまでの演算処理命令と、演算結果格納用のテンポラリレジスタ領域からレジスタに演算結果を転送する演算結果転送命令(リタイア命令)の2つに分解して命令発行待機バッファ部204に別々のレコードにバッファリングする例を挙げているが、2つに分解した各々の単位で無効化・無効化禁止が制御出来るならば別々のレコードにする必要は無く、2つに分解した命令を1つのレコードに格納しても良い。   In the first embodiment, there are two processing instructions, that is, an operation processing instruction until a vector instruction is stored in a temporary register for storing operation results, and an operation result transfer instruction (retirement instruction) for transferring operation results from a temporary register area for storing operation results to a register. In this example, the instruction issuance waiting buffer unit 204 is buffered in separate records. If invalidation / invalidation prohibition can be controlled in each unit divided into two, separate records are provided. There is no need to do so, and the instruction divided into two may be stored in one record.

実施形態1の説明では命令間依存関係解析部202、命令分解およびリネーム処理部203、命令発行待機バッファ部204における処理にそれぞれ1クロックの時間を要する想定であるが、回路遅延に余裕があればこれらの処理を1クロックで行っても良い。これは同一VR書き込み認識部208、TR番号使用認識部209、リタイア命令無効化処理部210、命令発行待機バッファ部204における処理についても同じである。   In the description of the first embodiment, it is assumed that the inter-instruction dependency analysis unit 202, the instruction decomposition / rename processing unit 203, and the instruction issuance standby buffer unit 204 each require one clock time. These processes may be performed with one clock. The same applies to the processing in the same VR write recognition unit 208, TR number use recognition unit 209, retired instruction invalidation processing unit 210, and instruction issue standby buffer unit 204.

実施形態1ではベクトルストア命令の動作を記載しなかったが、実施形態1の構成ではストア命令はテンポラリレジスタにリネームされることは無いため、ベクトルストア命令のソースレジスタ番号についても無効化禁止対象レジスタとしてとしてリタイア命令無効化処理部210に対して送出することで命令一貫性を保ちつつベクトルストア命令にも対応可能である。
命令発行制御部については命令間の一貫性が保たれるならばOut−of−OrderまたはIn−Orderの制御方式であっても対応可能である。
Although the operation of the vector store instruction is not described in the first embodiment, the store instruction is not renamed as a temporary register in the configuration of the first embodiment. To the retired instruction invalidation processing unit 210, it is possible to deal with vector store instructions while maintaining instruction consistency.
The instruction issue control unit can cope with an Out-of-Order or In-Order control method as long as consistency between instructions is maintained.

同一VR書き込み認識部208は直近の演算命令とVL長が変化したことを検出することで先行するリタイア命令の無効化禁止フラグを有効にすることを可能としているが、ベクトルマスクが更新されたことを検出する機能を追加することでマスク付き演算命令にも対応可能である。このとき同一VR書き込み認識部208にてベクトルマスク更新命令を識別したら前記リタイア命令無効化禁止信号をTR番号使用認識部209に対して送出する。   The same VR write recognizing unit 208 can enable the invalidation prohibition flag of the preceding retired instruction by detecting that the latest arithmetic instruction and the VL length have changed, but the vector mask has been updated. It is also possible to cope with a masked operation instruction by adding a function for detecting. At this time, when the same VR write recognizing unit 208 identifies the vector mask update instruction, the retired instruction invalidation prohibition signal is sent to the TR number use recognizing unit 209.

以上説明したように、上記実施形態のいずれかは、連続実行が可能なベクトル演算器と複数のRAMから構成されるベクトルレジスタとベクトル演算器の出力結果を一時的に格納可能なテンポラリレジスタを持ち、ベクトル演算命令が実行される場合にはベクトル演算結果を一時的にテンポラリレジスタに格納する動作と、テンポラリレジスタから演算結果を読み出してベクトルレジスタに演算結果を転送する動作に分けて処理を行うベクトル処理装置、特にベクトルレジスタを構成するRAMのライトポートがベクトルロード命令やベクトル転送命令などと競合する装置(例えば、ベクトル演算部3)を用いるベクトル処理装置に適用することができる。   As described above, any of the above embodiments has a vector arithmetic unit capable of continuous execution, a vector register composed of a plurality of RAMs, and a temporary register capable of temporarily storing the output result of the vector arithmetic unit. When a vector operation instruction is executed, the vector is divided into an operation for temporarily storing the vector operation result in the temporary register and an operation for reading the operation result from the temporary register and transferring the operation result to the vector register. The present invention can be applied to a processing device, particularly a vector processing device using a device (for example, the vector operation unit 3) in which a RAM write port constituting a vector register competes with a vector load instruction, a vector transfer instruction, or the like.

特に、ベクトル命令を発行する場合に、ベクトル演算命令をテンポラリレジスタを使ってリネームした後に、ベクトル命令を演算結果格納用のテンポラリレジスタに格納するまでの演算処理命令と、演算結果格納用のテンポラリレジスタからレジスタに演算結果を転送する演算結果転送命令の2つに分けて命令発行待機バッファ手段(例えば、図1の命令発行待機バッファ部204)に格納してから命令発行チェックを行った後に命令発行を確定する命令発行制御手段(例えば、図1のベクトル命令制御部2)を備える場合に適用することができる。   In particular, when issuing a vector instruction, the operation instruction until the vector instruction is stored in the temporary register for storing the operation result after the vector operation instruction is renamed using the temporary register, and the temporary register for storing the operation result Is divided into two operation result transfer instructions for transferring the operation result from the register to the register and stored in the instruction issue standby buffer means (for example, the instruction issue standby buffer unit 204 in FIG. 1), and then issued after the instruction issue check is performed. This can be applied to a case where instruction issue control means (for example, the vector instruction control unit 2 in FIG. 1) is provided.

具体的には、テンポラリレジスタから演算結果を読み出してベクトルレジスタに演算結果を転送する動作を行う命令演算結果転送命令(リタイア命令)と定義したときに、ベクトル演算命令間の書き込み先ベクトルレジスタを解析して同一ベクトルレジスタに格納する命令を検出し、先行するベクトル演算命令のリタイア命令を無効化することでリタイア命令の発行を抑止するよう制御する。これらの処理は、図1の命令解析手段41、待機命令制御手段42、命令発行待機バッファ部204より実現することができる。より具体的には、図1の命令間依存関係解析部202、命令分解およびリネーム処理部203、命令発行待機バッファ部204、同一VR書き込み認識部208、TR番号使用認識部209、及びリタイア命令無効化処理部210が連携して動作することにより実現される。   Specifically, when it is defined as an instruction calculation result transfer instruction (retired instruction) that reads the calculation result from the temporary register and transfers the calculation result to the vector register, the write destination vector register between the vector calculation instructions is analyzed. Then, an instruction stored in the same vector register is detected, and control is performed so as to suppress the issue of the retired instruction by invalidating the retired instruction of the preceding vector operation instruction. These processes can be realized by the instruction analysis unit 41, the standby instruction control unit 42, and the instruction issue standby buffer unit 204 in FIG. More specifically, the inter-instruction dependency analysis unit 202, the instruction disassembly and rename processing unit 203, the instruction issue standby buffer unit 204, the same VR write recognition unit 208, the TR number use recognition unit 209, and the retired instruction invalid in FIG. This is realized by the coordination processing unit 210 operating in cooperation.

また、ベクトル処理装置において、待機命令制御手段42は、直近のベクトル演算命令のVL長情報を保持する手段と、後続命令のVL長情報と前記直近のベクトル演算命令のVL長情報とを比較して、VL長が小さくなっていることを検出した場合に、先行命令のリタイア命令を無効化しないようリタイア命令無効化禁止信号を生成する。具体的には、図1の同一VR書き込み認識部208、TR番号使用認識部209、リタイア命令無効化処理部210が連携して動作することにより実現される。   In the vector processing apparatus, the standby instruction control means 42 compares the means for holding the VL length information of the latest vector operation instruction with the VL length information of the subsequent instruction and the VL length information of the latest vector operation instruction. When the VL length is detected to be small, a retire instruction invalidation prohibition signal is generated so as not to invalidate the retirement instruction of the preceding instruction. Specifically, this is realized by the same VR write recognizing unit 208, the TR number use recognizing unit 209, and the retired instruction invalidation processing unit 210 of FIG.

さらに、ベクトル処理装置において、待機命令制御手段42は、テンポラリレジスタを使ってリネームされた後の演算命令のオペランド指定をチェックしてテンポラリレジスタにリネームされていないオペランドがあった場合はリネームされなかったベクトルレジスタにライトする先行命令のリタイア命令を無効化しないようリタイア命令無効化禁止信号を生成する。
具体的には、図1の同一VR書き込み認識部208、TR番号使用認識部209、リタイア命令無効化処理部210、命令発行待機バッファ部204が連携して動作することにより実現される。
Further, in the vector processing apparatus, the standby instruction control means 42 checks the operand specification of the arithmetic instruction after being renamed using the temporary register, and if there is an operand that is not renamed in the temporary register, it is not renamed. A retire instruction invalidation prohibition signal is generated so as not to invalidate the retirement instruction of the preceding instruction written to the vector register.
More specifically, the same VR write recognizing unit 208, TR number use recognizing unit 209, retired instruction invalidation processing unit 210, and instruction issuance waiting buffer unit 204 in FIG.

また、ベクトル処理装置において、待機命令命令をバッファリングする際にベクトル演算命令を演算結果格納用のテンポラリレジスタ領域に格納するまでの演算処理命令と、演算結果格納用のテンポラリレジスタ領域からレジスタに演算結果を転送する演算結果転送命令(リタイア命令)の2つに区別して格納可能な手段とリタイア命令の無効化を禁止するフラグを設けた。さらに、リタイア命令無効化を禁止するフラグが有効であった場合にはリタイア命令の無効化指示があった場合にも該当するリタイア命令を無効化しない機能を備えた。具体的には、図1の命令発行待機バッファ部204によって実現される。   Also, in the vector processing unit, when buffering the standby instruction instruction, the arithmetic processing instruction until the vector arithmetic instruction is stored in the temporary register area for storing the arithmetic result, and the arithmetic operation is performed on the register from the temporary register area for storing the arithmetic result. Means capable of distinguishing and storing the calculation result transfer instruction (retire instruction) for transferring the result and a flag for prohibiting invalidation of the retire instruction are provided. Further, when the flag for prohibiting retirement instruction invalidation is valid, a function for invalidating the corresponding retirement instruction even when a retirement instruction invalidation instruction is given is provided. Specifically, this is realized by the instruction issue standby buffer unit 204 of FIG.

以上説明したように、本発明の実施形態の一態様によれば、システム全体の性能向上を図ることができる。その理由は、命令間で書き込み先レジスタ番号が一致していて、かつVL長が同じであるような命令の場合は先行する命令のリタイア命令を無効化することで、RAMのポート競合確率を減少させることが可能となり、演算器の未使用時間が無いよう後続演算命令の実行を開始できる確率を高めることによる。すなわち、ベクトル演算命令間の書き込み先ベクトルレジスタを解析して同一ベクトルレジスタに格納する命令を検出し、先行するベクトル演算命令のリタイア命令を無効化する手段を設けることによって、命令一貫性を保った上でベクトルレジスタへの書き込みパスの使用頻度低下させることを可能にする。   As described above, according to one aspect of the embodiment of the present invention, the performance of the entire system can be improved. The reason for this is that in the case of instructions where the write destination register numbers match between instructions and the VL length is the same, the retired instruction of the preceding instruction is invalidated to reduce the RAM port contention probability. By increasing the probability that execution of the subsequent operation instruction can be started so that there is no unused time of the operation unit. In other words, by analyzing the write destination vector register between the vector operation instructions and detecting the instruction stored in the same vector register, the instruction consistency is maintained by providing means for invalidating the retirement instruction of the preceding vector operation instruction. It is possible to reduce the frequency of use of the write path to the vector register.

また、システムの消費電力低減を図ることができる。その理由は、命令を実行する上で一貫性を保証しつつ必要な命令のみ実行することでデータ変化率を減少させることが可能となることによる。   In addition, the power consumption of the system can be reduced. The reason is that it is possible to reduce the data change rate by executing only necessary instructions while ensuring consistency in executing the instructions.

上記各実施形態は、演算処理装置特にベクトル処理装置に適用することが可能である。   Each of the above embodiments can be applied to an arithmetic processing device, particularly a vector processing device.

なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。   In addition, this invention is not limited to embodiment shown above. Within the scope of the present invention, it is possible to change, add, or convert each element of the above-described embodiment to a content that can be easily considered by those skilled in the art.

本発明の実施形態1に係るベクトル処理装置の命令発行機構の概略を示すブロック図である。It is a block diagram which shows the outline of the instruction issue mechanism of the vector processing apparatus which concerns on Embodiment 1 of this invention. リネームテーブルの一例を示す図である。It is a figure which shows an example of a rename table. ベクトルパイプ部の構成例を示すブロック図である。It is a block diagram which shows the structural example of a vector pipe part. ベクトルレジスタデータ要素格納イメージの一例を示す図である。It is a figure which shows an example of a vector register data element storage image. テンポラリレジスタデータ要素格納イメージの一例を示す図である。It is a figure which shows an example of a temporary register data element storage image. 命令1の命令列を、命令発行待機バッファへ格納した状態例を示す図である。It is a figure which shows the example of a state which stored the command sequence of the command 1 in the command issue waiting buffer. 一つのベクトル演算パイプ部において命令1のベクトル命令の実行例を示すタイムチャートである。It is a time chart which shows the example of execution of the vector instruction of the instruction 1 in one vector operation pipe part. 命令11、12を実行する場合、VIC内の処理の流れを示す図である(初期状態T)。When executing instructions 11 and 12, it is a diagram showing a flow of processing in the VIC (initial state T). 命令11、12を実行する場合、VIC内の処理の流れを示す図である(クロックT+1)。FIG. 11 is a diagram illustrating a flow of processing in the VIC when instructions 11 and 12 are executed (clock T + 1). 命令11、12を実行する場合、VIC内の処理の流れを示す図である(クロックT+2)。FIG. 11 is a diagram showing a flow of processing in the VIC when instructions 11 and 12 are executed (clock T + 2). 命令11、12を実行する場合、VIC内の処理の流れを示す図である(クロックT+3)。When instructions 11 and 12 are executed, it is a figure which shows the flow of a process in VIC (clock T + 3). 命令11、12を実行する場合、VIC内の処理の流れを示す図である(クロックT+4)。When instructions 11 and 12 are executed, it is a figure which shows the flow of a process in VIC (clock T + 4). 命令11、12を実行する場合、VIC内の処理の流れを示す図である(クロックT+5)。When instructions 11 and 12 are executed, it is a figure which shows the flow of a process in VIC (clock T + 5). 命令11、12を実行する場合、VIC内の処理の流れを示す図である(クロックT+6)。When instructions 11 and 12 are executed, it is a figure which shows the flow of a process in VIC (clock T + 6). 命令11、12を実行する場合、VIC内の処理の流れを示す図である(クロックT+7)。FIG. 11 is a diagram showing a flow of processing in the VIC when instructions 11 and 12 are executed (clock T + 7). 命令11、12の命令列を、命令発行待機バッファ部へ格納した直後の状態例を示す図である。It is a figure which shows the example of a state immediately after storing the instruction sequence of the instructions 11 and 12 in the instruction issue waiting buffer part. 図9aの状態からリタイア命令を無効化した後の命令発行待機バッファ部の状態例を示す図である。FIG. 9B is a diagram illustrating a state example of the instruction issue waiting buffer unit after the retirement instruction is invalidated from the state of FIG. 9A. 一つのベクトル演算パイプ部において要素数が同じ二つのベクトル命令の実行例を示すタイムチャートである。It is a time chart which shows the execution example of two vector instructions with the same number of elements in one vector operation pipe part. 命令21、22を実行する場合、VIC内の処理の流れを示す図である(初期状態T)。FIG. 5 is a diagram showing a flow of processing in a VIC when executing instructions 21 and 22 (initial state T). 命令21、22を実行する場合、VIC内の処理の流れを示す図である(クロックT+1)。FIG. 11 is a diagram showing a flow of processing in the VIC when instructions 21 and 22 are executed (clock T + 1). 命令21、22を実行する場合、VIC内の処理の流れを示す図である(クロックT+2)。FIG. 11 is a diagram showing a flow of processing in the VIC when instructions 21 and 22 are executed (clock T + 2). 命令21、22を実行する場合、VIC内の処理の流れを示す図である(クロックT+3)。FIG. 11 is a diagram showing a flow of processing in the VIC when instructions 21 and 22 are executed (clock T + 3). 命令21、22を実行する場合、VIC内の処理の流れを示す図である(クロックT+4)。FIG. 11 is a diagram showing a flow of processing in the VIC when instructions 21 and 22 are executed (clock T + 4). 命令21、22を実行する場合、VIC内の処理の流れを示す図である(クロックT+5)。FIG. 11 is a diagram showing a flow of processing in the VIC when instructions 21 and 22 are executed (clock T + 5). 命令21、22を実行する場合、VIC内の処理の流れを示す図である(クロックT+6)。FIG. 11 is a diagram showing a flow of processing in the VIC when instructions 21 and 22 are executed (clock T + 6). 命令21、22を実行する場合、VIC内の処理の流れを示す図である(クロックT+7)。FIG. 11 is a diagram showing a flow of processing in the VIC when instructions 21 and 22 are executed (clock T + 7). 命令21、22の命令列を、命令発行待機バッファ部へ格納した状態例を示す図である。It is a figure which shows the example of a state which stored the instruction sequence of the instructions 21 and 22 in the instruction issue waiting buffer part. 一つのベクトル演算パイプ部において要素数が異なる二つのベクトル命令の実行例を示すタイムチャートである。It is a time chart which shows the example of execution of two vector instructions from which the number of elements differs in one vector operation pipe part.

符号の説明Explanation of symbols

1 スカラープロセッシングユニット(SPU)
2 ベクトル命令制御部(VIC)
3 ベクトル演算部
41 命令解析手段
42 待機命令制御手段
43 命令発行管理手段
30〜37 ベクトル演算パイプ部(VPP)
201 ベクトル命令バッファ部
202 命令間依存関係解析部
203 命令分解およびリネーム処理部
204 命令発行待機バッファ部
205 命令発行チェック部
206 命令発行部
207 パスビジー管理部
208 同一VR書き込み認識部
209 TR番号使用認識部
210 リタイア命令無効化処理部
301 ロードデータ供給部
302 レジスタ入力クロスバ
303 ベクトルレジスタ
304 レジスタ出力クロスバ
305 タイミング調整FF
306 2入力セレクタ
307 2入力セレクタ
308 演算器
309 テンポラリレジスタ
310 ストアデータ送出部
311 パイプライン制御部
1 Scalar processing unit (SPU)
2 Vector instruction control unit (VIC)
3 Vector operation part 41 Instruction analysis means 42 Standby instruction control means 43 Instruction issue management means 30 to 37 Vector operation pipe part (VPP)
201 Vector instruction buffer unit 202 Inter-instruction dependency analysis unit 203 Instruction decomposition and rename processing unit 204 Instruction issue waiting buffer unit 205 Instruction issue check unit 206 Instruction issue unit 207 Pass busy management unit 208 Same VR write recognition unit 209 TR number use recognition unit 210 Retired Instruction Invalidation Processing Unit 301 Load Data Supply Unit 302 Register Input Crossbar 303 Vector Register 304 Register Output Crossbar 305 Timing Adjustment FF
306 2-input selector 307 2-input selector 308 arithmetic unit 309 temporary register 310 store data sending unit 311 pipeline control unit

Claims (5)

ベクトル命令を受け付け、ベクトル命令の発行を管理するベクトル命令制御手段と、
ベクトル命令制御手段から発行されたベクトル命令を受け付け、ベクトルレジスタを用いて、ベクトル命令を、演算結果をテンポラリレジスタに一時的に格納する演算処理命令と、テンポラリレジスタに格納した演算結果をベクトルレジスタへ転送する演算結果転送命令とに分解して実行するベクトル演算手段とを備えるベクトル処理装置であって、
前記ベクトル命令制御手段は、
実行待ちベクトル命令を、演算処理命令と演算結果転送命令に分解した状態で格納する命令発行待機バッファ手段と、
ベクトル命令を受け付け、前記受け付けたベクトル命令が使用するテンポラリレジスタを決定し、前記受け付けたベクトル命令のオペランドに指定されたレジスタ番号がテンポラリレジスタと一致する場合、前記受け付けたベクトル命令のオペランドレジスタを前記テンポラリレジスタにリネームし、前記受け付けたベクトル命令と前記リネームしたベクトル命令とのいずれかについて、前記演算処理命令と前記演算結果転送命令とに分離して前記命令発行待機バッファ手段へ格納する命令解析手段と、
前記実行待ちベクトル命令のうち書き込み先のベクトルレジスタが同じであるかを解析し、同一ベクトルレジスタに格納する、先行して実行される演算処理命令を検出し、検出した演算処理命令に対応する演算結果転送命令発行を中止させる待機命令制御手段と、
前記実行待ちベクトル命令の発行を管理する命令発行管理手段と、を備え
前記待機命令制御手段は、前回受け付けたベクトル命令の要素数を保持し、新たに受け付けたベクトル命令の要素数が前記前回受け付けたベクトル命令の要素数より小さくなっている場合、演算結果転送命令の発行を中止させることを禁止する無効化禁止信号を出力するベクトル処理装置。
Vector instruction control means for accepting vector instructions and managing the issue of vector instructions;
Accepts a vector instruction issued from the vector instruction control means, and uses a vector register to store a vector instruction, an operation processing instruction for temporarily storing the operation result in a temporary register, and an operation result stored in the temporary register to the vector register A vector processing device comprising vector operation means for executing the operation result transfer instruction to be decomposed and transferred,
The vector instruction control means includes
Instruction issue waiting buffer means for storing the execution waiting vector instruction in a state of being decomposed into an operation processing instruction and an operation result transfer instruction;
Accepts a vector instruction, determines a temporary register to be used by the accepted vector instruction, and if a register number designated as an operand of the accepted vector instruction matches a temporary register, the operand register of the accepted vector instruction is Instruction analysis means for renaming a temporary register and separating the received vector instruction and the renamed vector instruction into the operation processing instruction and the operation result transfer instruction and storing them in the instruction issue waiting buffer means When,
Analyzes whether the write destination vector register is the same among the execution-waiting vector instructions, detects a previously executed arithmetic processing instruction stored in the same vector register, and performs an arithmetic operation corresponding to the detected arithmetic processing instruction Standby command control means for canceling result transfer command issuance,
An instruction issuance management means for managing the issuance of the execution waiting vector instruction ;
The standby instruction control means holds the number of elements of the vector instruction received last time, and when the number of elements of the newly received vector instruction is smaller than the number of elements of the vector instruction received last time, A vector processing apparatus that outputs an invalidation prohibition signal that prohibits the issuance of an issuance .
前記待機命令制御手段は、前記命令解析手段でリネームされたベクトル命令の演算処理命令を解析し、演算処理命令のオペランド指定がテンポラリレジスタにリネームされていない場合、先行して実行するベクトル命令であり、かつ、リネームされていないベクトルレジスタに書き込むベクトル命令について、前記無効化禁止信号を出力することを特徴とする請求項記載のベクトル処理装置。 The standby instruction control means is a vector instruction to be executed in advance if the arithmetic processing instruction of the vector instruction renamed by the instruction analyzing means is analyzed and the operand designation of the arithmetic processing instruction is not renamed to a temporary register and, the vector instruction to be written into the vector register which is not renamed, vector processing apparatus according to claim 1, wherein the outputting the disable inhibition signal. 前記命令発行待機バッファ手段は、前記演算処理命令及び前記演算結果転送命令に加え、前記無効化禁止信号が出力されたか否かを示すフラグを前記演算処理命令及び前記演算結果転送命令に対応づけて格納する領域を有することを特徴とする請求項1または2記載のベクトル処理装置。 The instruction issue waiting buffer means associates a flag indicating whether or not the invalidation prohibition signal is output in addition to the arithmetic processing instruction and the arithmetic result transfer instruction in association with the arithmetic processing instruction and the arithmetic result transfer instruction. 3. The vector processing apparatus according to claim 1, further comprising a storage area. 前記命令発行管理手段は、前記フラグが前記無効化禁止信号の出力を示している場合、前記演算結果転送命令を発行することを特徴とする請求項記載のベクトル処理装置。 4. The vector processing apparatus according to claim 3, wherein the instruction issue management means issues the operation result transfer instruction when the flag indicates the output of the invalidation prohibition signal . 実行待ちベクトル命令を、演算結果をテンポラリレジスタに一時的に格納する演算処理命令と、テンポラリレジスタに格納した演算結果をベクトルレジスタへ転送する演算結果転送命令とに分解した状態で格納する命令発行待機バッファ手段を備えるベクトル処理方法であって、
ベクトル命令を受け付け、前記受け付けたベクトル命令が使用するテンポラリレジスタを決定し、
前記受け付けたベクトル命令のオペランドに指定されたレジスタ番号がテンポラリレジスタと一致する場合、前記受け付けたベクトル命令のオペランドレジスタを前記テンポラリレジスタにリネームし、
前記受け付けたベクトル命令と前記リネームしたベクトル命令とのいずれかについて、前記演算処理命令と前記演算結果転送命令とに分離して前記命令発行待機バッファ手段へ格納し、
前記実行待ちベクトル命令のうち書き込み先のベクトルレジスタが同じであるかを解析し、
同一ベクトルレジスタに格納する、先行して実行される演算処理命令を検出し、検出した演算処理命令に対応する演算結果転送命令発行を中止させ、
前記実行待ちベクトル命令の発行を管理し、ベクトル命令を実行するベクトル演算手段へ出力することを備え、
前記先行して実行される演算処理命令を検出する工程が、前回受け付けたベクトル命令の要素数を保持し、新たに受け付けたベクトル命令の要素数が前記前回受け付けたベクトル命令の要素数より小さくなっている場合、演算結果転送命令の発行を中止させることを禁止する無効化禁止信号を出力するベクトル処理方法。
Waiting for instruction issuance to store the execution waiting vector instruction in a state of being decomposed into an operation processing instruction for temporarily storing the operation result in the temporary register and an operation result transfer instruction for transferring the operation result stored in the temporary register to the vector register. A vector processing method comprising buffer means,
Accepts a vector instruction, determines a temporary register used by the accepted vector instruction;
If the register number specified in the operand of the accepted vector instruction matches a temporary register, the operand register of the accepted vector instruction is renamed to the temporary register;
For any of the received vector instruction and the renamed vector instruction, the operation processing instruction and the operation result transfer instruction are separated and stored in the instruction issue waiting buffer means,
Analyzes whether the write destination vector register is the same among the execution vector instructions,
Detecting a processing instruction to be executed in advance, which is stored in the same vector register, stops issuing an operation result transfer instruction corresponding to the detected processing instruction,
Managing issuance of the execution waiting vector instruction, and outputting to a vector operation means for executing the vector instruction ,
The step of detecting the arithmetic processing instruction executed in advance holds the number of elements of the previously received vector instruction, and the number of elements of the newly received vector instruction becomes smaller than the number of elements of the previously received vector instruction. A vector processing method for outputting an invalidation prohibiting signal for prohibiting the issuance of an operation result transfer instruction .
JP2008234632A 2008-09-12 2008-09-12 Instruction issue control device and instruction issue control method Active JP5392810B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008234632A JP5392810B2 (en) 2008-09-12 2008-09-12 Instruction issue control device and instruction issue control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008234632A JP5392810B2 (en) 2008-09-12 2008-09-12 Instruction issue control device and instruction issue control method

Publications (2)

Publication Number Publication Date
JP2010067141A JP2010067141A (en) 2010-03-25
JP5392810B2 true JP5392810B2 (en) 2014-01-22

Family

ID=42192653

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008234632A Active JP5392810B2 (en) 2008-09-12 2008-09-12 Instruction issue control device and instruction issue control method

Country Status (1)

Country Link
JP (1) JP5392810B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2576572B (en) * 2018-08-24 2020-12-30 Advanced Risc Mach Ltd Processing of temporary-register-using instruction

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0283779A (en) * 1988-09-21 1990-03-23 Hitachi Ltd Instruction execution control method for vector processing equipment
JP2001188764A (en) * 1999-12-28 2001-07-10 Mitsubishi Electric Corp Multiprocessor system

Also Published As

Publication number Publication date
JP2010067141A (en) 2010-03-25

Similar Documents

Publication Publication Date Title
US7003629B1 (en) System and method of identifying liveness groups within traces stored in a trace cache
US8225076B1 (en) Scoreboard having size indicators for tracking sequential destination register usage in a multi-threaded processor
KR100292300B1 (en) System and method for register renaming
JP3014773B2 (en) Processor architecture
CN104487941B (en) The order of control process data element during Vector Processing
US6782521B2 (en) Integrated structure layout and layout of interconnections for an instruction execution unit of an integrated circuit chip
US20050247774A1 (en) System and method for validating a memory file that links speculative results of load operations to register values
US20190310845A1 (en) Tracking stores and loads by bypassing load store units
US20050076189A1 (en) Method and apparatus for pipeline processing a chain of processing instructions
US6928533B1 (en) Data processing system and method for implementing an efficient out-of-order issue mechanism
KR102524565B1 (en) Store and load tracking by bypassing load store units
US20030182536A1 (en) Instruction issuing device and instruction issuing method
CN108196884A (en) Utilize the computer information processing device for generating renaming
US6230262B1 (en) Processor configured to selectively free physical registers upon retirement of instructions
CA2304609A1 (en) Autonomously cycling data processing architecture
EP0778519B1 (en) Multiple instruction dispatch system for pipelined microprocessor without branch breaks
US7937569B1 (en) System and method for scheduling operations using speculative data operands
US6711670B1 (en) System and method for detecting data hazards within an instruction group of a compiled computer program
JP5392810B2 (en) Instruction issue control device and instruction issue control method
US7694110B1 (en) System and method of implementing microcode operations as subroutines
US6769049B1 (en) Memory access in a computer system having parallel execution pipelines
CN120631449A (en) Processor program address buffering method and device
US20040006687A1 (en) Processor and instruction control method
KR19980079726A (en) System and method for sending storage instructions to a processor
JP2620519B2 (en) Operation processing system and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130702

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130828

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: 20130917

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131010

R150 Certificate of patent or registration of utility model

Ref document number: 5392810

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350