(57)【特許請求の範囲】
【請求項１】
ｎ（ｎ≧２）ウェイセットアソシアティブ方式のキャッシュ装置であって、
複数のウェイと１対１に対応する複数のメモリ領域を有するキャッシュメモリと、
前記メモリ領域に対するアクセスを制御するアクセス制御部と、
前記メモリ領域ごとに電力の供給を個別に制御し、前記アクセスが一定期間行われない前記メモリ領域については、当該メモリ領域に供給する電力を、前記メモリ領域が動作可能な動作電力よりも低い値を示す待機電力に制御する電力制御部と、
データの書き込みを要求する書き込み要求情報を記憶する第１ライトバッファと、
第２ライトバッファと、を備え、
前記電力制御部は、前記アクセスが行われる可能性が高い前記メモリ領域の前記待機電力を、前記アクセスが行われる可能性が低い前記メモリ領域の前記待機電力に比べて、前記動作電力に近い値に制御し、
前記アクセス制御部は、前記第１ライトバッファに記憶された前記書き込み要求情報に基づく書き込み動作を制御する場合において、前記動作電力が供給されている状態を示す動作状態の前記メモリ領域の中に、キャッシュヒットする前記メモリ領域が存在しないと判定した場合は、前記第１ライトバッファに記憶された前記書き込み要求情報を、前記第２ライトバッファに移動する制御を行う、
キャッシュ装置。
【請求項２】
前記アクセス制御部は、前記第１ライトバッファに記憶された前記書き込み要求情報を前記第２ライトバッファに移動する制御を行った後、前記第１ライトバッファに記憶された他の前記書き込み要求情報に基づく書き込み動作を制御する、
請求項１のキャッシュ装置。
【請求項３】
前記第２ライトバッファに前記書き込み要求情報が記憶されている場合、前記電力制御部は、前記待機電力が供給されている状態を示す待機状態の前記メモリ領域を前記動作状態に復帰させる制御を行う、
請求項１のキャッシュ装置。
【請求項４】
全ての前記メモリ領域が前記動作状態に復帰した場合、前記アクセス制御部は、前記第２ライトバッファに記憶された前記書き込み要求情報に基づく書き込み動作を制御する、
請求項３のキャッシュ装置。
【請求項５】
前記書き込み要求情報は、主記憶装置内の場所を示すメモリアドレスと、書き込みを要求するデータとを含み、
各前記メモリ領域は、前記メモリアドレスの一部であるタグを記憶するタグ部と、データを記憶するデータ部とが対応付けられた複数のキャッシュラインを有し、
前記メモリアドレスには、前記複数のキャッシュラインのうちの何れかを指定するインデックスが含まれ、
前記アクセス制御部は、前記動作状態の前記メモリ領域ごとに、前記書き込み要求情報に含まれる前記メモリアドレスの前記インデックスで指定された前記キャッシュラインの前記タグ部に記憶された前記タグと、前記書き込み要求情報に含まれる前記メモリアドレスの前記タグとが一致するか否かを判定し、何れも一致しないと判定した場合は、前記第１ライトバッファに格納された前記書き込み要求情報を前記第２ライトバッファへ移動する制御を行う、
請求項１のキャッシュ装置。
【請求項６】
前記キャッシュメモリは不揮発性のメモリである、
請求項１のキャッシュ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、キャッシュ装置に関する。
【背景技術】
【０００２】
近年、システム全体の低消費電力化が求められている。これにより、システム内の演算装置部分もまた低消費電力化することが必要となってきている。例えばＣＰＵが動作していない時には、プロセッサエレメント自体の供給電力を落とし、動作を再開するときに電力の供給を再開するという操作を繰り返し行う事で総消費電力を抑える低消費電力技術が考えられている。
【０００３】
更に、ＣＰＵが動作中であっても、ＣＰＵ内部のキャッシュのうち使用されていない部分の消費電力を抑える事で更なる低消費電力化が可能である。例えばキャッシュのウェイごとに供給電力を制御し、使用されていないウェイについてはＣＰＵが動作中であっても電力の供給を停止することで、低消費電力化が可能になる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ISSCC  2008／SESSION  13／MOBILE  PROCESSING／13.1
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、データの読み出しまたは書き込みの要求を受けた場合に、電力の供給が停止されているウェイを駆動させようとすると、当該ウェイを動作可能な状態に戻すまでに時間がかかってしまい、良好な性能を得ることができないという問題がある。本発明が解決しようとする課題は、性能を確保しつつ消費電力を低減可能なキャッシュ装置を提供することである。
【課題を解決するための手段】
【０００６】
実施形態のキャッシュ装置は、ｎ（ｎ≧２）ウェイセットアソシアティブ方式のキャッシュ装置であって、キャッシュメモリとアクセス制御部と電力制御部と第１ライトバッファと第２ライトバッファとを備える。キャッシュメモリは、複数のウェイと１対１に対応する複数のメモリ領域を有する。アクセス制御部は、メモリ領域に対するアクセスを制御する。電力制御部は、メモリ領域ごとに電力の供給を個別に制御し、アクセスが一定期間行われないメモリ領域については、当該メモリ領域に供給する電力を、メモリ領域が動作可能な動作電力よりも低い値を示す待機電力に制御する。第１ライトバッファは、データの書き込みを要求する書き込み要求情報を記憶する。また、電力制御部は、アクセスが行われる可能性が高いメモリ領域の待機電力を、アクセスが行われる可能性が低いメモリ領域の待機電力に比べて、動作電力に近い値に制御する。また、アクセス制御部は、第１ライトバッファに記憶された書き込み要求情報に基づく書き込み動作を制御する場合において、動作電力が供給されている状態を示す動作状態のメモリ領域の中に、キャッシュヒットするメモリ領域が存在しないと判定した場合は、第１ライトバッファに記憶された書き込み要求情報を、第２ライトバッファに移動する制御を行う。
【図面の簡単な説明】
【０００７】
【図１】第１実施形態のキャッシュ装置の構成例を示す図。
【図２】第１実施形態のキャッシュ部の一例を示す図。
【図３】第１実施形態のキャッシュ装置の詳細な構成例を示す図。
【図４】第１実施形態の通常動作モードにおける読み出し動作の例を示す図。
【図５】第１実施形態の通常動作モードにおける書き込み動作の例を示す図。
【図６】第１実施形態の部分待機モードにおける読み出し動作の例を示す図。
【図７】第１実施形態の部分待機モードにおける書き込み動作の例を示す図。
【図８】第１実施形態の全待機モードにおける読み出し動作の例を示す図。
【図９】第１実施形態の全待機モードにおける書き込み動作の例を示す図。
【図１０】第２実施形態のキャッシュ装置の詳細な構成例を示す図。
【図１１】変形例のキャッシュ装置の通常動作モードにおける動作例を示す図。
【図１２】変形例のキャッシュ装置の通常動作モードにおける動作例を示す図。
【図１３】変形例のキャッシュ装置の部分待機モードにおける動作例を示す図。
【図１４】変形例のキャッシュ装置の部分待機モードにおける動作例を示す図。
【図１５】変形例のキャッシュ装置の全待機モードにおける動作例を示す図。
【図１６】変形例のキャッシュ装置の全待機モードにおける動作例を示す図。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照しながら、本発明に係るキャッシュ装置の実施の形態を詳細に説明する。
【０００９】
（第１実施形態）
図１は、本実施形態のキャッシュ装置１００の概略構成例を示す図である。キャッシュ装置１００は、ＣＰＵなどの処理装置と主記憶装置（メインメモリ）との間に挿入された記憶階層である。主記憶装置に対するアクセスの高速化を図るために、ＣＰＵからアクセスされる可能性の高いデータなどがキャッシュ装置１００に保持される。本実施形態のキャッシュ装置１００は２次キャッシュであるが、これに限定されるものではなく、１次キャッシュや３次キャッシュであってもよい。
【００１０】
図１に示すように、キャッシュ装置１００は、キャッシュコントローラ１０と、キャッシュメモリ２０を含むキャッシュ部３０と、電源部４０とを含む。キャッシュコントローラ１０は、アクセス制御部１１とカウンタ１２と電力制御部１３とを含む。アクセス制御部１１は、キャッシュメモリ２０に対するデータの読み出し、または、データの書き込みを制御する。つまり、アクセス制御部１１は、キャッシュメモリ２０に対するアクセスを制御する。カウンタ１２は、各種の時間を計測する。詳細な内容については後述する。電力制御部１３は、キャッシュメモリ２０に対して電力を供給する電源部４０を制御する。
【００１１】
図２は、キャッシュ部３０の詳細な内容の一例を説明するための図である。本実施形態のキャッシュ装置１００は、４ウェイセットアソシアティブ方式のキャッシュ装置であり、キャッシュメモリ２０は、４つのウェイと１対１に対応する４つのメモリ領域（２１〜２４）を有する不揮発性のメモリである。ここでは、各ウェイには、当該ウェイを識別する番号（この例では０〜３までの数字）が割り当てられ、番号「０」が割り当てられたウェイをウェイ「０」と表記し、番号「１」が割り当てられたウェイをウェイ「１」と表記し、番号「２」が割り当てられたウェイをウェイ「２」と表記し、番号「３」が割り当てられたウェイをウェイ「３」と表記する。
【００１２】
ここで、主記憶装置は、１語分のデータ（ワードデータ）よりも大きいサイズのブロックを複数備える。本実施形態では、主記憶装置が有する複数のブロックのうちアクセス（データの読み出し、あるいは、データの書き込み）が行われる可能性（アクセスの頻度と捉えることもできる）が高いブロックは、小さい番号のウェイに対応するメモリ領域に格納される一方、アクセスが行われる可能性が低いブロックは、大きい番号のウェイに対応するメモリ領域に格納されるように予め設定される。つまり、最も小さい番号のウェイ「０」に対応するメモリ領域２１が、アクセスが行われる可能性が最も高いメモリ領域として設定される一方、最も大きい番号のウェイ「３」に対応するメモリ領域２４が、アクセスが行われる可能性が最も低いメモリ領域として設定される。この設定は、公知の様々な技術を利用することができる。
【００１３】
以下では、ウェイ「０」に対応するメモリ領域２１を例に挙げて具体的な構成を説明するが、他のウェイに対応するメモリ領域も同様の構成である。最初に、前提となる部分の説明を行う。ＣＰＵは、主記憶装置に対するアクセスを要求する場合、主記憶装置のうち要求の対象となる場所を示すメモリアドレスを含むアクセス要求情報（後述の読み出し要求情報および書き込み要求情報を含む概念）を出力する。メモリアドレスとは、主記憶装置内の場所を示す情報であると捉えることもできる。図２に示すように、メモリアドレスは、上位部分を示すタグと、中位部分を示すインデックスと、下位部分を示すワードとから構成される。メモリアドレスの末尾には、複数ビットのバイトが付加される。以上を前提として、メモリ領域２１の具体的な構成を説明する。
【００１４】
図２に示すように、メモリ領域２１は、複数のキャッシュライン２５を備える。なお、各キャッシュライン２５には、ウェイ間（メモリ領域間）で共通のライン番号が割り当てられている。例えばライン番号「１」とは、各メモリ領域の第１番目（第１行目）のキャッシュライン２５を指す。各キャッシュライン２５は、タグ部２６とデータ部２７とが対応付けられて構成される。タグ部２６にはタグが記憶される。一方、タグ部２６に対応するデータ部２７には、主記憶装置が有する複数のブロックのうち当該タグ部２６のタグで特定可能なブロックに格納されるべきデータが記憶される。ここでは、主記憶装置内の各ブロックには、複数のワードデータ（１語分のデータ）が格納され、データ部２７には、対応するタグ部２６のタグで特定可能なブロックに格納されるべき複数のワードデータが記憶される。なお、各ワードデータには、ブロック間で共通のワード番号が割り当てられている。例えばワード番号「１」とは、各ブロック内の第１番目のワードデータを指す。以下の説明では、ひとつのキャッシュライン２５に格納されるタグおよびデータを「キャッシュ情報」と呼ぶ場合がある。
【００１５】
メモリアドレスの中位部分であるインデックスは、複数のキャッシュライン２５のうちの何れかを指定する情報である。見方を変えれば、メモリアドレスに含まれるインデックスは、何れかのライン番号を指定する情報であると捉えることもできる。メモリアドレスの下位部分であるワードは、ブロックに含まれる複数のワードデータのうちの何れかを指定する情報である。見方を変えれば、メモリアドレスに含まれるワードは、何れかのワード番号を指定する情報である。
【００１６】
なお、各キャッシュライン２５に格納されるキャッシュ情報（タグおよびデータ）は、メモリ領域間（ウェイ間）で入れ替えることもできる。例えばアクセス制御部１１は、現時点に近いタイミングでアクセスが行われたブロック（アクセスが行われる可能性が高いブロック）は、小さい番号のウェイに対応するメモリ領域に格納される一方、アクセスが長く行われていないブロック（アクセスが行われる可能性が低いブロック）は、大きい番号のウェイに対応するメモリ領域に格納されるように、同じライン番号のキャッシュライン２５に格納されたキャッシュ情報を２つのメモリ領域間で入れ替えるスワップ処理を行うこともできる。このスワップ処理は、公知の様々な技術を利用することが可能である。
【００１７】
図２に示すように、キャッシュ部３０は、比較部３１と、選択部３２とをさらに備える。比較部３１は、アクセス制御部１１の制御の下、メモリ領域ごとに、ＣＰＵが出力したメモリアドレスに含まれるインデックスで指定されたキャッシュライン２５のタグ部２６に記憶されたタグと、メモリアドレスに含まれるタグとを比較する。タグ部２６に記憶されたタグと、メモリアドレスに含まれるタグとが一致した場合はキャッシュヒットとなり、アクセス制御部１１は、キャッシュヒットしたメモリ領域（見方を変えればウェイ）を特定することができる。
【００１８】
選択部３２は、アクセス制御部１１の制御の下、キャッシュヒットしたメモリ領域のうち、ＣＰＵが出力したメモリアドレスに含まれるインデックスで指定されたキャッシュライン２５のデータ部２７に記憶された複数のワードデータのうち、メモリアドレスに含まれるワードで指定されるワードデータを選択して出力する。
【００１９】
また、図２に示すように、電源部４０は、４つのメモリ領域と１対１に対応する４つの電源４１〜４４を有する。図２の例では、電源４１はメモリ領域２１に対応し、電源４２はメモリ領域２２に対応し、電源４３はメモリ領域２３に対応し、電源４４はメモリ領域２４に対応する。電力制御部１３は、メモリ領域ごとに電力の供給を個別に制御する。より具体的には、電力制御部１３は、電源４１を制御することで、ウェイ「０」に対応するメモリ領域２１に供給される電力を制御する。また、電力制御部１３は、電源４２を制御することで、ウェイ「１」に対応するメモリ領域２２に供給される電力を制御する。また、電力制御部１３は、電源４３を制御することで、ウェイ「２」に対応するメモリ領域２３に供給される電力を制御する。さらに、電力制御部１３は、電源４４を制御することで、ウェイ「３」に対応するメモリ領域２４に供給される電力を制御する。
【００２０】
また、電力制御部１３は、アクセスが一定期間行われないメモリ領域については、当該メモリ領域に供給する電力を、メモリ領域が動作可能な動作電力よりも低い値を示す待機電力に制御する。より具体的には以下のとおりである。なお、以下の説明では、動作電力が供給されているメモリ領域の状態を「動作状態」、待機電力が供給されているメモリ領域の状態を「待機状態」と呼ぶ場合がある。
【００２１】
まず、図１のカウンタ１２の機能について説明する。カウンタ１２は、メモリ領域ごとに、当該メモリ領域が使用されなかった時間（アクセスが行われなかった時間）を示す未使用時間を計測する。何れかのメモリ領域に対するアクセスが行われた場合、カウンタ１２は、そのメモリ領域の未使用時間の計測値を初期値にリセットする。初期値の値は任意であり、例えば初期値は「０」や「１」などに設定され得る。本実施形態では、カウンタ１２は、４つのメモリ領域（２１〜２４）と１対１に対応する複数のカウンタで構成され、各カウンタは、当該カウンタに対応するメモリ領域に対するアクセスが行われた場合、計測値を初期値にリセットする。
【００２２】
この例では、メモリ領域ごとに（ウェイごとに）、未使用時間の最大値を示す第１閾値が予め設定されている。電力制御部１３は、あるウェイに対応するメモリ領域の未使用時間の計測値が第１閾値以上の場合、当該メモリ領域に対して待機電力を供給するように電源部４０を制御する。
【００２３】
さらに、電力制御部１３は、アクセスが行われる可能性が高いメモリ領域の待機電力を、アクセスが行われる可能性が低いメモリ領域の待機電力に比べて、動作電力に近い値に制御する。より具体的には、電力制御部１３は、番号が小さいウェイほど、当該ウェイに対応するメモリ領域の待機電力が動作電力に近い値になるように電源部４０を制御する。例えば動作電力が「１．２Ｖ」である場合、電力制御部１３は、ウェイ「０」に対応するメモリ領域２１の待機電力を「０．８Ｖ」、ウェイ「１」に対応するメモリ領域２２の待機電力を「０．６Ｖ」、ウェイ「２」に対応するメモリ領域２３の待機電力を「０．４Ｖ」、ウェイ「３」に対応するメモリ領域２４の待機電力を「０．２Ｖ」に制御することもできる。なお、これは一例であり、アクセスが行われる可能性が高いメモリ領域ほど、その待機電力は動作電力に近い値に制御される構成であればよく、各メモリ領域の待機電力の値は任意である。
【００２４】
ここでは、全てのメモリ領域に対して動作電力が供給されている状態を「通常動作モード」と呼び、一部のメモリ領域に対して動作電力が供給される一方、残りのメモリ領域に対して待機電力が供給されている状態を「部分待機モード」と呼ぶ。
【００２５】
さらに、全てのメモリ領域に対して待機電力が供給されている状態を「全待機モード」と呼ぶ。本実施形態では、「全待機モード」に移行した場合、アクセス制御部１１は、「全待機モード」が継続する時間を示す待機時間の計測を開始する。そして、待機時間の計測値が第２閾値以上の場合、電力制御部１３は、全てのメモリ領域に対する電力の供給を停止するように電源部４０を制御する。全てのメモリ領域に対する電力の供給が停止された状態を「オフモード」と呼ぶ。
【００２６】
次に、各モードにおけるキャッシュ装置１００の動作例を説明する。最初に、前提となる部分の説明を行う。ＣＰＵは、主記憶装置に対してデータの読み出しを要求する場合、主記憶装置のうちデータの読み出しの対象となる場所を特定可能なメモリアドレスを含む読み出し要求情報を出力する。また、ＣＰＵは、主記憶装置に対してデータの書き込みを要求する場合、主記憶装置のうちデータの書き込みの対象となる場所を特定可能なメモリアドレスと、書き込みを要求するデータとを含む書き込み要求情報を出力する。
【００２７】
また、図３は、キャッシュ装置１００の詳細な構成例を示す図である。図３に示すように、キャッシュ装置１００は、マルチプレクサ５０と、第１ライトバッファ６０とを更に備える。マルチプレクサ５０および第１ライトバッファ６０は、キャッシュコントローラ１０に搭載されてもよいし、キャッシュ部３０に搭載されてもよいし、キャッシュコントローラ１０およびキャッシュ部３０とは別に設けられてもよい。
【００２８】
アクセス制御部１１の制御の下、マルチプレクサ５０は、ＣＰＵが出力する読み出し要求情報、および、第１ライトバッファ６０に蓄積された情報のうちの何れかを選択する。本実施形態では、読み出し要求情報が優先的に選択されるように制御される。より具体的には、アクセス制御部１１は、ＣＰＵから読み出し要求情報を受信した場合は、その受信した読み出し要求情報を選択するようにマルチプレクサ５０を制御する。マルチプレクサ５０により読み出し要求情報が選択された場合、アクセス制御部１１は、その選択された読み出し要求情報に基づく読み出し動作を制御する。
【００２９】
一方、アクセス制御部１１は、ＣＰＵから書き込み要求情報を受信するたびに、その受信した書き込み要求情報を第１ライトバッファ６０に書き込む。そして、アクセス制御部１１は、キャッシュ装置１００の動作状況に応じて、第１ライトバッファ６０に蓄積された書き込み要求情報を選択するようにマルチプレクサ５０を制御する。例えばアクセス制御部１１は、一定期間にわたって読み出し要求情報を受信していない場合に、第１ライトバッファ６０に蓄積された書き込み要求情報を順番に選択するようにマルチプレクサ５０を制御することもできる。マルチプレクサ５０により書き込み要求情報が選択された場合、アクセス制御部１１は、その選択された書き込み要求情報に基づく書き込み動作を制御する。
【００３０】
以上を前提として、図４乃至図９を参照しながら、各モードにおけるキャッシュ装置１００の動作例を説明する。最初に、図４を参照しながら、「通常動作モード」におけるデータの読み出し動作の一例を説明する。
【００３１】
図４に示すように、まずアクセス制御部１１は、読み出し要求情報を受信したか否かを判定する（ステップＳ１０）。読み出し要求情報を受信したと判定した場合（ステップＳ１０の結果：ＹＥＳの場合）、アクセス制御部１１は、その受信した読み出し要求情報を選択するようにマルチプレクサ５０を制御し、その受信した読み出し要求情報に基づく読み出し動作の制御を開始する。まず、アクセス制御部１１は、キャッシュヒットするメモリ領域が存在するか否かを判定する（ステップＳ１１）。キャッシュヒットするメモリ領域が存在すると判定した場合（ステップＳ１１の結果：ＹＥＳの場合）、アクセス制御部１１は、そのメモリ領域に対応するカウンタの計測値を初期値に設定（リセット）する（ステップＳ１２）。次に、アクセス制御部１１は、当該メモリ領域のうち、読み出し要求情報に含まれるメモリアドレスの中位部分のインデックスで指定されたキャッシュライン２５のデータ部２７に記憶されたデータを選択して出力する（ステップＳ１３）。より具体的には、アクセス制御部１１は、インデックスで指定されたキャッシュライン２５のデータ部２７に記憶された複数のワードデータのうち、メモリアドレスの下位部分のワードで指定されたワードデータを選択して出力するように選択部３２を制御する。
【００３２】
また、上述のステップＳ１１において、キャッシュヒットするメモリ領域が存在しないと判定した場合（ステップＳ１１の結果：ＮＯ）、つまり、ミスヒットであると判定した場合、アクセス制御部１１は、主記憶装置に対して、読み出しが要求されたデータの転送を要求する（ステップＳ１４）。なお、上位のキャッシュ（３次キャッシュ等）が設けられている場合は、アクセス制御部１１は、その上位のキャッシュに対して、読み出しが要求されたデータの転送を要求することもできる。そして、主記憶装置（あるいは上位キャッシュ）からデータが転送されてきた場合（ステップＳ１５の結果：ＹＥＳ）、アクセス制御部１１は、主記憶装置から転送されてきたデータを出力する（ステップＳ１３）。また、アクセス制御部１１は、転送されてきたデータをキャッシュメモリ２０へ書き込む（ステップＳ１６）。
【００３３】
主記憶装置から転送されてきたデータを書き込むキャッシュライン２５を選択するためのアルゴリズムとしては、例えばＬＲＵを用いることもできる。この場合、アクセス制御部１１は、メモリアドレスに含まれるインデックスで指定された各メモリ領域（２１〜２４）のキャッシュライン２５のうち、最も長くアクセスされなかったキャッシュライン２５を選択する。そして、アクセス制御部１１は、主記憶装置から転送されてきたデータを、選択したキャッシュライン２５のデータ部２７に書き込むとともに、読み出し要求情報に含まれるメモリアドレスの上位部分のタグを、選択したキャッシュライン２５のタグ部２６に書き込む。
【００３４】
一方、上述のステップＳ１０において、読み出し要求情報を受信していないと判定した場合（ステップＳ１０の結果：ＮＯの場合）、アクセス制御部１１は、未使用時間の計測値が第１閾値に到達したメモリ領域があるか否かを判定する（ステップＳ１７）。未使用時間の計測値が第１閾値に到達したメモリ領域があると判定した場合（ステップＳ１７の結果：ＹＥＳの場合）、アクセス制御部１１は、電力制御部１３に対して、当該メモリ領域を動作状態から待機状態に遷移させる制御を行うように指示する。この指示を受けた電力制御部１３は、当該メモリ領域に対して待機電力を供給するように電源部４０を制御する（ステップＳ１８）。つまり、電力制御部１３は、そのメモリ領域を動作状態から待機状態に遷移させる制御を行う。これにより、キャッシュ装置１００は「通常動作モード」から「部分待機モード」に移行する。
【００３５】
次に、図５を参照しながら、通常動作モードにおけるデータの書き込み動作の一例を説明する。ここでは、マルチプレクサ５０により選択された１つの書き込み要求情報に基づく書き込み動作が行われる場合を例に挙げて説明する。
【００３６】
図５に示すように、まずアクセス制御部１１は、キャッシュヒットするメモリ領域が存在するか否かを判定する（ステップＳ２１）。キャッシュヒットするメモリ領域が存在すると判定した場合（ステップＳ２１の結果：ＹＥＳの場合）、アクセス制御部１１は、そのメモリ領域に対応するカウンタの計測値を初期値に設定する（ステップＳ２２）。次に、アクセス制御部１１は、当該メモリ領域のうち、書き込み要求情報に含まれるメモリアドレスのインデックスで指定されたキャッシュライン２５のデータ部２７に、書き込みが要求されたデータを書き込む（ステップＳ２３）。
【００３７】
一方、上述のステップＳ２１において、キャッシュヒットするメモリ領域が存在しないと判定した場合（ステップＳ２１の結果：ＮＯの場合）、つまり、ミスヒットであると判定した場合、アクセス制御部１１は、インデックスで指定された各メモリ領域のキャッシュライン２５のうち、最も長くアクセスされなかったキャッシュライン２５に、キャッシュ情報を書き込む（ステップＳ２４）。より具体的には、アクセス制御部１１は、インデックスで指定された各メモリ領域のキャッシュライン２５のうち、最も長くアクセスされなかったキャッシュライン２５のタグ部２６に、書き込み要求情報に含まれるメモリアドレスのタグを書き込むとともに、当該キャッシュライン２５のデータ部２７に、当該書き込み要求情報に含まれるデータ（書き込みが要求されたデータ）を書き込む。
【００３８】
次に、「部分待機モード」におけるキャッシュ装置１００の動作例を説明する。最初に、図６を参照しながら、部分待機モードにおけるデータの読み出し動作の一例を説明する。
【００３９】
図６に示すように、まずアクセス制御部１１は、読み出し要求情報を受信したか否かを判定する（ステップＳ３０）。読み出し要求情報を受信したと判定した場合（ステップＳ３０の結果：ＹＥＳの場合）、アクセス制御部１１は、その受信した読み出し要求情報が選択されるようにマルチプレクサ５０を制御し、その受信した読み出し要求情報に基づく読み出し動作の制御を開始する。まず、アクセス制御部１１は、動作状態のメモリ領域のうち、キャッシュヒットするメモリ領域が存在するか否かを判定する（ステップＳ３１）。キャッシュヒットするメモリ領域が存在すると判定した場合（ステップＳ３１の結果：ＹＥＳの場合）、アクセス制御部１１は、そのメモリ領域に対応するカウンタの計測値を初期値に設定する（ステップＳ３２）。次に、アクセス制御部１１は、当該メモリ領域のうち、読み出し要求情報に含まれるメモリアドレスのインデックスで指定されたキャッシュライン２５のデータ部２７に記憶されたデータを選択して出力する（ステップＳ３３）。
【００４０】
また、上述のステップＳ３１において、キャッシュヒットするメモリ領域が存在しないと判定した場合（ステップＳ３１の結果：ＮＯの場合）、つまり、ミスヒットであると判定した場合、アクセス制御部１１は、主記憶装置に対して、読み出しが要求されたデータの転送を要求する（ステップＳ３４）。また、アクセス制御部１１は、電力制御部１３に対して、待機状態のメモリ領域を動作状態に復帰させるように指示する。この指示を受けた電力制御部１３は、待機状態のメモリ領域を動作状態に復帰させる（ステップＳ３５）。より具体的には、電力制御部１３は、待機状態のメモリ領域に供給する電力を動作電力に切り替えるように電源部４０を制御する。次に、アクセス制御部１１は、動作状態に復帰したメモリ領域があるか否かを判定する（ステップＳ３６）。動作状態に復帰したメモリ領域があると判定した場合（ステップＳ３６の結果：ＹＥＳの場合）、アクセス制御部１１は、動作状態のメモリ領域のうち、キャッシュヒットするメモリ領域が存在するか否かを判定する（ステップＳ３７）。
【００４１】
上述のステップＳ３７において、キャッシュヒットするメモリ領域が存在すると判定した場合（ステップＳ３７の結果：ＹＥＳの場合）、アクセス制御部１１は、そのメモリ領域に対応するカウンタの計測値を初期値に設定する（ステップＳ３２）。次に、アクセス制御部１１は、当該メモリ領域のうち、読み出し要求情報に含まれるメモリアドレスのインデックスで指定されたキャッシュライン２５のデータ部２７に記憶されたデータを選択して出力する（ステップＳ３３）。この場合、主記憶装置から転送されてくるデータは不要になるので、例えばアクセス制御部１１は、主記憶装置から転送されてくるデータを破棄することもできる。
【００４２】
一方、上述のステップＳ３７において、キャッシュヒットするメモリ領域が存在しないと判定した場合（ステップＳ３７の結果：ＮＯの場合）、アクセス制御部１１は、主記憶装置からデータが転送されてきたか否かを判定する（ステップＳ３８）。主記憶装置からデータが転送されてきたと判定した場合（ステップＳ３８の結果：ＹＥＳの場合）、アクセス制御部１１は、主記憶装置から転送されてきたデータを出力する一方（ステップＳ３３）、当該データをキャッシュメモリ２０へ書き込む（ステップＳ３９）。ステップＳ３７の内容は、上述のステップＳ１６（図４参照）の内容と同様である。
【００４３】
また、上述のステップＳ３０において、アクセス制御部１１が読み出し要求情報を受信していないと判定した場合（ステップＳ３０の結果：ＮＯの場合）、アクセス制御部１１は、未使用時間の計測値が第１閾値に到達したメモリ領域があるか否かを判定する（ステップＳ４０）。未使用時間の計測値が第１閾値に到達したメモリ領域があると判定した場合（ステップＳ４０の結果：ＹＥＳの場合）、アクセス制御部１１は、電力制御部１３に対して、当該メモリ領域を動作状態から待機状態に遷移させる制御を行うように指示する。この指示を受けた電力制御部１３は、当該メモリ領域に供給する電力を待機電力に制御する（ステップＳ４１）。つまり、電力制御部１３は、そのメモリ領域に対して供給する電力を待機電力に切り替えるように電源部４０を制御する。そして、全てのメモリ領域が待機状態になった場合（ステップＳ４２の結果：ＹＥＳの場合）、キャッシュ装置１００の状態は「部分待機モード」から「全待機モード」に切り替わる。
【００４４】
次に、図７を参照しながら、部分待機モードにおけるデータの書き込み動作の一例を説明する。ここでは、マルチプレクサ５０により選択された１つの書き込み要求情報に基づく書き込み動作が行われる場合を例に挙げて説明する。
【００４５】
図７に示すように、まずアクセス制御部１１は、動作状態のメモリ領域のうち、キャッシュヒットするメモリ領域が存在するか否かを判定する（ステップＳ４３）。キャッシュヒットするメモリ領域が存在すると判定した場合（ステップＳ４３の結果：ＹＥＳの場合）、アクセス制御部１１は、そのメモリ領域に対応するカウンタの計測値を初期値に設定する（ステップＳ４４）。次に、アクセス制御部１１は、当該メモリ領域のうち、書き込み要求情報に含まれるメモリアドレスのインデックスが示すキャッシュライン２５のデータ部２７に、書き込みが要求されたデータを書き込む（ステップＳ４５）。
【００４６】
また、上述のステップＳ４３において、キャッシュヒットするメモリ領域が存在しないと判定した場合（ステップＳ４３の結果：ＮＯの場合）、つまり、ミスヒットであると判定した場合、アクセス制御部１１は、電力制御部１３に対して、待機状態のメモリ領域を動作状態に復帰させるように指示する。この指示を受けた電力制御部１３は、待機状態のメモリ領域を動作状態に復帰させる（ステップＳ４６）。次に、アクセス制御部１１は、動作状態に復帰したメモリ領域があるか否かを判定する（ステップＳ４７）。動作状態に復帰したメモリ領域があると判定した場合（ステップＳ４７の結果：ＹＥＳの場合）、アクセス制御部１１は、動作状態のメモリ領域のうち、キャッシュヒットするメモリ領域が存在するか否かを判定する（ステップＳ４８）。
【００４７】
上述のステップＳ４８において、キャッシュヒットするメモリ領域が存在すると判定された場合（ステップＳ４８の結果：ＹＥＳの場合）、アクセス制御部１１は、当該メモリ領域に対応するカウンタの計測値を初期値に設定する（ステップＳ４４）。次に、アクセス制御部１１は、当該メモリ領域のうち、書き込み要求情報に含まれるメモリアドレスのインデックスで指定されたキャッシュライン２５のデータ部２７に、書き込みが要求されたデータを書き込む（ステップＳ４５）。一方、上述のステップＳ４８において、キャッシュヒットするメモリ領域がないと判定した場合（ステップＳ４８の結果：ＮＯの場合）、アクセス制御部１１は、全てのメモリ領域が動作状態に復帰したか否かを判定する（ステップＳ４９）。全てのメモリ領域が動作状態に復帰したと判定した場合（ステップＳ４９の結果：ＹＥＳの場合）、アクセス制御部１１は、インデックスにより指定されたキャッシュライン２５のうち最も長くアクセスされなかったキャッシュライン２５に、キャッシュ情報を書き込む（ステップＳ５０）。ステップＳ５０の内容は、上述のステップＳ２４（図５参照）の内容と同様である。
【００４８】
次に、「全待機モード」におけるキャッシュ装置１００の動作例を説明する。最初に、図８を参照しながら、全待機モードにおけるデータの読み出し動作の一例を説明する。
【００４９】
図８に示すように、まずアクセス制御部１１は、読み出し要求情報を受信したか否かを判定する（ステップＳ６０）。読み出し要求情報を受信したと判定した場合（ステップＳ６０の結果：ＹＥＳの場合）、アクセス制御部１１は、その受信した読み出し要求情報が選択されるようにマルチプレクサ５０を制御し、その受信した読み出し要求情報に基づく読み出し動作の制御を開始する。まず、アクセス制御部１１は、主記憶装置に対して、読み出しが要求されたデータの転送を要求する（ステップＳ６１）。また、アクセス制御部１１は、電力制御部１３に対して、待機状態のメモリ領域を動作状態に復帰させるように指示する。この指示を受けた電力制御部１３は、待機状態のメモリ領域を動作状態に復帰させる（ステップＳ６２）。
【００５０】
次に、アクセス制御部１１は、動作状態に復帰したメモリ領域があるか否かを判定する（ステップＳ６３）。動作状態に復帰したメモリ領域があると判定した場合（ステップＳ６３の結果：ＹＥＳの場合）、アクセス制御部１１は、動作状態のメモリ領域のうち、キャッシュヒットするメモリ領域が存在するか否かを判定する（ステップＳ６４）。
【００５１】
上述のステップＳ６４において、キャッシュヒットするメモリ領域が存在すると判定した場合（ステップＳ６４の結果：ＹＥＳの場合）、アクセス制御部１１は、当該メモリ領域に対応するカウンタの計測値を初期値に設定する（ステップＳ６５）。次に、アクセス制御部１１は、当該メモリ領域のうち、読み出し要求情報に含まれるメモリアドレスのインデックスで指定されたキャッシュライン２５のデータ部２７に記憶されたデータを選択して出力する（ステップＳ６６）。この場合、主記憶装置から転送されてくるデータは不要になるので、例えばアクセス制御部１１は、主記憶装置から転送されてくるデータを破棄することもできる。
【００５２】
一方、上述のステップＳ６４において、キャッシュヒットするメモリ領域が存在しないと判定した場合（ステップＳ６４の結果：ＮＯの場合）、アクセス制御部１１は、主記憶装置からデータが転送されてきたか否かを判定する（ステップＳ６７）。主記憶装置からデータが転送されてきたと判定した場合（ステップＳ６７の結果：ＹＥＳの場合）、アクセス制御部１１は、主記憶装置から転送されてきたデータを出力する一方（ステップＳ６６）、当該データをキャッシュメモリ２０へ書き込む（ステップＳ６８）。ステップＳ６８の内容は、上述のステップＳ１６（図４参照）の内容と同様である。
【００５３】
また、上述のステップＳ６０において、アクセス制御部１１が読み出し要求情報を受信していないと判定した場合（ステップＳ６０の結果：ＮＯの場合）、アクセス制御部１１は、待機時間の計測値が第２閾値に到達したか否かを判定する（ステップＳ６９）。待機時間の計測値が第２閾値に到達したと判定した場合（ステップＳ６９の結果：ＹＥＳの場合）、アクセス制御部１１は、電力制御部１３に対して、「オフモード」に移行する制御を行うように指示する。この指示を受けた電力制御部１３は、「オフモード」に移行する制御を行う（ステップＳ７０）。より具体的には、電力制御部１３は、各メモリ領域に対する電力の供給を停止するように電源部４０を制御する。これにより、キャッシュ装置１００の状態は「全待機モード」から「オフモード」に切り替わる。
【００５４】
次に、図９を参照しながら、全待機モードにおけるデータの書き込み動作の一例を説明する。ここでは、マルチプレクサ５０により選択された１つの書き込み要求情報に基づく書き込み動作が行われる場合を例に挙げて説明する。
【００５５】
図９に示すように、まずアクセス制御部１１は、電力制御部１３に対して、待機状態のメモリ領域を動作状態に復帰させるように指示する。この指示を受けた電力制御部１３は、待機状態のメモリ領域を動作状態に復帰させる（ステップＳ７１）。
【００５６】
次に、アクセス制御部１１は、動作状態に復帰したメモリ領域があるか否かを判定する（ステップＳ７２）。動作状態に復帰したメモリ領域があると判定した場合（ステップＳ７２の結果：ＹＥＳの場合）、アクセス制御部１１は、動作状態のメモリ領域のうち、キャッシュヒットするメモリ領域が存在するか否かを判定する（ステップＳ７３）。
【００５７】
上述のステップＳ７３において、キャッシュヒットするメモリ領域が存在すると判定した場合（ステップＳ７３の結果：ＹＥＳの場合）、アクセス制御部１１は、当該メモリ領域に対応するカウンタの計測値を初期値に設定する（ステップＳ７４）。次に、アクセス制御部１１は、当該メモリ領域のうち、書き込み要求情報に含まれるメモリアドレスのインデックスで指定されたキャッシュライン２５のデータ部２７に、書き込みが要求されたデータを書き込む（ステップＳ７５）。一方、上述のステップＳ７３において、キャッシュヒットするメモリ領域が存在しないと判定した場合（ステップＳ７３の結果：ＮＯの場合）、アクセス制御部１１は、全てのメモリ領域が動作状態に復帰したか否かを判定する（ステップＳ７６）。全てのメモリ領域が動作状態に復帰したと判定した場合（ステップＳ７６の結果：ＹＥＳの場合）、アクセス制御部１１は、メモリアドレスに含まれるインデックスで指定されたキャッシュライン２５のうち最も長くアクセスされなかったキャッシュライン２５に、キャッシュ情報を書き込む（ステップＳ７７）。ステップＳ７７の内容は、上述のステップＳ２４（図５参照）の内容と同様である。
【００５８】
なお、「オフモード」におけるキャッシュ装置１００の動作例は以下のとおりである。「オフモード」において、読み出し要求情報または書き込み要求情報がマルチプレクサ５０により選択された場合、アクセス制御部１１は、電力制御部１３に対して、全てのメモリ領域を動作状態に復帰させるように指示する。この指示を受けた電力制御部１３は、全てのメモリ領域を動作状態に復帰させる制御を行う。これにより、キャッシュ装置１００の状態は「オフモード」から「通常動作モード」に切り替わる。以降の動作は、上述の通常動作モードにおける動作と同様である。
【００５９】
以上に説明したように、本実施形態では、アクセスが行われる可能性が高いメモリ領域の待機電力は、アクセスが行われる可能性が低いメモリ領域の待機電力に比べて、動作電力に近い値に制御されるので、アクセスが行われる可能性が高いメモリ領域は、短時間で待機状態から動作状態へ復帰することが可能になる。また、アクセスが行われる可能性が低いメモリ領域の待機電力を、動作電力に比べて十分に小さい値に制御することにより、消費電力を低減することができる。すなわち、本実施形態によれば、性能を確保しつつ消費電力を低減可能なキャッシュ装置を提供することが可能になる。
【００６０】
（第２実施形態）
次に、第２実施形態について説明する。なお、上述の第１実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。
【００６１】
図１０は、第２実施形態のキャッシュ装置２００の構成例を示す図である。説明の便宜上、アクセス制御部１１、カウンタ１２および電力制御部１３の図示は省略している。図１０に示すように、キャッシュ装置２００は、第２ライトバッファ７０を更に備える点で第１実施形態と相違する。アクセス制御部１１の制御の下、マルチプレクサ５０は、ＣＰＵが出力する読み出し要求情報、第１ライトバッファ６０に蓄積された書き込み要求情報、および、第２ライトバッファ７０に蓄積された情報のうちの何れかを選択する。
【００６２】
本実施形態では、アクセス制御部１１は、第１ライトバッファ６０内の書き込み要求情報に基づく書き込み動作を制御する場合において、動作状態のメモリ領域のうちキャッシュヒットするメモリ領域が存在しないと判定した場合は、当該書き込み要求情報を第２ライトバッファ７０へ移動する制御を行う。
【００６３】
より具体的には、アクセス制御部１１は、動作状態のメモリ領域ごとに、マルチプレクサ５０により選択された書き込み要求情報（第１ライトバッファ６０内の書き込み要求情報）に含まれるメモリアドレスのインデックスで指定されるキャッシュライン２５のタグ部２６に記憶されたタグと、当該書き込み要求情報に含まれるメモリアドレスのタグとが一致するか否かを判定し、何れも一致しないと判定した場合（ミスヒットであると判定した場合）は、当該書き込み要求情報を第２ライトバッファ７０へ移動する制御を行う。その後、アクセス制御部１１は、第１ライトバッファ６０に記憶された他の（典型的には直後の）書き込み要求情報を選択するように、マルチプレクサ５０を制御することができる。
【００６４】
また、本実施形態では、第２ライトバッファ７０に書き込み要求情報が記憶されている場合、アクセス制御部１１は、電力制御部１３に対して、待機状態のメモリ領域を動作状態に復帰させるように指示する。この指示を受けた電力制御部１３は、待機状態のメモリ領域を動作状態に復帰させる制御を行う。つまり、電力制御部１３は、待機状態のメモリ領域に対して供給する電力を動作電力に切り替えるように電源部４０を制御する。そして、全てのメモリ領域が動作状態に復帰した場合、アクセス制御部１１は、第２ライトバッファ７０に記憶された書き込み要求情報に基づく書き込み動作を制御する。
【００６５】
つまり、アクセス制御部１１は、全てのメモリ領域が動作状態に復帰するまでの間、第１ライトバッファ６０に記憶された他の書き込み要求情報に基づく書き込み動作を制御することができる。これにより、例えば第１ライトバッファ６０内の他の書き込み要求情報で特定されるデータ（書き込みが要求されるデータ）が、既に動作状態のメモリ領域のうちの何れかに書き込み可能なデータである場合は、待機状態のメモリ領域が動作状態に復帰するのを待たずに、次の書き込み動作を行うことができる。すなわち、メモリ領域の駆動を待たなくても書き込み可能なデータが、メモリ領域の駆動待ちによって書き込み動作を長時間にわたって待たせられ、第１ライトバッファ６０自体の容量をオーバーしてしまうことを防止できる。したがって、本実施形態によれば、書き込み動作による性能のオーバーヘッドを減らすことが可能になる。
【００６６】
また、全てのメモリ領域が動作状態に復帰するまでの間において、ＣＰＵからの読み出し要求情報を受信した場合、アクセス制御部１１は、その受信した読み出し要求情報を優先的に選択するようにマルチプレクサ５０を制御することもできる。つまり、全てのメモリ領域が動作状態に復帰するまでの間において、ＣＰＵからの読み出し要求情報を受信した場合、アクセス制御部１１は、その受信した読み出し要求情報に基づく読み出し動作を制御することもできる。なお、アクセス制御部１１による読み出し動作の制御あるいは書き込み動作の制御の具体的な内容は、上述の第１実施形態と同様なので、ここでは詳細な説明は省略する。
【００６７】
以上、本発明の各実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００６８】
例えば上述の各実施形態では、メモリ領域ごとにカウンタが個別に設けられているが、これに限らず、いくつかのメモリ領域で１つのカウンタを共有する構成であってもよい。一例として、全てのメモリ領域（ウェイ）で１つのカウンタを共有する場合について説明する。この例では、カウンタは、読み出し要求情報または書き込み要求情報（アクセス要求情報）を受信するたびに、計測値を初期値にリセットする。また、この例では、第１閾値は、メモリ領域ごとに異なる値に設定されるが、これに限らず、同じ値に設定されてもよい。以下では、各モードにおける動作例について、上述の第１実施形態と相違する部分を中心に説明する。上述の第１実施形態と重複する部分については適宜に説明を省略する。
【００６９】
図１１は、通常動作モードにおける動作例を示すフローチャートである。まずアクセス制御部１１は、アクセス要求情報を受信したか否かを判定する（ステップＳ１０１）。アクセス要求情報を受信したと判定した場合（ステップＳ１０１の結果：ＹＥＳの場合）、アクセス制御部１１は、カウンタの計測値を初期値に設定（リセット）する（ステップＳ１０２）。
【００７０】
受信したアクセス要求情報が読み出し要求情報の場合（ステップＳ１０３の結果：ＹＥＳの場合）、アクセス制御部１１は、その受信した読み出し要求情報を選択するようにマルチプレクサ５０を制御し、その受信した読み出し要求情報に基づく読み出し動作の制御を開始する。以降のステップＳ１０４〜ステップＳ１０８の内容は、図４のステップＳ１２に相当する処理が行われない点を除いて、図４のステップＳ１１〜ステップＳ１６の内容と同様である。
【００７１】
一方、受信したアクセス要求情報が書き込み要求情報の場合（ステップＳ１０３の結果：ＮＯの場合）、アクセス制御部１１は、受信した書き込み要求情報を第１ライトバッファ６０に書き込む（ステップＳ１０９）。
【００７２】
また、上述のステップＳ１０１において、アクセス要求情報を受信していないと判定した場合（ステップＳ１０１の結果：ＮＯの場合）、アクセス制御部１１は、カウンタの計測値が第１閾値に到達したメモリ領域があるか否かを判定する（ステップＳ１０９）。カウンタの計測値が第１閾値に到達したメモリ領域があると判定した場合（ステップＳ１０９の結果：ＹＥＳの場合）、アクセス制御部１１は、電力制御部１３に対して、当該メモリ領域を動作状態から待機状態に遷移させる制御を行うように指示する。この指示を受けた電力制御部１３は、当該メモリ領域に供給する電力を待機電力に制御する（ステップＳ１１０）。これにより、キャッシュ装置の状態は、「通常動作モード」から「部分待機モード」に移行する。
【００７３】
図１２は、通常動作モードにおけるデータの書き込み動作の一例を示すフローチャートである。図１２に示すステップＳ１２１〜ステップＳ１２３の内容は、図５のステップＳ２２に相当する処理が行われない点を除いて、図５のステップＳ２１〜ステップＳ２４の内容と同様である。
【００７４】
図１３は、部分待機モードにおける動作例を示すフローチャートである。まずアクセス制御部１１は、アクセス要求情報を受信したか否かを判定する（ステップＳ１３１）。アクセス要求情報を受信したと判定した場合（ステップＳ１３１の結果：ＹＥＳの場合）、アクセス制御部１１は、カウンタの計測値を初期値に設定する（ステップＳ１３２）。
【００７５】
受信したアクセス要求情報が読み出し要求情報の場合（ステップＳ１３３の結果：ＹＥＳの場合）、アクセス制御部１１は、その受信した読み出し要求情報が選択されるようにマルチプレクサ５０を制御し、その受信した読み出し要求情報に基づく読み出し動作の制御を開始する。以降のステップＳ１３４〜ステップＳ１４１の内容は、図６のステップＳ３２に相当する処理が行われない点を除いて、図６のステップＳ３１〜ステップＳ３９の内容と同様である。
【００７６】
一方、受信したアクセス要求情報が書き込み要求情報の場合（ステップＳ１３３の結果：ＮＯの場合）、アクセス制御部１１は、受信した書き込み要求情報を第１ライトバッファ６０に書き込む（ステップＳ１４２）。
【００７７】
また、上述のステップＳ１３１において、アクセス要求情報を受信していないと判定した場合（ステップＳ１３１の結果：ＮＯの場合）、アクセス制御部１１は、カウンタの計測値が第１閾値に到達したメモリ領域があるか否かを判定する（ステップＳ１４３）。カウンタの計測値が第１閾値に到達したメモリ領域があると判定した場合（ステップＳ１４３の結果：ＹＥＳの場合）、アクセス制御部１１は、電力制御部１３に対して、当該メモリ領域を動作状態から待機状態に遷移させる制御を行うように指示する。この指示を受けた電力制御部１３は、当該メモリ領域に供給する電力を待機電力に制御する（ステップＳ１４４）。全てのメモリ領域が待機状態になった場合（ステップＳ１４５の結果：ＹＥＳの場合）、キャッシュ装置の状態は「部分待機モード」から「全待機モード」に切り替わる。そして、アクセス制御部１１は、待機時間の計測を開始する。
【００７８】
図１４は、部分待機モードにおけるデータの書き込み動作の一例を示すフローチャートである。図１４のステップＳ１５１〜ステップＳ１５７の内容は、図７のステップＳ４４に相当する処理が行われない点を除いて、図７のステップＳ４３〜ステップＳ５０の内容と同様である。
【００７９】
図１５は、全待機モードにおける動作例を示すフローチャートである。まずアクセス制御部１１は、アクセス要求情報を受信したか否かを判定する（ステップＳ１６１）。アクセス要求情報を受信したと判定した場合（ステップＳ１６１の結果：ＹＥＳの場合）、アクセス制御部１１は、カウンタの計測値を初期値に設定する（ステップＳ１６２）。
【００８０】
受信したアクセス要求情報が読み出し要求情報の場合（ステップＳ１６３の結果：ＹＥＳの場合）、アクセス制御部１１は、その受信した読み出し要求情報が選択されるようにマルチプレクサ５０を制御し、その受信した読み出し要求情報に基づく読み出し動作の制御を開始する。以降のステップＳ１６４〜ステップＳ１７０の内容は、図８のステップＳ６５に相当する処理が行われない点を除いて、図８のステップＳ６１〜ステップＳ６８の内容と同様である。
【００８１】
一方、受信したアクセス要求情報が書き込み要求情報の場合（ステップＳ１６３の結果：ＮＯの場合）、アクセス制御部１１は、受信した書き込み要求情報を第１ライトバッファ６０に書き込む（ステップＳ１７１）。
【００８２】
また、上述のステップＳ１６１において、アクセス要求情報を受信していないと判定した場合（ステップＳ１６１の結果：ＮＯの場合）、アクセス制御部１１は、待機時間の計測値が第２閾値に到達したか否かを判定する（ステップＳ１７２）。待機時間の計測値が第２閾値に到達したと判定した場合（ステップＳ１７２の結果：ＹＥＳの場合）、アクセス制御部１１は、電力制御部１３に対して、「オフモード」に移行する制御を行うように指示する。この指示を受けた電力制御部１３は、「オフモード」に移行する制御を行う（ステップＳ１７３）。
【００８３】
図１６は、全待機モードにおけるデータの書き込み動作の一例を示すフローチャートである。図１６のステップＳ１８１〜ステップＳ１８６の内容は、図９のステップＳ７４に相当する処理が行われない点を除いて、図９のステップＳ７１〜ステップＳ７７の内容と同様である。
【００８４】
なお、「オフモード」における動作例は以下のとおりである。「オフモード」において、アクセス要求情報を受信した場合、アクセス制御部１１は、電力制御部１３に対して、全てのメモリ領域を動作状態に復帰させるように指示する。この指示を受けた電力制御部１３は、全てのメモリ領域を動作状態に復帰させる制御を行う。これにより、キャッシュ装置の状態は「オフモード」から「通常動作モード」に切り替わる。そして、アクセス制御部１１は、カウンタの計測値を初期値に設定する。以降の動作は、上述の通常動作モードにおける動作（図１１のステップＳ１０３以降の動作）と同様である。
【００８５】
なお、各メモリ領域に対応する第１閾値の設定方法は任意であり、例えばアクセスが行われる可能性が低いメモリ領域ほど、その第１閾値の値は小さい値に設定される構成であってもよい。この構成によれば、アクセスが行われる可能性が低いメモリ領域については速やかに待機状態に移行させることができる。
【００８６】
また、例えばアクセスが行われる可能性が高いメモリ領域ほど、その第１閾値の値は小さい値に設定される構成であってもよい。この構成によれば、アクセスが行われる可能性が高いメモリ領域を、積極的に待機状態に移行させることができる。さらに、アクセスが行われる可能性が低いメモリ領域に対応する第１閾値の値を、一般的に想定されるアクセス間隔よりも小さい値に設定することで、アクセスが行われる可能性が高いメモリ領域を積極的に待機状態に移行させつつ、アクセスが行われる可能性が低いメモリ領域の消費電力を低減することが可能になる。
【００８７】
また、例えば上述の各実施形態のキャッシュ装置は４ウェイセットアソシアティブ方式であるが、これに限定されるものではなく、２ウェイセットアソシアティブ方式であってもよいし、８ウェイセットアソシティブ方式であってもよい。要するに、ｎ（ｎ≧２）ウェイセットアソシアティブ方式のキャッシュ装置であればよい。
【００８８】
また、上述の各実施形態のキャッシュメモリは不揮発性のメモリで構成されているが、これに限定されるものではなく、例えば揮発性のメモリで構成されてもよい。
【００８９】
また、上述の第１閾値および第２閾値の値は任意に設定可能である。例えば第１閾値を第２閾値よりも小さい値に設定することにより、アクセスされる可能性が高いメモリ領域についても、積極的に待機状態に移行させることが可能になる。これにより、消費電力を低減することができる。
【符号の説明】
【００９０】
１０  キャッシュコントローラ
１１  アクセス制御部
１２  カウンタ
１３  電力制御部
２０  キャッシュメモリ
２１  メモリ領域
２２  メモリ領域
２３  メモリ領域
２４  メモリ領域
２５  キャッシュライン
２６  タグ部
２７  データ部
３０  キャッシュ部
３１  比較部
３２  選択部
４０  電源部
４１  電源
４２  電源
４３  電源
４４  電源
５０  マルチプレクサ
６０  第１ライトバッファ
７０  第２ライトバッファ
１００  キャッシュ装置
２００  キャッシュ装置
【図１】
0005458132.tif 000002
【図２】
0005458132.tif 000003
【図３】
0005458132.tif 000004
【図４】
0005458132.tif 000005
【図５】
0005458132.tif 000006
【図６】
0005458132.tif 000007
【図７】
0005458132.tif 000008
【図８】
0005458132.tif 000009
【図９】
0005458132.tif 000010
【図１０】
0005458132.tif 000011
【図１１】
0005458132.tif 000012
【図１２】
0005458132.tif 000013
【図１３】
0005458132.tif 000014
【図１４】
0005458132.tif 000015
【図１５】
0005458132.tif 000016
【図１６】
0005458132.tif 000017