5

我现在正在学习缓存一致性,但我不太明白 MESI 协议中独占状态的功能是什么,因为我认为 MSI 也很好用。

4

1 回答 1

7

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

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

于 2015-09-28T23:35:58.770 回答