缓存是由缓存硬件对处理器透明控制的,所以如果我们在 C 程序中使用 volatile 变量,如何保证我的程序每次都从指定的实际内存地址读取数据而不是缓存。
我的理解是,
Volatile 关键字告诉编译器不应该优化变量引用,而应该按照代码中的程序来读取。
缓存由缓存硬件透明地控制,因此当处理器发出地址时,它不知道数据是来自缓存还是来自内存。
因此,如果我需要每次都必须读取内存地址,我如何确保它不是从缓存中引用,而是从所需地址引用?
不知何故,这两个概念并不能很好地结合在一起。请澄清它是如何完成的。
(假设我们在缓存中有回写策略(如果需要分析问题))
谢谢你,微内核:)