top of page

【產業動態】了解 CXL SSD 如何能提升資料存取效率、多設備擴展性、與資料共享和共存!

CXL 固態硬碟(Compute Express Link Solid State Drive)是一種利用CXL(Compute Express Link)技術的高性能儲存解決方案;CXL 是一種新興的高速互連技術,主要重點在於實現高頻寬、低延遲的連接,將處理器、加速器、和儲存設備等組件相連;預期可大幅提升系統的儲存性能和數據處理效率;也使得它在需要高性能儲存解決方案的情境中,如資料中心 (Datacenter)、人工智能、高性能計算等領域,具有重要的應用價值。


儘管 CXL SSD 目前仍處於研究階段,但其性能表現有很大的潛力,當其作為簡單的記憶體擴充使用時,它們應該能夠改善管理大型資料集的程式。


最近的研究開發並模擬了利用 Compute Express Link(CXL)介面來加速操作的固態硬碟(SSD),它們打算透過該介面提供一個大容量的永久性記憶體池 (memory pool),其成本低於全 DRAM 記憶體池 (all-DRAM pool)。


CXL SSD 也是一種替代方案,可以利用儲存網路產業協會(SNIA, Storage Networking Industry Association)的非揮發性記憶體(NVM)編程模型的優勢,SNIA NVM 編程模型提供了一個標準化的介面和編程模型,用於存取諸如 Intel 的 Optane 永久性記憶體等非揮發性記憶體技術;儘管 NVM 編程模型最初是為Optane 等技術設計的,但它也可以擴展支援 CXL SSD;透過必要的軟體和驅動程序,可以將 CXL SSD 整合到編程模型中,使應用程序能夠存取和利用 CXL SSD 作為永久性記憶體;NVM 編程模型為軟體與永久性記憶體的交互,提供了一種一致且標準化的方式,確保與不同的儲存技術(包括CXL SSD)的相容性和易於整合。這對開發商來說具有重要意義,因為非揮發性 DIMM 的成本較高,而 Intel 正在逐步停止對 Optane 技術的支援;當 CXL SSD 與使用該模型的下一代程式結合時,開發商將獲得顯著的好處。


CXL SSD 提供了一個具有成本效益的解決方案,相較於非揮發性 DIMM 而言,使其成為開發商吸引人的選擇;透過與 SNIA NVM 編程模型的兼容性,CXL SSD實現了無縫整合,使開發商能夠在不需支付替代技術高昂成本的情況下,充分利用永久性記憶體的優勢;這種新型儲存技術,為未來的計算系統帶來了效率和擴展性方面的提升。


CXL SSD 在需要大容量記憶體的應用中可能會變得流行。然而,CXL SSD 為何表現不同於 NVMe SSD 可能仍不清楚。


CXL SSD與NVMe SSD之間的性能差異主要在於它們的介面和功能,CXL(Compute Express Link)提供了更高的帶寬和更低的延遲,能夠更有效地處理大量資料的傳輸需求。 相比之下,NVMe(Non-Volatile Memory Express)是一種專為固態硬碟(SSD)設計的通訊協定,它專為利用固態儲存器的低延遲和高吞吐量而優化,提供了快速的資料傳輸和低延遲的存取能力。


因此,CXL SSD和NVMe SSD之間的性能差異主要在於它們的介面和互連技術;CXL SSD 透過CXL介面實現了更高的帶寬和更低的延遲,能夠更好地滿足大容量記憶體需求,並更有效地處理資料傳輸。這使得CXL SSD在大型記憶體應用中可能表現出更好的性能,並具有更高的擴展性。VIAVI 在 NVMe SSD 上有對應的解決方案,並有豐富的 Debug 經驗,並可隨時支援 CXL 新的應用型態,在目前 VIAVI PCIe Gen5 with CXL 中提供對應的功能。


什麼是以 CXL 為基礎的 SSD?


CXL(Compute Express Link)使用 PCIe 介面,但在協定層面上有所不同;雖然在訊號層面上,這兩者確實是相同的,但它們的協議不同;CXL採用比PCIe更快的協議,儘管CXL.io支持標準的PCIe I/O設備。


CXL 的開發是為了支援在伺服器主機板之外(遠端記憶體,位於伺服器主機板之外的記憶體)建立大容量的記憶體池,以擴展位於伺服器主機板上的記憶體(近端記憶體,直接安裝在主機板上的記憶體);所有這些記憶體都映射到伺服器的記憶體位址址空間中,並由伺服器處理器晶片的記憶體管理單元進行管理。使用遠端記憶體的好處在於可以擴展系統的記憶體容量,提供更大的記憶體資源給應用程式使用,這對於需要處理大量資料、或運行記憶體密集型工作負載的應用程式來說尤其重要。


