物理CPU,CPU核數,邏輯CPU

CPU概念

物理CPU

在Info中由physical id識別

物理CPU指的是實際主板上插槽上的CPU個數。physical id 就是每個物理CPU的ID,不重複的 physical id 有幾個,物理cpu數量就是幾個。

CPU核數(物理核)

在Info中由 cpu cores 識別

CPU核數是指單塊CPU上面能處理數據的芯片組的數量,如雙核、四核等。通常每個CPU下的核數都是固定的,比如你的計算機有兩個物理CPU,每個CPU是雙核,那麼計算機就是四核的。

邏輯CPU(邏輯核)

在Info中由 processor 識別

邏輯CPU是指用Intel的超線程技術(HT)將物理核虛擬而成的邏輯處理單元。

在windows系統下面,我們看到有4個cpu記錄,其實這是雙核CPU使用HT技術虛擬出來的4個邏輯CPU。
image
任務管理器中也能查看自己PC中基本的物理CPU CPU核數以及邏輯CPU 。

image

在linux系統下面的/proc/cpuinfo文件的條目中siblings記錄了對應的物理CPU(以該條目中的physical id標識)有多少個邏輯核:

image

總核數 = 物理CPU個數 X 每顆物理CPU的核數

總邏輯CPU數 = 物理CPU個數 X 每顆物理CPU的核數 X 超線程數

查看cpu信息概要

摘自 http://www.cnblogs.com/mafeng/p/6558941.html

#lscpu
Architecture:          i686                            #架構686
CPU(s):                  2                                #邏輯cpu顆數是2
Thread(s) per core:    1                           #每個核心線程數是1                 
Core(s) per socket:    2                           #每個cpu插槽核數/每顆物理cpu核數是2
CPU socket(s):         1                            #cpu插槽數是1
Vendor ID:             GenuineIntel           #cpu廠商ID是GenuineIntel
CPU family:            6                              #cpu系列是6
Model:                 23                                #型號23
Stepping:              10                              #步進是10
CPU MHz:               800.000                 #cpu主頻是800MHz
Virtualization:        VT-x                         #cpu支持的虛擬化技術VT-x
L1d cache:             32K                         #一級緩存32K(google了下,這具體表示表示cpu的L1數據緩存爲32k)
L1i cache:             32K                          #一級緩存32K(具體爲L1指令緩存爲32K)
L2 cache:              3072K                      #二級緩存3072K

查看cpu信息命令

# 查看物理CPU個數
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每個物理CPU中core的個數(即核數)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看邏輯CPU的個數
cat /proc/cpuinfo| grep "processor"| wc -l

CPU部分信息解釋

vendor id     如果處理器爲英特爾處理器,則字符串是 GenuineIntel。
processor     包括這一邏輯處理器的唯一標識符。
physical id   包括每個物理封裝的唯一標識符。
core id       保存每個內核的唯一標識符。
siblings      列出了位於相同物理封裝中的邏輯處理器的數量。
cpu cores     包含位於相同物理封裝中的內核數量。
  1. 擁有相同 physical id 的所有邏輯處理器共享同一個物理插座,每個 physical id 代表一個唯一的物理封裝。
  2. Siblings 表示位於這一物理封裝上的邏輯處理器的數量,它們可能支持也可能不支持超線程(HT)技術。
  3. 每個 core id 均代表一個唯一的處理器內核,所有帶有相同 core id 的邏輯處理器均位於同一個處理器內核上。
    簡單的說:“siblings”指的是一個物理CPU有幾個邏輯CPU,”cpu cores“指的是一個物理CPU有幾個核。
  4. 如果有一個以上邏輯處理器擁有相同的 core id 和 physical id,則說明系統支持超線程(HT)技術。
  5. 如果有兩個或兩個以上的邏輯處理器擁有相同的 physical id,但是 core id不同,則說明這是一個多內核處理器。cpu cores條目也可以表示是否支持多內核。
  6. “所有帶有相同 core id 的邏輯處理器均位於同一個處理器內核上” 這樣的描述感覺是有問題的。我測試了一下,ubuntu的雙CPU的系統,每個CPU可以分別命名CPU核0、CPU核1…然後就有四個core id均爲0的編號,但是他們分別屬於不同的處理器內核。

image

image

參考

https://blog.csdn.net/kobejayandy/article/details/24875881
https://www.jianshu.com/p/6903604cd1d4
https://blog.csdn.net/u012062455/article/details/78358113
https://blog.csdn.net/kobejayandy/article/details/24875881#commentBox

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章