为什么需要CPU cache:
CPU的频率太快,快到内存跟不上,这样在处理器时钟周期内,CPU常常需要等待内存,浪费资源。所以cache的出现,为乐缓解CPU和内存之间的速度不匹配问题(结构:CPU—cache—memory)
CPU cache有什么意义:
1.时间局限性:如果某个数据被访问,那么在不久的将来它很可能再次被访问
2.空间局限性:如果某个数据被访问,那么与它相邻的数据很快也可能被访问
CPU多级缓存—缓存一致性(MESI)
MESI协议为了保证CPU cache之间缓存共享数据的一致性
M(modified)该行数据被修改,以和该数据在内存中的映像所不同。最新的数据只存在于Cache中
E(Exclusive)该行数据有效,且数据与内存中的数据一致,但数据值只存在于本Cache中。通俗来说,该数据只在Cache中独一份
S(Share)该行数据有效,且该数据与内存中的数据一致。同时,该数据存在与其它多个Cache中
I(Invalid)该行数据无效
CPU多级缓存—乱序执行优化
可能一个乘法a*b=c,但是处理器为了提高速度会违背代码原有的执行顺序进行优化可能运行的会是b*a=c