電腦科普

關於CPU處理器(資料取材於網路)

整理自網路上的計算機組織教材,重新編寫為白話版

電腦裡最常被拿來比大小的一顆零件,就是 CPU(中央處理器)。 規格表上寫著時脈、核心數、快取容量,但這些數字到底代表什麼? 為什麼時脈停在 4 GHz 附近這麼多年,效能卻還是一直進步? 這篇文章把計算機組織與微架構的教材內容,改寫成不須電子背景也能看懂的版本。

本文架構
  1. CPU 到底在做什麼?從指令週期談起
  2. 核心、執行緒與 SMT
  3. 時脈、IPC 與「效能 = 時脈 × IPC」
  4. 快取階層:為什麼要一層一層疊
  5. 分支預測與亂序執行
  6. 製程節點與電晶體密度
  7. 封裝與 I/O:CPU 不只是一顆核心
  8. TDP、功耗與散熱
  9. 挑選 CPU 的取捨
  10. 常見誤解釐清
  11. 結語:進步不是單一數字

一、CPU 到底在做什麼?從指令週期談起

CPU 做的事只有一件:照著指令把資料算成結果。程式編譯後變成一串「機器指令」, 每一條都很笨,例如把兩個暫存器相加、或結果是零就跳到某一行。

4 GHz 的 CPU,每個時脈週期只有 0.25 奈秒。一條指令老實走完五階段要 5 個週期, 一秒只能做 8 億條;今天卻能做數十億到上百億條,差別就在管線(Pipeline): 第 1 條指令在「執行」時,第 2 條在「解碼」、第 3 條在「取指」, 理想上每個週期都能完成一條指令。但資料還沒算完就得等(stall), 遇到「跳躍」更不知道下一步該去哪取指。

指令的五個階段(管線) 取指 IF Fetch 解碼 ID Decode 執行 EX Execute 存取 MEM Memory 寫回 WB Writeback 時間 → IF ID EX MEM WB IF ID EX MEM IF ID EX IF ID 指令 1 指令 2 指令 3 指令 4 每一列是一條指令;雖然每條都要走五關,但同一時間五關都在忙 —— 這就是管線
圖一:管線讓不同指令的不同階段重疊,理想上每個週期都能完成一條指令

一句話記住: CPU 不是「一次做一件事做得很快」,而是同時讓很多事處在不同階段

二、核心、執行緒與 SMT

前面講的管線,指的是一個核心(Core);現代 CPU 把多個核心放進同一顆晶片, 每個都能獨立跑一條指令流。執行緒(Thread)則是「程式執行流」的最小單位, 需要自己的一份狀態。

於是有了 SMT(同時多執行緒),業界也稱「超執行緒」: 在一個核心裡放兩份架構狀態,但共用同一套運算單元。 它有效是因為單一執行緒餵不飽核心——指令流充滿相依性與快取未命中, 每週期送出的指令常不到 2 條,而核心能吞下 4 到 6 條,既然運算單元閒著就讓第二條執行緒補進來。 因此增益通常是 15% 到 30%,不是 100%。

實體核心(未開啟 SMT) 一份架構狀態 程式計數器 + 暫存器 ALU 整數運算 FPU 浮點運算 LSU 記憶體存取 SIMD 向量運算 只有一條指令流 → 執行單元常常在等 實體核心(開啟 SMT) 執行緒 A 的狀態 PC + 暫存器 執行緒 B 的狀態 PC + 暫存器 ALU 整數運算 FPU 浮點運算 LSU 記憶體存取 SIMD 向量運算 兩條指令流互相填補空檔 → 執行單元保持忙碌 代價:運算單元與快取是共用的,增益約 15%~30%,而非翻倍
圖二:SMT 用「兩份架構狀態、一套執行單元」,換取更高的使用率
項目實體核心邏輯處理器(SMT 執行緒)
程式計數器與暫存器一份每條執行緒各一份
運算單元(ALU/FPU/LSU)一組共用同一組
L1/L2 快取專屬共用同一份
對總吞吐量的幫助通常 15%~30%

