JP2012150589A - Arithmetic unit - Google Patents
Arithmetic unit Download PDFInfo
- Publication number
- JP2012150589A JP2012150589A JP2011007719A JP2011007719A JP2012150589A JP 2012150589 A JP2012150589 A JP 2012150589A JP 2011007719 A JP2011007719 A JP 2011007719A JP 2011007719 A JP2011007719 A JP 2011007719A JP 2012150589 A JP2012150589 A JP 2012150589A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- unit
- address information
- data
- 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.)
- Pending
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
Description
本発明の実施形態は、演算装置に関する。 Embodiments described herein relate generally to an arithmetic device.
従来、1つの命令の処理を複数の処理単位に分割し、各処理を別々のハードウェア回路で実行するパイプライン方式を採用した演算装置(例えばマイクロプロセッサ)が知られている。 2. Description of the Related Art Conventionally, there has been known an arithmetic device (for example, a microprocessor) adopting a pipeline system in which processing of one instruction is divided into a plurality of processing units and each processing is executed by a separate hardware circuit.
パイプライン方式を採用した演算装置においては、例えばメモリなどの演算資源を効率的に利用することが求められている。本発明が解決しようとする課題は、演算資源の利用効率を向上させることが可能な演算装置を提供することである。 In an arithmetic device adopting a pipeline system, for example, it is required to efficiently use arithmetic resources such as a memory. The problem to be solved by the present invention is to provide a computing device capable of improving the utilization efficiency of computing resources.
実施形態の演算装置は、命令記憶部と、フェッチ部と、デコード部とを備える。命令記憶部は、演算資源を用いた演算処理を、パイプライン処理の相互に異なるステージで実行する第1命令および第2命令を記憶する。フェッチ部は、第1命令および第2命令を同時にフェッチする。デコード部は、フェッチされた第1命令および第2命令を同時にデコードする。 The arithmetic device according to the embodiment includes an instruction storage unit, a fetch unit, and a decoding unit. The instruction storage unit stores a first instruction and a second instruction that execute arithmetic processing using arithmetic resources at different stages of pipeline processing. The fetch unit fetches the first instruction and the second instruction at the same time. The decoding unit simultaneously decodes the fetched first instruction and second instruction.
図1は、本実施形態の演算装置100の概略構成の一例を示すブロック図である。図1に示すように、演算装置100は、制御ユニット10と、ロードストアユニット20と、データレジスタ30と、データメモリ40とを備える。演算資源の一例であるデータメモリ40には各種のデータが格納される。
FIG. 1 is a block diagram illustrating an example of a schematic configuration of the
制御ユニット10は、演算装置100全体を制御する。ロードストアユニット20は、制御ユニット10からの指示を受けて、命令のフェッチと、フェッチした命令のデコードとを実行する。そして、ロードストアユニット20は、デコードした命令に従って、データメモリ40からのデータを読み出す処理(「メモリアクセス処理」と呼ぶ)を実行する。メモリアクセス処理の詳細な内容は後述する。また、データレジスタ30は、メモリアクセス処理により読み出されたデータや後述のアドレス情報の算出に用いられる補正値(オフセット)を記憶する。
The
図2は、ロードストアユニット20の詳細な構成の一例を示すブロック図である。図2に示すように、ロードストアユニット20は、プログラムメモリ21と、命令フェッチ部22と、レジスタ23a〜23fと、デコード部24と、アドレス情報算出部25と、選択部26と、読み出し部27と、書き込み部28とを備える。
FIG. 2 is a block diagram illustrating an example of a detailed configuration of the
プログラムメモリ21は、所定のプログラムコードで記述された2種類の命令(命令A、命令B)を記憶する。本実施形態では、命令Aおよび命令Bのそれぞれは、データメモリ40からのデータの読み出しをロードストアユニット20に行わせるための命令である。そして、命令Aおよび命令Bのそれぞれの処理は、複数のステージ(工程)に分割され、相互に異なるステージで上述のメモリアクセス処理が行われる。さらに詳述すれば、図3に示すように、命令Aの処理は、ステージT1とステージT2とステージT3とステージT4とに分割される。そして、ステージT1でフェッチ処理IFが行われ、ステージT1の直後のステージT2でデコード処理IDが行われ、ステージT2の直後のステージT3でメモリアクセス処理MEMが行われ、ステージT3の直後のステージT4でライトバック処理WBが行われる。つまり、命令Aの処理においては、第3段目のステージでメモリアクセス処理MEMが行われる。
The
また、図3に示すように、命令Bの処理は、ステージT1とステージT2とステージT3とステージT4とステージT5とに分割される。そして、ステージT1でフェッチ処理IFが行われ、ステージT2でデコード処理IDが行われ、ステージT3でアドレス算出処理EXが行われ、ステージT4でメモリアクセス処理MEMが行われ、ステージT5でライトバック処理WBが行われる。つまり、命令Bの処理においては、第4段目のステージでメモリアクセス処理MEMが行われるので、命令Aの処理に比べて、メモリアクセス処理MEMが行われるまでのステージ数が1だけ多い。各処理の詳細な内容については後述する。なお、本実施形態では、各ステージ(T1〜T5)の時間長は同じである。つまり、各ステージの処理に必要なクロックサイクル数は同じである。 Further, as shown in FIG. 3, the processing of instruction B is divided into stage T1, stage T2, stage T3, stage T4, and stage T5. Then, a fetch process IF is performed at stage T1, a decode process ID is performed at stage T2, an address calculation process EX is performed at stage T3, a memory access process MEM is performed at stage T4, and a write back process is performed at stage T5. WB is performed. That is, in the process of the instruction B, the memory access process MEM is performed in the fourth stage, so that the number of stages until the memory access process MEM is performed is one more than the process of the instruction A. Detailed contents of each process will be described later. In the present embodiment, the time length of each stage (T1 to T5) is the same. That is, the number of clock cycles required for the processing of each stage is the same.
再び図2に戻って説明を続ける。命令フェッチ部22は、プログラムメモリ21から、2つの命令を同時にフェッチできるように構成される。例えば命令フェッチ部22は、2つのフェッチ回路から構成されてもよいし、VLIW(Very Long Instruction Word)方式が採用された構成であってもよい。命令フェッチ部22は、制御ユニット10からの指示に従って、プログラムメモリ21に格納された命令Aと命令Bを同時にフェッチする。より具体的には以下のとおりである。制御ユニット10は、命令フェッチ部22に対して、プログラムメモリ21のうち、読み出すべき命令Aおよび命令Bのそれぞれが格納された領域を示す命令アドレス情報を供給する。そして、命令フェッチ部22は、制御ユニット10からの命令アドレス情報を参照して、命令Aおよび命令Bのそれぞれをプログラムメモリ21から読み出し、読み出した命令Aをレジスタ23aに書き込み、読み出した命令Bをレジスタ23bに書き込む。
Returning to FIG. 2 again, the description will be continued. The instruction fetch unit 22 is configured to be able to fetch two instructions simultaneously from the
デコード部24は、2つの命令を同時にデコードできるように構成されている。例えばデコード部24は、2つのデコード回路から構成されてもよいし、VLIW方式が採用された構成であってもよい。デコード部24は、レジスタ23aに書き込まれた命令Aおよびレジスタ23bに書き込まれた命令Bのそれぞれを同時にデコードする。本実施形態では、命令Aを構成するプログラムコード内には、データメモリ40のうち、読み出すべきデータが格納された領域を示すアドレス情報が記述されているので、デコード部24は、デコードした命令Aから、直ちにアドレス情報を特定することができる。そして、デコード部24は、デコードした命令Aから特定したアドレス情報をレジスタ23cに書き込み、レジスタ23cに書き込まれたアドレス情報は、後段の選択部26へ供給される。
The decoding unit 24 is configured to be able to decode two instructions simultaneously. For example, the decoding unit 24 may be configured by two decoding circuits, or may be configured by adopting the VLIW method. The decode unit 24 simultaneously decodes the instruction A written in the
一方、命令Bを構成するプログラムコード内には、上述のアドレス情報は記述されておらず、アドレス情報を算出するための算出情報が記述されている。本実施形態では、算出情報は、アドレス情報の算出の際の基準値Iを示す基準情報と、データレジスタ30のうち、基準値Iに加算すべき補正値Rが格納された領域を示すレジスタ情報とからなる。デコード部24は、デコードした命令Bから特定した基準値Iをレジスタ23dへ書き込み、レジスタ23dに書き込まれた基準値Iは後段のアドレス情報算出部25へ供給される。また、デコード部24は、デコードした命令Bから特定したレジスタ情報をデータレジスタ30へ供給する。データレジスタ30は、デコード部24からのレジスタ情報を受け付け、その受け付けたレジスタ情報が示す領域に格納された補正値Rを読み出す。そして、データレジスタ30は、その読み出した補正値Rをレジスタ23fへ供給する。
On the other hand, in the program code constituting the instruction B, the above address information is not described, but calculation information for calculating the address information is described. In the present embodiment, the calculation information includes reference information indicating the reference value I at the time of calculating the address information, and register information indicating a region in the
アドレス情報算出部25は、レジスタ23dから供給される基準値Iと、レジスタ23fから供給される補正値Rとからアドレス情報を算出する。アドレス情報算出部25は例えば加算器で構成され、レジスタ23dから供給される基準値Iと、レジスタ23fから供給される補正値Rとの加算結果を示す値がアドレス情報となる。アドレス情報算出部25で算出されたアドレス情報はレジスタ23eに書き込まれる。レジスタ23eに書き込まれたアドレス情報は後段の選択部26へ供給される。
The address
選択部26は、レジスタ23cに書き込まれたアドレス情報(つまりは、命令Aによって指定されたアドレス情報)、および、レジスタ23eに書き込まれたアドレス情報(つまりは、命令Bによって指定されたアドレス情報)のうちの何れか一方を選択して後段の読み出し部27へ供給する。選択部26は、例えばマルチプレクサなどの選択回路で構成され、一方の入力端には、レジスタ23cに書き込まれたアドレス情報(命令Aによって指定されたアドレス情報)が供給され、他方の入力端には、レジスタ23eに書き込まれたアドレス情報(命令Bによって指定されたアドレス情報)が供給される。また、選択部26には、デコード部24からの選択制御信号(不図示)が供給される。選択部26は、デコード部24からの選択制御信号に応じて、一方の入力端および他方の入力端のうちの何れかに供給されるデータ(アドレス情報)を、後段の読み出し部27へ供給する。
The
読み出し部27は、データメモリ40のうち、選択部26から供給されたアドレス情報が示す領域に格納されたデータを読み出す。読み出し部27は、読み出したデータを書き込み部28へ供給する。書き込み部28は、読み出し部27から供給されたデータをデータレジスタ30の所定の領域に書き込む。
The reading unit 27 reads data stored in the area indicated by the address information supplied from the
図4は、演算装置100の動作を説明するためのタイミングチャートである。以下、図4を参照しながら、演算装置100の具体的な動作を説明する。本実施形態では、演算装置100は、命令Aと命令Bとをパイプライン方式で同時に実行する。以下、詳細な内容について説明する。ここでは、図4の各期間(T11〜T55)の時間長は、上述の各ステージ(T1〜T5)の時間長と同じである。
FIG. 4 is a timing chart for explaining the operation of the
図4に示すように、最初の期間T11は、命令Aおよび命令Bのそれぞれの処理におけるステージT1(図3参照)となり、命令Aのフェッチ処理IFと命令Bのフェッチ処理IFとが実行される。より具体的には、命令フェッチ部22は、プログラムメモリ21のうち、制御ユニット10から供給された命令アドレス情報が示すそれぞれの領域から、命令Aと命令Bを同時に読み出し、読み出した命令Aをレジスタ23aに書き込み、読み出した命令Bをレジスタ23bに書き込む。
As shown in FIG. 4, the first period T11 is stage T1 (see FIG. 3) in the processing of instruction A and instruction B, and the fetch processing IF of instruction A and the fetch processing IF of instruction B are executed. . More specifically, the instruction fetch unit 22 simultaneously reads the instruction A and the instruction B from the respective areas indicated by the instruction address information supplied from the
図4に示すように、期間T11の直後の期間T22は、命令Aおよび命令Bのそれぞれの処理におけるステージT2(図3参照)となり、命令Aのデコード処理IDと命令Bのデコード処理IDとが実行される。より具体的には、デコード部24は、レジスタ23aに書き込まれた命令Aとレジスタ23bに書き込まれた命令Bとを同時にデコードする。そして、デコード部24は、デコードした命令Aから特定したアドレス情報をレジスタ23cに書き込む。また、デコード部24は、デコードした命令Bから特定した基準値Iをレジスタ23dへ書き込むとともに、デコードした命令Bの内容から特定したレジスタ情報をデータレジスタ30へ供給する。
As shown in FIG. 4, a period T22 immediately after the period T11 is a stage T2 (see FIG. 3) in each process of the instruction A and the instruction B, and the decoding process ID of the instruction A and the decoding process ID of the instruction B are Executed. More specifically, the decoding unit 24 simultaneously decodes the instruction A written in the
図4に示すように、期間T22の直後の期間T33は、命令Aおよび命令Bのそれぞれの処理におけるステージT3(図3参照)となり、命令Aのメモリアクセス処理MEMが実行される一方、命令Bのアドレス算出処理EXが実行される。より具体的には以下のとおりである。期間T33では、図2の選択部26には、一方の入力端に供給されるデータ(つまり、レジスタ23cに書き込まれた、命令Aによって指定されたアドレス情報)の選択を指示する選択制御信号がデコード部24から供給される。これにより、読み出し部27には、命令Aによって指定されたアドレス情報が供給される。そして、読み出し部27は、データメモリ40のうち、選択部26から供給されたアドレス情報が示す領域に格納されたデータを読み出す。以上が命令Aのメモリアクセス処理MEMの内容である。
As shown in FIG. 4, a period T33 immediately after the period T22 is a stage T3 (see FIG. 3) in each processing of the instruction A and the instruction B, and the memory access process MEM of the instruction A is executed while the instruction B The address calculation process EX is executed. More specifically, it is as follows. In the period T33, the
また、期間T33では、データレジスタ30は、デコード部24からのレジスタ情報が示す領域に格納された補正値Rを読み出し、その読み出した補正値Rをレジスタ23fへ供給する。そして、アドレス情報算出部25は、レジスタ23dに書き込まれた基準値Iと、レジスタ23fから供給された補正値Rとを加算して、命令Bによって指定されたアドレス情報を算出し、その算出したアドレス情報をレジスタ23eに書き込む。以上が命令Bのアドレス算出処理EXの内容である。
In the period T33, the data register 30 reads the correction value R stored in the area indicated by the register information from the decoding unit 24, and supplies the read correction value R to the
図4に示すように、期間T33の直後の期間T44は、命令Aおよび命令Bのそれぞれの処理におけるステージT4(図3参照)となり、命令Aのライトバック処理WBが実行される一方、命令Bのメモリアクセス処理MEMが実行される。より具体的には以下のとおりである。期間T44では、書き込み部28は、ステージT3で読み出し部27によって読み出されたデータ(命令Aによって読み出しが指示されたデータ)を読み出し部27から受け取り、その受け取ったデータをデータレジスタ30の所定の領域に書き込む。以上が命令Aのライトバック処理WBの内容であり、期間T44の終了とともに、命令Aの処理は終了する。
As shown in FIG. 4, a period T44 immediately after the period T33 is a stage T4 (see FIG. 3) in each process of the instruction A and the instruction B, and the write-back process WB of the instruction A is executed, while the instruction B The memory access process MEM is executed. More specifically, it is as follows. In the period T44, the
また、期間T44では、図2の選択部26には、他方の入力端子に供給されるデータ(つまり、レジスタ23eに書き込まれた、命令Bによって指定されたアドレス情報)の選択を指示する選択制御信号がデコード部24から供給される。これにより、読み出し部27には、命令Bによって指定されたアドレス情報が供給される。そして、読み出し部27は、データメモリ40のうち、選択部26から供給されたアドレス情報が示す領域に格納されたデータを読み出す。以上が命令Bのメモリアクセス処理MEMの内容である。
Further, in the period T44, the selection control instructing the
図4に示すように、期間T44の直後の期間T55は、命令Bの処理におけるステージT5(図3参照)となり、命令Bのライトバック処理WBのみが実行される。より具体的には、期間T55では、書き込み部28は、期間T44で読み出し部27によって読み出されたデータ(命令Bによって読み出しが指示されたデータ)を読み出し部27から受け取り、その受け取ったデータをデータレジスタ30の所定の領域に書き込む。以上が命令Bのライトバック処理WBの内容であり、期間T55の終了とともに、命令Bの処理は終了する。
As shown in FIG. 4, a period T55 immediately after the period T44 is a stage T5 (see FIG. 3) in the process of the instruction B, and only the write back process WB of the instruction B is executed. More specifically, in the period T55, the
以上に説明したように、本実施形態によれば、メモリアクセス処理MEMが行われるステージが相互に異なる命令Aおよび命令Bが同時に実行されるので、データメモリ40の利用効率を向上させることができる。より具体的には、図4に示すように、本実施形態では、メモリアクセス処理MEMが行われるステージが「1」だけ相互に異なる命令Aおよび命令Bが同時に実行されるので、データメモリ40を、期間T33および期間T44にわたって連続して動作させることができる。これにより、データメモリ40の利用効率を向上させることができる。また、本実施形態によれば、命令Aのメモリアクセス処理MEMと命令Bのメモリアクセス処理MEMとが同じタイミングで行われることを防止できるので、命令の処理に要する時間が増大することを防止することもできる。
As described above, according to the present embodiment, since the instruction A and the instruction B that are different from each other in the stage in which the memory access process MEM is performed are executed at the same time, the utilization efficiency of the
ここで、パイプライン処理の相互に異なるステージでメモリアクセス処理MEMが行われる2つの命令を順番に実行する場合を想定する。2つの命令のうち、メモリアクセス処理MEMが行われるまでのステージ数が少ない方の命令を第1命令、メモリアクセス処理が行われるまでのステージ数が多い方の命令を第2命令として、第1命令→第2命令の順番でそれぞれの命令を実行する場合は、第1命令のメモリアクセス処理が行われてから、第2命令のメモリアクセス処理が行われるまでの期間が長くなるので、メモリが動作せずに待機状態となる期間も長くなる。これにより、メモリの利用効率が低くなるという問題が起こる。 Here, it is assumed that two instructions for performing the memory access process MEM are executed in order at different stages of the pipeline process. Of the two instructions, an instruction having a smaller number of stages until the memory access process MEM is performed is a first instruction, and an instruction having a larger number of stages until the memory access process is performed is a second instruction. When each instruction is executed in the order of the instruction → the second instruction, since the period from the memory access process of the first instruction until the memory access process of the second instruction is performed becomes longer, The period during which the apparatus is in a standby state without operating is also lengthened. This causes a problem that the use efficiency of the memory is lowered.
例えば図5−1に示すように、命令A→命令Bの順番で実行する場合は、期間T33において命令Aのメモリアクセス処理MEMが行われ、期間T55において命令Bのメモリアクセス処理MEMが行われる。すなわち、期間T44においてデータメモリ40は動作せずに待機状態となるので、データメモリ40の利用効率が低くなる。
For example, as shown in FIG. 5A, when the instructions A are executed in the order of the instruction B, the memory access process MEM of the instruction A is performed in the period T33, and the memory access process MEM of the instruction B is performed in the period T55. . That is, since the
一方、第2命令→第1命令の順番でそれぞれの命令を実行する場合は、第1命令のメモリアクセス処理MEMと、第2命令のメモリアクセス処理MEMとが同じタイミングで行われるおそれがある。この場合、第2命令のメモリアクセス処理MEMが終了するまで、第1命令のメモリアクセス処理MEMを実行できないので、結果として、命令の処理に要する時間が増大するという問題が起こる。 On the other hand, when the respective instructions are executed in the order of the second instruction → the first instruction, the memory access process MEM for the first instruction and the memory access process MEM for the second instruction may be performed at the same timing. In this case, since the memory access process MEM for the first instruction cannot be executed until the memory access process MEM for the second instruction is completed, there arises a problem that the time required for the instruction process increases as a result.
例えば図5−2に示すように、命令B→命令Aの順番で実行する場合は、命令Bのメモリアクセス処理MEMが行われる期間と、命令Aのメモリアクセス処理MEMが行われる期間とが共に期間T44となってしまうので、命令Bのメモリアクセス処理MEMが終了するまで他の命令Aのメモリアクセス処理MEMを行うことができず、結果として、命令の処理に要する時間が増大してしまう。 For example, as shown in FIG. 5B, when the instruction B is executed in the order of the instruction A, both the period during which the memory access process MEM for the instruction B is performed and the period during which the memory access process MEM for the instruction A is performed Since the period T44 is reached, the memory access process MEM of the other instruction A cannot be performed until the memory access process MEM of the instruction B is completed, and as a result, the time required for the instruction process increases.
以上より、パイプライン処理の相互に異なるステージでメモリアクセス処理MEMが行われる2つの命令を順番に実行する場合は、データメモリ40の利用効率が低くなる、または、命令の処理に要する時間が増大するといった問題が起こる。
As described above, when two instructions for which the memory access process MEM is performed at different stages of the pipeline process are executed in order, the use efficiency of the
これに対して、本実施形態によれば、データメモリ40を、期間T33および期間T44にわたって連続して動作させることができるので、図5−1の場合に比べて、データメモリの利用効率を向上させることが可能になる。また、本実施形態によれば、命令Aのメモリアクセス処理MEMが行われる期間と命令Bのメモリアクセス処理MEMが行われる期間とが同じ期間になることを防止できるので、図5−2の場合とは異なり、命令の処理に要する時間が増大することを防止できる。すなわち、本実施形態によれば、データメモリ40の利用効率を向上させるとともに命令の処理に要する時間が増大することを防止できる。
On the other hand, according to the present embodiment, the
(変形例)
以上、本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
(Modification)
As mentioned above, although embodiment of this invention was described, this embodiment is shown as an example and is not intending limiting the range of invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
例えば、上述の実施形態では、メモリアクセス処理が行われるステージが「1」だけ相互に異なる2つの命令(命令A、命令B)が同時に実行されているが、これに限らず、例えばメモリアクセス処理が行われるステージが「2」だけ相互に異なる2つの命令が同時に実行されてもよい。要するに、メモリアクセス処理が行われるステージが相互に異なる2つの命令が同時に実行されるものであればよい。 For example, in the above-described embodiment, two instructions (instruction A and instruction B) that are different from each other by “1” are executed at the same time. However, the present invention is not limited to this. Two instructions that are different from each other by “2” may be executed simultaneously. In short, it is only necessary that two instructions having different stages in which memory access processing is performed are executed simultaneously.
上述の実施形態では、データレジスタ30には、補正値Rと、メモリアクセス処理によって読み出されたデータとが格納されているが、例えば補正値Rが格納されるレジスタと、メモリアクセス処理によって読み出されたデータとが別々のレジスタに格納される構成であってもよい。 In the above embodiment, the data register 30 stores the correction value R and the data read by the memory access process. For example, the data register 30 stores the correction value R and the data read by the memory access process. The configuration may be such that the output data is stored in separate registers.
上述の実施形態では、多重化して設けることができない演算資源の一例としてデータメモリを挙げ、その演算資源を用いた演算処理の一例としてメモリアクセス処理を挙げて説明したが、これに限らず、上述の演算資源や演算資源を用いた演算処理の内容は任意である。 In the above-described embodiment, a data memory has been described as an example of an operation resource that cannot be multiplexed, and a memory access process has been described as an example of an operation process using the operation resource. The contents of the calculation processing using the calculation resources and the calculation resources are arbitrary.
上述の実施形態では、基準値Iと補正値Rとが加算されることでアドレス情報が算出されているが、これに限らず、アドレス情報の算出方法は任意である。例えばデータレジスタ30には、アドレス情報の算出に用いられる各種のパラメータ値が記憶され、命令Bによって指定された複数(例えば2つ)のパラメータ値に基づいてアドレス情報が算出される構成であってもよい。 In the above-described embodiment, the address information is calculated by adding the reference value I and the correction value R. However, the present invention is not limited to this, and the address information calculation method is arbitrary. For example, the data register 30 stores various parameter values used for calculating the address information, and the address information is calculated based on a plurality (for example, two) of parameter values specified by the instruction B. Also good.
上述の実施形態では、同時にフェッチ、デコードする命令は2つであるが、これに限らず、例えば、メモリアクセス処理MEMが行われるステージが相互に異なる3つ以上の命令を同時にフェッチ、デコードすることも可能である。以下、一例を挙げて説明する。図6は、メモリアクセス処理MEMが行われるステージが「1」だけ相互に異なる命令A、命令Bおよび命令Cを同時に実行する演算装置200の構成の一例を示すブロック図である。図6に示すように、ロードストアユニット20は、上述の実施形態で説明した内容に加えて、レジスタ23g、23h、23i、23jおよび23kと、アドレス情報算出部50と、アドレス情報算出部51とをさらに備える。また、命令フェッチ部22は、プログラムメモリ21から、3つの命令を同時にフェッチできるように構成される。さらに、デコード部24は、3つの命令を同時にデコードできるように構成されている。
In the above-described embodiment, two instructions are fetched and decoded at the same time. However, the present invention is not limited to this. For example, fetching and decoding three or more instructions at different stages in which the memory access processing MEM is performed is simultaneously performed. Is also possible. Hereinafter, an example will be described. FIG. 6 is a block diagram illustrating an example of the configuration of the
図6の構成例では、プログラムメモリ21は、所定のプログラムコードで記述された3種類の命令(命令A、命令B、命令C)を記憶する。図7に示すように、命令Cの処理は、ステージT1とステージT2とステージT3とステージT4とステージT5とステージT6とに分割される。
In the configuration example of FIG. 6, the
図7に示すように、ステージT1では、フェッチ処理IFが行われる。より具体的には、命令フェッチ部22は、プログラムメモリ21のうち、制御ユニット10から供給された命令アドレス情報を参照して命令Cを読み出す。命令フェッチ部22は、読み出した命令Cを図6に示すレジスタ23gに書き込む。
As shown in FIG. 7, a fetch process IF is performed at stage T1. More specifically, the instruction fetch unit 22 reads the instruction C with reference to the instruction address information supplied from the
図7に示すように、ステージT2では、デコード処理IDが行われる。より具体的には以下のとおりである。デコード部24は、レジスタ23gに書き込まれた命令Cをデコードする。ここでは、命令Cを構成するプログラムコード内には、上述のアドレス情報は直接記述されておらず、アドレス情報を算出するための算出情報が記述されている。当該算出情報は、アドレス情報の算出の際の基準値Iを示す基準情報と、データレジスタ30のうち読み出すべき補正値R2が格納された領域を示すレジスタ情報とからなる。そして、デコード部24は、デコードした命令Cから特定した基準値Iを図6に示すレジスタ23hへ書き込むとともに、デコードした命令Cの内容から特定したレジスタ情報をデータレジスタ30へ供給する。
As shown in FIG. 7, a decoding process ID is performed at stage T2. More specifically, it is as follows. The decoding unit 24 decodes the instruction C written in the
図7に示すように、ステージT3では、アドレス算出処理EX1が行われる。より具体的には以下のとおりである。図6に示すデータレジスタ30は、デコード部24からのレジスタ情報が示す領域に格納された補正値R2を読み出し、その読み出した補正値R2を図6に示すレジスタ23iへ供給する。そして、図6に示すアドレス情報算出部50は、自身が有する固有値Mと、レジスタ23iに書き込まれた補正値R2とを乗算してオフセット値Xを算出する。アドレス情報算出部50は、算出したオフセット値Xと、レジスタ23hから供給された基準値Iとを図6に示すレジスタ23jに書き込む。以上が命令Cのアドレス算出処理EX1の内容である。
As shown in FIG. 7, in the stage T3, an address calculation process EX1 is performed. More specifically, it is as follows. The data register 30 shown in FIG. 6 reads the correction value R2 stored in the area indicated by the register information from the decoding unit 24, and supplies the read correction value R2 to the
図7に示すように、ステージT4では、アドレス算出処理EX2が行われる。より具体的には、図6に示すアドレス情報算出部51は、レジスタ23jから供給されたオフセット値Xと基準値Iとを加算して、命令Cによって指定されたアドレス情報を算出する。アドレス情報算出部51は、その算出したアドレス情報をレジスタ23kに書き込む。以上が命令Cのアドレス算出処理EX2の内容である。
As shown in FIG. 7, in the stage T4, an address calculation process EX2 is performed. More specifically, the address
図7に示すように、ステージT5では、メモリアクセス処理MEMが行われる。より具体的には以下のとおりである。ここで、図6に示す選択部26は、レジスタ23cに書き込まれたアドレス情報(命令Aによって指定されたアドレス情報)が供給される第1入力端子と、レジスタ23eに書き込まれたアドレス情報(命令Bによって指定されたアドレス情報)が供給される第2入力端子と、レジスタ23kに書き込まれたアドレス情報(命令Cによって指定されたアドレス情報)が供給される第3入力端子とを有する。選択部26は、デコード部24から供給される選択制御信号(不図示)に応じて、何れかの入力端子に供給されるアドレス情報を後段の読み出し部27へ供給する。上記ステージT5では、選択部26には、命令Cによって指定されたアドレス情報の選択を指示する選択制御信号がデコード部24から供給される。これにより、読み出し部27には、命令Cによって指定されたアドレス情報が供給される。そして、読み出し部27は、データメモリ40のうち、選択部26から供給されたアドレス情報が示す領域に格納されたデータを読み出す。以上が命令Cのメモリアクセス処理MEMの内容である。
As shown in FIG. 7, at stage T5, a memory access process MEM is performed. More specifically, it is as follows. Here, the
図7に示すように、ステージT6では、ライトバック処理WBが行われる。より具体的には、書き込み部28は、読み出し部27によって読み出されたデータ(命令Cによって読み出しが指示されたデータ)を読み出し部27から受け取り、その受け取ったデータをデータレジスタ30の所定の領域に書き込む。以上が命令Cのライトバック処理WBの内容である。
As shown in FIG. 7, at the stage T6, the write-back process WB is performed. More specifically, the
以上に説明したように、命令Cの処理においては、第5段目のステージT5でメモリアクセス処理MEMが行われるので、命令Aの処理に比べて、メモリアクセス処理MEMが行われるまでのステージ数が2だけ多く、命令Bの処理に比べて、メモリアクセス処理MEMが行われるまでのステージ数が1だけ多い。そして、命令Aと命令Bと命令Cとが同時に実行されることにより、データメモリ40を連続して動作させることができるとともに、命令A、命令Bおよび命令Cのそれぞれのメモリアクセス処理MEMが同じタイミングで行われることを防止できる。要するに、第N段目のステージでメモリアクセス処理MEMが行われる命令と、第N+1段目のステージでメモリアクセス処理MEMが行われる命令と、第N+2段目のステージでメモリアクセス処理MEMが行われる命令とが同時に実行されることにより、データメモリ40を連続して動作させることができるとともに、各命令のメモリアクセス処理MEMが同じタイミングで行われることを防止できる。
As described above, in the processing of the instruction C, the memory access processing MEM is performed in the fifth stage T5. Therefore, the number of stages until the memory access processing MEM is performed as compared with the processing of the instruction A. And the number of stages until the memory access process MEM is performed is one more than the process of the instruction B. The instruction A, the instruction B, and the instruction C are simultaneously executed, so that the
また、上述の実施形態の変形例として、演算装置100は、メモリアクセス処理によって読み出されたデータを用いて所定の演算を実行する実行ユニットをさらに備えることもできる。また、図8に示すように、演算装置100は、命令Aおよび命令Bの処理を同時に開始してから、2ステージ分だけ待機した後に、別の命令Aおよび命令Bの処理を同時に開始することもできる。さらに、各ステージ(T1〜T5)の時間長は任意である。例えばアドレス算出処理が行われるステージの時間長が、フェッチ処理やデコード処理が行われるステージの時間長より長くなり、より多くのクロックサイクル数が必要となってもよい。
As a modification of the above-described embodiment, the
10 制御ユニット
20 ロードストアユニット
21 プログラムメモリ
22 命令フェッチ部
24 デコード部
27 読み出し部
40 データメモリ
100 演算装置
DESCRIPTION OF
Claims (5)
前記第1命令および前記第2命令を同時にフェッチするフェッチ部と、
フェッチされた前記第1命令および前記第2命令を同時にデコードするデコード部と、
を備えることを特徴とする演算装置。 An instruction storage unit for storing a first instruction and a second instruction for executing arithmetic processing using arithmetic resources at mutually different stages of pipeline processing;
A fetch unit for simultaneously fetching the first instruction and the second instruction;
A decoding unit for simultaneously decoding the fetched first instruction and the second instruction;
An arithmetic device comprising:
ことを特徴とする請求項1に記載の演算装置。 An arithmetic processing unit that executes the arithmetic processing according to the decoded first instruction, and executes the arithmetic processing according to the decoded second instruction after the arithmetic processing according to the decoded first instruction. In addition,
The arithmetic unit according to claim 1.
ことを特徴とする請求項1または請求項2に記載の演算装置。 The first instruction executes the arithmetic processing at an Nth stage of pipeline processing, while the second instruction executes the arithmetic processing at an N + 1th stage of pipeline processing.
The arithmetic unit according to claim 1 or claim 2, wherein
ことを特徴とする請求項1から請求項3の何れか1つに記載の演算装置。 The computing resource is a data memory for storing data.
The arithmetic unit according to any one of claims 1 to 3, characterized in that:
前記デコード部によって前記第1命令および前記第2命令がデコードされてから、前記第2命令に従った前記演算処理が開始されるまでの間に、前記算出情報を用いて前記アドレス情報を算出するアドレス情報算出部をさらに備え、
前記演算処理部が実行する演算処理は、前記データメモリのうち、前記アドレス情報が示す領域に格納された前記データを読み出す処理である、
ことを特徴とする請求項4に記載の演算装置。
The first instruction describes address information indicating an area of the data memory in which the data to be read is stored, while the second instruction includes calculation information for calculating the address information. Described,
The address information is calculated using the calculation information between the time when the decoding unit decodes the first instruction and the second instruction and before the start of the arithmetic processing according to the second instruction. An address information calculation unit;
The arithmetic processing executed by the arithmetic processing unit is a process of reading the data stored in an area indicated by the address information in the data memory.
The arithmetic unit according to claim 4, wherein:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011007719A JP2012150589A (en) | 2011-01-18 | 2011-01-18 | Arithmetic unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011007719A JP2012150589A (en) | 2011-01-18 | 2011-01-18 | Arithmetic unit |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012150589A true JP2012150589A (en) | 2012-08-09 |
Family
ID=46792786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011007719A Pending JP2012150589A (en) | 2011-01-18 | 2011-01-18 | Arithmetic unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012150589A (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5890247A (en) * | 1981-11-25 | 1983-05-28 | Nippon Telegr & Teleph Corp <Ntt> | Pipeline controlling system of information processor |
JPH0520065A (en) * | 1991-07-11 | 1993-01-29 | Mitsubishi Electric Corp | Parallel arithmetic processor |
JPH05197547A (en) * | 1991-10-31 | 1993-08-06 | Toshiba Corp | Vliw type arithmetic processor |
JPH10187444A (en) * | 1997-12-22 | 1998-07-21 | Hitachi Ltd | Data processor and data processing method |
JP2003029966A (en) * | 2001-07-17 | 2003-01-31 | Hitachi Ltd | Data processor |
JP2006302324A (en) * | 2006-08-15 | 2006-11-02 | Renesas Technology Corp | Data processor |
-
2011
- 2011-01-18 JP JP2011007719A patent/JP2012150589A/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5890247A (en) * | 1981-11-25 | 1983-05-28 | Nippon Telegr & Teleph Corp <Ntt> | Pipeline controlling system of information processor |
JPH0520065A (en) * | 1991-07-11 | 1993-01-29 | Mitsubishi Electric Corp | Parallel arithmetic processor |
JPH05197547A (en) * | 1991-10-31 | 1993-08-06 | Toshiba Corp | Vliw type arithmetic processor |
JPH10187444A (en) * | 1997-12-22 | 1998-07-21 | Hitachi Ltd | Data processor and data processing method |
JP2003029966A (en) * | 2001-07-17 | 2003-01-31 | Hitachi Ltd | Data processor |
JP2006302324A (en) * | 2006-08-15 | 2006-11-02 | Renesas Technology Corp | Data processor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10664280B2 (en) | Fetch ahead branch target buffer | |
JP2007094813A (en) | Processor | |
JP5491071B2 (en) | Instruction fusion arithmetic device and instruction fusion arithmetic method | |
JP2018005488A (en) | Arithmetic processing unit and control method for arithmetic processing unit | |
KR100983135B1 (en) | Processor and method of grouping and executing dependent instructions in a packet | |
JP2008204357A (en) | Information processor | |
US8595473B2 (en) | Method and apparatus for performing control of flow in a graphics processor architecture | |
JP5209390B2 (en) | Information processing apparatus and instruction fetch control method | |
JP2008299729A (en) | Processor | |
JP2007257349A (en) | Processor and processing method thereof | |
JP4444305B2 (en) | Semiconductor device | |
JP2012150589A (en) | Arithmetic unit | |
JP2009069960A (en) | Branch prediction device, branch prediction method and microprocessor | |
JP2010079841A (en) | Microcomputer and instruction execution method thereof | |
JP5491113B2 (en) | Vector processing apparatus, vector processing method, and program | |
JP2011209859A (en) | Information processor | |
US8255672B2 (en) | Single instruction decode circuit for decoding instruction from memory and instructions from an instruction generation circuit | |
JP5292831B2 (en) | Programmable controller | |
US8909905B2 (en) | Method for performing plurality of bit operations and a device having plurality of bit operations capabilities | |
US20100153688A1 (en) | Apparatus and method for data process | |
JP4151497B2 (en) | Pipeline processing equipment | |
JP5013966B2 (en) | Arithmetic processing unit | |
JP5263497B2 (en) | Signal processor and semiconductor device | |
JP5679263B2 (en) | Information processing apparatus and microinstruction processing method | |
JP2010085177A (en) | Semiconductor testing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130521 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130618 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130814 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130827 |