超執行緒技術

超執行緒技術

CPU生產商為了提高CPU的性能,通常做法是提高CPU的時鐘頻率和增加快取容量。不過目前CPU的頻率越來越快,如果再通過提升CPU頻率和增加快取的方法來提高性能,往往會受到製造工藝上的限制以及成本過高的制約。於是出現了超執行緒技術。

超執行緒技術超執行緒技術
CPU生產商為了提高CPU的性能,通常做法是提高CPU的時鐘頻率和增加快取容量。不過目前CPU的頻率越來越快,如果再通過提升CPU頻率和增加快取的方法來提高性能,往往會受到製造工藝上的限制以及成本過高的制約。於是出現了超執行緒技術。

概述

Intel正式發布了“Hyper-Threading Technology(超執行緒技術)”這項技術將率先在XERON處理器上得到套用。通過使用該技術,Intel將提供世界上首枚集成了雙邏輯處理器單元的物理處理器(其實就是在一個處理器上整合了兩個邏輯處理器單元),據說能夠提高40%的處理器性能,類似的技術似乎也將出現在AMDK8-Hammer處理器上。

何為Hyper-Threading:

當今的處理器發展普遍向著提高處理器指令平鋪速率的方向邁進,但由於所使用的處理器資源會有衝突,因此性能提升的效果並不理想。而通過Hyper-Threading技術,通過在一枚處理器上整合兩個邏輯處理器(註:是處理器而不是運算單元)單元,使得具有這種技術的新型CPU具有能同時執行多個執行緒的能力,而這是現有其它微處理器都不能做到的。

超執行緒技術超執行緒技術

簡單的說,Hyper Threading是一種同步多執行緒SMT,simultaneous Multi-threading)技術,它的原理很簡單,就是把一顆CPU當成兩顆來用,將一顆具Hyper-Threading功能的“實體”處理器變成兩個“邏輯”處理器而邏輯處理器對於作業系統來說跟實體處理器並沒什麼兩樣,因此作業系統會把工作執行緒分派給這“兩顆”處理器去執行,讓多種應用程式或單一應用程式的多個執行緒(thread),能夠同時在同一顆處理器上執行;不過兩個邏輯處理器是共享這顆CPU的所有執行資源。

技術簡介

Hyper-Threading做法是複製一顆處理器的架構指揮中心(architectural state)變成兩個,使得Windows作業系統認為是在與兩顆處理器溝通,但這兩個架構指揮中心共享該處理器的工作資源(execution resources)。架構指揮中心追蹤每個程式或執行緒的執行狀況;工作資源指的則是“處理器用來進行加、乘、載入等工作的單元(execution unit)”。如此一來,作業系統把工作執行緒安排好以後,就分派給這兩個邏輯上的處理器執行,而這顆CPU的每個執行單元等於在同樣的時間內要服務兩個“指令處理中心”,當然它的效率就高多了,作業系統就把一顆實體的處理器認定為兩個邏輯處理器作工作指派,當然整體工作效能就比沒有具備Hyper-Threading 的處理器高出許多,性價比自然高出許多。

超執行緒技術實現的必要條件

除了硬體支持之外,我們必須注意到,超執行緒技術的實現還需要軟體的支持才能夠發揮出應有的威力。首先是作業系統的支持,我們必須使用支持雙處理器的作業系統,如Win2000等才能完全發揮出超執行緒技術的性能。至於軟體方面,目前很多專業的應用程式對於雙處理器都提供了支持,如著名的圖形處理軟體3DmaxMaya等。

此外,很多用戶可能會有疑問,既然超執行緒技術以前專門針對伺服器處理器,那么現有的眾多軟體,能否完全兼容支持超執行緒技術的處理器,是否還需要什麼修改才能運行呢?其實這個我們大可不必擔心,現有的IA32軟體不需進行任何的修改,就可以在支持超執行緒的P4處理器上很好的運行了。

超執行緒=效能提升?

一般很多人都會認為,採用超執行緒技術,就能使得系統效能大幅提升,但是事實真是如此么?不要忘了我們前面說到的超執行緒技術實現的必要條件,這可是超執行緒技術發揮應有效能的前提條件。除了作業系統支持之外,還必須要軟體的支持。從這點我們就可以看出,就目前的軟體現狀來說,支持雙處理器技術的軟體畢竟還在少數。對於大多數軟體來說,目前由於設計的原理不同,還並不能從超執行緒技術上得到直接的好處。因為超執行緒技術是線上程級別上並行處理命令,按執行緒動態分配處理器等資源。該技術的核心理念是“並行度(Parallelism)”,也就是提高命令執行的並行度、提高每個時鐘的效率。這就需要軟體在設計上執行緒化,提高並行處理的能力。而目前PC上的應用程式幾乎沒有為此作出相應的最佳化,採用超執行緒技術並沒不能獲得效能的大幅提升。

上面說的只是目前軟體支持的現狀,作業系統在這個方面則沒有太大的問題,畢竟Windows的某些版本、Linux都是支持多處理器的作業系統。並且隨著Intel支持超執行緒技術的處理器面世之後,憑藉Intel處理器的號召力,必然會引起目前應用程式設計上的改變,必然會有更多的支持並行執行緒處理的軟體面世,屆時,當然是支持超執行緒處理器大顯身手的時候了。那時候,普通用戶才能夠從超執行緒技術中得到最直接的好處。

超執行緒技術超執行緒技術

儘管提高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需要晶片組、軟體支持,才能比較理想的發揮該項技術的優勢。作業系統如:Microsoft Windows XPMicrosoft Windows 2003Linux kernel 2.4.x以後的版本也支持超執行緒技術。目前支持超執行緒技術的晶片組包括如:

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系列晶片組都支持超執行緒技術。

