(57)【要約】【課題】キャッシュ容量の制御により、システムのスループットを安定させ、かつキャッシュメモリの電力消費を低減させることを可能とするキャッシュメモリ制御装置を提供すること。【解決手段】キャッシュメモリ１１及び主メモリ１６の間におけるリフィル要求をカウントするリフィルカウンタ１８と、リフィルカウンタ１８によるカウント値に応じてキャッシュ容量を判定するキャッシュ容量判定部１７と、を有し、キャッシュ容量判定部１７は、カウント値が第１の閾値以下、又は第１の閾値未満である場合、キャッシュ容量の削減を指示するキャッシュ容量削減指示信号Ｓｄをキャッシュメモリ１１に対して送出し、カウント値が第１の閾値より大きい値である第２の閾値以上、又は第２の閾値より大きい場合、キャッシュ容量の増加を指示するキャッシュ容量増加指示信号Ｓｉをキャッシュメモリ１１に対して送出する。【選択図】      図１
2009251713.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュ容量を動的に変更可能なキャッシュメモリの前記キャッシュ容量を制御するキャッシュメモリ制御装置であって、
前記キャッシュメモリ及び主メモリの間におけるリフィル要求をカウントするリフィルカウンタと、
前記リフィルカウンタによるカウント値に応じて前記キャッシュ容量を判定するキャッシュ容量判定部と、を有し、
前記キャッシュ容量判定部は、前記カウント値が第１の閾値以下、又は前記第１の閾値未満である場合、前記キャッシュ容量の削減を指示するキャッシュ容量削減指示信号を前記キャッシュメモリに対して送出し、前記カウント値が前記第１の閾値より大きい値である第２の閾値以上、又は前記第２の閾値より大きい場合、前記キャッシュ容量の増加を指示するキャッシュ容量増加指示信号を前記キャッシュメモリに対して送出することを特徴とするキャッシュメモリ制御装置。
【請求項２】
前記キャッシュメモリは、互いに異なる前記キャッシュ容量のｎ（ｎは２以上の整数）段階の状態へ遷移可能であって、
前記キャッシュ容量判定部は、前記カウント値が前記第１の閾値以下、又は前記第１の閾値未満である場合、前記キャッシュ容量削減指示信号の送出により、前記キャッシュ容量を一段階減少させた状態への遷移を指示し、前記カウント値が前記第２の閾値以上、又は前記第２の閾値より大きい値である場合、前記キャッシュ容量増加指示信号の送出により、前記キャッシュ容量を一段階増加させた状態への遷移を指示することを特徴とする請求項１に記載のキャッシュメモリ制御装置。
【請求項３】
前記リフィルカウンタは、前記リフィル要求の回数をカウントすることを特徴とする請求項１又は２に記載のキャッシュメモリ制御装置。
【請求項４】
前記リフィルカウンタは、前記リフィル要求が開始されてから完了するまでの経過時間をカウントすることを特徴とする請求項１又は２に記載のキャッシュメモリ制御装置。
【請求項５】
前記キャッシュ容量判定部は、単位時間当たりの前記カウント値が前記第１の閾値以下、又は前記第１の閾値未満である場合、前記キャッシュ容量削減指示信号を送出し、単位時間当たりの前記カウント値が前記第２の閾値以上、又は前記第２の閾値より大きい値である場合、前記キャッシュ容量増加指示信号を送出することを特徴とする請求項１〜４のいずれか一項に記載のキャッシュメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリを制御するためのキャッシュメモリ制御装置に関する。
【背景技術】
【０００２】
従来、マイクロプロセッサは、メモリアクセスのボトルネックを解消するために、チップ上にキャッシュメモリを搭載するものが主流となっている。処理性能の向上を図るために、チップに搭載されるキャッシュメモリの容量は年々増加している。チップが低消費電力化の傾向にある一方、マイクロプロセッサの消費電力に占めるキャッシュメモリの消費電力の割合が増加していることから、キャッシュメモリは、消費電力の低減が求められている。例えば、特許文献１、特許文献２、及び特許文献３には、セットアソシアティブ方式のキャッシュメモリにおいて、動作させるウェイ数を変更することで実質的にキャッシュ容量を変化させる技術が提案されている。一部のウェイへの電力供給を停止させることによりキャッシュ容量を削減させ、消費電力を低減させる。
【０００３】
例えば、特許文献１にて提案される技術では、ＬＲＵ（Least  Recently  Used）エントリのヒット回数とＭＲＵ（Most  Recently  Used）エントリのヒット回数との比率に基づいてウェイ数を制御する。特許文献２に提案される技術では、キャッシュミス率の変化に応じてウェイ数を制御する。特許文献３に提案される技術では、ヒット率に応じてウェイ数を制御する。
【０００４】
キャッシュメモリを介したメモリアクセスのスループット向上とキャッシュ容量とは、トレードオフの関係にあって、適切に制御されることが望ましい。キャッシュメモリ及び主メモリの間の転送能力が十分に確保されている場合、キャッシュメモリへのアクセスに対するミス率やヒット率を監視することにより、キャッシュ容量の適切な制御が可能である。これに対して、複数のプロセッサコアや信号処理専用ハードウェアが同一のバス、同一のキャッシュメモリを介して同時にメモリアクセスする状況では、キャッシュメモリ及び主メモリの間の転送能力がシステムのボトルネックとなる場合がある。この場合、ミス率やヒット率を監視するのみでは、ウェイ数の適切な制御が困難な場合が生じる。
【０００５】
例えば、１００００サイクルにおけるＭＲＵエントリのヒット回数が１０００回、ＬＲＵサイクルのヒット回数が１００回、リフィル回数が５０回である第１のケース、１００００サイクルにおけるＭＲＵエントリのヒット回数が１００回、ＬＲＵエントリのヒット回数が１００回、リフィル回数が１回である第２のケースを想定する。特許文献１の技術によると、第１のケースの場合、ウェイ数は削減され、第２のケースの場合、ウェイ数は維持される。これに対して、キャッシュメモリ及び主メモリの間の転送能力により、１００００サイクルにおけるリフィル回数の上限を４０回と設定したとする。第１のケースの場合、リフィル回数が上限を超えているにも関わらず、ウェイ数は削減されることとなる。また、第２のケースの場合、リフィル回数の上限にまで大きく余裕があり、ウェイ数を削減可能であるにも関わらず、ウェイ数は維持されることとなる。このような挙動は、特許文献１の技術のみならず、特許文献２の技術、特許文献３の技術でも現れる場合がある。このように、従来の技術によると、リフィル回数を安定させるような、ウェイ数の適切な制御がなされない場合があるという問題を生じる。特許文献４のようにコンパイル時にキャッシュ容量を決定する方法の場合、ソフトウェアの命令メモリの制御に有効である一方、信号処理専用ハードウェアやソフトウェアのデータメモリへのアクセスのリフィル回数を安定させることが困難であるという問題を生じる。
【０００６】
【特許文献１】特開２００５−３１６８４２号公報
【特許文献２】特開平９−５０４０１号公報
【特許文献３】特開２００６−３０９７３４号公報
【特許文献４】特開２０００−２０３９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、上述の問題に鑑みてなされたものであり、キャッシュ容量の制御により、キャッシュメモリ及び主メモリの間における単位時間当たりのリフィル要求を一定範囲に維持することでシステムのスループットを安定させ、かつキャッシュメモリの電力消費を低減させることを可能とするキャッシュメモリ制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願発明の一態様によれば、キャッシュ容量を動的に変更可能なキャッシュメモリのキャッシュ容量を制御するキャッシュメモリ制御装置であって、キャッシュメモリ及び主メモリの間におけるリフィル要求をカウントするリフィルカウンタと、リフィルカウンタによるカウント値に応じてキャッシュ容量を判定するキャッシュ容量判定部と、を有し、キャッシュ容量判定部は、カウント値が第１の閾値以下、又は第１の閾値未満である場合、キャッシュ容量の削減を指示するキャッシュ容量削減指示信号をキャッシュメモリに対して送出し、カウント値が第１の閾値より大きい値である第２の閾値以上、又は第２の閾値より大きい場合、キャッシュ容量の増加を指示するキャッシュ容量増加指示信号をキャッシュメモリに対して送出することを特徴とするキャッシュメモリ制御装置が提供される。
【発明の効果】
【０００９】
本発明によれば、キャッシュ容量の制御により、キャッシュメモリ及び主メモリの間における単位時間当たりのリフィル要求を一定範囲に維持することでシステムのスループットを安定させ、かつキャッシュメモリの電力消費を低減させるという効果を奏する。
【発明を実施するための最良の形態】
【００１０】
以下に添付図面を参照して、本発明に係るキャッシュメモリ制御装置の最良な実施の形態を詳細に説明する。
【００１１】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に係るキャッシュメモリ制御装置１０を有する情報処理装置の概略構成を示すブロック図である。本実施の形態において、情報処理装置は、第１プロセッサコア１２及び第２プロセッサコア１３が一つのキャッシュメモリ１１を共用する。第１プロセッサコア１２、第２プロセッサコア１３、及び信号処理専用ハードウェア１４は、共通のバス１５を用いて信号を送受信する。主メモリ１６は、プロセッサの外部に設けられた外部メモリである。
【００１２】
キャッシュメモリ１１は、プロセッサが処理するデータを格納するデータキャッシュメモリである。キャッシュメモリ１１は、キャッシュ容量を動的に変更可能に構成されている。キャッシュメモリ１１は、実質的にキャッシュ容量を変更可能であればいずれの構成であっても良い。本実施の形態に係るキャッシュメモリ制御装置１０は、本発明が属する分野の技術者によって、以下の説明要綱に基づき、データキャッシュメモリ以外の命令キャッシュメモリ等の多様なキャッシュメモリを制御するキャッシュメモリ制御装置へ変形可能である。従って、以下の説明は、当該分野に対して開示される内容として広く理解されるべきであり、本発明を限定するものではない。
【００１３】
キャッシュメモリ制御装置１０は、キャッシュメモリ１１に接続して使用される。キャッシュメモリ制御装置１０は、キャッシュメモリ１１のキャッシュ容量を制御する。キャッシュメモリ制御装置１０は、キャッシュ容量判定部１７、リフィルカウンタ１８、クロックカウンタ１９を有する。キャッシュ容量判定部１７は、キャッシュメモリ１１のキャッシュ容量を判定する。リフィルカウンタ１８は、キャッシュメモリ１１及び主メモリ１６の間におけるリフィル要求の回数をカウントする。クロックカウンタ１９は、クロック数をカウントする。
【００１４】
リフィルカウンタ１８は、キャッシュメモリ１１から主メモリ１６に対するデータの読み出し要求、又は主メモリ１６へのデータの書き込み要求が１回送出されるごとにリフィル要求が１回とカウントする。キャッシュ容量判定部１７は、クロックカウンタ１９でカウントされたクロック数が所定の数Ｔとなるごとに、リフィルカウンタ１８でカウントされたリフィル回数のカウント値Ｃを読み出す。クロック数Ｔは、所定の単位時間を表す。また、キャッシュ容量判定部１７は、カウント値Ｃを読み出すごとに、リフィルカウンタ１８のカウント値Ｃをゼロにリセットする。リフィルカウンタ１８は、カウント値Ｃのリセットの後、リフィル要求の回数を再びゼロからカウントする。キャッシュ容量判定部１７は、単位時間おきに、カウント値Ｃの読み出し及びリセットを繰り返す。
【００１５】
なお、キャッシュメモリ制御装置１０は、クロックカウンタ１９に代えて、時間を計測するタイマを用いても良い。タイマを用いる場合、キャッシュ容量判定部１７は、タイマが単位時間を計測するごとにカウント値Ｃを読み出す。キャッシュ容量判定部１７は、ハードウェア構成により実現するもの、プロセッサ上で動作させるソフトウェアにより実現するもののいずれとしても良い。
【００１６】
図２は、キャッシュメモリ制御装置１０によるキャッシュ容量の制御について説明するものであって、キャッシュメモリ１１の状態遷移図である。キャッシュメモリ１１は、小容量状態、及び大容量状態の、互いに異なるキャッシュ容量の２段階の状態へ遷移可能である。キャッシュ容量判定部１７は、キャッシュメモリ１１のキャッシュ容量を２段階のいずれとするかを判定する。また、キャッシュ容量判定部１７内の記憶論理（レジスタ又は小規模なメモリ）には、第１の閾値Ｔｈ０及び第２の閾値Ｔｈ１（Ｔｈ０＜Ｔｈ１）が記憶される。第１の閾値Ｔｈ０は、キャッシュ容量を有効に利用しているとして許容可能なリフィル回数の最小値を表す。第２の閾値Ｔｈ２は、スループットを安定させるためのリフィル回数の最大値を表す。
【００１７】
キャッシュメモリ１１が大容量状態である場合において、カウント値Ｃが第１の閾値Ｔｈ０以下（Ｃ≦Ｔｈ０）であったとする。カウント値Ｃが第１の閾値Ｔｈ０以下であることは、キャッシュ容量が過剰であって、一定範囲の回数のリフィル要求を維持しながらキャッシュ容量を削減可能であることを示す。キャッシュ容量判定部１７は、キャッシュメモリ１１に対してキャッシュ容量削減指示信号Ｓｄを送出する。キャッシュ容量削減指示信号Ｓｄは、キャッシュメモリ１１に対してキャッシュ容量の削減を指示する信号である。キャッシュ容量判定部１７は、キャッシュ容量削減指示信号Ｓｄにより、大容量状態から小容量状態への遷移を指示する。キャッシュメモリ１１は、キャッシュ容量判定部１７から送出されたキャッシュ容量削減指示信号Ｓｄに応じて、図中矢印Ｄで示すように、大容量状態からキャッシュ容量を一段階減少させた小容量状態へ遷移する。リフィル回数を一定範囲としながらキャッシュメモリ１１のキャッシュ容量を削減することで、システムのスループットを安定させつつ、消費電力を低減できる。
【００１８】
キャッシュメモリ１１が小容量状態である場合において、カウント値Ｃが第２の閾値Ｔｈ１より大きい（Ｔｈ１＜Ｃ）とする。カウント値Ｃが第２の閾値Ｔｈ１より大きいことは、キャッシュメモリ１１のキャッシュ容量が不足しており、リフィル要求の回数の増大を抑制させるためにキャッシュ容量を増加させる必要があることを示す。キャッシュ容量判定部１７は、キャッシュメモリ１１に対してキャッシュ容量増加指示信号Ｓｉを送出する。キャッシュ容量増加指示信号Ｓｉは、キャッシュメモリ１１に対してキャッシュ容量の増加を指示する信号である。キャッシュ容量判定部１７は、キャッシュ容量増加指示信号Ｓｉにより、小容量状態からキャッシュ容量を一段階増加させた大容量状態への遷移を指示する。
【００１９】
キャッシュメモリ１１は、キャッシュ容量判定部１７から送出されたキャッシュ容量増加指示信号Ｓｉに応じて、図中矢印Ｉで示すように、小容量状態から大容量状態へ遷移する。リフィル回数を一定範囲に抑制することで、システムのスループットを安定にさせることができる。なお、キャッシュ容量判定部１７は、キャッシュメモリ１１におけるキャッシュ容量の遷移の有無に関わらず、リフィルカウンタ１８をリセットする。
【００２０】
キャッシュメモリ１１が大容量状態である場合、キャッシュメモリ１１は、それ以上キャッシュ容量が大きい状態へ遷移することができない。この場合、カウント値Ｃが第２の閾値Ｔｈ１より大きい（Ｔｈ１＜Ｃ）ことによりキャッシュ容量増加指示信号Ｓｉが送出されても、キャッシュメモリ１１は状態を遷移させない。なお、キャッシュ容量判定部１７は、キャッシュメモリ１１が大容量状態である場合に、キャッシュ容量増加指示信号Ｓｉの送出を抑制することとしても良い。
【００２１】
キャッシュメモリ１１が小容量状態である場合、キャッシュメモリ１１は、それ以上キャッシュ容量が小さい状態へ遷移することができない。この場合、カウント値Ｃが第１の閾値Ｔｈ０以下（Ｃ≦Ｔｈ０）であることによりキャッシュ容量削減指示信号Ｓｄが送出されても、キャッシュメモリ１１は状態を遷移させない。なお、キャッシュ容量判定部１７は、キャッシュメモリ１１が小容量状態である場合に、キャッシュ容量削減指示信号Ｓｄの送出を抑制することとしても良い。
【００２２】
キャッシュメモリ制御装置１０は、リフィルカウンタ１８から読み出したカウント値Ｃに基づいて、キャッシュ容量を制御する。キャッシュ容量の制御により、キャッシュメモリ１１及び主メモリ１６の間における単位時間当たりのリフィル要求の回数を一定範囲に維持することでシステムのスループットを安定させ、かつキャッシュメモリ１１の電力消費を低減できるという効果を奏する。
【００２３】
本発明に係るキャッシュメモリ制御装置１０は、キャッシュメモリ１１及び主メモリ１６の間の転送能力がシステムのボトルネックとなる場合に有用である。特に、複数のプロセッサコア１２、１３や信号処理専用ハードウェア１４が同一のバス１５、同一のキャッシュメモリ１１を介して同時にメモリアクセスするように、バス１５の輻輳を生じ易い場合に、キャッシュメモリ制御装置１０による制御は効果的となる。なお、キャッシュメモリ制御装置１０は、複数のプロセッサコア及び信号処理専用ハードウェアが同時にメモリアクセスするキャッシュメモリを制御の対象とする場合に限られない。キャッシュメモリ制御装置１０は、例えば、単独のプロセッサコアに対して用いられるキャッシュメモリを制御の対象としても良い。
【００２４】
第１の閾値Ｔｈ０及び第２の閾値Ｔｈ１は、ユーザによって適宜設定される。第１の閾値Ｔｈ０及び第２の閾値Ｔｈ１は、プログラムの特性等に応じて適宜設定可能としても良く、キャッシュメモリ制御装置１０が固定の値を保持することとしても良い。キャッシュ容量判定部１７は、カウント値Ｃが第１の閾値Ｔｈ０以下（Ｃ≦Ｔｈ０）の場合に代えて、カウント値Ｃが第１の閾値Ｔｈ０未満（Ｃ＜Ｔｈ０）の場合にキャッシュ容量削減指示信号Ｓｄを送出することとしても良い。また、キャッシュ容量判定部１７は、カウント値Ｃが第２の閾値Ｔｈ１より大きい（Ｔｈ１＜Ｃ）場合に代えて、カウント値Ｃが第２の閾値Ｔｈ１以上（Ｔｈ１≦Ｃ）の場合にキャッシュ容量増加指示信号Ｓｉを送出することとしても良い。
【００２５】
（第２の実施の形態）
図３は、本発明の第２の実施の形態について説明するものであって、キャッシュメモリ制御装置１０により制御されるキャッシュメモリ１１の状態遷移図である。本実施の形態は、キャッシュメモリ１１が互いに異なるキャッシュ容量の３段階の状態へ遷移可能である他は、上記第１の実施の形態と同様である。ここでは、図１に示すキャッシュメモリ制御装置１０の構成を用いて説明する。
【００２６】
キャッシュメモリ１１は、小容量状態、中容量状態、及び大容量状態の、互いに異なるキャッシュ容量の３段階の状態へ遷移可能である。キャッシュメモリ１１が大容量状態であってカウント値Ｃが第１の閾値Ｔｈ０以下（Ｃ≦Ｔｈ０）の場合、キャッシュ容量判定部１７は、キャッシュ容量削減指示信号Ｓｄの送出により、大容量状態からキャッシュ容量を一段階減少させた中容量状態への遷移を指示する。キャッシュメモリ１１は、キャッシュ容量削減指示信号Ｓｄに応じて、図中矢印Ｄで示すように、大容量状態から中容量状態へ遷移する。
【００２７】
キャッシュメモリ１１が中容量状態であってカウント値Ｃが第１の閾値Ｔｈ０以下（Ｃ≦Ｔｈ０）の場合、キャッシュ容量判定部１７は、キャッシュ容量削減指示信号Ｓｄの送出により、中容量状態からキャッシュ容量を一段階減少させた小容量状態への遷移を指示する。キャッシュメモリ１１は、キャッシュ容量削減指示信号Ｓｄに応じて、図中矢印Ｄで示すように、中容量状態から小容量状態へ遷移する。キャッシュメモリ制御装置１０は、キャッシュ容量削減指示信号Ｓｄを送出することで、キャッシュメモリ１１のキャッシュ容量を一段階ずつ削減させる。
【００２８】
キャッシュメモリ１１が小容量状態であってカウント値Ｃが第２の閾値Ｔｈ１より大きい（Ｔｈ１＜Ｃ）場合、キャッシュ容量判定部１７は、キャッシュ容量増加指示信号Ｓｉの送出により、小容量状態からキャッシュ容量を一段階増加させた中容量状態への遷移を指示する。キャッシュメモリ１１は、キャッシュ容量増加指示信号Ｓｉに応じて、図中矢印Ｉで示すように、小容量状態から中容量状態へ遷移する。
【００２９】
キャッシュメモリ１１が中容量状態であってカウント値Ｃが第２の閾値Ｔｈ１より大きい（Ｔｈ１＜Ｃ）場合、キャッシュ容量判定部１７は、キャッシュ容量増加指示信号Ｓｉの送出により、中容量状態からキャッシュ容量を一段階増加させた大容量状態への遷移を指示する。キャッシュメモリ１１は、キャッシュ容量増加指示信号Ｓｉに応じて、図中矢印Ｉで示すように、中容量状態から大容量状態へ遷移する。キャッシュメモリ制御装置１０は、キャッシュ容量増加指示信号Ｓｉを送出することで、キャッシュメモリ１１のキャッシュ容量を一段階ずつ増加させる。キャッシュメモリ１１を３段階の状態へ遷移可能とすることで、２段階の状態へ遷移可能な場合に比べて、キャッシュメモリ制御装置１０は、状況に応じた適切なキャッシュ容量にキャッシュメモリ１１を制御できる。
【００３０】
（第３の実施の形態）
図４は、本発明の第３の実施の形態について説明するものであって、キャッシュメモリ制御装置１０により制御されるキャッシュメモリ１１の状態遷移図である。本実施の形態は、キャッシュメモリ１１が異なるキャッシュ容量のｎ段階の状態へ遷移可能である他は、上記第１の実施の形態と同様である。ここでは、ｎが４以上の整数である場合について、図１に示すキャッシュメモリ制御装置１０の構成を用いて説明する。
【００３１】
キャッシュメモリ１１は、キャッシュ容量が最小となる小容量状態、キャッシュ容量が最大となる大容量状態、互いに異なるキャッシュ容量のｎ−２段階の中容量状態へ遷移可能である。状態変数ｖは、キャッシュメモリ１１がいずれのキャッシュ容量の状態にあるかを表す数値であるとする。状態変数ｖが１であるときキャッシュメモリ１１が小容量状態、状態変数ｖがｎであるときキャッシュメモリ１１が大容量状態であることを表す。また、状態変数ｖが１大きくなるごとにキャッシュ容量が一段階ずつ大きい状態となり、状態変数ｖが１小さくなるごとにキャッシュ容量が一段階ずつ小さい状態となることを表す。
【００３２】
キャッシュメモリ１１が大容量状態（ｖ＝ｎ）であってカウント値Ｃが第１の閾値Ｔｈ０以下（Ｃ≦Ｔｈ０）の場合、キャッシュ容量判定部１７は、キャッシュ容量削減指示信号Ｓｄの送出により、状態変数ｖを１減少させた状態への遷移を指示する。キャッシュメモリ１１は、キャッシュ容量削減指示信号Ｓｄに応じて、図中矢印Ｄで示すように、大容量状態から、中容量状態のうちｖ＝ｎ−１の状態へ遷移する。
【００３３】
キャッシュメモリ１１が中容量状態のうちｖ＝ｎ−１の状態であってカウント値Ｃが第１の閾値Ｔｈ０以下（Ｃ≦Ｔｈ０）の場合、キャッシュ容量判定部１７は、キャッシュ容量削減指示信号Ｓｄの送出により、状態変数を１減少させた状態への遷移を指示する。キャッシュメモリ１１は、キャッシュ容量削減指示信号Ｓｄに応じて、図中矢印Ｄで示すように、中容量状態においてｖ＝ｎ−１の状態からｖ＝ｎ−２の状態へ遷移する。キャッシュメモリ１１は、キャッシュ容量削減指示信号Ｓｄが入力されるごとに、状態変数ｖを１減少させた状態へ遷移する。状態変数ｖを１ずつ減少させることで、キャッシュメモリ１１は、中容量状態において異なるキャッシュ容量のｎ−２段階の状態へ遷移可能である（２≦ｖ≦ｎ−１）。
【００３４】
キャッシュメモリ１１が中容量状態のうちｖ＝２の状態であってカウント値Ｃが第１の閾値Ｔｈ０以下（Ｃ≦Ｔｈ０）の場合、キャッシュ容量判定部１７は、キャッシュ容量削減指示信号Ｓｄの送出により、状態変数ｖを１減少させた状態への遷移を指示する。キャッシュメモリ１１は、キャッシュ容量削減指示信号Ｓｄに応じて、図中矢印Ｄで示すように、中容量状態から小容量状態（ｖ＝１）へ遷移する。
【００３５】
キャッシュメモリ１１が小容量状態であってカウント値Ｃが第２の閾値Ｔｈ１より大きい（Ｔｈ１＜Ｃ）場合、キャッシュ容量判定部１７は、キャッシュ容量増加指示信号Ｓｉの送出により、状態変数ｖを１増加させた状態への遷移を指示する。キャッシュメモリ１１は、キャッシュ容量増加指示信号Ｓｉに応じて、図中矢印Ｉで示すように、小容量状態から、中容量状態のうちｖ＝２の状態へ遷移する。
【００３６】
キャッシュメモリ１１が中容量状態のうちｖ＝２の状態であってカウント値Ｃが第２の閾値Ｔｈ１より大きい（Ｔｈ１＜Ｃ）場合、キャッシュ容量判定部１７は、キャッシュ容量増加指示信号Ｓｉの送出により、状態変数ｖを１増加させた状態への遷移を指示する。キャッシュメモリ１１は、キャッシュ容量増加指示信号Ｓｉに応じて、図中矢印Ｉで示すように、中容量状態においてｖ＝２の状態からｖ＝３の状態へ遷移する。キャッシュメモリ１１は、キャッシュ容量増加指示信号Ｓｉが入力されるごとに、状態変数ｖを１増加させた状態へ遷移する。状態変数ｖを１ずつ増加させることで、キャッシュメモリ１１は、中容量状態において異なるキャッシュ容量のｎ−２段階の状態へ遷移可能である（２≦ｖ≦ｎ−１）。
【００３７】
キャッシュメモリ１１が中容量状態のうちｖ＝ｎ−１の状態であってカウント値Ｃが第２の閾値Ｔｈ１より大きい（Ｔｈ１＜Ｃ）場合、キャッシュ容量判定部１７は、キャッシュ容量増加指示信号Ｓｉの送出により、状態変数ｖを１増加させた状態への遷移を指示する。キャッシュメモリ１１は、キャッシュ容量増加指示信号Ｓｉに応じて、図中矢印Ｉで示すように、中容量状態から大容量状態へ遷移する。異なるキャッシュ容量の多くの段階へ遷移可能とすることで、さらに状況に応じた適切なキャッシュ容量にキャッシュメモリ１１を制御できる。なお、ｎが２であるとき、図２を用いて説明した２段階の状態へ遷移可能な場合であって、ｎが３であるとき、図３を用いて説明した３段階の状態へ遷移可能な場合である。ｎは２以上の整数であればいずれの値であっても良い。
【００３８】
（第４の実施の形態）
本発明の第４の実施の形態は、リフィルカウンタ１８の単位時間ごとのリセットに代えて、単位時間ごとのカウント値の差を計算することを特徴とする。本実施の形態は、カウント値の差を計算する以外の点については上記実施の形態１と同様であるため、図１に示すキャッシュメモリ制御装置１０の構成を用いて説明する。
【００３９】
キャッシュ容量判定部１７は、クロックカウンタ１９によるカウント数が所定の数Ｔとなる単位時間おきに、リフィルカウンタ１８でカウントされたリフィル回数のカウント値Ｃ０を読み出す。キャッシュ容量判定部１７は、カウント値Ｃ０を読み出す一回前に読み出したカウント値Ｃ１と、今回読み出したカウント値Ｃ０との差のカウント値Ｃ（＝Ｃ０−Ｃ１）を計算する。キャッシュメモリ制御装置１０は、キャッシュ容量判定部１７での計算により求めたカウント値Ｃに基づいて、キャッシュメモリ１１のキャッシュ容量を制御する。キャッシュ容量判定部１７は、カウント値Ｃの計算後、一回前に読み出したカウント値Ｃ１を消去し、今回読み出したカウント値Ｃ０をＣ１として保存する。保存されたカウント値Ｃ１は、次回の計算に使用される。キャッシュ容量判定部１７は、単位時間おきに、カウント値Ｃの計算、及びカウント値Ｃ１の交換を繰り返す。本実施の形態の場合も、システムのスループットを安定させるようにキャッシュメモリ１１を制御できる。
【００４０】
（第５の実施の形態）
本発明の第５の実施の形態は、単位時間ごとのカウント値の読み出しに代えて、カウント値を読み出す間隔の時間を用いて換算された換算閾値を用いてキャッシュ容量を制御することを特徴とする。本実施の形態は、換算閾値を用いてキャッシュ容量を制御する他は、上記実施の形態４と同様である。ここでは、図１に示すキャッシュメモリ制御装置１０の構成を用いて説明する。
【００４１】
キャッシュ容量判定部１７は、リフィルカウンタ１８でカウントされたリフィル回数のカウント値Ｃ０を読み出すとともに、クロックカウンタ１９のクロック数Ｔ０を読み出す。キャッシュ容量判定部１７は、クロック数Ｔ０、カウント値Ｃ０を読み出す一回前にカウント値Ｃ１を読み出した際のクロックカウンタ１９のクロック数Ｔ１を用いて、第１の換算閾値Ｔｈ０’、及び第２の換算閾値Ｔｈ１’を計算する。Ｔ０−Ｔ１は、カウント値Ｃ１を読み出した時点から、カウント値Ｃ０を読み出した時点までの経過時間を表す。
Ｔｈ０’＝Ｔｈ０×（Ｔ０−Ｔ１）
Ｔｈ１’＝Ｔｈ１×（Ｔ０−Ｔ１）
【００４２】
キャッシュ容量判定部１７は、今回読み出したカウント値Ｃ０と一回前に読み出したカウント値Ｃ１との差のカウント値Ｃ（＝Ｃ０−Ｃ１）と、第１の換算閾値Ｔｈ０’、第２の換算閾値Ｔｈ１’とを比較する。本実施の形態の場合、経過時間を用いて換算した換算閾値Ｔｈ０’、Ｔｈ１’を用いることで、実質的に、単位時間当たりのカウント値と元の閾値Ｔｈ０、Ｔｈ１とを比較している。
【００４３】
本実施の形態の場合、単位時間に関わらず任意の時間おきにキャッシュメモリ１１を制御できる。本実施の形態は、例えば、プロセッサ上で動作させるソフトウェアによりキャッシュ容量判定部１７を実現する場合に有用である。なお、本実施の形態は、カウント値Ｃ０、Ｃ１の差を計算する場合に限られず、上記の第１の実施の形態の場合と同様に、カウント値Ｃを読み出すごとにリフィルカウンタ１８をリセットすることとしても良い。
【００４４】
（第６の実施の形態）
本発明の第６の実施の形態は、リフィルカウンタ１８が、リフィル要求の回数に代えて、リフィル要求の開始から完了までの経過時間をカウントすることを特徴とする。本実施の形態は、リフィルカウンタ１８が経過時間をカウントする他は、上記第１の実施の形態と同様である。ここでは、図１に示すキャッシュメモリ制御装置１０の構成を用いて説明する。
【００４５】
リフィルカウンタ１８は、リフィル要求が開始された時点から、リフィル要求が完了する時点までのクロック数をカウントする。リフィルカウンタ１８は、クロック数のカウントにより、リフィル要求の開始から完了までの経過時間をカウントする。第１の閾値Ｔｈ０は、キャッシュ容量を有効に利用しているとして許容可能なリフィル要求の経過時間の最小値を表す。第２の閾値Ｔｈ１は、スループットを安定させるためのリフィル要求の経過時間の最大値を表す。
【００４６】
リフィル要求の開始から完了までの経過時間はリフィル要求の転送量に応じて変化するため、本実施の形態では、単位時間当たりのリフィル要求の転送量を一定範囲とするキャッシュ容量の制御が可能となる。これにより、キャッシュメモリ１１及び主メモリ１６の間における単位時間当たりのリフィル要求の転送量を一定範囲に維持することでシステムのスループットを安定させ、かつキャッシュメモリ１１の電力消費を低減させることができる。本実施の形態の場合、特に、リフィル要求ごとに転送量が変動する場合に、キャッシュ容量の適切な制御が可能となる。
【図面の簡単な説明】
【００４７】
【図１】第１の実施の形態に係るキャッシュメモリ制御装置を有するシステムの構成を示すブロック図。
【図２】キャッシュ容量の制御について説明するキャッシュメモリの状態遷移図。
【図３】第２の実施の形態において３段階に遷移するキャッシュメモリの状態遷移図。
【図４】第３の実施の形態においてｎ段階に遷移するキャッシュメモリの状態遷移図。
【符号の説明】
【００４８】
１０  キャッシュメモリ制御装置、１１  キャッシュメモリ、１６  主メモリ、１７  キャッシュ容量判定部、１８  リフィルカウンタ、１９  クロックカウンタ。
【図１】
2009251713.tif 000003
【図２】
2009251713.tif 000004
【図３】
2009251713.tif 000005
【図４】
2009251713.tif 000006