我一直在阅读ARM处理器中的同步方法。我在这方面遇到了一些问题。如果我使用SWP指令,我需要在内存中给出一些地址作为第三个参数。但是,如果系统是多核ARM - 在这个内存地址的内容缓存在其他处理器的缓存中的情况下呢?
在这种情况下缓存会失效还是会发生其他事情?任何人都可以解释一下吗?
答案 0 :(得分:-1)
正如一些答案所述,SWP
已不再使用,即使是在相当旧的CPU上(在所有Cortex-A CPU上已弃用)。
虽然不是替代品,但必须使用LDREX/STREX
。 Cortex-A CPU能够直接在其L1缓存中共享数据(请参阅https://fr.wikipedia.org/wiki/Protocole_MESI),而无需失效。