JP2008217154A - Data processor and data processing method - Google Patents

Data processor and data processing method Download PDF

Info

Publication number
JP2008217154A
JP2008217154A JP2007050561A JP2007050561A JP2008217154A JP 2008217154 A JP2008217154 A JP 2008217154A JP 2007050561 A JP2007050561 A JP 2007050561A JP 2007050561 A JP2007050561 A JP 2007050561A JP 2008217154 A JP2008217154 A JP 2008217154A
Authority
JP
Japan
Prior art keywords
instruction
source
destination
register number
register
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
JP2007050561A
Other languages
Japanese (ja)
Other versions
JP4996945B2 (en
Inventor
Yasuhiko Nakajima
康彦 中島
Masato Kataoka
晶人 片岡
Toshiaki Kitamura
俊明 北村
Atsuhiro Suga
敦浩 須賀
Yukimasa Miyamoto
幸昌 宮本
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.)
HIROSHIMA ICHI
Nara Institute of Science and Technology NUC
Semiconductor Technology Academic Research Center
Original Assignee
HIROSHIMA ICHI
Nara Institute of Science and Technology NUC
Semiconductor Technology Academic Research Center
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 HIROSHIMA ICHI, Nara Institute of Science and Technology NUC, Semiconductor Technology Academic Research Center filed Critical HIROSHIMA ICHI
Priority to JP2007050561A priority Critical patent/JP4996945B2/en
Publication of JP2008217154A publication Critical patent/JP2008217154A/en
Application granted granted Critical
Publication of JP4996945B2 publication Critical patent/JP4996945B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To more improve operation frequency, and to more suppress power consumption than a conventional manner in a data processor for quickly and simultaneously executing a plurality of mechanical word instructions. <P>SOLUTION: A data processor is provided with a VLIW instruction queue 140 for storing the set of a plurality of source register numbers and destination register numbers in predetermined storage positions corresponding to the execution sequence of mechanical word instructions to designate the source register numbers and the destination register numbers; and an input stand-by register 170 for extracting and storing the value of the source register included in the mechanical word instruction whose execution sequence is the earliest and the destination register number included in the mechanical word instruction stored in the VLIW instruction queue 140. Thus, it is possible to issue only the mechanical word instruction whose execution sequence is the earliest, and to improve the operation frequency of the whole data processor. Also, it is possible to suppress the size of the storage region by storing only the register number. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、複数の機械語命令を高速に同時実行するためのデータ処理装置、データ処理方法に関するものである。   The present invention relates to a data processing apparatus and a data processing method for simultaneously executing a plurality of machine language instructions at high speed.

近年の携帯端末機器や組み込みシステムでは、OS(operating system)などの命令レベル並列度を期待できないプログラムと、マルチメディア処理など高い命令レベル並列度を期待できるプログラムとを同時に実行することが一般化している。また、一般的に、OSなどの制御プログラムには業界標準のプロセッサを用いる方が好ましく、一方、マルチメディア処理には並列処理性能の高い低電力プロセッサを用いる方が好ましい。したがって、同時に実行するプログラムは、必ずしも同一命令セットアーキテクチャに基づかないものとなってきている。   In recent portable terminal devices and embedded systems, it has become common to simultaneously execute programs such as an OS (operating system) that cannot expect instruction level parallelism and programs that can expect high instruction level parallelism such as multimedia processing. Yes. In general, it is preferable to use an industry standard processor for a control program such as an OS, while it is preferable to use a low-power processor with high parallel processing performance for multimedia processing. Therefore, programs that are executed simultaneously are not necessarily based on the same instruction set architecture.

複数の命令を同時に実行する処理方式として、スーパスカラ方式が一般的である。図9を参照しながら、一般的なスーパスカラ方式のパイプライン構成について説明する。図9は、パイプラインの各ステージを示すブロック図である。図9に示すように、この例では、7つのステージを経て命令が実行される。   As a processing method for executing a plurality of instructions simultaneously, a superscalar method is generally used. A general superscalar pipeline structure will be described with reference to FIG. FIG. 9 is a block diagram showing each stage of the pipeline. As shown in FIG. 9, in this example, an instruction is executed through seven stages.

まず、ステージS1では、命令フェッチ(IF)を行う。すなわち、図示しない命令キャッシュから命令を取り出す。次にステージS2では、命令のデコード処理(HOST-D)を行う。すなわち、フェッチした命令のソースレジスタ番号およびデスティネーションレジスタ番号を取り出す。ここで、ソースレジスタとは、演算する値を格納しているレジスタである。また、デスティネーションレジスタとは演算結果を格納するレジスタである。   First, in stage S1, instruction fetch (IF) is performed. That is, an instruction is fetched from an instruction cache (not shown). Next, in stage S2, instruction decode processing (HOST-D) is performed. That is, the source register number and destination register number of the fetched instruction are extracted. Here, the source register is a register that stores a value to be calculated. The destination register is a register for storing the operation result.

次に、ステージS3では、命令間の依存関係検査(MAP)を行う。すなわち、命令間のレジスタ依存関係を解消するため、論理レジスタから物理レジスタへのマッピング(レジスタリネーミング)を行う。   Next, in stage S3, a dependency check (MAP) between instructions is performed. In other words, in order to eliminate the register dependency between instructions, mapping from a logical register to a physical register (register renaming) is performed.

次に、ステージS4では命令の待ち合わせおよび命令発行(SEL/RD)を行う。次に、ステージS5では、ソースレジスタ値を演算器に投入し、演算を実行する。ここでは、演算器として、算術論理演算器(ALU)、シフト演算器(Shift)、アドレス演算器(Addr)、キャッシュ(Cache)の4種類を例に挙げている。なお、上記4種類の演算器に限られるものではない。例えば、さらに別の算術論理演算器を備えてもよい。   Next, in stage S4, instruction waiting and instruction issuance (SEL / RD) are performed. Next, in stage S5, the source register value is input to the calculator and the calculation is executed. Here, four types of arithmetic units, such as an arithmetic logic unit (ALU), a shift arithmetic unit (Shift), an address arithmetic unit (Addr), and a cache (Cache) are exemplified. Note that the present invention is not limited to the above four types of arithmetic units. For example, another arithmetic logic unit may be provided.

次に、ステージS6では、演算結果をレジスタに書き込む(WR)。そして最後に、ステージS7では、レジスタの更新(RETIRE)を行う。すなわち、命令の実行が完了したとき、マッピングした物理レジスタを解放し、また、論理レジスタを更新する。
(従来技術1)
次に、図10を参照しながら、スーパスカラ方式により複数命令を同時実行する従来のデータ処理装置(非特許文献1から3参照)について説明する。図10は、従来のデータ処理装置500の構成を示すブロック図である。
Next, in stage S6, the operation result is written to the register (WR). Finally, in stage S7, the register is updated (RETIRE). That is, when the execution of the instruction is completed, the mapped physical register is released, and the logical register is updated.
(Prior art 1)
Next, a conventional data processing apparatus (see Non-Patent Documents 1 to 3) that simultaneously executes a plurality of instructions by the superscalar method will be described with reference to FIG. FIG. 10 is a block diagram showing a configuration of a conventional data processing apparatus 500. As shown in FIG.

ここで、データ処理装置500は、一度に4つの命令を同時実行するものとして説明する。また、データ処理装置500は、演算ユニットとして、算術論理演算器581(ALU)と、シフト演算器582(Shift)と、アドレス演算器583(Addr)と、キャッシュ584(Cache)とをそれぞれ1つずつ備えるものとする。また、上記4種類の演算器はいずれも3オペランド方式、すなわち、2つのソースレジスタにて指定される値を用いて演算を行い、演算結果をデスティネーションレジスタに格納するものとする。なお、4オペランド方式や5オペランド方式の演算については、3オペランド方式の演算に分解して実行すればよい。   Here, it is assumed that the data processing apparatus 500 executes four instructions at the same time. In addition, the data processing device 500 includes one arithmetic logic unit 581 (ALU), one shift unit 582 (Shift), one address unit 583 (Addr), and one cache 584 (Cache) as arithmetic units. It shall be prepared one by one. In addition, the above four types of arithmetic units all perform arithmetic using the three-operand method, that is, values specified by two source registers, and store the arithmetic results in the destination register. Note that the 4-operand or 5-operand operation may be divided into three-operand operations.

図10を参照しながら、データ処理装置500が4つの命令を同時実行する処理の流れをステージ毎に説明する。なお、図10では、命令フェッチ(IF)を行うステージ、命令のデコード処理(HOST-D)を行うステージ、および、レジスタの更新(RETIRE)を行うステージについては、図示を省略している。   With reference to FIG. 10, the flow of processing in which the data processing apparatus 500 simultaneously executes four instructions will be described for each stage. In FIG. 10, the stage for performing instruction fetch (IF), the stage for performing instruction decoding (HOST-D), and the stage for performing register update (RETIRE) are not shown.

まず、図10に示す各ステージで行う処理概要を以下に示す。Renameステージ501では、命令間のレジスタ依存関係を解消する。次に、Readステージ502では、依存関係を解消した後の仮のレジスタ値を読み出す。そして、Dispatchステージ503では、所定の条件が満たされるまで命令を待機させるためのリザベーションステーション551へレジスタ値を登録する。そして最後に、Executeステージ504では、リザベーションステーション551から各演算器にレジスタ値を投入し、演算を実行する。   First, an outline of processing performed in each stage shown in FIG. 10 is shown below. In the Rename stage 501, the register dependency between instructions is canceled. Next, in the Read stage 502, the temporary register value after the dependency relationship is canceled is read. In the Dispatch stage 503, the register value is registered in the reservation station 551 for waiting for an instruction until a predetermined condition is satisfied. Finally, in the Execute stage 504, the register value is input from the reservation station 551 to each calculator, and the calculation is executed.

次に、図10に示す各ステージで行う処理の詳細を以下に示す。Renameステージ501では、命令間のレジスタ依存関係を解消する。そのために、まず、依存関係検査部515が、デコード部510がデコードした各命令のソースレジスタ番号およびデスティネーションレジスタ番号の組を入力し、命令間のレジスタ依存関係を解消する処理を行う。そして、依存関係を解消したソースレジスタ番号およびデスティネーションレジスタ番号の組を出力する。この例では、命令毎に、2つのソースレジスタ番号(s)およびデスティネーションレジスタ番号(d)の組511、512、513、514を、依存関係検査部515に入力している。そして、依存関係検査部515は、それぞれに対してレジスタ依存関係を解消した後のソースレジスタ番号(S)およびデスティネーションレジスタ番号(D)の組516、517、518、519を出力する。   Next, details of processing performed in each stage shown in FIG. 10 are shown below. In the Rename stage 501, the register dependency between instructions is canceled. For this purpose, first, the dependency checking unit 515 inputs a set of the source register number and destination register number of each instruction decoded by the decoding unit 510, and performs a process of eliminating the register dependency between instructions. Then, a set of the source register number and the destination register number for which the dependency relationship is eliminated is output. In this example, for each instruction, a set 511, 512, 513, 514 of two source register numbers (s) and destination register numbers (d) is input to the dependency checking unit 515. Then, the dependency relationship inspecting unit 515 outputs a set 516, 517, 518, 519 of the source register number (S) and the destination register number (D) after canceling the register dependency.

次に、Readステージ502では、一度に8つのレジスタ読み出しを行う。すなわち、上記依存関係を解消した組516、517、518、519の2つのソースレジスタ(S)の値541〜544を、入力待ちレジスタ536を経由して読み出す。   Next, in the Read stage 502, eight registers are read at a time. That is, the values 541 to 544 of the two source registers (S) of the sets 516, 517, 518, and 519 for which the dependency relationship has been eliminated are read via the input wait register 536.

次に、Dispatchステージ503では、各命令のソースレジスタ番号(S)、上記読み出したソースレジスタ値541〜544、および、デスティネーションレジスタ番号(D)を、キューであるリザベーションステーション551に登録する。ここで、リザベーションステーション551は、演算器(算術論理演算器581、シフト演算器582、アドレス演算器583、キャッシュ584)ごとに設けられている。また、ここでは、リザベーションステーション551のエントリ数は4としている。すなわち、リザベーションステーション551は、演算器毎に4つの命令を待機させることができる。なお、エントリ数は4に限定されるものではなく、4より多くてもよいし、4より少なくてもよい。   Next, in the Dispatch stage 503, the source register number (S) of each instruction, the read source register values 541 to 544, and the destination register number (D) are registered in the reservation station 551 that is a queue. Here, the reservation station 551 is provided for each computing unit (arithmetic logic computing unit 581, shift computing unit 582, address computing unit 583, cache 584). Here, the number of entries in the reservation station 551 is four. That is, the reservation station 551 can wait for four instructions for each computing unit. The number of entries is not limited to four, and may be more than four or less than four.

また、リザベーションステーション551に登録されるソースレジスタ番号のそれぞれには、先行命令の演算結果が格納されるパイプラインレジスタ585〜588からの信号を受け取るフォワーディング590が設けられている。フォワーディング590は、リザベーションステーション551に待機しているソースレジスタ番号と、先行命令の演算結果が格納されるパイプラインレジスタ585〜588のレジスタ番号とを比較するために用いられる。それらを比較した結果、それらの番号が一致すれば、待機している命令が使用するソースレジスタをデスティネーションレジスタとして使用した先行命令の演算が完了したことを意味する。この場合、例えば、そのソースレジスタの値を演算器に投入可能である旨のフラグ(例えば「1」)を立てる。   Each of the source register numbers registered in the reservation station 551 is provided with a forwarding 590 for receiving a signal from the pipeline registers 585 to 588 in which the calculation result of the preceding instruction is stored. The forwarding 590 is used to compare the source register number waiting in the reservation station 551 with the register numbers of pipeline registers 585 to 588 in which the operation result of the preceding instruction is stored. If the numbers match as a result of comparing them, it means that the operation of the preceding instruction using the source register used by the waiting instruction as the destination register is completed. In this case, for example, a flag (for example, “1”) indicating that the value of the source register can be input to the arithmetic unit is set.

そして、Executeステージ504では、リザベーションステーション551に待機している2つのソースレジスタのいずれにもフラグ「1」が立ったとき、該待機している2つのソースレジスタ値を演算器に投入し、演算を実行する。そのために、リザベーションステーション551内の全てのエントリから演算器に対して配線が設けられている。   Then, in the Execute stage 504, when the flag “1” is set in any of the two source registers that are waiting in the reservation station 551, the two source register values that are waiting are input to the arithmetic unit. Execute. For this purpose, wiring is provided from all the entries in the reservation station 551 to the computing unit.

そして、演算器での演算結果をパイプラインレジスタ585〜588に書き込むと同時に、フォワーディング590を介して、リザベーションステーション551に待機している全てのソースレジスタに対して送信する。また同時に、演算結果を入力待ちレジスタ536に格納し、Readステージ502での読み出し対象とする。
(従来技術2)
次に、図11を参照しながら、スーパスカラ方式により複数命令を同時実行する、他の従来のデータ処理装置(非特許文献4参照)について説明する。図11は、他の従来のデータ処理装置505の構成を示すブロック図である。
Then, the calculation result of the calculator is written into the pipeline registers 585 to 588 and simultaneously transmitted to all the source registers waiting in the reservation station 551 via the forwarding 590. At the same time, the operation result is stored in the input wait register 536 and is read out by the read stage 502.
(Prior art 2)
Next, another conventional data processing apparatus (see Non-Patent Document 4) that simultaneously executes a plurality of instructions by the superscalar method will be described with reference to FIG. FIG. 11 is a block diagram showing the configuration of another conventional data processing apparatus 505. As shown in FIG.

ここで、データ処理装置505は、一度に4つの命令を同時実行するものとして説明する。また、データ処理装置505は、演算ユニットとして、算術論理演算器581(ALU)と、シフト演算器582(Shift)と、アドレス演算器583(Addr)と、キャッシュ584(Cache)とをそれぞれ1つずつ備えるものとする。また、上記4種類の演算器はいずれも3オペランド方式、すなわち、2つのソースレジスタにて指定される値を用いて演算を行い、演算結果をデスティネーションレジスタに格納するものとする。なお、4オペランド方式や5オペランド方式の演算については、3オペランド方式の演算に分解してから実行すればよい。   Here, the data processing device 505 will be described as executing four instructions at the same time. Further, the data processing device 505 includes one arithmetic logic unit 581 (ALU), a shift unit 582 (Shift), an address unit 583 (Addr), and a cache 584 (Cache) as arithmetic units. It shall be prepared one by one. In addition, the above four types of arithmetic units all perform arithmetic using the three-operand method, that is, values specified by two source registers, and store the arithmetic results in the destination register. It should be noted that a 4-operand or 5-operand operation may be executed after being decomposed into a 3-operand operation.

図11を参照しながら、データ処理装置505が4つの命令を同時実行する処理の流れをステージ毎に説明する。なお、図11では、命令フェッチ(IF)を行うステージ、命令のデコード処理(HOST-D)を行うステージ、および、レジスタの更新(RETIRE)を行うステージについては、図示を省略している。   With reference to FIG. 11, the flow of processing in which the data processing device 505 executes four instructions simultaneously will be described for each stage. In FIG. 11, the stage for performing instruction fetch (IF), the stage for performing instruction decoding (HOST-D), and the stage for performing register update (RETIRE) are not shown.

まず、図11に示す各ステージで行う処理概要を以下に示す。Renameステージ506では、命令間のレジスタ依存関係を解消して命令ウィンドウに登録する。次に、Select&Readステージ507では、命令ウィンドウから確定した命令を取り出す。そして、最後に、Executeステージ508では演算を実行する。   First, an outline of processing performed in each stage shown in FIG. 11 is shown below. In the Rename stage 506, register dependency between instructions is canceled and registered in the instruction window. Next, in the Select & Read stage 507, the determined instruction is taken out from the instruction window. Finally, the Execute stage 508 executes an operation.

次に、図11に示す各ステージで行う処理の詳細を以下に示す。Renameステージ506では、Renameステージ501と同様の処理を行い、命令間のレジスタ依存関係を解消する。この例では、4つの命令毎に、2つのソースレジスタ番号(s)およびデスティネーションレジスタ番号(d)の組511、512、513、514を、依存関係検査部515に入力している。そして、依存関係検査部515は、それぞれに対してレジスタ依存関係を解消した後のソースレジスタ番号(S)およびデスティネーションレジスタ番号(D)の組を命令ウィンドウ520に登録する。   Next, details of processing performed in each stage shown in FIG. 11 are shown below. In the Rename stage 506, processing similar to that in the Rename stage 501 is performed to eliminate the register dependency between instructions. In this example, a set 511, 512, 513, and 514 of two source register numbers (s) and destination register numbers (d) is input to the dependency relationship checking unit 515 for every four instructions. Then, the dependency relationship inspecting unit 515 registers the pair of the source register number (S) and the destination register number (D) after canceling the register dependency relationship for each in the instruction window 520.

命令ウィンドウ520は、所定の条件が満たされるまで命令の発行を待つためのキューであり、依存関係を解消した後のソースレジスタ番号(S)およびデスティネーションレジスタ番号(D)の組を登録して待機させる。なお、図10におけるリザベーションステーション551とは異なり、レジスタの値は登録しない。また、ここでは、命令ウィンドウ520のエントリ数は4としている。すなわち、命令ウィンドウ520は、16の命令を登録することができる。なお、エントリ数は4に限定されるものではなく、4より多くてもよいし、4より少なくてもよい。   The instruction window 520 is a queue for waiting for an instruction to be issued until a predetermined condition is satisfied, and registers a pair of a source register number (S) and a destination register number (D) after the dependency relationship is canceled. Wait. Note that, unlike the reservation station 551 in FIG. 10, no register value is registered. Here, the number of entries in the instruction window 520 is four. That is, the command window 520 can register 16 commands. The number of entries is not limited to four, and may be more than four or less than four.

また、命令ウィンドウ520に登録される2つのソースレジスタのそれぞれには、先行命令の演算結果が格納されるパイプラインレジスタ585〜588と、および、次サイクルで演算が実行される命令のデスティネーションレジスタ番号545〜548を接続するタグアップデート(TagUpdate)591が設けられている。   Each of the two source registers registered in the instruction window 520 includes a pipeline register 585 to 588 in which the operation result of the preceding instruction is stored, and a destination register of an instruction to be executed in the next cycle. A tag update (TagUpdate) 591 for connecting numbers 545 to 548 is provided.

タグアップデート591は、まず、命令ウィンドウ520に待機している命令のソースレジスタ番号と、先行命令の演算結果が格納されるパイプラインレジスタ585〜588のレジスタ番号とを比較するために用いられる。それらを比較した結果、それらの番号が一致すれば、待機している命令が使用するソースレジスタをデスティネーションレジスタとして使用した先行命令の演算が完了していることを意味する。この場合、そのソースレジスタの値を演算器に投入可能である旨のフラグ(例えば「1」)を立てる。   The tag update 591 is first used to compare the source register number of the instruction waiting in the instruction window 520 with the register numbers of the pipeline registers 585 to 588 in which the operation result of the preceding instruction is stored. If the numbers match as a result of comparison, it means that the operation of the preceding instruction using the source register used by the waiting instruction as the destination register is completed. In this case, a flag (for example, “1”) indicating that the value of the source register can be input to the arithmetic unit is set.

さらに、タグアップデート591は、命令ウィンドウ520に待機している命令のソースレジスタ番号と、次サイクルで演算が実行される命令のデスティネーションレジスタ番号545〜548とを比較するために用いられる。それらを比較した結果、それらの番号が一致すれば、待機している命令が使用するソースレジスタをデスティネーションレジスタとして使用する命令が次サイクルで実行されることを意味する。この場合、そのソースレジスタの値を演算器に投入可能である旨のフラグ(例えば「1」)を立てる。   Further, the tag update 591 is used to compare the source register number of the instruction waiting in the instruction window 520 with the destination register numbers 545 to 548 of the instruction to be operated in the next cycle. If the numbers match as a result of comparison, it means that an instruction using the source register used by the waiting instruction as the destination register is executed in the next cycle. In this case, a flag (for example, “1”) indicating that the value of the source register can be input to the arithmetic unit is set.

そして、Select&Readステージ507では、命令ウィンドウ520に待機しているソースレジスタ番号のうち、2つのソースレジスタのいずれにも上記フラグ「1」が立っているものを取り出す。そして、上記取り出したソースレジスタ番号に対応するレジスタ値として、1)入力待ちレジスタ536に格納されている先行命令の演算結果、または、2)パイプラインレジスタ585〜588に格納されている演算結果のうちいずれかを選択し、次サイクルで演算が実行される命令のソースレジスタ値551〜554とする。   Then, in the Select & Read stage 507, out of the source register numbers waiting in the instruction window 520, the one having the flag “1” in both of the two source registers is taken out. Then, as a register value corresponding to the extracted source register number, 1) an operation result of a preceding instruction stored in the input wait register 536, or 2) an operation result stored in the pipeline registers 585 to 588. One of them is selected and set as the source register values 551 to 554 of the instruction to be operated in the next cycle.

