用于写回的MESI协议。一个处理器上有两个核心,为了简单起见,只有L1缓存。
为什么核心1节省了内存中的任何东西,浪费时间--反正它几乎立即被覆盖了?
我的消息来源:
diagram.png
https://www.cs.utexas.edu/~pingali/CS395T/2009fa/lectures/mesi.pdf
protocol
发布于 2015-02-01 13:33:00
原因有二:
请记住,由于没有任何共享缓存,这是过于简化的。如果您有一个(并且假设它是包含的),那么core 1只需将修改写入其中,核心2就可以更快地得到它。对于这种情况,其他系统也可能实施直接的核对核监听。
一般来说,协议应该假定任何一方都不知道协议显式告诉它的内容。您必须使核心1中的行无效,以保持一致性(没有2个内核可以同时修改同一行),而且由于您没有其他缓存级别--您必须将其写入内存,并保证数据不会丢失(因此,对于核心1来说,它并不存在,您是用唯一信任的流程--回写内存来响应神秘的窥探)。
最后一件事--这个流以幻灯片结尾(据我所能看到),内核2在自己的M状态缓存中安装了行,并进行了修改。从现在开始,系统可以以任何方式继续运行(如果这条线以后会再次被窥探,或者退出Core 2的缓存--这是另一回事)。流程不需要Core 2如前所述将行写回内存,因此不存在双重写入。
https://stackoverflow.com/questions/28262446
复制相似问题