發(fā)布時間:2023-07-20
CXL(Compute Express Link),是一種全新的設備互聯(lián)技術標準,已成為業(yè)界突破內(nèi)存瓶頸的存儲新技術。不僅用于內(nèi)存容量/帶寬擴展,還用于異構互聯(lián),數(shù)據(jù)中心資源池解耦。在數(shù)據(jù)中心,CXL技術可以將不同的計算和存儲資源進行互聯(lián),用更高的系統(tǒng)性能和效率來解決數(shù)據(jù)中心內(nèi)存問題。
云計算、大數(shù)據(jù)分析、人工智能、機器學習等應用的快速發(fā)展帶來數(shù)據(jù)中心存儲和處理數(shù)據(jù)需求的爆炸性增長。傳統(tǒng)DDR內(nèi)存接口存在總帶寬、每核心平均帶寬和容量可擴展性受限等問題。尤其在數(shù)據(jù)中心,受限于大量內(nèi)存問題,新的內(nèi)存接口技術CXL出現(xiàn)。
在數(shù)據(jù)中心,CPU內(nèi)存是緊耦合關系,每代CPU都采用新的內(nèi)存技術實現(xiàn)更高的容量和帶寬。自2012年以來,核心數(shù)量迅速增長,但每個內(nèi)核的內(nèi)存帶寬和容量并未相應增加,反而下降。這種趨勢將在未來繼續(xù),內(nèi)存容量增長速度也快于內(nèi)存帶寬,這對系統(tǒng)性能影響巨大。
此外,直連DRAM和SSD在延遲和成本方面的巨大差距,使得昂貴的內(nèi)存資源往往利用率很低,錯誤的計算和內(nèi)存比例很容易造成內(nèi)存閑置(Stranded)租不出去的現(xiàn)象。數(shù)據(jù)中心業(yè)務作為全球資本最密集的行業(yè)之一,低利用率是一個很大的負擔。微軟表示,50%的服務器總成本來自DRAM。盡管DRAM成本很高,但25%的DRAM內(nèi)存還是浪費了。下圖來自Meta內(nèi)部的統(tǒng)計數(shù)據(jù)也顯示類似現(xiàn)象。內(nèi)存成本占系統(tǒng)總成本的比例實際上在不斷上升,系統(tǒng)的主要成本已經(jīng)變成是內(nèi)存而不是CPU本身,使用CXL內(nèi)存資源池可以有效改善這一問題,通過給系統(tǒng)動態(tài)分配內(nèi)存資源可以優(yōu)化計算和內(nèi)存比例關系優(yōu)化TCO。

不同內(nèi)存技術的延遲概況

內(nèi)存帶寬/容量隨時間推移增加
不同代內(nèi)存在機架TCO/功耗占比

Microsoft Azure內(nèi)存閑置
基于傳統(tǒng)內(nèi)存問題,業(yè)界一直在尋求采用新的內(nèi)存接口技術和系統(tǒng)架構。
在內(nèi)存接口技術方面,PCI-Express(peripheral component interconnect express)成為首選。PCIe是串行總線,使用PCIe從性能和軟件的角度來看不同設備之間通信的開銷相對較高,但好消息是,PCIe將按照計劃在2023年底完成7.0版的批準,提供高達256GB/s 的速率;這距離16 GT/s速率的4.0版PCIe問世還不到兩年。加速PCIe發(fā)展藍圖的主要推手是云端運算需求;而PCIe以往是每3~4年,甚至是7年會將數(shù)據(jù)傳輸速率提升一倍。

PCIe vs DDR 帶寬對比
系統(tǒng)架構則是歷經(jīng)幾代進化更迭。最初為實現(xiàn)多個服務器共享資源池的嘗試,通常使用RDMA技術在通用以太網(wǎng)或InfiniBand上面實現(xiàn),這些通信方法通常時延更高(本地內(nèi)存幾十納秒vsRDMA幾個微秒)和更低的帶寬,而且也無法提供內(nèi)存一致性等關鍵功能。

