簡介
Hyper-Threading,超執行緒技術
生產商為了提高CPU的性能,通常做法是提高CPU的時鐘頻率和增加快取容量。不過CPU的頻率越來越快,再通過提升CPU頻率和增加快取的方法來提高性能,往往會受到製造工藝上的限制以及成本過高的制約。針對已採用的超級計數器(Super Scaler)及超級流水線(Super Pipe-line)的提速技術,英特爾指出了存在的問題:儘管付出了耗電量與晶片尺寸(生產成本)都大大增加的代價,但卻無法成比例地相應提高微處理器性能。與486和Pentium 4相比,使用新技術後晶片的工作頻率及晶片尺寸都擴大了14~15倍,而整數演算性能卻只提高了5~6倍左右。實際上在套用中基於很多原因,CPU的執行單元都沒有被充分使用。如果CPU不能正常讀取數據(匯流排/記憶體的瓶頸),其執行單元利用率會明顯下降。而面臨的技術性課題是與運算器的指令執行速度相比,對快取及主存的訪問時間為100個時鐘周期(以指令數計算相當於數百條指令)以上,的確太慢。英特爾正試圖使用Hyper-Threading技術解決這一問題,提高運行速度
因此,Intel則採用另一個思路去提高CPU的性能,讓CPU可以同時執行多重執行緒,就能夠讓CPU發揮更大效率,即所謂“超執行緒(Hyper-Threading,簡稱“HT”)”技術。超執行緒技術就是利用特殊的硬體指令,把一個物理核心模擬成兩個邏輯核心,讓單個處理器都能使用執行緒級並行計算,進而兼容多執行緒作業系統和軟體,減少了CPU的閒置時間,提高的CPU的運行效率。多執行緒技術一般採用多個微理器即多處理器結構,執行緒與處理器形成一一對應關係。而英特爾Hyper-Threading技術的特點是(1)物理上用一個處理器處理多個執行緒、(2)多執行緒的分配採用根據計數器的空閒狀態進行執行緒處理的SMT(simultaneous multi-threading)方式。
最早出現在2002年的Pentium4上,基於Nehalem架構的Core i7再次引入超執行緒技術,使四核的Corei7可同時處理八個執行緒操作,大幅增強其多執行緒性能。
超執行緒(Hyper-Threading)技術是Intel的創新設計,藉由在一顆實體處理器中放入兩個邏輯處理單元,讓多執行緒軟體可在系統平台上平行處理多項任務,並提升處理器的執行資源的使用率。使用這項技術,處理器的資源利用率平均可提升40%,大大增加處理器的可用性能。超執行緒是同時多執行緒技術(SMT,Simultaneous Multi-Threading)的一種,這種技術可經由複製處理器上的結構狀態,讓同一個處理器上的多個執行緒同步執行並共享處理器的執行資源。對支持多處理器功能的應用程式而言,超執行緒處理器被視為兩個分離的邏輯處理器。應用程式不須修正就可使用這兩個邏輯處理器。同時,每個邏輯處理器都可獨立回響中斷。第一個邏輯處理器可追蹤一個軟體執行緒,而第二個邏輯處理器則可同時追蹤另一個軟體執行緒。由於兩個執行緒共同使用同樣的執行資源,因此不會產生一個執行緒執行的同時,另一個執行緒閒置的狀況。該方式將大大提升每個實體處理器中的執行資源使用率。使用這項技術後,每個實體處理器可成為兩個邏輯處理器,讓多執行緒的應用程式能在每個實體處理器上平行處理執行緒層級的工作,提升了系統效能。隨著應用程式針對平行處理技術的逐步最佳化,超執行緒技術為新功能及用戶不斷增長的需求提供了更大的改善空間。
Hyper-Threading是Intel微處理器採用的一種技術,這種技術能夠讓微處理器在作業系統和應用程式中的性能表現的類似於兩個處理器一樣。這是Inte的IA-32處理器的特性。利用超執行緒技術,微處理器可以同時執行作業系統的兩個指令或執行緒。這樣可以在同一時鐘周期內實現多個操作。對於作業系統而言,超執行緒處理器的性能表現得如同兩個獨立的處理器一樣。由於大部分的作業系統(Windows以及Linux)都支持多處理器,因此作業系統採用超執行緒處理器時可以實現性能加倍。
優點
超執行緒技術只需要消耗很小的核心面積代價,就可以在多任務的情況下提供顯著的性能提升,比起完全再添加一個物理核心來說要划算得多。比起Pentium 4的超執行緒技術,Corei7的優勢是有更大的快取和更大的記憶體頻寬,這樣就更能夠有效的發揮多執行緒的作用。按照的說法,Nehalem的HT可以在增加很少能耗的情況下,讓性能提升20-30%。
缺點
超執行緒技術的缺點有以下幾點:
(1)英特爾P4超執行緒有兩個運行模式,SingleTaskMode(單任務模式)及MultiTaskMode(多任務模式),當程式不支持Multi-Processing(多處理器作業)時,系統會停止其中一個邏輯CPU的運行,把資源集中於單個邏輯CPU 中,讓單執行緒程式不會因其中一個邏輯CPU 閒置而減低性能,但由於被停止運行的邏輯CPU 還是會等待工作,占用一定的資源,因此Hyper-ThreadingCPU運行SingleTaskMode程式模式時,有可能達不到不帶超執行緒功能的CPU性能.
(2)自從Windows XP以後的Windows都支持超執行緒技術。Linux和MacOSX也完美的支持超執行緒技術,並且比Windows的CPU利用率更高。
(3)缺乏大量普通套用軟體的支持,性能因此得不到充分體現.
定位
超執行緒技術雖好,但Intel為劃分CPU的性能和定位,研發代號同為Lynnfield的Core i7800系列/i5700系列,規定只有Core i7800系列支持該技術,Core i5700系列與它無緣。
技術由來
運行
超執行緒技術是在一顆CPU同時執行多個程式而共同分享一顆CPU內的資源,理論上要像兩顆CPU一樣在同一時間執行兩個執行緒,P4處理器需要多加入一個Logical CPU Pointer(邏輯處理單元)。因此新一代的P4HT的核心的面積比以往的P4增大了5%。而其餘部分如ALU(整數運算單元)、FPU(浮點運算單元)、L2Cache(二級快取)則保持不變,這些部分是被分享的。
雖然採用超執行緒技術能同時執行兩個執行緒,但它並不象兩個真正的CPU那樣,每個CPU都具有獨立的資源。當兩個執行緒都同時需要某一個資源時,其中一個要暫時停止,並讓出資源,直到這些資源閒置後才能繼續。因此超執行緒的性能並不等於兩顆CPU的性能。
優勢
採用超執行緒及時可在同一時間裡,應用程式可以使用晶片的不同部分。雖然單執行緒晶片每秒鐘能夠處理成千上萬條指令,但是在任一時刻只能夠對一條指令進行操作。而超執行緒技術可以使晶片同時進行多執行緒處理,使晶片性能得到提升。
晶片
Intel晶片組:
845、845D和845GL是不支持支持超執行緒技術的;845E晶片組自身是支持超執行緒技術的,但許多主機板都需要升級BIOS才能支持;在845E之後推出的所有晶片組都支持支持超執行緒技術,例如845PE/GE/GV以及所有的865/875系列以及915/925系列晶片組都支持超執行緒技術。
VIA晶片組:
P4X266、P4X266A、P4M266、P4X266E和P4X333是不支持支持超執行緒技術的,在P4X400之後推出的所有晶片組都支持支持超執行緒技術,例如P4X400、P4X533、PT800、PT880、PM800和PM880都支持超執行緒技術。
SIS晶片組:
SIS645、SIS645DX、SIS650、SIS651和早期SIS648是不支持支持超執行緒技術的;後期的SIS648、SIS655、SIS648FX、SIS661FX、SIS655FX、SIS655TX、SIS649和SIS656則都支持超執行緒技術。
ULI晶片組:
M1683和M1685都支持超執行緒技術。
ATI晶片組:
ATI在Intel平台所推出的所有晶片組都支持超執行緒技術,包括Radeon 9100 IGP、Radeon 9100 Pro IGP和RX330。
nVidia晶片組:
nForce5,6,7系列晶片組都支持超執行緒技術。
條件
(1)需要CPU支持正式支持超執行緒技術的CPU有Pentium4 3.06GHz 、2.40C、2.60C、2.80C 、3.0GHz、3.2GHz以及Prescott處理器,還有部分型號的Xeon。
(2)需要主機板晶片組支持
正式支持超執行緒技術的主機板晶片組的主要型號包括Intel的875P,E7205,850E,865PE/G/P,845PE/GE/GV,845G(B-stepping),845E。875P,E7205,865PE/G/P,845PE/GE/GV晶片組均可正常支持超執行緒技術的使用,而早前的845E以及850E晶片組只要升級BIOS就可以解決支持的問題。SIS方面有SiS645DX(B版)、SiS648(B版)、SIS655、SIS658、SIS648FX。VIA方面有P4X400A、P4X600、P4X800。
(3)需要主機板BIOS支持
主機板廠商必須在BIOS中支持超執行緒才行。
(4)需要作業系統支持
微軟的作業系統中只有Windows XP專業版及後續版本支持此功能,而在Windows2000上實現對超執行緒支持的計畫已經取消了。
(5)需要套用軟體支持
區別
利用超執行緒(Hyper-Threading)技術可以讓單物理核心的處理器通過模擬方式實現在對稱處理模式下雙處理器運行的效果。但是使用超執行緒技術的兩個邏輯處理器並沒有獨立的執行單元、整數單元、暫存器甚至快取等資源。它們的運行過程中仍需要共用執行單元、快取和系統匯流排接口,在執行多執行緒時兩個邏輯處理器均是交替的工作,如果兩個執行緒都同時需要某一個資源時,其中一個要暫停並要讓出資源,要待該資源閒置才能繼續。
而雙核處理器中每個核心擁有獨立的指令集、執行單元,可以同時執行多項任務,能讓處理器資源真正實現並行處理模式,其效率和性能提升要比超執行緒技術高得多。
例如:在執行某一運算任務時,在單執行緒情況下需要6個時鐘周期,但雙執行緒下就能在3個時鐘周期內完成。如果使用超執行緒技術的單核處理器在某周期中出現重疊的情況就會導致某個執行緒出現延遲,那么整個運算周期可能會增加到4個。
Hyper-Threading和處理器溫度
在測試中使用了最新的Intel奔騰43.06GHz處理器,這款處理器支持Hyper-Threading技術。從一個不常用的角度來談談這項技術:該技術對CPU發熱量的影響。 一方面,由於該技術的運用,核心的效率提高了(3.06GHz處理器比2.8GHz的提高了5%以上)。這在理論上就帶來了更大的發熱量。另一方面,一個物理處理器被系統認做了兩個邏輯處理器,其負載就會更有效率。 通過主機板BIOS在打開和關閉HT技術的情況下進行了兩組測試,室溫20C,風扇轉速調至最高。通過運行SiSoft Sandra 2003和UT來“加熱”處理器。 在SiSoft Sandra 2003運行之前,先運行了CPU Burn軟體(不支持HT技術)10分鐘,並記錄下處理器溫度。隨之運行了SiSoft Sandra 2003(支持HT)中的Burn-in測試項57次,記錄下CPU溫度。 最後運行了UT2003十分鐘,記錄下CPU溫度。(溫度的獲得均通過華碩的PC Probe程式) 測試的結果如下:
在待機模式下處理器的溫度在激活HT技術後較低,在不支持HT技術的CPU Burn中也是如此。 不過在對HT技術做過最佳化的軟體中,軟體會更有效率的使用CPU管線,從而增加系統發熱量。同時由於在UT2003中的測試結果,決定在正式測試中關閉HT技術,以增加溫度提高幅度。
檢測程式
Intel英特爾Hyper-Threading(超執行緒技術)檢測程式1.7簡體中文版For WinXP/WinXP-64(2006年5月13日發布)Hyper-Threading Technology(超執行緒技術)是Intel的一項創新設計,其設計原理是在一顆處理器中放入二個邏輯處理單元,讓多執行緒軟體可在系統平台上平行處理多項任務,並提升處理器執行資源的使用率。使用這項技術,處理器的資源利用率平均可提升百分之40,大大增加處理的傳輸量。Intel發布的這款名為Hyper-Threading Technology Test Utility的測試工具,它可以測試你的CPU,晶片組、以及bios是否支持超執行緒技術。