跳轉到

02.3 2020 — 現代處理器微架構剖析:Apple M1/M 系列、AMD Zen 4/5 與 Intel 混合架構#

學習目標#

  1. 剖析 2020 年前後三條路線的旗艦微架構:Apple M1(Firestorm/後續 Everest)、AMD Zen 4/5、Intel Golden Cove(P-core)與 Gracemont(E-core),理解其設計哲學差異。
  2. 說明 uop cache 的位置、容量與其對取指頻寬、功耗的結構性影響。
  3. 量化「寬度(decode/dispatch width)」與「亂序視窗(ROB/PRF 規模)」擴大的功率回報遞減,理解為何 M1 以「8-wide + 巨大視窗」而非「10-wide」取勝。
  4. 建立「工藝節點 × 微架構 × 軟體生態」三維評估框架,避免單一指標(如 GHz)的誤導。

2.3.1 前因:2010 年代的兩面牆#

2010 年代,處理器設計撞上兩面牆。第一面是功率牆:Dennard scaling 終結後,每平方毫米可散掉的瓦數不再隨電晶體縮小而上升,頻率定格在 4–5 GHz。第二面是單執行緒效能牆:製程改善帶來的 IPC 提升從每年 20% 掉到個位數。設計者因此只剩三個槓桿:更寬的機器、更大的視窗、以及減少浪費的功率。2020 年正是這三個槓桿被三家公司以三種方式拉動的時間點:Apple 憑藉 ARM 生態重造個人電腦處理器;AMD 以 chiplet + 高頻寬 IO 擴張 x86 市場;Intel 則承認「一種核心打天下」的成本過高,轉向混合架構。

2.3.2 Apple M1 與 M 系列:寬機器 + 大視窗的極致#

M1 的性能核(Firestorm,後續 M2/M3 之 Everest 系列為其直系)在 2020 年是公認最寬的商用核心:

資源 Apple Firestorm (M1) 同期 x86 大核
解碼寬度 8-wide(含 uop cache 路徑) 4–6-wide
ROB 約 630 項 250–350 項
排程窗口(RS) 極大、分區 100–200 項
Load/Store 單元 3 load + 2 store 2 load + 1–2 store
L1I 結構 128KB 指令快取 + uop cache 較小的 uop cache

三個值得深究的設計選擇:

  1. 巨大 ROB 換記憶體延遲容忍。Apple 無法(也不需)做大容量低延遲的 DRAM 佈線,M1 靠超大視窗在 L2/DRAM 延遲期間累積數百條指令的就緒工作。這是 02.1 節「硬體視窗」概念的極端實踐:視窗深度與延遲容忍成正比。
  2. 不對稱的取指管線。Firestorm 犧牲 x86 必須支援的複雜解碼彈性(變長指令、跨頁指令),把解碼做成寬而淺——ARM 定長指令使 8-wide 解碼的功耗在可接受範圍。這說明 ISA 不直接決定效能,但決定實現某寬度的成本曲線。
  3. SoC 一體化與記憶體模型。統一記憶體架構(UMA)使 GPU 與 CPU 共享實體頁,省去拷貝;同時 Apple 實作較強的記憶體排序保證,減少軟體同步開銷。這是「處理器微架構之外、仍屬效能體驗」的前因後果。

M3(2023)起採用 3nm,並加入硬體光線追蹤與 Dynamic Caching;M4 的 Everest 進一步擴大視窗。整體而言,Apple 路線是「單核寬到極限 + 每瓦效能为王」。

2.3.3 AMD Zen 4/Zen 5:頻率、AVX-512 與 chiplet 的平衡#

Zen 4(2022,5nm)相對 Zen 3 的主要躍進:

  • 解碼寬度 4→6,dispatch 6-wide,ROB 256→352 項,配合 TAGE 式感知預測器的強化(歷史更深);
  • 原生 512-bit FP/向量資料路徑(AVX-512 全支援),不像 Intel 以 256-bit 路徑拆分執行——這對 HPC 與 AI 推理的直接收益是向量吞吐翻倍;
  • L1 uop cache 擴容與密集化,搭配 6-wide 解碼形成「uop cache 命中時可達全寬取指」的設計;
  • chiplet 化:CCD(8 核 + L3)與 IOD(IO die,含 DDR5/PCIe5)分離製造,使良率與成本脫鉤於單晶片尺寸——這是「微架構之外」的系統級創新,但直接影響了 Zen 4 能夠負擔多大 L3、多少核。

Zen 5(2024,4nm)把解碼推向 8-wide(uop cache 命中路徑更寬)、ROB 擴至 ~464 項、FP 管線加深並加入完整的 512-bit FMA 叢集。Zen 5 明示了一個訊號:x86 陣營也走到了 8-wide,且開始在「寬度 vs. 功耗」上採用與 Apple 相同的解法——用 uop cache 餵寬機器。

2.3.4 Intel P-core/E-core 混合架構#

Golden Cove(2021,Alder Lake 的 P-core)是 Intel 首個 6-wide 解碼、ROB 512 項的大核,也是第一個放棄 AVX-512(消費端)以騰出功率與面積給混合架構的設計。Gracemont(E-core)則以「Skylake 級 IPC、四分之一面積」為目標:雙寬解碼 + 128 項 ROB,以 4 核為一簇共享 L2。

