lock会触发硬件缓存锁定机制, 锁定机制有两种: 总线锁和缓存一致性协议
为什么会有两种锁呢? 这就和cpu的发展有关系了.
早期的cpu技术比较落后, 才使用的总线锁, 来保存缓存的一致性....因此发展出来了缓存一致性协议....现在使用最普遍的是mesi协议,
三. mesi协议的工作原理
四个字母分别代表在缓存里不同的四个状态: M:已修改 E:独占 S:共享 I:已失效
MESI 是4种状态的首字母。...跨缓存行就不是原子的了, 不是原子的, 缓存一致性协议就搞不定了, 缓存一致性协议就升级为总线锁了 ,谁抢到谁赢.
问题2: 既然最终都可以总线锁解决问题, 为什么还要用总线裁决呢?...缓存一致性协议, 不能对寄存器生效.
上面那句话是什么意思呢?
?