(57)【特許請求の範囲】
【請求項１】
命令キャッシュと、
前記命令キャッシュへ入力される命令を解析し、その命令が予め指定された特定の命令
であるかどうかを示す命令解析情報を出力する命令解析手段と、
前記命令解析情報をその命令の前記命令キャッシュへの書き込み位置に対応させて記憶
する命令解析情報記憶手段と、
命令フェッチ部、命令デコード部および特定命令実行制御部を備え、前記命令キャッシ
ュからフェッチした命令のパイプライン処理を行うプロセッサコアとを有し、
前記プロセッサコアの前記特定命令実行制御部が、前記命令フェッチ部が前記命令キャ
ッシュから命令をフェッチするときに、その命令に対する前記命令解析情報を前記命令解
析情報記憶手段から読み出し、前記特定の命令としてＮＯＰ命令が指定されているときに
、前記命令解析情報記憶手段から読み出した前記命令解析情報が前記特定の命令であるこ
とを示しているときは、前記命令デコード部へデコード動作の停止を指示し、
前記命令キャッシュが、前記特定の命令としてＮＯＰ命令が指定されているときに、前
記命令解析手段から出力された前記命令解析情報が前記特定の命令であることを示してい
るときは、入力された命令の書き込み動作を行わないことを特徴とするマイクロプロセッ
サ。
【請求項２】
命令キャッシュと、
前記命令キャッシュへ入力される命令を解析し、その命令が予め指定された特定の命令
であるかどうかを示す命令解析情報を出力する命令解析手段と、
前記命令解析情報をその命令の前記命令キャッシュへの書き込み位置に対応させて記憶
する命令解析情報記憶手段と、
命令フェッチ部、命令デコード部および特定命令実行制御部を備え、前記命令キャッシ
ュからフェッチした命令のパイプライン処理を行うプロセッサコアとを有し、
前記プロセッサコアの前記特定命令実行制御部が、前記命令フェッチ部が前記命令キャ
ッシュから命令をフェッチするときに、その命令に対する前記命令解析情報を前記命令解
析情報記憶手段から読み出し、前記特定の命令としてＮＯＰ命令が指定されているときに
、前記命令解析情報記憶手段から読み出した前記命令解析情報が前記特定の命令であるこ
とを示しているときは、前記命令デコード部へデコード動作の停止を指示し、
前記プロセッサコアの前記特定命令実行制御部が、前記特定の命令としてＮＯＰ命令が
指定されているときに、前記命令フェッチ部のフェッチ動作に先立って前記命令解析情報
記憶手段からの前記命令解析情報の読み出しを行い、読み出した前記命令解析情報が前記
特定の命令であることを示しているときは、前記命令フェッチ部へフェッチ動作の停止を
指示し、
前記命令キャッシュが、前記特定の命令としてＮＯＰ命令が指定されているときに、前
記命令解析手段から出力された前記命令解析情報が前記特定の命令であることを示してい
るときは、入力された命令の書き込み動作を行わないことを特徴とするマイクロプロセッ
サ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサに関する。
【背景技術】
【０００２】
マイクロプロセッサの高速化の手法の１つとして、プロセッサコアにおける命令の処理を命令フェッチ、命令デコード、命令実行というようなステージに分け、それぞれのステージにおける処理を並列に処理する、パイプライン処理がある。
【０００３】
このようなパイプライン処理の効率的な実行には、各ステージの処理時間が均一である必要がある。そのため、メモリアクセス時間の短い命令キャッシュを設け、命令フェッチの高速化を図っている（例えば、特許文献１参照。）。
【０００４】
このような従来のマイクロプロセッサでは、命令をデコードしない限り、その命令がどのような命令であるかを判別することができない。そのため、ＮＯＰ（No  OPeration）命令のような何の処理も行う必要のない命令であっても、命令フェッチ、命令デコードまでの処理は実行されてしまう。その結果、命令フェッチ、命令デコードの各ステージで電力の消費が発生する。
【０００５】
このようなＮＯＰ命令の実行による電力消費が、特に、ＶＬＩＷ（Very  Long  Instruction  Word）方式のマイクロプロセッサでは、顕著に増加することがある。これは、ＶＬＩＷ方式のマイクロプロセッサが、複数の命令を１つの命令にまとめ、１つの命令として実行する方式であるため、同時実行される命令の数が規定数に達しない場合、不足部分がＮＯＰ命令で埋められ、ＮＯＰ命令の出現頻度が高くなるからである。
【０００６】
また、命令が無条件分岐命令であった場合、次の命令を命令キャッシュから読み出しても無効となるにも拘らず、パイプライン処理では、その無条件分岐命令をデコードしているときに、既に次の命令の命令フェッチを開始している。したがって、この場合も、命令フェッチステージの動作や、命令キャッシュへのアクセスで電力を消費してしまう。
【０００７】
このように、従来のマイクロプロセッサでは、命令の種類によっては無駄な電力を消費することがある、という問題があった。
【特許文献１】特開２００３−１６２４４６号公報  （第４−５ページ、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
そこで、本発明の目的は、特定の命令の実行時の消費電力を低減させることのできるマイクロプロセッサを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一態様によれば、命令キャッシュと、前記命令キャッシュへ入力される命令を
解析し、その命令が予め指定された特定の命令であるかどうかを示す命令解析情報を出力
する命令解析手段と、前記命令解析情報をその命令の前記命令キャッシュへの書き込み位
置に対応させて記憶する命令解析情報記憶手段と、命令フェッチ部、命令デコード部およ
び特定命令実行制御部を備え、前記命令キャッシュからフェッチした命令のパイプライン
処理を行うプロセッサコアとを有し、前記プロセッサコアの前記特定命令実行制御部が、
前記命令フェッチ部が前記命令キャッシュから命令をフェッチするときに、その命令に対
する前記命令解析情報を前記命令解析情報記憶手段から読み出し、前記特定の命令として
ＮＯＰ命令が指定されているときに、前記命令解析情報記憶手段から読み出した前記命令
解析情報が前記特定の命令であることを示しているときは、前記命令デコード部へデコー
ド動作の停止を指示し、前記命令キャッシュが、前記特定の命令としてＮＯＰ命令が指定
されているときに、前記命令解析手段から出力された前記命令解析情報が前記特定の命令
であることを示しているときは、入力された命令の書き込み動作を行わないことを特徴と
するマイクロプロセッサが提供される。
【発明の効果】
【００１０】
本発明によれば、特定の命令の実行時の消費電力を低減させることができる。
【発明を実施するための最良の形態】
【００１１】
図１は、本発明のマイクロプロセッサの実施の形態の例を示すブロック図である。
【００１２】
本実施の形態のマイクロプロセッサは、データ格納部１１およびタグ格納部１２を備える命令キャッシュ１と、命令キャッシュ１へ入力される命令を解析し、その命令が予め指定された特定の命令であるかどうかを示す命令解析情報を出力する命令解析部２と、命令キャッシュ１からフェッチした命令のパイプライン処理を行う命令フェッチ部３１、命令デコード部３２、命令実行部３３、および特定命令に対する実行を制御する特定命令実行制御部３４を備えるプロセッサコア３と、を有する。
【００１３】
命令解析部２は、予め指定された特定の命令を格納する特定命令格納部２１と、命令キャッシュ１へ入力される命令と特定命令格納部２１に格納された特定の命令とを比較し、その結果を命令解析情報として出力する比較部２２を有する。
【００１４】
この命令解析部２の比較部２２は、命令キャッシュ１へ入力される命令が、特定命令格納部３１に格納された特定の命令と一致するときは、命令解析情報として例えば‘１’を出力し、不一致のときは‘０’を出力する。
【００１５】
命令キャッシュ１は、タグ格納部１２内に命令解析情報記憶領域１３を有する。この命令解析情報記憶領域１３には、命令解析部２から出力される命令解析情報が、タグ格納部１２に格納される命令のタグデータと対になって、記憶される。
【００１６】
プロセッサコア３の特定命令実行制御部３４は、命令フェッチ部３１がフェッチ要求を出力して命令キャッシュ１から命令をフェッチするときに、その命令に対する命令解析情報を命令解析情報記憶領域１３から読み出し、その命令が上述の特定の命令であることを読み出した命令解析情報が示しているときは、命令フェッチ部３１および命令デコード部３２の動作を制御する。
【００１７】
以下、４つの命令を並列にパイプライン処理するＶＬＩＷ方式のマイクロプロセッサを例にとり、本発明の実施例を、図面を参照して説明する。
【実施例１】
【００１８】
図２は、本発明の実施例１のマイクロプロセッサの構成の例を示すブロック図である。
【００１９】
本実施例のマイクロプロセッサは、固定命令長のＶＬＩＷ方式のマイクロプロセッサであり、プロセッサコア３Ａに、４本のパイプラインＰ０、Ｐ１、Ｐ２、Ｐ３を備える。１つのパイプラインの命令は総て３２ｂｉｔ長であり、１サイクルの命令は１２８ｂｉｔ長である。
【００２０】
プロセッサコア３Ａは、命令フェッチ部３１と、パイプラインＰ０、Ｐ１、Ｐ２、Ｐ３ごとの、命令デコード部３２１、３２２、３２３、３２４、および命令実行部３３１、３３２、３３３、３３４を備える。
【００２１】
一般的に、固定命令長のＶＬＩＷ方式のマイクロプロセッサでは、命令コード中にＮＯＰ命令が出現する確率が高い。そこで、本実施例では、命令解析部２の特定命令格納部２１に格納する特定の命令をＮＯＰ命令としたときの例を示す。
【００２２】
命令解析部２の比較部２２は、命令キャッシュ１に入力される１サイクルの命令に対して、その命令に含まれる４つの命令のそれぞれごとに、特定命令格納部２１に格納された命令（すなわちＮＯＰ命令）であるかどうかを比較し、それぞれの命令ごとの比較結果を１ｂｉｔ（例えば、一致を‘１’、不一致を‘０’）で表す命令解析情報として出力する。
【００２３】
この命令解析情報は、タグ格納部１２内に設けた命令解析情報記憶領域１３に記憶される。
【００２４】
命令解析情報記憶領域１３のキャッシュ１ライン当たりのビット数は、（パイプラインの本数×キャッシュ１ラインに格納される命令数）で決定される。本実施例では、命令キャッシュ１の１ラインを１６ｂｙｔｅ＝１２８ｂｉｔとし、キャッシュ１ラインに１サイクル分の命令が１つ格納されるものとする。そのため、命令解析情報記憶領域１３のキャッシュ１ライン当たりのビット数は４となる。
【００２５】
図３に、このような本実施例におけるタグ格納部１２の構成の例を示す。
【００２６】
タグ格納部１２のタグごとに、４ビットの命令解析情報が記憶される命令解析情報記憶領域１３が設けられている。ここで、ｂｉｔ＿Ｐ０、ｂｉｔ＿Ｐ１、ｂｉｔ＿Ｐ２、ｂｉｔ＿Ｐ３は、それぞれ、パイプラインＰ０、Ｐ１、Ｐ２、Ｐ３へ入力される命令に対する命令解析情報を表す。
【００２７】
例えば、ｂｉｔ＿Ｐ０が‘１’であるときは、パイプラインＰ０へ入力される命令がＮＯＰ命令であることを表す。
【００２８】
図２に戻って、プロセッサコア３Ａの特定命令実行制御部３４は、命令フェッチ部３１がフェッチ要求を出力して命令キャッシュ１から命令をフェッチするときに、その命令に対する命令解析情報を命令解析情報記憶領域１３から読み出し、読み出した命令解析情報がＮＯＰ命令であるかどうかを解析する。その結果、命令解析情報がＮＯＰ命令であることを示しているときは、特定命令実行制御部３４は、その命令を処理する命令デコード部がデコード動作を行わないように制御する。
【００２９】
この特定命令実行制御部３４による制御のために、プロセッサコア３Ａには、命令フェッチ部３１から命令デコード部３２１、３２２、３２３、３２４への、命令の取り込みを停止する取り込み停止部３５１、３５２、３５３、３５４を設ける。
【００３０】
特定命令実行制御部３４は、命令解析情報がＮＯＰ命令であることを示している命令を処理するパイプラインの取り込み停止部に対して、停止信号を出力し、そのパイプラインの命令デコード部への命令（すなわち、ＮＯＰ命令）の取り込みを停止させる。
【００３１】
その結果、その命令デコード部はＮＯＰ命令をデコードしなくても済む。
【００３２】
また、このとき、デコードを行わない命令デコード部に代わって、命令実行部３３１、３３２、３３３、３３４へ、ＮＯＰ命令のデコード値３６１、３６２、３６３、３６４を入力するために、プロセッサコア３Ａには、選択部３７１、３７２、３７３、３７４を設ける。
【００３３】
特定命令実行制御部３４は、命令解析情報がＮＯＰ命令であることを示している命令を処理するパイプラインの選択部３７１、３７２、３７３、３７４に対して、命令デコード部３２１、３２２、３２３、３２４の出力の代わりにＮＯＰ命令のデコード値３６１、３６２、３６３、３６４を選択するよう、選択信号を出力する。
【００３４】
これにより、ＮＯＰ命令のデコードを行わなくても、命令実行部３３１、３３２、３３３、３３４には、ＮＯＰ命令のデコード値３６１、３６２、３６３、３６４が入力される。
【００３５】
このような本実施例によれば、命令キャッシュから命令をフェッチするときに、その命令に対する命令解析情報も命令キャッシュの命令解析情報記憶領域から読み出し、読み出した命令解析情報がＮＯＰ命令であるかどうかを解析する。その結果、フェッチした命令がＮＯＰ命令であるときは、命令デコード部への命令の取り込みを停止し、デコード動作を行わないようにすることができる。これにより、デコード動作による電力消費が削減され、ＮＯＰ命令実行時の電力消費を低減させることができる。
【実施例２】
【００３６】
図４は、本発明の実施例２のマイクロプロセッサの構成の例を示すブロック図である。
【００３７】
本実施例のマイクロプロセッサも、実施例１と同様、命令解析部２の特定命令格納部２１に格納する特定の命令をＮＯＰ命令とするマイクロプロセッサである。
【００３８】
本実施例では、実施例１のマイクロプロセッサの機能に加えて、命令キャッシュ１からフェッチしようとする命令がＮＯＰ命令であるときには、命令キャッシュ１のデータ格納部１１からのＮＯＰ命令データの読み出しを停止するようにする。
【００３９】
そのために、本実施例のプロセッサコア３Ｂの特定命令実行制御部３４は、命令フェッチ部３１がフェッチ要求を出したときに、命令キャッシュ１の命令解析情報記憶領域１３を先に読み出し、フェッチしようとする命令がＮＯＰ命令であることを命令解析情報が示しているときは、命令フェッチ部３１へ、命令キャッシュ１のデータ格納部１１からのＮＯＰ命令部分のデータの読み出しを停止するよう指示する。
【００４０】
このような本実施例によれば、命令キャッシュから命令をフェッチしようとするときに、その命令に対する命令解析情報を先に読み出し、読み出した命令解析情報がＮＯＰ命令であることを示しているときは、そのデータの命令キャッシュからの読み出しを停止させることができる。これにより、命令キャッシュからのデータの読み出しによる電力消費が削減され、ＮＯＰ命令実行時の電力消費をさらに低減させることができる。
【実施例３】
【００４１】
本発明の実施例３のマイクロプロセッサは、実施例１あるいは実施例２の命令キャッシュ１を、図５に示す命令キャッシュ１Ａに置換したものである。そこで、ここでは、この命令キャッシュ１Ａについてのみ説明する。
【００４２】
図５は、本実施例のマイクロプロセッサで用いる命令キャッシュ１Ａの構成の例を示すブロック図である。
【００４３】
命令キャッシュ１Ａは、図２および図４に示した命令キャッシュ１に、さらに書き込み禁止部１４を設けたものである。
【００４４】
書き込み禁止部１４は、命令解析部２から出力されている命令解析情報が、命令キャッシュ１Ａに入力される命令がＮＯＰ命令であることを示しているときは、その入力されるＮＯＰ命令のデータ格納部１１への書き込みを禁止する。
【００４５】
このような本実施例によれば、命令キャッシュへ入力される命令にＮＯＰ命令が含まれているときは、そのＮＯＰ命令のデータ格納部への書き込みを禁止することができる。これにより、命令キャッシュのデータ格納部への書き込みによる電力消費が削減され、ＮＯＰ命令が存在することによる電力消費をなお一層低減させることができる。
【実施例４】
【００４６】
図６は、本発明の実施例４のマイクロプロセッサの構成の例を示すブロック図である。
【００４７】
本実施例では、命令解析部２の特定命令格納部２１に格納された特定の命令が無条件分岐命令であるときのマイクロプロセッサの例を示す。
【００４８】
本実施例のマイクロプロセッサは、実施例１と同様の固定命令長のＶＬＩＷ方式のマイクロプロセッサであり、プロセッサコア３Ｃに、４本のパイプラインＰ０、Ｐ１、Ｐ２、Ｐ３を備える。
【００４９】
プロセッサコア３Ｃは、命令フェッチ部３１と、パイプラインＰ０、Ｐ１、Ｐ２、Ｐ３ごとの命令デコード部３２１、３２２、３２３、３２４および命令実行部３３１、３３２、３３３、３３４と、特定命令実行制御部３４と、を備える。
【００５０】
命令解析部２は、命令キャッシュ１へ入力される命令に無条件分岐命令が含まれるときは、そのことを示す命令解析情報を、命令キャッシュ１のタグ格納部１２の解析情報記憶領域１３へ書き込む。
【００５１】
命令解析情報記憶領域１３のキャッシュ１ライン当たりのビット数は、（分岐実行できるパイプラインの本数×キャッシュ１ラインに格納される命令数）で決定される。
【００５２】
殆どのＶＬＩＷ方式のマイクロプロセッサでは分岐実行できるパイプラインの本数は１であることが多い。本実施例でも分岐実行できるパイプラインの本数を１とする。
【００５３】
また、実施例１と同様、本実施例でも、命令キャッシュ１の１ラインを１６ｂｙｔｅ＝１２８ｂｉｔとし、キャッシュ１ラインに１サイクル分の命令が１つ格納されるものとする。そのため、命令解析情報記憶領域１３のキャッシュ１ライン当たりのビット数は１となる。
【００５４】
図７に、このような本実施例におけるタグ格納部１２の構成の例を示す。
【００５５】
本実施例では、タグ格納部１２のタグごとに、１ビットの命令解析情報が記憶される命令解析情報記憶領域１３が設けられている。
【００５６】
図６に戻って、本実施例のプロセッサコア３Ｃの特定命令実行制御部３４は、命令フェッチ部３１がフェッチ要求を出力して命令キャッシュ１から命令をフェッチするときに、その命令に対する命令解析情報を命令解析情報記憶領域１３から読み出し、読み出した命令解析情報が無条件分岐命令であるかどうかを解析する。その結果、命令解析情報が無条件分岐命令であることを示しているときは、特定命令実行制御部３４は、次の命令のフェッチを行わないように、フェッチ動作を制御する。
【００５７】
この特定命令実行制御部３４による制御を実行するために、プロセッサコア３Ｃには、フェッチ要求停止部３８を設ける。
【００５８】
特定命令実行制御部３４は、命令解析情報記憶領域１３から読み出した命令解析情報が無条件分岐命令であることを示しているときは、フェッチ要求停止部３８へ停止信号を出力し、命令フェッチ部３１から出力される次の命令のフェッチ要求を命令キャッシュ１へ出力しないようにする。
【００５９】
このような本実施例によれば、命令キャッシュから命令をフェッチするときに、その命令に対する命令解析情報も命令キャッシュの命令解析情報記憶領域から読み出し、読み出した命令解析情報が無条件分岐命令であることを示しているときは、次のサイクルの命令フェッチを停止させることができる。これにより、命令キャッシュへの余分なアクセスを減らすことができ、その分、消費電力を削減することができる。
【００６０】
なお、上述の各実施例では、特定命令格納部２１に格納される特定命令が１つである場合を例にとって示したが、特定命令格納部２１に複数の特定命令を格納するようにしてもよい。その場合、それぞれの特定命令に対する命令解析情報を命令解析情報記憶領域１３に記憶させ、特定命令実行制御部３４が、それぞれの特定命令に応じて命令フェッチ部３１および命令デコード部３２の動作を制御するようにすればよい。
【図面の簡単な説明】
【００６１】
【図１】本発明のマイクロプロセッサの実施の形態の例を示すブロック図。
【図２】本発明の実施例１に係るマイクロプロセッサの構成の例を示すブロック図。
【図３】実施例１の命令キャッシュのタグ格納部の構成の例を示すブロック図。
【図４】本発明の実施例２に係るマイクロプロセッサの構成の例を示すブロック図。
【図５】本発明の実施例３に係るマイクロプロセッサの命令キャッシュの構成の例を示すブロック図。
【図６】本発明の実施例４に係るマイクロプロセッサの構成の例を示すブロック図。
【図７】実施例４の命令キャッシュのタグ格納部の構成の例を示すブロック図。
【符号の説明】
【００６２】
１、１Ａ  命令キャッシュ
２  命令解析部
３、３Ａ、３Ｂ、３Ｃ  プロセッサコア
１１  データ格納部
１２  タグ格納部
１３  命令解析情報記憶領域
１４  書き込み禁止部
２１  特定命令格納部
２２  比較部
３１  命令フェッチ部
３２、３２１〜３２４  命令デコード部
３３、３３１〜３３４  命令実行部
３４  特定命令実行制御部
３５１〜３５４  取り込み停止部
３６１〜３６４  ＮＯＰ命令デコード値
３７１〜３７４  選択部
３８  フェッチ要求停止部
【図１】
0004864840.tif 000002
【図２】
0004864840.tif 000003
【図３】
0004864840.tif 000004
【図４】
0004864840.tif 000005
【図５】
0004864840.tif 000006
【図６】
0004864840.tif 000007
【図７】
0004864840.tif 000008