JP2015201026A - Arithmetic processing device and method for controlling arithmetic processing device - Google Patents

Arithmetic processing device and method for controlling arithmetic processing device Download PDF

Info

Publication number
JP2015201026A
JP2015201026A JP2014079229A JP2014079229A JP2015201026A JP 2015201026 A JP2015201026 A JP 2015201026A JP 2014079229 A JP2014079229 A JP 2014079229A JP 2014079229 A JP2014079229 A JP 2014079229A JP 2015201026 A JP2015201026 A JP 2015201026A
Authority
JP
Japan
Prior art keywords
data
register
unit
control unit
memory
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.)
Granted
Application number
JP2014079229A
Other languages
Japanese (ja)
Other versions
JP6344022B2 (en
Inventor
聡太 坂下
Sota Sakashita
聡太 坂下
吉田 利雄
Toshio Yoshida
利雄 吉田
秋月 康伸
Yasunobu Akizuki
康伸 秋月
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014079229A priority Critical patent/JP6344022B2/en
Publication of JP2015201026A publication Critical patent/JP2015201026A/en
Application granted granted Critical
Publication of JP6344022B2 publication Critical patent/JP6344022B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PROBLEM TO BE SOLVED: To suppress an increase in the circuit scale of a circuit for controlling a data bypass.SOLUTION: An execution control unit 2 holds the instruction decoded by a decoder unit 1 and outputs executable instructions successively. A memory control unit 4 outputs an access request to a memory 5 on the basis of the memory access instruction received from the execution control unit 2. A second register 8 temporarily holds the data allocated in correspondence to a first register 7 that holds the data used for arithmetic by an arithmetic execution unit 3 and read out from the memory 5, before it is transferred to the first register 7. When the memory control unit 4 outputs a plurality of access requests on the basis of the memory access instruction and successively transfers the data read out from the memory 5 separately a number of times to the second register 8, a bypass control unit 6 causes the execution control unit 2 to output an arithmetic instruction at the time the data last read out from the memory 5 and transferred to the second register 8 is bypassed from the second register 8 to the arithmetic execution unit 3.

Description

本発明は、演算処理装置および演算処理装置の制御方法に関する。   The present invention relates to an arithmetic processing unit and a control method for the arithmetic processing unit.

演算を実行する演算処理装置は、例えば、先行する命令の実行により得られたデータがレジスタに格納される前に、データを演算器にバイパスさせるバイパス機能を有する。この種の演算処理装置は、先行する命令で使用するレジスタと後続の命令で使用するレジスタとの依存関係を検出し、依存関係がある場合にバイパス機能を有効にする回路を有する。また、この種の演算処理装置が有する倍精度浮動小数点レジスタは、1つの倍精度浮動小数点データまたは2つの単精度浮動小数点データを格納可能である。例えば、倍精度浮動小数点レジスタの上位ビット側に1つの単精度浮動小数点データを格納することで、バイパス機能におけるレジスタの依存関係の検出は、既存の回路を用いて実現可能である。また、この種の演算処理装置は、演算器による演算により得られたデータおよびデータキャッシュから読み出されたデータを一時的に保持するリネーミングレジスタを有する(例えば、特許文献1参照)。   An arithmetic processing unit that executes an arithmetic operation has, for example, a bypass function that causes an arithmetic unit to bypass data before data obtained by execution of a preceding instruction is stored in a register. This type of arithmetic processing unit has a circuit that detects a dependency relationship between a register used in a preceding instruction and a register used in a subsequent instruction, and enables the bypass function when there is a dependency relationship. In addition, the double precision floating point register of this type of arithmetic processing apparatus can store one double precision floating point data or two single precision floating point data. For example, by storing one single-precision floating-point data on the upper bit side of a double-precision floating-point register, detection of register dependency in the bypass function can be realized using an existing circuit. In addition, this type of arithmetic processing device has a renaming register that temporarily holds data obtained by arithmetic operations and data read from the data cache (see, for example, Patent Document 1).

特開2009−230339号公報JP 2009-230339 A

例えば、倍精度浮動小数点レジスタに格納する2つの単精度浮動小数点データが、データキャッシュにおける互いに異なるキャッシュラインに保持される場合、2つの単精度浮動小数点データは、互いに異なるタイミングでデータキャッシュから読み出される。この場合、各キャッシュラインから読み出されるデータを順次に保持するバッファと、演算器へのデータのバイパスが可能になるタイミングを判定する回路とが演算処理装置に設けられる。しかしながら、新たな回路の追加により、演算処理装置の回路規模は増加する。   For example, when two single-precision floating-point data stored in the double-precision floating-point register are held in different cache lines in the data cache, the two single-precision floating-point data are read from the data cache at different timings. . In this case, a buffer that sequentially holds data read from each cache line and a circuit that determines a timing at which data can be bypassed to the arithmetic unit are provided in the arithmetic processing unit. However, the addition of new circuits increases the circuit scale of the arithmetic processing unit.

本件開示の演算処理装置および演算処理装置の制御方法は、メモリアクセス命令に基づいてデータをメモリから複数回に分けて読み出す場合に、データのバイパスを制御する回路の回路規模の増加を抑制することを目的とする。   The arithmetic processing device and the control method of the arithmetic processing device disclosed herein suppress an increase in the circuit scale of a circuit that controls data bypass when data is read from a memory in a plurality of times based on a memory access instruction. With the goal.

一つの観点によれば、演算処理装置は、命令を解読するデコーダ部と、デコーダ部が解読した命令を保持し、実行可能な命令を順次に出力する実行制御部と、実行制御部から受ける演算の実行を示す演算命令に基づいて演算を実行する演算実行部と、演算実行部で使用するデータを記憶するメモリと、演算実行部が実行する演算に使用するデータを保持する複数の第1レジスタと、演算に使用する第1レジスタに対応して割り当てられ、演算命令またはメモリアクセス命令の実行により得られるデータを第1レジスタに転送する前に一時的に保持する複数の第2レジスタと、第1レジスタと第2レジスタとの割り当ての関係を保持し、実行制御部により参照されるレジスタ管理部と、実行制御部から受けるメモリからデータを読み出すメモリアクセス命令に基づいてメモリにアクセス要求を出力するメモリ制御部と、メモリ制御部がメモリアクセス命令に基づいて複数のアクセス要求を出力し、メモリから複数回に分けて読み出されるデータを第2レジスタに順次に転送する場合、メモリから最後に読み出されるデータが第2レジスタに転送された後に第2レジスタから演算実行部へデータをバイパスするタイミングで、実行制御部に演算命令を出力させるバイパス制御部を有する。   According to one aspect, the arithmetic processing device includes a decoder unit that decodes instructions, an execution control unit that holds instructions decoded by the decoder unit, and sequentially outputs executable instructions, and an operation received from the execution control unit An operation execution unit that executes an operation based on an operation instruction indicating execution of the operation, a memory that stores data used in the operation execution unit, and a plurality of first registers that hold data used for the operation executed by the operation execution unit A plurality of second registers that are allocated corresponding to the first register used for the operation and temporarily hold before transferring the data obtained by executing the operation instruction or the memory access instruction to the first register; Memory that retains the allocation relationship between one register and the second register, and that reads data from a register management unit that is referred to by the execution control unit and a memory that is received from the execution control unit A memory control unit that outputs an access request to the memory based on the access instruction, and the memory control unit outputs a plurality of access requests based on the memory access command, and the data read out from the memory in a plurality of times is stored in the second register In the case of sequential transfer, a bypass control unit that outputs an operation instruction to the execution control unit at a timing when data is read from the memory to the second register after the data is transferred to the second register and then is bypassed from the second register to the operation execution unit. Have.

別の観点によれば、命令を解読するデコーダ部と、デコーダ部が解読した命令を保持し、実行可能な命令を順次に出力する実行制御部と、実行制御部から受ける演算の実行を示す演算命令に基づいて演算を実行する演算実行部と、演算実行部で使用するデータを記憶するメモリと、演算実行部が実行する演算に使用するデータを保持する複数の第1レジスタと、演算に使用する第1レジスタに対応して割り当てられ、演算命令またはメモリアクセス命令の実行により得られるデータを第1レジスタに転送する前に一時的に保持する複数の第2レジスタと、第1レジスタと第2レジスタとの割り当ての関係を保持し、実行制御部により参照されるレジスタ管理部を有する演算処理装置の制御方法は、演算処理装置が有するメモリ制御部が、実行制御部から受けるメモリからデータを読み出すメモリアクセス命令に基づいてメモリにアクセス要求を出力し、メモリ制御部がメモリアクセス命令に基づいて複数のアクセス要求を出力し、メモリから複数回に分けて読み出されるデータを第2レジスタに順次に転送する場合、演算処理装置が有するバイパス制御部が、メモリから最後に読み出されるデータが第2レジスタに転送された後に第2レジスタから演算実行部へデータをバイパスするタイミングで、実行制御部に演算命令を出力させる。   According to another aspect, a decoder unit that decodes an instruction, an execution control unit that holds instructions decoded by the decoder unit and sequentially outputs executable instructions, and an operation that indicates execution of an operation received from the execution control unit An operation execution unit that executes an operation based on an instruction, a memory that stores data used in the operation execution unit, a plurality of first registers that hold data used for an operation executed by the operation execution unit, and an operation used A plurality of second registers, which are allocated corresponding to the first registers to be stored, and temporarily hold before transferring the data obtained by executing the operation instruction or the memory access instruction to the first register, the first register and the second register A method for controlling an arithmetic processing unit having a register management unit that retains an allocation relationship with a register and is referenced by an execution control unit is executed by a memory control unit included in the arithmetic processing unit. An access request is output to the memory based on a memory access instruction for reading data from the memory received from the control unit, and the memory control unit outputs a plurality of access requests based on the memory access instruction, and is read out from the memory in multiple times. When sequentially transferring data to the second register, the bypass control unit included in the arithmetic processing unit bypasses the data from the second register to the arithmetic execution unit after the data read last from the memory is transferred to the second register At the timing, the execution control unit is caused to output an operation instruction.

本件開示の演算処理装置および演算処理装置の制御方法は、メモリアクセス命令に基づいてデータをメモリから複数回に分けて読み出す場合に、データのバイパスを制御する回路の回路規模の増加を抑制することができる。   The arithmetic processing device and the control method of the arithmetic processing device disclosed herein suppress an increase in the circuit scale of a circuit that controls data bypass when data is read from a memory in a plurality of times based on a memory access instruction. Can do.

演算処理装置および演算処理装置の制御方法の一実施形態を示す図である。It is a figure which shows one Embodiment of the arithmetic processing apparatus and the control method of an arithmetic processing apparatus. 演算処理装置および演算処理装置の制御方法の別の実施形態を示す図である。It is a figure which shows another embodiment of the arithmetic processing apparatus and the control method of an arithmetic processing apparatus. 図2に示す浮動小数点レジスタ部および固定小数点レジスタ部の例を示す図である。FIG. 3 is a diagram illustrating an example of a floating point register unit and a fixed point register unit illustrated in FIG. 2. 図2に示すリネーミングレジスタ部の例を示す図である。It is a figure which shows the example of the renaming register part shown in FIG. 図2に示すレジスタ管理テーブルの例を示す図である。FIG. 3 is a diagram illustrating an example of a register management table illustrated in FIG. 2. 図2に示すデータキャッシュからデータをロードする例を示す図である。It is a figure which shows the example which loads data from the data cache shown in FIG. 図2に示すバイパス制御部に設けられるセット信号生成回路の例を示す図である。It is a figure which shows the example of the set signal generation circuit provided in the bypass control part shown in FIG. バイパス制御部に設けられるバイパス管理テーブルおよびテーブル制御回路の例を示す図である。It is a figure which shows the example of the bypass management table and table control circuit which are provided in a bypass control part. 図7および図8に示すバイパス制御部の動作の例を示す図である。It is a figure which shows the example of operation | movement of the bypass control part shown to FIG. 7 and FIG. 図2に示す演算処理装置の動作の例を示す図である。It is a figure which shows the example of operation | movement of the arithmetic processing unit shown in FIG. 図2に示す演算処理装置の動作の別の例を示す図である。It is a figure which shows another example of operation | movement of the arithmetic processing unit shown in FIG. 図2に示す演算処理装置の動作のさらなる別の例を示す図である。It is a figure which shows another example of operation | movement of the arithmetic processing unit shown in FIG. 図2に示す演算処理装置の動作のさらなる別の例を示す図である。It is a figure which shows another example of operation | movement of the arithmetic processing unit shown in FIG.

以下、図面を用いて実施形態を説明する。   Hereinafter, embodiments will be described with reference to the drawings.

図1は、演算処理装置および演算処理装置の制御方法の一実施形態を示す。図1に示す演算処理装置OPD1は、デコーダ部1、実行制御部2、演算実行部3、メモリ制御部4、メモリ5、バイパス制御部6、複数の第1レジスタ7、複数の第2レジスタ8およびレジスタ管理部9を有する。   FIG. 1 shows an embodiment of an arithmetic processing unit and a control method for the arithmetic processing unit. The arithmetic processing unit OPD1 shown in FIG. 1 includes a decoder unit 1, an execution control unit 2, an operation execution unit 3, a memory control unit 4, a memory 5, a bypass control unit 6, a plurality of first registers 7, and a plurality of second registers 8. And a register management unit 9.

デコーダ部1は、命令バッファ等から受ける命令を解読し、解読した命令を実行制御部2に出力する。実行制御部2は、デコーダ部1により解読された命令を保持し、実行可能な命令を演算実行部3またはメモリ制御部4に順次に出力する。すなわち、実行制御部2は、命令の実行順序を変更するアウトオブオーダ実行を制御する。実行制御部2は、命令が演算の実行を示す演算命令の場合、演算命令を演算実行部3に出力し、命令がメモリ5からデータを読み出すメモリアクセス命令の場合、メモリアクセス命令をメモリ制御部4に出力する。   The decoder unit 1 decodes an instruction received from an instruction buffer or the like, and outputs the decoded instruction to the execution control unit 2. The execution control unit 2 holds the instructions decoded by the decoder unit 1 and sequentially outputs executable instructions to the arithmetic execution unit 3 or the memory control unit 4. That is, the execution control unit 2 controls out-of-order execution that changes the execution order of instructions. When the instruction is an operation instruction indicating execution of an operation, the execution control unit 2 outputs the operation instruction to the operation execution unit 3. When the instruction is a memory access instruction for reading data from the memory 5, the execution control unit 2 transmits the memory access instruction to the memory control unit. 4 is output.

演算実行部3は、実行制御部2から受ける演算命令に基づいて、第1レジスタ7に格納されたデータを用いて演算を実行する。なお、演算に使用するデータが第2レジスタ8に格納されている場合、演算実行部3は、第1レジスタ7を介することなく、図1に太い破線の矢印で示すバイパス経路を介して第2レジスタ8からデータを受け、演算を実行することが可能である。第2レジスタ8からのデータのバイパスの可否は、バイパス制御部6により判断される。実行制御部2は、バイパス制御部6がバイパスの可能を判断した場合、演算命令をバイパスが可能なタイミングで演算実行部3に投入する。演算実行部3は、演算の実行より得られるデータを第2レジスタ8に出力する。   The operation execution unit 3 executes an operation using the data stored in the first register 7 based on the operation instruction received from the execution control unit 2. When the data used for the calculation is stored in the second register 8, the calculation execution unit 3 does not go through the first register 7, but passes through the bypass path indicated by the thick dashed arrow in FIG. It is possible to receive data from the register 8 and execute an operation. The bypass control unit 6 determines whether or not the data from the second register 8 can be bypassed. When the bypass control unit 6 determines that the bypass is possible, the execution control unit 2 inputs the calculation instruction to the calculation execution unit 3 at a timing at which the bypass can be performed. The operation execution unit 3 outputs data obtained by executing the operation to the second register 8.

メモリ制御部4は、実行制御部2から受けるメモリアクセス命令(例えば、ロード命令)に基づいてメモリ5にアクセス要求を出力する。例えば、メモリアクセス命令で読み出すデータが、メモリ5における1つのアドレスが割り当てられた領域に記憶されている場合、メモリ制御部4は、メモリアクセス命令に基づいて1つのアクセス要求を生成する。そして、アクセス要求によりメモリ5から読み出されたデータは、第2レジスタ8に一度で格納される。   The memory control unit 4 outputs an access request to the memory 5 based on a memory access instruction (for example, a load instruction) received from the execution control unit 2. For example, when data read by a memory access instruction is stored in an area to which one address is allocated in the memory 5, the memory control unit 4 generates one access request based on the memory access instruction. Data read from the memory 5 in response to the access request is stored in the second register 8 at a time.

一方、メモリアクセス命令で読み出すデータが、メモリ5における複数のアドレスが割り当てられた領域に記憶されている場合、メモリ制御部4は、メモリアクセス命令に基づいて複数のアクセス要求を順次に生成する。そして、複数のアクセス要求によりメモリ5から読み出されるデータは、第2レジスタ8に順次に格納される。すなわち、メモリアクセス命令で読み出すデータが、メモリ5における複数のアドレスが割り当てられた領域に記憶されている場合、ロードデータのタイミングずれが発生する。   On the other hand, when the data read by the memory access instruction is stored in an area to which a plurality of addresses are allocated in the memory 5, the memory control unit 4 sequentially generates a plurality of access requests based on the memory access instruction. Data read from the memory 5 in response to a plurality of access requests is sequentially stored in the second register 8. That is, when the data read by the memory access instruction is stored in an area in the memory 5 to which a plurality of addresses are assigned, load data timing shift occurs.

メモリアクセス命令に基づいて複数回に分けて読み出されるデータは、最後のアクセス要求に対応してメモリ5から読み出されたデータが第2レジスタ8に格納されたときに、第2レジスタ8内に揃う。換言すれば、メモリアクセス命令で読み出すデータが、複数のアクセス要求によりメモリ5から読み出される場合、第2レジスタ8を利用してデータを待ち合わせることができる。この結果、演算処理装置OPD1は、メモリアクセス命令に基づいてデータをメモリ5から複数回に分けて読み出す場合にも、新たな回路を設けることなくデータを待ち合わせることができ、回路規模の増加を抑制することができる。   The data read in a plurality of times based on the memory access instruction is stored in the second register 8 when the data read from the memory 5 corresponding to the last access request is stored in the second register 8. It's aligned. In other words, when the data read by the memory access instruction is read from the memory 5 by a plurality of access requests, the data can be waited using the second register 8. As a result, the arithmetic processing unit OPD1 can wait for data without providing a new circuit even when reading data from the memory 5 in a plurality of times based on a memory access instruction, and suppresses an increase in circuit scale. can do.

メモリ5は、演算実行部3で使用するデータを記憶し、アクセス要求に基づいて記憶しているデータを出力する。メモリ5から読み出されるデータは、第2レジスタ8を経由して第1レジスタ7に転送される。   The memory 5 stores data used in the operation execution unit 3, and outputs the stored data based on the access request. Data read from the memory 5 is transferred to the first register 7 via the second register 8.

第1レジスタ7の各々は、演算実行部3が実行する演算に使用するデータを保持する。第2レジスタ8の各々は、演算に使用する第1レジスタ7に対応して割り当てられる。第1レジスタ7に対応して割り当てられた第2レジスタ8は、演算命令またはメモリアクセス命令の実行により得られるデータを第1レジスタ7に転送する前に一時的に保持する。   Each of the first registers 7 holds data used for an operation executed by the operation execution unit 3. Each of the second registers 8 is assigned corresponding to the first register 7 used for the operation. The second register 8 assigned corresponding to the first register 7 temporarily holds data obtained by execution of the arithmetic instruction or the memory access instruction before transferring it to the first register 7.

レジスタ管理部9は、第1レジスタ7と第2レジスタ8との割り当ての関係を保持する。実行制御部2は、レジスタ管理部9を参照することで、例えば、命令のオペランドにより指示される第1レジスタ7を割り当てた第2レジスタ8を認識する。例えば、デコーダ部1は、命令を解読した際に、第1レジスタ7を割り当てる第2レジスタ8を決定し、決定した割り当てを示す情報をレジスタ管理部9が有するテーブルに格納する。デコーダ部1が、演算に使用する第1レジスタ7に対応して第2レジスタ8を割り当てることで、第1レジスタ7が命令のオペランドで重複して指示され、依存関係が生じる場合にも、依存関係がないもとのとして演算を実行することができる。この結果、第2レジスタ8を使用しない場合に比べて、演算実行部3による演算の効率を向上することができる。   The register management unit 9 holds the allocation relationship between the first register 7 and the second register 8. The execution control unit 2 refers to the register management unit 9 to recognize, for example, the second register 8 to which the first register 7 designated by the instruction operand is assigned. For example, when the decoder unit 1 decodes the instruction, the decoder unit 1 determines the second register 8 to which the first register 7 is allocated, and stores information indicating the determined allocation in a table included in the register management unit 9. The decoder unit 1 assigns the second register 8 corresponding to the first register 7 used for the operation, so that the first register 7 is redundantly indicated by the operand of the instruction and a dependency relationship occurs. Arithmetic can be performed as an unrelated source. As a result, the calculation efficiency of the calculation execution unit 3 can be improved as compared with the case where the second register 8 is not used.

例えば、バイパス制御部6は、メモリ制御部4から受けるメモリ5のアクセスの状況を示す情報に基づいて、メモリ5から読み出され第2レジスタ8に格納されたデータを演算実行部3にバイパス可能か否かを判定する。また、バイパス制御部6は、実行制御部2から受ける演算実行部3による演算の実行状況を示す情報に基づいて、演算実行部3の演算により得られ第2レジスタ8に格納されたデータを演算実行部3にバイパス可能か否かを判定する。   For example, the bypass control unit 6 can bypass the data read from the memory 5 and stored in the second register 8 to the arithmetic execution unit 3 based on information indicating the access status of the memory 5 received from the memory control unit 4. It is determined whether or not. Further, the bypass control unit 6 calculates the data obtained by the calculation of the calculation execution unit 3 and stored in the second register 8 based on the information indicating the execution status of the calculation by the calculation execution unit 3 received from the execution control unit 2. It is determined whether the execution unit 3 can be bypassed.

バイパス制御部6は、メモリ制御部4がメモリアクセス命令に基づいてデータを1回でメモリ5から読み出す場合、データのバイパスが、メモリ5から第2レジスタ8に転送された後に可能になると判断する。この場合、メモリ5から読み出されるデータは、最初のデータでもあり、最後のデータでもある。そして、バイパス制御部6は、第2レジスタ8から演算実行部3へのデータを、最後のデータがメモリ5から第2レジスタ8に転送された後にバイパスするタイミングで、実行制御部2に演算命令を出力させる。   When the memory control unit 4 reads data from the memory 5 at a time based on the memory access instruction, the bypass control unit 6 determines that the data can be bypassed after being transferred from the memory 5 to the second register 8. . In this case, the data read from the memory 5 is both the first data and the last data. The bypass control unit 6 then sends an operation instruction to the execution control unit 2 at a timing to bypass the data from the second register 8 to the operation execution unit 3 after the last data is transferred from the memory 5 to the second register 8. Is output.

一方、バイパス制御部6は、メモリ制御部4がメモリアクセス命令に基づいてデータをメモリ5から複数回に分けて読み出す場合、データのバイパスが、メモリ5から第2レジスタ8に最後のデータが転送された後に可能になると判断する。そして、バイパス制御部6は、第2レジスタ8から演算実行部3へのデータのバイパスを、最後のデータがメモリ5から第2レジスタ8に転送された後に実行させるタイミングで、実行制御部2に演算命令を出力させる。   On the other hand, when the memory control unit 4 reads data from the memory 5 in a plurality of times based on the memory access instruction, the bypass control unit 6 bypasses the data and transfers the last data from the memory 5 to the second register 8. Judge that it will be possible after. The bypass control unit 6 then causes the execution control unit 2 to bypass the data from the second register 8 to the calculation execution unit 3 at the timing when the last data is transferred from the memory 5 to the second register 8. Output operation instructions.

以上、図1に示す実施形態では、バイパス制御部6は、メモリ5から読み出されるデータが第2レジスタ8に全て揃った後に、データのバイパスが可能になったことを実行制御部2に通知する。これにより、メモリ5から第2レジスタ8へロードされるデータのタイミングずれが発生する場合にも、既存の第2レジスタ8を利用してデータを待ち合わせることができる。すなわち、新たな回路を設けることなくデータを待ち合わせることができ、演算処理装置OPD1の回路規模の増加を抑制することができる。   As described above, in the embodiment illustrated in FIG. 1, the bypass control unit 6 notifies the execution control unit 2 that the data can be bypassed after all the data read from the memory 5 is stored in the second register 8. . As a result, even when the timing of data loaded from the memory 5 to the second register 8 is shifted, the data can be waited using the existing second register 8. In other words, data can be queued without providing a new circuit, and an increase in the circuit scale of the arithmetic processing unit OPD1 can be suppressed.

また、メモリアクセス命令に基づいてデータがメモリ5から1回で読み出されるか複数回に分けて読み出されるかに依存せず、バイパス制御部6は、メモリ5から第2レジスタ8に最後のデータが転送された後にバイパスが可能になると判断する。これにより、バイパス制御部6によるバイパスタイミングの制御を従来と同様に簡易にすることができる。この結果、メモリアクセス命令に基づいてデータがメモリ5から1回で読み出される場合と、複数回に分けて読み出される場合とでバイパスタイミングを変更する場合にも、演算処理装置OPD1の回路規模の増加を抑制することができる。さらに、回路規模の増加を抑制することで、演算処理装置OPD1の消費電力の増加を抑制することができ、演算処理装置OPD1の動作周波数を向上させることができる。   In addition, the bypass control unit 6 does not depend on whether the data is read from the memory 5 once or divided into a plurality of times based on the memory access instruction. It is determined that bypass is possible after being transferred. Thereby, control of the bypass timing by the bypass control part 6 can be simplified similarly to the past. As a result, the circuit scale of the arithmetic processing unit OPD1 increases even when the bypass timing is changed between when the data is read from the memory 5 once based on the memory access instruction and when the data is read in multiple times. Can be suppressed. Furthermore, by suppressing an increase in circuit scale, an increase in power consumption of the arithmetic processing unit OPD1 can be suppressed, and an operating frequency of the arithmetic processing device OPD1 can be improved.

図2は、演算処理装置および演算処理装置の制御方法の別の実施形態を示す。図2の太い実線の矢印は、ロード命令の実行時における浮動小数点データの転送経路を示す。図2の太い破線の矢印は、ロード命令の実行時における浮動小数点データのバイパス経路を示す。なお、固定小数点データのバイパス経路の図示は省略する。   FIG. 2 shows another embodiment of the arithmetic processing device and the control method of the arithmetic processing device. A thick solid line arrow in FIG. 2 indicates the transfer path of the floating point data when the load instruction is executed. The thick dashed arrows in FIG. 2 indicate the floating point data bypass path during execution of the load instruction. Note that the bypass path for fixed-point data is not shown.

図2に示す演算処理装置OPD2は、命令キャッシュ10、命令バッファ12、デコーダ部14、レジスタ管理テーブル16、リザベーションステーション18、アドレス生成部20、データキャッシュ22およびバイパス制御部24を有する。また、演算処理装置OPD2は、浮動小数点演算器26、固定小数点演算器28、ロードレジスタ30、リザルトレジスタ32、34、リネーミングレジスタ部36、38、浮動小数点レジスタ部40、固定小数点レジスタ部42およびコミット制御部44を有する。   The arithmetic processing unit OPD2 illustrated in FIG. 2 includes an instruction cache 10, an instruction buffer 12, a decoder unit 14, a register management table 16, a reservation station 18, an address generation unit 20, a data cache 22, and a bypass control unit 24. The arithmetic processing unit OPD2 includes a floating point arithmetic unit 26, a fixed point arithmetic unit 28, a load register 30, result registers 32 and 34, renaming register units 36 and 38, a floating point register unit 40, a fixed point register unit 42, and A commit control unit 44 is included.

例えば、命令キャッシュ10は、二次命令キャッシュまたはメインメモリ等から転送される命令を格納する一次命令キャッシュである。命令バッファ12は、命令キャッシュ10から順次に転送される命令を保持し、保持した命令をデコーダ部14に順次に転送する。   For example, the instruction cache 10 is a primary instruction cache that stores instructions transferred from a secondary instruction cache or a main memory. The instruction buffer 12 holds instructions sequentially transferred from the instruction cache 10 and sequentially transfers the held instructions to the decoder unit 14.

デコーダ部14は、命令バッファ12から転送される命令を順次に解読し、解読した命令に含まれる情報INS(以下、命令情報INSと称される)を、リザベーションステーション18に格納する。例えば、命令情報INSは、命令の種別に応じて、リザベーションステーション18が有するリザベーションステーションRSFLT、RSFIX、RSMAのいずれかに格納される。   The decoder unit 14 sequentially decodes instructions transferred from the instruction buffer 12, and stores information INS (hereinafter referred to as instruction information INS) included in the decoded instructions in the reservation station 18. For example, the command information INS is stored in any of the reservation stations RSFLT, RSFIX, and RSMA included in the reservation station 18 according to the type of the command.

デコーダ部14は、解読した命令が浮動小数点レジスタ部40内の浮動小数点レジスタをデータの格納先に使用することを示す場合、使用する浮動小数点レジスタを、リネーミングレジスタ部36内のリネーミングレジスタのいずれかに割り当てる。例えば、デコーダ部14は、データの格納先に使用する浮動小数点レジスタのレジスタ番号RNと、割り当てるリネーミングレジスタを示すアドレスUBAとを、書き込み要求WEとともにレジスタ管理テーブル16およびコミット制御部44に出力する。例えば、アドレスUBAは、”Update Buffer Address”の略称である。リネーミングレジスタ部36が32個のリネーミングレジスタを有する場合、アドレスUBAは5ビットである。なお、アドレスUBAは、リザベーションステーション18にも出力される。浮動小数点レジスタ部40の例は、図3に示し、リネーミングレジスタ部36の例は、図4に示す。   When the decoded instruction indicates that the floating point register in the floating point register unit 40 is used as the data storage destination, the decoder unit 14 determines the floating point register to be used as the renaming register in the renaming register unit 36. Assign to one. For example, the decoder unit 14 outputs the register number RN of the floating-point register used as the data storage destination and the address UBA indicating the renaming register to be allocated to the register management table 16 and the commit control unit 44 together with the write request WE. . For example, the address UBA is an abbreviation for “Update Buffer Address”. When the renaming register unit 36 has 32 renaming registers, the address UBA is 5 bits. The address UBA is also output to the reservation station 18. An example of the floating point register unit 40 is shown in FIG. 3, and an example of the renaming register unit 36 is shown in FIG.

同様に、デコーダ部14は、解読した命令が固定小数点レジスタ部42内の固定小数点レジスタをデータの格納先に使用することを示す場合、使用する固定小数点レジスタを、リネーミングレジスタ部38内のリネーミングレジスタのいずれかに割り当てる。例えば、デコーダ部14は、データの格納先に使用する固定小数点レジスタを示すレジスタ番号RNと、割り当てたリネーミングレジスタを示すアドレスUBAとを、書き込み要求WEとともにレジスタ管理テーブル16およびコミット制御部44に出力する。なお、デコーダ部14は、浮動小数点レジスタ部40と固定小数点レジスタとを識別可能なレジスタ番号RNおよびアドレスUBAを出力する。固定小数点レジスタ部42の例は、図3に示し、リネーミングレジスタ部38の例は、図4に示す。   Similarly, when the decoded instruction indicates that the decoded instruction uses the fixed-point register in the fixed-point register unit 42 as the data storage destination, the decoder unit 14 converts the fixed-point register to be used into the rename register in the renaming register unit 38. Assign to one of the naming registers. For example, the decoder unit 14 sends the register number RN indicating the fixed-point register used as the data storage destination and the address UBA indicating the assigned renaming register to the register management table 16 and the commit control unit 44 together with the write request WE. Output. The decoder unit 14 outputs a register number RN and an address UBA that can identify the floating point register unit 40 and the fixed point register. An example of the fixed-point register unit 42 is shown in FIG. 3, and an example of the renaming register unit 38 is shown in FIG.

レジスタ管理テーブル16は、浮動小数点レジスタ用のテーブルRMTBL1と固定小数点レジスタ用のテーブルRMTBL2とを有する。レジスタ管理テーブル16は、デコーダ部14から受けるレジスタ番号RN、アドレスUBAおよび書き込み要求WEに応じて、テーブルRMTBL1、RMTBL2のいずれかに格納された情報を更新する。レジスタ管理テーブル16は、リザベーションステーション18からの読み出し要求に応じて、テーブルRMTBL1、RMTBL2に記憶しているアドレスUBAおよびビット値Pをリザベーションステーション18に出力する。レジスタ管理テーブル16は、コミット制御部44からのリセット要求RST1に基づいて、テーブルRMTBL1、RMTBL2のいずれかに登録したアドレスUBAを無効化する。レジスタ管理テーブル16は、浮動小数点レジスタFRとリネーミングレジスタRNFRとの割り当ての関係を保持し、リザベーションステーションRSFLTにより参照されるレジスタ管理部の一例である。レジスタ管理テーブル16の例は、図5に示す。   The register management table 16 includes a floating-point register table RMTBL1 and a fixed-point register table RMTBL2. The register management table 16 updates information stored in one of the tables RMTBL1 and RMTBL2 according to the register number RN, address UBA, and write request WE received from the decoder unit 14. The register management table 16 outputs the address UBA and the bit value P stored in the tables RMTBL1 and RMTBL2 to the reservation station 18 in response to a read request from the reservation station 18. The register management table 16 invalidates the address UBA registered in either of the tables RMTBL1 and RMTBL2 based on the reset request RST1 from the commit control unit 44. The register management table 16 is an example of a register management unit that holds an allocation relationship between the floating-point register FR and the renaming register RNFR and is referred to by the reservation station RSFLT. An example of the register management table 16 is shown in FIG.

リザベーションステーション18は、3つのリザベーションステーションRSFLT、RSFIX、RSMAを含む。リザベーションステーション18は、デコーダ部14が解読した命令(命令情報INS)を保持し、実行可能な命令を順次に出力する実行制御部の一例である。リザベーションステーションRSFLTは、浮動小数点データの演算用の命令に含まれる命令情報INSを保持する。リザベーションステーションRSFIXは、固定小数点データの演算用の命令に含まれる命令情報INSを保持する。また、リザベーションステーションRSMAは、メモリアクセス用の命令に含まれる命令情報INSを保持する。   The reservation station 18 includes three reservation stations RSFLT, RSFIX, and RSMA. The reservation station 18 is an example of an execution control unit that holds instructions (command information INS) decoded by the decoder unit 14 and sequentially outputs executable instructions. The reservation station RSFLT holds instruction information INS included in instructions for calculating floating point data. The reservation station RSFIX holds instruction information INS included in instructions for calculating fixed-point data. The reservation station RSMA holds command information INS included in the memory access command.

リザベーションステーション18は、命令情報INSに基づいて、レジスタ管理テーブル16を参照して得られる浮動小数点レジスタ(または固定小数点レジスタ)を割り当てたリネーミングレジスタを示すアドレスUBAおよびビット値Pを保持する。保持したビット値Pは、命令の実行の完了時にコミット制御部44から受けるリセット要求RST2に基づいて無効化され、実行が完了した命令のアドレスUBAは、ビット値Pの無効化により破棄される。   The reservation station 18 holds an address UBA and a bit value P indicating a renaming register to which a floating point register (or a fixed point register) obtained by referring to the register management table 16 is assigned based on the instruction information INS. The held bit value P is invalidated based on the reset request RST2 received from the commit control unit 44 when the execution of the instruction is completed, and the address UBA of the instruction that has been executed is discarded due to the invalidation of the bit value P.

なお、リザベーションステーション18は、データを格納する浮動小数点レジスタ(または固定小数点レジスタ)を割り当てたリネーミングレジスタのアドレスUBAを、命令情報INSとともにデコーダ部14から受ける。また、リザベーションステーション18は、データを読み出す浮動小数点レジスタ(または固定小数点レジスタ)を割り当てたリネーミングレジスタのアドレスUBAを、レジスタ管理テーブル16から読み出す。以下では、データを格納する浮動小数点レジスタ(または固定小数点レジスタ)は、ディスティネーションレジスタとも称され、データを読み出す浮動小数点レジスタ(または固定小数点レジスタ)は、ソースレジスタとも称される。   The reservation station 18 receives the address UBA of the renaming register to which the floating point register (or fixed point register) for storing data is assigned from the decoder unit 14 together with the instruction information INS. The reservation station 18 also reads from the register management table 16 the address UBA of the renaming register to which the floating-point register (or fixed-point register) from which data is read is assigned. Hereinafter, the floating-point register (or fixed-point register) that stores data is also referred to as a destination register, and the floating-point register (or fixed-point register) that reads data is also referred to as a source register.

リザベーションステーション18は、レジスタ管理テーブル16から読み出したアドレスUBAおよびバイパス制御部24から出力されるバイパス可能信号BPEN(BPEN0−BPEN31)に基づいて、保持した命令の依存関係を判定する。そして、リザベーションステーション18は、保持した命令の中から実行可能な演算命令を浮動小数点演算器26または固定小数点演算器28に順次に投入する。あるいは、リザベーションステーション18は、保持した命令の中から実行可能なロード命令またはストア命令をアクセス要求MREQとしてアドレス生成部20に順次に投入する。ロード命令を示すアクセス要求MREQは、データキャッシュ22からデータを読み出すメモリアクセス命令の一例である。リザベーションステーション18は、命令の実行順序を変更するアウトオブオーダ実行を制御する実行制御部の一例である。   The reservation station 18 determines the dependency relationship of the held instruction based on the address UBA read from the register management table 16 and the bypass enable signal BPEN (BPEN0-BPEN31) output from the bypass control unit 24. Then, the reservation station 18 sequentially inputs an executable operation instruction from the held instructions to the floating point arithmetic unit 26 or the fixed point arithmetic unit 28. Alternatively, the reservation station 18 sequentially inputs an executable load instruction or store instruction from among the held instructions to the address generation unit 20 as an access request MREQ. An access request MREQ indicating a load instruction is an example of a memory access instruction for reading data from the data cache 22. The reservation station 18 is an example of an execution control unit that controls out-of-order execution that changes the execution order of instructions.

リザベーションステーション18は、浮動小数点演算器26の演算により得られるデータがリザルトレジスタ32またはリネーミングレジスタ部36からバイパス可能な場合、制御信号B1FPおよびアドレスB1FPUBAをバイパス制御部24に出力する。制御信号B1FPは、浮動小数点演算器26が演算を開始するタイミングを示す開始信号である。制御信号B1FPの出力タイミングは、バイパス制御部24のバイパス管理テーブルのフラグ領域FLG(図8)をセットするタイミングを示す。制御信号B1FPおよびアドレスB1FPUBAの先頭の”B1”は、制御信号B1FPおよびアドレスB1FPUBAが後述するB1サイクルで生成されることを示す。制御信号B1FPおよびアドレスB1FPUBAを受けた場合のバイパス制御部24の動作は、図11で説明される。   The reservation station 18 outputs the control signal B1FP and the address B1FPUBA to the bypass control unit 24 when the data obtained by the calculation of the floating point arithmetic unit 26 can be bypassed from the result register 32 or the renaming register unit 36. The control signal B1FP is a start signal indicating the timing at which the floating point arithmetic unit 26 starts operation. The output timing of the control signal B1FP indicates the timing at which the flag area FLG (FIG. 8) of the bypass management table of the bypass control unit 24 is set. “B1” at the head of the control signal B1FP and the address B1FPUBA indicates that the control signal B1FP and the address B1FPUBA are generated in a B1 cycle to be described later. The operation of bypass control unit 24 when receiving control signal B1FP and address B1FPUBA will be described with reference to FIG.

アドレス生成部20は、リザベーションステーション18から出力されるアクセス要求MREQに基づいて、データキャッシュ22に出力するアクセス要求MREQCを生成する。アドレス生成部20は、データキャッシュ22から浮動小数点データを読み出すアクセス要求MREQCとともに、制御信号ALDL、ALDHおよびアドレスALDUBAをバイパス制御部24に出力する。制御信号ALDL、ALDHは、データキャッシュ22からデータのロードを開始するタイミングを示す開始信号の一例であり、例えば、アクセス要求MREQCに同期して生成される。制御信号ALDLは下位4バイトのデータをロードする場合に生成され、制御信号ALDHは上位4バイトのデータをロードする場合に生成される。下位4バイトのデータおよび上位4バイトのデータは、データ群の一例である。   The address generation unit 20 generates an access request MREQC to be output to the data cache 22 based on the access request MREQ output from the reservation station 18. The address generation unit 20 outputs the control signals ALDL and ALDH and the address ALDUBA to the bypass control unit 24 together with the access request MREQC for reading the floating point data from the data cache 22. The control signals ALDL and ALDH are an example of a start signal indicating a timing at which loading of data from the data cache 22 is started. For example, the control signals ALDL and ALDH are generated in synchronization with the access request MREQC. The control signal ALDL is generated when lower 4 bytes of data are loaded, and the control signal ALDH is generated when upper 4 bytes of data are loaded. The lower 4 bytes of data and the upper 4 bytes of data are examples of data groups.

制御信号ALDL、ALDHおよびアドレスALDUBAの先頭の”A”は、制御信号ALDL、ALDHおよびアドレスALDUBAが後述するAサイクルで生成されることを示す。アドレスALDUBAの値は、バイパス可能なデータが転送されるリネーミングレジスタRNFR(図4)を示す。アドレスALDUBAのビット数は、64個のリネーミングレジスタRNFRを識別可能な6ビットである。   “A” at the head of the control signals ALDL and ALDH and the address ALDUBA indicates that the control signals ALDL and ALDH and the address ALDUBA are generated in an A cycle described later. The value of the address ALDUBA indicates the renaming register RNFR (FIG. 4) to which bypassable data is transferred. The number of bits of the address ALDUBA is 6 bits that can identify 64 renaming registers RNFR.

アクセス要求MREQに基づいて、データキャッシュ22内の1つのキャッシュラインからデータが読み出し可能な場合、アドレス生成部20は、1つのアクセス要求MREQCを生成する。一方、アクセス要求MREQに基づいて、データキャッシュ22内の2つのキャッシュラインに保持される場合、あるいは、データの一部がデータキャッシュ22に保持されていない場合(キャッシュミス)がある。この場合、アドレス生成部20は、1つのキャッシュラインからデータを読み出すアクセス要求MREQCを生成した後、時間間隔を置いて、他の1つのキャッシュラインからデータを読み出すアクセス要求MREQCを生成する。すなわち、データキャッシュ22から読み出すロードデータのタイミングずれが発生する。   When data can be read from one cache line in the data cache 22 based on the access request MREQ, the address generation unit 20 generates one access request MREQC. On the other hand, there is a case where the data is held in two cache lines in the data cache 22 based on the access request MREQ, or a case where a part of the data is not held in the data cache 22 (cache miss). In this case, the address generation unit 20 generates an access request MREQC for reading data from one cache line, and then generates an access request MREQC for reading data from another cache line at a time interval. That is, there is a timing shift in the load data read from the data cache 22.

例えば、アドレス生成部20は、1つのアクセス要求MREQCにより、リネーミングレジスタ部36へ転送する8バイトのデータをデータキャッシュ22から一度で読み出す場合、制御信号ALDL、ALDHの両方を生成する。アドレス生成部20は、2つのアクセス要求MREQCにより、リネーミングレジスタ部36へ転送する8バイトのデータを2つの4バイトのデータ毎にデータキャッシュ22から読み出す場合、制御信号ALDL、ALDHを互いに異なるタイミングで生成する。   For example, when the 8-byte data to be transferred to the renaming register unit 36 is read from the data cache 22 at a time by one access request MREQC, the address generation unit 20 generates both control signals ALDL and ALDH. When the address generation unit 20 reads out the 8-byte data to be transferred to the renaming register unit 36 from the data cache 22 every two 4-byte data according to the two access requests MREQC, the control signals ALDL and ALDH have different timings from each other. Generate with

例えば、アドレス生成部20は、8バイトのデータを4バイトずつデータキャッシュ22から読み出す場合、上位4バイトのデータを読み出した後、下位4バイトのデータを読み出す。このため、制御信号ALDLが出力されるタイミングで、上位4バイトのデータは、データキャッシュ22から出力されており、ロードレジスタ30およびリネーミングレジスタ部36に順次に転送される。制御信号ALDL、ALDHおよびアドレスALDUBAを受けた場合のバイパス制御部24の動作は、図9で説明する。アドレス生成部20は、リザベーションステーションRSFLTから受けるアクセス要求MREQ(メモリアクセス命令)に基づいてデータキャッシュ22にアクセス要求MREQCを出力するメモリ制御部の一例である。   For example, when the 8-byte data is read from the data cache 22 in units of 4 bytes, the address generation unit 20 reads the upper 4 bytes and then the lower 4 bytes. Therefore, at the timing when the control signal ALDL is output, the upper 4 bytes of data are output from the data cache 22 and sequentially transferred to the load register 30 and the renaming register unit 36. The operation of the bypass control unit 24 when receiving the control signals ALDL and ALDH and the address ALDUBA will be described with reference to FIG. The address generation unit 20 is an example of a memory control unit that outputs an access request MREQC to the data cache 22 based on an access request MREQ (memory access instruction) received from the reservation station RSFLT.

例えば、データキャッシュ22は、二次データキャッシュまたはメインメモリ等から転送されるデータを格納する一次データキャッシュである。データキャッシュ22は、アドレス生成部20からのアクセス要求MREQCによりアクセスされる。データキャッシュ22は、アクセス要求MREQCに対応するデータを保持している場合(キャッシュヒット)、保持しているデータをロードレジスタ30に出力する。データキャッシュ22は、アクセス要求MREQCに対応するデータを保持していない場合(キャッシュミス)、二次データキャッシュまたはメインメモリ等からデータを読み出し、読み出したデータをデータキャッシュ22の記憶領域に格納する。   For example, the data cache 22 is a primary data cache that stores data transferred from a secondary data cache or a main memory. The data cache 22 is accessed by an access request MREQC from the address generation unit 20. When the data cache 22 holds data corresponding to the access request MREQC (cache hit), the data cache 22 outputs the held data to the load register 30. When the data cache 22 does not hold data corresponding to the access request MREQC (cache miss), the data cache 22 reads data from the secondary data cache, the main memory, or the like, and stores the read data in the storage area of the data cache 22.

また、データキャッシュ22は、キャッシュヒット時に、データをロードレジスタ30に出力するサイクルで完了信号CEをバイパス制御部24に出力する。データキャッシュ22は、キャッシュミス時に、完了信号CEの出力を禁止する。   Further, the data cache 22 outputs a completion signal CE to the bypass control unit 24 in a cycle of outputting data to the load register 30 when a cache hit occurs. The data cache 22 prohibits the output of the completion signal CE when a cache miss occurs.

バイパス制御部24は、リネーミングレジスタ部36が有するリネーミングレジスタ毎に、浮動小数点データのバイパスが可能か否かを示す情報を保持するバイパス管理テーブルBPTBLを有する。バイパス制御部24は、バイパス管理テーブルBPTBLが保持する情報に基づいて、バイパス可能信号BPEN(BPEN0−BPEN31)を出力する。また、バイパス制御部24は、リネーミングレジスタ部38のリネーミングレジスタ毎に、固定小数点データのバイパスが可能か否かを示す情報を保持する図示しないバイパス管理テーブルを有する。   The bypass control unit 24 includes a bypass management table BPTBL that holds information indicating whether or not the floating-point data can be bypassed for each renaming register included in the renaming register unit 36. The bypass control unit 24 outputs a bypass enable signal BPEN (BPEN0-BPEN31) based on the information held in the bypass management table BPTBL. Further, the bypass control unit 24 has a bypass management table (not shown) that holds information indicating whether or not fixed-point data can be bypassed for each renaming register of the renaming register unit 38.

バイパス制御部24は、制御信号B1FP、ALDL、ALDHに基づいて、アドレスB1FPUBA、ALDUBAに対応するバイパス可能信号BPEN(BPEN0−BPEN31のいずれか)を有効レベルに設定する。バイパス制御部24は、制御信号WCMTに基づいて、アドレスWCMTUBAに対応するバイパス可能信号BPENを無効レベルに設定する。バイパス制御部24は、完了信号CEに基づいて、キャッシュミスしたアクセス命令MREQCに対応するアドレスALDUBAが示すバイパス可能信号BPENを無効レベルに設定する。バイパス制御部24の例は、図7および図8に示される。   The bypass control unit 24 sets the bypass enable signal BPEN (any one of BPEN0 to BPEN31) corresponding to the addresses B1FPUBA and ALDUBA to an effective level based on the control signals B1FP, ALDL, and ALDH. The bypass control unit 24 sets the bypass enable signal BPEN corresponding to the address WCMTUBA to an invalid level based on the control signal WCMT. Based on the completion signal CE, the bypass control unit 24 sets the bypass enable signal BPEN indicated by the address ALDUBA corresponding to the cache-missed access instruction MREQC to an invalid level. Examples of the bypass control unit 24 are shown in FIGS. 7 and 8.

浮動小数点演算器26は、リザベーションステーションRSFLTから転送される命令に基づいて演算を実行し、実行結果をリザルトレジスタ32に格納する。浮動小数点演算器26は、リザベーションステーションRSFLTから受ける演算の実行を示す演算命令に基づいて演算を実行する演算実行部の一例である。浮動小数点演算器26による演算は、浮動小数点レジスタ部40、リネーミングレジスタ部36、リザルトレジスタ32およびロードレジスタ30の少なくともいずれかに格納されたデータを用いて実行される。   The floating point arithmetic unit 26 executes an operation based on the instruction transferred from the reservation station RSFLT and stores the execution result in the result register 32. The floating point arithmetic unit 26 is an example of an operation execution unit that executes an operation based on an operation instruction indicating execution of an operation received from the reservation station RSFLT. The calculation by the floating point arithmetic unit 26 is executed using data stored in at least one of the floating point register unit 40, the renaming register unit 36, the result register 32, and the load register 30.

固定小数点演算器28は、リザベーションステーションRSFIXから転送される命令に基づいて演算を実行し、実行結果をリザルトレジスタ34に格納する。固定小数点演算器28による演算は、固定小数点レジスタ部42、リネーミングレジスタ部38、リザルトレジスタ34およびロードレジスタ30の少なくともいずれかに格納されたデータを用いて実行される。   The fixed point arithmetic unit 28 performs an operation based on an instruction transferred from the reservation station RSFIX, and stores the execution result in the result register 34. The calculation by the fixed-point calculator 28 is executed using data stored in at least one of the fixed-point register unit 42, the renaming register unit 38, the result register 34, and the load register 30.

ロードレジスタ30は、ロード命令の実行に基づいてデータキャッシュ22から読み出されるデータを一時的に保持し、保持したデータをリネーミングレジスタ部36またはリネーミングレジスタ部38にデータ線LDDを介して転送する。ロードレジスタ30は、データキャッシュ22とリネーミングレジスタRNFR(図4)との間に配置され、データキャッシュ22から読み出されるデータをリネーミングレジスタRNFRに転送する前に一時的に保持する第3レジスタの一例である。   The load register 30 temporarily holds data read from the data cache 22 based on the execution of the load instruction, and transfers the held data to the renaming register unit 36 or the renaming register unit 38 via the data line LDD. . The load register 30 is arranged between the data cache 22 and the renaming register RNFR (FIG. 4), and is a third register that temporarily holds data read from the data cache 22 before transferring it to the renaming register RNFR. It is an example.

リザルトレジスタ32は、浮動小数点演算器26による演算結果を一時的に保持し、保持したデータをリネーミングレジスタ部36にデータ線EXD1を介して転送する。リザルトレジスタ34は、固定小数点演算器28による演算結果を一時的に保持し、保持したデータをリネーミングレジスタ部38にデータ線EXD2を介して転送する。   The result register 32 temporarily holds the calculation result by the floating point calculator 26 and transfers the held data to the renaming register unit 36 via the data line EXD1. The result register 34 temporarily holds the calculation result by the fixed-point calculator 28 and transfers the held data to the renaming register unit 38 via the data line EXD2.

例えば、リネーミングレジスタ部36は、浮動小数点演算器26が実行した演算により得られた浮動小数点データまたはデータキャッシュから転送される浮動小数点データを一次的に保持する32個のリネーミングレジスタRNFR(図4)を有する。各リネーミングレジスタRNFRに保持されたデータは、命令の完了に基づいてコミット制御部44が出力する読み出し要求RCMT1に応答して、浮動小数点レジスタ部40に転送される。リネーミングレジスタRNFRは、浮動小数点レジスタFR(図3)に対応して割り当てられ、演算命令またはメモリアクセス命令の実行により得られるデータを浮動小数点レジスタFRに転送する前に一時的に保持する第2レジスタの一例である。   For example, the renaming register unit 36 has 32 renaming registers RNFR that temporarily hold floating point data obtained by an operation executed by the floating point arithmetic unit 26 or floating point data transferred from a data cache (see FIG. 4). The data held in each renaming register RNFR is transferred to the floating point register unit 40 in response to a read request RCMT1 output from the commit control unit 44 based on the completion of the instruction. The renaming register RNFR is assigned corresponding to the floating-point register FR (FIG. 3), and temporarily holds the data obtained by executing the operation instruction or the memory access instruction before transferring it to the floating-point register FR. It is an example of a register.

例えば、リネーミングレジスタ部38は、固定小数点演算器28が実行した演算により得られた固定小数点データまたはデータキャッシュから転送される固定小数点データを一次的に保持する32個のリネーミングレジスタRNR(図4)を有する。各リネーミングレジスタRNRに保持されたデータは、命令の完了に基づいてコミット制御部44が出力する読み出し要求RCMT2に応答して、固定小数点レジスタ部42に転送される。リネーミングレジスタ部36、38の例は、図4に示す。   For example, the renaming register unit 38 temporarily stores the 32 renaming registers RNR (see FIG. 5) that hold the fixed-point data obtained by the calculation executed by the fixed-point calculator 28 or the fixed-point data transferred from the data cache. 4). The data held in each renaming register RNR is transferred to the fixed-point register unit 42 in response to a read request RCMT2 output from the commit control unit 44 based on the completion of the instruction. An example of the renaming register units 36 and 38 is shown in FIG.

例えば、浮動小数点レジスタ部40は、浮動小数点演算器26が実行する演算により得られた浮動小数点データまたはデータキャッシュ22から転送される浮動小数点データを保持する64個の浮動小数点レジスタFR(図3)を有する。浮動小数点レジスタFRは、浮動小数点演算器26が実行する演算に使用するデータを保持する第1レジスタの一例である。浮動小数点レジスタ部40は、命令の完了に基づいてコミット制御部44が出力する書き込み要求WCMT1に応答して、リネーミングレジスタ部36から転送されるデータを記憶する。   For example, the floating-point register unit 40 has 64 floating-point registers FR (FIG. 3) that hold floating-point data obtained by an operation executed by the floating-point calculator 26 or floating-point data transferred from the data cache 22. Have The floating point register FR is an example of a first register that holds data used for an operation executed by the floating point arithmetic unit 26. The floating point register unit 40 stores the data transferred from the renaming register unit 36 in response to the write request WCMT1 output from the commit control unit 44 based on the completion of the instruction.

例えば、固定小数点レジスタ部42は、固定小数点演算器28が実行する演算により得られた固定小数点データまたはデータキャッシュ22から転送される固定小数点データを保持する32個の固定小数点レジスタR(図3)を有する。固定小数点レジスタ部42は、命令の完了に基づいてコミット制御部44が出力する書き込み要求WCMT2に応答して、リネーミングレジスタ部38から転送されるデータを記憶する。浮動小数点レジスタ部40および固定小数点レジスタ部42の例は、図3に示す。   For example, the fixed-point register unit 42 has 32 fixed-point registers R that hold fixed-point data obtained by the operation executed by the fixed-point calculator 28 or fixed-point data transferred from the data cache 22 (FIG. 3). Have The fixed-point register unit 42 stores data transferred from the renaming register unit 38 in response to the write request WCMT2 output from the commit control unit 44 based on the completion of the instruction. Examples of the floating point register unit 40 and the fixed point register unit 42 are shown in FIG.

コミット制御部44は、命令の実行の完了に基づいて、レジスタ管理テーブル16にリセット要求RST1を出力し、リザベーションステーション18にリセット要求RST2を出力する。また、コミット制御部44は、命令の実行の完了に基づいて、バイパス制御部24に制御信号WCMTおよびアドレスWCMTUBAを出力する。コミット制御部44は、デコーダ部14が命令の解読に基づいて出力するレジスタ番号RNおよびアドレスUBAを命令毎に保持する。コミット制御部44は、保持したアドレスUBAのうち、実行が完了した命令に対応するアドレスUBAが示すリネーミングレジスタRNFRからデータを読み出す読み出し要求RCMT1(またはRCMT2)を出力する。コミット制御部44は、保持したレジスタ番号RNのうち、実行が完了した命令に対応するレジスタ番号RNが示すディスティネーションレジスタにデータを書き込む書き込み要求WCMT1(またはWCMT2)を出力する。   The commit control unit 44 outputs a reset request RST1 to the register management table 16 and outputs a reset request RST2 to the reservation station 18 based on the completion of execution of the instruction. Further, the commit control unit 44 outputs a control signal WCMT and an address WCMTUBA to the bypass control unit 24 based on completion of execution of the instruction. The commit control unit 44 holds the register number RN and the address UBA output by the decoder unit 14 based on the decoding of the instruction for each instruction. The commit control unit 44 outputs a read request RCMT1 (or RCMT2) for reading data from the renaming register RNFR indicated by the address UBA corresponding to the instruction that has been executed among the held addresses UBA. The commit control unit 44 outputs a write request WCMT1 (or WCMT2) for writing data to the destination register indicated by the register number RN corresponding to the instruction that has been executed among the held register numbers RN.

図3は、図2に示す浮動小数点レジスタ部40および固定小数点レジスタ部42の例を示す。浮動小数点レジスタ部40は、倍精度(8バイト)の浮動小数点データを格納する64個の浮動小数点レジスタFR(FR0−FR63)を有する。また、浮動小数点レジスタ部40は、浮動小数点レジスタFRへのデータの書き込みを制御する書き込み制御部WCNT1および浮動小数点レジスタFRからのデータの読み出しを制御する読み出し制御部RCNT1を有する。   FIG. 3 shows an example of the floating point register unit 40 and the fixed point register unit 42 shown in FIG. The floating point register unit 40 includes 64 floating point registers FR (FR0 to FR63) for storing double precision (8 bytes) floating point data. The floating point register unit 40 includes a write control unit WCNT1 that controls writing of data to the floating point register FR and a read control unit RCNT1 that controls reading of data from the floating point register FR.

各浮動小数点レジスタFRは、8バイトのダブルデータDD(倍精度の浮動小数点データ)または4バイトの2つのシングルデータSD(単精度の浮動小数点データ)を記憶する8バイトの記憶領域を有している。すなわち、各浮動小数点レジスタFRは、2つの単精度(4バイト)の浮動小数点データを格納可能である。図3は、浮動小数点レジスタFR0にダブルデータDDが格納され、浮動小数点レジスタFR1に2つのシングルデータSDが格納された状態を示す。  Each floating point register FR has an 8-byte storage area for storing 8-byte double data DD (double-precision floating-point data) or 4-byte two single data SD (single-precision floating-point data). Yes. That is, each floating-point register FR can store two single-precision (4-byte) floating-point data. FIG. 3 shows a state in which double data DD is stored in the floating-point register FR0 and two single data SD are stored in the floating-point register FR1.

1つの浮動小数点レジスタFRに2つのシングルデータSDを格納することで、1つの浮動小数点レジスタFRの番号により2つのシングルデータSDを使用することができる。これにより、2つの浮動小数点レジスタFRのそれぞれにシングルデータSDを格納する場合に比べて、単精度浮動小数点データの演算性能は向上する。以降、2つのシングルデータSDを格納する浮動小数点レジスタFRは、倍幅単精度浮動小数点レジスタとも称され、倍幅単精度浮動小数点レジスタに格納されるデータは、倍幅単精度浮動小数点データとも称される。   By storing two single data SD in one floating point register FR, two single data SD can be used according to the number of one floating point register FR. Thereby, the calculation performance of single-precision floating-point data is improved as compared with the case where single data SD is stored in each of the two floating-point registers FR. Hereinafter, the floating-point register FR that stores two single data SD is also referred to as a double-width single-precision floating-point register, and the data stored in the double-width single-precision floating-point register is also referred to as double-width single-precision floating-point data. Is done.

固定小数点レジスタ部42は、8バイトの固定小数点データを格納する32個の固定小数点レジスタR(R0−R31)を有する。また、固定小数点レジスタ部42は、固定小数点レジスタRへのデータの書き込みを制御する書き込み制御部WCNT2および固定小数点レジスタRからのデータの読み出しを制御する読み出し制御部RCNT2を有する。各固定小数点レジスタRは、8バイトのダブルデータDDを記憶する8バイトの記憶領域を有している。図3は、固定小数点レジスタR1にダブルデータDDが格納された状態を示す。   The fixed-point register unit 42 has 32 fixed-point registers R (R0 to R31) that store 8-byte fixed-point data. The fixed-point register unit 42 includes a write control unit WCNT2 that controls writing of data to the fixed-point register R and a read control unit RCNT2 that controls reading of data from the fixed-point register R. Each fixed-point register R has an 8-byte storage area for storing 8-byte double data DD. FIG. 3 shows a state in which double data DD is stored in the fixed-point register R1.

図4は、図2に示すリネーミングレジスタ部36、38の例を示す。リネーミングレジスタ部36は、図3に示す浮動小数点レジスタFRのいずれかが割り当てられる32個のリネーミングレジスタRNFR(RNFR0−RNFR31)、書き込み制御部WCNT3および読み出し制御部RCNT3を有する。各リネーミングレジスタRNFRは、2つの4バイトの記憶領域を含む8バイトの記憶領域を有する。書き込み制御部WCNT3は、演算命令の実行時にリザルトレジスタ32から転送されるデータEXD1またはロード命令の実行時にロードレジスタ30から転送されるデータLDDのいずれかを選択するセレクタSEL3を有する。例えば、書き込み制御部WCNT3によりデータが書き込まれるリネーミングレジスタRNFRは、レジスタ管理テーブル16に格納された情報に基づいてリザベーションステーション18が指定する。   FIG. 4 shows an example of the renaming register units 36 and 38 shown in FIG. The renaming register unit 36 includes 32 renaming registers RNFR (RNFR0 to RNFR31) to which any of the floating-point registers FR illustrated in FIG. 3 is assigned, a write control unit WCNT3, and a read control unit RCNT3. Each renaming register RNFR has an 8-byte storage area including two 4-byte storage areas. The write control unit WCNT3 includes a selector SEL3 that selects either the data EXD1 transferred from the result register 32 when the arithmetic instruction is executed or the data LDD transferred from the load register 30 when the load instruction is executed. For example, the renaming register RNFR into which data is written by the write control unit WCNT3 is specified by the reservation station 18 based on information stored in the register management table 16.

セレクタSEL3は、各リネーミングレジスタRNFRの上位4バイトにデータを格納する場合、書き込み制御信号WE1Hおよび4バイト(すなわち、32ビット)のデータEXD1HをリネーミングレジスタRNFRに出力する。セレクタSEL3は、リネーミングレジスタRNFRの下位4バイトにデータを格納する場合、書き込み制御信号WE1Lおよび4バイト(すなわち、32ビット)のデータEXD1LをリネーミングレジスタRNFRに出力する。例えば、書き込み制御信号WE1H、WE1Lは、書き込み制御部WCNT3がデータEXD1、LDD(各々64ビット)の受信に基づいて生成する。   When the selector SEL3 stores data in the upper 4 bytes of each renaming register RNFR, the selector SEL3 outputs the write control signal WE1H and 4 bytes (that is, 32 bits) of data EXD1H to the renaming register RNFR. When the selector SEL3 stores data in the lower 4 bytes of the renaming register RNFR, the selector SEL3 outputs the write control signal WE1L and 4 bytes (that is, 32 bits) of data EXD1L to the renaming register RNFR. For example, the write control signals WE1H and WE1L are generated based on reception of data EXD1 and LDD (64 bits each) by the write control unit WCNT3.

浮動小数点演算器26からリザルトレジスタ32に転送されるデータおよびリザルトレジスタ32からリネーミングレジスタ部36に転送されるデータEXD1は、8バイトである。このため、書き込み制御部WCNT3は、データEXD1を受けた場合、書き込み制御信号WE1H、WE1Lを生成し、8バイトのデータEXD1H、EXD1LをリネーミングレジスタRNFRに格納する。   Data transferred from the floating point arithmetic unit 26 to the result register 32 and data EXD1 transferred from the result register 32 to the renaming register unit 36 are 8 bytes. Therefore, when receiving the data EXD1, the write control unit WCNT3 generates the write control signals WE1H and WE1L, and stores the 8-byte data EXD1H and EXD1L in the renaming register RNFR.

ロード命令に基づいてロードレジスタ30から転送されるデータLDDが倍精度浮動小数点データ(8バイト)の場合、書き込み制御部WCNT3は、書き込み制御信号WE1H、WE1Lを生成する。これにより、8バイトのデータEXD1H、EXD1L(すなわち、倍精度浮動小数点データ)がリネーミングレジスタRNFRに格納される。ロード命令に基づいてロードレジスタ30から転送されるデータLDDが倍幅単精度浮動小数点データ(8バイト)の場合も、書き込み制御部WCNT3は、書き込み制御信号WE1H、WE1Lを生成する。   When the data LDD transferred from the load register 30 based on the load instruction is double precision floating point data (8 bytes), the write control unit WCNT3 generates the write control signals WE1H and WE1L. As a result, 8-byte data EXD1H and EXD1L (that is, double-precision floating-point data) are stored in the renaming register RNFR. Even when the data LDD transferred from the load register 30 based on the load instruction is double-width single precision floating point data (8 bytes), the write control unit WCNT3 generates the write control signals WE1H and WE1L.

一方、ロード命令に基づいてロードレジスタ30から転送されるデータLDDが倍幅単精度浮動小数点データの上位4バイトの場合、書き込み制御部WCNT3は、書き込み制御信号WE1Hを生成する。これにより、4バイトのデータEXD1H(すなわち、倍幅単精度浮動小数点データの上位4バイト)がリネーミングレジスタRNFRの上位4バイトの領域に格納される。同様に、ロード命令に基づいてロードレジスタ30から転送されるデータLDDが倍幅単精度浮動小数点データの下位4バイトの場合、書き込み制御部WCNT3は、書き込み制御信号WE1Lを生成する。これにより、4バイトのデータEXD1L(すなわち、倍幅単精度浮動小数点データの下位4バイト)がリネーミングレジスタRNFRの下位4バイトの領域に格納される。   On the other hand, when the data LDD transferred from the load register 30 based on the load instruction is the upper 4 bytes of the double-width single precision floating point data, the write control unit WCNT3 generates the write control signal WE1H. As a result, 4-byte data EXD1H (that is, the upper 4 bytes of double-width single-precision floating-point data) is stored in the upper 4 bytes of the renaming register RNFR. Similarly, when the data LDD transferred from the load register 30 based on the load instruction is the lower 4 bytes of the double-width single precision floating point data, the write control unit WCNT3 generates the write control signal WE1L. As a result, 4-byte data EXD1L (that is, the lower 4 bytes of the double-width single-precision floating-point data) is stored in the lower 4 bytes of the renaming register RNFR.

