什么是nvme协议?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是nvme协议?相关的知识,希望对你有一定的参考价值。

1NVMe协议的定义及特点
在过去的2016年,几乎全球所有的存储大厂都推出了基于NVMe协议的固态硬盘产品,一时间NVMe协议几乎成为了行业最为热门的词汇。

那么,NVMe协议到底是什么?它和传统的AHCI协议又有哪些异同?下面,我们一起来看。

NVMe协议的定义及特点

NVMe,全称为Non-Volatile Memory Express,我们拆开翻译,Non-Volatile Memory中文译名为非易失性存储器。

熟悉存储的都知道,存储器根据断电后是否能够存储数据为标准分为易失性和非易失性,我们常用的优盘、闪存卡等存储产品就是非易失性存储器,当然固态硬盘产品也是非易失性存储器了。而此处的Express,就是类似于PCIe中那个e,指的是通道或是规范。

文章图片1
NVMe是基于非易失性存储器的传输规范

一般常识性的理解,NVMe是一种基于非易失性存储器的传输规范,NVMe规范由包含90多家公司在内的工作小组所定制,Intel是主要领头人,小组成员包括美光、戴尔、三星、Marvell、NetAPP、EMC、IDT等公司。

此规范目的在于充分利用PCI-E通道的低延时以及并行性,还有当代处理器、平台与应用的并行性,在可控制的存储成本下,极大的提升固态硬盘的读写性能,降低由于AHCI接口带来的高延时,彻底解放SATA时代固态硬盘的极致性能。

就存储整个流程来说,NVMe不仅仅是逻辑上的协议接口,还是一种指令标准,一种指定协议,它的出现彻底颠覆了存储行业长期以来以ATA为核心底层的存储逻辑,掀起了一场实至名归的存储革命。

2NVMe协议和SATA的异同及小结
NVMe协议和SATA的异同

SATA是一种物理接口类型,执行的AHCI协议标准,是目前最为廉价和常见的固态硬盘接口,缺点便是有着6Gbps的极限读写限制,无法满足专业领域对于无延时、极致读写的要求。

文章图片2
NVMe协议和SATA的异同

PCIe实际上是通道协议,在物理表现上就是主板上那些PCIe接口。这些通道协议,属于总线协议,能够直接连接CPU,因而几乎没有延时,成为NVMe标准的绝佳伴侣。而在AHCI标准时代,受制于协议,几乎无法发挥PCIe的实际性能,同时根据传输速度不同,PCIe还可分为X2/X4/X8。

M.2接口,在固态硬盘领域,更多的是用于和传统的SATA固态硬盘进行区分的名词。根据主控执行的协议不同,M.2接口又分为NVMe协议以及AHCI协议的固态硬盘。根据协议不同,M.2固态硬盘在性能上也会有着相当的差异。
参考技术A

nvme :

NVMe协议是在PCIe SSD开始大量出现在市场上后,因为各个厂家的私有协议不具有兼容性,无法和现有操作系统无缝衔接,INTEL为了统一接口协议建立生态,而在2011年发布了NVMe协议。

参考技术B nvme协议全称为Non-VolatitControllerInterface高级主机控制接口,既是一种接口也是一种协议,同样的也是由Intel研发并主导的技术,它的出现让固态硬盘产品性能实现了大跨越,根据测试结果,AHCI的出现提升了固态硬盘产品性能至少30%,也是目前最为主流的固态硬盘接口协议。硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据。不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的优劣直接影响着程序运行快慢和系统性能好坏。从整体的角度上,硬盘接口分为IDE、SATA、SCSI和光纤通道四种。从整体的角度上,硬盘接口分为IDE、SATA、SCSI和光纤通道四种,IDE接口硬盘多用于家用产品中,也部分应用于服务器,SCSI接口的硬盘则主要应用于服务器市场,而光纤通道只用于高端服务器上,价格昂贵。SATA主要应用于家用市场,有SATA、SATAΙΙ、SATAΙΙΙ,是现在的主流。

NVMe 是什么

NVMe(非易失性存储器快速)是一种主机控制器接口和存储协议,用于通过计算机的高速外围组件互连高速(PCIe)加速企业和客户端系统与固态硬盘(SSD)之间的数据传输总线。

NVMe SSD

NVMe 规范定义了基于 PCIe 的 SSD 的寄存器接口,命令集和功能集合,其目标是在各种 NVM 子系统中实现高性能和互操作性。NVMe 规范没有规定最终使用模型,例如固态存储,主存储器,高速缓冲存储器或备份存储器。

NVMe 提供了小型计算机系统接口(SCSI)标准和高级技术附件(ATA)标准的替代方案,用于在主机系统和外围目标存储设备之间连接和传输数据。与串行 ATA(SATA)SSD 一起使用的 ATA 命令和用于串行连接 SCSI(SAS)SSD 的 SCSI 命令集是在硬盘驱动器(HDD)和磁带作为主要存储介质的时候开发的。NVMe 设计用于更快的媒体。

与基于 SAS 和 SATA 的 SSD 相比,基于 NVMe 的 PCIe SSD 的主要优点是减少了主机软件堆栈的延迟,提高了每秒输入/输出操作(IOPS),并可能降低功耗,具体取决于外形尺寸和正在使用的 PCIe 通道数。

