3

在下面显示的伊利诺伊 MESI 协议的状态转换图中,为什么在观察 BusRdX 信号时从状态 S 转换到状态 I 时会出现 Flush 信号,而当从状态 E 转换到状态 I 时会出现 Flush 信号。这些状态下处理器的缓存内容会不会与主内存中的内容相同?如果是这样,这些缓存将状态 I 刷新其数据的意义何在?另外,Flush和Flush'之间到底有什么区别。只是在Flush'中,数据交换由一个缓存传输吗?

过渡图:

在此处输入图像描述

4

1 回答 1

2

这些状态下处理器的缓存内容会不会与主内存中的内容相同?

这取决于写策略

  • 如果使用直写策略并且所有更改都直接写回主存,那么您是对的。

  • 但对于write-back来说,情况并非如此。通过窥探读取(或与您的图表有关:BusRd,即从总线读取请求而无意修改),可能存在从MS的状态转换,此时缓存与主存储器不一致,因此如果缓存无效,则必须将内容写回主内存。

另外,Flush 和 Flush 之间到底有什么区别?

我假设你有来自维基百科的图表;有一个更新版本,我在上面链接到它,它没有区别。

于 2015-08-01T12:55:14.773 回答