同時(shí),隨著人工智能和大數(shù)據(jù)的興起,使得異構(gòu)計(jì)算和多處理器并行工作的需求增多,而CXL作為下一代互連技術(shù)對(duì)于異構(gòu)計(jì)算和組合基礎(chǔ)設(shè)施,對(duì)于實(shí)現(xiàn)資源的有效利用至關(guān)重要。

上圖顯示的是過(guò)去十年里,CPU核數(shù)和內(nèi)存通道帶寬的變化趨勢(shì)。

自2012年以來(lái),CPU的核數(shù)增加了近3倍,但每核通道帶寬增速明顯落后,傳統(tǒng)增加內(nèi)存帶寬的方法是:增加CPU內(nèi)存通道數(shù)和提高數(shù)據(jù)傳輸速率,以此來(lái)解決每核帶寬下降的挑戰(zhàn),但這一做法已經(jīng)到達(dá)了極限。

有鑒于此,三星將CXL視為解決內(nèi)存擴(kuò)展挑戰(zhàn)的最有前景的技術(shù)。

在計(jì)算架構(gòu)中,無(wú)論是融合還是超融合架構(gòu),都具有預(yù)定義的資源配置,它限制了內(nèi)存和計(jì)算的獨(dú)立擴(kuò)展,而CXL通過(guò)緩存一致性的特性,可以連接所有主機(jī)和設(shè)備,將內(nèi)存與計(jì)算進(jìn)行解耦,而新的CXL3.0更是使得海量?jī)?nèi)存資源池成為可能。

CXL的簡(jiǎn)要介紹

CXL是由CXL聯(lián)盟開(kāi)發(fā)的,建立在PCIe之上的一種高速低延遲的、連接CPU和設(shè)備的互連技術(shù)。CXL提供了主機(jī)CPU和連接設(shè)備之間的高效連接,CXL傳輸層由單個(gè)鏈路上的三個(gè)動(dòng)態(tài)、多路復(fù)用子協(xié)議組成。

這些協(xié)議稱為CXL.io,CXL.cache和CXL.mem,當(dāng)CXL設(shè)備連接到CXL主機(jī)時(shí),通過(guò)CXL.io協(xié)議,對(duì)其進(jìn)行發(fā)現(xiàn)、配置和管理,通過(guò)CXL.cache,CXL的設(shè)備能夠直接訪問(wèn)處理器的內(nèi)存,而通過(guò)CXL.mem,CPU能夠訪問(wèn)CXL設(shè)備的內(nèi)存。

CXL聯(lián)盟定義了三種不同類型的CXL設(shè)備:

類型1,CXL設(shè)備是緩存設(shè)備,通過(guò)CXL.cache存取主機(jī)內(nèi)存,并負(fù)責(zé)維護(hù)與主機(jī)內(nèi)存一致的本地緩存。

類型2的設(shè)備可以像類型1設(shè)備一樣直接存取主機(jī)連接的內(nèi)存,此外,類型2設(shè)備具有本地地址空間,主機(jī)CPU可以通過(guò)CXL.mem存取該地址空間。

類型3的設(shè)備是內(nèi)存擴(kuò)展設(shè)備,允許主機(jī)CPU通過(guò)CXL.mem訪問(wèn)一致性存取CXL的內(nèi)存緩存。

接下來(lái)重點(diǎn)看類型3的CXL設(shè)備,它包括內(nèi)存和內(nèi)存控制器,與類型1和類型2設(shè)備不同,類型3設(shè)備不可以修改內(nèi)存內(nèi)容。

類型3使不同類型的內(nèi)存顆粒能夠通過(guò)CXL連接到主機(jī),并且,能讓CXL設(shè)備上的內(nèi)存映射到系統(tǒng)地址空間,使得CPU和設(shè)備看到相同的內(nèi)存數(shù)據(jù),也使得CXL內(nèi)存看起來(lái)就像主機(jī)的內(nèi)存。內(nèi)存一致性的優(yōu)勢(shì)在于,CXL主機(jī)和CXL設(shè)備可以共同處理數(shù)據(jù)。

類型3的內(nèi)存擴(kuò)展設(shè)備可以幫助系統(tǒng)增加內(nèi)存容量和帶寬。上圖左側(cè)是一個(gè)系統(tǒng)有一個(gè)具有8個(gè)DDR通道的處理器,系統(tǒng)的總內(nèi)存容量是8TB,右邊的系統(tǒng)也有8個(gè)DDR通道,同時(shí)它還有4個(gè)CXL內(nèi)存鏈接,于是,系統(tǒng)總內(nèi)存容量到了12TB。

