浅谈新型非易失存储
内核工匠 2022-09-29

非易失存储,Non-Volatile Memory (NVM),是相对DRAM(掉电后数据丢失)而言的,指可以持久化保存数据的存储介质。广义上来说,NAND Flash也是一种非易失存储。近些年来,不论在学术界还是工业界,新型非易失存储技术都是关注的重点且取得了一定的突破。新型非易失存储由于性能相比闪存提升巨大,达到了接近DRAM的水平,一般在学术界被称为Non Volatile Main Memory (NVMM)。关注存储领域动态的同学们经常会看到很多类似的名词:PCM、PM、SCM,NVM、NVMM、NVDIMM等等,有些技术资料和报道中不加区分的混用,让人搞不清。本文从理清概念开始,概要介绍一下当前非易失存储技术进展和它带来的系统软件变革。


新型非易失存储介质和设备
NVMM是对多种新型非易失存储介质的统称,目前的NVMM包括:相变存储器 Phase-Change Memory (PCM)、忆阻器 Memristor(ReRAM)、自旋扭矩转换随机存储器 Spin Transfer Torque - Magnetic Random Access Memory (STT-MRAM)等等。PCM是通过硫系化合物非晶和多晶之间的快速相变来实现信息存储的,ReRAM则是基于一种特殊的二氧化钛材料实现纳米级忆阻器实现数据存储,STT-MRAM的物理机制是磁致阻变效应。以上新型非易失存储介质所用材料虽然各有不同,但都有着低延迟、高密度、可字节寻址等优异特性。相比基于浮栅晶体管的NAND Flash确实可称得上是革命性创新。
NAND Flash可以做成不同接口和不同形式的闪存设备:SATA接口一般用于普通固态硬盘(SSD)产品、PCIe接口则常用于高端服务器闪存产品。NVMM由于可以媲美DRAM的性能,可以做成类似内存条形式直接插在主板的DIMM插槽上。这类产品可以称为持久化内存,Persistent Memory (PM),或存储级内存,Storage Class Memory (SCM)。PM和SCM基本是相同的含义,个人理解的细微差别是应用场景的区别——PM没有明确指向性,SCM则是倾向于处在存储层次中DRAM和闪存之间。
NVDIMM又是什么呢?实际上早已有之,是基于NAND Flash的非易失型内存条——通常被做成“电池+NAND Flash+DRAM”的形式:在掉电时用电池电量将DRAM数据刷回NAND Flash实现持久化
近两年,英特尔推出了目前唯一的NVMM商用产品——基于3D Xpoint (Cross Point)技术的Optane Memory设备,又称Apache Pass,也可简称为AEP。3D Xpoint技术的核心介质具体是前述PCM、ReRAM中的哪一种至今还未公布,但可以从下图简单了解下其存储原理,“cross point”的名称正是来自图中的存储单元结构。
图1 英特尔3D Xpoint技术
英特尔同时也推出了基于3D Xpoint技术的Optane SSD,采用PCIe接口。相比基于NAND Flash的企业级SSD在顺序读写上似乎并没有太大提升,顺序写大约在2000MB/s的水平。但得益于稳定的低时延——读写均为10us,其4KB随机读写性能非常逆天,随机写达到500000 IOPS。
新型非易失存储的定位
业界在新型非易失存储上搞的热火朝天,性能到底如何呢?实验室中的数值不算数,我们还是以能量产的3D Xpoint作为参考:目前Optane Memory的读延迟大约是350 ns,这是一个比较让人“亦可赛艇”的数值了。要知道DRAM的读延迟大约是100 ns,至少已经看到了DRAM的尾灯(在一个数量级上)。参考下图中的存储层次体系,3D Xpoint确实已经一只脚迈进了主存的区间,甩了闪存一大截。因此,当我们思考如何使用新型非易失存储时会发现有了很大的想象空间。
图2 存储层次体系
存储器件的定位和用途一般要考虑延迟、寿命、成本、容量、可持久化等多方面的因素,主存(Memory)和辅存(Storage)之间有很大的特性差别:主存要求极低延迟、字节寻址,辅存要求大容量、持久化。主存和辅存是上下层级关系,而新型非易失存储的出现让我们看到了同时满足低时延、字节寻址、持久化、大容量的理想存储形态。
图 3 新型非易失存储特性现状
可以预见新型非易失存储将会带来远超闪存的存储变革。因为闪存其实并没有改变存储层次体系,它是在原有的主存DRAM和辅存磁盘之间增加了一层。而新型非易失存储则是模糊了主存和辅存的界限,它可以不再是DRAM和闪存之间的一层而是和DRAM并列。
图4 新型非易失存储定位
学术界已经有大量的研究工作考虑如何设计系统软件适应和更好地使用新型非易失存储,主要的大方向是两个:一个是将新型非易失存储用做主存,另一个则是将新型非易失存储用做辅存。将非易失存储作为主存又可分为:完全替换DRAM和同DRAM共存两种。完全替换DRAM后,我们不再需要主存外的存储了——因为主存本身是持久化的。编程接口和运行方式也变得简化和不同——无需持久化数据到文件,内存变量和对象都是持久化的。这个方向上的挑战是如何提供更易于使用的编程接口和数据安全保证,以及系统崩溃后重启如何恢复到正常状态。当然这个场景还离我们比较遥远,DRAM和新型非易失存储混用从目前3D Xpoint的性能指标看是比较现实的。DRAM和新型非易失存储共用作为主存的话,需要考虑非易失存储的寿命问题和性能差异——设计合理的内存分配和缓存方案,Linux内核社区已经有几组patch在做这方面的尝试,包括:隔离DRAM和PM,跟踪冷热并迁移,或是将新型非易失存储用做SWAP等等。
更为稳妥地考虑目前3D Xpoint的使用,实际上还是将其作为存储更合适。接口虽然和DRAM相同,但寿命和性能上评估还是作为存储更为合理。下面我们主要看看存储软件层面需要作出哪些变化。
存储软件的大变革
现有的Linux存储软件栈完全是按照主存和辅存上下级形式设计的,Page Cache非常有效的弥补了DRAM和硬盘之间的性能鸿沟,极大的提升了文件读写的性能。然而在新型非易失存储出现后,接近DRAM的低延迟让Page Cache变成了负担。硬件性能的提升让软件栈的开销变得不可忽略——这是很多硬件设计改变引发软件变革的核心逻辑。基于这一逻辑,我们看到了很多在数据库、文件系统上的新工作涌现。如下图所示为英特尔开发的面向非易失存储的文件系统PMFS,跳过了Page Cache和块设备层,读写设备的形式也和内存访问一致,极大的减少了软件层面引入的开销。
图5 传统存储栈和PMFS引入的变化
针对非易失存储的特点,Linux内核主线也合入了DAX(Direct Access)方案。DAX实现了跳过Page Cache对非易失性存储的直接读写,传统的文件系统可以通过支持DAX实现对非易失性存储的适配,带来读写性能的提升。但DAX不能解决传统文件系统元数据读写还是要经过Page Cache的问题,因此很多专门面向非易失存储的文件系统应运而生,除PMFS之外,较为活跃和想法新颖的还有使用日志结构文件系统思路的NOVA、利用Soft Update技术的SoupFS等。这里不再一一展开,感兴趣的同学可以查看后附参考文献链接。
另外英特尔还开发了新型非易失存储的内存分配库(PMDK),memcached、redis等原本就是利用内存的Key Value数据库可以非常方便的移植到新型非易失存储系统上。总之,“bypass Page Cache”,甚至是“bypass 内核”,大幅削减软件栈开销是应对硬件性能大幅提升的主要软件设计思路。
基于SCM的混合存储
       当前作为唯一能买到的新型非易失存储,Optane Memory还是非常贵的。可以想见未来一段时间,完全使用新型非易失存储作为存储设备还是过于奢侈的。因此新型非易失存储和闪存,甚至是磁盘一起组成混合存储系统就成为了一种必然趋势。如果直接使用已有的存储Cache设计(如BCache),又会面临不能充分发挥非易失存储性能的问题。在基于新型非易失存储的混合存储设计方向上,学术界已经有一些非常好的尝试。跨介质文件系统 Strata通过libFS和kernelFS两个模块实现了对非易失存储性能的极致保留:LibFS记录用户态操作直接写入SCM,kernelFS在后台整理、迁移数据到合适的存储介质上。——这有点类似LevelDB的思路。另外,也有基于前述新型非易失存储文件系统NOVA来提供混合存储支持的实现Ziggurat。通过对写入模式的预测来决定数据落入不同的存储介质,并根据数据冷热进行不同存储介质间的迁移。
