JP5338905B2 - キャッシュ制御装置およびキャッシュ制御方法 - Google Patents
キャッシュ制御装置およびキャッシュ制御方法 Download PDFInfo
- Publication number
- JP5338905B2 JP5338905B2 JP2011515819A JP2011515819A JP5338905B2 JP 5338905 B2 JP5338905 B2 JP 5338905B2 JP 2011515819 A JP2011515819 A JP 2011515819A JP 2011515819 A JP2011515819 A JP 2011515819A JP 5338905 B2 JP5338905 B2 JP 5338905B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- power consumption
- predetermined threshold
- data
- equal
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 34
- 238000003860 storage Methods 0.000 claims description 40
- 238000012544 monitoring process Methods 0.000 claims description 38
- 230000007850 degeneration Effects 0.000 claims description 30
- 230000000694 effects Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/603—Details of cache memory of operating mode, e.g. cache mode or local memory mode
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
Description
この発明は、キャッシュメモリを制御するキャッシュ制御装置およびキャッシュ制御方法に関する。
従来より、処理速度を上げるために、主記憶装置ではなくアクセス速度の速いキャッシュメモリにデータを確保するキャッシュ制御回路が知られている。近年、このようなキャッシュ制御回路において、半導体製造技術が向上し微細化が進むにつれ、集積度や漏れ電流の増大により消費電力が大きく、省電力化が注目されている(例えば、特許文献1〜7参照)。
例えば、省電力を目的とした技術として、動作クロックや電圧を変動するように制御する技術が知られている(例えば、特許文献8、9参照)。具体的には、キャッシュ制御回路に動作クロックの制御を行う外部回路または電圧の変動制御を行うための外部回路が設けられ、これらの外部回路が動作クロックや電圧を変動させる。
また、省電力化を目的とした技術として、消費電力が高い場合に、キャッシュメモリを一時的に切り離す技術が知られている(例えば、特許文献10〜12)。具体的には、消費電力が高いと判定された場合に、主記憶装置上に格納されておらずキャッシュメモリにのみ存在するデータであるDirtyなデータをキャッシュメモリから主記憶装置へ書き出した後に、キャッシュメモリを切り離す処理を行う。
しかしながら、上記の動作クロックや電圧を変動する技術では、動作クロックの制御を行う外部回路または電圧の変動制御を行うための複雑な外部回路が必要であり、回路規模が大きくなり、製造コストが大きくなるという課題があった。
また、上記のキャッシュメモリを切り離す技術では、キャッシュメモリに格納されたDirtyなデータを主記憶装置へ書き出すので、Dirtyなデータを主記憶装置へ書き出す処理負荷が高くなる場合があり、切り離し処理を行うまでに時間が掛かる結果、即時に消費電力の削減を行えないという課題があった。
開示の技術は、上記に鑑みてなされたものであって、回路規模を大きくすることなく、消費電力の即時削減を行うことを目的とする。
本願の開示するキャッシュ制御装置は、一つの態様において、消費電力が所定の閾値以上であると判定された場合、または、キャッシュメモリ動作率が所定の閾値以下であると判定された場合には、主記憶装置上に格納されている情報と同一の情報のみを記憶する同一情報記憶領域を縮退するようにキャッシュメモリを制御する。
本願の開示するキャッシュ制御装置の一つの態様によれば、回路規模を大きくすることなく、消費電力の即時削減を行うことができるという効果を奏する。
以下に添付図面を参照して、この発明に係るキャッシュ制御装置およびキャッシュ制御方法の実施例を詳細に説明する。
以下の実施例では、実施例1に係るキャッシュ制御装置の構成および処理の流れを順に説明し、最後に実施例1による効果を説明する。
[キャッシュ制御装置の構成]
まず最初に、図1を用いて、実施例1に係るキャッシュ制御装置200を含む情報処理システム10の構成を説明する。図1は、実施例1に係るキャッシュ制御装置200の構成を示すブロック図である。
まず最初に、図1を用いて、実施例1に係るキャッシュ制御装置200を含む情報処理システム10の構成を説明する。図1は、実施例1に係るキャッシュ制御装置200の構成を示すブロック図である。
図1に示すように、この情報処理システム10は、CPU100、温度センサ110、キャッシュ制御装置200、主記憶装置300を有し、バス等を介してそれぞれ接続されている。以下にこれらの各部の処理を説明する。
CPU100は、プロセッサコアブロックであって、命令実行制御部101および1次キャッシュ部102を有する。命令実行制御部101は、一次キャッシュ経由で主記憶装置300から命令を取り出し、命令の実行・演算を行なう。
1次キャッシュ部102は、データ復元部103を有し、命令実行部101からのリクエストを受け、データのアクセスを一次キャッシュに対して行なう。また、1次キャッシュ部102は、一次キャッシュにデータが登録されていなかった場合には、二次キャッシュをアクセスする。温度センサ110は、自装置の温度を測定し、温度情報をキャッシュ制御装置200の制御部205に通知する。
データ復元部103は、キャッシュ制御装置200から受信したデータを復元する。具体的には、データ復元部103は、キャッシュ制御装置200からデータとデータ反転フラグとを受信すると、反転フラグを用いてデータを反転させるか否かを判断する。つまり、データ復元部103は、データ反転フラグが「1」である場合には、データを反転させてデータを復元する。
キャッシュ制御装置200は、一次キャッシュ部102からのリクエストを受け、データのアクセスを二次キャッシュに対して行なう。そして、キャッシュ制御装置200は、二次キャッシュに登録されていなかった場合は、主記憶装置300をアクセスする。また、二次キャッシュに登録されていた場合、データ部から読み出して一次キャッシュ部102へ応答する。
また、キャッシュ制御装置200は、二次キャッシュディレクトリ部201、二次キャッシュデータ部202、データ検査復元部203、リクエストカウンタ204、制御部205を有する。以下にこれらの各部の処理を説明する。
二次キャッシュディレクトリ部201は、二次キャッシュデータ部202に登録されたデータの状態に関する状態情報を記録する。また、二次キャッシュディレクトリ部201は、Cleanな登録データに関する状態情報およびDirtyな登録データに関する状態情報を記憶するClean/Dirty用領域2011と、Cleanな登録データに関する状態情報のみを記憶するClean用領域2012とを有する。
ここで二次キャッシュディレクトリ部201が記憶する状態情報について具体的に説明する。図2は、二次キャッシュディレクトリ部のデータ構成について説明するための図である。具体的には、二次キャッシュディレクトリ部201は、図2に示すように、登録データのアドレスを示す「物理アドレス」、二次キャッシュにおける登録データの状態を示す「ステータス」、登録データの状態を示す「反転フラグ」、一次キャッシュにおける登録データの状態を示す「一次キャッシュステータス」を記憶する。
例えば、二次キャッシュにおける登録データの状態を示す「ステータス」において、「00:invalid」である場合には、登録データが無効であることを示し、「10:clean」である場合には、登録データが主記憶装置300のデータと一致していることを示し、「11:dirty」である場合には、登録データが主記憶装置300のデータと一致していないことを示す。
また、例えば、登録データの状態を示す「反転フラグ」が「0」である場合には、登録データがそのまま登録されていることを示し、「反転フラグ」が「1」である場合には、登録データが反転して登録されていることを示す。
また、例えば、一次キャッシュにおける登録データの状態を示す「一次キャッシュステータス」において、「00:invalid」である場合には、登録データが無効であることを示し、「10:clean」である場合には、登録データが主記憶装置300のデータと一致していることを示し、「11:exclusive」である場合には、登録データが主記憶装置300のデータと一致していない場合があることを示す。
二次キャッシュデータ部202は、記録されたデータ本体が格納されている。また、二次キャッシュデータ部202は、Cleanな登録データおよびDirtyな登録データを記憶するClean/Dirty用領域2021と、Cleanな登録データのみを記憶するClean用領域2022とを有する。
つまり、二次キャッシュデータ部202は、Clean/Dirty用領域2021とClean用領域2022とで大きく二つに分けられている。なお、領域の分割は、例えばWay方向で行なってもよい。ここで、Dirtyなデータとは、CPU100により更新されたデータであり、主記憶装置300上に格納されておらずキャッシュメモリにのみ存在するデータのことをいう。一方、Cleanなデータとは、主記憶装置300上に格納されているデータと同一のデータのことをいう。
ここで、Clean/Dirty用領域2021またはClean用領域2022のデータの登録先を分ける処理について説明する。なお、詳細な処理の流れについては、後に図5を用いて詳述する。二次キャッシュデータ部202は、CPU100からのリクエストがstore命令である場合には、そのデータがDirtyとなる可能性があるため、Clean/Dirty用領域2021へ登録する。また、CPU100からのリクエストがread命令である場合には、そのデータがCleanであるため、Clean用領域2022またはClean/Dirty用領域2021へ登録する。
データ検査復元部203は、データ中の「1」の数を数え、データ長の半分よりも多い場合、反転したデータを二次キャッシュデータ部202へ送る。そうでなかった場合には、そのままのデータを送る。また、データ検査復元部203は、データが反転した場合は、さらに二次キャッシュディレクトリ部201へ反転したことを通知する。またwrite backの際は、二次キャッシュディレクトリ部201から反転フラグを受け取り、復元したデータを主記憶装置300へと送る。
リクエストカウンタ204は、所定の時間内における二次キャッシュへのリクエスト数を測定し、制御部205に通知する。制御部205は、二次キャッシュデータ部202に対して縮退制御処理および復帰制御処理を行うが、特に、消費電力監視部205a、動作率監視部205b、縮退制御部205c、復帰制御部205dを有する。
消費電力監視部205aは、自装置の消費電力に関する情報を監視し、消費電力に関する情報が所定の閾値以上であるかを判定する。具体的には、消費電力監視部205aは、消費電力に関する情報として、温度センサ110から温度情報を受信し、自装置の温度が所定の閾値以上であるかを判定する。この結果、消費電力監視部205aは、自装置の温度が所定の閾値以上である場合には、その旨を縮退制御部205cに通知する。
また、消費電力監視部205aは、縮退制御部205cによって縮退制御が行われた後においては、温度センサ110から温度情報を受信し、自装置の温度が所定の閾値以下であるかを判定する。この結果、消費電力監視部205aは、自装置の温度が所定の閾値以下である場合には、その旨を復帰制御部205dに通知する。
動作率監視部205bは、二次キャッシュメモリの動作率を監視し、二次キャッシュメモリ動作率が所定の閾値以下であるかを判定する。具体的には、動作率監視部205bは、二次キャッシュメモリの動作率として、リクエストカウンタ204から所定の時間内における二次キャッシュへのリクエスト数を受信し、リクエスト数が所定の閾値以下であるかを判定する。この結果、動作率監視部205bは、リクエスト数が所定の閾値以下である場合には、その旨を縮退制御部205cに通知する。
また、動作率監視部205bは、縮退制御部205cによって縮退制御が行われた後においては、リクエストカウンタ204から所定の時間内における二次キャッシュへのリクエスト数を受信し、リクエスト数が所定の閾値以上であるかを判定する。この結果、消費電力監視部205aは、リクエスト数が所定の閾値以上である場合には、その旨を復帰制御部205dに通知する。
縮退制御部205cは、消費電力に関する情報が所定の閾値以上であると判定された場合、または動作率が所定の閾値以下であると判定された場合には、二次キャッシュデータ部202のClean用領域2022を縮退するように制御する。具体的には、縮退制御部205cは、消費電力監視部205aから自装置の温度が所定の閾値以上である旨の通知を受信した場合には、速やかに二次キャッシュデータ部202のClean用領域2022の切り離しを行う。
また、縮退制御部205cは、動作率監視部205bからリクエスト数が所定の閾値以下である旨の通知を受信した場合には、二次キャッシュディレクトリ部201のClean用領域2012の初期化を行ない、初期化が完了した後、二次キャッシュデータ部202のClean用領域2022の切り離しを行う。
つまり、この切り離し処理を行うことで、切り離されたClean用領域2022が消費していた電力が削減される。また、Clean用領域2022が切り離されて、キャッシュミスが増加することにより、主記憶装置300にアクセスする回数が増える結果、CPU100の動作率が低下するため、CPU100の動作電力も削減される。
また、Cleanなデータについては、主記憶装置300上にも存在するため、Cleanなデータを登録したClean用領域2022が切り離されたとしても、再度主記憶装置300をアクセスする事によってデータが取得出来る。従って、この切り離し動作において、Dirtyなデータを主記憶装置へ書き出す処理が不要であるため、縮退制御処理を即時に実行することが可能である。
なお、二次キャッシュデータ部202のClean用領域2022の切り離し方法については、アクセスを抑止する方法、クロックの印加を抑止する方法、パワーゲートを用いて電源供給を停止する方法などが考えられるが、消費電力が削減されるのであれば、いずれの方法を用いていてもかまわない。
復帰制御部205dは、消費電力に関する情報が所定の閾値以下であると判定された場合、または動作率が所定の閾値以上であると判定された場合には、二次キャッシュデータ部202のClean用領域2022を復帰するように制御する。
具体的には、復帰制御部205dは、消費電力監視部205aから自装置の温度が所定の閾値以下である旨の通知を受信した場合には、温度状態が回復したと判断して、二次キャッシュディレクトリ部201のClean用領域2012の初期化を行ない、初期化が完了した後、二次キャッシュデータ部202のClean用領域2022の再接続を行う。
また、復帰制御部205dは、動作率監視部205bからリクエスト数が所定の閾値以上である旨の通知を受信した場合には、二次キャッシュデータ部202のClean用領域2022の再接続を速やかに行う。
つまり、キャッシュ制御装置200は、自装置の温度が所定の閾値以上となっている場合には、消費電力がオーバーしている状態であり、省電力の即時性が求められるため、二次キャッシュディレクトリ部201のClean用領域2012の初期化を行わずに、速やかにClean用領域2022の切り離しを行う。その後、キャッシュ制御装置200は、消費電力がオーバーした状態が解消して、二次キャッシュデータ部202のClean用領域2022の再接続を行う直前に二次キャッシュディレクトリ部201のClean用領域2012の初期化を行う。
一方、キャッシュ制御装置200は、二次キャッシュへのリクエスト数が所定の閾値以下となっている場合には、消費電力がオーバーしている状態ではなく、省電力の即時性が求められているわけではないため、二次キャッシュディレクトリ部201のClean用領域2012の初期化を行った後に、Clean用領域2022の切り離しを行う。その後、キャッシュ制御装置200は、二次キャッシュへのリクエスト数が所定の閾値以上となった場合には、Clean用領域2022を即時に復帰させたいので、二次キャッシュデータ部202のClean用領域2022の再接続を速やかに行う。
主記憶装置300は、情報処理装置のメインメモリを備えており、CPU100による演算処理に必要な命令およびデータをすべて格納している。そして、これらの命令およびデータのうち、頻繁に使用されるものが二次キャッシュデータ部202やCPU100内の一次キャッシュ部102に格納されている。
[キャッシュ制御装置による処理]
次に、図3、図4を用いて、実施例1に係るキャッシュ制御装置200による処理を説明する。図3は、実施例1に係るキャッシュ制御装置の切り離し処理および復帰処理の流れを示すフローチャートである。図4は、実施例1に係るキャッシュ制御装置のキャッシュ登録処理の流れを示すフローチャートである。
次に、図3、図4を用いて、実施例1に係るキャッシュ制御装置200による処理を説明する。図3は、実施例1に係るキャッシュ制御装置の切り離し処理および復帰処理の流れを示すフローチャートである。図4は、実施例1に係るキャッシュ制御装置のキャッシュ登録処理の流れを示すフローチャートである。
図3に示すように、キャッシュ制御装置200の消費電力監視部205aは、消費電力に関する情報として、温度センサ110から温度情報を受信し、自装置の温度が所定の閾値以上であるかを判定する(ステップS101)。この結果、自装置の温度が所定の閾値以上であると判定された場合には(ステップS101肯定)、縮退制御部205cは、二次キャッシュデータ部202のClean用領域2022の切り離しを速やかに行う(ステップS102)。
その後、消費電力監視部205aは、縮退制御部205cによって縮退制御が行われた後においては、温度センサ110から温度情報を受信し、自装置の温度が所定の閾値以下であるかを判定する(ステップS103)。
この結果、自装置の温度が所定の閾値以下であると判定された場合には(ステップS103肯定)、復帰制御部205dは、二次キャッシュディレクトリ部201のClean用領域2012の初期化を行ない(ステップS104)、初期化が完了した後、二次キャッシュデータ部202のClean用領域2022の再接続を行う(ステップS105)。
一方、自装置の温度が所定の閾値以上でないと判定された場合には(ステップS101否定)、動作率監視部205bは、二次キャッシュメモリの動作率として、リクエスト数が所定の閾値以下であるかを判定する(ステップS106)。この結果、リクエスト数が所定の閾値以下でないと判定された場合には(ステップS106否定)、S101の処理に戻る。
また、リクエスト数が所定の閾値以下であると判定された場合には(ステップS106肯定)、縮退制御部205cは、二次キャッシュディレクトリ部201のClean用領域2012の初期化を行ない(ステップS107)、初期化が完了した後、二次キャッシュデータ部202のClean用領域2022の切り離しを行う(ステップS108)。
その後、動作率監視部205bは、縮退制御部205cによって縮退制御が行われた後においては、リクエストカウンタ204から所定の時間内における二次キャッシュへのリクエスト数を受信し、リクエスト数が所定の閾値以上であるかを判定する(ステップS109)。この結果、リクエスト数が所定の閾値以上でないと判定した場合には(ステップS109否定)、S109の処理に戻る。
また、リクエスト数が所定の閾値以上であると判定された場合には(ステップS109肯定)、復帰制御部205dは、二次キャッシュデータ部202のClean用領域2022の再接続を速やかに行う(ステップS105)。
次に、実施例1に係るキャッシュ制御装置200のキャッシュ登録処理の流れを説明する。図4に示すように、キャッシュ制御装置200は、CPU100からのリクエストがストア命令であって、かつ、二次キャッシュデータ部202のClean用領域2022にヒットしたか判定する(ステップS301)。
この結果、キャッシュ制御装置200は、ストア命令でない、または、Clean用領域2022にヒットしていないと判定した場合には(ステップS301否定)、二次キャッシュデータ部202にヒットしたかを判定する(ステップS302)。
この結果、キャッシュ制御装置200は、二次キャッシュデータ部202にヒットしたと判定した場合には(ステップS302肯定)、一次キャッシュのリプレイスデータがDirtyなデータであるか判定する(ステップS303)。
その結果、キャッシュ制御装置200は、一次キャッシュのリプレイスデータがDirtyなデータである場合には(ステップS303肯定)、反転フラグに従って二次キャッシュにライトバックする(ステップS304)。そして、キャッシュ制御装置200は、リクエストされたデータを二次キャッシュデータ部202から読み出し、データ反転フラグとともにCPU100へ転送する(ステップS315)。
また、キャッシュ制御装置200は、一次キャッシュのリプレイスデータがDirtyなデータでない場合には(ステップS303否定)、二次キャッシュにライトバックせずに、リクエストされたデータを二次キャッシュデータ部202から読み出し、データ反転フラグとともにCPU100へ転送する(ステップS315)。
一方、キャッシュ制御装置200は、S302において、CPU100からのリクエストが二次キャッシュデータ部202にヒットしていないと判定した場合には(ステップS302否定)、リクエストがリード命令であるか判定する(ステップS305)。この結果、キャッシュ制御装置200は、リクエストがリード命令である場合には(ステップS305肯定)、Clean用領域2022に空きがあるか判定する(ステップS306)。この結果、キャッシュ制御装置200は、Clean用領域2022に空きがある場合には(ステップS306肯定)、空きエントリを使用する(ステップS309)。
また、キャッシュ制御装置200は、Clean用領域2022に空きがない場合には(ステップS306否定)、Clean/Dirty用領域2021に空きがあるか判定する(ステップS307)。この結果、キャッシュ制御装置200は、Clean/Dirty用領域2021に空きがある場合には(ステップS307肯定)、空きエントリを使用する(ステップS309)。
また、キャッシュ制御装置200は、Clean/Dirty用領域2021に空きがない場合には(ステップS307否定)、リプレイス対象をClean用領域2022に決定し、Clean用領域2022で一番使用されていないエントリを削除して空きを作る(ステップS308)。
そして、キャッシュ制御装置200は、主記憶装置300データを読み出し(ステップS310)、読み出したデータに「1」の方が多いか判定する(ステップS311)。そして、キャッシュ制御装置200は、読み出したデータに「1」の方が多い場合には(ステップS311肯定)、データを反転させる(ステップS312)。また、キャッシュ制御装置200は、読み出したデータに「1」の方が少ない場合には(ステップS311否定)、データを反転しない(ステップS313)。
その後、キャッシュ制御装置200は、二次キャッシュデータ部202へデータを登録し(ステップS314)、二次キャッシュにライトバックせずに、リクエストされたデータを二次キャッシュデータ部202から読み出し、データ反転フラグとともにCPU100へ転送する(ステップS315)。
一方、キャッシュ制御装置200は、S301において、CPU100からのリクエストがストア命令であって、かつ、二次キャッシュデータ部202のClean用領域2022にヒットしたと判定した場合には(ステップS301肯定)、Clean用領域2022のヒットしたエントリを削除する(ステップS316)。
そして、キャッシュ制御装置200は、Clean/Dirty用領域2022に空きがあるか判定する(ステップS317)。この結果、キャッシュ制御装置200は、Clean/Dirty用領域2022に空きがある場合には(ステップS317肯定)、上記したステップS309に進む。
また、キャッシュ制御装置200は、Clean/Dirty用領域2022に空きがない場合には(ステップS317否定)、Clean/Dirty用領域2021の一番使用されていないエントリのデータがCleanなデータであるか判定する(ステップS318)。
この結果、キャッシュ制御装置200は、Clean/Dirty用領域2021の一番使用されていないエントリのデータがCleanなデータである場合には(ステップS318肯定)、リプレイス対象をClean/Dirty用領域2021に決定する。そして、キャッシュ制御装置200は、Clean/Dirty用領域2021のCleanなデータのエントリを削除して空きを作って(ステップS319)、上記したステップS310に進む。
また、キャッシュ制御装置200は、Clean/Dirty用領域2021の一番使用されていないエントリのデータがCleanなデータでない場合には(ステップS318否定)、リプレイス対象をClean/Dirty用領域2021に決定する。そして、キャッシュ制御装置200は、反転情報とともにDirtynaデータをデータ復元部へ103転送し、CPU100が反転情報に従って復元したデータを主記憶装置300へ書き出して空きを作って(ステップS320)、上記したステップS310に進む。
[実施例1の効果]
上述してきたように、キャッシュ制御装置200は、主記憶装置300上に格納されている情報と同一の情報のみを記憶するClean用領域2022を二次キャッシュデータ部202上に有する。そして、キャッシュ制御装置200は、自装置の消費電力に関する情報を監視し、消費電力に関する情報が所定の閾値以上であるかを判定し、二次キャッシュメモリの動作率を監視し、動作率が所定の閾値以下であるかを判定する。続いて、キャッシュ制御装置200は、消費電力に関する情報が所定の閾値以上であると判定された場合、または、二次キャッシュメモリの動作率が所定の閾値以下であると判定された場合には、二次キャッシュデータ部202上のClean用領域2022を縮退するように制御する。このため、キャッシュ制御装置200は、Clean用領域2022の縮退制御において、Dirtyなデータを主記憶装置300へ書き出す処理が不要となるため、縮退制御処理を即時に実行することができる。この結果、キャッシュ制御装置200は、回路規模を大きくすることなく、消費電力の即時削減を行うことができるという効果を奏する。
上述してきたように、キャッシュ制御装置200は、主記憶装置300上に格納されている情報と同一の情報のみを記憶するClean用領域2022を二次キャッシュデータ部202上に有する。そして、キャッシュ制御装置200は、自装置の消費電力に関する情報を監視し、消費電力に関する情報が所定の閾値以上であるかを判定し、二次キャッシュメモリの動作率を監視し、動作率が所定の閾値以下であるかを判定する。続いて、キャッシュ制御装置200は、消費電力に関する情報が所定の閾値以上であると判定された場合、または、二次キャッシュメモリの動作率が所定の閾値以下であると判定された場合には、二次キャッシュデータ部202上のClean用領域2022を縮退するように制御する。このため、キャッシュ制御装置200は、Clean用領域2022の縮退制御において、Dirtyなデータを主記憶装置300へ書き出す処理が不要となるため、縮退制御処理を即時に実行することができる。この結果、キャッシュ制御装置200は、回路規模を大きくすることなく、消費電力の即時削減を行うことができるという効果を奏する。
また、実施例1によれば、キャッシュ制御装置200は、二次キャッシュメモリの動作率が所定の閾値以下であると判定された場合には、Clean用領域2022に記憶されたデータの状態を示すキャッシュディレクトリの初期化を行なって、Clean用領域2022を縮退するように制御する。このため、キャッシュ制御装置200は、キャッシュの使用頻度が高くなった場合には、二次キャッシュデータ部202のClean用領域2022の再接続を速やかに行うことが可能である。
また、実施例1によれば、キャッシュ制御装置200は、Clean用領域2022が縮退するように制御された後においては、消費電力に関する情報を監視し、消費電力に関する情報が所定の閾値以下であるかを判定する。また、キャッシュ制御装置200は、Clean用領域2022が縮退するように制御された後においては、二次キャッシュメモリの動作率を監視し、動作率が所定の閾値以上であるかを判定する。そして、キャッシュ制御装置200は、消費電力に関する情報が所定の閾値以下であると判定された場合、または、二次キャッシュメモリの動作率が所定の閾値以上であると判定された場合には、Clean用領域2022が復帰するように制御する。このため、キャッシュ制御装置200は、消費電力オーバーが解消された場合やキャッシュの使用頻度が高くなった場合には、Clean用領域2022の復帰処理を即時に実行することが可能である。
また、実施例1によれば、キャッシュ制御装置200は、消費電力に関する情報が所定の閾値以下であると判定された場合には、Clean用領域2012に記憶されたキャッシュディレクトリの初期化を行なって、二次キャッシュデータ部202のClean用領域2022が復帰するように制御する。このため、キャッシュ制御装置200は、Clean用領域2022の再接続を行う直前に二次キャッシュディレクトリ部201のClean用領域2012の初期化を行って、縮退制御を行う際には、二次キャッシュディレクトリ部201のClean用領域2012の初期化を行わないので、速やかにClean用領域2022の切り離しを行うことが可能である。
また、実施例1によれば、キャッシュ制御装置200は、自装置の消費電力に関する情報として、自装置の温度を監視し、温度が所定の閾値以上であるかを判定するので、自装置の温度を用いて、自装置の消費電力が高いか否かを判定することが可能である。
また、実施例1によれば、キャッシュ制御装置200は、キャッシュメモリの動作率として、所定時間における二次キャッシュデータ部202へのリクエスト数を監視し、所定時間内のリクエスト数が所定の閾値以下であるかを判定するので、所定時間内のリクエスト数を用いて、キャッシュメモリの動作率が高いか否かを判定することが可能である。
さて、これまで本実施例について説明したが、上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例2として本発明に含まれる他の実施例を説明する。
(1)システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、縮退制御部205cと復帰制御部205dを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、縮退制御部205cと復帰制御部205dを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
(2)プログラム
なお、本実施例で説明したキャッシュ制御方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
なお、本実施例で説明したキャッシュ制御方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
100 CPU
101 命令実行制御部
102 一次キャッシュ部
103 データ復元部
110 温度センサ
200 キャッシュ制御装置
201 二次キャッシュディレクトリ部
2011 Clean/Dirty用領域
2012 Clean用領域
202 二次キャッシュデータ部
2021 Clean/Dirty用領域
2022 Clean用領域
203 データ検査復元部
204 リクエストカウンタ
205 制御部
205a 消費電力監視部
205b 動作率監視部
205c 縮退制御部
205d 復帰制御部
300 主記憶装置
101 命令実行制御部
102 一次キャッシュ部
103 データ復元部
110 温度センサ
200 キャッシュ制御装置
201 二次キャッシュディレクトリ部
2011 Clean/Dirty用領域
2012 Clean用領域
202 二次キャッシュデータ部
2021 Clean/Dirty用領域
2022 Clean用領域
203 データ検査復元部
204 リクエストカウンタ
205 制御部
205a 消費電力監視部
205b 動作率監視部
205c 縮退制御部
205d 復帰制御部
300 主記憶装置
Claims (7)
- 主記憶装置上に格納されている情報と同一の情報のみを記憶する同一情報記憶領域を有するキャッシュメモリと、
自装置の消費電力に関する情報を監視し、当該消費電力に関する情報が所定の閾値以上であるかを判定する消費電力監視部と、
前記キャッシュメモリの動作率を監視し、当該動作率が所定の閾値以下であるかを判定する動作率監視部と、
前記消費電力監視部によって前記消費電力に関する情報が所定の閾値以上であると判定された場合、または、前記動作率監視部によって前記動作率が所定の閾値以下であると判定された場合には、前記キャッシュメモリの同一情報記憶領域を縮退するように制御する縮退制御部と、
を備えることを特徴とするキャッシュ制御装置。 - 前記縮退制御部は、前記動作率監視部によって前記動作率が所定の閾値以下であると判定された場合には、前記同一情報記憶領域に記憶された情報の状態を示すキャッシュディレクトリの初期化を行なって、前記キャッシュメモリの同一情報記憶領域を縮退するように制御することを特徴とする請求項1に記載のキャッシュ制御装置。
- 前記消費電力監視部は、前記縮退制御部によって前記同一情報記憶領域が縮退するように制御された後においては、前記消費電力に関する情報を監視し、当該消費電力に関する情報が所定の閾値以下であるかを判定し、
前記動作率監視部は、前記縮退制御部によって前記同一情報記憶領域が縮退するように制御された後においては、前記動作率を監視し、当該動作率が所定の閾値以上であるかを判定し、
前記消費電力監視部によって前記消費電力に関する情報が所定の閾値以下であると判定された場合、または、前記動作率監視部によって前記動作率が所定の閾値以上であると判定された場合には、前記キャッシュメモリの同一情報記憶領域が復帰するように制御する復帰制御部をさらに備えることを特徴とする請求項1または2に記載のキャッシュ制御装置。 - 前記復帰制御部は、前記消費電力監視部によって前記消費電力に関する情報が所定の閾値以下であると判定された場合には、前記キャッシュディレクトリの初期化を行なって、前記キャッシュメモリの同一情報記憶領域が復帰するように制御することを特徴とする請求項3に記載のキャッシュ制御装置。
- 前記消費電力監視部は、前記自装置の消費電力に関する情報として、自装置の温度を監視し、当該温度が所定の閾値以上であるかを判定することを特徴とする請求項1に記載のキャッシュ制御装置。
- 前記動作率監視部は、前記キャッシュメモリの動作率として、所定時間における前記キャッシュメモリへのリクエスト数を監視し、当該リクエスト数が所定の閾値以下であるかを判定することを特徴とする請求項1に記載のキャッシュ制御装置。
- 自装置の消費電力に関する情報を監視し、当該消費電力に関する情報が所定の閾値以上であるかを判定する消費電力監視ステップと、
主記憶装置上に格納されている情報と同一の情報のみを記憶する同一情報記憶領域を有するキャッシュメモリの動作率を監視し、当該動作率が所定の閾値以下であるかを判定する動作率監視ステップと、
前記消費電力監視ステップによって前記消費電力に関する情報が所定の閾値以上であると判定された場合、または、前記動作率監視ステップによって前記動作率が所定の閾値以下であると判定された場合には、前記キャッシュメモリにおける主記憶装置上に格納されている情報と同一の情報のみを記憶する同一情報記憶領域を縮退するように制御する縮退制御ステップと、
を含んだことを特徴とするキャッシュ制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/059871 WO2010137164A1 (ja) | 2009-05-29 | 2009-05-29 | キャッシュ制御装置およびキャッシュ制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2010137164A1 JPWO2010137164A1 (ja) | 2012-11-12 |
JP5338905B2 true JP5338905B2 (ja) | 2013-11-13 |
Family
ID=43222305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011515819A Expired - Fee Related JP5338905B2 (ja) | 2009-05-29 | 2009-05-29 | キャッシュ制御装置およびキャッシュ制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20120047387A1 (ja) |
JP (1) | JP5338905B2 (ja) |
WO (1) | WO2010137164A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10528264B2 (en) | 2016-11-04 | 2020-01-07 | Samsung Electronics Co., Ltd. | Storage device and data processing system including the same |
US10649896B2 (en) | 2016-11-04 | 2020-05-12 | Samsung Electronics Co., Ltd. | Storage device and data processing system including the same |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6074463B2 (ja) * | 2015-07-01 | 2017-02-01 | 株式会社東芝 | プロセッサシステム、メモリ制御回路およびメモリシステム |
US10115444B1 (en) * | 2017-08-09 | 2018-10-30 | Qualcomm Incorporated | Data bit inversion tracking in cache memory to reduce data bits written for write operations |
CN107678698B (zh) * | 2017-10-31 | 2020-11-17 | 太仓市昊博技术服务有限公司 | 缓存数据清理方法、服务器、终端及计算机可读存储介质 |
CN108647156A (zh) * | 2018-04-10 | 2018-10-12 | 平安科技(深圳)有限公司 | 缓存清理方法、装置、计算机装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0950401A (ja) * | 1995-08-09 | 1997-02-18 | Toshiba Corp | キャッシュメモリ及びそれを備えた情報処理装置 |
JPH10124202A (ja) * | 1996-10-04 | 1998-05-15 | Internatl Business Mach Corp <Ibm> | 電子回路内の電力消費を減少させる方法及びシステム |
JP2005316842A (ja) * | 2004-04-30 | 2005-11-10 | Nec Corp | キャッシュメモリおよびキャッシュ制御方法 |
JP2006309734A (ja) * | 2005-03-31 | 2006-11-09 | Semiconductor Energy Lab Co Ltd | 演算処理装置および演算処理装置を用いた電子機器 |
JP2009505306A (ja) * | 2005-08-22 | 2009-02-05 | インテル・コーポレーション | 電力削減のための動的メモリサイジング |
JP2009514114A (ja) * | 2005-12-30 | 2009-04-02 | インテル・コーポレーション | ダイナミックメモリサイジングのレイテンシを最適化する方法およびシステム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5745737A (en) * | 1996-03-28 | 1998-04-28 | Sun Microsystems, Inc. | System and method for visually indicating cache activity in a computer system |
US7290093B2 (en) * | 2003-01-07 | 2007-10-30 | Intel Corporation | Cache memory to support a processor's power mode of operation |
JP4634268B2 (ja) * | 2005-10-03 | 2011-02-16 | 株式会社日立製作所 | ストレージシステムの省電力化方法及びストレージシステム |
US7467280B2 (en) * | 2006-07-05 | 2008-12-16 | International Business Machines Corporation | Method for reconfiguring cache memory based on at least analysis of heat generated during runtime, at least by associating an access bit with a cache line and associating a granularity bit with a cache line in level-2 cache |
-
2009
- 2009-05-29 JP JP2011515819A patent/JP5338905B2/ja not_active Expired - Fee Related
- 2009-05-29 WO PCT/JP2009/059871 patent/WO2010137164A1/ja active Application Filing
-
2011
- 2011-11-03 US US13/373,048 patent/US20120047387A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0950401A (ja) * | 1995-08-09 | 1997-02-18 | Toshiba Corp | キャッシュメモリ及びそれを備えた情報処理装置 |
JPH10124202A (ja) * | 1996-10-04 | 1998-05-15 | Internatl Business Mach Corp <Ibm> | 電子回路内の電力消費を減少させる方法及びシステム |
JP2005316842A (ja) * | 2004-04-30 | 2005-11-10 | Nec Corp | キャッシュメモリおよびキャッシュ制御方法 |
JP2006309734A (ja) * | 2005-03-31 | 2006-11-09 | Semiconductor Energy Lab Co Ltd | 演算処理装置および演算処理装置を用いた電子機器 |
JP2009505306A (ja) * | 2005-08-22 | 2009-02-05 | インテル・コーポレーション | 電力削減のための動的メモリサイジング |
JP2009514114A (ja) * | 2005-12-30 | 2009-04-02 | インテル・コーポレーション | ダイナミックメモリサイジングのレイテンシを最適化する方法およびシステム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10528264B2 (en) | 2016-11-04 | 2020-01-07 | Samsung Electronics Co., Ltd. | Storage device and data processing system including the same |
US10649896B2 (en) | 2016-11-04 | 2020-05-12 | Samsung Electronics Co., Ltd. | Storage device and data processing system including the same |
Also Published As
Publication number | Publication date |
---|---|
WO2010137164A1 (ja) | 2010-12-02 |
US20120047387A1 (en) | 2012-02-23 |
JPWO2010137164A1 (ja) | 2012-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5338905B2 (ja) | キャッシュ制御装置およびキャッシュ制御方法 | |
JP5387776B2 (ja) | 割込制御方法、マルチコアプロセッサシステム、および割込制御プログラム | |
JP4837456B2 (ja) | 情報処理装置 | |
US7085945B2 (en) | Using multiple thermal points to enable component level power and thermal management | |
US10635337B2 (en) | Dynamic configuration of compressed virtual memory | |
US20120226832A1 (en) | Data transfer device, ft server and data transfer method | |
JP4434534B2 (ja) | プロセッサ・システム | |
JP2007272885A (ja) | 代替ページのプールを使用してdma書込みページ障害をコンピュータにより管理するための方法、装置、及びコンピュータ・プログラム | |
JP6092019B2 (ja) | プロセッサ | |
CN112654965A (zh) | 动态模块的外部分页和交换 | |
JP4533713B2 (ja) | 情報処理装置およびデータ転送制御方法 | |
JP2009020555A (ja) | スワップ処理装置 | |
JP2008521114A (ja) | ローカルメモリデータのコヒーレントなキャッシュ処理 | |
JP4576453B2 (ja) | キャッシュ制御回路、情報処理装置および切り離し方法 | |
JP5527477B2 (ja) | 演算処理装置、情報処理装置および演算処理装置の制御方法 | |
JP5783348B2 (ja) | 制御装置、制御プログラム、画像形成装置 | |
JP5254710B2 (ja) | データ転送装置、データ転送方法およびプロセッサ | |
US8522060B2 (en) | Computer system, method for controlling the same, and program | |
JP5557612B2 (ja) | 計算機及び転送プログラム | |
JP2010146145A (ja) | キャッシュメモリ及びプリフェッチ方法 | |
US12086447B2 (en) | Systems and methods for reducing instruction code memory footprint for multiple processes executed at a coprocessor | |
WO2016130436A1 (en) | Dynamic memory utilization in a system on a chip | |
JP2009020776A (ja) | スワップアウト制御装置 | |
JP2017201481A (ja) | 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム | |
JP5961642B2 (ja) | 情報処理装置および情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130416 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130610 |
|
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: 20130709 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130722 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |