近几年,不论在学术界还是工业界,NVM都是比较前沿的技术。其实NVM一词并不新,是因为PM(或称SCM)这个与NVM有关的概念的出现,使得NVM这词又“火”了一把。在近年的相关文献中,NVM也经常被和PM(SCM)混用,让人搞不清。本文捋一捋它们之间的关系。
NVM
准确来说,NVM (non-volatile memory)指的是非易失的物理存储介质,比如NAND flash、PCM、3D XPoint等都算是NVM,这些NVM可以做成SSD形式,也可以做成PM (或称SCM)。
NVM存储介质
|
V
NAND Flash ---+
|
+-- PCM ---+--> SSD
+--+ |
| +-- 3D XPoint ---+
V
PM
(SCM)
NVM与SSD的关系
我们常见的SSD,不管是SATA接口还是PCIe接口,基本都是基于NAND Flash的;当然也有例外,Intel两年前推出的Optane SSD就基于3D XPoint而非NAND Flash。不管底层介质是Flash还是3D XPoint,这些介质广义上都是属于NVM的。它们都是存储设备,是块设备,是IO设备,除了性能,用户软件都可以将它们无差别地看成SSD。
NVM与PM (SCM)的关系
现在,PCM、3D XPoint等新型的NVM也被用于制作DIMM接口的内存条,被称为PM或SCM。
其实PM (persistent memory) 或者 SCM (storage class memory)基本为同义词,指的是内存DIMM接口的、可字节寻址的NVM设备。新型的NVM存储介质相对NAND Flash更容易做到细粒度读写,更适合做成可字节寻址(byte-addressable)的内存形式。并且,因为密度更大,基于新型NVM介质的PM可以做到DRAM内存条容量几倍;也由于新型NVM介质还不及DRAM的性能,PM的读写速度可能比DRAM内存条慢几倍。
NVDIMM又是什么?
“非易失内存条”其实并非近几年才出现,很久之前就有基于NAND Flash的非易失型内存条(一般被称为NVDIMM),不过这种NVDIMM通常被做成“电池+Flash+DRAM”的形式:通电时,依然是依靠DRAM工作,断电时才用电池电量将DRAM数据刷回Flash。Flash无法直接代替DRAM是是因为Flash的读写粒度不一致,且存在写前擦除、拷贝等要求,不利于直接进行细粒度存取。这种设计就导致NVDIMM只可能比一般DRAM内存条更贵,且不可能做的比DRAM内存有更大容量密度。
总结
虽然容易有歧义,但近年依然有很多文献称基于PM或SCM为NVM。因此阅读文献时我们可以认为:狭义上,NVM可以指Flash、PCM等存储介质;广义上,NVM也可以指SCM、PM等存储设备,其实早年间,也有称SSD为NVM的。