CXL可以不依賴DDR內(nèi)存通道數(shù)的增加和內(nèi)存速率的提升,來(lái)不斷增加內(nèi)存容量,擴(kuò)展內(nèi)存帶寬,這是一種非常了不起的變化。

CXL的使用場(chǎng)景和價(jià)值

如上圖所示,當(dāng)用戶通過(guò)CXL添加內(nèi)存容量,可以使得每臺(tái)服務(wù)器上配置較少的內(nèi)存,也能減少了所需的服務(wù)器的數(shù)量,最終,在系統(tǒng)層面節(jié)省成本。這對(duì)于需要高內(nèi)存容量的內(nèi)存數(shù)據(jù)庫(kù)和內(nèi)存計(jì)算應(yīng)用程序特別有吸引力。

如上圖所示,當(dāng)用戶通過(guò)CXL來(lái)擴(kuò)展內(nèi)存帶寬,意味著可以提高內(nèi)存密集型應(yīng)用程序的性能,如人工智能和流分析。CXL的帶寬擴(kuò)展作用解決了帶寬和容量增長(zhǎng)不平衡的問(wèn)題,更好地滿足了CPU對(duì)內(nèi)存的需求。

上圖顯示的是分層和池化兩大應(yīng)用場(chǎng)景。

在內(nèi)存分層方面,CXL可以使用多種內(nèi)存顆粒來(lái)提升內(nèi)存容量,然而,實(shí)際使用中,活躍的數(shù)據(jù)存放在DRAM里,CXL內(nèi)存負(fù)責(zé)存放這些不太活躍的數(shù)據(jù),最終,在不影響性能的前提下,實(shí)現(xiàn)更高的內(nèi)存使用效率。

在內(nèi)存池化方面,內(nèi)存資源池通過(guò)交換機(jī)連接服務(wù)器,通過(guò)提高內(nèi)存利用率來(lái)降低總體成本。內(nèi)存是數(shù)據(jù)中心里最后被分解的資源,將內(nèi)存與CPU分離,并且將內(nèi)存擴(kuò)展到PB水平,可以更好地支持新興的數(shù)據(jù)密集型工作負(fù)載。

CXL1.0規(guī)范解決了節(jié)點(diǎn)級(jí)互連的問(wèn)題以及處理器與其連接設(shè)備之間的互連。CXL2.0帶來(lái)了CXL交換機(jī)和內(nèi)存池化的功能,通過(guò)支持跨多個(gè)節(jié)點(diǎn)的內(nèi)存等資源池,將CXL提高到了機(jī)架級(jí)別。

CXL2.0還支持交換機(jī)功能,用于內(nèi)存擴(kuò)展和池化,如上圖所示,可以通過(guò)CXL交換機(jī)進(jìn)行內(nèi)存擴(kuò)展,提升單臺(tái)服務(wù)器的內(nèi)存容量。右側(cè)則是有CXL交換機(jī)連接到內(nèi)存池,多個(gè)主機(jī)能存取數(shù)據(jù),通過(guò)動(dòng)態(tài)分配和釋放內(nèi)存資源來(lái)提高整體系統(tǒng)效率。

CXL2.0規(guī)范中只能使用一個(gè)交換機(jī),而CXL3.0更進(jìn)一步,多個(gè)主機(jī)可以通過(guò)多個(gè)交換機(jī)來(lái)配置更復(fù)雜的架構(gòu)。

左圖展示的是內(nèi)存池化和共享的概念,右圖則是使用大量的交換機(jī)組成新的架構(gòu),多個(gè)主機(jī)加速器和內(nèi)存池組成的系統(tǒng)級(jí)互連,通過(guò)幾百個(gè)交換機(jī)實(shí)現(xiàn)整體的內(nèi)存異構(gòu)計(jì)算。

三星的CXL內(nèi)存擴(kuò)展器解決方案

上圖是三星的CXL內(nèi)存開(kāi)發(fā)生態(tài)系統(tǒng),三星于2021年5月發(fā)布了全球第一個(gè)類型3的CXL內(nèi)存擴(kuò)展原型,它使用FPGA作為內(nèi)存控制器,128GB的DDR4內(nèi)存,×16的CXL鏈路寬度,外形規(guī)格是EDSFF(E3.S)2T的。

從2021年開(kāi)始,三星與合作伙伴和客戶進(jìn)行了多次測(cè)試。三星正在努力支持基于CXL內(nèi)存生態(tài)系統(tǒng),并認(rèn)為2022年和2023年將是CXL帶來(lái)技術(shù)變革的關(guān)鍵年份。同時(shí),三星會(huì)幫助客戶盡快適應(yīng)CXL帶來(lái)的變化。

