什么是 NVMe?

你可以在网上购买 SSD,但你面临着一个缩略词的选择,如 M.2 SSD,PCIE SSD 和 NVME SSD。NVME 是 Non-Volatile Memory Express 的缩写,NVMe 是 2013 年推出的笔记本电脑和台式机的存储接口。计算机主板上的 Express (PCIe) 接口。)

图片[1] - 什么是 NVMe? - 某研究院

该接口是由英特尔、三星、Sandisk、戴尔和希捷等供应商联盟专门为 SSD 开发的,以克服受旧 SATA 连接影响的速度瓶颈。 

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

即使对于持久内存技术,NVMe 也能实现快速数据访问。但是它是如何工作的,NVM Express 还提供哪些其他优势?

从硬盘到固态硬盘

传统上,在计算机的易失性主存储器(随机存取存储器,内存条)和非易失性大容量存储器(硬盘)之间进行了区分。虽然计算机的内存在关闭时会丢失其内容,但硬盘大容量存储设备的内容会保留下来。随着计算机技术早期使用穿孔卡以及随后广泛使用的磁带存储系统,旋转硬盘(硬盘驱动器,HDD)已成为大容量存储的标准设备。

内存和硬盘的分离伴随着截然不同的访问时间。访问内存中顺序存储的数据所需的时间约为从传统硬盘读取相同数据所需时间的百分之一。只有随着移动设备的广泛使用和固态驱动器 (SSD) 的出现,这种动态才得以扩展。

现在,固态硬盘广泛安装在笔记本电脑和台式电脑中,被称为连续存储介质。数据存储完全是电子的,没有移动部件 – 从处理器寄存器到 L1 和 L2 缓存,再到 SSD 大容量存储设备。然而,对 SSD 的数据访问在很大程度上依赖于为旋转 HDD 优化的协议,例如串行 ATA (SATA)。

图片[2] - 什么是 NVMe? - 某研究院

NVM Express 如何工作?

NVM Express 是第一个专为非旋转、基于 SSD 的大容量存储设备开发的协议。它继承了历史悠久的软件接口 SATA 和 AHCI。特别是最初用于与 SSD 内部通信的 SATA,很快发展成为瓶颈:现代 SSD 能够实现比 SATA 协议允许的更高的数据吞吐量。借助专为 SSD 介质优化的非易失性存储器 Express 接口,SSD 可以充分发挥其潜力。

现有的PCI Express(Peripheral Component Interconnect Express,PCIe)标准优选用于将 SSD 海量存储设备连接到主板。例如,显卡和其他硬件通过 PCIe 连接。PCIe 是物理接口。作为一种协议,NVMe 呈现为针对非易失性 SSD 进行优化的逻辑对应物。这意味着操作系统端的单个驱动程序足以解决不同制造商的所有 NVM Express 兼容 SSD。

NVM Express 协议的命令集

软件协议用于构建数字通信,即数据交换。该协议定义了一组命令,用于确定各个通信伙伴之间使用的语言。非易失性存储器快速协议使用仅包含 13 个命令的精简指令集。

仅十个管理命令是强制性的:

  • 创建 I/O 提交队列
  • 删除 I/O 提交队列
  • 创建 I/O 完成队列
  • 删除 I/O 完成队列
  • 获取日志页面
  • 确认
  • 中止
  • 设置功能
  • 获取功能
  • 异步事件请求

还需要三个 I/O 命令:

  • 读取
  • 写入
  • 缓冲

使用非易失性存储器 Express 创建和处理命令

现代硬盘驱动器有多个旋转磁盘。每个磁盘通常使用两个读/写磁头。读/写磁头都连接到单个可移动的读/写臂上。由于这种物理安排,HDD 及其协议均未针对大规模并行数据访问进行优化。

完善的 SATA 协议有一个命令队列,可以一个接一个地执行硬盘命令。另一方面,非易失性内存快速协议支持 64,000 个队列,每个队列最多 64,000 个命令。这确保了高度的数据访问并行性,从而导致高数据吞吐率和低延迟。

与 HDD 相比,SSD 不是按顺序读写数据;对 SSD 的数据访问在每个位置都与随机访问主存储器一样快。

使用 NVMe 的协议命令根据以下模式创建和处理:

  • 主机传输 I/O 提交队列
  • 控制器调用 I/O 提交队列
  • 控制器运行 I/O 提交队列
  • 控制器传输 I/O 完成队列
  • 主机接收 I/O 完成队列

NVMe 有什么优势?

NVM Express 的优势在于它使用现有的 PCIe 标准和针对现代固态存储的优化协议。专为 SSD 操作量身定制的精益协议命令集,在读取和写入数据时降低了开销。直接使用 PCIe 意味着不需要协议转换器,从而降低延迟。

由于命令队列是并行处理的,因此连接到 NVMe 的 SSD 可以充分发挥其性能潜力。NVMe 设备还可以在专业托管和高性能计算环境中通过多路径连接。在这里,NVMe 设备通过计算机基础设施内的多条并行数据线连接。如果线路出现故障,设备仍然可以访问。NVMe 设备也支持热插拔;如果存储介质完全失效,可以在运行过程中进行更换。

NVMe 在哪里使用?

现在几乎所有的计算机系统都使用 NVM Express。从笔记本电脑和台式机到服务器和工作站再到超级计算机:通过 NVMe 连接的快速 SSD 存储介质无处不在。

非易失性存储器表达协议的另一个有趣的发展是“NVMe over Fabrics”。在这里,不是直接物理连接,而是使用网络连接通过网络寻址 NVMe 固态存储器。通过这种方式,可以实现 SSD 介质的集合,从而提供大量存储空间和较短的访问时间。

对于想要更换硬盘的用户,如果您的设备支持 NVMe,那么您在选购硬盘的时候可以考虑这种类型的存储设备,而并不推荐使用传统的机械硬盘。

上述文章内容对于计算机硬件不敢兴趣的用户可能会感觉到一脸懵逼,没关系,您只需要知道传统硬盘和支持 NVMe 协议的硬盘相比,NVMe 速度更快更好即可。

© 版权声明
THE END
喜欢就支持一下吧
点赞33
分享
评论 抢沙发

请登录后发表评论