ここで、倍幅単精度浮動小数点データは、データキャッシュ22の1つのキャッシュラインに含まれる場合、一度で転送され、2つのキャッシュラインに跨って含まれる場合、上位4バイトと下位4バイトに分けて順次に転送される。   Here, when double-width single-precision floating-point data is included in one cache line of the data cache 22, it is transferred at once, and when it is included across two cache lines, it is divided into upper 4 bytes and lower 4 bytes. Are transferred sequentially.

読み出し制御部RCNT3は、コミット制御部44から出力される読み出し要求RCMT1に基づいて、リネーミングレジスタRNFR0−RNFR31のいずれかからデータを読み出し、読み出したデータを浮動小数点レジスタ部40に出力する。例えば、読み出し制御部RCNT3によりデータが読み出されるリネーミングレジスタRNFRは、レジスタ管理テーブル16に格納された情報に基づいてリザベーションステーション18が指定する。   The read control unit RCNT3 reads data from one of the renaming registers RNFR0 to RNFR31 based on the read request RCMT1 output from the commit control unit 44, and outputs the read data to the floating point register unit 40. For example, the renaming register RNFR from which data is read by the read control unit RCNT3 is designated by the reservation station 18 based on information stored in the register management table 16.

リネーミングレジスタ部38は、図3に示す固定小数点レジスタRのいずれかが割り当てられる32個のリネーミングレジスタRNR(RNR0−RNR31)、書き込み制御部WCNT4および読み出し制御部RCNT4を有する。各リネーミングレジスタRNRは、8バイトの記憶領域を有する。書き込み制御部WCNT4は、演算命令の実行時にリザルトレジスタ34から出力されるデータEXD2またはロード命令の実行時にロードレジスタ30から出力されるデータLDDのいずれかを選択するセレクタSEL4を有する。例えば、書き込み制御部WCNT4によりデータが書き込まれるリネーミングレジスタRNRは、リザベーションステーション18により指定される。   The renaming register unit 38 includes 32 renaming registers RNR (RNR0 to RNR31) to which any of the fixed-point registers R shown in FIG. 3 is assigned, a write control unit WCNT4, and a read control unit RCNT4. Each renaming register RNR has an 8-byte storage area. The write control unit WCNT4 includes a selector SEL4 that selects either the data EXD2 output from the result register 34 when the arithmetic instruction is executed or the data LDD output from the load register 30 when the load instruction is executed. For example, the renaming register RNR into which data is written by the write control unit WCNT4 is designated by the reservation station 18.

セレクタSEL4は、リネーミングレジスタRNRにデータを格納する場合、書き込み制御信号WE2および8バイト(64ビット)のデータEXD2をリネーミングレジスタRNRに出力する。例えば、書き込み制御信号WE2は、書き込み制御部WCNT4がデータEXD2、LDD(各々64ビット)の受信に基づいて生成する。読み出し制御部RCNT3は、コミット制御部44から出力される読み出し要求RCMT2に基づいて、リネーミングレジスタRNR0−RNR31のいずれかからデータを読み出し、読み出したデータを固定小数点レジスタ部42に出力する。例えば、読み出し制御部RCNT4によりデータが読み出されるリネーミングレジスタRNRは、レジスタ管理テーブル16に格納された情報に基づいてリザベーションステーション18が指定する。   When the selector SEL4 stores data in the renaming register RNR, the selector SEL4 outputs the write control signal WE2 and 8-byte (64-bit) data EXD2 to the renaming register RNR. For example, the write control signal WE2 is generated by the write control unit WCNT4 based on reception of data EXD2 and LDD (each 64 bits). The read control unit RCNT3 reads data from one of the renaming registers RNR0 to RNR31 based on the read request RCMT2 output from the commit control unit 44, and outputs the read data to the fixed-point register unit 42. For example, the renaming register RNR from which data is read by the read control unit RCNT4 is designated by the reservation station 18 based on information stored in the register management table 16.

図4では、セレクタSEL3の回路規模が、セレクタSEL4の回路規模より大きく見える。しかしながら、セレクタSEL3が出力するデータEXD1H、EXD1Lの幅の合計は64ビットであり、セレクタSEL4が出力するデータEXD2の幅と同じである。このため、上位4バイトのデータと下位4バイトのデータとがリネーミングレジスタRNFRにそれぞれ格納される場合の書き込み制御部WCNT3の回路規模を、書き込み制御部WCNT4の回路規模と同等にすることができる。例えば、書き込み制御部WCNT4に対して追加される書き込み制御部WCNT3の要素は、書き込み制御信号WE1H、WE1Lを生成する論理回路と、書き込み制御信号WE1Hの配線領域である。したがって、リネーミングレジスタ部36の回路規模は、既存のリネーミングレジスタ部およびリネーミングレジスタ部38の回路規模と同等である。   In FIG. 4, the circuit scale of the selector SEL3 appears larger than the circuit scale of the selector SEL4. However, the total width of the data EXD1H and EXD1L output from the selector SEL3 is 64 bits, which is the same as the width of the data EXD2 output from the selector SEL4. Therefore, the circuit scale of the write control unit WCNT3 when the upper 4 bytes of data and the lower 4 bytes of data are respectively stored in the renaming register RNFR can be made equal to the circuit scale of the write control unit WCNT4. . For example, the elements of the write control unit WCNT3 added to the write control unit WCNT4 are a logic circuit that generates the write control signals WE1H and WE1L and a wiring region for the write control signal WE1H. Therefore, the circuit scale of the renaming register section 36 is equivalent to the circuit scale of the existing renaming register section and the renaming register section 38.

倍幅単精度浮動小数点データが上位4バイトと下位4バイトに分けてデータキャッシュ22から読み出される場合、下位4バイトのデータがリネーミングレジスタRNFRに格納された時点で、8バイトのデータがリネーミングレジスタRNFR内に揃う。すなわち、上位4バイトと下位4バイトに分けて転送される倍幅単精度浮動小数点データは、リネーミングレジスタ部36で待ち合わされ、結合される。図4に示すリネーミングレジスタ部36を用いない場合、上位4バイトと下位4バイトに分けて転送される倍幅単精度浮動小数点データを結合する新たなバッファ回路等が、例えば、データキャッシュ22の出力に接続される。上述したように、リネーミングレジスタ部36の回路規模は、既存のリネーミングレジスタ部の回路規模と同等である。このため、リネーミングレジスタ部36を有する演算処理装置OPD2は、上位4バイトと下位4バイトとのデータ群に分けて転送される倍幅単精度浮動小数点データを結合する新たなバッファ回路を有する演算処理装置に比べて、回路規模を削減することができる。   When double-width single-precision floating-point data is read from the data cache 22 separately in the upper 4 bytes and the lower 4 bytes, when the lower 4 bytes are stored in the renaming register RNFR, the 8-byte data is renamed. Aligned in register RNFR. That is, double-width single-precision floating-point data transferred separately into upper 4 bytes and lower 4 bytes are waited at the renaming register unit 36 and combined. When the renaming register unit 36 shown in FIG. 4 is not used, a new buffer circuit or the like that combines double-width single-precision floating-point data transferred separately in the upper 4 bytes and the lower 4 bytes is provided in the data cache 22, for example. Connected to output. As described above, the circuit scale of the renaming register unit 36 is equal to the circuit scale of the existing renaming register unit. For this reason, the arithmetic processing unit OPD2 having the renaming register unit 36 has a new buffer circuit that combines double-width single-precision floating-point data that is transferred divided into data groups of upper 4 bytes and lower 4 bytes. Compared with the processing apparatus, the circuit scale can be reduced.

図5は、図2に示すレジスタ管理テーブル16の例を示す。レジスタ管理テーブル16のテーブルRMTBL1は、浮動小数点レジスタ部40の64個の浮動小数点レジスタFR0−FR63のそれぞれに対応してビット値PとアドレスUBAとを格納する64個の領域を有する。図5において、テーブルRMTBL1の左端に示す数字は、浮動小数点レジスタFRの番号(すなわち、レジスタ番号RN)を示す。   FIG. 5 shows an example of the register management table 16 shown in FIG. The table RMTBL1 of the register management table 16 has 64 areas for storing the bit value P and the address UBA corresponding to each of the 64 floating point registers FR0 to FR63 of the floating point register unit 40. In FIG. 5, the number shown at the left end of the table RMTBL1 indicates the number of the floating point register FR (that is, the register number RN).

レジスタ管理テーブル16は、デコーダ部14からライト要求WEとともに浮動小数点レジスタFRを示すレジスタ番号RNおよびアドレスUBAを受けた場合、テーブルRMTBL1におけるレジスタ番号RNに対応する領域にアドレスUBAを格納する。アドレスUBAは、浮動小数点レジスタFRを割り当てるリネーミングレジスタRNFRを示す。そして、レジスタ管理テーブル16は、アドレスUBAを格納した領域のビット値Pをセットする。ビット値Pは、アドレスUBAが有効か無効かを示す。これにより、デコーダ部14が決定した浮動小数点レジスタFRとリネーミングレジスタRNFRとの対応付けが、テーブルRMTBL1に保持される。   When the register management table 16 receives the register number RN indicating the floating point register FR and the address UBA together with the write request WE from the decoder unit 14, the register management table 16 stores the address UBA in an area corresponding to the register number RN in the table RMTBL1. The address UBA indicates a renaming register RNFR to which the floating point register FR is allocated. Then, the register management table 16 sets the bit value P of the area storing the address UBA. The bit value P indicates whether the address UBA is valid or invalid. As a result, the correspondence between the floating point register FR and the renaming register RNFR determined by the decoder unit 14 is held in the table RMTBL1.

レジスタ管理テーブル16は、デコーダ部14からテーブルRMTBL1を参照する読み出し要求を受けた場合、読み出し要求に含まれるレジスタ番号RNに対応する領域からビット値PとアドレスUBAとを読み出す。そして、レジスタ管理テーブル16は、読み出したビット値PとアドレスUBAとをリザベーションステーション18に出力する。   When receiving a read request referring to the table RMTBL1 from the decoder unit 14, the register management table 16 reads the bit value P and the address UBA from the area corresponding to the register number RN included in the read request. Then, the register management table 16 outputs the read bit value P and address UBA to the reservation station 18.

レジスタ管理テーブル16のテーブルRMTBL2は、固定小数点レジスタ部42の32個の固定小数点レジスタR0−R31のそれぞれに対応してビット値PとアドレスUBAとを格納する32個の領域を有する。図5において、テーブルRMTBL2の左端に示す数字は、固定小数点レジスタRの番号(すなわち、レジスタ番号RN)を示す。   The table RMTBL2 of the register management table 16 has 32 areas for storing the bit value P and the address UBA corresponding to each of the 32 fixed-point registers R0 to R31 of the fixed-point register unit 42. In FIG. 5, the number shown at the left end of the table RMTBL2 indicates the number of the fixed-point register R (that is, the register number RN).

レジスタ管理テーブル16は、テーブルRMTBL1と同様に、テーブルRMTBL2におけるレジスタ番号Rに対応する領域にアドレスUBAを格納し、ビット値Pをセットする。アドレスUBAは、固定小数点レジスタRを割り当てるリネーミングレジスタRNRを示す。これにより、デコーダ部14が決定した固定小数点レジスタRとリネーミングレジスタRNRとの対応付けが、テーブルRMTBL2に保持される。また、レジスタ管理テーブル16は、テーブルRMTBL1と同様に、リザベーションステーション18からの読み出し要求に含まれるレジスタ番号Rに対応する領域からビット値PとアドレスUBAとを読み出し、リザベーションステーション18に出力する。   Similarly to the table RMTBL1, the register management table 16 stores the address UBA in the area corresponding to the register number R in the table RMTBL2, and sets the bit value P. The address UBA indicates a renaming register RNR to which the fixed point register R is assigned. Thereby, the correspondence between the fixed-point register R and the renaming register RNR determined by the decoder unit 14 is held in the table RMTBL2. Similarly to the table RMTBL 1, the register management table 16 reads the bit value P and the address UBA from the area corresponding to the register number R included in the read request from the reservation station 18, and outputs it to the reservation station 18.

図6は、図2に示すデータキャッシュ22からデータをロードする例を示す。例えば、データキャッシュ22は、128バイトの幅を有する64個のキャッシュラインを有する。図6に示す”70”および”80”等は、16進数であり、連続する2つのキャッシュラインの先頭アドレスの下位8ビットを示す。16進数のアドレスの右側に示す括弧内の数値は、アドレスを2進数で表した値である。以下では、図6に示す連続する2つのキャッシュラインにデータが続けて格納されているとする。   FIG. 6 shows an example of loading data from the data cache 22 shown in FIG. For example, the data cache 22 has 64 cache lines having a width of 128 bytes. “70”, “80”, and the like shown in FIG. 6 are hexadecimal numbers and indicate the lower 8 bits of the head addresses of two consecutive cache lines. A numerical value in parentheses on the right side of the hexadecimal address is a value representing the address in binary. In the following, it is assumed that data is continuously stored in two consecutive cache lines shown in FIG.

例えば、倍精度浮動小数点データ(8バイト)をロードするロード命令では、アドレスの下位3ビットが”000”に設定され、倍幅単精度浮動小数点データをロードするロード命令では、アドレスの下位2ビットが”00”に設定される。このため、データキャッシュ22からロードされる倍精度浮動小数点データは、キャッシュラインの境界を跨がない(図6(a))。データキャッシュ22からロードされる倍幅単精度浮動小数点データも、先頭アドレスの下位3ビットが”000”の場合、キャッシュラインの境界を跨がない(図6(b))。しかしながら、先頭アドレスの下位3ビットが”100”の場合、データキャッシュ22からロードされる倍幅単精度浮動小数点データは、キャッシュラインの境界を跨ぐ場合がある(図6(c))。なお、図6(d)は、先頭アドレスの下位3ビットが”100”の場合で、キャッシュラインの境界を跨がない例を示す。   For example, in a load instruction that loads double precision floating point data (8 bytes), the lower 3 bits of the address are set to “000”, and in a load instruction that loads double width single precision floating point data, the lower 2 bits of the address Is set to “00”. For this reason, the double-precision floating point data loaded from the data cache 22 does not straddle the boundary of the cache line (FIG. 6A). The double-width single-precision floating point data loaded from the data cache 22 does not cross the boundary of the cache line when the lower 3 bits of the head address are “000” (FIG. 6B). However, when the lower 3 bits of the head address are “100”, the double-width single-precision floating point data loaded from the data cache 22 may straddle the boundary of the cache line (FIG. 6C). FIG. 6D shows an example in which the lower 3 bits of the head address are “100” and the boundary of the cache line is not straddled.

倍幅単精度浮動小数点データをロードするロード命令において、キャッシュラインの境界を跨ぐ先頭アドレスが指定された場合、図2に示すアドレス生成部20は、キャッシュライン毎にアクセス要求MREQCを生成する。すなわち、倍幅単精度浮動小数点データがキャッシュラインの境界を跨いで、データキャッシュ22に格納されている場合、アドレス生成部20は、倍幅単精度浮動小数点データを2回に分けてデータキャッシュ22から読み出す。この実施形態では、図12で説明するように、ロード命令によりデータが2回に分けてデータキャッシュ22から読み出される場合にも、回路規模の増加を抑制して、正しいタイミングでデータを浮動小数点演算器26へバイパスさせることができる。   In the load instruction for loading double-width single-precision floating-point data, when a head address that crosses the boundary of the cache line is specified, the address generation unit 20 shown in FIG. 2 generates an access request MREQC for each cache line. That is, when the double-width single-precision floating point data is stored in the data cache 22 across the boundary of the cache line, the address generation unit 20 divides the double-width single-precision floating point data into two data caches 22. Read from. In this embodiment, as will be described with reference to FIG. 12, even when data is read from the data cache 22 in two steps by a load instruction, the increase in circuit scale is suppressed and data is floating-point operated at the correct timing. Can be bypassed.

なお、倍幅単精度浮動小数点データの上位4バイトまたは下位4バイトがデータキャッシュ22に格納されていない場合(キャッシュミス)、データキャッシュ22は、二次データキャッシュ22またはメインメモリ等から128バイトのデータを読み出す。そして、データキャッシュ22は、読み出した128バイトのデータをキャッシュラインのいずれかに格納する。そして、アドレス生成部20は、データキャッシュ22にデータが格納された後に、倍幅単精度浮動小数点データの上位4バイトまたは下位4バイトを読み出すアクセス要求MREQCをデータキャッシュ22に発行する。   If the upper 4 bytes or the lower 4 bytes of the double-width single-precision floating-point data are not stored in the data cache 22 (cache miss), the data cache 22 receives 128 bytes from the secondary data cache 22 or the main memory. Read data. The data cache 22 stores the read 128-byte data in one of the cache lines. Then, after the data is stored in the data cache 22, the address generation unit 20 issues an access request MREQC for reading the upper 4 bytes or the lower 4 bytes of the double-width single precision floating point data to the data cache 22.

図7は、図2に示すバイパス制御部24に設けられるセット信号生成回路SSGENの例を示す。セット信号生成回路SSGENは、直列に接続された2つのラッチ回路FF1、FF2およびサイクル信号生成部ASGEN、MSGENを有する。ラッチ回路FF1、FF2は、クロック信号CLKに同期して動作し、アドレス生成部20からの制御信号ALDL、ALDH、ALDBUAをラッチする。   FIG. 7 shows an example of the set signal generation circuit SSGEN provided in the bypass control unit 24 shown in FIG. The set signal generation circuit SSGEN includes two latch circuits FF1 and FF2 and cycle signal generation units ASGEN and MSGEN connected in series. The latch circuits FF1 and FF2 operate in synchronization with the clock signal CLK and latch the control signals ALDL, ALDH, and ALDBUA from the address generation unit 20.

サイクル信号生成部ASGENは、制御信号ALDL、ALDHを受けるアンド回路AND1を有する。サイクル信号生成部ASGENは、制御信号ALDL、ALDHがともに有効レベル(例えば、ハイレベル)のときにセット信号ALDSETを有効レベルに設定する。有効レベルのセット信号ALDSETにより、図8に示すバイパステーブルBPTBLのフラグ領域FLGのいずれかがセットされる。セットされるフラグ領域FLGは、アドレスALDUBAで示される。セット信号ALDSETによるフラグ領域FLGのセットタイミングは、後述するAサイクルである。サイクル信号生成部ASGENは、制御信号ALDL、ALDHの少なくともいずれかが無効レベル(例えば、ロウレベル)のときにセット信号ALDSETを無効レベルに設定する。サイクル信号生成部ASGENは、複数の制御信号ALDL、ALDHの共通なタイミングでの受信に基づいてセット信号ALDSETを生成する第1生成回路の一例である。   The cycle signal generator ASGEN includes an AND circuit AND1 that receives the control signals ALDL and ALDH. The cycle signal generator ASGEN sets the set signal ALDSET to an effective level when both the control signals ALDL and ALDH are at an effective level (for example, high level). One of the flag areas FLG of the bypass table BPTBL shown in FIG. 8 is set by the effective level set signal ALDSET. The flag area FLG to be set is indicated by an address ALDUBA. The set timing of the flag area FLG by the set signal ALDSET is an A cycle described later. The cycle signal generation unit ASGEN sets the set signal ALDSET to an invalid level when at least one of the control signals ALDL and ALDH is at an invalid level (for example, low level). The cycle signal generation unit ASGEN is an example of a first generation circuit that generates a set signal ALDSET based on reception of a plurality of control signals ALDL and ALDH at a common timing.

サイクル信号生成部MSGENは、ラッチ回路FF2の出力Q1に接続されたインバータIV1と、ラッチ回路FF2の出力Q0およびインバータIV1の出力に接続されたアンド回路AND2とを有する。ラッチ回路FF2は、制御信号ALDLを2クロックサイクル遅らせた信号を出力Q0から出力し、制御信号ALDHを2クロックサイクル遅らせた信号を出力Q2から出力する。サイクル信号生成部MSGENは、2クロックサイクル遅らせた制御信号ALDL、ALDHのそれぞれが有効レベルと無効レベルのとき、セット信号MLDSETを有効レベルに設定する。有効レベルのセット信号MLDSETにより、図8に示すバイパステーブルBPTBLのフラグ領域FLGのいずれかがセットされる。セットされるフラグ領域FLGは、アドレスMLDUBAで示される。セット信号MLDSETによるフラグ領域FLGのセットタイミングは、後述するMサイクルである。   The cycle signal generation unit MSGEN has an inverter IV1 connected to the output Q1 of the latch circuit FF2, and an AND circuit AND2 connected to the output Q0 of the latch circuit FF2 and the output of the inverter IV1. The latch circuit FF2 outputs a signal obtained by delaying the control signal ALDL by two clock cycles from the output Q0, and outputs a signal obtained by delaying the control signal ALDH by two clock cycles from the output Q2. The cycle signal generation unit MSGEN sets the set signal MLDSET to the valid level when the control signals ALDL and ALDH delayed by two clock cycles are at the valid level and the invalid level, respectively. One of the flag areas FLG of the bypass table BPTBL shown in FIG. 8 is set by an effective level set signal MLDSET. The flag area FLG to be set is indicated by an address MLDUBA. The set timing of the flag area FLG by the set signal MLDSET is an M cycle described later.

サイクル信号生成部MSGENは、2クロックサイクル遅らせた制御信号ALDLが無効レベルのとき、または2クロックサイクル遅らせた制御信号ALDHが有効レベルのとき、セット信号MLDSETを無効レベルに設定する。サイクル信号生成部MSGENは、最後の制御信号ALDLの受信から所定のサイクル後にセット信号MLDSETを生成する第2生成回路の一例である。   The cycle signal generation unit MSGEN sets the set signal MLDSET to the invalid level when the control signal ALDL delayed by two clock cycles is at the invalid level or when the control signal ALDH delayed by two clock cycles is at the valid level. The cycle signal generation unit MSGEN is an example of a second generation circuit that generates the set signal MLDSET after a predetermined cycle from the reception of the last control signal ALDL.

制御信号ALDL、ALDHがどちらも無効レベルの場合、アドレス生成部20はデータキャッシュ22にアクセス要求MREQCを出力していないため、セット信号ALDSET、MLDSETはどちらも有効レベルにならない。このため、フラグ領域FLGはセットされない。   When both of the control signals ALDL and ALDH are at an invalid level, the address generation unit 20 does not output the access request MREQC to the data cache 22, so that the set signals ALDSET and MLDSET are not at the valid level. For this reason, the flag area FLG is not set.

制御信号ALDL、ALDHがどちらも有効レベルの場合、アドレス生成部20は、8バイトのデータをデータキャッシュ22から読み出すアクセス要求MREQCを出力している。この場合、セット信号ALDSETは有効レベルになり、セット信号MLDSETは無効レベルになり、フラグ領域FLGは、Aサイクルでセットされる。   When both the control signals ALDL and ALDH are at a valid level, the address generation unit 20 outputs an access request MREQC that reads 8-byte data from the data cache 22. In this case, the set signal ALDSET becomes a valid level, the set signal MLDSET becomes an invalid level, and the flag area FLG is set in the A cycle.

制御信号ALDLが無効レベルで、制御信号ALDHが有効レベルの場合、アドレス生成部20は、倍幅単精度浮動小数点データの上位4バイトのデータをデータキャッシュ22から読み出すアクセス要求MREQCを出力している。この場合、セット信号ALDSET、MLDSETはどちらも有効レベルにならず、フラグ領域FLGはセットされない。   When the control signal ALDL is at the invalid level and the control signal ALDH is at the valid level, the address generation unit 20 outputs an access request MREQC for reading the upper 4 bytes of double-width single precision floating point data from the data cache 22. . In this case, both the set signals ALDSET and MLDSET do not become valid levels, and the flag area FLG is not set.

制御信号ALDLが有効レベルで、制御信号ALDHが無効レベルの場合、アドレス生成部20は、倍幅単精度浮動小数点データの下位4バイトのデータをデータキャッシュ22から読み出すアクセス要求MREQCを出力している。この時点で、倍幅単精度浮動小数点データの上位4バイトは、データキャッシュ22から既にロードされており、下位4バイトのデータがデータキャッシュ22から読み出されることで、8バイトの倍幅単精度浮動小数点データが揃う。この場合、セット信号ALDSETは無効レベルになり、セット信号MLDSETは有効レベルになり、フラグ領域FLGは、Mサイクルでセットされる。   When the control signal ALDL is at a valid level and the control signal ALDH is at an invalid level, the address generation unit 20 outputs an access request MREQC for reading the lower 4 bytes of double-width single precision floating point data from the data cache 22. . At this point, the upper 4 bytes of the double-width single-precision floating-point data are already loaded from the data cache 22, and the lower-order 4 bytes of data are read from the data cache 22, so that the 8-byte double-width single precision floating point data is read. The decimal point data is available. In this case, the set signal ALDSET becomes an invalid level, the set signal MLDSET becomes an effective level, and the flag area FLG is set in M cycles.

この実施形態では、数ゲート規模のサイクル信号生成部ASGEN、MSGENにより、8バイトのデータがデータキャッシュ22から読み出されるか否かを判定し、セット信号ALDSETまたはセット信号MLDSETを生成することができる。   In this embodiment, it is possible to determine whether 8-byte data is read from the data cache 22 by the cycle signal generation units ASGEN and MSGEN having a scale of several gates, and to generate the set signal ALDSET or the set signal MLDSET.

図8は、バイパス制御部24に設けられるバイパス管理テーブルBPTBLおよびテーブル制御回路TSCNTの例を示す。   FIG. 8 shows an example of the bypass management table BPTBL and the table control circuit TSCNT provided in the bypass control unit 24.

バイパス管理テーブルBPTBLは、1ビットのラッチ回路を有する32個のフラグ領域FLG(FLG0−FLG31)を有する。バイパス管理テーブルBPTBLは、クロック信号CLKに同期して入力端子の論理をラッチして各フラグ領域FLGに保持し、保持した論理をバイパス可能信号BPEN(BPEN0−BPEN31)として出力する。   The bypass management table BPTBL has 32 flag areas FLG (FLG0 to FLG31) each having a 1-bit latch circuit. The bypass management table BPTBL latches the logic of the input terminal in synchronization with the clock signal CLK and holds it in each flag area FLG, and outputs the held logic as a bypass enable signal BPEN (BPEN0-BPEN31).

有効レベル(例えば、ハイレベル)のバイパス可能信号BPENは、図2に太い破線で示したバイパス経路を用いたデータのバイパスが可能であることを示す。すなわち、セット状態のフラグ領域FLGは、リネーミングレジスタRNFR、リザルトレジスタ32またはロードレジスタ30に格納されたデータを、浮動小数点レジスタ部40を介さずに浮動小数点演算器26にバイパス可能であることを示す。なお、バイパス制御部24は、固定小数点レジスタ部42に対応するリネーミングレジスタ部38に対応するバイパス管理テーブルを有するが、図示は省略する。   An effective level (for example, high level) bypass enable signal BPEN indicates that data can be bypassed using the bypass path indicated by a thick broken line in FIG. That is, the flag area FLG in the set state indicates that the data stored in the renaming register RNFR, the result register 32, or the load register 30 can be bypassed to the floating point arithmetic unit 26 without going through the floating point register unit 40. Show. Although the bypass control unit 24 has a bypass management table corresponding to the renaming register unit 38 corresponding to the fixed-point register unit 42, the illustration is omitted.

図2に示す演算処理装置OPD2では、8バイトの倍幅単精度浮動小数点データが4バイトずつデータキャッシュ22から読み出される場合、アドレス生成部20は、上位4バイトと下位4バイトのデータを読み出すアクセス要求MREQCを順次に生成する。これにより、下位4バイトのデータがデータキャッシュ22からの出力されたことに基づいて、8バイト全ての倍幅単精度浮動小数点データがデータキャッシュ22から読み出されたと判定することができる。したがって、バイパスが可能なことを示すフラグ領域FLGを、下位4バイトのデータの読み出しを示す制御信号ALDLに基づいてセットさせることが可能になる。この結果、4バイトのデータが互いに異なるタイミングで2回に分けて読み出される場合にも、1ビットのフラグ領域FLGによりバイパス動作を許可させることができ、バイパス管理テーブルBPTBLの回路規模の増加を抑制することができる。   In the arithmetic processing unit OPD2 shown in FIG. 2, when the double-byte single-precision floating-point data of 8 bytes is read from the data cache 22 by 4 bytes, the address generator 20 accesses to read out the upper 4 bytes and the lower 4 bytes. Request MREQC is generated sequentially. Thus, based on the fact that the lower 4 bytes of data are output from the data cache 22, it can be determined that all double-byte single-precision floating point data of 8 bytes has been read from the data cache 22. Therefore, the flag area FLG indicating that bypass is possible can be set based on the control signal ALDL indicating reading of the lower 4 bytes of data. As a result, even when 4-byte data is read out twice at different timings, the bypass operation can be permitted by the 1-bit flag area FLG, and an increase in the circuit scale of the bypass management table BPTBL is suppressed. can do.

テーブル制御回路TSCNTは、セット信号生成部ASSET、MSSET、B1SET、リセット信号生成部WRSTおよびテーブル制御部TBLCNTを有する。   The table control circuit TSCNT includes set signal generation units ASSET, MSSET, B1SET, a reset signal generation unit WRST, and a table control unit TBLCNT.

セット信号生成部ASSETは、アドレスALDUBAを受けるデコーダADECと、デコーダADECの出力に接続され、制御信号ALDSETを受ける32個のアンド回路とを有する。デコーダADECは、アドレスALDUBAの値を解読し、アドレスALDUBAの値が示すフラグ領域FLGに対応する32個の出力端子のいずれかを有効レベルに設定する。そして、デコーダADECからの有効レベルと制御信号ALDSETとを受けるアンド回路が出力するハイレベルにより、対応するフラグ領域FLGがセットされる。セット信号生成部ASSETは、倍精度浮動小数点データまたは倍幅単精度浮動小数点データ(何れも8バイト)をロードする場合、フラグ領域FLGをセットする。   The set signal generation unit ASSET has a decoder ADEC that receives an address ALDUBA, and 32 AND circuits that are connected to the output of the decoder ADEC and receive a control signal ALDSET. The decoder ADEC decodes the value of the address ALDUBA, and sets any of the 32 output terminals corresponding to the flag area FLG indicated by the value of the address ALDUBA to an effective level. The corresponding flag area FLG is set by the high level output from the AND circuit that receives the effective level from the decoder ADEC and the control signal ALDSET. The set signal generation unit ASSET sets the flag area FLG when loading double precision floating point data or double width single precision floating point data (both are 8 bytes).

セット信号生成部MSSETは、デコーダADECの代わりにデコーダMDECを有し、アドレスALDUBAと制御信号ALDSETの代わりにアドレスMLDUBAと制御信号MLDSETを受けることを除き、セット信号生成部ASSETと同様である。セット信号生成部MSSETは、デコーダMDECからの有効レベルと制御信号MLDSETとを受けるアンド回路が出力するハイレベルにより、対応するフラグ領域FLGをセットする。セット信号生成部MSSETは、倍幅単精度浮動小数点データを4バイトずつ互いに異なるタイミングでロードする場合、フラグ領域FLGをセットする。   The set signal generation unit MSSET has a decoder MDEC instead of the decoder ADEC, and is the same as the set signal generation unit ASSET except that it receives the address MLDUBA and the control signal MLDSET instead of the address ALDUBA and the control signal ALDSET. The set signal generation unit MSSET sets the corresponding flag area FLG according to the high level output from the AND circuit that receives the effective level from the decoder MDEC and the control signal MLDSET. The set signal generation unit MSSET sets the flag area FLG when loading double-width single-precision floating-point data at a timing different from each other by 4 bytes.

セット信号生成部B1SETは、デコーダADECの代わりにデコーダBDECを有し、アドレスALDUBAと制御信号ALDSETの代わりにアドレスB1FPUBAと制御信号B1FPを受けることを除き、セット信号生成部ASSETと同様である。セット信号生成部B1SETは、デコーダBDECからの有効レベルと制御信号B1FPとを受けるアンド回路が出力するハイレベルにより、対応するフラグ領域FLGをセットする。セット信号生成部B1SETは、浮動小数点データの演算命令による演算の開始を示す信号を後述するB1サイクルまで保持した制御信号B1FPに応答して、アドレスB1FPUBAが示すフラグ領域FLGをセットする。   The set signal generation unit B1SET is similar to the set signal generation unit ASSET except that it has a decoder BDEC instead of the decoder ADEC and receives the address B1FPUBA and the control signal B1FP instead of the address ALDUBA and the control signal ALDSET. The set signal generation unit B1SET sets the corresponding flag area FLG according to the high level output from the AND circuit that receives the effective level from the decoder BDEC and the control signal B1FP. The set signal generation unit B1SET sets the flag area FLG indicated by the address B1FPUBA in response to a control signal B1FP that holds a signal indicating the start of an operation based on a floating-point data operation instruction until a B1 cycle described later.

リセット信号生成部WRSTは、アドレスWCMTUBAを受けるデコーダWDECと、デコーダWDECの出力に接続され、制御信号WCMTを受ける32個のナンド回路と、ナンド回路の出力に接続された32個のアンド回路とを有する。デコーダWDECは、デコーダADECと同様に、アドレスWCMTUBAの値を解読し、アドレスWCMTUBAの値が示すフラグ領域FLGに対応する32個の出力端子のいずれかを有効レベルに設定する。デコーダWDECからの有効レベルと制御信号WCMTとを受けるナンド回路は、ロウレベルを出力し、ナンド回路の出力に接続されたアンド回路の出力をロウレベルに設定する。これにより、対応するフラグ領域FLGがリセットされる。   The reset signal generation unit WRST includes a decoder WDEC that receives the address WCMTUBA, 32 NAND circuits that are connected to the output of the decoder WDEC and receive the control signal WCMT, and 32 AND circuits that are connected to the output of the NAND circuit. Have. Similarly to the decoder ADEC, the decoder WDEC decodes the value of the address WCMTUBA and sets any one of the 32 output terminals corresponding to the flag area FLG indicated by the value of the address WCMTUBA to an effective level. The NAND circuit that receives the effective level from the decoder WDEC and the control signal WCMT outputs a low level, and sets the output of an AND circuit connected to the output of the NAND circuit to a low level. As a result, the corresponding flag area FLG is reset.

なお、制御信号ALDSET、MLDSET、B1FPの出力期間は、1クロックサイクルである。このため、各セット信号生成部ASSET、MSSET、B1SETは、制御信号ALDSET、MLDSET、B1FPを受けるクロックサイクルを除き、アンド回路からロウレベルを出力する。一方、リセット信号生成部WRSTにおいてナンド回路の出力に接続されたアンド回路は、ハイレベルのバイパス可能信号BPENを受け、ナンド回路がロウレベルを出力するまでハイレベルを出力する。これにより、セット信号生成部ASSET、MSSET、B1SETによりセットされたフラグ領域FLGのセット状態は、ナンド回路がロウレベルを出力するまで維持される。   The output period of the control signals ALDSET, MLDSET, and B1FP is one clock cycle. Therefore, each set signal generation unit ASSET, MSSET, B1SET outputs a low level from the AND circuit except for the clock cycle that receives the control signals ALDSET, MLDSET, B1FP. On the other hand, the AND circuit connected to the output of the NAND circuit in the reset signal generation unit WRST receives the high level bypass enable signal BPEN and outputs the high level until the NAND circuit outputs the low level. Thus, the set state of the flag area FLG set by the set signal generation units ASSET, MSSET, and B1SET is maintained until the NAND circuit outputs a low level.

テーブル制御部TBLCNTは、セット信号生成部ASSET、MSSET、B1SETの出力およびリセット信号生成部WRSTの出力のオア論理を演算し、演算した論理をバイパステーブルBPTBLの入力端子に出力する複数のオア回路を有する。   The table control unit TBLCNT calculates OR logic of the outputs of the set signal generation unit ASSET, MSSET, B1SET and the reset signal generation unit WRST, and outputs a plurality of OR circuits that output the calculated logic to the input terminal of the bypass table BPTBL. Have.

図7および図8に示す回路に基づいて、バイパス制御部24は、アドレス生成部20からの制御信号ALDL、ALDHの論理に応じたタイミングで、制御信号ALDBUAの論理が示すバイパス管理テーブルBPTBLのフラグ領域FLG(図8)をセットする。また、バイパス制御部24は、リザベーションステーション18からの制御信号B1FPのタイミングで、アドレスB1FPUBAの論理が示すバイパス管理テーブルBPTBLのフラグ領域FLGをセットする。   Based on the circuits shown in FIGS. 7 and 8, the bypass control unit 24 sets the flag of the bypass management table BPTBL indicated by the logic of the control signal ALDBUA at the timing according to the logic of the control signals ALDL and ALDH from the address generation unit 20. Region FLG (FIG. 8) is set. The bypass control unit 24 sets the flag area FLG of the bypass management table BPTBL indicated by the logic of the address B1FPUBA at the timing of the control signal B1FP from the reservation station 18.

バイパス制御部24は、セットしたフラグ領域FLGに対応するバイパス可能信号BPEN(BPEN0−BPEN31のいずれか)を有効レベルに設定する。バイパス制御部24は、コミット制御部44からの制御信号WCMTのタイミングで、アドレスWCMTUBAの論理が示すバイパス管理テーブルBPTBLのフラグ領域FLGをリセットする。バイパス制御部24は、リセットしたフラグ領域FLGに対応するバイパス可能信号BPEN(BPEN0−BPEN31のいずれか)を無効レベルに設定する。テーブル制御部TBLCNTおよびバイパス管理テーブルBPTBLは、セット信号ALDSETまたはセット信号MLDSETに基づいて、バイパス可能信号BPENを出力する出力回路の一例である。   The bypass control unit 24 sets the bypassable signal BPEN (any one of BPEN0 to BPEN31) corresponding to the set flag area FLG to an effective level. The bypass control unit 24 resets the flag area FLG of the bypass management table BPTBL indicated by the logic of the address WCMTUBA at the timing of the control signal WCMT from the commit control unit 44. The bypass control unit 24 sets the bypassable signal BPEN (any one of BPEN0 to BPEN31) corresponding to the reset flag area FLG to an invalid level. The table control unit TBLCNT and the bypass management table BPTBL are an example of an output circuit that outputs a bypass enable signal BPEN based on the set signal ALDSET or the set signal MLDSET.

なお、バイパス制御部24は、バイパス管理テーブルBPTBLのフラグ領域FLGをセットした後、データキャッシュ22から完了信号CEを受けない場合、セットしたフラグ領域FLGをリセットする。データキャッシュ22によるキャッシュミス時、データキャッシュ22からのデータは、ロードレジスタ30およびリネーミングレジスタ部36に所望のサイクルで転送されない。この場合、ロードレジスタ30およびリネーミングレジスタ部36は、浮動小数点演算器26へバイパスするデータを保持しないため、バイパスを禁止するために、フラグ領域FLGがリセットされる。完了信号CEに基づいてフラグ領域FLGをリセットする論理は、例えば、リセット信号生成部WRST内に設けられる。例えば、リセット信号生成部WRSTは、完了信号CEに対応してリセットするフラグ領域FLGを示すアドレスとアドレスWCMTUBAとのオア論理をデコーダWDECに供給するオア回路を有する。また、リセット信号生成部WRSTは、制御信号WCMTと完了信号CEとのオア論理を各ナンド回路に供給するオア回路を有する。   If the bypass control unit 24 does not receive the completion signal CE from the data cache 22 after setting the flag area FLG of the bypass management table BPTBL, it resets the set flag area FLG. At the time of a cache miss by the data cache 22, data from the data cache 22 is not transferred to the load register 30 and the renaming register unit 36 in a desired cycle. In this case, since the load register 30 and the renaming register unit 36 do not hold the data to be bypassed to the floating point arithmetic unit 26, the flag area FLG is reset to prohibit the bypass. The logic for resetting the flag area FLG based on the completion signal CE is provided in the reset signal generation unit WRST, for example. For example, the reset signal generation unit WRST has an OR circuit that supplies an OR logic of an address indicating the flag area FLG to be reset and the address WCMTUBA corresponding to the completion signal CE to the decoder WDEC. Further, the reset signal generation unit WRST has an OR circuit that supplies an OR logic of the control signal WCMT and the completion signal CE to each NAND circuit.

図9は、図7および図8に示すバイパス制御部24の動作の例を示す。図2に示すアドレス生成部20は、8バイトの倍精度浮動小数点データまたは8バイトの倍幅単精度浮動小数点データを1回のアクセス要求MREQCでデータキャッシュ22から読み出す場合、制御信号ALDL、ALDHを同時に生成する。また、アドレス生成部20は、倍幅単精度浮動小数点データを2回のアクセス要求MREQCでデータキャッシュ22から4バイトずつ読み出す場合、制御信号ALDH、ALDLを順次に生成する。この場合、8バイトの倍幅単精度浮動小数点データのうち、上位4バイトがデータキャッシュ22から読み出された後、下位4バイトがデータキャッシュ22から読み出される。   FIG. 9 shows an example of the operation of the bypass control unit 24 shown in FIGS. The address generator 20 shown in FIG. 2 reads the control signals ALDL and ALDH when reading 8-byte double-precision floating-point data or 8-byte double-width single-precision floating-point data from the data cache 22 with one access request MREQC. Generate at the same time. The address generation unit 20 sequentially generates control signals ALDH and ALDL when the double-width single-precision floating point data is read from the data cache 22 4 bytes at a time by two access requests MREQC. In this case, among the 8-byte double-width single-precision floating point data, the upper 4 bytes are read from the data cache 22 and then the lower 4 bytes are read from the data cache 22.

例えば、動作OP10において、バイパス制御部24は、制御信号ALDLの生成の有無を判定する。制御信号ALDLが生成されない場合、8バイトの倍精度浮動小数点データまたは8バイトの倍幅単精度浮動小数点データは、データキャッシュ22から読み出されていない。バイパス制御部24は、動作OP12において、リネーミングレジスタRNFRの下位4バイトに対応する制御信号ALDLが生成されない場合、バイパステーブルBPTBLを更新しない。   For example, in the operation OP10, the bypass control unit 24 determines whether or not the control signal ALDL is generated. When the control signal ALDL is not generated, 8-byte double-precision floating point data or 8-byte double-width single-precision floating point data is not read from the data cache 22. When the control signal ALDL corresponding to the lower 4 bytes of the renaming register RNFR is not generated in the operation OP12, the bypass control unit 24 does not update the bypass table BPTBL.

制御信号ALDLが生成された場合、8バイトの倍精度浮動小数点データまたは8バイトの倍幅単精度浮動小数点データが一度にデータキャッシュ22から読み出される。バイパス制御部24は、動作OP14において、制御信号ALDLとともに制御信号ALDHが生成されたか否かを判定する。   When the control signal ALDL is generated, 8-byte double-precision floating point data or 8-byte double-width single-precision floating point data is read from the data cache 22 at a time. The bypass control unit 24 determines whether or not the control signal ALDH is generated together with the control signal ALDL in the operation OP14.

制御信号ALDLとともに制御信号ALDHが生成された場合、8バイトの倍精度浮動小数点データまたは8バイトの倍幅単精度浮動小数点データがデータキャッシュ22から1回のアクセス要求MREQCで読み出される。すなわち、8バイトのデータの上位4バイトと下位4バイトとがデータキャッシュ22からロードされるタイミングのずれは発生しない。この場合、バイパス制御部24は、動作OP16において、制御信号ALDL、ALDHとともに受けるアドレスMALDUBAにより示されるバイパステーブルBPTBLのフラグ領域FLGをセットする。   When the control signal ALDH is generated together with the control signal ALDL, 8-byte double-precision floating point data or 8-byte double-width single-precision floating point data is read from the data cache 22 with one access request MREQC. That is, there is no difference in timing when the upper 4 bytes and lower 4 bytes of the 8-byte data are loaded from the data cache 22. In this case, the bypass control unit 24 sets the flag area FLG of the bypass table BPTBL indicated by the address MALDUBA received together with the control signals ALDL and ALDH in the operation OP16.