上圖展示的是三星內(nèi)存擴(kuò)展器的產(chǎn)品圖,是業(yè)界首款基于AISC的CXL內(nèi)存模組,內(nèi)部有主控芯片,PCB板的一面貼了20個(gè)DDR5內(nèi)存模塊,另一側(cè)也是20個(gè)模塊,另外一部分是PMIC等。

三星的CXL內(nèi)存擴(kuò)展器支持CXL2.0規(guī)范,EDSFF(E3.S)2T的外形規(guī)格,顆粒是DDR5,容量高達(dá)512GB,CXL鏈路寬度是X8的,支持PCIe5.0,帶寬是32GB/s,它還支持RAS等功能。

該產(chǎn)品從11月開(kāi)始對(duì)外提供測(cè)試開(kāi)發(fā),能使合作伙伴驗(yàn)證CXL協(xié)議,進(jìn)行一些測(cè)試,更好地了解性能情況。

配套開(kāi)發(fā)軟件-SMDK

三星不但提供了硬件,同時(shí)也提供軟件,Scalable Memory Dvvelopment Kit——SMDK就是一款重要的開(kāi)源軟件,它包含一組軟件工具和API來(lái)對(duì)接硬件和應(yīng)用。它能讓本地DRAM內(nèi)存和CXL內(nèi)存融為一體,同時(shí)也可以對(duì)接各種CXL的異構(gòu)計(jì)算生態(tài)。

從圖中軟件堆??梢?jiàn),CXL Memory Zone支持優(yōu)化管理,從而可以使用具有不同特性的內(nèi)存。Intelligent tiering可根據(jù)應(yīng)用對(duì)容量、帶寬和延遲需求不同,分配適當(dāng)?shù)膬?nèi)存。

通過(guò)ComptibleAPI部分,系統(tǒng)開(kāi)發(fā)者能夠輕松地將CXL內(nèi)存整合到高級(jí)系統(tǒng)中,而無(wú)需修改現(xiàn)有的應(yīng)用環(huán)境。SMDK還提供了通過(guò)修改軟件應(yīng)用程序來(lái)執(zhí)行高級(jí)優(yōu)化的選項(xiàng),以充分利用底層內(nèi)存技術(shù)特性。

在三星看來(lái),SMDK是推動(dòng)CXL內(nèi)存行業(yè)向前發(fā)展的重要組成部分,三星很自豪能夠?qū)⑵渥鳛殚_(kāi)源軟件發(fā)布,供行業(yè)使用。

實(shí)測(cè):CXL方案的性能優(yōu)勢(shì)

從測(cè)試數(shù)據(jù)來(lái)看,在Redis內(nèi)存數(shù)據(jù)庫(kù)的測(cè)試中,一種方案是使用基于CXL內(nèi)存擴(kuò)展器和SMDK,使用DDR5 32GB內(nèi)存作為主內(nèi)存,同時(shí),使用CXL提供的64GB內(nèi)存,以此構(gòu)成一個(gè)Redis單節(jié)點(diǎn),這個(gè)64GB的CXL內(nèi)存使用的就是三星的內(nèi)存模組。

作為對(duì)比的是傳統(tǒng)的三節(jié)點(diǎn)的Redis集群,每個(gè)節(jié)點(diǎn)都有32GB的DDR5內(nèi)存,節(jié)點(diǎn)間通過(guò)以太網(wǎng)進(jìn)行連接。

測(cè)試結(jié)果中,使用128B、4KB和1MB的塊大小來(lái)測(cè)試,除了128B小文件以外,其它場(chǎng)景中,其實(shí)際帶寬表現(xiàn)前者都遠(yuǎn)高于后者,其中,4KB數(shù)據(jù)塊的性能比后者大約提高了大概2.7倍。

結(jié)束語(yǔ)

每個(gè)CPU內(nèi)核所享有的內(nèi)存容量和內(nèi)存帶寬滯后于行業(yè)需求,傳統(tǒng)技術(shù)無(wú)法解決這一問(wèn)題,CXL則可以很好地解決這一問(wèn)題。

如今,三星正在引領(lǐng)基于CXL的內(nèi)存解決方案的發(fā)展潮流,既有硬件也提供了軟件,一些產(chǎn)品已經(jīng)交到了用戶,下一階段,三星希望更更多業(yè)內(nèi)合作伙伴一起合作,感謝大家的聆聽(tīng)。

分享到

zhupb

相關(guān)推薦