回写或直写策略的写缓冲区性能

Write buffers performance for write-back or write-through policy

对于回写或直写策略,写缓冲区是否对性能更关键?我检查了很多关于这个的地方,但是我找不到确切的答案。谁能告诉我哪个对性能更关键以及为什么

对于写入,因为它必须在命中时写入。 WB 缓存避免了在缓存命中时完全写入缓存的外部级别,这有望成为常见情况。 (general-purpose CPU 工作负载的缓存的第一条经验法则是缓存工作。)

例如请参阅 Cache size estimation on your system? for an example where AMD Bulldozer-family's 4k "write-coalescing cache" size between write-through L1d and L2 (https://www.realworldtech.com/bulldozer/8/) 是 memcpy / memset 微基准测试的截止点,它可以找到带宽与 working-set 大小的关系。虽然 CPUs 与 WB L1d 缓存可以 运行 全速存储到 L1d 大小。

Semi-related: 为什么现代 CPU 通常使用 WB 缓存,除了少数例外,例如 AMD 失败的 Bulldozer 实验,他们从头开始重新设计,使非常好的 Zen 微架构。