JP2009251713A - キャッシュメモリ制御装置 - Google Patents

キャッシュメモリ制御装置 Download PDF

Info

Publication number
JP2009251713A
JP2009251713A JP2008095849A JP2008095849A JP2009251713A JP 2009251713 A JP2009251713 A JP 2009251713A JP 2008095849 A JP2008095849 A JP 2008095849A JP 2008095849 A JP2008095849 A JP 2008095849A JP 2009251713 A JP2009251713 A JP 2009251713A
Authority
JP
Japan
Prior art keywords
cache
capacity
cache memory
count value
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008095849A
Other languages
English (en)
Inventor
Naohiro Nonogaki
直浩 野々垣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008095849A priority Critical patent/JP2009251713A/ja
Priority to US12/372,137 priority patent/US20090254710A1/en
Publication of JP2009251713A publication Critical patent/JP2009251713A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】キャッシュ容量の制御により、システムのスループットを安定させ、かつキャッシュメモリの電力消費を低減させることを可能とするキャッシュメモリ制御装置を提供すること。
【解決手段】キャッシュメモリ11及び主メモリ16の間におけるリフィル要求をカウントするリフィルカウンタ18と、リフィルカウンタ18によるカウント値に応じてキャッシュ容量を判定するキャッシュ容量判定部17と、を有し、キャッシュ容量判定部17は、カウント値が第1の閾値以下、又は第1の閾値未満である場合、キャッシュ容量の削減を指示するキャッシュ容量削減指示信号Sdをキャッシュメモリ11に対して送出し、カウント値が第1の閾値より大きい値である第2の閾値以上、又は第2の閾値より大きい場合、キャッシュ容量の増加を指示するキャッシュ容量増加指示信号Siをキャッシュメモリ11に対して送出する。
【選択図】 図1

Description

