JP5458132B2 - キャッシュ装置 - Google Patents

キャッシュ装置 Download PDF

Info

Publication number
JP5458132B2
JP5458132B2 JP2012056359A JP2012056359A JP5458132B2 JP 5458132 B2 JP5458132 B2 JP 5458132B2 JP 2012056359 A JP2012056359 A JP 2012056359A JP 2012056359 A JP2012056359 A JP 2012056359A JP 5458132 B2 JP5458132 B2 JP 5458132B2
Authority
JP
Japan
Prior art keywords
control unit
memory area
request information
cache
memory
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.)
Active
Application number
JP2012056359A
Other languages
English (en)
Other versions
JP2013190970A (ja
Inventor
久美子 野村
忍 藤田
恵子 安部
一隆 池上
紘希 野口
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 JP2012056359A priority Critical patent/JP5458132B2/ja
Priority to US13/772,518 priority patent/US9557801B2/en
Publication of JP2013190970A publication Critical patent/JP2013190970A/ja
Application granted granted Critical
Publication of JP5458132B2 publication Critical patent/JP5458132B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

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)

Description

本発明の実施形態は、キャッシュ装置に関する。
近年、システム全体の低消費電力化が求められている。これにより、システム内の演算装置部分もまた低消費電力化することが必要となってきている。例えばCPUが動作していない時には、プロセッサエレメント自体の供給電力を落とし、動作を再開するときに電力の供給を再開するという操作を繰り返し行う事で総消費電力を抑える低消費電力技術が考えられている。
更に、CPUが動作中であっても、CPU内部のキャッシュのうち使用されていない部分の消費電力を抑える事で更なる低消費電力化が可能である。例えばキャッシュのウェイごとに供給電力を制御し、使用されていないウェイについてはCPUが動作中であっても電力の供給を停止することで、低消費電力化が可能になる。
ISSCC 2008/SESSION 13/MOBILE PROCESSING/13.1
しかしながら、データの読み出しまたは書き込みの要求を受けた場合に、電力の供給が停止されているウェイを駆動させようとすると、当該ウェイを動作可能な状態に戻すまでに時間がかかってしまい、良好な性能を得ることができないという問題がある。本発明が解決しようとする課題は、性能を確保しつつ消費電力を低減可能なキャッシュ装置を提供することである。
実施形態のキャッシュ装置は、n(n≧2)ウェイセットアソシアティブ方式のキャッシュ装置であって、キャッシュメモリとアクセス制御部と電力制御部と第1ライトバッファと第2ライトバッファとを備える。キャッシュメモリは、複数のウェイと1対1に対応する複数のメモリ領域を有する。アクセス制御部は、メモリ領域に対するアクセスを制御する。電力制御部は、メモリ領域ごとに電力の供給を個別に制御し、アクセスが一定期間行われないメモリ領域については、当該メモリ領域に供給する電力を、メモリ領域が動作可能な動作電力よりも低い値を示す待機電力に制御する。第1ライトバッファは、データの書き込みを要求する書き込み要求情報を記憶する。また、電力制御部は、アクセスが行われる可能性が高いメモリ領域の待機電力を、アクセスが行われる可能性が低いメモリ領域の待機電力に比べて、動作電力に近い値に制御する。また、アクセス制御部は、第1ライトバッファに記憶された書き込み要求情報に基づく書き込み動作を制御する場合において、動作電力が供給されている状態を示す動作状態のメモリ領域の中に、キャッシュヒットするメモリ領域が存在しないと判定した場合は、第1ライトバッファに記憶された書き込み要求情報を、第2ライトバッファに移動する制御を行う。
第1実施形態のキャッシュ装置の構成例を示す図。 第1実施形態のキャッシュ部の一例を示す図。 第1実施形態のキャッシュ装置の詳細な構成例を示す図。 第1実施形態の通常動作モードにおける読み出し動作の例を示す図。 第1実施形態の通常動作モードにおける書き込み動作の例を示す図。 第1実施形態の部分待機モードにおける読み出し動作の例を示す図。 第1実施形態の部分待機モードにおける書き込み動作の例を示す図。 第1実施形態の全待機モードにおける読み出し動作の例を示す図。 第1実施形態の全待機モードにおける書き込み動作の例を示す図。 第2実施形態のキャッシュ装置の詳細な構成例を示す図。 変形例のキャッシュ装置の通常動作モードにおける動作例を示す図。 変形例のキャッシュ装置の通常動作モードにおける動作例を示す図。 変形例のキャッシュ装置の部分待機モードにおける動作例を示す図。 変形例のキャッシュ装置の部分待機モードにおける動作例を示す図。 変形例のキャッシュ装置の全待機モードにおける動作例を示す図。 変形例のキャッシュ装置の全待機モードにおける動作例を示す図。
以下、添付図面を参照しながら、本発明に係るキャッシュ装置の実施の形態を詳細に説明する。
(第1実施形態)
図1は、本実施形態のキャッシュ装置100の概略構成例を示す図である。キャッシュ装置100は、CPUなどの処理装置と主記憶装置(メインメモリ)との間に挿入された記憶階層である。主記憶装置に対するアクセスの高速化を図るために、CPUからアクセスされる可能性の高いデータなどがキャッシュ装置100に保持される。本実施形態のキャッシュ装置100は2次キャッシュであるが、これに限定されるものではなく、1次キャッシュや3次キャッシュであってもよい。
図1に示すように、キャッシュ装置100は、キャッシュコントローラ10と、キャッシュメモリ20を含むキャッシュ部30と、電源部40とを含む。キャッシュコントローラ10は、アクセス制御部11とカウンタ12と電力制御部13とを含む。アクセス制御部11は、キャッシュメモリ20に対するデータの読み出し、または、データの書き込みを制御する。つまり、アクセス制御部11は、キャッシュメモリ20に対するアクセスを制御する。カウンタ12は、各種の時間を計測する。詳細な内容については後述する。電力制御部13は、キャッシュメモリ20に対して電力を供給する電源部40を制御する。
図2は、キャッシュ部30の詳細な内容の一例を説明するための図である。本実施形態のキャッシュ装置100は、4ウェイセットアソシアティブ方式のキャッシュ装置であり、キャッシュメモリ20は、4つのウェイと1対1に対応する4つのメモリ領域(21〜24)を有する不揮発性のメモリである。ここでは、各ウェイには、当該ウェイを識別する番号(この例では0〜3までの数字)が割り当てられ、番号「0」が割り当てられたウェイをウェイ「0」と表記し、番号「1」が割り当てられたウェイをウェイ「1」と表記し、番号「2」が割り当てられたウェイをウェイ「2」と表記し、番号「3」が割り当てられたウェイをウェイ「3」と表記する。
ここで、主記憶装置は、1語分のデータ(ワードデータ)よりも大きいサイズのブロックを複数備える。本実施形態では、主記憶装置が有する複数のブロックのうちアクセス(データの読み出し、あるいは、データの書き込み)が行われる可能性(アクセスの頻度と捉えることもできる)が高いブロックは、小さい番号のウェイに対応するメモリ領域に格納される一方、アクセスが行われる可能性が低いブロックは、大きい番号のウェイに対応するメモリ領域に格納されるように予め設定される。つまり、最も小さい番号のウェイ「0」に対応するメモリ領域21が、アクセスが行われる可能性が最も高いメモリ領域として設定される一方、最も大きい番号のウェイ「3」に対応するメモリ領域24が、アクセスが行われる可能性が最も低いメモリ領域として設定される。この設定は、公知の様々な技術を利用することができる。
以下では、ウェイ「0」に対応するメモリ領域21を例に挙げて具体的な構成を説明するが、他のウェイに対応するメモリ領域も同様の構成である。最初に、前提となる部分の説明を行う。CPUは、主記憶装置に対するアクセスを要求する場合、主記憶装置のうち要求の対象となる場所を示すメモリアドレスを含むアクセス要求情報(後述の読み出し要求情報および書き込み要求情報を含む概念)を出力する。メモリアドレスとは、主記憶装置内の場所を示す情報であると捉えることもできる。図2に示すように、メモリアドレスは、上位部分を示すタグと、中位部分を示すインデックスと、下位部分を示すワードとから構成される。メモリアドレスの末尾には、複数ビットのバイトが付加される。以上を前提として、メモリ領域21の具体的な構成を説明する。
図2に示すように、メモリ領域21は、複数のキャッシュライン25を備える。なお、各キャッシュライン25には、ウェイ間(メモリ領域間)で共通のライン番号が割り当てられている。例えばライン番号「1」とは、各メモリ領域の第1番目(第1行目)のキャッシュライン25を指す。各キャッシュライン25は、タグ部26とデータ部27とが対応付けられて構成される。タグ部26にはタグが記憶される。一方、タグ部26に対応するデータ部27には、主記憶装置が有する複数のブロックのうち当該タグ部26のタグで特定可能なブロックに格納されるべきデータが記憶される。ここでは、主記憶装置内の各ブロックには、複数のワードデータ(1語分のデータ)が格納され、データ部27には、対応するタグ部26のタグで特定可能なブロックに格納されるべき複数のワードデータが記憶される。なお、各ワードデータには、ブロック間で共通のワード番号が割り当てられている。例えばワード番号「1」とは、各ブロック内の第1番目のワードデータを指す。以下の説明では、ひとつのキャッシュライン25に格納されるタグおよびデータを「キャッシュ情報」と呼ぶ場合がある。
メモリアドレスの中位部分であるインデックスは、複数のキャッシュライン25のうちの何れかを指定する情報である。見方を変えれば、メモリアドレスに含まれるインデックスは、何れかのライン番号を指定する情報であると捉えることもできる。メモリアドレスの下位部分であるワードは、ブロックに含まれる複数のワードデータのうちの何れかを指定する情報である。見方を変えれば、メモリアドレスに含まれるワードは、何れかのワード番号を指定する情報である。
なお、各キャッシュライン25に格納されるキャッシュ情報(タグおよびデータ)は、メモリ領域間(ウェイ間)で入れ替えることもできる。例えばアクセス制御部11は、現時点に近いタイミングでアクセスが行われたブロック(アクセスが行われる可能性が高いブロック)は、小さい番号のウェイに対応するメモリ領域に格納される一方、アクセスが長く行われていないブロック(アクセスが行われる可能性が低いブロック)は、大きい番号のウェイに対応するメモリ領域に格納されるように、同じライン番号のキャッシュライン25に格納されたキャッシュ情報を2つのメモリ領域間で入れ替えるスワップ処理を行うこともできる。このスワップ処理は、公知の様々な技術を利用することが可能である。
図2に示すように、キャッシュ部30は、比較部31と、選択部32とをさらに備える。比較部31は、アクセス制御部11の制御の下、メモリ領域ごとに、CPUが出力したメモリアドレスに含まれるインデックスで指定されたキャッシュライン25のタグ部26に記憶されたタグと、メモリアドレスに含まれるタグとを比較する。タグ部26に記憶されたタグと、メモリアドレスに含まれるタグとが一致した場合はキャッシュヒットとなり、アクセス制御部11は、キャッシュヒットしたメモリ領域(見方を変えればウェイ)を特定することができる。
選択部32は、アクセス制御部11の制御の下、キャッシュヒットしたメモリ領域のうち、CPUが出力したメモリアドレスに含まれるインデックスで指定されたキャッシュライン25のデータ部27に記憶された複数のワードデータのうち、メモリアドレスに含まれるワードで指定されるワードデータを選択して出力する。
また、図2に示すように、電源部40は、4つのメモリ領域と1対1に対応する4つの電源41〜44を有する。図2の例では、電源41はメモリ領域21に対応し、電源42はメモリ領域22に対応し、電源43はメモリ領域23に対応し、電源44はメモリ領域24に対応する。電力制御部13は、メモリ領域ごとに電力の供給を個別に制御する。より具体的には、電力制御部13は、電源41を制御することで、ウェイ「0」に対応するメモリ領域21に供給される電力を制御する。また、電力制御部13は、電源42を制御することで、ウェイ「1」に対応するメモリ領域22に供給される電力を制御する。また、電力制御部13は、電源43を制御することで、ウェイ「2」に対応するメモリ領域23に供給される電力を制御する。さらに、電力制御部13は、電源44を制御することで、ウェイ「3」に対応するメモリ領域24に供給される電力を制御する。
また、電力制御部13は、アクセスが一定期間行われないメモリ領域については、当該メモリ領域に供給する電力を、メモリ領域が動作可能な動作電力よりも低い値を示す待機電力に制御する。より具体的には以下のとおりである。なお、以下の説明では、動作電力が供給されているメモリ領域の状態を「動作状態」、待機電力が供給されているメモリ領域の状態を「待機状態」と呼ぶ場合がある。
まず、図1のカウンタ12の機能について説明する。カウンタ12は、メモリ領域ごとに、当該メモリ領域が使用されなかった時間(アクセスが行われなかった時間)を示す未使用時間を計測する。何れかのメモリ領域に対するアクセスが行われた場合、カウンタ12は、そのメモリ領域の未使用時間の計測値を初期値にリセットする。初期値の値は任意であり、例えば初期値は「0」や「1」などに設定され得る。本実施形態では、カウンタ12は、4つのメモリ領域(21〜24)と1対1に対応する複数のカウンタで構成され、各カウンタは、当該カウンタに対応するメモリ領域に対するアクセスが行われた場合、計測値を初期値にリセットする。
この例では、メモリ領域ごとに(ウェイごとに)、未使用時間の最大値を示す第1閾値が予め設定されている。電力制御部13は、あるウェイに対応するメモリ領域の未使用時間の計測値が第1閾値以上の場合、当該メモリ領域に対して待機電力を供給するように電源部40を制御する。
さらに、電力制御部13は、アクセスが行われる可能性が高いメモリ領域の待機電力を、アクセスが行われる可能性が低いメモリ領域の待機電力に比べて、動作電力に近い値に制御する。より具体的には、電力制御部13は、番号が小さいウェイほど、当該ウェイに対応するメモリ領域の待機電力が動作電力に近い値になるように電源部40を制御する。例えば動作電力が「1.2V」である場合、電力制御部13は、ウェイ「0」に対応するメモリ領域21の待機電力を「0.8V」、ウェイ「1」に対応するメモリ領域22の待機電力を「0.6V」、ウェイ「2」に対応するメモリ領域23の待機電力を「0.4V」、ウェイ「3」に対応するメモリ領域24の待機電力を「0.2V」に制御することもできる。なお、これは一例であり、アクセスが行われる可能性が高いメモリ領域ほど、その待機電力は動作電力に近い値に制御される構成であればよく、各メモリ領域の待機電力の値は任意である。
ここでは、全てのメモリ領域に対して動作電力が供給されている状態を「通常動作モード」と呼び、一部のメモリ領域に対して動作電力が供給される一方、残りのメモリ領域に対して待機電力が供給されている状態を「部分待機モード」と呼ぶ。
さらに、全てのメモリ領域に対して待機電力が供給されている状態を「全待機モード」と呼ぶ。本実施形態では、「全待機モード」に移行した場合、アクセス制御部11は、「全待機モード」が継続する時間を示す待機時間の計測を開始する。そして、待機時間の計測値が第2閾値以上の場合、電力制御部13は、全てのメモリ領域に対する電力の供給を停止するように電源部40を制御する。全てのメモリ領域に対する電力の供給が停止された状態を「オフモード」と呼ぶ。
次に、各モードにおけるキャッシュ装置100の動作例を説明する。最初に、前提となる部分の説明を行う。CPUは、主記憶装置に対してデータの読み出しを要求する場合、主記憶装置のうちデータの読み出しの対象となる場所を特定可能なメモリアドレスを含む読み出し要求情報を出力する。また、CPUは、主記憶装置に対してデータの書き込みを要求する場合、主記憶装置のうちデータの書き込みの対象となる場所を特定可能なメモリアドレスと、書き込みを要求するデータとを含む書き込み要求情報を出力する。
また、図3は、キャッシュ装置100の詳細な構成例を示す図である。図3に示すように、キャッシュ装置100は、マルチプレクサ50と、第1ライトバッファ60とを更に備える。マルチプレクサ50および第1ライトバッファ60は、キャッシュコントローラ10に搭載されてもよいし、キャッシュ部30に搭載されてもよいし、キャッシュコントローラ10およびキャッシュ部30とは別に設けられてもよい。
アクセス制御部11の制御の下、マルチプレクサ50は、CPUが出力する読み出し要求情報、および、第1ライトバッファ60に蓄積された情報のうちの何れかを選択する。本実施形態では、読み出し要求情報が優先的に選択されるように制御される。より具体的には、アクセス制御部11は、CPUから読み出し要求情報を受信した場合は、その受信した読み出し要求情報を選択するようにマルチプレクサ50を制御する。マルチプレクサ50により読み出し要求情報が選択された場合、アクセス制御部11は、その選択された読み出し要求情報に基づく読み出し動作を制御する。
一方、アクセス制御部11は、CPUから書き込み要求情報を受信するたびに、その受信した書き込み要求情報を第1ライトバッファ60に書き込む。そして、アクセス制御部11は、キャッシュ装置100の動作状況に応じて、第1ライトバッファ60に蓄積された書き込み要求情報を選択するようにマルチプレクサ50を制御する。例えばアクセス制御部11は、一定期間にわたって読み出し要求情報を受信していない場合に、第1ライトバッファ60に蓄積された書き込み要求情報を順番に選択するようにマルチプレクサ50を制御することもできる。マルチプレクサ50により書き込み要求情報が選択された場合、アクセス制御部11は、その選択された書き込み要求情報に基づく書き込み動作を制御する。
以上を前提として、図4乃至図9を参照しながら、各モードにおけるキャッシュ装置100の動作例を説明する。最初に、図4を参照しながら、「通常動作モード」におけるデータの読み出し動作の一例を説明する。
図4に示すように、まずアクセス制御部11は、読み出し要求情報を受信したか否かを判定する(ステップS10)。読み出し要求情報を受信したと判定した場合(ステップS10の結果:YESの場合)、アクセス制御部11は、その受信した読み出し要求情報を選択するようにマルチプレクサ50を制御し、その受信した読み出し要求情報に基づく読み出し動作の制御を開始する。まず、アクセス制御部11は、キャッシュヒットするメモリ領域が存在するか否かを判定する(ステップS11)。キャッシュヒットするメモリ領域が存在すると判定した場合(ステップS11の結果:YESの場合)、アクセス制御部11は、そのメモリ領域に対応するカウンタの計測値を初期値に設定(リセット)する(ステップS12)。次に、アクセス制御部11は、当該メモリ領域のうち、読み出し要求情報に含まれるメモリアドレスの中位部分のインデックスで指定されたキャッシュライン25のデータ部27に記憶されたデータを選択して出力する(ステップS13)。より具体的には、アクセス制御部11は、インデックスで指定されたキャッシュライン25のデータ部27に記憶された複数のワードデータのうち、メモリアドレスの下位部分のワードで指定されたワードデータを選択して出力するように選択部32を制御する。
また、上述のステップS11において、キャッシュヒットするメモリ領域が存在しないと判定した場合(ステップS11の結果:NO)、つまり、ミスヒットであると判定した場合、アクセス制御部11は、主記憶装置に対して、読み出しが要求されたデータの転送を要求する(ステップS14)。なお、上位のキャッシュ(3次キャッシュ等)が設けられている場合は、アクセス制御部11は、その上位のキャッシュに対して、読み出しが要求されたデータの転送を要求することもできる。そして、主記憶装置(あるいは上位キャッシュ)からデータが転送されてきた場合(ステップS15の結果:YES)、アクセス制御部11は、主記憶装置から転送されてきたデータを出力する(ステップS13)。また、アクセス制御部11は、転送されてきたデータをキャッシュメモリ20へ書き込む(ステップS16)。
主記憶装置から転送されてきたデータを書き込むキャッシュライン25を選択するためのアルゴリズムとしては、例えばLRUを用いることもできる。この場合、アクセス制御部11は、メモリアドレスに含まれるインデックスで指定された各メモリ領域(21〜24)のキャッシュライン25のうち、最も長くアクセスされなかったキャッシュライン25を選択する。そして、アクセス制御部11は、主記憶装置から転送されてきたデータを、選択したキャッシュライン25のデータ部27に書き込むとともに、読み出し要求情報に含まれるメモリアドレスの上位部分のタグを、選択したキャッシュライン25のタグ部26に書き込む。
一方、上述のステップS10において、読み出し要求情報を受信していないと判定した場合(ステップS10の結果:NOの場合)、アクセス制御部11は、未使用時間の計測値が第1閾値に到達したメモリ領域があるか否かを判定する(ステップS17)。未使用時間の計測値が第1閾値に到達したメモリ領域があると判定した場合(ステップS17の結果:YESの場合)、アクセス制御部11は、電力制御部13に対して、当該メモリ領域を動作状態から待機状態に遷移させる制御を行うように指示する。この指示を受けた電力制御部13は、当該メモリ領域に対して待機電力を供給するように電源部40を制御する(ステップS18)。つまり、電力制御部13は、そのメモリ領域を動作状態から待機状態に遷移させる制御を行う。これにより、キャッシュ装置100は「通常動作モード」から「部分待機モード」に移行する。
次に、図5を参照しながら、通常動作モードにおけるデータの書き込み動作の一例を説明する。ここでは、マルチプレクサ50により選択された1つの書き込み要求情報に基づく書き込み動作が行われる場合を例に挙げて説明する。
図5に示すように、まずアクセス制御部11は、キャッシュヒットするメモリ領域が存在するか否かを判定する(ステップS21)。キャッシュヒットするメモリ領域が存在すると判定した場合(ステップS21の結果:YESの場合)、アクセス制御部11は、そのメモリ領域に対応するカウンタの計測値を初期値に設定する(ステップS22)。次に、アクセス制御部11は、当該メモリ領域のうち、書き込み要求情報に含まれるメモリアドレスのインデックスで指定されたキャッシュライン25のデータ部27に、書き込みが要求されたデータを書き込む(ステップS23)。
一方、上述のステップS21において、キャッシュヒットするメモリ領域が存在しないと判定した場合(ステップS21の結果:NOの場合)、つまり、ミスヒットであると判定した場合、アクセス制御部11は、インデックスで指定された各メモリ領域のキャッシュライン25のうち、最も長くアクセスされなかったキャッシュライン25に、キャッシュ情報を書き込む(ステップS24)。より具体的には、アクセス制御部11は、インデックスで指定された各メモリ領域のキャッシュライン25のうち、最も長くアクセスされなかったキャッシュライン25のタグ部26に、書き込み要求情報に含まれるメモリアドレスのタグを書き込むとともに、当該キャッシュライン25のデータ部27に、当該書き込み要求情報に含まれるデータ(書き込みが要求されたデータ)を書き込む。
次に、「部分待機モード」におけるキャッシュ装置100の動作例を説明する。最初に、図6を参照しながら、部分待機モードにおけるデータの読み出し動作の一例を説明する。
図6に示すように、まずアクセス制御部11は、読み出し要求情報を受信したか否かを判定する(ステップS30)。読み出し要求情報を受信したと判定した場合(ステップS30の結果:YESの場合)、アクセス制御部11は、その受信した読み出し要求情報が選択されるようにマルチプレクサ50を制御し、その受信した読み出し要求情報に基づく読み出し動作の制御を開始する。まず、アクセス制御部11は、動作状態のメモリ領域のうち、キャッシュヒットするメモリ領域が存在するか否かを判定する(ステップS31)。キャッシュヒットするメモリ領域が存在すると判定した場合(ステップS31の結果:YESの場合)、アクセス制御部11は、そのメモリ領域に対応するカウンタの計測値を初期値に設定する(ステップS32)。次に、アクセス制御部11は、当該メモリ領域のうち、読み出し要求情報に含まれるメモリアドレスのインデックスで指定されたキャッシュライン25のデータ部27に記憶されたデータを選択して出力する(ステップS33)。
また、上述のステップS31において、キャッシュヒットするメモリ領域が存在しないと判定した場合(ステップS31の結果:NOの場合)、つまり、ミスヒットであると判定した場合、アクセス制御部11は、主記憶装置に対して、読み出しが要求されたデータの転送を要求する(ステップS34)。また、アクセス制御部11は、電力制御部13に対して、待機状態のメモリ領域を動作状態に復帰させるように指示する。この指示を受けた電力制御部13は、待機状態のメモリ領域を動作状態に復帰させる(ステップS35)。より具体的には、電力制御部13は、待機状態のメモリ領域に供給する電力を動作電力に切り替えるように電源部40を制御する。次に、アクセス制御部11は、動作状態に復帰したメモリ領域があるか否かを判定する(ステップS36)。動作状態に復帰したメモリ領域があると判定した場合(ステップS36の結果:YESの場合)、アクセス制御部11は、動作状態のメモリ領域のうち、キャッシュヒットするメモリ領域が存在するか否かを判定する(ステップS37)。
上述のステップS37において、キャッシュヒットするメモリ領域が存在すると判定した場合(ステップS37の結果:YESの場合)、アクセス制御部11は、そのメモリ領域に対応するカウンタの計測値を初期値に設定する(ステップS32)。次に、アクセス制御部11は、当該メモリ領域のうち、読み出し要求情報に含まれるメモリアドレスのインデックスで指定されたキャッシュライン25のデータ部27に記憶されたデータを選択して出力する(ステップS33)。この場合、主記憶装置から転送されてくるデータは不要になるので、例えばアクセス制御部11は、主記憶装置から転送されてくるデータを破棄することもできる。
一方、上述のステップS37において、キャッシュヒットするメモリ領域が存在しないと判定した場合(ステップS37の結果:NOの場合)、アクセス制御部11は、主記憶装置からデータが転送されてきたか否かを判定する(ステップS38)。主記憶装置からデータが転送されてきたと判定した場合(ステップS38の結果:YESの場合)、アクセス制御部11は、主記憶装置から転送されてきたデータを出力する一方(ステップS33)、当該データをキャッシュメモリ20へ書き込む(ステップS39)。ステップS37の内容は、上述のステップS16(図4参照)の内容と同様である。
また、上述のステップS30において、アクセス制御部11が読み出し要求情報を受信していないと判定した場合(ステップS30の結果:NOの場合)、アクセス制御部11は、未使用時間の計測値が第1閾値に到達したメモリ領域があるか否かを判定する(ステップS40)。未使用時間の計測値が第1閾値に到達したメモリ領域があると判定した場合(ステップS40の結果:YESの場合)、アクセス制御部11は、電力制御部13に対して、当該メモリ領域を動作状態から待機状態に遷移させる制御を行うように指示する。この指示を受けた電力制御部13は、当該メモリ領域に供給する電力を待機電力に制御する(ステップS41)。つまり、電力制御部13は、そのメモリ領域に対して供給する電力を待機電力に切り替えるように電源部40を制御する。そして、全てのメモリ領域が待機状態になった場合(ステップS42の結果:YESの場合)、キャッシュ装置100の状態は「部分待機モード」から「全待機モード」に切り替わる。
次に、図7を参照しながら、部分待機モードにおけるデータの書き込み動作の一例を説明する。ここでは、マルチプレクサ50により選択された1つの書き込み要求情報に基づく書き込み動作が行われる場合を例に挙げて説明する。
図7に示すように、まずアクセス制御部11は、動作状態のメモリ領域のうち、キャッシュヒットするメモリ領域が存在するか否かを判定する(ステップS43)。キャッシュヒットするメモリ領域が存在すると判定した場合(ステップS43の結果:YESの場合)、アクセス制御部11は、そのメモリ領域に対応するカウンタの計測値を初期値に設定する(ステップS44)。次に、アクセス制御部11は、当該メモリ領域のうち、書き込み要求情報に含まれるメモリアドレスのインデックスが示すキャッシュライン25のデータ部27に、書き込みが要求されたデータを書き込む(ステップS45)。
また、上述のステップS43において、キャッシュヒットするメモリ領域が存在しないと判定した場合(ステップS43の結果:NOの場合)、つまり、ミスヒットであると判定した場合、アクセス制御部11は、電力制御部13に対して、待機状態のメモリ領域を動作状態に復帰させるように指示する。この指示を受けた電力制御部13は、待機状態のメモリ領域を動作状態に復帰させる(ステップS46)。次に、アクセス制御部11は、動作状態に復帰したメモリ領域があるか否かを判定する(ステップS47)。動作状態に復帰したメモリ領域があると判定した場合(ステップS47の結果:YESの場合)、アクセス制御部11は、動作状態のメモリ領域のうち、キャッシュヒットするメモリ領域が存在するか否かを判定する(ステップS48)。
上述のステップS48において、キャッシュヒットするメモリ領域が存在すると判定された場合(ステップS48の結果:YESの場合)、アクセス制御部11は、当該メモリ領域に対応するカウンタの計測値を初期値に設定する(ステップS44)。次に、アクセス制御部11は、当該メモリ領域のうち、書き込み要求情報に含まれるメモリアドレスのインデックスで指定されたキャッシュライン25のデータ部27に、書き込みが要求されたデータを書き込む(ステップS45)。一方、上述のステップS48において、キャッシュヒットするメモリ領域がないと判定した場合(ステップS48の結果:NOの場合)、アクセス制御部11は、全てのメモリ領域が動作状態に復帰したか否かを判定する(ステップS49)。全てのメモリ領域が動作状態に復帰したと判定した場合(ステップS49の結果:YESの場合)、アクセス制御部11は、インデックスにより指定されたキャッシュライン25のうち最も長くアクセスされなかったキャッシュライン25に、キャッシュ情報を書き込む(ステップS50)。ステップS50の内容は、上述のステップS24(図5参照)の内容と同様である。
次に、「全待機モード」におけるキャッシュ装置100の動作例を説明する。最初に、図8を参照しながら、全待機モードにおけるデータの読み出し動作の一例を説明する。
図8に示すように、まずアクセス制御部11は、読み出し要求情報を受信したか否かを判定する(ステップS60)。読み出し要求情報を受信したと判定した場合(ステップS60の結果:YESの場合)、アクセス制御部11は、その受信した読み出し要求情報が選択されるようにマルチプレクサ50を制御し、その受信した読み出し要求情報に基づく読み出し動作の制御を開始する。まず、アクセス制御部11は、主記憶装置に対して、読み出しが要求されたデータの転送を要求する(ステップS61)。また、アクセス制御部11は、電力制御部13に対して、待機状態のメモリ領域を動作状態に復帰させるように指示する。この指示を受けた電力制御部13は、待機状態のメモリ領域を動作状態に復帰させる(ステップS62)。
次に、アクセス制御部11は、動作状態に復帰したメモリ領域があるか否かを判定する(ステップS63)。動作状態に復帰したメモリ領域があると判定した場合(ステップS63の結果:YESの場合)、アクセス制御部11は、動作状態のメモリ領域のうち、キャッシュヒットするメモリ領域が存在するか否かを判定する(ステップS64)。
上述のステップS64において、キャッシュヒットするメモリ領域が存在すると判定した場合(ステップS64の結果:YESの場合)、アクセス制御部11は、当該メモリ領域に対応するカウンタの計測値を初期値に設定する(ステップS65)。次に、アクセス制御部11は、当該メモリ領域のうち、読み出し要求情報に含まれるメモリアドレスのインデックスで指定されたキャッシュライン25のデータ部27に記憶されたデータを選択して出力する(ステップS66)。この場合、主記憶装置から転送されてくるデータは不要になるので、例えばアクセス制御部11は、主記憶装置から転送されてくるデータを破棄することもできる。
一方、上述のステップS64において、キャッシュヒットするメモリ領域が存在しないと判定した場合(ステップS64の結果:NOの場合)、アクセス制御部11は、主記憶装置からデータが転送されてきたか否かを判定する(ステップS67)。主記憶装置からデータが転送されてきたと判定した場合(ステップS67の結果:YESの場合)、アクセス制御部11は、主記憶装置から転送されてきたデータを出力する一方(ステップS66)、当該データをキャッシュメモリ20へ書き込む(ステップS68)。ステップS68の内容は、上述のステップS16(図4参照)の内容と同様である。
また、上述のステップS60において、アクセス制御部11が読み出し要求情報を受信していないと判定した場合(ステップS60の結果:NOの場合)、アクセス制御部11は、待機時間の計測値が第2閾値に到達したか否かを判定する(ステップS69)。待機時間の計測値が第2閾値に到達したと判定した場合(ステップS69の結果:YESの場合)、アクセス制御部11は、電力制御部13に対して、「オフモード」に移行する制御を行うように指示する。この指示を受けた電力制御部13は、「オフモード」に移行する制御を行う(ステップS70)。より具体的には、電力制御部13は、各メモリ領域に対する電力の供給を停止するように電源部40を制御する。これにより、キャッシュ装置100の状態は「全待機モード」から「オフモード」に切り替わる。
次に、図9を参照しながら、全待機モードにおけるデータの書き込み動作の一例を説明する。ここでは、マルチプレクサ50により選択された1つの書き込み要求情報に基づく書き込み動作が行われる場合を例に挙げて説明する。
図9に示すように、まずアクセス制御部11は、電力制御部13に対して、待機状態のメモリ領域を動作状態に復帰させるように指示する。この指示を受けた電力制御部13は、待機状態のメモリ領域を動作状態に復帰させる(ステップS71)。
次に、アクセス制御部11は、動作状態に復帰したメモリ領域があるか否かを判定する(ステップS72)。動作状態に復帰したメモリ領域があると判定した場合(ステップS72の結果:YESの場合)、アクセス制御部11は、動作状態のメモリ領域のうち、キャッシュヒットするメモリ領域が存在するか否かを判定する(ステップS73)。
上述のステップS73において、キャッシュヒットするメモリ領域が存在すると判定した場合(ステップS73の結果:YESの場合)、アクセス制御部11は、当該メモリ領域に対応するカウンタの計測値を初期値に設定する(ステップS74)。次に、アクセス制御部11は、当該メモリ領域のうち、書き込み要求情報に含まれるメモリアドレスのインデックスで指定されたキャッシュライン25のデータ部27に、書き込みが要求されたデータを書き込む(ステップS75)。一方、上述のステップS73において、キャッシュヒットするメモリ領域が存在しないと判定した場合(ステップS73の結果:NOの場合)、アクセス制御部11は、全てのメモリ領域が動作状態に復帰したか否かを判定する(ステップS76)。全てのメモリ領域が動作状態に復帰したと判定した場合(ステップS76の結果:YESの場合)、アクセス制御部11は、メモリアドレスに含まれるインデックスで指定されたキャッシュライン25のうち最も長くアクセスされなかったキャッシュライン25に、キャッシュ情報を書き込む(ステップS77)。ステップS77の内容は、上述のステップS24(図5参照)の内容と同様である。
なお、「オフモード」におけるキャッシュ装置100の動作例は以下のとおりである。「オフモード」において、読み出し要求情報または書き込み要求情報がマルチプレクサ50により選択された場合、アクセス制御部11は、電力制御部13に対して、全てのメモリ領域を動作状態に復帰させるように指示する。この指示を受けた電力制御部13は、全てのメモリ領域を動作状態に復帰させる制御を行う。これにより、キャッシュ装置100の状態は「オフモード」から「通常動作モード」に切り替わる。以降の動作は、上述の通常動作モードにおける動作と同様である。
以上に説明したように、本実施形態では、アクセスが行われる可能性が高いメモリ領域の待機電力は、アクセスが行われる可能性が低いメモリ領域の待機電力に比べて、動作電力に近い値に制御されるので、アクセスが行われる可能性が高いメモリ領域は、短時間で待機状態から動作状態へ復帰することが可能になる。また、アクセスが行われる可能性が低いメモリ領域の待機電力を、動作電力に比べて十分に小さい値に制御することにより、消費電力を低減することができる。すなわち、本実施形態によれば、性能を確保しつつ消費電力を低減可能なキャッシュ装置を提供することが可能になる。
(第2実施形態)
次に、第2実施形態について説明する。なお、上述の第1実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。
図10は、第2実施形態のキャッシュ装置200の構成例を示す図である。説明の便宜上、アクセス制御部11、カウンタ12および電力制御部13の図示は省略している。図10に示すように、キャッシュ装置200は、第2ライトバッファ70を更に備える点で第1実施形態と相違する。アクセス制御部11の制御の下、マルチプレクサ50は、CPUが出力する読み出し要求情報、第1ライトバッファ60に蓄積された書き込み要求情報、および、第2ライトバッファ70に蓄積された情報のうちの何れかを選択する。
本実施形態では、アクセス制御部11は、第1ライトバッファ60内の書き込み要求情報に基づく書き込み動作を制御する場合において、動作状態のメモリ領域のうちキャッシュヒットするメモリ領域が存在しないと判定した場合は、当該書き込み要求情報を第2ライトバッファ70へ移動する制御を行う。
より具体的には、アクセス制御部11は、動作状態のメモリ領域ごとに、マルチプレクサ50により選択された書き込み要求情報(第1ライトバッファ60内の書き込み要求情報)に含まれるメモリアドレスのインデックスで指定されるキャッシュライン25のタグ部26に記憶されたタグと、当該書き込み要求情報に含まれるメモリアドレスのタグとが一致するか否かを判定し、何れも一致しないと判定した場合(ミスヒットであると判定した場合)は、当該書き込み要求情報を第2ライトバッファ70へ移動する制御を行う。その後、アクセス制御部11は、第1ライトバッファ60に記憶された他の(典型的には直後の)書き込み要求情報を選択するように、マルチプレクサ50を制御することができる。
また、本実施形態では、第2ライトバッファ70に書き込み要求情報が記憶されている場合、アクセス制御部11は、電力制御部13に対して、待機状態のメモリ領域を動作状態に復帰させるように指示する。この指示を受けた電力制御部13は、待機状態のメモリ領域を動作状態に復帰させる制御を行う。つまり、電力制御部13は、待機状態のメモリ領域に対して供給する電力を動作電力に切り替えるように電源部40を制御する。そして、全てのメモリ領域が動作状態に復帰した場合、アクセス制御部11は、第2ライトバッファ70に記憶された書き込み要求情報に基づく書き込み動作を制御する。
つまり、アクセス制御部11は、全てのメモリ領域が動作状態に復帰するまでの間、第1ライトバッファ60に記憶された他の書き込み要求情報に基づく書き込み動作を制御することができる。これにより、例えば第1ライトバッファ60内の他の書き込み要求情報で特定されるデータ(書き込みが要求されるデータ)が、既に動作状態のメモリ領域のうちの何れかに書き込み可能なデータである場合は、待機状態のメモリ領域が動作状態に復帰するのを待たずに、次の書き込み動作を行うことができる。すなわち、メモリ領域の駆動を待たなくても書き込み可能なデータが、メモリ領域の駆動待ちによって書き込み動作を長時間にわたって待たせられ、第1ライトバッファ60自体の容量をオーバーしてしまうことを防止できる。したがって、本実施形態によれば、書き込み動作による性能のオーバーヘッドを減らすことが可能になる。
また、全てのメモリ領域が動作状態に復帰するまでの間において、CPUからの読み出し要求情報を受信した場合、アクセス制御部11は、その受信した読み出し要求情報を優先的に選択するようにマルチプレクサ50を制御することもできる。つまり、全てのメモリ領域が動作状態に復帰するまでの間において、CPUからの読み出し要求情報を受信した場合、アクセス制御部11は、その受信した読み出し要求情報に基づく読み出し動作を制御することもできる。なお、アクセス制御部11による読み出し動作の制御あるいは書き込み動作の制御の具体的な内容は、上述の第1実施形態と同様なので、ここでは詳細な説明は省略する。
以上、本発明の各実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
例えば上述の各実施形態では、メモリ領域ごとにカウンタが個別に設けられているが、これに限らず、いくつかのメモリ領域で1つのカウンタを共有する構成であってもよい。一例として、全てのメモリ領域(ウェイ)で1つのカウンタを共有する場合について説明する。この例では、カウンタは、読み出し要求情報または書き込み要求情報(アクセス要求情報)を受信するたびに、計測値を初期値にリセットする。また、この例では、第1閾値は、メモリ領域ごとに異なる値に設定されるが、これに限らず、同じ値に設定されてもよい。以下では、各モードにおける動作例について、上述の第1実施形態と相違する部分を中心に説明する。上述の第1実施形態と重複する部分については適宜に説明を省略する。
図11は、通常動作モードにおける動作例を示すフローチャートである。まずアクセス制御部11は、アクセス要求情報を受信したか否かを判定する(ステップS101)。アクセス要求情報を受信したと判定した場合(ステップS101の結果:YESの場合)、アクセス制御部11は、カウンタの計測値を初期値に設定(リセット)する(ステップS102)。
受信したアクセス要求情報が読み出し要求情報の場合(ステップS103の結果:YESの場合)、アクセス制御部11は、その受信した読み出し要求情報を選択するようにマルチプレクサ50を制御し、その受信した読み出し要求情報に基づく読み出し動作の制御を開始する。以降のステップS104〜ステップS108の内容は、図4のステップS12に相当する処理が行われない点を除いて、図4のステップS11〜ステップS16の内容と同様である。
一方、受信したアクセス要求情報が書き込み要求情報の場合(ステップS103の結果:NOの場合)、アクセス制御部11は、受信した書き込み要求情報を第1ライトバッファ60に書き込む(ステップS109)。
また、上述のステップS101において、アクセス要求情報を受信していないと判定した場合(ステップS101の結果:NOの場合)、アクセス制御部11は、カウンタの計測値が第1閾値に到達したメモリ領域があるか否かを判定する(ステップS109)。カウンタの計測値が第1閾値に到達したメモリ領域があると判定した場合(ステップS109の結果:YESの場合)、アクセス制御部11は、電力制御部13に対して、当該メモリ領域を動作状態から待機状態に遷移させる制御を行うように指示する。この指示を受けた電力制御部13は、当該メモリ領域に供給する電力を待機電力に制御する(ステップS110)。これにより、キャッシュ装置の状態は、「通常動作モード」から「部分待機モード」に移行する。
図12は、通常動作モードにおけるデータの書き込み動作の一例を示すフローチャートである。図12に示すステップS121〜ステップS123の内容は、図5のステップS22に相当する処理が行われない点を除いて、図5のステップS21〜ステップS24の内容と同様である。
図13は、部分待機モードにおける動作例を示すフローチャートである。まずアクセス制御部11は、アクセス要求情報を受信したか否かを判定する(ステップS131)。アクセス要求情報を受信したと判定した場合(ステップS131の結果:YESの場合)、アクセス制御部11は、カウンタの計測値を初期値に設定する(ステップS132)。
受信したアクセス要求情報が読み出し要求情報の場合(ステップS133の結果:YESの場合)、アクセス制御部11は、その受信した読み出し要求情報が選択されるようにマルチプレクサ50を制御し、その受信した読み出し要求情報に基づく読み出し動作の制御を開始する。以降のステップS134〜ステップS141の内容は、図6のステップS32に相当する処理が行われない点を除いて、図6のステップS31〜ステップS39の内容と同様である。
一方、受信したアクセス要求情報が書き込み要求情報の場合(ステップS133の結果:NOの場合)、アクセス制御部11は、受信した書き込み要求情報を第1ライトバッファ60に書き込む(ステップS142)。
また、上述のステップS131において、アクセス要求情報を受信していないと判定した場合(ステップS131の結果:NOの場合)、アクセス制御部11は、カウンタの計測値が第1閾値に到達したメモリ領域があるか否かを判定する(ステップS143)。カウンタの計測値が第1閾値に到達したメモリ領域があると判定した場合(ステップS143の結果:YESの場合)、アクセス制御部11は、電力制御部13に対して、当該メモリ領域を動作状態から待機状態に遷移させる制御を行うように指示する。この指示を受けた電力制御部13は、当該メモリ領域に供給する電力を待機電力に制御する(ステップS144)。全てのメモリ領域が待機状態になった場合(ステップS145の結果:YESの場合)、キャッシュ装置の状態は「部分待機モード」から「全待機モード」に切り替わる。そして、アクセス制御部11は、待機時間の計測を開始する。
図14は、部分待機モードにおけるデータの書き込み動作の一例を示すフローチャートである。図14のステップS151〜ステップS157の内容は、図7のステップS44に相当する処理が行われない点を除いて、図7のステップS43〜ステップS50の内容と同様である。
図15は、全待機モードにおける動作例を示すフローチャートである。まずアクセス制御部11は、アクセス要求情報を受信したか否かを判定する(ステップS161)。アクセス要求情報を受信したと判定した場合(ステップS161の結果:YESの場合)、アクセス制御部11は、カウンタの計測値を初期値に設定する(ステップS162)。
受信したアクセス要求情報が読み出し要求情報の場合(ステップS163の結果:YESの場合)、アクセス制御部11は、その受信した読み出し要求情報が選択されるようにマルチプレクサ50を制御し、その受信した読み出し要求情報に基づく読み出し動作の制御を開始する。以降のステップS164〜ステップS170の内容は、図8のステップS65に相当する処理が行われない点を除いて、図8のステップS61〜ステップS68の内容と同様である。
一方、受信したアクセス要求情報が書き込み要求情報の場合(ステップS163の結果:NOの場合)、アクセス制御部11は、受信した書き込み要求情報を第1ライトバッファ60に書き込む(ステップS171)。
また、上述のステップS161において、アクセス要求情報を受信していないと判定した場合(ステップS161の結果:NOの場合)、アクセス制御部11は、待機時間の計測値が第2閾値に到達したか否かを判定する(ステップS172)。待機時間の計測値が第2閾値に到達したと判定した場合(ステップS172の結果:YESの場合)、アクセス制御部11は、電力制御部13に対して、「オフモード」に移行する制御を行うように指示する。この指示を受けた電力制御部13は、「オフモード」に移行する制御を行う(ステップS173)。
図16は、全待機モードにおけるデータの書き込み動作の一例を示すフローチャートである。図16のステップS181〜ステップS186の内容は、図9のステップS74に相当する処理が行われない点を除いて、図9のステップS71〜ステップS77の内容と同様である。
なお、「オフモード」における動作例は以下のとおりである。「オフモード」において、アクセス要求情報を受信した場合、アクセス制御部11は、電力制御部13に対して、全てのメモリ領域を動作状態に復帰させるように指示する。この指示を受けた電力制御部13は、全てのメモリ領域を動作状態に復帰させる制御を行う。これにより、キャッシュ装置の状態は「オフモード」から「通常動作モード」に切り替わる。そして、アクセス制御部11は、カウンタの計測値を初期値に設定する。以降の動作は、上述の通常動作モードにおける動作(図11のステップS103以降の動作)と同様である。
なお、各メモリ領域に対応する第1閾値の設定方法は任意であり、例えばアクセスが行われる可能性が低いメモリ領域ほど、その第1閾値の値は小さい値に設定される構成であってもよい。この構成によれば、アクセスが行われる可能性が低いメモリ領域については速やかに待機状態に移行させることができる。
また、例えばアクセスが行われる可能性が高いメモリ領域ほど、その第1閾値の値は小さい値に設定される構成であってもよい。この構成によれば、アクセスが行われる可能性が高いメモリ領域を、積極的に待機状態に移行させることができる。さらに、アクセスが行われる可能性が低いメモリ領域に対応する第1閾値の値を、一般的に想定されるアクセス間隔よりも小さい値に設定することで、アクセスが行われる可能性が高いメモリ領域を積極的に待機状態に移行させつつ、アクセスが行われる可能性が低いメモリ領域の消費電力を低減することが可能になる。
また、例えば上述の各実施形態のキャッシュ装置は4ウェイセットアソシアティブ方式であるが、これに限定されるものではなく、2ウェイセットアソシアティブ方式であってもよいし、8ウェイセットアソシティブ方式であってもよい。要するに、n(n≧2)ウェイセットアソシアティブ方式のキャッシュ装置であればよい。
また、上述の各実施形態のキャッシュメモリは不揮発性のメモリで構成されているが、これに限定されるものではなく、例えば揮発性のメモリで構成されてもよい。
また、上述の第1閾値および第2閾値の値は任意に設定可能である。例えば第1閾値を第2閾値よりも小さい値に設定することにより、アクセスされる可能性が高いメモリ領域についても、積極的に待機状態に移行させることが可能になる。これにより、消費電力を低減することができる。
10 キャッシュコントローラ
11 アクセス制御部
12 カウンタ
13 電力制御部
20 キャッシュメモリ
21 メモリ領域
22 メモリ領域
23 メモリ領域
24 メモリ領域
25 キャッシュライン
26 タグ部
27 データ部
30 キャッシュ部
31 比較部
32 選択部
40 電源部
41 電源
42 電源
43 電源
44 電源
50 マルチプレクサ
60 第1ライトバッファ
70 第2ライトバッファ
100 キャッシュ装置
200 キャッシュ装置

