JP5298826B2 - キャッシュメモリ及びプリフェッチ方法 - Google Patents
キャッシュメモリ及びプリフェッチ方法 Download PDFInfo
- Publication number
- JP5298826B2 JP5298826B2 JP2008320615A JP2008320615A JP5298826B2 JP 5298826 B2 JP5298826 B2 JP 5298826B2 JP 2008320615 A JP2008320615 A JP 2008320615A JP 2008320615 A JP2008320615 A JP 2008320615A JP 5298826 B2 JP5298826 B2 JP 5298826B2
- Authority
- JP
- Japan
- Prior art keywords
- prefetch
- data
- line
- memory
- cache
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 142
- 238000000034 method Methods 0.000 title claims description 33
- 238000004364 calculation method Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 7
- 230000003247 decreasing effect Effects 0.000 claims 1
- 238000012544 monitoring process Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
しかし、これらの手法には次のような問題点があった。まず、非常に大きなループ検出装置が必要となり、性能の向上幅に見合わないハードウェア量を要求されていた。また、これらの手法は、応用範囲が限定されていた。例えば、これらの手法ではストライドアクセスしかサポートされないため、C言語で多用されるスタック型のメモリ構成などではその効果を十分に発揮できなかった。
図1は、本発明の実施形態1に係るキャッシュメモリの構成例を示すブロック図である。図1を参照すると、本発明のキャッシュメモリ1は、プロセッサ2、主記憶装置(メインメモリ)3に接続されている。キャッシュメモリ1の内部には、メモリコントローラ(メモリ制御手段)10、キャッシュコントローラ(キャッシュ制御手段)11、プリフェッチ制御部(プリフェッチ制御手段)12、制御情報メモリ13、及びデータアレイ14を含んで構成される。
メモリコントローラ10は、主記憶装置3へアクセスして読み出したデータをデータアレイ14に書き込む。データの書き込みが終了すると制御情報メモリ13に対して、アクセスした主記憶装置3の情報を書き込む。プリフェッチで読み出したデータに関しても制御情報メモリ13へ情報を書き込む。制御情報メモリ13へ書き込むデータについては、制御情報メモリ13の説明で詳述する。
有効ビット131は、対応するラインが有効であるか否かを示す。タグアドレス132は、対応するラインに格納されているデータのコピーの主記憶装置3上のアドレス(もしくはアドレスを導く情報)を保持する。有効ビット131、タグアドレス132に関しては通常のキャッシュメモリと同様であるため詳しい説明を省略する。
LRU情報は、キャッシュコントローラ11がデータアレイにアクセスしたときに、アクセスしたラインに対応するLRU情報が更新される。また、メモリコントローラ10がデータアレイを置き換えたときに、置き換えたラインに対応するLRU情報が更新される。
プリフェッチビット134は、プリフェッチ動作に応じて、設定される。ここでは、1(ON)に設定されることを前提とする。具体的には、メモリコントローラ10が、コピーデータを書き込んだラインに対応するプリフェッチビット134を1に設定する。
また、プリフェッチビット134は、対応するラインがアクセスされたときにクリア(ゼロクリア、OFF)される。具体的には、キャッシュコントローラ11が、メモリアクセス要求に応じて、アクセスしたラインに対応するプリフェッチビット134をクリアする。このとき、キャッシュコントローラ11は、アクセスされたラインに対応するLRU情報133をプリフェッチ制御部12に引き渡す。プリフェッチ制御部12ではこの情報を元にプリフェッチ幅の決定を行うためのプリフェッチ成功失敗カウンタ121を更新する。
1−1. プリフェッチ成功失敗カウンタ121は、プリフェッチしたラインがアクセスされた場合に更新される。具体的には、プリフェッチ成功失敗カウンタ121は、キャッシュメモリアクセスが発生した際に、制御情報メモリ13で読み出されたラインのプリフェッチビット134が1であった場合に更新される。あるいは、キャッシュメモリの置き換え対象となったラインのプリフェッチビット134が1であった場合に更新される。
(ア) キャッシュヒットした場合: N/2−(LRU情報133の値)
(イ) キャッシュミスした場合 : −N/2
2−1. カウンタ値が256未満の場合にはキャッシュライン1つ分のプリフェッチを要求する。
2−2. カウンタ値が256以上、512未満の場合にはキャッシュライン2つ分のプリフェッチを要求する。
2−3. カウンタ値が512以上、1024未満の場合にはキャッシュライン3つ分のプリフェッチを要求する。
2−4. カウンタ値が1024以上の場合にはキャッシュライン4つ分のプリフェッチを要求する。
ここで、「キャッシュライン1つ分のプリフェッチ」とは図2に示すように、本来メモリアクセス要求が要求したラインと、その後1つ分のラインを指し示すものとする。これが、2つ分なら2ライン分、3つ分なら3ラインとなる。図2では、左側にライン1つ分をプリフェッチする場合、右側にライン2つ分をプリフェッチする場合を示している。
プリフェッチ制御部12は、プリフェッチ成功失敗カウンタ121のカウンタ値に基づいてプリフェッチ幅を決定する。これにより、キャッシュメモリへ書き込んだコピーデータの再利用の度合いを推定する。言い換えれば、キャッシュメモリ登録後の空間的/時間的局所性を推定する。この推定結果(カウンタ値)に基づいてプリフェッチ幅を決定する。プリフェッチ幅で決定した複数のラインをあらかじめ取得することによりキャッシュヒット率を高めることができる。このようにして、プロセッサの実効性能を高めることが可能になる。
また、キャッシュコントローラ11は、LRU情報を更新する(S26)。具体的には、同一のセット中の他のラインでアクセスされたLRU情報133よりも小さいLRU情報133に対して+1を実施する。また、アクセスされたラインのLRU情報を0にセットする。この処理は通常のLRU制御であり、広く知られた手法である。
メモリコントローラ10は、リプライデータを制御情報メモリ13とデータアレイ14に対して書き戻す(S36:キャッシュの置き換え)。具体的には、メモリコントローラ10は、リプライデータに応じて制御情報メモリ13を更新し、リプライデータをデータアレイ14にコピーする。このときに、LRU情報133は0として書き戻す。また、制御情報メモリ13にはプリフェッチビット134を0として書き込む。キャッシュの置き換え後、ステップS39のプリフェッチ動作に取り掛かる。
実施形態1では、Nウェイのセットアソシアティブ方式のキャッシュメモリを一例として説明したが、他の方式のキャッシュメモリに本発明を適用することも可能である。実施形態1では、成功失敗度数を計算する場合に、数値Nを用いて算出したが、ダイレクトマップ方式では、N=1、フルアソシアティブ方式では、Nをエントリー数(総ライン数)として算出する。また、N=1のセットアソシアティブ方式では、N=1として算出する。
また、実施形態1で示した成功失敗度数の計算式は一例であり、この計算式に限られることはない、システムの動作状況等に基づいて、プリフェッチ成功失敗カウンタに適切な値が保持されることが好ましい。すなわち、最大値または最小値が継続して保持されることを避けるように計算式を決定することが好ましい。
本発明に係るキャッシュメモリ1を、1次キャッシュ、2次キャッシュという階層型のキャッシュメモリの構成をとるものに対しても構成することが可能である。この場合、各階層から見てプロセッサ側の階層を全てプロセッサ2として扱い、主記憶装置3を含む側の階層をすべて主記憶装置3として扱う。これにより、本発明を利用することができる。
2 プロセッサ
3 主記憶装置
10 メモリコントローラ
11 キャッシュコントローラ
12 プリフェッチ制御部
13 制御情報メモリ
14 データアレイ
121 プリフェッチ成功失敗カウンタ
131 有効ビット
132 タグアドレス
133 LRU情報
134 プリフェッチビット
Claims (8)
- プロセッサ及び主記憶装置に接続されるキャッシュメモリであって、
前記主記憶装置が保存するデータのコピーをライン単位に保持するデータアレイと、
前記主記憶装置からデータを読み出し、前記データのコピーを前記データアレイの各ラインに書き込むメモリ制御手段と、
各ラインに保持されるデータのコピーを管理する管理情報と、各ラインに保持されたデータのコピーの使用状況を示す使用情報とを保持する制御情報メモリと、
前記プロセッサからの要求に応じて、データのコピーが前記データアレイに保持されているかを前記管理情報に基づいて判断し、保持されている場合、前記データアレイからデータを読み出し、保持されていない場合、前記主記憶装置からデータを読み出すことを前記メモリ制御手段に指示するキャッシュ制御手段と、
前記使用情報に基づいて、前記メモリ制御手段がプリフェッチするプリフェッチライン数を決定するプリフェッチ制御手段と、を備え、
前記メモリ制御手段は、前記キャッシュ制御手段からの指示に応じて前記主記憶装置からデータを読み出すときに、前記プリフェッチライン数に従って、プリフェッチを行い、
前記制御情報メモリは、前記使用情報として、LRU(Least Recently Used)情報と、プリフェッチしたラインであることを示すプリフェッチ情報とを、各ラインに対応させて保持し、
前記プリフェッチ制御手段は、前記LRU情報を用いて、前記プリフェッチしたラインが利用される度合いを推定し、推定結果に基づいて前記プリフェッチライン数を決定する
キャッシュメモリ。 - 前記プリフェッチ制御手段は、前記度合いを推定し、数値化した推定結果を保持するカウンタを備え、前記プリフェッチしたラインが使用された場合、及び前記プリフェッチしたラインが使用されることなく置き換えられた場合に、前記推定結果を算出し、前記推定結果を前記カウンタが保持する値へ足すことを特徴とする請求項1記載のキャッシュメモリ。
- 前記プリフェッチ制御手段は、前記プリフェッチしたラインが使用された場合、前記LRU情報に基づいて、前記推定結果を増加させる値を算出し、前記プリフェッチしたラインが使用されることなく置き換えられた場合、前記推定結果を減少させる値を算出することを特徴とする請求項2記載のキャッシュメモリ。
- 前記プリフェッチ制御手段は、前記プリフェッチしたラインが使用された場合、前記LRU情報が最近アクセスしたことを示すほど、前記度合いを推定した算出結果を大きくすることを特徴とする請求項3記載のキャッシュメモリ。
- 前記メモリ制御手段は、前記プリフェッチしたラインに対応するプリフェッチ情報を、プリフェッチしたことを示すONに設定し、
前記キャッシュ制御手段は、前記プリフェッチしたラインへアクセスしたときに前記プリフェッチ情報をONからOFFに更新し、前記プリフェッチ制御手段へ、前記推定結果の更新を指示することを特徴とする請求項2乃至4のいずれか一項に記載のキャッシュメモリ。 - 前記メモリ制御手段は、前記プリフェッチしたラインに対応するプリフェッチ情報がONであり、かつ、前記プリフェッチしたラインを置き換える場合に、前記プリフェッチ制御手段へ、前記推定結果の更新を指示することを特徴とする請求項5記載のキャッシュメモリ。
- プロセッサ及び主記憶装置に接続されるキャッシュメモリのプリフェッチ方法であって、
前記プロセッサからの要求に応じて、前記主記憶装置からデータを読み出すとともにプリフェッチを行い、
読み出したデータのコピーとプリフェッチしたデータのコピーとデータアレイの各ラインに書き込み、
前記プリフェッチを用いて書き込まれたラインが保持するデータの使用状況を監視し、
前記使用状況として、前記プリフェッチを用いて書き込まれたラインであることを示すプリフェッチ情報と、ラインへのアクセス状況を示すLRU情報とを用いて、プリフェッチしたラインが利用される度合いを数値化してカウンタに保持し、
前記カウンタに保持した値に従って、プリフェッチするライン数を決定する
プリフェッチ方法。 - 前記カウンタの値を、前記プリフェッチしたラインにアクセスがあったとき、及び、前記プリフェッチしたラインが利用されることなく置き換えられたときに更新することを特徴とする請求項7記載のプリフェッチ方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008320615A JP5298826B2 (ja) | 2008-12-17 | 2008-12-17 | キャッシュメモリ及びプリフェッチ方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008320615A JP5298826B2 (ja) | 2008-12-17 | 2008-12-17 | キャッシュメモリ及びプリフェッチ方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010146145A JP2010146145A (ja) | 2010-07-01 |
JP5298826B2 true JP5298826B2 (ja) | 2013-09-25 |
Family
ID=42566552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008320615A Expired - Fee Related JP5298826B2 (ja) | 2008-12-17 | 2008-12-17 | キャッシュメモリ及びプリフェッチ方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5298826B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2529374A4 (en) | 2010-01-28 | 2014-04-02 | Hewlett Packard Development Co | STORAGE ACCESS AND METHOD |
US8938589B2 (en) | 2010-01-28 | 2015-01-20 | Hewlett-Packard Development Company, L. P. | Interface methods and apparatus for memory devices using arbitration |
US9146867B2 (en) | 2011-10-31 | 2015-09-29 | Hewlett-Packard Development Company, L.P. | Methods and apparatus to access memory using runtime characteristics |
JP6191240B2 (ja) * | 2013-05-28 | 2017-09-06 | 富士通株式会社 | 変数更新装置、変数更新システム、変数更新方法、変数更新プログラム、変換プログラム、及びプログラム変更検証システム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3407428B2 (ja) * | 1994-10-18 | 2003-05-19 | 富士ゼロックス株式会社 | ディスクキャッシュ装置 |
JPH08137754A (ja) * | 1994-11-10 | 1996-05-31 | Fuji Xerox Co Ltd | ディスクキャッシュ装置 |
JP4072665B2 (ja) * | 2000-05-22 | 2008-04-09 | 富士ゼロックス株式会社 | 画像処理装置及びキャッシュメモリ |
JP2008225915A (ja) * | 2007-03-13 | 2008-09-25 | Fujitsu Ltd | プリフェッチ制御装置、記憶装置システムおよびプリフェッチ制御方法 |
-
2008
- 2008-12-17 JP JP2008320615A patent/JP5298826B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010146145A (ja) | 2010-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6267314B2 (ja) | キャッシュメモリの利用トレンドに基づく複数セットグループ内のウェイごとの動的パワー供給 | |
US8041897B2 (en) | Cache management within a data processing apparatus | |
US9176878B2 (en) | Filtering pre-fetch requests to reduce pre-fetching overhead | |
KR102470184B1 (ko) | 캐시 테스트 영역을 기반으로 하는 프리페치를 위한 캐시 에이징 정책 선택 | |
JP5661932B2 (ja) | ファジー・ストライド・プリフェッチのための方法および装置 | |
US8140759B2 (en) | Specifying an access hint for prefetching partial cache block data in a cache hierarchy | |
US9619390B2 (en) | Proactive prefetch throttling | |
US20100095070A1 (en) | Information processing apparatus and cache memory control method | |
CN109478165B (zh) | 一种基于缓存测试区针对预取数据选择缓存转移策略的方法和一种处理器 | |
US20080133844A1 (en) | Method and apparatus for extending local caches in a multiprocessor system | |
US20100217937A1 (en) | Data processing apparatus and method | |
JP4045296B2 (ja) | キャッシュメモリ及びその制御方法 | |
US8595443B2 (en) | Varying a data prefetch size based upon data usage | |
US8856453B2 (en) | Persistent prefetch data stream settings | |
JP2023507078A (ja) | プリフェッチレベルの降格 | |
JP2009059077A (ja) | キャッシュシステム | |
KR102709340B1 (ko) | 캐시 액세스 측정 디스큐 | |
JP2006516168A (ja) | ストライド予測テーブルにアドレスするためにキャッシュミスパターンを使用する方法 | |
JP5298826B2 (ja) | キャッシュメモリ及びプリフェッチ方法 | |
JP2013542511A (ja) | 積極的プリフェッチングによるプロセッサキャッシュ汚染を低減するための方法及び装置 | |
CN104808967A (zh) | 一种处理器的动态数据预取系统 | |
CN117120989A (zh) | 用于dram高速缓存标签预取器的方法和装置 | |
US8856444B2 (en) | Data caching method | |
JP7311959B2 (ja) | 複数のデータ・タイプのためのデータ・ストレージ | |
KR20170054268A (ko) | 하위 레벨 캐시에서 캐시 라인들의 연수를 제어함으로써 메모리에 대한 라이트백을 감소시키는 것 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130327 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130402 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130426 |
|
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: 20130521 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130603 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5298826 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |