Arm 多核系统能否允许两个或多个核同时访问同一内存位置?

Arm 多核系统能否允许两个或多个核同时访问同一内存位置?,arm,smp,Arm,Smp,我目前正在研究ARM架构。多核系统上的两个核能否同时访问同一个内存位置 如果仅从该位置读取,则为“是”。当写入该位置时,缓存需要使该位置无效以保持一致。他们可以。但是,您应该不惜一切代价避免这种情况,因为由于缓存一致性问题,性能将无法承受。以及您需要的其他文档(架构参考、技术参考)。从arm(infocenter.arm.com)获取AMBA/AXI手册。它显示了公共汽车是如何工作的。显然,您不能同时访问同一个内存位置,但每个核心可以有多个事务在运行中,并且对于同一地址,您当然可以有多个事务在运

我目前正在研究ARM架构。多核系统上的两个核能否同时访问同一个内存位置

如果仅从该位置读取,则为“是”。当写入该位置时,缓存需要使该位置无效以保持一致。

他们可以。但是,您应该不惜一切代价避免这种情况,因为由于缓存一致性问题,性能将无法承受。

以及您需要的其他文档(架构参考、技术参考)。从arm(infocenter.arm.com)获取AMBA/AXI手册。它显示了公共汽车是如何工作的。显然,您不能同时访问同一个内存位置,但每个核心可以有多个事务在运行中,并且对于同一地址,您当然可以有多个事务在运行中

现在,缓存也开始发挥作用,您可能最终会有一个或两个访问其本地缓存,而不是共享内存位置


ldrex/strex对是专门为多个核心访问同一位置的问题而添加的。

取决于“同时”的含义。从实际意义上说:是的。(严格意义上:不)所谓模拟,我指的是完全在同一时间,即在同一时钟脉冲上。在所有意义上,这取决于。如果您有双端口DRAM,并将独立的ARM总线连接到芯片的每一侧,那么您可以。这一切都取决于系统、操作系统、特定的ARM芯片等。您需要研究。对于不同的ARM版本(甚至在ARM版本中),解决方案是不同的。即使系统支持它,操作系统也会让它变得不可能。通常,单个写或读(过去的缓存)是原子的。读/修改/写操作取决于系统。