隨著存儲技術的發展, 對存儲性能的不懈追求, 高性能存儲開始探索向內存通道的遷移。 在這樣的情況下, NVDIMM 技術便應運而生了。
NVDIMM (Non-Volatile Dual In-line Memory Module) 是一種可以隨機訪問的, 非易失性內存。非易失性內存指的是即使在不通電的情況下, 數據也不會消失。因此可以在計算機掉電 (unexpected power loss), 系統崩潰和正常關機的情況下, 依然保持數據。 NVDIMM 同時表明它使用的是 DIMM 封裝, 與標準DIMM 插槽兼容, 并且通過標準的 DDR總線進行通信。考慮到它的非易失性, 并且兼容傳統DRAM接口, 又被稱作Persistent Memory。
01
種類
目前, 根據 JEDEC 標準化組織的定義, 有三種NVDIMM 的實現。分別是:
NVDIMM-N
指在一個模塊上同時放入傳統 DRAM 和 flash 閃存。 計算機可以直接訪問傳統 DRAM。 支持按字節尋址, 也支持塊尋址。通過使用一個小的后備電源,為在掉電時, 數據從DRAM 拷貝到閃存中提供足夠的電能。當電力恢復時, 再重新加載到DRAM 中。
圖1 NVDIMM-N示意圖
NVDIMM-N 的主要工作方式其實和傳統 DRAM是一樣的。因此它的延遲也在10的1次方納秒級。 而且它的容量, 受限于體積, 相比傳統的 DRAM 也不會有什么提升。
同時它的工作方式決定了它的 flash 部分是不可尋址的。而且同時使用兩種介質的作法使成本急劇增加。 但是, NVDIMM-N 為業界提供了持久性內存的新概念。目前市面上已經有很多基于NVIMM-N的產品。
NVDIMM-F
指使用了 DRAM 的DDR3或者 DDR4 總線的flash閃存。我們知道由 NAND flash 作為介質的 SSD, 一般使用SATA, SAS 或者PCIe 總線。使用 DDR 總線可以提高最大帶寬, 一定程度上減少協議帶來的延遲和開銷。 不過只支持塊尋址。
NVDIMM-F 的主要工作方式本質上和SSD是一樣的。因此它的延遲在 10的1次方微秒級。它的容量也可以輕松達到 TB 以上。
NVDIMM-P
這是一個目前還沒有發布的標準 (Under Development)。預計將與DDR5 標準一同發布。按照計劃,DDR5將比DDR4提供雙倍的帶寬,并提高信道效率。這些改進,以及服務器和客戶端平臺的用戶友好界面,將在各種應用程序中支持高性能和改進的電源管理。
NVDIMM-P 實際上是真正 DRAM 和 flash 的混合。它既支持塊尋址, 也支持類似傳統 DRAM 的按字節尋址。 它既可以在容量上達到類似 NAND flash 的TB以上, 又能把延遲保持在10的2次方納秒級。
通過將數據介質直接連接至內存總線, CPU 可以直接訪問數據, 無需任何驅動程序或 PCIe 開銷。而且由于內存訪問是通過64 字節的 cache line, CPU 只需要訪問它需要的數據, 而不是像普通塊設備那樣每次要按塊訪問。
Intel 公司在2018年5月發布了基于3D XPoint? 技術的Intel? Optane? DC Persistent Memory。可以認為是NVDIMM-P 的一種實現。
圖2 Intel? Optane? DC Persistent Memory
02
硬件支持
應用程序可以直接訪問NVDIMM-P, 就像對于傳統 DRAM那樣。這也消除了在傳統塊設備和內存之間頁交換的需要。但是, 向持久性內存里寫數據是和向普通DRAM里寫數據共享計算機資源的。包括處理器緩沖區, L1/L2緩存等。
需要注意的是, 要使數據持久, 一定要保證數據寫入了持久性內存設備, 或者寫入了帶有掉電保護的buffer。軟件如果要充分利用持久性內存的特性, 指令集架構上至少需要以下支持:
寫的原子性
表示對于持久性內存里任意大小的寫都要保證是原子性的, 以防系統崩潰或者突然掉電。IA-32 和 IA-64 處理器保證了對緩存數據最大64位的數據訪問 (對齊或者非對齊) 的寫原子性。 因此, 軟件可以安全地在持久性內存上更新數據。這樣也帶來了性能上的提升, 因為消除了copy-on-write 或者 write-ahead-logging 這種保證寫原子性的開銷。
高效的緩存刷新(flushing)
出于性能的考慮, 持久性內存的數據也要先放入處理器的緩存(cache)才能被訪問。經過優化的緩存刷新指令減少了由于刷新 (CLFLUSH) 造成的性能影響。
a. CLFLUSHOPT 提供了更加高效的緩存刷新指令
b. CLWB (Cache Line Write Back) 指令把cache line上改變的數據寫回內存 (類似CLFLUSHOPT), 但是無需讓這條 cache line 轉變成無效狀態(invalid, MESI protocol), 而是轉換成未改變的獨占狀態(Exclusive)。CLWB 指令實際上是在試圖減少由于某條cache line刷新所造成的下次訪問必然的cache miss。
提交至持久性內存
(Committing to Persistence)
在現代計算機架構下, 緩存刷新的完成表明修改的數據已經被回寫至內存子系統的寫緩沖區。 但是此時數據并不具有持久性。為了確保數據寫入持久性內存, 軟件需要刷新易失性的寫緩沖區或者在內存子系統的其他緩存。 新的用于持久性寫的提交指令 PCOMMIT 可以把內存子系統寫隊列中的數據提交至持久性內存。
非暫時store操作的優化
(Non-temporal Store Optimization)
當軟件需要拷貝大量數據從普通內存到持久性內存中時(或在持久性內存之間拷貝), 可以使用弱順序, 非暫時的store操作 (比如使用MOVNTI 指令)。 因為Non-temporal store指令可以隱式地使要回寫的那條cache line 失效, 軟件就不需要明確地flush cache line了(see Section 10.4.6.2. of Intel? 64 and IA-32 Architectures Software Developer’s Manual, Volume 1)。
03
總結
本期我們介紹了NVDIMM 的幾種實現方式, 以及為了發揮NVDIMM-P 的性能所做的硬件上的優化和支持。后面我們會繼續介紹軟件方面的支持, 包括編程模型, 編程庫, SPDK方面的支持等。敬請期待。
-
DRAM
+關注
關注
40文章
2341瀏覽量
185101 -
存儲技術
+關注
關注
6文章
753瀏覽量
46206 -
內存
+關注
關注
8文章
3105瀏覽量
74951
原文標題:內存之后,下一代存儲技術是什么?
文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
NVDIMM-P內存最新技術,能夠在意外斷電時保留原有數據
定點算法實現和優化
HBase性能優化方法總結
Camellia加密算法基于硬件實現的優化
IDT 公布業界首款 DDR4 NVDIMM 電源管理集成電路
新思科技推出業內首個DDR5 NVDIMM-P驗證IP 加速驗證工作完成
ASIC設計方案提供商燦芯半導體為NVDIMM OEM提供控制器芯片方案
NVDIMM-P非易失內存標準公布:斷電不丟數據、兼容DDR4
NVDIMM – 內存和存儲的完美結合

下一代內存技術:準備好迎接驗證挑戰了嗎

評論