乐于分享
好东西不私藏

Barrier操作:软件三大命令ISB,DMB,DSB

Barrier操作:软件三大命令ISB,DMB,DSB

ISB: instruction synchronous barrier,指令同步屏障,作用:清洗CPU内部流水线,几乎不上总线,告诉CPU重新取指,常用于修改了MMU页表后

DMB:data,memory barrier,数据内存屏障,作用保序,保证DMB前面的内存访问先于后续内存访问,常用于CPU给AXI事物打上顺序ID

DSB:data synchronous barrier,作用保证完成,CPU停下后续所有访存和流水线操作,等到之前所有load/store操作在真实物理终点完工

Barrier事物在AXI总线是一种不带数据传输的伪事物,一般以下作用域:

NS(non-shareable):只管CPU自己私有外设/内存

IS(inner shareable):只管一个CPU cluster的core

OS(outer shareable):管多个CPU,GPU等大范围的一致性区域

SY(system shareable):管整个系统中的所有外设

互联总线接收到barrier事物的处理策略:

1.入口封锁(stall/block):通道挂起,不再接收后续读写请求

2.结账盘点(tracking outstanding):内部检查FIFO/tracker,确定哪些属于该domain的事物未完成

3.等待完成(wait for completion):等待外设响应,或者其他CPU的snoop响应结束

4.封印解除(barrier response):所有outstanding事物结束,回复完成响应