超線程

英特爾所研發的一種技術

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

徠超線程技術是在一顆CPU同時執行多個程序而共同分享一顆CPU內的資源,理論上要像兩顆CPU一樣在同一時間執行兩個線程,P4處理器需要多加入一個Logical CPU Pointer(邏輯處理單元)。超線程技術就是利用特殊的硬體指令,把兩個邏輯內核模擬成兩個物理晶元,讓單個處理器都能使用線程級并行計算,進而兼容多線程操作系統和軟體,減少了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的性能。

運作方式


每個單位時間內, CPU只能處理一個線程,以這樣的單位進行,如果想要在單位時間內處理超過一個的線程,是不可能的,除非是有兩個 核心處理單元,英特爾的 HT技術便是以單個核心處理單元,去整合兩個邏輯處理單元,也就是一個實體 核心,兩個邏輯 核心,在單位時間內處理兩個線程,模擬 雙核心運作。

與多核心的區別


超線程技術與多核體系結構的區別如下:①超線程技術是通過延遲隱藏的方法,提高了處理器的性能,本質上,就是多個線程共享一個處理單元。因此,採用超線程技術所獲得的性能並不是真正意義上的并行。從而採用超線程技術獲得的性能提升,將會隨著應用程序以及硬體平台的不同而參差不齊。②多核處理器是將兩個甚至更多的獨立執行單元,嵌入到一個處理器內部。每個指令序列(線程),都具有一個完整的硬體執行環境,所以各線程之間就實現了真正意義上的并行。 
超線程技術與多核技術相結合可以給應用程序帶來更大的優化空間,進而極大地提高系統的吞吐率

技術支持


技術原理

超線程技術效果圖
超線程技術效果圖
“超線程”(Hyperthreading Technology)技術就是通過採用特殊的硬體指令,可以把兩個邏輯內核模擬成兩個物理超線程晶元,在單處理器中實現線程級的并行計算,同時在相應的軟硬
件的支持下大幅度的提高運行效能,從而實現在單處理器上模擬雙處理器的效能。其實,從實質上說,超線程是一種可以將CPU內部暫時閑置處理資源充分“調動”起來的技術。

實現條件

* 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技術的運行效能還需要真正支持超線程技術的軟體。

使用前提


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上實現對超線程支持的計劃已經取消了。

應用軟體支持

一般來說,只要能夠支持多處理器的軟體均可支持超線程技術,但是實際上這樣的軟體並不多,而且偏向於圖形、視頻處理等專業軟體方面,遊戲軟體極少有支持的。
支持超線程的軟體:
Games, Game Engines, And Middleware
Activision Ghostbusters
Capcom Lost Planet Colonies
Capcom Resident Evil 5
CJ Internet Prius Online
C徠odemasters GRID (withpatch)
Codemasters Operation Flashpoint: Dragon Rising
Crytek Crysis Warhead (Windows XP only)
EA Need for Speed: SHIFT
Havok SDKv5.5 (Tool / Middleware)
Illuminate Labs Beast 5 (Tool/Middleware)
Geomerics Enlighten
Kingsoft Mission Against Terror
Kingsoft JX Online III
NC Soft Aion
NC Soft Lineage II
Neowiz Alliance of Valiant Arms
Sega Football Manager 2009
Sega Football Manager 2010
Sega Empire: Total War (with patch)
Simul Software Ltd Simul Weather (Middleware)
THQ Relic Company of Heroes
Trinigy Vision Engine v7 (Middleware)
Ubisoft Assassin’s Creed
Ubisoft Far Cry 2 (with patch)
Ubisoft HAWX
Ubisoft World in Conflict: Soviet Assault
Winking Sakura
Media And Productivity Software
ABBYY Fine Reader
Adobe After Effects
Adobe Photoshop*
Adobe Photoshop Lightroom
Adobe PremierePro
Arcsoft Total Media Showbiz DVD
AutoDesk3ds Max*
Autodesk Maya
Avid Pinnacle Studio
BibbleLabs Bibble
Blender
Cakewalk SonarProducer
Cineform Prospect HD
Corel DVD Factory in Digital Studio
Corel Video Studio
Cyberlink MediaShow & MediaShow Espresso
Cyberlink Power Director
Cyberlink Power Producer
HandBrake*
Ichikawa Soft Laboratory SILKYPIX
KolorAutopanoPro & Giga
Magix Video Deluxe / MovieEditPro
MainConcept Reference Encoder and Decoder*
Maxon Cinema 4D & Cinebench*
Microsoft Excel
Microsoft Expressions Encoder
MicrosoftWindows LiveMovie Maker
Movavi Video Converter
NeroMultimedia Suite
Newtek Lightwave
Nik Software Silver Efex Pro
On2 Technology True Motion VP8
Pegasys TMPGEnc Xpress
Persistence of Vision Raytracer
Photodex Proshow Gold
RARLABWinRAR*
SonicRoxio Creator
Sonic Solutions Cineplayer
Sony ACID Music Studio
Sony Sound Forge Audio Studio
Sony Sound Forge Pro
Sony Vegas Pro
Sony Acid Pro
Sorenson Media Squeeze
Steinberg Cubase
Steinberg Nuendo
VirtualDubw/Divx
XtraSens Retina
3ivx MPEG-4

技術優點


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則不同,雙核心處理器的概念就是將兩顆處理器的晶元,通過全新的封裝技術,整合成為一顆處理器,在這一顆處理器中擁有兩顆核心,真正地實現了多處理器 協同工作。雙核心 處理器核心內的資源都是獨立的,而且也可以交換使用資源,核心與核心之間溝通的延遲遠比多個單核心處理器同時運行好。

支持的晶元組


目前支持超線程技術的晶元組包括如下:
Intel晶元組:845
Intel晶元組:845
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是不支持支持超線程技術的;SIS655、SIS648FX、SIS661FX、SIS655FX、SIS655TX、SIS649和SIS656則都支持超線程技術。
ULI晶元組:M1683和M1685都支持超線程技術。
ATI晶元組:ATI在Intel平台所推出的所有晶元組都支持超線程技術,包括Radeon 9100 IGP、Radeon 9100 Pro IGP和RX330。
nVidia晶元組:即將推出的nForce5系列晶元組都支持超線程
Pentium 4CPU中,Northwood及其之後推出的版本內建超線程技術;但在早期的Northwood核心中,一些型號的HT技術被關閉,縱使有軟體偵測到超線程技術的存在,使用者並不可以啟用。;而雙核心的Pentium D中也只有EE版提供HT技術。(詳見:Pentium D 處理器列表、Intel Pentium 4處理器列表)
英特爾的Core 2 Duo處理器則沒有HT技術。但處理器已集成了兩個實體核心,所以仍然支持兩個線程。
而英特爾在2008年推出的Intel Core i7及Intel Atom處理器又支持類似HT的技術,在Nehalem中,Hyper-Threading大舉捲土重來。在 IntelNetBurst架構的 Northwood 版本中開始導入的 Hyper-Threading-在 Intel 世界之外稱為 Simultaneous Multi-Threading (SMT)-是善用線程平行性的方法,讓單一核心在應用軟體層能提供兩個邏輯核心、而且確實可以提升一些效能。