正如我们所知,在 x86 架构上自动提供了获取-释放一致性——即所有操作自动排序,没有任何栅栏,不包括第一次存储和下一次加载操作。(如第 34 页 Herb Sutter 所说:https ://onedrive.live.com/view.aspx?resid=4E86B0CF20EF15AD!24884&app=WordPdf&authkey=!AMtj_EflYn2507c )
如果我们将MFENCE(LFENCE+SFENCE)放在它们之间,那么存储就不能重新排序,加载也不能重新排序——即我们提供了顺序一致性。
但是如果我们将内存标记为WC(Write Combined),那么我们是否会自动保持一致性而没有任何栅栏,可能是获取释放?
或者如果我们将SSE指令与 WC-memory 一起使用,那么我们就没有任何一致性,如果我们将简单的MOV指令与 WC-memory 一起使用,那么我们就有了获取-释放一致性,不是吗?