CPU : 超線程技術HT
CPU生產商為了提高CPU的性能,
通常做法是提高CPU的時鐘頻率和增加緩存容量。
不過目前CPU的頻率越來越快,
如果再通過提升CPU頻率和增加緩存的方法來提高性能,
往往會受到製造工藝上的限制以及成本過高的制約。
儘管提高CPU的時鐘頻率和增加緩存容量後的確可以改善性能,
但這樣的CPU性能提高在技術上存在較大的難度。
實際上在應用中基於很多原因,
CPU的執行單元都沒有被充分使用。
如果CPU不能正常讀取資料(匯流排/記憶體的瓶頸),
其執行單元利用率會明顯下降。
另外就是目前大多數執行線程缺乏ILP(Instruction-Level Parallelism,多種指令同時執行)支援。
這些都造成了目前CPU的性能沒有得到全部的發揮。
因此,Intel則採用另一個思路去提高CPU的性能,讓CPU可以同時執行多重線程,
就能夠讓CPU發揮更大效率,
即所謂“超線程(Hyper-Threading,簡稱“HT”)”技術。
超線程技術就是利用特殊的硬體指令,
把兩個邏輯內核類比成兩個物理晶片,
讓單個處理器都能使用線程級平行計算,
進而相容多線程作業系統和軟體,
減少了CPU的閒置時間,
提高的CPU的運行效率。
採用超線程及時可在同一時間裏,
應用程式可以使用晶片的不同部分。
雖然單線程晶片每秒鐘能夠處理成千上萬條指令,
但是在任一時刻只能夠對一條指令進行操作。
而超線程技術可以使晶片同時進行多線程處理,
使晶片性能得到提升。
超線程技術是在一顆CPU同時執行多個程式而共同分享一顆CPU內的資源,
理論上要像兩顆CPU一樣在同一時間執行兩個線程,
P4處理器需要多加入一個Logical CPU Pointer(邏輯處理單元)。
因此新一代的P4 HT的die的面積比以往的P4增大了5%。
而其餘部分如ALU(整數運算單元)、FPU(浮點運算單元)、L2 Cache(二級緩存)則保持不變,
這些部分是被分享的。
雖然採用超線程技術能同時執行兩個線程,
但它並不象兩個真正的CPU那樣,
每各CPU都具有獨立的資源。
當兩個線程都同時需要某一個資源時,
其中一個要暫時停止,並讓出資源,
直到這些資源閒置後才能繼續。
因此超線程的性能並不等於兩顆CPU的性能。
英代爾P4 超線程有兩個運行模式,
Single Task Mode(單任務模式)及Multi Task Mode(多工模式),
當程式不支援Multi-Processing(多處理器作業)時,
系統會停止其中一個邏輯CPU的運行,把資源集中於單個邏輯CPU中,
讓單線程程式不會因其中一個邏輯CPU閒置而減低性能,
但由於被停止運行的邏輯CPU還是會等待工作,
佔用一定的資源,
因此Hyper-Threading CPU運行Single Task Mode程式模式時,
有可能達不到不帶超線程功能的CPU性能,
但性能差距不會太大。
也就是說,當運行單線程運用軟體時,
超線程技術甚至會降低系統性能,
尤其在多線程作業系統運行單線程軟體時容易出現此問題。
需要注意的是,含有超線程技術的CPU需要晶片組、軟體支援,
才能比較理想的發揮該項技術的優勢。
目前支援超線程技術的晶片組包括如:英代爾i845GE、PE及矽統iSR658 RDRAM、SiS645DX、SiS651可直接支援超線程;
英代爾i845E、i850E通過升級BIOS後可支持;威盛P4X400、P4X400A可支持,
但未獲得正式授權。
作業系統如:Microsoft Windows XP、Microsoft Windows 2003,Linux kernel 2.4.x以後的版本也支援超線程技術。
引述出處:
中國中關村.