Intel PAUSE指令和可能的内存顺序违规

时间:2012-12-16 17:25:36

标签: assembly x86 x86-64 busy-loop

  

可能重复:
  pause instruction in x86

英特尔Optimization Reference Manual对旋转等待循环有以下说法:

  

3.4.1.2旋转等待和空闲循环

     

奔腾4处理器引入了新的PAUSE指令;指示是   在架构上是英特尔64和IA-32处理器实现的NOP。

     

对于奔腾4及更高版本的处理器,此指令充当代码的提示   sequence是一个自旋等待循环。在这样的循环中没有PAUSE指令,奔腾   因为处理器,4处理器在退出循环时可能会受到严重的惩罚   可能会检测到可能的内存顺序违规。插入PAUSE指令   显着降低了违反记忆订单的可能性   提高绩效

我想了解突出显示的部分:处理器 可能会检测到可能的内存订单违规。你能解释一下这意味着什么吗?在什么情况下,在繁忙的循环中会出现这种违规,为什么使用PAUSE有帮助?违规行为是真实的还是虚假的,以及不避免违规的后果是什么?

说明问题的一个例子很棒。

0 个答案:

没有答案