三级缓存架构
众所周知,为了缓解内存和 CPU 之间速度不匹配的矛盾,引入了高速缓存这个东西,它的容量比内存小很多,但是交换速度却比内存要快得多。
之前我们画过这样的分级存储体系结构:
https://gitee.com/veal98/images/raw/master/img/20210415105520.png
事实上,高速缓存仍然存在细分,也称为三级缓存结构:一级(L1)缓存、二级(L2)缓存、三级(L3)缓存
越靠近 CPU 的缓存,速度越快,容量也越小。所以 L1 缓存容量最小但是速度最快;L3 缓存容量最大同时速度也最慢
当 CPU 执行运算的时候,它会先去 L1 缓存查找所需的数据、如果没有找到的话就再去 L2 缓存、然后是 L3 缓存,如果最后这三级缓存中都没有命中,那么 CPU 就要去访问内存了。
显然,CPU 走得越远,运算耗费的时间就越长。所以尽量确保数据存在 L1 缓存中能够提升大计算量情况下的运行速度。
需要注意的是,CPU 和三级缓存以及内存的对应使用关系:
-
L1 和 L2 都是只能被一个单独的 CPU 核心使用
-
L3 可以被单个插槽上的所有 CPU 核心共享
-
内存由全部插槽上的所有 CPU 核心共享
如下图所示: