前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MESI协议:Cache 一致性协议

MESI协议:Cache 一致性协议

作者头像
斯武丶风晴
发布2019-12-16 17:15:21
1.4K0
发布2019-12-16 17:15:21
举报
文章被收录于专栏:龙首琴剑庐龙首琴剑庐

总线嗅探机制

把所有的读写请求都通过总线(Bus)广播给所有的 CPU 核心,然后让各个核心去“嗅探”这些请求,再根据本地的情况进行响应。

MESI 协议

  • 基于写失效Write Invalidate) 如果某个 CPU 核心 写入一个 Cache Line,则会广播一个失效请求告诉所有其他的 CPU 核心。
  • Cache Line 的 标记
    • M:代表已修改(Modified) 缓存行是脏的(dirty),与主存的值不同。如果别的CPU内核要读主存这块数据,该缓存行必须回写到主存,状态变为共享(S).
    • E:代表独占(Exclusive) 缓存行只在当前缓存中,但是干净的(clean)--缓存数据同于主存数据。当别的缓存读取它时,状态变为共享(S);当前写数据时,变为已修改(M)状态。
    • S:代表共享(Shared) 缓存行也存在于其它缓存中且是干净(clean)的。缓存行可以在任意时刻抛弃。
    • I:代表已失效(Invalidated) 缓存行是脏的(dirty),无效的。

任意一对缓存,对应缓存行的相容关系:

比如: 当块标记为 M (已修改), 在其他缓存中的数据副本被标记为 I (无效).

参考:https://zh.wikipedia.org/wiki/MESI协议

by 斯武丶风晴 https://my.oschina.net/langxSpirit

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 总线嗅探机制
  • MESI 协议
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档