[AMBA]AXI原子操作(AXI Atomic Operation)

发布时间:2026/7/22 15:40:52
[AMBA]AXI原子操作(AXI Atomic Operation) AXI原子操作(AXI Atomic Operation) 前言:原子操作就是不可中断的一个或者一系列操作, 也就是不会被线程调度机制打断的操作, 运行期间不会有任何的上下文切换(context switch)。我们为什么要关注原子操作呢?如果确定某个操作是原子的, 就不用为了去保护这个操作而加上会耗费昂贵性能开销的锁,借助原子操作可以实现互斥锁(mutex),借助互斥锁, 可以实现让更多的操作变成原子操作。 在多核CPU的时代,体系中运行着多个独立的CPU,即使是可以在单个指令中完成的操作也可能会被干扰。典型的例子就是decl指令(递减指令),它细分为三个过程:“读 - 改 - 写”,涉及两次内存操作。如果多个CPU运行的多个进程在同时对同一块内存执行这个指令, 那情况是无法预测的。 软件级别的原子操作是依赖于硬件支持的,在x86体系中,CPU提供了HLOCK pin引线, 允许CPU在执行某一个指令(仅仅是一个指令)时拉低HLOCK pin引线的