1.說明
CPU(Central Processing Unit)是中央處理單元,
本文介紹物理CPU,物理CPU內(nèi)核,邏輯CPU,
以及他們?nèi)咧g的關(guān)系,
一個物理CPU可以有1個或者多個物理內(nèi)核,
一個物理內(nèi)核可以作為1個或者2個邏輯CPU。
2.物理CPU
物理CPU就是計算機上實際安裝的CPU,
物理CPU數(shù)就是主板上實際插入的CPU數(shù)量。
在Linux上查看/proc/cpuinfo,
其中的physical id就是每個物理CPU的id,
有幾個不同的physical id就有幾個物理CPU。
3.物理CPU內(nèi)核
每顆物理CPU可以有1個或者多個物理內(nèi)核,
通常每顆物理CPU的內(nèi)核數(shù)都是固定的,
單核CPU就是有1個物理內(nèi)核,
雙核CPU就是有2個物理內(nèi)核。
在Linux上查看/proc/cpuinfo,
其中的core id就是每顆物理CPU的物理內(nèi)核id,
有幾個不同的core id就有幾個物理內(nèi)核。
總的CPU物理內(nèi)核數(shù) = 物理CPU數(shù) * 每顆物理CPU的內(nèi)核數(shù)
4.邏輯CPU
操作系統(tǒng)可以使用邏輯CPU來模擬真實CPU。
在沒有多核處理器的時候,
一個物理CPU只能有一個物理內(nèi)核,
而現(xiàn)在有了多核技術(shù),
一個物理CPU可以有多個物理內(nèi)核,
可以把一個CPU當(dāng)作多個CPU使用,
為了與物理CPU區(qū)分開來,稱其為邏輯CPU。
沒有開啟超線程時,邏輯CPU的個數(shù)就是總的CPU物理內(nèi)核數(shù)。
然而開啟超線程后,邏輯CPU的個數(shù)就是總的CPU物理內(nèi)核數(shù)的兩倍。
在Linux上查看/proc/cpuinfo,
其中的processor就是邏輯CPU,
有幾個processor就有幾個邏輯CPU。
總的邏輯CPU數(shù) = 物理CPU個數(shù) * 每顆物理CPU的核數(shù) * 超線程數(shù)
總的邏輯CPU數(shù) = 總的CPU物理內(nèi)核數(shù) * 超線程數(shù)
5.幾核幾線程
基于上面的基本概念,
理解一下常說的幾核幾線程。
如果計算機有一個物理CPU,
是雙核的,支持超線程。
那么這臺計算機就是雙核四線程。
實際上幾核幾線程中的線程數(shù)就是邏輯CPU數(shù)。
對于兩路四核超線程計算機,
兩路指計算機有2個物理CPU,
每顆CPU中有4個物理內(nèi)核,
CPU支持超線程,
就有2*4*2=16個邏輯CPU,
這就是通常所謂的16核計算機。
6.兩路四核超線程
實際能看到的2個物理CPU:

實現(xiàn)16個邏輯CPU的原理圖:
