无论实现它的架构如何,原子交换汇编指令在访问RAM时必须占用多个时钟周期。
在执行指令时,架构通常如何保证线程不被中断(通过时钟或其他I / O设备),在读取存储器并将其内容放入寄存器之间?
答案 0 :(得分:1)
在处理器端,指令不会被中断或重新排列,以便功能上来往和来自正确。在内存控制器端,必须在内存总线上指示这是原子访问,不一定使用该术语,然后内存控制器必须确保对于该位置,在读取和写入之间不会发生任何事情。只要存储器控制器不影响原子操作,它就可以在其他操作中自由混合。相反,它可以在处理器端实现,处理器可以确保在读取和写入之间不会发生任何操作,因此存储器控制器可能不太智能。
销售处理器IP的人如ARM和MIPS将提供您可以下载的文档。您还可以查看像openrisc这样的处理器,我相信它们使用了一个万用接口,并看看它们是如何实现的(假设它们有原子交换指令)。