(57)【特許請求の範囲】
【請求項１】
プロセッサと主記憶の間に設けたキャッシュメモリシステムにおいて，
キャッシュメモリを複数の分割メモリに分割し，各分割メモリのそれぞれに個別に電源が供給されるメモリ本体である電源領域で構成し，
前記分割メモリに対するプロセッサからのアクセス時のキャッシュヒットの結果が入力され，ヒット数を計数してヒット率を発生するキャッシュヒット計数部と，各電源領域への電源供給を制御する電源スイッチ制御部とを設け，
前記電源スイッチ制御部は，前記各キャッシュヒット計数部からのヒット率を入力して，大きいヒット率を発生する分割メモリと小さいヒット率を発生する分割メモリを識別する手段と，前記大きいヒット率と小さいヒット率の差が予め設定された閾値を越えたという条件を満たすことを検出する判定手段と，前記判定手段による条件を満たしたことを判定する出力が発生するとヒット率の低い電源領域への電源供給をオフに切替える制御手段を備えることを特徴とするキャッシュメモリシステム。
【請求項２】
請求項１において，
前記電源スイッチ制御部は，前記キャッシュヒット率の差が予め設定された閾値を越えた状態が予め設定した時間継続するという条件を満たすことを検出する判定手段と，前記判定手段により条件を満たしたことを判定する出力が発生すると前記制御手段は，前記ヒット率の低い電源領域への電源供給をオフに切替えることを特徴とするキャッシュメモリシステム。
【請求項３】
請求項１または２の何れかにおいて，
前記電源スイッチ制御部は，プロセッサにより電源スイッチの状態を強制的にオンまたはオフに切替える制御信号を発生する状態に設定される電源スイッチ強制設定部を備えることを特徴とするキャッシュメモリシステム。
【請求項４】
請求項１乃至３の何れかにおいて，
前記キャッシュヒット計数部は，複数の縦続接続されたフリップフロップと，各フリップフロップの出力が並列に入力された計数部とで構成し，
前記フリップフロップの先頭にキャッシュヒットの出力を入力し，順次後段にシフトされ，前記計数部は並列に入力する各フリップフロップから出力されたヒット状態の個数を計数することを特徴とするキャッシュメモリシステム。
【請求項５】
請求項１乃至４の何れかにおいて，
前記分割メモリを構成する各電源領域の各エントリアドレスにデータを格納すると共に各エントリアドレスに対応したヒット履歴の格納部を備え，
前記各ヒット履歴格納部は，プロセッサからの対応するエントリアドレスへのアクセス時のヒットの有・無の履歴が格納され，
前記各電源領域の各エントリラインの各ヒット履歴格納部の内容を判別する手段と，ヒット履歴の有・無に対応してエントリラインのデータを格納すべき電源領域を決めて，エントリラインのデータをヒット履歴に応じて入れ替える制御を行う手段を備えることを特徴とするキャッシュメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はキャッシュメモリシステムに関し，特に低消費電力化が可能なキャッシュメモリシステムに関する。
【背景技術】
【０００２】
キャッシュメモリは低速な主記憶装置の代わりにプロセッサにデータ（プログラムを含む）を供給する高速なメモリであり，図９はキャッシュメモリを含む計算機システムの構成例である。図中，８０はチップ，８１はチップ８０内に設けられたプロセッサ，８２はチップ８０内に設けられた小容量であるが高速動作をするキャッシュメモリ，８３は大容量であるが低速動作をする主記憶である。なお，この構成は１ウェイキャッシュの例である。
【０００３】
図９におけるメモリ動作には２パターン有る。プログラムが求められるデータがキャッシュメモリに存在する場合（ヒットとなる場合）と存在しない場合（ミスヒットとなる場合）である。ヒットする場合では，プロセッサ８１からキャッシュメモリ８２に対してアドレスと共にアクセスし（図９のａ），キャッシュメモリ８２を検索し，該当するデータがキャッシュメモリ８２に格納されている，すなわちヒットするとそのデータが読み出されてプロセッサ８１に出力される（図９のｆ）。キャッシュメモリ８２に存在せずミスヒットする場合（図９のｂ）では，主記憶アドレスを主記憶８３に供給して（図９のｃ），該当するデータの読出し（同ｄ）が行われ，プロセッサ８１に出力され，キャッシュメモリ８２にフィル（fill) し, プロセッサ８１に供給される。
【０００４】
このように，キャッシュメモリ８２でヒットした場合は，処理速度は高速であり，キャッシュメモリ８２でミスヒットして主記憶８３にアクセスする場合は，処理速度は低速となる。そして，キャッシュメモリのヒット率はプロセッサの処理速度に大きく影響するものであり，高ヒット率が望ましい。もし，ミスヒットが多発してヒット率が低い状態になると，主記憶アクセスに伴うレイテンシ（遅延）によりプロセッサの処理速度が規制されてしまう。
【０００５】
一方，近年は大量データを高速処理するためプロセッサが使用するキャッシュメモリの容量が増大している。キャッシュメモリを増やすことで消費電力，特にリーク電流が増大する問題が生じている。リーク電流は，例えば，Ｎ型ＭＯＳトランジスタの場合，ゲート電圧を０Ｖにするとオフになるが，トランジスタでは完全に電流が零にならず，半導体の微細化に比例してオフリーク電流が急増してしまう。また，ゲート酸化膜をトンネル効果で突き抜けて電流が流れるというメカニズムによるゲートリークがあり，絶縁膜の厚みが減少すると極めて大きな電流となるという現象がある。
【０００６】
従って，キャッシュメモリの容量が増大して回路が微細化した場合に，電力消費を抑制することが望まれている。
【０００７】
従来のキャッシュメモリを備えたプロセッサの技術において，特定のステートにおいてキャッシュメモリは常時パワーオンであり，特別にディープ・パワー・ダウンテクノロジー（ＤＰＤ：Deep Power Down technology) というキャッシュ電力オフモードを備える方法がある。そのＤＰＤのモードはキャッシュメモリにより処理すべきデータが一定時間無い，アイドル状態になったことを検出した時だけキャッシュメモリ全体をパワーオフにするものである。しかし，パワーオフ対象がキャッシュメモリ全体であるため，システム復帰（次のパワーオンの時）に要する素子への充電時間（Wakeup time)が大きくなってしまい，プロセッサによる高速処理に適していない。
【０００８】
なお，不揮発性メモリを記憶媒体とする記憶装置の技術において，メモリの劣化を平均化してその寿命を延ばすために，メモリの消去時間と書き込み時間を測定して基準時間値と比較することによりメモリセルの劣化を診断して，劣化の進行が早いメモリをあまり使用せず，劣化の進行が遅いメモリの使用頻度を上げる制御をする技術が存在する（特許文献１参照）。
【０００９】
また，ディスクドライブを用いたストレージシステムの消費電力の低減を目的として，ストレージに接続された計算機からの指示に基づいて，ストレージシステムが提供する論理ボリュームを構成するディスクドライブの電源をオン／オフ制御する技術が提案されている（特許文献２参照）。
【特許文献１】ＷＯ９６／２８８２６号公報
【特許文献２】特開２００５−１５７７１０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記キャッシュメモリを備えたプロセッサの技術においてパワーオフ対象がキャッシュメモリ全体であり，復帰のための時間が大きいためアイドル状態時に限られるという問題があり，上記特許文献１の技術は不揮発性メモリの劣化を平均化してその寿命を延ばす技術であり，キャッシュメモリの消費電力を低減するものではない。また，特許文献２の技術はディスクドライブの電源を頻繁にオン／オフ制御をするもので，ディスクドライブの劣化と故障の確率の増加を招き，消費電力を低減することはできない。
【００１１】
本発明はプロセッサに配置されたキャッシュメモリの低消費電力化を実現するキャッシュメモリシステムに関する。
【課題を解決するための手段】
【００１２】
この発明では，プロセッサと主記憶の間に設けたキャッシュメモリシステムのキャッシュメモリを複数の分割メモリに分割し，各分割メモリのそれぞれに個別に電源が供給されるメモリ本体である電源領域で構成し，分割メモリに対するプロセッサからのアクセス時のキャッシュヒットの結果が入力され，ヒット数を計数してヒット率を発生するキャッシュヒット計数部と，各電源領域への電源供給を制御する電源スイッチ制御部とを備える。電源スイッチ制御部は，各キャッシュヒット計数部からのヒット率を入力して，大きいヒット率を発生する分割メモリと小さいヒット率を発生する分割メモリを識別する手段と，大きいヒット率と小さいヒット率の差が予め設定された閾値を越えたという条件を満たすことを検出する判定手段を設け，その判定手段により条件を満たしたことを判定する出力が発生するとヒット率の低い電源領域への電源供給をオフに切替える制御手段を備えるよう構成する。
【００１３】
また，好ましくは，電源スイッチ制御部は，キャッシュヒット率の差が予め設定された閾値を越えた状態が予め設定した時間継続するという条件を満たすことを検出する判定手段とその判定手段による条件を満たしたことを判定する出力が発生すると制御手段は，ヒット率の低い電源領域への電源供給をオフに切替えるよう構成するものである。
【００１４】
更に，電源スイッチ制御部は，プロセッサにより電源スイッチの状態を強制的にオンまたはオフに切替える制御信号を発生する状態に設定される電源スイッチ強制設定部を備えるよう構成することで，キャッシュメモリの分割したメモリの電源領域の電源オン，オフの制御を無視するよう構成することができる。
【００１５】
上記したキャッシュヒット計数部の構成として，複数の縦続接続されたフリップフロップと，各フリップフロップの出力が並列に入力された計数部とで構成し，先頭のフリップフロップにキャッシュヒットの出力を入力し，順次後段にシフトされ，計数部は並列に入力する各フリップフロップから出力されたヒット状態の個数を計数するよう構成することができる。
【００１６】
また，好ましくは，分割メモリを構成する各電源領域の各エントリアドレスにデータを格納すると共に各エントリアドレスに対応したヒット履歴の格納部を設け，各ヒット履歴格納部は，プロセッサからの対応するエントリアドレスへのアクセス時のヒットの有無の履歴を格納し，各電源領域の各エントリラインの各ヒット履歴格納部の内容を判別する手段と，ヒット履歴の有・無に対応してエントリラインのデータを格納すべき電源領域を決めて，エントリラインのデータをヒット履歴に応じて入れ替える制御を行うことにより，ヒット率の高い分割メモリとヒット率の低い分割メモリとに分けることができ，ヒット率の低い分割メモリの電源領域への電源供給をオフにすることができる。
【発明の効果】
【００１７】
本発明によれば，ヒット率の低い分割メモリの電源領域に対する電源供給をオフにすることにより，キャッシュメモリの消費電力を低減することが可能となる。例えば，２つに分割した場合に，ある一方への電源供給をオフにすると，その電源領域での消費電力がゼロになる。
【００１８】
また，電源供給のオフは電源領域別に行われるため，必要キャッシュメモリに応じて適切にオフにすることができる。
【００１９】
ヒット率の低い状態が一定時間以上継続したことを条件にヒット率の低い電源領域への電源供給をオフし，結果として，安定した分割メモリの電源制御を実現することができる。
【００２０】
また，一旦電源供給をオフにした後，ヒット率が増加した分割メモリの電源領域への電源供給をオンに戻すことで，プロセッサに必要なデータを動的に適切に供給することができる。
【００２１】
更に，分割メモリの電源領域への電源供給を強制的にオンまたはオフに制御可能とすることで，消費電力の低減よりも高ヒット率実現が優先される場合には，キャッシュメモリの電源を強制オンさせることができる。また，プログラムが使用するキャッシュメモリ容量が既知である場合には不要なキャッシュメモリを予めオフにすることができる。
【００２２】
キャッシュメモリのエントリライン毎のヒット履歴の格納部を設け，そのヒット履歴を用いてデータを入れ替えることによりキャッシュメモリに格納したプログラムの構造や，キャッシュメモリの利用法に依存することなく，電力消費を低減することができる。
【発明を実施するための最良の形態】
【００２３】
図１は発明に係るシステムの概略構成である。図中，１はキャッシュメモリ，１０ａ，１０ｂはキャッシュメモリを２つに分割した場合の周辺回路（アドレスデコーダ，キャッシュヒット判別回路等を含む）をそれぞれに含む第１の分割メモリと第２の分割メモリ，１１ａは第１の分割メモリ１０ａの中の電源が別に供給されるメモリ本体である第１の電源領域（ＰＤ１：Power Domainを表す) ，１１ｂは第２の分割メモリ１０ｂの中の電源が別に供給されるメモリ本体である第２の電源領域（ＰＤ２），１２ａは第１の分割メモリ１０ａからのキャッシュヒット結果を計数するキャッシュヒット計数部，１２ｂは第２の分割メモリ１０ｂからのキャッシュヒット結果を計数するキャッシュヒット計数部，１３はキャッシュヒット計数部１２ａ，１２ｂの２つのヒット計数結果を判定して電源スイッチを制御する出力を発生する電源スイッチ制御部，１４ａ，１４ｂは第１の電源領域１１ａと第２の電源領域１１ｂへの電源供給のオン，オフの切替えを行う第１と第２の電源スイッチ，２はプロセッサ，３は主記憶である。第１と第２の電源スイッチ１４ａ，１４ｂはそれぞれ分割されたキャッシュメモリの第１の電源領域１１ａと第２の電源領域１１ｂへの電源供給をオン，オフ制御するが，第１の分割メモリ１０ａと第２の分割メモリ１０ｂに含まれる周辺回路（アドレスデコーダやキャッシュヒット判別回路等）には常時電源が供給されている。
【００２４】
なお，図１の構成では，キャッシュメモリ１を２つの分割メモリ１０ａ，１０ｂに分割した例を示すが，２以上の複数個に分割できることはいうまでもない。
【００２５】
図１に示すキャッシュメモリを分割して動作する原理を図２により説明する。図２はキャッシュ容量に対するヒット率の変化を定性的に示した図である。キャッシュメモリの全体の容量が５１２Ｂ（バイト）の場合において，これを２５６Ｂずつ２つに分けて，第１の分割メモリ１０ａと第２の分割メモリ１０ｂとで構成するものとする。キャッシュメモリにプログラムまたはデータを格納し，プロセッサ（図示省略）からのアクセスが発生した時に２つの領域に対するヒット率をとった場合，図２のＡ．に示すように，２５６Ｂでほぼ飽和し，さらにそのヒット検出の大部分が第１の電源領域（ＰＤ１）で検出された場合，２５６Ｂ以上のキャッシュ領域である第２の電源領域（ＰＤ２）に対してプロセッサからアクセスする可能性は極めて小さいことは明らかである。このように領域間でのヒット率の差が大きい場合は，図２のＢ．に示すように高いヒット率の第１の電源領域（ＰＤ１）だけ動作させ（電源をオンにし），低いヒット率の第２の電源領域（ＰＤ２）への電源をオフにしても問題がないことは明らかである。この原理に基づいて図１に示すような構成が得られる。
【００２６】
図１の説明に戻ると，プロセッサ２からキャッシュメモリ１へアドレスを含むアクセス（読出し又は書込み）が発生すると，キャッシュメモリ１の第１と第２の分割メモリ１０ａ，１０ｂにアドレスを含むアクセス信号が入力されアドレスデコードが実行される。この結果，アクセスが成功（ヒット）すると，ヒットした方のキャッシュヒット計数部１２ａまたは１２ｂにヒット出力が入力して計数が行われる。ヒットしない場合は，主記憶３にアクセスすることになる。
【００２７】
キャッシュヒット計数部１２ａと１２ｂからの計数値は，電源スイッチ制御部１３へ入力されると，それぞれ単位時間に対するヒット率としてみなされ，両ヒット率の差が予め設定された閾値を越えると，低いヒット率である分割メモリ１０ａまたは１０ｂへの電力供給を行う電源スイッチ１４ａまたは１４ｂをオフに切替える。
【００２８】
図３は複数に分割したキャッシュメモリを構成する一つの分割メモリの実施例の構成を示す。図中，１０ａは第１の分割メモリ，１１ａは第１の電源領域（ＰＤ１），１００はエントリ(Entry) アドレスデコーダ，１０１はタグ（Tag)ＲＡＭ，１０２はキャッシュヒットを判別するタグアドレス比較器，１０３はワードデータセレクタ，１５はプロセッサから供給されるアドレスを保持するアドレスレジスタである。
【００２９】
図３に示すキャッシュメモリは，ダイレクトマップ方式のキャッシュ構造を採用したもので，プロセッサからのアドレスがアドレスレジスタ１５に設定されると，その上位に設定されたタグ（Tag で表すアドレスの上位ビット）と呼ばれる大項目のアドレスがタグアドレス比較器１０２の一方に入力され，アドレスレジスタ１５の中のエントリ（Entry)と呼ばれる中項目のアドレスが第１の分割メモリ１０ａのエントリアドレスデコーダ１００でデコードされ，デコーダにより発生したアドレスがタグＲＡＭ１０１に供給され，タグＲＡＭ（またはタグアレイ）１０１からプログラムタグが読出される。タグＲＡＭ１０１から読出されたプログラムタグがタグアドレス比較器１０２の他方に入力され，アドレスレジスタ１５のタグと比較され，一致するとキャッシュヒット情報としてヒットを表す出力を発生して，キャッシュヒット計数部（図１の１２ａ）に供給される。
【００３０】
また，第１の電源領域１１ａからエントリのアドレスにより読出されるラインデータは，この例ではデータ２Ａ〜データ２Ｄの４ワードであり，ワードデータセレクタ１０３に並列に出力される。この時，アドレスレジスタ１５の中のワードアドレス（ｗで表す）がワードデータセレクタ１０３に供給され，一つのワードデータが選択されて出力されるが，そのワードデータはヒットの出力が発生した時のみ有効なデータとしてプロセッサに出力される。
【００３１】
図４はキャッシュヒット計数部の実施例の構成を示す。図中，１２はキャッシュヒット計数部（図１の１２ａ，１２ｂ），１２０−１〜１２０−ｎは順次接続されて，先頭に入力されたビットをシフト形式で保持し終端から廃棄される複数のフリップフロップ，１２１は計数部である。キャッシュヒット計数部１２はキャッシュメモリを分割した第１と第２の電源領域（図１の１１ａ，１１ｂ）にそれぞれ対応するように設けられ，各電源領域からのヒット結果として，ヒットであれば“１”が入力され，ミスヒットであれば“０”が入力される。該ヒット結果は，先頭のフリップフロップ１２０−１に設定され，プロセッサからのキャッシュメモリへのアクセス毎に入力される。また，ヒット結果が先頭のフリップフロップ１２０−１に設定される毎に，それ以前に各フリップフロップに保持された状態がそれぞれ順番に次段のフリップフロップにシフトされる。
【００３２】
これにより，所定時間内の最新のキャッシュヒット情報がフリップフロップ１２０−１〜１２０−ｎに記憶される。このフリップフロップ１２０−１〜１２０−ｎに記憶されたキャッシュヒット情報を計数部１２１で計数し，単位時間当たりの総ヒット数，すなわちヒット率が得られる。なお，このキャッシュヒット計数部１２は，キャッシュメモリの電源領域（ＰＤ）の一つに対して電源がオフに切替えられた後も，ＰＤに対するアクセスがヒットしたか否かを検出する回路としての動作を継続している。
【００３３】
キャッシュヒット数の計数において，予め指定したフリップフロップ出力を指定し，例えば，１つ置きのフリップフロップの出力を指定して（間引いて）計数しても良い。これにより計数に要する演算量を減らすことができる。
【００３４】
図５は電源スイッチ制御部（図１の１３）の第１の実施例の構成である。図中，１３は電源スイッチ制御部，１３０はヒット率の高低を識別して出力するソート部，１３１は判定部，１３２は判定部１３１の判定出力に従って電源スイッチのオン，オフの制御を行うと共に電源オフとなる対象となるキャッシュメモリがデータキャッシュの場合に，その内容を主記憶（図１の３）に書き戻す制御を行う制御部である。
【００３５】
電源スイッチ制御部１３に複数（図５の例では２つ）のキャッシュメモリの単位時間当たりのヒット率がキャッシュヒット計数部（図１の１２ａ，１２ｂ及び図４参照）から入力すると，ソート部１３０で数値を識別して高いヒット率（Ｈｍａｘとする）と低いヒット率（Ｈｍｉｎとする）及びその電源領域番号を対応する出力端子に出力する。判定部１３１は高いヒット率（max hit 率：Ｈｍａｘ）−低いヒット率（minimum hit 率：Ｈｍｉｎ）の演算をし，その演算結果が予め設定された閾値を越えていると判定すると，低いヒット率である電源領域番号（ＰＤｍｉｎ）を含む判定結果を制御部１３２に出力する。制御部１３２は判定部１３１の判定結果を受け取ると，受け取った番号が指し示す電源領域の電源スイッチ（図１の１４ａまたは１４ｂ）をオフにする制御信号を発生する。なお，電源をオフにする対象となる電源領域がデータキャッシュ（書換え可能なデータを保持するキャッシュメモリ）であることを識別すると，その電源領域の電源をオフにする前に，主記憶（図１の３）に対して，当該電源領域のデータを書き戻す処理を行う。
【００３６】
判定部１３１の判定は，キャッシュメモリの一つの電源領域への電源をオフにした後も，引き続いて実行され，上記の判定部１３１における電源オフのための条件が成立しないと判定されると，その判定出力を制御部１３２に出力する。これにより制御部１３２は一旦電源オフにされた電源領域への電源を再びオンに復帰させる制御信号を電源スイッチに出力して，その電源領域をキャッシュメモリシステムに再び組み込む。
【００３７】
図６は電源スイッチ制御部の第２の実施例の構成である。図中，１３０はソート部，１３３は上記実施例１の判定部１３１とは異なる機能を備える判定部，１３４は上記実施例１の制御部１３２とは異なる機能を備えた制御部である。判定部１３３は上記実施例１（図５）のソート部１３０と同一機能のソート部を前段に備えており，該ソート部の結果を判定部１３３が受け取ると，高いヒット率（Ｈｍａｘ）−低いヒット率（Ｈｍｉｎ）が予め設定された閾値を越えているかという上記実施例１の判定部１３１と同じ条件（これを条件１という）の成立と，条件１が一定時間以上継続するという条件（これを条件２という）の成立を観測し，条件２の判定結果を制御部１３４に出力する。制御部１３４は判定部１３３からの判定出力（ヒット率が低い電源領域番号を含む）を受け取ると，低いヒット率の電源領域番号を持つ電源領域の電源スイッチをオフに切替える。
【００３８】
この構成により，キャッシュメモリの中の一つの電源領域のヒット率が一時的に低下してその電源をオフに切替えたり，オフに切替えた後短時間でヒット率が回復して電源をオンに切替えたりするという，オン，オフの切替えを繰り返すことによるシステム不安定化の防止が可能となる。また，一旦，一つの電源領域への電源をオフに切替えた後，その後オフになった電源領域のヒット率が回復して，条件１が成立しない状態になった時において，その状態が一定時間継続した場合は，その電源領域への電源をオンに切替えることになる。
【００３９】
図７は電源スイッチ制御部の第３の実施例の構成である。図中，１３０〜１３２は上記の実施例１（図５）の同一符号の各部と同じであり説明を省略する。１３５は電源スイッチ強制設定部であり，制御部１３２からの制御を無効化して，プロセッサ（図１の２）からの制御により電源スイッチの状態が強制的に設定される。
【００４０】
電源スイッチ強制設定部１３５による電源スイッチが強制設定されるのは，上記図１に示すようにキャッシュメモリが第１の分割メモリ１０ａと第２の分割メモリ１０ｂの２つに分割されている場合において，第１の分割メモリ１０ａだけを使用することが予め分かっているような時（例えば，プログラムのアクセス容量が決まっている時）であり，第２の分割メモリ１０ｂへの電源を強制的にオフにするようプロセッサから設定することができる。また，第１と第２の分割メモリ１０ａと１０ｂの電源のオン，オフの切替えをさせないようにしたい場合には，強制的に電源をオンに切替えるよう設定することができる。なお，電源スイッチ強制設定部１３５による強制設定はプロセッサからの制御により無効化でき，その場合は制御部１３２の制御による電源スイッチの制御が行われる。
【００４１】
図８はデータ入れ替えによるキャッシュメモリの低電力化のための構成を示す。図８のＡ．は時刻ｔにおける状態，Ｂ．は時刻ｔ＋１の状態を表し，Ｂ．にはキャッシュメモリ１の構成だけ示す。図中，１はキャッシュメモリ，１０ａ，１０ｂはそれぞれキャッシュメモリを分割した第１の分割メモリ，第２の分割メモリ，１１ａ，１１ｂは分割メモリ１０ａ，１０ｂ内のメモリ本体である第１の電源領域（ＰＤ１で表す），第２の電源領域（ＰＤ２で表す），１６−１，１６−２はキャッシュメモリの第１の電源領域（ＰＤ１）と第２の電源領域（ＰＤ２）のそれぞれの各エントリライン（各エントリアドレスに格納された複数ワードからなるデータで構成）のデータに対応したヒット履歴の格納部であり，この例では各エントリアドレス（各エントリライン）に対応して１ビットで構成され，キャッシュメモリに格納した後にヒットが１度でもあると“１”にセットされ，ヒットが無いと“０”を維持する。１７は履歴判別部，１８は履歴判別部１７の判別結果によりエントリラインのデータを第１の電源領域と第２の電源領域の間で入れ替えを行うエントリライン入れ替え部，２はプロセッサ，３は主記憶である。なお，図８のＡ．とＢ．のキャッシュメモリ１には図１の構成に示すキャッシュヒット計数部１２ａ，１２ｂ，電源スイッチ制御部１３，電源スイッチ１４ａ，１４ｂも備えているが図示省略されている。
【００４２】
時刻ｔにおいて，主記憶３からキャッシュメモリ１にデータが格納され，第１の分割メモリ１０ａの電源領域（ＰＤ１）１１ａにはエントリライン０，１，２，・・にＤａｔａ０（１ｈｉｔ：ヒット有を表す），Ｄａｔａ１（０ｈｉｔ：ヒット無しを表す），・・・が格納され，ヒット履歴格納部１６−１に各エントリラインに対応したヒットの有無に対応したビット情報が格納されている。同様に，第２の分割メモリ１０ｂの電源領域（ＰＤ２）１１ｂにはエントリライン０，１，・・にＤａｔａ２５６（１ｈｉｔ），Ｄａｔａ２５７（０ｈｉｔ），・・・が格納され，ヒット履歴格納部１６−２に各エントリラインに対応したヒット履歴を表すビット情報が格納されている。履歴判別部１７は２つの分割メモリ１０ａ，１０ｂのヒット履歴格納部１６−１，１６−２を履歴判別部１７で判別し，第１の電源領域１１ａにヒット履歴の有るエントリラインのデータを格納し，第２の電源領域１１ｂにヒット履歴の無いエントリラインのデータを格納するよう，データの入れ替え制御をエントリライン入れ替え部１８で実行する。
【００４３】
このエントリライン入れ替え部１８の動作により，時刻ｔ＋１においては図８のＢ．に示すように第１の電源領域１１ａと第２の電源領域１１ｂのエントリラインのデータが入れ替えられる。すなわち，第１の分割メモリ１０ａのエントリライン０，１，・・・にはヒット履歴有りを表す“１”のデータＤａｔａ０，Ｄａｔａ２５６，・・・が順次格納され，第２の分割メモリ１０ｂのエントリライン０，１，・・・にはヒット履歴無しを表す“０”のＤａｔａ１，Ｄａｔａ２５７，・・・が順次格納された状態になる。
【００４４】
この図８の構成に依拠し，ヒット履歴のあるエントリラインのデータを第１の電源領域１１ａに，ヒット履歴のないエントリラインのデータを第２の電源領域１１ｂに入れ替えることにより，入れ替え後には第２の電源領域１１ｂのヒット率が大きく低下させることができるため，第２の電源領域１１ｂへ電源を供給する電源スイッチをオフに切替え易くなり，キャッシュメモリの低電力化を積極的に実現することが可能となる。
【００４５】
なお，図８ではヒット履歴格納部１６−１，１６−２には各エントリラインに対応して１ビットの格納部を備えているが，複数ビットにより所定時間内のヒット数を計数するように構成することができ，履歴判別部１７でヒット履歴格納部１６−１，１６−２の各計数値を用いて履歴判別部１７で判別し，エントリライン入れ替え部１８で入れ替えを行うようにする。
【００４６】
（付記１）  プロセッサと主記憶の間に設けたキャッシュメモリシステムにおいて，キャッシュメモリを複数の分割メモリに分割し，各分割メモリのそれぞれに個別に電源が供給されるメモリ本体である電源領域で構成し，前記分割メモリに対するプロセッサからのアクセス時のキャッシュヒットの結果が入力され，ヒット数を計数してヒット率を発生するキャッシュヒット計数部と，各電源領域への電源供給を制御する電源スイッチ制御部とを設け，前記電源スイッチ制御部は，前記各キャッシュヒット計数部からのヒット率を入力して，大きいヒット率を発生する分割メモリと小さいヒット率を発生する分割メモリを識別する手段と，前記大きいヒット率と小さいヒット率の差が予め設定された閾値を越えたという条件を満たすことを検出する判定手段と，前記判定手段による条件を満たしたことを判定する出力が発生するとヒット率の低い電源領域への電源供給をオフに切替える制御手段を備えることを特徴とするキャッシュメモリシステム。
【００４７】
（付記２）  付記１において，前記電源スイッチ制御部は，前記キャッシュヒット率の差が予め設定された閾値を越えた状態が予め設定した時間継続するという条件を満たすことを検出する判定手段と，前記判定手段により条件を満たしたことを判定する出力が発生すると前記制御手段は，前記ヒット率の低い電源領域への電源供給をオフに切替えることを特徴とするキャッシュメモリシステム。
【００４８】
（付記３）  付記１または２の何れかにおいて，前記判定手段により条件を満たしたことが検出されて，前記制御手段によりヒット率の低い電源領域への電源供給をオフに切替えた後，前記判定手段が前記条件を満たさないことを検出すると，前記制御手段はオフに切替えられた電源領域への電源供給をオンに切替えることを特徴とするキャッシュメモリシステム。
【００４９】
（付記４）  付記１または２の何れかにおいて，前記電源スイッチ制御部は，プロセッサにより電源スイッチの状態を強制的にオンまたはオフに切替える制御信号を発生する状態に設定される電源スイッチ強制設定部を備えることを特徴とするキャッシュメモリシステム。
【００５０】
（付記５）  付記１乃至３の何れかにおいて，前記キャッシュヒット計数部は，複数の縦続接続されたフリップフロップと，各フリップフロップの出力が並列に入力された計数部とで構成し，先頭の前記フリップフロップにキャッシュヒットの出力を入力し，順次後段にシフトされ，前記計数部は並列に入力する各フリップフロップから出力されたヒット状態の個数を計数することを特徴とするキャッシュメモリシステム。
【００５１】
（付記６）  付記５において，前記キャッシュヒット計数部の計数部は，前記縦続接続されたフリップフロップの出力の中から所定個数毎の出力を選択してヒット状態を計数することを特徴とするキャッシュメモリシステム。
【００５２】
（付記７）  付記１乃至５の何れかにおいて，前記分割メモリを構成する各電源領域の各エントリアドレスにデータを格納すると共に各エントリアドレスに対応したヒット履歴の格納部を備え，前記各ヒット履歴格納部は，プロセッサからの対応するエントリアドレスへのアクセス時のヒットの有・無の履歴が格納され，前記各電源領域の各エントリラインの各ヒット履歴格納部の内容を判別する手段と，ヒット履歴の有・無に対応してエントリラインのデータを格納すべき電源領域を決めて，エントリラインのデータをヒット履歴に応じて入れ替える制御を行う手段を備えることを特徴とするキャッシュメモリシステム。
【００５３】
（付記８）  付記１乃至６の何れかにおいて，前記電源スイッチ制御部は，前記制御手段により電源供給をオフに切替える対象となる電源領域がデータを保持していることを検出すると，電源供給をオフにする前に当該電源領域のデータを主記憶に対して書き戻すことを特徴とするキャッシュメモリシステム。
【図面の簡単な説明】
【００５４】
【図１】発明に係るキャッシュメモリシステムの概略構成である。
【図２】キャッシュ容量に対するヒット率の変化を定性的に示した図である。
【図３】複数に分割したキャッシュメモリを構成する一つの分割メモリの実施例の構成を示す図である。
【図４】キャッシュヒット計数部の実施例の構成を示す図である。
【図５】電源スイッチ制御部の第１の実施例の構成を示す図である。
【図６】電源スイッチ制御部の第２の実施例の構成を示す図である。
【図７】電源スイッチ制御部の第３の実施例の構成を示す図である。
【図８】データ入れ替えによるキャッシュメモリの低電力化のための構成を示す図である。
【図９】キャッシュメモリを含む計算機システムの構成例を示す図である。
【符号の説明】
【００５５】
１        キャッシュメモリ
１０ａ    第１の分割メモリ
１０ｂ    第２の分割メモリ
１１ａ    第１の電源領域（ＰＤ１）
１１ｂ    第２の電源領域（ＰＤ２）
１２ａ，１２ｂ  キャッシュヒット計数部
１３      電源スイッチ制御部
１４ａ    第１の電源スイッチ
１４ｂ    第２の電源スイッチ
２        プロセッサ
３        主記憶
【図１】
0005167952.tif 000002
【図２】
0005167952.tif 000003
【図３】
0005167952.tif 000004
【図４】
0005167952.tif 000005
【図５】
0005167952.tif 000006
【図６】
0005167952.tif 000007
【図７】
0005167952.tif 000008
【図８】
0005167952.tif 000009
【図９】
0005167952.tif 000010