原子指令 |保持数据一致性
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 缓存的 [部分] 无效的指令。
互锁指令始终是原子的。原子指令可能不会(而且通常不会)互锁。
原子指令是作为一个整体执行且不能被中断的指令。
它操作的数据是否也有必要在执行期间不被操纵?即在访问原子指令数据的另一个内核上执行的指令。
我目前正在就读我大学的 "Operating Systems" 课程。
Is it also necessary that the data it operates on isn't manipulated during execution ?
是的。
这就是为什么这样的指令执行起来可能很昂贵,可能需要数百个周期,包括锁定 CPU 的总线并且不检查其他 CPU(不仅仅是其他内核:必须包括多路系统)是访问受影响的内存。
另见 this answer。
这里有两个概念:
1) 原子指令是处理器不能中断的指令。
2) 互锁指令是那些锁定内存总线并使 CPU 缓存的 [部分] 无效的指令。
互锁指令始终是原子的。原子指令可能不会(而且通常不会)互锁。