次に、Executeステージ508では、入力待ちレジスタ536に格納されている値を演算器に投入し、演算を実行する。そして、その演算結果を、パイプラインレジスタ585〜588に書き込む。そして、次サイクルで、タグアップデート591を介して、命令ウィンドウ520に待機している全てのソースレジスタ番号に対して送信する。また同時に、演算結果を入力待ちレジスタ536に格納し、Select&Readステージ507での読み出し対象とする。   Next, in the Execute stage 508, the value stored in the input waiting register 536 is input to the arithmetic unit, and the operation is executed. Then, the calculation result is written in the pipeline registers 585 to 588. Then, in the next cycle, it transmits to all the source register numbers waiting in the instruction window 520 via the tag update 591. At the same time, the calculation result is stored in the input wait register 536 and is read out by the Select & Read stage 507.

なお、入力待ちレジスタ536に格納されている値を基に、命令ウィンドウ520からどの命令を取り出すこと、および、バイパス592を備えることにより次サイクルを待たずに演算結果が得られることにより、後続命令が先行命令の実行の完了を待つ必要がなくなる。したがって、1サイクルで演算が完了する先行命令と後続命令との間に、レジスタ依存関係が存在するときであっても、先行命令を実行したサイクルの次のサイクルで後続命令を実行することが可能となる。
David B. Papworth,"Tuning the Pentium Pro microarchitecture",IEEE Micro,Vol.16,No.2,p.8-15(1996) L. Gwennap,"Intel's P6 Uses Decoupled Superscalar Design",Microprocessor Report,Vol.9,Np.2,p.9-15(1995) Glenn Hinton,Dave Sager,Mike Upton,Darrell Boggs,Doug Carmean,Alan Kyker,Patrice Roussel,"The Microarchitecture of the Pentium4 Processor",Intel Technology Journal,Q1(2001) 中島康彦,「ARMアーキテクチャ向け命令分解型スーパスカラ」,信学技報,電子情報処理学会,2006年6月,2006―ARC―168,p.77−82
Based on the value stored in the input wait register 536, which instruction is taken out from the instruction window 520 and the operation result is obtained without waiting for the next cycle by providing the bypass 592, the subsequent instruction. Does not have to wait for the execution of the preceding instruction to complete. Therefore, even if there is a register dependency between the preceding instruction that completes the operation in one cycle and the succeeding instruction, the succeeding instruction can be executed in the cycle following the cycle in which the preceding instruction is executed. It becomes.
David B. Papworth, "Tuning the Pentium Pro microarchitecture", IEEE Micro, Vol.16, No.2, p.8-15 (1996) L. Gwennap, "Intel's P6 Uses Decoupled Superscalar Design", Microprocessor Report, Vol.9, Np.2, p.9-15 (1995) Glenn Hinton, Dave Sager, Mike Upton, Darrell Boggs, Doug Carmean, Alan Kyker, Patrice Roussel, "The Microarchitecture of the Pentium4 Processor", Intel Technology Journal, Q1 (2001) Yasuhiko Nakajima, “Instruction Decomposed Superscalar for ARM Architecture”, IEICE Technical Report, IEICE, June 2006, 2006-ARC-168, p.77-82

上記で説明したように、非特許文献1から4に開示されているデータ処理装置は、複数命令を同時実行することができる。しかしながら、非特許文献1から3に開示されているデータ処理装置では、Executeステージ504において、リザベーションステーション551から発行可能な命令を選択するための遅延時間が大きい。   As described above, the data processing devices disclosed in Non-Patent Documents 1 to 4 can simultaneously execute a plurality of instructions. However, in the data processing devices disclosed in Non-Patent Documents 1 to 3, in the Execute stage 504, the delay time for selecting an instruction that can be issued from the reservation station 551 is large.

すなわち、演算結果をパイプラインレジスタ585〜588に書き込むと同時に、フォワーディング590を介して、演算結果をリザベーションステーション551に待機している命令の全てのソースレジスタに対して送信する。そして、リザベーションステーション551に待機しているソースレジスタ番号と、先行命令の演算結果が格納されるパイプラインレジスタ585〜588のレジスタ番号との比較を行い、演算器に投入可能な命令を選択する。   In other words, the operation result is written to the pipeline registers 585 to 588, and at the same time, the operation result is transmitted to all the source registers of the instruction waiting in the reservation station 551 via the forwarding 590. Then, the source register number waiting in the reservation station 551 is compared with the register numbers of the pipeline registers 585 to 588 in which the calculation result of the preceding instruction is stored, and an instruction that can be input to the calculator is selected.

以上のように、1サイクルで実行しなければならない処理が多いため、データ処理装置全体の動作周波数を向上させることができないという問題がある。   As described above, since there are many processes that must be executed in one cycle, there is a problem that the operating frequency of the entire data processing apparatus cannot be improved.

また、リザベーションステーション551の全てのエントリが、2つのソースレジスタの番号と値、およびデスティネーションレジスタ番号を保持する構成となっている。例えば、ソースレジスタ番号およびデスティネーションレジスタ番号がそれぞれ5ビット長、ソースレジスタ値が32ビット長とする。リザベーションステーション551に待機可能なソースレジスタ番号およびデスティネーションレジスタ番号は合計48個あり、ソースレジスタ値は合計32個あるので、リザベーションステーション551の記憶領域は、少なくとも1264ビット(5ビット×48個+32ビット×32個)以上必要となる。   Also, all entries in the reservation station 551 are configured to hold two source register numbers and values, and a destination register number. For example, the source register number and the destination register number are each 5 bits long, and the source register value is 32 bits long. Since there are a total of 48 source register numbers and destination register numbers that can wait in the reservation station 551 and a total of 32 source register values, the storage area of the reservation station 551 has at least 1264 bits (5 bits × 48 + 32 bits). × 32) or more are required.

さらに、フォワーディング590は、リザベーションステーション551に待機している命令の全てのソースレジスタ値に対して送信する。すなわち、フォワーディング590の信号線は、1024本(32ビット×32個)必要となる。   Further, the forwarding 590 transmits to all the source register values of the instructions waiting in the reservation station 551. That is, 1024 (32 bits × 32) signal lines for the forwarding 590 are required.

以上のように、リザベーションステーション551の記憶領域が大きくなるという問題、および、フォワーディング590の信号数が多くなるという問題がある。   As described above, there is a problem that the storage area of the reservation station 551 becomes large, and a problem that the number of signals of the forwarding 590 increases.

さらに、リザベーションステーション551は、サイクル毎に演算結果をフォワーディング590を介して受信する構成となっている。したがって、これにより電力消費が大きくなるという問題がある。   Further, the reservation station 551 is configured to receive the calculation result via the forwarding 590 for each cycle. Therefore, there is a problem that this increases power consumption.

次に、非特許文献4に開示されているデータ処理装置では、リザベーションステーションやフォワーディングが存在しないため、Executeステージ508の構成が簡素化されており、Executeステージ508における処理負荷が軽減されている。しかし、その代わりに、Select&Readステージ507では、命令ウィンドウ520の任意の位置から発行可能な命令を選択すると同時に、該選択した命令におけるレジスタ指定フィールドを用いたレジスタ読み出しを1サイクルで完了させる。このため、Select&Readステージ507での処理の遅延時間が大きく、データ処理装置全体の動作周波数を向上させることができないという問題がある。   Next, in the data processing device disclosed in Non-Patent Document 4, since there is no reservation station or forwarding, the configuration of the Execute stage 508 is simplified, and the processing load on the Execute stage 508 is reduced. However, instead, in the Select & Read stage 507, an instruction that can be issued is selected from an arbitrary position in the instruction window 520, and at the same time, register reading using the register designation field in the selected instruction is completed in one cycle. For this reason, there is a problem that the processing delay time in the Select & Read stage 507 is large and the operating frequency of the entire data processing apparatus cannot be improved.

以上のように、リザベーションステーションや命令ウィンドウなどの命令発行機構や、フォワーディングによって命令レベル並列度の向上を図る従来のデータ処理装置では、演算器周辺の回路の構成が複雑となり、装置全体の動作周波数を向上させることができない、または、消費電力を抑えることができないという問題があった。   As described above, in the conventional data processing device that improves the instruction level parallelism by the instruction issue mechanism such as the reservation station and the instruction window and the forwarding, the configuration of the circuit around the arithmetic unit becomes complicated, and the operating frequency of the entire device There is a problem that the power consumption cannot be improved or the power consumption cannot be suppressed.

本発明は、上記の問題点に鑑みてなされたものであり、その目的は、従来よりも動作周波数を向上させることが可能であり、また、消費電力を抑えることが可能である、複数の機械語命令を高速に同時実行可能なデータ処理装置、データ処理方法を提供することにある。   The present invention has been made in view of the above-described problems, and an object of the present invention is to improve the operating frequency as compared with the prior art and to reduce power consumption. An object of the present invention is to provide a data processing apparatus and a data processing method capable of simultaneously executing word instructions at a high speed.

上記課題を解決するために、本発明に係るデータ処理装置は、所定の演算に使用する値を格納するソースレジスタの番号を指定するソースオペランドフィールドと、該演算の結果を格納するデスティネーションレジスタの番号を指定するデスティネーションオペランドフィールドとを含む機械語命令を複数同時に解釈実行するデータ処理装置であって、複数の上記機械語命令に含まれる、ソースオペランドフィールドより指定されるソースレジスタ番号とデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を格納する第1の命令格納手段と、第1の命令格納手段から取得した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を、該ソースレジスタ番号を指定するソースオペランドフィールドおよび該デスティネーションレジスタ番号を指定するデスティネーションオペランドフィールドを含む機械語命令の実行順序に応じた所定の格納位置に格納し、上記ソースレジスタ番号とデスティネーションレジスタ番号との組を格納しない格納位置には空き情報を格納する第2の命令格納手段と、第2の命令格納手段に格納されている、実行順序が最も早い機械語命令に含まれるソースオペランドフィールドにより指定されるソースレジスタの値と、該機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号とを格納する第3の命令格納手段と、第3の命令格納手段から取得したソースレジスタの値を基に所定演算を行い、該演算結果を第3の命令格納手段から取得したデスティネーションレジスタ番号で指定されるレジスタに格納する、複数の命令演算手段とを備え、第1の命令格納手段から取得したソースレジスタ番号が、第2の命令格納手段に格納済みのデスティネーションレジスタ番号に依存するとき、第2の命令格納手段が、上記ソースレジスタ番号を指定するソースオペランドフィールドを含む機械語命令の実行順序を、上記デスティネーションレジスタ番号を指定するデスティネーションオペランドフィールドを含む機械語命令の実行順序より遅い順序に決定し、上記決定した実行順序に応じた格納位置であって、上記空き情報が格納されている格納位置に、上記ソースオペランドフィールドにより指定されるソースレジスタ番号と、上記ソースオペランドフィールドを含む機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を格納することを特徴としている。   In order to solve the above problems, a data processing apparatus according to the present invention includes a source operand field that specifies a source register number that stores a value used for a predetermined operation, and a destination register that stores a result of the operation. A data processing apparatus for simultaneously interpreting and executing a plurality of machine language instructions including a destination operand field for designating a number, the source register number and the destination designated by the source operand field included in the plurality of machine language instructions First instruction storage means for storing a set of destination register numbers specified by the operand field, and a plurality of source register numbers and destination register numbers acquired from the first instruction storage means Source operation that specifies the register number Stored in a predetermined storage location according to the execution order of the machine language instruction including the destination field and the destination operand field for designating the destination register number, and not storing the pair of the source register number and the destination register number The second instruction storage means for storing empty information at the position, and the value of the source register specified by the source operand field contained in the machine language instruction stored in the second instruction storage means and having the earliest execution order And a third instruction storage means for storing the destination register number specified by the destination operand field included in the machine language instruction, and a predetermined value based on the value of the source register obtained from the third instruction storage means Perform an operation and obtain the operation result from the third instruction storage means. A destination that has been stored in the second instruction storage means, the source register number obtained from the first instruction storage means, and a plurality of instruction operation means for storing in the register specified by the obtained destination register number When dependent on the register number, the second instruction storage means indicates the execution order of the machine language instruction including the source operand field specifying the source register number, and the machine including the destination operand field specifying the destination register number. The order is determined to be later than the execution order of the word instructions, and the storage position corresponding to the determined execution order, where the empty information is stored, is stored in the source register number specified by the source operand field. To a machine language instruction containing the source operand field A combination with a destination register number designated by a destination operand field included is stored.

また、本発明に係るデータ処理方法は、所定の演算に使用する値を格納するソースレジスタの番号を指定するソースオペランドフィールドと、該演算の結果を格納するデスティネーションレジスタの番号を指定するデスティネーションオペランドフィールドとを含む機械語命令を複数同時に解釈実行するデータ処理方法であって、複数の上記機械語命令に含まれる、ソースオペランドフィールドより指定されるソースレジスタ番号とデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を格納する第1の命令格納ステップと、第1の命令格納ステップにて格納した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を取得し、該ソースレジスタ番号を指定するソースオペランドフィールドおよび該デスティネーションレジスタ番号を指定するデスティネーションオペランドフィールドを含む機械語命令の実行順序に応じた所定の格納位置に格納し、上記ソースレジスタ番号とデスティネーションレジスタ番号との組を格納しない格納位置には空き情報を格納する第2の命令格納ステップと、第2の命令格納ステップにて格納した、実行順序が最も早い機械語命令に含まれるソースオペランドフィールドにより指定されるソースレジスタの値と、該機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号とを格納する第3の命令格納ステップと、第3の命令格納ステップにて格納した、ソースオペランドフィールドにより指定されるソースレジスタの値を取得して所定演算を行い、該演算結果を第3の命令格納ステップにて格納した、デスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号で指定されるレジスタに格納する、複数の命令演算ステップとを含み、第2の命令格納ステップにて取得したソースオペランドフィールドにより指定されるソースレジスタ番号が、第2の命令格納ステップにて格納済みのデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号に依存するとき、上記ソースオペランドフィールドを含む機械語命令の実行順序を、上記デスティネーションオペランドフィールドを含む機械語命令の実行順序より遅い順序に決定し、上記決定した実行順序に応じた格納位置であって、上記空き情報が格納されている格納位置に、上記ソースオペランドフィールドにより指定されるソースレジスタ番号と、上記ソースオペランドフィールドを含む機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を格納することを特徴としている。   The data processing method according to the present invention also includes a source operand field that specifies the number of a source register that stores a value used for a predetermined operation, and a destination register that specifies the number of a destination register that stores the result of the operation. A data processing method for simultaneously interpreting and executing a plurality of machine language instructions including an operand field, which is specified by a source register number and a destination operand field specified by a source operand field included in the plurality of machine language instructions. A first instruction storing step for storing a set of destination register numbers, and a plurality of sets of source register numbers and destination register numbers stored in the first instruction storing step are acquired, and the source register numbers are obtained. Source operand to specify A storage location in which a pair of the source register number and the destination register number is not stored, and stored in a predetermined storage location corresponding to the execution order of the machine language instruction including the field and the destination operand field for designating the destination register number Includes a second instruction storing step for storing empty information, a value of a source register specified by a source operand field stored in the machine instruction having the earliest execution order stored in the second instruction storing step, A third instruction storing step for storing a destination register number specified by the destination operand field included in the machine language instruction, and a source specified by the source operand field stored in the third instruction storing step Get register value A plurality of instruction operation steps for performing a predetermined operation and storing the operation result in a register specified by a destination register number specified by a destination operand field stored in a third instruction storage step. When the source register number specified by the source operand field acquired in the second instruction storage step depends on the destination register number specified by the destination operand field stored in the second instruction storage step The execution order of the machine language instruction including the source operand field is determined to be slower than the execution order of the machine language instruction including the destination operand field, and the storage position is in accordance with the determined execution order, Free information is stored A set of a source register number specified by the source operand field and a destination register number specified by the destination operand field included in the machine language instruction including the source operand field It is characterized by.

上記の構成によれば、第1の命令格納手段から取得したソースレジスタ番号が、第2の命令格納手段に格納済みのデスティネーションレジスタ番号に依存するとき、上記ソースレジスタ番号を指定するソースオペランドフィールドを含む機械語命令の実行順序を、上記デスティネーションレジスタ番号を指定するデスティネーションオペランドフィールドを含む機械語命令の実行順序より遅い順序に決定する。そして、上記ソースレジスタ番号と、上記ソースレジスタ番号とともに第1の命令格納手段から取得したデスティネーションレジスタ番号との組を実行順序に応じた格納位置に格納する。   According to the above configuration, when the source register number acquired from the first instruction storage unit depends on the destination register number stored in the second instruction storage unit, the source operand field that specifies the source register number Is determined to be later than the execution order of the machine language instruction including the destination operand field for designating the destination register number. Then, a set of the source register number and the destination register number acquired from the first instruction storing means together with the source register number is stored in a storage position corresponding to the execution order.

さらに、実行順序が最も早い機械語命令に含まれるソースオペランドフィールドにより指定されるソースレジスタの値を基に所定演算を行い、該機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号で指定されるレジスタに演算結果を格納する。   Further, the destination register specified by the destination operand field included in the machine language instruction is subjected to a predetermined operation based on the value of the source register specified by the source operand field included in the machine language instruction having the earliest execution order. Stores the operation result in the register specified by the number.

よって、依存関係がある機械語命令を実行順序に従って取り出せるように、該機械語命令に含まれるソースオペランドフィールドより指定されるソースレジスタ番号と、デスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を第2の命令格納手段に格納することができる。そして、実行順序が最も早い機械語命令のみを発行することができる。   Therefore, the source register number specified by the source operand field included in the machine language instruction and the destination register number specified by the destination operand field so that a machine language instruction having a dependency relationship can be extracted according to the execution order. The set can be stored in the second instruction storage means. Only the machine language instruction with the earliest execution order can be issued.

したがって、上記データ処理装置は、任意の格納位置から機械語命令を選択して発行する構成ではないため、命令実行処理の遅延時間を抑えることができ、データ処理装置全体の動作周波数を向上させることができるという効果を奏する。   Therefore, since the data processing device is not configured to select and issue a machine language instruction from an arbitrary storage location, the delay time of instruction execution processing can be suppressed, and the operating frequency of the entire data processing device can be improved. There is an effect that can be.

また、レジスタ番号のみを第2の命令格納手段に格納するので、記憶領域のサイズを抑えることができるという効果を奏する。   In addition, since only the register number is stored in the second instruction storage unit, the size of the storage area can be reduced.

さらに、本発明に係るデータ処理装置は、上記の構成において、第2の命令格納手段が、格納するソースレジスタ番号ごとに、該ソースレジスタの値を命令演算手段への投入可否を示す投入可否情報を備え、第2の命令格納手段に格納された、実行順序が最も早い機械語命令に含まれるソースオペランドにより指定されるソースレジスタ番号の投入可否情報の全てが投入可であるとき、該ソースレジスタの値を取得し、第3の命令格納手段に格納する構成としてもよい。   Furthermore, in the data processing apparatus according to the present invention, in the configuration described above, the second instruction storage means, for each source register number to be stored, indicates whether or not the value of the source register can be input to the instruction arithmetic means. And when all of the information on whether or not the source register number specified by the source operand included in the machine language instruction stored in the second instruction storage means and included in the machine language instruction having the earliest execution order can be input, the source register May be obtained and stored in the third instruction storage means.

上記の構成によれば、さらに、機械語命令に含まれるソースオペランドフィールドにより指定されるソースレジスタ番号ごとに、該ソースレジスタの値を命令演算手段への投入可否を示す投入可否情報を備える。   According to the above configuration, for each source register number specified by the source operand field included in the machine language instruction, the availability information indicating whether or not the value of the source register can be input to the instruction arithmetic means is provided.

よって、機械語命令に含まれる全てのソースオペランドにより指定されるソースレジスタ番号の投入可否情報を確認することにより、該機械語命令が発行可能かどうかを判定することができる。   Therefore, it is possible to determine whether or not the machine language instruction can be issued by checking the availability information of the source register numbers specified by all the source operands included in the machine language instruction.

したがって、実行順序が最も早い機械語命令が、発行可能となったことを判定した上で、命令演算手段へ投入することができるという効果を奏する。   Therefore, the machine language instruction with the earliest execution order can be input to the instruction calculation means after determining that it can be issued.

さらに、本発明に係るデータ処理装置は、上記の構成において、第1の命令格納手段から取得したソースレジスタ番号が、第2の命令格納手段に格納済みのデスティネーションレジスタ番号に依存するとき、第2の命令格納手段が、上記ソースレジスタ番号の投入可否情報を投入不可と設定し、第2の命令格納手段が、第2の命令格納手段に格納済みの、実行順序が最も早い機械語命令に含まれるソースオペランドフィールドにより指定されるソースレジスタの値を取得して第3の命令格納手段に格納するとき、該機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号と、上記投入可否情報を投入不可と設定したソースレジスタ番号とを比較し、上記デスティネーションレジスタ番号と上記ソースレジスタ番号とが一致するとき、上記ソースレジスタ番号の投入可否情報を投入可と設定する構成としてもよい。   Furthermore, in the data processing apparatus according to the present invention, in the above configuration, when the source register number acquired from the first instruction storage unit depends on the destination register number stored in the second instruction storage unit, The instruction storage unit 2 sets the source register number input enable / disable information to “not input”, and the second instruction storage unit stores the machine language instruction that has been stored in the second instruction storage unit and has the earliest execution order. When the value of the source register specified by the included source operand field is acquired and stored in the third instruction storage means, the destination register number specified by the destination operand field included in the machine language instruction; The destination register is compared with the source register number that is set to “unavailable” for the availability information. When the No. and the source register numbers match, may set the charged permission information of the source register number and the input accepted.

上記の構成によれば、さらに、第2の命令格納手段に格納済みの、実行順序が最も早い機械語命令に含まれるソースオペランドフィールドにより指定されるソースレジスタの値を第3の命令格納手段に格納するとき、該機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号と一致するソースレジスタ番号の投入可否情報を投入可と設定する。   According to the above configuration, the value of the source register specified by the source operand field included in the machine language instruction having the earliest execution order stored in the second instruction storage unit is further stored in the third instruction storage unit. When storing, the availability information of the source register number that matches the destination register number specified by the destination operand field included in the machine language instruction is set to be acceptable.