Claims (6)

  1. n(n≧2)ウェイセットアソシアティブ方式のキャッシュ装置であって、
    複数のウェイと1対1に対応する複数のメモリ領域を有するキャッシュメモリと、
    前記メモリ領域に対するアクセスを制御するアクセス制御部と、
    前記メモリ領域ごとに電力の供給を個別に制御し、前記アクセスが一定期間行われない前記メモリ領域については、当該メモリ領域に供給する電力を、前記メモリ領域が動作可能な動作電力よりも低い値を示す待機電力に制御する電力制御部と、
    データの書き込みを要求する書き込み要求情報を記憶する第1ライトバッファと、
    第2ライトバッファと、を備え、
    前記電力制御部は、前記アクセスが行われる可能性が高い前記メモリ領域の前記待機電力を、前記アクセスが行われる可能性が低い前記メモリ領域の前記待機電力に比べて、前記動作電力に近い値に制御し、
    前記アクセス制御部は、前記第1ライトバッファに記憶された前記書き込み要求情報に基づく書き込み動作を制御する場合において、前記動作電力が供給されている状態を示す動作状態の前記メモリ領域の中に、キャッシュヒットする前記メモリ領域が存在しないと判定した場合は、前記第1ライトバッファに記憶された前記書き込み要求情報を、前記第2ライトバッファに移動する制御を行う、
    キャッシュ装置。
  2. 前記アクセス制御部は、前記第1ライトバッファに記憶された前記書き込み要求情報を前記第2ライトバッファに移動する制御を行った後、前記第1ライトバッファに記憶された他の前記書き込み要求情報に基づく書き込み動作を制御する、
    請求項のキャッシュ装置。
  3. 前記第2ライトバッファに前記書き込み要求情報が記憶されている場合、前記電力制御部は、前記待機電力が供給されている状態を示す待機状態の前記メモリ領域を前記動作状態に復帰させる制御を行う、
    請求項のキャッシュ装置。
  4. 全ての前記メモリ領域が前記動作状態に復帰した場合、前記アクセス制御部は、前記第2ライトバッファに記憶された前記書き込み要求情報に基づく書き込み動作を制御する、
    請求項のキャッシュ装置。
  5. 前記書き込み要求情報は、主記憶装置内の場所を示すメモリアドレスと、書き込みを要求するデータとを含み、
    各前記メモリ領域は、前記メモリアドレスの一部であるタグを記憶するタグ部と、データを記憶するデータ部とが対応付けられた複数のキャッシュラインを有し、
    前記メモリアドレスには、前記複数のキャッシュラインのうちの何れかを指定するインデックスが含まれ、
    前記アクセス制御部は、前記動作状態の前記メモリ領域ごとに、前記書き込み要求情報に含まれる前記メモリアドレスの前記インデックスで指定された前記キャッシュラインの前記タグ部に記憶された前記タグと、前記書き込み要求情報に含まれる前記メモリアドレスの前記タグとが一致するか否かを判定し、何れも一致しないと判定した場合は、前記第1ライトバッファに格納された前記書き込み要求情報を前記第2ライトバッファへ移動する制御を行う、
    請求項のキャッシュ装置。
  6. 前記キャッシュメモリは不揮発性のメモリである、
    請求項1のキャッシュ装置。