制御信号ALDLとともに制御信号ALDHが生成されない場合、8バイトの倍幅単精度浮動小数点データは、2回に分けてデータキャッシュ22から読み出される。すなわち、8バイトのデータの上位4バイトと下位4バイトとがデータキャッシュ22からロードされるタイミングのずれが発生する。この場合、バイパス制御部24は、動作OP18において、制御信号ALDLの受信から2クロックサイクル後にセット信号MLDSETとアドレスMLDUBAを生成する。この後、バイパス制御部24は、動作OP16において、セット信号MLDSETに同期してアドレスMLDUBAにより示されるバイパステーブルBPTBLのフラグ領域FLGをセットする。セット信号MLDSETに同期するフラグ領域FLGのセットにより、2回に分けてデータキャッシュ22から読み出された倍幅単精度浮動小数点データは、図12に示すように、リネーミングレジスタRNFRを介してバイパス可能になる。図12で説明するように、リネーミングレジスタRNFRからのデータの読み出しは、2クロックサイクル掛かる。このため、バイパス制御部24は、セット信号MLDSETを制御信号ALDLから2クロックサイクル後に生成することで、リネーミングレジスタRNFRからバイパスされたデータを用いた演算の開始を遅らせる。   When the control signal ALDH is not generated together with the control signal ALDL, the 8-byte double-width single-precision floating point data is read from the data cache 22 in two steps. That is, a timing difference occurs when the upper 4 bytes and the lower 4 bytes of 8-byte data are loaded from the data cache 22. In this case, in the operation OP18, the bypass control unit 24 generates the set signal MLDSET and the address MLDUBA two clock cycles after receiving the control signal ALDL. Thereafter, in operation OP16, the bypass control unit 24 sets the flag area FLG of the bypass table BPTBL indicated by the address MLDUBA in synchronization with the set signal MLDSET. By setting the flag area FLG in synchronization with the set signal MLDSET, double-width single precision floating point data read from the data cache 22 in two steps is bypassed via the renaming register RNFR as shown in FIG. It becomes possible. As described with reference to FIG. 12, reading of data from the renaming register RNFR takes two clock cycles. Therefore, the bypass control unit 24 delays the start of the calculation using the data bypassed from the renaming register RNFR by generating the set signal MLDSET after two clock cycles from the control signal ALDL.

図10は、図2に示す演算処理装置OPD2の動作の例を示す。図10では、先行する浮動小数点データのロード命令の実行後に複数の浮動小数点データの演算命令A、B、C、Dが実行される。図10のロード命令は、倍精度浮動小数点データまたは倍幅単精度浮動小数点データがデータキャッシュ22の1つのキャッシュラインから読み出される例を示す。また、演算命令A、B、C、Dは、ロード命令によりロードされたデータが浮動小数点レジスタFRに格納される前に、ロードレジスタ30またはリネーミングレジスタRNFRからバイパスさせるデータを使用して実行される。   FIG. 10 shows an example of the operation of the arithmetic processing unit OPD2 shown in FIG. In FIG. 10, a plurality of floating point data arithmetic instructions A, B, C, and D are executed after execution of the preceding floating point data load instruction. The load instruction in FIG. 10 shows an example in which double precision floating point data or double width single precision floating point data is read from one cache line of the data cache 22. Further, the arithmetic instructions A, B, C, and D are executed using data bypassed from the load register 30 or the renaming register RNFR before the data loaded by the load instruction is stored in the floating point register FR. The

図10において、ロード命令のD、DT、P、PT、B1、B2、A、T、M、B、R、RTサイクルは、以下に示すように、ロード命令の実行時のパイプラインのステージを示す。
(a)D(Decode):デコーダ部14が命令を解読し、解読した命令情報INSをメモリアクセス命令用のリザベーションステーションRSMAへ転送する。
(b)DT(Decode Transfer):リザベーションステーションRSMAが、Dサイクルで出力された命令情報INSを保持する。
(c)P(Priority):リザベーションステーションRSMAが、アドレス生成部20に出力する命令を決定する。
(d)PT(Priority Transfer):リザベーションステーションRSMAが、Pサイクルで決定した命令をアドレス生成部20に出力する。
(e)B1、B2(Buffer):アドレス生成部20が、データキャッシュ22等にアクセスするアドレスを生成するためのデータ(ソースレジスタ)を決定する。
(f)A(Address):アドレス生成部20が、データキャッシュ22等にアクセスするアドレスを計算する。
(g)T(Tag):データキャッシュ22がタグ領域にアクセスする。
(h)M(Match):データキャッシュ22がタグ領域から読み出したアドレスをアドレス生成部20から受けたアドレスと比較し、キャッシュヒット、キャッシュミスを判定する。
(i)B(Buffer):データキャッシュ22内で読み出したデータをバッファする。
(j)R(Result):データキャッシュ22へのアクセスを完了し、読み出したデータをロードレジスタ30に転送する。
(k)RT(Result):Rサイクルでロードレジスタ30に転送されたデータをリネーミングレジスタ部36に転送する。
In FIG. 10, the D, DT, P, PT, B1, B2, A, T, M, B, R, and RT cycles of the load instruction are the pipeline stages at the time of execution of the load instruction as shown below. Show.
(A) D (Decode): The decoder unit 14 decodes the instruction, and transfers the decoded instruction information INS to the memory access instruction reservation station RSMA.
(B) DT (Decode Transfer): The reservation station RSMA holds the instruction information INS output in the D cycle.
(C) P (Priority): The reservation station RSMA determines an instruction to be output to the address generation unit 20.
(D) PT (Priority Transfer): The reservation station RSMA outputs an instruction determined in the P cycle to the address generation unit 20.
(E) B1, B2 (Buffer): The address generation unit 20 determines data (source register) for generating an address for accessing the data cache 22 and the like.
(F) A (Address): The address generation unit 20 calculates an address for accessing the data cache 22 and the like.
(G) T (Tag): The data cache 22 accesses the tag area.
(H) M (Match): The address read by the data cache 22 from the tag area is compared with the address received from the address generation unit 20 to determine a cache hit or a cache miss.
(I) B (Buffer): Buffers data read in the data cache 22.
(J) R (Result): The access to the data cache 22 is completed, and the read data is transferred to the load register 30.
(K) RT (Result): The data transferred to the load register 30 in the R cycle is transferred to the renaming register unit 36.

図10において、演算命令のD、DT、P、PT、B1、B2、X1、X2、X3、X4サイクルは、以下に示すように、演算命令の実行時のパイプラインのステージを示す。
(l)D(Decode):デコーダ部14が命令を解読し、解読した命令情報INSを浮動小数点データの演算用のリザベーションステーションRSFLTへ転送する。
(m)DT(Decode Transfer):リザベーションステーションRSFLTが、Dサイクルで出力された命令情報INSを保持する。
(n)P(Priority):リザベーションステーションRSFLTが、浮動小数点演算器26に投入する命令を決定する。
(o)PT(Priority Transfer):リザベーションステーションRSFLTが、Pサイクルで決定した命令を浮動小数点演算器26に投入する。
(p)B1、B2(Buffer):浮動小数点演算器26が、演算に必要なデータ(ソースレジスタ)を決定する。
(q)X1、X2、X3、X4(Execute 1-4):浮動小数点演算器26が、命令を実行する。浮動小数点データの演算は、X1−X4の4サイクルで実行される。X4サイクルの次のサイクルで、演算により得られたデータがリネーミングレジスタ部36へ格納される。
In FIG. 10, cycles D, DT, P, PT, B1, B2, X1, X2, X3, and X4 of the operation instruction indicate pipeline stages when the operation instruction is executed, as shown below.
(L) D (Decode): The decoder unit 14 decodes the instruction, and transfers the decoded instruction information INS to the reservation station RSFLT for calculation of floating point data.
(M) DT (Decode Transfer): The reservation station RSFLT holds the instruction information INS output in the D cycle.
(N) P (Priority): The reservation station RSFLT determines an instruction to be input to the floating point arithmetic unit 26.
(O) PT (Priority Transfer): The reservation station RSFLT inputs the instruction determined in the P cycle to the floating point arithmetic unit 26.
(P) B1, B2 (Buffer): The floating point arithmetic unit 26 determines data (source register) necessary for the operation.
(Q) X1, X2, X3, X4 (Execute 1-4): The floating point arithmetic unit 26 executes the instruction. The calculation of floating point data is executed in four cycles of X1-X4. In the next cycle of the X4 cycle, the data obtained by the operation is stored in the renaming register unit 36.

図10のロード命令は、キャッシュヒット時の動作を示す。キャッシュミス時には、D、DT、P、PT、B1、B2、A、T、Mサイクルが、1番目のクロックサイクルより手前のクロックサイクルで実行される。そして、アドレス生成部20およびデータキャッシュ22は、7番目のクロックサイクルからA、T、Mサイクルを再度実行し、キャッシュヒット時に、Mサイクルに続けてB、R、RTサイクルを再度実行する。すなわち、ロード命令におけるキャッシュミス時の動作は、図10からD、DT、P、PT、B1、B2サイクルが削除される。   The load instruction in FIG. 10 indicates an operation at the time of a cache hit. At the time of a cache miss, the D, DT, P, PT, B1, B2, A, T, and M cycles are executed in the clock cycle before the first clock cycle. Then, the address generation unit 20 and the data cache 22 re-execute the A, T, and M cycles from the seventh clock cycle, and re-execute the B, R, and RT cycles following the M cycle when a cache hit occurs. In other words, the D, DT, P, PT, B1, and B2 cycles are deleted from FIG.

また、図2に示す演算処理装置OPD2は、デコーダ部14が解読した命令の順に限定せず、実行可能な命令を実行するアウトオブオーダ実行を行う。このため、演算命令A、B、C、Dにおいて、DTサイクルの実行からPサイクルの実行までのクロックサイクル数は、リザベーションステーションRSFLTによる実行順の判定結果に依存して変化する。例えば、演算命令AのD、DTサイクルは、1番目のクロックサイクルより手前のクロックサイクルで実行される。   2 is not limited to the order of instructions decoded by the decoder unit 14, but performs out-of-order execution of executing executable instructions. For this reason, in the arithmetic instructions A, B, C, and D, the number of clock cycles from the execution of the DT cycle to the execution of the P cycle varies depending on the execution order determination result by the reservation station RSFLT. For example, the D and DT cycles of the operation instruction A are executed in a clock cycle before the first clock cycle.

ロード命令において、アドレス生成部20は、Aサイクルでデータキャッシュへの1回のアクセスでデータを読み出せると判断し、データキャッシュ22に図2に示すアクセス要求MREQCを発行する。また、アドレス生成部20は、アクセス要求MREQCとともに、バイパス制御部24に制御信号ALDL、ALDHおよびアドレスALDUBAを出力する(図10(a))。   In the load instruction, the address generation unit 20 determines that the data can be read in one access to the data cache in the A cycle, and issues an access request MREQC shown in FIG. The address generator 20 outputs the control signals ALDL and ALDH and the address ALDUBA to the bypass controller 24 together with the access request MREQC (FIG. 10A).

バイパス制御部24は、制御信号ALDL、ALDHに応答してセット信号ALDSETを生成し、アドレスALDUBAが示すフラグ領域FLGをセットすることでバイパス可能信号BPENを有効レベルに設定する(図10(b))。   The bypass control unit 24 generates the set signal ALDSET in response to the control signals ALDL and ALDH, and sets the bypassable signal BPEN to an effective level by setting the flag area FLG indicated by the address ALDUBA (FIG. 10B). ).

データキャッシュ22は、ロード命令のRサイクルにおいて読み出しサイクルを完了し、読み出した8バイトのデータをロードレジスタ30に転送する(図10(c))。ロードレジスタ30に転送されたデータは、RTサイクルでリネーミングレジスタ部36に転送される。リネーミングレジスタ部36の書き込み制御部WCNT3(図4)は、ロードレジスタ30から転送される8バイトのデータに基づいて、共通なタイミングで書き込み制御信号WE1H、WE1Lを生成する(図10(d))。そして、書き込み制御部WCNT3は、リネーミングレジスタRNFRのいずれかに8バイトのデータを格納する(図10(e))。例えば、書き込み制御部WCNT3は、リザベーションステーション18から受ける有効レベルに設定されたバイパス可能信号BPENを示す情報に基づいてデータを格納するリネーミングレジスタRNFRを決定する。なお、例えば、リネーミングレジスタRNFRからのデータの読み出しは、2クロックサイクル掛かるため、リネーミングレジスタRNFRからのデータのバイパスは、14番目のクロックサイクルから可能になる。   The data cache 22 completes the read cycle in the R cycle of the load instruction, and transfers the read 8-byte data to the load register 30 (FIG. 10C). The data transferred to the load register 30 is transferred to the renaming register unit 36 in the RT cycle. The write control unit WCNT3 (FIG. 4) of the renaming register unit 36 generates the write control signals WE1H and WE1L at a common timing based on the 8-byte data transferred from the load register 30 (FIG. 10 (d)). ). Then, the write control unit WCNT3 stores 8-byte data in any of the renaming registers RNFR (FIG. 10 (e)). For example, the write control unit WCNT3 determines a renaming register RNFR that stores data based on information indicating the bypassable signal BPEN set to an effective level received from the reservation station 18. For example, since reading of data from the renaming register RNFR takes two clock cycles, bypassing of data from the renaming register RNFR is possible from the 14th clock cycle.

リザベーションステーションRSFLTは、リザベーションステーションRSMAがB1、B2サイクルでソースレジスタを決定した後、8番目のクロックサイクルで、バイパスが可能なことを判断する。そして、リザベーションステーションRSFLTは、9番目のクロックサイクルで演算命令AのPサイクルを実行し、演算命令Aを浮動小数点演算器26に投入する(図10(f))。   The reservation station RSFLT determines that the bypass is possible in the eighth clock cycle after the reservation station RSMA determines the source register in the B1 and B2 cycles. Then, the reservation station RSFLT executes the P cycle of the arithmetic instruction A in the ninth clock cycle, and inputs the arithmetic instruction A to the floating point arithmetic unit 26 (FIG. 10 (f)).

浮動小数点演算器26は、演算命令AのB2サイクルでロードレジスタ30からバイパスされるデータを選択し、選択したデータをX1サイクルで使用する(図10(g))。図10において、太い破線で示す矢印は、データがロードレジスタ30またはリネーミングレジスタRNFRから浮動小数点演算器26にバイパスされることを示す。浮動小数点演算器26は、演算命令BのB1サイクルでロードレジスタ30からバイパスされるデータを選択し、選択したデータをX1サイクルで使用する(図10(h))。   The floating point arithmetic unit 26 selects data to be bypassed from the load register 30 in the B2 cycle of the operation instruction A, and uses the selected data in the X1 cycle (FIG. 10 (g)). In FIG. 10, an arrow indicated by a thick broken line indicates that data is bypassed from the load register 30 or the renaming register RNFR to the floating point arithmetic unit 26. The floating point arithmetic unit 26 selects data to be bypassed from the load register 30 in the B1 cycle of the operation instruction B, and uses the selected data in the X1 cycle (FIG. 10 (h)).

また、浮動小数点演算器26は、演算命令CのB2サイクルでリネーミングレジスタRNFRからバイパスされるデータを選択し、選択したデータをX1サイクルで使用する(図10(i))。浮動小数点演算器26は、演算命令DのB2サイクルでリネーミングレジスタRNFRからバイパスされるデータを選択し、選択したデータをX1サイクルで使用する(図10(j))。   The floating point arithmetic unit 26 selects data to be bypassed from the renaming register RNFR in the B2 cycle of the operation instruction C, and uses the selected data in the X1 cycle (FIG. 10 (i)). The floating point arithmetic unit 26 selects data to be bypassed from the renaming register RNFR in the B2 cycle of the operation instruction D, and uses the selected data in the X1 cycle (FIG. 10 (j)).

図11は、図2に示す演算処理装置OPD2の動作の別の例を示す。図10と同一または同様の動作については、詳細な説明は省略する。図11では、先行する浮動小数点データの演算命令の実行後に複数の浮動小数点データの演算命令A、B、C、Dが実行される。図11において先行する演算命令では、倍精度浮動小数点データ、倍幅単精度浮動小数点データまたは単精度浮動小数点データが使用される。また、演算命令A、B、C、Dは、先行する演算命令により得られたデータが浮動小数点レジスタFRに格納される前に、リザルトレジスタ32またはリネーミングレジスタRNFRからバイパスさせるデータを使用して実行される。   FIG. 11 shows another example of the operation of the arithmetic processing unit OPD2 shown in FIG. Detailed description of the same or similar operations as in FIG. 10 will be omitted. In FIG. 11, a plurality of floating-point data arithmetic instructions A, B, C, and D are executed after execution of the preceding floating-point data arithmetic instruction. In the operation instruction preceding in FIG. 11, double precision floating point data, double width single precision floating point data or single precision floating point data is used. The arithmetic instructions A, B, C, and D use data bypassed from the result register 32 or the renaming register RNFR before the data obtained by the preceding arithmetic instruction is stored in the floating point register FR. Executed.

リザベーションステーションRSFLTは、先行する演算命令のB1サイクルで、演算命令A、B、C、Dで使用するデータをリザルトレジスタ32またはリネーミングレジスタRNFRからバイパス可能と判断する。そして、リザベーションステーションRSFLTは、制御信号B1FPおよびアドレスB1FPUBAを出力する(図11(a))。   The reservation station RSFLT determines that the data used in the operation instructions A, B, C, and D can be bypassed from the result register 32 or the renaming register RNFR in the B1 cycle of the preceding operation instruction. The reservation station RSFLT outputs a control signal B1FP and an address B1FPUBA (FIG. 11 (a)).

バイパス制御部24は、制御信号B1FPに応答してアドレスB1FPUBAが示すフラグ領域FLGをセットすることでバイパス可能信号BPENを有効レベルに設定する(図11(b))。   Bypass control unit 24 sets flag area FLG indicated by address B1FPUBA in response to control signal B1FP, thereby setting bypass enable signal BPEN to an effective level (FIG. 11 (b)).

浮動小数点演算器26は、先行する演算命令をX1からX4サイクルで実行し、演算結果をX4サイクルでリザルトレジスタ32に転送する(図11(c))。リザルトレジスタ32に転送されたデータは、次のクロックサイクルでリネーミングレジスタRNFRに転送される(図11(d))。   The floating point arithmetic unit 26 executes the preceding arithmetic instruction in the X1 to X4 cycles, and transfers the arithmetic result to the result register 32 in the X4 cycle (FIG. 11 (c)). The data transferred to the result register 32 is transferred to the renaming register RNFR in the next clock cycle (FIG. 11 (d)).

リザベーションステーションRSFLTは、7番目のクロックサイクルで演算命令AのPサイクルを実行し、演算命令Aを浮動小数点演算器26に投入する(図11(e))。浮動小数点演算器26は、演算命令AのX1サイクルでリザルトレジスタ32からバイパスされるデータを選択し、選択したデータを用いてX1サイクルから演算を開始する(図11(f))。浮動小数点演算器26は、演算命令BのB2サイクルでリザルトレジスタ32からバイパスされるデータを選択し、選択したデータをX1サイクルで使用する(図11(g))。浮動小数点演算器26は、演算命令CのB1サイクルでリザルトレジスタ32からバイパスされるデータを選択し、選択したデータをX1サイクルで使用する(図11(h))。浮動小数点演算器26は、演算命令DのB2サイクルでリネーミングレジスタRNFRからバイパスされるデータを選択し、選択したデータをX1サイクルで使用する(図11(i))。なお、図10で説明したように、リネーミングレジスタRNFRからのデータの読み出しは、2クロックサイクル掛かるため、リネーミングレジスタRNFRからのデータのバイパスは、13番目のクロックサイクルから可能になる。   The reservation station RSFLT executes the P cycle of the arithmetic instruction A in the seventh clock cycle, and inputs the arithmetic instruction A to the floating point arithmetic unit 26 (FIG. 11 (e)). The floating point arithmetic unit 26 selects data to be bypassed from the result register 32 in the X1 cycle of the operation instruction A, and starts the operation from the X1 cycle using the selected data (FIG. 11 (f)). The floating point arithmetic unit 26 selects data to be bypassed from the result register 32 in the B2 cycle of the operation instruction B, and uses the selected data in the X1 cycle (FIG. 11 (g)). The floating point arithmetic unit 26 selects data to be bypassed from the result register 32 in the B1 cycle of the operation instruction C, and uses the selected data in the X1 cycle (FIG. 11 (h)). The floating point arithmetic unit 26 selects data to be bypassed from the renaming register RNFR in the B2 cycle of the operation instruction D, and uses the selected data in the X1 cycle (FIG. 11 (i)). As described with reference to FIG. 10, since reading of data from the renaming register RNFR takes two clock cycles, the bypass of data from the renaming register RNFR can be performed from the thirteenth clock cycle.

図12は、図2に示す演算処理装置OPD2の動作のさらなる別の例を示す。図10と同一または同様の動作については、詳細な説明は省略する。図12では、先行する倍幅単精度浮動小数点データのロード命令において、8バイトのデータがデータキャッシュ22の2つのキャッシュラインを跨いで保持されている。また、演算命令A、B、C、Dは、倍幅単精度浮動小数点データの演算を実行する命令であり、先行するロード命令により得られたデータが浮動小数点レジスタFRに格納される前にリネーミングレジスタRNFRからバイパスさせるデータを使用して実行される。   FIG. 12 shows still another example of the operation of the arithmetic processing unit OPD2 shown in FIG. Detailed description of the same or similar operations as in FIG. 10 will be omitted. In FIG. 12, 8-byte data is held across two cache lines of the data cache 22 in the preceding double-width single-precision floating-point data load instruction. The operation instructions A, B, C, and D are instructions for performing an operation on double-width single-precision floating-point data, and are read before the data obtained by the preceding load instruction is stored in the floating-point register FR. This is performed using data to be bypassed from the naming register RNFR.

ロード命令で読み出される倍幅単精度浮動小数点データが2つのキャッシュラインから読み出される場合、A、T、M、B、R、RTサイクルが間隔を置いて2回実行される(図12(a)、(b))。図2に示すアドレス生成部20は、最初の読み出しサイクルで倍幅単精度浮動小数点データのうち上位4バイトを読み出し、2番目の読み出しサイクルで倍幅単精度浮動小数点データのうち下位4バイトを読み出す。   When double-width single-precision floating point data read by a load instruction is read from two cache lines, A, T, M, B, R, and RT cycles are executed twice at intervals (FIG. 12A). (B)). The address generator 20 shown in FIG. 2 reads the upper 4 bytes of the double-width single precision floating point data in the first read cycle, and reads the lower 4 bytes of the double width single precision floating point data in the second read cycle. .