よって、実行順序が最も早い機械語命令に含まれるソースオペランドフィールドにより指定されるソースレジスタの値を第3の命令格納手段に格納するとき、同時に、該機械語命令に依存する機械語命令に含まれるソースオペランドフィールドにより指定されるソースレジスタ番号の投入可否情報を投入可と設定することができる。   Therefore, when the value of the source register specified by the source operand field included in the machine language instruction with the earliest execution order is stored in the third instruction storage unit, it is included in the machine language instruction depending on the machine language instruction at the same time. Information indicating whether or not the source register number specified by the source operand field to be input can be input.

したがって、先行する機械語命令が次サイクルで実行されることを認識することができ、それにより、該先行する機械語命令に依存する後続の機械語命令を次サイクルで発行することができる。すなわち、先行する機械語命令の実行を待たずに、該先行する機械語命令に依存する後続の機械語命令を発行することができるので、データ処理装置全体の動作周波数を向上させることができるという効果を奏する。   Accordingly, it can be recognized that the preceding machine language instruction is executed in the next cycle, and the subsequent machine language instruction depending on the preceding machine language instruction can be issued in the next cycle. That is, the subsequent machine language instruction depending on the preceding machine language instruction can be issued without waiting for the execution of the preceding machine language instruction, so that the operating frequency of the entire data processing apparatus can be improved. There is an effect.

さらに、本発明に係るデータ処理装置は、上記の構成において、上記命令演算手段が第3の命令格納手段から取得したデスティネーションレジスタ番号で指定されるレジスタに演算結果を格納したとき、上記デスティネーションレジスタ番号と、第2の命令格納手段に格納済みのソースレジスタ番号とを比較し、上記デスティネーションレジスタ番号と上記ソースレジスタ番号とが一致するとき、上記ソースレジスタ番号の投入可否情報を投入可と設定する構成としてもよい。   Furthermore, in the data processing apparatus according to the present invention, in the configuration described above, when the instruction calculation unit stores the calculation result in the register specified by the destination register number acquired from the third instruction storage unit, the destination The register number is compared with the source register number already stored in the second instruction storage means, and when the destination register number and the source register number match, the availability information of the source register number can be entered. It is good also as a structure to set.

上記の構成によれば、さらに、命令演算手段が機械語命令の演算結果を格納した、該機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号と一致する、第2の命令格納手段に格納済みのソースレジスタ番号の投入可否情報を投入可と設定する。   According to the above configuration, the second instruction that matches the destination register number specified by the destination operand field included in the machine language instruction in which the instruction operation means stores the operation result of the machine language instruction. The information on whether or not the source register number already stored in the storage means can be input is set to enable.

よって、命令演算手段が機械語命令の演算を完了すると同時に、該機械語命令の演算結果を使用する機械語命令に含まれるソースオペランドフィールドにより指定されるソースレジスタ番号を第3の命令格納手段に登録することができる。   Therefore, at the same time that the instruction operation means completes the operation of the machine language instruction, the source register number specified by the source operand field included in the machine language instruction using the operation result of the machine language instruction is stored in the third instruction storage means. You can register.

したがって、先行する機械語命令の実行結果を次サイクルで取得する前に、該先行する機械語命令に依存する後続の機械語命令を発行することができるため、データ処理装置全体の動作周波数を向上させることができるという効果を奏する。   Therefore, since the subsequent machine language instruction depending on the preceding machine language instruction can be issued before the execution result of the preceding machine language instruction is acquired in the next cycle, the operating frequency of the entire data processing apparatus is improved. There is an effect that can be made.

さらに、本発明に係るデータ処理装置は、上記の構成において、第1の命令格納手段から複数のソースレジスタ番号とデスティネーションレジスタ番号との組を取得し、上記ソースレジスタ番号と上記デスティネーションレジスタ番号との間の依存関係を解消する依存関係解消手段をさらに備え、第2の命令格納手段が、上記依存関係解消手段から、依存関係を解消した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を取得する構成としてもよい。   Further, the data processing device according to the present invention, in the above configuration, obtains a set of a plurality of source register numbers and destination register numbers from the first instruction storage means, and the source register number and the destination register number And a second instruction storage unit that includes a combination of a plurality of source register numbers and destination register numbers from which the dependency relationship has been canceled. It is good also as a structure which acquires.

上記の構成によれば、さらに、依存関係解消手段が、複数の機械語命令に含まれるソースオペランドフィールドより指定されるソースレジスタ番号と、デスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との依存関係を解消する。   According to the above configuration, the dependency cancellation means further depends on the source register number specified by the source operand field included in the plurality of machine language instructions and the destination register number specified by the destination operand field. Cancel the relationship.

よって、複数の機械語命令間の依存関係を解消することができる。   Therefore, the dependency relationship between a plurality of machine language instructions can be eliminated.

したがって、複数の機械語命令を同時に実行することができるという効果を奏する。   Therefore, there is an effect that a plurality of machine language instructions can be executed simultaneously.

さらに、本発明に係るデータ処理装置は、上記の構成において、第2の命令格納手段が、第1の命令格納手段から取得した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を格納するとき、上記依存関係解消手段から取得したソースレジスタ番号とデスティネーションレジスタ番号との間の依存関係を基に、上記複数の組に含まれるソースレジスタ番号を指定するソースオペランドフィールドおよびデスティネーションレジスタ番号を指定するデスティネーションオペランドフィールドを含む機械語命令の実行順序を決定し、上記決定した実行順序に応じた格納位置であって、上記空き情報が格納されている格納位置に,上記複数のソースレジスタ番号とデスティネーションレジスタ番号との組を格納する新規命令登録制御手段をさらに備える構成としてもよい。   Furthermore, in the data processing apparatus according to the present invention, in the above configuration, the second instruction storage means stores a set of a plurality of source register numbers and destination register numbers acquired from the first instruction storage means. Specify the source operand field and destination register number that specify the source register number included in the multiple sets based on the dependency relationship between the source register number and the destination register number obtained from the dependency relationship cancellation means The execution order of the machine language instruction including the destination operand field to be determined is determined, and the plurality of source register numbers and the storage position corresponding to the determined execution order are stored in the storage position where the empty information is stored. A new instruction registration system that stores pairs with destination register numbers Means may further comprise configure.

上記の構成によれば、さらに、新規命令登録制御手段が、上記依存関係解消手段から取得したソースレジスタ番号とデスティネーションレジスタ番号との間の依存関係を基に、決定した実行順序に応じた格納位置に、第1の命令格納手段から取得した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を第2の命令格納手段に格納する。   According to the above configuration, the new instruction registration control unit further stores data in accordance with the determined execution order based on the dependency relationship between the source register number and the destination register number acquired from the dependency relationship canceling unit. A set of a plurality of source register numbers and destination register numbers acquired from the first instruction storage means is stored in the second instruction storage means at the position.

よって、新たに第2の命令格納手段に格納する複数のソースレジスタ番号とデスティネーションレジスタ番号との組の依存関係を考慮して、上記ソースレジスタ番号とデスティネーションレジスタ番号との組を第2の命令格納手段に格納することができる。   Therefore, in consideration of the dependency of a pair of a plurality of source register numbers and destination register numbers newly stored in the second instruction storage means, the pair of the source register number and the destination register number is set to the second It can be stored in the instruction storage means.

したがって、新たに待機させる機械語命令間の依存関係を考慮して機械語命令の適切な実行順序を決定することができるという効果を奏する。   Therefore, there is an effect that an appropriate execution order of machine language instructions can be determined in consideration of a dependency relationship between machine language instructions newly waiting.

さらに、本発明に係るデータ処理装置は、上記の構成において、上記命令演算手段における演算結果を1サイクルでレジスタに格納できなかったときであっても、第2の命令格納手段に格納される、実行順序が最も早い機械語命令に含まれるソースオペランドにより指定されるソースレジスタ番号の投入可否情報の全てが投入可であって、上記ソースレジスタ番号のいずれもが、上記演算結果を格納できなかったデスティネーションレジスタ番号に依存しないとき、上記ソースレジスタの値と、上記機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号とを、第3の命令格納手段に格納する構成としてもよい。   Furthermore, the data processing apparatus according to the present invention is stored in the second instruction storage means in the above configuration even when the operation result in the instruction operation means cannot be stored in the register in one cycle. All of the source register number input availability information specified by the source operand included in the machine language instruction with the earliest execution order can be input, and none of the source register numbers could store the operation result When not depending on the destination register number, the value of the source register and the destination register number specified by the destination operand field included in the machine language instruction may be stored in the third instruction storage means. Good.

上記の構成によれば、さらに、演算結果をレジスタに格納できないなどの実行遅延があった先行する機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号と一致しないソースレジスタ番号を指定するソースオペランドを含む、後続の機械語命令に含まれる全てのソースオペランドにより指定されるソースレジスタ番号の投入可否情報が投入可であれば、上記ソースレジスタの値と、上記後続の機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号とを、第3の命令格納手段に格納する。   According to the above configuration, the source register number that does not match the destination register number specified by the destination operand field included in the preceding machine language instruction that has an execution delay such that the operation result cannot be stored in the register. If the availability information of the source register number specified by all the source operands included in the subsequent machine language instruction including the specified source operand can be input, the value of the source register and the subsequent machine language instruction And the destination register number designated by the destination operand field included in the third instruction storage means.

よって、先行する機械語命令に依存しない後続の機械語命令を、先行する機械語命令の実行遅延に関わらず、発行することができる。   Therefore, a subsequent machine language instruction that does not depend on the preceding machine language instruction can be issued regardless of the execution delay of the preceding machine language instruction.

したがって、先行する機械語命令に実行遅延があった場合でも、先行の機械語命令に依存しない後続の機械語命令を引き続き実行することができるという効果を奏する。   Therefore, even if there is an execution delay in the preceding machine language instruction, the subsequent machine language instruction that does not depend on the preceding machine language instruction can be continuously executed.

さらに、本発明に係るデータ処理装置は、上記の構成において、第2の命令格納手段が第1の命令格納手段から取得したソースレジスタ番号とデスティネーションレジスタ番号との組のうちのソースレジスタ番号が、上記命令演算手段にて演算結果を1サイクルで格納できないことが予想されるデスティネーションレジスタ番号に依存するとき、上記ソースレジスタ番号を指定するソースオペランドフィールドおよび上記デスティネーションレジスタ番号を指定するデスティネーションオペランドフィールドを含む機械語命令の実行順序を、上記演算結果を1サイクルで格納できないことが予想されるデスティネーションレジスタ番号を指定するデスティネーションオペランドフィールドを含む機械語命令の実行順序より所定の順番だけ遅い順序に決定し、上記決定した実行順序に応じた格納位置であって、空き情報が格納されている格納位置に、上記ソースレジスタ番号とデスティネーションレジスタ番号との組を格納する構成としてもよい。   Furthermore, in the data processing apparatus according to the present invention, in the above configuration, the source register number of the set of the source register number and the destination register number acquired by the second instruction storage unit from the first instruction storage unit is When the instruction operation means depends on a destination register number that is expected to be unable to store an operation result in one cycle, a source operand field that specifies the source register number and a destination that specifies the destination register number The execution order of the machine language instruction including the operand field is a predetermined order from the execution order of the machine language instruction including the destination operand field for designating the destination register number for which it is expected that the operation result cannot be stored in one cycle. slow Determining the ordinal a storage position corresponding to the execution order in which the determined, in the storage position in which empty data is stored may be configured to store a set of the said source register number and a destination register number.

上記の構成によれば、さらに、演算結果をレジスタに格納できないなどの実行遅延があった先行する機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号と一致するソースレジスタ番号を指定するソースオペランドを含む後続の機械語命令の実行順序を、上記先行する機械語命令の実行順序より所定の順番だけ遅い実行順序とする。   According to the above configuration, the source register number that matches the destination register number specified by the destination operand field included in the preceding machine language instruction that has an execution delay such that the operation result cannot be stored in the register is further obtained. The execution order of the subsequent machine language instruction including the specified source operand is set to an execution order that is later than the execution order of the preceding machine language instruction by a predetermined order.

よって、実行遅延があった先行する機械語命令に依存する後続の機械語命令の発行を、他の後続命令よりも一定期間遅らせることができる。   Therefore, it is possible to delay the issuance of the subsequent machine language instruction depending on the preceding machine language instruction having the execution delay for a certain period of time from the other subsequent instructions.

したがって、先行する機械語命令に実行遅延があった場合でも、後続の機械語命令の実行を即時に中断させないようにすることができるという効果を奏する。   Therefore, even if there is an execution delay in the preceding machine language instruction, it is possible to prevent the execution of the subsequent machine language instruction from being interrupted immediately.

さらに、本発明に係るデータ処理装置は、上記の構成において、第1の命令格納手段が、1サイクルで実行可能な機械語命令に含まれるソースオペランドフィールドより指定されるソースレジスタ番号と、デスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を格納する構成としてもよい。   Furthermore, in the data processing apparatus according to the present invention, in the above configuration, the first instruction storage means includes a source register number specified by a source operand field included in a machine language instruction that can be executed in one cycle, and a destination. A combination with a destination register number specified by the operand field may be stored.

上記の構成によれば、さらに、1サイクルで実行可能な機械語命令に含まれるソースオペランドフィールドより指定されるソースレジスタ番号と、デスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組が第1の命令格納手段に格納される。   According to the above configuration, the combination of the source register number specified by the source operand field included in the machine language instruction executable in one cycle and the destination register number specified by the destination operand field is the first. 1 instruction storage means.

よって、命令演算手段は確実に1サイクルで命令の実行を完了することができる。   Therefore, the instruction calculation means can reliably complete the execution of the instruction in one cycle.

したがって、先行する上記機械語命令の実行完了を待たずに該先行する機械語命令に依存する後続の機械語命令を発行することが、確実に実行できるという効果を奏する。   Therefore, issuing the subsequent machine language instruction depending on the preceding machine language instruction without waiting for the completion of the execution of the preceding machine language instruction has an effect that it can be surely executed.

さらに、本発明に係るデータ処理装置は、上記の構成において、機械語命令に含まれるソースオペランドフィールドより指定されるソースレジスタ番号と、デスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を該機械語命令の実行順序に応じて管理し、実行が完了した機械語命令に含まれるソースオペランドフィールドより指定されるソースレジスタ番号と、デスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を管理するリオーダバッファをさらに備える構成としてもよい。   Furthermore, in the data processing apparatus according to the present invention, in the above configuration, a set of a source register number specified by the source operand field included in the machine language instruction and a destination register number specified by the destination operand field is obtained. A set of a source register number specified by the source operand field and a destination register number specified by the destination operand field, which are managed in accordance with the execution order of the machine language instruction and are executed. It may be configured to further include a reorder buffer for managing

上記の構成によれば、さらに、リオーダバッファにより、機械語命令の実行順序に応じて管理し、また、実行が完了した機械語命令を管理する。   According to the above configuration, the reorder buffer further manages the machine language instructions according to the execution order, and manages the machine language instructions that have been executed.

よって、先行する機械語命令に実行遅延が生じた場合、該先行する機械語命令の演算結果を使用する機械語命令の実行順序を、リオーダバッファを使用して変更することができる。   Therefore, when an execution delay occurs in the preceding machine language instruction, the execution order of the machine language instruction using the operation result of the preceding machine language instruction can be changed using the reorder buffer.

したがって、機械語命令の実行順序を保証することができるという効果を奏する。   Therefore, the execution order of the machine language instructions can be guaranteed.

さらに、本発明に係るデータ処理装置は、上記の構成において、第1の命令格納手段をさらに複数備え、第2の命令格納手段が、上記複数の第1の命令格納手段から取得した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を混在した状態で格納する構成としてもよい。   Furthermore, the data processing apparatus according to the present invention further comprises a plurality of first instruction storage means in the above configuration, wherein the second instruction storage means obtains a plurality of sources acquired from the plurality of first instruction storage means. A combination of register numbers and destination register numbers may be stored in a mixed state.

上記の構成によれば、さらに、複数の第1の命令格納手段から取得した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を混在した状態で第2の命令格納手段に格納する。   According to the above configuration, the set of a plurality of source register numbers and destination register numbers acquired from the plurality of first instruction storage means is further stored in the second instruction storage means.

よって、複数の第1の命令格納手段に、互いに異なる命令流(連続して実行する一連の命令群)を構成する機械語命令に含まれるソースオペランドフィールドより指定されるソースレジスタ番号と、デスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組が格納されている場合、それらを混在して第2の命令格納手段に格納することができる。   Therefore, the source register number specified by the source operand field included in the machine language instructions constituting the different instruction streams (a series of instructions to be executed successively) in the plurality of first instruction storage means, and the destination When a pair with the destination register number specified by the operand field is stored, it can be mixed and stored in the second instruction storage means.

したがって、互いに異なる複数の命令流を混在して実行することができるという効果を奏する。   Therefore, it is possible to execute a plurality of different instruction streams in a mixed manner.

さらに、本発明に係るデータ処理装置は、上記の構成において、上記複数の第1の命令格納手段に格納される複数のソースレジスタ番号とデスティネーションレジスタ番号との組が第2の命令格納手段に格納可能な形式でないとき、第2の命令格納手段が、上記複数の第1の命令格納手段から取得した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を第2の命令格納手段に格納可能な形式に変換する構成としてもよい。   Furthermore, in the data processing apparatus according to the present invention, in the above configuration, a set of a plurality of source register numbers and destination register numbers stored in the plurality of first instruction storage means is used as the second instruction storage means. When not in a storable format, the second instruction storage means can store a combination of a plurality of source register numbers and destination register numbers acquired from the plurality of first instruction storage means in the second instruction storage means. It is good also as a structure converted into a various format.

上記の構成によれば、さらに、第1の命令格納手段から取得した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を第2の命令格納手段に格納可能な形式に変換する。   According to the above configuration, a set of a plurality of source register numbers and destination register numbers acquired from the first instruction storage unit is further converted into a format that can be stored in the second instruction storage unit.

よって、複数の第1の命令格納手段に、互いに異なる命令セットに準拠する命令流を構成する機械語命令に含まれるソースオペランドフィールドより指定されるソースレジスタ番号と、デスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組が格納されている場合でも、それらを混在して第2の命令格納手段に格納することができる。   Therefore, a plurality of first instruction storage means are designated by a source register number designated by a source operand field included in a machine language instruction constituting an instruction stream conforming to different instruction sets and a destination operand field. Even when a pair with the destination register number is stored, they can be mixed and stored in the second instruction storage means.

したがって、異なる命令セットに準拠する複数の命令流を混在して実行することができるという効果を奏する。   Therefore, it is possible to execute a plurality of instruction streams conforming to different instruction sets in a mixed manner.

以上のように、本発明に係るデータ処理装置は、所定の演算に使用する値を格納するソースレジスタの番号を指定するソースオペランドフィールドと、該演算の結果を格納するデスティネーションレジスタの番号を指定するデスティネーションオペランドフィールドとを含む機械語命令を複数同時に解釈実行するデータ処理装置であって、複数の上記機械語命令に含まれる、ソースオペランドフィールドより指定されるソースレジスタ番号とデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を格納する第1の命令格納手段と、第1の命令格納手段から取得した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を、該ソースレジスタ番号を指定するソースオペランドフィールドおよび該デスティネーションレジスタ番号を指定するデスティネーションオペランドフィールドを含む機械語命令の実行順序に応じた所定の格納位置に格納し、上記ソースレジスタ番号とデスティネーションレジスタ番号との組を格納しない格納位置には空き情報を格納する第2の命令格納手段と、第2の命令格納手段に格納されている、実行順序が最も早い機械語命令に含まれるソースオペランドフィールドにより指定されるソースレジスタの値と、該機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号とを格納する第3の命令格納手段と、第3の命令格納手段から取得したソースレジスタの値を基に所定演算を行い、該演算結果を第3の命令格納手段から取得したデスティネーションレジスタ番号で指定されるレジスタに格納する、複数の命令演算手段とを備え、第1の命令格納手段から取得したソースレジスタ番号が、第2の命令格納手段に格納済みのデスティネーションレジスタ番号に依存するとき、第2の命令格納手段が、上記ソースレジスタ番号を指定するソースオペランドフィールドを含む機械語命令の実行順序を、上記デスティネーションレジスタ番号を指定するデスティネーションオペランドフィールドを含む機械語命令の実行順序より遅い順序に決定し、上記決定した実行順序に応じた格納位置であって、上記空き情報が格納されている格納位置に、上記ソースオペランドフィールドにより指定されるソースレジスタ番号と、上記ソースオペランドフィールドを含む機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を格納する。   As described above, the data processing apparatus according to the present invention specifies the source operand field that specifies the number of the source register that stores the value used for a predetermined operation, and the number of the destination register that stores the result of the operation. A data processing device that simultaneously interprets and executes a plurality of machine language instructions including a destination operand field, and includes a source register number and a destination operand field specified by the source operand field included in the plurality of machine language instructions. First instruction storage means for storing a set of designated destination register numbers, and a set of a plurality of source register numbers and destination register numbers acquired from the first instruction storage means Source operand fee to be specified And a storage location in which the pair of the source register number and the destination register number is not stored, according to the execution order of the machine language instruction including the destination operand field for designating the destination register number and the destination register number. Includes a second instruction storage means for storing empty information, a value of a source register specified by a source operand field included in a machine language instruction stored in the second instruction storage means and having the earliest execution order, and , A third instruction storage means for storing the destination register number designated by the destination operand field included in the machine language instruction, and a predetermined operation based on the value of the source register obtained from the third instruction storage means And the operation result is obtained from the third instruction storage means. A destination register number stored in the second instruction storage means, the source register number acquired from the first instruction storage means, and stored in the register specified by the destination register number. The second instruction storage means includes the execution order of the machine instruction including the source operand field specifying the source register number, and the machine instruction including the destination operand field specifying the destination register number. And a storage location corresponding to the determined execution order, where the empty information is stored, and a source register number specified by the source operand field, and Death in machine language instructions that include a source operand field Stores a pair with the destination register number specified by the destination operand field.

