对 SSD 中 NVMe 标准的科普

有玩过 SSD 的朋友应该都清楚想要让 SSD 发挥出真正实力的话要去 BIOS 里面把 SATA 控制器模式切换成 AHCI,对 SATA 设备来说使用 AHCI 模式的确是正确的选择,切换成 AHCI 可获得更好的性能。但是现在最新存储接口 M.2 和 SATA-E 接口走的都是 PCI-E 通道,对与 PCI-E 来说 AHCI 可不是一个好的选择,想发挥最佳性能其实需要新的标准——NVMe。


Intel 750 就是 NVMe SSD 的代表作

有关注 SSD 的朋友应该今年听到 NVMe 这个词的频率应该不低,这个原本只在企业级产品上应用的产品在 Intel 与三星的推动下现在已经进入消费级市场了,随着高端 SSD 的战场已经向 PCI-E 和 M.2 接口转移,老旧的 AHCI 标准已经不合时宜,越来越多的主控厂商推出支持 NVMe 的主控,未来也会有更多支持 NVMe 标准的 SSD 推向市场,那么 NVMe 到底是啥呢?

如果说 AHCI 的话大家应该会了解多一点,NVMe 其实与 AHCI 一样都是逻辑设备接口标准(是接口标准,不是接口!不是接口!不是接口!因为很重要所以说三次),NVMe 全称 Non-Volatile Memory Express,非易失性存储器标准,是使用 PCI-E 通道的 SSD 一种规范,NVMe 的设计之初就有充分利用到 PCI-E SSD 的低延时以及并行性,还有当代处理器、平台与应用的并行性。SSD 的并行性可以充分被主机的硬件与软件充分利用,相比与现在的 AHCI 标准,NVMe 标准可以带来多方面的性能提升。

NVMe 的由来

现在所用的 SATA 接口与 AHCI 标准其实是为高延时的机械硬盘而设计的,目前主流 SSD 依然继续使用它们,早期 SSD 性能不高时可能还不觉得有什么问题,但是随着 SSD 的性能逐渐增强,这些标准已经成为限制 SSD 的一大瓶颈,专为机械硬盘而设计的 AHCI 标准并不太适合低延时的 SSD。

当然,业界早就意识到这一问题,2009 年下半年,关于 NVMe 的技术工作正式启动,NVMe 规范由包含 90 多家公司在内的工作小组所定制,Intel 是主要领头人,小组成员包括美光、戴尔、三星、Marvell、NetAPP、EMC、IDT 等公司,目的就是为 SSD 建立新的存储规范标准,让它在老旧的 SATA 与 AHCI 中解放出来。

2011 年,NVMe 标准正式出炉,该标准是根据闪存存储的特点量身定制的,新的标准解除了旧标准施放在 SSD 上的各种限制。2012 年标准升级到 NVMe 1.1,最新的 NVMe 1.2 标准是在 2014 所推出的。

首款支持 NVMe 标准的产品是三星 XS1715,与 2013 年 7 月所发布,随后陆续有企业级的 NVMe 标准 SSD 推出,直到今年 Intel 750 发布,NVMe 标准的产品才开始进入消费级市场。

NVMe 的优势一:低延时

说到 NVMe 标准对比 AHCI 标准的优势,其中之一就是低延时,看上图比较直观,NVMe 标准是面向 PCI-E SSD 的,使用原生 PCI-E 通道与 CPU 直连可以免去 SATA 与 SAS 接口的外置控制器(PCH)与 CPU 通信所带来的延时。

在软件层方面,NVMe 标准的延时只有 AHCI 的一半不到,NVMe 精简了调用方式,执行命令时不需要读取寄存器;而 AHCI 每条命令则需要读取 4 次寄存器,一共会消耗 8000 次 CPU 循环,从而造成大概 2.5 微秒的延迟。


更低的延时可让 SSD 的 4KB QD1 传输能力暴涨

NVMe 的优势二:IOPS 大增

另外 NVMe 也大大的提升了 SSD 的 IOPS 性能,在制定 AHCI 规范时并行性的想法并没有完全融合到规范内,利用 NCQ 功能可以对传输能力进行优化,但是接口并不允许 SSD 真正最大限度地发挥其应有的并行性。

现在 SSD 测试通常最多只会测试到队列深度为 32 的 IOPS 能力,其实终究原因这是 AHCI 的上限,其实许多闪存主控可以提供更好的队列深度。而 NVMe 则可以把最大队列深度从 32 提升到 64000,SSD 的 IOPS 能力也会得到大幅提升。

NVMe 还支持同一时间从多核处理器接受命令和优先处理请求,这个特性在企业级的重负载时优势就会显露出来。

低延时和良好的并行性的优势就是可以让 SSD 的随机性能得到大幅度提升,我们测试过的 Intel 750 就是一块 NVMe SSD,它的随机性能表现绝对是一流的,在任何队列深度下都能发挥出极佳的速度。

NVMe 的优势三:功耗更低

NVMe 加入了自动功耗状态切换和动态能耗管理功能,设备从 Power State 0 闲置 50ms 后可以切换到 Power State 1,继续闲置的话,在 500ms 后又会进入功耗更低的 Power State 2,切换时会有短暂延迟。SSD 在闲置时可以非常快速的控制在极低的水平,在功耗管理上 NVMe 标准的 SSD 会比现在主流的 AHCI SSD 拥有较大优势,这一点对移动设备来说尤其重要,可以显著增加笔记本和平板电脑的续航能力。

NVMe 的优势四:驱动适用性广

驱动程序的兼容性也是所有 PCI-E SSD 的一个共有问题,每个产品都有对应不同系统的专用驱动,这方面有些厂商做的非常出色,而另一些则 不怎么样,然而许多 PCI-E SSD 需要加载驱动才能够正常引导。

NVMe 标准的出现解决了这个问题,NVMe SSD 可以很方便的匹配不同的平台、系统,无需厂家提供相应的驱动就可以正常工作,目前 Windows、Linux、Solaris、Unix、VMware、UEFI 等都加入了对 NVMe SSD 的支持。当然 Intel 的产品拥有自己的驱动程序,不安装 Intel 驱动的话 SSD 能正常工作,但是性能不能完全发挥,之前测试 Intel 750 时就有这个问题,其他厂商的不知道怎么样。

发布者

胡中元

《中原驿站》站长

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注