0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文汇总PMR的基础知识

SSDFans 来源:搜狐网 作者:搜狐网 2020-09-07 11:36 次阅读

NVM Express在2019年完成了NVMe 1.4规范的制定,新的NVMe协议带来了大量的全新特性,尤其在纠错、强化性能以及针对特殊领域和企业级领域的优化等方面更是令人关注,其中就包含了NVMe 1.4为高端企业级固态硬盘提供的一种新能力PMR。

图1NVMe Feature Roadmap

所谓的PMR即为一块存储区,使用此功能将创建并控制一个称为持久性内存区域(PMR)的存储区域,该存储区可以映射到PCI Express总线上的地址空间上面,并且可被主机和其他设备访问。

PMR的主要特点是,在电源断电(power cycle),控制器复位以及PMR启用/禁用切换之后,写入PMR的数据也会保留。换句话说,此功能使SSD除了提供通过逻辑块地址(LBA)访问的存储区域外,还提供了另一个非易失性存储区域,并且这块存储区域假定的访问方法是内存访问而不是块访问。PMR对性能的要求很高,例如,稳定状态下的写带宽要比PCIe的写带宽度大得多,如果无法做到,协议上记载会有弹性缓冲区等可选项来填补带宽的间隙。

总的来说,PMR空间可以提供一种内存级读写速度、断电后数据不会丢失的存储区域。PMR功能上与NVDIMM相似,虽然PMR的性能和容量远比不上NVDIMM,但PMR有着与NVDIMM一样的优势,比起通过NVMe IO命令去读写一笔数据,并等待命令完成,读写PMR的操作就简单快捷多了。PMR具有非易失性、较低延迟、可Bytes寻址等特性,使数据管理具有更大的灵活性。它非常适合需要频繁访问复杂数据集的环境,以及因电源故障或系统崩溃导致停机的敏感环境。

PMR主要的优点包括:

1.访问延迟小于NAND闪存的访问延迟,接近于DRAM

2.与NAND闪存相比,吞吐量大大增加。

3.比DRAM便宜。

4.可Bytes寻址,实时访问数据,允许超快速访问大型数据集。

5.断电后数据仍保留在内存中(就像使用闪存一样)。

那么,究竟如何才能实现这一强大的功能呢?随着PCIe Gen4的问世,PCIe的带宽迅速增长,常见的非易失性存储器件NAND闪存很难满足PMR要求的高速性能,而且原本NAND闪存就更适合用来块访问,不适合用于PMR指向的内存,因此,SSD不会直接使用NAND闪存来作为实现PMR的存储器件。

实际上在NVMe协议中并没有记载PMR的具体实现方法,但是从已有信息来看,可以使用所谓的新型内存SCM(Storage Class Memory)来实现PMR,例如利用Intel的Optane存储器。还有一种比较主流的实现PMR的思路是,将SSD内DRAM(的一部分)分配给这个区域,一般企业级NVMe固态硬盘自带有大容量的DRAM缓存,并且整个固态硬盘处于断电保护设计的保护之下,结合这两个特点,外加一定数量的常规NAND闪存,PMR就可以实现。

图2 使用部分DRAM用作PMR

NVMe一直在积极探索固态硬盘内DRAM的其他用途,PMR就是一个潜在的应用。绝大多数企业级固态硬盘都带有一定数量的DRAM内存,用来当做存放FTL表项的cache buffer,固态硬盘可以通过这些FTL表项来映射逻辑地址和闪存物理地址。此外,NVMe 1.2协议就定义了控制器内缓存CMB(Controller Memory Buffer)这一特性,旨在使部分SSD内的DRAM空间可以直接通过PCI地址空间被访问,这一特性使得NVMe传输IO命令所需的SQ,CQ可以直接驻存在SSD的DRAM内存里,而不是放在host的内存里,可以减少命令交互的延迟,并可以消除NVMe over Fabrics情况下SSD端对端之间DMA传输中的不必要的复制操作,使得传输的数据完全绕过host的DRAM。

图3 NVMe Controller中的CMB与PMR

NVMe 1.4的特性PMR的运作方式与CMB类似,host系统可以使用基础的PCIe传输直接读写此内存区域,而无需任何命令队列的开销。在实践中,通常希望将CMB用于支持正常的NVMe操作(如放置SQ/CQ/PRP等),作为一块DRAM buffer使用,但是PMR则不同,虽然PMR也是SSD内部的一段DRAM区域,但它主要是作为一大块通用的非易失存储供主机使用,典型的企业级SSD具有专门的断电保护电容器,这些电容器可以使PMR中的数据在发生意外断电时得以安全刷新到闪存中。在SSD断电时,PMR的内容将自动写入闪存,当host系统恢复上电时,host可以要求SSD重新加载PMR的内容。

用这种方法实现的PMR功能的典型应用场景是,接收大量(覆盖性)写入的场景,这种场景下PMR不会消耗任何除PMR容量大小之外的闪存,因为只有在断电的情况下,SSD才会去下刷保存PMR的数据,因此这非常适合用于记录数据库或系统的日志,因为日志会不断大量写入,而且写日志的操作很容易成为系统内的性能瓶颈,造成堵塞,而PMR恰恰是可以提供DRAM级别的读写速度,以及DRAM可覆盖写的特性。还有一种潜在的应用场景是就地执行技术XIP(execute-in-place),这种被人们津津乐道的能够大幅提高应用程序性能的技术可能会因为PMR的出现变得流行起来。

目前PMR在协议方面则较为简单,NVME 1.4规范只定义了一些控制PMR的寄存器,包括稳定状态下的写入带宽、弹性缓冲区的大小、PMR的状态、主机应等待PMR ready的超时时间等详细的设定项目。因此,想要有效地使用PMR,设备(驱动器)侧和主机(OS和库)侧对应的驱动程序都是必不可少的,目前Linux的相关驱动还处于规划阶段,未来对PMR驱动软件上的支持还有很长一段路要走。

NVMe 1.4在去年才刚刚发布,业界内对于PMR的应用也主要集中在企业级存储领域,并且大多仍处于研究、探讨阶段,因此有关于PMR这一新特性的可操作空间其实还很大,其应用潜力、前景有望进一步被发掘。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PMR
    PMR
    +关注

    关注

    0

    文章

    6

    浏览量

    14621
  • nvme
    +关注

    关注

    0

    文章

    221

    浏览量

    22642

原文标题:太强大了!NVMe SSD变身内存!

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    品质管理基础知识

    品质管理基础知识
    的头像 发表于 11-01 11:08 356次阅读
    品质管理<b class='flag-5'>基础知识</b>

    TWL6030气体监测基础知识

    电子发烧友网站提供《TWL6030气体监测基础知识.pdf》资料免费下载
    发表于 10-29 10:02 0次下载
    TWL6030气体监测<b class='flag-5'>基础知识</b>

    Verilog HDL的基础知识

    本文继续介绍Verilog HDL基础知识,重点介绍赋值语句、阻塞与非阻塞、循环语句、同步与异步、函数与任务语法知识
    的头像 发表于 10-24 15:00 410次阅读
    Verilog HDL的<b class='flag-5'>基础知识</b>

    负载开关基础知识

    电子发烧友网站提供《负载开关基础知识.pdf》资料免费下载
    发表于 10-08 09:56 1次下载
    负载开关<b class='flag-5'>基础知识</b>

    全新的半导体基础知识

    《全新的半导体基础知识》首先对流行于电子书刊上数十年之久的经典半导体基础知识中存在的谬误进行了全方位的讨论,然后以半导体内部结构为抓手,以G型半导体(客供电子型半导体)、H型半导体(主供电子型半导体
    的头像 发表于 09-20 11:30 1239次阅读
    全新的半导体<b class='flag-5'>基础知识</b>

    超声波传感基础知识

    电子发烧友网站提供《超声波传感基础知识.pdf》资料免费下载
    发表于 09-04 10:21 0次下载
    超声波传感<b class='flag-5'>基础知识</b>

    C++语言基础知识

    电子发烧友网站提供《C++语言基础知识.pdf》资料免费下载
    发表于 07-19 10:58 7次下载

    手把手教学!HLK-LD2410B/C新手必看攻略!测试教程、模块调参详解~

    HLK-LD2410B/C接线教程、参数解析、APP调参教程、上位机调参教程、常见异常情况自检等等内容,文汇总。 不管是萌新小白还是资深玩家,都可以快速入门。
    的头像 发表于 05-31 14:48 5101次阅读
    手把手教学!HLK-LD2410B/C新手必看攻略!测试教程、模块调参<b class='flag-5'>一</b><b class='flag-5'>文</b>详解~

    哪有FPGA的verilog编程基础知识

    没接触过FPGA开发,那个verilog编程有什么入门基础知识学习的?
    发表于 04-29 23:09

    电子元件基础知识介绍

    电子发烧友网站提供《电子元件基础知识介绍.pptx》资料免费下载
    发表于 03-15 16:48 84次下载

    光纤通信技术基础知识

    电子发烧友网站提供《光纤通信技术基础知识.ppt》资料免费下载
    发表于 03-06 15:53 0次下载

    FPGA基础知识介绍

    电子发烧友网站提供《FPGA基础知识介绍.pdf》资料免费下载
    发表于 02-23 09:45 30次下载

    鸿蒙开发【设备开发基础知识

    鸿蒙开发基础知识讲解
    的头像 发表于 01-29 18:44 1023次阅读
    鸿蒙开发【设备开发<b class='flag-5'>基础知识</b>】

    射频与微波基础知识

    射频与微波基础知识
    的头像 发表于 01-16 10:05 845次阅读
    射频与微波<b class='flag-5'>基础知识</b>

    Access数据库基础知识介绍

    电子发烧友网站提供《Access数据库基础知识介绍.pdf》资料免费下载
    发表于 01-02 10:24 3次下载