JP2006139644A - プロセッサ - Google Patents
プロセッサ Download PDFInfo
- Publication number
- JP2006139644A JP2006139644A JP2004330086A JP2004330086A JP2006139644A JP 2006139644 A JP2006139644 A JP 2006139644A JP 2004330086 A JP2004330086 A JP 2004330086A JP 2004330086 A JP2004330086 A JP 2004330086A JP 2006139644 A JP2006139644 A JP 2006139644A
- Authority
- JP
- Japan
- Prior art keywords
- forwarding
- processor
- instruction
- register
- vector
- 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.)
- Withdrawn
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
【課題】 プロセッサにおける不要な書き込み処理をなくして消費電力を低減し、消費電力低減の効果がより高いプロセッサを提供する。
【解決手段】 命令をフェッチし、このフェッチによってフェッチされた命令をデコードし、デコードされた命令に基づく演算を実行する演算ユニット、演算ユニットによって実行された演算の結果が書き込まれるスカラレジスタを含むレジスタファイルを備えたプロセッサに、1つの演算ユニットの演算結果が他の演算ユニットにフォワーディングされる場合、フォワーディングされた演算結果がスカラレジスタに書き込まれることを禁止する書込禁止部2を設ける。
【選択図】 図2
【解決手段】 命令をフェッチし、このフェッチによってフェッチされた命令をデコードし、デコードされた命令に基づく演算を実行する演算ユニット、演算ユニットによって実行された演算の結果が書き込まれるスカラレジスタを含むレジスタファイルを備えたプロセッサに、1つの演算ユニットの演算結果が他の演算ユニットにフォワーディングされる場合、フォワーディングされた演算結果がスカラレジスタに書き込まれることを禁止する書込禁止部2を設ける。
【選択図】 図2
Description
本発明は、プロセッサに係り、特にベクトルレジスタを備えてパイプライン処理が可能なプロセッサに関する。
ベクトルパイプラインは、論理演算、乗算、加算やシフト演算、除算、マスク演算、ロード・ストアのパイプラインおよびマスクレジスタ、ベクトルレジスタを基本構成とする構成である。ベクトルパイプラインを備えたプロセッサ(ベクトルプロセッサ)は、並列に実行される画像処理等を高速に実行することに適している。
図5は、一般的なベクトルプロセッサの構成を示す図である。図示したベクトルプロセッサは、スカラレジスタと共にベクトルレジスタを備えたレジスタファイル500、選択回路501、主記憶部503、ロード・ストアユニット504、演算ユニット群502とを備えている。
図5は、一般的なベクトルプロセッサの構成を示す図である。図示したベクトルプロセッサは、スカラレジスタと共にベクトルレジスタを備えたレジスタファイル500、選択回路501、主記憶部503、ロード・ストアユニット504、演算ユニット群502とを備えている。
このようなベクトルプロセッサでは、選択回路501がロードされた命令を実行する演算ユニット及び実行に使用されるレジスタを選択する。そして、主記憶部から読み出された命令を解釈し、演算して結果をメモリに書き込みという手順で処理する。このような手順で行われる各動作を、本明細書では、フェッチ(IF)、デコード(ID)、演算(EX)、ライトバック(WB)と記す。また、このような各動作が実行されるタイミングを、各動作のステージと記す。
次に、このようなベクトルプロセッサの問題点を説明するにあたり、ベクトルプロセッサで次の命令が実行されるものとする。
ADD(4) %SR0,%VR0,%SR0
上記した命令は、以下の演算の実行を指示する。
1,SR0=VR0+SR0
2,SR0=VR1+SR0
3,SR0=VR2+SR0
4,SR0=VR3+SR0
演算結果:SR0=SR0(初期)+VR0+VR1+VR2+VR3
なお、命令及び演算式中のSR0はスカラレジスタ,VR0はベクトルレジスタを示す。
ADD(4) %SR0,%VR0,%SR0
上記した命令は、以下の演算の実行を指示する。
1,SR0=VR0+SR0
2,SR0=VR1+SR0
3,SR0=VR2+SR0
4,SR0=VR3+SR0
演算結果:SR0=SR0(初期)+VR0+VR1+VR2+VR3
なお、命令及び演算式中のSR0はスカラレジスタ,VR0はベクトルレジスタを示す。
このような演算を、図6に示す一般的なベクトルプロセッサで実行した場合の動作を図7に示す。図7中にIF、ID、EX、WBで示すのは、各々の動作ステージを示す。ここで例示した演算は、直前に実行された演算の結果が次の演算に使用される。このため、後の演算は直前の命令のWBステージが終了するまで次の命令のデコードを行うことが出来ない。図6に示した処理では、直前の命令のWBステージが完了するまでnop命令を挿入し、次の命令の発行を遅らせている。
このように命令の発行を遅らせる処理は、ベクトルプロセッサの動作を遅らせることになる。また、ベクトルプロセッサの遅延は、パイプラインの段数が多くなるほど大きくなる。このような不具合を解消するため、ベクトルプロセッサには、フォワーディングと呼ばれる処理が可能な構成がある。
フォワーディングには、レジスタファイル500内でのフォワーディングと、演算ユニット間でのフォワーディングがある。レジスタファイル500内でのフォワーディングでは、同一のスカラレジスタに書き込み要求と読み出し要求が同時に発生した場合、書き込まれたデータがフォワーディングパス経由で読み出される。また、演算ユニット間のフォワーディングでは、演算結果は、直前の命令で動作する演算ユニットの演算終了後に次の演算ユニットに読み出される。レジスタファイル500内でフォワーディングを行った場合の動作を図8(a)に示し、演算ユニット間でフォワーディングを行った場合の動作を図8(b)に示す。
フォワーディングには、レジスタファイル500内でのフォワーディングと、演算ユニット間でのフォワーディングがある。レジスタファイル500内でのフォワーディングでは、同一のスカラレジスタに書き込み要求と読み出し要求が同時に発生した場合、書き込まれたデータがフォワーディングパス経由で読み出される。また、演算ユニット間のフォワーディングでは、演算結果は、直前の命令で動作する演算ユニットの演算終了後に次の演算ユニットに読み出される。レジスタファイル500内でフォワーディングを行った場合の動作を図8(a)に示し、演算ユニット間でフォワーディングを行った場合の動作を図8(b)に示す。
このようなフォワーディング処理では、ベクトル命令によってWBステージで書き込まれるデータのディスティネーション(書き込み先)がスカラレジスタに指定される。このとき、書き込まれるデータはフォワーディングパスを経由して読み出されるので、書き込み処理の必要がなくなる。また、レジスタに対する書き込み処理には比較的多くの電力を消費する。すなわち、フォワーディング機構を有するベクトルプロセッサにおいては、ベクトル命令によるスカラレジスタへの書込み処理が不要であるばかりでなく、消費電流増加の原因になり得る。
この点を解決するためなされた従来技術としては、例えば、特許文献1が挙げられる。特許文献1に記載された発明は、ベクトルプロセッサの消費電力低減を目的としてなされたものである。この発明では、一般的なRISCプロセッサにおいて、フォワーディング時のレジスタ書き込みを選択的に禁止している。
特開2000−305777号公報
しかしながら、上記した特許文献1に記載された発明は、書き込み禁止、あるいは許可を判断するために発行した命令と直後の命令のディスティネーションを常に比較する必要がある。この比較のため、過去の制御信号を保持するラッチ等を含む回路が必要になる。このような特許文献1に記載された発明は、この回路が電力を消費するため、消費電力の低減についてさらに改善の余地が残るといえる。
本発明は、このような点に鑑みてなされたものであり、プロセッサにおける不要な書き込み処理をなくして消費電力を低減し、かつ書込みを禁止する構成を設けたために電力が消費されることがなく、消費電力低減の効果がより高いプロセッサを提供することを目的とする。
以上の課題を解決するため、請求項1に記載のプロセッサは、命令をフェッチするフェッチ手段と、該フェッチ手段によってフェッチされた命令をデコードするデコード手段と、該デコード手段によってデコードされた命令に基づく演算を実行する複数の演算実行手段と、該演算実行手段によって実行された演算の演算結果が書き込まれるスカラレジスタを含むレジスタファイルとを備えたプロセッサであって、前記複数の演算実行手段のうち一の演算実行手段の演算結果を他の演算実行手段にフォワーディングするフォワーディング機構と、前記フォワーディング機構によって一の前記演算実行手段の演算結果が他の前記演算実行手段にフォワーディングされる場合、フォワーディングされた演算結果がスカラレジスタに書き込まれることを禁止する書込禁止手段と、を備えることを特徴とする。
また、本発明のプロセッサは、前記フォワーディング機構が、スカラレジスタに書き込まれたデータが続いて他の前記演算実行手段によって読み出される命令がなされた場合にフォワーディングを実行することを特徴とする。
また、本発明のプロセッサは、前記フォワーディング機構が、複数の前記演算実行手段のうちの一の前記演算実行手段の演算結果が他の前記演算実行手段に直接入力される命令がなされた場合にフォワーディングを実行することを特徴とする。
また、本発明のプロセッサは、前記フォワーディング機構が、複数の前記演算実行手段のうちの一の前記演算実行手段の演算結果が他の前記演算実行手段に直接入力される命令がなされた場合にフォワーディングを実行することを特徴とする。
また、本発明のプロセッサは、前記書込禁止手段が、前記スカラレジスタに対する書込みを許可する書込み許可信号と、前記フォワーディング機構にフォワーディングを指示するフォワーディング指示信号とを用いてフォワーディングされた演算結果がスカラレジスタに書き込まれることを禁止することを特徴とする。
このような発明によれば、複数の演算実行手段のうち一の演算実行手段の演算結果を他の演算実行手段にフォワーディングすることができる。また、フォワーディング機構によって演算実行手段にフォワーディングされる場合、フォワーディングされた演算結果がスカラレジスタに書き込まれることを禁止することができる。
このような発明によれば、複数の演算実行手段のうち一の演算実行手段の演算結果を他の演算実行手段にフォワーディングすることができる。また、フォワーディング機構によって演算実行手段にフォワーディングされる場合、フォワーディングされた演算結果がスカラレジスタに書き込まれることを禁止することができる。
このため、フォワーディングすることによってプロセッサの動作を高速化することができる。また、フォワーディング時に演算途中の演算結果がスカラレジスタに書き込まれることを禁止することによってプロセッサにおける無駄な動作によって電力が消費されることをなくすことができる。
また、このような発明によれば、レジスタファイル内でのフォワーディング、演算実行手段間でのフォワーディングのいずれにも対応してプロセッサにおける無駄な動作によって電力が消費されることをなくすことができる。
また、このような発明によれば、レジスタファイル内でのフォワーディング、演算実行手段間でのフォワーディングのいずれにも対応してプロセッサにおける無駄な動作によって電力が消費されることをなくすことができる。
また、このような発明によれば、既存の構成で発生する書込み許可信号及びフォワーディング指示信号を使って書込みを禁止することができる。このため、書込み禁止のために新たなハードウェアを追加する必要がなく、プロセッサの回路規模を大型化することがない。また、書込みを禁止するための構成が電力を消費して省電力化の効果を低下させず、充分な消費電力低減の効果を得ることができる。
以下、図を参照して本発明に係るプロセッサの実施形態1、実施形態2を説明する。なお、実施形態1、実施形態2では、本発明のプロセッサをいずれもパイプラインプロセッサとして構成した例である。以下、実施形態1、実施形態2では、このプロセッサをベクトルプロセッサと記すものとする。
(実施形態1)
図1は、本発明の実施形態1、実施形態2に共通の図であって、ベクトルプロセッサ全体を示している。図示したベクトルプロセッサは、複数のスカラレジスタを含むスカラレジスタ群105、複数のベクトルレジスタを含むベクトルレジスタ群107を有するレジスタファイル100を備えている。
(実施形態1)
図1は、本発明の実施形態1、実施形態2に共通の図であって、ベクトルプロセッサ全体を示している。図示したベクトルプロセッサは、複数のスカラレジスタを含むスカラレジスタ群105、複数のベクトルレジスタを含むベクトルレジスタ群107を有するレジスタファイル100を備えている。
また、ベクトルプロセッサは、ベクトルプロセッサで実行されるデータが記憶されている主記憶部103、主記憶部103とレジスタファイル100との間で命令をロード・ストアするロード・ストアユニット104、ロードされた命令をレジスタファイル100に含まれるレジスタを使って演算する複数の演算ユニット102a、102b、102c、102d、102eを含む演算ユニット群102、演算に使用されるレジスタや演算ユニットを選択する選択回路101を備えている。
なお、図1においては、演算ユニットは、各々レジスタファイル100に含まれるスカラレジスタに記憶されているデータとベクトルレジスタに記憶されているデータとを使って演算し、またスカラレジスタに書き込んでいる。
また、図1に示したベクトルプロセッサは、フォワーディング機構を有する。図中に示す実線Aは、レジスタファイル100内でフォワーディングを行う場合のデータの経路(フォワーディングパス)を模式的に示し、実線Bは、演算ユニット間でフォワーディングを行う場合のデータの経路を模式的に示している。実施形態1は、フォワーディング機構が、スカラレジスタに書き込まれたデータが続いて他の前記演算実行手段によって読み出されるベクトル命令がなされた場合にフォワーディングを実行する場合について説明するものである。
また、図1に示したベクトルプロセッサは、フォワーディング機構を有する。図中に示す実線Aは、レジスタファイル100内でフォワーディングを行う場合のデータの経路(フォワーディングパス)を模式的に示し、実線Bは、演算ユニット間でフォワーディングを行う場合のデータの経路を模式的に示している。実施形態1は、フォワーディング機構が、スカラレジスタに書き込まれたデータが続いて他の前記演算実行手段によって読み出されるベクトル命令がなされた場合にフォワーディングを実行する場合について説明するものである。
実施形態1では、このようなベクトルプロセッサが、従来技術でも例示した下記の演算を実行するものとする。
ADD(4) %SR0,%VR0,%SR0
1,SR0=VR0+SR0
2,SR0=VR1+SR0
3,SR0=VR2+SR0
4,SR0=VR3+SR0
なお、本明細書では、このような演算を、以降の説明のために演算1と記すものとする。演算1を実行する場合、演算ユニットは、ベクトルレジスタVR0に記憶されているデータとスカラレジスタ0に記憶されているデータとを加算する。そして、加算の結果得られた加算値をスカラレジスタ0に書き込む(SR0=VR0+SR0)。また、演算ユニットが、加算値の書込みに続いてスカラレジスタ0にアクセスして加算値を読み出し、ベクトルレジスタVR1に記憶されているデータと加算する(SR0=VR1+SR0)。
ADD(4) %SR0,%VR0,%SR0
1,SR0=VR0+SR0
2,SR0=VR1+SR0
3,SR0=VR2+SR0
4,SR0=VR3+SR0
なお、本明細書では、このような演算を、以降の説明のために演算1と記すものとする。演算1を実行する場合、演算ユニットは、ベクトルレジスタVR0に記憶されているデータとスカラレジスタ0に記憶されているデータとを加算する。そして、加算の結果得られた加算値をスカラレジスタ0に書き込む(SR0=VR0+SR0)。また、演算ユニットが、加算値の書込みに続いてスカラレジスタ0にアクセスして加算値を読み出し、ベクトルレジスタVR1に記憶されているデータと加算する(SR0=VR1+SR0)。
このとき、実施形態1のベクトルプロセッサでは、レジスタファイル0に対する書込み要求と読み出し要求とが同時になされたタイミングでVR0+SR0の値を読み出し、レジスタファイル100内でフォワーディングを実行する。フォワーディングが実行された場合、VR0+SR0の値をスカラレジスタに書き込む処理は、次に行われる演算VR1+SR0の実行に影響しないものとなる。このため、実施形態1では、以下の構成によって不要な書込みの動作を禁止している。
図2は、図1に示した構成のうち、不要な書込みの動作を禁止する構成を説明するための図であって、本発明の実施形態1、実施形態2に共通の図である。
図2に示した構成は、フォワーディング機構によって複数の演算ユニット102a〜102eのうち、1つの演算ユニットが演算ユニットにフォワーディングされる場合、フォワーディングされた演算結果がスカラレジスタに書き込まれることを禁止する書込禁止手段として機能する書込禁止部2である。
図2に示した構成は、フォワーディング機構によって複数の演算ユニット102a〜102eのうち、1つの演算ユニットが演算ユニットにフォワーディングされる場合、フォワーディングされた演算結果がスカラレジスタに書き込まれることを禁止する書込禁止手段として機能する書込禁止部2である。
書込禁止部2は、スカラレジスタSR0,SR1,SR2,SR3を含むスカラレジスタ群205、スカラレジスタ群のいずれかを選択するためのセレクタ回路203、フェッチされた命令(オペコード)をデコードするデコーダ201を備えている。
セレクタ回路203には演算ユニット102a〜102eの演算結果DA、DB、DC、DEが入力される。また、セレクタ回路203には、スカラレジスタSR0,SR1,SR2,SR3に書き込まれた演算結果が入力する。セレクタ回路203は、命令のオペコードにしたがって演算結果を選択し、選択された演算結果が書き込まれるべきスカラレジスタに出力する。信号WDは、スカラレジスタ群205のうち、選択されたスカラレジスタに出力される演算結果のデータである。
セレクタ回路203には演算ユニット102a〜102eの演算結果DA、DB、DC、DEが入力される。また、セレクタ回路203には、スカラレジスタSR0,SR1,SR2,SR3に書き込まれた演算結果が入力する。セレクタ回路203は、命令のオペコードにしたがって演算結果を選択し、選択された演算結果が書き込まれるべきスカラレジスタに出力する。信号WDは、スカラレジスタ群205のうち、選択されたスカラレジスタに出力される演算結果のデータである。
デコーダ201は、フェッチされた命令を解釈し、命令がベクトル命令であった場合にベクトル信号VIを出力する。実施形態1では、ベクトル命令によって演算1として示した演算が実行される。演算1に含まれる4つの演算では、1〜3の命令の実行時にスカラレジスタSR0に読み出しと書込みの要求がなされる。
ベクトル信号VIは、ベクトル命令が実行されている間highになり、命令がベクトル命令であることを示す。このようなベクトル信号VIは、後述するように、スカラレジスタにはベクトルプロセッサにフォワーディングを指示するフォワーディング指示信号となる。
ベクトル信号VIは、ベクトル命令が実行されている間highになり、命令がベクトル命令であることを示す。このようなベクトル信号VIは、後述するように、スカラレジスタにはベクトルプロセッサにフォワーディングを指示するフォワーディング指示信号となる。
また、図中に示す信号WEは、スカラレジスタへの書込みを許可するライト・イネーブル信号であって、スカラレジスタへ演算結果を書き込むタイミングを示している。書込禁止部2は、ベクトル信号VIと信号WEとを入力して1または0の信号を出力するNAND回路206を備えている。NAND回路206の出力信号は、いずれも各スカラレジスタに対して演算結果の書込みを許可する信号EN0、EN1、EN2、EN3となる。さらに、図中に示すは、信号FWは、レジスタ内でフォワーディングされたデータを示す。
図3は、以上述べた実施形態1のベクトルプロセッサの動作と、ベクトル信号VI、信号WE、信号ENとの関係とを示した図である。図3(a)は、実施形態1のベクトルプロセッサの動作タイミングを示し、(b)は各信号のオン、オフのタイミングを示している。図3(b)に示した信号CLKは、ベクトルプロセッサの動作タイミングの基準となるクロック信号である。
図示するように、実施形態1のベクトルプロセッサは、スカラレジスタSR0に書込みと読み出しの要求が同時に行われるステージを含む命令が実行される間、highを出力する。ベクトル信号がhighになったことにより、ベクトルプロセッサは、スカラレジスタファイル内でフォワーディングを行い、次の命令のデコードステージのソースにデータを供給する。
演算1の実行中、図3に示すように、ライトバックステージに対応してWE信号がオンになり、スカラレジスタへの書き込みが許可される。しかし、NAND回路206に1の値を持つ信号WEが入力された場合にも、ベクトル信号VIが1であればNAND回路206は0を出力し、スカラレジスタSR0への書き込みが行われない。
そして、図3に示すように、演算1のうち4つめの演算において、スカラレジスタSR0に対する読み込み要求がなされなくなる。このとき、フォワーディングの必要がなくなり、ベクトル信号VIがオフされ、信号WEがhighになったタイミングでNAND回路206から信号EN0がhighになる。信号EN0がhighになったことにより、スカラレジスタSR0に演算1の最終的な演算結果だけが書き込まれる。
そして、図3に示すように、演算1のうち4つめの演算において、スカラレジスタSR0に対する読み込み要求がなされなくなる。このとき、フォワーディングの必要がなくなり、ベクトル信号VIがオフされ、信号WEがhighになったタイミングでNAND回路206から信号EN0がhighになる。信号EN0がhighになったことにより、スカラレジスタSR0に演算1の最終的な演算結果だけが書き込まれる。
以上述べた動作において、スカラレジスタには、ベクトル信号VIが、ベクトルプロセッサの各ユニットにフォワーディングを指示するフォワーディング指示信号として機能している。
以上述べた実施形態1は、フォワーディングによってベクトルプロセッサの動作を高速化し、さらにベクトルプロセッサにおける無駄な動作によって電力が消費されることをなくすことができる。また、既存の構成で発生する信号WE及びフォワーディングを指示するベクトル信号VIを使って書込みを禁止することができる。このため、書込み禁止のために新たなハードウェアを追加する必要がなく、ベクトルプロセッサの回路規模を大型化することがない。また、書込みを禁止するための構成が電力を消費して省電力化の効果を低下させず、充分な消費電力低減の効果を得ることができる。
以上述べた実施形態1は、フォワーディングによってベクトルプロセッサの動作を高速化し、さらにベクトルプロセッサにおける無駄な動作によって電力が消費されることをなくすことができる。また、既存の構成で発生する信号WE及びフォワーディングを指示するベクトル信号VIを使って書込みを禁止することができる。このため、書込み禁止のために新たなハードウェアを追加する必要がなく、ベクトルプロセッサの回路規模を大型化することがない。また、書込みを禁止するための構成が電力を消費して省電力化の効果を低下させず、充分な消費電力低減の効果を得ることができる。
なお、以上述べた実施形態1において、ベクトル信号VIは、従来のベクトルプロセッサにおいてもベクトルプロセッサに含まれる複数のユニットに入力される信号である。また、信号WEも、従来のベクトルプロセッサにおいて使用されている既存の構成で発生する信号である。実施形態1は、このような既存の構成を使って実現できるので、フォワーディング時の書込みを禁止するにあたって新たな構成を追加する必要がなく、ベクトルプロセッサの回路規模が大きくなることがない。また、フォワーディング時の書込みを禁止するために消費電力の増大も起こらない。
(実施形態2)
次に、本発明の実施形態2について説明する。なお、実施形態2のベクトルプロセッサは、実施形態1のベクトルプロセッサと同様の構成を有するため、構成の図示を省くものとする。実施形態2は、フォワーディング機構が、複数の演算ユニット102a〜102eのうちの1つの演算ユニットの演算結果が他の演算ユニットに直接入力される命令がなされた場合にフォワーディングを実行する。このようなフォワーディングは、演算ユニット間で行われるものであって、レジスタファイルの内部でフォワーディングをした実施形態1のベクトルプロセッサとその動作において相違するものである。
次に、本発明の実施形態2について説明する。なお、実施形態2のベクトルプロセッサは、実施形態1のベクトルプロセッサと同様の構成を有するため、構成の図示を省くものとする。実施形態2は、フォワーディング機構が、複数の演算ユニット102a〜102eのうちの1つの演算ユニットの演算結果が他の演算ユニットに直接入力される命令がなされた場合にフォワーディングを実行する。このようなフォワーディングは、演算ユニット間で行われるものであって、レジスタファイルの内部でフォワーディングをした実施形態1のベクトルプロセッサとその動作において相違するものである。
図4(a)、(b)は、実施形態2のベクトルプロセッサの動作を説明するための図である。図4(a)は、実施形態2のベクトルプロセッサの動作タイミングを示し、(b)は各信号のオン、オフのタイミングを示している。図示するように、実施形態2は、演算ユニット間でフォワーディングをする場合にベクトル信号VIと信号WEとをNAND回路206に入力し、出力される信号によってスカラレジスタの書込みを制御する。このような制御によっても、演算1で最終的に得られる演算結果だけをスカラレジスタ0に書き込み、後の書込みを禁止することができる。
なお、以上述べた実施形態1、実施形態2は、いずれも1つのベクトル命令の実行時にフォワーディングをする構成について述べた。しかし、本発明は、このような構成に限定されるものではなく、ベクトル命令間でフォワーディングを行う場合にも演算の途中で行われる無駄な書込みを禁止することができる。
例えば、以下に示すベクトル命令間でフォワーディングする場合、本発明のベクトルプロセッサは、図5に示すように動作する。
MP(4) %SR0, %SR1, %VR1
ADD(4) %VR2, %VR3, %SR0
VR2={ SR1*VR11+VR31 , SR1*VR12+VR32 , SR1*VR13+VR33 , SR1*VR14+VR34 }
図5(a)は、上記した演算を実行する場合のベクトルプロセッサの動作タイミングを示し、(b)は各信号のオン、オフのタイミングを示している。図示した例では、最初のベクトル命令でスカラレジスタSR0に記憶されている値とベクトルレジスタVR1に記憶されている値とを乗算し、乗算の結果とベクトルレジスタVR3に記憶されている値とを加減算する。図5の例では、最初のベクトル命令で演算結果の格納先にスカラレジスタSR0を指定し、フォワーディング機構を用いて次のベクトル命令のソース2に出力している。このような場合、実施形態1、実施形態2と異なり、2番目のベクトル命令が発行されるためベクトル命令の最後のWBステージにおいてもレジスタの書き込みは行われない。
例えば、以下に示すベクトル命令間でフォワーディングする場合、本発明のベクトルプロセッサは、図5に示すように動作する。
MP(4) %SR0, %SR1, %VR1
ADD(4) %VR2, %VR3, %SR0
VR2={ SR1*VR11+VR31 , SR1*VR12+VR32 , SR1*VR13+VR33 , SR1*VR14+VR34 }
図5(a)は、上記した演算を実行する場合のベクトルプロセッサの動作タイミングを示し、(b)は各信号のオン、オフのタイミングを示している。図示した例では、最初のベクトル命令でスカラレジスタSR0に記憶されている値とベクトルレジスタVR1に記憶されている値とを乗算し、乗算の結果とベクトルレジスタVR3に記憶されている値とを加減算する。図5の例では、最初のベクトル命令で演算結果の格納先にスカラレジスタSR0を指定し、フォワーディング機構を用いて次のベクトル命令のソース2に出力している。このような場合、実施形態1、実施形態2と異なり、2番目のベクトル命令が発行されるためベクトル命令の最後のWBステージにおいてもレジスタの書き込みは行われない。
100 レジスタファイル、101 選択回路、102a,102b,102c,102d,102e 演算ユニット、103 主記憶部、104 ロード・ストアユニット、105 スカラレジスタ群、107 ベクトルレジスタ群、201 デコーダ、203 セレクタ回路、205 スカラレジスタ群、206 NAND回路
Claims (4)
- 命令をフェッチするフェッチ手段と、該フェッチ手段によってフェッチされた命令をデコードするデコード手段と、該デコード手段によってデコードされた命令に基づく演算を実行する複数の演算実行手段と、該演算実行手段によって実行された演算の演算結果が書き込まれるスカラレジスタを含むレジスタファイルとを備えたプロセッサであって、
前記複数の演算実行手段のうち一の演算実行手段の演算結果を他の演算実行手段にフォワーディングするフォワーディング機構と、
前記フォワーディング機構によって一の前記演算実行手段の演算結果が、他の前記演算実行手段にフォワーディングされる場合、フォワーディングされた演算結果がスカラレジスタに書き込まれることを禁止する書込禁止手段と、
を備えることを特徴とするプロセッサ。 - 前記フォワーディング機構は、スカラレジスタに書き込まれたデータが続いて他の前記演算実行手段によって読み出される命令がなされた場合にフォワーディングを実行することを特徴とする請求項1に記載のプロセッサ。
- 前記フォワーディング機構は、複数の前記演算実行手段のうちの一の前記演算実行手段の演算結果が他の前記演算実行手段に直接入力される命令がなされた場合にフォワーディングを実行することを特徴とする請求項1に記載のプロセッサ。
- 前記書込禁止手段は、前記スカラレジスタに対する書込みを許可する書込み許可信号と、前記フォワーディング機構にフォワーディングを指示するフォワーディング指示信号とを用いてフォワーディングされた演算結果がスカラレジスタに書き込まれることを禁止することを特徴とする請求項1から3のいずれか1項に記載のプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004330086A JP2006139644A (ja) | 2004-11-15 | 2004-11-15 | プロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004330086A JP2006139644A (ja) | 2004-11-15 | 2004-11-15 | プロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006139644A true JP2006139644A (ja) | 2006-06-01 |
Family
ID=36620421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004330086A Withdrawn JP2006139644A (ja) | 2004-11-15 | 2004-11-15 | プロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006139644A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009116458A (ja) * | 2007-11-02 | 2009-05-28 | Mitsubishi Electric Corp | 信号処理プロセッサ |
-
2004
- 2004-11-15 JP JP2004330086A patent/JP2006139644A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009116458A (ja) * | 2007-11-02 | 2009-05-28 | Mitsubishi Electric Corp | 信号処理プロセッサ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6304955B1 (en) | Method and apparatus for performing latency based hazard detection | |
KR100571322B1 (ko) | 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템 | |
JP5209933B2 (ja) | データ処理装置 | |
JP4996654B2 (ja) | プロセッサ | |
JP2008071130A (ja) | Simd型マイクロプロセッサ | |
JP4412905B2 (ja) | 低電力動作制御装置、およびプログラム最適化装置 | |
US8977837B2 (en) | Apparatus and method for early issue and recovery for a conditional load instruction having multiple outcomes | |
JP2009508180A (ja) | マイクロプロセッサにおける効率的なサブプログラムリターン | |
US20070260857A1 (en) | Electronic Circuit | |
JP2009169767A (ja) | パイプライン型プロセッサ | |
JP4607958B2 (ja) | プロセッサおよびプログラム変換装置 | |
JP4889235B2 (ja) | プログラム制御プロセッサ | |
JP4444305B2 (ja) | 半導体装置 | |
KR100636596B1 (ko) | 고에너지 효율 병렬 처리 데이터 패스 구조 | |
JP2008071061A (ja) | 情報処理装置 | |
JP2006139644A (ja) | プロセッサ | |
JP2007257349A (ja) | プロセッサ及びその処理方法 | |
JPH1091441A (ja) | プログラム実行方法およびその方法を利用した装置 | |
JP2010015298A (ja) | 情報処理装置及び命令フェッチ制御方法 | |
JP5644571B2 (ja) | プロセッサ | |
JP2009054032A (ja) | 並列プロセッサ | |
JP6340887B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP4703735B2 (ja) | コンパイラ、コード生成方法、コード生成プログラム | |
JP2005149297A (ja) | プロセッサおよびそのアセンブラ | |
JP2005134987A (ja) | パイプライン演算処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070403 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080205 |