JP2012056359A 2012-03-13 2012-03-13 キャッシュ装置 Active JP5458132B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012056359A JP5458132B2 (ja) 2012-03-13 2012-03-13 キャッシュ装置
US13/772,518 US9557801B2 (en) 2012-03-13 2013-02-21 Cache device, cache system and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012056359A JP5458132B2 (ja) 2012-03-13 2012-03-13 キャッシュ装置

Publications (2)

Publication Number Publication Date
JP2013190970A JP2013190970A (ja) 2013-09-26
JP5458132B2 true JP5458132B2 (ja) 2014-04-02

Family

ID=49158833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012056359A Active JP5458132B2 (ja) 2012-03-13 2012-03-13 キャッシュ装置

Country Status (2)

Country Link
US (1) US9557801B2 (ja)
JP (1) JP5458132B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9400544B2 (en) 2013-04-02 2016-07-26 Apple Inc. Advanced fine-grained cache power management
US8984227B2 (en) * 2013-04-02 2015-03-17 Apple Inc. Advanced coarse-grained cache power management
US9396122B2 (en) 2013-04-19 2016-07-19 Apple Inc. Cache allocation scheme optimized for browsing applications
KR102034626B1 (ko) * 2013-06-26 2019-10-21 삼성전자 주식회사 메모리 동작을 제어하는 방법 및 장치
JP6130750B2 (ja) * 2013-07-16 2017-05-17 株式会社東芝 メモリ制御回路およびプロセッサ
JP6158154B2 (ja) 2014-09-19 2017-07-05 株式会社東芝 プロセッサシステム、メモリ制御回路およびメモリシステム
GB2539459A (en) * 2015-06-16 2016-12-21 Nordic Semiconductor Asa Waveform generation
US10417134B2 (en) * 2016-11-10 2019-09-17 Oracle International Corporation Cache memory architecture and policies for accelerating graph algorithms

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3920977A (en) * 1973-09-10 1975-11-18 Gte Automatic Electric Lab Inc Arrangement and method for switching the electronic subsystems of a common control communication switching system without interference to call processing
US7024519B2 (en) * 2002-05-06 2006-04-04 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory
JP4062095B2 (ja) * 2002-10-08 2008-03-19 独立行政法人科学技術振興機構 キャッシュメモリ
US7127560B2 (en) * 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size
US7165165B2 (en) * 2004-03-16 2007-01-16 Intel Corporation Anticipatory power control of memory
JP3834323B2 (ja) * 2004-04-30 2006-10-18 日本電気株式会社 キャッシュメモリおよびキャッシュ制御方法
US7444526B2 (en) * 2005-06-16 2008-10-28 International Business Machines Corporation Performance conserving method for reducing power consumption in a server system
JP4837456B2 (ja) * 2006-06-28 2011-12-14 パナソニック株式会社 情報処理装置
US7961534B2 (en) * 2007-09-10 2011-06-14 Hynix Semiconductor Inc. Semiconductor memory device for writing data to multiple cells simultaneously and refresh method thereof
KR101440107B1 (ko) * 2008-01-28 2014-09-12 삼성전자주식회사 다중 코어 시스템에서 접근 시간에 기초한 메모리 관리방법 및 장치
JP5167952B2 (ja) * 2008-05-26 2013-03-21 富士通株式会社 キャッシュメモリシステム
JP5359603B2 (ja) * 2009-06-25 2013-12-04 セイコーエプソン株式会社 集積回路システム、データ書き込み方法、データ読み出し方法
US8321703B2 (en) * 2009-12-12 2012-11-27 Microsoft Corporation Power aware memory allocation
US8412971B2 (en) * 2010-05-11 2013-04-02 Advanced Micro Devices, Inc. Method and apparatus for cache control
US9235500B2 (en) * 2010-12-07 2016-01-12 Microsoft Technology Licensing, Llc Dynamic memory allocation and relocation to create low power regions
JP2012190359A (ja) 2011-03-11 2012-10-04 Toshiba Corp キャッシュシステムおよび処理装置
JP5627521B2 (ja) 2011-03-24 2014-11-19 株式会社東芝 キャッシュシステムおよび処理装置

