超線程 多核 多處理器區別

1 超線程技術

每個單位時間內,CPU只能處理一個線程(Thread)。除非有兩個核心處理單元,否則要想在單位時間內處理超過一個的線程是不可能的。

超線程HT(Hyper-Threading)技術是在單個核心處理單元中集成兩個邏輯處理單元,也就是一個實體內核(共享的運算單元),兩個邏輯內核(有各自獨立的處理器狀態),在一顆CPU同時執行多個程序而共同分享一顆CPU內的資源,理論上要像兩顆CPU一樣在同一時間執行兩個線程,P4處理器需要多加入一個Logical CPU Pointer(邏輯處理單元)。因此新一代的P4 的面積比以往的P4增大了5%。而其餘部分如ALU(整數運算單元)、FPU(浮點運算單元)、L2 Cache(二級緩存)則保持不變,這些部分是被分享的。

雖然採用超線程技術能同時執行兩個線程,但它並不象兩個真正的CPU那樣,每各CPU都具有獨立的資源。當兩個線程都同時需要某一個資源時,其中一個要暫時停止,並讓出資源,直到這些資源閒置後才能繼續。因此超線程的性能並不等於兩顆CPU的性能。

2 多處理器

多處理器(Multiprocessor)系統由不同芯片上的多個處理器組成。多處理器系統因IT服務器的應用在上世紀九十年代得以普及。在當時,它們是可以插入機架服務器的處理器主板。現在,多處理器系統可以構建在同一塊電路板上,處理器之間通過一個高速通信接口連接。

超線程 多核 多處理器區別

圖1 多處理器系統具有遠程互聯結構的獨立高速緩存與MMU內存管理單元

多處理器系統的複雜度低於多核系統,因為它們本質是互連在一起的單芯片CPU。多處理器系統的不足在於其高昂的價格,因為它們需要多個芯片,這比單芯片解決方案要昂貴得多。

3 雙核與多核處理器

雙核處理器是指單個芯片上有兩個CPU,而多核處理器則是指在單個芯片上包含任意多個(如2、4或8)CPU的處理器。多核處理器的挑戰在於軟件開發部分。系統性能提升的多少直接與通過多線程編程源代碼的並行程度有關。

超線程 多核 多處理器區別

圖2 多核處理器共享具有短程互聯結構的高速緩存和MMU內存管理單元

4 總結

超線程由於處理器實際上只有一個核心,能夠提升的效能約為5~15%左右,且萬一發生資源互搶的情形時,整體效能反而會下降。雙核共用cache,程序設計合理性能可能比雙處理器性能更好,多處理器可能還需在兩個cache間傳輸數據,多核和超線程的區別如圖3。

超線程 多核 多處理器區別

圖 3 超線程和多核區別


分享到:


相關文章: