超執行緒(超執行緒技術)

超執行緒

超執行緒技術一般指本詞條

超執行緒HT, Hyper-Threading)是英特爾研發的一種技術,於2002年發布。超執行緒技術原先只套用於Xeon 處理器中,當時稱為“Super-Threading”。之後陸續套用在Pentium 4 HT中。早期代號為Jackson。

通過此技術,英特爾實現在一個實體CPU中,提供兩個邏輯執行緒。之後的Pentium D縱使不支持超執行緒技術,但就集成了兩個實體核心,所以仍會見到兩個執行緒。超執行緒的未來發展,是提升處理器的邏輯執行緒。英特爾於2016年發布的Core i7-6950X便是將10核心的處理器,加上超執行緒技術,使之成為20個邏輯執行緒的產品。

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

基本介紹

  • 中文名:超執行緒
  • 外文名:Super-Threading/Hyper-Threading
  • 發布時間:2002年
  • 公司:英特爾
  • 簡稱:HT
  • 學科:計算機
基本簡介,運作方式,使用HT技術的CPU,顧慮,使用前提,實際問題,優點,缺點,另見,

基本簡介

通過超執行緒技術,英特爾成為第一家實體處理器中,提供兩個邏輯執行緒的公司。之後的Pentium D縱使不支持超執行緒技術,但就集成了兩個實體核心,所以仍會見到兩個邏輯執行緒。超執行緒的未來發展,是提升處理器的邏輯執行緒,英特爾有計畫將8核心的處理器,加以配合超執行緒技術,使之成為16個邏輯執行緒的產品。
英特爾表示,超執行緒技術讓(P4)處理器增加5%的裸晶面積,就可以換來15%~30%的效能提升。但實際上,在某些程式或未對多執行緒編譯的程式而言,超執行緒反而會降低效能。除此之外,超執行緒技術亦要作業系統的配合,普通支持多處理器技術的系統亦未必能充分發揮該技術。例如Windows 2000,英特爾並不鼓勵使用者在此系統中利用超執行緒。原先不支持多核心Windows XPHome Edition卻支持超執行緒技術

運作方式

每個單位時間內,一個單運行管線的CPU只能處理一個執行緒作業系統:thread),以這樣的單位進行,如果想要在一單位時間內處理超過一個執行緒是不可能的,除非是有兩個CPU的實體單元。雙核心技術是將兩個一樣的CPU放置於一個封裝內(或直接將兩個CPU做成一個晶片),而英特爾的HT技術是在CPU內部僅複製必要的資源、讓兩個執行緒可同時運行;在一單位時間內處理兩個執行緒的工作,模擬實體雙核心、雙執行緒運作。
Intel自Pentium開始引入超標量、亂序運行、大量的暫存器暫存器重命名、多指令解碼器、預測運行等特性;這些特性的原理是讓CPU擁有大量資源,並可以預先運行及平行運行指令,以增加指令運行效率,可是在現實中這些資源經常閒置;為了有效利用這些資源,就乾脆再增加一些資源來運行第二個執行緒,讓這些閒置資源可執行另一個執行緒,而且CPU只要增加少數資源就可以模擬成兩個執行緒運作。
P4處理器需多加一個Logical CPU Pointer(邏輯處理單元)。因此P4 HT的die的面積比以往的P4增大了5%。而其餘部分如ALU(整數運算單元)、FPU(浮點運算單元)、L2 Cache(二級快取)並未增加,且是共享的。

使用HT技術的CPU

Pentium 4CPU中,Northwood及其之後推出的版本內置超執行緒技術;但在早期的Northwood核心中,一些型號的HT技術被關閉,縱使有軟體偵測到超執行緒技術的存在,用戶並不可以激活;而雙核心的Pentium D中也只有EE版提供HT技術。英特爾的Core 2 Duo處理器則沒有HT技術。但處理器已集成了兩個實體CPU核心,所以仍然支持兩個執行緒。
而在2008年推出的Intel Core i7及Intel Atom處理器又支持類似HT的技術,在Nehalem中,Hyper-Threading 大舉捲土重來。在 IntelNetBurst架構的 Northwood 版本中開始導入的 Hyper-Threading-在 Intel 世界之外稱為 Simultaneous Multi-Threading (SMT)-是善用執行緒平行性的方法,讓單一核心在套用軟體層能運行兩個邏輯執行緒Intel Core i3(第八代除外)和Intel Core i7(第九代除外)支持該技術,雙核心的Intel Core i5也支持該技術。從Kaby Lake Pentium開始,目前定位低級的Pentium(部分型號)也支持超執行緒技術。

顧慮

把運行管線的狀態,想像成流水線,資源A→資源B→資源C,來了兩條數據要計算, 一條需要消耗A的100%→B的50%→C的50%,另一條一樣需要消耗A的100%→B的50%→C的50%, 一條單純的(無HT)的運行管線的資源A需要先運用100%性能把第一條運算完才能再運算下一條,但後面的資源B跟C卻都有50%性能的浪費; 如果把運行管線的資源A,變成兩個,資源B跟C依然只有一個, 那這條管線就可以變成“兩個資源A同時消耗100%性能運算兩條數據,到了資源B跟C階段時,兩條數據再各自消耗50%的性能”, 即達成“不必增加一條完整的運行管線,卻能在一樣時間運算兩條執行緒”
但實際套用時,運行管線不會都是收到這么完美的需運算數據, 可能會是需消耗“A的10%→B的70%→C的70%”+“A的30%→B的50%→C的70”+......等多種不同性能需求的需運算數據, 依照檔案的統計數字,整體能夠提升的性能約為5~15%左右,且萬一發生資源互搶的情形時,整體性能反而會下降。 (以上是非常簡略地描述大略情形,實際的超執行緒架構從P4時代至i系列6代,每一代都有所進化)
要令計算機支持超執行緒技術,通常需作業系統和硬體的配合。晶片組需要支持具有HT技術之處理器。為此,當時的Intel推出了新的晶片組,i865PE和i875P。要充分發揮超執行緒的性能,用戶要使用Windows 2000之後的作業系統,而Windows XP家用版亦支持超執行緒技術。除了微軟的Windows外,Linux kernel 2.4.x亦開始支持該技術。軟體方面,通常最佳化多執行緒的程式都可以支持到。早期,遊戲軟體的支持是比較少。但隨著多核心技術的普及,愈來愈多遊戲軟體支持多執行緒的處理器。

使用前提

需要CPU支持
正式支持超執行緒技術的CPU有Core i3、Core i5、除i7-9700k以外的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上實現對超執行緒支持的計畫已經取消了。
需要套用軟體支持
一般來說,只要能夠支持多處理器的軟體均可支持超執行緒技術,但是實際上這樣的軟體並不多,而且偏向於圖形、視頻處理等專業軟體方面,遊戲軟體極少有支持的。

實際問題

由於處理器實際上只有一個核心,能夠提升的效能約為5~15%左右,且萬一發生資源互搶的情形時,整體效能反而會下拉。這亦是AMD不提供虛擬雙核心處理器的理由。另外,由於架構的不同,AMD的處理器對多工處理的表現會較好,所以沒有迫切性令產品支持相關的技術。
要令到計算機支持超執行緒技術,必須要軟體和硬體的配合。處理器本身要支持超執行緒,晶片組亦要支持相關處理器。為此,當時的Intel推出了新的晶片組,i865PE和i875P。要充分發揮超執行緒的效能,使用者要使用Windows 2000之後的作業系統,而Windows XP家用版亦同樣支持超執行緒技術。除了微軟的Windows外,Linuxkernel 2.4.x亦開始支持該技術。軟體方面,不是所有程式都可以發揮超執行緒,通常最佳化了多處理器的程式都可以支持到。此類軟體通常是圖形或視頻處理軟體。早期,遊戲軟體的支持是比較少。但隨著多核心技術的普及,愈來愈多遊戲軟體支持多執行緒的處理器。

優點

1.超執行緒技術的優勢在於同時進行多任務批處理工作,儘管支持超執行緒技術的軟體不多,也只有少數的軟體可以享受到由超執行緒技術帶來的性能提升,但是這符合今後軟體等技術的發展方向,今後更多的軟體將受益於超執行緒技術。
2.從來看,部分客戶可以發覺在運行某些特定軟體時,超執行緒技術讓系統有了30%的性能提升,為超執行緒技術最佳化的軟體都能夠享受到超執行緒技術的好處。
3.客戶同時運行兩個以上的軟體時候,將可以明顯的感受到這兩個軟體的性能都得到提升相比關閉超執行緒技術的情況下都有很大的提升,超執行緒技術的效率優勢只有在多任務操作時候才能得到發揮。
4.支持超執行緒技術的Windows XP作業系統,其中的很多系統軟體都已經針對超執行緒技術最佳化過,因此在使用Windows 作業系統的時候可以很好的享受到超執行緒技術帶來好處。

缺點

1.因為超執行緒技術是對多任務處理有優勢,因此當運行單執行緒運用軟體時,超執行緒技術將會降低系統性能,尤其在多執行緒作業系統運行單執行緒軟體時將容易出現此問題。
2.在打開超執行緒支持後,如果處理器以雙處理器模式工作,那么處理器內部快取就會被劃分成幾區域,互相共享內部資源。對於不支持多處理器工作的軟體在雙處理器上運行時出錯的機率要比單處理器上高很多。
3.因為很多工作站軟體為Windows 2000作業系統進行過最佳化,但是採用Windows 2000這樣的作業系統的工作站無法完全利用超執行緒技術的優勢,也帶來不了高的工作效率
4.超執行緒技術只能提高40%左右的性能(測評時可以看成50%,即Core i3 的執行效率為3核速率,Core i5 4核 HT與Core i7 的執行效率為6核速率)
與雙核心區別
超執行緒(Hyper Threading)技術,是在程式處理上比較經典的解決方案,具有超執行緒技術的CPU,搭配支持超執行緒技術的Windows 系統(Windows XP/2003),可以減少系統資源的浪費,從而提高了處理器的工作效率。
實際上,超執行緒技術是把一個處理器模擬為兩個處理器使用,這樣能有效地利用和分配資源,達到提高整體性能的目的,這就是為什麼超執行緒CPU在系統中也會被識別成兩個CPU的原因。
雙核心CPU則不同,雙核心處理器的概念就是將兩顆處理器的晶片,通過全新的封裝技術,整合成為一顆處理器,在這一顆處理器中擁有兩顆核心,真正地實現了多處理器協同工作。雙核心處理器核心內的資源都是獨立的,而且也可以交換使用資源,核心與核心之間溝通的延遲遠比多個單核心處理器同時運行好。

另見

相關詞條

熱門詞條

聯絡我們