我目前正在学习ARM架构。多核系统上的两个核可以同时访问相同的内存位置吗?
以及您需要的其他文档(架构参考,技术参考)。从arm (infocenter.arm.com)获取AMBA/AXI手册。它展示了公共汽车是如何工作的。很明显,你不能同时访问相同的内存位置,但是每个核心可以有多个正在运行的事务,你当然可以为同一个地址有多个正在运行的事务。
现在缓存也起作用了,你可能最终访问一个或两个本地缓存,而不是共享内存位置。
ldrex/strex对是专门针对多核访问同一位置的问题添加的。
是,如果他们只从那个位置读取。当写入该位置时,缓存需要使该位置无效以保持一致。
可以。但是,您应该不惜一切代价避免这样做,因为由于缓存一致性问题,性能将难以忍受。