超線程技術(shù)
1.什么是超線程技術(shù)
超線程技術(shù)就是利用特殊的硬件指令,把兩個邏輯內(nèi)核模擬成兩個物理芯片,讓單個處理器都能使用線程級并行計算.具體講,就是通過CPU的寄存器構(gòu)成了兩個邏輯處理器,來共享處理器的物理執(zhí)行單元,并同步進(jìn)行加、乘、負(fù)載等操作.操作系統(tǒng)或者應(yīng)用軟件的多線程可以同時運行于一個HTT處理器上,兩個邏輯處理器共享一組處理器執(zhí)行單元,并行完成加、乘、負(fù)載等操作,這樣就可以使得運行性能提高,這是因為在同一時間里,應(yīng)用程序可以使用芯片的不同部分.雖然單線程芯片每秒鐘能夠處理成千上萬條指令,但是在任一時刻只能夠?qū)σ粭l指令進(jìn)行操作.而超線程技術(shù)可以使芯片同時進(jìn)行多線程處理,使芯片性能得到提升。
2.超線程技術(shù)的產(chǎn)生原因
CPU發(fā)展到今天,其整體速度雖然越來越快,內(nèi)部的執(zhí)行單元卻越來越得不到充分的利用.為什么呢?原來NetBurst架構(gòu)的奔騰4在設(shè)計結(jié)構(gòu)上就每次只能處理一個線程,而與此同時我們的電腦需要同步執(zhí)行的任務(wù)卻在不斷增加,而且花在各線程之間切換等待的時間太多,處理器的應(yīng)用效率自然也就降低了。
長期以來,CPU生產(chǎn)商為了提高CPU的性能,通常做法是提高CPU的時鐘頻率、增加緩存容量、晶體管數(shù)量以及指令集來提升其性能.這些方法的副作用就是會增加處理器的功耗,而且往往會受到制造工藝上的限制以及成本過高的制約.CPU要想取得更好的表現(xiàn),擁有更快的處理速度,就得需要更大的供電量,更強勁的散熱條件.2005年,英特爾取消了生產(chǎn)4.0GHz的“Te-jas”單核處理器.因為他們發(fā)現(xiàn),要想達(dá)到這個頻率,它的驅(qū)動功率必須要達(dá)到100W.不僅如此,要保證它正常的運行還要有溫度的控制,需要更大的散熱器.要是在不過多增加硬件投入的情況下,處理器就能夠充分利用現(xiàn)有的強勁物理單元同步執(zhí)行多線程來增強性能,那該多好?因此,Intel采用另一個思路去提高CPU的性能,讓CPU可以同時執(zhí)行多重線程,就能夠讓CPU發(fā)揮更大效率,即超線程技術(shù)。
也正是由于通過不高的代價,就能帶來極大的性能提升,超線程技術(shù)倍受Intel的青睞,并被予以大力宣傳。
3.超線程技術(shù)的工作原理
超線程技術(shù)的工作原理是在每個時鐘周期內(nèi)完成更多工作,一個支持超線程(HT)技術(shù)的處理器使當(dāng)前的操作系統(tǒng)和應(yīng)用可以看到兩個虛擬處理器,該處理器可以同時處理兩組任務(wù),充分利用閑置資源,并可在相同時間內(nèi)完成更多工作。
在處理多個線程的過程中,多線程處理器內(nèi)部的每個邏輯處理器均可以單獨對中斷做出響應(yīng),當(dāng)?shù)谝粋€邏輯處理器跟蹤一個軟件線程時,第二個邏輯處理器也開始對另外一個軟件線程進(jìn)行跟蹤和處理了.另外,為了避免CPU處理資源沖突,負(fù)責(zé)處理第二個線程的那個邏輯處理器,其使用的是僅是運行第一個線程時被暫時閑置的處理單元.例如:當(dāng)一個邏輯處理器在執(zhí)行浮點運算(使用處理器的浮點運算單元)時,另一個邏輯處理器可以執(zhí)行加法運算(使用處理器的整數(shù)運算單元).這樣做,無疑大大提高了處理器內(nèi)部處理單元的利用率和相應(yīng)的數(shù)據(jù)、指令的吞吐能力。
4.超線程技術(shù)的優(yōu)缺點
1.優(yōu)點
(1)投入少,物美價廉.由于這項技術(shù)是將一個處理器模擬成兩個使用,從而在增加極少投入的情況下就能夠提高性能.對于操作系統(tǒng)來說,它又像真的擁有兩個物理處理器一樣工作,從而讓兩個程序或一個程序的兩個線程,能夠在單處理器上同時執(zhí)行.由于減少了在線程之間的切換,提高了執(zhí)行單元的利用率,從而使處理器實際使用效果得到極大的改善。
(2)超線程在Web服務(wù)、SQL數(shù)據(jù)庫等很多服務(wù)器領(lǐng)域的應(yīng)用中表現(xiàn)優(yōu)異.在2001年的時候,IBM就推出了它的第一款雙核Power4處理器.IBM當(dāng)時是用在了它的RISC服務(wù)器中,服務(wù)器的性能得到了很大的提高.
(3)在某些支持多線程的軟件應(yīng)用上能夠得到3O左右的性能提升,如3Dsmax、Maya、Of—rice、Photoshop等.在今后的軟件開發(fā)中,支持多線程應(yīng)用的軟件定會蓬勃發(fā)展,大多數(shù)主流軟件都會利用到超線程.因為無論是硬件廠商或軟件廠商都會利用新技術(shù)來鞏固自己的市場地位.
(4)WindowsXP已經(jīng)針對其作出優(yōu)化,在運行多個不支持多線程的程序時,性能也可能會獲得提高.即便帶來損失,也會顯得比較輕微.
(5)主流的桌面芯片組基本都已可以支持超線程,無需額外的花費.
(6)目前在高端的PentiumEE和一部分Xe-on上也支持超線程技術(shù).在支持超線程的處理器的機器上,支持多CPU的Windows會認(rèn)出兩個CPU.而在支持雙內(nèi)核處理的機器上,Windows也會認(rèn)出兩個CPU,在支持超線程雙內(nèi)核的處理器上,Windows會認(rèn)出四個CPU。
2.缺點
(1)英特爾P4超線程有兩個運行模式,Sin-gleTaskMode(單任務(wù)模式)及MuhiTaskMode(多任務(wù)模式),當(dāng)程序不支持Multi-Processing(多處理器作業(yè))時,系統(tǒng)會停止其中一個邏輯CPU的運行,把資源集中于單個邏輯CPU中,讓單線程程序不會因其中一個邏輯CPU閑置而減低性能,但由于被停止運行的邏輯CPU還是會等待工作,占用一定的資源,因此Hyper-Thread-ingCPU運行SingleTaskMode程序模式時,有可能達(dá)不到不帶超線程功能的CPU性能。
(2)現(xiàn)在只有WindowsXP才能支持超線程技術(shù),所以在操作系統(tǒng)上受到很大的限制.雖然微軟公司新推出的WindowsVISTA系統(tǒng)也支持該技術(shù),但是VISTA系統(tǒng)對計算機硬件及軟件的要求很高,所以安裝的成本較大。
(3)缺乏大量普通應(yīng)用軟件的支持,性能因此得不到充分體現(xiàn)。