常見誤會: 「4 核心 8 執行緒」不等於「8 核心」——8 條執行緒搶的是 4 組運算單元, 遇到重度浮點運算的程式,實際效能接近 4 核心。

大小核:另一種塞進更多核心的方法

大核追求單執行緒延遲,小核追求每瓦效能與面積效率; 取捨是:大核在延遲敏感的負載上贏,小核在大量平行、輕負載的工作上贏。

三、時脈、IPC 與「效能 = 時脈 × IPC」

「這顆跑 4.5 GHz,那顆 3.8 GHz,所以前者比較快」——這句話錯得離譜。 時脈只告訴您「每秒有幾個節拍」,至於「每個節拍能做多少事」則叫做 IPC(每週期指令數)單核效能 ≈ 時脈 × IPC。 IPC 取決於整個架構:

效能 = 時脈 × IPC 0 4 8 12 16 相對效能 2 GHz 3 GHz 4 GHz 5 GHz 時脈 IPC = 1.5 IPC = 3 同為 4 GHz:IPC 1.5 得 6 分,IPC 3 得 12 分 —— 時脈相同,效能差一倍
圖三:時脈只是乘號左邊的數字,乘號右邊的 IPC 同樣關鍵

在 4 GHz 這個點上,IPC 1.5 得 6 個單位、IPC 3 得 12 個單位—— 時脈一模一樣,效能差一倍。2000 年代中期,時脈衝到 4 GHz 附近就幾乎停滯, 原因是 動態功耗 ≈ 電容 × 電壓² × 頻率:拉高頻率通常必須同時拉高電壓, 而電壓是平方項。於是提頻 20%,功耗可能增加 50% 以上——這就是頻率牆

選購上的實際建議: 跨世代、跨架構比較時,直接看評測跑分,不要看 GHz; 只有同一顆晶片、同一個架構下的時脈比較才有意義。

四、快取階層:為什麼要一層一層疊

主記憶體(DRAM)的延遲約 60 到 100 奈秒,對 4 GHz 的 CPU 就是 240 到 400 個時脈週期。解法是在 CPU 與 DRAM 之間插入一連串 更小、更快、更貴的記憶體,靠的是程式的兩種局部性時間局部性(剛用過的資料很可能馬上再用)與空間局部性 (用了一個位址,很可能接著用隔壁的)——所以快取一次搬一整條 64 位元組快取線(Cache Line)

層級典型容量位置延遲(週期)延遲(時間)誰能用
暫存器數百位元組核心內 < 1< 0.25 ns當前指令
L1 快取32~64 KB每核心專屬 4~5約 1 ns該核心
L2 快取0.5~2 MB每核心專屬 12~20約 3~5 ns該核心
L3 快取8~64 MB多核心共享 30~50約 8~13 ns全部核心
主記憶體GB 級主機板上 200~400約 50~100 ns全系統
存取延遲比較(橫軸為對數刻度,每一格代表 10 倍) 暫存器 L1 快取 L2 快取 L3 快取 主記憶體 DRAM 約 4 ns(16 週期) 約 15 ns(60 週期) 約 80 ns(320 週期) 約 1 ns(4 週期) 不到 1 個週期 每一階大約差 3~5 倍,但一路累積到 DRAM,就是 300 多個週期的差距
圖四:快取階層的價值,來自把大部分存取擋在 L1/L2 這兩關

假設 L1 命中率 95%、L2 再擋下 80%、L3 再擋下 70%,平均延遲會被拉低到十幾個週期; 完全沒快取時每個存取都是 300 週期,差距二十倍以上。 另外,L1 與 L2 是每核心專屬、L3 通常共享,因此需要快取一致性協定 (最經典的是 MESI):任何核心要寫入某條快取線,必須先把其他核心手上的同一條作廢

