二、CPU和缓存一致性
2.1 为什么需要CPU cache
因为CPU的频率太快了,快到主存跟不上,这样在处理器时钟周期内,CPU常常需要等待主存,浪费资源。CPU往往需要重复处理相同的数据、重复执行相同的指令,如果这部分数据、指令CPU能在CPU缓存中找到,CPU就不需要从内存或硬盘中再读取数据、指令,从而减少了整机的响应时间,所以cache的出现,是为了缓解CPU和内存之间速度的不匹配问题(结构:cpu -> cache -> memory)
在程序执行的过程中就变成了:
当程序在运行过程中,会将运算需要的数据从主存复制一份到CPU的高速缓存当中,那么CPU
进行计算时就可以直接从它的高速缓存读取数据和向其中写入数据,当运算结束之后,再将高
速缓存中的数据刷新到主存当中。
在Intel官网上产品-处理器界面内对缓存的定义为:CPU高速缓存是处理器上的一个快速记忆区域。英特尔智能高速缓存(SmartCache)是指可让所有内核动态共享最后一级高速缓存的架构。
这里就提及到了最后一级高速缓存的概念,即为CPU缓存中的L3(三级缓存),那么我们继续来解释一下什么叫三级缓存,分别又是指哪三级缓存。
2.2 三级缓存(L1、L2、L3)
-
三级缓存(L1一级缓存、L2二级缓存、L3三级缓存)都是集成在CPU内的缓存
-
它们的作用都是作为CPU与主内存之间的高速数据缓冲区
-
L1最靠近CPU核心,L2其次,L3再次
运行速度方面:L1最快、L2次快、L3最慢
容量大小方面:L1最小、L2较大、L3最大