volatile关键字能否解决cache一致性的问题。

来源:百度知道 编辑:UC知道 时间:2024/06/15 23:54:44
如果我在cacheable的内存空间中,把对应地址声明为volatile型的指针,是否就可以解决cache一致性的问题呢?如果是这样的话,那么还要flush和invalidate操作干吗呢?谢谢!

volatile只是让每次操作之后都必须放回内存罢了。

不可以解决cache一致性的问题。volatile只能保证CPU能发出寻址信号,至于地址信号是命中cache还是命中内存,看当时的cache设置。

volatile操作是让CPU读取时每次都从内存空间中取数据,而不是取保存在寄存器中的数据,这样做显然比从cache中读取数据效率低。