新型非易失存储的广泛使用就在不远的将来, 当然存储技术路线的演进可能依然曲折多变。对于系统开发者来说,这是一片大有可为的天地。 
声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 工业
  • 安防
  • 航空
  • CAN
  • 基于PXI总线为的SAR天线平台测试模块设计

    PXI总线技术简介  PXI总线技术是NI发布的一种全新的开放性、模块化的仪器总线规范,是PCI总线在仪器领域的扩展。它将CompactPCI规范定义的PCI总线技术发展成适合于试验、测量与数据采集场合应用的机械、电气和软件规范。PXI总线与台式PCI规范具有完全相同的性能,是在PCI总线内核技术上增加了成熟的技术规范和要求形成的。它通过增加用于多板同步的触发总线和参考时钟、用于进行精确定时的星形...

    12小时前
  • 并联电容器的故障处理

    1、并联电容器的故障判断及原因分析(1)渗漏油。并联电容器渗漏油是一种常见的现象,主要是由于产品质量不良,运行维护不当,以及长期运行缺乏维修导致外皮生锈腐蚀而造

    昨天
  • 变压器的日常检修

    一、电力变压器常见故障及原因1)短路损坏事故变压器在运行中遭受的各种短路事故,如单相对地、两相间或两相对地、三相之间的短路,其中以出口处短路最为严重。日常巡视检

    昨天
  • 高压试验变压器如何看质量好坏?

    试验变压器是发供电局部门及科研单位等广大用户的用来做交流耐压试验的基本试验设备,通过了国家质量监督局的标准,用于对各种电气产品、电器元件、绝缘材料等进行规定电压

    昨天
  • SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍,以及SPI接口详解

      SPI、I2C、UART三种串行总线协议的区别  第一个区别当然是名字:  SPI(SerialPeripheralInterface:串行外设接口);  

    11-24
  • 史上最全:主板上常见的接口信号定义与分类详解

      cpu与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器接口。存储器通常在cpu的同步控制下工作,接口电

    11-24
  • 容量相同质量不同,关于SSD这些接口你要懂

    怎样去DIY一台主机呢?它可以满足自己的工作、游戏需求,还要颜值高、噪音小、最重要的是价格要便宜,质量要好。本文为让装机零基础的朋友可以轻松了解,所以尽量避免专

    11-24
  • ESD原理保护及典型接口选型应用方案解析

      ESD保护对高密度、小型化和具有复杂功能的电子设备而言具有重要意义。本文探讨了采用TVS二极管防止ESD时,最小击穿电压和击穿电流、最大反向漏电流和额定反向

    11-24
  • 长时间CAN数据记录的解决方案

      经常有人问到:“我想长时间记录CAN数据,有什么办法可以实现?”这里说一说几种长时间记录CAN数据的方法。  一、简单快捷——USBCAN卡  但凡使用过C

    11-24
  • 220V交流单相电机启动方式以及接线图

      220V交流单相电机起动方式第一种,分相起动式,如图1所示,系由辅助起动绕组来辅助启动,其起动转矩不大。运转速率大致保持定值。主要应用于电风扇,空调风扇电动

    11-24
  • 电气触头的分类、结构和应用

      (1)电气触头的分类  电气触头按其接触方式可分为以下三种类型  1)固定连接触头。指被接触连接的导体之间不能相对移动的电气触头。如母线接头、电气设备的引线

    11-24
  • ADXL345采用I2C模式与tms320vc5509A接口

      VC5509A包含I2C外设接口,可以方便的与ADXL345通信。在调试中,使用了实验室自制的DSP主板SDUSTVC5509AV1.1。该板的JP2扩展接

    11-24
下载排行榜
更多
广告