CXL SSD也是利用存儲(chǔ)網(wǎng)絡(luò)行業(yè)協(xié)會(huì)(SNIA) NVM編程模型(NVM Programming Model)的另一種選擇,因?yàn)榉且资訢IMM成本較高,而Intel正在逐步停止對(duì)Optane的支持。當(dāng)CXL SSD與使用該模型的下一代程序搭配時(shí),企業(yè)將會(huì)看到益處。這種新型存儲(chǔ)技術(shù)應(yīng)該會(huì)為未來(lái)的計(jì)算系統(tǒng)提供急需的提升。 ? CXL SSD在需要大量?jī)?nèi)存的應(yīng)用程序中可能會(huì)變得流行。然而,可能不清楚為什么CXL SSD的性能會(huì)與NVMe SSD有所不同。 ?
從本質(zhì)上講,CXL 技術(shù)在 CPU 內(nèi)存空間和連接設(shè)備上的內(nèi)存之間保持內(nèi)存一致性。這支持資源共享(或池化)以獲得更高的性能,降低軟件堆棧的復(fù)雜性,并降低整體系統(tǒng)成本。CXL 聯(lián)盟已經(jīng)確定了將采用新互連的三類主要設(shè)備: ? 類型1設(shè)備:智能 NIC 等加速器通常缺少本地內(nèi)存。通過(guò) CXL,這些設(shè)備可以與主機(jī)處理器的 DDR 內(nèi)存進(jìn)行通信。 ? 類型2設(shè)備:GPU、ASIC 和 FPGA 都配備了 DDR 或 HBM 內(nèi)存,并且可以使用 CXL 使主機(jī)處理器的內(nèi)存在本地可供加速器使用,并使加速器的內(nèi)存在本地可供 CPU 使用。它們還共同位于同一個(gè)緩存一致域中,有助于提升異構(gòu)工作負(fù)載。 ? 類型 3 設(shè)備:內(nèi)存設(shè)備可以通過(guò) CXL 連接,為主機(jī)處理器提供額外的帶寬和容量。內(nèi)存的類型獨(dú)立于主機(jī)的主內(nèi)存。 ?
CXL 協(xié)議和標(biāo)準(zhǔn)
CXL 標(biāo)準(zhǔn)通過(guò)三種協(xié)議支持各種用例:CXL.io、CXL.cache 和 CXL.memory。
CXL.io:該協(xié)議在功能上等同于 PCIe 協(xié)議,并利用了 PCIe 的廣泛行業(yè)采用和熟悉度。作為基礎(chǔ)通信協(xié)議,CXL.io 用途廣泛,適用于廣泛的用例。
CXL.cache:該協(xié)議專為更具體的應(yīng)用程序而設(shè)計(jì),使加速器能夠有效地訪問(wèn)和緩存主機(jī)內(nèi)存以優(yōu)化性能。
CXL.memory:該協(xié)議使主機(jī)(例如處理器)能夠使用加載/存儲(chǔ)命令訪問(wèn)設(shè)備連接的內(nèi)存。
這三個(gè)協(xié)議共同促進(jìn)了計(jì)算設(shè)備(例如 CPU 主機(jī)和 AI 加速器)之間內(nèi)存資源的一致共享。從本質(zhì)上講,這通過(guò)共享內(nèi)存實(shí)現(xiàn)通信簡(jiǎn)化了編程。用于設(shè)備和主機(jī)互連的協(xié)議如下:
類型 1 設(shè)備:CXL.io + CXL.cache
類型2設(shè)備:CXL.io + CXL.cache + CXL.memory
類型 3 設(shè)備:CXL.io + CXL.memory
Compute Express Link 與 PCIe:這兩者有什么關(guān)系?
CXL 建立在PCIe的物理和電氣接口之上,其協(xié)議建立了一致性、簡(jiǎn)化了軟件堆棧并保持與現(xiàn)有標(biāo)準(zhǔn)的兼容性。具體來(lái)說(shuō),CXL 利用 PCIe 5 功能,允許備用協(xié)議使用物理 PCIe 層。當(dāng)支持 CXL 的加速器插入 x16 插槽時(shí),設(shè)備會(huì)以每秒 2.5 千兆傳輸 (GT/s) 的默認(rèn) PCI Express 1.0 傳輸速率與主機(jī)處理器的端口進(jìn)行協(xié)商。只有雙方都支持 CXL,CXL 交易協(xié)議才會(huì)被激活。否則,它們作為 PCIe 設(shè)備運(yùn)行。
CXL 1.1 和 2.0 使用 PCIe 5.0 物理層,允許通過(guò) 16 通道鏈路在每個(gè)方向上以 32 GT/s 或高達(dá) 64 GB/s 的速度傳輸數(shù)據(jù)。
CXL 3.0 使用 PCIe 6.0 物理層將數(shù)據(jù)傳輸擴(kuò)展到 64 GT/s,支持通過(guò) x16 鏈路進(jìn)行高達(dá) 128 GB/s 的雙向通信。
CXL 2.0 和 3.0 有什么新功能?
首先在內(nèi)存池方面,CXL 2.0 支持切換以啟用內(nèi)存池。使用 CXL 2.0 交換機(jī),主機(jī)可以訪問(wèn)池中的一個(gè)或多個(gè)設(shè)備。盡管主機(jī)必須支持 CXL 2.0 才能利用此功能,但內(nèi)存設(shè)備可以是支持 CXL 1.0、1.1 和 2.0 的硬件的組合。在 1.0/1.1 中,設(shè)備被限制為一次只能由一臺(tái)主機(jī)訪問(wèn)的單個(gè)邏輯設(shè)備。然而,一個(gè) 2.0 級(jí)別的設(shè)備可以被劃分為多個(gè)邏輯設(shè)備,允許多達(dá) 16 臺(tái)主機(jī)同時(shí)訪問(wèn)內(nèi)存的不同部分。 ?
? 例如,主機(jī) 1 (H1) 可以使用設(shè)備 1 (D1) 中一半的內(nèi)存和設(shè)備 2 (D2) 中四分之一的內(nèi)存,以將其工作負(fù)載的內(nèi)存需求與內(nèi)存池中的可用容量完美匹配. 設(shè)備 D1 和 D2 中的剩余容量可由一臺(tái)或多臺(tái)其他主機(jī)使用,最多可達(dá) 16 臺(tái)。設(shè)備 D3 和 D4 分別啟用了 CXL 1.0 和 1.1,一次只能由一臺(tái)主機(jī)使用。 ? CXL 3.0 引入了對(duì)等直接內(nèi)存訪問(wèn)和對(duì)內(nèi)存池的增強(qiáng),其中多個(gè)主機(jī)可以一致地共享 CXL 3.0 設(shè)備上的內(nèi)存空間。這些功能支持新的使用模型并提高數(shù)據(jù)中心架構(gòu)的靈活性。 ?
其次來(lái)到交換方面; ? 通過(guò)轉(zhuǎn)向 CXL 2.0 直連架構(gòu),數(shù)據(jù)中心可以獲得主內(nèi)存擴(kuò)展的性能優(yōu)勢(shì),以及池內(nèi)存的效率和總體擁有成本 (TCO) 優(yōu)勢(shì)。假設(shè)所有主機(jī)和設(shè)備都支持 CXL 2.0,則“切換”通過(guò) CXL 內(nèi)存池芯片中的交叉開(kāi)關(guān)集成到內(nèi)存設(shè)備中。這可以保持較低的延遲,但需要更強(qiáng)大的芯片,因?yàn)樗F(xiàn)在負(fù)責(zé)交換機(jī)執(zhí)行的控制平面功能。通過(guò)低延遲直接連接,連接的內(nèi)存設(shè)備可以使用 DDR DRAM 來(lái)擴(kuò)展主機(jī)主內(nèi)存。這可以在非常靈活的基礎(chǔ)上完成,因?yàn)橹鳈C(jī)能夠訪問(wèn)處理特定工作負(fù)載所需的盡可能多的設(shè)備的全部或部分容量。 ? CXL 3.0 引入了多層交換,支持交換結(jié)構(gòu)的實(shí)施。CXL 2.0 支持單層交換。借助 CXL 3.0,啟用了交換結(jié)構(gòu),其中交換機(jī)可以連接到其他交換機(jī),從而大大增加了擴(kuò)展的可能性。 ?
第三,“按需”內(nèi)存范例; ? 類似于拼車,CXL 2.0 和 3.0 在“按需”的基礎(chǔ)上為主機(jī)分配內(nèi)存,從而提供更高的內(nèi)存利用率和效率。該架構(gòu)提供了為標(biāo)稱工作負(fù)載(而不是最壞情況)配置服務(wù)器主內(nèi)存的選項(xiàng),能夠在需要時(shí)訪問(wèn)池以處理高容量工作負(fù)載,并為 TCO 帶來(lái)更多好處。最終,CXL 內(nèi)存池模型可以支持向服務(wù)器分解和可組合性的根本轉(zhuǎn)變。在此范例中,可以按需組合離散的計(jì)算、內(nèi)存和存儲(chǔ)單元,以有效地滿足任何工作負(fù)載的需求。 ?
第四,完整性和數(shù)據(jù)加密 (IDE); ? 分解——或分離服務(wù)器架構(gòu)的組件——增加了攻擊面。這正是 CXL 包含安全設(shè)計(jì)方法的原因。具體來(lái)說(shuō),所有三個(gè) CXL 協(xié)議都通過(guò)完整性和數(shù)據(jù)加密 (IDE) 來(lái)保護(hù),IDE 提供機(jī)密性、完整性和重放保護(hù)。IDE 在 CXL 主機(jī)和設(shè)備芯片中實(shí)例化的硬件級(jí)安全協(xié)議引擎中實(shí)現(xiàn),以滿足 CXL 的高速數(shù)據(jù)速率要求,而不會(huì)引入額外的延遲。應(yīng)該注意的是,CXL 芯片和系統(tǒng)本身需要防止篡改和網(wǎng)絡(luò)攻擊的保護(hù)措施。在 CXL 芯片中實(shí)現(xiàn)的硬件信任根可以為安全啟動(dòng)和安全固件下載的安全和支持要求提供此基礎(chǔ)。 ?
第五,將信令擴(kuò)展到 64 GT/s; ? CXL 3.0 帶來(lái)了標(biāo)準(zhǔn)數(shù)據(jù)速率的階躍函數(shù)增加。如前所述,CXL 1.1 和 2.0 在其物理層使用 PCIe 5.0 電氣:32 GT/s 的 NRZ 信號(hào)。CXL 3.0 秉承了以廣泛采用的 PCIe 技術(shù)為基礎(chǔ)構(gòu)建的相同理念,并將其擴(kuò)展到 2022 年初發(fā)布的最新 6.0 版 PCIe 標(biāo)準(zhǔn)。使用 PAM4 信號(hào)將 CXL 3.0 數(shù)據(jù)速率提高到 64 GT/s。我們涵蓋了 PCIe 6 中 PAM4 信令的詳細(xì)信息——您需要知道的一切。 ? 得益于CXL的出現(xiàn),開(kāi)發(fā)者可以簡(jiǎn)化和改進(jìn)低延遲連接和內(nèi)存一致性,顯著提高計(jì)算性能和效率,同時(shí)降低 TCO。此外,CXL 內(nèi)存擴(kuò)展功能可在當(dāng)今服務(wù)器中的直接連接 DIMM 插槽之上實(shí)現(xiàn)額外的容量和帶寬。CXL 使得通過(guò) CXL 連接設(shè)備向 CPU 主機(jī)處理器添加更多內(nèi)存成為可能。當(dāng)與持久內(nèi)存配對(duì)時(shí),低延遲 CXL 鏈路允許 CPU 主機(jī)將此額外內(nèi)存與 DRAM 內(nèi)存結(jié)合使用。大容量工作負(fù)載的性能取決于大內(nèi)存容量,例如 AI。考慮到這些是大多數(shù)企業(yè)和數(shù)據(jù)中心運(yùn)營(yíng)商正在投資的工作負(fù)載類型,CXL 的優(yōu)勢(shì)顯而易見(jiàn)。 ?
什么是基于CXL的固態(tài)硬盤(pán)?
CXL和PCIe之間的區(qū)別可能不太明顯。在信號(hào)級(jí)別上,這兩者確實(shí)是相同的,但兩者的協(xié)議不同。CXL選擇比PCIe更快的協(xié)議,盡管CXL.io支持標(biāo)準(zhǔn)的PCIe I/O設(shè)備。 ? CXL的開(kāi)發(fā)是為了支持從服務(wù)器主板(遠(yuǎn)程內(nèi)存)中脫離出來(lái)的大型內(nèi)存池,以增加駐留在服務(wù)器主板(近端內(nèi)存)上的內(nèi)存。所有這些內(nèi)存都映射到服務(wù)器的內(nèi)存地址空間中,并在服務(wù)器處理器芯片的內(nèi)存管理單元的管理下。 ? 與PCIe不同,CXL需要管理一致性。任何內(nèi)存地址的內(nèi)容,無(wú)論是近端內(nèi)存還是遠(yuǎn)程內(nèi)存,都可能比處理器緩存中的該地址的副本更新。除非另一個(gè)處理器嘗試讀取該內(nèi)存地址,否則這不是一個(gè)大問(wèn)題。CXL的內(nèi)存一致性方案被精細(xì)地規(guī)定,以確保舊數(shù)據(jù)永遠(yuǎn)不會(huì)出現(xiàn)在處理器中,如果其他處理器的緩存中存在更新版本,則始終會(huì)出現(xiàn)。 ? 軟件通過(guò)字節(jié)語(yǔ)義(byte semantics)訪問(wèn)CXL.mem或CXL.cache設(shè)備上的內(nèi)存——軟件將其視為服務(wù)器主板上的內(nèi)存。如果固態(tài)硬盤(pán)是CXL設(shè)備,則還必須通過(guò)CXL.mem協(xié)議與軟件和通信,就好像它是內(nèi)存一樣。 ? 標(biāo)準(zhǔn)固態(tài)硬盤(pán)通過(guò)PCIe總線上的NVMe使用塊語(yǔ)義進(jìn)行通信。對(duì)于CXL標(biāo)準(zhǔn),這種通信已變成了CXL.io。 ? CXL管理必然較慢的遠(yuǎn)程內(nèi)存和近端內(nèi)存之間的不同時(shí)間。CXL SSD將其推向了極致:驅(qū)動(dòng)器可以選擇像標(biāo)準(zhǔn)固態(tài)硬盤(pán)一樣緩慢地運(yùn)行,而CXL通道仍然使用內(nèi)存語(yǔ)義(memory semantics)將數(shù)據(jù)傳輸?shù)教幚砥?。預(yù)計(jì)將看到CXL SSD擁有相對(duì)巨大的緩存,以最小化這種緩慢的操作。 ?
Samsung:這就是正確的路徑
Samsung是CXL接口SSD的支持者,該公司在2022年的Flash Memory Summit上展示了一種稱為“內(nèi)存語(yǔ)義SSD”(MS-SSD)的技術(shù)。 ? 內(nèi)存語(yǔ)義SSD的理論基礎(chǔ)是,從軟件角度來(lái)看,驅(qū)動(dòng)器中的持久介質(zhì)是通過(guò)內(nèi)存字節(jié)語(yǔ)義而不是通常用于SSD的塊語(yǔ)義訪問(wèn)的。 ? I/O語(yǔ)義(塊語(yǔ)義)通過(guò)中斷驅(qū)動(dòng)系統(tǒng)運(yùn)行,這或許是自上世紀(jì)80年代以來(lái)的慣例。當(dāng)時(shí),軟件的I/O例程可以增加毫秒級(jí)的延遲,而不會(huì)被注意到。這是應(yīng)對(duì)比處理器慢得多的I/O設(shè)備的好方法。 ? 在21世紀(jì)初期,當(dāng)SSD開(kāi)始廣泛使用時(shí),SSD用戶注意到I/O例程會(huì)減慢SSD的速度。對(duì)這個(gè)軟件的新的關(guān)注提高了它的速度,但是由處理器中斷管理的磁盤(pán)I/O的基本結(jié)構(gòu)限制了改進(jìn)的程度。 ? 同時(shí),DRAM總線必須盡可能地快,這在90年代已經(jīng)變成了同步的,并且隨著這一變化,總線被剝奪了任何暫停以等待慢速存儲(chǔ)設(shè)備的能力。只有內(nèi)存可以連接到內(nèi)存通道。存儲(chǔ)必須通過(guò)I/O通道。 ? 當(dāng)持久性內(nèi)存出現(xiàn)時(shí),軟件成為一個(gè)問(wèn)題。這在以下圖中有形象的描述。 ?
上下兩個(gè)條形圖中紅色部分表示由軟件的I/O堆棧造成的延遲。對(duì)于代表NVMe NAND閃存SSD的上方條形圖來(lái)說(shuō),這是整體訪問(wèn)時(shí)間中可管理的一部分。在包括Intel Optane持久內(nèi)存模塊的下方條形圖中,紅色部分約占總延遲的一半。 ? 50%的速度損失是無(wú)法接受的,這促使開(kāi)發(fā)了更快的接口CXL。CXL以近似于內(nèi)存速度運(yùn)行,但不同于雙數(shù)據(jù)率內(nèi)存總線,它可以與不同速度的內(nèi)存一起使用。 ? 通過(guò)設(shè)計(jì)帶有CXL接口的SSD,Samsung打開(kāi)了將SSD用作內(nèi)存的大門。因此,所有SNIA和各種軟件公司為支持像Optane這樣的持久內(nèi)存所做的工作都可以用于廉價(jià)的基于NAND閃存的存儲(chǔ)。SNIA NVM編程模型是軟件使用以發(fā)揮Intel Optane持久內(nèi)存功效的協(xié)議,現(xiàn)在還有了一個(gè)額外的用途:它將支持CXL接口上的NAND閃存SSD。 ? 然而,由于NAND閃存速度較慢,Samsung的設(shè)計(jì)使用大型DRAM緩存盡可能多的SSD。Samsung在Flash Memory Summit上展示的2TB原型機(jī)配備了驚人的16GB內(nèi)部DRAM緩存。這樣大的緩存可能會(huì)成為CXL SSD的標(biāo)準(zhǔn)。 ? 然而,這樣的大緩存也會(huì)產(chǎn)生好處。在Samsung分享的基準(zhǔn)測(cè)試中,該公司表示,相比現(xiàn)有的SSD,它能將隨機(jī)讀取性能提高約1900%。Samsung聲稱,MS-SSD可以作為服務(wù)器內(nèi)存的2TB擴(kuò)展呈現(xiàn)給主機(jī)。這個(gè)內(nèi)存的平均延遲取決于SSD內(nèi)部緩存的命中率。 ? 這個(gè)SSD的全部2TB不需要都映射為內(nèi)存。Samsung的設(shè)備可以分成內(nèi)存區(qū)域和SSD區(qū)域,由CXL.mem或CXL.io服務(wù),在Samsung稱之為“雙模式”操作中提供更多的靈活性。 ?
持久性的可能性
Samsung的第一代原型不支持內(nèi)存持久性。這需要一些工作,因?yàn)樵谕k娖陂g需要保持整個(gè)16GB的DRAM存活,或者直到其全部?jī)?nèi)容都能夠?qū)懭隨SD的NAND閃存。這兩種情況都需要大量?jī)?chǔ)存的能量,可以是電池或超級(jí)電容器。公司的目標(biāo)是在第二個(gè)原型中包括持久性內(nèi)存操作,該原型原定于去年年底完成。 ? 如果CXL SSD作為持久性內(nèi)存被接受,存儲(chǔ)管理員的工作將發(fā)展成與Intel Optane成為主流時(shí)相同。軟件和硅供應(yīng)商希望自動(dòng)數(shù)據(jù)管理軟件可以隱藏存儲(chǔ)管理員的任何問(wèn)題,但是會(huì)有數(shù)據(jù)安全方面的考慮,因?yàn)槊舾袛?shù)據(jù)可能存儲(chǔ)在CXL SSD和映射到內(nèi)存-存儲(chǔ)層次結(jié)構(gòu)較慢的傳統(tǒng)SSD中。 ?
其他CXL SSD的發(fā)展
Samsung不是唯一一個(gè)計(jì)劃支持CXL接口的SSD的公司。Kioxia公開(kāi)討論了一種基于公司專有XL-Flash芯片設(shè)計(jì)的概念驗(yàn)證CXL SSD。XL-Flash是NAND閃存,專注于速度,可能是針對(duì)3D XPoint存儲(chǔ)器的推出而設(shè)計(jì)的,這些存儲(chǔ)器最初被一些公司視為標(biāo)準(zhǔn)NAND閃存SSD的威脅。Kioxia的CXL SSD設(shè)計(jì)側(cè)重于64字節(jié)事務(wù)的速度,特別是64字節(jié)隨機(jī)寫(xiě)入。 ? 該公司解釋說(shuō),它預(yù)計(jì)其設(shè)計(jì)的性能幾乎與DRAM一樣快,比Optane快。它支持的內(nèi)存大小比近內(nèi)存DRAM大兩個(gè)數(shù)量級(jí),比近內(nèi)存Optane持久性內(nèi)存DIMM大10倍。Kioxia的設(shè)計(jì)使用了一個(gè)大型預(yù)取緩沖區(qū),但與Samsung的設(shè)計(jì)不同之處在于添加了硬件壓縮以幫助提高速度。數(shù)據(jù)較小,SSD需要的帶寬較少,可以加速寫(xiě)入。該公司的目標(biāo)是在本季度推出其CXL SSD仿真器。 ? 此外,韓國(guó)科學(xué)技術(shù)高等研究院的計(jì)算機(jī)架構(gòu)和存儲(chǔ)系統(tǒng)實(shí)驗(yàn)室(CAMEL)與RISC-V和OpenExpress合作,正在模擬CXL SSD的運(yùn)行,以更好地了解它可能提供的性能優(yōu)勢(shì)。它編程一個(gè)仿真器來(lái)模擬基于Samsung超快速Z-NAND芯片的32GB SSD的操作——與Kioxia XL-Flash有些類似——并將其操作與具有大型DRAM的系統(tǒng)進(jìn)行比較。 ? 性能高度依賴于SSD中數(shù)據(jù)的局部性;這是很自然的,因?yàn)楦呔植啃砸馕吨蠖鄶?shù)SSD訪問(wèn)會(huì)命中SSD的DRAM緩存,而不是它的NAND閃存。對(duì)于高局部性,CXL SSD提供的數(shù)據(jù)僅比CPU的本地DRAM的延遲高2.4倍。然而,在局部性較低的情況下,CXL SSD的延遲是DRAM的84倍。顯然,CXL SSD為數(shù)據(jù)集高度局部化的應(yīng)用程序帶來(lái)了更多的性能。 ? CAMEL還發(fā)現(xiàn),在高局部性應(yīng)用程序中,NVMe SSD的延遲是CXL SSD的129倍。然而,在局部性較低的應(yīng)用程序中,其延遲僅比CXL SSD高約50%。 ? 這種局部性敏感性反映了Samsung的發(fā)現(xiàn),其CXL SSD在緩存命中期間以大約2000萬(wàn)IOPS的速度運(yùn)行,具有次微秒級(jí)的延遲,對(duì)于128字節(jié)的隨機(jī)讀取。 ? Source: Jim Handy, Understand how the CXL SSD can aid performance, 22 Mar 2023 ?
編輯:黃飛
?
評(píng)論
查看更多