Cache一致性协议

在multi-core处理器中,一般情况下,数据可以被多core共享。如果多core访问了一个相同地址,为了保证访问数据的正确性,需要进行数据同步。
常用的最简单的一致性协议为MESI :
Modified: 数据只存在此cacheline中,cache和下级存储不一致,dirty (注意:Instruction cache没有M状态)
Exclusive:数据只存在此cacheline中,cache数据和下级存储一致,clean
Shared : 数据存在多个(或1个)cacheline中, cache数据和下级存储一致,clean
Invalid: 此cacheline数据无效

其他增强版:
Intel 采用MESIF,增加一个F状态( Forward )
AMD采用MOESI,增加一个O状态(Owned )
IBM 采用MERSI,增加一个R状态 (Recent)

以一个inclusive + write back + Write allocate 的cache为例, 且只考虑L1d cache 和L2,来看下cache的状态迁移。
在这里插入图片描述

也可参考《大话处理器》中的状态迁移图
在这里插入图片描述

参考 木兮清扬 《大话处理器》
https://blog.csdn.net/muxiqingyang/article/details/6615199
https://en.wikipedia.org/wiki/Cache_coherence

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

123axj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值