【问题标题】:Why MESI protocol need the Exclusive state为什么 MESI 协议需要独占状态
【发布时间】:2015-12-26 02:35:42
【问题描述】:

我现在正在学习缓存一致性,但我不太明白 MESI 协议中 Exclusive state 的作用是什么,因为我认为 MSI 也很好用。

【问题讨论】:

    标签: caching computer-architecture mesi


    【解决方案1】:

    MSI 协议的问题在于,默认情况下,所有数据都以共享状态加载,即使它不是共享的。当我们将缓存块 X 从共享状态移动到修改状态时,我们必须向其他缓存发送信号以使它们的块 X 副本无效;如果他们没有块 X 的副本,那么我们就不必要地浪费总线带宽/周期。

    程序的常见情况是读取和可能修改与其他线程共享的数据。通过引入独占状态,我们可以区分这种非共享(独占)数据。当我们修改大部分数据时,我们不必发出多余的无效信号。 MESI 在功能上与 MSI 相同,但针对常见情况进行了更优化。

    【讨论】:

    • 我了解 MESI 如何避免第一个不必要的无效消息。但是,我看不出这总体上是如何节省的。假设 C1 第一次请求块 B。为了让 C1 将该块标记为 Exclusive,它是否不需要等待所有其他缓存的确认它们也没有副本?
    • @Zack 我们有 L2 目录,对吧?它告诉我们该块存储在哪些其他缓存中。如果我们看到 L2 缓存目录是空的(对于该块),那么我们只需加载 E 状态的块。
    • 什么目录?我认为 MSI/MESI 是监听协议。
    猜你喜欢
    • 2020-03-28
    • 1970-01-01
    • 2017-01-03
    • 2019-06-14
    • 2012-10-23
    • 2014-11-24
    • 2018-05-30
    • 2011-08-15
    相关资源
    最近更新 更多