在40Gbps鏈路帶寬網(wǎng)絡可實現(xiàn)的往返延遲(總計)
以及導致往返延遲增加的組件(使用100Gbps可將數(shù)據(jù)傳送減少0.5us)
2010年,CCIX成為潛在的行業(yè)標準。它的驅(qū)動因素是需要比當前可用技術更快的互連,并且需要緩存一致性,以便在異構多處理器系統(tǒng)中更快地訪問內(nèi)存。CCIX規(guī)范的最大優(yōu)勢是它建立在PCI Express規(guī)范的基礎之上,但它因缺乏關鍵行業(yè)支持,從未真正起飛。
而CXL依托現(xiàn)有的PCIe5.0的物理層和電氣層標準及生態(tài)系統(tǒng),為內(nèi)存加載/存儲(load/Store)事務增加緩存一致性和低時延特性。由于建立了行業(yè)中大多數(shù)主要參與者都支持的行業(yè)標準協(xié)議,CXL使向異構計算的過渡成為可能并獲得廣泛的業(yè)界支持。AMD的Genoa和Intel的SapphireRapids將在2022年末/2023年初支持CXL1.1。至此,CXL成為業(yè)界和學術界最有前途解決這一問題的技術之一。
CXL構建在PCIe物理層上,具備現(xiàn)有PCIe物理及電氣接口特性,提供高帶寬,高可擴展性特點。另外CXL與傳統(tǒng)的PCIExpress(PCIe)互連相比具有更低的時延,而且還提供一組獨特的新功能使CPU能夠以具有加載/存儲(load/store)語義的高速緩存一致(Cache-Coherent)方式與外圍設備(內(nèi)存擴展和加速器及其連接的存儲器)通信。該技術保持CPU內(nèi)存空間和附加設備上內(nèi)存的一致性,允許資源共享,從而獲得更高性能,降低軟件棧復雜性。與內(nèi)存相關的設備擴展是CXL主要目標場景之一。

CXL依托現(xiàn)有PCIe物理及電氣接口特性

CXL/PCIe實現(xiàn)內(nèi)存資源擴展/池
CXL實際上包含三種協(xié)議,但并非所有協(xié)議都是延遲的靈丹妙藥。CXL.io(運行在PCIe總線的物理層上)仍然具有與以往相同類型的延遲,但其他兩個協(xié)議,CXL.cache和CXL.mem采用了更快的路徑,減少了延遲。大多數(shù)CXL內(nèi)存控制器會增大約100-200納秒的延遲,額外的重定時器會增加或花費幾十納秒,具體取決于設備與CPU的距離。

CXL引入時延與NUMA接近

CXL/PCIe擴展內(nèi)存系統(tǒng)架構
CXL在PCIePHY層復用不同的協(xié)議,CXL1.0/1.1規(guī)范附帶3個協(xié)議支持-CXL.io、CXL.cache和CXL.mem,大多數(shù)CXL設備將使用CXL.io、CXL.cache和CXL.mem的組合。CXL.io 使用與 PCIe 相同的事務層數(shù)據(jù)包 (Transaction Layer Packet, TLP)和數(shù)據(jù)鏈路層數(shù)據(jù)包 (DLLP)。TLP/DLLP覆蓋在CXL flit的有效負載部分上。CXL定義了跨不同協(xié)議棧提供所需服務質(zhì)量(QoS)的策略。PHY級別的協(xié)議復用可確保CXL.cache和CXL.memory等延遲敏感協(xié)議具有與本機CPU到CPU對稱一致性鏈路相同的低延遲。CXL為這些延遲敏感協(xié)議定義了引腳到引腳響應時間的上限,以確保平臺性能不會因?qū)崿F(xiàn)一致性和內(nèi)存語義的不同設備之間的延遲差異較大而受到不利影響。
由于安全使用其本地副本,CXL.cache允許CXL設備連貫地訪問和緩存主機CPU的內(nèi)存,可以把這想象成一個GPU直接從CPU的內(nèi)存中緩存數(shù)據(jù)。
允許主機CPU連貫地訪問設備的內(nèi)存,將此視為CPU使用專用存儲級內(nèi)存設備或使用GPU/加速器設備上的內(nèi)存。