NVMe 可以支持使用不同类型的非易失性存储器的 SSD,包括 NAND 闪存和 Intel 和 Micron Technology 开发的 3D XPoint 技术。支持的外形包括附加 PCIe 卡,M.2 SSD 和 U.2 2.5 英寸 SSD。NVMe 参考驱动程序适用于各种操作系统,包括 Windows 和 Linux。

NVMe 的工作原理
NVMe 通过 PCIe 接口将 I / O 命令和响应映射到主机中的共享内存。NVMe 接口支持与多核处理器的并行 I / O,以实现高吞吐量并缓解中央处理单元(CPU)瓶颈。

与 SCSI 和 ATA 命令集相比,NVMe 提供了更简化的命令集来处理 I / O 请求。对于 SAS 设备,NVMe 所需的 CPU 指令数量少于 SCSI 命令集的一半,而 ATA 命令集则使用 SATA 驱动器。

NVMe 在单个消息队列中支持 64,000 个命令,最多支持 65,535 个 I / O 队列。相比之下,SAS 设备通常最多支持 256 个命令,SATA 驱动器在一个队列中最多支持 32 个命令。

但是,基于 NVMe 的 PCIe SSD 目前比同等容量的基于 SAS 和 SATA 的 SSD 更昂贵,而高端企业 NVMe SSD 可能比 SAS 或 SAS SSD 消耗更多功率。SCSI 贸易协会声称,更成熟的 SAS 固态硬盘比 NVMe PCIe 固态硬盘具有更多优势,例如更高的可扩展性,热插拔性和经过时间考验的故障转移功能。NVMe PCIe SSD 还可以提供许多应用程序不需要的性能级别。

NVM Express 的历史
非易失性存储器主机控制器接口(NVMHCI)工作组于 2009 年开始开发 NVMe 规范,并于 2011 年 3 月 1 日发布了 1.0 版本.1.0 规范包括排队接口,NVM 命令集,管理命令集和安全性特征。

NVMHCI 工作组(通常称为 NVM Express 工作组)于 2012 年 10 月 11 日发布了 NVMe 规范的更新.NVMe 1.1 增加了对具有多个 PCIe 端口的 SSD 的支持,以支持多路径 I / O 和命名空间共享。其他新功能包括空闲时间内的自动电源状态转换,以减少能量需求和保留,允许两个或多个主机协调对共享命名空间的访问,以提高容错能力。

NVM Express 工作组于 2013 年 5 月举办了第一次即插即用活动,使公司能够测试其产品是否符合 NVMe 规范,并检查与其他 NVMe 产品的互操作性。

NVMe 1.2 规范于 2014 年 11 月 3 日出现,其增强功能包括支持实时固件更新,改进的电源管理以及端到端数据保护选项。

2015 年 11 月 17 日,NVM Express 组织批准了 1.0 版本的 NVM Express 管理界面(NVMe-MI),以提供一种架构和命令集来管理带外的非易失性存储器子系统。NVMe-MI 使管理控制器能够执行诸如 SSD 设备和功能发现,健康和温度监控以及无中断固件更新等任务。如果没有 NVMe-MI,IT 经理通常依靠专有的供应商特定管理接口来管理 PCIe SSD。

NVMe 1.3 功能增强功能
NVM Express 于 2017 年 6 月发布了 NVMe 1.3。重点介绍了 sanitize,一种称为指令的新框架和虚拟化增强功能。

根据 NVM Express 参考表,在清理操作中,NVMe 子系统中的所有用户数据都被修改,以便“无法从任何缓存,非易失性介质或控制器内存缓冲区”进行恢复。当 SSD 被淘汰或重新用于新用例时,建议使用清理操作。清理模式包括 NAND 媒体上的低级块擦除,加密擦除以更改媒体加密密钥和覆盖。

Directives 框架定义了主机和 NVMe 子系统之间的数据交换机制。这样可以实现每 I / O 命令标记,并使 IT 管理员能够配置可报告的属性和设置。

Directives 的首次使用是一项称为 Streams 的功能,用于优化数据放置以提高 NAND SSD 的耐用性和性能。传统上,在将新数据写入 SSD 之前,必须首先擦除大块数据。

Streams 功能使主机能够使用“流标识符”来指示属于一组关联数据的特定存储逻辑块。这使得能够用存储在其他位置的相关数据标记读取或写入。

虚拟化增强功能定义了 NVMe 闪存如何在存在物理和虚拟控制器的共享存储环境中使用,包括主存储控制器和辅助存储控制器。NVM Express 表示,其目标是使开发团队能够将特定的 SSD 专用于特定的虚拟机。

下一个 NVMe 版本预计在 2018 年或 2019 年。路线图项目包括改进的 NVMe SSD I / O 确定性,持久控制内存缓冲支持和 SAN 多路径。预计的 NVMe over Fabrics 路线图项目包括身份验证,增强发现和传输控制协议传输支持。

以上是关于什么是nvme协议?的主要内容,如果未能解决你的问题,请参考以下文章

x79主板不刷bios支持nvme协议吗

nvme是啥意思

AHCI协议NVME协议SATA总线PCIe总线SATA接口PCIe接口M.2接口

老电脑怎么装m2协议

什么是NVMe硬盘?

iPhone上用的NVMe闪存,与Android旗舰上用的UFS2.1闪存,各自的优劣是什么?