本文介绍了是什么机制禁用LFENCE使不可能重新排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我们从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使不可能重新排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-17 16:03