また、本発明に係るデータ処理方法は、所定の演算に使用する値を格納するソースレジスタの番号を指定するソースオペランドフィールドと、該演算の結果を格納するデスティネーションレジスタの番号を指定するデスティネーションオペランドフィールドとを含む機械語命令を複数同時に解釈実行するデータ処理方法であって、複数の上記機械語命令に含まれる、ソースオペランドフィールドより指定されるソースレジスタ番号とデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を格納する第1の命令格納ステップと、第1の命令格納ステップにて格納した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を取得し、該ソースレジスタ番号を指定するソースオペランドフィールドおよび該デスティネーションレジスタ番号を指定するデスティネーションオペランドフィールドを含む機械語命令の実行順序に応じた所定の格納位置に格納し、上記ソースレジスタ番号とデスティネーションレジスタ番号との組を格納しない格納位置には空き情報を格納する第2の命令格納ステップと、第2の命令格納ステップにて格納した、実行順序が最も早い機械語命令に含まれるソースオペランドフィールドにより指定されるソースレジスタの値と、該機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号とを格納する第3の命令格納ステップと、第3の命令格納ステップにて格納した、ソースオペランドフィールドにより指定されるソースレジスタの値を取得して所定演算を行い、該演算結果を第3の命令格納ステップにて格納した、デスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号で指定されるレジスタに格納する、複数の命令演算ステップとを含み、第2の命令格納ステップにて取得したソースオペランドフィールドにより指定されるソースレジスタ番号が、第2の命令格納ステップにて格納済みのデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号に依存するとき、上記ソースオペランドフィールドを含む機械語命令の実行順序を、上記デスティネーションオペランドフィールドを含む機械語命令の実行順序より遅い順序に決定し、上記決定した実行順序に応じた格納位置であって、上記空き情報が格納されている格納位置に、上記ソースオペランドフィールドにより指定されるソースレジスタ番号と、上記ソースオペランドフィールドを含む機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を格納する。   The data processing method according to the present invention also includes a source operand field that specifies the number of a source register that stores a value used for a predetermined operation, and a destination register that specifies the number of a destination register that stores the result of the operation. A data processing method for simultaneously interpreting and executing a plurality of machine language instructions including an operand field, which is specified by a source register number and a destination operand field specified by a source operand field included in the plurality of machine language instructions. A first instruction storing step for storing a set of destination register numbers, and a plurality of sets of source register numbers and destination register numbers stored in the first instruction storing step are acquired, and the source register numbers are obtained. Source operand to specify A storage location in which a pair of the source register number and the destination register number is not stored, and stored in a predetermined storage location corresponding to the execution order of the machine language instruction including the field and the destination operand field for designating the destination register number Includes a second instruction storing step for storing empty information, a value of a source register specified by a source operand field stored in the machine instruction having the earliest execution order stored in the second instruction storing step, A third instruction storing step for storing a destination register number specified by the destination operand field included in the machine language instruction, and a source specified by the source operand field stored in the third instruction storing step Get register value A plurality of instruction operation steps for performing a predetermined operation and storing the operation result in a register specified by a destination register number specified by a destination operand field stored in a third instruction storage step. When the source register number specified by the source operand field acquired in the second instruction storage step depends on the destination register number specified by the destination operand field stored in the second instruction storage step The execution order of the machine language instruction including the source operand field is determined to be slower than the execution order of the machine language instruction including the destination operand field, and the storage position is in accordance with the determined execution order, Free information is stored A set of the source register number specified by the source operand field and the destination register number specified by the destination operand field included in the machine language instruction including the source operand field is stored in the storage location.

よって、依存関係がある機械語命令を実行順序に従って取り出せるように、該機械語命令に含まれるソースオペランドフィールドより指定されるソースレジスタ番号と、デスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を第2の命令格納手段に格納することができる。そして、実行順序が最も早い機械語命令のみを発行することができる。   Therefore, the source register number specified by the source operand field included in the machine language instruction and the destination register number specified by the destination operand field so that a machine language instruction having a dependency relationship can be extracted according to the execution order. The set can be stored in the second instruction storage means. Only the machine language instruction with the earliest execution order can be issued.

したがって、上記データ処理装置は、任意の格納位置から機械語命令を選択して発行する構成ではないため、命令実行処理の遅延時間を抑えることができ、データ処理装置全体の動作周波数を向上させることができるという効果を奏する。   Therefore, since the data processing device is not configured to select and issue a machine language instruction from an arbitrary storage location, the delay time of instruction execution processing can be suppressed, and the operating frequency of the entire data processing device can be improved. There is an effect that can be.

また、レジスタ番号のみを第2の命令格納手段に格納するので、記憶領域のサイズを抑えることができるという効果を奏する。   In addition, since only the register number is stored in the second instruction storage unit, the size of the storage area can be reduced.

実施の形態において、具体例を挙げて説明する場合、実施の形態に係るデータ処理装置は、4つの命令を同時実行する処理が処理する形態について説明する。もちろん、実施の形態に係るデータ処理装置が同時実行する命令の数は4つに限られるものではなく、4つより多くてもよいし、4つより少なくてもよい。   In the embodiment, when a description is given with a specific example, the data processing apparatus according to the embodiment describes a mode in which a process of simultaneously executing four instructions is processed. Of course, the number of instructions simultaneously executed by the data processing apparatus according to the embodiment is not limited to four, and may be more or less than four.

また、実施の形態において、具体例を挙げて説明する場合、実施の形態に係るデータ処理装置は、3オペランド方式の命令、すなわち、2つのソースレジスタにて指定される値を用いて演算を行った結果を1つのデスティネーションレジスタに格納する命令を処理する形態について説明する。   In the embodiment, when a specific example is described, the data processing apparatus according to the embodiment performs an operation using a 3-operand instruction, that is, a value specified by two source registers. A mode of processing an instruction for storing the result in one destination register will be described.

本発明の一実施形態に係るデータ処理装置について図1から図8に基づいて説明すると以下の通りである。   A data processing apparatus according to an embodiment of the present invention will be described below with reference to FIGS.

図1を参照しながら、本実施形態に係るデータ処理装置100について説明する。図1は、本実施形態に係るデータ処理装置100の構成を示すブロック図である。   A data processing apparatus 100 according to the present embodiment will be described with reference to FIG. FIG. 1 is a block diagram illustrating a configuration of a data processing apparatus 100 according to the present embodiment.

データ処理装置100は、いくつかのステージを経て命令を実行する。すなわち、まず、命令フェッチ(IF)および命令のデコード(HOST-D)を行った後(図示せず)、Rename&Scheduleステージ101で、命令間のレジスタ依存関係を解消した命令をキューに登録する。次に、Dispatch&Readステージ102では、キューから適切な命令を取り出す。そして、Executeステージ103では演算を実行する。そして最後に、レジスタの更新(RETIRE)を行う(図示せず)。   The data processing apparatus 100 executes instructions through several stages. That is, first, after instruction fetch (IF) and instruction decode (HOST-D) (not shown), the Rename & Schedule stage 101 registers an instruction in which the register dependency between instructions is eliminated in a queue. Next, in the Dispatch & Read stage 102, an appropriate instruction is taken out from the queue. In the Execute stage 103, the calculation is executed. Finally, the register is updated (RETIRE) (not shown).

次に、データ処理装置100の構成について説明する。図1に示すように、データ処理装置100は、デコード部110、デコード記憶部120、依存関係検査部130、VLIW命令キュー140、リオーダバッファ150、入力待ちレジスタ170、演算器180、演算結果格納部191〜194、バイパス195、タグアップデート196、レジスタ書き込み197、キャッシュミス発生管理部198、命令登録遅延部199を備えて構成される。   Next, the configuration of the data processing apparatus 100 will be described. As shown in FIG. 1, the data processing apparatus 100 includes a decoding unit 110, a decoding storage unit 120, a dependency checking unit 130, a VLIW instruction queue 140, a reorder buffer 150, an input waiting register 170, an arithmetic unit 180, and an operation result storage unit. 191 to 194, a bypass 195, a tag update 196, a register write 197, a cache miss occurrence management unit 198, and an instruction registration delay unit 199.

デコード部110は、各命令のソースレジスタ番号およびデスティネーションレジスタ番号を一般的な手法によりデコード処理する。そして、デコード後の各命令のソースレジスタ番号(s)およびデスティネーションレジスタ番号(d)の組をデコード記憶部120に格納する。   The decoding unit 110 decodes the source register number and the destination register number of each instruction by a general method. Then, a set of the source register number (s) and the destination register number (d) of each instruction after decoding is stored in the decode storage unit 120.

デコード記憶部120は、デコード部110がデコードした各命令のソースレジスタ番号(s)およびデスティネーションレジスタ番号(d)の組を保持する。すなわち、デコード記憶部120は、sとdとの組合せ121〜124を保持する。なお、後述するように、各命令は1サイクルで完了する単位に分解された状態で、デコード記憶部120に格納されていることが望ましい。   The decode storage unit 120 holds a set of the source register number (s) and the destination register number (d) of each instruction decoded by the decode unit 110. That is, the decode storage unit 120 holds combinations 121 to 124 of s and d. As will be described later, it is desirable that each instruction is stored in the decode storage unit 120 in a state of being broken down into units completed in one cycle.

依存関係検査部130は、デコード記憶部120に保持されているデコード後の各命令のソースレジスタ番号(s)およびデスティネーションレジスタ番号(d)の組を入力とし、一般的な手法により命令間のレジスタ依存関係を解消する。そして、依存関係解消後のソースレジスタ番号(S)およびデスティネーションレジスタ番号(D)の組を、後述するVLIW命令キュー140に出力する。   The dependency checking unit 130 receives a set of the source register number (s) and the destination register number (d) of each decoded instruction held in the decoding storage unit 120 as an input, Remove register dependency. Then, a set of the source register number (S) and the destination register number (D) after the dependency relationship is canceled is output to the VLIW instruction queue 140 described later.

また、依存関係検査部130は、依存関係を解消した命令の実行順序を、後述するリオーダバッファ150に送信する
VLIW命令キュー140は、VLIW(very long instruction window)型のキューである。命令の依存関係解消後のソースレジスタ番号(S)およびデスティネーションレジスタ番号(D)の組を、後述する方法によりキューの適切な位置に登録する。そして、命令が発行可能な状態になるまで待機させる。
The dependency checking unit 130 transmits the execution order of instructions for which the dependency is canceled to a reorder buffer 150 (to be described later). The VLIW instruction queue 140 is a VLIW (very long instruction window) type queue. The pair of the source register number (S) and the destination register number (D) after the instruction dependency relationship is resolved is registered at an appropriate position in the queue by a method described later. Then, it waits until an instruction can be issued.

VLIW命令キュー140は4つのキューを備えて構成される。そして、4つのキューは、それぞれ各演算器に投入される命令を登録する。すなわち、VLIW命令キュー140は、算術論理演算器181に投入される命令を登録するキュー141、シフト演算器182に投入される命令を登録するキュー142、アドレス演算器183に投入される命令を登録するキュー143、キャッシュ184に投入される命令を登録するキュー144を備えて構成される。VLIW命令キュー140の詳細な構成については後述する。   The VLIW instruction queue 140 includes four queues. Each of the four queues registers an instruction to be input to each arithmetic unit. That is, the VLIW instruction queue 140 registers a queue 141 for registering an instruction to be input to the arithmetic logic unit 181, a queue 142 for registering an instruction to be input to the shift arithmetic unit 182, and an instruction to be input to the address calculator 183. And a queue 144 for registering instructions to be input to the cache 184. The detailed configuration of the VLIW instruction queue 140 will be described later.

なお、以下では、キュー141に新たに登録される命令を「命令A」、キュー142に新たに登録される命令を「命令B」、キュー143に新たに登録される命令を「命令C」、キュー144に新たに登録される命令を「命令D」と称する。   In the following, an instruction newly registered in the queue 141 is “instruction A”, an instruction newly registered in the queue 142 is “instruction B”, and an instruction newly registered in the queue 143 is “instruction C”. An instruction newly registered in the queue 144 is referred to as “instruction D”.

リオーダバッファ150は、命令の実行順序を保持する。また、どの命令まで実行が完了したかを記憶する。そのために、リオーダバッファ150は、依存関係検査部130から依存関係が解消された命令のレジスタ番号を受け取り、保持する。また、後述する演算結果格納部191〜194から演算結果を受け取り、実行が完了した旨をレジスタ番号ごとに管理する。なお、リオーダバッファ150は、キャッシュ140にてキャッシュミスが起こっても、実行順序が変更された場合であっても、論理的に正しい実行順序を保証するために用いる。   The reorder buffer 150 holds the execution order of instructions. It also stores up to which instruction execution has been completed. For this purpose, the reorder buffer 150 receives and holds the register number of the instruction whose dependency relationship has been canceled from the dependency relationship checking unit 130. In addition, calculation results are received from calculation result storage units 191 to 194, which will be described later, and the fact that execution has been completed is managed for each register number. The reorder buffer 150 is used to guarantee a logically correct execution order regardless of whether a cache miss occurs in the cache 140 or the execution order is changed.

入力待ちレジスタ170は、演算器180に投入するソースレジスタ、および、命令の演算結果を格納するレジスタである。そのために、VLIW命令キュー140内の後述するエントリ141〜144のソースレジスタ番号の出力が入力待ちレジスタ170に接続されている。そして、演算結果格納部191〜194の出力は後述するレジスタ書き込み197を介して、入力待ちレジスタ170に接続されている。   The input waiting register 170 is a source register that is input to the arithmetic unit 180 and a register that stores an operation result of the instruction. For this purpose, the output of the source register number of entries 141 to 144 described later in the VLIW instruction queue 140 is connected to the input waiting register 170. The outputs of the calculation result storage units 191 to 194 are connected to the input waiting register 170 via a register write 197 described later.

なお、入力待ちレジスタ170を介して、次サイクルで演算が実行される命令のソースレジスタ値175〜178が出力される。   Note that source register values 175 to 178 of an instruction to be executed in the next cycle are output via the input wait register 170.

演算器180は、4つの演算器を備えて構成される。すなわち、演算器180は、算術論理演算器181(ALU)と、シフト演算器182(Shift)と、アドレス演算器183(Addr)と、キャッシュ184(Cache)とを1つずつ備える。いずれの演算器も、3オペランド方式、すなわち、2つのソースレジスタにて指定される値を用いて演算を行い、演算結果を演算結果格納部190に格納する。なお、4オペランド方式や5オペランド方式の演算については、すべて3オペランド方式に分解して実行するものとする。   The computing unit 180 includes four computing units. That is, the arithmetic unit 180 includes one arithmetic logic unit 181 (ALU), one shift arithmetic unit 182 (Shift), one address arithmetic unit 183 (Addr), and one cache 184 (Cache). Each of the arithmetic units performs a calculation using a value specified by the two operand registers, that is, two source registers, and stores the calculation result in the calculation result storage unit 190. It should be noted that all 4-operand and 5-operand operations are decomposed into three-operand methods and executed.

なお、データ処理装置100が備える演算器は、上記4種類の演算器に限られるものではない。例えば、さらに別の算術論理演算器等を備えてもよい。   Note that the arithmetic units included in the data processing apparatus 100 are not limited to the four types of arithmetic units. For example, another arithmetic logic unit or the like may be provided.

演算結果格納部191〜194は、演算器180が演算した結果を格納する。すなわち、演算結果格納部191は、算術論理演算器181が演算した結果を格納する。また、演算結果格納部192は、シフト演算器182が演算した結果を格納する。また、演算結果格納部193は、アドレス演算器183が演算した結果を格納する。また、演算結果格納部194は、キャッシュ184が演算した結果を格納する。   The calculation result storage units 191 to 194 store the results calculated by the calculator 180. That is, the calculation result storage unit 191 stores the result calculated by the arithmetic logic unit 181. The calculation result storage unit 192 stores the result calculated by the shift calculator 182. The calculation result storage unit 193 stores the result calculated by the address calculator 183. The calculation result storage unit 194 stores the result calculated by the cache 184.

バイパス195は、演算の結果を直後に実行する演算に使用するため、演算結果格納部191〜194を、算術論理演算器181、シフト演算器182、アドレス演算器183、キャッシュ184に接続する信号線である。   The bypass 195 is a signal line that connects the operation result storage units 191 to 194 to the arithmetic logic unit 181, the shift operation unit 182, the address operation unit 183, and the cache 184 in order to use the result of the operation for the operation to be executed immediately after. It is.

タグアップデート196は、演算結果格納部191〜194、および、次サイクルで演算が実行される予定の命令のデスティネーションレジスタ番号171〜174をVLIW命令キュー140に接続するための信号線である。   The tag update 196 is a signal line for connecting the operation result storage units 191 to 194 and the destination register numbers 171 to 174 of instructions scheduled to be executed in the next cycle to the VLIW instruction queue 140.

そして、タグアップデート196を用いて、まず、VLIW命令キュー140に待機しているソースレジスタ番号と、先行命令の演算結果が格納される演算結果格納部191〜194のデスティネーションレジスタ番号とを比較する。それらを比較した結果、それらの番号が一致すれば、待機している命令が使用するソースレジスタをデスティネーションレジスタとして使用した先行命令の演算が完了したことを意味する。したがって、例えば、そのソースレジスタの値を演算器に発行可能である旨のフラグ(例えば「1」)を設定する。   Then, using the tag update 196, first, the source register number waiting in the VLIW instruction queue 140 is compared with the destination register numbers of the operation result storage units 191 to 194 in which the operation result of the preceding instruction is stored. . If the numbers match as a result of comparing them, it means that the operation of the preceding instruction using the source register used by the waiting instruction as the destination register is completed. Therefore, for example, a flag (for example, “1”) indicating that the value of the source register can be issued to the computing unit is set.

さらに、タグアップデート196を用いて、VLIW命令キュー140に待機している命令のソースレジスタ番号と、次サイクルで演算が実行される予定の命令のデスティネーションレジスタ番号171〜174とを比較する。それらを比較した結果、それらの番号が一致すれば、待機している命令が使用するソースレジスタをデスティネーションレジスタとして使用する命令が次サイクルで実行される予定であることを意味する。この場合、そのソースレジスタの値を演算器に投入可能である旨のフラグ(例えば「1」)を立てる。   Further, the tag update 196 is used to compare the source register number of the instruction waiting in the VLIW instruction queue 140 with the destination register numbers 171 to 174 of the instruction scheduled to be executed in the next cycle. If the numbers match as a result of comparing them, it means that an instruction using the source register used by the waiting instruction as the destination register is to be executed in the next cycle. In this case, a flag (for example, “1”) indicating that the value of the source register can be input to the arithmetic unit is set.

そして、VLIW命令キュー140に待機している命令のうち、2つのソースレジスタのいずれにも上記フラグ「1」が立っている命令を取り出す。そして、上記取り出したソースレジスタ番号に対応するレジスタ値として、1)入力待ちレジスタ170に格納されている先行命令の演算結果、または、2)後述するレジスタ書き込み197によってバイパスされている、デスティネーションレジスタ191〜194に格納されている演算結果のうちいずれかを選択し、次サイクルで演算が実行される命令のソースレジスタ値175〜178とする。なお、上記2)の演算結果が優先的に選択される。   Then, out of the instructions waiting in the VLIW instruction queue 140, an instruction having the flag “1” set in both of the two source registers is taken out. Then, as a register value corresponding to the extracted source register number, 1) an operation result of a preceding instruction stored in the input wait register 170, or 2) a destination register bypassed by a register write 197 described later One of the operation results stored in 191 to 194 is selected, and the source register values 175 to 178 of the instruction to be executed in the next cycle are set. The calculation result of 2) is preferentially selected.

レジスタ書き込み197は、演算結果格納部191〜194の出力を接続するための信号線である。演算結果格納部191〜194に格納されている実行結果を入力待ちレジスタ170に書きこむため、および、書き込む前のサイクルで演算結果格納部191〜194に格納されている実行結果をバイパスするために使用する。   The register write 197 is a signal line for connecting the outputs of the calculation result storage units 191 to 194. In order to write the execution results stored in the operation result storage units 191 to 194 to the input wait register 170, and to bypass the execution results stored in the operation result storage units 191 to 194 in the cycle before writing. use.

キャッシュミス発生管理部198は、キャッシュ184にてキャッシュミスを発生させる命令を管理する。そして、キャッシュミスの発生頻度に基づき、キャッシュミスを発生させる可能性が高い命令を予想して、命令登録遅延部199に送信する。   The cache miss occurrence management unit 198 manages an instruction that causes a cache miss in the cache 184. Then, based on the frequency of occurrence of cache misses, an instruction that is likely to cause a cache miss is predicted and transmitted to the instruction registration delay unit 199.

命令登録遅延部199は、キャッシュミス発生管理部198からキャッシュミスを発生させる可能性が高い命令を受け取る。これにより、該命令の演算結果を使用する命令の依存関係解消後のソースレジスタ番号(S)およびデスティネーションレジスタ番号(D)の組の、VLIW命令キュー140への登録を所定期間遅らせる。   The instruction registration delay unit 199 receives an instruction that is highly likely to cause a cache miss from the cache miss occurrence management unit 198. This delays the registration of the pair of the source register number (S) and the destination register number (D) in the VLIW instruction queue 140 for a predetermined period after the dependency relation of the instruction using the operation result of the instruction is resolved.

次に、図2を参照しながら、VLIW命令キュー140について詳細に説明する。図2は、VLIW命令キュー140の構成を示す模式的なブロック図である。   Next, the VLIW instruction queue 140 will be described in detail with reference to FIG. FIG. 2 is a schematic block diagram showing the configuration of the VLIW instruction queue 140.

上述したように、VLIW命令キュー140は、キュー141、キュー142、キュー143、キュー144を備えて構成される。   As described above, the VLIW instruction queue 140 includes the queue 141, the queue 142, the queue 143, and the queue 144.

キュー141〜144はそれぞれ、演算器に投入する予定の4つの命令を登録することができるように、4つのエントリを含んでいる。すなわち、例えば、キュー141は、エントリ1411〜1414を含んでいる。同様に、キュー142は、エントリ1421〜1424を含んでいる。同様に、キュー143は、エントリ1431〜1434を含んでいる。同様に、キュー144は、エントリ1441〜1444を含んでいる。なお、エントリは4つに限定されるものではなく、4つより多くてもよいし、4つより少なくてもよい。   Each of the queues 141 to 144 includes four entries so that four instructions scheduled to be input to the computing unit can be registered. That is, for example, the queue 141 includes entries 1411 to 1414. Similarly, the queue 142 includes entries 1421-1424. Similarly, the queue 143 includes entries 1431 to 1434. Similarly, queue 144 includes entries 1441-1444. Note that the number of entries is not limited to four, and may be more than four or fewer than four.

次に、各エントリは、レジスタ番号を保持するレジスタ保持部を3つ備える。具体的には、各エントリは、ソースレジスタ番号を保持するソースレジスタ保持部を2つ、および、デスティネーションレジスタ番号を保持するデスティネーションレジスタ保持部を1つ備えている。例えば、エントリ1411は、ソースレジスタ保持部151および155と、デスティネーションレジスタ保持部159とを備える。同様に、エントリ1412は、ソースレジスタ保持部152および156と、デスティネーションレジスタ保持部160とを備える。同様に、エントリ1413は、ソースレジスタ保持部153および157と、デスティネーションレジスタ保持部160とを備える。同様に、エントリ1414は、ソースレジスタ保持部154および158と、デスティネーションレジスタ保持部162とを備える。   Next, each entry includes three register holding units that hold register numbers. Specifically, each entry includes two source register holding units that hold source register numbers and one destination register holding unit that holds destination register numbers. For example, the entry 1411 includes source register holding units 151 and 155 and a destination register holding unit 159. Similarly, the entry 1412 includes source register holding units 152 and 156 and a destination register holding unit 160. Similarly, the entry 1413 includes source register holding units 153 and 157 and a destination register holding unit 160. Similarly, the entry 1414 includes source register holding units 154 and 158 and a destination register holding unit 162.

そして、依存関係検査部130から出力される依存関係解消後の命令が、後述する新規命令登録制御部301により決定されたエントリに登録される。すなわち、上記命令のソースレジスタ番号(S)およびデスティネーションレジスタ番号(D)が、上記決定されたエントリが備えるソースレジスタ保持部およびデスティネーションレジスタ保持部に登録される。   Then, the instruction after the dependency relation cancellation output from the dependency relation inspecting unit 130 is registered in the entry determined by the new instruction registration control unit 301 described later. That is, the source register number (S) and the destination register number (D) of the instruction are registered in the source register holding unit and the destination register holding unit included in the determined entry.

そして、各エントリが保持する値は、後述するセレクタを介して、後段のエントリにシフトされる。例えば、エントリ1414が保持する命令が発行されてキュー141から出ていくと、エントリ1413が保持する値はセレクタを介してエントリ1414にシフトされ、エントリ1412が保持する値はセレクタを介してエントリ1413にシフトされ、エントリ1411が保持する値はセレクタを介してエントリ1412にシフトされる。エントリ1414のみが入力待ちレジスタ170に接続されており、エントリ1411〜1413は、入力待ちレジスタ170に接続されていない。従来のデータ処理装置500におけるリザベーションステーション551内の全てのエントリから演算器に対して配線が設けられていたことと比較すると、データ処理装置100内の配線が簡素化される。   Then, the value held by each entry is shifted to a subsequent entry via a selector described later. For example, when an instruction held in the entry 1414 is issued and leaves the queue 141, the value held in the entry 1413 is shifted to the entry 1414 via the selector, and the value held in the entry 1412 is changed to the entry 1413 via the selector. The value held in the entry 1411 is shifted to the entry 1412 via the selector. Only the entry 1414 is connected to the input wait register 170, and the entries 1411 to 1413 are not connected to the input wait register 170. Compared with the wiring provided from all the entries in the reservation station 551 in the conventional data processing apparatus 500 to the arithmetic unit, the wiring in the data processing apparatus 100 is simplified.

なお、最後段のエントリだけが入力待ちレジスタ170に接続されているので、新たに各エントリに登録された命令は、最後段のエントリ1414、1424、1434、1444に到達するまでは発行されない。   Since only the last entry is connected to the input waiting register 170, the newly registered instruction is not issued until the last entry 1414, 1424, 1434, 1444 is reached.

次に、エントリ1414、1424、1434、1444はそれぞれ、保持している2つのソースレジスタ番号がそれぞれ演算器に発行可能であるかどうかを示すフラグを備える(図示せず)。例えば、演算器に発行可能であるとき、フラグの値を「1」に設定する。最初にエントリ1414、1424、1434、1444に登録されたときは、まだ演算器に発行可能ではないため、それぞれのフラグの値は「0」に設定する。そして、後述する所定条件を満たして演算器に発行可能となったとき、それぞれのフラグの値を「1」に設定する。そして、エントリに属する2つのソースレジスタ保持部が有するフラグの値がいずれも「1」となったとき、演算器に発行する。   Next, each of the entries 1414, 1424, 1434, and 1444 includes a flag indicating whether or not the two held source register numbers can be issued to the computing unit (not shown). For example, when the flag can be issued to the computing unit, the flag value is set to “1”. When it is first registered in the entries 1414, 1424, 1434, 1444, it cannot be issued to the calculator yet, so the value of each flag is set to “0”. When a predetermined condition (to be described later) is satisfied and can be issued to the computing unit, the value of each flag is set to “1”. Then, when both of the flag values of the two source register holding units belonging to the entry are “1”, it is issued to the arithmetic unit.

次に、上記フラグの値を「1」に設定する条件について説明する。エントリ1414、1424、1434、1444のそれぞれには、タグアップデート196が接続されており、タグアップデート196を介して、先行命令の演算結果が格納される演算結果格納部191〜194のデスティネーションレジスタ番号が入力される。そして、エントリ1414、1424、1434、1444が保持するソースレジスタ番号のいずれかと、演算結果格納部191〜194のデスティネーションレジスタ番号とを比較した結果、それらが一致すれば、上記ソースレジスタ番号をデスティネーションレジスタ番号として使用した先行命令の演算が完了したことを意味する。この場合、上記ソースレジスタ番号を使用する命令を入力待ちレジスタ170に登録してもよい。したがって、上記値が一致したソースレジスタ番号に対応するフラグの値を「1」に設定する。   Next, a condition for setting the value of the flag to “1” will be described. A tag update 196 is connected to each of the entries 1414, 1424, 1434, and 1444, and the destination register numbers of the operation result storage units 191 to 194 that store the operation result of the preceding instruction via the tag update 196. Is entered. Then, if any of the source register numbers held in the entries 1414, 1424, 1434, and 1444 is compared with the destination register numbers of the operation result storage units 191 to 194, if they match, the source register number is changed to the destination register number. This means that the operation of the preceding instruction used as the nation register number has been completed. In this case, an instruction that uses the source register number may be registered in the input wait register 170. Therefore, the value of the flag corresponding to the source register number that matches the above value is set to “1”.

さらに、別の条件を満たした場合にも、上記フラグの値を「1」に設定するので、以下で説明する。   Further, even when other conditions are satisfied, the value of the flag is set to “1”, which will be described below.

先行命令の実行結果を書き込むデスティネーションレジスタ番号を、該先行命令の直後に実行する後続命令がソースレジスタ番号として使用する場合、該先行命令が1サイクルで実行を完了するのであれば、該先行命令が演算器180に投入されると同時に(つまり、該先行命令の実行完了を待たずに)該後続命令を入力待ちレジスタ170に登録すると、該後続命令を1サイクル早く発行することができる。   When the destination register number to which the execution result of the preceding instruction is written is used as the source register number by the subsequent instruction executed immediately after the preceding instruction, if the preceding instruction completes execution in one cycle, the preceding instruction Is input to the arithmetic unit 180 (that is, without waiting for completion of execution of the preceding instruction), when the subsequent instruction is registered in the input wait register 170, the subsequent instruction can be issued one cycle earlier.

そこで、エントリ1414、1424、1434、1444のそれぞれには、タグアップデート196を介して、次サイクルで演算が実行される予定の命令のデスティネーションレジスタ番号171〜174が入力される。そして、エントリ1414、1424、1434、1444が保持するソースレジスタ番号のいずれかと、デスティネーションレジスタ番号171〜174とを比較した結果、それらが一致すれば、待機している命令が使用するソースレジスタをデスティネーションレジスタとして使用する命令が次サイクルで実行される予定であることを意味する。この場合、上記ソースレジスタ番号を使用する命令を入力待ちレジスタ170に登録してもよい。したがって、上記値が一致したソースレジスタ番号に対応するフラグの値を「1」に設定する。   Therefore, the destination register numbers 171 to 174 of the instruction to be executed in the next cycle are input to each of the entries 1414, 1424, 1434, and 1444 through the tag update 196. If any of the source register numbers held by the entries 1414, 1424, 1434, and 1444 is compared with the destination register numbers 171 to 174, if they match, the source register used by the waiting instruction is determined. This means that the instruction used as the destination register is to be executed in the next cycle. In this case, an instruction that uses the source register number may be registered in the input wait register 170. Therefore, the value of the flag corresponding to the source register number that matches the above value is set to “1”.

なお、上記条件を満たすために、次サイクルで演算が実行される予定の命令が確実に次サイクルで実行される必要がある。そこで、各命令は1サイクルで完了する単位に分解された状態で、デコード記憶部120に格納されていることが望ましい。また、命令が分解されても、リオーダバッファ150にて命令の実行順序を保持するので、命令の実行順序は保たれる。   In order to satisfy the above condition, it is necessary to reliably execute an instruction scheduled to be executed in the next cycle in the next cycle. Therefore, it is desirable that each instruction is stored in the decode storage unit 120 in a state of being decomposed into units that are completed in one cycle. Even if the instructions are decomposed, the instruction execution order is maintained in the reorder buffer 150, so that the instruction execution order is maintained.

次に、図3を参照しながら、キュー141について詳細に説明する。図3は、キュー141の構成を示す模式的な配線図である。   Next, the queue 141 will be described in detail with reference to FIG. FIG. 3 is a schematic wiring diagram showing the configuration of the queue 141.

図3に示すように、キュー141は、図2で示した、ソースレジスタ保持部151〜158、デスティネーションレジスタ保持部159〜162、セレクタ201〜212、デスティネーションレジスタ値送信部215〜218、ソース・デスティネーション依存関係検査部231〜262、ソース・デスティネーション依存関係検査集約部271〜274、後述する新規命令登録制御部301を備えて構成される。後述する新規命令登録制御部301は、図3では図示せず、図7にて図示している。   As shown in FIG. 3, the queue 141 includes the source register holding units 151 to 158, the destination register holding units 159 to 162, the selectors 201 to 212, the destination register value transmission units 215 to 218, the source shown in FIG. A destination dependency checking unit 231 to 262, a source / destination dependency checking unit 271 to 274, and a new instruction registration control unit 301 to be described later. A new command registration control unit 301 to be described later is illustrated in FIG. 7, not illustrated in FIG. 3.

ソースレジスタ保持部151〜154はそれぞれ、依存関係検査部130または前段のソースレジスタ保持部から出力されたソースレジスタ番号1211を保持する。ソースレジスタ保持部155〜158それぞれ、依存関係検査部130または前段のレジスタ保持部から出力されたソースレジスタ番号1212を保持する。   Each of the source register holding units 151 to 154 holds the source register number 1211 output from the dependency checking unit 130 or the previous source register holding unit. Each of the source register holding units 155 to 158 holds the source register number 1212 output from the dependency checking unit 130 or the previous register holding unit.

次に、デスティネーションレジスタ保持部159〜162はそれぞれ、依存関係検査部130または前段のデスティネーションレジスタ保持部から出力されたデスティネーションレジスタ番号1213を保持する。   Next, each of the destination register holding units 159 to 162 holds the destination register number 1213 output from the dependency checking unit 130 or the previous destination register holding unit.

セレクタ201〜212は、新たな命令をレジスタ保持部へ新規登録するか、または、前段のレジスタ保持部に保持されている値を後段のレジスタ保持部へシフトするかを、後述する新規命令登録制御部301からの信号に基づき選択する。そのために、セレクタ201〜212は、依存関係検査部130からの出力と、前段のレジスタ保持部からの出力とに接続されている。そして、セレクタ201〜212の出力は、後段のレジスタ保持部に接続されている。したがって、依存関係検査部130からの出力、および、前段のレジスタ保持部からの出力のうちいずれかを選択し、後段のレジスタ保持部に出力する。なお、図2における最前段のセレクタ201〜203については、その前段にレジスタ保持部が存在しないため、依存関係検査部130から出力のみを入力している。   The selectors 201 to 212 determine whether a new instruction is newly registered in the register holding unit or whether a value held in the previous register holding unit is shifted to the subsequent register holding unit. The selection is made based on the signal from the unit 301. For this purpose, the selectors 201 to 212 are connected to the output from the dependency checking unit 130 and the output from the previous register holding unit. The outputs of the selectors 201 to 212 are connected to a subsequent register holding unit. Therefore, either the output from the dependency checking unit 130 or the output from the previous register holding unit is selected and output to the subsequent register holding unit. 2, only the output is input from the dependency checking unit 130 because there is no register holding unit in the preceding stage.

例えば、セレクタ204は、依存関係検査部130から出力された新たな命令のソースレジスタ番号と、ソースレジスタ保持部151に保持されている先行命令のソースレジスタ番号とが入力される。そして、そのいずれか出力され、ソースレジスタ保持部152に入力される。   For example, the selector 204 receives the source register number of the new instruction output from the dependency relationship checking unit 130 and the source register number of the preceding instruction held in the source register holding unit 151. Then, either of them is output and input to the source register holding unit 152.

次に、レジスタ保持部へ新たに登録される命令と、レジスタ保持部に登録済みの先行命令との間に依存関係が有る場合は、先行命令を実行した後に、新たな命令を実行しなければならない。この場合、レジスタ保持部へ新たに登録される命令は、既に先行命令が登録されているレジスタ保持部よりも前段のレジスタ保持部に登録する必要がある。   Next, if there is a dependency between the instruction newly registered in the register holding unit and the preceding instruction registered in the register holding unit, the new instruction must be executed after executing the preceding instruction. Don't be. In this case, an instruction newly registered in the register holding unit needs to be registered in a register holding unit at a stage preceding the register holding unit in which the preceding instruction is already registered.

そこで、新たな命令と先行命令とのレジスタ依存関係を検査する。そのために、まず、デスティネーションレジスタ値送信部215〜218は、既にレジスタ保持部に登録されているデスティネーションレジスタ番号を、後述するソース・デスティネーション依存関係検査部231〜262のうち、231、235、239、243、247、251、255、259へ送信する。   Therefore, the register dependency between the new instruction and the preceding instruction is checked. For this purpose, first, the destination register value transmission unit 215 to 218 uses the destination register number already registered in the register holding unit as the 231 and 235 among the source / destination dependency checking units 231 to 262 described later. 239, 243, 247, 251, 255, 259.

次に、ソース・デスティネーション依存関係検査部231〜262は、既にレジスタ保持部に登録されている先行命令のデスティネーションレジスタ番号と、新たにレジスタ保持部に登録される命令のソースレジスタ番号との依存関係を検査する。   Next, the source / destination dependency checking unit 231 to 262 calculates the destination register number of the preceding instruction already registered in the register holding unit and the source register number of the instruction newly registered in the register holding unit. Check dependencies.

そのために、まず、ソース・デスティネーション依存関係検査部231、235、239、243、247、251、255、259は、依存関係検査部130から出力される命令Aのソースアドレス番号と、デスティネーションレジスタ値送信部215〜218から送信される、レジスタ保持部に登録済みの先行命令のデスティネーションレジスタ番号とを入力とする。そして、該入力間の依存関係を検査する。   For this purpose, first, the source / destination dependency checking unit 231, 235, 239, 243, 247, 255, 259 performs the source address number of the instruction A output from the dependency checking unit 130 and the destination register. The destination register number of the preceding instruction registered in the register holding unit and transmitted from the value transmission units 215 to 218 is input. Then, the dependency between the inputs is checked.

具体的には、上記ソースレジスタ番号と上記デスティネーションレジスタ番号とが一致すれば、依存関係が有る旨の信号(例えば、値「1」)を出力する。一方、一致しなければ、依存関係が無い旨の信号(例えば、値「0」)を出力する。   Specifically, if the source register number and the destination register number match, a signal indicating that there is a dependency relationship (for example, a value “1”) is output. On the other hand, if they do not match, a signal indicating that there is no dependency (for example, a value “0”) is output.

これにより、算術論理演算器181に投入される命令Aと、その先行命令との依存関係を検査している。   As a result, the dependency relationship between the instruction A input to the arithmetic logic unit 181 and its preceding instruction is checked.

また、ソース・デスティネーション依存関係検査部232、236、240、244、248、252、256、260には、後述する、キュー142に備えられるデスティネーションレジスタ値送信部219〜222から送信される信号を入力としている。これにより、算術論理演算器181に投入される命令Aと、シフト演算器182に投入される先行命令との依存関係を検査している。   Further, the source / destination dependency checking units 232, 236, 240, 244, 248, 252, 256, 260 transmit signals from destination register value transmitting units 219 to 222 provided in the queue 142, which will be described later. As input. Thereby, the dependency relationship between the instruction A input to the arithmetic logic unit 181 and the preceding instruction input to the shift calculator 182 is checked.

同様に、ソース・デスティネーション依存関係検査部233、237、241、245、249、253、257、261には、後述する、キュー143に備えられるデスティネーションレジスタ値送信部223〜226から送信される信号を入力としている。これにより、算術論理演算器181に投入される命令Aと、アドレス演算器183に投入される先行命令との依存関係を検査している。   Similarly, the source / destination dependency checking units 233, 237, 241, 245, 249, 253, 257, and 261 are transmitted from destination register value transmitting units 223 to 226 provided in the queue 143, which will be described later. The signal is input. Thus, the dependency relationship between the instruction A input to the arithmetic logic unit 181 and the preceding instruction input to the address calculator 183 is inspected.

同様に、ソース・デスティネーション依存関係検査部234、238、242、246、250、254、258、262には、後述する、キュー144に備えられるデスティネーションレジスタ値送信部227〜230から送信される信号を入力としている。これにより、算術論理演算器181に投入される命令Aと、キャッシュ184に投入される先行命令との依存関係を検査している。   Similarly, the source / destination dependency checking unit 234, 238, 242, 246, 250, 254, 258, 262 is transmitted from a destination register value transmitting unit 227 to 230 provided in the queue 144, which will be described later. The signal is input. Thereby, the dependency relationship between the instruction A input to the arithmetic logic unit 181 and the preceding instruction input to the cache 184 is checked.

次に、ソース・デスティネーション依存関係検査部231〜262がそれぞれ単独で依存関係の有無を調べた結果のみから、新たな命令をレジスタ保持部に登録してよいかどうかを判断することはできない。すなわち、新たにレジスタ保持部に登録する命令の2つのソースレジスタ番号のうち少なくとも一つが、既にレジスタ保持部に登録されている先行命令のデスティネーションレジスタ番号のいずれか一つと一致すれば、新たにレジスタ保持部に登録する命令と既にレジスタ保持部に登録されている先行命令との間には依存関係が有ることになる。したがって、新たにレジスタ保持部に登録する命令の2つのソースレジスタ番号と、既にレジスタ保持部に登録されている先行命令のデスティネーションレジスタ番号の全てとを比較する必要がある。   Next, it is impossible to determine whether or not a new instruction may be registered in the register holding unit only from the result of the source / destination dependency checking unit 231 to 262 independently checking whether or not there is a dependency. That is, if at least one of the two source register numbers of the instruction newly registered in the register holding unit matches one of the destination register numbers of the preceding instruction already registered in the register holding unit, There is a dependency between an instruction registered in the register holding unit and a preceding instruction already registered in the register holding unit. Therefore, it is necessary to compare the two source register numbers of the instruction newly registered in the register holding unit with all the destination register numbers of the preceding instructions already registered in the register holding unit.

そのために、ソース・デスティネーション依存関係検査集約部271〜274は、それぞれソース・デスティネーション依存関係検査部231〜238、239〜246、247〜254、255〜262の出力値を入力とし、それらの論理和を出力する。   For this purpose, the source / destination dependency inspection unit 271 to 274 receives the output values of the source / destination dependency inspection units 231 to 238, 239 to 246, 247 to 254, and 255 to 262, respectively. Output logical sum.

例えば、ソース・デスティネーション依存関係検査集約部271を例に挙げて説明する。ソース・デスティネーション依存関係検査部231〜238の出力値の少なくとも1つが「1」(すなわち、依存関係が有る)のとき、ソース・デスティネーション依存関係検査集約部271は値「1」を出力する。一方、ソース・デスティネーション依存関係検査部231〜238の出力値がすべて「0」(すなわち、依存関係が無い)のとき、ソース・デスティネーション依存関係検査集約部271は値「0」を出力する。ソース・デスティネーション依存関係検査集約部272〜274についても、同様に、値「1」または「0」を出力する。   For example, the source / destination dependency relation inspection aggregation unit 271 will be described as an example. When at least one of the output values of the source / destination dependency checking units 231 to 238 is “1” (that is, there is a dependency), the source / destination dependency checking unit 271 outputs the value “1”. . On the other hand, when the output values of the source / destination dependency checking units 231 to 238 are all “0” (that is, there is no dependency), the source / destination dependency checking unit 271 outputs the value “0”. . Similarly, the value “1” or “0” is output also to the source / destination dependency inspection aggregation units 272 to 274.

そして、ソース・デスティネーション依存関係検査集約部271〜274の出力値は、後述する新規命令登録制御部301に入力される。   Then, the output values of the source / destination dependency relation inspection aggregation units 271 to 274 are input to a new instruction registration control unit 301 described later.

上述したように、レジスタ保持部へ新たに登録される命令と、レジスタ保持部に登録済みの先行命令との間の依存関係は、ソース・デスティネーション依存関係検査集約部271〜274で検査することができる。しかしながら、さらに、新たに登録される命令の間にも依存関係が有る場合、その依存関係をも考慮し、新たな命令を登録する適切なレジスタ保持部を決定する必要がある。そのために、後述する新規命令登録制御部301が、セレクタ201〜212を適切に制御して、新たな命令を登録する。   As described above, the dependency between the instruction newly registered in the register holding unit and the preceding instruction registered in the register holding unit should be checked by the source / destination dependency checking / aggregating units 271 to 274. Can do. However, if there is also a dependency relationship between newly registered instructions, it is necessary to determine an appropriate register holding unit for registering a new instruction in consideration of the dependency relationship. For this purpose, a new instruction registration control unit 301 described later appropriately controls the selectors 201 to 212 to register a new instruction.

次に、図4〜6を参照しながら、キュー142〜144について説明する。図4〜6は、キュー142〜144の構成を示す模式的な配線図である。   Next, the queues 142 to 144 will be described with reference to FIGS. 4 to 6 are schematic wiring diagrams showing configurations of the queues 142 to 144. FIG.

図4〜6に示すように、キュー142〜144の構成は、図3で示したキュー144と同じ部材を備えて構成される。ただし、デスティネーションレジスタ値送信部219〜230の設置箇所が異なる。   4 to 6, the configuration of the queues 142 to 144 includes the same members as the queue 144 illustrated in FIG. 3. However, the installation locations of the destination register value transmission units 219 to 230 are different.

次に、図7を参照しながら、新規命令登録制御部301に対する入出力信号について説明する。図7は、新規命令登録制御部301の入出力を示す模式的な配線図である。   Next, input / output signals for the new instruction registration control unit 301 will be described with reference to FIG. FIG. 7 is a schematic wiring diagram showing input / output of the new command registration control unit 301.

図7に示すように、新規命令登録制御部301への入力には、ソース・デスティネーション依存関係検査集約部271〜274からの信号311〜314と、ソースレジスタ保持部151〜158からの信号315〜319と、依存関係検査部130からの信号320と、キュー142〜144に備えられる、新規命令登録制御部301と同様の構成を備える新規命令登録制御部(図示せず)からの信号330とが含まれる。   As shown in FIG. 7, the inputs to the new instruction registration control unit 301 include signals 311 to 314 from the source / destination dependency relation check aggregation units 271 to 274 and signals 315 from the source register holding units 151 to 158. 319, a signal 320 from the dependency checking unit 130, and a signal 330 from a new command registration control unit (not shown) provided in the queues 142 to 144 and having the same configuration as the new command registration control unit 301 Is included.

また、新規命令登録制御部301の出力には、セレクタ201〜212への信号345〜348と、キュー142〜144に備えられる新規命令登録制御部への信号350とが含まれる。   The output of the new instruction registration control unit 301 includes signals 345 to 348 to the selectors 201 to 212 and a signal 350 to the new instruction registration control unit provided in the queues 142 to 144.

ソース・デスティネーション依存関係検査集約部271〜274からの信号311〜314は、上述したように、それぞれソース・デスティネーション依存関係検査部231〜238、239〜246、247〜254、255〜262の出力値の論理和である。   As described above, the signals 311 to 314 from the source / destination dependency checking / aggregating units 271 to 274 are the signals of the source / destination dependency checking units 231 to 238, 239 to 246, 247 to 254, and 255 to 262, respectively. It is the logical sum of the output values.

ソースレジスタ保持部151〜158からの信号315〜319は、ソースレジスタ保持部151〜158に空きがあるかどうか、すなわちソースレジスタ保持部151〜158に値が登録されているかどうかを示す信号である。   Signals 315 to 319 from the source register holding units 151 to 158 are signals indicating whether or not there is a vacancy in the source register holding units 151 to 158, that is, whether or not a value is registered in the source register holding units 151 to 158. .

例えば、信号315は、ソースレジスタ保持部151および155のいずれにも空きがあるかどうかを示す。例えば、いずれにも空きがない場合、値を「1」とする。   For example, the signal 315 indicates whether any of the source register holding units 151 and 155 is free. For example, the value is set to “1” when there is no empty space.

信号320は、新たに登録する命令の間の依存関係を示す信号であって、依存関係検査部130から得られる。具体的には、新たな命令Xと新たな命令Yとを実行するときに、その命令間に必要な時間間隔である。例えば、命令Xを実行してから1サイクル後に命令Yを実行してよい場合は、信号320の値は「1」となる。また例えば、命令Xを実行してから2サイクル後に命令Yを実行する必要がある場合は、信号320の値は「2」となる。なお、信号320は、依存関係検査部130が従来から備える機構により算出可能である。図7では、信号320を1本の信号線で示しているが、後述するように複数の信号線から構成される。   The signal 320 is a signal indicating a dependency relationship between newly registered instructions, and is obtained from the dependency relationship inspecting unit 130. Specifically, it is a time interval required between instructions when a new instruction X and a new instruction Y are executed. For example, when the instruction Y may be executed one cycle after the instruction X is executed, the value of the signal 320 is “1”. For example, when it is necessary to execute the instruction Y two cycles after the execution of the instruction X, the value of the signal 320 is “2”. Note that the signal 320 can be calculated by a mechanism that the dependency checking unit 130 conventionally includes. In FIG. 7, the signal 320 is shown by a single signal line, but is composed of a plurality of signal lines as will be described later.

信号330は、キュー142〜144に備えられる新規命令登録制御部が出力する。信号330は、命令B、C、Dを、キュー142〜144におけるエントリのいずれに登録したかを示す信号であり、Aをキュー141のどのエントリに命令Aを登録するかを判断するときの制約情報として用いる。なお、図7では、信号330を1本の信号線で示しているが、後述するように複数の信号線から構成される。   The signal 330 is output by the new instruction registration control unit provided in the queues 142 to 144. The signal 330 is a signal indicating to which of the entries in the queues 142 to 144 the instructions B, C, and D are registered. Restriction when determining which entry of the queue 141 is to register the instruction A Use as information. In FIG. 7, the signal 330 is shown by one signal line, but is composed of a plurality of signal lines as will be described later.

セレクタ201〜212への信号345〜348は、新規命令をどのレジスタ保持部へ登録するかに応じて、各セレクタを制御するための信号である。   Signals 345 to 348 to the selectors 201 to 212 are signals for controlling each selector according to which register holding unit a new instruction is registered.

信号350は、キュー142〜144に備えられる新規命令登録制御部への入力となる信号である。命令Aをどのエントリに登録したかを示す信号であり、命令B、C、Dをどのエントリに登録するかを判断するときの制約情報として用いる。図7では、信号350を1本の信号線で示しているが、後述するように複数の信号線から構成される。   A signal 350 is a signal to be input to the new instruction registration control unit provided in the queues 142 to 144. This signal indicates to which entry the instruction A is registered, and is used as constraint information when determining which entry the instructions B, C, and D are registered to. In FIG. 7, the signal 350 is shown by a single signal line, but is composed of a plurality of signal lines as will be described later.

次に、図8を参照しながら、新規命令登録制御部301の構成について詳細に説明する。図8は、新規命令登録制御部301の構成を示す模式的な配線図である。図8に示すように、新規命令登録制御部301は、登録エントリ決定部401〜404、制約情報生成部410、420、430を備えて構成される。   Next, the configuration of the new instruction registration control unit 301 will be described in detail with reference to FIG. FIG. 8 is a schematic wiring diagram showing the configuration of the new command registration control unit 301. As illustrated in FIG. 8, the new instruction registration control unit 301 includes registration entry determination units 401 to 404 and constraint information generation units 410, 420, and 430.

登録エントリ決定部401〜404は、エントリ1411〜1414のいずれに新規命令を登録するかを決定し、セレクタ201〜212を制御する。そのために、ソース・デスティネーション依存関係検査集約部271〜274からの信号311〜314と、キュー142〜144に備えられる新規命令登録制御部が出力する信号331〜342と、ソースレジスタ保持部151〜158の空きを示す信号315〜319とを入力とする。   The registered entry determination units 401 to 404 determine which of the entries 1411 to 1414 a new command is registered to control the selectors 201 to 212. For this purpose, the signals 311 to 314 from the source / destination dependency relation check aggregation units 271 to 274, the signals 331 to 342 output by the new instruction registration control unit provided in the queues 142 to 144, and the source register holding unit 151 to Signals 315 to 319 indicating 158 vacancy are input.

ここで、登録エントリ決定部401〜404へ入力される信号331〜342は、図7で示した信号330を詳細に示したものであり、キュー142〜144に備えられる新規命令登録制御部が出力する信号である。具体的には、信号331の値は、キュー142に備えられる新規命令登録制御部がエントリ1421に新規命令を登録した場合、「1」となる。また、信号332の値は、キュー142に備えられる新規命令登録制御部がエントリ1422に新規命令を登録した場合、「1」となる。また、信号333の値は、キュー142に備えられる新規命令登録制御部がエントリ1423に新規命令を登録した場合、「1」となる。また、信号334の値は、キュー142に備えられる新規命令登録制御部がエントリ1424に新規命令を登録した場合、「1」となる。   Here, the signals 331 to 342 input to the registration entry determination units 401 to 404 are the details of the signal 330 shown in FIG. 7, and the new instruction registration control unit provided in the queues 142 to 144 outputs Signal. Specifically, the value of the signal 331 is “1” when the new instruction registration control unit provided in the queue 142 registers a new instruction in the entry 1421. The value of the signal 332 is “1” when the new instruction registration control unit provided in the queue 142 registers a new instruction in the entry 1422. The value of the signal 333 is “1” when the new instruction registration control unit provided in the queue 142 registers a new instruction in the entry 1423. The value of the signal 334 is “1” when the new instruction registration control unit provided in the queue 142 registers a new instruction in the entry 1424.

同様に、信号335〜338の値は、キュー143に備えられる新規命令登録制御部が、それぞれエントリ1431〜1434に新規命令を登録した場合、「1」となる。同様に、信号339〜342の値は、キュー144に備えられる新規命令登録制御部が、それぞれエントリ1441〜1444に新規命令を登録した場合、「1」となる。   Similarly, the values of the signals 335 to 338 are “1” when the new instruction registration control unit provided in the queue 143 registers new instructions in the entries 1431 to 1434, respectively. Similarly, the values of the signals 339 to 342 are “1” when the new instruction registration control unit provided in the queue 144 registers new instructions in the entries 1441 to 1444, respectively.

次に、登録エントリ決定部401を例に挙げて、エントリに登録するか否かを決定する処理について、具体的に説明する。   Next, taking the registration entry determination unit 401 as an example, a process for determining whether or not to register an entry will be specifically described.

登録エントリ決定部401には、信号311、信号331、信号335、信号339、および、信号315が入力される。まず、上述したように、信号311の値によって、すでにエントリ1411またはエントリ1421またはエントリ1431またはエントリ1441に登録済みの命令との依存関係の有無がわかる。依存関係がある場合、信号311の値は「1」である。   The registration entry determination unit 401 receives a signal 311, a signal 331, a signal 335, a signal 339, and a signal 315. First, as described above, the presence / absence of a dependency relationship with an instruction already registered in the entry 1411 or the entry 1421 or the entry 1431 or the entry 1441 can be determined from the value of the signal 311. If there is a dependency, the value of the signal 311 is “1”.

また、上述したように、信号331と信号335と信号339との値によって、新たに登録する他の命令が、エントリ1421、エントリ1431、エントリ1441に登録されたかどうかがわかる。登録された場合、信号331、信号335、信号339の値は「1」である。   Further, as described above, the values of the signal 331, the signal 335, and the signal 339 can be used to determine whether another instruction to be newly registered is registered in the entry 1421, the entry 1431, and the entry 1441. When registered, the values of the signal 331, the signal 335, and the signal 339 are “1”.

そして、信号315の値によって、ソースレジスタ保持部151および155に空きがあるかどうかがわかる。空きがない場合は、値は「1」である。   The value of the signal 315 can be used to determine whether or not the source register holding units 151 and 155 are free. If there is no space, the value is “1”.

したがって、信号311と信号331と信号335と信号339と信号315との論理和の値が「1」であれば、登録エントリ決定部401は、エントリ1411に新たな命令を登録不可であると決定する。一方、信号311と信号331と信号335と信号339と信号315との論理和の値が「0」であれば、登録エントリ決定部401は、エントリ1411に新たな命令を登録可能であると決定する。   Therefore, if the value of the logical sum of the signal 311, the signal 331, the signal 335, the signal 339, and the signal 315 is “1”, the registration entry determination unit 401 determines that a new instruction cannot be registered in the entry 1411. To do. On the other hand, if the value of the logical sum of the signal 311, the signal 331, the signal 335, the signal 339, and the signal 315 is “0”, the registration entry determination unit 401 determines that a new instruction can be registered in the entry 1411. To do.

登録エントリ決定部402〜404についても、上記と同様の処理を行う。ただし、前段のエントリに依存関係があれば、それより後段のエントリに命令B、C、Dを登録してはいけないし、前段に命令B、C、Dのいずれかが登録済みであれば、それより後段に新たな命令を登録してはいけない。そこで、後段の登録エントリ決定部には、空きを示す信号315〜319を除き、前段の登録エントリ決定部に入力される信号をすべて入力している。例えば、登録エントリ決定部404には、信号311〜315、信号331〜342、および、信号319を入力している。   The registered entry determination units 402 to 404 perform the same processing as described above. However, if there is a dependency relationship in the entry in the previous stage, the instructions B, C, and D must not be registered in the entry in the subsequent stage, and if any of the instructions B, C, and D is registered in the preceding stage, Do not register new commands after that. Therefore, all the signals input to the registration entry determination unit in the preceding stage are input to the registration entry determination unit in the subsequent stage, except for the signals 315 to 319 indicating empty. For example, the registration entry determination unit 404 receives signals 311 to 315, signals 331 to 342, and a signal 319.

なお、それぞれの登録エントリ決定部401〜404が、新たな命令の登録可否を決定した結果、2つ以上の登録エントリ決定部が新たな命令を登録可能であると決定する場合がある。ここで、新たな命令がエントリに登録されてから演算部へ発行されるまでの待機期間は短い方が望ましい。したがって、上記の場合は、最も後段の登録エントリ決定部が登録可能であるとした決定を優先し、その他の登録エントリ決定部は登録不可と決定し直す。   In addition, as a result of each registration entry determination unit 401-404 determining whether or not a new command can be registered, two or more registration entry determination units may determine that a new command can be registered. Here, it is desirable that the waiting period from when a new instruction is registered in the entry to when it is issued to the arithmetic unit is short. Therefore, in the above case, priority is given to the determination that the registration entry determination unit at the last stage can be registered, and the other registration entry determination units determine again that registration is impossible.

そして、上記決定を基に、登録エントリ決定部401〜404は、それぞれ、セレクタ201〜212への信号345〜348を出力し、各セレクタを制御する。なお、登録可能であるとした決定した登録エントリ決定部は値「1」を出力し、登録不可と決定した登録エントリ決定部は値「0」を出力する。   Based on the determination, the registration entry determination units 401 to 404 output signals 345 to 348 to the selectors 201 to 212, respectively, and control the selectors. It should be noted that the registration entry determination unit that has been determined to be registerable outputs the value “1”, and the registration entry determination unit that has been determined not to register outputs the value “0”.

次に、制約情報生成部410は、登録エントリ決定部401〜404が決定したエントリに登録される命令Aと、キュー142に登録される命令Bとの依存関係を基に、キュー142に備えられる新規命令登録制御部に対して制約情報を出力する。   Next, the constraint information generation unit 410 is provided in the queue 142 based on the dependency relationship between the instruction A registered in the entry determined by the registration entry determination units 401 to 404 and the instruction B registered in the queue 142. The constraint information is output to the new command registration control unit.

そのために、制約情報生成部410は、エントリ制約情報生成部411〜414を備えて構成される。エントリ制約情報生成部411〜414は、登録エントリ決定部401〜404からの出力信号と、依存関係検査部130から送信される、命令Aと命令Bとの間の依存関係を示す信号3201〜3204とを入力とする。   Therefore, the constraint information generation unit 410 includes entry constraint information generation units 411 to 414. The entry constraint information generation units 411 to 414 output signals from the registered entry determination units 401 to 404 and signals 3201 to 3204 indicating dependency relationships between the command A and the command B transmitted from the dependency relationship checking unit 130. As inputs.

ここで、信号3201〜3204は、図7で示した信号320の一部を詳細に示したものである。具体的には、命令Aを実行してから1サイクル以上後に命令Bを実行する必要がある場合は、信号3201の値は「1」となり、それ以外の場合は、信号3201の値は「0」となる。また、命令Aを実行してから2サイクルより後に命令Bを実行する必要がある場合は、信号3202の値は「1」となり、それ以外の場合は、信号3202の値は「0」となる。また、命令Aを実行してから3サイクル以上後に命令Bを実行する必要がある場合は、信号3203の値は「1」となり、それ以外の場合は、信号3203の値は「0」となる。また、命令Aを実行してから4サイクル以上後に命令Bを実行する必要がある場合は、信号3204の値は「1」となり、それ以外の場合は、信号3204の値は「0」となる。   Here, the signals 3201 to 3204 show a part of the signal 320 shown in FIG. 7 in detail. Specifically, if it is necessary to execute the instruction B one cycle or more after the instruction A is executed, the value of the signal 3201 is “1”; otherwise, the value of the signal 3201 is “0”. " If instruction B needs to be executed after two cycles after executing instruction A, the value of signal 3202 is “1”; otherwise, the value of signal 3202 is “0”. . In addition, if it is necessary to execute the instruction B three or more cycles after executing the instruction A, the value of the signal 3203 is “1”, otherwise, the value of the signal 3203 is “0”. . If instruction B needs to be executed four or more cycles after executing instruction A, the value of signal 3204 is “1”, otherwise the value of signal 3204 is “0”. .

同様に、信号3205〜3208は、命令AとCとを実行するサイクルの差が1〜4であることを示す信号であり、信号3209〜3212は、命令Aと命令Dとを実行するサイクルの差が1〜4であることを示す信号である。なお、命令間の実行サイクル差が5以上であることを示す信号については、図示を省略している。   Similarly, signals 3205 to 3208 indicate that the difference between the cycles in which the instructions A and C are executed is 1 to 4, and the signals 3209 to 3212 indicate the cycles in which the instructions A and D are executed. It is a signal which shows that a difference is 1-4. Note that a signal indicating that the execution cycle difference between instructions is 5 or more is not shown.

次に、エントリ制約情報生成部414を例に挙げて、制約情報を生成する処理について、具体的に説明する。エントリ制約情報生成部414は、命令Bをエントリ1424に登録してよいかどうかという情報を生成する。   Next, taking the entry constraint information generation unit 414 as an example, the processing for generating constraint information will be specifically described. The entry constraint information generation unit 414 generates information indicating whether or not the instruction B may be registered in the entry 1424.

例えば、エントリ1414に命令Aが登録され、かつ、命令Bは命令Aの1サイクル以上後に実行しなければならない制約がある場合、命令Bをエントリ1424に登録してはいけない。よって、この場合、エントリ制約情報生成部414は、命令Bをエントリ1424に登録してはいけない旨の情報を生成する。一方、上記以外の場合は、命令Bをエントリ1424に登録してよい。この場合、エントリ制約情報生成部414は、命令Bをエントリ1424に登録してはいけない旨の情報を生成しない。   For example, if the instruction A is registered in the entry 1414 and there is a restriction that the instruction B must be executed at least one cycle after the instruction A, the instruction B should not be registered in the entry 1424. Therefore, in this case, the entry constraint information generation unit 414 generates information indicating that the instruction B should not be registered in the entry 1424. On the other hand, in cases other than the above, the instruction B may be registered in the entry 1424. In this case, the entry constraint information generation unit 414 does not generate information indicating that the instruction B should not be registered in the entry 1424.

そのために、エントリ制約情報生成部414には、登録エントリ決定部404からの出力信号と、信号321とを入力し、それらの論理積を出力している。これにより、登録エントリ決定部404からの出力信号の値が「1」(つまり、エントリ1414に命令Aが登録された)であり、信号321の値が「1」(つまり、命令Aを実行してから1サイクル後に命令Bを実行してよい)であるとき、エントリ制約情報生成部414の出力信号3504の値は「1」となる。一方、登録エントリ決定部404からの出力信号の値または信号321の値のいずれかが「0」であれば、エントリ制約情報生成部414の出力信号3504の値は「0」となる。   For this purpose, the entry constraint information generation unit 414 receives the output signal from the registered entry determination unit 404 and the signal 321 and outputs a logical product of them. As a result, the value of the output signal from the registered entry determination unit 404 is “1” (that is, the instruction A is registered in the entry 1414), and the value of the signal 321 is “1” (that is, the instruction A is executed). The value of the output signal 3504 of the entry constraint information generation unit 414 is “1”. On the other hand, if either the value of the output signal from the registered entry determination unit 404 or the value of the signal 321 is “0”, the value of the output signal 3504 of the entry constraint information generation unit 414 is “0”.

続いて、エントリ制約情報生成部413を例に挙げて、制約情報を生成する処理について、具体的に説明する。エントリ制約情報生成部413は、命令Bをエントリ1423に登録してよいかどうかという情報を生成する。このとき、エントリ制約情報生成部413は、命令Aがエントリ1414に登録された場合と、エントリ1413に登録された場合との両方について考慮しなければならない。   Subsequently, the entry constraint information generation unit 413 is taken as an example to specifically describe the processing for generating constraint information. The entry constraint information generation unit 413 generates information indicating whether or not the instruction B may be registered in the entry 1423. At this time, the entry constraint information generation unit 413 must consider both the case where the instruction A is registered in the entry 1414 and the case where the instruction A is registered in the entry 1413.

例えば、エントリ1414に命令Aが登録され、かつ、命令Bは命令Aの2サイクル以上後に実行しなければならない制約がある場合、命令Bをエントリ1423に登録してはいけない。この場合、エントリ制約情報生成部413は、命令Bをエントリ1423に登録してはいけない旨の情報を生成する。さらに、エントリ1413に命令Aが登録され、かつ、命令Bは命令Aの1サイクル以上後に実行しなければならない制約がある場合、命令Bをエントリ1423に登録してはいけない。この場合について、エントリ制約情報生成部413は、命令Bをエントリ1423に登録してはいけない旨の情報を生成する。   For example, if the instruction A is registered in the entry 1414 and there is a restriction that the instruction B must be executed two or more cycles after the instruction A, the instruction B should not be registered in the entry 1423. In this case, the entry constraint information generation unit 413 generates information indicating that the instruction B should not be registered in the entry 1423. Further, if the instruction A is registered in the entry 1413 and there is a restriction that the instruction B must be executed one cycle or more after the instruction A, the instruction B should not be registered in the entry 1423. In this case, the entry constraint information generation unit 413 generates information indicating that the instruction B should not be registered in the entry 1423.

一方、上記以外の場合は、命令Bをエントリ1423に登録してよい。この場合、エントリ制約情報生成部413は、命令Bをエントリ1423に登録してはいけない旨の情報を生成しない。   On the other hand, in cases other than the above, the instruction B may be registered in the entry 1423. In this case, the entry constraint information generation unit 413 does not generate information indicating that the instruction B should not be registered in the entry 1423.

そのために、エントリ制約情報生成部413には、登録エントリ決定部403および404からの出力信号と、信号321および323とを入力している。そして、登録エントリ決定部403からの信号と信号321との論理積と、登録エントリ決定部404からの信号と信号322との論理積との論理和を出力している。   For this purpose, the entry constraint information generation unit 413 receives the output signals from the registered entry determination units 403 and 404 and the signals 321 and 323. Then, a logical sum of the logical product of the signal from the registration entry determination unit 403 and the signal 321 and the logical product of the signal from the registration entry determination unit 404 and the signal 322 is output.

これにより、登録エントリ決定部403からの出力信号の値が「1」(すなわち、エントリ1413に命令Aが登録された)であり、信号321の値が「1」(すなわち、命令Aを実行してから1サイクル後に命令Bを実行してよい)であるとき、または、登録エントリ決定部404からの出力信号の値が「1」(すなわち、エントリ1414に命令Aが登録された)であり、信号322の値が「1」(すなわち、命令Aを実行してから2サイクル後に命令Bを実行してよい)であるとき、エントリ制約情報生成部413の出力信号3503の値は「1」となる。一方、上記以外の場合は、エントリ制約情報生成部413の出力信号3503の値は「0」となる。   As a result, the value of the output signal from the registered entry determination unit 403 is “1” (that is, the instruction A is registered in the entry 1413), and the value of the signal 321 is “1” (that is, the instruction A is executed). The instruction B may be executed after one cycle), or the value of the output signal from the registered entry determination unit 404 is “1” (that is, the instruction A is registered in the entry 1414), When the value of the signal 322 is “1” (that is, the instruction B may be executed two cycles after the execution of the instruction A), the value of the output signal 3503 of the entry constraint information generation unit 413 is “1”. Become. On the other hand, in cases other than the above, the value of the output signal 3503 of the entry constraint information generation unit 413 is “0”.

エントリ制約情報生成部411および412についても、同様の構成により、信号3501および3502を出力する。   The entry constraint information generation units 411 and 412 also output signals 3501 and 3502 with the same configuration.

