1. 程式人生 > >超執行緒技術

超執行緒技術

超執行緒是Intel 所研發的一種技術,於2002年釋出。超執行緒的英文是HT技術,全名為Hyper-Threading,中文又名超執行緒。超執行緒技術原先只應用於Intel Xeon處理器中,當時稱為Super-Threading。之後陸續應用在Pentium 4中,將技術主流化。

通常來說,超執行緒功能在BIOS裡是預設開啟的,
如果你CPU支援超執行緒,則會自動模擬為物理核心X2;
如果超執行緒沒有開啟,可以在開機的時候,進入BIOS裡,找Hyper-Threading項,改為enabled就是開啟超執行緒

英特爾表示,超執行緒技術讓(P4)處理器增加5%的裸晶面積,就可以換來15%~30%的效能提升。但實際上,在某些程式或未對多執行緒編譯的程式而言,超執行緒反而會降低效能。除此之外,超執行緒技術亦要作業系統的配合,普通支援多處理器技術的系統亦未必能充分發揮該技術。例如Windows 2000,英特爾並不鼓勵使用者在此係統中利用超執行緒。原先不支援多核心的Windows XPHome Edition卻支援超執行緒技術。

工作原理:
儘管提高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的效能。

實現條件
需要CPU支援正式支援超執行緒技術的CPU有Core i3、Core i5、Core i7全系。
在老CPU中,Pentium4 3.06GHz 、2.40C、2.60C、2.80C 、3.0GHz、3.2GHz以及Prescott處理器,還有部分型號的Xeon支援超執行緒技術。
需要主機板晶片組支援
需要正式支援超執行緒技術的主機板晶片組支援超執行緒技術的使用,而早前的一些晶片組只能升級BIOS就可以解決支援的問題
需要主機板BIOS支援
主機板廠商必須在BIOS中支援超執行緒才行。
需要作業系統支援
微軟的作業系統中只有Windows XP專業版及後續版本支援此功能,而在Windows 2000上實現對超執行緒支援的計劃已經取消了。
需要應用軟體支援
一般來說,只要能夠支援多處理器的軟體均可支援超執行緒技術,但是實際上這樣的軟體並不多,而且偏向於圖形、視訊處理等專業軟體方面,遊戲軟體極少有支援的。

  • CPU的支援,實現"超執行緒"的功能必須選購一塊支援"HT"技術的處理器。Intel 支援這一技術的CPU有Core i3、Core i5、Core i7全系。在老CPU中,Pentium4 3.06GHz 、2.40C、2.60C、2.80C 、3.0GHz、3.2GHz以及Prescott處理器,還有部分型號的Xeon支援超執行緒技術。
    *主機板晶片組和主機板BIOS的支援
    正式支援"HT"技術的晶片組有Intel的875P、E7205、850E、865PE/G/P、845PE/GE/GV、845G(B-stepping)、845E。其中875P、E7205、865PE/G/P、845PE/GE/GV以及最新推出的 915/925晶片組均可直接支援超執行緒技術的使用,而早前的845E以及850E晶片組,只要升級BIOS就可以解決支援的問題。SiS方面有SiS645DX(B版)、SiS648(B版)、SiS655、SiS658、SiS648FX。VIA方面有P4X400A、P4X600、P4X800。同時,主機板的BIOS也必須支援超執行緒功能。
    *作業系統和應用軟體的支援
    在微軟的作業系統中只有Windows XP及以上的版本才能正式支援"超執行緒"技術,Windows 98/Me/2000均不支援此項功能。
    一般說來,最大發揮HT技術的執行效能還需要真正支援超執行緒技術的軟體。