超线程场景下,一个逻辑核进入保护模式(ring 0)是否会影响另一个逻辑核上的指令?

问题描述 投票:0回答:1

当CPU上的工作负载进入内核模式时,CPU本身也相应进入保护模式(Ring 0)。

在开启超线程的机器上,保护模式的控制范围是逻辑核心级别还是物理核心级别?

  • 如果整个物理核同步进入保护模式,是否会影响运行用户态程序的相邻逻辑核的行为,例如被迫暂停或等待?
  • 如果不受影响,CPU如何区分来自不同逻辑核心的指令并赋予不同的权限?保护模式如何工作?
x86 cpu-architecture hyperthreading
1个回答
0
投票

必须针对每个逻辑核心;替代方案将无法使用。 逻辑核心应该能够运行独立运行的不同线程或进程,包括能够彼此独立地进行系统调用和进入/退出内核。

通过为每个逻辑核心提供自己的相关控制和描述符表寄存器的副本,可以轻松实现这一点,通过检查这些寄存器来确定指令是否成功或生成保护故障。 然后,只需在这些寄存器中具有不同的值,不同的逻辑核心就可以处于不同的模式。

© www.soinside.com 2019 - 2024. All rights reserved.