CXL需要管理一致性的問題,這點與PCIe不同;無論是近端記憶體還是遠端記憶體,任何記憶體位址的內容,都可能比處理器暫存該地址的副本更舊;這在沒有其他處理器嘗試讀取該記憶體地址時,並不是一個大問題;CXL的記憶體一致性方案被仔細的明確規定,以確保如果在其他處理器的暫存器中存在更新的版本,舊的資料永遠不會傳送給處理器。


這表示 CXL 在處理記憶體一致性的過程中需要進行相應的管理,以確保不同處理器之間的記憶體共享運作正確;CXL的協議規範中明確定義了記憶體一致性的方式,以確保在共享記憶體時不會出現資料不一致的情況;這有助於確保不同處理器之間的資料一致性,避免舊資料被誤用、或共享資料的不一致性問題;這對於多處理器系統中的共享記憶體操作非常重要,使得系統能夠正確地協調和管理不同處理器之間的資料共享。


軟體透過位於 CXL.mem 或 CXL.cache 裝置上的記憶體,以位元組的方式進行存取,就像處於伺服器主機板本身的記憶體一樣;如果 SSD 是一個 CXL 裝置,它必須以類似記憶體的方式,透過軟體和 CXL.mem協定來進行通訊;換句話說,軟體可以像處理伺服器主機板上的記憶體一樣,存取和操作這個CXL SSD;CXL SSD不僅僅是一個傳統的儲存設備,而是以一種與記憶體相似的方式與軟體進行交互,它使用CXL.mem 協定,使得軟體能夠直接將其視為記憶體,以進行存取和操作,就像處理本地記憶體一樣。


標準的 SSD 透過 PCIe 匯流排上的 NVMe 協定進行通訊,使用區塊的方式進行存取;而對於CXL標準,這種通信方式則被稱為CXL.io。


因此,CXL 裝置(包括SSD)與標準 SSD 在通訊方式和協議上存在差異;CXL 裝置以記憶體的形式進行存取,並使用 CXL 協定進行與軟體和系統的通訊,而標準 SSD 則使用 NVMe 協定以區塊的方式進行通訊;這些差異使得 CXL 裝置能夠更直接地與軟體和系統交互,實現更高效的存取和操作。


CXL 在必然較慢的遠端記憶體與近端記憶體之間處理不同的時序問題,而 CXL SSD 更進一步:固態硬碟可以選擇以與標準 SSD 相同的速度執行,而 CXL 通道仍然使用記憶體機制 ( semantics) 來管理資料傳輸到處理器,為了最小化這種慢速操作,可以預期 CXL SSD 將具備相對巨大的暫存器。


CXL SSD 在處理速度較慢的操作時,可以利用更大的暫存來最小化延遲。透過擁有大容量的暫存器,CXL SSD可以在資料傳輸過程中暫存更多的資料,從而加速處理器對資料的存取速度;這種設計可以有效地緩解由於遠端記憶體較慢而引起的性能瓶頸,提供更快速和高效的操作。


三星 (Samsung):這就是可行的方法


三星是 SSD 整合 CXL 介面的倡導者,在 2022 年的 Flash Memory Summit 上展示了該公司稱之為 "記憶體機制 SSD"(MS-SSD) 的產品。


MS-SSD 的理論基礎是從軟體的角度來看,固態硬碟中的永久性媒體是透過記憶體位元組機制,而不是通常用於 SSD 的區塊機制來存取的。


I/O 機制(區塊機制,block semantics)通常是透過中斷驅動系統執行的,這可能是從 20 世紀 80 年代初開始的慣例,當時,軟體的 I/O 路徑 (routine) 可能會給磁碟存取增加毫秒級的延遲,而這並不會被注意到;這是處理器與速度明顯較慢的 I/O 設備打交道的一種很好的方式。


在 2000 年代初,當 SSD 首次開始廣泛被接受時,SSD 使用者注意到 I/O 路徑會減慢SSD的速度;對軟體進行改進提高了速度,但基於處理器中斷管理的基本磁碟 I/O 結構,限制了改進的程度。


與此同時,DRAM 匯流排在 1990 年代被設計為盡可能快速運行,因此匯流排失去了任何暫停等待慢速記憶體設備的能力,只有記憶體可以連接到記憶體通道,儲存設備則必須透過I/O通道。


在永久性記憶體出現後軟體元素成為一個問題,可參閱下圖:

XPoint 和 NAND 在 NVMe 介面上的時間分解圖表
這個圖表由 SNIA 提供,顯示了 CXL 發展的進程

上下兩個長條圖的紅色部分代表軟體的 I/O 堆疊所造成的延遲,對於代表 NVMe NAND 快閃記憶體(Flash Memory)固態硬碟的上方長條圖來說,這部分延遲在整體存取時間中是可管理的;而在包含 Intel 的 Optane 永久性記憶體模組的下方長條圖中,紅色部分佔總延遲的大約一半。


