原子指令 |保持数据一致性

Atomic Instructions | Maintain Data Consistency

原子指令是作为一个整体执行且不能被中断的指令。

它操作的数据是否也有必要在执行期间不被操纵?即在访问原子指令数据的另一个内核上执行的指令。

我目前正在就读我大学的 "Operating Systems" 课程。

Is it also necessary that the data it operates on isn't manipulated during execution ?

是的。

这就是为什么这样的指令执行起来可能很昂贵,可能需要数百个周期,包括锁定 CPU 的总线并且不检查其他 CPU(不仅仅是其他内核:必须包括多路系统)是访问受影响的内存。

另见 this answer

这里有两个概念:

1) 原子指令是处理器不能中断的指令。

2) 互锁指令是那些锁定内存总线并使 CPU 缓存的 [部分] 无效的指令。

互锁指令始终是原子的。原子指令可能不会(而且通常不会)互锁。