NVMe系列专题之一:NVMe技术概述

NVMe是为了解决AHCI在处理PCIeSSD时的性能瓶颈而诞生的接口标准,它提供了更低的延迟、更高的IOPS和更快的数据传输速度。与AHCI相比,NVMe支持更多的队列和更大的队列深度,从而极大地提升了SSD的性能。此外,NVMe还引入了低功耗特性,适合于消费级设备。
摘要由CSDN通过智能技术生成

1. NVMe(Non Volatile Memory Express)的诞生

NVMe横空出世之前,硬盘的世界还是AHCI的天下。那么问题来了,AHCI又是什么? AHCI,英文全名是Serial ATA Advanced Host Controller Interface,中文名是"串行ATA高级主控接口"或者"高级主机控制器接口",是Intel联合多家公司研发的系统接口标准。

在信息爆炸时代之前,SATA在AHCI的领导下可谓是风生水起,青史留名。但是,SATA/AHCI其实是为机械硬盘HHD而生的,其致命的缺陷就是传输速度有瓶颈,最大不超过600MB/s。 后来,AHCI也意识到了自身的危机,并高薪挖来了另一位得力干将PCIe。PCIe呢,光芒万丈,AHCI根本就驾驭不了,PCIe对AHCI也是心生抱怨,AHCI不能为PCIe提供施展才华的平台。在与AHCI搭档了很短的时间之后,PCIe就萌生退意。

正当PCIe对这个世界开始失望的时候,PCIe遇到了NVMe。郁郁不得志之后,PCIe终于等到了自己的伯乐。PCIe/NVMe这对搭档在结合之后,展现了前所未有的能量,正在用他们的实力征服这个世界。

上面的一段"废话"叙述了AHCI,NVME,SATA,PCIe相互之间的关系,画了张图,方便大家理解:

NVMe最初的名字叫NVMHCI 【非易失性内存主机控制器接口规范(英语:Non Volatile Memory Host Controller Interface,缩写:NVMHCI)】,是在2007年的Intel开发者论坛(IDF)上被提出来的,并在同年Intel牵头成立NVMe开发工作组。在这个工作组中有13个主导公司(如下图)和近百个成员。

2. NVMe的特点与优势

NVMe主要是面向PCIe SSD开发的一套接口标准(注意,也不仅仅局限在SSD,对其他NVM存储依然很有前景,本文还是主要针对PCIe SSD)。NVMe定义了系统接口和命令集。其目的就是性能更好,延迟更低,功耗更低。我们先对比一下AHCI与NVMe特点,看图(来自Intel FMS 2012)。

NVMe的速度优势

对用户来说,SSD的数据传输速度体验是第一感官。

先来看一下NVMe/PCIe与AHCI/SATA的对比数据(来源:Intel)。下面是Intel NVMe SSD P3700系列与Intel SATA SSD S3700系列的128K顺序读写速度对比,可以看到,NVMe SSD的读写性能有近6倍的提升。

我们再来看另外一组NVMe/PCIe与AHCI/PCIe的速度对比。数据同样来自Intel。从下图中可以看出,NVMe SSD相对AHCI/PCIe SSD在读写性能上有2~3倍的提升。

经过两组数据的对比,可以证明NVMe/PCIe是目前最强的组合。

NVMe的低延迟优势

与AHCI相比,NVMe在两个方面的作出了努力降低存储系统延迟:

  • 如前面所讲,NVMe主要服务PCIe SSD,而PCIe通道不需要像SATA一样连接到南桥中转,可以直接通往CPU(这里的CPU确切的说应该是Root Complex),高铁直达,延迟降低了一部分;

  • NVMe如总理一样坚持"简政放权”,不给群众添麻烦。所以NVMe执行命令过程被彻底简化,直接执行,不用再读取寄存器。但在之前的AHCI中,执行命令时则要读取4次寄存器,这个过程会造成2.5μs的延迟。

NVMe的IOPS优势

理论上IOPS与队列深度(Queue Depth)和IO延迟有关,用数学表达式是:

IOPS=队列深度/IO延迟。

从上述的表达式中,我们可以看出IOPS与队列深度有很大的关系。但是有一点需要注意:实际应用中,随着队列深度的增加,IO延迟也会相应的变大。AHCI中,只支持一个队列,并且队列深度只有32。而NVMe支持64K个队列,每个队列的深度可达64K。这样一对比,AHCI真是弱爆了~不怪PCIe郁郁不得志呢~

再来张图,数据最有发言权(数据来自Intel IDF 2015)。NVMe绝对碾压SATA。

其实,如果要完全释放NVMe SSD的IOPS性能,设计人员要先做好评估呢,因为当队列深度达到一定程度后,NVMe SSD的IOPS才会达到最佳。如下图(来自Tom'Hardware),六块NVMe SSD均在队列深度128以上才达到最佳的性能。

NVMe白皮书中对企业级SSD和消费级SSD设计时需要的队列深度的建议是:

  • 企业级SSD: 16~128 Queues;

  • 消费级SSD: 2-8 Queues.

NVMe的低功耗优势

NVMe中加入了自动电源状态转换和动态电源管理机制。NVMe Spec支持1-32电源状态(PS, Power State)。在Host开启自动电源状态转换功能时,可以根据自己喜好设置Idle多长时间后自动转换其他电源状态。比如,我们定义了6个PS,并且定义在Idle(PS0) 10ms之后进入PS1, Idle 50ms 进入PS2,Idle 100ms 进入PS3…这些都是自定义的。如果Host未开启自动电源状态转换功能,也可以通过下发Set feature命令进行电源状态的转换。

不过,自动电源状态切换功能一般只用在消费级SSD上,对笔记本电脑的续航问题有很大的帮助。在企业级SSD中数据的安全性还是第一位的,不大会考虑功耗的问题。

本文主要是对NVMe技术作一个概况性的介绍,后续文章会讲述NVMe的相关细节,敬请期待,非常感谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值