優缺點

超執行緒技術超執行緒技術
HT技術優點:

.超執行緒技術的優勢在於同時進行多任務批處理工作,儘管現在支持超執行緒技術的軟體不多,也只有少數的軟體可以享受到由超執行緒技術帶來的性能提升,但是這符合今後軟體等技術的發展方向,今後更多的軟體將受益於超執行緒技術。

2.從目前來看,部分客戶發可以發覺在運行某些特定軟體時,超執行緒技術讓系統有了30%的性能提升,為超執行緒技術最佳化的軟體都能夠享受到超執行緒技術的好處。

3.客戶同時運行兩個以上的軟體軟體時候,將可以明顯的感受到這兩個軟體的性能都得到提升相比關閉超執行緒技術的情況下都有很大的提升,超執行緒技術的效率優勢只有在多任務操作時候才能得到發揮。

4.另外目前支持超執行緒技術的Windows XP作業系統,其中的很多系統軟體都已經針對超執行緒技術最佳化過,因此在使用Windows作業系統的時候可以很好的享受到超執行緒技術帶來好處。

HT技術缺點:

1.因為超執行緒技術是對多任務處理有優勢,因此當運行單執行緒運用軟體時,超執行緒技術將會降低系統性能,尤其在多執行緒作業系統運行單執行緒軟體時將容易出現此問題(這也是在WindowsXP中運行顯示卡的測試軟體時候,得分下降了一點)。

2.在打開超執行緒支持後,如果處理器以雙處理器模式工作,那么處理器內部快取就會被劃分成幾區域,互相共享內部資源。對於不支持多處理器工作的軟體在雙處理器上運行時出錯的機率要比單處理器上高很多。

3.目前因為很多工作戰軟體為Windows 2000作業系統進行過最佳化,但是採用Windows2000這樣的作業系統的工作戰無法完全利用超執行緒技術的優勢,也帶來不了高的工作效率。

通過上面的解答,我們應該知道了超執行緒技術的確實對系統性能提升有好處,但是這僅對多任務處理的時候有優勢,在進行單各任務處理的時候,優勢表現不出來,而且因為打開超執行緒,處理器內部快取就會被劃分成幾區域,互相共享內部資源,造成單個的子系統性能下降。個人認為,用戶在進行單任務操作時候,沒有必要打開超執行緒,只有多任務操作時候可以適時打開超執行緒,享受超執行緒技術帶來的好處。

免費升級超執行緒

超執行緒(HT)是Intel新款P4處理器才具有的一項功能,這項技術能顯著提高計算機在多任務並行時的處理能力。但大多數人所使用的CPU並不具備這個功能,並且近期沒有升級硬體的打算。

最近筆者試用了一款叫做Process Tamer,它能實現超執行緒技術類似的功能,即根據程式運行情況自動分配CPU時間。那么,這款軟體究竟可以解決哪些問題呢?看看下面的典型例子:

①使用QQ/MSN同時多人視頻時,系統進行其他操作變得異常遲緩。

②打開包含較多圖片、Flash、視頻的網頁時,IE界面無法自動刷新,其他程式也陷入假死。

Process Tamer 小檔案

軟體版本:2.00.15 軟體大小:1.3MB

軟體性質:免費軟體 運行環境:Windows 2000/XP

下載地址:http://www.newhua.com/cfan/200517/protm2015.exe

下載安裝這個軟體後,螢幕右下角的系統托盤中就出現了一個天平的圖示,這樣Process Tamer就會自動平衡各個進程對CPU的資源占用,提高多任務間切換的速度。

由於Process Tamer的自動調整機制可能造成一些問題,比如在CPU占用率高時自動降低正在進行記錄操作的Nero進程優先權,有可能把盤刻“飛”,所以還需要手動更改一些設定。

第一步:右擊系統托盤中的Process Tamer圖示,選擇“Configure”(設定),打開配置面板。

第二步:在彈出視窗中切換到“Processes”(進程)標籤,在其下方的列表中就顯示了當前已經運行的進程(CPU占用低於1%的默認不顯示),找到需要更改的進程,本例中我們選擇nero.exe,在其“Explicit Rule”(顯式規則)列的下拉列表中選擇“Ignore”(忽略),點擊“確定”(見圖)。

超執行緒技術超執行緒技術
 

 

小提示

在配置界面中去除“Hide<1%CPU”(隱藏CPU占用<1%的進程)的勾選就能顯示所有進程。

原理與誤區

很多文章都把這個軟體神話了(包括有些大媒體的文章),其實它的作用只能說是用軟體方式改善多任務的使用狀況,與真正的基於硬體的超執行緒技術是有區別的。而有的文章卻說“極力推薦各位賽揚D處理器用戶們使用這個軟體”,這就有點“偽科學”的嫌疑了。

Process Tamer實現多任務速度最佳化的原理是:在系統出現CPU高負載運行時,降低占用CPU時間最多的進程的優先權,提高那些被別的進程搶占CPU時間而導致回響遲滯的進程的優先權,這樣就能降低系統出現假死的機率。經過測試發現,在運行Process Tamer時,系統並沒有啟動新的服務,所以判斷該程式是運行在應用程式層,而非系統服務層的,也就是說,該軟體自身的優先權切換功能也受到系統速度的影響。

IT辭彙

定位諮詢 | 地理信息系統 | 目錄服務 | 網際網路數據中心 | 信息服務 | 超執行緒技術 | 人工智慧 | 業務流程管理

相關詞條

相關搜尋

熱門詞條

聯絡我們