我正在阅读计算机体系结构一种定量方法这本书的基于目录的缓存一致性协议:基础知识。下图是教科书上目录状态转换图的图片。 我的问题是:为什么处于共享状态的块不处理写入命中事件?我认为,如果该块处于共享状态并且发生写入命中事件,则该块应进入排他状态。我相信我已经仔细阅读了本章,但没有找到任何解释。是因为该图仅适用于基本的基于目录的协议吗?
与MESI相同,需要读取所有权(无效请求)以使该行的其他副本无效,因此在我们修改此副本后,它们不会获得陈旧的读取匹配。
否则,缓存将无法连贯。该缓存实际上不需要接收数据的新副本,但是确实需要等待其他缓存已处理了无效消息的确认。因此它必须脱核,并且基本上与高速缓存未命中相同,只是它可以避免通过存储控制器进入DRAM。
((在实际的CPU中,尽管共享总线定义了MESI,但在某些情况下MESI is implemented more like a directory比共享总线要多。)