眾所周知 AMD 在 X870E 與 X870 這兩款新平台上強行綁定 USB4 連接。由於 RYZEN 9000 CPU 的 I/O DIE 沿用上代 (RYZEN 7000) 設計,板廠必須使用第三方 USB4 控制器晶片並透過 PCI-E 通道連接起來。華碩現已公開自家 X870E / X870 主機板的規格,還提供更詳細的資訊讓人參透箇中做法。筆者看了兩三天了,越看越困惑,以下見笑了。
AMD X870E / X870 USB4 方案代價不菲
據筆者理解,AMD 在設計 AM5 之初,本希望利用 CPU 提供 USB4 連接。可惜因為一些原因,RYZEN 7000 的 I/O DIE 並未能提供 40 Gbps USB4。故 AMD 打算改用 PCI-E 通道外接 USB4 控制器提供 USB4 連接。以筆者理解,當時 AMD 由此至終都打算由 CPU 提供 USB4,哪怕是外接方案。(UH報導 1 和 2)
現實中,板廠們在 AM5 平台上提供 USB4 的做法,卻有些出入。在 X670E 平台上,只有華碩和華擎有提供 USB4 連接,所使用的 USB4 控制器是 INTEL 的 JHL8540 THUNDERBOLT 4 控制器。華碩當時決定利用晶片組的 PCI-E 通道連接該 JHL8540,華擎則使用 CPU 的 PCI-E 通道連接 JHL8540。
既然都是外接方案,而且 CPU 和晶片組都有 PCI-E 通道,連哪裡應該沒差更別說晶片組的擴展本身來自 CPU。可是 USB4 或是 THUNDERBOLT 4,其中一大功能是影像輸出,而影像相關的通道,就只存在於 CPU 裡。所以 AMD 當初的如意算盤,應該是像現在的 RYZEN 8000 APU 那樣,直接利用 I/O DIE 提供 40 Gbps USB4,而這兩個 USB4 早被併入影像輸出通道 (DP)。現實中,技嘉早就推出真正直連式的 USB4 B650E 主機板 (B650E AORUS ELITE X AX ICE),實現 RYZEN 8000 APU 的 I/O DIE 的完整設計。(UH 報導)
這也對上 AMD 選擇把 I/O DIE 的 3 個 USB-C 連接與 3 個 DP 影像輸出合併的做法,因為 AMD 的終極目標就是那 3 個 USB-C 都做到 40 Gbps USB4 等級,既可直接提供真原生 USB4,又同時享有 DP ALT 模式。換句話說,USB4 理應由 CPU 提供,而非晶片組。只是現實中 AM5 裡, RYZEN 7000 或 9000 也好,I/O DIE 就沒有 40 Gbps,只有 RYZEN 8000 APU 的 I/O DIE 把 10 Gbps USB 換成 40 Gbps (三之二)。
在 AMD 正式發佈 ZEN5 RYZEN 9000 後,以上一切好像出現變化。從 AMD 官網可見 (來源),AMD 好像在暗示 USB4 控制器應該利用晶片組的 PCI-E 通道連接才對。AMD 在官網列出主機板提供的額外 PCI-E 通道,800 系晶片組與 600 系晶片組的通道數量竟然出現變化!由於 AMD 在 X870E 和 X870 主機板上強行綁定 USB4,且是外接方案,這使 X870E 主機板晶片組的 PCI-E 4.0 通道數量從原來的 12 降至 8,X870 主機板晶片組的 PCI-E 4.0 通道從原來的 8 降至 4。若非如此,X870E 的 GEN4 通道數量理應等如 X670E 的通道數量也就是 12,缺失的 4 剛好是 USB4 控制器所需要的通道數量。 由此猜測,這次 AMD 首次公開暗示,USB4 該由晶片組負責才對。
補充:
- PROM21 提供 8 組 PCI-E 4.0 通道和 4 組 PCI-E 3.0 通道 (又或是 4 個 SATA)。
- X870E / X670E / X670 使用 2 顆 PROM21 故可提供最多 12 組 PCI-E 4.0 通道和 8 組 PCI-E 3.0 通道。
- 雙 PROM21 獨立來看 GEN4 的總和是 X8 + X8 = X16,可是因為要串連雙晶片組,X16 便剩下 X12 因為其中 X4 用作串連。
以華碩的 ROG CROSSHAIR X870E HERO 為例,華碩應該是利用 CPU 的 PCI-E 通道連接 USB4 控制器,而且是第 2 組 X4。RYZEN 7000 與 9000 的 I/O DIE,提供 X16 + X4 + X4 共 24 組可用 PCI-E 通道,最大 28 組的意思是包含連接晶片組的 X4。如果華碩是利用第一組 X4 連接 USB4 控制器,M.2_1 便需由第 2 組 X4 提供。這便受 RYZEN 8500 / 8300 APU 的 I/O DIE 設計所影響,因為這兩顆 APU 實際上不是 X16 + X4 + X4 而是 X8 + X4 + X4 或 X4 + X4 + X2。所以如果 M.2_1 是由 CPU 最後一組通道連接,在使用 RYZEN 8500 / 8300 APU 時該 M.2_1 理應只剩 X2,而非 X4。
順帶一提,C10H 把 CPU 的 X16 分拆為 X8 + X4 + X4,首 X8 直連第一根 PCI-E X16 插槽 (PCIEX16_1),剩下的 X4 + X4 視乎使用組態,可供 PCIEX16_1 或 PCIEX16_2 或 M.2_2 或 M.2_3 使用。由於有 4 個去處,設計複雜程度可能是歷代主流平台之最 (1:2 2:1 切換的話)。簡單來說,C10H 的 PCIEX16_1 和 PCIEX16_2 和 M.2_2 和 M.2_3,都在用同一組 CPU X16。
當使用 USB4 控制器,除了 PCI-E 通道和其來源,還有一點要考慮,那就是相容 USB 2.0 的設計。MSI ASM4242 擴充卡和各款 JHL8540 擴充卡,PCB 上的都有一組 USB 2.0 9-PIN 連接,供使用者自行連接至主機板的 USB 2.0 9-PIN,使 USB 2.0 的裝置可被 USB4 的 TYPE-C 識別 (向下相容)。在 AM5 平台上,由於 AMD 的 USB 3 已包含 USB 2.0 (CPU PCH 亦然),USB4 控制器要相容 USB 2.0 模式應該變得更簡單。可是華碩在 C9H 上的做法好像並不是這樣,據官方提供的 BLOCK DIAGRAM,JHL8540 的 USB 2.0 模式實際上並不是由 CPU 的 USB 提供,而是利用晶片組的原生 USB 2.0 提供。AM5 的 I/O DIE 把 DP 與 USB-C 10 Gbps 整合,當然也包含 USB 2.0 在內。
補充一點,官方 BLOCK DIAGRAM 時有錯誤,例如這份 C9H 也漏掉前置的另一組 USB 3.0 19-PIN (U32G1_E34)。至於 PROM21_1 為什麼能輸出 7 個 USB 2.0,筆者估計那是因為 PROM21_1 的 USB-C 20 Gbps 因為用上 2 個 10 Gbps USB 所以剩下 1 個 USB 2.0。如非如此,那麼實際上應該是由 PROM21_2 提供 USB 2.0 予 AURA 微處理器。
筆者再翻查技嘉的資料,技嘉的使用手冊真的好好看。技嘉除了提供 BLOCK DIAGRAM 更會詳列 I/O 上的 USB 是否相容 USB 2.0。以下的 B650E AORUS ELITE X AX ICE,那個原生的 USB4 40 Gbps TYPE-C 由於沒有利用任何 USB4 控制器,故只限於 RYZEN 8000 APU 才能開通完整 40 Gbps。可是這個 USB4 TYPE-C 也相容 USB 2.0。從 BLOCK DIAGRAM 可見晶片組 PROM21 的 6 個 USB 2.0 早已分配了 4 個至 2 組USB 2.0 9-PIN,還有 WIFI 模組的 BT 功能,筆者相信還有提供至沒有提到的 RGB 微處理器。所以該 USB4 TYPE-C 的 USB 2.0 支援,應該是來自 CPU,除非又是 PROM21 的 USB-C 20 Gbps 所遺漏的 USB 2.0。
以下是技嘉的 B650E AORUS PRO X USB4,真正使用 ASM4242 USB4 控制器的設計。該 USB4 TYPE-C 也支援 USB 2.0 模式,同樣也應該不是由 PROM21 晶片組提供。
AM5 的 I/O DIE 在提供 USB4 方案時到底可否一併提供 USB 2.0 相容模式,筆者也無法確認。也許以晶片組連接 USB4 控制器就得額外使用 USB 2.0 提供 USB 2.0 相容,以 CPU 連接 USB4 控制器就不必再"浪費"USB 2.0。
筆者最近在看 PRIME X870-P WIFI 這塊主機板,算來算去都算不出 USB 的分配,更是混亂了,尤其這塊主機板還沒有 USB 20 Gbps TYPE-C 筆者卻還看不懂。在 AM5 的 I/O DIE 裡,CPU 可提供 3 個 10 Gbps TYPE-C 和 1 個 10 Gbps TYPE-A 和 1 個 USB 2.0 TYPE-A,晶片組可提供 6 個 10 Gbps TYPE-A 和 6 個 USB 2.0 TYPE-A;另外,每個 20 Gbps USB-C 都需要佔用 2 個 10 Gbps TYPE-A。
由華碩 PRIME X870-P WIFI 官網提供的 MOTHERBOARD LAYOUT 來看,USB4 以外的 USB 好像都是原生提供,也就是沒有用上 HUB 或 CONTROLLER。要是用上第三方擴展設計,華碩會為這些 USB 加入"E"作為識別,就如 USB4 的 EC1 / EC2 一樣。
簡單假設前置的 USB 3 和後置的 USB 5G TYPE-A 都是由晶片組提供,那便用盡晶片組的 6 個 10 Gbps TYPE-A。再假設前置 2 組 USB 2.0 9-PIN 和 WIFI 模組的 BT 以及 AURA 晶片均由晶片組提供,那麼晶片組的 USB (6+6) 都用完了。
那現在剩下還沒分配的 USB 都在 I/O 上,共 7 個之多,當中更包括 USB4 的 TYPE-C。也只有 CPU 可處理它們,因為晶片組應該也沒有剩下任何 PCI-E 通道。可是 CPU 就最多提供 5 原生個 USB,這好像不夠分啊。可幸的是多出的好像都是 USB 2.0,這又產生一點趣味了。按筆者理解,CPU 以 X4 PCI-E 通道連接 USB4 控制器提供 2 個 USB-C 40 Gbps,也同時佔用了 CPU 3 個原生 USB-C 10 Gbps 的其中 2 個,因為這些原生 USB-C 同一時間也是 DP 輸出。CPU 剩下的 2 個原生 10 Gbps USB 其中一個提供 USB-A 10 Gbps,另一個降為 USB 2.0 TYPE-A,再加上 CPU 原生提供的 1 個 USB 2.0 TYPE-A,後置 I/O 上其實還剩下 2 個 USB 2.0 TYPE-A 成為無主孤魂。
由於 MOTHERBOARD LAYOUT 沒有顯示用上任何 USB HUB / CONTROLLER 來提供 USB (USB4 除外),所以這裡剩下的最後 2 個 USB 2.0 TYPE-A,好像只能從 USB4 TYPE-C 那邊拆出來。這也意味 USB4 的 USB-C 將不支援 USB 2.0 設備,或是有切換的意思,總之應該是不能同時使用那剩下的 USB 2.0 TYPE-A 和 USB-C 的 USB 2.0 模式。除非,實際上這邊有 USB 2.0 HUB。
TUF 那邊好像比較容易理解。按以上方式推測,扣除 PCH 負責的 USB,後置 I/O 上剩下 5 個 USB,分別是 2 個 USB-C 40 Gbps 和 2 個 USB-A 10 Gbps 和 1 個 USB 2.0 TYPE-A,此時也剛好對上 CPU I/O DIE 的 USB 連接。
延伸閱讀
https://news.xfastest.com/amd/112799/amd-zen-4-cpu-am5-pcie-io/
這邊顯示有7個 USB 2.0通道,(後置 I/O 上其實還剩下 2 個 USB 2.0 TYPE-A 成為無主孤魂。)
可能是晶片組上漏算,或者是原廠MB提供有誤
,有幾會我再細算。
USB 2.0 也能夠從USB 3.2 5G 拆出來,只不過拆出來需要透過Hub轉換,不少BLOCK DIAGRAM
圖不會顯示出Hub轉換的晶片
PS:還有個笨方法,用多個USB 2.0 裝置實際插上去就知道
TPU 的意思是 PCH 有 6 個 UBS2.0,然後 CPU I/O DIE 有 1 個 USB2.0。