50% 的速度損失是無法接受的,這促使 CXL 的開發成為一個更快的介面,CXL 以接近記憶體速度運作,但與雙資料率記憶體匯流排不同的是,它可以與不同速度的記憶體配合使用。


三星採用 CXL 介面設計固態硬碟,使得使用固態硬碟作為記憶體成為可能;因此,SNIA 和各種軟體公司為支援像 Optane 這樣的永久性記憶體所做的所有工作,現在可以與廉價的以 NAND 快閃記憶體為基礎的儲存一起使用;SNIA NVM Programming Model是軟體使用的協議,用於利用 Intel 的 Optane 永久性記憶體的功能,現在還可以用於支援 CXL 介面上的 NAND 快閃記憶體固態硬碟。


然而,由於 NAND 快閃記憶體速度較慢,三星的設計使用大容量 DRAM 來盡可能地作為SSD的快取;在三星於 Flash Memory Summit 展示的 2TB 原型中,內部搭載了高達 16GB 的 DRAM 快取,這樣大容量的快取將可能成為CXL SSD的常態。


然而,這樣的大容量快取帶來了回報,根據三星在該活動中分享的基準測試結果,聲稱與現有 SSD 相比,隨機讀取性能提升了約 1900%;三星聲稱,MS-SSD 可以向主機呈現約為 2TB伺服器記憶體的擴展,該記憶體的平均延遲取決於 SSD 內部快取的命中率。


這個 SSD 的全部 2TB 空間並不需要全部映射為記憶體,三星的設備可以劃分為記憶體區域和 SSD 區域,分別由 CXL.mem 或 CXL.io 服務,這就是三星所謂的 "雙模式" 操作。主要為了能提供更大的靈活性。


如果 CXL SSD 作為永久性記憶體獲得廣泛接受,儲存管理員的工作,將與當 Intel 的 Optane 技術成為主流時的情況類似。


如同 Intel 的 Optane 技術成為主流的情況一樣,如果 CXL SSD 技術被廣泛採用與接受,儲存管理員 (storage administrator) 將需要適應和管理 CXL SSD 的特性和功能,他們可能需要重新評估儲存策略和架構,以充分利用CXL SSD 提供的高速儲存和永久性記憶體特性;同時,他們還需要考慮資料保護、故障恢復、和資料管理等方面的因素。


此外,儲存管理員還需要與硬體供應商、軟體開發人員、和其他相關方合作,以確保在使用 CXL SSD 時能夠實現最佳的性能和可靠性;他們可能需要了解 CXL 技術的工作原理和最佳實踐,並獲取相應的訓練和支援。


持續性記憶體操作的可能性


三星的第一代原型不支援記憶體持續性,實現這一點還需要一些努力,因為在停電期間需要保持整個 16 GB 的 DRAM 不中斷供電,直到其內容完全寫入 SSD 的 NAND 快閃記憶體中,這需要一個大容量的電力儲存裝置,如電池、或超級電容;該公司的目標是在第二代原型中實現持續性記憶體操作,該原型計劃於去年年底完成。


如果 CXL SSD 作為持續性記憶體獲得廣泛採用,儲存管理員的工作將發展得與 Intel 的 Optane 技術成為主流時類似,軟體和晶片供應商期望讓自動資料管理軟體將隱藏任何問題,使儲存管理員無需操心;然而,需要考慮資料的安全性,因為敏感資料可能存在於 CXL SSD、和映射到較慢記憶體儲存層級的傳統SSD中。


其他 CXL SSD 的發展


三星並不是唯一一家計劃支援 CXL 界面與 SSD 整合的公司,Kioxia 公開了一個 Kioxia 專有的 XL-Flash 晶片設計的 CXL SSD 概念驗證;XL-Flash 是一種專注於速度的 NAND 快閃記憶體,可能是為了因應 3D XPoint 記憶體的上市,一些公司最初認為它對標準 NAND 閃存SSD 構成了威脅;Kioxia 的CXL SSD設計著重於64位元的處理速度,特別是64位元的隨機寫入。


該公司解釋稱,他們預計讓這個設計的性能接近 DRAM,比 Optane 更快,它支援的記憶體容量比近端儲存 DRAM 大兩個量級,比近端儲存 Optane 持續性記憶體 DIMM 大10倍;Kioxia 的設計使用了一個大的預取緩衝區 (pre-fetch buffer),但與三星的設計不同之處,在於增加了硬體壓縮以幫助提高速度;由於資料較小,SSD 所需的頻寬較少,因此可以加速寫入。


此外,韓國 CAMEL (Computer Architecture and Memory Systems Laboratory) 與 RISC-V 和OpenExpress 合作,對 CXL SSD進行了模擬,以更好地了解它可能提供的性能優勢;他們使用一個模擬器,模擬了以三星超高速 Z-NAND 晶片為基礎的 32 GB SSD 的操作,與一個具有大容量 DRAM 的系統進行了比較。


