2

我想知道使用写入未命中策略分配写入的MESI协议实现。假设我们有写请求并且没有其他缓存行副本的缓存未命中。该表示下一步是从主内存(或二级缓存)中获取值,将其存储并将缓存行标记为 M(已修改)。我想然后新值存储在缓存块中。问题是:为什么我们需要从主存中获取数据的步骤?为什么我们不能简单地将新值写入 I(无效)状态的第一个找到的缓存行/替换最旧的缓存行并将其标记为 M(修改)?

谢谢您的帮助!

4

1 回答 1

2

假设您有 64 字节的高速缓存行,并且您写入了一个字节。不能将“1/64ths of a cache line”放入缓存中,那么剩下的 63 个字节从何而来?它们必须来自主内存(或下一级缓存)。

于 2016-08-27T12:46:59.827 回答