説明

制御システム、制御方法およびプログラム

【課題】消費電力量を低減可能な制御システム、制御方法およびプログラムを提供する。
【解決手段】制御システム100は、検出部51と推定部52と判断部53と制御部54とを備える。検出部51はアイドル状態を検出する。推定部52はアイドル時間を推定する。判断部53は、アイドル状態が検出された場合、主記憶装置への書き戻しが必要なデータの書き戻しを行ってキャッシュメモリに対する電力の供給を停止した場合の第1消費電力量が、当該データの書き戻しを行わずにアイドル時間にわたってキャッシュメモリに対する電力の供給を継続した場合の第2消費電力量よりも大きいか否かを判断する。制御部54は、第1消費電力量が第2消費電力量よりも小さいと判断された場合は、キャッシュメモリに対する電力供給を停止させる一方、第1消費電力量が第2消費電力量よりも大きいと判断された場合は、キャッシュメモリに対する電力供給を継続させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、制御システム、制御方法およびプログラムに関する。
【背景技術】
【0002】
近年、携帯電話、スレート型端末およびタブレット型端末などの情報機器などから、スーパーコンピュータなどの大規模システムに至る幅広い計算機システムにおいて、システムの省電力化が重要な課題となっている。省電力化の一つの方法として、電力を必要としている部分(ユニット)にだけ電力を供給するパワーゲーティング技術などが挙げられる。
【0003】
例えば計算機システムのプロセッサが何も処理を実行しないアイドル状態の場合、プロセッサの処理に用いられる複数のデータの一部が記憶されるキャッシュメモリに対する電力供給を停止することで、省電力化を図ることができる。ここで、キャッシュメモリは、RAMなどの揮発性のメモリで構成されるのが一般的であるため、キャッシュメモリに対する電力供給を停止した場合、キャッシュメモリに記憶されたデータも全て消えてしまう。このため、キャッシュメモリに対する電力供給を停止する場合は、キャッシュメモリに記憶されたデータのうち、書き換えられたデータ(主記憶装置に記憶された内容と一致していないデータ)を主記憶装置へ書き戻すライトバック処理を行う必要がある。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】近藤正章、薦田登志矢、佐々木広、中村宏ら著 コンパイラによる細粒度スリープ制御のためのアーキテクチャ支援技術の検討 情報処理学会研究報告. 計算機アーキテクチャ研究会報告 2009-ARC-184(14),1-8,2009-07-28
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上述のライトバック処理によって発生する消費電力量が、キャッシュメモリに対する電力供給を停止しない場合の消費電力量よりも大きい場合も想定される。この場合にライトバック処理を行ってキャッシュメモリに対する電力供給を停止することは、消費電力量の低減に繋がらない。すなわち、アイドル状態の場合は無条件にライトバック処理を行ってキャッシュメモリに対する電力供給を停止する構成では、消費電力量を効率的に低減することが困難であるという問題がある。
【0006】
本発明が解決しようとする課題は、消費電力量を効率的に低減可能な制御システム、制御方法およびプログラムを提供することである。
【課題を解決するための手段】
【0007】
実施形態の制御システムは、処理装置と主記憶装置とキャッシュメモリと電源部とを備えた制御システムであって、検出部と推定部と判断部と制御部とを備える。検出部はアイドル状態を検出する。推定部はアイドル時間を推定する。判断部は、アイドル状態が検出された場合、主記憶装置への書き戻しが必要なデータの書き戻しを行ってキャッシュメモリに対する電力の供給を停止した場合の第1消費電力量が、当該データの書き戻しを行わずにアイドル時間にわたってキャッシュメモリに対する電力の供給を継続した場合の第2消費電力量よりも大きいか否かを判断する。制御部は、第1消費電力量が第2消費電力量よりも小さいと判断された場合は、キャッシュメモリに対する電力供給を停止させる一方、第1消費電力量が第2消費電力量よりも大きいと判断された場合は、キャッシュメモリに対する電力供給を継続させる。
【0008】
実施形態の制御方法は、処理装置と主記憶装置とキャッシュメモリと電源部とを備えた制御システムの制御方法であって、検出ステップと推定ステップと判断ステップと制御ステップとを備える。検出ステップではアイドル状態を検出する。推定ステップではアイドル時間を推定する。判断ステップでは、アイドル状態が検出された場合、主記憶装置への書き戻しが必要なデータの書き戻しを行ってキャッシュメモリに対する電力の供給を停止した場合の第1消費電力量が、当該データの書き戻しを行わずにアイドル時間にわたってキャッシュメモリに対する電力の供給を継続した場合の第2消費電力量よりも大きいか否かを判断する。制御ステップでは、第1消費電力量が第2消費電力量よりも小さいと判断された場合は、キャッシュメモリに対する電力供給を停止させる一方、第1消費電力量が第2消費電力量よりも大きいと判断された場合は、キャッシュメモリに対する電力供給を継続させる。
【0009】
実施形態のプログラムは、処理装置と主記憶装置とキャッシュメモリと電源部とを備えたコンピュータに、検出ステップと推定ステップと判断ステップと制御ステップとを実行させるためのプログラムである。検出ステップではアイドル状態を検出する。推定ステップではアイドル時間を推定する。判断ステップでは、アイドル状態が検出された場合、主記憶装置への書き戻しが必要なデータの書き戻しを行ってキャッシュメモリに対する電力の供給を停止した場合の第1消費電力量が、当該データの書き戻しを行わずにアイドル時間にわたってキャッシュメモリに対する電力の供給を継続した場合の第2消費電力量よりも大きいか否かを判断する。制御ステップでは、第1消費電力量が第2消費電力量よりも小さいと判断された場合は、キャッシュメモリに対する電力供給を停止させる一方、第1消費電力量が第2消費電力量よりも大きいと判断された場合は、キャッシュメモリに対する電力供給を継続させる。
【図面の簡単な説明】
【0010】
【図1】第1実施形態の制御システムのブロック図。
【図2】第1実施形態のキャッシュメモリの構成例を示す図。
【図3】第1実施形態の制御システムの機能ブロック図。
【図4】第1実施形態の第1消費電力量と第2消費電力量との関係を示す図。
【図5】第1実施形態の電源制御処理の一例を示すフローチャート。
【図6】第1実施形態の再開処理の一例を示すフローチャート。
【図7】第2実施形態のキャッシュメモリの構成例を示す図。
【図8】第2実施形態の制御システムの機能ブロック図。
【図9】第2実施形態の第1スワップ処理の一例を示すフローチャート。
【図10】第2実施形態の第2スワップ処理の一例を示すフローチャート。
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら、本発明に係る制御システム、制御方法およびプログラムの実施の形態を詳細に説明する。
【0012】
(第1実施形態)
図1は、第1実施形態の制御システム100の構成例を示すブロック図である。図1に示すように、制御システム100は、処理装置10と、キャッシュメモリ20と、主記憶装置30と、電力を供給する電源部40とを含んで構成される。キャッシュメモリ20と主記憶装置30は、バス110を介して接続される。なお、ここでは詳細な図示は省略するが、本実施形態の制御システム100は、他にも、ROM、HDDやSSDなどの外部記憶装置、ディスプレイなどの表示装置、マウスやキーボードなどの入力装置、および、通信I/F装置などを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0013】
処理装置10は、データを処理する。処理装置10は、各種の処理を実行し、制御システム100全体の動作を制御する。処理装置10は、例えばCPU(Central Processing Unit)などの制御装置で構成され得る。主記憶装置30は、処理装置10が実行する処理に用いられる複数のデータを記憶する。
【0014】
キャッシュメモリ20は、主記憶装置30に記憶された複数のデータの一部を記憶する。キャッシュメモリ20は、例えばスタティックRAM(Random Access Memory)などの揮発性のメモリで構成され、電力の供給が停止すると記憶内容は消失する。図2は、キャッシュメモリ20の構成例を示すブロック図である。図2に示すように、キャッシュメモリ20は、有効ビット21、ダーティビット22、アドレス23を格納するタグメモリアレイ24と、キャッシュ対象のデータ(「キャッシュデータ」と呼ぶ)25を格納するデータメモリアレイ26と、ダーティビットカウンタ27とを有する。
【0015】
キャッシュメモリ20は、エントリ28単位でデータを格納し、各エントリ28は、有効ビット21、ダーティビット22、アドレス23およびキャッシュデータ25で構成される。
【0016】
有効ビット21は、対応するエントリ28のキャッシュデータ25が有効か否かを示す。図3の例では、対応するエントリ28のキャッシュデータ25が有効である場合、有効ビット21は「1」に設定され、キャッシュデータ25が無効である場合、有効ビット21は「0」に設定される。
【0017】
ダーティビット22は、対応するエントリ28のキャッシュデータ25が、主記憶装置30のうち当該エントリ28のアドレス23が示す位置に格納されたデータと一致しているか否かを示す。図3の例では、ダーティビット22は、対応するエントリ28のキャッシュデータ25が、主記憶装置30のうち当該エントリ28のアドレス23が示す位置に格納されたデータと一致していない場合は「1」に設定される。一方、対応するエントリ28のキャッシュデータ25が、主記憶装置30のうち当該エントリ28のアドレス23が示す位置に格納されたデータと一致している場合は、ダーティビット22は「0」に設定される。例えばデータの転送命令(ストア命令)が発行されて、あるエントリ28のキャッシュデータ25が書き換えられた場合、そのエントリ28のダーティビット22は「1」に設定される。見方を変えれば、ダーティビット22は、対応するエントリ28のキャッシュデータ25が、主記憶装置30への書き戻しが必要なデータであるか否かを示す情報であると捉えることもできる。
【0018】
アドレス23は、主記憶装置30のうち、対応するエントリ28のキャッシュデータ25が格納されるべき位置を示す。
【0019】
ダーティビットカウンタ27は、ダーティビット22が「1」に設定されたエントリ28の総数をカウントする。すなわち、ダーティビットカウンタ27は、キャッシュデータ25のうち、主記憶装置30への書き戻しが必要なキャッシュデータ25の総数をカウントする。
【0020】
図3は、処理装置10が不図示のHDD等に格納されたプログラムを実行することにより実現される機能を示すブロック図である。つまりは、制御システム100の機能ブロック図であると捉えることもできる。図3に示すように、制御システム100の機能には、検出部51と推定部52と判断部53と判断部53と再開部55とが含まれる。なお、これらの機能のうちの少なくとも一部を個別の回路(ハードウェア)で実現することもできる。
【0021】
検出部51は、処理装置10が処理を実行していないアイドル状態であるか否かを検出する。推定部52は、アイドル状態が継続する時間を示すアイドル時間を推定する。推定部52によるアイドル時間の推定方法は任意である。例えばキーなどのデバイスの操作入力待ちにより処理装置10がアイドル状態となる場合を想定する。デバイスの操作入力は個人差があるものの、同じ人が入力するタイミングは大体同じであると考えられるので、過去の操作入力の履歴から操作入力が行われる間隔の平均値(平均間隔と呼ぶ)を求め、その求めた平均間隔から、前回の操作入力が行われてから経過した時間を引いた値をアイドル時間として推定することもできる。例えば過去3回の操作入力の間隔が、500ms,450ms,550msで、前回の操作入力が行われてから経過した時間が100msの場合、{(500+450+550)/3−100}×1000=400,000μsecをアイドル時間として推定することができる。
【0022】
判断部53は、検出部51によりアイドル状態が検出された場合、キャッシュメモリ20に格納されたキャッシュデータ25のうち主記憶装置30への書き戻しが必要なキャッシュデータ25の書き戻しを行ってキャッシュメモリ20に対する電力の供給を停止した場合の第1消費電力量E1が、当該キャッシュデータ25の書き戻しを行わずに、推定部52で推定されたアイドル時間にわたってキャッシュメモリ20に対する電力の供給を継続した場合の第2消費電力量E2よりも小さいか否かを判断する。より具体的には、判断部53は、キャッシュメモリ20に格納されたキャッシュデータ25のうち主記憶装置30への書き戻しが必要なキャッシュデータ25の総数(ダーティビットカウンタ27のカウント値)と、推定部52で推定されたアイドル時間とを用いて、第1消費電力量E1が第2消費電力量E2よりも小さいか否かを判断する。さらに詳述すれば以下のとおりである。
【0023】
いま、書き戻しが行われる場合の平均電力量をPw、1つのキャッシュデータ25の書き戻しに必要な時間の平均値をTw1、書き戻しが必要なデータの総数をWB、キャッシュメモリ20に対する通電を停止して再度通電する際に発生するオーバヘッド分の消費電力量をCとすれば、第1消費電力量E1は式(1)で表される。
E1=Pw×(Tw1×WB)+C (1)
【0024】
また、キャッシュメモリ20に対する電力供給が行われている場合の平均消費電力量をPo、推定部52で推定されたアイドル時間をTとすれば、第2消費電力量E2は式(2)で表される。
E2=Po×T (2)
【0025】
ここで、第1消費電力量E1が第2消費電力量E2よりも小さい場合は、式(3)が成立する。
WB<(Po/Pw/Tw1)×T−(C/Pw/Tw1) (3)
式(3)において、(Po/Pw/Tw1)および(C/Pw/Tw1)の各々の値は、制御システム100の構成に応じて決定される。したがって、(Po/Pw/Tw1)を定数Aに置き換え、(C/Pw/Tw1)を、定数Bに置き換えることで、式(3)を式(4)に変形できる。
WB<A×T−B (4)
すなわち、主記憶装置30への書き戻しが必要なキャッシュデータ25の総数WBと、アイドル時間Tとが分かれば、式(4)が成立するか否かを判断することで、第1消費電力量E1が第2消費電力量E2よりも小さいか否かを判断することができる。
【0026】
例えば図4において、第1の所定数のキャッシュデータ25の書き戻しを行う場合の消費電力量(第1消費電力量E1)をP1、第1の所定数よりも小さい第2の所定数のキャッシュデータ25の書き戻しを行う場合の消費電力量をP2、第2の所定数よりも小さい第3の所定数のキャッシュデータの書き戻しを行う場合の消費電力量をP3と表記する。いま、推定部52で推定されたアイドル時間TがTxであって、キャッシュデータ25の書き戻しを行わずにキャッシュメモリ20に対する電力供給を継続した場合の消費電力量(第2消費電力量E2)はP2に等しいとする。この場合、主記憶装置30への書き戻しが必要なキャッシュデータ25の総数WB(ダーティビットカウンタ27のカウント値)が第2の所定数よりも少なければ、第1消費電力量E1は第2消費電力量E2よりも小さくなる。一方、主記憶装置30への書き戻しが必要なキャッシュデータ25の総数WBが第2の所定数よりも多ければ、第1消費電力量E1は第2消費電力量E2よりも大きくなる。
【0027】
再び図3に戻って説明を続ける。判断部53により第1消費電力量E1が第2消費電力量E2よりも小さいと判断された場合、制御部54は、キャッシュデータ25の書き戻しを行ってキャッシュメモリ20に対する電源部40からの電力供給を停止させる。一方、判断部53により第1消費電力量E1が第2消費電力量E2よりも大きいと判断された場合、制御部54は、キャッシュデータ25の書き戻しを行わずにキャッシュメモリ20に対する電源部40からの電力供給を継続させる。
【0028】
再開部55は、キャッシュメモリ20に対する電力の供給が停止されている状態において、復帰要因を受け付けた場合に、キャッシュメモリ20に対する電力の供給を再開するように電源部40を制御する。復帰要因の種類は任意であり、例えば割り込み処理が復帰要因であってもよい。この場合、再開部55は、キャッシュメモリ20に対する電力の供給が停止されている状態において、割り込み処理を受け付けた場合に、キャッシュメモリ20に対する電力の供給を再開するように電源部40を制御する。
【0029】
図5は、制御システム100が実行する電源制御処理の一例を示すフローチャートである。この電源制御処理は、処理装置10が所定のソフトウェアプログラムを実行することにより実現される。図5に示すように、検出部51によりアイドル状態が検出された場合(ステップS1の結果:YES)、推定部52はアイドル時間を推定する(ステップS2)。
【0030】
次に、判断部53は、第1消費電力量E1が第2消費電力量E2よりも小さいか否かを判断する判断処理を行う(ステップS3)。本実施形態では、判断部53は、ダーティビットカウンタ27のカウント値を取得することで、主記憶装置30への書き戻しが必要なキャッシュデータ25の総数WBを特定する。そして、判断部53は、特定したキャッシュデータ25の総数WBと、ステップS2で推定されたアイドル時間Tとを用いて、上述の式(4)が成立するか否かを判断する。上述の式(4)が成立する場合は、第1消費電力量E1が第2消費電力量E2よりも小さいと判断する一方、上述の式(4)が成立しない場合は、第1消費電力量E1が第2消費電力量E2よりも大きいと判断する。
【0031】
例えば、上述の式(4)において、定数Aが1/100、定数Bが100、ステップS2で推定されたアイドル時間Tが400,00μsec、主記憶装置30への書き戻しが必要なキャッシュデータ25の総数(ダーティビットカウンタ27のカウント値)WBが200である場合を想定する。この場合、A×T−B=390となり、主記憶装置30への書き戻しが必要なキャッシュデータ25の総数WB(=200)を上回るので、式(4)は成立しない。したがって、判断部53は、第1消費電力量E1が第2消費電力量E2よりも大きいと判断する。
【0032】
判断部53により第1消費電力量E1が第2消費電力量E2よりも小さいと判断された場合(ステップS4の結果:YES)、制御部54は、ダーティビットが「1」に設定されたエントリ28のキャッシュデータ25を、主記憶装置30のうち当該エントリ28のアドレス23が示す位置に書き込む書き戻し処理を実行する(ステップS5)。書き戻し処理の後、制御部54は、キャッシュメモリ20に対する電力供給を停止するように電源部40を制御する(ステップS6)。
【0033】
一方、判断部53により第1消費電力量E1が第2消費電力量E2よりも大きいと判断された場合(ステップS4の結果:NO)、制御部54は、キャッシュメモリ20に対する電力供給を継続するように電源部40を制御する(ステップS7)。以上が電源制御処理の内容である。
【0034】
図6は、キャッシュメモリ20に対する電力供給を再開する再開処理の一例を示すフローチャートである。この再開処理は、処理装置10が所定のソフトウェアプログラムを実行することにより実現される。図6に示すように、復帰要因を受け付けた場合(ステップS11の結果:YES)、再開部55は、キャッシュメモリ20に対する電力の供給を再開するように電源部40を制御する(ステップS12)。
【0035】
以上に説明したように、本実施形態では、第1消費電力量E1が第2消費電力量E2よりも小さいと判断された場合は、キャッシュデータ25の書き戻しを行ってキャッシュメモリ20に対する電源部40からの電力供給を停止させる一方、第1消費電力量E1が第2消費電力量E2よりも大きいと判断された場合は、キャッシュデータ25の書き戻しを行わずにキャッシュメモリ20に対する電力供給を継続するので、第1消費電力量E1と第2消費電力量E2との関係を考慮せずに、アイドル状態が検出された場合は無条件にキャッシュデータ25の書き戻しを行う構成に比べて、消費電力量を効率的に低減することが可能になる。
【0036】
(第2実施形態)
次に、第2実施形態について説明する。第2実施形態のキャッシュメモリ200は、データが格納されるメモリ領域(「バンク」)が、複数のウェイごとに割り当てられたセットアソシアティブ方式のキャッシュメモリであり、キャッシュメモリ200に対する電源部40からの電力供給は、各ウェイに対応するメモリ領域ごとに行われる点で第1実施形態と相違する。以下、第1実施形態と相違する部分を中心に説明し、第1実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。
【0037】
図7は、第2実施形態のキャッシュメモリ200の構成例を示す図である。一例として、第2実施形態のキャッシュメモリ200は、4ウェイセットアソシアティブ方式のキャッシュメモリである。図7の例では、キャッシュメモリ200には、4つのウェイ(ウェイ0〜ウェイ3)の各々に割り当てられるメモリ領域が設けられる。ウェイ0に割り当てられるメモリ領域は、ウェイ0に対応するタグメモリアレイ240と、ウェイ0に対応するデータメモリアレイ260とを含む。ウェイ1に割り当てられるメモリ領域は、ウェイ1に対応するタグメモリアレイ241と、ウェイ1に対応するデータメモリアレイ261とを含む。ウェイ2に割り当てられるメモリ領域は、ウェイ2に対応するタグメモリアレイ242と、ウェイ2に対応するデータメモリアレイ262とを含む。ウェイ3に割り当てられるメモリ領域は、ウェイ3に対応するタグメモリアレイ243と、ウェイ3に対応するデータメモリアレイ263とを含む。キャッシュメモリ200は、エントリ28単位でデータを格納し、各エントリ28は、各ウェイに対応する有効ビット21、ダーティビット22、アドレス23およびキャッシュデータ25で構成される。なお、各エントリ28のデータは、ウェイ間で入れ替えることもできる。
【0038】
また、キャッシュメモリ200が有するダーティビットカウンタ270は、ダーティビット22が「1」に設定されたエントリ28の総数をウェイごとにカウントする。
【0039】
図8は、第2実施形態の制御システム300の機能ブロック図である。図8に示すように、制御システム300の機能には、入替部56がさらに含まれる点で第1実施形態と相違する。入替部56は、同じエントリ28におけるデータを2つのウェイ間で入れ替える処理(スワップ処理)を行う。この詳細な内容については後述する。また、第2実施形態の判断部530は、各ウェイに対応するメモリ領域ごとに、第1消費電力量E1が第2消費電力量E2よりも小さいか否かを判断する。すなわち、判断部530は、メモリ領域ごとに、ダーティビットが「1」に設定されたエントリ28の総数WBを特定する。そして、その特定した総数WBと、推定部52で推定されたアイドル時間Tとを用いて、上述の式(4)が成立するか否かの判断をメモリ領域ごとに行う。
【0040】
さらに、第2実施形態の制御部540は、第1消費電力量E1が第2消費電力量E2よりも小さいと判断されたメモリ領域については、当該メモリ領域に格納されたキャッシュデータ25のうち、対応するダーティビット22が「1」に設定されたキャッシュデータ25の書き戻しを行って当該メモリ領域に対する電源部40からの電力供給を停止させる。一方、第1消費電力量E1が第2消費電力量E2よりも大きいと判断されたメモリ領域については、当該メモリ領域に格納されたキャッシュデータ25のうち、対応するダーティビット22が「1」に設定されたキャッシュデータ25の書き戻しを行わずに当該メモリ領域に対する電源部40からの電力供給を継続させる。
【0041】
図9は、あるウェイiの第x番目のエントリ28(所定のエントリ)に対してダーティビット22を「1」に書き換えることが要求された場合(例えばストア命令が発行された場合)に、他のウェイj(i≠j)の第x番目のエントリ28に格納されたデータと入れ替える第1スワップ処理の一例を示すフローチャートである。
【0042】
図9に示すように、まず入替部56は、スワップ対象のウェイjを示す番号jを「0」に初期化する(ステップS21)。次に、入替部56は、番号jが、ダーティビット22の書き換えを要求されたウェイiを示す番号iよりも小さいか否かを判定する(ステップS22)。番号jが番号iよりも小さいと判定した場合(ステップS22の結果:YES)、入替部56は、番号jが示すウェイjの第x番目のエントリ28のダーティビット22が「0」であるか否かを判定する(ステップS23)。一方、番号jが番号iよりも大きいと判定した場合(ステップS22の結果:NO)、処理は後述のステップS26に移行する。
【0043】
ステップS23において、ウェイjの第x番目のエントリ28のダーティビット22が「0」ではないと判定した場合(ステップS23の結果:NO)、入替部56は、スワップ対象のウェイを示す番号jの値を1だけカウントアップし(ステップS24)、前述のステップS22からの処理を繰り返す。一方、ウェイjの第x番目のエントリ28のダーティビット22が「0」であると判定した場合(ステップS23の結果:YES)、入替部56は、ウェイiの第x番目のエントリ28に格納されたデータと、ウェイjの第x番目のエントリ28に格納されたデータとを入れ替える(ステップS25)。そして、入替部56は、ウェイjの第x番目のエントリ28に対応するダーティビット22を「1」に設定する(ステップS26)。
【0044】
図10は、あるウェイiの第x番目のエントリ28(所定のエントリ)に対してダーティビット22を「0」に書き換えることが要求された場合(例えば書き戻しを行う場合)に、他のウェイjの第x番目のエントリ28に格納されたデータと入れ替える第2スワップ処理の一例を示すフローチャートである。
【0045】
図10に示すように、まず入替部56は、ウェイ数(この例では「4」)から1を差し引いた値を、スワップ対象のウェイを示す番号jとして設定する(ステップS31)。次に、入替部56は、番号jが、ダーティビット22の書き換えを要求されたウェイiを示す番号iよりも大きいか否かを判定する(ステップS32)。番号jが番号iよりも大きいと判定した場合(ステップS32の結果:YES)、入替部56は、ウェイjの第x番目のエントリ28のダーティビット22が「1」であるか否かを判定する(ステップS33)。一方、番号jが番号iよりも小さいと判定した場合(ステップS32の結果:NO)、処理は後述のステップS36に移行する。
【0046】
ステップS33において、ウェイjの第x番目のエントリ28のダーティビット22が「1」ではないと判定した場合(ステップS33の結果:NO)、入替部56は、スワップ対象のウェイを示す番号jの値を1だけカウントダウンし(ステップS34)、前述のステップS32からの処理を繰り返す。一方、ウェイjの第x番目のエントリ28のダーティビット22が「1」であると判定した場合(ステップS33の結果:YES)、入替部56は、ウェイiの第x番目のエントリ28に格納されたデータと、ウェイjの第x番目のエントリ28に格納されたデータとを入れ替える(ステップS35)。そして、入替部56は、ウェイjの第x番目のエントリ28に対応するダーティビット22を「0」に設定する(ステップS36)。
【0047】
以上に説明したように、本実施形態では、主記憶装置30への書き戻しが必要なデータ(ダーティビット22が「1」に設定されたキャッシュデータ25)は、番号が小さいウェイに対応するメモリ領域に集約されるので、アイドル状態においては、番号が大きいウェイに対応するメモリ領域に対する電力供給が優先的に停止される。
【0048】
例えばウェイ0のダーティビット22のカウント値が800、ウェイ1のダーティビット22のカウント値が500、ウェイ2のダーティビット22のカウント値が200、ウェイ3のダーティビット22のカウント値が100、推定部52で推定されたアイドル時間Tが400,000μsec、上述の式(4)における定数Aが1/100、定数Bが100の場合を想定する。この場合、上述の式(4)において、A×T−B=390となるので、主記憶装置30への書き戻しが必要なキャッシュデータ25の総数WBが390未満であれば、第1消費電力量E1は第2消費電力量E2よりも小さいと判断される。したがって、ウェイ0およびウェイ1の各々に対応するメモリ領域については、キャッシュデータ25の書き戻しが行われずに電源部40からの電力供給が継続される。一方、ウェイ2およびウェイ3の各々に対応するメモリ領域については、キャッシュデータ25の書き戻しが行われて電源部40からの電力供給が停止される。
【0049】
なお、本実施形態では、4ウェイセットアソシアティブ方式のキャッシュメモリを例に挙げて説明したが、これに限らず、ウェイ数は任意である。要するに、キャッシュメモリは、第1ウェイに割り当てられた第1メモリ領域と、第2ウェイに割り当てられた第2メモリ領域とを少なくとも備えていればよい。
【0050】
また、本実施形態とは反対に、主記憶装置30への書き戻しが必要なキャッシュデータ25(ダーティビット22が「1」に設定されたキャッシュデータ25)が、番号が大きいウェイに対応するメモリ領域に集約される構成であってもよい。要するに、入替部56は、第1メモリ領域の第1エントリに格納されたデータが、主記憶装置30への書き戻しが必要なデータであって、第2メモリ領域の第1エントリに格納されたデータが、主記憶装置30への書き戻しが必要なデータではない場合、第1メモリ領域の第1エントリに格納されたデータと、第2メモリ領域の第2エントリに格納されたデータとを入れ替える機能を有するものであればよい。これにより、主記憶装置30への書き戻しが必要なデータを第2メモリ領域に集約することが可能になる。なお、第2メモリ領域に対応する第2ウェイを示す番号と第1ウェイを示す番号との大小関係は任意に変更可能である。
【0051】
さらに、本実施形態では、ダーティビット22が「1」に設定されたキャッシュデータ25が、番号が小さいウェイに対応するメモリ領域に集約される構成を説明したが、例えば有効ビット21が「1」に設定されたキャッシュデータ25が、番号が小さいウェイ(または番号が大きいウェイ)に対応するメモリ領域に集約される構成とすることもできる。
【0052】
以上、本発明の実施形態を説明したが、上述の各実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0053】
また、上述の各実施形態の処理装置10が実行するプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上述の各実施形態の処理装置10が実行するプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上述の各実施形態の処理装置10が実行するプログラムを、ROM等に予め組み込んで提供するようにしてもよい。
【符号の説明】
【0054】
10 処理装置
20 キャッシュメモリ
21 有効ビット
22 ダーティビット
23 アドレス
24 タグメモリアレイ
25 キャッシュデータ
26 データメモリアレイ
27 ダーティビットカウンタ
28 エントリ
30 主記憶装置
40 電源部
51 検出部
52 推定部
53 判断部
54 制御部
55 再開部
56 入替部
100 制御システム
110 バス
200 キャッシュメモリ
240 タグメモリアレイ
241 タグメモリアレイ
242 タグメモリアレイ
243 タグメモリアレイ
260 データメモリアレイ
261 データメモリアレイ
262 データメモリアレイ
263 データメモリアレイ
270 ダーティビットカウンタ
300 制御システム
530 判断部
540 制御部

