本文介绍ARM内存屏障指令,DMB,DSB,ISB。
1.DMB(Data memory barrier):
数据存储器隔离。DMB 指令保证: 仅当所有在它前面的存储器访问操作都执行完毕后,才提交(commit)在它后面的存储器访问操作。
2.DSB(Data Synchronization Barrier):
数据同步隔离。比 DMB 严格: 仅当所有在它前面的存储器访问操作都执行完毕后,才执行在它后面的指令(亦即任何指令都要等待存储器访问操作——译者注)。
3.ISB(Instruction Synchronization Barrier):
指令同步隔离。最严格:它会清洗流水线,以保证所有它前面的指令都执行完毕之后,才执行它后面的指令。