Intel Hyper-Threading Technology(3)

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85850427

Processor Resources and HT Technology

物理处理器中微架构的大部分资源都是由逻辑处理器共享使用的。只有一少部分数据结构是双份的,每个逻辑处理器独占使用一份。本节讲述这些资源的使用方式:共享的,分区的,或者复制的。

Replicated Resources

每个逻辑处理器都复制了一份架构状态。这里架构状态指的是那些程序员可见的寄存器,这些寄存器被操作系统和应用程序使用,用来控制程序行为,存储计算数据。早期处理器的架构状态具体包括8个通用寄存器,控制寄存器,机器状态字(MSW),调试寄存器等。有一些例外,其中比较著名的是存储器类型区域(MTRR,memory type range reisters)寄存器和性能监视资源。

以下是基于最新的Intel SDM 卷3-R067版(Order#: 325384)整理的完整处理器架构状态列表。

每个逻辑处理器复制的资源:

  • 通用寄存器(EAX, EBX, ECX, EDX, ESI, EDI, ESP, and EBP)
  • 段寄存器(CS, DS, SS, ES, FS, and GS)
  • 标志寄存器EFLAGS和指令指针寄存器EIP。注意:每个逻辑处理器的CS: EIP/RIP指向当前正在该逻辑处理器上执行的线程的指令流
  • X87浮点寄存器(ST0~ST7,状态字,控制字,标志字,数据操作数指针,指令指针)
  • MMX寄存器(MM0~MM7)
  • XMM寄存器(XMM0~XMM7)和MXCSR寄存器
  • 控制寄存器,系统表指针寄存器(GDTR, LDTR, IDTR, TR)
  • 调试寄存器(DR0, DR1, DR2, DR3, DR6, DR7),和调试控制MSR等
  • 机器检查全局状态寄存器(IA32_MCG_STATUS),和机器检查能力MSR(IA32_MCG_CAP)
  • 温度时钟调制与ACPI电源管理控制MSR等
  • 时间戳计数器MSR等
  • 大多数的其他MSR寄存器,包括页属性表PAT(page attribute table)寄存器。

注:尽管每个逻辑处理器都有自己的页属性表,但是在一个系统中,所有处理器的PAT MSR寄存器设定必须都是一致的,包括逻辑处理器。

  • 本地APIC寄存器等
  • Intel 64处理器上额外的通用寄存器(R8-R15), XMM寄存器(XMM8~XMM15),控制寄存器,IA32_EFER。

逻辑处理器间共享的资源:

  • 存储器类型区域MTRR寄存器等

依赖特定实现复制或共享的资源:

  • IA32_MISC_ENABLE MSR (MSR address: 1A0H)
  • 机器检查架构MCA寄存器等(IA32_MCG_STATUS/IA32_MCG_CAP除外,这两个寄存器一定是复制的寄存器)
  • 性能监视与控制MSR等

其他的资源,例如指令指针与寄存器别名表,也被每个逻辑处理器各复制一份,由于同时跟踪各个逻辑处理器的执行与状态变化。被复制的资源还包括返回栈预测器,用于提升返回指令的预测率。

此外,某些缓冲区(例如,2-入口的指令流缓冲区,TODO: 需要更多信息)也被复制,主要是降低复杂度。

猜你喜欢

转载自blog.csdn.net/qq_43401808/article/details/85850427