Cortex-A510——内存屏障/壁垒(DMB/DSB/ISB)
小狼@http://blog.youkuaiyun.com/xiaolangyangyang
1、DMB/DSB/ISB
- __DMB指令:
Data Memory Barrier(数据存储器隔离),DMB指令保证所有前面的存储器访问操作执行完毕后,才提交后面的存储器访问操作;
- __DSB指令:
Data Synchronization Barrier(数据同步隔离),比DMB严格,前面所有存储器访问操作执行完毕后,才执行后面的指令;
- __ISB指令:
Instruction Synchronization Barrier(指令同步隔离),清洗流水线,保证所有前面的指令执行完毕后,才执行它后面的指令。
2、三种指令的典型案例
1、DMB
DMB指令保证了两个内存访问能按正确的顺序执行。实际上DMB在Cortex-M的处理器中用得并不多,因为Cortex-M处理器不会重新排序内存事务(Memory transaction)。但如果想要软件能在其他ARM处理器上重用(如Cortex-M移植到Cortex-A),尤其是在多主系统中,DMB是必要的。下面举几个例子:
(1)DMA

最低0.47元/天 解锁文章
3710

被折叠的 条评论
为什么被折叠?



