问题描述
当我们从previous问题知道:Does它使处理器任何意义指令LFENCE的x86 / x86_64的?
这是我们不能使用 SFENCE
而不是 MFENCE
的顺序一致性。而mainaly MFENCE
= SFENCE
+ LFENCE
,即 LFENCE
做一些事情,没有这些我们无法提供连续一致性。
LFENCE
使得无法重新排序:
SFENCE
LFENCE
MOV章,[地址]
- 要 - >
MOV章,[地址]
SFENCE
LFENCE
有关的例子重新排序MOV [地址],章
LFENCE
- > LFENCE
MOV [地址],章
按机制提供 - 存储缓冲,其中重排商店 - 荷载的性能提升,并东阳 LFENCE
没有prevent它。和 SFENCE
禁用此机制
什么机制禁用 LFENCE
进行重新排序是不可能的(X86没有机制 - 无效队列)?
和为 SFENCE
MOV章的重新排序,[地址]
- > MOV章,[地址]
SFENCE
可能只是在理论上或者在现实中?如果可能的话,在现实中,什么样的机制,它是如何工作的?
From the Intel manuals, volume 2A, page 3-464 documentation for the LFENCE
instruction:
So yes, your example reordering is explicitly prevented by the LFENCE
instruction. Your second example involving only SFENCE
instructions IS a valid reordering, since SFENCE
has no impact on load operations.
这篇关于是什么机制禁用LFENCE使不可能重新排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!