1. 程式人生 > >Intel Hyper-Threading Technology(3)

Intel Hyper-Threading Technology(3)

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: 需要更多資訊)也被複制,主要是降低複雜度。