性能高度依賴於 SSD 中資料的局部性;這是很自然的,因為高局部性 (locality) 意味著大部分 SSD 存取會命中 SSD 的 DRAM 閃存,而不是其 NAND 閃存;對於高局部性,CXL SSD 提供的資料的延遲只有 CPU 本地 DRAM 的 2.4 倍;然而,在局部性較低的情況下,CXL SSD 的延遲是 DRAM的 84 倍,顯然,CXL SSD 對於高度局部化的大數據應用帶來更高的性能。


CAMEL 在高局部性應用中發現,NVMe SSD 的延遲時間是 CXL SSD的129倍;然而,在低局部性應用中,NVMe SSD 的延遲時間只比 CXL SSD 高大約50%。


這表示在高局部性應用中,CXL SSD 表現出比 NVMe SSD 更低的延遲時間,高局部性代表資料存取更集中在 SSD 的 DRAM 閃存中,因此 CXL SSD 可以更快地提供資料,從而降低延遲時間。然而,在低局部性應用中,資料存取很分散,導致 CXL SSD 的延遲時間僅略高於 NVMe SSD的50%。


這些結果顯示了 CXL SSD 在處理高局部性資料存取時的性能優勢,並且在低局部性應用中仍然能夠提供相對較低的延遲時間;這對於需要高效處理大型資料集的應用程序來說,CXL SSD可能是一個有價值的儲存解決方案。


這種區域敏感性呼應了三星的研究結果,其 CXL SSD 在 128 字元的隨機讀取中,在命中閃存時達到約2,000 萬 IOPS 的操作速度,並具有亞微秒級 (sub-microsecond) 的延遲時間。


當資料命中 SSD 的閃存時,CXL SSD 能夠以非常高的 IOPS(每秒輸入/輸出操作次數)進行操作,同時具有非常低的延遲時間;這是由於閃存命中,可以迅速從高速 DRAM 閃存中提供資料,而無需訪問較慢的NAND 閃存;這使得 CXL SSD 在需要高效處理大量小型資料存取的應用場景中表現出色。


VIAVI Solutions XGIG 5P16 CXL 協定分析與驗證平台



XGIG 5P16協定分析與驗證平台 是一個針對PCI Express 5.0/CXL協定的分析和驗證平台。它具備支援最新的PCIe、NVMe和CXL協定規範的能力,同時提供強大的專家系統(Expert System),以幫助您快速檢測PCIe每一層的錯誤。 這個平台還具備LTSSM(Link Training and Status State Machine)功能,它能清晰顯示每個狀態的行為模式,有助於快速排除故障。LTSSM是用於PCIe連接的狀態機,透過監控和分析其行為,您能夠快速識別並解決問題。


XGIG 5P16平台的最高配置支援16通道,可實現32GT/s的傳輸速度。這使得它在高速連接和大容量資料傳輸方面非常強大。此外,該平台還支援同時串接多台VIAVI Xgig系列產品,這樣您就能擴展測試能力,進行更複雜的A-J-A(分析-錯誤注入-分析)模式測試。這種模式下,您能夠在資料流中注入錯誤並進行分析,以測試系統的容錯性和恢復能力。


VIAVI Solutions XGIG 5P16 在 CXL 應用中,可以提供以下測試功能:

  • 頻寬測試: XGIG 5P16 可以測試 CXL 介面的頻寬性能,確定其在資料傳輸方面的效能;它可以捕捉並分析 CXL 通訊的資料流,以評估其頻寬的利用率和效率。

  • 協定分析: XGIG 5P16 可以解析和分析 CXL 通訊協定,確保通訊的正確性和一致性;它可以檢測和識別任何協定錯誤或異常,幫助使用者進行除錯。

  • 延遲測試: XGIG 5P16 可以量測 CXL 通訊的延遲時間,包括從發送端到接收端的傳輸延遲和處理延遲;這有助於評估 CXL SSD 的性能和響應時間。

  • 效能評估: XGIG 5P16可以透過模擬不同工作負載和資料流量的情境,對 CXL SSD 進行效能評估;它可以測試SSD 的性能極限,並提供有關傳輸量、IOPS 和延遲等指標的評估。

  • 故障排除: XGIG 5P16 提供了強大的故障排除工具,用於檢測和解決 CXL SSD 通訊中的問題;它可以識別資料封包丟失、錯誤、或重複等問題,並幫助使用者定位和解決故障。


延伸閱讀


文章來源:TechTarget | Storage

翻譯與整理:翔宇科技 量測事業群


歡迎 訂閱翔宇科技主題式電子報 >,您將可同步掌握最新的產業新訊以及技術文章。
bottom of page