超執行緒有哪些工作原理及優缺點
超執行緒是Intel 所研發的一種技術,於2002年釋出,相信很多人對超執行緒的工作原理還不是很瞭解吧。以下是由小編整理的超執行緒的內容,希望大家喜歡!
超執行緒的簡介
通過超執行緒技術,英特爾成為第一家公司實現在一個實體處理器中,提供兩個邏輯執行緒。
之後的Pentium D縱使不支援超執行緒技術,但就集成了兩個實體核心,所以仍會見到兩個邏輯執行緒。超執行緒的未來發展,是提升處理器的邏輯執行緒,英特爾有計劃將8核心的處理器,加以配合超執行緒技術,使之成為16個邏輯執行緒的產品。
英特爾表示,超執行緒技術讓***P4***處理器增加5%的裸晶面積,就可以換來15%~30%的效能提升。但實際上,在某些程式或未對多執行緒編譯的程式而言,超執行緒反而會降低效能。除此之外,超執行緒技術亦要作業系統的配合,普通支援多處理器技術的系統亦未必能充分發揮該技術。例如Windows 2000,英特爾並不鼓勵使用者在此係統中利用超執行緒。原先不支援多核心的Windows XPHome Edition卻支援超執行緒技術。
超執行緒的工作原理
儘管提高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的效能。
超執行緒技術的優點
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則不同,雙核心處理器的概念就是將兩顆處理器的晶片,通過全新的封裝技術,整合成為一顆處理器,在這一顆處理器中擁有兩顆核心,真正地實現了多處理器協同工作。雙核心處理器核心內的資源都是獨立的,而且也可以交換使用資源,核心與核心之間溝通的延遲遠比多個單核心處理器同時執行好。
超執行緒技術的技術支援
技術原理
"超執行緒"***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技術的執行效能還需要真正支援超執行緒技術的軟體。
超執行緒的工作原理