【存储技术】存储器层次结构(缓存、局部性)

《CSAPP》 6.3 存储器层次结构

1、存储器层次结构

1
右边的文字是表示不同层次之间缓存的是什么信息。

1)中心思想

  • 存储器层次结构的中心思想:用上层设备作为下层设备的缓存。(因为访问上层设备更快

2)缓存的原理

下图是缓存的原理:第k层(上层)作为第k+1层(下层)的缓存,保存着下层数据的子集,因为上层比下层
2

2、缓存命中和不命中

  • 缓存命中
    当程序需要第k+1层的数据时,第k层已经有了,即缓存中有要访问的数据,这就是命中。
  • 缓存不命中
    同理,第k层中没有程序想要的数据就是不命中。然后就会到第k+1层取这个数据到第k层,即缓存更新。缓存更新就面临着较大的开销,首先,若第k层了,需要使用页面置换算法(如LRU、FIFO等)腾出新的页面存放需要的数据,然后把第k+1层的数据读到第k层的页面。

解答:为什么有良好局部性的程序通常比局部性差的程序运行得更快?

  • 对于时间局部性。具有良好的时间局部性的程序,就经常缓存命中不用进行缓存的更新。如上图,第k层(缓存)数据中的数据多次频繁被引用。因为访问上层(缓存)效率是远大于访问下层,所以性能就很好。(具体的访问数据所需周期数见下面的图表)
  • 对于空间局部性。从第k+1层读的数据是按读的,就是除了需要的某个数据还有其他数据在块中,有良好的空间局部性的程序,使用一个数据之后可能访问其相邻的数据,从而就是缓存命中,效率就很高,避免了缓存的更新
    3

参考

《深入理解计算机系统》第6章.存储器层次结构

猜你喜欢

转载自blog.csdn.net/weixin_40910614/article/details/112439298
今日推荐