哦哇資訊網

大記憶體時代振奮人心的CXL技術(上)

由 全球半導體觀察 發表于 歷史2023-01-29

儲存成本不斷增加,以及更為現實的計算和頻寬失衡困境,使得英特爾二十年前開創的PCI-e(PCI express)技術逐漸乏力,我們越來越期待一種以記憶體為中心的、富有變革性的新技術出現,基於PCI-e協議的CXL技術便在此環境下出世。

2019年,英特爾推出了CXL技術,短短几年時間,CXL便成為業界公認的先進裝置互連標準,其最為強勁的競爭對手Gen-Z、OpenCAPI都紛紛退出了競爭,並將Gen-Z協議、OpenCAPI協議轉讓給CXL。

這種業界矚目的技術究竟有何來頭?以及現在業界火熱的記憶體池、記憶體共享等概念又是什麼?

以下將分成上下兩篇,和大家一起深度瞭解CXL技術。

本文要點:

CXL是一個全新的得到業界認同的互聯技術標準,其正帶著伺服器架構迎來革命性的轉變。

CXL可以有效解決記憶體牆和IO牆的瓶頸。

目前,PCI-e技術是當下CXL技術的底層基礎,會較早進行迭代升級。CXL可視為PCI-e技術的再提高版本,並且,CXL延伸了更多變革性的功能。

CXL2。0記憶體的池化(Pooling)功能較好的實現了以記憶體為中心的構想,CXL3。0則實現Memory sharing(記憶體共享)和記憶體訪問,在硬體上實現了多機共同訪問同樣記憶體地址的能力。

CXL為何物?

CXL全稱為Compute Express Link,作為一種全新的互聯技術標準,其能夠讓CPU與GPU、FPGA或其他加速器之間實現高速高效的互聯,從而滿足高效能異構計算的要求,並且其維護CPU記憶體空間和連線裝置記憶體之間的一致性。總體而言,其優勢高度概括在極高相容性和記憶體一致性兩方面上。

CXL技術之所以值得期待,是因為它提出了一種有效解決當下業界頗為頭疼的記憶體牆和IO牆問題的方式。

△常見的儲存系統架構及儲存牆(全球半導體觀察製圖)

記憶體牆和IO牆現象來源於當前計算架構中的多級儲存。如圖所示,當前的主流計算系統所使用的資料處理方案,依賴於資料儲存與資料處理分離的體系結構(馮諾依曼架構),為了滿足速度和容量的需求,現代計算系統通常採取快取記憶體(SRAM)、主存(DRAM)、外部儲存(NAND Flash)的三級儲存結構。

每當應用開始工作時,就需要不斷地在記憶體中來回傳輸資訊,這在時間和精力上都有著較大的效能消耗。越靠近運算單元的儲存器速度越快,但受功耗、散熱、芯片面積的制約,其相應的容量也越小。如SRAM響應時間通常在納秒級,DRAM則一般為100納秒量級,NAND Flash更是高達100微秒級,當資料在這三級儲存間傳輸時,後級的響應時間及傳輸頻寬都將拖累整體的效能,形成“儲存牆”。

IO牆則產生於外部儲存中,因為資料量過於龐大,記憶體裡放不下就需要藉助外部儲存,並用網路IO來訪問資料。IO方式的訪問會使得訪問速度下降幾個數量級,嚴重拖累著整體效能,這即是IO牆。

現代處理器效能的不斷提升,而記憶體與算力之間的技術發展差距卻不斷增大。業界資料顯示,在過去的20多年中,處理器的效能以每年大約55%速度快速提升,而記憶體效能的提升速度則只有每年10%左右。並且,當代記憶體容量擴充套件面臨著摩爾定律的壓力,速度在逐年減緩的同時,帶來的則是成本的愈發高昂。隨著大資料AI/ML等應用爆發,以上問題已經成為制約計算系統性能的主要因素。

從CXL1到CXL3,記憶體池和記憶體共享的奇妙構想

作為一項嶄新的技術,CXL發展非常可謂非常迅速,過去四年時間CXL已經發表了1。0/1。1、2。0、3。0三個不同的版本,並且它有著非常清晰的技術發展路線圖,業界也對它的未來充滿期待。

△圖片來源:CXL聯盟

CXL1.1:

直球式連線,帶來容量和頻寬的拓展

在2019年,CXL的第一個版本CXL1。0/1。1誕生,其直面記憶體牆和IO牆瓶頸的直球式打法給業界留下了深刻的印象。CXL1。1起初解決的問題還只是單機裝置的問題,主要是對一臺伺服器裡的記憶體容量和頻寬進行擴充套件(Memory Expansion)。

