如果将CPU缓存实现为直写缓存,那么在刷新CPU缓存时是否有意义?
答案 0 :(得分:2)
当通过存储指令在直写(WT)高速缓存中写入字时,它也被发送到存储器层次结构的后续级别(see cache entry at wikipedia)。因此,WT缓存中的缓存块是干净的,即与下一级别的副本保持一致,并且不需要回写。
直接内存访问(DMA)可能需要WT失效,使缓存内容失效,但据我所知,这些不是手动操作,而是操作系统或硬件驱动。
与手动刷新相关,例如,根据英特尔架构软件开发人员手册(第2卷,指令集参考):
WBINVD - 回写和无效缓存此指令将处理器内部缓存中的所有已修改缓存行写回主内存,并使内部缓存无效(刷新)。
所以我认为,在WT缓存的情况下,该指令只会使所有缓存行无效。