nvdimm

nvdimm(non-volatile dimm)是persistent memory的一种。persistent memory就是特殊的一种内存,它采用一般的内存插口(dimm),但是具备断电数据保存功能。它可以采用一般的cpu访问内存的方式load/store,其访问延时是dram级别的;但是它又具备flash式的断电保存功能。

至2018年初,市面nvdimm主要是nvdimm-n,它制作是采用dram+控制器+nand flash+超级电容(或者电池)。nvdimm控制器在系统异常断电时刻在特定的主板硬件信号和os驱动的配合下,可以将nvdimm中dram部分数据刷新到nand-flash中。在机器上电时刻控制器又可以将数据从nand-flash中读取到nvdimm 的dram部分。

主机访问nvdimm方式



nvdimm在主机os的使用有两种方式:

1、通过pmem方式使用

就是按照persistent内存的方式使用,cpu直接使用store和load方式访问nvdimm设备,跳过os内部的page cache,通用块层,也无需特别的驱动作为访问中转(因为此种访问方式是内存式访问)。

这种访问方式下,应用需要意识到nvdimm的存在,自己映射nvdimm一段存储空间,应用自己实现用户层cache。

上图中最右边的虚线和右侧第二条线都是这种访问方式。不同的是右侧第二条访问线需要os文件系统支持dax(direct access)属性——用户通过文件系统访问设备不过page cache、通用块层。


2、通过块设备(btt)方式使用

你可能感兴趣的:(nvdimm)