回覆列表
-
1 # 給我當頭一棒
-
2 # 嘟嘟聊數碼
超執行緒技術和多核心本質上並不是一類,多核心是指的在CPU晶片中集成了多個物理核心,擁有數億乃至數十億的電晶體規模,正常情況下,比如一顆四核心CPU每個核心的規模和構造都是差不多的,透過多個CPU核心的協同工作可以有效提升CPU的多工處理能力。
既然多核指的是CPU的物理核心數,那麼超執行緒技術帶來的就是虛擬核心數,從英特爾的奔騰4處理器開始,為了提高CPU的多執行緒效能,同時還避免增加很多的核心面積和成本,英特爾超執行緒技術僅僅使用少量的電晶體就可以使一顆CPU核心虛擬出額外的執行緒,從而顯著提升CPU的利用率,多執行緒效能也會大幅提高。
相比增加物理核心,超執行緒技術可以帶來價效比更高的效能提升,畢竟物理核心都是需要大規模電晶體才能堆出來的,無論對廠商還是消費者都不划算。因為超執行緒帶來的多核效能提升很顯著,所以一度成為劃分CPU等級的關鍵,比如英特爾酷睿i7-9700不支援超執行緒技術,而i9-9900k則支援超執行緒技術,後者的多執行緒效能也確實強得多。
超執行緒技術和多核不是一回事。
超執行緒HT(Hyper-Threading)技術是在單個核心處理單元中整合兩個邏輯處理單元,也就是一個實體核心(共享的運算單元),兩個邏輯核心(有各自獨立的處理器狀態),在一顆CPU同時執行多個程式而共同分享一顆CPU內的資源,理論上要像兩顆CPU一樣在同一時間執行兩個執行緒,使用超執行緒技術的處理器需要多加入一個Logical CPU Pointer(邏輯處理單元)。因此新一代使用超執行緒技術的P4 的面積比以往的P4增大了5%。而其餘部分如ALU(整數運算單元)、FPU(浮點運算單元)、L2 Cache(二級快取)則保持不變,這些部分是被分享的。
從實質上說,超執行緒是一種可以將CPU內部暫時閒置處理資源充分"調動"起來的技術。雖然採用超執行緒技術能同時執行兩個執行緒,但它並不象兩個真正的CPU那樣,每各CPU都具有獨立的資源。當兩個執行緒都同時需要某一個資源時,其中一個要暫時停止,並讓出資源,直到這些資源閒置後才能繼續。因此超執行緒的效能並不等於兩顆CPU的效能。
多核心(multicore)是指在一枚處理器(processor)中整合兩個或多個完整的計算引擎(核心)。多核技術能夠使伺服器並行處理任務,此前,這可能需要使用多個處理器,多核系統更易於擴充,並且能夠在更纖巧的外形中融入更強大的處理效能,這種外形所用的功耗更低、計算功耗產生的熱量更少。多核技術是處理器發展的必然。
從中可以看出,把兩個技術分開看,還真有相似的地方,都是一個變成了多個;但是超執行緒技術是從邏輯上把一個核心模擬成兩個(或者多個,雖然現在只實現了兩個),效能是達不到兩個物理核心的效能的;而多核心技術直接整合多個物理核心,效能是實打實的多核心效能。不過現在的處理器中,常常都是超執行緒技術和多核技術同時使用在一個處理器上,或者為了區別產品線,只使用核心技術,但沒有隻使用超執行緒技術的處理器了。像Intel的9代處理i3到i7的低端型號都是多核心處理,只有部分i7高階型號、i9和最低端的G系列才集成了超執行緒技術。
超執行緒由於處理器實際上只有一個核心,能夠提升的效能約為5~15%左右,且萬一發生資源互搶的情形時,整體效能反而會下降。雙核共用cache,程式設計合理性能可能比雙處理器效能更好,多處理器可能還需在兩個cache間傳輸資料。超執行緒技術和多核的區別如下圖所示。