无论实现它的体系结构如何,原子交换汇编指令在访问RAM时都必须占用多个时钟周期。
体系结构通常如何保证线程在执行指令时,在读取内存和将其内容放入寄存器之间不会被中断(被时钟或其他I/O设备)?
在处理器端,指令不会被中断或重新排列,从而使to和from在功能上是正确的。在存储器控制器一侧,存储器总线上必须有一个指示,表明这是原子访问,而不一定使用该术语,那么存储器控制器必须确保对于该位置,在读取和写入之间没有发生任何事情。内存控制器可以自由地混合其他操作,只要它们不影响原子操作。相反,它可以在处理器侧实现,处理器可以确保对于该位置,在读取和写入之间不发生操作,那么存储器控制器可能不那么智能。
销售ARM和MIPS等处理器IP的人会有你可以下载的文档。您还可以查看像openrisc这样的处理器,我认为它使用了叉骨接口,并了解它们是如何实现的(假设它们有原子交换指令)。