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

Intel Hyper-Threading Technology(4)

Partitioned Resources

某些緩衝區是共享使用的,但是每個邏輯處理器只能使用一半的條目。這些資源被稱為分割槽的資源。分割槽的目的是:

  • 操作上的公平性
  • 當一個邏輯處理器上的執行停頓時,另一個邏輯處理器有能力可以繼續執行。

例如:快取記憶體未命中,分支預測失敗,指令依賴都可能會將邏輯處理器執行指令阻塞數個週期。資源分割槽可以避免停頓的邏輯器阻塞另一個邏輯處理器的繼續執行。

通常,位於主流水線各級上的用於各階段指令的緩衝區都是分割槽使用的。這些緩衝區包括位於執行跟蹤片快取區TC後的微指令佇列,暫存器重新命名階段後的佇列,用於指令退役的重排序緩衝區ROB,以及讀存緩衝區與寫存緩衝區。

對於讀存緩衝區與寫存緩衝區,分割槽機制還可以簡化為每個邏輯處理器實現訪存排序以及偵測訪存排序衝突的複雜度。

Shared Resources

物理處理器中的大部分資源,包括快取記憶體與所有的執行單元,都是在邏輯處理器之間完全共享的,這樣可以提升資源的動態利用率。某些共享的資源是線性地址定址的,例如DTLB,(注:即兩個邏輯處理器可能會轉換同樣的線性地址,但是轉換後對應不同的實體地址,因為是不同的程式碼執行緒)。這樣的資源有一個邏輯處理器標識(ID)位,用來區分某個條目是屬於哪個邏輯處理器的。

根據一個上下文標誌位(context-ID bit),一級快取可以執行在兩種模式:

  • 共享模式:L1資料快取完全在兩個邏輯處理器之間共享使用。

注:一級快取是按實體地址查詢的,所以無需邏輯處理器標識位。

  • 自適應模式:在這種模式下,利用頁目錄的儲存器訪問被完全的對映在共享使用L1資料快取的兩個邏輯處理器中。英文原文如下:
  • Adpative Mode:In adaptive mode, memory accesses using the page directory is mapped identically across logical processors sharing the L1 data chache.