混合架構的排程責任落在硬體執行緒導向(thread director):OS 依指令混合特徵(浮點密集、背景 IO、前端網頁渲染)把執行緒放到 P 或 E 核。這與 Apple 的做法形成對照——Apple 也用 4 E-core(Icestorm/後續 Sawtooth),但把排程策略大部分固化在硬體與 OS 的緊密耦合中。混合架構背後的經濟學是:互動式工作負載的長尾延遲由 E-core 保底,吞吐由 P-core 衝刺,整顆晶片的功耗包絡因此可以在行動裝置可接受的範圍內承載 8+16 核的規模。

2.3.5 uop cache:藏在最前端的功率槓桿#

uop cache(micro-op cache)位於解碼器之後(或取代 L0 指令快取),快取已解碼的微操作。其價值來自兩個層面:

  1. 繞過解碼器:x86 變長指令解碼是整條前端最耗電的段落。典型程式碼有強烈的時間局部性(小循環、熱函式),uop cache 命中率常達 60–80%,此時解碼器可斷電。
  2. 為寬機器供彈藥:Intel 的大核從 Sandy Bridge(1K uops)一路擴到 Golden Cove 之後的 3K uops,正是因為 6-wide 之後,「解碼器 + 傳統指令快取」再也餵不飽後端。Apple 則反其道:以極大的 L1I + uop cache 並行,讓 8-wide 前端有兩條供應管線。

這也解釋了為什麼寬度的擴大必須整條前端一起重新設計:寬度不是解碼器一個模組的參數,而是取指頻寬、BTB 容量、uop cache 頻寬的聯合約束。

2.3.6 寬度與視窗的功率回報遞減#

假設 IPC 上限由 min(前端頻寬, 排程窗口, 執行端口, 記憶體並行) 決定,而功率大致隨「活躍電晶體 × 開關頻率」成長。實務觀察到的規律:

擴張 IPC 收益 功率/面積成本 邊際效率
4-wide → 6-wide +10–15% +25–30%(解碼、RS 比對器) 尚可
6-wide → 8-wide +5–8% +30–40% 遞減明顯
8-wide → 10-wide +2–4% +40%+ 幾乎不划算
ROB 350→600 記憶體延遲期 +5–10% +20%(PRF 埠、CAM) 視工作負載

遞減的根本原因有三:(1) 指令層級並行度(ILP)本身有限——大多數程式的資料相依鏈決定了任何視窗都只能挖到 2–4 條獨立指令;(2) 視窗越大,CDB/PRF 的比對與驅動功耗超線性成長(參照 02.1 習題 2);(3) 快取層級延遲未同步縮短,寬機器最終在等記憶體。M1 的策略因此不是無限加寬,而是「8-wide + 600+ ROB + 極強的前端 + 極快的 L1/L2」——把錢花在延遲與頻寬的同步上,而非單純的寬度競賽。Intel 轉向 E-core、AMD 轉向 chiplet + 3D V-Cache,都是同一命題的不同解法:當單核功率回報遞減,就往多樣性、系統與快取要效能。

2.3.7 2020 之後的趨勢#

2020–2025 的發展可以濃縮為四條主線:其一,ISA 差異的影響被「實現成本」取代——Apple 證明 ISA 不是王冠,視窗與前端設計才是;其二,安全成為微架構常駐變數(02.2 節的後果延續);其三,AI 推理把向量/矩陣單元推向前排(Zen 5 的 512-bit FMA、Intel 的 AMX、Apple 的 ANE);其四,晶片級整合(chiplet、3D 堆疊、SoC 化)從「封裝問題」變成「微架構取捨的一部分」。理解這些,需要本書前兩節的視窗理論與功率模型作為底層語言。

本章小結#

  • 2020 年三條路線:Apple M1 以 8-wide + 630 項 ROB + 強前端展現「寬機器 + 大視窗」的極致;AMD Zen 4/5 以 6→8-wide、原生 512-bit 向量與 chiplet 化取捨成本;Intel 以 P/E-core 混合架構重新分配功率。
  • uop cache 是寬度擴大的前提:它同時降低前端功耗並提供取指頻寬,是現代大核的標配。
  • 寬度與視窗的功率回報遞減由「有限 ILP、超線性比對器功耗、快取延遲未同步縮短」三因素驅動;先進設計的答案是平衡整條管線,而非單點加寬。
  • 評估現代處理器必須採用「工藝 × 微架構 × 系統(chiplet/SoC/軟體)」的三維視角。

習題#

  1. Firestorm 的 ROB 約為 Golden Cove 的 1.2 倍,但兩者 IPC 在 SPECint 上接近。提出至少兩個可能原因,並設計實驗加以區分。
  2. 說明為何 x86 的 8-wide 解碼比 ARM 定長指令的 8-wide 解碼成本更高,且 uop cache 對前者的相對重要性更大。
  3. 以 2.3.6 節的邊際效率表為依據,論證「與其從 8-wide 加到 10-wide,不如把 L2 延遲降低 2 拍」在何種工作負載下成立、何種情況下不成立。
  4. Thread Director 與 Apple 的排程策略在「硬體提供多少資訊給 OS」上有何差異?各自的優缺點為何?
  5. chiplet 化將 IOD 與 CCD 分離,這對「跨叢集記憶體延遲」與「可擴展核心數」各造成什麼影響?3D V-Cache 如何部分緩解前者?