(57)【要約】 【課題】プリフェッチに使用される電力が無駄になることを防止可能な制御装置および情報処理装置を提供する。【解決手段】実施形態の制御装置は、処理装置が処理を実行していないアイドル状態であり、連続してアクセスされるデータストリームの数が閾値未満の場合は、キャッシュメモリに対する電力の供給を停止するように電源部を制御し、アイドル状態であり、連続してアクセスされるデータストリームの数が閾値以上の場合は、キャッシュメモリに対する電力の供給を継続するように電源部を制御する。【選択図】図１
2015026397.tif 000002
【特許請求の範囲】
【請求項１】
処理装置が処理を実行していないアイドル状態であり、連続してアクセスされるデータストリームの数が閾値未満の場合は、キャッシュメモリに対する電力の供給を停止するように電源部を制御し、
前記アイドル状態であり、連続してアクセスされるデータストリームの数が前記閾値以上の場合は、前記キャッシュメモリに対する電力の供給を継続するように電源部を制御する、
制御装置。
【請求項２】
処理を行う処理装置を有し、
前記処理装置が処理を実行していないアイドル状態であり、連続してアクセスされるデータストリームの数が閾値未満の場合は、キャッシュメモリに対する電力の供給を停止し、
前記アイドル状態であり、連続してアクセスされるデータストリームの数が前記閾値以上の場合は、前記キャッシュメモリに対する電力の供給を継続する、
情報処理装置。
【請求項３】
処理装置が処理を実行していないアイドル状態であり、連続してアクセスされるデータストリームの数が閾値未満の場合は、アクセスされたデータを記憶するキャッシュメモリに対する電力の供給を停止するように電源部を制御し、
前記アイドル状態であり、連続してアクセスされるデータストリームの数が前記閾値以上の場合は、前記キャッシュメモリに対する電力の供給を継続するように電源部を制御する、
制御装置。
【請求項４】
処理を行う処理装置を有し、
前記処理装置が処理を実行していないアイドル状態であり、連続してアクセスされるデータストリームの数が閾値未満の場合は、アクセスされたデータを記憶するキャッシュメモリに対する電力の供給を停止し、
前記アイドル状態であり、連続してアクセスされるデータストリームの数が前記閾値以上の場合は、前記キャッシュメモリに対する電力の供給を継続する、
情報処理装置。
【請求項５】
連続してアクセスされるデータストリームの数が閾値未満で、処理装置が処理を実行していないアイドル状態になった場合は、キャッシュメモリに対する電力の供給を停止するように電源部を制御し、
連続してアクセスされるデータストリームの数が前記閾値以上で、前記処理装置が処理を実行していないアイドル状態になった場合は、前記キャッシュメモリに対する電力の供給を継続するように電源部を制御する、
制御装置。
【請求項６】
処理を行う処理装置を有し、
連続してアクセスされるデータストリームの数が閾値未満で、前記処理装置が処理を実行していないアイドル状態になった場合は、キャッシュメモリに対する電力の供給を停止し、
連続してアクセスされるデータストリームの数が前記閾値以上で、前記処理装置が処理を実行していないアイドル状態になった場合は、前記キャッシュメモリに対する電力の供給を継続する、
情報処理装置。
【請求項７】
連続してアクセスされるデータストリームの数が閾値未満で、処理装置が処理を実行していないアイドル状態になった場合は、
アクセスされたデータを記憶するキャッシュメモリに対する電力の供給を停止するように電源部を制御し、
連続してアクセスされるデータストリームの数が前記閾値以上で、前記処理装置が処理を実行していないアイドル状態になった場合は、前記キャッシュメモリに対する電力の供給を継続するように電源部を制御する、
制御装置。
【請求項８】
処理を行う処理装置を有し、
連続してアクセスされるデータストリームの数が閾値未満で、前記処理装置が処理を実行していないアイドル状態になった場合は、アクセスされたデータを記憶するキャッシュメモリに対する電力の供給を停止し、
連続してアクセスされるデータストリームの数が前記閾値以上で、前記処理装置が処理を実行していないアイドル状態になった場合は、前記キャッシュメモリに対する電力の供給を継続する、
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、制御装置および情報処理装置に関する。
【背景技術】
【０００２】
近年、携帯電話、スレート型端末およびタブレット型端末などの情報機器などから、スーパーコンピュータなどの大規模システムに至る幅広い計算機システムにおいて、システムの省電力化が重要な課題となっている。省電力化の一つの方法として、電力を必要としている部分（ユニット）にだけ電力を供給するパワーゲーティング技術などが挙げられる。
【０００３】
例えば計算機システムのプロセッサが何も処理を実行しないアイドル状態の場合、プロセッサの処理に用いられる複数のデータの一部が記憶されるキャッシュメモリに対する電力供給を停止することで、省電力化を図ることができる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】近藤正章、薦田登志矢、佐々木広、中村宏ら著  コンパイラによる細粒度スリープ制御のためのアーキテクチャ支援技術の検討  情報処理学会研究報告.  計算機アーキテクチャ研究会報告  2009-ARC-184(14)，1-8，2009-07-28
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の計算機システムは、主記憶装置に記憶された複数のデータのうち、近い将来プロセッサが使用する可能性が高いデータを予測し、その予測したデータを予めキャッシュメモリ上に読み出すプリフェッチ機能を備えているのが一般的である。ここで、例えばプリフェッチにより読み出されたデータがキャッシュメモリに記憶されているにも関わらず、キャッシュメモリに対する電力の供給が停止された場合は、プリフェッチによりキャッシュメモリ上に読み出されたデータは消えてしまうので、そのデータを使用する際には、再度そのデータをキャッシュメモリ上に読み出す必要がある。このため、プリフェッチに使用される電力が無駄になってしまうという問題がある。
【０００６】
本発明が解決しようとする課題は、プリフェッチに使用される電力が無駄になることを防止可能な制御装置および情報処理装置を提供することである。
【課題を解決するための手段】
【０００７】
実施形態の制御装置は、処理装置が処理を実行していないアイドル状態であり、連続してアクセスされるデータストリームの数が閾値未満の場合は、キャッシュメモリに対する電力の供給を停止するように電源部を制御し、アイドル状態であり、連続してアクセスされるデータストリームの数が閾値以上の場合は、キャッシュメモリに対する電力の供給を継続するように電源部を制御する。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態の制御システムのブロック図。
【図２】第１実施形態の予測アルゴリズムの一例を示す概念図。
【図３】第１実施形態のキャッシュメモリのブロック図。
【図４】第１実施形態のタグの構成例を示す図。
【図５】第１実施形態の制御システムの機能ブロック図。
【図６】第１実施形態の電源制御処理の一例を示すフローチャート。
【図７】第１実施形態の判定処理の一例を示すフローチャート。
【図８】第２実施形態のキャッシュメモリのブロック図。
【図９】第２実施形態の電源制御処理の一例を示すフローチャート。
【図１０】第２実施形態の判定処理の一例を示すフローチャート。
【図１１】第３実施形態において処理装置が実行する命令の一例を示す図。
【図１２】第３実施形態のキャッシュメモリのブロック図。
【図１３】第３実施形態のタグの構成例を示す図。
【図１４】第３実施形態の電源制御処理の一例を示すフローチャート。
【図１５】第３実施形態の判定処理の一例を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら、本発明に係る制御装置および情報処理装置の実施の形態を詳細に説明する。
【００１０】
（第１実施形態）
図１は、第１実施形態の制御システム１００の概略構成例を示すブロック図である。図１に示すように、制御システム１００は、処理装置１０と、キャッシュ部２０と、主記憶装置３０と、電力を供給する電源部４０とを含んで構成される。キャッシュ部２０と主記憶装置３０は、バス１１０を介して相互に接続される。なお、ここでは詳細な図示は省略するが、本実施形態の制御システム１００は、他にも、ＲＯＭ、ＨＤＤやＳＳＤなどの外部記憶装置、ディスプレイなどの表示装置、マウスやキーボードなどの入力装置、および、通信Ｉ／Ｆ装置などを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【００１１】
処理装置１０は、データを処理する。処理装置１０は、各種の処理を実行し、制御システム１００全体の動作を制御する。処理装置１０は、例えばＣＰＵ（Central  Processing  Unit）などの制御装置で構成され得る。主記憶装置３０は、処理装置１０が実行する処理に用いられる複数のデータを記憶する。
【００１２】
キャッシュ部２０は、キャッシュコントローラ５０とキャッシュメモリ６０とを含んで構成される。キャッシュコントローラ５０は、動作制御部５１とプリフェッチ部５２とを備える。動作制御部５１は、主記憶装置３０からのデータの読み出し動作、キャッシュメモリ６０に対するデータの書き込み動作などを制御する。プリフェッチ部５２は、主記憶装置３０に記憶された複数のデータのうち、将来アクセスされる可能性の高いデータを予測して、予めキャッシュメモリ６０上に読み出す（ロードする）プリフェッチを実行する。より具体的には、プリフェッチ部５２は、処理装置１０のメモリアクセス履歴に基づく予測アルゴリズムにより選定されたデータを、予めキャッシュメモリ６０上に読み出す。
【００１３】
図２は、予測アルゴリズムの一例を示す概念図である。図２の例では、処理装置１０は、番号１０のデータ、番号１１のデータ、番号１２のデータの順番でアクセスを行っているので、プリフェッチ部５２は、処理装置１０によるアクセスは番号順に実行されると予測する。そして、プリフェッチ部５２は、将来アクセスされる可能性の高いデータとして、番号１７のデータから順番に選定していき、その選定したデータをキャッシュメモリ６０上に読み出していく。なお、ここでは、連続してアクセスされる１本のデータストリーム（アクセスライン）を予測する予測アルゴリズムを例に挙げて説明したが、これに限らず、予測アルゴリズムは、将来アクセスが行われる可能性の高いデータを予測するものであればよく、その種類は任意である。例えば、処理装置１０がインターリーブ方式のアクセスを行う場合は、複数のアクセスライン（データストリーム）を同時に予測するものであってもよいし、一定間隔おきにアクセスが行われるストライドアクセスを予測するものであってもよい。
【００１４】
再び図１に戻って説明を続ける。キャッシュメモリ６０は、主記憶装置３０に記憶された複数のデータの一部を記憶する。キャッシュメモリ６０は、例えばスタティックＲＡＭ（Random  Access  Memory）などの揮発性のメモリで構成され、電力の供給が停止すると記憶内容は消失する。図３は、キャッシュメモリ６０の構成例を示すブロック図である。キャッシュメモリ６０は、キャッシュされたデータ（以下、「キャッシュデータ」と呼ぶ）６１が配列されて格納されるデータアレイ部６２と、複数のキャッシュデータ６１と１対１に対応する複数のタグ６３が格納されるタグアレイ部６４と、未使用プリフェッチビットカウンタ６５とを有する。
【００１５】
図４は、タグ６３の構成例を示す図である。図４に示すように、タグ６３は、メモリアドレス７１とダーティビット７２と無効ビット７３とプリフェッチビット７４とを含んで構成される。メモリアドレス７１は、対応する主記憶装置３０の位置（ブロック）を示す情報である。ダーティビット７２は、キャッシュデータ６１の内容が、主記憶装置３０のうちメモリアドレス７１が示す位置に格納されたデータの内容と一致しているか否かを示す情報である。この例では、キャッシュデータ６１の内容が、主記憶装置３０のうちメモリアドレス７１が示す位置に格納されたデータの内容と一致していない場合は、ダーティビットは「１」に設定され、キャッシュデータ６１の内容が、主記憶装置３０のうちメモリアドレス７１が示す位置に格納されたデータの内容と一致している場合は、ダーティビットは「０」に設定される。無効ビットは、対応するキャッシュデータ６１がデータアレイ部６２に格納されているか否かを示す情報である。キャッシュデータ６１がデータアレイ部６２に格納されている場合は、無効ビットは「１」に設定され、キャッシュデータ６１がデータアレイ部６２に格納されていない場合は、無効ビットは「０」に設定される。
【００１６】
プリフェッチビット７４は、対応するキャッシュデータ６１が、プリフェッチによりキャッシュメモリ６０上に読み出されたデータであるか否かを示す情報である。キャッシュデータ６１が、プリフェッチによりキャッシュメモリ６０上に読み出されたデータである場合は、プリフェッチビット７４は有効であることを示す「１」に設定され、キャッシュデータ６１が、プリフェッチによりキャッシュメモリ６０上に読み出されたデータではない場合は、プリフェッチビット７４は無効であることを示す「０」に設定される。また、プリフェッチによりキャッシュメモリ６０上に読み出されたキャッシュデータ６１に対して処理装置１０からのアクセスが行われた場合は、当該キャッシュデータ６１に対応するプリフェッチビットは「１」から「０」に設定される。
【００１７】
本実施形態では、キャッシュコントローラ５０（プリフェッチ部５２）は、プリフェッチにより主記憶装置３０のデータをキャッシュメモリ６０上に読み出した場合、その読み出したデータをタグアレイ部６４に格納するとともに、当該読み出したデータに対応するタグ６３を作成してタグアレイ部６４に格納する。また、本実施形態では、キャッシュコントローラ５０（動作制御部５１）は、プリフェッチによりキャッシュメモリ６０上に読み出されたキャッシュデータ６１に対して処理装置１０からのアクセスが行われた場合、当該キャッシュデータ６１に対応するプリフェッチビット７４を「１」から「０」に設定する。
【００１８】
未使用プリフェッチビットカウンタ６５は、プリフェッチによりキャッシュメモリ６０上に読み出されたキャッシュデータ６１の数をカウントする。より具体的には、未使用プリフェッチビットカウンタ６５は、プリフェッチビット７４が「１」に設定されたタグ６３の総数をカウントする。
【００１９】
図５は、処理装置１０が不図示のＨＤＤ等に格納されたプログラムを実行することにより実現される機能を示すブロック図である。つまりは、制御システム１００の機能ブロック図であると捉えることもできる。図５に示すように、制御システム１００の機能には、検出部８１と判定部８２と電源制御部８３と再開処理部８４とが含まれる。なお、これらの機能のうちの少なくとも一部を個別の回路（ハードウェア）で実現することもできる。
【００２０】
検出部８１は、処理装置１０が何も処理を実行していないアイドル状態であるか否かを検出する。判定部８２は、検出部８１により処理装置１０がアイドル状態であると検出された場合、プリフェッチの状態に応じて、キャッシュメモリ６０に対する電力の供給を停止するか否かを判定する。本実施形態では、判定部８２は、プリフェッチによりキャッシュメモリ６０上に読み出されたキャッシュデータ６１の数が閾値未満の場合は、キャッシュメモリ６０に対する電力の供給を停止すると判定する。一方、判定部８２は、プリフェッチによりキャッシュメモリ６０上に読み出されたキャッシュデータ６１の数が閾値以上の場合は、キャッシュメモリ６０に対する電力の供給を継続する（停止しない）と判定する。
【００２１】
より具体的には、判定部８２は、未使用プリフェッチビットカウンタ６５のカウント値が閾値未満の場合は、キャッシュメモリ６０に対する電力の供給を停止すると判定する。一方、判定部８２は、未使用プリフェッチビットカウンタ６５のカウント値が閾値以上の場合は、キャッシュメモリ６０に対する電力の供給を停止しないと判定する。なお、閾値は任意の値に設定することができる。閾値は、制御システム１００の各要素モジュールの性能などに依存するため、制御システム１００に適した値を採用することが好ましい。例えば処理装置１０がインターリーブ方式のアクセスを行う場合、プリフェッチされ得るデータ数の最大値の０．５倍（３本のアクセスラインのうちの２本は予測できていることを示す）を閾値として採用することもできるし、再開時の速度を重視する場合は１などの小さい値を閾値として採用することもできるし、実験的に調整して求めた値を閾値として採用することもできる。
【００２２】
電源制御部８３は、判定部８２によりキャッシュメモリ６０に対する電力の供給を停止すると判定された場合は、キャッシュメモリ６０に対する電力の供給を停止するように電源部４０を制御する。一方、電源制御部８３は、判定部８２によりキャッシュメモリ６０に対する電力の供給を停止しないと判定された場合は、キャッシュメモリ６０に対する電力の供給を継続するように電源部４０を制御する。
【００２３】
再開処理部８４は、キャッシュメモリ６０に対する電力の供給が停止されている状態において、所定の復帰要因を受け付けた場合に、キャッシュメモリ６０に対する電力の供給を再開するように電源部４０を制御する。復帰要因の種類は任意であり、例えば割り込み処理が復帰要因であってもよい。この場合、再開処理部８４は、キャッシュメモリ６０に対する電力の供給が停止されている状態において、割り込み処理を受け付けた場合に、キャッシュメモリ６０に対する電力の供給を再開するように電源部４０を制御する。
【００２４】
図６は、制御システム１００が実行する電源制御処理の一例を示すフローチャートである。この電源制御処理は、処理装置１０が所定のソフトウェアプログラムを実行することにより実現される。図６に示すように、検出部８１により処理装置１０がアイドル状態であると検出された場合（ステップＳ１の結果：ＹＥＳ）、判定部８２は判定処理を実行する（ステップＳ２）。
【００２５】
図７は、ステップＳ２における判定処理の一例を示すフローチャートである。図７に示すように、まず判定部８２は、未使用プリフェッチビットカウンタ６５のカウント値を参照する（ステップ１０１）。次に、判定部８２は、未使用プリフェッチビットカウンタ６５のカウント値（プリフェッチビット７４が「１」に設定されたタグ６３の総数）が閾値以上であるか否かを判定する（ステップＳ１０２）。未使用プリフェッチビットカウンタ６５のカウント値が閾値以上の場合（ステップＳ１０２の結果：ＹＥＳ）、判定部８２は、キャッシュメモリ６０に対する電力の供給を停止しないと判定する（ステップＳ１０３）。一方、未使用プリフェッチビットカウンタ６５のカウント値が閾値未満の場合（ステップＳ１０２の結果：ＮＯ）、判定部８２は、キャッシュメモリ６０に対する電力の供給を停止すると判定する（ステップＳ１０４）。以上が判定処理の内容である。
【００２６】
再び図６に戻って説明を続ける。ステップＳ２の判定処理の結果、キャッシュメモリ６０に対する電力の供給を停止すると判定された場合（ステップＳ３の結果：ＹＥＳ）、電源制御部８３は、キャッシュメモリ６０に対する電力の供給を停止するように電源部４０を制御する（ステップＳ４）。一方、キャッシュメモリ６０に対する電力の供給を停止しないと判定された場合（ステップＳ３の結果：ＮＯ）、電源制御部８３は、キャッシュメモリ６０に対する電力の供給を継続するように電源部４０を制御する（ステップＳ５）。
【００２７】
以上に説明したように、本実施形態では、プリフェッチによりキャッシュメモリ６０上に読み出されたキャッシュデータ６１の数が閾値以上の場合は、処理装置１０がアイドル状態であっても、キャッシュメモリ６０に対する電力の供給は停止されないので、プリフェッチに使用される電力が無駄になることを防止できる。
【００２８】
（第２実施形態）
次に、第２実施形態について説明する。第２実施形態の判定部８２は、プリフェッチ部５２が、将来アクセスされる可能性の高いデータを予測できない場合は、キャッシュメモリ６０に対する電力の供給を停止すると判定し、プリフェッチ部５２が、将来アクセスされる可能性の高いデータを予測できた場合は、キャッシュメモリに対する電力の供給を停止しないと判定する点で上述の第１実施形態と相違する。第１実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。
【００２９】
図８は、第２実施形態のキャッシュメモリ６００の構成例を示すブロック図である。図８に示すように、キャッシュメモリ６００は、前述の未使用プリフェッチビットカウンタ６５の代わりに、プリフェッチ動作カウンタ６６を有する点で第１実施形態と相違するが、その他の構成は第１実施形態のキャッシュメモリ６０と同様である。本実施形態では、プリフェッチ部５２は、主記憶装置３０に記憶された複数のデータのうち将来アクセスされる可能性の高いデータを予測できない場合は、プリフェッチ動作カウンタ６６のカウント値を「０」に設定する。一方、プリフェッチ部５２は、主記憶装置３０に記憶された複数のデータのうち将来アクセスされる可能性が高いデータを予測できた場合は、プリフェッチ動作カウンタ６６のカウント値を「１」に設定する。なお、これに限らず、例えば処理装置１０がインターリーブ方式のアクセスを行う場合、プリフェッチ部５２は、プリフェッチ動作カウンタ６６のカウント値を、予測できたアクセスラインの本数を示す値に設定することもできる。
【００３０】
本実施形態の判定部８２は、プリフェッチ動作カウンタ６６のカウント値が「１」の場合は、キャッシュメモリ６０に対する電力の供給を停止しないと判定する。一方、判定部８２は、プリフェッチ動作カウンタ６６のカウント値が「０」の場合は、キャッシュメモリ６０に対する電力の供給を停止すると判定する。なお、これに限らず、例えば処理装置１０がインターリーブ方式のアクセスを行う場合、判定部８２は、プリフェッチ動作カウンタ６６のカウント値が閾値以上の場合は、キャッシュメモリ６０に対する電力の供給を継続すると判定し、カウント値が閾値未満の場合は、キャッシュメモリ６０に対する電力の供給を停止すると判定することもできる。この場合、閾値は任意の値に設定することができる。
【００３１】
図９は、第２実施形態の電源制御処理の一例を示すフローチャートである。ステップＳ１２の判定処理の内容が第１実施形態と相違するが、その他の内容は第１実施形態の電源制御処理と同様である。
【００３２】
図１０は、ステップＳ１２における判定処理の一例を示すフローチャートである。図１０に示すように、まず判定部８２は、プリフェッチ動作カウンタ６６のカウント値を参照する（ステップ２０１）。次に、判定部８２は、プリフェッチ動作カウンタ６６のカウント値が「１」であるか否かを判定する（ステップＳ２０２）。つまりは、判定部８２は、プリフェッチ部５２が、将来アクセスされる可能性が高いデータを予測できているか否かを判定する。プリフェッチ動作カウンタ６６のカウント値が「１」の場合（ステップＳ２０２の結果：ＹＥＳ）、判定部８２は、キャッシュメモリ６０に対する電力の供給を停止しないと判定する（ステップＳ２０３）。一方、プリフェッチ動作カウンタ６６のカウント値が閾値未満の場合、判定部８２は、キャッシュメモリ６０に対する電力の供給を停止すると判定する（ステップＳ２０４）。以上が判定処理の内容である。
【００３３】
以上に説明したように、本実施形態では、プリフェッチ部５２が、将来アクセスされる可能性が高いデータを予測することができた場合は、処理装置１０がアイドル状態であっても、キャッシュメモリ６０に対する電力の供給は停止されないので、プリフェッチに使用される電力が無駄になることを抑制できる。
【００３４】
（第３実施形態）
次に、第３実施形態について説明する。第３実施形態の制御システムは、主記憶装置３０に記憶された複数のデータのうち、繰り返し利用されるデータを示す繰り返しデータを指定する指定部を備える。また、第３実施形態の判定部８２は、キャッシュメモリ６０００に記憶されたキャッシュデータ６１のうち、指定部により指定された繰り返しデータと一致するキャッシュデータ６１の数と、プリフェッチによりキャッシュメモリ６０００上に読み出されたキャッシュデータ６１の数との合計が閾値未満の場合は、キャッシュメモリ６０００に対する電力の供給を停止すると判定する。一方、判定部８２は、繰り返しデータと一致するキャッシュデータ６１の数と、プリフェッチによりキャッシュメモリ６０００上に読み出されたキャッシュデータ６１の数との合計が閾値以上の場合は、キャッシュメモリ６０００に対する電力の供給を停止しないと判定する。以上の点で第１実施形態と相違するが、第１実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。
【００３５】
図１１は、第３実施形態において、処理装置１０が実行する命令の一例を示す図である。図１１に示すように、処理装置１０が実行する命令には、繰り返し利用データ指定命令１１０１と、繰り返し利用データカウンタ初期化命令１１０２とが含まれる。繰り返し利用データ指定命令１１０１は、繰り返し利用データの範囲を指示するために、繰り返し利用データの先頭メモリアドレスとデータサイズとを指定する。上述の指定部は、処理装置１０が繰り返し利用データ指定命令１１０１を実行することにより実現される機能である。また、処理装置１０が、繰り返し利用データカウンタ初期化命令１１０２を実行することにより、後述の繰り返し利用データカウンタ６７のカウント値が「０」に初期化（リセット）される。
【００３６】
図１２は、第３実施形態のキャッシュメモリ６０００の構成例を示すブロック図である。図１２に示すように、キャッシュメモリ６０００は、繰り返し利用データカウンタ６７をさらに備える点で第１実施形態と相違する。また、タグ６３の構成が第１実施形態と相違する。以下、具体的に説明する。
【００３７】
図１３は、第３実施形態のタグ６３の構成例を示す図である。タグ６３は、繰り返し利用ビット７５をさらに含んで構成される点で第１実施形態と相違する。繰り返し利用ビット７５は、対応するキャッシュデータ６１が、指定部で指定された繰り返し利用データと一致するか否かを示す情報である。対応するキャッシュデータ６１が繰り返し利用データと一致する場合は、繰り返し利用ビットは「１」に設定され、対応するキャッシュデータ６１が繰り返し利用データと一致しない場合は、繰り返し利用ビットは「０」に設定される。キャッシュコントローラ５０（プリフェッチ部５２）は、プリフェッチにより主記憶装置３０のデータをキャッシュメモリ６０上に読み出した場合、その読み出したデータが繰り返し利用データと一致する場合は、繰り返し利用ビット７５を「１」に設定し、その読み出したデータが繰り返し利用データと一致しない場合は、繰り返し利用ビットを「０」に設定する。また、本実施形態では、「１」に設定された繰り返し利用ビット７５は、前述の繰り返し利用データカウンタ初期化命令１１０２が実行されない限り、「１」の値を保持し続ける。例えば「１」に設定された繰り返し利用ビット７５に対応するキャッシュデータ６１に対して処理装置１０からのアクセスが行われた場合でも、その繰り返し利用ビット７５の値は「０」にリセットされない。
【００３８】
図１２に戻って説明を続ける。繰り返し利用データカウンタ６７は、指定部で指定された繰り返し利用データと一致するキャッシュデータ６１の数をカウントする。より具体的には、繰り返し利用データカウンタ６７は、繰り返し利用ビット７５が「１」に設定されたタグ６３の総数をカウントする。
【００３９】
本実施形態では、判定部８２は、未使用プリフェッチビットカウンタ６５のカウント値と繰り返し利用データカウンタ６７のカウント値との合計が閾値未満の場合は、キャッシュメモリ６０に対する電力の供給を停止すると判定する。一方、判定部８２は、未使用プリフェッチビットカウンタ６５のカウント値と繰り返し利用データカウンタ６７のカウント値との合計が閾値以上の場合は、キャッシュメモリ６０に対する電力の供給を停止しないと判定する。なお、閾値は任意の値に設定することができる。閾値は、制御システム１００の各要素モジュールの性能などに依存するため、制御システム１００に適した値を採用することが好ましい。
【００４０】
図１４は、第３実施形態の電源制御処理の一例を示すフローチャートである。ステップＳ２２の判定処理の内容が第１実施形態と相違するが、その他の内容は第１実施形態の電源制御処理と同様である。
【００４１】
図１５は、ステップＳ２２における判定処理の一例を示すフローチャートである。図１５に示すように、まず判定部８２は、未使用プリフェッチビットカウンタ６５および繰り返し利用データカウンタ６７の各々のカウント値を参照する（ステップ３０１）。次に、判定部８２は、未使用プリフェッチビットカウンタ６５のカウント値と繰り返し利用データカウンタ６７のカウント値の合計が閾値以上であるか否かを判定する（ステップＳ３０２）。未使用プリフェッチビットカウンタ６５のカウント値と繰り返し利用データカウンタ６７のカウント値の合計が閾値以上の場合（ステップＳ３０２の結果：ＹＥＳ）、判定部８２は、キャッシュメモリ６０に対する電力の供給を停止しないと判定する（ステップＳ３０３）。一方、未使用プリフェッチビットカウンタ６５のカウント値と繰り返し利用データカウンタ６７のカウント値の合計が閾値未満の場合（ステップＳ３０２の結果：ＮＯ）、判定部８２は、キャッシュメモリ６０に対する電力の供給を停止すると判定する（ステップＳ３０４）。以上が判定処理の内容である。
【００４２】
以上に説明したように、本実施形態では、指定部で指定された繰り返し利用データと一致するキャッシュデータ６１の数と、プリフェッチによりキャッシュメモリ６０上に読み出されたキャッシュデータ６１の数との合計が閾値以上の場合は、処理装置１０がアイドル状態であっても、キャッシュメモリ６０に対する電力の供給は停止されないので、プリフェッチに使用される電力が無駄になることを抑制できる。
【００４３】
以上、本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００４４】
また、上述の各実施形態の処理装置１０が実行するプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上述の各実施形態の処理装置１０が実行するプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上述の各実施形態の処理装置１０が実行するプログラムを、ＲＯＭ等に予め組み込んで提供するようにしてもよい。
【符号の説明】
【００４５】
１０  処理装置
２０  キャッシュ部
３０  主記憶装置
４０  電源部
５０  キャッシュコントローラ
５１  動作制御部
５２  プリフェッチ部
６０  キャッシュメモリ
６１  キャッシュデータ
６２  データアレイ部
６３  タグ
６４  タグアレイ部
６５  未使用プリフェッチビットカウンタ
６６  プリフェッチ動作カウンタ
６７  繰り返し利用データカウンタ
７１  メモリアドレス
７２  ダーティビット
７３  無効ビット
７４  プリフェッチビット
７５  繰り返し利用ビット
８１  検出部
８２  判定部
８３  電源制御部
８４  再開処理部
１００  制御システム
１１０  バス
６００  キャッシュメモリ
１１０１  利用データ指定命令
１１０２  利用データカウンタ初期化命令
６０００  キャッシュメモリ
【図１】
2015026397.tif 000003
【図２】
2015026397.tif 000004
【図３】
2015026397.tif 000005
【図４】
2015026397.tif 000006
【図５】
2015026397.tif 000007
【図６】
2015026397.tif 000008
【図７】
2015026397.tif 000009
【図８】
2015026397.tif 000010
【図９】
2015026397.tif 000011
【図１０】
2015026397.tif 000012
【図１１】
2015026397.tif 000013
【図１２】
2015026397.tif 000014
【図１３】
2015026397.tif 000015
【図１４】
2015026397.tif 000016
【図１５】
2015026397.tif 000017