アドレス生成部20は、上位4バイトのデータをデータキャッシュ22から読み出すための最初のAサイクルにおいて、バイパス制御部24に制御信号ALDHおよびアドレスALDUBAを出力する(図12(c))。1番目のクロックサイクルにおいて、バイパス制御部24のセット信号生成回路SSGEN(図7)は、無効レベルの制御信号ALDLと有効レベルの制御信号ALDHとを受け、セット信号ASDSETを無効レベルに維持する(図12(d))。このため、バイパス管理テーブルBPTBLにおいて、アドレスALDUBAが示すフラグ領域FLGはセットされず、バイパス可能信号BPENは出力されない(図12(e))。   The address generation unit 20 outputs the control signal ALDH and the address ALDUBA to the bypass control unit 24 in the first A cycle for reading the upper 4 bytes of data from the data cache 22 (FIG. 12 (c)). In the first clock cycle, the set signal generation circuit SSGEN (FIG. 7) of the bypass control unit 24 receives the invalid level control signal ALDL and the valid level control signal ALDH, and maintains the set signal ASDSET at the invalid level ( FIG. 12 (d)). Therefore, in the bypass management table BPTBL, the flag area FLG indicated by the address ALDUBA is not set, and the bypass enable signal BPEN is not output (FIG. 12 (e)).

セット信号生成回路SSGENは、アドレスALDUBAを2クロックサイクル遅らせてアドレスMLDUBAを出力する(図12(f))。しかし、セット信号MLDSETが無効レベルに維持されるため、アドレスALDUBAが示すフラグ領域FLGはセットされず、バイパス可能信号BPENは出力されない(図12(g))。   The set signal generation circuit SSGEN delays the address ALDUBA by two clock cycles and outputs the address MLDUBA (FIG. 12 (f)). However, since the set signal MLDSET is maintained at the invalid level, the flag area FLG indicated by the address ALDUBA is not set, and the bypass enable signal BPEN is not output (FIG. 12 (g)).

データキャッシュ22は、最初のアクセスサイクルのRサイクルにおいて読み出した上位4バイトのデータをロードレジスタ30に転送する(図12(h))。リネーミングレジスタ部36の書き込み制御部WCNT3(図4)は、ロードレジスタ30から転送される上位4バイトのデータに基づいて、書き込み制御信号WE1Hを生成する(図12(i))。そして、書き込み制御部WCNT3は、リネーミングレジスタRNFRのいずれかに上位4バイトのデータを格納する(図12(j))。例えば、書き込み制御部WCNT3は、リザベーションステーション18から受ける有効レベルに設定されたバイパス可能信号BPENを示す情報に基づいてデータを格納するリネーミングレジスタRNFRを決定する。   The data cache 22 transfers the upper 4 bytes of data read in the R cycle of the first access cycle to the load register 30 (FIG. 12 (h)). The write control unit WCNT3 (FIG. 4) of the renaming register unit 36 generates the write control signal WE1H based on the upper 4 bytes of data transferred from the load register 30 (FIG. 12 (i)). Then, the write control unit WCNT3 stores the upper 4 bytes of data in any of the renaming registers RNFR ((j) in FIG. 12). For example, the write control unit WCNT3 determines a renaming register RNFR that stores data based on information indicating the bypassable signal BPEN set to an effective level received from the reservation station 18.

アドレス生成部20は、下位4バイトのデータをデータキャッシュ22から読み出すための最初のAサイクルにおいて、バイパス制御部24に制御信号ALDLおよびアドレスALDUBAを出力する(図12(k))。9番目のクロックサイクルにおいて、バイパス制御部24のセット信号生成回路SSGENは、有効レベルの制御信号ALDLと無効レベルの制御信号ALDHとを受け、セット信号ASDSETを無効レベルに維持する(図12(l))。このため、バイパス管理テーブルBPTBLにおいて、アドレスALDUBAが示すフラグ領域FLGはセットされず、バイパス可能信号BPENは出力されない(図12(m))。   The address generation unit 20 outputs the control signal ALDL and the address ALDUBA to the bypass control unit 24 in the first A cycle for reading the lower 4 bytes of data from the data cache 22 (FIG. 12 (k)). In the ninth clock cycle, the set signal generation circuit SSGEN of the bypass control unit 24 receives the control signal ALDL at the valid level and the control signal ALDH at the invalid level, and maintains the set signal ASDSET at the invalid level (FIG. 12 (l )). Therefore, in the bypass management table BPTBL, the flag area FLG indicated by the address ALDUBA is not set, and the bypass enable signal BPEN is not output (FIG. 12 (m)).

一方、セット信号生成回路SSGEN(図7)におけるサイクル信号生成部MSGENは、有効レベルの制御信号ALDLと無効レベルの制御信号ALDHと2クロックサイクル遅らせた信号を11番目のクロックサイクルに受ける。そして、サイクル信号生成部MSGENは、セット信号MLDSETを有効レベルに設定する(図12(n))。また、セット信号生成回路SSGENは、アドレスALDUBAを2クロックサイクル遅らせたアドレスMLDUBAを出力する(図12(o))。これにより、バイパス管理テーブルBPTBLにおいて、アドレスALDUBAが示すフラグ領域FLGがセットされ、バイパス可能信号BPENが出力される(図12(p))。   On the other hand, the cycle signal generation unit MSGEN in the set signal generation circuit SSGEN (FIG. 7) receives an effective level control signal ALDL, an invalid level control signal ALDH, and a signal delayed by two clock cycles in the eleventh clock cycle. Then, the cycle signal generation unit MSGEN sets the set signal MLDSET to an effective level (FIG. 12 (n)). The set signal generation circuit SSGEN outputs the address MLDUBA obtained by delaying the address ALDUBA by two clock cycles (FIG. 12 (o)). As a result, the flag area FLG indicated by the address ALDUBA is set in the bypass management table BPTBL, and the bypass enable signal BPEN is output (FIG. 12 (p)).

データキャッシュ22は、2番目のアクセスサイクルのRサイクルにおいて読み出した下位4バイトのデータをロードレジスタ30に転送する(図12(q))。リネーミングレジスタ部36の書き込み制御部WCNT3(図4)は、ロードレジスタ30から転送される下位4バイトのデータに基づいて、書き込み制御信号WE1Lを生成する(図12(r))。そして、書き込み制御部WCNT3は、リネーミングレジスタRNFRのいずれかに下位4バイトのデータを格納する(図12(s))。例えば、書き込み制御部WCNT3は、リザベーションステーション18から受ける有効レベルに設定されたバイパス可能信号BPENを示す情報に基づいてデータを格納するリネーミングレジスタRNFRを決定する。   The data cache 22 transfers the lower 4 bytes of data read in the R cycle of the second access cycle to the load register 30 ((q) in FIG. 12). The write control unit WCNT3 (FIG. 4) of the renaming register unit 36 generates the write control signal WE1L based on the lower 4 bytes of data transferred from the load register 30 (FIG. 12 (r)). Then, the write control unit WCNT3 stores the lower 4 bytes of data in any of the renaming registers RNFR (FIG. 12 (s)). For example, the write control unit WCNT3 determines a renaming register RNFR that stores data based on information indicating the bypassable signal BPEN set to an effective level received from the reservation station 18.

これにより、8バイトの倍幅単精度浮動小数点データがリネーミングレジスタRNFR内に揃い、リネーミングレジスタRNFRからの倍幅単精度浮動小数点データのバイパスが可能になる。なお、8バイトの倍幅単精度浮動小数点データが2つのキャッシュラインから読み出される場合、ロードレジスタ30は、上位4バイトのデータまたは下位4バイトのデータを互いに異なるタイミングで保持する。このため、ロードレジスタ30は、倍幅単精度浮動小数点データのバイパスには使用されない。換言すれば、バイパス制御部24は、バイパス可能信号BPENの出力サイクルを図10および図11に比べて遅らせ、ロードレジスタ30から浮動小数点演算器26へのデータのバイパスを禁止する。データが揃っていないロードレジスタ30からのバイパスを禁止することで、演算処理装置OPD2の誤動作を抑制することができる。   As a result, double-byte single-precision floating point data of 8 bytes is aligned in the renaming register RNFR, and the double-width single-precision floating point data from the renaming register RNFR can be bypassed. When 8-byte double-width single-precision floating-point data is read from two cache lines, the load register 30 holds upper 4 bytes data or lower 4 bytes data at different timings. For this reason, the load register 30 is not used for bypassing double-width single precision floating point data. In other words, the bypass control unit 24 delays the output cycle of the bypass enable signal BPEN as compared with FIGS. 10 and 11 and prohibits the bypass of data from the load register 30 to the floating point calculator 26. By prohibiting bypass from the load register 30 where data is not available, malfunction of the arithmetic processing unit OPD2 can be suppressed.

浮動小数点演算器26は、演算命令A、B、C、Dのそれぞれにおいて、B2サイクルでリネーミングレジスタRNFRからバイパスされるデータを選択し、選択したデータをX1サイクルで使用する(図12(t)、(u)、(v)、(w))。   In each of the arithmetic instructions A, B, C, and D, the floating point arithmetic unit 26 selects data to be bypassed from the renaming register RNFR in the B2 cycle, and uses the selected data in the X1 cycle (FIG. 12 (t ), (U), (v), (w)).

図12に示すように、倍幅単精度浮動小数点データが2つのキャッシュラインから読み出される場合、バイパス制御部24は、上位4バイトのデータより後に読み出される下位4バイトのデータの読み出しを待つ。さらに、バイパス制御部24は、下位4バイトのデータの読み出しの開始に対応する制御信号ALDLの生成から2クロックサイクル後に、フラグ領域FLGをセットし、バイパス可能信号BPENを出力する。   As shown in FIG. 12, when double-width single-precision floating point data is read from two cache lines, the bypass control unit 24 waits for reading of lower 4 bytes of data read after the upper 4 bytes of data. Further, the bypass control unit 24 sets the flag area FLG and outputs the bypass enable signal BPEN after two clock cycles from the generation of the control signal ALDL corresponding to the start of reading of the lower 4 bytes of data.

これにより、リザベーションステーションRSFLTは、図10に比べて2クロックサイクル遅くイネーブル信号BPENを受ける。データキャッシュ22からロードレジスタ30へのデータの転送は、演算命令AのPサイクルと同じサイクルで実行される。このため、演算命令AのPサイクルにおいて、リザベーションステーションRSFLTは、ロードレジスタ30からのデータのバイパスをあきらめ、リネーミングレジスタRNFRからデータをバイパスさせることを決定する。この結果、倍幅単精度浮動小数点データがリネーミングレジスタRNFRに揃う前に、ロードレジスタ30からデータがバイパスされることを抑止することができる。換言すれば、リザベーションステーションRSFLTは、演算命令AのPサイクルを、リネーミングレジスタRNFRからデータをバイパス可能な最も早いクロックサイクルに割り当てる。例えば、リネーミングレジスタRNFRからのデータの読み出しは2クロックサイクル掛かるため、演算命令AのPサイクルは、13番目のクロックサイクルに設定される。   Thereby, the reservation station RSFLT receives the enable signal BPEN two clock cycles later than in FIG. Data transfer from the data cache 22 to the load register 30 is executed in the same cycle as the P cycle of the operation instruction A. Therefore, in the P cycle of the operation instruction A, the reservation station RSFLT gives up bypassing the data from the load register 30 and decides to bypass the data from the renaming register RNFR. As a result, it is possible to prevent the data from being bypassed from the load register 30 before the double-width single-precision floating point data is arranged in the renaming register RNFR. In other words, the reservation station RSFLT assigns the P cycle of the operation instruction A to the earliest clock cycle that can bypass data from the renaming register RNFR. For example, since reading of data from the renaming register RNFR takes 2 clock cycles, the P cycle of the operation instruction A is set to the 13th clock cycle.

図13は、図2に示す演算処理装置OPD2の動作のさらなる別の例を示す。図10と同一または同様の動作については、詳細な説明は省略する。図13は、先行する浮動小数点データのロード命令または先行する浮動小数点データの演算命令の実行完了時の動作を示す。   FIG. 13 shows still another example of the operation of the arithmetic processing unit OPD2 shown in FIG. Detailed description of the same or similar operations as in FIG. 10 will be omitted. FIG. 13 shows the operation at the completion of the execution of the preceding floating point data load instruction or the preceding floating point data arithmetic instruction.

図13において、7番目と8番目のクロックサイクルのCサイクルとWサイクルは、以下に示すように、命令の実行が完了したときのコミット制御部44によるパイプラインのステージを示す。
(a)C(Commit):コミット制御部44が、命令の実行が完了したか否かを判定する。
(b)W(Write):コミット制御部44が、実行が完了した命令で使用したリネーミングレジスタRNFR、RNR、浮動小数点レジスタFR、固定小数点レジスタR等を更新する。また、コミット制御部44が、レジスタ管理テーブル16、リザベーションステーション18、バイパス制御部24等における命令で使用したリソースの解放を行う。
In FIG. 13, C and W cycles of the seventh and eighth clock cycles indicate pipeline stages by the commit control unit 44 when the execution of the instruction is completed, as will be described below.
(A) C (Commit): The commit control unit 44 determines whether or not the execution of the instruction is completed.
(B) W (Write): The commit control unit 44 updates the renaming registers RNFR and RNR, the floating-point register FR, the fixed-point register R, and the like used in the instruction that has been executed. In addition, the commit control unit 44 releases resources used in the instructions in the register management table 16, the reservation station 18, the bypass control unit 24, and the like.

例えば、先行するロード命令のRTサイクルまたは先行する演算命令のX4サイクルは、3番目のクロックサイクルで完了している。コミット制御部44は、命令の完了処理を、デコーダ部14が命令を解読した順(プログラムの記述順)に実行するため、Cサイクルは、先行して解読した命令の完了を待って実行される。この例では、X4サイクルまたはRTサイクルの4クロックサイクル後にCサイクルが実行される。なお、Cサイクルは、最短で、RTサイクルまたはX4サイクルの次のクロックサイクルで実行される。   For example, the RT cycle of the preceding load instruction or the X4 cycle of the preceding arithmetic instruction is completed in the third clock cycle. Since the commit control unit 44 executes instruction completion processing in the order in which the decoder unit 14 decodes the instructions (program description order), the C cycle is executed after completion of the previously decoded instruction. . In this example, the C cycle is executed after 4 clock cycles of the X4 cycle or the RT cycle. Note that the C cycle is executed in the shortest clock cycle after the RT cycle or the X4 cycle.

コミット制御部44は、Wサイクルにおいて、制御信号WCMTおよびアドレスWCMTUBAをバイパス制御部24に出力する(図13(a))。アドレスWCMTUBAは、ロード命令または演算命令で使用されたリネーミングレジスタRNFRを示す。   The commit control unit 44 outputs the control signal WCMT and the address WCMTUBA to the bypass control unit 24 in the W cycle (FIG. 13A). The address WCMTUBA indicates the renaming register RNFR used in the load instruction or the operation instruction.

また、コミット制御部44は、Wサイクルにおいて、レジスタ管理テーブル16にリセット信号RST1を出力し、リザベーションステーション18にリセット信号RST2を出力する(図13(b))。さらに、コミット制御部44は、Wサイクルにおいて、リネーミングレジスタ部36に読み出し要求RCMT1を出力する(図13(c))。コミット制御部44は、読み出し要求RCMT1から2クロックサイクル後に、浮動小数点レジスタ部40に書き込み要求WCMT1を出力する(図13(d))。図10で説明したように、2クロックサイクルは、リネーミングレジスタRNFRからの読み出しに掛かる時間である。   In the W cycle, the commit control unit 44 outputs the reset signal RST1 to the register management table 16, and outputs the reset signal RST2 to the reservation station 18 (FIG. 13 (b)). Further, the commit control unit 44 outputs a read request RCMT1 to the renaming register unit 36 in the W cycle (FIG. 13C). The commit control unit 44 outputs the write request WCMT1 to the floating point register unit 40 two clock cycles after the read request RCMT1 (FIG. 13 (d)). As described with reference to FIG. 10, two clock cycles are the time taken for reading from the renaming register RNFR.

なお、図13では、リセット信号RST1、RST2は、単一の信号で示されるが、リセット信号RST1、RST2のそれぞれは、複数ビットの信号である。例えば、リセット信号RST1、RST2は、アドレスWCMTUBAと同じ情報を含む。同様に、読み出し要求RCMT1および書き込み要求WCMT1のそれぞれは、単一の信号で示されるが、読み出し要求RCMT1および書き込み要求WCMT1のそれぞれは、複数ビットの信号である。例えば、読み出し要求RCMT1および書き込み要求WCMT1は、リネーミングレジスタRNFRおよび浮動小数点レジスタFRの番号を示す情報を含む。   In FIG. 13, the reset signals RST1 and RST2 are shown as a single signal, but each of the reset signals RST1 and RST2 is a multi-bit signal. For example, the reset signals RST1 and RST2 include the same information as the address WCMTUBA. Similarly, each of the read request RCMT1 and the write request WCMT1 is indicated by a single signal, but each of the read request RCMT1 and the write request WCMT1 is a multi-bit signal. For example, the read request RCMT1 and the write request WCMT1 include information indicating the numbers of the renaming register RNFR and the floating point register FR.

バイパス制御部24は、制御信号WCMTに応答してアドレスWCMTUBAが示すフラグ領域FLGをリセットすることでバイパス可能信号BPENを無効レベルに設定する(図13(e))。   The bypass control unit 24 sets the bypassable signal BPEN to an invalid level by resetting the flag area FLG indicated by the address WCMTUBA in response to the control signal WCMT (FIG. 13 (e)).

レジスタ管理テーブル16は、リセット信号RST1に基づいて、リセット信号RST1で指示されるリネーミングレジスタRNFRに対応する領域のビット値Pをリセットする(図13(f))。リザベーションステーション18は、リセット信号RST2に基づいて、リセット信号RST2で指示されるリネーミングレジスタRNFRに対応して保持しているビット値Pをリセットする。   Based on the reset signal RST1, the register management table 16 resets the bit value P in the area corresponding to the renaming register RNFR indicated by the reset signal RST1 (FIG. 13 (f)). The reservation station 18 resets the bit value P held corresponding to the renaming register RNFR instructed by the reset signal RST2 based on the reset signal RST2.

リネーミングレジスタ部36は、読み出し要求RCMT1に基づいて、読み出し要求RCMT1で指示されるリネーミングレジスタRNFRからデータを出力する。浮動小数点レジスタ部40は、書き込み要求WCMT1に基づいて、リネーミングレジスタRNFRから出力されるデータを、書き込み要求WCMT1で指示される浮動小数点レジスタFRに格納する(図13(g))。すなわち、リネーミングレジスタRNFRから浮動小数点レジスタFRにデータが転送される。   Based on the read request RCMT1, the renaming register unit 36 outputs data from the renaming register RNFR indicated by the read request RCMT1. Based on the write request WCMT1, the floating point register unit 40 stores the data output from the renaming register RNFR in the floating point register FR indicated by the write request WCMT1 (FIG. 13 (g)). That is, data is transferred from the renaming register RNFR to the floating point register FR.

リザベーションステーションRSFLTは、ビット値Pがリセットされる前の7番目のクロックサイクルで、リネーミングレジスタRNFRからデータをバイパス可能と判断する。そして、リザベーションステーションRSFLTは、8番目のクロックサイクルにおいて、演算命令AのPサイクルを実行し、演算命令Aを浮動小数点演算器26に投入する(図13(h))。   The reservation station RSFLT determines that data can be bypassed from the renaming register RNFR in the seventh clock cycle before the bit value P is reset. Then, the reservation station RSFLT executes the P cycle of the arithmetic instruction A in the eighth clock cycle, and inputs the arithmetic instruction A to the floating point arithmetic unit 26 (FIG. 13 (h)).

同様に、リザベーションステーションRSFLTは、ビット値Pがリセットされる前の8番目のクロックサイクルで、リネーミングレジスタRNFRからデータをバイパス可能と判断する。そして、リザベーションステーションRSFLTは、9番目のクロックサイクルにおいて、演算命令BのPサイクルを実行し、演算命令Bを浮動小数点演算器26に投入する(図13(i))。   Similarly, the reservation station RSFLT determines that data can be bypassed from the renaming register RNFR in the eighth clock cycle before the bit value P is reset. Then, the reservation station RSFLT executes the P cycle of the arithmetic instruction B in the ninth clock cycle, and inputs the arithmetic instruction B to the floating point arithmetic unit 26 (FIG. 13 (i)).

浮動小数点演算器26は、演算命令AのB2サイクルでリネーミングレジスタRNFRからバイパスされるデータを選択し、選択したデータをX1サイクルで使用する(図13(j))。浮動小数点演算器26は、演算命令BのB2サイクルでリネーミングレジスタRNFRからバイパスされるデータを選択し、選択したデータをX1サイクルで使用する(図13(k))。   The floating point arithmetic unit 26 selects data to be bypassed from the renaming register RNFR in the B2 cycle of the operation instruction A, and uses the selected data in the X1 cycle (FIG. 13 (j)). The floating point arithmetic unit 26 selects data to be bypassed from the renaming register RNFR in the B2 cycle of the operation instruction B, and uses the selected data in the X1 cycle (FIG. 13 (k)).

一方、リザベーションステーションRSFLTは、ビット値Pがリセットされた後の9番目のクロックサイクルで、リネーミングレジスタRNFRからのデータのバイパスは無理であると判断する。そして、リザベーションステーションRSFLTは、10番目のクロックサイクルにおいて、演算命令CのPサイクルを実行し、演算命令Cを浮動小数点演算器26に投入する(図13(l))。浮動小数点演算器26は、演算命令CのB2サイクルで浮動小数点レジスタFRからデータを読み出し、読み出したデータをX1サイクルで使用する(図13(m))。   On the other hand, the reservation station RSFLT determines that it is impossible to bypass data from the renaming register RNFR in the ninth clock cycle after the bit value P is reset. Then, the reservation station RSFLT executes the P cycle of the arithmetic instruction C in the tenth clock cycle, and inputs the arithmetic instruction C to the floating point arithmetic unit 26 (FIG. 13 (l)). The floating point arithmetic unit 26 reads data from the floating point register FR in the B2 cycle of the operation instruction C, and uses the read data in the X1 cycle (FIG. 13 (m)).

