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 处理器中都会找到的一个组件,它有寄存器,但不属于任何内核,它的寄存器可以被处理器的任何内核访问。
一个 cpu 核心是否可以 read/write to/from 另一个 cpu 核心的寄存器?
如果汇编指令不能直接实现,这是 cpu 会在内部做的事情吗?
我的答案是针对ARM,但应该也适用于x86。
不,不可能从另一个内核写入一个内核的内部寄存器,因为这需要总线和内核之间的同步。这会大大降低性能,因为通常两个内核甚至都不会同步。
在核心之间共享数据的最近机制通常是通过侦听控制单元(对于共享相同 L2 缓存的核心)或通过缓存一致性互连(在集群之间)在核心之间快速迁移 L1 缓存行在 big.LITTLE 个系统中链接。
由于您没有明确指出要访问哪个寄存器,我必须注意到,在当前的微处理器中,许多寄存器不在内核中。我提到了 snoop 控制单元,这是您在每个多核 ARM 处理器中都会找到的一个组件,它有寄存器,但不属于任何内核,它的寄存器可以被处理器的任何内核访问。