CPU缓存一致性协议(MESI Protocol)

  • 通过 MESI protocol,任何一个 CPU 要写入资料前,首先会给其它CPU发送Invalid消息,在其它 CPU 回 invalidate ack后, 才能将资料到自己的 cache,并在稍后将资料写回 memory。但是因为其他CPU可能回ack慢,所以该CPU会不等ack,先写入store buffer,然后继续做事,之后收到ack再更新cache的状态。所以CPU 读资料的顺序: store buffer → cache → memory。
  • 其他CPU 收到invalid消息后会先记录到invalidate queue里然后立即回 invalidate ack,稍后再处理 invalidate。

原文:https://medium.com/fcamels-notes/%E5%BE%9E%E7%A1%AC%E9%AB%94%E8%A7%80%E9%BB%9E%E4%BA%86%E8%A7%A3-memry-barrier-%E7%9A%84%E5%AF%A6%E4%BD%9C%E5%92%8C%E6%95%88%E6%9E%9C-416ff0a64fc1

发表评论

邮箱地址不会被公开。 必填项已用*标注