Read/write 在另一个 cpu 核心注册

Read/write register in another cpu core

一个 cpu 核心是否可以 read/write to/from 另一个 cpu 核心的寄存器?

如果汇编指令不能直接实现,这是 cpu 会在内部做的事情吗?

我的答案是针对ARM,但应该也适用于x86。

不,不可能从另一个内核写入一个内核的内部寄存器,因为这需要总线和内核之间的同步。这会大大降低性能,因为通常两个内核甚至都不会同步。

在核心之间共享数据的最近机制通常是通过侦听控制单元(对于共享相同 L2 缓存的核心)或通过缓存一致性互连(在集群之间)在核心之间快速迁移 L1 缓存行在 big.LITTLE 个系统中链接。

由于您没有明确指出要访问哪个寄存器,我必须注意到,在当前的微处理器中,许多寄存器不在内核中。我提到了 snoop 控制单元,这是您在每个多核 ARM 处理器中都会找到的一个组件,它有寄存器,但不属于任何内核,它的寄存器可以被处理器的任何内核访问。