(57)【要約】【課題】キャッシュメモリを内蔵した半導体装置の電圧を可変制御して、消費電力をさらに抑制する。【解決手段】演算部と、１次キャッシュと、複数のキャッシュライン２５０を有する２次キャッシュ２５とを備えたキャッシュメモリと、１次キャッシュにキャッシュヒットしたとき及びキャッシュミスしたときに、それぞれ所定の演算を行うカウンタ回路３０とを備えた半導体装置である。２次キャッシュ２５の各キャッシュライン２５０は、それぞれのキャッシュライン２５０が供給を受ける電圧を決定する制御回路２５１と、それぞれのキャッシュラインに格納された内容の属性情報を記憶する属性記憶領域２５２とを有し、各制御部２５１は、自制御部と同じキャッシュライン２５０の属性記憶領域２５２及びカウンタ回路３０を参照して電圧を決定する。【選択図】図２
2008293060.tif 000002
【特許請求の範囲】
【請求項１】
演算部と、
前記演算部がアクセスするキャッシュメモリであって、前記演算部がアクセスする順位が高い高順位キャッシュと、複数のキャッシュラインを有し、前記高順位キャッシュよりも前記演算部がアクセスする順位が低い低順位キャッシュとを含むキャッシュメモリと、
前記高順位キャッシュにキャッシュヒットしたとき及びキャッシュミスしたときに、それぞれ所定の演算を行うカウンタと、を備え、
前記低順位キャッシュの各キャッシュラインは、それぞれのキャッシュラインが電源回路から供給を受ける電圧を決定する制御部と、それぞれのキャッシュラインに格納された内容の属性情報を記憶する属性記憶領域とを有し、
前記各制御部は、自制御部と同じキャッシュラインの属性記憶領域及び前記カウンタの演算結果に基づいて、前記供給を受ける電圧を決定する半導体装置。
【請求項２】
前記高順位キャッシュは、データキャッシュ及び命令キャッシュを備え、
前記カウンタは、前記データキャッシュにキャッシュヒットしたとき及びキャッシュミスしたときに、それぞれ所定の演算を行うデータカウンタを備え、
前記属性記憶領域に記憶される属性情報は、それぞれのキャッシュラインに格納された内容が命令の読み込みに関するものであるか、あるいはデータの読み込みに関するものであるかを示す属性情報であり、
前記各制御部は、自制御部と同じキャッシュラインの属性記憶領域の属性情報がデータの読み込みに関するものであるときに、前記データカウンタの演算結果に基づいて電圧を決定する請求項１記載の半導体装置。
【請求項３】
前記高順位キャッシュは、データキャッシュ及び命令キャッシュを備え、
前記カウンタは、前記命令キャッシュにキャッシュヒットしたとき及びキャッシュミスしたときに、それぞれ所定の演算を行う命令カウンタをさらに備え、
前記属性記憶領域に記憶される属性情報は、それぞれのキャッシュラインに格納された内容が命令の読み込みに関するものであるか、あるいはデータの読み込みに関するものであるかを示す属性情報であり、
前記各制御部は、自制御部と同じキャッシュラインの属性記憶領域の属性情報が命令の読み込みに関するものであるときに、前記命令カウンタの演算結果に基づいて電圧を決定する請求項１記載の半導体装置。
【請求項４】
前記各制御部は、
前記低順位キャッシュの各キャッシュラインに格納されている内容にアクセス可能な状態にする通常電圧、または、前記通常電圧よりも低い電圧であって、各キャッシュラインに格納されている内容を保持できるがアクセスはできない状態にする省電力電圧のいずれかの電圧にする請求項１〜３のいずれかに記載の半導体装置。
【請求項５】
前記データカウンタは、前記データキャッシュでキャッシュヒットすると所定数を加算し、キャッシュミスすると所定数を減算するようになっていて、
前記各制御部は、自制御部と同じキャッシュラインに対して前記演算部からのアクセス要求があれば、前記供給を受ける電圧を前記通常電圧にし、
自制御部と同じキャッシュラインの属性記憶領域の属性情報がデータの読み込みに関するものであり、かつ前記データカウンタの値が所定の閾値以上であれば、前記供給を受ける電圧を前記省電力電圧にする請求項４記載の半導体装置。
【請求項６】
前記命令カウンタは、前記命令キャッシュでキャッシュヒットすると所定数を加算し、キャッシュミスすると所定数を減算するようになっていて、
前記各制御部は、自制御部と同じキャッシュラインに対して前記演算部からのアクセス要求があれば、前記供給を受ける電圧を通常電圧にし、
自制御部と同じキャッシュラインの属性記憶領域の属性情報が命令の読み込みに関するものであり、かつ前記命令カウンタの値が所定の閾値以上であれば、前記供給を受ける電圧を省電力電圧にする請求項４記載の半導体装置。
【請求項７】
前記カウンタは、所定の時間を一周期として、その周期をカウントする周期カウンタをさらに備え、
前記各制御部は、前記周期カウンタが一周期が経過したことを検出すると、前記供給を受ける電圧を省電力電圧にする請求項１〜６のいずれかに記載の半導体装置。
【請求項８】
演算部と、前記演算部がアクセスするキャッシュメモリであって、前記演算部がアクセスする順位が高い高順位キャッシュと、複数のキャッシュラインを有し、前記高順位キャッシュよりも前記演算部がアクセスする順位が低い低順位キャッシュとを含むキャッシュメモリとを備えた半導体装置において、
カウンタが、前記高順位キャッシュにキャッシュヒットしたとき及びキャッシュミスしたときに、それぞれ所定の演算を行い、
前記低順位キャッシュの各キャッシュラインに設けられた制御部が、自制御部と同じキャッシュラインに格納された内容の属性情報及び前記カウンタの演算結果に基づいて、電源回路から供給を受ける電圧を決定する半導体装置の電圧の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリを内蔵した半導体装置の電圧を可変制御する技術に関する。
【背景技術】
【０００２】
近年、マイクロプロセッサの高性能化及び高機能化に伴って、マイクロプロセッサが消費する電力が増大している。そのため、マイクロプロセッサの設計における大きな課題の一つが、省電力化である。
【０００３】
消費電力が増大している原因の一つとして、マイクロプロセッサの高速化のために内蔵されたキャッシュメモリにおけるリーク電流が挙げられる。
【０００４】
このリーク電流を減少させるための技術として、Ｄｒｏｗｓｙキャッシュが提唱されている（例えば、非特許文献１、２）。Ｄｒｏｗｓｙキャッシュでは、電圧を下げてリーク電流を抑制する代わりに、キャッシュメモリ内の値を保持できるが、アクセスはできない「省電力モード」と、通常のアクセス可能な「通常モード」とを切り替える。
【０００５】
また、演算処理及び主記憶とのデータ転送処理の負荷に応じて電圧及びクロック周波数を変更する半導体装置が特許文献１に記載されている。
【特許文献１】特開２００５−１９６４３０号公報
【非特許文献１】Nam Sung Kim、他３名、”Drowsy instruction caches.Leakage power reduction using dynamic voltage scaling and cache sub-bankprediction”、（米国）、Proceedings. 35th Annual IEEE/ACMInternational Symposium on Microarchitecture, 2002. (MICRO-35), 2002, p219- 230,参考ＷＥＢページ：http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1176252
【非特許文献２】Krisztian Flautner、他４名、”Drowsy caches: simple techniques forreducing leakage power”、（米国）、Proceedings. 29th Annual InternationalSymposium on Computer Architecture, 2002, p.148-157、参考WEBページ：http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1003572
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、Ｄｒｏｗｓｙキャッシュでは、通常モードになったキャッシュメモリを一定の周期が経過するごとに、省電力モードへ切り替える。つまり、キャッシュメモリに対してどの程度アクセスが生じるかとは無関係に、一定の周期が経過するまでは通常モードが維持され、その一定周期が経過すると省電力モードへ切り替わる。そのため、必ずしも最適な省電力効果を得ることができなかった。
【０００７】
そこで、本発明の目的は、キャッシュメモリを内蔵した半導体装置の電圧を可変制御して、消費電力をさらに抑制することである。
【課題を解決するための手段】
【０００８】
本発明の一実施態様に従う半導体装置は、演算部と、前記演算部がアクセスするキャッシュメモリであって、前記演算部がアクセスする順位が高い高順位キャッシュと、複数のキャッシュラインを有し、前記高順位キャッシュよりも前記演算部がアクセスする順位が低い低順位キャッシュとを含むキャッシュメモリと、前記高順位キャッシュにキャッシュヒットしたとき及びキャッシュミスしたときに、それぞれ所定の演算を行うカウンタと、を備え、前記低順位キャッシュの各キャッシュラインは、それぞれのキャッシュラインが電源回路から供給を受ける電圧を決定する制御部と、それぞれのキャッシュラインに格納された内容の属性情報を記憶する属性記憶領域とを有し、前記各制御部は、自制御部と同じキャッシュラインの属性記憶領域及び前記カウンタの演算結果に基づいて、前記供給を受ける電圧を決定する。
【０００９】
好適な実施形態では、前記高順位キャッシュは、データキャッシュ及び命令キャッシュを備え、前記カウンタは、前記データキャッシュにキャッシュヒットしたとき及びキャッシュミスしたときに、それぞれ所定の演算を行うデータカウンタを備え、前記属性記憶領域に記憶される属性情報は、それぞれのキャッシュラインに格納された内容が命令の読み込みに関するものであるか、あるいはデータの読み込みに関するものであるかを示す属性情報であり、前記各制御部は、自制御部と同じキャッシュラインの属性記憶領域の属性情報がデータの読み込みに関するものであるときに、前記データカウンタの演算結果に基づいて電圧を決定するようにしてもよい。
【００１０】
好適な実施形態では、前記高順位キャッシュは、データキャッシュ及び命令キャッシュを備え、前記カウンタは、前記命令キャッシュにキャッシュヒットしたとき及びキャッシュミスしたときに、それぞれ所定の演算を行う命令カウンタをさらに備え、前記属性記憶領域に記憶される属性情報は、それぞれのキャッシュラインに格納された内容が命令の読み込みに関するものであるか、あるいはデータの読み込みに関するものであるかを示す属性情報であり、前記各制御部は、自制御部と同じキャッシュラインの属性記憶領域の属性情報が命令の読み込みに関するものであるときに、前記命令カウンタの演算結果に基づいて電圧を決定するようにしてもよい。
【００１１】
好適な実施形態では、前記各制御部は、前記低順位キャッシュの各キャッシュラインに格納されている内容にアクセス可能な状態にする通常電圧、または、前記通常電圧よりも低い電圧であって、各キャッシュラインに格納されている内容を保持できるがアクセスはできない状態にする省電力電圧のいずれかの電圧にすることができる。
【００１２】
好適な実施形態では、前記データカウンタは、前記データキャッシュでキャッシュヒットすると所定数を加算し、キャッシュミスすると所定数を減算するようになっていて、前記各制御部は、自制御部と同じキャッシュラインに対して前記演算部からのアクセス要求があれば、前記供給を受ける電圧を前記通常電圧にし、自制御部と同じキャッシュラインの属性記憶領域の属性情報がデータの読み込みに関するものであり、かつ前記データカウンタの値が所定の閾値以上であれば、前記供給を受ける電圧を前記省電力電圧にするようにしてもよい。
【００１３】
好適な実施形態では、前記命令カウンタは、前記命令キャッシュでキャッシュヒットすると所定数を加算し、キャッシュミスすると所定数を減算するようになっていて、前記各制御部は、自制御部と同じキャッシュラインに対して前記演算部からのアクセス要求があれば、前記供給を受ける電圧を通常電圧にし、自制御部と同じキャッシュラインの属性記憶領域の属性情報が命令の読み込みに関するものであり、かつ前記命令カウンタの値が所定の閾値以上であれば、前記供給を受ける電圧を省電力電圧にすることもできる。
【００１４】
好適な実施形態では、所定の時間を一周期として、その周期をカウントする周期カウンタをさらに備え、前記各制御部は、前記周期カウンタが一周期が経過したことを検出すると、前記供給を受ける電圧を省電力電圧にするようにしてもよい。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の一実施形態に係る半導体装置により実現されたキャッシュ内蔵型プロセッサについて、図面を参照して説明する。
【００１６】
図１は、本実施形態に係るキャッシュ内蔵型プロセッサの構成図である。
【００１７】
同図に示すように、キャッシュ内蔵型プロセッサ（以下、単にプロセッサと称する）１は、演算部１０と、メインメモリ５から読み出したデータまたは命令に関する内容を一時的に蓄積するキャッシュメモリ２０と、カウンタ回路３０とを有する。プロセッサ１は、電源回路７から電力の供給を受ける。
【００１８】
キャッシュメモリ２０は、演算部１０がアクセスする優先順位が高い高順位キャッシュと、高順位キャッシュよりも演算部１０がアクセスする優先順位が低い低順位キャッシュとを含む。本実施形態では、演算部１０によってまずアクセスされる１次キャッシュ２１と、１次キャッシュ２１でキャッシュミスが生じると演算部１０によってアクセスされる２次キャッシュ２５とを含む。３次以降のキャッシュを含むときは、高次のキャッシュでキャッシュミスが起きると、順次低順位のキャッシュがアクセスされる。１次キャッシュ２１は、２次キャッシュ２５と比較すると小容量でアクセス速度が高速である。２次キャッシュ２５は、１次キャッシュ２１と比較すると大容量でアクセス速度は低速である。キャッシュメモリ２０には使用頻度の高い内容が記憶されるが、より高次のキャッシュにより使用頻度の高い内容が記憶されるようにしてもよい。
【００１９】
１次キャッシュ２１は、さらに、データの読み込みに関する内容を格納するデータキャッシュ２１１と、命令の読み込みに関する内容を格納する命令キャッシュ２１２とを含む。
【００２０】
演算部１０は、データの読み込みを行うときは、データキャッシュ２１１、２次キャッシュ２５、メインメモリ５の順にアクセスして所望の内容を読み出す。つまり、演算部１０は、まずデータキャッシュ２１１にアクセスして、キャッシュミスしたときに２次キャッシュ２５へアクセスし、２次キャッシュ２５へアクセスしてさらにキャッシュミスしたときにメインメモリ５へアクセスする。
【００２１】
命令の読み込みを行うときも同様に、演算部１０は、命令キャッシュ２１２、２次キャッシュ２５、メインメモリ５の順にアクセスして所望の内容を読み出す。つまり、演算部１０は、まず命令キャッシュ２１２にアクセスして、キャッシュミスしたときに２次キャッシュ２５へアクセスし、２次キャッシュ２５へアクセスしてさらにキャッシュミスしたときにメインメモリ５へアクセスする。
【００２２】
カウンタ回路３０は、データカウンタ回路３１と、命令カウンタ回路３２と、周期カウンタ回路３３とを備える。
【００２３】
データカウンタ回路３１は、データキャッシュ２１１にキャッシュヒットしたとき及びキャッシュミスしたときに、それぞれ所定の演算を行う。例えば、データカウンタ回路３１は、データキャッシュ２１１にキャッシュヒットしたときに所定数ａを加算（例えば１加算）し、キャッシュミスしたときに所定数ｂを減算（例えば１減算）するようにしてもよい。上記ａ，ｂは、同数でもよいし異なる数でもよい。データカウンタ回路３１の値が、予め定めた所定の閾値を超えているときは、その旨を示す信号を出力する。
【００２４】
命令カウンタ回路３２は、同様に、命令キャッシュ２１２にキャッシュヒットしたとき及びキャッシュミスしたときに、それぞれ所定の演算を行う。例えば、命令カウンタ回路３２は、命令キャッシュ２１２にキャッシュヒットしたときに所定数ｃを加算（例えば１加算）し、キャッシュミスしたときに所定数ｄを減算（例えば１減算）するようにしてもよい。上記ｃ，ｄは、同数でもよいし異なる数でもよい。命令カウンタ回路３２の値が、予め定めた所定の閾値を超えているときは、その旨を示す信号を出力する。
【００２５】
周期カウンタ回路３３は、所定の時間を一周期として、その周期をカウントする。例えば、周期カウンタ回路３３は、所定クロックサイクル数を一周期としてカウントする。周期カウンタ回路３３は、所定クロックサイクル数をカウントするごとに、一周期の経過を示す信号を出力する。
【００２６】
図２は、２次キャッシュ２５の詳細な構成を示す。
【００２７】
２次キャッシュ２５は、複数のキャッシュライン２５０を有している。以下に説明するキャッシュライン２５０の構成は、すべてのキャッシュライン２５０に共通である。
【００２８】
キャッシュライン２５０は、制御回路２５１と、属性記憶領域２５２と、データの読み込みに関する内容または命令の読み込みに関する内容を記憶する内容記憶領域２５３とを備える。
【００２９】
属性記憶領域２５２は、内容記憶領域２５３に格納された内容の属性情報を記憶する。属性情報は、例えば、内容記憶領域２５３に格納された内容が命令の読み込みに関するものであるか、あるいはデータの読み込みに関するものであるかを示す。属性記憶領域２５２は、例えば１ビットで構成されていて、内容記憶領域２５３に格納された内容がデータの読み込みに関するものであるとき「０」、命令の読み込みに関するものであるときに「１」としてもよい。
【００３０】
また、各キャッシュライン２５０は、キャッシュラインにアクセスした後、所定の時間（例えば１μｓ）が経過するまでは「０」、経過したあとは「１」とするタイマービットの記憶領域２５４を有していてもよい。このタイマービットは、所定の周期で信号を発する回路の出力を検出したときに「１」としてもよい。
【００３１】
本実施形態の２次キャッシュ２５は、リーク電流を減少させて省電力化するために、電源回路７から供給を受ける電圧が可変となっている。特に、本実施形態では、キャッシュライン２５０ごとに、電圧を変更することが可能である。各キャッシュライン２５０が電源回路７から供給を受ける電圧は、それぞれのキャッシュライン２５０に設けられた制御回路２５１が以下のようにして可変制御する。
【００３２】
制御回路２５１は、自身のキャッシュライン２５０が電源回路７から供給を受ける電圧を決定する。例えば、制御回路２５１は、電源回路７から互いに異なる２種類の電圧の供給を受けている。すなわち、制御回路２５１には、内容記憶領域２５３に格納されている内容を読み書き可能な状態にする通常電圧Ｖ１、及び通常電圧Ｖ１よりも低い電圧であって、内容記憶領域２５３に格納されている内容を保持できるが読み書きはできない状態にしてリーク電流を減らす省電力電圧Ｖ２が供給されている。以下、通常電圧Ｖ１が供給されているときを通常モード、省電力電圧Ｖ２が供給されているときを省電力モードと呼ぶ。
【００３３】
制御回路２５１は、属性記憶領域２５２及びカウンタ３を参照して、通常電圧Ｖ１または省電力電圧Ｖ２のいずれかを選択して内容記憶領域２５３へ供給する。
【００３４】
例えば、制御回路２５１は、演算部１０からのアクセスを受けると、そのときの電圧が省電力電圧Ｖ２であれば通常電圧Ｖ１へ切り替える。これにより、演算部１０が内容記憶領域２５３の内容を読み書きできるようになる。
【００３５】
制御回路２５１は、周期カウンタ回路３３から一周期の経過を示す信号の入力があると、省電力電圧Ｖ２を選択する。つまり、周期カウンタ回路３３から一周期の経過を示す信号の入力があったときの電圧が通常電圧Ｖ１であれば、制御回路２５１は、省電力電圧Ｖ２に切り替える。一方、周期カウンタ回路３３から一周期の経過を示す信号の入力があったときに、既に省電力電圧Ｖ２を出力しているときは、制御回路２５１は、そのままの状態を維持する。これは、いわゆるＤｒｏｗｓｙキャッシュと同じ電圧制御である。
【００３６】
また、制御回路２５１は、属性記憶領域２５２の属性情報がデータの読み込みに関するものであることを示す「０」のとき、データカウンタ回路３１を参照して電圧を選択するようにしてもよい。例えば、データカウンタ回路３１が所定の閾値を超えていることを示す信号を出力しているときは、制御回路２５１は省電力電圧Ｖ２を選択する。一方、データカウンタ回路３１が所定の閾値を超えていることを示す信号を出力していないときは、制御回路２５１は通常電圧Ｖ１を選択する。
【００３７】
同様に、制御回路２５１は、自身のキャッシュライン２５０の属性記憶領域２５２の属性情報が命令の読み込みに関するものであることを示す「１」のときには、命令カウンタ回路３２を参照して電圧を選択するようにしてもよい。例えば、命令カウンタ回路３２が所定の閾値を超えていることを示す信号を出力しているときは、制御回路２５１は省電力電圧Ｖ２を選択する。一方、命令カウンタ回路３２が所定の閾値を超えていることを示す信号を出力していないときは、制御回路２５１は通常電圧Ｖ１を選択する。
【００３８】
なお、各キャッシュライン２５０にタイマービットの記憶領域２５４が設けられているときは、制御回路２５１は、上述したデータカウンタ回路３１及び命令カウンタ回路３２による判定に加えて、タイマービットが前回のアクセスから所定時間の経過を示す「１」であるときに省電力電圧Ｖ２を選択するようにしてもよい。
【００３９】
これにより、１次キャッシュ２１でヒットすることが多く、２次キャッシュにアクセスされることが少ないときは、２次キャッシュを省電力モードとしている。これにより、性能にあまり影響を与えないようにしつつ、リーク電流を減らして省電力化を実現することができる。特に、本実施形態では、１次キャッシュ２１へのヒット状況に応じた２次キャッシュ２５の電圧制御を、上述したように、データの読み込みの場合と命令の読み込みの場合とで分離している。これは、多くのプログラムにはデータの読み込みが集中する部分と、命令の読み込みが集中する部分とが存在するので、このようにデータの読み込みの場合と命令の読み込みの場合とを分離することにより、省電力効果をより大きくすることができるからである。
【００４０】
なお、制御回路２５１は、周期カウンタ回路３３の出力のみを用いた電圧制御を行うこともできる。この場合、従来のＤｒｏｗｓｙキャッシュと同じである。さらに、制御回路２５１は、周期カウンタ回路３３とデータカウンタ回路３１または命令カウンタ回路３２の２出力を用いた電圧制御を行うこともできるし、周期カウンタ回路３３、データカウンタ回路３１及び命令カウンタ回路３２の３出力を用いた電圧制御を行うこともできる。
【００４１】
また、上述の実施形態では、各キャッシュラインがそれぞれ制御回路を有していて、各制御回路は自らが配置されているキャッシュラインの電圧制御を行っているが、複数のキャッシュラインに対して一つの制御回路が配置するようにしてもよい。このとき、一つの制御回路が複数のキャッシュライン（キャッシュライン群）の電圧制御を行う。
【００４２】
次に、図３は、制御回路２５１の処理手順を示すフローチャートである。
【００４３】
制御回路２５１は、１クロックサイクルごと、所定のクロックサイクルごと、または、任意のタイミングで同図の処理を実行することができる。また、制御回路２５１は、この処理を実行するタイミングが訪れたときに、その時点で出力している電圧が通常電圧Ｖ１のときにだけこの処理を実行し、省電力電圧Ｖ２であるときは実行しないようにしてもよい。
【００４４】
以下、省電力電圧Ｖ２が選択されているときに、周期カウンタ回路３３、データカウンタ回路３１及び命令カウンタ回路３２の３出力に基づいて制御回路２５１が同図に示す処理を実行するときの手順を説明する。
【００４５】
制御回路２５１は、まず、周期カウンタ回路３３が一周期の経過を示す信号を出力したか否かを判定する（Ｓ１１）。
【００４６】
周期カウンタ回路３３が一周期の経過を示す信号を出力したときは（Ｓ１１：Ｙｅｓ）、制御回路２５１は、電源回路７から供給を受ける電圧を、通常電圧Ｖ１から省電力電圧Ｖ２へ切り替えて、省電力モードへ移行する（Ｓ１２）。
【００４７】
一方、周期カウンタ回路３３が一周期の経過を示す信号を出力していないときは（Ｓ１１：Ｎｏ）、制御回路２５１が属性記憶領域２５２に記憶されている属性情報を判定する（Ｓ１３）。
【００４８】
このとき、属性記憶領域２５２の属性情報がデータの読み込みに関するものであるときは、制御回路２５１は、データカウンタ回路３１の出力を判定する（Ｓ１４）。
【００４９】
そして、データカウンタ回路３１が所定の閾値を超えていることを示す信号を出力していなければ（Ｓ１４：閾値以下）、制御回路２５１は、通常電圧Ｖ１をそのまま維持して、通常モードを保持する（Ｓ１５）。一方、データカウンタ回路３１が所定の閾値を超えていることを示す信号を出力していれば（Ｓ１４：閾値超）、制御回路２５１は、省電力電圧Ｖ２に切り替えて、省電力モードへ移行する（Ｓ１６）。
【００５０】
また、ステップＳ１３で、属性記憶領域２５２の属性情報が命令の読み込みに関するものであるときは、制御回路２５１は、命令カウンタ回路３２の出力を判定する（Ｓ１７）。
【００５１】
そして、命令カウンタ回路３２が所定の閾値を超えていることを示す信号を出力していなければ（Ｓ１７：閾値以下）、制御回路２５１は、通常電圧Ｖ１をそのまま維持して、通常モードを保持する（Ｓ１８）。一方、命令カウンタ回路３２が所定の閾値を超えていることを示す信号を出力していれば（Ｓ１７：閾値超）、制御回路２５１は、省電力電圧Ｖ２に切り替えて、省電力モードへ移行する（Ｓ１９）。
【００５２】
なお、制御回路２５１が、周期カウンタ回路３３及びデータカウンタ回路３１の出力に基づいて処理を実行するときは、ステップＳ１３において、属性記憶領域２５２の属性情報が命令の読み込みに関するものであれば、ステップＳ１７〜Ｓ１９を行わずに終了する。
【００５３】
次に、上述したプロセッサ１の性能を評価するために、Ｍｉｂｅｎｃｈを改造したベンチマークプログラムを実行して行ったベンチマークテストの結果を表１に示す。
【００５４】
【表１】
2008293060.tif 000003
【００５５】
ここでは、以下の（１）〜（４）の４種類の電圧制御パターンについてベンチマークテストを行った。
（１）可変電圧制御なし（常時通常電圧）
（２）周期カウンタ回路３３のみによる可変電圧制御（Ｄｒｏｗｓｙキャッシュ)
（３）周期カウンタ回路３３及びデータカウンタ回路３１による可変電圧制御
（４）周期カウンタ回路３３、データカウンタ回路３１及び命令カウンタ回路３２による可変電圧制御。
【００５６】
各電圧制御パターンによってベンチマークプログラムを実行したときに、それぞれの実行に要したクロックサイクル数をカウントした（Ａ）。
【００５７】
そして、（１）の可変電圧制御を行わない場合に要したクロックサイクル数を基準として、（２）〜（４）のそれぞれの場合の処理性能を算出した（Ｂ）。
【００５８】
これによると、（１）に対して、（２）「Ｄｒｏｗｓｙキャッシュ」では９６．２％、（３）「周期カウンタ回路３３及びデータカウンタ回路３１による可変電圧制御」では、９６．１％、（４）「周期カウンタ回路３３、データカウンタ回路３１及び命令カウンタ回路３２による可変電圧制御」では９５．３％の処理性能を有していることがわかる。特に、（３）及び（４）の電圧制御パターンでは、（２）の「Ｄｒｏｗｓｙキャッシュ」に対してほとんど性能の低下が見られないことがわかる。
【００５９】
また、各電圧制御パターンによるベンチマークプログラムの実行が完了するまでの間に、通常電圧Ｖ１が供給されているキャッシュライン２５０の延べ数を算出した（Ｃ）。通常電圧Ｖ１が供給されているキャッシュライン２５０の延べ数が減少すれば、２次キャッシュ２５からのリーク電流も確実に減少する。
【００６０】
これによると、（２）〜（４）のいずれの場合でも、（１）の「可変電圧制御なし」に対しては極めて大きな省電力効果があることがわかる。さらに、（３）及び（４）の電圧制御パターンと（２）の「Ｄｒｏｗｓｙキャッシュ」とを比較すると、上述したように性能の劣化はほとんどない一方で、通常電圧Ｖ１が供給されているキャッシュライン２５０の延べ数（Ｃ）は、（３）「周期カウンタ回路３３及びデータカウンタ回路３１による可変電圧制御」で３０％以上、（４）「周期カウンタ回路３３、データカウンタ回路３１及び命令カウンタ回路３２による可変電圧制御」で７５％以上の減少が見られる。従って、（３）及び（４）の電圧制御パターンでは、Ｄｒｏｗｓｙキャッシュと比較しても、非常に大きな省電力効果を得ることができる。
【００６１】
以上説明したように、２次キャッシュの電圧制御をきめ細かく行うことにより、性能に与える影響を抑制しつつも、非常に大きな省電力効果を得ることができる。
【００６２】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【００６３】
例えば、上記実施形態では、１次キャッシュ及び２次キャッシュに本発明を適用した例について説明したが、一般に、高順位キャッシュと低順位キャッシュとの間に本発明を適用することもできる。例えば、２次キャッシュが上記実施形態の１次キャッシュ同様にデータキャッシュと命令キャッシュとに別れ、３次キャッシュが上記実施形態の２次キャッシュと同等の構成を有していて、かつ、データ及び命令カウンタ回路が２次キャッシュへのキャッシュヒット及びミスをカウントする場合には、２次キャッシュと３次キャッシュの間に本発明を適用することが可能である。４次以降のキャッシュについても同様である。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施形態に係るキャッシュ内蔵型プロセッサの構成図である。
【図２】２次キャッシュ２５の詳細な構成を示す図である。
【図３】制御回路２５１の処理手順を示すフローチャートである。
【符号の説明】
【００６５】
１      プロセッサ
３      カウンタ
５      メインメモリ
７      電源回路
１０    演算部
２０    キャッシュメモリ
２１    １次キャッシュ
２５    ２次キャッシュ
３０    カウンタ回路
３１    データカウンタ回路
３２    命令カウンタ回路
３３    周期カウンタ回路
２１１  データキャッシュ
２１２  命令キャッシュ
２５０  キャッシュライン
２５１  制御回路
２５２  属性記憶領域
２５３  内容記憶領域
【図１】
2008293060.tif 000004
【図２】
2008293060.tif 000005
【図３】
2008293060.tif 000006