Download presentation
Presentation is loading. Please wait.
Published byTabitha Curtis Modified 約 5 年前
1
Achieving Non-Inclusive Cache Performance with Inclusive Caches
本多・近藤研究室 金東賢 2013年5月27日
2
Achieving Non-Inclusive Cache Performance with Inclusive Cache
論文について タイトル Achieving Non-Inclusive Cache Performance with Inclusive Cache 著者 Aamer Jaleel, Eric Borch, Malini Bhandaru, Simon C. Steely Jr., and Joel Emer 出典 MICRO '43: Proceedings of the rd Annual IEEE/ACM International Symposium on Microarchitecture,pp , 2010.
3
キャッシュ階層構造の種類 CPU CPU CPU L1 a b a b a b LLC a e b o b m e g r m j k
(a)Inclusive Hierarchy LLCはL1のラインを 保持 (b)Non-Inclusive Hierarchy LLCはL1のラインを 一部保持 (c)Exclusive Hierarchy LLCはL1のラインを 保持しない インクルーシブキャッシュの利点 コヒーレンシ維持コストが低い
4
インクルーシブキャッシュの課題 CPU LLCが使える容量 a b L1 LLC t m k k a b bを追い出す 課題
5
3種類の階層構造の比較 目的 L1,LLCの容量比を1:2~1:16に変えて比較 他の階層構造に比べ、低い結果…
インクルーシブキャッシュを 1とする 他の階層構造に比べ、低い結果… 目的 インクルーシブキャッシュの長所を損なわず、L1から時間的局所性の高いラインの追い出しを防ぐ。
6
キャッシュマネジメントのモデル化 … a, d, a, e, a, f, a … L1 LLC MRU:最近使用したラインを格納
□:エントリ 左:MRU(Most Recently Used) →:追い出しの優先度 右:LRU(Least Recently Used) 次のアクセスパターンを用いて手法を考察 … a, d, a, e, a, f, a …
7
キャッシュマネジメントのモデル化 … a, d, a, e, a, f, a … L1 LLC LRU:次追い出されるラインを格納
□:エントリ 左:MRU(Most Recently Used) →:追い出しの優先度 右:LRU(Least Recently Used) 次のアクセスパターンを用いて手法を考察 … a, d, a, e, a, f, a …
8
Baseline Inclusive Cache
キャッシュミス時 L1,LLC共に ラインを記憶 LLCのラインが 取り除かれる場合、 L1からも取り除かれてしまう L1にラインを保持する際、LLCもライン保持を行う。 LLCからラインの追い出しがある場合L1からも追い出す
9
Baseline Inclusive Cache
アクセスパターン … a, d, a, e, a, f, a … aに アクセス CPU ヒット c a c b a 初期状態
10
Baseline Inclusive Cache
アクセスパターン … a, d, a, e, a, f, a … aに アクセス CPU aをMRUへ更新 LLCに反映されない ヒット c a c a c b a L1でヒット aをMRUへ書き換え
11
Baseline Inclusive Cache
アクセスパターン … a, d, a, e, a, f, a … dに アクセス CPU ミス a c ミス c b a L1,LLCでキャッシュミス L1,LLCでdをMRUへ書き換え
12
Baseline Inclusive Cache
アクセスパターン … a, d, a, e, a, f, a … CPU cを追い出す dをMRUへ更新 d a c dをMRUへ更新 d c b a L1,LLCでキャッシュミス L1,LLCでdをMRUへ書き換え
13
Baseline Inclusive Cache
アクセスパターン … a, d, a, e, a, f, a … aに アクセス CPU ヒット d a d c b a L1でaがヒット L1でaをMRUへ置き換え
14
Baseline Inclusive Cache
アクセスパターン … a, d, a, e, a, f, a … CPU aをMRUへ更新 a d d a d c b a L1でaがヒット L1でaをMRUへ置き換え
15
Baseline Inclusive Cache
アクセスパターン … a, d, a, e, a, f, a … eに アクセス CPU ミス a d ミス d c b a L1,LLCでキャッシュミス L1,LLCでeをMRUへ書き換え
16
Baseline Inclusive Cache
アクセスパターン … a, d, a, e, a, f, a … CPU LLCに同期しaを追い出す eをMRUへ更新 aを追い出す e a d d eをMRUへ更新 e d c b a 問題点 L1,LLCでキャッシュミス L1,LLCでeをMRUへ書き換え 時間的局所性の高いラインの追い出し
17
1.Temporal Locality Hints (TLH)
L1とLLCを同期 L1でヒットした場合に動作 L1のアクセス情報をLLCへ伝える ヒット毎に同期し、時間的局所性の高いラインを保護
18
1.Temporal Locality Hints (TLH)
アクセスパターン … a, d, a, e, a, f, a … aに アクセス CPU ヒット c a c a b 初期状態 L1でヒット aをMRUへ書き換え
19
1.Temporal Locality Hints (TLH)
アクセスパターン … a, d, a, e, a, f, a … CPU aをMRUへ更新 LLCに反映される a c a c 優先度をL1と同期 c a a c b L1でヒット aをMRUへ書き換え
20
1.Temporal Locality Hints (TLH)
アクセスパターン … a, d, a, e, a, f, a … dに アクセス CPU ミス a c ミス a c b L1,LLCでキャッシュミス L1,LLCでdをMRUへ書き換え
21
1.Temporal Locality Hints (TLH)
アクセスパターン … a, d, a, e, a, f, a … CPU cを追い出す dをMRUへ更新 d a c 優先度をL1と同期 d a c b 時間的局所性のあることがLLCに伝わる。 ヒット毎に同期を行うため、プロセッサ間通信が増える。 L1,LLCでキャッシュミス L1,LLCでdをMRUへ書き換え
22
2.Early Core Invalidation (ECI)
LLC:ラインの追い出し Next VictimをL1で無効化 LLCでキャッシュ追い出し時に動作。 ライン追い出し時にNext VictimをL1で無効にする。 再度アクセスがあればLLCにアクセスされ、優先度が更新される。 L1ではキャッシュミスとなる。 LLCでヒットさせ、キャッシュ全体から 取り除かれないようにする次善策。
23
2.Early Core Invalidation (ECI)
アクセスパターン … a, d, a, e, a, f, a … aに アクセス CPU ヒット c a c b a L1でヒット aをMRUへ書き換え 初期状態
24
2.Early Core Invalidation (ECI)
アクセスパターン … a, d, a, e, a, f, a … CPU aをMRUへ更新 c a a c c b a L1でヒット aをMRUへ書き換え
25
2.Early Core Invalidation (ECI)
アクセスパターン … a, d, a, e, a, f, a … dに アクセス CPU ミス a c ミス c b a L1,LLCでキャッシュミス L1,LLCでdをMRUへ書き換え
26
2.Early Core Invalidation (ECI)
アクセスパターン … a, d, a, e, a, f, a … CPU cを追い出す dをMRUへ更新 L1に同じラインがあれば無効化 d a a c ※LLCには何もしない dをMRUへ更新 d c b a L1,LLCでキャッシュミス L1,LLCでdをMRUへ書き換え
27
2.Early Core Invalidation (ECI)
アクセスパターン … a, d, a, e, a, f, a … aに アクセス CPU ミス d ヒット d c b a LLCでaがヒット L1,LLCでaをMRUへ置き換え
28
2.Early Core Invalidation (ECI)
アクセスパターン … a, d, a, e, a, f, a … CPU aをMRUへ更新 a d LLCにアクセスさせ 追い出しを防ぐ aをMRUへ更新 a d c b a LLCでaがヒット L1,LLCでaをMRUへ置き換え
29
2.Early Core Invalidation (ECI)
アクセスパターン … a, d, a, e, a, f, a … eに アクセス CPU ミス a d ミス a d c b L1,LLCでキャッシュミス L1,LLCでeをMRUへ書き換え
30
2.Early Core Invalidation (ECI)
アクセスパターン … a, d, a, e, a, f, a … CPU dを追い出す eをMRUへ更新 e a d L1に無いのでそのまま bを追い出す eをMRUへ更新 e d d c b ラインの追い出し毎の動作のため、通信量が少ない。 短期間でにアクセスが無いと追い出されてしまう欠点がある。 L1,LLCでキャッシュミス L1,LLCでeをMRUへ書き換え
31
3.Query Based Selection (QBS)
L1に無いラインをLLCから追い出す LLCのキャッシュ追い出し時に動作 LRUのラインがL1に存在するか調べる。 存在する→LRUの次のラインを調べる 存在しない→LRUにあるラインを取り除く 質問を行い、L1にあるラインを 追い出させない
32
3.Query Based Selection (QBS)
アクセスパターン … a, d, a, e, a, f, a … aに アクセス CPU ヒット c a c b a L1でヒット aをMRUへ書き換え 初期状態
33
3.Query Based Selection (QBS)
アクセスパターン … a, d, a, e, a, f, a … CPU aをMRUへ更新 c a a c c b a L1でヒット aをMRUへ書き換え
34
3.Query Based Selection (QBS)
アクセスパターン … a, d, a, e, a, f, a … dに アクセス CPU ミス a c ミス c b a L1,LLCでキャッシュミス L1,LLCでdをMRUへ書き換え
35
3.Query Based Selection (QBS)
アクセスパターン … a, d, a, e, a, f, a … CPU Cを追い出す dをMRUへ更新 d a c dをMRUへ更新 d c b a L1,LLCでキャッシュミス L1,LLCでdをMRUへ書き換え
36
3.Query Based Selection (QBS)
アクセスパターン … a, d, a, e, a, f, a … aに アクセス CPU aをMRUへ更新 ヒット d a d a d c b a L1でヒット aをMRUへ置き換え
37
3.Query Based Selection (QBS)
アクセスパターン … a, d, a, e, a, f, a … eに アクセス CPU ミス a d ミス d c b a L1,LLCでキャッシュミス L1,LLCでeをMRUへ書き換え
38
3.Query Based Selection (QBS)
アクセスパターン … a, d, a, e, a, f, a … CPU No! 追い出すかどうか質問 a d d a c b a MRUへ L1,LLCでキャッシュミス L1,LLCでeをMRUへ書き換え
39
3.Query Based Selection (QBS)
アクセスパターン … a, d, a, e, a, f, a … CPU ok! 追い出すかどうか質問 a d a d c b 犠牲になる L1,LLCでキャッシュミス L1,LLCでeをMRUへ書き換え
40
3.Query Based Selection (QBS)
アクセスパターン … a, d, a, e, a, f, a … CPU dは追い出し eをMRUへ更新 e a d L1にあるラインは追い出さない eをMRUへ更新 e a d c 動作は複雑だがメモリストール中に行うためオーバーヘッドを小さく抑えられる L1,LLCでキャッシュミス L1,LLCでeをMRUへ書き換え
41
実験環境 X86シュミレータ(CMP$im)を使用 CPU0 CPU1 1 32kB 32kB L1 10 256kB 256kB L2
Core i7をモデルとしたキャッシュ階層構造・サイクル数 CPU0 CPU1 サイクル数 1 32kB 32kB L1 10 256kB 256kB L2 24 LLC 2MB 150 メインメモリ
42
実験環境 SPEC CPU2006 を使用 15種類から2つ組み合わせ全105パターンでベンチマーク。
各階層でのキャッシュミスから3種類に分類。 ※MPKI:命令1000回あたりのキャッシュミス回数 ワーキングセット ・L1に収まる:CCF(Core Cache Fitting), dea, h26, per, pov, sje ・LLCに収まる:LLCF(Last Level Cache Fittng), ast, bzi, cal, hmm, xal ・LLCより大きい:LLCT(Last Level Cache Thrashing), gob, lib, mcf, sph, wrf
43
実験結果 1 TLH-L1,L2,ECI,QBSは平均してそれぞれ 5,2%,2.7%,3.3%6.5%のパフォーマンス向上。
実験結果 1 TLH-L1 L1のヒットで動作 TLH-L2 L2のヒットで動作 インクルーシブキャッシュを1 TLH-L1,L2,ECI,QBSは平均してそれぞれ 5,2%,2.7%,3.3%6.5%のパフォーマンス向上。 通常の方式でL1から時間的局所性の高いラインの 追い出しがあったアプリケーションに有効
44
実験結果 2 L1とLLCの比を変えた場合の実験結果 QBSはノンインクルーシブキャッシュと同等の結果 インクルーシブキャッシュの欠点を改善
45
まとめ インクルーシブキャッシュの長所を損なわず、 L1から時間的局所性の高いラインの追い出しを防ぐ。 解決手法
まとめ インクルーシブキャッシュの長所を損なわず、 L1から時間的局所性の高いラインの追い出しを防ぐ。 解決手法 ・Temporal Locality Hints (TLH) プロセッサ間通信が多くなることが欠点 ・Early Core Invalidation (ECI) ある一定時間内にアクセスがない場合有効でない ・Query Based Selection (QBS) 25パターンのベンチマークで10~33%のパフォーマンス向上 ノンインクルーシブキャッシュと同様の結果 提案手法はハードウェアを追加すること無く実現可能 マルチコアに有用な手法を提案
Similar presentations
© 2025 slidesplayer.net Inc.
All rights reserved.