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