CPU 個數、CPU 核心數、CPU 執行緒數
CPU 個數、核心數、執行緒數 定義 CPU 個數即 CPU 晶片個數。 **CPU 核心數(core)**是指物理上,也就是硬體上存在著幾個核心。比如,雙核就是包括 2 個相對獨立的 CPU 核心單元組,四核就包含 4 個相對獨立的 CPU 核心單元組。 **執行緒數(thread)**是一種邏輯的概念,簡單地說,就是模擬出的 CPU 核心數。比如,可以通過一個 CPU 核心數模擬出 2 執行緒的 CPU,也就是說,這個單核心的 CPU 被模擬成了一個類似雙核心 CPU 的功能。我們從工作管理員的效能標籤頁中看到的是兩個 CPU。比如 Intel 賽揚 G460 是單核心、雙執行緒的 CPU,Intel 酷睿 i3 3220 是雙核心、四執行緒,Intel 酷睿 i7 4770K 是四核心、八執行緒,Intel 酷睿 i5 4570 是四核心四執行緒等等。對於一個 CPU,執行緒數總是大於或等於核心數的。一個核心最少對應一個執行緒,但通過超執行緒(Hyper Thread)技術,一個核心可以對應兩個執行緒,也就是說它可以同時執行兩個執行緒。 CPU 的執行緒數概念僅僅只針對 Intel 的 CPU 才有用,因為它是通過 Intel 超執行緒技術來實現的,最早應用在 Pentium4 上。如果沒有超執行緒技術,一個 CPU 核心對應一個執行緒。所以,對於 AMD 的 CPU 來說,只有核心數的概念,沒有執行緒數的概念。 為何要增加執行緒數? CPU 之所以要增加執行緒數,是源於多工處理(multi-tasking)的需要。執行緒數越多,越有利於同時執行多個程式,因為執行緒數等同於在某個瞬間 CPU 能並行處理(concurrent)的任務數。因此,執行緒數是一種邏輯的概念,簡單地說,就是模擬出的 CPU 核心數。一個核心最少對應一個執行緒,但英特爾有個超執行緒技術可以把一個物理執行緒模擬出兩個執行緒來用,充分發揮 CPU 效能,即一個核心可以有兩個到多個執行緒。 intel x86:一核心有 2 個邏輯執行緒。 IBM power8:一核心有 8 個邏輯執行緒。 多核 CPU 多核心 CPU 主要分原生多核和封裝多核。 原生多核指的是真正意義上的多核,最早由 AMD 提出,每個核心之間都是完全獨立的,都擁有自己的前端匯流排,不會造成衝突,即使在高負載狀況下,每個核心都能保證自己的效能不受太大的影響,通俗的說,原生多核的抗壓能力強,但是需要先進的工藝,每擴充套件一個核心都需要很多的研發時間。 封裝多核是隻把多個核心直接封裝在一起,比如 Intel 早期的 PD 雙核系列,就是把兩個單核直接封裝在一起,但兩核心只能共同擁有一條前端匯流排,在兩個核心滿載時,兩個核心會爭搶前端匯流排,導致效能大幅度下降,所以早期的PD被扣上了高頻低能的帽子,要提高封裝多核的效能,在多工的高壓下儘量減少效能損失,只能不斷的擴大前端匯流排的總體大小,來彌補多核心爭搶資源帶來的效能損失,但這樣做只能在一定程度上彌補效能的不足,和原生的比起來還是差了很多,而且後者成本比較高,優點在於多核心的發展要比原生快的多。 核心 核心(Die)又稱為核心,是 CPU 最重要的組成部分。CPU 中心那塊隆起的晶片就是核心,是由單晶矽以一定的生產工藝製造出來的,CPU 所有的計算、接受/儲存命令、處理資料都由核心執行。各種 CPU 核心都具有固定的邏輯結構,一級快取、二級快取、執行單元、指令級單元和匯流排介面等邏輯單元都會有科學的佈局。 多核心處理器(Multi-core processor) 又稱多核心微處理器,是在單個 CPU 中,加入兩個或以上的獨立實體中央處理單元,或稱核心(core)。這些核心可以分別獨立地執行程式指令,利用平行計算的能力加快程式的執行速度。只有兩個核心的處理器,稱為雙核心處理器(dual-core processor)。多核心通常是對於中央處理器 CPU 而論的,但是某些時候也指 DSP 和 SoC。 把將兩個或更多獨立處理器封裝在一個單一積體電路(IC)中的方案稱為多核心處理器;而封裝在不同 IC 中的獨立處理器形成的計算機系統被稱為多處理器。 多核心處理器 != 多處理器 多核心處理器可以在不將每個核心分別獨立物理封裝的情況下進行多工處理(執行緒級併發處理(Thread-Level Parallelism, TLP),這種形式的TLP通常被認為是晶片級多處理。 單核多 CPU 與多核單 CPU 一台計算機的處理器部分的架構 ...