关于计算机:如何通俗地理解存储器层次结构

举个艰深的场景。

大学生(CPU)写毕业论文时候,通常会到图书馆(内存)查找相干材料(读取数据),然而没人会那么傻每次写论文都去图书馆吧,跑来跑去,多吃力,要想又快又不便地写论文,咱们能够到图书馆借几本相干书籍放到宿舍书架中(缓存),而后就能够难受地在宿舍写论文了。如果学校图书馆都没有想看的书籍,那只能到市图书馆(本地磁盘)找了。

为什么借了几本书之后就能够难受地在宿舍撸论文了?(缓存为何work?)

  • 写论文时候,短时间内会常常翻阅同一本书吧,这就是利用工夫局部性。
  • 写论文时候,借回来的几本书籍(左近的几本书籍)也是会常常翻阅,这就是利用空间局部性。

对于局部性,能够参考了解局部性原理

假如咱们从图书馆借来了9本书,想最不便最疾速地翻阅书籍,怎么办呢?咱们能够这样子治理书籍,把最常常用的2本书放在书桌上(寄存器,假如只能包容2本书籍),把次罕用的3本书籍放在最不便拿到的小书架上的第一层(L1高速缓存,假如只能包容3本),而后再把最不罕用的4本书籍放在第二层(L2高速缓存,假如只能包容4本)。

这样子搁置书籍后,撸论文就很不便啦。

回顾整个场景,其实跟计算机存储器层级构造(如图1)很相似。

​ 图1

从高层往低走,存储设备会变得更慢,更便宜更大,其中最高层L0是CPU寄存器,CPU能够在一个之间周期拜访寄存器,而SRAM和DRAM的CPU拜访周期别离是几个,几十到几百不等。在下面的例子中,桌子=寄存器,书架=L1、L2高速缓存,校图书馆=主存,市图书馆=本次磁盘。毫无疑问,从市图书馆查阅材料是最吃力了。

从图书馆查阅材料太奔走太麻烦了,所以就想找到一个缓存(宿舍书架),所以能够说存储器层次结构中心思想是,更快更小的存储设备(图1的第k层)作为的更大更慢存储设备(第k+1层)的缓存。

1.缓存命中:想查阅某本书籍,发现那本书就在桌子上,就不必到书架第一层拿了,这就是缓存命中。

2.缓存不命中:想查阅某本书籍,然而桌子上没有,只能到书架第一层拿了,这就是缓存不命中。此时从书架上拿到的书籍须要替换桌子上一本书(没方法,桌子只能包容2本书),那替换哪一本(块,存储器通常被被划分成间断的数据对象组块,能够书架中的书籍看成固定大小的)?这个过程由缓存的替换策略来管制。能够随机替换一本书又或者替换最近用得起码那本书。

3.缓存不命中的品种

  • 冷缓存:初始状态书架是空的,对任何书籍的查阅都是都不会命中,空的缓存成为冷缓存,这种状态很短暂,也不太重要。
  • 抵触不命中:由一种限制性的搁置策略援用的一种不命中。若缓存不命中,就必须执行搁置策略,决定来自第k+1层的取出的块放在第k层哪个地位。举个例子,如图2所示。例如取自书架第一层的3,4,5号书籍限制性地搁置在书桌中的1号书籍所在位置,取自书架第二层的6,7,8,9号书籍限制性地搁置在书桌中2号书籍所在位置,如果依照3,4,5的程序查阅书籍,那么就始终不能命中书桌这层缓存了。当然能够随机性地搁置块,然而定位代价很高。
  • 容量不命中:某个阶段计算机稳固地拜访缓存块中某个汇合(某些数据),这个汇合就是该阶段的工作集,如果缓存太小,容不下这个工作集,这就是容量不命中,例如,如果某阶段常常拜访3,4,6,7号图书,那么书桌这层缓存会导致容量不命中。

​ 图2.

参考:

如何艰深易通了解存储器构造

深刻了解存储器构造

《深刻了解计算机系统》

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理