JP2012150589A - 演算装置 - Google Patents
演算装置 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
- register
- data
- 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
【課題】演算資源の利用効率を向上させるとともに、命令の処理に要する時間が増大することを防止可能な処理装置を提供する。
【解決手段】本実施形態の演算装置100は、プログラムメモリ21と、命令フェッチ部22と、デコード部24とを備える。プログラムメモリ21は、データメモリ40から所定のデータを読み出すメモリアクセス処理を、パイプライン処理の相互に異なるステージで実行する命令Aおよび命令Bを記憶する。命令フェッチ部22は、命令Aおよび命令Bを同時にフェッチする。デコード部24は、フェッチされた命令Aおよび命令Bを同時にデコードする。
【選択図】図2
Description
本発明の実施形態は、演算装置に関する。
従来、1つの命令の処理を複数の処理単位に分割し、各処理を別々のハードウェア回路で実行するパイプライン方式を採用した演算装置(例えばマイクロプロセッサ)が知られている。
パイプライン方式を採用した演算装置においては、例えばメモリなどの演算資源を効率的に利用することが求められている。本発明が解決しようとする課題は、演算資源の利用効率を向上させることが可能な演算装置を提供することである。
実施形態の演算装置は、命令記憶部と、フェッチ部と、デコード部とを備える。命令記憶部は、演算資源を用いた演算処理を、パイプライン処理の相互に異なるステージで実行する第1命令および第2命令を記憶する。フェッチ部は、第1命令および第2命令を同時にフェッチする。デコード部は、フェッチされた第1命令および第2命令を同時にデコードする。
図1は、本実施形態の演算装置100の概略構成の一例を示すブロック図である。図1に示すように、演算装置100は、制御ユニット10と、ロードストアユニット20と、データレジスタ30と、データメモリ40とを備える。演算資源の一例であるデータメモリ40には各種のデータが格納される。
制御ユニット10は、演算装置100全体を制御する。ロードストアユニット20は、制御ユニット10からの指示を受けて、命令のフェッチと、フェッチした命令のデコードとを実行する。そして、ロードストアユニット20は、デコードした命令に従って、データメモリ40からのデータを読み出す処理(「メモリアクセス処理」と呼ぶ)を実行する。メモリアクセス処理の詳細な内容は後述する。また、データレジスタ30は、メモリアクセス処理により読み出されたデータや後述のアドレス情報の算出に用いられる補正値(オフセット)を記憶する。
図2は、ロードストアユニット20の詳細な構成の一例を示すブロック図である。図2に示すように、ロードストアユニット20は、プログラムメモリ21と、命令フェッチ部22と、レジスタ23a〜23fと、デコード部24と、アドレス情報算出部25と、選択部26と、読み出し部27と、書き込み部28とを備える。
プログラムメモリ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が行われる。
また、図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)の時間長は同じである。つまり、各ステージの処理に必要なクロックサイクル数は同じである。
再び図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に書き込む。
デコード部24は、2つの命令を同時にデコードできるように構成されている。例えばデコード部24は、2つのデコード回路から構成されてもよいし、VLIW方式が採用された構成であってもよい。デコード部24は、レジスタ23aに書き込まれた命令Aおよびレジスタ23bに書き込まれた命令Bのそれぞれを同時にデコードする。本実施形態では、命令Aを構成するプログラムコード内には、データメモリ40のうち、読み出すべきデータが格納された領域を示すアドレス情報が記述されているので、デコード部24は、デコードした命令Aから、直ちにアドレス情報を特定することができる。そして、デコード部24は、デコードした命令Aから特定したアドレス情報をレジスタ23cに書き込み、レジスタ23cに書き込まれたアドレス情報は、後段の選択部26へ供給される。
一方、命令Bを構成するプログラムコード内には、上述のアドレス情報は記述されておらず、アドレス情報を算出するための算出情報が記述されている。本実施形態では、算出情報は、アドレス情報の算出の際の基準値Iを示す基準情報と、データレジスタ30のうち、基準値Iに加算すべき補正値Rが格納された領域を示すレジスタ情報とからなる。デコード部24は、デコードした命令Bから特定した基準値Iをレジスタ23dへ書き込み、レジスタ23dに書き込まれた基準値Iは後段のアドレス情報算出部25へ供給される。また、デコード部24は、デコードした命令Bから特定したレジスタ情報をデータレジスタ30へ供給する。データレジスタ30は、デコード部24からのレジスタ情報を受け付け、その受け付けたレジスタ情報が示す領域に格納された補正値Rを読み出す。そして、データレジスタ30は、その読み出した補正値Rをレジスタ23fへ供給する。
アドレス情報算出部25は、レジスタ23dから供給される基準値Iと、レジスタ23fから供給される補正値Rとからアドレス情報を算出する。アドレス情報算出部25は例えば加算器で構成され、レジスタ23dから供給される基準値Iと、レジスタ23fから供給される補正値Rとの加算結果を示す値がアドレス情報となる。アドレス情報算出部25で算出されたアドレス情報はレジスタ23eに書き込まれる。レジスタ23eに書き込まれたアドレス情報は後段の選択部26へ供給される。
選択部26は、レジスタ23cに書き込まれたアドレス情報(つまりは、命令Aによって指定されたアドレス情報)、および、レジスタ23eに書き込まれたアドレス情報(つまりは、命令Bによって指定されたアドレス情報)のうちの何れか一方を選択して後段の読み出し部27へ供給する。選択部26は、例えばマルチプレクサなどの選択回路で構成され、一方の入力端には、レジスタ23cに書き込まれたアドレス情報(命令Aによって指定されたアドレス情報)が供給され、他方の入力端には、レジスタ23eに書き込まれたアドレス情報(命令Bによって指定されたアドレス情報)が供給される。また、選択部26には、デコード部24からの選択制御信号(不図示)が供給される。選択部26は、デコード部24からの選択制御信号に応じて、一方の入力端および他方の入力端のうちの何れかに供給されるデータ(アドレス情報)を、後段の読み出し部27へ供給する。
読み出し部27は、データメモリ40のうち、選択部26から供給されたアドレス情報が示す領域に格納されたデータを読み出す。読み出し部27は、読み出したデータを書き込み部28へ供給する。書き込み部28は、読み出し部27から供給されたデータをデータレジスタ30の所定の領域に書き込む。
図4は、演算装置100の動作を説明するためのタイミングチャートである。以下、図4を参照しながら、演算装置100の具体的な動作を説明する。本実施形態では、演算装置100は、命令Aと命令Bとをパイプライン方式で同時に実行する。以下、詳細な内容について説明する。ここでは、図4の各期間(T11〜T55)の時間長は、上述の各ステージ(T1〜T5)の時間長と同じである。
図4に示すように、最初の期間T11は、命令Aおよび命令Bのそれぞれの処理におけるステージT1(図3参照)となり、命令Aのフェッチ処理IFと命令Bのフェッチ処理IFとが実行される。より具体的には、命令フェッチ部22は、プログラムメモリ21のうち、制御ユニット10から供給された命令アドレス情報が示すそれぞれの領域から、命令Aと命令Bを同時に読み出し、読み出した命令Aをレジスタ23aに書き込み、読み出した命令Bをレジスタ23bに書き込む。
図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へ供給する。
図4に示すように、期間T22の直後の期間T33は、命令Aおよび命令Bのそれぞれの処理におけるステージT3(図3参照)となり、命令Aのメモリアクセス処理MEMが実行される一方、命令Bのアドレス算出処理EXが実行される。より具体的には以下のとおりである。期間T33では、図2の選択部26には、一方の入力端に供給されるデータ(つまり、レジスタ23cに書き込まれた、命令Aによって指定されたアドレス情報)の選択を指示する選択制御信号がデコード部24から供給される。これにより、読み出し部27には、命令Aによって指定されたアドレス情報が供給される。そして、読み出し部27は、データメモリ40のうち、選択部26から供給されたアドレス情報が示す領域に格納されたデータを読み出す。以上が命令Aのメモリアクセス処理MEMの内容である。
また、期間T33では、データレジスタ30は、デコード部24からのレジスタ情報が示す領域に格納された補正値Rを読み出し、その読み出した補正値Rをレジスタ23fへ供給する。そして、アドレス情報算出部25は、レジスタ23dに書き込まれた基準値Iと、レジスタ23fから供給された補正値Rとを加算して、命令Bによって指定されたアドレス情報を算出し、その算出したアドレス情報をレジスタ23eに書き込む。以上が命令Bのアドレス算出処理EXの内容である。
図4に示すように、期間T33の直後の期間T44は、命令Aおよび命令Bのそれぞれの処理におけるステージT4(図3参照)となり、命令Aのライトバック処理WBが実行される一方、命令Bのメモリアクセス処理MEMが実行される。より具体的には以下のとおりである。期間T44では、書き込み部28は、ステージT3で読み出し部27によって読み出されたデータ(命令Aによって読み出しが指示されたデータ)を読み出し部27から受け取り、その受け取ったデータをデータレジスタ30の所定の領域に書き込む。以上が命令Aのライトバック処理WBの内容であり、期間T44の終了とともに、命令Aの処理は終了する。
また、期間T44では、図2の選択部26には、他方の入力端子に供給されるデータ(つまり、レジスタ23eに書き込まれた、命令Bによって指定されたアドレス情報)の選択を指示する選択制御信号がデコード部24から供給される。これにより、読み出し部27には、命令Bによって指定されたアドレス情報が供給される。そして、読み出し部27は、データメモリ40のうち、選択部26から供給されたアドレス情報が示す領域に格納されたデータを読み出す。以上が命令Bのメモリアクセス処理MEMの内容である。
図4に示すように、期間T44の直後の期間T55は、命令Bの処理におけるステージT5(図3参照)となり、命令Bのライトバック処理WBのみが実行される。より具体的には、期間T55では、書き込み部28は、期間T44で読み出し部27によって読み出されたデータ(命令Bによって読み出しが指示されたデータ)を読み出し部27から受け取り、その受け取ったデータをデータレジスタ30の所定の領域に書き込む。以上が命令Bのライトバック処理WBの内容であり、期間T55の終了とともに、命令Bの処理は終了する。
以上に説明したように、本実施形態によれば、メモリアクセス処理MEMが行われるステージが相互に異なる命令Aおよび命令Bが同時に実行されるので、データメモリ40の利用効率を向上させることができる。より具体的には、図4に示すように、本実施形態では、メモリアクセス処理MEMが行われるステージが「1」だけ相互に異なる命令Aおよび命令Bが同時に実行されるので、データメモリ40を、期間T33および期間T44にわたって連続して動作させることができる。これにより、データメモリ40の利用効率を向上させることができる。また、本実施形態によれば、命令Aのメモリアクセス処理MEMと命令Bのメモリアクセス処理MEMとが同じタイミングで行われることを防止できるので、命令の処理に要する時間が増大することを防止することもできる。
ここで、パイプライン処理の相互に異なるステージでメモリアクセス処理MEMが行われる2つの命令を順番に実行する場合を想定する。2つの命令のうち、メモリアクセス処理MEMが行われるまでのステージ数が少ない方の命令を第1命令、メモリアクセス処理が行われるまでのステージ数が多い方の命令を第2命令として、第1命令→第2命令の順番でそれぞれの命令を実行する場合は、第1命令のメモリアクセス処理が行われてから、第2命令のメモリアクセス処理が行われるまでの期間が長くなるので、メモリが動作せずに待機状態となる期間も長くなる。これにより、メモリの利用効率が低くなるという問題が起こる。
例えば図5−1に示すように、命令A→命令Bの順番で実行する場合は、期間T33において命令Aのメモリアクセス処理MEMが行われ、期間T55において命令Bのメモリアクセス処理MEMが行われる。すなわち、期間T44においてデータメモリ40は動作せずに待機状態となるので、データメモリ40の利用効率が低くなる。
一方、第2命令→第1命令の順番でそれぞれの命令を実行する場合は、第1命令のメモリアクセス処理MEMと、第2命令のメモリアクセス処理MEMとが同じタイミングで行われるおそれがある。この場合、第2命令のメモリアクセス処理MEMが終了するまで、第1命令のメモリアクセス処理MEMを実行できないので、結果として、命令の処理に要する時間が増大するという問題が起こる。
例えば図5−2に示すように、命令B→命令Aの順番で実行する場合は、命令Bのメモリアクセス処理MEMが行われる期間と、命令Aのメモリアクセス処理MEMが行われる期間とが共に期間T44となってしまうので、命令Bのメモリアクセス処理MEMが終了するまで他の命令Aのメモリアクセス処理MEMを行うことができず、結果として、命令の処理に要する時間が増大してしまう。
以上より、パイプライン処理の相互に異なるステージでメモリアクセス処理MEMが行われる2つの命令を順番に実行する場合は、データメモリ40の利用効率が低くなる、または、命令の処理に要する時間が増大するといった問題が起こる。
これに対して、本実施形態によれば、データメモリ40を、期間T33および期間T44にわたって連続して動作させることができるので、図5−1の場合に比べて、データメモリの利用効率を向上させることが可能になる。また、本実施形態によれば、命令Aのメモリアクセス処理MEMが行われる期間と命令Bのメモリアクセス処理MEMが行われる期間とが同じ期間になることを防止できるので、図5−2の場合とは異なり、命令の処理に要する時間が増大することを防止できる。すなわち、本実施形態によれば、データメモリ40の利用効率を向上させるとともに命令の処理に要する時間が増大することを防止できる。
(変形例)
以上、本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以上、本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
例えば、上述の実施形態では、メモリアクセス処理が行われるステージが「1」だけ相互に異なる2つの命令(命令A、命令B)が同時に実行されているが、これに限らず、例えばメモリアクセス処理が行われるステージが「2」だけ相互に異なる2つの命令が同時に実行されてもよい。要するに、メモリアクセス処理が行われるステージが相互に異なる2つの命令が同時に実行されるものであればよい。
上述の実施形態では、データレジスタ30には、補正値Rと、メモリアクセス処理によって読み出されたデータとが格納されているが、例えば補正値Rが格納されるレジスタと、メモリアクセス処理によって読み出されたデータとが別々のレジスタに格納される構成であってもよい。
上述の実施形態では、多重化して設けることができない演算資源の一例としてデータメモリを挙げ、その演算資源を用いた演算処理の一例としてメモリアクセス処理を挙げて説明したが、これに限らず、上述の演算資源や演算資源を用いた演算処理の内容は任意である。
上述の実施形態では、基準値Iと補正値Rとが加算されることでアドレス情報が算出されているが、これに限らず、アドレス情報の算出方法は任意である。例えばデータレジスタ30には、アドレス情報の算出に用いられる各種のパラメータ値が記憶され、命令Bによって指定された複数(例えば2つ)のパラメータ値に基づいてアドレス情報が算出される構成であってもよい。
上述の実施形態では、同時にフェッチ、デコードする命令は2つであるが、これに限らず、例えば、メモリアクセス処理MEMが行われるステージが相互に異なる3つ以上の命令を同時にフェッチ、デコードすることも可能である。以下、一例を挙げて説明する。図6は、メモリアクセス処理MEMが行われるステージが「1」だけ相互に異なる命令A、命令Bおよび命令Cを同時に実行する演算装置200の構成の一例を示すブロック図である。図6に示すように、ロードストアユニット20は、上述の実施形態で説明した内容に加えて、レジスタ23g、23h、23i、23jおよび23kと、アドレス情報算出部50と、アドレス情報算出部51とをさらに備える。また、命令フェッチ部22は、プログラムメモリ21から、3つの命令を同時にフェッチできるように構成される。さらに、デコード部24は、3つの命令を同時にデコードできるように構成されている。
図6の構成例では、プログラムメモリ21は、所定のプログラムコードで記述された3種類の命令(命令A、命令B、命令C)を記憶する。図7に示すように、命令Cの処理は、ステージT1とステージT2とステージT3とステージT4とステージT5とステージT6とに分割される。
図7に示すように、ステージT1では、フェッチ処理IFが行われる。より具体的には、命令フェッチ部22は、プログラムメモリ21のうち、制御ユニット10から供給された命令アドレス情報を参照して命令Cを読み出す。命令フェッチ部22は、読み出した命令Cを図6に示すレジスタ23gに書き込む。
図7に示すように、ステージT2では、デコード処理IDが行われる。より具体的には以下のとおりである。デコード部24は、レジスタ23gに書き込まれた命令Cをデコードする。ここでは、命令Cを構成するプログラムコード内には、上述のアドレス情報は直接記述されておらず、アドレス情報を算出するための算出情報が記述されている。当該算出情報は、アドレス情報の算出の際の基準値Iを示す基準情報と、データレジスタ30のうち読み出すべき補正値R2が格納された領域を示すレジスタ情報とからなる。そして、デコード部24は、デコードした命令Cから特定した基準値Iを図6に示すレジスタ23hへ書き込むとともに、デコードした命令Cの内容から特定したレジスタ情報をデータレジスタ30へ供給する。
図7に示すように、ステージT3では、アドレス算出処理EX1が行われる。より具体的には以下のとおりである。図6に示すデータレジスタ30は、デコード部24からのレジスタ情報が示す領域に格納された補正値R2を読み出し、その読み出した補正値R2を図6に示すレジスタ23iへ供給する。そして、図6に示すアドレス情報算出部50は、自身が有する固有値Mと、レジスタ23iに書き込まれた補正値R2とを乗算してオフセット値Xを算出する。アドレス情報算出部50は、算出したオフセット値Xと、レジスタ23hから供給された基準値Iとを図6に示すレジスタ23jに書き込む。以上が命令Cのアドレス算出処理EX1の内容である。
図7に示すように、ステージT4では、アドレス算出処理EX2が行われる。より具体的には、図6に示すアドレス情報算出部51は、レジスタ23jから供給されたオフセット値Xと基準値Iとを加算して、命令Cによって指定されたアドレス情報を算出する。アドレス情報算出部51は、その算出したアドレス情報をレジスタ23kに書き込む。以上が命令Cのアドレス算出処理EX2の内容である。
図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の内容である。
図7に示すように、ステージT6では、ライトバック処理WBが行われる。より具体的には、書き込み部28は、読み出し部27によって読み出されたデータ(命令Cによって読み出しが指示されたデータ)を読み出し部27から受け取り、その受け取ったデータをデータレジスタ30の所定の領域に書き込む。以上が命令Cのライトバック処理WBの内容である。
以上に説明したように、命令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が同じタイミングで行われることを防止できる。
また、上述の実施形態の変形例として、演算装置100は、メモリアクセス処理によって読み出されたデータを用いて所定の演算を実行する実行ユニットをさらに備えることもできる。また、図8に示すように、演算装置100は、命令Aおよび命令Bの処理を同時に開始してから、2ステージ分だけ待機した後に、別の命令Aおよび命令Bの処理を同時に開始することもできる。さらに、各ステージ(T1〜T5)の時間長は任意である。例えばアドレス算出処理が行われるステージの時間長が、フェッチ処理やデコード処理が行われるステージの時間長より長くなり、より多くのクロックサイクル数が必要となってもよい。
10 制御ユニット
20 ロードストアユニット
21 プログラムメモリ
22 命令フェッチ部
24 デコード部
27 読み出し部
40 データメモリ
100 演算装置
20 ロードストアユニット
21 プログラムメモリ
22 命令フェッチ部
24 デコード部
27 読み出し部
40 データメモリ
100 演算装置
Claims (5)
- 演算資源を用いた演算処理を、パイプライン処理の相互に異なるステージで実行する第1命令および第2命令を記憶する命令記憶部と、
前記第1命令および前記第2命令を同時にフェッチするフェッチ部と、
フェッチされた前記第1命令および前記第2命令を同時にデコードするデコード部と、
を備えることを特徴とする演算装置。 - デコードされた前記第1命令に従って前記演算処理を実行し、当該デコードされた前記第1命令に従った前記演算処理の後、デコードされた前記第2命令に従って前記演算処理を実行する演算処理部をさらに備える、
ことを特徴とする請求項1に記載の演算装置。 - 前記第1命令は、パイプライン処理の第N段目のステージで前記演算処理を実行する一方、前記第2命令は、パイプライン処理の第N+1段目のステージで前記演算処理を実行する、
ことを特徴とする請求項1または請求項2に記載の演算装置。 - 前記演算資源は、データを格納するデータメモリである、
ことを特徴とする請求項1から請求項3の何れか1つに記載の演算装置。 - 前記第1命令には、前記データメモリのうち、読み出すべき前記データが格納された領域を示すアドレス情報が記述される一方、前記第2命令には、前記アドレス情報を算出するための算出情報が記述され、
前記デコード部によって前記第1命令および前記第2命令がデコードされてから、前記第2命令に従った前記演算処理が開始されるまでの間に、前記算出情報を用いて前記アドレス情報を算出するアドレス情報算出部をさらに備え、
前記演算処理部が実行する演算処理は、前記データメモリのうち、前記アドレス情報が示す領域に格納された前記データを読み出す処理である、
ことを特徴とする請求項4に記載の演算装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011007719A JP2012150589A (ja) | 2011-01-18 | 2011-01-18 | 演算装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011007719A JP2012150589A (ja) | 2011-01-18 | 2011-01-18 | 演算装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2012150589A true JP2012150589A (ja) | 2012-08-09 |
Family
ID=46792786
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011007719A Pending JP2012150589A (ja) | 2011-01-18 | 2011-01-18 | 演算装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2012150589A (ja) |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5890247A (ja) * | 1981-11-25 | 1983-05-28 | Nippon Telegr & Teleph Corp <Ntt> | 情報処理装置のパイプライン制御方式 |
| JPH0520065A (ja) * | 1991-07-11 | 1993-01-29 | Mitsubishi Electric Corp | 並列演算処理装置 |
| JPH05197547A (ja) * | 1991-10-31 | 1993-08-06 | Toshiba Corp | Vliw型演算処理装置 |
| JPH10187444A (ja) * | 1997-12-22 | 1998-07-21 | Hitachi Ltd | データ処理装置及び方法 |
| JP2003029966A (ja) * | 2001-07-17 | 2003-01-31 | Hitachi Ltd | データ処理装置 |
| JP2006302324A (ja) * | 2006-08-15 | 2006-11-02 | Renesas Technology Corp | データ処理装置 |
-
2011
- 2011-01-18 JP JP2011007719A patent/JP2012150589A/ja active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5890247A (ja) * | 1981-11-25 | 1983-05-28 | Nippon Telegr & Teleph Corp <Ntt> | 情報処理装置のパイプライン制御方式 |
| JPH0520065A (ja) * | 1991-07-11 | 1993-01-29 | Mitsubishi Electric Corp | 並列演算処理装置 |
| JPH05197547A (ja) * | 1991-10-31 | 1993-08-06 | Toshiba Corp | Vliw型演算処理装置 |
| JPH10187444A (ja) * | 1997-12-22 | 1998-07-21 | Hitachi Ltd | データ処理装置及び方法 |
| JP2003029966A (ja) * | 2001-07-17 | 2003-01-31 | Hitachi Ltd | データ処理装置 |
| JP2006302324A (ja) * | 2006-08-15 | 2006-11-02 | Renesas Technology Corp | データ処理装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5491071B2 (ja) | 命令融合演算装置および命令融合演算方法 | |
| CN110688160B (zh) | 一种指令流水线处理方法、系统、设备及计算机存储介质 | |
| JP4986431B2 (ja) | プロセッサ | |
| US10664280B2 (en) | Fetch ahead branch target buffer | |
| US20130036426A1 (en) | Information processing device and task switching method | |
| US20210326132A1 (en) | Methods and processors for performing resource deduction for execution of smart contract | |
| US20140250289A1 (en) | Branch Target Buffer With Efficient Return Prediction Capability | |
| US8595473B2 (en) | Method and apparatus for performing control of flow in a graphics processor architecture | |
| KR100983135B1 (ko) | 패킷의 의존성 명령을 그룹핑하여 실행하는 프로세서 및 방법 | |
| JP4444305B2 (ja) | 半導体装置 | |
| JP5209390B2 (ja) | 情報処理装置及び命令フェッチ制御方法 | |
| JP2008299729A (ja) | プロセッサ | |
| JP4383496B1 (ja) | マイクロコンピュータ及びその命令実行方法 | |
| JP2012150589A (ja) | 演算装置 | |
| US8255672B2 (en) | Single instruction decode circuit for decoding instruction from memory and instructions from an instruction generation circuit | |
| JP5233078B2 (ja) | プロセッサ及びその処理方法 | |
| JP2009069960A (ja) | 分岐予測装置、分岐予測方法、及びマイクロプロセッサ | |
| JP5491113B2 (ja) | ベクトル処理装置、ベクトル処理方法、およびプログラム | |
| JP5292831B2 (ja) | プログラマブルコントローラ | |
| JP4151497B2 (ja) | パイプライン処理装置 | |
| US20100153688A1 (en) | Apparatus and method for data process | |
| KR100961242B1 (ko) | 명령어를 지연시켜 수행하는 방법 및 명령어를 지연시켜 수행하는 시스템 | |
| JP2010085177A (ja) | 半導体試験装置 | |
| JP5013966B2 (ja) | 演算処理装置 | |
| JP5263497B2 (ja) | 信号処理プロセッサ及び半導体装置 |
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 |