0

如果将 CPU 缓存实现为直写缓存,手动刷新 CPU 缓存是否有意义?

4

1 回答 1

2

当一个单词通过存储指令写入直写 (WT) 缓存时,它也会被发送到内存层次结构的下一层(参见 wikipedia 上的缓存条目)。因此,WT 缓存中的缓存块是干净的,也就是说,与它们在下一级的副本一致,并且不需要回写。

在导致缓存内容陈旧的直接内存访问 (DMA) 的情况下,可能需要 WT 失效,但据我所知,这些不是手动操作,而是操作系统或硬件驱动的。

与手动刷新相关,例如根据英特尔架构软件开发人员手册(第 2 卷,指令集参考):

WBINVD — 写回并使缓存无效 该指令将处理器内部缓存中所有已修改的缓存行写回主存储器并使内部缓存无效(刷新)。

所以我认为,在 WT 缓存的情况下,该指令只会使所有缓存行无效。

于 2013-04-08T20:46:07.573 回答