そして、エントリ制約情報生成部411〜414から出力される信号3501〜3504は、制約情報として、命令Bを登録するキュー142に備えられる新規命令登録制御部へ入力される。   The signals 3501 to 3504 output from the entry constraint information generation units 411 to 414 are input as constraint information to the new command registration control unit provided in the queue 142 for registering the command B.

次に、制約情報生成部420は、登録エントリ決定部401〜404が決定したエントリに登録される命令Aと、キュー143に登録される命令Cとの依存関係を基に、キュー143に備えられる新規命令登録制御部に対して制約情報を出力する。   Next, the constraint information generation unit 420 is provided in the queue 143 based on the dependency relationship between the instruction A registered in the entry determined by the registration entry determination units 401 to 404 and the instruction C registered in the queue 143. The constraint information is output to the new command registration control unit.

そのために、制約情報生成部420は、制約情報生成部410と同様の構成を備える(図示せず)。そして、登録エントリ決定部401〜404からの出力信号と、依存関係検査部130から送信される、命令Aと命令Cとの間の依存関係を示す信号3205〜3208とを入力とし、キュー143に備えられる新規命令登録制御部に対する制約情報となる信号3505〜3508を出力する。   Therefore, the constraint information generation unit 420 has the same configuration as that of the constraint information generation unit 410 (not shown). Then, the output signals from the registered entry determination units 401 to 404 and the signals 3205 to 3208 indicating the dependency relationship between the command A and the command C transmitted from the dependency relationship checking unit 130 are input to the queue 143. Signals 3505 to 3508 serving as constraint information for the new command registration control unit provided are output.

同様に、制約情報生成部430は、登録エントリ決定部401〜404が決定したエントリに登録される命令Aと、キュー144に登録される命令Dとの依存関係を基に、キュー144に備えられる新規命令登録制御部に対して制約情報を出力する。   Similarly, the constraint information generation unit 430 is provided in the queue 144 based on the dependency relationship between the instruction A registered in the entry determined by the registration entry determination units 401 to 404 and the instruction D registered in the queue 144. The constraint information is output to the new command registration control unit.