本発明は、キャッシュメモリを制御するためのキャッシュメモリ制御装置に関する。
従来、マイクロプロセッサは、メモリアクセスのボトルネックを解消するために、チップ上にキャッシュメモリを搭載するものが主流となっている。処理性能の向上を図るために、チップに搭載されるキャッシュメモリの容量は年々増加している。チップが低消費電力化の傾向にある一方、マイクロプロセッサの消費電力に占めるキャッシュメモリの消費電力の割合が増加していることから、キャッシュメモリは、消費電力の低減が求められている。例えば、特許文献1、特許文献2、及び特許文献3には、セットアソシアティブ方式のキャッシュメモリにおいて、動作させるウェイ数を変更することで実質的にキャッシュ容量を変化させる技術が提案されている。一部のウェイへの電力供給を停止させることによりキャッシュ容量を削減させ、消費電力を低減させる。
例えば、特許文献1にて提案される技術では、LRU(Least Recently Used)エントリのヒット回数とMRU(Most Recently Used)エントリのヒット回数との比率に基づいてウェイ数を制御する。特許文献2に提案される技術では、キャッシュミス率の変化に応じてウェイ数を制御する。特許文献3に提案される技術では、ヒット率に応じてウェイ数を制御する。
キャッシュメモリを介したメモリアクセスのスループット向上とキャッシュ容量とは、トレードオフの関係にあって、適切に制御されることが望ましい。キャッシュメモリ及び主メモリの間の転送能力が十分に確保されている場合、キャッシュメモリへのアクセスに対するミス率やヒット率を監視することにより、キャッシュ容量の適切な制御が可能である。これに対して、複数のプロセッサコアや信号処理専用ハードウェアが同一のバス、同一のキャッシュメモリを介して同時にメモリアクセスする状況では、キャッシュメモリ及び主メモリの間の転送能力がシステムのボトルネックとなる場合がある。この場合、ミス率やヒット率を監視するのみでは、ウェイ数の適切な制御が困難な場合が生じる。
例えば、10000サイクルにおけるMRUエントリのヒット回数が1000回、LRUサイクルのヒット回数が100回、リフィル回数が50回である第1のケース、10000サイクルにおけるMRUエントリのヒット回数が100回、LRUエントリのヒット回数が100回、リフィル回数が1回である第2のケースを想定する。特許文献1の技術によると、第1のケースの場合、ウェイ数は削減され、第2のケースの場合、ウェイ数は維持される。これに対して、キャッシュメモリ及び主メモリの間の転送能力により、10000サイクルにおけるリフィル回数の上限を40回と設定したとする。第1のケースの場合、リフィル回数が上限を超えているにも関わらず、ウェイ数は削減されることとなる。また、第2のケースの場合、リフィル回数の上限にまで大きく余裕があり、ウェイ数を削減可能であるにも関わらず、ウェイ数は維持されることとなる。このような挙動は、特許文献1の技術のみならず、特許文献2の技術、特許文献3の技術でも現れる場合がある。このように、従来の技術によると、リフィル回数を安定させるような、ウェイ数の適切な制御がなされない場合があるという問題を生じる。特許文献4のようにコンパイル時にキャッシュ容量を決定する方法の場合、ソフトウェアの命令メモリの制御に有効である一方、信号処理専用ハードウェアやソフトウェアのデータメモリへのアクセスのリフィル回数を安定させることが困難であるという問題を生じる。
特開2005−316842号公報 特開平9−50401号公報 特開2006−309734号公報 特開2000−20396号公報
本発明は、上述の問題に鑑みてなされたものであり、キャッシュ容量の制御により、キャッシュメモリ及び主メモリの間における単位時間当たりのリフィル要求を一定範囲に維持することでシステムのスループットを安定させ、かつキャッシュメモリの電力消費を低減させることを可能とするキャッシュメモリ制御装置を提供することを目的とする。
本願発明の一態様によれば、キャッシュ容量を動的に変更可能なキャッシュメモリのキャッシュ容量を制御するキャッシュメモリ制御装置であって、キャッシュメモリ及び主メモリの間におけるリフィル要求をカウントするリフィルカウンタと、リフィルカウンタによるカウント値に応じてキャッシュ容量を判定するキャッシュ容量判定部と、を有し、キャッシュ容量判定部は、カウント値が第1の閾値以下、又は第1の閾値未満である場合、キャッシュ容量の削減を指示するキャッシュ容量削減指示信号をキャッシュメモリに対して送出し、カウント値が第1の閾値より大きい値である第2の閾値以上、又は第2の閾値より大きい場合、キャッシュ容量の増加を指示するキャッシュ容量増加指示信号をキャッシュメモリに対して送出することを特徴とするキャッシュメモリ制御装置が提供される。
本発明によれば、キャッシュ容量の制御により、キャッシュメモリ及び主メモリの間における単位時間当たりのリフィル要求を一定範囲に維持することでシステムのスループットを安定させ、かつキャッシュメモリの電力消費を低減させるという効果を奏する。
以下に添付図面を参照して、本発明に係るキャッシュメモリ制御装置の最良な実施の形態を詳細に説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態に係るキャッシュメモリ制御装置10を有する情報処理装置の概略構成を示すブロック図である。本実施の形態において、情報処理装置は、第1プロセッサコア12及び第2プロセッサコア13が一つのキャッシュメモリ11を共用する。第1プロセッサコア12、第2プロセッサコア13、及び信号処理専用ハードウェア14は、共通のバス15を用いて信号を送受信する。主メモリ16は、プロセッサの外部に設けられた外部メモリである。
キャッシュメモリ11は、プロセッサが処理するデータを格納するデータキャッシュメモリである。キャッシュメモリ11は、キャッシュ容量を動的に変更可能に構成されている。キャッシュメモリ11は、実質的にキャッシュ容量を変更可能であればいずれの構成であっても良い。本実施の形態に係るキャッシュメモリ制御装置10は、本発明が属する分野の技術者によって、以下の説明要綱に基づき、データキャッシュメモリ以外の命令キャッシュメモリ等の多様なキャッシュメモリを制御するキャッシュメモリ制御装置へ変形可能である。従って、以下の説明は、当該分野に対して開示される内容として広く理解されるべきであり、本発明を限定するものではない。
キャッシュメモリ制御装置10は、キャッシュメモリ11に接続して使用される。キャッシュメモリ制御装置10は、キャッシュメモリ11のキャッシュ容量を制御する。キャッシュメモリ制御装置10は、キャッシュ容量判定部17、リフィルカウンタ18、クロックカウンタ19を有する。キャッシュ容量判定部17は、キャッシュメモリ11のキャッシュ容量を判定する。リフィルカウンタ18は、キャッシュメモリ11及び主メモリ16の間におけるリフィル要求の回数をカウントする。クロックカウンタ19は、クロック数をカウントする。
リフィルカウンタ18は、キャッシュメモリ11から主メモリ16に対するデータの読み出し要求、又は主メモリ16へのデータの書き込み要求が1回送出されるごとにリフィル要求が1回とカウントする。キャッシュ容量判定部17は、クロックカウンタ19でカウントされたクロック数が所定の数Tとなるごとに、リフィルカウンタ18でカウントされたリフィル回数のカウント値Cを読み出す。クロック数Tは、所定の単位時間を表す。また、キャッシュ容量判定部17は、カウント値Cを読み出すごとに、リフィルカウンタ18のカウント値Cをゼロにリセットする。リフィルカウンタ18は、カウント値Cのリセットの後、リフィル要求の回数を再びゼロからカウントする。キャッシュ容量判定部17は、単位時間おきに、カウント値Cの読み出し及びリセットを繰り返す。
なお、キャッシュメモリ制御装置10は、クロックカウンタ19に代えて、時間を計測するタイマを用いても良い。タイマを用いる場合、キャッシュ容量判定部17は、タイマが単位時間を計測するごとにカウント値Cを読み出す。キャッシュ容量判定部17は、ハードウェア構成により実現するもの、プロセッサ上で動作させるソフトウェアにより実現するもののいずれとしても良い。
図2は、キャッシュメモリ制御装置10によるキャッシュ容量の制御について説明するものであって、キャッシュメモリ11の状態遷移図である。キャッシュメモリ11は、小容量状態、及び大容量状態の、互いに異なるキャッシュ容量の2段階の状態へ遷移可能である。キャッシュ容量判定部17は、キャッシュメモリ11のキャッシュ容量を2段階のいずれとするかを判定する。また、キャッシュ容量判定部17内の記憶論理(レジスタ又は小規模なメモリ)には、第1の閾値Th0及び第2の閾値Th1(Th0<Th1)が記憶される。第1の閾値Th0は、キャッシュ容量を有効に利用しているとして許容可能なリフィル回数の最小値を表す。第2の閾値Th2は、スループットを安定させるためのリフィル回数の最大値を表す。
キャッシュメモリ11が大容量状態である場合において、カウント値Cが第1の閾値Th0以下(C≦Th0)であったとする。カウント値Cが第1の閾値Th0以下であることは、キャッシュ容量が過剰であって、一定範囲の回数のリフィル要求を維持しながらキャッシュ容量を削減可能であることを示す。キャッシュ容量判定部17は、キャッシュメモリ11に対してキャッシュ容量削減指示信号Sdを送出する。キャッシュ容量削減指示信号Sdは、キャッシュメモリ11に対してキャッシュ容量の削減を指示する信号である。キャッシュ容量判定部17は、キャッシュ容量削減指示信号Sdにより、大容量状態から小容量状態への遷移を指示する。キャッシュメモリ11は、キャッシュ容量判定部17から送出されたキャッシュ容量削減指示信号Sdに応じて、図中矢印Dで示すように、大容量状態からキャッシュ容量を一段階減少させた小容量状態へ遷移する。リフィル回数を一定範囲としながらキャッシュメモリ11のキャッシュ容量を削減することで、システムのスループットを安定させつつ、消費電力を低減できる。
キャッシュメモリ11が小容量状態である場合において、カウント値Cが第2の閾値Th1より大きい(Th1<C)とする。カウント値Cが第2の閾値Th1より大きいことは、キャッシュメモリ11のキャッシュ容量が不足しており、リフィル要求の回数の増大を抑制させるためにキャッシュ容量を増加させる必要があることを示す。キャッシュ容量判定部17は、キャッシュメモリ11に対してキャッシュ容量増加指示信号Siを送出する。キャッシュ容量増加指示信号Siは、キャッシュメモリ11に対してキャッシュ容量の増加を指示する信号である。キャッシュ容量判定部17は、キャッシュ容量増加指示信号Siにより、小容量状態からキャッシュ容量を一段階増加させた大容量状態への遷移を指示する。
キャッシュメモリ11は、キャッシュ容量判定部17から送出されたキャッシュ容量増加指示信号Siに応じて、図中矢印Iで示すように、小容量状態から大容量状態へ遷移する。リフィル回数を一定範囲に抑制することで、システムのスループットを安定にさせることができる。なお、キャッシュ容量判定部17は、キャッシュメモリ11におけるキャッシュ容量の遷移の有無に関わらず、リフィルカウンタ18をリセットする。
キャッシュメモリ11が大容量状態である場合、キャッシュメモリ11は、それ以上キャッシュ容量が大きい状態へ遷移することができない。この場合、カウント値Cが第2の閾値Th1より大きい(Th1<C)ことによりキャッシュ容量増加指示信号Siが送出されても、キャッシュメモリ11は状態を遷移させない。なお、キャッシュ容量判定部17は、キャッシュメモリ11が大容量状態である場合に、キャッシュ容量増加指示信号Siの送出を抑制することとしても良い。
キャッシュメモリ11が小容量状態である場合、キャッシュメモリ11は、それ以上キャッシュ容量が小さい状態へ遷移することができない。この場合、カウント値Cが第1の閾値Th0以下(C≦Th0)であることによりキャッシュ容量削減指示信号Sdが送出されても、キャッシュメモリ11は状態を遷移させない。なお、キャッシュ容量判定部17は、キャッシュメモリ11が小容量状態である場合に、キャッシュ容量削減指示信号Sdの送出を抑制することとしても良い。
キャッシュメモリ制御装置10は、リフィルカウンタ18から読み出したカウント値Cに基づいて、キャッシュ容量を制御する。キャッシュ容量の制御により、キャッシュメモリ11及び主メモリ16の間における単位時間当たりのリフィル要求の回数を一定範囲に維持することでシステムのスループットを安定させ、かつキャッシュメモリ11の電力消費を低減できるという効果を奏する。
本発明に係るキャッシュメモリ制御装置10は、キャッシュメモリ11及び主メモリ16の間の転送能力がシステムのボトルネックとなる場合に有用である。特に、複数のプロセッサコア12、13や信号処理専用ハードウェア14が同一のバス15、同一のキャッシュメモリ11を介して同時にメモリアクセスするように、バス15の輻輳を生じ易い場合に、キャッシュメモリ制御装置10による制御は効果的となる。なお、キャッシュメモリ制御装置10は、複数のプロセッサコア及び信号処理専用ハードウェアが同時にメモリアクセスするキャッシュメモリを制御の対象とする場合に限られない。キャッシュメモリ制御装置10は、例えば、単独のプロセッサコアに対して用いられるキャッシュメモリを制御の対象としても良い。
第1の閾値Th0及び第2の閾値Th1は、ユーザによって適宜設定される。第1の閾値Th0及び第2の閾値Th1は、プログラムの特性等に応じて適宜設定可能としても良く、キャッシュメモリ制御装置10が固定の値を保持することとしても良い。キャッシュ容量判定部17は、カウント値Cが第1の閾値Th0以下(C≦Th0)の場合に代えて、カウント値Cが第1の閾値Th0未満(C<Th0)の場合にキャッシュ容量削減指示信号Sdを送出することとしても良い。また、キャッシュ容量判定部17は、カウント値Cが第2の閾値Th1より大きい(Th1<C)場合に代えて、カウント値Cが第2の閾値Th1以上(Th1≦C)の場合にキャッシュ容量増加指示信号Siを送出することとしても良い。
(第2の実施の形態)
図3は、本発明の第2の実施の形態について説明するものであって、キャッシュメモリ制御装置10により制御されるキャッシュメモリ11の状態遷移図である。本実施の形態は、キャッシュメモリ11が互いに異なるキャッシュ容量の3段階の状態へ遷移可能である他は、上記第1の実施の形態と同様である。ここでは、図1に示すキャッシュメモリ制御装置10の構成を用いて説明する。
キャッシュメモリ11は、小容量状態、中容量状態、及び大容量状態の、互いに異なるキャッシュ容量の3段階の状態へ遷移可能である。キャッシュメモリ11が大容量状態であってカウント値Cが第1の閾値Th0以下(C≦Th0)の場合、キャッシュ容量判定部17は、キャッシュ容量削減指示信号Sdの送出により、大容量状態からキャッシュ容量を一段階減少させた中容量状態への遷移を指示する。キャッシュメモリ11は、キャッシュ容量削減指示信号Sdに応じて、図中矢印Dで示すように、大容量状態から中容量状態へ遷移する。
キャッシュメモリ11が中容量状態であってカウント値Cが第1の閾値Th0以下(C≦Th0)の場合、キャッシュ容量判定部17は、キャッシュ容量削減指示信号Sdの送出により、中容量状態からキャッシュ容量を一段階減少させた小容量状態への遷移を指示する。キャッシュメモリ11は、キャッシュ容量削減指示信号Sdに応じて、図中矢印Dで示すように、中容量状態から小容量状態へ遷移する。キャッシュメモリ制御装置10は、キャッシュ容量削減指示信号Sdを送出することで、キャッシュメモリ11のキャッシュ容量を一段階ずつ削減させる。
キャッシュメモリ11が小容量状態であってカウント値Cが第2の閾値Th1より大きい(Th1<C)場合、キャッシュ容量判定部17は、キャッシュ容量増加指示信号Siの送出により、小容量状態からキャッシュ容量を一段階増加させた中容量状態への遷移を指示する。キャッシュメモリ11は、キャッシュ容量増加指示信号Siに応じて、図中矢印Iで示すように、小容量状態から中容量状態へ遷移する。
キャッシュメモリ11が中容量状態であってカウント値Cが第2の閾値Th1より大きい(Th1<C)場合、キャッシュ容量判定部17は、キャッシュ容量増加指示信号Siの送出により、中容量状態からキャッシュ容量を一段階増加させた大容量状態への遷移を指示する。キャッシュメモリ11は、キャッシュ容量増加指示信号Siに応じて、図中矢印Iで示すように、中容量状態から大容量状態へ遷移する。キャッシュメモリ制御装置10は、キャッシュ容量増加指示信号Siを送出することで、キャッシュメモリ11のキャッシュ容量を一段階ずつ増加させる。キャッシュメモリ11を3段階の状態へ遷移可能とすることで、2段階の状態へ遷移可能な場合に比べて、キャッシュメモリ制御装置10は、状況に応じた適切なキャッシュ容量にキャッシュメモリ11を制御できる。
(第3の実施の形態)
図4は、本発明の第3の実施の形態について説明するものであって、キャッシュメモリ制御装置10により制御されるキャッシュメモリ11の状態遷移図である。本実施の形態は、キャッシュメモリ11が異なるキャッシュ容量のn段階の状態へ遷移可能である他は、上記第1の実施の形態と同様である。ここでは、nが4以上の整数である場合について、図1に示すキャッシュメモリ制御装置10の構成を用いて説明する。
キャッシュメモリ11は、キャッシュ容量が最小となる小容量状態、キャッシュ容量が最大となる大容量状態、互いに異なるキャッシュ容量のn−2段階の中容量状態へ遷移可能である。状態変数vは、キャッシュメモリ11がいずれのキャッシュ容量の状態にあるかを表す数値であるとする。状態変数vが1であるときキャッシュメモリ11が小容量状態、状態変数vがnであるときキャッシュメモリ11が大容量状態であることを表す。また、状態変数vが1大きくなるごとにキャッシュ容量が一段階ずつ大きい状態となり、状態変数vが1小さくなるごとにキャッシュ容量が一段階ずつ小さい状態となることを表す。
キャッシュメモリ11が大容量状態(v=n)であってカウント値Cが第1の閾値Th0以下(C≦Th0)の場合、キャッシュ容量判定部17は、キャッシュ容量削減指示信号Sdの送出により、状態変数vを1減少させた状態への遷移を指示する。キャッシュメモリ11は、キャッシュ容量削減指示信号Sdに応じて、図中矢印Dで示すように、大容量状態から、中容量状態のうちv=n−1の状態へ遷移する。
キャッシュメモリ11が中容量状態のうちv=n−1の状態であってカウント値Cが第1の閾値Th0以下(C≦Th0)の場合、キャッシュ容量判定部17は、キャッシュ容量削減指示信号Sdの送出により、状態変数を1減少させた状態への遷移を指示する。キャッシュメモリ11は、キャッシュ容量削減指示信号Sdに応じて、図中矢印Dで示すように、中容量状態においてv=n−1の状態からv=n−2の状態へ遷移する。キャッシュメモリ11は、キャッシュ容量削減指示信号Sdが入力されるごとに、状態変数vを1減少させた状態へ遷移する。状態変数vを1ずつ減少させることで、キャッシュメモリ11は、中容量状態において異なるキャッシュ容量のn−2段階の状態へ遷移可能である(2≦v≦n−1)。
キャッシュメモリ11が中容量状態のうちv=2の状態であってカウント値Cが第1の閾値Th0以下(C≦Th0)の場合、キャッシュ容量判定部17は、キャッシュ容量削減指示信号Sdの送出により、状態変数vを1減少させた状態への遷移を指示する。キャッシュメモリ11は、キャッシュ容量削減指示信号Sdに応じて、図中矢印Dで示すように、中容量状態から小容量状態(v=1)へ遷移する。
キャッシュメモリ11が小容量状態であってカウント値Cが第2の閾値Th1より大きい(Th1<C)場合、キャッシュ容量判定部17は、キャッシュ容量増加指示信号Siの送出により、状態変数vを1増加させた状態への遷移を指示する。キャッシュメモリ11は、キャッシュ容量増加指示信号Siに応じて、図中矢印Iで示すように、小容量状態から、中容量状態のうちv=2の状態へ遷移する。
キャッシュメモリ11が中容量状態のうちv=2の状態であってカウント値Cが第2の閾値Th1より大きい(Th1<C)場合、キャッシュ容量判定部17は、キャッシュ容量増加指示信号Siの送出により、状態変数vを1増加させた状態への遷移を指示する。キャッシュメモリ11は、キャッシュ容量増加指示信号Siに応じて、図中矢印Iで示すように、中容量状態においてv=2の状態からv=3の状態へ遷移する。キャッシュメモリ11は、キャッシュ容量増加指示信号Siが入力されるごとに、状態変数vを1増加させた状態へ遷移する。状態変数vを1ずつ増加させることで、キャッシュメモリ11は、中容量状態において異なるキャッシュ容量のn−2段階の状態へ遷移可能である(2≦v≦n−1)。
キャッシュメモリ11が中容量状態のうちv=n−1の状態であってカウント値Cが第2の閾値Th1より大きい(Th1<C)場合、キャッシュ容量判定部17は、キャッシュ容量増加指示信号Siの送出により、状態変数vを1増加させた状態への遷移を指示する。キャッシュメモリ11は、キャッシュ容量増加指示信号Siに応じて、図中矢印Iで示すように、中容量状態から大容量状態へ遷移する。異なるキャッシュ容量の多くの段階へ遷移可能とすることで、さらに状況に応じた適切なキャッシュ容量にキャッシュメモリ11を制御できる。なお、nが2であるとき、図2を用いて説明した2段階の状態へ遷移可能な場合であって、nが3であるとき、図3を用いて説明した3段階の状態へ遷移可能な場合である。nは2以上の整数であればいずれの値であっても良い。
(第4の実施の形態)
本発明の第4の実施の形態は、リフィルカウンタ18の単位時間ごとのリセットに代えて、単位時間ごとのカウント値の差を計算することを特徴とする。本実施の形態は、カウント値の差を計算する以外の点については上記実施の形態1と同様であるため、図1に示すキャッシュメモリ制御装置10の構成を用いて説明する。
キャッシュ容量判定部17は、クロックカウンタ19によるカウント数が所定の数Tとなる単位時間おきに、リフィルカウンタ18でカウントされたリフィル回数のカウント値C0を読み出す。キャッシュ容量判定部17は、カウント値C0を読み出す一回前に読み出したカウント値C1と、今回読み出したカウント値C0との差のカウント値C(=C0−C1)を計算する。キャッシュメモリ制御装置10は、キャッシュ容量判定部17での計算により求めたカウント値Cに基づいて、キャッシュメモリ11のキャッシュ容量を制御する。キャッシュ容量判定部17は、カウント値Cの計算後、一回前に読み出したカウント値C1を消去し、今回読み出したカウント値C0をC1として保存する。保存されたカウント値C1は、次回の計算に使用される。キャッシュ容量判定部17は、単位時間おきに、カウント値Cの計算、及びカウント値C1の交換を繰り返す。本実施の形態の場合も、システムのスループットを安定させるようにキャッシュメモリ11を制御できる。
(第5の実施の形態)
本発明の第5の実施の形態は、単位時間ごとのカウント値の読み出しに代えて、カウント値を読み出す間隔の時間を用いて換算された換算閾値を用いてキャッシュ容量を制御することを特徴とする。本実施の形態は、換算閾値を用いてキャッシュ容量を制御する他は、上記実施の形態4と同様である。ここでは、図1に示すキャッシュメモリ制御装置10の構成を用いて説明する。
キャッシュ容量判定部17は、リフィルカウンタ18でカウントされたリフィル回数のカウント値C0を読み出すとともに、クロックカウンタ19のクロック数T0を読み出す。キャッシュ容量判定部17は、クロック数T0、カウント値C0を読み出す一回前にカウント値C1を読み出した際のクロックカウンタ19のクロック数T1を用いて、第1の換算閾値Th0’、及び第2の換算閾値Th1’を計算する。T0−T1は、カウント値C1を読み出した時点から、カウント値C0を読み出した時点までの経過時間を表す。
Th0’=Th0×(T0−T1)
Th1’=Th1×(T0−T1)
キャッシュ容量判定部17は、今回読み出したカウント値C0と一回前に読み出したカウント値C1との差のカウント値C(=C0−C1)と、第1の換算閾値Th0’、第2の換算閾値Th1’とを比較する。本実施の形態の場合、経過時間を用いて換算した換算閾値Th0’、Th1’を用いることで、実質的に、単位時間当たりのカウント値と元の閾値Th0、Th1とを比較している。
本実施の形態の場合、単位時間に関わらず任意の時間おきにキャッシュメモリ11を制御できる。本実施の形態は、例えば、プロセッサ上で動作させるソフトウェアによりキャッシュ容量判定部17を実現する場合に有用である。なお、本実施の形態は、カウント値C0、C1の差を計算する場合に限られず、上記の第1の実施の形態の場合と同様に、カウント値Cを読み出すごとにリフィルカウンタ18をリセットすることとしても良い。
(第6の実施の形態)
本発明の第6の実施の形態は、リフィルカウンタ18が、リフィル要求の回数に代えて、リフィル要求の開始から完了までの経過時間をカウントすることを特徴とする。本実施の形態は、リフィルカウンタ18が経過時間をカウントする他は、上記第1の実施の形態と同様である。ここでは、図1に示すキャッシュメモリ制御装置10の構成を用いて説明する。
リフィルカウンタ18は、リフィル要求が開始された時点から、リフィル要求が完了する時点までのクロック数をカウントする。リフィルカウンタ18は、クロック数のカウントにより、リフィル要求の開始から完了までの経過時間をカウントする。第1の閾値Th0は、キャッシュ容量を有効に利用しているとして許容可能なリフィル要求の経過時間の最小値を表す。第2の閾値Th1は、スループットを安定させるためのリフィル要求の経過時間の最大値を表す。
リフィル要求の開始から完了までの経過時間はリフィル要求の転送量に応じて変化するため、本実施の形態では、単位時間当たりのリフィル要求の転送量を一定範囲とするキャッシュ容量の制御が可能となる。これにより、キャッシュメモリ11及び主メモリ16の間における単位時間当たりのリフィル要求の転送量を一定範囲に維持することでシステムのスループットを安定させ、かつキャッシュメモリ11の電力消費を低減させることができる。本実施の形態の場合、特に、リフィル要求ごとに転送量が変動する場合に、キャッシュ容量の適切な制御が可能となる。
第1の実施の形態に係るキャッシュメモリ制御装置を有するシステムの構成を示すブロック図。 キャッシュ容量の制御について説明するキャッシュメモリの状態遷移図。 第2の実施の形態において3段階に遷移するキャッシュメモリの状態遷移図。 第3の実施の形態においてn段階に遷移するキャッシュメモリの状態遷移図。
符号の説明
10 キャッシュメモリ制御装置、11 キャッシュメモリ、16 主メモリ、17 キャッシュ容量判定部、18 リフィルカウンタ、19 クロックカウンタ。