Also Published As

Publication number Publication date
JP2013190970A (ja) 2013-09-26
US9557801B2 (en) 2017-01-31
US20130246818A1 (en) 2013-09-19

Similar Documents

Publication Publication Date Title
JP5458132B2 (ja) キャッシュ装置
US9329995B2 (en) Memory device and operating method thereof
TWI492225B (zh) 記憶體系統及其耗損平均方法
US20180081594A1 (en) Storage device and method of operating the same
KR101121698B1 (ko) 반도체 기억 장치 및 기억 제어 방법
US10310747B2 (en) Memory management device and method
TWI590049B (zh) 記憶體裝置與其操作方法
US9251055B2 (en) Memory system and control method of memory system
US9600408B2 (en) Data storage device and method for flash block management
CN101739344A (zh) 控制非易失性存储装置中损耗的存储器控制器及操作方法
JP2020003838A (ja) メモリシステム
JP6139381B2 (ja) メモリシステムおよび方法
US10956067B2 (en) Memory controller and flash memory system having the same
CN109643274A (zh) 多个数据温度区的交叉点存储器的磨损均衡方法
US9959044B2 (en) Memory device including risky mapping table and controlling method thereof
US20220083475A1 (en) Cache memory system and cache memory control method
US20180260127A1 (en) Management device, information processing apparatus, and management method
US10606517B2 (en) Management device and information processing device
US11593276B2 (en) Data caching methods of cache systems
US20200012454A1 (en) Semiconductor device for managing addresses of nonvolatile memory device
US20200089604A1 (en) Memory system and control method thereof
US11709599B2 (en) Memory controller and memory system
JP6784033B2 (ja) 方法、キャッシュシステム及びデータ監視部
JP6074463B2 (ja) プロセッサシステム、メモリ制御回路およびメモリシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131001

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140110

R151 Written notification of patent or utility model registration

Ref document number: 5458132

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350