总线锁:总线锁保证了原子性,通过lock锁住总线bus,使当前CPU独享内存空间。但是此时其他CPU都不能访问内存其他地址,效率低。

缓存锁:MESI协议。有些无法被缓存或跨域多个缓存行的数据,依然需要使用总线锁,现代CPU的数据一致性实现 = MESI + 总线锁 共同实现

Modified:修改,当前缓存行的数据已被修改,但是没有被写回到主存中。
Exclusive:独享,当前缓存行与主存数据一致,该数据只存在一个CPU中,可以自由读写,而不需要通知其他CPU。
Shared:共享,当前缓存行与主存数据一致,该数据在其他CPU中也存在,不能随意修改,需要先广播通知其他CPU,将其他CPU中的数据标记为Invalid失效状态,才能修改。
Invalid:失效,当前缓存行数据已失效。
总线锁与缓存锁:原子性与数据一致性
总线锁通过锁定总线确保CPU独享内存,但可能导致效率低下。缓存锁如MESI协议用于维护多CPU环境中的数据一致性,现代系统结合两者来实现高效的数据同步。MESI状态包括修改、独享、共享和失效,分别对应缓存数据的不同阶段。
2727

被折叠的 条评论
为什么被折叠?



