缓存一致性

硬件

硬件之间的处理速度不相等,尤其是处理器和内存之间。一般都是内存跟不上处理器的处理速度。
所有在他们之间引入了缓存(cache)。
缓存有2大特点:
1.时间局部性(被使用过的内存地址很有可能被再次使用到)
2.空间局部性(被使用的地址周围部分也有可能被使用到,所以将内存中某块地址引入缓存里的时候通常会将周围的也引入缓存中)

单核

在这里插入图片描述
单核单缓存,这种就直来直往,从memory中取出数据通过bus(总线)放入cache,然后cpu访问cache。

多核

在这里插入图片描述
多核下,每个核拥有自己的一级缓存,可能每个一级缓存里面都有一部分的共享内存,即他们保存着memory中相同的一块。
如果没有约束,这可能会对memory中的数据造成破坏,如果多个一级缓存同时修改了共享区域,并保存至主存中。
所以引入了 缓存一致性协议(MESI)

缓存一致性协议(MESI)

M:被修改(Modified)处理器对缓存的值进行了修改,但是还么同步到主存上,或者发送给其他处理器。
E:独占(Exclusive)存在于某个缓存中,其他缓存中没有与他相同的地址,且还没有被修改过。
S:共享(Share)多于一个缓存拥有同一块地址。
I:无效(Invalid)缓存不在拥有这块地址。

MESI 状态转换

在这里插入图片描述
local 表示当前缓存,remote 表示其他缓存
例如:
E表示独享的,就是只有当前缓存存在这块地址,当他被修改了则会从E转换成M
如果多核(A、B。。。)读取了同样的数据,则他们是S(共享的)。
A对共享的数据进行了修改,那么S会转换成M,且其他缓存中的S会被转换成I,因为需要进行同步。A将修改的数据同步会主存后,他的状态会变成S,A无法感知他就是唯一的。B如果在读取共享数据,则还是S状态的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值