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