【发布时间】:2019-11-17 14:51:45
【问题描述】:
我有一个关于缓存一致性中 True/False 共享缺失的问题。
X1和X2在块B中。块B最初在处理器P1和P2的私有高速缓存中。系统使用 MSI 协议。给出以下事件序列
- P2 写入 Xl,
- P2 读取 X2,
- Pl 读取 X2,
- P2 写入 Xl,
- P1 写入 X2,
- P2 读取 X2。
我发现 (3) 将是错误的共享未命中,因为 (1) 使 P1 中的 B 副本无效,即使 X2 的值没有变化。并且 (6) 应该是真正的共享未命中,因为 (5) 更新了 X2,并且需要将其传达给 P2。
如何对他人进行分类(如真/假分享未命中)?对每个分类的一个很好的解释表示赞赏。
我真的对真正的分享小姐概念感到困惑。虚假分享错过很容易理解。
如果需要更多信息,请发表评论。
【问题讨论】:
标签: multithreading caching concurrency