值得記住的比例: 在現代 CPU 上,快取命中率對效能的影響常常大於時脈高低—— 「對快取友善的寫法」能帶來數倍加速,不是 CPU 變快了,而是它少等了很多次。

五、分支預測與亂序執行

管線的致命弱點是遇到「如果…就跳…」的分支時,CPU 不知道下一步該去哪, 偏偏平均每 5 到 6 條指令就有一條分支。現代的解法是分支預測器 記錄每條分支過去的行為,據此預測並沿著猜的方向繼續執行。 準確率可達 95% 到 99%,但猜錯時整條管線裡猜錯方向的指令都要丟掉, 懲罰約 10 到 20 個週期

亂序執行:讓後面的指令先跑

程式的指令常互相等待:第 5 條要等一個 200 個週期才會到的記憶體資料, 但第 6 到第 20 條跟它毫無關係。亂序執行的做法是:指令照順序進入 重排緩衝區(ROB),但誰的資料先到齊,誰就先送去執行。 硬體必須解決兩件事:

亂序執行:排隊照順序,執行不必照順序 程式順序 執行單元 ① 整數加法 ② 浮點乘法 ③ 整數比較 ④ 記憶體讀 重排緩衝區 ROB 實際可容納數百條 ALU 0 ALU 1 FPU 浮點 LSU 存取 ②與③的路徑交叉了:誰先做好就先執行;但完成後一律依「程式原順序」退休
圖五:亂序的是「執行」,不是「結果」——依序退休保證了程式的正確性

所以正確的說法是:執行是亂序的,但結果的生效嚴格照順序; 現代核心的 ROB 可容納數百條指令

安全上的副作用: 推測執行留下了痕跡——理論上不該執行的指令照樣把資料讀進快取, Spectre 與 Meltdown 系列漏洞正是利用這點推斷機密資料。

六、製程節點與電晶體密度

CPU 內部的「零件」是電晶體,工作就是開關,一顆現代處理器裡有數百億顆。 想塞進更多電晶體靠製程微縮,但節點名稱早已與實際物理尺寸脫鉤; 真正能比較的是電晶體密度,單位是每平方毫米幾百萬顆(MTr/mm²)。

指標意思為什麼容易誤導
節點數字(nm) 製程的世代代號 早期約等於某個物理尺寸,現在只能當「第幾代」看
電晶體密度 每平方毫米能塞幾百萬顆電晶體 這才是真正能比較的數字,但邏輯與 SRAM 要分開看
閘極結構 平面 → FinFET → 環繞式閘極 同一個節點數字下,結構不同,漏電與驅動能力可以差很多

閘極結構的演進:為什麼要立體化

傳統平面電晶體的閘極只從上方壓住通道,尺寸縮小後越來越難完全關斷,導致漏電。 解法是把通道立起來,讓閘極從三個面包覆(FinFET), 再演進到四面八方完全包住通道的環繞式閘極(GAA)。 另外要注意:邏輯電路與 SRAM 微縮的速度並不相同——SRAM 單元幾乎停在同一面積上, 這正是為什麼核心數能一直增加、快取容量卻成長得很慢。

為什麼這件事跟您有關: 製程進步的好處不只是「更快」,更是同樣效能下更省電—— 換到更先進的製程,就能用更低的電壓跑同樣的頻率。

七、封裝與 I/O:CPU 不只是一顆核心

如果把 CPU 想成「一堆核心」,就會看不懂現代處理器的晶片照片—— 上面常常有好幾塊形狀不同的晶粒(Die)

記憶體控制器與 PCIe 通道

記憶體控制器原本做在主機板的「北橋」上,整合進 CPU 之後延遲大幅下降。 今天看到的「支援雙通道/四通道」,講的其實是內建記憶體控制器能接幾組獨立通道PCIe 通道則是 CPU 與顯示卡、固態硬碟之間的通道,常見分配是 顯示卡吃 16 條、每顆硬碟吃 4 條——硬碟插滿有時會讓顯示卡降速,就是通道被切走了。

Chiplet:把一顆大晶片拆成好幾顆小晶片

把整顆 CPU 做成一塊超大晶粒有致命問題:良率——面積越大,出現瑕疵的機率越高。 於是有了把電路拆成不同晶粒(Chiplet)的做法:運算核心用最先進、最貴的製程, 記憶體控制器與 PCIe 用成熟製程,再透過先進封裝放在同一塊基板上。 取捨是成本與良率改善,代價是跨晶粒延遲較高

同一顆處理器,裡面可能不只一塊晶片 封裝基板(Package Substrate) 運算晶粒 核心 + 專屬快取 用最先進製程 面積最大、最貴 I/O 晶粒 記憶體控制器 PCIe 控制器 其他周邊 用成熟製程,便宜 運算晶粒 (另一顆) 晶粒之間用高速互連串起來(跨晶粒的延遲比晶片內部高) 主記憶體 DRAM 顯示卡 / 固態硬碟 記憶體匯流排 PCIe 通道
圖六:Chiplet 把不同性質的電路拆開,各自用最適合的製程製造,再封裝在一起
區塊負責什麼取捨重點
核心與快取 實際運算、存放熱資料 要用最先進製程,成本最高
記憶體控制器 決定支援幾個通道、多大容量 通道越多頻寬越大,但腳位與走線成本增加
PCIe 控制器 連接顯示卡、固態硬碟、網路卡 通道有限,插滿裝置可能互相排擠

八、TDP、功耗與散熱

TDP(散熱設計功耗)是「在典型負載下,散熱系統必須能持續排掉的熱量」, 是給散熱器的設計目標,不是耗電上限。現代 CPU 都有加速機制: 只要溫度與功耗還沒到上限就會自動拉高頻率——所以實際功耗可能遠高於標示的 TDP, 但只持續幾秒到幾十秒。

為什麼高頻這麼耗電

回到 功耗 ≈ 電容 × 電壓² × 頻率:想跑更高頻,電晶體必須用更高電壓才切得動, 功耗因此超線性上升——時脈從 3 GHz 到 4 GHz 只多 33%,功耗卻幾乎翻倍。

功耗隨時脈超線性上升 0 50 W 100 W 150 W 200 W 2 GHz 3 GHz 4 GHz 5 GHz 散熱與供電的實用上限 3 GHz ≈ 58 W 4 GHz ≈ 110 W 再上去就超出上限 時脈從 3 GHz 到 4 GHz 只多 33%,功耗卻幾乎翻倍 —— 這就是頻率牆的由來
圖七:提頻要加壓、加壓又讓功耗以平方成長,兩者疊加就形成了頻率牆

熱密度比總功耗更麻煩

散熱真正頭痛的是熱密度(W/mm²):同樣 100 瓦,集中在 30 平方毫米上就會形成熱點, 熱來不及傳出——這就是為什麼 CPU 溫度常在單核心滿載時最高。

名詞真正的意思常見誤解
TDP 散熱器必須能持續排掉的熱量(設計目標) 誤以為是耗電上限,實際瞬時功耗可遠高於它
基準時脈 持續重負載下能長期維持的頻率 誤以為是「平常跑的頻率」,輕負載時通常更高
加速時脈 短時間內可拉到的最高頻率 誤以為可以一直維持,實際上受溫度與功耗限制

筆電選購的實際意義: 同一個 CPU 型號裝在不同筆電上,效能可能差 30% 以上——因為功耗上限與散熱設計不同。 看評測時要看的不是型號,而是那台機器在長時間負載下能不能維持頻率

九、挑選 CPU 的取捨

