超執行緒

維基百科,自由的百科全書
前往: 導覽搜尋
早期內含超執行緒技術的Pentium 4處理器之商標
後期內含超執行緒技術的Pentium 4處理器之商標

超執行緒HT, Hyper-Threading)[1]英特爾研發的一個技術,於2002年發佈。超執行緒技術原先只應用於Xeon處理器中,當時稱為「Super-Threading」。之後陸續應用在Pentium 4中,將技術主流化。早期代號為Jackson。

通過此技術,英特爾實現在一個實體CPU中,提供兩個邏輯執行緒。之後的Pentium D縱使不支援超執行緒技術,但就整合了兩個實體核心,所以仍會見到兩個執行緒。超執行緒的未來發展,是提升處理器的邏輯執行緒,英特爾有計劃將8核心的處理器,加以配合超執行緒技術,使之成為16個邏輯執行緒的產品。

英特爾表示,超執行緒技術讓(P4)處理器增加5%的裸晶面積,就可以換來15%~30%的效能提升。但實際上,在某些程式或未對多執行緒編譯的程式而言,超執行緒反而會降低效能。除此之外,超執行緒技術亦要作業系統的配合,普通支援多處理器技術的系統亦未必能充分發揮該技術。例如Windows 2000,英特爾並不鼓勵使用者在此系統中利用超執行緒。原先不支援多核心的Windows XP Home Edition卻支援超執行緒技術。

運作方式[編輯]

每個單位時間內,一個CPU只能處理一個執行緒作業系統:thread),以這樣的單位進行,如果想要在一單位時間內處理超過一個執行緒是不可能的,除非是有兩個CPU的實體單元。雙核心技術是將兩個一樣的CPU放置於一個封裝內(或直接將兩個CPU做成一個晶片),而英特爾的HT技術是在CPU內部僅複製必要的資源、讓CPU模擬成兩個執行緒;也就是一個實體核心,兩個邏輯執行緒,在一單位時間內處理兩個執行緒的工作,模擬實體雙核心、雙執行緒運作。

Intel自Pentium開始引入超純量亂序執行、大量的暫存器暫存器重新命名、多指令解碼器預測執行等特性;這些特性的原理是讓CPU擁有大量資源,並可以預先執行及平行執行指令,以增加指令執行效率,可是在現實中這些資源經常閒置;為了有效利用這些資源,就乾脆再增加一些資源來執行第二個執行緒,讓這些閒置資源可執行另一個執行緒,而且CPU只要增加少數資源就可以模擬成兩個執行緒運作。

使用HT技術的CPU[編輯]

編號SL6WK支援HT的P4 3.0G
虛擬的2個CPU在工作管理員中顯示出都在運轉

Pentium 4 CPU中,Northwood及其之後推出的版本內建超執行緒技術;但在早期的Northwood核心中,一些型號的HT技術被關閉,縱使有軟體偵測到超執行緒技術的存在,使用者並不可以啟用;而雙核心的Pentium D中也只有EE版提供HT技術。英特爾的Core 2 Duo處理器則沒有HT技術。但處理器已整合了兩個實體CPU核心,所以仍然支援兩個執行緒。[2]

而在2008年推出的Intel Core i7Intel Atom處理器又支援類似HT的技術,在 Nehalem 中,Hyper-Threading 大舉捲土重來。在 Intel NetBurst 架構的 Northwood 版本中開始導入的 Hyper-Threading-在 Intel 世界之外稱為 Simultaneous Multi-Threading (SMT)-是善用執行緒平行性的方法,讓單一核心在應用軟體層能執行兩個邏輯執行緒

顧慮[編輯]

由於處理器實際上只有一個核心,能夠提升的效能約為5~15%左右,且萬一發生資源互搶的情形時,整體效能反而會下降。這亦是AMD不提供虛擬雙核心處理器的理由。

要令到電腦支援超執行緒技術,必須要軟體和硬體的配合。處理器本身要支援超執行緒,晶片組亦要支援相關處理器。為此,當時的Intel推出了新的晶片組,i865PE和i875P。要充分發揮超執行緒的效能,使用者要使用Windows 2000之後的作業系統,而Windows XP家用版亦同樣支援超執行緒技術。除了微軟的Windows外,Linux kernel 2.4.x亦開始支援該技術。軟體方面,不是所有程式都可以發揮超執行緒,通常優化了多處理器的程式都可以支援到。此類軟體通常是圖形或視訊處理軟體。早期,遊戲軟體的支援是比較少。但隨著多核心技術的普及,愈來愈多遊戲軟體支援多執行緒的處理器。[3]

另見[編輯]

註腳[編輯]

外部連結[編輯]