1 多 CPU
多CPU(multi-processor)指的是在計算機主板上有多個物理CPU,每一個物理CPU之間通過系統總線連接。
Architectual State: 包括通用數據寄存器、段寄存器、控制寄存器等。
Execution Engine: 執行引擎,用來執行CPU指令,包括算數邏輯單元ALU等。
Local APIC: APIC全稱是Advanced Programmable Interrupt Controller,翻譯過來就是高級可編程中斷控制器,用來處理CPU中斷。
2 多核 CPU
多核(multi-core processor)指的是在一個物理CPU內部,封裝了多個物理核心。這些物理核心可能位于同一個Die上,也可能位于多個Die上。
關于Die可以參看 《一文搞懂晶圓 Die CPU 之間的關系》。
無論使用哪種方式,多核CPU的架構可以表示為下圖:
從上圖可以看到,每一個物理核心都有自己的Architectual State、Execution Engine、Local APIC。因此,每一個物理核心都可以看成是一個邏輯 CPU。
從并行性(Parallel)的角度看,多CPU和多核CPU都可以在同一時間,同時執行多條指令流。
那既然這樣,為什么還要研究出多核CPU呢?
如果單從性能角度看,多核CPU內部物理核心之間通過片內總線通信,速度會快于系統總線。換句話說,多核 CPU 的性能要高于多 CPU。
有了多核CPU,那么要構造處擁有4個邏輯CPU的系統,那么就有2種方案:
第1種就是使用2個物理CPU,每個物理CPU內部包含2個物理核心。
第2中就是使用1個物理CPU,這個物理CPU內部包含4個物理核心。
3 超線程技術
超線程技術(Hyper-Threading Technology)簡稱HT或者HTT,它作用于物理CPU內部的物理核心上。
為了實現超線程技術,一個物理核心內部,會同時包含2份Architectual State、Local APIC,但是只有1份Execution Engine。
在運行的時候,會同時有2條不同的CPU指令流送入物理核心:
因此,一個物理核心內部,就好像有了2個邏輯核心或者邏輯 CPU:
表面上看,超線程技術使得一個物理核心可以當成2個使用,與不支持超線程技術的單核CPU相比,并行性應該翻倍。
但是,從上圖看到,邏輯核心是共享Execution Engine的。
雖然同一時刻,有2條不同的CPU指令流送入了物理核,但同一時刻,Execution Engine只能執行1條指令流上的指令。
比如,當Execution Engine在執行指令流1的時候,需要等待指令需要的數據到達,那么,在這個等待的時間內,才可以切換到指令流2執行,避免Execution Engine處于空閑狀態。
換句話說,超線程技術的并行性并不徹底,并行性并不能真正的翻倍。
上面Execution Engine的運行方式,和在不支持超線程的單核CPU上運行多線程非常相似,但是兩者有本質的區別。
在不支持超線程的單核CPU上運行多線程,是操作系統進行時間片調度造成的假象,任何同一時刻,其實都只有1條指令流在物理核上執行。
在支持超線程的單核CPU上運行多線程,硬件層面支持同一時刻送入2條不同指令流到物理核心,只是在Execution Engine內執行的時候需要輪轉調度。
既然超線程技術本質上和多核CPU一樣,增加了核心數(邏輯核心),但是并行性卻不及多核CPU,那為什么還要設計出超線程技術呢?
答案是超線程技術可以提升CPU核心的利用率。
在多核CPU上,如果某個物理核心在執行指令流時需要等待指令數據,那么該核心就有一段時間處于空閑狀態(雖然可能很短暫)。但是如果支持超線程技術,那么該核心可以用來處理另外的指令流。
綜上所述,結合多核技術與超線程技術,邏輯CPU的計算公式為:
4 SMP
SMP全稱是 Symmetric Multi-Processing,翻譯過來是對稱多處理器,是一種多處理器架構。
對稱多處理器中的對稱,是指任何程序,不管運行在內核空間,還是用戶空間,都可以運行在任意一個處理器上。
與之相反,ASMP,Asymmetric Multi-Processing,非對稱多處理器,指某些處理器用來運行特殊的程序,比如操作系統,而另外的處理器用來運行非特殊程序,比如用戶程序。
現代計算機系統都使用的是SMP架構,ASMP架構已經幾乎絕跡了。
早期的時候,SMP專指多個物理CPU的場景。后續由于多核與超線程技術的出現,SMP在多個邏輯CPU下也同樣適用。
Symmetric Multi-Proccessing Wikipedia
In the case of multi-core processors, the SMP architecture applies to the cores, treating them as separate processors
Hyper-Threading Wikipedia
The minimum that is required to take advantage of hyper-threading is symmetric multiprocessing (SMP) support in the operating system, as the logical processors appear as standard separate processors.
審核編輯:黃飛
-
cpu
+關注
關注
68文章
10854瀏覽量
211587 -
SMP
+關注
關注
0文章
74瀏覽量
19654 -
超線程
+關注
關注
0文章
16瀏覽量
7611 -
中斷控制器
+關注
關注
0文章
59瀏覽量
9452
原文標題:一文搞懂多 CPU、多核 CPU、超線程技術、SMP
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論