Claims (5)

  1. キャッシュ容量を動的に変更可能なキャッシュメモリの前記キャッシュ容量を制御するキャッシュメモリ制御装置であって、
    前記キャッシュメモリ及び主メモリの間におけるリフィル要求をカウントするリフィルカウンタと、
    前記リフィルカウンタによるカウント値に応じて前記キャッシュ容量を判定するキャッシュ容量判定部と、を有し、
    前記キャッシュ容量判定部は、前記カウント値が第1の閾値以下、又は前記第1の閾値未満である場合、前記キャッシュ容量の削減を指示するキャッシュ容量削減指示信号を前記キャッシュメモリに対して送出し、前記カウント値が前記第1の閾値より大きい値である第2の閾値以上、又は前記第2の閾値より大きい場合、前記キャッシュ容量の増加を指示するキャッシュ容量増加指示信号を前記キャッシュメモリに対して送出することを特徴とするキャッシュメモリ制御装置。
  2. 前記キャッシュメモリは、互いに異なる前記キャッシュ容量のn(nは2以上の整数)段階の状態へ遷移可能であって、
    前記キャッシュ容量判定部は、前記カウント値が前記第1の閾値以下、又は前記第1の閾値未満である場合、前記キャッシュ容量削減指示信号の送出により、前記キャッシュ容量を一段階減少させた状態への遷移を指示し、前記カウント値が前記第2の閾値以上、又は前記第2の閾値より大きい値である場合、前記キャッシュ容量増加指示信号の送出により、前記キャッシュ容量を一段階増加させた状態への遷移を指示することを特徴とする請求項1に記載のキャッシュメモリ制御装置。
  3. 前記リフィルカウンタは、前記リフィル要求の回数をカウントすることを特徴とする請求項1又は2に記載のキャッシュメモリ制御装置。
  4. 前記リフィルカウンタは、前記リフィル要求が開始されてから完了するまでの経過時間をカウントすることを特徴とする請求項1又は2に記載のキャッシュメモリ制御装置。
  5. 前記キャッシュ容量判定部は、単位時間当たりの前記カウント値が前記第1の閾値以下、又は前記第1の閾値未満である場合、前記キャッシュ容量削減指示信号を送出し、単位時間当たりの前記カウント値が前記第2の閾値以上、又は前記第2の閾値より大きい値である場合、前記キャッシュ容量増加指示信号を送出することを特徴とする請求項1〜4のいずれか一項に記載のキャッシュメモリ制御装置。
JP2008095849A 2008-04-02 2008-04-02 キャッシュメモリ制御装置 Pending JP2009251713A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008095849A JP2009251713A (ja) 2008-04-02 2008-04-02 キャッシュメモリ制御装置
US12/372,137 US20090254710A1 (en) 2008-04-02 2009-02-17 Device and method for controlling cache memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008095849A JP2009251713A (ja) 2008-04-02 2008-04-02 キャッシュメモリ制御装置

Publications (1)

Publication Number Publication Date
JP2009251713A true JP2009251713A (ja) 2009-10-29

Family

ID=41134307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008095849A Pending JP2009251713A (ja) 2008-04-02 2008-04-02 キャッシュメモリ制御装置

Country Status (2)

Country Link
US (1) US20090254710A1 (ja)
JP (1) JP2009251713A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012243026A (ja) * 2011-05-18 2012-12-10 Canon Inc データ供給装置、キャッシュ装置、データ供給方法、キャッシュ方法およびプログラム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5790532B2 (ja) * 2012-02-13 2015-10-07 セイコーエプソン株式会社 電子機器、及びメモリー制御方法
JP6319473B1 (ja) * 2017-02-07 2018-05-09 日本電気株式会社 情報処理装置
US11550732B2 (en) * 2020-02-22 2023-01-10 International Business Machines Corporation Calculating and adjusting ghost cache size based on data access frequency
US11281594B2 (en) 2020-02-22 2022-03-22 International Business Machines Corporation Maintaining ghost cache statistics for demoted data elements

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0363741A (ja) * 1989-07-31 1991-03-19 Matsushita Electric Ind Co Ltd ディスク・キャッシュ装置
JPH0950401A (ja) * 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870616A (en) * 1996-10-04 1999-02-09 International Business Machines Corporation System and method for reducing power consumption in an electronic circuit
US6766420B2 (en) * 2001-09-27 2004-07-20 International Business Machines Corporation Selectively powering portions of system memory in a network server to conserve energy
US20030145239A1 (en) * 2002-01-31 2003-07-31 Kever Wayne D. Dynamically adjustable cache size based on application behavior to save power
JP4753549B2 (ja) * 2004-05-31 2011-08-24 パナソニック株式会社 キャッシュメモリおよびシステム
US20070043965A1 (en) * 2005-08-22 2007-02-22 Intel Corporation Dynamic memory sizing for power reduction

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0363741A (ja) * 1989-07-31 1991-03-19 Matsushita Electric Ind Co Ltd ディスク・キャッシュ装置
JPH0950401A (ja) * 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012243026A (ja) * 2011-05-18 2012-12-10 Canon Inc データ供給装置、キャッシュ装置、データ供給方法、キャッシュ方法およびプログラム

