在多级缓存系统中,直写策略是否允许写入所有缓存直到主内存?

问题描述 投票:0回答:1

在包含L1、L2、L3缓存和最后一个主存储器的多级缓存系统中。 L1 缓存遵循直写策略,L2 和 L3 缓存遵循命中情况下的回写策略。

情况1:某个地址A存在于L1缓存中,存在于L2缓存中,存在于L3缓存中。

情况2:某个地址A存在于L1缓存中,不存在于L2缓存中,存在于L3缓存中。

我们写入地址A,并且在L1中命中,因此要存储在A处的数据是写入L1,L2,L3缓存以及主存还是仅写入L1和L2缓存或仅写入L1缓存在主内存中?

对于上述情况,在两种情况下缓存命中的情况下,给定写入策略,通过缓存直到主内存的正确数据流是什么?

我尝试浏览 Hennessey 和 Patterson 教科书,其中说“对于上层缓存来说,写入更可行,因为写入只需要传播到下一个较低级别,而不是一直传播到主内存”,但许多参考资料说它写也到 DRAM。

另外,在维基百科链接中可用的写入策略的流程图中:[写入策略(https://en.wikipedia.org/wiki/Cache_%28computing%29#Writing_policies)术语“较低内存”是否意味着下一个下层高速缓存、所有下层高速缓存还是仅主存?也就是说,在流程图中,他们说“将数据写入较低的内存”是指仅写入下一个较低的缓存还是意味着写入所有较低的缓存+主内存?

caching memory-management cpu-architecture write-through
1个回答
0
投票

直写式缓存不可写分配;如果未命中,他们可以将写入传递到外层,而不需要执行任何其他操作。

命中或未命中,根据定义,它们总是将写入传递到下一个级别,这可能是一个回写缓存,命中时将避免干扰内存层次结构的任何进一步级别。写入向外传播的距离取决于回写的缓存级别。

对于上层缓存来说,直写更可行,因为写入只需传播到下一个较低级别,而不是一直传播到主内存

Patterson 和 Hennessey 表示直写式可用于内部缓存(如 L1),因为还有另一个缓存可以回写以充当后备,而不是将缓存写入速度限制为 DRAM 速度。

通常,直写式缓存会占用 CPU 工作负载,因此目前已不再使用。 (Bulldozer-family 的 L1d 缓存是一个值得注意的例外,尽管他们使用了一个小的 4K 写入组合缓冲区来使其不那么糟糕。即使如此,它也是 Bulldozer-family 更值得注意的设计选择之一,但事实证明并不是很好。 AMD 的 Zen 更加成功。)

© www.soinside.com 2019 - 2024. All rights reserved.