1.說(shuō)明
CPU(Central Processing Unit)是中央處理單元艘款,
本文介紹物理CPU持际,物理CPU內(nèi)核,邏輯CPU哗咆,
以及他們?nèi)咧g的關(guān)系蜘欲,
一個(gè)物理CPU可以有1個(gè)或者多個(gè)物理內(nèi)核,
一個(gè)物理內(nèi)核可以作為1個(gè)或者2個(gè)邏輯CPU晌柬。
2.物理CPU
物理CPU就是計(jì)算機(jī)上實(shí)際安裝的CPU姥份,
物理CPU數(shù)就是主板上實(shí)際插入的CPU數(shù)量。
在Linux上查看/proc/cpuinfo年碘,
其中的physical id就是每個(gè)物理CPU的id澈歉,
有幾個(gè)不同的physical id就有幾個(gè)物理CPU。
3.物理CPU內(nèi)核
每顆物理CPU可以有1個(gè)或者多個(gè)物理內(nèi)核屿衅,
通常每顆物理CPU的內(nèi)核數(shù)都是固定的埃难,
單核CPU就是有1個(gè)物理內(nèi)核,
雙核CPU就是有2個(gè)物理內(nèi)核涤久。
在Linux上查看/proc/cpuinfo涡尘,
其中的core id就是每顆物理CPU的物理內(nèi)核id,
有幾個(gè)不同的core id就有幾個(gè)物理內(nèi)核拴竹。
總的CPU物理內(nèi)核數(shù) = 物理CPU數(shù) * 每顆物理CPU的內(nèi)核數(shù)
4.邏輯CPU
操作系統(tǒng)可以使用邏輯CPU來(lái)模擬真實(shí)CPU悟衩。
在沒(méi)有多核處理器的時(shí)候,
一個(gè)物理CPU只能有一個(gè)物理內(nèi)核栓拜,
而現(xiàn)在有了多核技術(shù)座泳,
一個(gè)物理CPU可以有多個(gè)物理內(nèi)核,
可以把一個(gè)CPU當(dāng)作多個(gè)CPU使用幕与,
為了與物理CPU區(qū)分開(kāi)來(lái)挑势,稱其為邏輯CPU。
沒(méi)有開(kāi)啟超線程時(shí)啦鸣,邏輯CPU的個(gè)數(shù)就是總的CPU物理內(nèi)核數(shù)潮饱。
然而開(kāi)啟超線程后,邏輯CPU的個(gè)數(shù)就是總的CPU物理內(nèi)核數(shù)的兩倍诫给。
在Linux上查看/proc/cpuinfo香拉,
其中的processor就是邏輯CPU啦扬,
有幾個(gè)processor就有幾個(gè)邏輯CPU。
總的邏輯CPU數(shù) = 物理CPU個(gè)數(shù) * 每顆物理CPU的核數(shù) * 超線程數(shù)
總的邏輯CPU數(shù) = 總的CPU物理內(nèi)核數(shù) * 超線程數(shù)
5.幾核幾線程
基于上面的基本概念凫碌,
理解一下常說(shuō)的幾核幾線程扑毡。
如果計(jì)算機(jī)有一個(gè)物理CPU,
是雙核的盛险,支持超線程瞄摊。
那么這臺(tái)計(jì)算機(jī)就是雙核四線程。
實(shí)際上幾核幾線程中的線程數(shù)就是邏輯CPU數(shù)苦掘。
對(duì)于兩路四核超線程計(jì)算機(jī)换帜,
兩路指計(jì)算機(jī)有2個(gè)物理CPU,
每顆CPU中有4個(gè)物理內(nèi)核鹤啡,
CPU支持超線程惯驼,
就有2*4*2=16個(gè)邏輯CPU,
這就是通常所謂的16核計(jì)算機(jī)递瑰。
6.兩路四核超線程
實(shí)際能看到的2個(gè)物理CPU:
實(shí)現(xiàn)16個(gè)邏輯CPU的原理圖: