NVMe的全称是“Non-Volatile Memory Express”,即非易失性存储器快速通道。它是一种用于连接计算机系统与闪存存储设备(如固态硬盘)之间的通信协议和接口标准。NVMExpress(NVM Express,简称NVMe)是一种行业标准的协议和接口规范,用于实现计算机系统与非易失性存储设备(如固态硬盘)之间的高性能、低延迟通信。
NVMe(Non-Volatile Memory Express)**是一个为现代存储设备(如固态硬盘、闪存)设计的高性能存储协议,它使用 PCIe(Peripheral Component Interconnect Express) 总线与系统进行通信。NVMe协议的目的是提供更低的延迟、更高的吞吐量和更强的并发能力,尤其适用于固态硬盘(SSD)。以下是 NVMe 标准发展过程中的主要时间线:
1. NVMe的初步构想与标准化(2009年 - 2012年)
-
2009年:
- NVMe的概念和标准化工作开始,由 NVMe工作组(由主要的硬件公司如英特尔、三星、美光等组成)发起。目的是为了解决传统的 SATA 和 AHCI 接口在支持闪存技术(尤其是PCIe SSD)时的性能瓶颈。基于PCIe总线的设计使得NVMe能够充分发挥闪存的高性能潜力。
-
2011年:
- NVMe 1.0版本发布。这个版本定义了一个新的存储协议,专为闪存设备设计,优化了在PCIe总线上传输数据的方式。NVMe协议通过减少与CPU的交互和内存延迟,大幅提升了存储性能,尤其是对于数据并行处理和低延迟操作。
-
2012年:
- NVMe 1.1 发布,主要对1.0版本进行了一些增强和改进,使得该协议更加稳定且易于实施,同时还增加了一些新的特性,如热插拔支持等。
2. NVMe的普及与市场应用(2013年 - 2015年)
-
2013年:
- NVMe协议逐渐被硬件厂商采纳,越来越多的 PCIe SSD 开始使用NVMe协议。这些设备的性能开始大幅超越传统的SATA接口硬盘,特别是在吞吐量和低延迟的应用中表现突出。
-
2014年:
- NVMe 1.2版本发布,进一步优化了协议,加入了更多对企业级应用的支持。该版本还加强了对多队列和队列深度的支持,使得NVMe在高并发和多任务环境中的表现更为出色。
-
2015年:
- NVMe协议得到了更广泛的支持,主要操作系统(如Windows 8.1、Windows 10、Linux)原生支持NVMe驱动程序。此时,NVMe的应用范围已不仅限于高端市场,也逐渐进入消费级市场。
3. NVMe的不断进化与扩展(2016年 - 2020年)
-
2016年:
- NVMe 1.3发布,改进了电源管理、错误处理、命令集等方面。NVMe在数据中心和企业级存储中获得了更广泛的应用,特别是在需要极高数据吞吐量的应用场景中,如高频交易、大数据分析等。
-
2017年:
- 随着PCIe 3.0的普及,NVMe协议的存储设备开始获得更高的带宽,性能进一步提升。同时,NVMe over Fabrics(NVMe-oF) 技术开始得到推广,这使得NVMe协议可以通过网络(例如以太网、InfiniBand)实现远程存储设备的高速访问。
-
2018年:
- NVMe 1.3a发布,主要修正了一些规范,并增加了对更高性能存储设备的支持,进一步推动了NVMe在企业级存储和数据中心中的应用。
-
2019年:
- NVMe 1.4版本发布,带来了显著的性能提升和优化,支持更多的硬件设备,特别是对于更高并发处理和低延迟操作的支持。同时,NVMe开始与 NAND闪存 和 3D XPoint 存储技术等更先进的存储介质相结合,进一步提高了存储设备的性能。
4. PCIe 4.0和PCIe 5.0时代(2020年 - 2025年)
-
2020年:
- PCIe 4.0标准发布,提供更高的带宽(16 GT/s每通道),这意味着NVMe 1.4协议的设备可以在带宽上获得进一步提升,支持更快的数据传输速率。许多新一代NVMe SSD开始支持PCIe 4.0,提供更快的读写性能。
-
2021年:
- NVMe 1.4a发布,进一步优化了对PCIe 4.0设备的支持,并增加了更多针对企业级存储和数据中心应用的特性。PCIe 4.0 NVMe SSD开始成为高性能计算、游戏以及大数据应用的标准存储解决方案。
-
2022年:
- PCIe 5.0标准发布,带来更高的带宽(32 GT/s每通道),进一步推动了NVMe存储设备的性能提升,尤其是在大规模数据中心和企业级应用中,带宽需求急剧上升。
-
2023年:
- NVMe 2.0发布。该版本为整个NVMe生态系统带来了重大的变化,新增了对 NVMe-oF 和 NVMe-MI(管理接口)技术的支持,为数据中心和企业级存储提供了更强的扩展性和管理功能。随着 PCIe 5.0 和 PCIe 6.0的发展,NVMe 2.0为存储设备提供了更加稳定和高效的支持。
5. NVMe的发展趋势与未来展望(2024年 - 2025年)
- 2024年 - 2025年:
- PCIe 6.0标准预计将推出,进一步提供更高的带宽(64 GT/s每通道)。NVMe设备将能够利用PCIe 6.0的带宽,支持更大规模的存储需求和更高性能的计算要求。未来,NVMe将成为所有存储设备,尤其是在数据中心、企业存储和高性能计算领域的标准协议。
时间线:
- 2009年 - 2012年:NVMe协议开始构思并发布1.0版本,目标是替代传统SATA接口,提供更高性能和更低延迟。
- 2013年 - 2015年:NVMe逐渐被硬件厂商和操作系统支持,开始进入消费级市场,逐步取代传统的SATA SSD。
- 2016年 - 2020年:NVMe协议继续更新和优化,支持更高带宽的 PCIe 3.0 和 PCIe 4.0。开始大规模应用于企业级存储和数据中心。
- 2021年 - 2025年:随着 PCIe 5.0 和 PCIe 6.0的推出,NVMe将支持更高的带宽和性能,进一步巩固其在高性能存储领域的主导地位。
NVMe协议从诞生至今已经成为现代存储技术的核心,尤其是在PCIe接口的加持下,NVMe为固态硬盘(SSD)提供了前所未有的性能提升。随着数据传输需求的不断增加,NVMe将继续演进,成为未来存储设备的标准协议。
NVMe(Non-Volatile Memory Express)**标准存储协议的完整逻辑链可以从协议的背景、设计理念、核心技术和各个层级的实现来梳理。下面是NVMe标准存储协议的完整逻辑链,包括从硬件到软件的各个方面。
1. 背景与动机
-
闪存存储的崛起: 随着固态硬盘(SSD)基于闪存(NAND Flash)的普及,传统的存储协议(如SATA和AHCI)无法充分利用闪存的性能优势。SATA和AHCI协议设计时主要考虑机械硬盘(HDD)的需求,造成了存储设备的性能瓶颈,尤其是在高并发、低延迟和高吞吐量的应用场景中。
-
PCIe总线的优势: 随着**PCIe(Peripheral Component Interconnect Express)**总线的普及,具有更高带宽和更低延迟的存储设备需求逐步增加。为了发挥PCIe的高带宽,新的存储协议必须具有更高的并行性和更低的延迟。
-
NVMe协议的设计目标: NVMe的设计目标就是为了充分利用闪存和PCIe的优势,减少延迟、提升并发性能并支持高吞吐量应用,最终推动数据存储技术的升级。
2. NVMe协议的基本架构
NVMe的架构分为多个层级,每个层级实现了不同的功能,确保高效的数据传输和处理。
2.1 硬件层(Physical Layer)
-
物理接口(PCIe):NVMe通过PCIe总线连接到计算机系统。PCIe提供高带宽、低延迟和并行通信通道,是NVMe协议的基础。
-
存储介质(NAND Flash等):NVMe设备通常使用NAND闪存作为存储介质,也可以使用其他非易失性存储技术(如3D XPoint等)。这些存储介质提供了高性能的随机读写能力。
2.2 控制器层(Controller Layer)
-
NVMe控制器:控制器负责管理存储介质与系统之间的数据交互。NVMe控制器将存储命令转换为设备能够理解的格式,并负责处理数据的读写操作。
-
多队列与并行处理:NVMe控制器支持多队列和深度队列(最多64K队列,每队列最多64K条命令),支持并发操作,极大提高了I/O处理效率。
2.3 软件层(Software Layer)
-
驱动程序(Driver):操作系统需要为NVMe设备提供相应的驱动程序。驱动程序使操作系统能够通过标准接口与硬件设备进行通信,并向设备发送存储请求。
-
操作系统支持:为了更好地支持NVMe协议,现代操作系统(如Windows、Linux等)都原生支持NVMe驱动,能高效管理多队列并发存储操作。
-
协议层(NVMe Command Set):NVMe命令集定义了不同的存储命令,如读取、写入、数据迁移等操作。这些命令支持低延迟和高并发的处理,使得存储设备可以在更短的时间内完成更多操作。
2.4 数据传输层(Data Transfer Layer)
-
NVMe传输协议:NVMe传输协议采用了块设备的标准协议,使用标准的读/写命令来进行数据传输,支持高效的数据传输路径和直接内存访问(DMA)。
-
数据流管理:数据流通过PCIe总线进行传输,采用DMA技术,减少了CPU的干预,从而降低了延迟和提升了数据吞吐量。
3. NVMe的关键特性
3.1 高并发性能
-
NVMe支持多个I/O队列(最多64K个队列)和每个队列最多64K条命令。这使得它能够在高并发环境下保持高性能。
-
比起SATA或SAS,NVMe的I/O队列深度显著提升,能够更高效地处理大规模的数据并发请求。
3.2 低延迟
- NVMe协议的低延迟是其重要特性之一。通过减少与CPU的交互、直接利用内存和PCIe总线的高速连接,NVMe显著降低了数据传输的延迟。
3.3 高吞吐量
- NVMe充分利用PCIe总线的带宽(例如PCIe 3.0提供的每通道8GT/s的带宽)来实现大规模的数据传输。PCIe 4.0和PCIe 5.0进一步提供了更高的带宽,支撑着更高性能的存储设备。
3.4 能效与电源管理
- NVMe协议具备优化的电源管理功能,例如支持设备的待机模式、休眠模式等,以减少功耗,尤其是在移动设备中具有重要意义。
4. NVMe的扩展与发展
4.1 NVMe over Fabrics(NVMe-oF)
- NVMe-oF技术允许NVMe设备通过网络进行连接,使得远程存储设备也能享受NVMe的性能。它可以通过InfiniBand、以太网等多种网络协议实现,并广泛应用于高性能计算和数据中心领域。
4.2 NVMe-MI(Management Interface)
- NVMe-MI是一个管理接口,使得用户能够通过标准化的接口对存储设备进行远程管理,实时获取设备的状态信息、性能指标等。
4.3 进阶协议与标准
- 随着数据存储需求的不断增长,NVMe标准不断扩展。例如,NVMe 1.4和NVMe 2.0引入了更多的功能和优化,以便更好地适应现代存储系统的要求。
4.4 高性能与企业级存储
- NVMe特别适用于大数据分析、人工智能、云计算等需要大量存储吞吐量和低延迟的应用。数据中心和企业级存储系统广泛采用NVMe技术,支持高效的存储解决方案。
5. NVMe的演化与未来
-
随着PCIe 5.0和PCIe 6.0的推出,NVMe协议的性能将进一步提升,支持更高的带宽和更低的延迟。这使得NVMe将成为存储设备的标准协议,尤其是在高速计算和数据处理领域。
-
NVMe将继续向数据中心、高性能计算和超大规模存储系统扩展,并结合更先进的存储介质(如3D NAND、QLC NAND、3D XPoint等)为用户提供极致的存储性能。
NVMe标准存储协议从硬件到软件层面形成了一个完整的逻辑链。它通过优化硬件接口、存储命令、驱动程序和数据传输路径,解决了传统存储协议在面对现代闪存和高性能存储需求时的局限性。NVMe协议的核心优势在于低延迟、高吞吐量和高并发处理能力,使得它成为现代存储技术的基石。随着技术的不断发展,NVMe协议也在不断拓展应用领域,支持更多的高性能和企业级存储需求。
NVMe的全称是“Non-Volatile Memory Express”,即非易失性存储器快速通道。它是一种用于连接计算机系统与闪存存储设备(如固态硬盘)之间的通信协议和接口标准。NVMe旨在提供高性能、低延迟和高并发性能,以优化闪存存储器的使用。相比于传统的SATA接口,NVMe能够更好地发挥固态硬盘的潜力,并提供更快的数据传输速度和更低的延迟。
![image]()
NVMExpress(NVM Express,简称NVMe)是一种行业标准的协议和接口规范,用于实现计算机系统与非易失性存储设备(如固态硬盘)之间的高性能、低延迟通信。
NVMe利用高速串行计算机扩展总线(PCIe)进行数据传输,以提供更高效、直接的存储设备与CPU之间的连接。相比传统的存储接口如SATA,NVMe大幅提高了数据传输速度,降低了延迟。
NVMe协议支持更多的每秒输入/输出操作(IOPS),实现更快的数据访问速度和整体系统性能提升。它还包括多个输入/输出队列、命令并行处理和高效的功耗管理等特性。
使用NVMe需要满足以下条件:
**系统支持NVMe**:确保主板、芯片组和BIOS能够支持NVMe设备。现代的计算机系统通常会提供对NVMe的支持。
**使用NVMe设备**:购买一块符合NVMe规范的固态硬盘,并将其安装在计算机中。这些设备通常以M.2或U.2接口的形式出现。
**安装驱动程序**:有些操作系统可能需要安装特定的NVMe驱动程序才能正常识别和使用NVMe设备。大多数现代操作系统(如Windows 10、macOS、Linux等)已经内置了对NVMe的驱动支持。
使用NVMe设备时,一般的步骤如下:
确保计算机已经正确安装了NVMe设备。
启动计算机,并确保操作系统能够识别并正确驱动这些设备。
根据需要,将NVMe设备分区或格式化。
可以像使用其他存储设备一样,通过文件资源管理器或命令行终端访问和管理NVMe设备。
注意在使用NVMe设备时,及时进行数据备份以防止意外数据丢失。
总之,NVMExpress(NVMe)是一种高性能、低延迟的存储设备与计算机系统之间通信的标准规范。要使用NVMe,需要确保计算机系统支持NVMe,并安装正确的驱动程序。然后,可以像使用其他存储设备一样,访问和管理NVMe设备。
------------
NVMe协议的不同版本带来了一系列的功能更新和改进。下面是几个主要的NVMe协议版本及其功能更新的简要介绍:
NVMe 1.0:
基本功能:最初的NVMe规范,提供高性能、低延迟的存储访问接口。
特点:支持多线程命令处理、多个命令队列和映射等功能。
NVMe 1.1:
增加了一些新功能和改进:
杂项命令:引入了Miscellaneous Commands,允许进行设备重置和自我诊断等操作。
自适应功耗管理:支持功耗优化,以提高设备的节能性能。
NVMe 1.2:
引入了几项重要的新功能:
名称空间管理:允许创建、删除和管理命名空间。
带宽盲区通知:提供了对带宽盲区事件的通知能力。
混杂命令警告:用于向主机报告在处理命令时发现的异常情况。
NVMe 1.3:
主要功能更新包括:
周期性性能更新:引入了命令中的运行时更新,使主机可以更新设备的性能特性。
带宽盲区优化:通过提供更多的带宽应用情况信息来改进带宽盲区通知。
增强的安全性:引入了数据加密和保护功能,包括命名空间级的加密和身份验证。
NVMe 1.4:
包含了以下一些重要的新增功能:
带宽聚合:支持多个NVMe设备共享一个PCIe带宽以提高总体性能。
名称空间容错:引入了名称空间的冗余机制,以在设备故障时提供恢复和持久性。
可管理性增强:提供了更丰富的设备诊断和管理功能。
NVMe 1.4.1:
对NVMe 1.4的补充和修订版,增加了一些新功能和修复了一些问题。
引入了对命名空间资源的管理改进,允许动态分配和释放命名空间。
添加了对自适应功耗管理的更新,包括新增的功耗管理状态和命令。
NVMe 1.4.2:
对NVMe 1.4.1的补充和修订版,引入了一些更新和修复。
增加了对时间戳特性的支持,用于在命令和错误报告中提供时间信息。
提供了有关链路速度变化的通知能力,支持链接层的动态带宽管理。
NVMe 1.4.3:
是对NVMe 1.4.2的更新版本,包含了一些新功能和修订。
引入了设备监控特性,允许主机获取和记录设备的运行状况信息。
添加了对安全擦除操作的支持,用于确保已删除数据的彻底擦除。
NVMe 2.0:
这是目前最新的NVMe协议版本,于2021年发布。
引入了许多新的功能和增强:
Zoned Namespace:支持按磁盘区域划分的命名空间,提高了存储效率和性能。
IO Determinism:提供一种确定性的I/O执行模式,可预测性能和延迟。
增强的安全性:进一步加强了数据保护和设备身份验证的功能。
增加了对更高速率连接的支持,如PCIe Gen4和PCIe Gen5。
提供了更多的管理和诊断功能,以改善设备的可用性和可维护性。
NVMe 2.0a:
这是对NVMe 2.0的增补版本,在2022年发布。
主要是修复了先前版本中发现的一些问题,并提供了一些小的改进和调整。
除了之前提到的NVMe协议版本,目前还没有其他较新的官方发布的NVMe协议版本。NVMe 2.0是目前最新的版本,于2021年发布,并在2022年进行了一次增补版本(2.0a)。这些版本已经引入了许多新功能、增强和修复。
然而,需要注意的是,随着技术的进步和行业需求的变化,未来可能会有新的NVMe协议版本发布。这些新版本可能会带来更多的功能改进、性能提升以及新的特性。为了获取最新信息,请及时关注NVMe论坛、NVMe规范文档以及相关厂商和组织的官方公告。