【計算機基礎】物理CPU,邏輯CPU以及核

物理CPU,邏輯CPU以及核

物理CPU
物理CPU就是計算機上實際配置的CPU個數。在linux上可以打開cat /proc/cpuinfo 來查看,其中的physical id就是每個物理CPU的ID,你能找到幾個physical id就代表你的計算機實際有幾個CPU。在linux下可以通過指令 grep ‘physical id’ /proc/cpuinfo | sort -u | wc -l 來查看你的物理CPU個數

cpu核數
核數就是指CPU上集中的處理數據的cpu核心個數,單核指cpu核心數一個,雙核則指的是兩個。通常每個CPU下的核數都是固定的,比如你的計算機有兩個物理CPU,每個CPU是雙核,那麼計算機就是四核的。linux的cpu核心總數也可以在/proc/cpuinfo裏面通過指令cat /proc/cpuinfo查看的到,其中的core id指的是每個物理CPU下的cpu核的id,能找到幾個core id就代表你的計算機有幾個核心。也可以使用指令cat /proc/cpuinfo | grep “cpu cores” | wc -l來統計cpu的核心總數。

邏輯CPU
操作系統可以使用邏輯CPU來模擬出真實CPU的效果。在之前沒有多核處理器的時候,一個CPU只有一個核,而現在有了多核技術,其效果就好像把多個CPU集中在一個CPU上。當計算機沒有開啓超線程時,邏輯CPU的個數就是計算機的核數。而當超線程開啓後,邏輯CPU的個數是核數的兩倍。實際上邏輯CPU的數量就是平時稱呼的幾核幾線程中的線程數量,在linux的cpuinfo中邏輯CPU數就是processor的數量。可以使用指令cat /proc/cpuinfo | grep “processor” | wc -l來查看邏輯CPU數。

知道上面這些,常說的幾核幾線程就好理解了。假設計算機有一個物理CPU,是雙核的,支持超線程。那麼這臺計算機就是雙核四線程的。
所以兩路(兩路指的是有兩個物理CPU)四核超線程就有2*4*2=16個邏輯CPU。有人也把它稱之爲16核,實際上在linux的/proc/cpuinfo中查看只有8核。

既然計算機多核與超線程模擬相關,所以實際上計算機的核數翻倍並不意味着性能的翻倍,也不意味着核數越多計算機性能會越來越好,因爲超線程只是充分利用了CPU的空閒資源,實際上在應用中基於很多原因,CPU的執行單元都沒有被充分使用。

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