PAUSE

旋转循环提示

stableVMJITAOTinstruction

编码

操作码指令Op/En64 位兼容/传统说明
F3 90PAUSEZO有效有效为改进自旋等待循环性能的处理器提供提示.

实测开销

正在从 arch-data 加载实测数据...

说明

提高旋转等待循环的性能. 当执行"spin-wait ro循环"时,处理器在退出该循环时会受到严重的性能处罚,因为它检测到可能存在内存订单违反的情况. PAUSE指令向处理器提示,代码序列是一个旋转等待循环. 处理器使用这个提示来避免大多数情况下的内存命令违反,这极大地改善了处理器的性能. 为此,建议将PAUSE指令放置在所有旋转等待循环中.

PAUSE指令的另一个功能是在执行自旋环时减少处理器消耗的功率. 一个处理器可以非常快地执行一个旋转等待循环,使得处理器在等待其正在旋转的资源变得可用时消耗了大量的功率. 在旋翼循环中插入暂停指令会大大降低处理器的功耗.

这个指令是在Pentium 4处理器中引入的,但与所有IA-32处理器的后向兼容. 在早期的IA-32处理器中,PAUSE指令像NOP指令一样运行. Pentium 4和Intel Xeon处理器作为延迟执行PAUSE指令. 延迟是有限的,对于一些处理器来说可以是零. 此指令不会改变处理器的建筑状态( 也就是说, 它基本上执行一个延迟的不操作) 。

此指令的操作在非64位模式和64位模式中是相同的.

行动

Execute_Next_Instruction(DELAY);

数字例外

None.

异常

实地址模式
#UD如果使用 LOCK 前缀 。
保护模式
#UD如果使用 LOCK 前缀 。
虚拟 8086 模式
#UD如果使用 LOCK 前缀 。
兼容模式
#UD如果使用 LOCK 前缀 。
64 位模式
#UD如果使用 LOCK 前缀 。

来源