在另一个cpu核心中读/写寄存器

时间:2016-05-03 09:57:13

标签: x86 arm cpu

一个cpu内核是否可以读取/写入另一个cpu内核中的寄存器?

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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