缓存一致性协议

一个cpu运行计算的步骤例如以下:

1.程序以及数据被载入到主内存

2.指令和数据被载入到cpu的快速存储

3.cpu运行指令,把结果写到高速缓存

4.高速缓存中的数据回写到主内存

 

MESI是一种主流的缓存一致性协议,已经用在Pentium和PowerPC处理器中。

modified(改动):缓存块已经改动,必须被写回主存。其它处理器不能再缓存这个块

exclusive(相互排斥):缓存块还没有被改动,且其它处理器不能装入这个缓存块

share(共享):缓存块未被改动,且其它处理器能够装入这个缓存块

invalid(无效):缓存块中的数据无效

 

上图展示了MESI高速缓存一致性协议的状态转换实例。

1.在a中,处理器A从地址a读取数据,将数据存入它的缓存并置为exclusive

2.在b中,当处理器B试图从同样地址a读取数据时。A检测到地址冲突,以相关数据做出响应。此时a同一时候被A和B以share状态装入缓存

3.在c中,当B要对共享地址a进行写操作。则将状态改为modified,并广播提醒A,让它将它的缓存状态设置为invalid

4.在d中,当A试图从a读取数据时,会广播它的请求。B则把它改动的数据发送到A和主存,并设置两个副本的状态为share来做出相应

 

缓存一致性协议存在一个最大的问题是可能引起缓存一致性流量风暴。之前我们看到总线在同一时刻仅仅能被一个处理器是使用。当有大量缓存被改动,或者同一个缓存块一直被改动时,会产生 大量的缓存一致性流量。从而占用总线,影响了其它正常的读写请求

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值