iT邦幫忙

2021 iThome 鐵人賽

DAY 12
0
自我挑戰組

杰哥的考研紀錄系列 第 12

Day-12 Multilevel Cache

Multilevel Cache

tags: IT鐵人

兩層以上的城牆

上一次我們提到了Set Associate Cache,意思是在entry中加入多個Block,以避免常常存取的Block要求進入同一個entry導致miss rate居高不下。

所以我們可以在外面加上第二層Cache,不論是晶片內外都可以,實作的方式也很多,就不特別說明了。

因為多了第二層,hit time不可能比第一層高,所以第二層以後注重的是減少miss rate,降低hit time就留給第一層注重。

Total Miss Rate

在計算Miss Rate之前,需要先介紹兩個詞:

  • GMR(Global Miss Rate):對於所有access的miss rate。
  • LMR(Local Miss Rate):只看自己經歷access的miss rate。

底下提供了一個例子,假設發生了1000次的access,其中L1發生了50次miss,而這50次又在L2發生了20次miss,後面又在L3發生了5次miss,所以總的來說,這樣子的三層Cache miss rate為0.5%。

CPU L1 Cache L2 Cache L3 Cache
1000 access 50 miss 20 miss 5 miss
GMR 50/1000 20/1000 5/1000
LMR 50/1000 20/50 5/20

L1 GMR = L1 LMR
L2 GMR = L1 LMR x L2 LMR
L3 GMR = L1 LMR x L2 LMR x L3 LMR

計算Multilevel Cache效能

剛剛都是用miss rate說明,這次用實際一點的時間計算來示範:

假設處理器CPI=1.0,clock rate=4GHz,Memory access time=100ns,並且保證所有access都能在Memory hit。第一層Cache miss rate=2%。
如果加上了第二層Cache,其access time=5ns,GMR=0.5%,那麼整個處理器速度會提昇多少?

在這類型的題目要把單位都換成一樣的,換成時間會是cycle數量,以下用cycle換算:
clock rate:4GHz -> clock time:0.25ns
Memory access time=400 cycles
secondary cache access time=20 cycles
因為最快速的第一層access時間很短,可以直接省略。

未加上第二層時,Cycle數 = 1(CPI) + 2% x 400(Memory stall) = 9
加上第二層後,Cycle數 = 1(CPI) + (2%-0.5%) x 20(L2 Cache stall) + 0.5% x (20+400)(Memory stall) = 3.4

所以performance提昇 9/3.4 = 2.6左右

要特別注意的是L2miss後進入Memory,不能只有考慮Memory stall,還要考慮剛剛L2miss的時間,所以才有20+400的數字。

小結

這三回講的是Cache System,分成了Direct Mapped, Set Associate還有Multilevel三種,下一回開始會講Virtual Memory,會比Cache System複雜一些些。

上一篇 下一篇
Set Associative Cache Miku Memory


上一篇
Day-11 Set Associative Cache
下一篇
Day-13 Miku Memory
系列文
杰哥的考研紀錄30

尚未有邦友留言

立即登入留言