CXL在創立之初便支援三種協議,分別是CXL。io,CXL。cache,CXL。mem。CXL。io是PCIe5。0的增強版本,執行在PCIe匯流排的物理層上,CXL。cache用於一致的主機快取訪問,CXL。mem則用於主機記憶體訪問。正如CXL1。0和1。1標準中定義的那樣,這三種方法構成了連線主機和裝置的新方法的基礎。

創新來講,CXL引入了Flex Bus埠,可以靈活的根據鏈路層協商決定是採用PCIE協議還是CXL協議

。這讓我們更好的理解CXL和PCI-e的關係,正因為CXL較高的相容性,更容易被現有支援PCI-e埠的處理器(絕大部分的通用CPU、GPU 和 FPGA)所接納,因此,英特爾將CXL視為在PCIe物理層之上執行的一種可選協議,也就是說PCI-e的互聯協議沒有被完全拋棄,並且英特爾還計劃在第六代PCI-e標準上大力推進CXL的採用。

從CXL1。0/1。1、PCIe5。0、CXL2。0以及PCIe6。0CXL3。0的發展軌跡,我們也可以清晰看出CXL和PCI-e的關係。PCI-e技術作為CXL技術的底層基礎,會更早進行迭代升級。CXL可視為PCI-e技術的再提高版本,並且,CXL延伸了更多變革性的功能。

從CXL2。0開始,該技術就超出了單機的範疇,並衍生出了記憶體池的概念。

CXL2.0:

記憶體池帶來的變革

鑑於CXL標準誕生並不久,目前,CXL2。0是市場最為關注的焦點。

在CXL1。0和1。1的基礎上,2。0版本增加了熱插拔(Hot Plug)、安全升級、持久記憶體(Persistent Memory)、Telemetry和RAS的支援,但最為重要的功能,還是可以改變伺服器業界生態構型的Switching,以及它帶來的加速卡(AI、ML和Smart NIC)和記憶體的池化(Pooling)。

關於裝置的Pooling(池化),業界也曾進行過許多的構想與技術嘗試,想要將各類資源或是資料放入一個共享的池子按需提取,如Facebook致力於分離(disaggregate)和池化(pool)記憶體,IBM的CAPI和OpenCAPI、英偉達的NVLink和NVSwitch、AMD的Infinity Fabric、賽靈思的CCIX,以及HPE和戴爾提供支援Gen-Z。因為各種各樣的原因,上述技術並沒有很好的發展開來。直到CXL2。0的池化操作變成現實,業界再次燃起希望。

CXL1。1還只限於單一Node,是一種CPU到CPU,或者CPU到PCIe裝置的cache一致性互聯。2。0技術加入了一層(Single Level)的Switch(想一想PCIe的Switch),實現了多個裝置連線到一個root port上,為後面的池化打下了技術基礎。

△圖片來源:CXL聯盟

上圖的H1到H4到Hn指的是一個個不同的主機(Host),也就是一個個伺服器(Server),它可以透過CXL Switch連線多個裝置,底下的D1、D2、D3、D4指的是不同的記憶體,也是透過CXL Switch連到上層的主機裡。圖中不同的顏色代表裝置的擁有者,如D1屬於H2,D2和D3屬於H1。SLD一個裝置只能被分配到一個Hos上。

在這套框架之下,它使得Memory Polling(記憶體池)成為可能,你可以跨系統裝置實現共享記憶體池,這就增加了很多的靈活性。比如,如果有機器記憶體不夠時,就可以靈活地在這個池子裡尋找記憶體空間;如果這臺機器不需要這些記憶體了還可以隨時還回來。也就是說越靠近CPU的儲存器(如DRAM)將被用來處理更為亟需的工作,這無疑將大大提高記憶體的使用率,或者降低記憶體的使用成本。

CXL3.0:

共享記憶體時代的到來

CXL 3。0是在2022年8月份釋出的新標準,其在許多方面都進行了較大的革新,首先,CXL3。0建立在PCI-Express 6。0之上(CXL1。0/1。1和2。0版本建立在PCIe5。0之上),其頻寬提升了兩倍,並且其將一些複雜的標準設計簡單化,確保了易用性。

△圖片來源:CXL聯盟

最為關鍵的革新還在於物理和邏輯層面的升級,在物理層面,CXL3。0將每通道吞吐量提升了一倍,達到64GT/s。邏輯層面上,CXL3。0擴招了標準邏輯能力,允許更復雜的連線拓撲,以及一組CXL裝置內可以靈活實現Memory sharing(記憶體共享)和記憶體訪問。比如,它可以使得多個Switch互相連線,可以使得上百個伺服器互聯並共享記憶體。

Memory sharing是非常大的一個亮點,這種能力突破了某一個物理記憶體只能屬於某一臺伺服器的限制,在硬體上實現了多機共同訪問同樣記憶體地址的能力。可以說,CXL的記憶體一致性得到很大的增強,因為此前的CXL2。0只能透過軟體實現Memory sharing。

CXL來勢洶洶,在CXL技術推出的那一年,CXL聯盟也隨之成立,由英特爾牽頭,聯合阿里巴巴、戴爾EMC、Facebook(META)、谷歌、HPE、華為和微軟共同建立,隨後AMD、Arm加入其中。

近兩年,CXL聯盟擴展出超過165個成員,幾乎涵蓋了所有主要的CPU、GPU、記憶體、儲存和網路裝置製造商。而在技術上,2022年,Gen-Z聯盟、Open CAPI聯盟均確認將所有技術規格和資產轉讓給CXL,確保CXL作為行業標準向前推進,對於業界而言,這是一個非常偉大的選擇。

從儲存變革看CXL的未來意義

以記憶體為中心的構想由來已久,CXL對於未來的變革目前還無法想象,但是上世紀90年代,儲存也經歷了一場類似的變革,這或許可以幫助我們更好的理解它。

上世紀90年代之前,儲存指的就是硬碟,由IBM研發的350 RAMAC的誕生標誌著人類正式進入了硬碟時代。90年代初期,一個叫做Fiber Channel的網路出現,它使儲存從伺服器裡獨立出來,變成一個與計算分離的、可以獨立擴充套件與管理的系統,這就是人們熟知的SAN系統。

隨後的儲存市場更是出現了各式各樣的網路共享儲存,這場技術革命,使得儲存從一個簡單的器件行業變成了一個軟體和系統行業,並隨著誕生了“儲存軟體”概念。

1995年,集合了軟體和硬體的SAN系統開始出現,2000年左右,第一代NAS開始落地。不止的SAN系統,在這段技術革命中,也湧現了一大批成功的領導者公司,包括EMC、NetApp、Veritas、PureStorage等等,儲存軟體和系統迅速成長壯大為一個龐大的市場。

現在的記憶體和30年前的硬碟儲存極為相似

現在的記憶體還只是伺服器裡的一個裝置,隨著CXL的出現,記憶體可以和計算進行分離,就像90年代儲存和計算分離一般,這意味著,記憶體也有望獨立成為一個嶄新的系統,並賦予更多的功能。

或許是看到了CXL潛力,2022年8月24日,JEDEC固態技術協會和Compute Express Link(CXL)聯盟宣佈簽署合作備忘錄開展合作,該協議表明將形成一個聯合工作組,以提供一個促進資訊、要求、建議和請求的交流和共享的論壇,目的是這種資訊交流將有助於每個組織制定的標準相互增強。

業界表示,與具有380個引腳的DDR5介面提供32GB/s頻寬相比,CXL記憶體控制器可以提供相同或更高的頻寬,利用x8或x16CXL通道分別提供32GB/s或64GB/s頻寬。CXL序列連線儲存器可用於緩解當今解決方案的頻寬限制。總體來看,CXL與JEDEC在DDR方面的合作將給記憶體行業帶來新的轉機。

此外,據TrendForce集邦諮詢此前研判,CXL(Compute Express Link)原是希望能夠整合各種xPU之間的效能,進而最佳化AI與HPC所需要的硬體成本,並突破原先的硬體限制。

CXL的支援仍是以CPU為源頭去考慮,但由於可支援CXL功能的伺服器CPU Intel Sapphire Rapids與AMD Genoa現階段僅支援至CXL 1。1規格,而該規格可先實現的產品則是CXL儲存器擴充(CXL Memory Expander)。

因此,TrendForce認為,在各種CXL相關產品內,CXL儲存器擴充將成為前驅產品,其產品也與DRAM最為相關。

結 語

CXL時代將會很快到來,業界訊息顯示,2024年上半年,CXL1。1和CXL2。0可能會有落地產品,CXL3。0的落地還需要更長時間。現階段,相關的合作伙伴也在找相應的廠商對一些工程樣品搭建環境進行開發測試。

目前,各大企業動態頻頻,

《大記憶體時代,振奮人心的CXL技術》下篇

將會對業界大廠在CXL上的佈局以及CXL技術現存的一些短板進行闡述,敬請期待。

炒股開戶享福利,入金抽188元紅包,100%中獎!

開啟App看更多精彩內容

TAG: CXL記憶體儲存PCI技術