CPU多级缓存 MESI-CPU缓存一致性协议 以及 乱序执行优化

本文介绍了CPU多级缓存的需求和意义,详细讲解了MESI协议的四种状态及其转换,并分析了MESI协议的缺点,包括数据缓存区和无效队列带来的内存重排与不可见性问题。最后讨论了CPU为解决乱序执行所做的优化。
摘要由CSDN通过智能技术生成

一、CPU的多级缓存

1.为什么需要CPU缓存

在一个典型的系统中,可能会有几个缓存共享主存,每个相应的CPU会发出读写请求,CPU的频率太快了,快的主存跟不上,这样主存常常需要等待主存,而缓存的目的是为了减少CPU读写共享主存的次数,解决CPU和主存速度不匹配的问题。

2.CPU缓存有什么意义

时间局部性:如果某个数据被访问,那么不久的将来它有可能会再次被访问。
空间局部性:如果某个数据被访问,那么与它相邻的数据有可能很快也会被访问。

二、MESI CPU缓存行的四种状态

1.M:被修改(Modified)

该缓存行只被缓存在该CPU的缓存中,并且是被修改过的,即与主存中的数据不一致,该缓存行中的内存需要在未来的某个时间点(允许其他CPU读取主存中相应内存之前)写回主存中。当被写回到主存中之后,该缓存行会变成E(独享)状态。

2.E:独享的(Exclusive)

该缓存行只被缓存在该CPU的缓存中,他是未被修改过的,与主存中的数据一致。该状态可以在任何时刻当有其它CPU读取该内存时变成S(共享)状态。同样的当有CPU修改该缓存行的内容时,该状态可以变成M(修改)状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值