Verdict結論
CXL與PCIe最大的差異在於「是否具備快取一致性」。PCIe是通用的高速序列I/O匯流排,不支援快取一致性,與裝置間的同步由軟體負責。CXL則在PCIe實體層之上建構CXL.io/CXL.cache/CXL.mem 3層協定,在保證CPU與裝置間快取一致性的前提下,透過CXL.mem將外部記憶體透明地作為主記憶體使用,實現AI/HPC伺服器的記憶體池化。
主要差異
| 比較項目 | CXL(Compute Express Link) | PCIe(PCI Express) |
|---|---|---|
| 協定架構 | CXL.io(相容PCIe)+CXL.cache(主機快取協同)+CXL.mem(記憶體存取)的3層架構 | 序列傳輸協定(TLP/DLLP),通用I/O匯流排 |
| 快取一致性 | 保證CPU與裝置間的快取一致性(CXL.cache) | 不支援(需要以軟體同步) |
| 記憶體擴充與池化 | 透過CXL.mem,CPU可將外部記憶體透明地作為主記憶體使用 | 僅能以DMA方式傳輸(難以透明地作為記憶體使用) |
| 延遲 | 低於PCIe但高於DDR5(增加約100~300ns) | 約500ns~數μs(含裝置與驅動程式處理) |
| 最大頻寬 | CXL 3.0(基於PCIe 6.0):256GT/s(×16)約512GB/s | PCIe 5.0 ×16:約128GB/s,PCIe 6.0 ×16:約256GB/s |
| 主要用途 | AI推論伺服器的記憶體池化、智慧網卡、AI加速器連接 | GPU、SSD、NIC、FPGA等通用周邊裝置連接 |
| 主機端支援CPU | 英特爾Sapphire Rapids以後、超微EPYC Genoa以後、ARM Neoverse V2 | 所有現代CPU/SoC(英特爾/超微/ARM/蘋果等) |
| 生態系成熟度 | CXL 2.0~3.0已完成標準化,交換器IC與記憶體模組陸續推出 | 成熟的業界標準(PCIe 5.0為目前主流) |
AI伺服器需要CXL的原因
大型語言模型(LLM)推論需要在記憶體中保存數百GB~數TB的模型權重。即使每1個插槽的DDR5最大容量(數TB)仍不足時,CXL記憶體擴充便能發揮效用。使用CXL.mem,可不經由CPU的DRAM控制器,而是將CXL匯流排上的記憶體池透明地作為主記憶體使用,彈性擴展記憶體容量。Meta與Google等雲端業者已在進行CXL記憶體伺服器的早期試驗。
PCIe與CXL的分工與未來展望
PCIe在GPU、NVMe SSD、NIC等通用周邊裝置連接上,到2030年代仍將維持主流。CXL作為其上層,預計將在特別需要記憶體擴充與主機協同快取的AI/HPC用途中逐步普及。CXL 3.0可透過交換器實現多對多連接(Fabric型),成為資料中心規模記憶體池化與資源解構(Disaggregation)架構的基礎技術。
常見問題
CXL與NVLink有何不同?
NVLink是輝達自有的GPU間高速互連,頻寬比CXL更高、延遲更低,但僅限輝達產品使用。CXL是供應商中立的開放標準,用於CPU與記憶體間、CPU與加速器間的連接。目前的分工是:AI訓練叢集中輝達持續使用NVLink,CXL則用於CPU伺服器的記憶體擴充。
CXL記憶體比DDR5慢嗎?
是的,CXL記憶體比DDR5多出約100~300ns的延遲。不過在CXL 3.0中,吞吐量(頻寬)已達到可與DDR5匹敵的水準,對於受延遲影響較小的工作負載(大規模批次推論等),CXL記憶體擴充相當有效。
PCIe 6.0與CXL 3.0是什麼關係?
CXL 3.0直接沿用PCIe 6.0的實體層(PHY)。在PCIe 6.0 256GT/s(×16)的實體頻寬之上搭載CXL 3.0協定,結合了CXL的記憶體一致性功能與PCIe的高速實體層。