调试指令、数据内存屏障指令、数据同步屏障指令和指令同步屏障指令。
调试提示可向调试系统及其相关系统发送提示。 有关这些系统如何使用此指令的信息,请参这些系统的文档。
数据内存屏障可作为内存屏障使用。 它可确保会先检测到程序中位于 DMB
指令前的所有显式内存访问指令,然后再检测到程序中位于DMB
指令后的显式内存访问指令。它不影响其他指令在处理器上的执行顺序。
option
的允许值为:
SY
完整的系统DMB 操作。 这是缺省情况,可以省略。
数据同步屏障是一种特殊类型的内存屏障。 只有当此指令执行完毕后,才会执行程序中位于此指令后的指令。 当满足以下条件时,此指令才会完成:
位于此指令前的所有显式内存访问均完成。
位于此指令前的所有缓存、跳转预测和 TLB 维护操作全部完成。
允许的值为:
SY
完整的系统 DSB 操作。 这是缺省情况,可以省略。
UN
只可完成于统一点的DSB 操作。
ST
存储完成后才可执行的DSB 操作。
UNST
只有当存储完成后才可执行的DSB 操作,并且只会完成于统一点。
指令同步屏障可刷新处理器中的管道,因此可确保在 ISB
指令完成后,才从高速缓存或内存中提取位于该指令后的其他所有指令。这可确保提取时间晚于ISB
指令的指令能够检测到 ISB
指令执行前就已经执行的上下文更改操作的执行效果,例如更改ASID 或已完成的 TLB 维护操作,跳转预测维护操作以及对 CP15 寄存器所做的所有更改。
此外,ISB
指令可确保程序中位于其后的所有跳转指令总会被写入跳转预测逻辑,其写入上下文可确保 ISB
指令后的指令均可检测到这些跳转指令。这是指令流能够正确执行的前提条件。
option
的允许值为:
SY
完整的系统DMB 操作。 这是缺省情况,可以省略。