回写与通过带宽写入

Write back vs Write through bandwidth

我的理解是,回写策略仅在缓存中修改并在块上设置一个 "dirty" 位,而直写在缓存和内存中都进行修改。替换完成后,如果它使用回写策略,它将检查块是否脏以在内存中替换它。

我的问题是,这个策略中的哪一个会产生更多的内存流量(带宽)?是否有任何其他参数会影响给定策略上流量的增加和减少?

内存流量取决于应用,两种方案各有千秋。但是仅仅写策略不足以分析流量。

您还需要考虑要实施哪种写入未命中策略。 (写分配与不写分配)。前者在缓存未命中时仅将修改后的条目写入空缓存行并保留一个掩码以记住哪些词是真实的,哪些是垃圾。另一方面,后者将写入未命中处理为类似于读取未命中,并从内存中取出整个缓存行并修改所需的字。这两种方案都有其优点,通常每个方案都有一个首选的写策略(回写与直写)。 这是 Norman P. Jouppi 撰写的一篇关于 writre miss policies 的好文章。 http://dl.acm.org/citation.cfm?id=165154