1. 引言
最近看完了深入理解计算机系统,准备写一些学习的总结,先从存储器中的高速缓存写起,因为博主在工作中总是碰到cache相关的问题,因此总结了一下深入理解计算机系统中关于cache原理这一部分。
2. 存储器层次结构
介绍高速缓存(cache)的工作原理之前,我们需要先了解一下计算机的存储器层次结构,其层次结构如下图(摘自深入理解计算机系统存储器层次结构)所示:

存储器层次结构的中心思想:对于每个k,第k层的更快更小的存储设备是作为第k+1层更大更慢的存储设备的缓存(cache)。
操作系统将存储器中存储的连续数据抽象成连续的数据块,每个数据块具有唯一性。数据在第k层和k+1层存储设备之间以数据快为传送单元进行数据的来回拷贝。第k层存储的数据块是第k+1层存储的数据块的一个子集。如下图所示:

缓存命中:
当程序需要第k+1层的数据对象d时, cpu会首先访问第k层存储设备,查找其中是否有某个数据块包含该对象d, 如果包含则 缓存命中。否则便叫做缓存不命中。
缓存不命中的种类:
缓存不命中包括冷不命中和冲突不命中。
冷不命中:一个空的缓存叫做冷缓存,此类不命中叫做冷不命中。
冲突不命中:硬件缓存通常会采取某种放置策略(映射规则)将第k+1层中数据块映射到第k层某个数据块,这种放置策略会导致冲突不命中。
对于冲突不命中用下面个例子解释:

本文深入探讨了计算机存储器层次结构中缓存(cache)的工作原理,解析了缓存命中与不命中的概念,以及冲突不命中的原因。介绍了高速缓存的历史背景,为何在CPU与主存间引入缓存,以及通用高速缓存存储器的结构。
最低0.47元/天 解锁文章
4070

被折叠的 条评论
为什么被折叠?