Also Published As

Publication number Publication date
US20090254710A1 (en) 2009-10-08

Similar Documents

Publication Publication Date Title
US20100287394A1 (en) North-bridge to south-bridge protocol for placing processor in low power state
US8848577B2 (en) Bandwidth management
KR101695338B1 (ko) 동적 주파수 메모리 제어
JP2006260472A (ja) メモリアクセス装置
US20140344512A1 (en) Data Processing Apparatus and Memory Apparatus
JP6184064B2 (ja) メモリサブシステム、コンピュータ・システム
CN102646446A (zh) 硬件动态高速缓存电源管理
US9990287B2 (en) Apparatus and method for memory-hierarchy aware producer-consumer instruction
Bhati et al. Coordinated refresh: Energy efficient techniques for DRAM refresh scheduling
JP2009251713A (ja) キャッシュメモリ制御装置
JP2010262537A (ja) メモリ制御回路
US10509743B2 (en) Transferring data between memory system and buffer of a master device
WO2013095464A1 (en) Apparatus and method for memory-hierarchy aware producer-consumer instruction
JP5741245B2 (ja) 画像処理装置、画像処理制御方法及び画像処理制御プログラム
JP5932261B2 (ja) メモリ制御装置、メモリ制御方法
JP2007041771A (ja) プロセススケジューリングシステム、プロセススケジューリング方法およびプログラム
US10013046B2 (en) Power management techniques
US8879349B2 (en) Storage device
JP2000276436A (ja) Dma制御装置
US6859849B2 (en) Method and architecture capable of adaptively accessing data and instructions
JP2009059276A (ja) 情報処理装置およびプログラム
JP2009266152A (ja) コントローラ、ハードディスクドライブおよびコントロール方法
JP2006331008A (ja) メモリインタフェース
JP5877348B2 (ja) メモリ制御システム及び電力制御方法
US20230090567A1 (en) Device and method for two-stage transitioning between reduced power states

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120904

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130326