(57)【特許請求の範囲】
【請求項１】
データを処理する処理装置と、
複数の前記データを記憶する主記憶装置と、
前記主記憶装置に記憶された複数の前記データの一部を記憶するキャッシュメモリと、
電力を供給する電源部と、を備えた制御システムであって、
前記キャッシュメモリは、セットアソシアティブ方式のキャッシュメモリであり、
前記キャッシュメモリは、前記データが格納されるメモリ領域を有し、
前記メモリ領域は、第１ウェイに割り当てられた第１メモリ領域と、第２ウェイに割り当てられた第２メモリ領域とを有し、
前記第１メモリ領域は、書き戻しが必要なデータを格納可能であり、
前記第２メモリ領域は、書き戻しが必要なデータを格納可能であり、
前記キャッシュメモリに対する前記電源部からの電力供給は、前記第１メモリ領域、前記第２メモリ領域ごとに行われ、
前記第２メモリ領域の所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要ではない前記データであり、前記第１メモリ領域の前記所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要ではない前記データから、前記主記憶装置への書き戻しが必要な前記データになった場合は、前記第１メモリ領域の前記所定のエントリに格納された前記データと、前記第２メモリ領域の前記所定のエントリに格納された前記データとを入れ替える入替部をさらに備える、
制御システム。
【請求項２】
データを処理する処理装置と、
複数の前記データを記憶する主記憶装置と、
前記主記憶装置に記憶された複数の前記データの一部を記憶するキャッシュメモリと、
電力を供給する電源部と、を備えた制御システムであって、
前記キャッシュメモリは、セットアソシアティブ方式のキャッシュメモリであり、
前記キャッシュメモリは、前記データが格納されるメモリ領域を有し、
前記メモリ領域は、第１ウェイに割り当てられた第１メモリ領域と、第２ウェイに割り当てられた第２メモリ領域とを有し、
前記キャッシュメモリに対する前記電源部からの電力供給は、前記第１メモリ領域、前記第２メモリ領域ごとに行われ、
前記第１メモリ領域の所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要な前記データであり、前記第２メモリ領域の前記所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要な前記データから、前記主記憶装置への書き戻しが必要ではない前記データになった場合は、前記第１メモリ領域の前記所定のエントリに格納された前記データと、前記第２メモリ領域の前記所定のエントリに格納された前記データとを入れ替える入替部をさらに備える、
制御システム。
【請求項３】
データを処理する処理装置と、
複数の前記データを記憶する主記憶装置と、
前記主記憶装置に記憶された複数の前記データの一部を記憶するキャッシュメモリと、
電力を供給する電源部と、を備えた制御システムであって、
前記キャッシュメモリは、前記データが格納されるメモリ領域を有し、
前記メモリ領域は、第１メモリ領域と、第２メモリ領域とを有し、
前記第１メモリ領域は、書き戻しが必要なデータを格納可能であり、
前記第２メモリ領域は、書き戻しが必要なデータを格納可能であり、
前記キャッシュメモリに対する前記電源部からの電力供給は、前記第１メモリ領域、前記第２メモリ領域ごとに行われ、
前記第２メモリ領域の所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要ではない前記データであり、前記第１メモリ領域の前記所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要ではない前記データから、前記主記憶装置への書き戻しが必要な前記データになった場合は、前記第１メモリ領域の前記所定のエントリに格納された前記データと、前記第２メモリ領域の前記所定のエントリに格納された前記データとを入れ替える入替部をさらに備える、
制御システム。
【請求項４】
データを処理する処理装置と、
複数の前記データを記憶する主記憶装置と、
前記主記憶装置に記憶された複数の前記データの一部を記憶するキャッシュメモリと、
電力を供給する電源部と、を備えた制御システムであって、
前記キャッシュメモリは、前記データが格納されるメモリ領域を有し、
前記メモリ領域は、第１メモリ領域と、第２メモリ領域とを有し、
前記キャッシュメモリに対する前記電源部からの電力供給は、前記第１メモリ領域、前記第２メモリ領域ごとに行われ、
前記第１メモリ領域の所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要な前記データであり、前記第２メモリ領域の前記所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要な前記データから、前記主記憶装置への書き戻しが必要ではない前記データになった場合は、前記第１メモリ領域の前記所定のエントリに格納された前記データと、前記第２メモリ領域の前記所定のエントリに格納された前記データとを入れ替える入替部をさらに備える、
制御システム。
【請求項５】
データを処理する処理装置と、
複数の前記データを記憶する主記憶装置と、
前記主記憶装置に記憶された複数の前記データの一部を記憶するキャッシュメモリと、
電力を供給する電源部と、を備えた制御システムであって、
前記処理装置が前記処理を実行していないアイドル状態であるか否かを検出する検出部と、
前記アイドル状態が継続する時間を示すアイドル時間を推定する推定部と、
前記アイドル状態が検出された場合、前記キャッシュメモリに格納された前記データのうち前記主記憶装置への書き戻しが必要な前記データの書き戻しを行って前記キャッシュメモリに対する電力の供給を停止した場合の第１消費電力量が、当該データの書き戻しを行わずに前記アイドル時間にわたって前記キャッシュメモリに対する電力の供給を継続した場合の第２消費電力量よりも小さいか否かを判断する判断部と、
前記第１消費電力量が前記第２消費電力量よりも小さいと判断された場合は、前記データの書き戻しを行って前記キャッシュメモリに対する前記電源部からの電力供給を停止させる一方、前記第１消費電力量が前記第２消費電力量よりも大きいと判断された場合は、前記データの書き戻しを行わずに前記キャッシュメモリに対する前記電源部からの電力供給を継続させる制御部と、を備え、
前記第１消費電力量は以下の式（１）で表され、
前記第２消費電力量は以下の式（２）で表される、
制御システム。
Ｅ１＝Ｐｗ×（Ｔｗ１×ＷＢ）＋Ｃ      式（１）
ただし、Ｅ１は第１消費電力量、Ｐｗは書き戻しが行われる場合の平均消費電力量、Ｔｗ１は１つのデータの書き戻しに必要な時間の平均値、ＷＢは書き戻しが必要なデータの総数、Ｃはキャッシュメモリに対する通電を停止して再度通電する際に発生するオーバヘッド分の消費電力量を示す。
Ｅ２＝Ｐｏ×Ｔ      式（２）
ただし、Ｅ２は第２消費電力量、Ｐｏはキャッシュメモリに対する電力供給が行われている場合の平均消費電力量、Ｔはアイドル時間を示す。
【請求項６】
前記判断部は、前記キャッシュメモリに格納された前記データのうち前記主記憶装置への書き戻しが必要な前記データの総数と、前記アイドル時間とを用いて、前記第１消費電力量が前記第２消費電力量よりも大きいか否かを判断する、
請求項５の制御システム。
【請求項７】
前記判断部は、以下の式（３）が成立する場合は、前記第１消費電力量が前記第２消費電力量よりも小さいと判断する、
請求項５または６の制御システム。
ＷＢ＜（Ｐｏ／Ｐｗ／Ｔｗ１）×Ｔ−（Ｃ／Ｐｗ／Ｔｗ１）      式（３）
【請求項８】
データを処理する処理装置と、
複数の前記データを記憶する主記憶装置と、
前記主記憶装置に記憶された複数の前記データの一部を記憶するキャッシュメモリと、
電力を供給する電源部と、を備え、前記キャッシュメモリは、セットアソシアティブ方式のキャッシュメモリであり、前記キャッシュメモリは、前記データが格納されるメモリ領域を有し、前記メモリ領域は、第１ウェイに割り当てられた第１メモリ領域と、第２ウェイに割り当てられた第２メモリ領域とを有し、前記第１メモリ領域は、書き戻しが必要なデータを格納可能であり、前記第２メモリ領域は、書き戻しが必要なデータを格納可能であり、前記キャッシュメモリに対する前記電源部からの電力供給は、前記第１メモリ領域、前記第２メモリ領域ごとに行われる制御システムのコンピュータに、
前記第２メモリ領域の所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要ではない前記データであり、前記第１メモリ領域の前記所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要ではない前記データから、前記主記憶装置への書き戻しが必要な前記データになった場合は、前記第１メモリ領域の前記所定のエントリに格納された前記データと、前記第２メモリ領域の前記所定のエントリに格納された前記データとを入れ替える入替ステップを実行させるためのプログラム。
【請求項９】
データを処理する処理装置と、
複数の前記データを記憶する主記憶装置と、
前記主記憶装置に記憶された複数の前記データの一部を記憶するキャッシュメモリと、
電力を供給する電源部と、を備え、前記キャッシュメモリは、セットアソシアティブ方式のキャッシュメモリであり、前記キャッシュメモリは、前記データが格納されるメモリ領域を有し、前記メモリ領域は、第１ウェイに割り当てられた第１メモリ領域と、第２ウェイに割り当てられた第２メモリ領域とを有し、前記キャッシュメモリに対する前記電源部からの電力供給は、前記第１メモリ領域、前記第２メモリ領域ごとに行われる制御システムのコンピュータに、
前記第１メモリ領域の所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要な前記データであり、前記第２メモリ領域の前記所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要な前記データから、前記主記憶装置への書き戻しが必要ではない前記データになった場合は、前記第１メモリ領域の前記所定のエントリに格納された前記データと、前記第２メモリ領域の前記所定のエントリに格納された前記データとを入れ替える入替ステップを実行させるためのプログラム。
【請求項１０】
データを処理する処理装置と、
複数の前記データを記憶する主記憶装置と、
前記主記憶装置に記憶された複数の前記データの一部を記憶するキャッシュメモリと、
電力を供給する電源部と、を備え、前記キャッシュメモリは、前記データが格納されるメモリ領域を有し、前記メモリ領域は、第１メモリ領域と、第２メモリ領域とを有し、前記第１メモリ領域は、書き戻しが必要なデータを格納可能であり、前記第２メモリ領域は、書き戻しが必要なデータを格納可能であり、前記キャッシュメモリに対する前記電源部からの電力供給は、前記第１メモリ領域、前記第２メモリ領域ごとに行われる制御システムのコンピュータに、
前記第２メモリ領域の所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要ではない前記データであり、前記第１メモリ領域の前記所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要ではない前記データから、前記主記憶装置への書き戻しが必要な前記データになった場合は、前記第１メモリ領域の前記所定のエントリに格納された前記データと、前記第２メモリ領域の前記所定のエントリに格納された前記データとを入れ替える入替ステップを実行させるためのプログラム。
【請求項１１】
データを処理する処理装置と、
複数の前記データを記憶する主記憶装置と、
前記主記憶装置に記憶された複数の前記データの一部を記憶するキャッシュメモリと、
電力を供給する電源部と、を備え、前記キャッシュメモリは、前記データが格納されるメモリ領域を有し、前記メモリ領域は、第１メモリ領域と、第２メモリ領域とを有し、前記キャッシュメモリに対する前記電源部からの電力供給は、前記第１メモリ領域、前記第２メモリ領域ごとに行われる制御システムのコンピュータに、
前記第１メモリ領域の所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要な前記データであり、前記第２メモリ領域の前記所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要な前記データから、前記主記憶装置への書き戻しが必要ではない前記データになった場合は、前記第１メモリ領域の前記所定のエントリに格納された前記データと、前記第２メモリ領域の前記所定のエントリに格納された前記データとを入れ替える入替ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、制御システム、制御方法およびプログラムに関する。
【背景技術】
【０００２】
近年、携帯電話、スレート型端末およびタブレット型端末などの情報機器などから、スーパーコンピュータなどの大規模システムに至る幅広い計算機システムにおいて、システムの省電力化が重要な課題となっている。省電力化の一つの方法として、電力を必要としている部分（ユニット）にだけ電力を供給するパワーゲーティング技術などが挙げられる。
【０００３】
例えば計算機システムのプロセッサが何も処理を実行しないアイドル状態の場合、プロセッサの処理に用いられる複数のデータの一部が記憶されるキャッシュメモリに対する電力供給を停止することで、省電力化を図ることができる。ここで、キャッシュメモリは、ＲＡＭなどの揮発性のメモリで構成されるのが一般的であるため、キャッシュメモリに対する電力供給を停止した場合、キャッシュメモリに記憶されたデータも全て消えてしまう。このため、キャッシュメモリに対する電力供給を停止する場合は、キャッシュメモリに記憶されたデータのうち、書き換えられたデータ（主記憶装置に記憶された内容と一致していないデータ）を主記憶装置へ書き戻すライトバック処理を行う必要がある。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】近藤正章、薦田登志矢、佐々木広、中村宏ら著  コンパイラによる細粒度スリープ制御のためのアーキテクチャ支援技術の検討  情報処理学会研究報告.  計算機アーキテクチャ研究会報告  2009-ARC-184(14)，1-8，2009-07-28
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述のライトバック処理によって発生する消費電力量が、キャッシュメモリに対する電力供給を停止しない場合の消費電力量よりも大きい場合も想定される。この場合にライトバック処理を行ってキャッシュメモリに対する電力供給を停止することは、消費電力量の低減に繋がらない。すなわち、アイドル状態の場合は無条件にライトバック処理を行ってキャッシュメモリに対する電力供給を停止する構成では、消費電力量を効率的に低減することが困難であるという問題がある。
【０００６】
本発明が解決しようとする課題は、消費電力量を効率的に低減可能な制御システム、制御方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態の制御システムは、処理装置と主記憶装置とキャッシュメモリと電源部とを備えた制御システムであって、検出部と推定部と判断部と制御部とを備える。検出部はアイドル状態を検出する。推定部はアイドル時間を推定する。判断部は、アイドル状態が検出された場合、主記憶装置への書き戻しが必要なデータの書き戻しを行ってキャッシュメモリに対する電力の供給を停止した場合の第１消費電力量が、当該データの書き戻しを行わずにアイドル時間にわたってキャッシュメモリに対する電力の供給を継続した場合の第２消費電力量よりも大きいか否かを判断する。制御部は、第１消費電力量が第２消費電力量よりも小さいと判断された場合は、キャッシュメモリに対する電力供給を停止させる一方、第１消費電力量が第２消費電力量よりも大きいと判断された場合は、キャッシュメモリに対する電力供給を継続させる。
【０００８】
実施形態の制御方法は、処理装置と主記憶装置とキャッシュメモリと電源部とを備えた制御システムの制御方法であって、検出ステップと推定ステップと判断ステップと制御ステップとを備える。検出ステップではアイドル状態を検出する。推定ステップではアイドル時間を推定する。判断ステップでは、アイドル状態が検出された場合、主記憶装置への書き戻しが必要なデータの書き戻しを行ってキャッシュメモリに対する電力の供給を停止した場合の第１消費電力量が、当該データの書き戻しを行わずにアイドル時間にわたってキャッシュメモリに対する電力の供給を継続した場合の第２消費電力量よりも大きいか否かを判断する。制御ステップでは、第１消費電力量が第２消費電力量よりも小さいと判断された場合は、キャッシュメモリに対する電力供給を停止させる一方、第１消費電力量が第２消費電力量よりも大きいと判断された場合は、キャッシュメモリに対する電力供給を継続させる。
【０００９】
実施形態のプログラムは、処理装置と主記憶装置とキャッシュメモリと電源部とを備えたコンピュータに、検出ステップと推定ステップと判断ステップと制御ステップとを実行させるためのプログラムである。検出ステップではアイドル状態を検出する。推定ステップではアイドル時間を推定する。判断ステップでは、アイドル状態が検出された場合、主記憶装置への書き戻しが必要なデータの書き戻しを行ってキャッシュメモリに対する電力の供給を停止した場合の第１消費電力量が、当該データの書き戻しを行わずにアイドル時間にわたってキャッシュメモリに対する電力の供給を継続した場合の第２消費電力量よりも大きいか否かを判断する。制御ステップでは、第１消費電力量が第２消費電力量よりも小さいと判断された場合は、キャッシュメモリに対する電力供給を停止させる一方、第１消費電力量が第２消費電力量よりも大きいと判断された場合は、キャッシュメモリに対する電力供給を継続させる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態の制御システムのブロック図。
【図２】第１実施形態のキャッシュメモリの構成例を示す図。
【図３】第１実施形態の制御システムの機能ブロック図。
【図４】第１実施形態の第１消費電力量と第２消費電力量との関係を示す図。
【図５】第１実施形態の電源制御処理の一例を示すフローチャート。
【図６】第１実施形態の再開処理の一例を示すフローチャート。
【図７】第２実施形態のキャッシュメモリの構成例を示す図。
【図８】第２実施形態の制御システムの機能ブロック図。
【図９】第２実施形態の第１スワップ処理の一例を示すフローチャート。
【図１０】第２実施形態の第２スワップ処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照しながら、本発明に係る制御システム、制御方法およびプログラムの実施の形態を詳細に説明する。
【００１２】
（第１実施形態）
図１は、第１実施形態の制御システム１００の構成例を示すブロック図である。図１に示すように、制御システム１００は、処理装置１０と、キャッシュメモリ２０と、主記憶装置３０と、電力を供給する電源部４０とを含んで構成される。キャッシュメモリ２０と主記憶装置３０は、バス１１０を介して接続される。なお、ここでは詳細な図示は省略するが、本実施形態の制御システム１００は、他にも、ＲＯＭ、ＨＤＤやＳＳＤなどの外部記憶装置、ディスプレイなどの表示装置、マウスやキーボードなどの入力装置、および、通信Ｉ／Ｆ装置などを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【００１３】
処理装置１０は、データを処理する。処理装置１０は、各種の処理を実行し、制御システム１００全体の動作を制御する。処理装置１０は、例えばＣＰＵ（Central  Processing  Unit）などの制御装置で構成され得る。主記憶装置３０は、処理装置１０が実行する処理に用いられる複数のデータを記憶する。
【００１４】
キャッシュメモリ２０は、主記憶装置３０に記憶された複数のデータの一部を記憶する。キャッシュメモリ２０は、例えばスタティックＲＡＭ（Random  Access  Memory）などの揮発性のメモリで構成され、電力の供給が停止すると記憶内容は消失する。図２は、キャッシュメモリ２０の構成例を示すブロック図である。図２に示すように、キャッシュメモリ２０は、有効ビット２１、ダーティビット２２、アドレス２３を格納するタグメモリアレイ２４と、キャッシュ対象のデータ（「キャッシュデータ」と呼ぶ）２５を格納するデータメモリアレイ２６と、ダーティビットカウンタ２７とを有する。
【００１５】
キャッシュメモリ２０は、エントリ２８単位でデータを格納し、各エントリ２８は、有効ビット２１、ダーティビット２２、アドレス２３およびキャッシュデータ２５で構成される。
【００１６】
有効ビット２１は、対応するエントリ２８のキャッシュデータ２５が有効か否かを示す。図３の例では、対応するエントリ２８のキャッシュデータ２５が有効である場合、有効ビット２１は「１」に設定され、キャッシュデータ２５が無効である場合、有効ビット２１は「０」に設定される。
【００１７】
ダーティビット２２は、対応するエントリ２８のキャッシュデータ２５が、主記憶装置３０のうち当該エントリ２８のアドレス２３が示す位置に格納されたデータと一致しているか否かを示す。図３の例では、ダーティビット２２は、対応するエントリ２８のキャッシュデータ２５が、主記憶装置３０のうち当該エントリ２８のアドレス２３が示す位置に格納されたデータと一致していない場合は「１」に設定される。一方、対応するエントリ２８のキャッシュデータ２５が、主記憶装置３０のうち当該エントリ２８のアドレス２３が示す位置に格納されたデータと一致している場合は、ダーティビット２２は「０」に設定される。例えばデータの転送命令（ストア命令）が発行されて、あるエントリ２８のキャッシュデータ２５が書き換えられた場合、そのエントリ２８のダーティビット２２は「１」に設定される。見方を変えれば、ダーティビット２２は、対応するエントリ２８のキャッシュデータ２５が、主記憶装置３０への書き戻しが必要なデータであるか否かを示す情報であると捉えることもできる。
【００１８】
アドレス２３は、主記憶装置３０のうち、対応するエントリ２８のキャッシュデータ２５が格納されるべき位置を示す。
【００１９】
ダーティビットカウンタ２７は、ダーティビット２２が「１」に設定されたエントリ２８の総数をカウントする。すなわち、ダーティビットカウンタ２７は、キャッシュデータ２５のうち、主記憶装置３０への書き戻しが必要なキャッシュデータ２５の総数をカウントする。
【００２０】
図３は、処理装置１０が不図示のＨＤＤ等に格納されたプログラムを実行することにより実現される機能を示すブロック図である。つまりは、制御システム１００の機能ブロック図であると捉えることもできる。図３に示すように、制御システム１００の機能には、検出部５１と推定部５２と判断部５３と判断部５３と再開部５５とが含まれる。なお、これらの機能のうちの少なくとも一部を個別の回路（ハードウェア）で実現することもできる。
【００２１】
検出部５１は、処理装置１０が処理を実行していないアイドル状態であるか否かを検出する。推定部５２は、アイドル状態が継続する時間を示すアイドル時間を推定する。推定部５２によるアイドル時間の推定方法は任意である。例えばキーなどのデバイスの操作入力待ちにより処理装置１０がアイドル状態となる場合を想定する。デバイスの操作入力は個人差があるものの、同じ人が入力するタイミングは大体同じであると考えられるので、過去の操作入力の履歴から操作入力が行われる間隔の平均値（平均間隔と呼ぶ）を求め、その求めた平均間隔から、前回の操作入力が行われてから経過した時間を引いた値をアイドル時間として推定することもできる。例えば過去３回の操作入力の間隔が、５００ｍｓ，４５０ｍｓ，５５０ｍｓで、前回の操作入力が行われてから経過した時間が１００ｍｓの場合、｛（５００＋４５０＋５５０）／３−１００｝×１０００＝４００，０００μｓeｃをアイドル時間として推定することができる。
【００２２】
判断部５３は、検出部５１によりアイドル状態が検出された場合、キャッシュメモリ２０に格納されたキャッシュデータ２５のうち主記憶装置３０への書き戻しが必要なキャッシュデータ２５の書き戻しを行ってキャッシュメモリ２０に対する電力の供給を停止した場合の第１消費電力量Ｅ１が、当該キャッシュデータ２５の書き戻しを行わずに、推定部５２で推定されたアイドル時間にわたってキャッシュメモリ２０に対する電力の供給を継続した場合の第２消費電力量Ｅ２よりも小さいか否かを判断する。より具体的には、判断部５３は、キャッシュメモリ２０に格納されたキャッシュデータ２５のうち主記憶装置３０への書き戻しが必要なキャッシュデータ２５の総数（ダーティビットカウンタ２７のカウント値）と、推定部５２で推定されたアイドル時間とを用いて、第１消費電力量Ｅ１が第２消費電力量Ｅ２よりも小さいか否かを判断する。さらに詳述すれば以下のとおりである。
【００２３】
いま、書き戻しが行われる場合の平均電力量をＰｗ、１つのキャッシュデータ２５の書き戻しに必要な時間の平均値をＴｗ１、書き戻しが必要なデータの総数をＷＢ、キャッシュメモリ２０に対する通電を停止して再度通電する際に発生するオーバヘッド分の消費電力量をＣとすれば、第１消費電力量Ｅ１は式（１）で表される。
Ｅ１＝Ｐｗ×（Ｔｗ１×ＷＢ）＋Ｃ      （１）
【００２４】
また、キャッシュメモリ２０に対する電力供給が行われている場合の平均消費電力量をＰｏ、推定部５２で推定されたアイドル時間をＴとすれば、第２消費電力量Ｅ２は式（２）で表される。
Ｅ２＝Ｐｏ×Ｔ      （２）
【００２５】
ここで、第１消費電力量Ｅ１が第２消費電力量Ｅ２よりも小さい場合は、式（３）が成立する。
ＷＢ＜（Ｐｏ／Ｐｗ／Ｔｗ１）×Ｔ−（Ｃ／Ｐｗ／Ｔｗ１）      （３）
式（３）において、（Ｐｏ／Ｐｗ／Ｔｗ１）および（Ｃ／Ｐｗ／Ｔｗ１）の各々の値は、制御システム１００の構成に応じて決定される。したがって、（Ｐｏ／Ｐｗ／Ｔｗ１）を定数Ａに置き換え、（Ｃ／Ｐｗ／Ｔｗ１）を、定数Ｂに置き換えることで、式（３）を式（４）に変形できる。
ＷＢ＜Ａ×Ｔ−Ｂ      （４）
すなわち、主記憶装置３０への書き戻しが必要なキャッシュデータ２５の総数ＷＢと、アイドル時間Ｔとが分かれば、式（４）が成立するか否かを判断することで、第１消費電力量Ｅ１が第２消費電力量Ｅ２よりも小さいか否かを判断することができる。
【００２６】
例えば図４において、第１の所定数のキャッシュデータ２５の書き戻しを行う場合の消費電力量（第１消費電力量Ｅ１）をＰ１、第１の所定数よりも小さい第２の所定数のキャッシュデータ２５の書き戻しを行う場合の消費電力量をＰ２、第２の所定数よりも小さい第３の所定数のキャッシュデータの書き戻しを行う場合の消費電力量をＰ３と表記する。いま、推定部５２で推定されたアイドル時間ＴがＴｘであって、キャッシュデータ２５の書き戻しを行わずにキャッシュメモリ２０に対する電力供給を継続した場合の消費電力量（第２消費電力量Ｅ２）はＰ２に等しいとする。この場合、主記憶装置３０への書き戻しが必要なキャッシュデータ２５の総数ＷＢ（ダーティビットカウンタ２７のカウント値）が第２の所定数よりも少なければ、第１消費電力量Ｅ１は第２消費電力量Ｅ２よりも小さくなる。一方、主記憶装置３０への書き戻しが必要なキャッシュデータ２５の総数ＷＢが第２の所定数よりも多ければ、第１消費電力量Ｅ１は第２消費電力量Ｅ２よりも大きくなる。
【００２７】
再び図３に戻って説明を続ける。判断部５３により第１消費電力量Ｅ１が第２消費電力量Ｅ２よりも小さいと判断された場合、制御部５４は、キャッシュデータ２５の書き戻しを行ってキャッシュメモリ２０に対する電源部４０からの電力供給を停止させる。一方、判断部５３により第１消費電力量Ｅ１が第２消費電力量Ｅ２よりも大きいと判断された場合、制御部５４は、キャッシュデータ２５の書き戻しを行わずにキャッシュメモリ２０に対する電源部４０からの電力供給を継続させる。
【００２８】
再開部５５は、キャッシュメモリ２０に対する電力の供給が停止されている状態において、復帰要因を受け付けた場合に、キャッシュメモリ２０に対する電力の供給を再開するように電源部４０を制御する。復帰要因の種類は任意であり、例えば割り込み処理が復帰要因であってもよい。この場合、再開部５５は、キャッシュメモリ２０に対する電力の供給が停止されている状態において、割り込み処理を受け付けた場合に、キャッシュメモリ２０に対する電力の供給を再開するように電源部４０を制御する。
【００２９】
図５は、制御システム１００が実行する電源制御処理の一例を示すフローチャートである。この電源制御処理は、処理装置１０が所定のソフトウェアプログラムを実行することにより実現される。図５に示すように、検出部５１によりアイドル状態が検出された場合（ステップＳ１の結果：ＹＥＳ）、推定部５２はアイドル時間を推定する（ステップＳ２）。
【００３０】
次に、判断部５３は、第１消費電力量Ｅ１が第２消費電力量Ｅ２よりも小さいか否かを判断する判断処理を行う（ステップＳ３）。本実施形態では、判断部５３は、ダーティビットカウンタ２７のカウント値を取得することで、主記憶装置３０への書き戻しが必要なキャッシュデータ２５の総数ＷＢを特定する。そして、判断部５３は、特定したキャッシュデータ２５の総数ＷＢと、ステップＳ２で推定されたアイドル時間Ｔとを用いて、上述の式（４）が成立するか否かを判断する。上述の式（４）が成立する場合は、第１消費電力量Ｅ１が第２消費電力量Ｅ２よりも小さいと判断する一方、上述の式（４）が成立しない場合は、第１消費電力量Ｅ１が第２消費電力量Ｅ２よりも大きいと判断する。
【００３１】
例えば、上述の式（４）において、定数Ａが１／１００、定数Ｂが１００、ステップＳ２で推定されたアイドル時間Ｔが４００，００μｓｅｃ、主記憶装置３０への書き戻しが必要なキャッシュデータ２５の総数（ダーティビットカウンタ２７のカウント値）ＷＢが２００である場合を想定する。この場合、Ａ×Ｔ−Ｂ＝３９０となり、主記憶装置３０への書き戻しが必要なキャッシュデータ２５の総数ＷＢ（＝２００）を上回るので、式（４）は成立しない。したがって、判断部５３は、第１消費電力量Ｅ１が第２消費電力量Ｅ２よりも大きいと判断する。
【００３２】
判断部５３により第１消費電力量Ｅ１が第２消費電力量Ｅ２よりも小さいと判断された場合（ステップＳ４の結果：ＹＥＳ）、制御部５４は、ダーティビットが「１」に設定されたエントリ２８のキャッシュデータ２５を、主記憶装置３０のうち当該エントリ２８のアドレス２３が示す位置に書き込む書き戻し処理を実行する（ステップＳ５）。書き戻し処理の後、制御部５４は、キャッシュメモリ２０に対する電力供給を停止するように電源部４０を制御する（ステップＳ６）。
【００３３】
一方、判断部５３により第１消費電力量Ｅ１が第２消費電力量Ｅ２よりも大きいと判断された場合（ステップＳ４の結果：ＮＯ）、制御部５４は、キャッシュメモリ２０に対する電力供給を継続するように電源部４０を制御する（ステップＳ７）。以上が電源制御処理の内容である。
【００３４】
図６は、キャッシュメモリ２０に対する電力供給を再開する再開処理の一例を示すフローチャートである。この再開処理は、処理装置１０が所定のソフトウェアプログラムを実行することにより実現される。図６に示すように、復帰要因を受け付けた場合（ステップＳ１１の結果：ＹＥＳ）、再開部５５は、キャッシュメモリ２０に対する電力の供給を再開するように電源部４０を制御する（ステップＳ１２）。
【００３５】
以上に説明したように、本実施形態では、第１消費電力量Ｅ１が第２消費電力量Ｅ２よりも小さいと判断された場合は、キャッシュデータ２５の書き戻しを行ってキャッシュメモリ２０に対する電源部４０からの電力供給を停止させる一方、第１消費電力量Ｅ１が第２消費電力量Ｅ２よりも大きいと判断された場合は、キャッシュデータ２５の書き戻しを行わずにキャッシュメモリ２０に対する電力供給を継続するので、第１消費電力量Ｅ１と第２消費電力量Ｅ２との関係を考慮せずに、アイドル状態が検出された場合は無条件にキャッシュデータ２５の書き戻しを行う構成に比べて、消費電力量を効率的に低減することが可能になる。
【００３６】
（第２実施形態）
次に、第２実施形態について説明する。第２実施形態のキャッシュメモリ２００は、データが格納されるメモリ領域（「バンク」）が、複数のウェイごとに割り当てられたセットアソシアティブ方式のキャッシュメモリであり、キャッシュメモリ２００に対する電源部４０からの電力供給は、各ウェイに対応するメモリ領域ごとに行われる点で第１実施形態と相違する。以下、第１実施形態と相違する部分を中心に説明し、第１実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。
【００３７】
図７は、第２実施形態のキャッシュメモリ２００の構成例を示す図である。一例として、第２実施形態のキャッシュメモリ２００は、４ウェイセットアソシアティブ方式のキャッシュメモリである。図７の例では、キャッシュメモリ２００には、４つのウェイ（ウェイ０〜ウェイ３）の各々に割り当てられるメモリ領域が設けられる。ウェイ０に割り当てられるメモリ領域は、ウェイ０に対応するタグメモリアレイ２４０と、ウェイ０に対応するデータメモリアレイ２６０とを含む。ウェイ１に割り当てられるメモリ領域は、ウェイ１に対応するタグメモリアレイ２４１と、ウェイ１に対応するデータメモリアレイ２６１とを含む。ウェイ２に割り当てられるメモリ領域は、ウェイ２に対応するタグメモリアレイ２４２と、ウェイ２に対応するデータメモリアレイ２６２とを含む。ウェイ３に割り当てられるメモリ領域は、ウェイ３に対応するタグメモリアレイ２４３と、ウェイ３に対応するデータメモリアレイ２６３とを含む。キャッシュメモリ２００は、エントリ２８単位でデータを格納し、各エントリ２８は、各ウェイに対応する有効ビット２１、ダーティビット２２、アドレス２３およびキャッシュデータ２５で構成される。なお、各エントリ２８のデータは、ウェイ間で入れ替えることもできる。
【００３８】
また、キャッシュメモリ２００が有するダーティビットカウンタ２７０は、ダーティビット２２が「１」に設定されたエントリ２８の総数をウェイごとにカウントする。
【００３９】
図８は、第２実施形態の制御システム３００の機能ブロック図である。図８に示すように、制御システム３００の機能には、入替部５６がさらに含まれる点で第１実施形態と相違する。入替部５６は、同じエントリ２８におけるデータを２つのウェイ間で入れ替える処理（スワップ処理）を行う。この詳細な内容については後述する。また、第２実施形態の判断部５３０は、各ウェイに対応するメモリ領域ごとに、第１消費電力量Ｅ１が第２消費電力量Ｅ２よりも小さいか否かを判断する。すなわち、判断部５３０は、メモリ領域ごとに、ダーティビットが「１」に設定されたエントリ２８の総数ＷＢを特定する。そして、その特定した総数ＷＢと、推定部５２で推定されたアイドル時間Ｔとを用いて、上述の式（４）が成立するか否かの判断をメモリ領域ごとに行う。
【００４０】
さらに、第２実施形態の制御部５４０は、第１消費電力量Ｅ１が第２消費電力量Ｅ２よりも小さいと判断されたメモリ領域については、当該メモリ領域に格納されたキャッシュデータ２５のうち、対応するダーティビット２２が「１」に設定されたキャッシュデータ２５の書き戻しを行って当該メモリ領域に対する電源部４０からの電力供給を停止させる。一方、第１消費電力量Ｅ１が第２消費電力量Ｅ２よりも大きいと判断されたメモリ領域については、当該メモリ領域に格納されたキャッシュデータ２５のうち、対応するダーティビット２２が「１」に設定されたキャッシュデータ２５の書き戻しを行わずに当該メモリ領域に対する電源部４０からの電力供給を継続させる。
【００４１】
図９は、あるウェイｉの第ｘ番目のエントリ２８（所定のエントリ）に対してダーティビット２２を「１」に書き換えることが要求された場合（例えばストア命令が発行された場合）に、他のウェイｊ（ｉ≠ｊ）の第ｘ番目のエントリ２８に格納されたデータと入れ替える第１スワップ処理の一例を示すフローチャートである。
【００４２】
図９に示すように、まず入替部５６は、スワップ対象のウェイｊを示す番号ｊを「０」に初期化する（ステップＳ２１）。次に、入替部５６は、番号ｊが、ダーティビット２２の書き換えを要求されたウェイｉを示す番号ｉよりも小さいか否かを判定する（ステップＳ２２）。番号ｊが番号ｉよりも小さいと判定した場合（ステップＳ２２の結果：ＹＥＳ）、入替部５６は、番号ｊが示すウェイｊの第ｘ番目のエントリ２８のダーティビット２２が「０」であるか否かを判定する（ステップＳ２３）。一方、番号ｊが番号ｉよりも大きいと判定した場合（ステップＳ２２の結果：ＮＯ）、処理は後述のステップＳ２６に移行する。
【００４３】
ステップＳ２３において、ウェイｊの第ｘ番目のエントリ２８のダーティビット２２が「０」ではないと判定した場合（ステップＳ２３の結果：ＮＯ）、入替部５６は、スワップ対象のウェイを示す番号ｊの値を１だけカウントアップし（ステップＳ２４）、前述のステップＳ２２からの処理を繰り返す。一方、ウェイｊの第ｘ番目のエントリ２８のダーティビット２２が「０」であると判定した場合（ステップＳ２３の結果：ＹＥＳ）、入替部５６は、ウェイｉの第ｘ番目のエントリ２８に格納されたデータと、ウェイｊの第ｘ番目のエントリ２８に格納されたデータとを入れ替える（ステップＳ２５）。そして、入替部５６は、ウェイｊの第ｘ番目のエントリ２８に対応するダーティビット２２を「１」に設定する（ステップＳ２６）。
【００４４】
図１０は、あるウェイｉの第ｘ番目のエントリ２８（所定のエントリ）に対してダーティビット２２を「０」に書き換えることが要求された場合（例えば書き戻しを行う場合）に、他のウェイｊの第ｘ番目のエントリ２８に格納されたデータと入れ替える第２スワップ処理の一例を示すフローチャートである。
【００４５】
図１０に示すように、まず入替部５６は、ウェイ数（この例では「４」）から１を差し引いた値を、スワップ対象のウェイを示す番号ｊとして設定する（ステップＳ３１）。次に、入替部５６は、番号ｊが、ダーティビット２２の書き換えを要求されたウェイｉを示す番号ｉよりも大きいか否かを判定する（ステップＳ３２）。番号ｊが番号ｉよりも大きいと判定した場合（ステップＳ３２の結果：ＹＥＳ）、入替部５６は、ウェイｊの第ｘ番目のエントリ２８のダーティビット２２が「１」であるか否かを判定する（ステップＳ３３）。一方、番号ｊが番号ｉよりも小さいと判定した場合（ステップＳ３２の結果：ＮＯ）、処理は後述のステップＳ３６に移行する。
【００４６】
ステップＳ３３において、ウェイｊの第ｘ番目のエントリ２８のダーティビット２２が「１」ではないと判定した場合（ステップＳ３３の結果：ＮＯ）、入替部５６は、スワップ対象のウェイを示す番号ｊの値を１だけカウントダウンし（ステップＳ３４）、前述のステップＳ３２からの処理を繰り返す。一方、ウェイｊの第ｘ番目のエントリ２８のダーティビット２２が「１」であると判定した場合（ステップＳ３３の結果：ＹＥＳ）、入替部５６は、ウェイｉの第ｘ番目のエントリ２８に格納されたデータと、ウェイｊの第ｘ番目のエントリ２８に格納されたデータとを入れ替える（ステップＳ３５）。そして、入替部５６は、ウェイｊの第ｘ番目のエントリ２８に対応するダーティビット２２を「０」に設定する（ステップＳ３６）。
【００４７】
以上に説明したように、本実施形態では、主記憶装置３０への書き戻しが必要なデータ（ダーティビット２２が「１」に設定されたキャッシュデータ２５）は、番号が小さいウェイに対応するメモリ領域に集約されるので、アイドル状態においては、番号が大きいウェイに対応するメモリ領域に対する電力供給が優先的に停止される。
【００４８】
例えばウェイ０のダーティビット２２のカウント値が８００、ウェイ１のダーティビット２２のカウント値が５００、ウェイ２のダーティビット２２のカウント値が２００、ウェイ３のダーティビット２２のカウント値が１００、推定部５２で推定されたアイドル時間Ｔが４００，０００μｓｅｃ、上述の式（４）における定数Ａが１／１００、定数Ｂが１００の場合を想定する。この場合、上述の式（４）において、Ａ×Ｔ−Ｂ＝３９０となるので、主記憶装置３０への書き戻しが必要なキャッシュデータ２５の総数ＷＢが３９０未満であれば、第１消費電力量Ｅ１は第２消費電力量Ｅ２よりも小さいと判断される。したがって、ウェイ０およびウェイ１の各々に対応するメモリ領域については、キャッシュデータ２５の書き戻しが行われずに電源部４０からの電力供給が継続される。一方、ウェイ２およびウェイ３の各々に対応するメモリ領域については、キャッシュデータ２５の書き戻しが行われて電源部４０からの電力供給が停止される。
【００４９】
なお、本実施形態では、４ウェイセットアソシアティブ方式のキャッシュメモリを例に挙げて説明したが、これに限らず、ウェイ数は任意である。要するに、キャッシュメモリは、第１ウェイに割り当てられた第１メモリ領域と、第２ウェイに割り当てられた第２メモリ領域とを少なくとも備えていればよい。
【００５０】
また、本実施形態とは反対に、主記憶装置３０への書き戻しが必要なキャッシュデータ２５（ダーティビット２２が「１」に設定されたキャッシュデータ２５）が、番号が大きいウェイに対応するメモリ領域に集約される構成であってもよい。要するに、入替部５６は、第１メモリ領域の第１エントリに格納されたデータが、主記憶装置３０への書き戻しが必要なデータであって、第２メモリ領域の第１エントリに格納されたデータが、主記憶装置３０への書き戻しが必要なデータではない場合、第１メモリ領域の第１エントリに格納されたデータと、第２メモリ領域の第２エントリに格納されたデータとを入れ替える機能を有するものであればよい。これにより、主記憶装置３０への書き戻しが必要なデータを第２メモリ領域に集約することが可能になる。なお、第２メモリ領域に対応する第２ウェイを示す番号と第１ウェイを示す番号との大小関係は任意に変更可能である。
【００５１】
さらに、本実施形態では、ダーティビット２２が「１」に設定されたキャッシュデータ２５が、番号が小さいウェイに対応するメモリ領域に集約される構成を説明したが、例えば有効ビット２１が「１」に設定されたキャッシュデータ２５が、番号が小さいウェイ（または番号が大きいウェイ）に対応するメモリ領域に集約される構成とすることもできる。
【００５２】
以上、本発明の実施形態を説明したが、上述の各実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００５３】
また、上述の各実施形態の処理装置１０が実行するプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上述の各実施形態の処理装置１０が実行するプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上述の各実施形態の処理装置１０が実行するプログラムを、ＲＯＭ等に予め組み込んで提供するようにしてもよい。
【符号の説明】
【００５４】
１０  処理装置
２０  キャッシュメモリ
２１  有効ビット
２２  ダーティビット
２３  アドレス
２４  タグメモリアレイ
２５  キャッシュデータ
２６  データメモリアレイ
２７  ダーティビットカウンタ
２８  エントリ
３０  主記憶装置
４０  電源部
５１  検出部
５２  推定部
５３  判断部
５４  制御部
５５  再開部
５６  入替部
１００  制御システム
１１０  バス
２００  キャッシュメモリ
２４０  タグメモリアレイ
２４１  タグメモリアレイ
２４２  タグメモリアレイ
２４３  タグメモリアレイ
２６０  データメモリアレイ
２６１  データメモリアレイ
２６２  データメモリアレイ
２６３  データメモリアレイ
２７０  ダーティビットカウンタ
３００  制御システム
５３０  判断部
５４０  制御部
【図１】
0005674613.tif 000002
【図２】
0005674613.tif 000003
【図３】
0005674613.tif 000004
【図４】
0005674613.tif 000005
【図５】
0005674613.tif 000006
【図６】
0005674613.tif 000007
【図７】
0005674613.tif 000008
【図８】
0005674613.tif 000009
【図９】
0005674613.tif 000010
【図１０】
0005674613.tif 000011