以上、図2から図13に示す実施形態においても、図1に示す実施形態と同様の効果を得ることができる。すなわち、データキャッシュ22からリネーミングレジスタRNFRへロードされるデータのタイミングずれが発生する場合にも、既存のリネーミングレジスタRNFRを利用してデータを待ち合わせることができる。また、バイパス制御部24は、図7で説明した簡易な回路により、データがデータキャッシュ22から1回で読み出されるか複数回に分けて読み出されるかを判定することができる。この結果、演算処理装置OPD2の回路規模の増加を抑制することができ、演算処理装置OPD2の消費電力の増加を抑えることができ、演算処理装置OPD2の動作周波数を向上させることができる。   As mentioned above, also in embodiment shown in FIGS. 2-13, the effect similar to embodiment shown in FIG. 1 can be acquired. That is, even when a timing shift occurs in data loaded from the data cache 22 to the renaming register RNFR, data can be waited using the existing renaming register RNFR. Further, the bypass control unit 24 can determine whether the data is read from the data cache 22 once or divided into a plurality of times by the simple circuit described with reference to FIG. As a result, an increase in the circuit scale of the arithmetic processing unit OPD2 can be suppressed, an increase in power consumption of the arithmetic processing device OPD2 can be suppressed, and the operating frequency of the arithmetic processing device OPD2 can be improved.

例えば、データがデータキャッシュ22から複数回に分けて読み出される場合にも、図4で説明したように、リネーミングレジスタ部36の回路規模を従来と同等にすることができる。また、データキャッシュ22から異なるタイミングで読み出されるデータをリネーミングレジスタRNFRで結合することできるため、データの結合用の回路は演算処理装置OPD2に設けられない。   For example, even when data is read from the data cache 22 in a plurality of times, as described with reference to FIG. 4, the circuit scale of the renaming register unit 36 can be made equivalent to the conventional one. In addition, since data read from the data cache 22 at different timings can be combined by the renaming register RNFR, a data combining circuit is not provided in the arithmetic processing unit OPD2.

さらに、データがデータキャッシュ22から複数回に分けて読み出される場合、バイパス制御部24は、データが揃っていないロードレジスタ30からのバイパスを禁止することで、演算処理装置OPD2の誤動作を抑制することができる。   Further, when the data is read from the data cache 22 in a plurality of times, the bypass control unit 24 suppresses malfunction of the arithmetic processing unit OPD2 by prohibiting bypass from the load register 30 in which data is not prepared. Can do.

一方、例えば、上位4バイトと下位4バイトとのデータに対応して、2ビットを記憶可能なフラグ領域FLGをバイパス管理テーブルBPTBLに設け、2ビットが両方セットされたときにデータが揃ったと判断して2つの4バイトデータを結合してもよい。しかしながら、この場合、バイパス管理テーブルBPTBLの規模が大きくなり、また、フラグ領域FLGの各ビットをセットする制御回路が追加される。さらに、データキャッシュ22の出力で上位4バイトと下位4バイトとのデータを結合する場合、下位4バイトのデータがデータキャッシュ22から出力されるまで、先に出力された上位4バイトのデータを保持するバッファ回路が設けられる。このため、回路規模は増加する。   On the other hand, for example, a flag area FLG that can store 2 bits is provided in the bypass management table BPTBL corresponding to the data of the upper 4 bytes and the lower 4 bytes, and it is determined that the data is ready when both 2 bits are set. Then, two 4-byte data may be combined. However, in this case, the size of the bypass management table BPTBL is increased, and a control circuit for setting each bit of the flag area FLG is added. Further, when the data of the upper 4 bytes and the lower 4 bytes are combined at the output of the data cache 22, the upper 4 bytes of data output first are held until the lower 4 bytes of data are output from the data cache 22. A buffer circuit is provided. For this reason, the circuit scale increases.

なお、図2から図13に示す実施形態は、ロード命令に基づいて、データキャッシュ22から複数回に分けて出力される固定小数点データを固定小数点レジスタRに転送する場合のバイパス制御に適用されてもよい。   The embodiment shown in FIGS. 2 to 13 is applied to bypass control when transferring fixed-point data output from the data cache 22 in a plurality of times to the fixed-point register R based on a load instruction. Also good.

また、上述した実施形態は、SIMD(single instruction multiple data)方式の演算処理装置に適用されてもよい。この場合、図3に示す各浮動小数点レジスタFRは、並列処理される複数のデータ群を格納する複数の領域を有し、図4に示す各リネーミングレジスタRNFRは、並列処理される複数のデータ群を格納する複数の領域を有する。また、浮動小数点演算器26は、複数のデータ群を並列に演算する複数の演算器を有する。なお、ロード命令に基づいて、データキャッシュ22から3回以上に分けてデータが読み出される場合、バイパス制御部は、最後に読み出すデータの開始信号(ALDL等)に基づいて、バイパス可能信号BPENを生成する。   Further, the above-described embodiment may be applied to a SIMD (single instruction multiple data) type arithmetic processing apparatus. In this case, each floating point register FR shown in FIG. 3 has a plurality of areas for storing a plurality of data groups to be processed in parallel, and each renaming register RNFR shown in FIG. 4 has a plurality of data to be processed in parallel. It has a plurality of areas for storing groups. The floating point arithmetic unit 26 includes a plurality of arithmetic units that operate a plurality of data groups in parallel. When the data is read from the data cache 22 in three or more times based on the load instruction, the bypass control unit generates the bypassable signal BPEN based on the start signal (ALDL or the like) of the data to be read last. To do.

以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。   From the above detailed description, features and advantages of the embodiments will become apparent. This is intended to cover the features and advantages of the embodiments described above without departing from the spirit and scope of the claims. Also, any improvement and modification should be readily conceivable by those having ordinary knowledge in the art. Therefore, there is no intention to limit the scope of the inventive embodiments to those described above, and appropriate modifications and equivalents included in the scope disclosed in the embodiments can be used.

1…デコーダ部;2…実行制御部;3…演算実行部;4…メモリ制御部;5…メモリ;6…バイパス制御部;7…第1レジスタ;8…第2レジスタ;9…レジスタ管理部;10…命令キャッシュ;12…命令バッファ;14…デコーダ部;16…レジスタ管理テーブル;18…リザベーションステーション;20…アドレス生成部;22…データキャッシュ;24…バイパス制御部;26…浮動小数点演算器;28…固定小数点演算器;30…ロードレジスタ;32、34…リザルトレジスタ;36、38…リネーミングレジスタ部;40…浮動小数点レジスタ部;42…固定小数点レジスタ部;44…コミット制御部;ALDL、ALDH…制御信号;ALDUBA…アドレス;ASGEN…サイクル信号生成部;BPEN…バイパス可能信号;BPTBL…バイパス管理テーブル;FLG…フラグ領域;FR…浮動小数点レジスタ;MREQ、MREQC…アクセス要求;MSGEN…サイクル信号生成部;OPD1、OPD2…演算処理装置;R…固定小数点レジスタ;RMTBL1、RMTBL2…テーブル;RNFR、RNR…リネーミングレジスタ;RSFLT、RSFIX、RSMA…リザベーションステーション;SSGEN…セット信号生成回路;TSCNT…テーブル   DESCRIPTION OF SYMBOLS 1 ... Decoder part; 2 ... Execution control part; 3 ... Arithmetic execution part; 4 ... Memory control part; 5 ... Memory; 6 ... Bypass control part; 7 ... 1st register; 10 ... Instruction cache; 12 ... Instruction buffer; 14 ... Decoder unit; 16 ... Register management table; 18 ... Reservation station; 20 ... Address generation unit; 22 ... Data cache; 24 ... Bypass control unit; 28 ... Fixed point arithmetic unit; 30 ... Load register; 32, 34 ... Result register; 36, 38 ... Renaming register unit; 40 ... Floating point register unit; 42 ... Fixed point register unit; 44 ... Commit control unit; , ALDH ... control signal; ALDUBA ... address; ASGEN ... cycle signal generator; BPEN ... bypassable BPTBL ... Bypass management table; FLG ... Flag area; FR ... Floating point register; MREQ, MREQC ... Access request; MSGEN ... Cycle signal generator; OPD1, OPD2 ... Arithmetic processing unit; ... Table; RNFR, RNR ... Renaming register; RSFLT, RSFIX, RSMA ... Reservation station; SSGEN ... Set signal generation circuit; TSCNT ... Table

Claims (7)

命令を解読するデコーダ部と、
前記デコーダ部が解読した命令を保持し、実行可能な命令を順次に出力する実行制御部と、
前記実行制御部から受ける演算の実行を示す演算命令に基づいて演算を実行する演算実行部と、
前記演算実行部で使用するデータを記憶するメモリと、
前記演算実行部が実行する演算に使用するデータを保持する複数の第1レジスタと、
演算に使用する第1レジスタに対応して割り当てられ、前記演算命令または前記メモリアクセス命令の実行により得られるデータを前記第1レジスタに転送する前に一時的に保持する複数の第2レジスタと、
前記第1レジスタと前記第2レジスタとの割り当ての関係を保持し、前記実行制御部により参照されるレジスタ管理部と、
前記実行制御部から受ける前記メモリからデータを読み出すメモリアクセス命令に基づいて前記メモリにアクセス要求を出力するメモリ制御部と、
前記メモリ制御部が前記メモリアクセス命令に基づいて複数の前記アクセス要求を出力し、前記メモリから複数回に分けて読み出されるデータを前記第2レジスタに順次に転送する場合、前記メモリから最後に読み出されるデータが前記第2レジスタに転送された後に前記第2レジスタから前記演算実行部へデータをバイパスするタイミングで、前記実行制御部に前記演算命令を出力させるバイパス制御部を有することを特徴とする演算処理装置。
A decoder unit for decoding instructions;
An execution control unit that holds instructions decoded by the decoder unit and sequentially outputs executable instructions;
An operation execution unit that executes an operation based on an operation instruction indicating execution of the operation received from the execution control unit;
A memory for storing data used in the calculation execution unit;
A plurality of first registers for holding data used for the calculation executed by the calculation execution unit;
A plurality of second registers assigned corresponding to the first register used for the operation and temporarily holding the data obtained by executing the operation instruction or the memory access instruction before transferring to the first register;
A register management unit that holds an allocation relationship between the first register and the second register and is referred to by the execution control unit;
A memory control unit that outputs an access request to the memory based on a memory access instruction for reading data from the memory received from the execution control unit;
When the memory control unit outputs a plurality of the access requests based on the memory access command and sequentially transfers the data read out from the memory in a plurality of times to the second register, it is read out last from the memory. And a bypass control unit that causes the execution control unit to output the arithmetic instruction at a timing to bypass the data from the second register to the arithmetic execution unit after the data to be transferred is transferred to the second register. Arithmetic processing unit.
前記メモリ制御部は、前記メモリアクセス命令に基づいて、複数のデータ群を含むデータを前記メモリから読み出し、前記複数のデータ群それぞれの前記メモリからの読み出しの開始を示す複数の開始信号を前記バイパス制御部に出力し、
前記バイパス制御部は、前記複数のデータ群に対応する前記開始信号を異なるタイミングで受けた場合、前記第2レジスタから前記演算実行部へのデータのバイパスを許可するバイパス可能信号を、前記メモリ制御部から最後の開始信号を受信してから所定のサイクル後に出力し、全ての前記複数のデータ群に対応する前記開始信号を共通なタイミングで受けた場合、前記バイパス可能信号を前記開始信号の受信に基づいて出力し、
前記実行制御部は、前記バイパス可能信号の受信後、前記第2レジスタから前記演算実行部へのデータのバイパスを可能にするタイミングで前記演算実行部に前記演算命令を出力することを特徴とする請求項1記載の演算処理装置。
The memory control unit reads data including a plurality of data groups from the memory based on the memory access instruction, and bypasses a plurality of start signals indicating the start of reading of the plurality of data groups from the memory. Output to the control unit,
When the bypass control unit receives the start signal corresponding to the plurality of data groups at different timings, the bypass control unit allows the bypass control signal to permit bypassing of data from the second register to the arithmetic execution unit. When the start signal corresponding to all of the plurality of data groups is received at a common timing after the last start signal is received from the unit, the bypassable signal is received. Output based on
The execution control unit outputs the operation instruction to the operation execution unit at a timing enabling data bypass from the second register to the operation execution unit after receiving the bypass enable signal. The arithmetic processing apparatus according to claim 1.
前記バイパス制御部は、
複数の前記開始信号の前記共通なタイミングでの受信に基づいて第1セット信号を生成する第1生成回路と、
前記最後の開始信号の受信から前記所定のサイクル後に第2セット信号を生成する第2生成回路と、
前記第1セット信号または前記第2セット信号に基づいて、前記バイパス可能信号を出力する出力回路を有することを特徴とする請求項2記載の演算処理装置。
The bypass control unit
A first generation circuit that generates a first set signal based on reception of a plurality of the start signals at the common timing;
A second generation circuit for generating a second set signal after the predetermined cycle from reception of the last start signal;
The arithmetic processing apparatus according to claim 2, further comprising an output circuit that outputs the bypassable signal based on the first set signal or the second set signal.
前記各第2レジスタは、前記メモリから複数回に分けて読み出される前記複数のデータ群のそれぞれを格納する複数の記憶領域を有し、
演算処理装置は、さらに、
前記メモリから前記複数のデータ群が複数回に分けて読み出される場合、前記複数のデータ群のそれぞれを前記複数の記憶領域に格納する複数の書き込み制御信号を前記データ群毎に順次に生成し、前記メモリから前記複数のデータ群が一度に読み出される場合、前記複数の書き込み制御信号を共通なタイミングで生成する書き込み制御部を有することを特徴とする請求項2または請求項3記載の演算処理装置。
Each of the second registers has a plurality of storage areas for storing each of the plurality of data groups read from the memory in a plurality of times,
The arithmetic processing unit further includes:
When the plurality of data groups are read from the memory in a plurality of times, a plurality of write control signals for storing each of the plurality of data groups in the plurality of storage areas are sequentially generated for each data group, 4. The arithmetic processing device according to claim 2, further comprising: a write control unit configured to generate the plurality of write control signals at a common timing when the plurality of data groups are read from the memory at a time. .
前記メモリは、データを記憶する複数のキャッシュラインを含むデータキャッシュを有し、
前記メモリ制御部は、前記メモリアクセス命令に基づいて前記データキャッシュから読み出すデータが、前記複数のキャッシュラインに跨いで保持される場合、前記キャッシュライン毎に前記アクセス要求を順次に出力することを特徴とする請求項1ないし請求項4のいずれか1項記載の演算処理装置。
The memory has a data cache including a plurality of cache lines for storing data;
The memory control unit sequentially outputs the access request for each cache line when data read from the data cache based on the memory access instruction is held across the plurality of cache lines. The arithmetic processing apparatus according to claim 1, wherein:
演算処理装置は、さらに、
前記メモリと前記第2レジスタの間に配置され、前記メモリから読み出されるデータを前記第2レジスタに転送する前に一時的に保持する第3レジスタを有し、
前記メモリ制御部がデータを前記メモリから複数回に分けて読み出す場合、前記バイパス制御部は、前記第3レジスタから前記演算実行部へのデータのバイパスを禁止することを特徴とする請求項1ないし請求項5のいずれか1項記載の演算処理装置。
The arithmetic processing unit further includes:
A third register disposed between the memory and the second register and temporarily holding data read from the memory before being transferred to the second register;
The bypass control unit prohibits bypassing of data from the third register to the arithmetic execution unit when the memory control unit reads data from the memory in a plurality of times. The arithmetic processing device according to claim 5.
命令を解読するデコーダ部と、前記デコーダ部が解読した命令を保持し、実行可能な命令を順次に出力する実行制御部と、前記実行制御部から受ける演算の実行を示す演算命令に基づいて演算を実行する演算実行部と、前記演算実行部で使用するデータを記憶するメモリと、前記演算実行部が実行する演算に使用するデータを保持する複数の第1レジスタと、演算に使用する第1レジスタに対応して割り当てられ、前記演算命令または前記メモリアクセス命令の実行により得られるデータを前記第1レジスタに転送する前に一時的に保持する複数の第2レジスタと、前記第1レジスタと前記第2レジスタとの割り当ての関係を保持し、前記実行制御部により参照されるレジスタ管理部を有する演算処理装置の制御方法において、
前記演算処理装置が有するメモリ制御部が、前記実行制御部から受ける前記メモリからデータを読み出すメモリアクセス命令に基づいて前記メモリにアクセス要求を出力し、
前記メモリ制御部が前記メモリアクセス命令に基づいて複数の前記アクセス要求を出力し、前記メモリから複数回に分けて読み出されるデータを前記第2レジスタに順次に転送する場合、前記演算処理装置が有するバイパス制御部が、前記メモリから最後に読み出されるデータが前記第2レジスタに転送された後に前記第2レジスタから前記演算実行部へデータをバイパスするタイミングで、前記実行制御部に前記演算命令を出力させることを特徴とする演算処理装置の制御方法。
A decoder unit that decodes an instruction, an execution control unit that holds instructions decoded by the decoder unit, and sequentially outputs executable instructions, and an operation based on an operation instruction that indicates execution of an operation received from the execution control unit A calculation execution unit that executes data, a memory that stores data used by the calculation execution unit, a plurality of first registers that hold data used for calculation performed by the calculation execution unit, and a first that is used for calculation A plurality of second registers that are allocated corresponding to the registers and temporarily hold before transferring the data obtained by executing the operation instruction or the memory access instruction to the first register; the first register; In a control method of an arithmetic processing unit having a register management unit that holds an allocation relationship with a second register and is referenced by the execution control unit,
The memory control unit included in the arithmetic processing unit outputs an access request to the memory based on a memory access instruction for reading data from the memory received from the execution control unit,
When the memory control unit outputs a plurality of the access requests based on the memory access instruction and sequentially transfers data read out from the memory in a plurality of times to the second register, the arithmetic processing unit has The bypass control unit outputs the arithmetic instruction to the execution control unit at a timing to bypass the data from the second register to the arithmetic execution unit after the data read last from the memory is transferred to the second register A control method for an arithmetic processing device, characterized in that:
JP2014079229A 2014-04-08 2014-04-08 Arithmetic processing device and control method of arithmetic processing device Active JP6344022B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014079229A JP6344022B2 (en) 2014-04-08 2014-04-08 Arithmetic processing device and control method of arithmetic processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014079229A JP6344022B2 (en) 2014-04-08 2014-04-08 Arithmetic processing device and control method of arithmetic processing device

Publications (2)

Publication Number Publication Date
JP2015201026A true JP2015201026A (en) 2015-11-12
JP6344022B2 JP6344022B2 (en) 2018-06-20

Family

ID=54552237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014079229A Active JP6344022B2 (en) 2014-04-08 2014-04-08 Arithmetic processing device and control method of arithmetic processing device

Country Status (1)

Country Link
JP (1) JP6344022B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110988950A (en) * 2018-10-03 2020-04-10 古野电气株式会社 Navigation device, method for generating navigation assistance information, and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09138748A (en) * 1995-09-11 1997-05-27 Internatl Business Mach Corp <Ibm> Method and apparatus for early completion of floating-point instruction
US5664215A (en) * 1994-06-03 1997-09-02 Motorola, Inc. Data processor with an execution unit for performing load instructions and method of operation
JPH10161872A (en) * 1996-07-16 1998-06-19 Internatl Business Mach Corp <Ibm> Method and device for positioning instruction data
JP2006073025A (en) * 1992-09-29 2006-03-16 Seiko Epson Corp Computer system
JP2014044509A (en) * 2012-08-24 2014-03-13 Fujitsu Ltd Arithmetic processing unit and control method of the same

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006073025A (en) * 1992-09-29 2006-03-16 Seiko Epson Corp Computer system
US5664215A (en) * 1994-06-03 1997-09-02 Motorola, Inc. Data processor with an execution unit for performing load instructions and method of operation
JPH09138748A (en) * 1995-09-11 1997-05-27 Internatl Business Mach Corp <Ibm> Method and apparatus for early completion of floating-point instruction
US5850563A (en) * 1995-09-11 1998-12-15 International Business Machines Corporation Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
JPH10161872A (en) * 1996-07-16 1998-06-19 Internatl Business Mach Corp <Ibm> Method and device for positioning instruction data
US5802556A (en) * 1996-07-16 1998-09-01 International Business Machines Corporation Method and apparatus for correcting misaligned instruction data
JP2014044509A (en) * 2012-08-24 2014-03-13 Fujitsu Ltd Arithmetic processing unit and control method of the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110988950A (en) * 2018-10-03 2020-04-10 古野电气株式会社 Navigation device, method for generating navigation assistance information, and storage medium

Also Published As

Publication number Publication date
JP6344022B2 (en) 2018-06-20

Similar Documents

Publication Publication Date Title
US20210026634A1 (en) Apparatus with reduced hardware register set using register-emulating memory location to emulate architectural register
JP6143872B2 (en) Apparatus, method, and system
CN106648843B (en) System, method and apparatus for improving throughput of contiguous transactional memory regions
US9239735B2 (en) Compiler-control method for load speculation in a statically scheduled microprocessor
JP5661863B2 (en) System and method for data transfer in an execution device
US9652392B2 (en) Using L1 cache as re-order buffer
US20150106598A1 (en) Computer Processor Employing Efficient Bypass Network For Result Operand Routing
JP5758515B2 (en) System and method for move removal using bypass multiple instantiation tables
JP5209933B2 (en) Data processing device
US10691462B2 (en) Compact linked-list-based multi-threaded instruction graduation buffer
CN109564546B (en) Tracking stores and loads by bypassing load store units
JP2017538213A (en) Method and apparatus for implementing and maintaining a stack of predicate values using stack synchronization instructions in an out-of-order hardware software co-design processor
KR20160031503A (en) Method and apparatus for selective renaming in a microprocessor
KR20150139931A (en) Mode dependent partial width load to wider register processors, methods, and systems
TWI608412B (en) An adaptive optimized compare-exchange operation
JPH0496825A (en) Data processor
US10296341B2 (en) Latest producer tracking in an out-of-order processor, and applications thereof
US20140095814A1 (en) Memory Renaming Mechanism in Microarchitecture
CN110554887A (en) Indirect memory fetcher
JP4985452B2 (en) Vector processing equipment
JP5949327B2 (en) Arithmetic processing device and control method of arithmetic processing device
JP6344022B2 (en) Arithmetic processing device and control method of arithmetic processing device
JP4444305B2 (en) Semiconductor device
US9176738B2 (en) Method and apparatus for fast decoding and enhancing execution speed of an instruction
US9710389B2 (en) Method and apparatus for memory aliasing detection in an out-of-order instruction execution platform

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170110

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20170803

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20170803

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180206

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180327

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180507

R150 Certificate of patent or registration of utility model

Ref document number: 6344022

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150