通过高速缓存写入内存访问频率(写入分配/无写入分配)?

时间:2016-12-12 09:44:20

标签: caching memory cpu-architecture memory-address write-through

对于写入分配无写入分配 通过缓存进行内存访问,我有点困惑。

假设我们有一个行大小为4字的缓存。在高速缓存hi和miss的情况下,在高速缓存和内存之间将传输多少单词,如果:

  • 写分配
  • 无写分配

...谢谢

1 个答案:

答案 0 :(得分:2)

我认为它的实现依赖。

让我们考虑无写分配和缓存写HIT。由于它的缓存HIT,你不需要从内存中获取,但是由于它是一个写入,你需要更新主内存。如果你的架构支持屏蔽写入,即它可以以4字的粒度发送地址和实际脏字的掩码,那么你只需要发送一个字即可。因此,在内存结束时,当它接收到直写请求时,它应该只能根据掩码和地址更新正在修改的字。在缓存写MISS的情况下,由于它的无写分配,你不需要获取任何东西。您仍然需要更新主内存,再次与上面相同。

当你考虑写分配时,当它是HIT时,行为类似于上面的行为。当它未命中时,您需要在修改之前获取条目。通常,这实现类似于读取未命中。所以你要取4个字,剩下的就是写回记忆。

所以底线,从记忆中获取总是4个单词。写入存储器将是1个字或4个字,具体取决于实现。