用 volatile 声明变量不行吗
volatile是软件级的,CPU的cache是硬件级的,不是同一类东西 原帖由 zhangxudong 于 2008/7/18 16:59 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
用 volatile 声明变量不行吗
volatile类型和缓存没有关系,只是告诉编译器,这个变量不能使用寄存器优化。
每次读操作都要重新执行一遍内存读取过程,至于是从缓存读,还是从内存读,或者是外设寄存器,还得看虚拟地址映射到哪里,怎么映射。
当然,大部分使用volatile类型变量的时候,都是想要读外设寄存器。 原帖由 zhangxudong 于 2008-7-18 16:59 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
用 volatile 声明变量不行吗
可以看看这个哈:
http://bbs.chinaunix.net/viewthread.php?tid=1059006&extra=page%3D3%26amp%3Bfilter%3Ddigest 原帖由 SuperZ 于 2008-7-18 20:56 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
volatile类型和缓存没有关系,只是告诉编译器,这个变量不能使用寄存器优化。
每次读操作都要重新执行一遍内存读取过程,至于是从缓存读,还是从内存读,或者是外设寄存器,还得看虚拟地址映射到哪里,怎么 ...
赞同 kwg kwg kwg
不懂编程但顶一下 呵呵
不懂编程但顶一下 呵呵 X86的CPU内部的Cache可否锁定,不让读写时flush掉? 学习各位大牛! 回复 17# zx_wingif it is the truth.
then write a value & read it back,
the old wrong (invalid) value will be readed.
i think in this case you need cache shot...