NVM Express在2019年完成了NVMe 1.4規(guī)范的制定,新的NVMe協(xié)議帶來了大量的全新特性,尤其在糾錯、強化性能以及針對特殊領(lǐng)域和企業(yè)級領(lǐng)域的優(yōu)化等方面更是令人關(guān)注,其中就包含了NVMe 1.4為高端企業(yè)級固態(tài)硬盤提供的一種新能力PMR。
圖1NVMe Feature Roadmap
所謂的PMR即為一塊存儲區(qū),使用此功能將創(chuàng)建并控制一個稱為持久性內(nèi)存區(qū)域(PMR)的存儲區(qū)域,該存儲區(qū)可以映射到PCI Express總線上的地址空間上面,并且可被主機和其他設(shè)備訪問。
PMR的主要特點是,在電源斷電(power cycle),控制器復位以及PMR啟用/禁用切換之后,寫入PMR的數(shù)據(jù)也會保留。換句話說,此功能使SSD除了提供通過邏輯塊地址(LBA)訪問的存儲區(qū)域外,還提供了另一個非易失性存儲區(qū)域,并且這塊存儲區(qū)域假定的訪問方法是內(nèi)存訪問而不是塊訪問。PMR對性能的要求很高,例如,穩(wěn)定狀態(tài)下的寫帶寬要比PCIe的寫帶寬度大得多,如果無法做到,協(xié)議上記載會有彈性緩沖區(qū)等可選項來填補帶寬的間隙。
總的來說,PMR空間可以提供一種內(nèi)存級讀寫速度、斷電后數(shù)據(jù)不會丟失的存儲區(qū)域。PMR功能上與NVDIMM相似,雖然PMR的性能和容量遠比不上NVDIMM,但PMR有著與NVDIMM一樣的優(yōu)勢,比起通過NVMe IO命令去讀寫一筆數(shù)據(jù),并等待命令完成,讀寫PMR的操作就簡單快捷多了。PMR具有非易失性、較低延遲、可Bytes尋址等特性,使數(shù)據(jù)管理具有更大的靈活性。它非常適合需要頻繁訪問復雜數(shù)據(jù)集的環(huán)境,以及因電源故障或系統(tǒng)崩潰導致停機的敏感環(huán)境。
PMR主要的優(yōu)點包括:
1.訪問延遲小于NAND閃存的訪問延遲,接近于DRAM。
2.與NAND閃存相比,吞吐量大大增加。
3.比DRAM便宜。
4.可Bytes尋址,實時訪問數(shù)據(jù),允許超快速訪問大型數(shù)據(jù)集。
5.斷電后數(shù)據(jù)仍保留在內(nèi)存中(就像使用閃存一樣)。
那么,究竟如何才能實現(xiàn)這一強大的功能呢?隨著PCIe Gen4的問世,PCIe的帶寬迅速增長,常見的非易失性存儲器件NAND閃存很難滿足PMR要求的高速性能,而且原本NAND閃存就更適合用來塊訪問,不適合用于PMR指向的內(nèi)存,因此,SSD不會直接使用NAND閃存來作為實現(xiàn)PMR的存儲器件。
實際上在NVMe協(xié)議中并沒有記載PMR的具體實現(xiàn)方法,但是從已有信息來看,可以使用所謂的新型內(nèi)存SCM(Storage Class Memory)來實現(xiàn)PMR,例如利用Intel的Optane存儲器。還有一種比較主流的實現(xiàn)PMR的思路是,將SSD內(nèi)DRAM(的一部分)分配給這個區(qū)域,一般企業(yè)級NVMe固態(tài)硬盤自帶有大容量的DRAM緩存,并且整個固態(tài)硬盤處于斷電保護設(shè)計的保護之下,結(jié)合這兩個特點,外加一定數(shù)量的常規(guī)NAND閃存,PMR就可以實現(xiàn)。
圖2 使用部分DRAM用作PMR
NVMe一直在積極探索固態(tài)硬盤內(nèi)DRAM的其他用途,PMR就是一個潛在的應(yīng)用。絕大多數(shù)企業(yè)級固態(tài)硬盤都帶有一定數(shù)量的DRAM內(nèi)存,用來當做存放FTL表項的cache buffer,固態(tài)硬盤可以通過這些FTL表項來映射邏輯地址和閃存物理地址。此外,NVMe 1.2協(xié)議就定義了控制器內(nèi)緩存CMB(Controller Memory Buffer)這一特性,旨在使部分SSD內(nèi)的DRAM空間可以直接通過PCI地址空間被訪問,這一特性使得NVMe傳輸IO命令所需的SQ,CQ可以直接駐存在SSD的DRAM內(nèi)存里,而不是放在host的內(nèi)存里,可以減少命令交互的延遲,并可以消除NVMe over Fabrics情況下SSD端對端之間DMA傳輸中的不必要的復制操作,使得傳輸?shù)臄?shù)據(jù)完全繞過host的DRAM。
圖3 NVMe Controller中的CMB與PMR
NVMe 1.4的特性PMR的運作方式與CMB類似,host系統(tǒng)可以使用基礎(chǔ)的PCIe傳輸直接讀寫此內(nèi)存區(qū)域,而無需任何命令隊列的開銷。在實踐中,通常希望將CMB用于支持正常的NVMe操作(如放置SQ/CQ/PRP等),作為一塊DRAM buffer使用,但是PMR則不同,雖然PMR也是SSD內(nèi)部的一段DRAM區(qū)域,但它主要是作為一大塊通用的非易失存儲供主機使用,典型的企業(yè)級SSD具有專門的斷電保護電容器,這些電容器可以使PMR中的數(shù)據(jù)在發(fā)生意外斷電時得以安全刷新到閃存中。在SSD斷電時,PMR的內(nèi)容將自動寫入閃存,當host系統(tǒng)恢復上電時,host可以要求SSD重新加載PMR的內(nèi)容。
用這種方法實現(xiàn)的PMR功能的典型應(yīng)用場景是,接收大量(覆蓋性)寫入的場景,這種場景下PMR不會消耗任何除PMR容量大小之外的閃存,因為只有在斷電的情況下,SSD才會去下刷保存PMR的數(shù)據(jù),因此這非常適合用于記錄數(shù)據(jù)庫或系統(tǒng)的日志,因為日志會不斷大量寫入,而且寫日志的操作很容易成為系統(tǒng)內(nèi)的性能瓶頸,造成堵塞,而PMR恰恰是可以提供DRAM級別的讀寫速度,以及DRAM可覆蓋寫的特性。還有一種潛在的應(yīng)用場景是就地執(zhí)行技術(shù)XIP(execute-in-place),這種被人們津津樂道的能夠大幅提高應(yīng)用程序性能的技術(shù)可能會因為PMR的出現(xiàn)變得流行起來。
目前PMR在協(xié)議方面則較為簡單,NVME 1.4規(guī)范只定義了一些控制PMR的寄存器,包括穩(wěn)定狀態(tài)下的寫入帶寬、彈性緩沖區(qū)的大小、PMR的狀態(tài)、主機應(yīng)等待PMR ready的超時時間等詳細的設(shè)定項目。因此,想要有效地使用PMR,設(shè)備(驅(qū)動器)側(cè)和主機(OS和庫)側(cè)對應(yīng)的驅(qū)動程序都是必不可少的,目前Linux的相關(guān)驅(qū)動還處于規(guī)劃階段,未來對PMR驅(qū)動軟件上的支持還有很長一段路要走。
NVMe 1.4在去年才剛剛發(fā)布,業(yè)界內(nèi)對于PMR的應(yīng)用也主要集中在企業(yè)級存儲領(lǐng)域,并且大多仍處于研究、探討階段,因此有關(guān)于PMR這一新特性的可操作空間其實還很大,其應(yīng)用潛力、前景有望進一步被發(fā)掘。
-
PMR
+關(guān)注
關(guān)注
0文章
6瀏覽量
14690 -
nvme
+關(guān)注
關(guān)注
0文章
252瀏覽量
23248
原文標題:太強大了!NVMe SSD變身內(nèi)存!
文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
軟通動力攜手懿文匯推出全域級元服務(wù)平臺“發(fā)現(xiàn)蚌埠”
軟通動力與懿文匯數(shù)字科技達成戰(zhàn)略合作
功率器件熱設(shè)計基礎(chǔ)知識
FPGA基礎(chǔ)知識及設(shè)計和執(zhí)行FPGA應(yīng)用所需的工具

TWL6030氣體監(jiān)測基礎(chǔ)知識

Verilog HDL的基礎(chǔ)知識

TI電池監(jiān)控器IC的HDQ通信基礎(chǔ)知識

全新的半導體基礎(chǔ)知識

評論