6 核心至 16 核心任選
自從 AMD 宣布推出 Zen 微架構 Ryzen 系列處理器,就可以看出 AMD 在製造方面選擇與 Intel 分岔的道路,Intel 至今依舊選擇所有核心擺放在同一晶粒,同時製造、生產(超過實體 28 核心產品採用雙晶粒封裝)。由於 Intel 處理器產品絕大多數依舊掌握在自己的晶圓廠,因此採用此設計合情合理。
另一方面,AMD 早在 Zen 微架構產品推出之前,將晶圓廠切割出去,Zen 微架構也採用小核心晶粒透過拼湊封裝方式,推出超過實體八核心的產品線。此種作法的主要能夠降低生產成本,又能夠因應市場需求快速調整核心數量。
Zen 2 微架構實作,AMD 選擇僅提升運算晶粒 CCD 製程至 TSMC 7nm,搭配使用的 I/O 晶粒則採用 14nm(12nm?詳情後述),每個 CCD 包含 2 個 CCX 以及用來與 I/O 晶粒相互連結的 Infinity Fabric,I/O 晶粒則根據不同平台的需求,進行差異化設計。
除了代號 Rome 下一世代伺服器 EPYC 處理器,位居主流消費市場的第三代 Ryzen 桌上型處理器系列同樣採用 Zen 2 微架構,以及 CCD 運算晶粒和 I/O 晶粒分離式的設計,目前預計推出單 CCD 實體六核心 Ryzen 5 3600,直至雙 CCD 實體十六核心 Ryzen 9 3950X 共 5 款不同等級產品。
Zen 2 補完 Zen/Zen+
整體而言,Zen 2 微架構主要的進步之處在於填補先前 Zen/Zen+ 微架構的不足,因此要見到 Zen 微架構對比工程機械微架構那般的效能暴漲,坦白說是讀者們多慮了。不過 AMD 依舊創造出 Zen 2 IPC 成長 15% 成績,過去讓人在意的 AVX 256bit 浮點運算效能和記憶體存取延遲,也紛紛在 Zen 2 微架構產品獲得改善。
另一方面,堆疊核心數量則是 AMD 從 Zen 微架構處理器產品以來的強項,第一代產品就逼得 Intel 不得不放棄祖傳許多代的 Core i7 實體四核心設計,推出 Core i7-8700K,接著甚至下放 Core i9 品牌等級至主流消費市場,推出實體八核心 Core i9-9900K,今年下半年甚至還有全數八核心渦輪加速頻率至 5.0GHz 的 Core i9-9900KS。
預測更準、單元更多、道路更寬
由於 Zen/Zen+ 架構採用的 GlobalFoundries 14nm/12nm 製程,其電晶體密度表現依舊不敵 Intel 14nm,因此 AMD 在此世代的微架構設計不得不採用一些折衷方案,其中最為明顯的是 256bit 浮點運算,雖然支援 AVX2 指令集,但卻需要拆成 2 個 128bit 指令,因為浮點運算單元寬度就只有 128bit。(註:AMD 選擇的 GlobalFoundries 12nm 為 14nm 最佳化版本,鰭片式電晶體長得更高、電氣特性更為優秀,但無法在同一面積之內塞入更多電晶體。)
Zen 2 微架構 CCD 改交由台灣 TSMC 7nm 製程製造,一舉追過 Intel 14nm 製程,可以放入許多需要耗費大量電晶體的功能;根據官方數據,轉進 7nm 製程可於相同面積之內塞入 2 倍數量電晶體,能夠以一半的耗電量提供相同效能,或是在相同功耗之下提供 1.25 倍以上效能。
Zen 2 微架構具體而言,前端調整分支預測器至 TAGE 形式、L1 快取調整為 32KB 容量 8-way、µOp 微運算快取增至 4096 個條目,連帶 L3 快取增為 Zen/Zen+ 為架構的 2 倍。整數處理單元的重命名暫存器為 180 個、AGU 則為 3 個、每個時脈週期 2 個載入與 1 個儲存工作寬度增為 32Byte,浮點數處理器寬度增至 256bit。
由 AMD 釋出的圖表可得知,L1 分支預測依舊使用 Hashed Perceptron 方式,但是 L2 則進化成 TAGE,至於各階層的 Branch Target Buffer 條目數量均有上升,L0 BTB 從 8 個提升至 16 個、L1 BTB 從 256 個提升至 512 個、L2 BTB 則從 4096 個變為 7168 個,此外 Indirect Target Array 也從 512 個條目翻倍成 1024 個。上述 Zen 2 微架構前端改進,可降低約 30% 分支預測錯誤率。
L1 指令快取變成 32KB,容量少見地縮水,但快取映射組關聯性從 4-way 變成 8-way,變成與 L1 資料快取相同,AMD 表示此舉能夠提升相關連性,並增加預取以及使用效率。
解碼部分最大的變化為 µOp 微運算快取,從原先 2048 個條目增加至 4096 個條目,其餘解碼數量倒是沒有什麼變化,解碼器依舊可以同步解碼 4 條指令並輸出,µOp 微運算快取則可輸出 8 條 macro-OP,AMD 表示 µOp 微運算快取輸出將有更佳的指令融合效果,因此整體而言可增加有效指令輸出量,同一時脈週期最高依然可以配發 6 個整數微運算或是最高配發 4 個浮點數微運算。
整數運算執行區塊,內部仍然使用 4 個 ALU,但前方的 ALU 排程器條目數量從每個 ALU 分配到 14 個條目,變成 16 個條目。AGU 則增加 1 個來到 3 個,前方 AGU 排程器已不再使用每個 AGU 對應 14 個條目的設計,而是所有 3 個 AGU 共享單個排程器 28 個條目。
其餘整數運算共享部分,重命名暫存器條目從 168 個提升至 180 個,且由於 AGU 增加 1 個的關係,每時脈週期可 issue 的指令也從 6 個提升至 7 個,Reorder Buffer 重排序緩衝區條目則是從 192 個增至 224 個。AMD 也在此提升雙執行緒指令排程時的 ALU/AGU 使用公平性,並標記 ALU 令牌以便管理 spinlock 狀態。
這次 Zen 2 微架構浮點運算處理的首要任務為加強 256bit 寬度執行效率,因此所有的變更均圍繞此項目標,不僅是 2 個乘法器和 2 個加法器已可在單一指令完成 256bit,身旁傳輸的管線也從 2 x 128bit 而拓寬變成 2 x 256bit。至於能不能夠如同 Intel 部分微架構可將 2 個 256bit 融合成能夠執行 AVX-512,AMD 沒說意即應不具備此機制。
載入與儲存區塊,同樣因為要支撐更大的吞吐量而拓寬道路,每個時脈週期依舊能夠提供 2 個載入與 1 個儲存動作,載入維持 72 個亂序佇列,儲存佇列從 44 個抬升至 48 個,每個載入或是儲存動作的頻寬也從 16Byte 提升至 32Byte。L2 資料 TLB 如同先前所述,從 1532 個條目增加至 2048 個條目。
其餘部分則沒有太大的變化,AMD 僅公布更快的存取速度,更低的延遲等文字敘述;L3 快取階層不變,依然為 Victim Cache 設計,從 L2 快取排除的指令或是資料會被填入 L3 快取,以待未來再次使用時無須從記憶體當中載入,而 L3 快取容量於 Zen 2 微架構容量加倍,單一實體核心 L3 快取從 8MB 拓展成 16MB。
Zen 2 微架構同時導入 3 個新指令,分別為 CLWB、WBNOINVD、QOS,前 2 者分別可以將處理器核心內部修改過的髒資料回寫,而無須將快取內部資料全數清空,QOS 則是提供快取與記憶體控制,保留更多的快取資源與記憶體頻寬給需要的執行緒。
(下一頁:主流市場 Matisse 封裝秘辛)
Matisse 多晶片封裝
原本 Zen/Zen+ 微架構僅於伺服器 EPYC 和 HEDT 市場 Ryzen Threadripper 採用多晶片封裝,主流市場維持單晶片 SoC 設計,但 AMD 指出摩爾定律越來越難達成、單一晶片設計不容易整合邏輯電路、類比介面、記憶體迴路等問題,遂在 Zen 2 微架構產品導入 chiplet 設計。
第三代 Ryzen 桌上型處理器系列,處理器封裝內部改採 1 個 CCD 運算晶粒加上 1 個 I/O 晶粒,或是 2 個 CCD 運算晶粒加上 1 個 I/O 晶粒的構成方式,CCD 內部僅有 2 個實體四核心 CCX 和 Infinity Fabric,其餘 I/O 部分如記憶體控制器、PCIe、SATA、USB 等均移至 I/O 晶粒身上。
值得注意的是,CCD 內部 2 個 CCX 之間並未留有 Infinity Fabric 相互交換資料,而是必須透過與 I/O 晶粒相互連結的 die-to-die Infinity Fabric 進行溝通。筆者會後額外向 Michael Clark 求證確認,Michael Clark 表示如此選擇是為了讓核心拓樸不複雜,每個 CCX 和 CCX 之間的頻寬與延遲均相等。AMD 也因應此種設計,導入 Early Page Active 功能降低記憶體延遲,以及 Early Probe Launch 加強快取與快取之間的傳輸速度。
封裝錫球部分,採用 12nm 製程製造的 I/O 晶粒(Tech Day 當中 12nm、14nm 均有提及,確切的製程有待正式上市時給予標準答案)可以使用直徑 150μm,但是 7nm CCD 卻需要 120μm,因此封裝基板錫球下方額外增加銅柱結構,方便控制上方錫球粒徑。
透過增加銅柱結構,不但能夠確保錫球粒徑在可接受的範圍之內,更因銅柱些微抬升錫球高度,沒有降低錫球大小之後,封裝高度連帶下降的問題,這對於單一封裝內部包含 2 種 7nm 和 12nm 製程晶粒的 Matisse 相當重要,維持封裝後的平整性。
由於 Matisse 採用 chiplet 設計,加上 I/O 晶粒導入 PCIe 4.0,又必須同時維持與 AM4 腳位插槽相容性,因此封裝基板也是個不小的重點。Matisse 封裝基板材料採用剛剛量產的 low-loss 材料,並以 12 層電路板方式連接 CCD 與 I/O 晶粒,同時特地針對記憶體超頻性進行最佳化設計。
談到記憶體頻率,這次第三代 Ryzen 桌上型處理器系列記憶體控制器頻率 uclk 和 Infinity Fabric 頻率 fclk 不一定是 1:1,當記憶體等效頻率超過 DDR4-3733,達 DDR4-3866 以上,則改採 2:1 比例,有助於玩家超頻記憶體。須注意的是頻率越高,不代表記憶體效能越好(因為 Infinity Fabric 頻率反而降低了), DDR4-2667CL16~DDR4-4400CL18 存取延遲為 DDR4-3733CL17 最佳,官方表示建議選購 DDR4-3600CL16 模組,理由跟筆者近期提出的觀念相同,此區間擁有較佳的價格與效能平衡性。
延伸閱讀
你知道電腦王也有 Telegram 頻道嗎?
加入電腦王Facebook粉絲團