單核與多核哪個重要,取決於工作能不能平行化Amdahl 定律說: 若一個工作有 P 的比例可平行,即使核心無限多,加速上限也只有 1 / (1 − P)——只有 50% 可平行的工作,給 100 個核心最多也只能快 2 倍。 玩遊戲、開網頁、文書處理大多吃單核或少數幾核影片轉檔、3D 渲染、編譯則能有效利用多核

另外兩個容易忽略的維度:內顯在文書、上網、影片解碼上完全夠用,還省電、省空間; 而 CPU 必須插在對應的腳位(Socket)上,換腳位也代表舊主機板無法沿用—— 如果您的習慣是「隔幾年只換 CPU」,平台的延續性就比跑分更值得考慮。

您的需求該優先看什麼為什麼
玩遊戲 單核效能、快取容量 遊戲邏輯與物理多為序列,且頻繁存取遊戲資料
影片轉檔、渲染、編譯 核心數、多核持續效能 這類工作可高度平行,核心數幾乎直接換成速度
輕薄筆電 功耗上限、散熱設計 同型號在不同機器上實際效能可能差 30% 以上
打算日後只換 CPU 升級 腳位與平台延續性 換腳位就得連主機板一起換

實用的思考順序: 先問「我最常跑的程式吃單核還是多核」,再問「我三年內會不會升級」,最後才比規格細節。 反過來做,很容易買到一顆跑分很高、但對您的工作毫無幫助的 CPU。

十、常見誤解釐清

以下是關於 CPU 最常被誤傳的觀念,很適合拿來自我檢查:

1. 時脈越高就一定越快?

錯。效能 ≈ 時脈 × IPC,時脈較低但 IPC 較高的架構完全可能勝出。

2. 核心越多越好?

不一定。受 Amdahl 定律限制,序列比例高的工作用不到那麼多核心, 且核心越多,單核時脈與快取往往得讓步。

3. 開啟 SMT 等於核心數翻倍?

錯。SMT 只是多準備一份架構狀態, 運算單元與快取仍然共用,實際增益通常 15% 到 30%。

4. 亂序執行會讓程式結果不照順序?

錯。亂序的只有「執行」;結果一律透過依序退休寫回, 例外也依序處理,可觀察行為與嚴格照順序執行完全一致。

5. 分支預測只是猜,猜錯也沒關係?

錯。猜錯要清空管線並重新取指,懲罰約 10 到 20 個週期, 管線越深代價越大。

6. 快取越大就一定越快?

不一定。快取變大通常也變慢(延遲增加、更耗電), 面積若排擠到其他資源反而得不償失。

7. TDP 就是這顆 CPU 的實際耗電量?

錯。TDP 是給散熱系統的設計目標,加速時脈期間瞬時功耗可明顯超過它。

8. 製程「幾奈米」代表電晶體就是那麼大?

錯。節點名稱早已與實際物理尺寸脫鉤,只是世代代號; 要比較不同廠商,應該看電晶體密度與實際功耗表現。

9. 固態硬碟插滿不會影響別的裝置?

錯。PCIe 通道數是固定的;硬碟分走通道後, 顯示卡可用通道數可能從 16 條降到 8 條。

10. 內顯完全沒有用,不如直接省掉?

錯。內顯在文書、上網、影片解碼上完全夠用,還省電、省空間, 並能在獨立顯卡故障時當備援。

十一、結語:進步不是單一數字

CPU 的演進一直在解同一道題:如何讓昂貴的運算單元不要停下來等。 從管線、快取、分支預測、亂序執行到 SMT,每個機制都在對抗同一件事:等待

這幾件事互相拉扯,沒有任何一項能單獨決定好壞——好的 CPU 不是每項都最強, 而是在目標場景裡配到最平衡

給一般讀者的一句話: CPU 不是「越快越好」的單一數字,而是一整套與等待對抗的工程取捨

本文為科普整理,內容取材自網路上的計算機組織與微架構教材,經重新編寫與白話化而成。
文中數據為常見範圍的概略值,僅供理解參考;實際規格與行為請以各廠商官方技術文件為準。