Intel Hyper-Threading Technology(6)
阿新 • • 發佈:2019-01-06
Intel® Hypter-Thread (Enhencement)
超執行緒技術在後續各代微架構中的實現比較穩定,有時會做一些增強或改進。對於沒有提及到的改變,則認為是與前代微架構一致,沒有變化。對於分割槽使用的資源,例如讀存緩衝區,寫存緩衝區,重排序緩衝區等,如果容量在後代微架構中有所增大,則每個邏輯處理器可以使用的條目數也相應的增大。
Nehalem Microarchitecture Enhencement
Intel Nehalem微架構支援超執行緒(HT)技術,它的超執行緒在每個處理器核中實現了兩個邏輯處理器,這兩個邏輯處理器共享大多數的執行資源和快取記憶體資源。與Intel NetBurst微架構的超執行緒技術相比,Intel Nehalem微架構的超執行緒實現在下列方面有所不同:
- 被複制(即雙份,每個執行緒使用一份)的資源:暫存器狀態(即程式設計師可見的x86暫存器),重新命名的返回棧緩衝區,大頁ITLB
- 分割槽(即靜態地每個執行緒使用一半)的資源:load緩衝區,store緩衝區,重排序緩衝區ROB,小頁ITLB(即4KB頁面ITLB)
- 競爭共享(即各執行緒爭搶使用)的資源:預約站,各級快取記憶體,行填充緩衝區,DTLB0和二級TLB。
- 交替使用(即每個執行緒按週期交替使用)的資源:為了保持公平,前端(取指/譯碼)交替地輪流供兩個邏輯處理器使用。
- 對超執行緒無感知的資源:執行單元
Haswell Microarchitecture Enhencement
- 微指令佇列中的迴圈流偵測器LSD可以偵測最多達56條微指令的迴圈。如果開啟了超執行緒,佇列中56條微指令條目由兩個邏輯處理器共享使用。
注:Sandy Bridge在單個處理器核中提供了複製的28條目的微指令佇列供每個邏輯處理器使用。
Skylake (Client) Microarchitecture Enhencement
- 譯碼後微指令快取(DSB,即Decoded ICache)可以每週期傳送6條微指令給微指令佇列IDQ(Instruction decoded queue,即uop queue)。
對於IDQ,如果開啟了超執行緒,每個邏輯處理器可以儲存64條微指令,前代是28條。如果沒有開啟超執行緒,單個處理器核可以儲存64條微指令,前代是56條。
英文原文如下:
注:Skylake微架構的超執行緒技術中,IDQ這個資源是被複制的部件,即每個邏輯處理器使用各自的IDQ;前代微架構是分割槽的部件,即兩個邏輯處理器各使用一半。
- IDQ中的迴圈流偵測器LSD可以探測最多達64條微指令的迴圈,不管是否開啟了超執行緒。注:在Skylake Server微架構中,IDQ中的LSD不知何故被禁用了。