そのために、制約情報生成部430は、制約情報生成部410と同様の構成を備える((図示せず)。そして、登録エントリ決定部401〜404からの出力信号と、依存関係検査部130から送信される、命令Aと命令Dとの間の依存関係を示す信号3209〜3212とを入力とし、キュー144に備えられる新規命令登録制御部に対する制約情報となる信号3509〜3512を出力する。   For this purpose, the constraint information generation unit 430 has a configuration similar to that of the constraint information generation unit 410 (not shown), and is transmitted from the output signals from the registered entry determination units 401 to 404 and the dependency relationship inspection unit 130. The signals 3209 to 3212 indicating the dependency relationship between the instruction A and the instruction D are input, and signals 3509 to 3512 serving as constraint information for the new instruction registration control unit provided in the queue 144 are output.

以上の構成により、新たな命令をVLIW命令キュー140に登録するとき、命令間の依存関係を使用して、命令レベル並列実行のスケジューリングを行っている。   With the above configuration, when a new instruction is registered in the VLIW instruction queue 140, the instruction level parallel execution scheduling is performed using the dependency relation between the instructions.

なお、上記において、新規命令登録制御部301は、キュー142〜144に備えられる新規命令登録制御部からの制約情報を入力として、キュー142〜144に備えられる新規命令登録制御部への制約情報を出力しているが、依存関係検査部130によって命令間のレジスタ依存関係を解消しており、命令間の依存関係にはループが生じないことが保証されるため、上記処理は必ず所定時間内に収束することが保証される。   In the above, the new instruction registration control unit 301 receives the constraint information from the new instruction registration control unit provided in the queues 142 to 144 as input, and sends the constraint information to the new instruction registration control unit provided in the queues 142 to 144. However, the dependency checking unit 130 eliminates the register dependency between instructions, and it is guaranteed that no loop occurs in the dependency between instructions. Convergence is guaranteed.

以上のように、本実施形態に係るデータ処理装置100は、VLIW命令キュー140を備える構成であるため、従来のデータ処理装置500におけるリザベーションステーション551およびフォワーディング590が不要である。よって、複雑な構成を備えるリザベーションステーション551およびフォワーディング590が存在しないので、電力消費を抑えることができる。   As described above, since the data processing apparatus 100 according to the present embodiment is configured to include the VLIW instruction queue 140, the reservation station 551 and the forwarding 590 in the conventional data processing apparatus 500 are unnecessary. Therefore, since the reservation station 551 and the forwarding 590 having a complicated configuration do not exist, power consumption can be suppressed.

また、Dispatch&Readステージ102では、VLIW命令キュー140の任意のエントリから発行可能な命令を選択するのではなく,常に最後段のエントリのみから命令を発行する。よって、Dispatch&Readステージ102では、従来のデータ処理装置505におけるSelect&Readステージ507において実装されていた連想検索機構を備える必要がない。したがって、Dispatch&Readステージ102では、従来よりも処理の遅延時間が少なくなるため、本実施形態に係るデータ処理装置100の動作周波数を向上させることができる。   Further, in the Dispatch & Read stage 102, an instruction that can be issued is not selected from an arbitrary entry in the VLIW instruction queue 140, but an instruction is always issued only from the last entry. Therefore, the Dispatch & Read stage 102 does not need to include the associative search mechanism implemented in the Select & Read stage 507 in the conventional data processing apparatus 505. Therefore, in the Dispatch & Read stage 102, since the processing delay time is shorter than in the conventional case, the operating frequency of the data processing apparatus 100 according to the present embodiment can be improved.

なお、VLIW命令キュー140の最後段のエントリのみから命令が発行されるが、依存関係検査部130にてレジスタリネーミングを行うこと、および、キャッシュミスはキャッシュ184において検出されることから、仮にキャッシュミスが検出されても直ちに命令の発行が停止されることはない。すなわち、VLIW命令キュー140の最後段のエントリに存在する命令がキャッシュミスしたデータを使用しない場合は、キャッシュミスに関わらず、該命令は発行される。そして、キャッシュミスしたデータを使用する後続命令がVLIW命令キュー140の最後段のエントリに達した場合、キャッシュミスしたデータがキャッシュされるまで、該後続命令は発行されない。   Note that instructions are issued only from the last entry of the VLIW instruction queue 140, but register renaming is performed by the dependency checking unit 130 and cache miss is detected in the cache 184. Even if a mistake is detected, the issue of the instruction is not immediately stopped. That is, when an instruction existing in the last entry of the VLIW instruction queue 140 does not use cache missed data, the instruction is issued regardless of the cache miss. When the subsequent instruction using the cache-missed data reaches the last entry in the VLIW instruction queue 140, the subsequent instruction is not issued until the cache-missed data is cached.

なお、キャッシュミスの発生を緩和するために、キャッシュミス発生管理部198が、キャッシュミスが発生する可能性が高い命令を予想し、命令登録遅延部199が、該命令と該命令の演算結果を使用する命令とを実行する間隔を所定間隔だけ開けて、VLIW命令キュー140に登録する。これにより、スーパスカラ方式と同程度の命令レベル並列度を達成できる。   In order to mitigate the occurrence of a cache miss, the cache miss occurrence management unit 198 predicts an instruction that is likely to cause a cache miss, and the instruction registration delay unit 199 displays the instruction and the operation result of the instruction. An interval for executing a command to be used is set at a predetermined interval and registered in the VLIW command queue 140. Thereby, an instruction level parallelism comparable to that of the superscalar method can be achieved.

また、上述の実施の形態では、データ処理装置100はデコード記憶部120を1つ備える構成としたが、上述した構成に限定されるものではなく、複数のデコード記憶部を備えてもよい。この場合、複数のデコード記憶部120に対応する複数のプログラムカウンタをさらに備えることにより、命令流(すなわち、連続して実行する一連の命令群)が複数存在する場合に、それらを混在して実行することができるので、以下で説明する。   In the above-described embodiment, the data processing apparatus 100 is configured to include one decode storage unit 120, but is not limited to the above-described configuration, and may include a plurality of decode storage units. In this case, by further providing a plurality of program counters corresponding to the plurality of decode storage units 120, when there are a plurality of instruction streams (that is, a series of instruction groups to be executed continuously), they are mixedly executed. This will be described below.

例えば、データ処理装置100が、デコード記憶部120に加えて、さらに他のデコード記憶部120aを備える構成である場合について、以下で説明する。また、データ処理装置100が、デコード記憶部120に対応するプログラムカウンタをプログラムカウンタP1と、デコード記憶部120aに対応するプログラムカウンタをプログラムカウンタP2とを備えるものとする。   For example, a case where the data processing apparatus 100 is configured to further include another decode storage unit 120a in addition to the decode storage unit 120 will be described below. Further, it is assumed that the data processing apparatus 100 includes a program counter P1 corresponding to the decode storage unit 120 and a program counter P2 corresponding to the decode storage unit 120a.

この場合、例えば、命令A1と命令B1と命令C1とからなる命令流Q1をデコード記憶部120に格納し、一方、命令A2と命令B2と命令C2とからなる命令流Q2をデコード記憶部120aに格納する。そして、デコード記憶部120に格納した命令はプログラムカウンタP1に従って、依存関係検査部130を介してVLIW命令キュー140に登録する。同時に、デコード記憶部120aに格納した命令はプログラムカウンタP2に従って、依存関係検査部130を介してVLIW命令キュー140に登録する。   In this case, for example, the instruction stream Q1 including the instruction A1, the instruction B1, and the instruction C1 is stored in the decode storage unit 120, while the instruction stream Q2 including the instruction A2, the instruction B2, and the instruction C2 is stored in the decode storage unit 120a. Store. The instruction stored in the decode storage unit 120 is registered in the VLIW instruction queue 140 via the dependency checking unit 130 according to the program counter P1. At the same time, the instruction stored in the decode storage unit 120a is registered in the VLIW instruction queue 140 via the dependency checking unit 130 according to the program counter P2.

これにより、命令流Q1に含まれる命令A1、命令B1、命令C1と、命令流Q2に含まれる命令A2、命令B2、命令C2とをVLIW命令キュー140に混在した状態で登録することができる。したがって、異なる2つの命令流Q1とQ2とを混在させて、演算器へ発行することができる。   Thereby, the instruction A1, the instruction B1, and the instruction C1 included in the instruction stream Q1 and the instruction A2, the instruction B2, and the instruction C2 included in the instruction stream Q2 can be registered in a mixed state in the VLIW instruction queue 140. Therefore, two different instruction streams Q1 and Q2 can be mixed and issued to the computing unit.

なお、複数の命令流が、それぞれ異なる機械語命令に準拠した命令により構成される場合、上述のようにVLIW命令キュー140に混在させることができない。この場合、データ処理装置100が、異なる機械語命令を所定の機械語命令に変換する構成をさらに備えてもよい。すなわち、VLIW命令キュー140に登録可能な所定の機械語命令に変換した上で、VLIW命令キュー140に登録する。これにより、異なる機械語命令に準拠した命令により構成される命令流が複数存在した場合であっても、それらを混在して実行することができる。
(付記事項)
なお、実施の形態は上述の他に、以下のようにも表現できる。
Note that when a plurality of instruction streams are composed of instructions conforming to different machine language instructions, they cannot be mixed in the VLIW instruction queue 140 as described above. In this case, the data processing apparatus 100 may further include a configuration for converting different machine language instructions into predetermined machine language instructions. That is, it is converted into a predetermined machine language instruction that can be registered in the VLIW instruction queue 140 and then registered in the VLIW instruction queue 140. As a result, even when there are a plurality of instruction streams composed of instructions conforming to different machine language instructions, they can be executed together.
(Additional notes)
In addition to the above, the embodiment can be expressed as follows.

[1]本発明に係るデータ処理装置は、複数の機械語命令を同時に解釈実行するデータ処理装置であって、同時に解釈実行する複数の機械語命令を格納する第1の記憶装置と、時系列に実行される複数の機械語命令と各々の空き状態とを格納する第2の記憶装置と、ソースオペランドおよびデスティネーションオペランドにより指定される複数の
レジスタを格納する第3の記憶装置と、ソースオペランドにより指定されるレジスタの値を用いて演算を行う第4の演算装置を備え、前記第1の記憶装置に格納された複数の命令語に属するソースオペランドフィールドの情報と、前記第2の記憶装置に格納される空き情報と、前記第2の記憶装置に格納されるデスティネーションオペランドの情報を元に、前記第1の記憶装置に格納された複数の機械語命令を実行すべき時刻を決定し、前記第1の記憶装置に格納された複数の機械語命令を、前記第2の記憶装置のうち該時刻に対応する空き位置に格納するものであってもよい。
[1] A data processing apparatus according to the present invention is a data processing apparatus that simultaneously interprets and executes a plurality of machine language instructions, a first storage device that stores a plurality of machine language instructions that are simultaneously interpreted and executed, and a time series A second storage device storing a plurality of machine language instructions to be executed and respective empty states, a third storage device storing a plurality of registers specified by a source operand and a destination operand, and a source operand A fourth arithmetic unit that performs an operation using the value of the register specified by the first operand, information on source operand fields belonging to a plurality of instruction words stored in the first storage device, and the second storage device A plurality of devices stored in the first storage device based on free space information stored in the storage device and destination operand information stored in the second storage device. Determining a time at which a word instruction is to be executed, and storing a plurality of machine language instructions stored in the first storage device in an empty position corresponding to the time in the second storage device, Also good.

[2]さらに、本発明に係るデータ処理装置は、前記第2の記憶装置の各命令の各ソースオペランドごとに、ソースオペランドが使用可能状態にあるか否かを示すREADYビットを備え、前記第2の記憶装置に格納された複数の機械語命令のうち、実行指定時刻が最も早い1組の機械語命令に属する全てのREADYビットが成立している場合に、当該機械語命令に属するソースオペランドフィールドの情報を用いて、前記第3の記憶装置に格納されるソースオペランドを読み出すものであってもよい。   [2] The data processing apparatus according to the present invention further includes a READY bit indicating whether or not the source operand is in an available state for each source operand of each instruction of the second storage device, Source operands belonging to a machine language instruction when all the READY bits belonging to a set of machine language instructions with the earliest execution time among the plurality of machine language instructions stored in the storage device 2 are satisfied The source operand stored in the third storage device may be read using field information.

[3]さらに、本発明に係るデータ処理装置は、前記第1の記憶装置から前記第2の記憶装置に対して命令語を格納する際には、前記第2の記憶装置に格納済みの命令語のデスティネーションオペランドに依存するソースオペランドに対して前記READYビットをリセットし、前記第2の記憶装置に格納された複数の機械語命令のうち、実行指定時刻が最も早い1組の機械語命令に属するソースオペランドフィールドの情報を用いて、前記第3の記憶装置に格納されるソースオペランドを読み出した際には、当該命令が書き込みを行うデスティネーションオペランド情報と、前記第2の記憶装置に格納される機械語命令に属するソースオペランド情報の一致比較を行い、一致した場合には、当該ソースオペランドのREADY ビットをセットするものであってもよい。   [3] Furthermore, when the data processing device according to the present invention stores an instruction word from the first storage device to the second storage device, the instruction stored in the second storage device A set of machine language instructions with the earliest designated execution time among a plurality of machine language instructions stored in the second storage device by resetting the READY bit for a source operand that depends on a word destination operand When the source operand stored in the third storage device is read using the information in the source operand field belonging to, the destination operand information to be written by the instruction and the second operand are stored in the second storage device The source operand information belonging to the machine language instruction to be matched is compared, and if it matches, the READY bit of the source operand is set. May be.

[4]さらに、本発明に係るデータ処理装置は、前記第4の演算装置の演算完了時点において、当該命令が書き込みを行うデスティネーションオペランド情報と、前記第2の記憶装置に格納される機械語命令に属するソースオペランド情報の一致比較を行い、一致した場合には、当該ソースオペランドのREADYビットをセットするものであってもよい。   [4] Furthermore, the data processing device according to the present invention includes a destination operand information to be written by the instruction and a machine language stored in the second storage device at the completion of the operation of the fourth arithmetic device. The source operand information belonging to the instruction may be compared and, if they match, the READY bit of the source operand may be set.

[5]さらに、本発明に係るデータ処理装置は、レジスタリネーミングを行うものであってもよい。   [5] Furthermore, the data processing apparatus according to the present invention may perform register renaming.

[6]さらに、本発明に係るデータ処理装置は、前記第1の記憶装置に格納された複数の機械語命令を実行すべき時刻を決定し、前記第1の記憶装置に格納された複数の機械語命令を、前記第2の記憶装置のうち該時刻に対応する空き位置に格納することを、レジスタリネーミング情報を用いて補正するものであってもよい。   [6] Furthermore, the data processing device according to the present invention determines a time at which a plurality of machine language instructions stored in the first storage device should be executed, and a plurality of storage units stored in the first storage device. The storage of the machine language instruction in the empty position corresponding to the time in the second storage device may be corrected using the register renaming information.

[7]さらに、本発明に係るデータ処理装置は、前記第4の演算器において実行遅延が生じる場合でも、前記第2の記憶装置からの命令発行を完了し、実行遅延は前記第4の演算器において滞留させるものであってもよい。   [7] Furthermore, the data processing device according to the present invention completes the issuance of an instruction from the second storage device even when an execution delay occurs in the fourth arithmetic unit, and the execution delay is the fourth arithmetic unit. It may be retained in a vessel.

[8]さらに、本発明に係るデータ処理装置は、前記第4の演算器において実行遅延が生じることが予想される場合には、前記第1の記憶装置から前記第2の記憶装置に対して機械語命令を格納する際に、遅延する機械語命令に依存する後続命令については、指定した実行時刻差を用いて適切な距離を離した指定時刻位置に格納するであってもよい。   [8] Furthermore, the data processing device according to the present invention may be configured such that when an execution delay is expected to occur in the fourth arithmetic unit, the first storage device to the second storage device. When a machine language instruction is stored, subsequent instructions depending on the delayed machine language instruction may be stored at a designated time position separated by an appropriate distance using a designated execution time difference.

[9]さらに、本発明に係るデータ処理装置は、演算器において機械語命令が毎サイクル実行されるように、本来の機械語命令を単純な機械語命令セットに分解した後に、前記第1の記憶装置に機械語命令をセットするものであってもよい。   [9] Furthermore, the data processing apparatus according to the present invention, after decomposing an original machine language instruction into a simple machine language instruction set so that the machine language instruction is executed every cycle in the computing unit, A machine language instruction may be set in the storage device.

[10]さらに、本発明に係るデータ処理装置は、前記第2の記憶装置に格納された機械語命令が、論理的に正しい順序により実行されることを保証するリオーダバッファを備えるものであってもよい。   [10] The data processing apparatus according to the present invention further includes a reorder buffer that ensures that the machine language instructions stored in the second storage device are executed in a logically correct order. Also good.

[11]さらに、本発明に係るデータ処理装置は、前記第1の記憶装置とプログラムカウンタの組を複数組備え、ただ1つの前記第2の記憶装置に対して、複数のプログラムカウンタにより指定される複数の命令流に属する命令語を同時に格納することにより、複数の命令流を同時に実行するものであってもよい。   [11] Furthermore, the data processing device according to the present invention comprises a plurality of sets of the first storage device and the program counter, and is designated by a plurality of program counters for only one second storage device. A plurality of instruction streams may be simultaneously executed by simultaneously storing instruction words belonging to a plurality of instruction streams.

[12]さらに、本発明に係るデータ処理装置は、互いに異なる機械語命令をただ1つの前記第2の記憶装置に適合する共通の機械語命令に変換する機構を複数個備え、異なる命令セットに準拠する複数の命令流を同時に実行するものであってもよい。   [12] Further, the data processing apparatus according to the present invention includes a plurality of mechanisms for converting different machine language instructions into a common machine language instruction suitable for the single second storage device, and having different instruction sets. A plurality of compliant instruction streams may be executed simultaneously.

本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。   The present invention is not limited to the above-described embodiments, and various modifications can be made within the scope shown in the claims, and embodiments obtained by appropriately combining technical means disclosed in different embodiments. Is also included in the technical scope of the present invention.

本発明は、複数の機械語命令を高速に同時実行するデータ処理装置に好適に利用することができる。   The present invention can be suitably used for a data processing apparatus that simultaneously executes a plurality of machine language instructions at high speed.

本発明の実施の一形態であるデータ処理装置の要部構成を示すブロック図である。It is a block diagram which shows the principal part structure of the data processor which is one Embodiment of this invention. 図1に示したデータ処理装置におけるVLIW命令キューの要部構成を示すブロック図である。FIG. 2 is a block diagram showing a main configuration of a VLIW instruction queue in the data processing apparatus shown in FIG. 1. 図2に示したVLIW命令キューにおけるキューの要部構成を示すブロック図である。FIG. 3 is a block diagram showing a main configuration of a queue in the VLIW instruction queue shown in FIG. 2. 図3に示したキューの要部構成を示す模式的な配線図である。FIG. 4 is a schematic wiring diagram showing a main configuration of the queue shown in FIG. 3. 図3に示したキューの要部構成を示す模式的な配線図である。FIG. 4 is a schematic wiring diagram showing a main configuration of the queue shown in FIG. 3. 図3に示したキューの要部構成を示す模式的な配線図である。FIG. 4 is a schematic wiring diagram showing a main configuration of the queue shown in FIG. 3. 図3に示したキューにおける新規命令登録制御部の入出力を示す模式的な配線図である。FIG. 4 is a schematic wiring diagram showing input / output of a new instruction registration control unit in the queue shown in FIG. 3. 図7に示した新規命令登録制御部の要部構成を示す模式的な配線図である。FIG. 8 is a schematic wiring diagram showing a main configuration of a new command registration control unit shown in FIG. 7. 一般的なパイプラインの各ステージを示すブロック図である。It is a block diagram which shows each stage of a general pipeline. 従来のデータ処理装置の要部構成を示すブロック図である。It is a block diagram which shows the principal part structure of the conventional data processor. 従来の他のデータ処理装置の要部構成を示すブロック図である。It is a block diagram which shows the principal part structure of the other conventional data processing apparatus.

符号の説明Explanation of symbols

100 データ処理装置
110 デコード部
120 デコード記憶部(第1の命令格納手段)
130 依存関係検査部(依存関係検査手段)
140 VLIW命令キュー(第2の命令格納手段)
150 リオーダバッファ
170 入力待ちレジスタ(第3の命令格納手段)
180 演算器(命令演算手段)
195 バイパス
196 タグアップデート
198 キャッシュミス発生管理部
199 命令登録遅延部
215〜230 デスティネーションレジスタ値送信部
231〜262 ソース・デスティネーション依存関係検査部
271〜274 ソース・デスティネーション依存関係検査集約部
301 新規命令登録制御部(新規命令登録制御手段)
401〜404 登録エントリ決定部
410〜430 制約情報生成部
411〜414 エントリ制約情報生成部
100 Data Processing Device 110 Decoding Unit 120 Decoding Storage Unit (First Instruction Storage Unit)
130 dependency checking unit
140 VLIW instruction queue (second instruction storage means)
150 Reorder buffer 170 Input wait register (third instruction storage means)
180 arithmetic unit (command arithmetic means)
195 Bypass 196 Tag update 198 Cache miss occurrence management unit 199 Instruction registration delay unit 215 to 230 Destination register value transmission unit 231 to 262 Source / destination dependency check unit 271 to 274 Source / destination dependency check check unit 301 New Command registration control unit (new command registration control means)
401 to 404 Registered entry determining units 410 to 430 Constraint information generating units 411 to 414 Entry constraint information generating units

Claims (13)

所定の演算に使用する値を格納するソースレジスタの番号を指定するソースオペランドフィールドと、該演算の結果を格納するデスティネーションレジスタの番号を指定するデスティネーションオペランドフィールドとを含む機械語命令を複数同時に解釈実行するデータ処理装置であって、
複数の上記機械語命令に含まれる、ソースオペランドフィールドより指定されるソースレジスタ番号とデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を格納する第1の命令格納手段と、
第1の命令格納手段から取得した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を、該ソースレジスタ番号を指定するソースオペランドフィールドおよび該デスティネーションレジスタ番号を指定するデスティネーションオペランドフィールドを含む機械語命令の実行順序に応じた所定の格納位置に格納し、上記ソースレジスタ番号とデスティネーションレジスタ番号との組を格納しない格納位置には空き情報を格納する第2の命令格納手段と、
第2の命令格納手段に格納されている、実行順序が最も早い機械語命令に含まれるソースオペランドフィールドにより指定されるソースレジスタの値と、該機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号とを格納する第3の命令格納手段と、
第3の命令格納手段から取得したソースレジスタの値を基に所定演算を行い、該演算結果を第3の命令格納手段から取得したデスティネーションレジスタ番号で指定されるレジスタに格納する、複数の命令演算手段とを備え、
第1の命令格納手段から取得したソースレジスタ番号が、第2の命令格納手段に格納済みのデスティネーションレジスタ番号に依存するとき、第2の命令格納手段が、上記ソースレジスタ番号を指定するソースオペランドフィールドを含む機械語命令の実行順序を、上記デスティネーションレジスタ番号を指定するデスティネーションオペランドフィールドを含む機械語命令の実行順序より遅い順序に決定し、上記決定した実行順序に応じた格納位置であって、上記空き情報が格納されている格納位置に、上記ソースオペランドフィールドにより指定されるソースレジスタ番号と、上記ソースオペランドフィールドを含む機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を格納することを特徴とするデータ処理装置。
A plurality of machine language instructions including a source operand field for designating a source register number for storing a value used for a predetermined operation and a destination operand field for designating a destination register number for storing the result of the operation are simultaneously provided. A data processing device for interpreting and executing,
First instruction storage means for storing a pair of a source register number specified by a source operand field and a destination register number specified by a destination operand field, included in the plurality of machine language instructions;
A machine including a combination of a plurality of source register numbers and destination register numbers acquired from the first instruction storage means, a source operand field for designating the source register number, and a destination operand field for designating the destination register number Second instruction storage means for storing empty information in a storage position that stores a set of the source register number and the destination register number in a predetermined storage position corresponding to the execution order of the word instructions;
The value of the source register specified by the source operand field included in the machine language instruction with the earliest execution order stored in the second instruction storage means and the destination operand field included in the machine language instruction are specified. Third instruction storage means for storing the destination register number,
A plurality of instructions that perform a predetermined operation based on the value of the source register acquired from the third instruction storage unit and store the operation result in a register specified by the destination register number acquired from the third instruction storage unit An arithmetic means,
When the source register number acquired from the first instruction storage means depends on the destination register number stored in the second instruction storage means, the second operand storing means designates the source register number. The execution order of the machine language instruction including the field is determined to be later than the execution order of the machine language instruction including the destination operand field for specifying the destination register number, and the storage position is in accordance with the determined execution order. The destination register specified by the source operand number included in the machine language instruction including the source operand field and the source register number specified by the source operand field at the storage location where the empty information is stored With the number The data processing apparatus characterized by storing.
第2の命令格納手段が、格納するソースレジスタ番号ごとに、該ソースレジスタの値を命令演算手段への投入可否を示す投入可否情報を備え、
第2の命令格納手段に格納された、実行順序が最も早い機械語命令に含まれるソースオペランドにより指定されるソースレジスタ番号の投入可否情報の全てが投入可であるとき、該ソースレジスタの値を取得し、第3の命令格納手段に格納することを特徴とする請求項1に記載のデータ処理装置。
The second instruction storage means includes, for each source register number to be stored, information indicating whether or not the value of the source register can be input to the instruction calculation means.
When all the availability information of the source register number specified by the source operand included in the machine language instruction with the earliest execution order stored in the second instruction storage means can be entered, the value of the source register is The data processing apparatus according to claim 1, wherein the data processing apparatus is obtained and stored in a third instruction storage unit.
第1の命令格納手段から取得したソースレジスタ番号が、第2の命令格納手段に格納済みのデスティネーションレジスタ番号に依存するとき、第2の命令格納手段が、上記ソースレジスタ番号の投入可否情報を投入不可と設定し、
第2の命令格納手段が、第2の命令格納手段に格納済みの、実行順序が最も早い機械語命令に含まれるソースオペランドフィールドにより指定されるソースレジスタの値を取得して第3の命令格納手段に格納するとき、該機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号と、上記投入可否情報を投入不可と設定したソースレジスタ番号とを比較し、上記デスティネーションレジスタ番号と上記ソースレジスタ番号とが一致するとき、上記ソースレジスタ番号の投入可否情報を投入可と設定することを特徴とする請求項1に記載のデータ処理装置。
When the source register number acquired from the first instruction storage means depends on the destination register number stored in the second instruction storage means, the second instruction storage means displays whether the source register number can be entered. Set to impossible
The second instruction storage means acquires the value of the source register specified by the source operand field included in the machine language instruction that has been stored in the second instruction storage means and has the earliest execution order, and stores the third instruction. When storing in the means, the destination register number specified by the destination operand field included in the machine language instruction is compared with the source register number in which the input enable / disable information is set to input impossible, and the destination register number 2. The data processing apparatus according to claim 1, wherein when the source register number and the source register number coincide with each other, the input enable / disable information of the source register number is set to enable input.
上記命令演算手段が第3の命令格納手段から取得したデスティネーションレジスタ番号で指定されるレジスタに演算結果を格納したとき、上記デスティネーションレジスタ番号と、第2の命令格納手段に格納済みのソースレジスタ番号とを比較し、上記デスティネーションレジスタ番号と上記ソースレジスタ番号とが一致するとき、上記ソースレジスタ番号の投入可否情報を投入可と設定することを特徴とする請求項1に記載のデータ処理装置。   When the instruction operation means stores the operation result in the register designated by the destination register number acquired from the third instruction storage means, the destination register number and the source register already stored in the second instruction storage means 2. The data processing apparatus according to claim 1, wherein when the destination register number and the source register number coincide with each other, the information on whether or not the source register number is input is set as input possible. . 第1の命令格納手段から複数のソースレジスタ番号とデスティネーションレジスタ番号との組を取得し、上記ソースレジスタ番号と上記デスティネーションレジスタ番号との間の依存関係を解消する依存関係解消手段をさらに備え、
第2の命令格納手段が、上記依存関係解消手段から、依存関係を解消した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を取得することを特徴とする請求項1に記載のデータ処理装置。
Dependency elimination means for obtaining a set of a plurality of source register numbers and destination register numbers from the first instruction storage means and eliminating the dependence relationship between the source register numbers and the destination register numbers is further provided. ,
2. The data processing apparatus according to claim 1, wherein the second instruction storage unit acquires a set of a plurality of source register numbers and destination register numbers from which the dependency relationship has been canceled from the dependency relationship canceling unit. .
第2の命令格納手段が、第1の命令格納手段から取得した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を格納するとき、上記依存関係解消手段から取得したソースレジスタ番号とデスティネーションレジスタ番号との間の依存関係を基に、上記複数の組に含まれるソースレジスタ番号を指定するソースオペランドフィールドおよびデスティネーションレジスタ番号を指定するデスティネーションオペランドフィールドを含む機械語命令の実行順序を決定し、上記決定した実行順序に応じた格納位置であって、上記空き情報が格納されている格納位置に,上記複数のソースレジスタ番号とデスティネーションレジスタ番号との組を格納する新規命令登録制御手段をさらに備えることを特徴とする請求項5に記載のデータ処理装置。   When the second instruction storage means stores a set of a plurality of source register numbers and destination register numbers acquired from the first instruction storage means, the source register number and destination register acquired from the dependency relationship cancellation means The execution order of machine language instructions including the source operand field that specifies the source register number and the destination operand number that specifies the destination register number included in the multiple sets is determined based on the dependency relationship between the numbers. A new instruction registration control means for storing a set of the plurality of source register numbers and destination register numbers in a storage position corresponding to the determined execution order and storing the empty information. The data according to claim 5, further comprising: Management apparatus. 上記命令演算手段における演算結果を1サイクルでレジスタに格納できなかったときであっても、第2の命令格納手段に格納される、実行順序が最も早い機械語命令に含まれるソースオペランドにより指定されるソースレジスタ番号の投入可否情報の全てが投入可であって、上記ソースレジスタ番号のいずれもが、上記演算結果を格納できなかったデスティネーションレジスタ番号に依存しないとき、上記ソースレジスタの値と、上記機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号とを、第3の命令格納手段に格納することを特徴とする請求項1に記載のデータ処理装置。   Even when the operation result in the instruction operation means cannot be stored in the register in one cycle, it is specified by the source operand included in the machine language instruction stored in the second instruction storage means and having the earliest execution order. All of the source register number input availability information can be entered, and when any of the source register numbers does not depend on the destination register number that could not store the operation result, the value of the source register, 2. The data processing apparatus according to claim 1, wherein a destination register number designated by a destination operand field included in the machine language instruction is stored in a third instruction storage means. 第2の命令格納手段が第1の命令格納手段から取得したソースレジスタ番号とデスティネーションレジスタ番号との組のうちのソースレジスタ番号が、上記命令演算手段に演算結果を1サイクルで格納できないことが予想されるデスティネーションレジスタ番号に依存するとき、上記ソースレジスタ番号を指定するソースオペランドフィールドおよび上記デスティネーションレジスタ番号を指定するデスティネーションオペランドフィールドを含む機械語命令の実行順序を、上記演算結果を1サイクルで格納できないことが予想されるデスティネーションレジスタ番号を指定するデスティネーションオペランドフィールドを含む機械語命令の実行順序より所定の順番だけ遅い順序に決定し、
上記決定した実行順序に応じた格納位置であって、空き情報が格納されている格納位置に、上記ソースレジスタ番号とデスティネーションレジスタ番号との組を格納することを特徴とする請求項1に記載のデータ処理装置。
The source register number of the set of the source register number and the destination register number acquired by the second instruction storage means from the first instruction storage means cannot store the operation result in the instruction operation means in one cycle. When depending on the expected destination register number, the execution order of the machine language instruction including the source operand field for specifying the source register number and the destination operand field for specifying the destination register number is set to 1 as the result of the operation. The order is determined to be slower by a predetermined order than the execution order of machine language instructions including the destination operand field that specifies the destination register number that is expected to be unable to be stored in the cycle,
2. The set of the source register number and the destination register number is stored in a storage position corresponding to the determined execution order and a storage position where empty information is stored. Data processing equipment.
第1の命令格納手段が、1サイクルで実行可能な機械語命令に含まれるソースオペランドフィールドより指定されるソースレジスタ番号と、デスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を格納することを特徴とする請求項1に記載のデータ処理装置。   The first instruction storing means stores a set of a source register number specified by a source operand field included in a machine language instruction executable in one cycle and a destination register number specified by a destination operand field. The data processing apparatus according to claim 1. 機械語命令に含まれるソースオペランドフィールドより指定されるソースレジスタ番号と、デスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を該機械語命令の実行順序に応じて管理し、実行が完了した機械語命令に含まれるソースオペランドフィールドより指定されるソースレジスタ番号と、デスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を管理するリオーダバッファをさらに備えることを特徴とする請求項1に記載のデータ処理装置。   The pair of the source register number specified by the source operand field included in the machine language instruction and the destination register number specified by the destination operand field is managed according to the execution order of the machine language instruction, and the execution is completed. 2. A reorder buffer for managing a set of a source register number specified by a source operand field included in a machine language instruction and a destination register number specified by a destination operand field. The data processing apparatus described in 1. 第1の命令格納手段をさらに複数備え、
第2の命令格納手段が、上記複数の第1の命令格納手段から取得した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を混在した状態で格納することを特徴とする請求項1に記載のデータ処理装置。
A plurality of first instruction storage means;
2. The second instruction storing means stores a set of a plurality of source register numbers and destination register numbers acquired from the plurality of first instruction storing means in a mixed state. Data processing equipment.
上記複数の第1の命令格納手段に格納される複数のソースレジスタ番号とデスティネーションレジスタ番号との組が第2の命令格納手段に格納可能な形式でないとき、第2の命令格納手段が、上記複数の第1の命令格納手段から取得した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を第2の命令格納手段に格納可能な形式に変換することを特徴とする請求項1に記載のデータ処理装置。   When a set of a plurality of source register numbers and destination register numbers stored in the plurality of first instruction storage means is not in a format that can be stored in the second instruction storage means, the second instruction storage means 2. The set of a plurality of source register numbers and destination register numbers acquired from a plurality of first instruction storage means is converted into a format that can be stored in the second instruction storage means. Data processing device. 所定の演算に使用する値を格納するソースレジスタの番号を指定するソースオペランドフィールドと、該演算の結果を格納するデスティネーションレジスタの番号を指定するデスティネーションオペランドフィールドとを含む機械語命令を複数同時に解釈実行するデータ処理方法であって、
複数の上記機械語命令に含まれる、ソースオペランドフィールドより指定されるソースレジスタ番号とデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を格納する第1の命令格納ステップと、
第1の命令格納ステップにて格納した複数のソースレジスタ番号とデスティネーションレジスタ番号との組を取得し、該ソースレジスタ番号を指定するソースオペランドフィールドおよび該デスティネーションレジスタ番号を指定するデスティネーションオペランドフィールドを含む機械語命令の実行順序に応じた所定の格納位置に格納し、上記ソースレジスタ番号とデスティネーションレジスタ番号との組を格納しない格納位置には空き情報を格納する第2の命令格納ステップと、
第2の命令格納ステップにて格納した、実行順序が最も早い機械語命令に含まれるソースオペランドフィールドにより指定されるソースレジスタの値と、該機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号とを格納する第3の命令格納ステップと、
第3の命令格納ステップにて格納した、ソースオペランドフィールドにより指定されるソースレジスタの値を取得して所定演算を行い、該演算結果を第3の命令格納ステップにて格納した、デスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号で指定されるレジスタに格納する、複数の命令演算ステップとを含み、
第2の命令格納ステップにて取得したソースオペランドフィールドにより指定されるソースレジスタ番号が、第2の命令格納ステップにて格納済みのデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号に依存するとき、上記ソースオペランドフィールドを含む機械語命令の実行順序を、上記デスティネーションオペランドフィールドを含む機械語命令の実行順序より遅い順序に決定し、上記決定した実行順序に応じた格納位置であって、上記空き情報が格納されている格納位置に、上記ソースオペランドフィールドにより指定されるソースレジスタ番号と、上記ソースオペランドフィールドを含む機械語命令に含まれるデスティネーションオペランドフィールドにより指定されるデスティネーションレジスタ番号との組を格納することを特徴とするデータ処理方法。
A plurality of machine language instructions including a source operand field for designating a source register number for storing a value used for a predetermined operation and a destination operand field for designating a destination register number for storing the result of the operation are simultaneously provided. A data processing method for performing interpretation,
A first instruction storing step for storing a set of a source register number specified by a source operand field and a destination register number specified by a destination operand field, included in the plurality of machine language instructions;
A set of a plurality of source register numbers and destination register numbers stored in the first instruction storing step is acquired, and a source operand field for specifying the source register number and a destination operand field for specifying the destination register number A second instruction storing step for storing empty information in a storage position that does not store the pair of the source register number and the destination register number, ,
Specified by the value of the source register specified by the source operand field included in the machine language instruction having the earliest execution order stored in the second instruction storage step, and by the destination operand field included in the machine language instruction A third instruction storing step for storing a destination register number;
Destination operand field in which the value of the source register specified by the source operand field stored in the third instruction storage step is acquired and a predetermined operation is performed, and the operation result is stored in the third instruction storage step A plurality of instruction operation steps stored in a register specified by a destination register number specified by
When the source register number specified by the source operand field acquired in the second instruction storing step depends on the destination register number specified by the destination operand field stored in the second instruction storing step, The execution order of the machine language instruction including the source operand field is determined to be slower than the execution order of the machine language instruction including the destination operand field, and the storage position according to the determined execution order is the empty The source register number specified by the source operand field at the storage location where the information is stored, and the destination specified by the destination operand field included in the machine language instruction including the source operand field Data processing method characterized by storing a set of the register number.
JP2007050561A 2007-02-28 2007-02-28 Data processing apparatus and data processing method Expired - Fee Related JP4996945B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007050561A JP4996945B2 (en) 2007-02-28 2007-02-28 Data processing apparatus and data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007050561A JP4996945B2 (en) 2007-02-28 2007-02-28 Data processing apparatus and data processing method

Publications (2)

Publication Number Publication Date
JP2008217154A true JP2008217154A (en) 2008-09-18
JP4996945B2 JP4996945B2 (en) 2012-08-08

Family

ID=39837159

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007050561A Expired - Fee Related JP4996945B2 (en) 2007-02-28 2007-02-28 Data processing apparatus and data processing method

Country Status (1)

Country Link
JP (1) JP4996945B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014175005A (en) * 2013-03-08 2014-09-22 Samsung Electronics Co Ltd Instruction processing method and instruction processing device
JP2018169838A (en) * 2017-03-30 2018-11-01 日本電気株式会社 Processor
KR20210108778A (en) * 2020-02-26 2021-09-03 성균관대학교산학협력단 Method for improving processing speed of input and output related to a plurality of writing for guaranting a sequence of writing in an operating system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0922354A (en) * 1995-04-13 1997-01-21 Internatl Business Mach Corp <Ibm> Method and apparatus for execution of instruction sequence
JP2000137613A (en) * 1998-10-27 2000-05-16 Stmicroelectronics Inc Virtual condition code
JP2001084143A (en) * 1999-09-10 2001-03-30 Matsushita Electric Ind Co Ltd Information processor
JP2006134361A (en) * 1992-05-01 2006-05-25 Seiko Epson Corp System and method for retiring instruction in superscalar microprocessor
WO2006075286A2 (en) * 2005-01-13 2006-07-20 Nxp B.V. A processor and its instruction issue method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006134361A (en) * 1992-05-01 2006-05-25 Seiko Epson Corp System and method for retiring instruction in superscalar microprocessor
JPH0922354A (en) * 1995-04-13 1997-01-21 Internatl Business Mach Corp <Ibm> Method and apparatus for execution of instruction sequence
JP2000137613A (en) * 1998-10-27 2000-05-16 Stmicroelectronics Inc Virtual condition code
JP2001084143A (en) * 1999-09-10 2001-03-30 Matsushita Electric Ind Co Ltd Information processor
WO2006075286A2 (en) * 2005-01-13 2006-07-20 Nxp B.V. A processor and its instruction issue method
JP2008527559A (en) * 2005-01-13 2008-07-24 エヌエックスピー ビー ヴィ Processor and instruction issuing method thereof

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014175005A (en) * 2013-03-08 2014-09-22 Samsung Electronics Co Ltd Instruction processing method and instruction processing device
JP2018169838A (en) * 2017-03-30 2018-11-01 日本電気株式会社 Processor
KR20210108778A (en) * 2020-02-26 2021-09-03 성균관대학교산학협력단 Method for improving processing speed of input and output related to a plurality of writing for guaranting a sequence of writing in an operating system
KR102346601B1 (en) 2020-02-26 2022-01-03 성균관대학교산학협력단 Method for improving processing speed of input and output related to a plurality of writing for guaranting a sequence of writing in an operating system
US11436064B2 (en) 2020-02-26 2022-09-06 Research & Business Foundation Sungkyunkwan University Method for improving processing speed of input and output related to writing in operating system

Also Published As

Publication number Publication date
JP4996945B2 (en) 2012-08-08

Similar Documents

Publication Publication Date Title
US9569214B2 (en) Execution pipeline data forwarding
KR101594502B1 (en) Systems and methods for move elimination with bypass multiple instantiation table
EP2671150B1 (en) Processor with a coprocessor having early access to not-yet issued instructions
US9658853B2 (en) Techniques for increasing instruction issue rate and reducing latency in an out-of order processor
WO2020024759A1 (en) System and method for store instruction fusion in a microprocessor
WO2015153121A1 (en) A data processing apparatus and method for executing a stream of instructions out of order with respect to original program order
US9274829B2 (en) Handling interrupt actions for inter-thread communication
US20170109172A1 (en) A data processing apparatus and method for executing a stream of instructions out of order with respect to original program order
US10372458B2 (en) Method and apparatus for a self-clocked, event triggered superscalar processor
US6266763B1 (en) Physical rename register for efficiently storing floating point, integer, condition code, and multimedia values
JP2003523574A (en) Secondary reorder buffer microprocessor
EP2122462B1 (en) Distributed dispatch with concurrent, out-of-order dispatch
US8683261B2 (en) Out of order millicode control operation
US6230262B1 (en) Processor configured to selectively free physical registers upon retirement of instructions
US10095518B2 (en) Allowing deletion of a dispatched instruction from an instruction queue when sufficient processor resources are predicted for that instruction
CN112540792A (en) Instruction processing method and device
JP4996945B2 (en) Data processing apparatus and data processing method
KR20220065048A (en) decompress the queue
US7937569B1 (en) System and method for scheduling operations using speculative data operands
US20100100709A1 (en) Instruction control apparatus and instruction control method
US8769247B2 (en) Processor with increased efficiency via early instruction completion
JP5093237B2 (en) Instruction processing device
US9086871B2 (en) Reordering the output of recirculated transactions within a pipeline
WO2023205166A1 (en) Microprocessor with a time counter for statically dispatching extended instructions
CN115794229A (en) Instruction processing apparatus, method, processor system and device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100310

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101027

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110209

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20110606

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110606

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110614

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111129

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120514

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees