一篇文章讲清什么是NVMe

NVMe硬盘通过多队列机制,极大提升了数据读写速度,读带宽可达3200MB/s,写带宽达1200MB/s,IOPS高达50万。相比SATA接口,NVMe利用PCIe接口实现更快的数据传输,适用于高性能计算场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为NVMe的出现,硬盘的性能得到了极大的提升。这个极大是多少呢?读带宽从500MB/s提高到了3200MB/s,写带宽从400MB/s提高到了1200MB/s左右。而读IOPS则达到了50万,甚至更高。也就是说,现在一块基于NVMe的SSD硬盘的性能比一个企业级磁盘阵列还要好。

牛皮吹了这么多,那到底什么是NVMe呢?NVMe的全称是Non-Volatile Memory Express,如果翻译过来就是非易失性内存主机控制器接口规范。你可能还是一头雾水,那我们上搜索引擎搜索一下这个关键词,可能会得到如下图片。

 

一篇文章讲清什么是NVMe

图1 NVMe存储

废话说了半天,到底什么是NVMe呢?首先它是一种接口规范,其次它是用于存储设备的接口规范。准确的说是目前最新的存储设备通信协议。这个协议就好比SAS和SATA一样,用于定义硬件接口和传输协议

关于存储的几个概念

为了彻底搞清楚什么是NVMe,我们先理清楚几个关于存储的概念。

尺寸外形:也就是设备的形状和大小,通常存储设备的尺寸外形包括如下:

  • 2.5寸或者3.5寸驱动器(在SFF标准中定义)
  • M.2 和 PCI Express(PCIe)(在PCI-SIG标准中定义)

接口:也就是设备如何与计算机通信。常见的存储设备接口包括:

  • SATA接口,通常用于2.5寸和3.5寸硬盘,有时候一些M.2设备也会使用
  • PCI Express(PCIe)接口, 用于M.2和PCIe设备
  • SAS(串行SCSI)和FC(Fibre Channel)接口,仅用于服务器领域和数据中心
  • PCIe接口要比SATA接口快的多,SATA3最大带宽是6Gb/s,而基于4X PCIe的M.2接口最大可以达到32Gb/s。

协议:定义了如何在计算机与设备之间传输数据。常见的协议包括:

  • 用于SATA接口的AHCI或者ATA协议,
  • 用于PCIe接口的NVMe协议

到这里我们应该比较清晰了,NVMe是运行在某种接口上的通信协议,用于规范计算机与存储设备的数据传输。上述设备尺寸、接口和协议通常是可以组合的。下面是常见的集中组合形式。

  • 一个2.5寸SSD硬盘,基于SATA接口,通信协议是AHCI或者ATA。具体设备大概如图2所示。

 

一篇文章讲清什么是NVMe

图2 SATA接口的SSD

  • 一个M.2的SSD, 基于PCIe接口,通信协议是NVMe。具体设备大概如图3所示。

一篇文章讲清什么是NVMe

图3 M.2的SSD

  • 一个PCIe的SSD,基于PCIe接口,通信协议是NVMe。具体设备大概如图4所示。

一篇文章讲清什么是NVMe

图4 PCIe的SSD

这里只是给出了几个具体的例子,便于大家理解接口、设备和协议的关系。具体来说,还有其它很多种组合形式,本文不在赘述。

为什么NVMe会这么快

上面我们介绍了什么是NVMe,下面本文将介绍一下为什么NVMe如此之快(注意:这里说的快是基于SSD设备的,如果是机械硬盘则不然)。由于SSD本身的物理特性,其数据的访问已经非常快了,性能的瓶颈就是出在计算机与设备连接的接口和协议上面。

我们举一个简单的例子。比如我们有一个仓库会不断的生产出产品来,我们可以机械手将产品从仓库拿到其它地方(如图5所示)。对于SATA的SSD,类似于一个单臂的机器人,仓库生产的很快,但机器人每次只能拿一个,搬移的速度就比较慢。

 

一篇文章讲清什么是NVMe

图5 单臂机器人

然而对于基于NVMe的SSD呢?相当于这个机器人长了数百只手,这样速度显然就比前者快的多了。

 

一篇文章讲清什么是NVMe

图6 多臂机器人

NVMe协议的原理也是如此,它本质是上建立了多个计算机与存储设备的通路,这样搬运数据的速度自然就提高了。在NVMe协议中,多个通路其实就是多个队列,具体如图7所示。在SATA中计算机与存储设备只能有一个队列,即使是多CPU情况下,所有请求只能经过这样一个狭窄的道路。而NVMe协议可以最多有64K个队列,每个CPU或者核心都可以有一个队列,这样并发程度大大提升,性能也自然更高了。

 

一篇文章讲清什么是NVMe

图7 NVMe的多队列

今天只是一个入门,后面我们再详细的介绍关于NVMe的更多内容。如果觉得不错,还请大家关注本号,如果觉得太烂,还请下面留言

<think>好的,我现在需要帮助用户了解NVMe的定义、用途以及其工作原理。首先,我需要从用户提供的引用中提取相关信息,并按照他们的要求组织答案。 首先,用户提到了系统级指令,要求使用行内数学表达式用$...$,独立公式用$$...$$,但根据引用内容,NVMe相关的描述可能不涉及太多数学公式,所以可能需要检查是否有必要使用这些格式。不过,根据示例中的快速排序,可能用户希望保持结构清晰,但这里的技术内容可能不涉及数学公式,所以可能不需要特别处理,但需要确保正确使用LaTeX语法。不过,在引用中并没有明显的数学表达式,所以可能这部分可以忽略,但需要保持其他格式要求,如代码块和引用标识。 接下来,用户要求生成相关问题,并按照示例中的结构来组织回答。需要先回答用户的问题,然后列出相关问题。回答需要结构清晰,分步骤说明,引用站内资料,并在末尾添加引用标识。 从引用内容来看: - 引用[1]提到NVMe的定义,与SATA和SAS的区别,NVMe的重要性,以及NVMe over Fabrics。 - 引用[2]强调NVMe的性能优势和管理工具。 - 引用[3]涉及NVMe的安全特性。 - 引用[4]讨论NVMe SSD的结构和NAND-Flash原理。 - 引用[5]详细描述了NVMe的工作流程,包括队列和门铃寄存器等机制。 用户的问题分为两部分:NVMe的定义和用途,以及工作原理。需要综合这些引用内容来组织回答。 首先定义NVMe:根据引用[1],NVMe(非易失性内存主机控制器接口规范)是一种针对SSD设计的先进接口协议,用于通过PCIe总线高效访问存储设备。引用[2]提到它提供高性能和低延迟。 用途方面,引用[1]提到NVMe的重要性在于解决传统接口瓶颈,提升性能,适用于高性能计算、云计算等场景。引用[4]提到NVMe SSD的结构,可能用途包括需要高速读写的应用。 工作原理部分,引用[5]详细描述了工作流程,包括提交队列、门铃寄存器、完成队列等机制。需要将这些步骤简化说明,并可能结合引用[2]中提到的命令格式和管理工具。 需要确保回答中引用的每个段落末尾添加引用标识,例如[^1],[^2]等。同时生成的相关问题应基于引用内容,例如NVMe与其他接口的区别、工作流程步骤、优化方法、应用场景等。 现在组织回答的结构: 1. NVMe的定义:来自引用[1]和[2]。 2. NVMe的用途:来自引用[1]的高性能需求场景。 3. 工作原理:引用[5]的工作流程步骤,可能结合引用[4]的NAND-Flash结构。 4. 其他特点:如引用[3]的安全特性。 然后生成相关问题,例如与其他接口的区别、工作流程、优化、应用场景、安全机制等。 需要确保使用中文,结构清晰,分点说明,并正确添加引用。</think>### NVMe技术介绍及工作原理 #### **1. NVMe的定义** NVMe(Non-Volatile Memory Express,非易失性内存主机控制器接口规范)是一种专为固态硬盘SSD)设计的先进接口协议,旨在通过PCIe(Peripheral Component Interconnect Express)总线实现高效的数据传输。它解决了传统接口(如SATA、SAS)在延迟和吞吐量上的瓶颈,显著提升了存储设备的性能。 #### **2. NVMe的主要用途** - **高性能场景**:适用于需要低延迟和高吞吐量的场景,如数据库、实时数据分析、高性能计算(HPC)和云计算。 - **企业级存储**:支持NVMe over Fabrics(NVMe-oF),可将SSD通过网络连接到远程服务器,扩展存储资源的共享能力[^3]。 - **终端设备**:M.2 NVMe驱动器广泛应用于笔记本电脑和超薄设备,提供更快的系统响应速度。 #### **3. NVMe的工作原理** NVMe通过以下核心机制实现高效通信: **(1)队列机制** - **提交队列(Submission Queue)**:主机将I/O指令(如读、写)写入提交队列。 - **完成队列(Completion Queue)**:SSD执行完指令后,将结果写入完成队列并通知主机[^5]。 **(2)门铃寄存器(Doorbell Register)** - 主机通过更新门铃寄存器通知SSD有新指令待处理;SSD执行完成后,通过中断信号通知主机读取完成队列。 **(3)并行处理能力** - NVMe支持多达64K个队列,每个队列可包含64K条指令,充分利用多核CPU和SSD的并行处理能力,减少延迟[^5]。 **(4)协议优化** - 相比SATA的AHCI协议,NVMe协议精简了命令层,减少数据传输的协议开销,提升效率。 #### **4. 其他关键技术特性** - **安全机制**:支持NVMe over Fabrics的身份验证和带内加密,确保数据传输的安全性。 - **NAND Flash基础**:依赖NAND闪存结构,通过电荷存储数据,但需管理写放大问题以延长寿命[^4]。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据存储张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值