JP2008217154A - Data processor and data processing method - Google Patents
Data processor and data processing method Download PDFInfo
- 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
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
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
ここで、データ処理装置500は、一度に4つの命令を同時実行するものとして説明する。また、データ処理装置500は、演算ユニットとして、算術論理演算器581(ALU)と、シフト演算器582(Shift)と、アドレス演算器583(Addr)と、キャッシュ584(Cache)とをそれぞれ1つずつ備えるものとする。また、上記4種類の演算器はいずれも3オペランド方式、すなわち、2つのソースレジスタにて指定される値を用いて演算を行い、演算結果をデスティネーションレジスタに格納するものとする。なお、4オペランド方式や5オペランド方式の演算については、3オペランド方式の演算に分解して実行すればよい。
Here, it is assumed that the
図10を参照しながら、データ処理装置500が4つの命令を同時実行する処理の流れをステージ毎に説明する。なお、図10では、命令フェッチ(IF)を行うステージ、命令のデコード処理(HOST-D)を行うステージ、および、レジスタの更新(RETIRE)を行うステージについては、図示を省略している。
With reference to FIG. 10, the flow of processing in which the
まず、図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
次に、図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
次に、Readステージ502では、一度に8つのレジスタ読み出しを行う。すなわち、上記依存関係を解消した組516、517、518、519の2つのソースレジスタ(S)の値541〜544を、入力待ちレジスタ536を経由して読み出す。
Next, in the
次に、Dispatchステージ503では、各命令のソースレジスタ番号(S)、上記読み出したソースレジスタ値541〜544、および、デスティネーションレジスタ番号(D)を、キューであるリザベーションステーション551に登録する。ここで、リザベーションステーション551は、演算器(算術論理演算器581、シフト演算器582、アドレス演算器583、キャッシュ584)ごとに設けられている。また、ここでは、リザベーションステーション551のエントリ数は4としている。すなわち、リザベーションステーション551は、演算器毎に4つの命令を待機させることができる。なお、エントリ数は4に限定されるものではなく、4より多くてもよいし、4より少なくてもよい。
Next, in the
また、リザベーションステーション551に登録されるソースレジスタ番号のそれぞれには、先行命令の演算結果が格納されるパイプラインレジスタ585〜588からの信号を受け取るフォワーディング590が設けられている。フォワーディング590は、リザベーションステーション551に待機しているソースレジスタ番号と、先行命令の演算結果が格納されるパイプラインレジスタ585〜588のレジスタ番号とを比較するために用いられる。それらを比較した結果、それらの番号が一致すれば、待機している命令が使用するソースレジスタをデスティネーションレジスタとして使用した先行命令の演算が完了したことを意味する。この場合、例えば、そのソースレジスタの値を演算器に投入可能である旨のフラグ(例えば「1」)を立てる。
Each of the source register numbers registered in the
そして、Executeステージ504では、リザベーションステーション551に待機している2つのソースレジスタのいずれにもフラグ「1」が立ったとき、該待機している2つのソースレジスタ値を演算器に投入し、演算を実行する。そのために、リザベーションステーション551内の全てのエントリから演算器に対して配線が設けられている。
Then, in the
そして、演算器での演算結果をパイプラインレジスタ585〜588に書き込むと同時に、フォワーディング590を介して、リザベーションステーション551に待機している全てのソースレジスタに対して送信する。また同時に、演算結果を入力待ちレジスタ536に格納し、Readステージ502での読み出し対象とする。
(従来技術2)
次に、図11を参照しながら、スーパスカラ方式により複数命令を同時実行する、他の従来のデータ処理装置(非特許文献4参照)について説明する。図11は、他の従来のデータ処理装置505の構成を示すブロック図である。
Then, the calculation result of the calculator is written into the
(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
ここで、データ処理装置505は、一度に4つの命令を同時実行するものとして説明する。また、データ処理装置505は、演算ユニットとして、算術論理演算器581(ALU)と、シフト演算器582(Shift)と、アドレス演算器583(Addr)と、キャッシュ584(Cache)とをそれぞれ1つずつ備えるものとする。また、上記4種類の演算器はいずれも3オペランド方式、すなわち、2つのソースレジスタにて指定される値を用いて演算を行い、演算結果をデスティネーションレジスタに格納するものとする。なお、4オペランド方式や5オペランド方式の演算については、3オペランド方式の演算に分解してから実行すればよい。
Here, the
図11を参照しながら、データ処理装置505が4つの命令を同時実行する処理の流れをステージ毎に説明する。なお、図11では、命令フェッチ(IF)を行うステージ、命令のデコード処理(HOST-D)を行うステージ、および、レジスタの更新(RETIRE)を行うステージについては、図示を省略している。
With reference to FIG. 11, the flow of processing in which the
まず、図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
次に、図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
命令ウィンドウ520は、所定の条件が満たされるまで命令の発行を待つためのキューであり、依存関係を解消した後のソースレジスタ番号(S)およびデスティネーションレジスタ番号(D)の組を登録して待機させる。なお、図10におけるリザベーションステーション551とは異なり、レジスタの値は登録しない。また、ここでは、命令ウィンドウ520のエントリ数は4としている。すなわち、命令ウィンドウ520は、16の命令を登録することができる。なお、エントリ数は4に限定されるものではなく、4より多くてもよいし、4より少なくてもよい。
The
また、命令ウィンドウ520に登録される2つのソースレジスタのそれぞれには、先行命令の演算結果が格納されるパイプラインレジスタ585〜588と、および、次サイクルで演算が実行される命令のデスティネーションレジスタ番号545〜548を接続するタグアップデート(TagUpdate)591が設けられている。
Each of the two source registers registered in the
タグアップデート591は、まず、命令ウィンドウ520に待機している命令のソースレジスタ番号と、先行命令の演算結果が格納されるパイプラインレジスタ585〜588のレジスタ番号とを比較するために用いられる。それらを比較した結果、それらの番号が一致すれば、待機している命令が使用するソースレジスタをデスティネーションレジスタとして使用した先行命令の演算が完了していることを意味する。この場合、そのソースレジスタの値を演算器に投入可能である旨のフラグ(例えば「1」)を立てる。
The
さらに、タグアップデート591は、命令ウィンドウ520に待機している命令のソースレジスタ番号と、次サイクルで演算が実行される命令のデスティネーションレジスタ番号545〜548とを比較するために用いられる。それらを比較した結果、それらの番号が一致すれば、待機している命令が使用するソースレジスタをデスティネーションレジスタとして使用する命令が次サイクルで実行されることを意味する。この場合、そのソースレジスタの値を演算器に投入可能である旨のフラグ(例えば「1」)を立てる。
Further, the
そして、Select&Readステージ507では、命令ウィンドウ520に待機しているソースレジスタ番号のうち、2つのソースレジスタのいずれにも上記フラグ「1」が立っているものを取り出す。そして、上記取り出したソースレジスタ番号に対応するレジスタ値として、1)入力待ちレジスタ536に格納されている先行命令の演算結果、または、2)パイプラインレジスタ585〜588に格納されている演算結果のうちいずれかを選択し、次サイクルで演算が実行される命令のソースレジスタ値551〜554とする。
Then, in the Select &
次に、Executeステージ508では、入力待ちレジスタ536に格納されている値を演算器に投入し、演算を実行する。そして、その演算結果を、パイプラインレジスタ585〜588に書き込む。そして、次サイクルで、タグアップデート591を介して、命令ウィンドウ520に待機している全てのソースレジスタ番号に対して送信する。また同時に、演算結果を入力待ちレジスタ536に格納し、Select&Readステージ507での読み出し対象とする。
Next, in the Execute
なお、入力待ちレジスタ536に格納されている値を基に、命令ウィンドウ520からどの命令を取り出すこと、および、バイパス592を備えることにより次サイクルを待たずに演算結果が得られることにより、後続命令が先行命令の実行の完了を待つ必要がなくなる。したがって、1サイクルで演算が完了する先行命令と後続命令との間に、レジスタ依存関係が存在するときであっても、先行命令を実行したサイクルの次のサイクルで後続命令を実行することが可能となる。
上記で説明したように、非特許文献1から4に開示されているデータ処理装置は、複数命令を同時実行することができる。しかしながら、非特許文献1から3に開示されているデータ処理装置では、Executeステージ504において、リザベーションステーション551から発行可能な命令を選択するための遅延時間が大きい。
As described above, the data processing devices disclosed in
すなわち、演算結果をパイプラインレジスタ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
以上のように、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
さらに、フォワーディング590は、リザベーションステーション551に待機している命令の全てのソースレジスタ値に対して送信する。すなわち、フォワーディング590の信号線は、1024本(32ビット×32個)必要となる。
Further, the forwarding 590 transmits to all the source register values of the instructions waiting in the
以上のように、リザベーションステーション551の記憶領域が大きくなるという問題、および、フォワーディング590の信号数が多くなるという問題がある。
As described above, there is a problem that the storage area of the
さらに、リザベーションステーション551は、サイクル毎に演算結果をフォワーディング590を介して受信する構成となっている。したがって、これにより電力消費が大きくなるという問題がある。
Further, the
次に、非特許文献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
以上のように、リザベーションステーションや命令ウィンドウなどの命令発行機構や、フォワーディングによって命令レベル並列度の向上を図る従来のデータ処理装置では、演算器周辺の回路の構成が複雑となり、装置全体の動作周波数を向上させることができない、または、消費電力を抑えることができないという問題があった。 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
上記の構成によれば、さらに、第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
データ処理装置100は、いくつかのステージを経て命令を実行する。すなわち、まず、命令フェッチ(IF)および命令のデコード(HOST-D)を行った後(図示せず)、Rename&Scheduleステージ101で、命令間のレジスタ依存関係を解消した命令をキューに登録する。次に、Dispatch&Readステージ102では、キューから適切な命令を取り出す。そして、Executeステージ103では演算を実行する。そして最後に、レジスタの更新(RETIRE)を行う(図示せず)。
The
次に、データ処理装置100の構成について説明する。図1に示すように、データ処理装置100は、デコード部110、デコード記憶部120、依存関係検査部130、VLIW命令キュー140、リオーダバッファ150、入力待ちレジスタ170、演算器180、演算結果格納部191〜194、バイパス195、タグアップデート196、レジスタ書き込み197、キャッシュミス発生管理部198、命令登録遅延部199を備えて構成される。
Next, the configuration of the
デコード部110は、各命令のソースレジスタ番号およびデスティネーションレジスタ番号を一般的な手法によりデコード処理する。そして、デコード後の各命令のソースレジスタ番号(s)およびデスティネーションレジスタ番号(d)の組をデコード記憶部120に格納する。
The
デコード記憶部120は、デコード部110がデコードした各命令のソースレジスタ番号(s)およびデスティネーションレジスタ番号(d)の組を保持する。すなわち、デコード記憶部120は、sとdとの組合せ121〜124を保持する。なお、後述するように、各命令は1サイクルで完了する単位に分解された状態で、デコード記憶部120に格納されていることが望ましい。
The
依存関係検査部130は、デコード記憶部120に保持されているデコード後の各命令のソースレジスタ番号(s)およびデスティネーションレジスタ番号(d)の組を入力とし、一般的な手法により命令間のレジスタ依存関係を解消する。そして、依存関係解消後のソースレジスタ番号(S)およびデスティネーションレジスタ番号(D)の組を、後述するVLIW命令キュー140に出力する。
The
また、依存関係検査部130は、依存関係を解消した命令の実行順序を、後述するリオーダバッファ150に送信する
VLIW命令キュー140は、VLIW(very long instruction window)型のキューである。命令の依存関係解消後のソースレジスタ番号(S)およびデスティネーションレジスタ番号(D)の組を、後述する方法によりキューの適切な位置に登録する。そして、命令が発行可能な状態になるまで待機させる。
The
VLIW命令キュー140は4つのキューを備えて構成される。そして、4つのキューは、それぞれ各演算器に投入される命令を登録する。すなわち、VLIW命令キュー140は、算術論理演算器181に投入される命令を登録するキュー141、シフト演算器182に投入される命令を登録するキュー142、アドレス演算器183に投入される命令を登録するキュー143、キャッシュ184に投入される命令を登録するキュー144を備えて構成される。VLIW命令キュー140の詳細な構成については後述する。
The
なお、以下では、キュー141に新たに登録される命令を「命令A」、キュー142に新たに登録される命令を「命令B」、キュー143に新たに登録される命令を「命令C」、キュー144に新たに登録される命令を「命令D」と称する。
In the following, an instruction newly registered in the
リオーダバッファ150は、命令の実行順序を保持する。また、どの命令まで実行が完了したかを記憶する。そのために、リオーダバッファ150は、依存関係検査部130から依存関係が解消された命令のレジスタ番号を受け取り、保持する。また、後述する演算結果格納部191〜194から演算結果を受け取り、実行が完了した旨をレジスタ番号ごとに管理する。なお、リオーダバッファ150は、キャッシュ140にてキャッシュミスが起こっても、実行順序が変更された場合であっても、論理的に正しい実行順序を保証するために用いる。
The
入力待ちレジスタ170は、演算器180に投入するソースレジスタ、および、命令の演算結果を格納するレジスタである。そのために、VLIW命令キュー140内の後述するエントリ141〜144のソースレジスタ番号の出力が入力待ちレジスタ170に接続されている。そして、演算結果格納部191〜194の出力は後述するレジスタ書き込み197を介して、入力待ちレジスタ170に接続されている。
The
なお、入力待ちレジスタ170を介して、次サイクルで演算が実行される命令のソースレジスタ値175〜178が出力される。
Note that source register
演算器180は、4つの演算器を備えて構成される。すなわち、演算器180は、算術論理演算器181(ALU)と、シフト演算器182(Shift)と、アドレス演算器183(Addr)と、キャッシュ184(Cache)とを1つずつ備える。いずれの演算器も、3オペランド方式、すなわち、2つのソースレジスタにて指定される値を用いて演算を行い、演算結果を演算結果格納部190に格納する。なお、4オペランド方式や5オペランド方式の演算については、すべて3オペランド方式に分解して実行するものとする。
The
なお、データ処理装置100が備える演算器は、上記4種類の演算器に限られるものではない。例えば、さらに別の算術論理演算器等を備えてもよい。
Note that the arithmetic units included in the
演算結果格納部191〜194は、演算器180が演算した結果を格納する。すなわち、演算結果格納部191は、算術論理演算器181が演算した結果を格納する。また、演算結果格納部192は、シフト演算器182が演算した結果を格納する。また、演算結果格納部193は、アドレス演算器183が演算した結果を格納する。また、演算結果格納部194は、キャッシュ184が演算した結果を格納する。
The calculation
バイパス195は、演算の結果を直後に実行する演算に使用するため、演算結果格納部191〜194を、算術論理演算器181、シフト演算器182、アドレス演算器183、キャッシュ184に接続する信号線である。
The
タグアップデート196は、演算結果格納部191〜194、および、次サイクルで演算が実行される予定の命令のデスティネーションレジスタ番号171〜174をVLIW命令キュー140に接続するための信号線である。
The
そして、タグアップデート196を用いて、まず、VLIW命令キュー140に待機しているソースレジスタ番号と、先行命令の演算結果が格納される演算結果格納部191〜194のデスティネーションレジスタ番号とを比較する。それらを比較した結果、それらの番号が一致すれば、待機している命令が使用するソースレジスタをデスティネーションレジスタとして使用した先行命令の演算が完了したことを意味する。したがって、例えば、そのソースレジスタの値を演算器に発行可能である旨のフラグ(例えば「1」)を設定する。
Then, using the
さらに、タグアップデート196を用いて、VLIW命令キュー140に待機している命令のソースレジスタ番号と、次サイクルで演算が実行される予定の命令のデスティネーションレジスタ番号171〜174とを比較する。それらを比較した結果、それらの番号が一致すれば、待機している命令が使用するソースレジスタをデスティネーションレジスタとして使用する命令が次サイクルで実行される予定であることを意味する。この場合、そのソースレジスタの値を演算器に投入可能である旨のフラグ(例えば「1」)を立てる。
Further, the
そして、VLIW命令キュー140に待機している命令のうち、2つのソースレジスタのいずれにも上記フラグ「1」が立っている命令を取り出す。そして、上記取り出したソースレジスタ番号に対応するレジスタ値として、1)入力待ちレジスタ170に格納されている先行命令の演算結果、または、2)後述するレジスタ書き込み197によってバイパスされている、デスティネーションレジスタ191〜194に格納されている演算結果のうちいずれかを選択し、次サイクルで演算が実行される命令のソースレジスタ値175〜178とする。なお、上記2)の演算結果が優先的に選択される。
Then, out of the instructions waiting in the
レジスタ書き込み197は、演算結果格納部191〜194の出力を接続するための信号線である。演算結果格納部191〜194に格納されている実行結果を入力待ちレジスタ170に書きこむため、および、書き込む前のサイクルで演算結果格納部191〜194に格納されている実行結果をバイパスするために使用する。
The
キャッシュミス発生管理部198は、キャッシュ184にてキャッシュミスを発生させる命令を管理する。そして、キャッシュミスの発生頻度に基づき、キャッシュミスを発生させる可能性が高い命令を予想して、命令登録遅延部199に送信する。
The cache miss
命令登録遅延部199は、キャッシュミス発生管理部198からキャッシュミスを発生させる可能性が高い命令を受け取る。これにより、該命令の演算結果を使用する命令の依存関係解消後のソースレジスタ番号(S)およびデスティネーションレジスタ番号(D)の組の、VLIW命令キュー140への登録を所定期間遅らせる。
The instruction
次に、図2を参照しながら、VLIW命令キュー140について詳細に説明する。図2は、VLIW命令キュー140の構成を示す模式的なブロック図である。
Next, the
上述したように、VLIW命令キュー140は、キュー141、キュー142、キュー143、キュー144を備えて構成される。
As described above, the
キュー141〜144はそれぞれ、演算器に投入する予定の4つの命令を登録することができるように、4つのエントリを含んでいる。すなわち、例えば、キュー141は、エントリ1411〜1414を含んでいる。同様に、キュー142は、エントリ1421〜1424を含んでいる。同様に、キュー143は、エントリ1431〜1434を含んでいる。同様に、キュー144は、エントリ1441〜1444を含んでいる。なお、エントリは4つに限定されるものではなく、4つより多くてもよいし、4つより少なくてもよい。
Each of the
次に、各エントリは、レジスタ番号を保持するレジスタ保持部を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
そして、依存関係検査部130から出力される依存関係解消後の命令が、後述する新規命令登録制御部301により決定されたエントリに登録される。すなわち、上記命令のソースレジスタ番号(S)およびデスティネーションレジスタ番号(D)が、上記決定されたエントリが備えるソースレジスタ保持部およびデスティネーションレジスタ保持部に登録される。
Then, the instruction after the dependency relation cancellation output from the dependency
そして、各エントリが保持する値は、後述するセレクタを介して、後段のエントリにシフトされる。例えば、エントリ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
なお、最後段のエントリだけが入力待ちレジスタ170に接続されているので、新たに各エントリに登録された命令は、最後段のエントリ1414、1424、1434、1444に到達するまでは発行されない。
Since only the last entry is connected to the
次に、エントリ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
さらに、別の条件を満たした場合にも、上記フラグの値を「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
そこで、エントリ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
なお、上記条件を満たすために、次サイクルで演算が実行される予定の命令が確実に次サイクルで実行される必要がある。そこで、各命令は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
次に、図3を参照しながら、キュー141について詳細に説明する。図3は、キュー141の構成を示す模式的な配線図である。
Next, the
図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
ソースレジスタ保持部151〜154はそれぞれ、依存関係検査部130または前段のソースレジスタ保持部から出力されたソースレジスタ番号1211を保持する。ソースレジスタ保持部155〜158それぞれ、依存関係検査部130または前段のレジスタ保持部から出力されたソースレジスタ番号1212を保持する。
Each of the source
次に、デスティネーションレジスタ保持部159〜162はそれぞれ、依存関係検査部130または前段のデスティネーションレジスタ保持部から出力されたデスティネーションレジスタ番号1213を保持する。
Next, each of the destination
セレクタ201〜212は、新たな命令をレジスタ保持部へ新規登録するか、または、前段のレジスタ保持部に保持されている値を後段のレジスタ保持部へシフトするかを、後述する新規命令登録制御部301からの信号に基づき選択する。そのために、セレクタ201〜212は、依存関係検査部130からの出力と、前段のレジスタ保持部からの出力とに接続されている。そして、セレクタ201〜212の出力は、後段のレジスタ保持部に接続されている。したがって、依存関係検査部130からの出力、および、前段のレジスタ保持部からの出力のうちいずれかを選択し、後段のレジスタ保持部に出力する。なお、図2における最前段のセレクタ201〜203については、その前段にレジスタ保持部が存在しないため、依存関係検査部130から出力のみを入力している。
The
例えば、セレクタ204は、依存関係検査部130から出力された新たな命令のソースレジスタ番号と、ソースレジスタ保持部151に保持されている先行命令のソースレジスタ番号とが入力される。そして、そのいずれか出力され、ソースレジスタ保持部152に入力される。
For example, the
次に、レジスタ保持部へ新たに登録される命令と、レジスタ保持部に登録済みの先行命令との間に依存関係が有る場合は、先行命令を実行した後に、新たな命令を実行しなければならない。この場合、レジスタ保持部へ新たに登録される命令は、既に先行命令が登録されているレジスタ保持部よりも前段のレジスタ保持部に登録する必要がある。 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
次に、ソース・デスティネーション依存関係検査部231〜262は、既にレジスタ保持部に登録されている先行命令のデスティネーションレジスタ番号と、新たにレジスタ保持部に登録される命令のソースレジスタ番号との依存関係を検査する。
Next, the source / destination
そのために、まず、ソース・デスティネーション依存関係検査部231、235、239、243、247、251、255、259は、依存関係検査部130から出力される命令Aのソースアドレス番号と、デスティネーションレジスタ値送信部215〜218から送信される、レジスタ保持部に登録済みの先行命令のデスティネーションレジスタ番号とを入力とする。そして、該入力間の依存関係を検査する。
For this purpose, first, the source / destination
具体的には、上記ソースレジスタ番号と上記デスティネーションレジスタ番号とが一致すれば、依存関係が有る旨の信号(例えば、値「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
また、ソース・デスティネーション依存関係検査部232、236、240、244、248、252、256、260には、後述する、キュー142に備えられるデスティネーションレジスタ値送信部219〜222から送信される信号を入力としている。これにより、算術論理演算器181に投入される命令Aと、シフト演算器182に投入される先行命令との依存関係を検査している。
Further, the source / destination
同様に、ソース・デスティネーション依存関係検査部233、237、241、245、249、253、257、261には、後述する、キュー143に備えられるデスティネーションレジスタ値送信部223〜226から送信される信号を入力としている。これにより、算術論理演算器181に投入される命令Aと、アドレス演算器183に投入される先行命令との依存関係を検査している。
Similarly, the source / destination
同様に、ソース・デスティネーション依存関係検査部234、238、242、246、250、254、258、262には、後述する、キュー144に備えられるデスティネーションレジスタ値送信部227〜230から送信される信号を入力としている。これにより、算術論理演算器181に投入される命令Aと、キャッシュ184に投入される先行命令との依存関係を検査している。
Similarly, the source / destination
次に、ソース・デスティネーション依存関係検査部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
そのために、ソース・デスティネーション依存関係検査集約部271〜274は、それぞれソース・デスティネーション依存関係検査部231〜238、239〜246、247〜254、255〜262の出力値を入力とし、それらの論理和を出力する。
For this purpose, the source / destination
例えば、ソース・デスティネーション依存関係検査集約部271を例に挙げて説明する。ソース・デスティネーション依存関係検査部231〜238の出力値の少なくとも1つが「1」(すなわち、依存関係が有る)のとき、ソース・デスティネーション依存関係検査集約部271は値「1」を出力する。一方、ソース・デスティネーション依存関係検査部231〜238の出力値がすべて「0」(すなわち、依存関係が無い)のとき、ソース・デスティネーション依存関係検査集約部271は値「0」を出力する。ソース・デスティネーション依存関係検査集約部272〜274についても、同様に、値「1」または「0」を出力する。
For example, the source / destination dependency relation
そして、ソース・デスティネーション依存関係検査集約部271〜274の出力値は、後述する新規命令登録制御部301に入力される。
Then, the output values of the source / destination dependency relation
上述したように、レジスタ保持部へ新たに登録される命令と、レジスタ保持部に登録済みの先行命令との間の依存関係は、ソース・デスティネーション依存関係検査集約部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
次に、図4〜6を参照しながら、キュー142〜144について説明する。図4〜6は、キュー142〜144の構成を示す模式的な配線図である。
Next, the
図4〜6に示すように、キュー142〜144の構成は、図3で示したキュー144と同じ部材を備えて構成される。ただし、デスティネーションレジスタ値送信部219〜230の設置箇所が異なる。
4 to 6, the configuration of the
次に、図7を参照しながら、新規命令登録制御部301に対する入出力信号について説明する。図7は、新規命令登録制御部301の入出力を示す模式的な配線図である。
Next, input / output signals for the new instruction
図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
また、新規命令登録制御部301の出力には、セレクタ201〜212への信号345〜348と、キュー142〜144に備えられる新規命令登録制御部への信号350とが含まれる。
The output of the new instruction
ソース・デスティネーション依存関係検査集約部271〜274からの信号311〜314は、上述したように、それぞれソース・デスティネーション依存関係検査部231〜238、239〜246、247〜254、255〜262の出力値の論理和である。
As described above, the
ソースレジスタ保持部151〜158からの信号315〜319は、ソースレジスタ保持部151〜158に空きがあるかどうか、すなわちソースレジスタ保持部151〜158に値が登録されているかどうかを示す信号である。
例えば、信号315は、ソースレジスタ保持部151および155のいずれにも空きがあるかどうかを示す。例えば、いずれにも空きがない場合、値を「1」とする。
For example, the
信号320は、新たに登録する命令の間の依存関係を示す信号であって、依存関係検査部130から得られる。具体的には、新たな命令Xと新たな命令Yとを実行するときに、その命令間に必要な時間間隔である。例えば、命令Xを実行してから1サイクル後に命令Yを実行してよい場合は、信号320の値は「1」となる。また例えば、命令Xを実行してから2サイクル後に命令Yを実行する必要がある場合は、信号320の値は「2」となる。なお、信号320は、依存関係検査部130が従来から備える機構により算出可能である。図7では、信号320を1本の信号線で示しているが、後述するように複数の信号線から構成される。
The
信号330は、キュー142〜144に備えられる新規命令登録制御部が出力する。信号330は、命令B、C、Dを、キュー142〜144におけるエントリのいずれに登録したかを示す信号であり、Aをキュー141のどのエントリに命令Aを登録するかを判断するときの制約情報として用いる。なお、図7では、信号330を1本の信号線で示しているが、後述するように複数の信号線から構成される。
The
セレクタ201〜212への信号345〜348は、新規命令をどのレジスタ保持部へ登録するかに応じて、各セレクタを制御するための信号である。
信号350は、キュー142〜144に備えられる新規命令登録制御部への入力となる信号である。命令Aをどのエントリに登録したかを示す信号であり、命令B、C、Dをどのエントリに登録するかを判断するときの制約情報として用いる。図7では、信号350を1本の信号線で示しているが、後述するように複数の信号線から構成される。
A
次に、図8を参照しながら、新規命令登録制御部301の構成について詳細に説明する。図8は、新規命令登録制御部301の構成を示す模式的な配線図である。図8に示すように、新規命令登録制御部301は、登録エントリ決定部401〜404、制約情報生成部410、420、430を備えて構成される。
Next, the configuration of the new instruction
登録エントリ決定部401〜404は、エントリ1411〜1414のいずれに新規命令を登録するかを決定し、セレクタ201〜212を制御する。そのために、ソース・デスティネーション依存関係検査集約部271〜274からの信号311〜314と、キュー142〜144に備えられる新規命令登録制御部が出力する信号331〜342と、ソースレジスタ保持部151〜158の空きを示す信号315〜319とを入力とする。
The registered
ここで、登録エントリ決定部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
同様に、信号335〜338の値は、キュー143に備えられる新規命令登録制御部が、それぞれエントリ1431〜1434に新規命令を登録した場合、「1」となる。同様に、信号339〜342の値は、キュー144に備えられる新規命令登録制御部が、それぞれエントリ1441〜1444に新規命令を登録した場合、「1」となる。
Similarly, the values of the
次に、登録エントリ決定部401を例に挙げて、エントリに登録するか否かを決定する処理について、具体的に説明する。
Next, taking the registration
登録エントリ決定部401には、信号311、信号331、信号335、信号339、および、信号315が入力される。まず、上述したように、信号311の値によって、すでにエントリ1411またはエントリ1421またはエントリ1431またはエントリ1441に登録済みの命令との依存関係の有無がわかる。依存関係がある場合、信号311の値は「1」である。
The registration
また、上述したように、信号331と信号335と信号339との値によって、新たに登録する他の命令が、エントリ1421、エントリ1431、エントリ1441に登録されたかどうかがわかる。登録された場合、信号331、信号335、信号339の値は「1」である。
Further, as described above, the values of the
そして、信号315の値によって、ソースレジスタ保持部151および155に空きがあるかどうかがわかる。空きがない場合は、値は「1」である。
The value of the
したがって、信号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
登録エントリ決定部402〜404についても、上記と同様の処理を行う。ただし、前段のエントリに依存関係があれば、それより後段のエントリに命令B、C、Dを登録してはいけないし、前段に命令B、C、Dのいずれかが登録済みであれば、それより後段に新たな命令を登録してはいけない。そこで、後段の登録エントリ決定部には、空きを示す信号315〜319を除き、前段の登録エントリ決定部に入力される信号をすべて入力している。例えば、登録エントリ決定部404には、信号311〜315、信号331〜342、および、信号319を入力している。
The registered
なお、それぞれの登録エントリ決定部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
次に、制約情報生成部410は、登録エントリ決定部401〜404が決定したエントリに登録される命令Aと、キュー142に登録される命令Bとの依存関係を基に、キュー142に備えられる新規命令登録制御部に対して制約情報を出力する。
Next, the constraint
そのために、制約情報生成部410は、エントリ制約情報生成部411〜414を備えて構成される。エントリ制約情報生成部411〜414は、登録エントリ決定部401〜404からの出力信号と、依存関係検査部130から送信される、命令Aと命令Bとの間の依存関係を示す信号3201〜3204とを入力とする。
Therefore, the constraint
ここで、信号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
同様に、信号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
次に、エントリ制約情報生成部414を例に挙げて、制約情報を生成する処理について、具体的に説明する。エントリ制約情報生成部414は、命令Bをエントリ1424に登録してよいかどうかという情報を生成する。
Next, taking the entry constraint
例えば、エントリ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
そのために、エントリ制約情報生成部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
続いて、エントリ制約情報生成部413を例に挙げて、制約情報を生成する処理について、具体的に説明する。エントリ制約情報生成部413は、命令Bをエントリ1423に登録してよいかどうかという情報を生成する。このとき、エントリ制約情報生成部413は、命令Aがエントリ1414に登録された場合と、エントリ1413に登録された場合との両方について考慮しなければならない。
Subsequently, the entry constraint
例えば、エントリ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
一方、上記以外の場合は、命令Bをエントリ1423に登録してよい。この場合、エントリ制約情報生成部413は、命令Bをエントリ1423に登録してはいけない旨の情報を生成しない。
On the other hand, in cases other than the above, the instruction B may be registered in the
そのために、エントリ制約情報生成部413には、登録エントリ決定部403および404からの出力信号と、信号321および323とを入力している。そして、登録エントリ決定部403からの信号と信号321との論理積と、登録エントリ決定部404からの信号と信号322との論理積との論理和を出力している。
For this purpose, the entry constraint
これにより、登録エントリ決定部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
エントリ制約情報生成部411および412についても、同様の構成により、信号3501および3502を出力する。
The entry constraint
そして、エントリ制約情報生成部411〜414から出力される信号3501〜3504は、制約情報として、命令Bを登録するキュー142に備えられる新規命令登録制御部へ入力される。
The
次に、制約情報生成部420は、登録エントリ決定部401〜404が決定したエントリに登録される命令Aと、キュー143に登録される命令Cとの依存関係を基に、キュー143に備えられる新規命令登録制御部に対して制約情報を出力する。
Next, the constraint
そのために、制約情報生成部420は、制約情報生成部410と同様の構成を備える(図示せず)。そして、登録エントリ決定部401〜404からの出力信号と、依存関係検査部130から送信される、命令Aと命令Cとの間の依存関係を示す信号3205〜3208とを入力とし、キュー143に備えられる新規命令登録制御部に対する制約情報となる信号3505〜3508を出力する。
Therefore, the constraint
同様に、制約情報生成部430は、登録エントリ決定部401〜404が決定したエントリに登録される命令Aと、キュー144に登録される命令Dとの依存関係を基に、キュー144に備えられる新規命令登録制御部に対して制約情報を出力する。
Similarly, the constraint
そのために、制約情報生成部430は、制約情報生成部410と同様の構成を備える((図示せず)。そして、登録エントリ決定部401〜404からの出力信号と、依存関係検査部130から送信される、命令Aと命令Dとの間の依存関係を示す信号3209〜3212とを入力とし、キュー144に備えられる新規命令登録制御部に対する制約情報となる信号3509〜3512を出力する。
For this purpose, the constraint
以上の構成により、新たな命令をVLIW命令キュー140に登録するとき、命令間の依存関係を使用して、命令レベル並列実行のスケジューリングを行っている。
With the above configuration, when a new instruction is registered in the
なお、上記において、新規命令登録制御部301は、キュー142〜144に備えられる新規命令登録制御部からの制約情報を入力として、キュー142〜144に備えられる新規命令登録制御部への制約情報を出力しているが、依存関係検査部130によって命令間のレジスタ依存関係を解消しており、命令間の依存関係にはループが生じないことが保証されるため、上記処理は必ず所定時間内に収束することが保証される。
In the above, the new instruction
以上のように、本実施形態に係るデータ処理装置100は、VLIW命令キュー140を備える構成であるため、従来のデータ処理装置500におけるリザベーションステーション551およびフォワーディング590が不要である。よって、複雑な構成を備えるリザベーションステーション551およびフォワーディング590が存在しないので、電力消費を抑えることができる。
As described above, since the
また、Dispatch&Readステージ102では、VLIW命令キュー140の任意のエントリから発行可能な命令を選択するのではなく,常に最後段のエントリのみから命令を発行する。よって、Dispatch&Readステージ102では、従来のデータ処理装置505におけるSelect&Readステージ507において実装されていた連想検索機構を備える必要がない。したがって、Dispatch&Readステージ102では、従来よりも処理の遅延時間が少なくなるため、本実施形態に係るデータ処理装置100の動作周波数を向上させることができる。
Further, in the Dispatch &
なお、VLIW命令キュー140の最後段のエントリのみから命令が発行されるが、依存関係検査部130にてレジスタリネーミングを行うこと、および、キャッシュミスはキャッシュ184において検出されることから、仮にキャッシュミスが検出されても直ちに命令の発行が停止されることはない。すなわち、VLIW命令キュー140の最後段のエントリに存在する命令がキャッシュミスしたデータを使用しない場合は、キャッシュミスに関わらず、該命令は発行される。そして、キャッシュミスしたデータを使用する後続命令がVLIW命令キュー140の最後段のエントリに達した場合、キャッシュミスしたデータがキャッシュされるまで、該後続命令は発行されない。
Note that instructions are issued only from the last entry of the
なお、キャッシュミスの発生を緩和するために、キャッシュミス発生管理部198が、キャッシュミスが発生する可能性が高い命令を予想し、命令登録遅延部199が、該命令と該命令の演算結果を使用する命令とを実行する間隔を所定間隔だけ開けて、VLIW命令キュー140に登録する。これにより、スーパスカラ方式と同程度の命令レベル並列度を達成できる。
In order to mitigate the occurrence of a cache miss, the cache miss
また、上述の実施の形態では、データ処理装置100はデコード記憶部120を1つ備える構成としたが、上述した構成に限定されるものではなく、複数のデコード記憶部を備えてもよい。この場合、複数のデコード記憶部120に対応する複数のプログラムカウンタをさらに備えることにより、命令流(すなわち、連続して実行する一連の命令群)が複数存在する場合に、それらを混在して実行することができるので、以下で説明する。
In the above-described embodiment, the
例えば、データ処理装置100が、デコード記憶部120に加えて、さらに他のデコード記憶部120aを備える構成である場合について、以下で説明する。また、データ処理装置100が、デコード記憶部120に対応するプログラムカウンタをプログラムカウンタP1と、デコード記憶部120aに対応するプログラムカウンタをプログラムカウンタP2とを備えるものとする。
For example, a case where the
この場合、例えば、命令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
これにより、命令流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命令キュー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
(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
[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.
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
130 dependency checking unit
140 VLIW instruction queue (second instruction storage means)
150
180 arithmetic unit (command arithmetic means)
195
401 to 404 Registered
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の命令格納手段に格納された、実行順序が最も早い機械語命令に含まれるソースオペランドにより指定されるソースレジスタ番号の投入可否情報の全てが投入可であるとき、該ソースレジスタの値を取得し、第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.
第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.
第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. .
上記決定した実行順序に応じた格納位置であって、空き情報が格納されている格納位置に、上記ソースレジスタ番号とデスティネーションレジスタ番号との組を格納することを特徴とする請求項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.
第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の命令格納ステップと、
第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.
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)
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)
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 |
-
2007
- 2007-02-28 JP JP2007050561A patent/JP4996945B2/en not_active Expired - Fee Related
Patent Citations (6)
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)
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 |