MESI协议了解状态转换

时间:2013-11-07 15:32:18

标签: caching multiprocessing mesi

在下面针对Illinois MESI协议所示的状态转换图中,为什么在从状态S转换到状态I时存在Flush'信号,并且在观察BusRdX信号时从状态E转到状态I时存在Flush信号。处于这些状态的处理器的缓存内容不会与主内存中的内容相同吗?如果是这样,这些缓存会指示我刷新他们的数据是什么意思?另外,Flush和Flush之间究竟有什么区别。只是在Flush中,数据是通过一个缓存传输的吗?

转换图:

enter image description here

1 个答案:

答案 0 :(得分:1)

  

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

这取决于写入策略

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

  • 回写并非如此。可以通过窥探读取(或与您的diagram:BusRd相关的状态从 M 过渡到 S ,即从总线读取请求而无意修改),此时缓存与主内存不一致,因此如果缓存无效,则必须将内容写回主内存。

  

另外,Flush和Flush'

之间究竟有什么区别

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