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