- 主题:经常看到内存屏障,查了很多资料,感觉自己不会编程了
想请教一下内存屏障指令的细节. 看了一本书, 但只是简单介绍了一下这方面, 还是不能完全搞明白.
比如下面的指令:
mov xxx
lock xxx
那么内存屏障 lock 指令保护的应该是前面那条 mov 指令. mov 指令前面的指令不能重排到 mov 后面, 而且 mov 后面的指令也不能重排到 mov 前面. 我理解的对吗?
--
FROM 123.125.37.*
想请教一下内存屏障指令的细节. 看了一本书, 但只是简单介绍了一下这方面, 还是不能完全搞明白.
比如下面的指令:
mov xxx
lock xxx
那么内存屏障 lock 指令保护的应该是前面那条 mov 指令. mov 指令前面的指令不能重排到 mov 后面, 而且 mov 后面的指令也不能重排到 mov 前面. 我理解的对吗?
--
FROM 123.125.37.*
谢谢. 我再搜一下资料.
看来国内的"名著"在某些内容上也做不到很准确.
【 在 yangtou 的大作中提到: 】
: lock不是内存屏障指令而是总线锁定,当然它带有mfence的语意。
: lfence/sfence/mfence才是intel的内存屏障。
: 内存屏障指令的含义和内存一致性或者顺序性有关,先了解内存一致性相关概念。
: ...................
--
FROM 123.125.37.*