從左向右依次是CXLType1、CXLType3、CXLType2
CXL 2.0增加了對內(nèi)存池和CXL交換的支持,允許眾多主機和設備全部鏈接并相互通信,從而使連接在CXL網(wǎng)絡上的設備數(shù)量顯著增長。多臺主機可以連接到交換機,然后將交換機連接到各種設備,如果該CXL設備是多頭的并連接到多個主機的根端口,則也可以在沒有交換機的情況下實現(xiàn)。SLD(單個邏輯設備)是單個主機分別使用不同內(nèi)存池,MLD(多個邏輯設備)旨在耦合多個主機以分享同一物理內(nèi)存池。
分布式內(nèi)存資源網(wǎng)絡將由結(jié)構管理器(FabricManager)負責分配內(nèi)存及設備編排,它相當于控制平面或協(xié)調(diào)器,位于單獨的芯片上或交換機中,通常不需要高性能,因為不接觸數(shù)據(jù)面。結(jié)構管理器(FabricManager)提供用于控制和管理該系統(tǒng)的標準API,可以實現(xiàn)細粒度的資源分配、熱插拔和動態(tài)擴容允許硬件在各個主機之間動態(tài)分配和轉(zhuǎn)移,無需任何重啟。將所有這些結(jié)合在一起,微軟報告顯示采用CXL方式實現(xiàn)內(nèi)存資源池整體可減少10%內(nèi)存需求,進而降低5%的總服務器成本的潛力。


CXL 2.0內(nèi)存資源池(Switch vs Directconnect模式)
CXL發(fā)展勢頭強勁,三星、SK海力士、Marvell、Rambus、三星、AMD等大廠們的布局也在不斷加速。公有云供應商在內(nèi)的所有超大規(guī)模企業(yè)都開始嘗試依賴CXL連接內(nèi)存池來改善內(nèi)存閑置,動態(tài)靈活增加帶寬和容量的問題。但當前沒有太多用于APP使用本地/外部混合資源池的多級內(nèi)存調(diào)度管理監(jiān)控技術,因此云服務商如果決心大規(guī)模使用基于CXL技術的資源池系統(tǒng),要么自己建,要么得尋找合適的系統(tǒng)軟硬件供應商。這方面微軟、Meta等主要云服務商已經(jīng)走到前面。
微軟的Pond方案使用機器學習判斷分析虛機是否是時延敏感以及不被使用的額(untouched)內(nèi)存大小,并由此來判斷調(diào)度VM在合適的本地或CXL遠端內(nèi)存位置,配合性能監(jiān)控系統(tǒng)不斷調(diào)整遷移。

微軟Pond方案控制平面工作流程
(A) 的VM 調(diào)度程序使用基于 ML 的預測來識別延遲敏感的虛擬機及其可能未觸及的內(nèi)存量決定虛擬機的放置
(B) 監(jiān)控如果服務質(zhì)量 (QoS) 不滿足,調(diào)度遷移控制管理器(Mitigation Manager)會重新配置虛擬機
作為智算中心網(wǎng)絡建設者,銳捷網(wǎng)絡致力于為客戶提供創(chuàng)新的產(chǎn)品方案和服務,推動行業(yè)發(fā)展和創(chuàng)新,讓客戶與未來更緊密地連接。銳捷網(wǎng)絡將持續(xù)創(chuàng)新,引領智算時代的網(wǎng)絡發(fā)展潮流。
TPP: Transparent Page Placement for CXL-Enabled Tiered-Memory
Pond: CXL-Based Memory Pooling Systems for Cloud Platforms
Demystifying CXL Memory with Genuine CXL-Ready Systems and Devices
Compute Express Link™ Specification 3.0 whitepaper
Design and Analysis of CXL Performance Models for Tightly-Coupled Heterogeneous Computing
Memory Disaggregation: Advances and Open Challenges
Network Requirements for Resource Disaggregation
A Case for CXL-Centric Server Processors
