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


<<:  Day9 自订开机执行的程序码 - 函数宣告与语法糖

>>:  【Day 09】Text Message 应用

Day25 - 加上 jQuery UI Selectmenu

这一篇来把上一篇范例订单项目的名称改为下拉选单的项目 下拉选单要使用套件 jQuery UI Sel...

[Day16] Flutter - Firebase Authentication & Google Sign-In ( IOS & Android )

前言 Hi, 我是鱼板伯爵今天要教大家 Firebase Authentication 和开通 Go...

后续说明

很遗憾,由于假期原因,没能够及时更新,中断了更新。 不过这个系列还是会继续更新下去的,直到结束。 未...

[想试试看JavaScript ] 为什麽需要这麽多种注册事件处理的方式

为什麽需要这麽多种注册事件处理的方式? 上一篇提到注册事件的方式有三种 1.HTML 属性 2.DO...

Day08 - 试用 material color tool 哦

之前就一直觉得网页配色好难,今天试用了 material color tool,觉得之後设计网页可以...