電腦裡最常被拿來比大小的一顆零件,就是 CPU(中央處理器)。 規格表上寫著時脈、核心數、快取容量,但這些數字到底代表什麼? 為什麼時脈停在 4 GHz 附近這麼多年,效能卻還是一直進步? 這篇文章把計算機組織與微架構的教材內容,改寫成不須電子背景也能看懂的版本。
CPU 做的事只有一件:照著指令把資料算成結果。程式編譯後變成一串「機器指令」, 每一條都很笨,例如把兩個暫存器相加、或結果是零就跳到某一行。
4 GHz 的 CPU,每個時脈週期只有 0.25 奈秒。一條指令老實走完五階段要 5 個週期, 一秒只能做 8 億條;今天卻能做數十億到上百億條,差別就在管線(Pipeline): 第 1 條指令在「執行」時,第 2 條在「解碼」、第 3 條在「取指」, 理想上每個週期都能完成一條指令。但資料還沒算完就得等(stall), 遇到「跳躍」更不知道下一步該去哪取指。
一句話記住: CPU 不是「一次做一件事做得很快」,而是同時讓很多事處在不同階段。
前面講的管線,指的是一個核心(Core);現代 CPU 把多個核心放進同一顆晶片, 每個都能獨立跑一條指令流。執行緒(Thread)則是「程式執行流」的最小單位, 需要自己的一份狀態。
於是有了 SMT(同時多執行緒),業界也稱「超執行緒」: 在一個核心裡放兩份架構狀態,但共用同一套運算單元。 它有效是因為單一執行緒餵不飽核心——指令流充滿相依性與快取未命中, 每週期送出的指令常不到 2 條,而核心能吞下 4 到 6 條,既然運算單元閒著就讓第二條執行緒補進來。 因此增益通常是 15% 到 30%,不是 100%。
| 項目 | 實體核心 | 邏輯處理器(SMT 執行緒) |
|---|---|---|
| 程式計數器與暫存器 | 一份 | 每條執行緒各一份 |
| 運算單元(ALU/FPU/LSU) | 一組 | 共用同一組 |
| L1/L2 快取 | 專屬 | 共用同一份 |
| 對總吞吐量的幫助 | — | 通常 15%~30% |
常見誤會: 「4 核心 8 執行緒」不等於「8 核心」——8 條執行緒搶的是 4 組運算單元, 遇到重度浮點運算的程式,實際效能接近 4 核心。
大核追求單執行緒延遲,小核追求每瓦效能與面積效率; 取捨是:大核在延遲敏感的負載上贏,小核在大量平行、輕負載的工作上贏。
「這顆跑 4.5 GHz,那顆 3.8 GHz,所以前者比較快」——這句話錯得離譜。
時脈只告訴您「每秒有幾個節拍」,至於「每個節拍能做多少事」則叫做
IPC(每週期指令數):單核效能 ≈ 時脈 × IPC。
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 | 全系統 |
假設 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 可容納數百條指令。
安全上的副作用: 推測執行留下了痕跡——理論上不該執行的指令照樣把資料讀進快取, Spectre 與 Meltdown 系列漏洞正是利用這點推斷機密資料。
CPU 內部的「零件」是電晶體,工作就是開關,一顆現代處理器裡有數百億顆。 想塞進更多電晶體靠製程微縮,但節點名稱早已與實際物理尺寸脫鉤; 真正能比較的是電晶體密度,單位是每平方毫米幾百萬顆(MTr/mm²)。
| 指標 | 意思 | 為什麼容易誤導 |
|---|---|---|
| 節點數字(nm) | 製程的世代代號 | 早期約等於某個物理尺寸,現在只能當「第幾代」看 |
| 電晶體密度 | 每平方毫米能塞幾百萬顆電晶體 | 這才是真正能比較的數字,但邏輯與 SRAM 要分開看 |
| 閘極結構 | 平面 → FinFET → 環繞式閘極 | 同一個節點數字下,結構不同,漏電與驅動能力可以差很多 |
傳統平面電晶體的閘極只從上方壓住通道,尺寸縮小後越來越難完全關斷,導致漏電。 解法是把通道立起來,讓閘極從三個面包覆(FinFET), 再演進到四面八方完全包住通道的環繞式閘極(GAA)。 另外要注意:邏輯電路與 SRAM 微縮的速度並不相同——SRAM 單元幾乎停在同一面積上, 這正是為什麼核心數能一直增加、快取容量卻成長得很慢。
為什麼這件事跟您有關: 製程進步的好處不只是「更快」,更是同樣效能下更省電—— 換到更先進的製程,就能用更低的電壓跑同樣的頻率。
如果把 CPU 想成「一堆核心」,就會看不懂現代處理器的晶片照片—— 上面常常有好幾塊形狀不同的晶粒(Die)。
記憶體控制器原本做在主機板的「北橋」上,整合進 CPU 之後延遲大幅下降。 今天看到的「支援雙通道/四通道」,講的其實是內建記憶體控制器能接幾組獨立通道。 PCIe 通道則是 CPU 與顯示卡、固態硬碟之間的通道,常見分配是 顯示卡吃 16 條、每顆硬碟吃 4 條——硬碟插滿有時會讓顯示卡降速,就是通道被切走了。
把整顆 CPU 做成一塊超大晶粒有致命問題:良率——面積越大,出現瑕疵的機率越高。 於是有了把電路拆成不同晶粒(Chiplet)的做法:運算核心用最先進、最貴的製程, 記憶體控制器與 PCIe 用成熟製程,再透過先進封裝放在同一塊基板上。 取捨是成本與良率改善,代價是跨晶粒延遲較高。
| 區塊 | 負責什麼 | 取捨重點 |
|---|---|---|
| 核心與快取 | 實際運算、存放熱資料 | 要用最先進製程,成本最高 |
| 記憶體控制器 | 決定支援幾個通道、多大容量 | 通道越多頻寬越大,但腳位與走線成本增加 |
| PCIe 控制器 | 連接顯示卡、固態硬碟、網路卡 | 通道有限,插滿裝置可能互相排擠 |
TDP(散熱設計功耗)是「在典型負載下,散熱系統必須能持續排掉的熱量」, 是給散熱器的設計目標,不是耗電上限。現代 CPU 都有加速機制: 只要溫度與功耗還沒到上限就會自動拉高頻率——所以實際功耗可能遠高於標示的 TDP, 但只持續幾秒到幾十秒。
回到 功耗 ≈ 電容 × 電壓² × 頻率:想跑更高頻,電晶體必須用更高電壓才切得動,
功耗因此超線性上升——時脈從 3 GHz 到 4 GHz 只多 33%,功耗卻幾乎翻倍。
散熱真正頭痛的是熱密度(W/mm²):同樣 100 瓦,集中在 30 平方毫米上就會形成熱點, 熱來不及傳出——這就是為什麼 CPU 溫度常在單核心滿載時最高。
| 名詞 | 真正的意思 | 常見誤解 |
|---|---|---|
| TDP | 散熱器必須能持續排掉的熱量(設計目標) | 誤以為是耗電上限,實際瞬時功耗可遠高於它 |
| 基準時脈 | 持續重負載下能長期維持的頻率 | 誤以為是「平常跑的頻率」,輕負載時通常更高 |
| 加速時脈 | 短時間內可拉到的最高頻率 | 誤以為可以一直維持,實際上受溫度與功耗限制 |
筆電選購的實際意義: 同一個 CPU 型號裝在不同筆電上,效能可能差 30% 以上——因為功耗上限與散熱設計不同。 看評測時要看的不是型號,而是那台機器在長時間負載下能不能維持頻率。
單核與多核哪個重要,取決於工作能不能平行化。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 不是「越快越好」的單一數字,而是一整套與等待對抗的工程取捨。
本文為科普整理,內容取材自網路上的計算機組織與微架構教材,經重新編寫與白話化而成。
文中數據為常見範圍的概略值,僅供理解參考;實際規格與行為請以各廠商官方技術文件為準。