【特許請求の範囲】
【請求項1】
データを処理する処理装置と、
複数の前記データを記憶する主記憶装置と、
前記主記憶装置に記憶された複数の前記データの一部を記憶するキャッシュメモリと、
電力を供給する電源部と、を備えた制御システムであって、
前記処理装置が前記処理を実行していないアイドル状態であるか否かを検出する検出部と、
前記アイドル状態が継続する時間を示すアイドル時間を推定する推定部と、
前記アイドル状態が検出された場合、前記キャッシュメモリに格納された前記データのうち前記主記憶装置への書き戻しが必要な前記データの書き戻しを行って前記キャッシュメモリに対する電力の供給を停止した場合の第1消費電力量が、当該データの書き戻しを行わずに前記アイドル時間にわたって前記キャッシュメモリに対する電力の供給を継続した場合の第2消費電力量よりも小さいか否かを判断する判断部と、
前記第1消費電力量が前記第2消費電力量よりも小さいと判断された場合は、前記データの書き戻しを行って前記キャッシュメモリに対する前記電源部からの電力供給を停止させる一方、前記第1消費電力量が前記第2消費電力量よりも大きいと判断された場合は、前記データの書き戻しを行わずに前記キャッシュメモリに対する前記電源部からの電力供給を継続させる制御部と、を備える、
制御システム。
【請求項2】
前記判断部は、前記キャッシュメモリに格納された前記データのうち前記主記憶装置への書き戻しが必要な前記データの総数と、前記アイドル時間とを用いて、前記第1消費電力量が前記第2消費電力量よりも大きいか否かを判断する、
請求項1の制御システム。
【請求項3】
前記第1消費電力量は以下の式(1)で表され、
前記第2消費電力量は以下の式(2)で表される、
請求項2の制御システム。
E1=Pw×(Tw1×WB)+C 式(1)
ただし、E1は第1消費電力量、Pwは書き戻しが行われる場合の平均消費電力量、Tw1は1つのデータの書き戻しに必要な時間の平均値、WBは書き戻しが必要なデータの総数、Cはキャッシュメモリに対する通電を停止して再度通電する際に発生するオーバヘッド分の消費電力量を示す。
E2=Po×T 式(2)
ただし、E2は第2消費電力量、Poはキャッシュメモリに対する電力供給が行われている場合の平均消費電力量、Tはアイドル時間を示す。
【請求項4】
前記判断部は、以下の式(3)が成立する場合は、前記第1消費電力量が前記第2消費電力量よりも小さいと判断する、
請求項3の制御システム。
WB<(Po/Pw/Tw1)×T−(C/Pw/Tw1) 式(3)
【請求項5】
前記キャッシュメモリは、前記データが格納されるメモリ領域が、複数のウェイごとに割り当てられたセットアソシアティブ方式のキャッシュメモリであり、前記キャッシュメモリに対する前記電源部からの電力供給は、各前記ウェイに対応する前記メモリ領域ごとに行われ、
前記判断部は、各前記ウェイに対応する前記メモリ領域ごとに、前記第1消費電力量が前記第2消費電力量よりも小さいか否かを判断し、
前記制御部は、前記第1消費電力量が前記第2消費電力量よりも小さいと判断された前記メモリ領域については、前記データの書き戻しを行って当該メモリ領域に対する前記電源部からの電力供給を停止させる一方、前記第1消費電力量が前記第2消費電力量よりも大きいと判断された前記メモリ領域については、前記データの書き戻しを行わずに当該メモリ領域に対する前記電源部からの電力供給を継続させる、
請求項1の制御システム。
【請求項6】
前記キャッシュメモリは、第1ウェイに割り当てられた第1メモリ領域と、第2ウェイに割り当てられた第2メモリ領域とを備え、
前記第1メモリ領域の所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要な前記データであって、前記第2メモリ領域の前記所定のエントリに格納された前記データが、前記主記憶装置への書き戻しが必要な前記データではない場合、前記第1メモリ領域の前記所定のエントリに格納された前記データと、前記第2メモリ領域の前記所定のエントリに格納された前記データとを入れ替える入替部をさらに備える、
請求項5の制御システム。
【請求項7】
データを処理する処理装置と、
複数の前記データを記憶する主記憶装置と、
前記主記憶装置に記憶された複数の前記データの一部を記憶するキャッシュメモリと、
電力を供給する電源部と、を備えた制御システムの制御方法であって、
前記処理装置が前記処理を実行していないアイドル状態であるか否かを検出する検出ステップと、
前記アイドル状態が継続する時間を示すアイドル時間を推定する推定ステップと、
前記アイドル状態が検出された場合、前記キャッシュメモリに格納された前記データのうち前記主記憶装置への書き戻しが必要な前記データの書き戻しを行って前記キャッシュメモリに対する電力の供給を停止した場合の第1消費電力量が、当該データの書き戻しを行わずに前記アイドル時間にわたって前記キャッシュメモリに対する電力の供給を継続した場合の第2消費電力量よりも小さいか否かを判断する判断ステップと、
前記第1消費電力量が前記第2消費電力量よりも小さいと判断された場合は、前記データの書き戻しを行って前記キャッシュメモリに対する前記電源部からの電力供給を停止させる一方、前記第1消費電力量が前記第2消費電力量よりも大きいと判断された場合は、前記データの書き戻しを行わずに前記キャッシュメモリに対する前記電源部からの電力供給を継続させる制御ステップと、を備える、
制御方法。
【請求項8】
データを処理する処理装置と、
複数の前記データを記憶する主記憶装置と、
前記主記憶装置に記憶された複数の前記データの一部を記憶するキャッシュメモリと、
電力を供給する電源部と、を備えたコンピュータに、
前記処理装置が前記処理を実行していないアイドル状態であるか否かを検出する検出ステップと、
前記アイドル状態が継続する時間を示すアイドル時間を推定する推定ステップと、
前記アイドル状態が検出された場合、前記キャッシュメモリに格納された前記データのうち前記主記憶装置への書き戻しが必要な前記データの書き戻しを行って前記キャッシュメモリに対する電力の供給を停止した場合の第1消費電力量が、当該データの書き戻しを行わずに前記アイドル時間にわたって前記キャッシュメモリに対する電力の供給を継続した場合の第2消費電力量よりも小さいか否かを判断する判断ステップと、
前記第1消費電力量が前記第2消費電力量よりも小さいと判断された場合は、前記データの書き戻しを行って前記キャッシュメモリに対する前記電源部からの電力供給を停止させる一方、前記第1消費電力量が前記第2消費電力量よりも大きいと判断された場合は、前記データの書き戻しを行わずに前記キャッシュメモリに対する前記電源部からの電力供給を継続させる制御ステップと、を実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate