(57)【要約】  キャッシュ制御装置（２００）は、主記憶装置（３００）上に格納されている情報と同一の情報のみを記憶するＣｌｅａｎ用領域（２０２２）を二次キャッシュデータ部（２０２）上に有する。そして、キャッシュ制御装置（２００）は、自装置の消費電力に関する情報を監視し、消費電力に関する情報が所定の閾値以上であるかを判定し、また、キャッシュメモリの動作率を監視し、動作率が所定の閾値以下であるかを判定する。続いて、キャッシュ制御装置（２００）は、消費電力に関する情報が所定の閾値以上であると判定された場合、または、二次キャッシュメモリの動作率が所定の閾値以下であると判定された場合には、二次キャッシュデータ部（２０２）上のＣｌｅａｎ用領域（２０２２）を縮退するように制御する。
2010137164.tif 000002
【特許請求の範囲】
【請求項１】
主記憶装置上に格納されている情報と同一の情報のみを記憶する同一情報記憶領域を有するキャッシュメモリと、
自装置の消費電力に関する情報を監視し、当該消費電力に関する情報が所定の閾値以上であるかを判定する消費電力監視部と、
前記キャッシュメモリの動作率を監視し、当該動作率が所定の閾値以下であるかを判定する動作率監視部と、
前記消費電力監視部によって前記消費電力に関する情報が所定の閾値以上であると判定された場合、または、前記動作率監視部によって前記動作率が所定の閾値以下であると判定された場合には、前記キャッシュメモリの同一情報記憶領域を縮退するように制御する縮退制御部と、
を備えることを特徴とするキャッシュ制御装置。
【請求項２】
前記縮退制御部は、前記動作率監視部によって前記動作率が所定の閾値以下であると判定された場合には、前記同一情報記憶領域に記憶された情報の状態を示すキャッシュディレクトリの初期化を行なって、前記キャッシュメモリの同一情報記憶領域を縮退するように制御することを特徴とする請求項１に記載のキャッシュ制御装置。
【請求項３】
前記消費電力監視部は、前記縮退制御部によって前記同一情報記憶領域が縮退するように制御された後においては、前記消費電力に関する情報を監視し、当該消費電力に関する情報が所定の閾値以下であるかを判定し、
前記動作率監視部は、前記縮退制御部によって前記同一情報記憶領域が縮退するように制御された後においては、前記動作率を監視し、当該動作率が所定の閾値以上であるかを判定し、
前記消費電力監視部によって前記消費電力に関する情報が所定の閾値以下であると判定された場合、または、前記動作率監視部によって前記動作率が所定の閾値以上であると判定された場合には、前記キャッシュメモリの同一情報記憶領域が復帰するように制御する復帰制御部をさらに備えることを特徴とする請求項１または２に記載のキャッシュ制御装置。
【請求項４】
前記復帰制御部は、前記消費電力監視部によって前記消費電力に関する情報が所定の閾値以下であると判定された場合には、前記キャッシュディレクトリの初期化を行なって、前記キャッシュメモリの同一情報記憶領域が復帰するように制御することを特徴とする請求項１に記載のキャッシュ制御装置。
【請求項５】
前記消費電力監視部は、前記自装置の消費電力に関する情報として、自装置の温度を監視し、当該温度が所定の閾値以上であるかを判定することを特徴とする請求項１に記載のキャッシュ制御装置。
【請求項６】
前記動作率監視部は、前記キャッシュメモリの動作率として、所定時間における前記キャッシュメモリへのリクエスト数を監視し、当該リクエスト数が所定の閾値以下であるかを判定することを特徴とする請求項１に記載のキャッシュ制御装置。
【請求項７】
自装置の消費電力に関する情報を監視し、当該消費電力に関する情報が所定の閾値以上であるかを判定する消費電力監視ステップと、
前記キャッシュメモリの動作率を監視し、当該動作率が所定の閾値以下であるかを判定する動作率監視ステップと、
前記消費電力監視ステップによって前記消費電力に関する情報が所定の閾値以上であると判定された場合、または、前記動作率監視ステップによって前記動作率が所定の閾値以下であると判定された場合には、前記キャッシュメモリにおける主記憶装置上に格納されている情報と同一の情報のみを記憶する同一情報記憶領域を縮退するように制御する縮退制御ステップと、
を含んだことを特徴とするキャッシュ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、キャッシュメモリを制御するキャッシュ制御装置およびキャッシュ制御方法に関する。
【背景技術】
【０００２】
従来より、処理速度を上げるために、主記憶装置ではなくアクセス速度の速いキャッシュメモリにデータを確保するキャッシュ制御回路が知られている。近年、このようなキャッシュ制御回路において、半導体製造技術が向上し微細化が進むにつれ、集積度や漏れ電流の増大により消費電力が大きく、省電力化が注目されている（例えば、特許文献１〜７参照）。【０００３】
例えば、省電力を目的とした技術として、動作クロックや電圧を変動するように制御する技術が知られている（例えば、特許文献８、９参照）。具体的には、キャッシュ制御回路に動作クロックの制御を行う外部回路または電圧の変動制御を行うための外部回路が設けられ、これらの外部回路が動作クロックや電圧を変動させる。【０００４】
また、省電力化を目的とした技術として、消費電力が高い場合に、キャッシュメモリを一時的に切り離す技術が知られている（例えば、特許文献１０〜１２）。具体的には、消費電力が高いと判定された場合に、主記憶装置上に格納されておらずキャッシュメモリにのみ存在するデータであるＤｉｒｔｙなデータをキャッシュメモリから主記憶装置へ書き出した後に、キャッシュメモリを切り離す処理を行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−４５２７５号公報
【特許文献２】特開平２−０４０１９４号公報
【特許文献３】特開平９−２７４７９６号公報
【特許文献４】特開平２−３１０７６２号公報
【特許文献５】特開２００８−１４６８１２号公報
【特許文献６】特開平８−８９９１号公報
【特許文献７】特開平１１−１７７６３７号公報
【特許文献８】特開平５−９４２２７号公報
【特許文献９】特開２００４−３０３２０６号公報
【特許文献１０】特開２００１−１０９７２９号公報
【特許文献１１】特表２００３−５３０６４０号公報
【特許文献１２】特開平２−１５１９５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の動作クロックや電圧を変動する技術では、動作クロックの制御を行う外部回路または電圧の変動制御を行うための複雑な外部回路が必要であり、回路規模が大きくなり、製造コストが大きくなるという課題があった。【０００７】
また、上記のキャッシュメモリを切り離す技術では、キャッシュメモリに格納されたＤｉｒｔｙなデータを主記憶装置へ書き出すので、Ｄｉｒｔｙなデータを主記憶装置へ書き出す処理負荷が高くなる場合があり、切り離し処理を行うまでに時間が掛かる結果、即時に消費電力の削減を行えないという課題があった。【０００８】
開示の技術は、上記に鑑みてなされたものであって、回路規模を大きくすることなく、消費電力の即時削減を行うことを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示するキャッシュ制御装置は、一つの態様において、消費電力が所定の閾値以上であると判定された場合、または、キャッシュメモリ動作率が所定の閾値以下であると判定された場合には、主記憶装置上に格納されている情報と同一の情報のみを記憶する同一情報記憶領域を縮退するようにキャッシュメモリを制御する。
【発明の効果】
【００１０】
本願の開示するキャッシュ制御装置の一つの態様によれば、回路規模を大きくすることなく、消費電力の即時削減を行うことができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係る情報処理装置の構成を示すブロック図である。
【図２】図２は、二次キャッシュディレクトリ部のデータ構成について説明するための図である。
【図３】図３は、実施例１に係るキャッシュ制御装置の切り離し処理および復帰処理の流れを示すフローチャートである。
【図４】図４は、実施例１に係るキャッシュ制御装置のキャッシュ登録処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、この発明に係るキャッシュ制御装置およびキャッシュ制御方法の実施例を詳細に説明する。
【実施例１】
【００１３】
以下の実施例では、実施例１に係るキャッシュ制御装置の構成および処理の流れを順に説明し、最後に実施例１による効果を説明する。【００１４】
［キャッシュ制御装置の構成］
まず最初に、図１を用いて、実施例１に係るキャッシュ制御装置２００を含む情報処理システム１０の構成を説明する。図１は、実施例１に係るキャッシュ制御装置２００の構成を示すブロック図である。【００１５】
図１に示すように、この情報処理システム１０は、ＣＰＵ１００、温度センサ１１０、キャッシュ制御装置２００、主記憶装置３００を有し、バス等を介してそれぞれ接続されている。以下にこれらの各部の処理を説明する。【００１６】
ＣＰＵ１００は、プロセッサコアブロックであって、命令実行制御部１０１および１次キャッシュ部１０２を有する。命令実行制御部１０１は、一次キャッシュ経由で主記憶装置３００から命令を取り出し、命令の実行・演算を行なう。【００１７】
１次キャッシュ部１０２は、データ復元部１０３を有し、命令実行部１０１からのリクエストを受け、データのアクセスを一次キャッシュに対して行なう。また、１次キャッシュ部１０２は、一次キャッシュにデータが登録されていなかった場合には、二次キャッシュをアクセスする。温度センサ１１０は、自装置の温度を測定し、温度情報をキャッシュ制御装置２００の制御部２０５に通知する。【００１８】
データ復元部１０３は、キャッシュ制御装置２００から受信したデータを復元する。具体的には、データ復元部１０３は、キャッシュ制御装置２００からデータとデータ反転フラグとを受信すると、反転フラグを用いてデータを反転させるか否かを判断する。つまり、データ復元部１０３は、データ反転フラグが「１」である場合には、データを反転させてデータを復元する。【００１９】
キャッシュ制御装置２００は、一次キャッシュ部１０２からのリクエストを受け、データのアクセスを二次キャッシュに対して行なう。そして、キャッシュ制御装置２００は、二次キャッシュに登録されていなかった場合は、主記憶装置３００をアクセスする。また、二次キャッシュに登録されていた場合、データ部から読み出して一次キャッシュ部１０２へ応答する。【００２０】
また、キャッシュ制御装置２００は、二次キャッシュディレクトリ部２０１、二次キャッシュデータ部２０２、データ検査復元部２０３、リクエストカウンタ２０４、制御部２０５を有する。以下にこれらの各部の処理を説明する。【００２１】
二次キャッシュディレクトリ部２０１は、二次キャッシュデータ部２０２に登録されたデータの状態に関する状態情報を記録する。また、二次キャッシュディレクトリ部２０１は、Ｃｌｅａｎな登録データに関する状態情報およびＤｉｒｔｙな登録データに関する状態情報を記憶するＣｌｅａｎ／Ｄｉｒｔｙ用領域２０１１と、Ｃｌｅａｎな登録データに関する状態情報のみを記憶するＣｌｅａｎ用領域２０１２とを有する。【００２２】
ここで二次キャッシュディレクトリ部２０１が記憶する状態情報について具体的に説明する。図２は、二次キャッシュディレクトリ部のデータ構成について説明するための図である。具体的には、二次キャッシュディレクトリ部２０１は、図２に示すように、登録データのアドレスを示す「物理アドレス」、二次キャッシュにおける登録データの状態を示す「ステータス」、登録データの状態を示す「反転フラグ」、一次キャッシュにおける登録データの状態を示す「一次キャッシュステータス」を記憶する。【００２３】
例えば、二次キャッシュにおける登録データの状態を示す「ステータス」において、「００：ｉｎｖａｌｉｄ」である場合には、登録データが無効であることを示し、「１０：ｃｌｅａｎ」である場合には、登録データが主記憶装置３００のデータと一致していることを示し、「１１：ｄｉｒｔｙ」である場合には、登録データが主記憶装置３００のデータと一致していないことを示す。【００２４】
また、例えば、登録データの状態を示す「反転フラグ」が「０」である場合には、登録データがそのまま登録されていることを示し、「反転フラグ」が「１」である場合には、登録データが反転して登録されていることを示す。【００２５】
また、例えば、一次キャッシュにおける登録データの状態を示す「一次キャッシュステータス」において、「００：ｉｎｖａｌｉｄ」である場合には、登録データが無効であることを示し、「１０：ｃｌｅａｎ」である場合には、登録データが主記憶装置３００のデータと一致していることを示し、「１１：ｅｘｃｌｕｓｉｖｅ」である場合には、登録データが主記憶装置３００のデータと一致していない場合があることを示す。【００２６】
二次キャッシュデータ部２０２は、記録されたデータ本体が格納されている。また、二次キャッシュデータ部２０２は、Ｃｌｅａｎな登録データおよびＤｉｒｔｙな登録データを記憶するＣｌｅａｎ／Ｄｉｒｔｙ用領域２０２１と、Ｃｌｅａｎな登録データのみを記憶するＣｌｅａｎ用領域２０２２とを有する。【００２７】
つまり、二次キャッシュデータ部２０２は、Ｃｌｅａｎ／Ｄｉｒｔｙ用領域２０２１とＣｌｅａｎ用領域２０２２とで大きく二つに分けられている。なお、領域の分割は、例えばＷａｙ方向で行なってもよい。ここで、Ｄｉｒｔｙなデータとは、ＣＰＵ１００により更新されたデータであり、主記憶装置３００上に格納されておらずキャッシュメモリにのみ存在するデータのことをいう。一方、Ｃｌｅａｎなデータとは、主記憶装置３００上に格納されているデータと同一のデータのことをいう。【００２８】
ここで、Ｃｌｅａｎ／Ｄｉｒｔｙ用領域２０２１またはＣｌｅａｎ用領域２０２２のデータの登録先を分ける処理について説明する。なお、詳細な処理の流れについては、後に図５を用いて詳述する。二次キャッシュデータ部２０２は、ＣＰＵ１００からのリクエストがｓｔｏｒｅ命令である場合には、そのデータがＤｉｒｔｙとなる可能性があるため、Ｃｌｅａｎ／Ｄｉｒｔｙ用領域２０２１へ登録する。また、ＣＰＵ１００からのリクエストがｒｅａｄ命令である場合には、そのデータがＣｌｅａｎであるため、Ｃｌｅａｎ用領域２０２２またはＣｌｅａｎ／Ｄｉｒｔｙ用領域２０２１へ登録する。【００２９】
データ検査復元部２０３は、データ中の「１」の数を数え、データ長の半分よりも多い場合、反転したデータを二次キャッシュデータ部２０２へ送る。そうでなかった場合には、そのままのデータを送る。また、データ検査復元部２０３は、データが反転した場合は、さらに二次キャッシュディレクトリ部２０１へ反転したことを通知する。またｗｒｉｔｅ  ｂａｃｋの際は、二次キャッシュディレクトリ部２０１から反転フラグを受け取り、復元したデータを主記憶装置３００へと送る。【００３０】
リクエストカウンタ２０４は、所定の時間内における二次キャッシュへのリクエスト数を測定し、制御部２０５に通知する。制御部２０５は、二次キャッシュデータ部２０２に対して縮退制御処理および復帰制御処理を行うが、特に、消費電力監視部２０５ａ、動作率監視部２０５ｂ、縮退制御部２０５ｃ、復帰制御部２０５ｄを有する。【００３１】
消費電力監視部２０５ａは、自装置の消費電力に関する情報を監視し、消費電力に関する情報が所定の閾値以上であるかを判定する。具体的には、消費電力監視部２０５ａは、消費電力に関する情報として、温度センサ１１０から温度情報を受信し、自装置の温度が所定の閾値以上であるかを判定する。この結果、消費電力監視部２０５ａは、自装置の温度が所定の閾値以上である場合には、その旨を縮退制御部２０５ｃに通知する。【００３２】
また、消費電力監視部２０５ａは、縮退制御部２０５ｃによって縮退制御が行われた後においては、温度センサ１１０から温度情報を受信し、自装置の温度が所定の閾値以下であるかを判定する。この結果、消費電力監視部２０５ａは、自装置の温度が所定の閾値以下である場合には、その旨を復帰制御部２０５ｄに通知する。【００３３】
動作率監視部２０５ｂは、二次キャッシュメモリの動作率を監視し、二次キャッシュメモリ動作率が所定の閾値以下であるかを判定する。具体的には、動作率監視部２０５ｂは、二次キャッシュメモリの動作率として、リクエストカウンタ２０４から所定の時間内における二次キャッシュへのリクエスト数を受信し、リクエスト数が所定の閾値以下であるかを判定する。この結果、動作率監視部２０５ｂは、リクエスト数が所定の閾値以下である場合には、その旨を縮退制御部２０５ｃに通知する。【００３４】
また、動作率監視部２０５ｂは、縮退制御部２０５ｃによって縮退制御が行われた後においては、リクエストカウンタ２０４から所定の時間内における二次キャッシュへのリクエスト数を受信し、リクエスト数が所定の閾値以上であるかを判定する。この結果、消費電力監視部２０５ａは、リクエスト数が所定の閾値以上である場合には、その旨を復帰制御部２０５ｄに通知する。【００３５】
縮退制御部２０５ｃは、消費電力に関する情報が所定の閾値以上であると判定された場合、または動作率が所定の閾値以下であると判定された場合には、二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２を縮退するように制御する。具体的には、縮退制御部２０５ｃは、消費電力監視部２０５ａから自装置の温度が所定の閾値以上である旨の通知を受信した場合には、速やかに二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２の切り離しを行う。【００３６】
また、縮退制御部２０５ｃは、動作率監視部２０５ｂからリクエスト数が所定の閾値以下である旨の通知を受信した場合には、二次キャッシュディレクトリ部２０１のＣｌｅａｎ用領域２０１２の初期化を行ない、初期化が完了した後、二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２の切り離しを行う。【００３７】
つまり、この切り離し処理を行うことで、切り離されたＣｌｅａｎ用領域２０２２が消費していた電力が削減される。また、Ｃｌｅａｎ用領域２０２２が切り離されて、キャッシュミスが増加することにより、主記憶装置３００にアクセスする回数が増える結果、ＣＰＵ１００の動作率が低下するため、ＣＰＵ１００の動作電力も削減される。【００３８】
また、Ｃｌｅａｎなデータについては、主記憶装置３００上にも存在するため、Ｃｌｅａｎなデータを登録したＣｌｅａｎ用領域２０２２が切り離されたとしても、再度主記憶装置３００をアクセスする事によってデータが取得出来る。従って、この切り離し動作において、Ｄｉｒｔｙなデータを主記憶装置へ書き出す処理が不要であるため、縮退制御処理を即時に実行することが可能である。【００３９】
なお、二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２の切り離し方法については、アクセスを抑止する方法、クロックの印加を抑止する方法、パワーゲートを用いて電源供給を停止する方法などが考えられるが、消費電力が削減されるのであれば、いずれの方法を用いていてもかまわない。【００４０】
復帰制御部２０５ｄは、消費電力に関する情報が所定の閾値以下であると判定された場合、または動作率が所定の閾値以上であると判定された場合には、二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２を復帰するように制御する。【００４１】
具体的には、復帰制御部２０５ｄは、消費電力監視部２０５ａから自装置の温度が所定の閾値以下である旨の通知を受信した場合には、温度状態が回復したと判断して、二次キャッシュディレクトリ部２０１のＣｌｅａｎ用領域２０１２の初期化を行ない、初期化が完了した後、二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２の再接続を行う。【００４２】
また、復帰制御部２０５ｄは、動作率監視部２０５ｂからリクエスト数が所定の閾値以上である旨の通知を受信した場合には、二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２の再接続を速やかに行う。【００４３】
つまり、キャッシュ制御装置２００は、自装置の温度が所定の閾値以上となっている場合には、消費電力がオーバーしている状態であり、省電力の即時性が求められるため、二次キャッシュディレクトリ部２０１のＣｌｅａｎ用領域２０１２の初期化を行わずに、速やかにＣｌｅａｎ用領域２０２２の切り離しを行う。その後、キャッシュ制御装置２００は、消費電力がオーバーした状態が解消して、二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２の再接続を行う直前に二次キャッシュディレクトリ部２０１のＣｌｅａｎ用領域２０１２の初期化を行う。【００４４】
一方、キャッシュ制御装置２００は、二次キャッシュへのリクエスト数が所定の閾値以下となっている場合には、消費電力がオーバーしている状態ではなく、省電力の即時性が求められているわけではないため、二次キャッシュディレクトリ部２０１のＣｌｅａｎ用領域２０１２の初期化を行った後に、Ｃｌｅａｎ用領域２０２２の切り離しを行う。その後、キャッシュ制御装置２００は、二次キャッシュへのリクエスト数が所定の閾値以上となった場合には、Ｃｌｅａｎ用領域２０２２を即時に復帰させたいので、二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２の再接続を速やかに行う。【００４５】
主記憶装置３００は、情報処理装置のメインメモリを備えており、ＣＰＵ１００による演算処理に必要な命令およびデータをすべて格納している。そして、これらの命令およびデータのうち、頻繁に使用されるものが二次キャッシュデータ部２０２やＣＰＵ１００内の一次キャッシュ部１０２に格納されている。【００４６】
［キャッシュ制御装置による処理］
次に、図３、図４を用いて、実施例１に係るキャッシュ制御装置２００による処理を説明する。図３は、実施例１に係るキャッシュ制御装置の切り離し処理および復帰処理の流れを示すフローチャートである。図４は、実施例１に係るキャッシュ制御装置のキャッシュ登録処理の流れを示すフローチャートである。【００４７】
図３に示すように、キャッシュ制御装置２００の消費電力監視部２０５ａは、消費電力に関する情報として、温度センサ１１０から温度情報を受信し、自装置の温度が所定の閾値以上であるかを判定する（ステップＳ１０１）。この結果、自装置の温度が所定の閾値以上であると判定された場合には（ステップＳ１０１肯定）、縮退制御部２０５ｃは、二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２の切り離しを速やかに行う（ステップＳ１０２）。【００４８】
その後、消費電力監視部２０５ａは、縮退制御部２０５ｃによって縮退制御が行われた後においては、温度センサ１１０から温度情報を受信し、自装置の温度が所定の閾値以下であるかを判定する（ステップＳ１０３）。【００４９】
この結果、自装置の温度が所定の閾値以下であると判定された場合には（ステップＳ１０３肯定）、復帰制御部２０５ｄは、二次キャッシュディレクトリ部２０１のＣｌｅａｎ用領域２０１２の初期化を行ない（ステップＳ１０４）、初期化が完了した後、二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２の再接続を行う（ステップＳ１０５）。【００５０】
一方、自装置の温度が所定の閾値以上でないと判定された場合には（ステップＳ１０１否定）、動作率監視部２０５ｂは、二次キャッシュメモリの動作率として、リクエスト数が所定の閾値以下であるかを判定する（ステップＳ１０６）。この結果、リクエスト数が所定の閾値以下でないと判定された場合には（ステップＳ１０６否定）、Ｓ１０１の処理に戻る。【００５１】
また、リクエスト数が所定の閾値以下であると判定された場合には（ステップＳ１０６肯定）、縮退制御部２０５ｃは、二次キャッシュディレクトリ部２０１のＣｌｅａｎ用領域２０１２の初期化を行ない（ステップＳ１０７）、初期化が完了した後、二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２の切り離しを行う（ステップＳ１０８）。【００５２】
その後、動作率監視部２０５ｂは、縮退制御部２０５ｃによって縮退制御が行われた後においては、リクエストカウンタ２０４から所定の時間内における二次キャッシュへのリクエスト数を受信し、リクエスト数が所定の閾値以上であるかを判定する（ステップＳ１０９）。この結果、リクエスト数が所定の閾値以上でないと判定した場合には（ステップＳ１０９否定）、Ｓ１０９の処理に戻る。【００５３】
また、リクエスト数が所定の閾値以上であると判定された場合には（ステップＳ１０９肯定）、復帰制御部２０５ｄは、二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２の再接続を速やかに行う（ステップＳ１０５）。【００５４】
次に、実施例１に係るキャッシュ制御装置２００のキャッシュ登録処理の流れを説明する。図４に示すように、キャッシュ制御装置２００は、ＣＰＵ１００からのリクエストがストア命令であって、かつ、二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２にヒットしたか判定する（ステップＳ３０１）。【００５５】
この結果、キャッシュ制御装置２００は、ストア命令でない、または、Ｃｌｅａｎ用領域２０２２にヒットしていないと判定した場合には（ステップＳ３０１否定）、二次キャッシュデータ部２０２にヒットしたかを判定する（ステップＳ３０２）。【００５６】
この結果、キャッシュ制御装置２００は、二次キャッシュデータ部２０２にヒットしたと判定した場合には（ステップＳ３０２肯定）、一次キャッシュのリプレイスデータがＤｉｒｔｙなデータであるか判定する（ステップＳ３０３）。【００５７】
その結果、キャッシュ制御装置２００は、一次キャッシュのリプレイスデータがＤｉｒｔｙなデータである場合には（ステップＳ３０３肯定）、反転フラグに従って二次キャッシュにライトバックする（ステップＳ３０４）。そして、キャッシュ制御装置２００は、リクエストされたデータを二次キャッシュデータ部２０２から読み出し、データ反転フラグとともにＣＰＵ１００へ転送する（ステップＳ３１５）。【００５８】
また、キャッシュ制御装置２００は、一次キャッシュのリプレイスデータがＤｉｒｔｙなデータでない場合には（ステップＳ３０３否定）、二次キャッシュにライトバックせずに、リクエストされたデータを二次キャッシュデータ部２０２から読み出し、データ反転フラグとともにＣＰＵ１００へ転送する（ステップＳ３１５）。【００５９】
一方、キャッシュ制御装置２００は、Ｓ３０２において、ＣＰＵ１００からのリクエストが二次キャッシュデータ部２０２にヒットしていないと判定した場合には（ステップＳ３０２否定）、リクエストがリード命令であるか判定する（ステップＳ３０５）。この結果、キャッシュ制御装置２００は、リクエストがリード命令である場合には（ステップＳ３０５肯定）、Ｃｌｅａｎ用領域２０２２に空きがあるか判定する（ステップＳ３０６）。この結果、キャッシュ制御装置２００は、Ｃｌｅａｎ用領域２０２２に空きがある場合には（ステップＳ３０６肯定）、空きエントリを使用する（ステップＳ３０９）。【００６０】
また、キャッシュ制御装置２００は、Ｃｌｅａｎ用領域２０２２に空きがない場合には（ステップＳ３０６否定）、Ｃｌｅａｎ／Ｄｉｒｔｙ用領域２０２１に空きがあるか判定する（ステップＳ３０７）。この結果、キャッシュ制御装置２００は、Ｃｌｅａｎ／Ｄｉｒｔｙ用領域２０２１に空きがある場合には（ステップＳ３０７肯定）、空きエントリを使用する（ステップＳ３０９）。【００６１】
また、キャッシュ制御装置２００は、Ｃｌｅａｎ／Ｄｉｒｔｙ用領域２０２１に空きがない場合には（ステップＳ３０７否定）、リプレイス対象をＣｌｅａｎ用領域２０２２に決定し、Ｃｌｅａｎ用領域２０２２で一番使用されていないエントリを削除して空きを作る（ステップＳ３０８）。【００６２】
そして、キャッシュ制御装置２００は、主記憶装置３００データを読み出し（ステップＳ３１０）、読み出したデータに「１」の方が多いか判定する（ステップＳ３１１）。そして、キャッシュ制御装置２００は、読み出したデータに「１」の方が多い場合には（ステップＳ３１１肯定）、データを反転させる（ステップＳ３１２）。また、キャッシュ制御装置２００は、読み出したデータに「１」の方が少ない場合には（ステップＳ３１１否定）、データを反転しない（ステップＳ３１３）。【００６３】
その後、キャッシュ制御装置２００は、二次キャッシュデータ部２０２へデータを登録し（ステップＳ３１４）、二次キャッシュにライトバックせずに、リクエストされたデータを二次キャッシュデータ部２０２から読み出し、データ反転フラグとともにＣＰＵ１００へ転送する（ステップＳ３１５）。【００６４】
一方、キャッシュ制御装置２００は、Ｓ３０１において、ＣＰＵ１００からのリクエストがストア命令であって、かつ、二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２にヒットしたと判定した場合には（ステップＳ３０１肯定）、Ｃｌｅａｎ用領域２０２２のヒットしたエントリを削除する（ステップＳ３１６）。【００６５】
そして、キャッシュ制御装置２００は、Ｃｌｅａｎ／Ｄｉｒｔｙ用領域２０２２に空きがあるか判定する（ステップＳ３１７）。この結果、キャッシュ制御装置２００は、Ｃｌｅａｎ／Ｄｉｒｔｙ用領域２０２２に空きがある場合には（ステップＳ３１７肯定）、上記したステップＳ３０９に進む。【００６６】
また、キャッシュ制御装置２００は、Ｃｌｅａｎ／Ｄｉｒｔｙ用領域２０２２に空きがない場合には（ステップＳ３１７否定）、Ｃｌｅａｎ／Ｄｉｒｔｙ用領域２０２１の一番使用されていないエントリのデータがＣｌｅａｎなデータであるか判定する（ステップＳ３１８）。【００６７】
この結果、キャッシュ制御装置２００は、Ｃｌｅａｎ／Ｄｉｒｔｙ用領域２０２１の一番使用されていないエントリのデータがＣｌｅａｎなデータである場合には（ステップＳ３１８肯定）、リプレイス対象をＣｌｅａｎ／Ｄｉｒｔｙ用領域２０２１に決定する。そして、キャッシュ制御装置２００は、Ｃｌｅａｎ／Ｄｉｒｔｙ用領域２０２１のＣｌｅａｎなデータのエントリを削除して空きを作って（ステップＳ３１９）、上記したステップＳ３１０に進む。【００６８】
また、キャッシュ制御装置２００は、Ｃｌｅａｎ／Ｄｉｒｔｙ用領域２０２１の一番使用されていないエントリのデータがＣｌｅａｎなデータでない場合には（ステップＳ３１８否定）、リプレイス対象をＣｌｅａｎ／Ｄｉｒｔｙ用領域２０２１に決定する。そして、キャッシュ制御装置２００は、反転情報とともにＤｉｒｔｙｎａデータをデータ復元部へ１０３転送し、ＣＰＵ１００が反転情報に従って復元したデータを主記憶装置３００へ書き出して空きを作って（ステップＳ３２０）、上記したステップＳ３１０に進む。【００６９】
[実施例１の効果]
上述してきたように、キャッシュ制御装置２００は、主記憶装置３００上に格納されている情報と同一の情報のみを記憶するＣｌｅａｎ用領域２０２２を二次キャッシュデータ部２０２上に有する。そして、キャッシュ制御装置２００は、自装置の消費電力に関する情報を監視し、消費電力に関する情報が所定の閾値以上であるかを判定し、二次キャッシュメモリの動作率を監視し、動作率が所定の閾値以下であるかを判定する。続いて、キャッシュ制御装置２００は、消費電力に関する情報が所定の閾値以上であると判定された場合、または、二次キャッシュメモリの動作率が所定の閾値以下であると判定された場合には、二次キャッシュデータ部２０２上のＣｌｅａｎ用領域２０２２を縮退するように制御する。このため、キャッシュ制御装置２００は、Ｃｌｅａｎ用領域２０２２の縮退制御において、Ｄｉｒｔｙなデータを主記憶装置３００へ書き出す処理が不要となるため、縮退制御処理を即時に実行することができる。この結果、キャッシュ制御装置２００は、回路規模を大きくすることなく、消費電力の即時削減を行うことができるという効果を奏する。【００７０】
また、実施例１によれば、キャッシュ制御装置２００は、二次キャッシュメモリの動作率が所定の閾値以下であると判定された場合には、Ｃｌｅａｎ用領域２０２２に記憶されたデータの状態を示すキャッシュディレクトリの初期化を行なって、Ｃｌｅａｎ用領域２０２２を縮退するように制御する。このため、キャッシュ制御装置２００は、キャッシュの使用頻度が高くなった場合には、二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２の再接続を速やかに行うことが可能である。【００７１】
また、実施例１によれば、キャッシュ制御装置２００は、Ｃｌｅａｎ用領域２０２２が縮退するように制御された後においては、消費電力に関する情報を監視し、消費電力に関する情報が所定の閾値以下であるかを判定する。また、キャッシュ制御装置２００は、Ｃｌｅａｎ用領域２０２２が縮退するように制御された後においては、二次キャッシュメモリの動作率を監視し、動作率が所定の閾値以上であるかを判定する。そして、キャッシュ制御装置２００は、消費電力に関する情報が所定の閾値以下であると判定された場合、または、二次キャッシュメモリの動作率が所定の閾値以上であると判定された場合には、Ｃｌｅａｎ用領域２０２２が復帰するように制御する。このため、キャッシュ制御装置２００は、消費電力オーバーが解消された場合やキャッシュの使用頻度が高くなった場合には、Ｃｌｅａｎ用領域２０２２の復帰処理を即時に実行することが可能である。【００７２】
また、実施例１によれば、キャッシュ制御装置２００は、消費電力に関する情報が所定の閾値以下であると判定された場合には、Ｃｌｅａｎ用領域２０１２に記憶されたキャッシュディレクトリの初期化を行なって、二次キャッシュデータ部２０２のＣｌｅａｎ用領域２０２２が復帰するように制御する。このため、キャッシュ制御装置２００は、Ｃｌｅａｎ用領域２０２２の再接続を行う直前に二次キャッシュディレクトリ部２０１のＣｌｅａｎ用領域２０１２の初期化を行って、縮退制御を行う際には、二次キャッシュディレクトリ部２０１のＣｌｅａｎ用領域２０１２の初期化を行わないので、速やかにＣｌｅａｎ用領域２０２２の切り離しを行うことが可能である。【００７３】
また、実施例１によれば、キャッシュ制御装置２００は、自装置の消費電力に関する情報として、自装置の温度を監視し、温度が所定の閾値以上であるかを判定するので、自装置の温度を用いて、自装置の消費電力が高いか否かを判定することが可能である。【００７４】
また、実施例１によれば、キャッシュ制御装置２００は、キャッシュメモリの動作率として、所定時間における二次キャッシュデータ部２０２へのリクエスト数を監視し、所定時間内のリクエスト数が所定の閾値以下であるかを判定するので、所定時間内のリクエスト数を用いて、キャッシュメモリの動作率が高いか否かを判定することが可能である。
【実施例２】
【００７５】
さて、これまで本実施例について説明したが、上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例２として本発明に含まれる他の実施例を説明する。【００７６】
（１）システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、縮退制御部２０５ｃと復帰制御部２０５ｄを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【００７７】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【００７８】
（２）プログラム
なお、本実施例で説明したキャッシュ制御方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【００７９】
１００  ＣＰＵ
１０１  命令実行制御部
１０２  一次キャッシュ部
１０３  データ復元部
１１０  温度センサ
２００  キャッシュ制御装置
２０１  二次キャッシュディレクトリ部
２０１１  Ｃｌｅａｎ／Ｄｉｒｔｙ用領域
２０１２  Ｃｌｅａｎ用領域
２０２  二次キャッシュデータ部
２０２１  Ｃｌｅａｎ／Ｄｉｒｔｙ用領域
２０２２  Ｃｌｅａｎ用領域
２０３  データ検査復元部
２０４  リクエストカウンタ
２０５  制御部
２０５ａ  消費電力監視部
２０５ｂ  動作率監視部
２０５ｃ  縮退制御部
２０５ｄ  復帰制御部
３００  主記憶装置
【図１】
2010137164.tif 000003
【図２】
2010137164.tif 000004
【図３】
2010137164.tif 000005
【図４】
2010137164.tif 000006
【国際調査報告】
2010137164.tif 000007
2010137164.tif 000008
2010137164.tif 000009
2010137164.tif 000010