CPU的三级缓存
- CPU的三级缓存
随着多核CPU的发展,CPU缓存通常分成了三个级别:L1,L2,L3。级别越小越接近CPU,所以速度也更快,同时也代表着容量越小。L1 是最接近CPU的, 它容量最小(例如:32K),速度最快,每个核上都有一个 L1 缓存,L1 缓存每个核上其实有两个 L1 缓存, 一个用于存数据的 L1d Cache(Data Cache),一个用于存指令的 L1i Cache(Instruction Cache)。L2 缓存 更大一些(例如:256K),速度要慢一些, 一般情况下每个核上都有一个独立的L2 缓存; L3 缓存是三级缓存中最大的一级(例如3MB),同时也是最慢的一级, 在同一个CPU插槽之间的核共享一个 L3 缓存。 下面是三级缓存的处理速度参考表:
下图是Intel Core i5-4285U的CPU三级缓存示意图:
就像数据库缓存一样,获取数据时首先会在最快的缓存中找数据,如果缓存没有命中(Cache miss) 则往下一级找, 直到三级缓存都找不到时,那只有向内存要数据了。一次次地未命中,代表取数据消耗的时间越长。
- 带有高速缓存CPU执行计算的流程
1、程序以及数据被加载到主内存
2、指令和数据被加载到CPU的高速缓存
3、CPU执行指令,把结果写到高速缓存
4、高速缓存中的数据写回主内存
目前流行的多级缓存结构如下图: