WBNOINVD
回写和不无效缓存
stableVMJITAOTinstruction
编码
| 操作码 | 指令 | Op/En | 64 位 | 兼容/传统 | 说明 |
|---|---|---|---|---|---|
F3 0F 09 | WBNOINVD | ZO | 有效 | 有效 | 写入后不冲出内部缓存; 启动回写而不冲出外部缓存 。 |
实测开销
正在从 arch-data 加载实测数据...
说明
WBNOINVD指令将处理器内部缓存中所有修改过的缓存行写回主内存,但不会使内部缓存失效(flush).
执行此指令后, 处理器不会等待外部缓存完成回写操作, 然后再执行指令 。 响应缓存回写信号是硬件的责任. WBNOINVD完成的时间或周期因大小和不同缓存等级的其他因素而异. 因此,使用WBNOINVD指令会对逻辑处理器中断/事件响应时间产生影响.
WBNOINVD指令是一种特殊指令. 当处理器在 保护模式 运行时,程序或程序的 CPL 必须是 0 执行此指令. 本指令也是序列化指令(参见英特尔(R)64和IA-32架构软件开发者手册第3A卷第9章中的"序列化指令").
此指令的操作在非64位模式和64位模式中是相同的.
行动
WriteBack(InternalCaches);
Continue; (* Continue execution *)Intel C/C++ 内在编译器
WBNOINVD void _wbnoinvd(void);受影响的旗帜
None.
异常
保护模式
#GP(0) | 如果当前特权级别不是 0 。 |
#UD | 如果使用 LOCK 前缀 。 |
实地址模式
#UD | 如果使用 LOCK 前缀 。 |
虚拟 8086 模式
#GP(0) | WBNOINVD不能在 虚拟 8086 模式 执行 。 |
兼容模式
| 与保护模式中的例外相同. |
64 位模式
| 与保护模式中的例外相同. |