谈到出众的存储技术,NVMe 可谓独领风骚。
看一眼,就会发现 NVMe 与 SATA 之间存在惊人的性能差别。
NVMe 与 SATA 各自采用的通信驱动程序和接口完全不同,其中 SATA 采用的 AHCI 驱动程序是为采用旋转技术的机械硬盘设计的
而 NVMe 驱动程序专为采用闪存技术的固态硬盘设计。
此外,NVMe 能够利用 PCIe 插槽,在存储接口与系统 CPU 之间进行通信,从而实现更高利用率。
乍看之下,两者速度都快,但对这两类固态硬盘做一番比较,就能发现差距所在。
SATA 固态硬盘
串行 ATA (SATA) 技术在 2000 年推出,对当时的并行 ATA 技术进行了改进。
PATA 在电缆尺寸、成本、性能和功能存在局限性。
这两项技术足够机械硬盘 (HDD) 使用,机械硬盘的表现远远落后于今天的固态硬盘 (SSD)。
后来出现基于 SATA 的固态硬盘,证明了 ATA 总线已达到性能极限。
机械硬盘只能实现 50-120 MB/秒的写入速度,而固态硬盘能达到 550 MB/秒的 SATA 总线极限值。
尽管存在总线限制,使用基于 SATA 的固态硬盘替代旧机械硬盘技术,整体系统性能通常会提升 10 至 15 倍。
AHCI
高级主机控制器接口 (AHCI) 是在 2004 年前后推出的一种通信模式,用于改善由 SATA 连接的存储设备的性能和利用率。
它专为机械硬盘设计,并引入一个存储请求队列,深度最高达到 32 条命令。
这意味着机械硬盘可以实现更高的吞吐率和性能,但这种实现会成为未来固态硬盘控制器技术的瓶颈。
例如,机械硬盘或许能够实现每秒 200 次输入/输出操作 (IOPS),而基于 SATA 的固态硬盘高达 100,000 IOPS,其性能受到 SATA 总线的限制。
NVMe 固态硬盘
Non-Volatile Memory Express (NVMe) 技术在 2011 年推出,消除了 SATA 接口和通信协议的各种瓶颈。
NVMe 技术利用 PCIe 总线,而不是 SATA 总线,可为存储设备释放巨大的带宽潜能。
PCIe 4.0(最新版本)提供多达 32 个通道,理论上数据传输速度高达 64,000MB/秒,而 SATA III 规范最高为 600MB/秒。
NVMe 规范还支持 65535 个命令队列,每个队列包含多达 65536 条命令。
不要忘记,基于 SATA 的固态硬盘仅有一个队列,每个队列的深度仅为 32条命令。
凭借更高的效率、性能以及在众多系统上的互操作性,NVMe 技术为存储设备创造了巨大潜力。
固态硬盘外形尺寸
机械硬盘通常宽 2.5 或 3.5 英寸,多数基于 SATA 的固态硬盘宽 2.5 英寸、厚 7 毫米,而 NVMe 固态硬盘支持多种新的外形尺寸,可以安装到各种不同的设备上。
- M.2 - 采用 M.2 外形尺寸的物理硬盘更小巧,这将确保这类存储设备在未来得到普及。
- 22 是指宽度,30/42/80/110 是指长度,单位均为毫米。
- 目前,M.2 2280 支持 SATA,也是面向 NVMe 的最常见的 NVMe 固态硬盘外形尺寸。
- 随着技术的改进和产品尺寸的缩小,这可能会有所改变。
- U.2 - 这类存储设备价格更贵、性能更高、耐用性更久,通常应用于数据中心/企业存储环境。
- PCIe 插卡 - 这类高性能 NVMe 固态硬盘适用于未配备 M.2 外形尺寸兼容插槽的系统。
固态硬盘性能概览
NVMe 是专为固态硬盘而设计的存储协议。
随着 SATA HBA 中间层的消失,NVMe 支持固态硬盘通过 PCIe 总线直接与 CPU 通信,为实现突破性的性能提升创造了条件。
客观上看,SATA III 总线的性能极限是 6Gb/秒,这意味着一块 SATA 固态硬盘在剔除开销后最高提供 550MB/秒的吞吐率。
单个 PCIe 3.0 通道可以提供 1GB/秒(双向)的吞吐率,因此,PCIe 3x4 固态硬盘可以提供高达 4GB/秒读取/写入吞吐率。
PCIe Gen 4X4 固态硬盘则高达 8GB/秒(双向)。
在这种情况下,限制性能的因素从协议变成 NAND 介质,而这种介质近年来取得了巨大发展,让制造商能够将最高的密度和性能塞进最小的外形尺寸。
NVMe 也大幅降低了协议延迟,得益于经过缩短和优化的数据路径实现比 SATA/SAS 小的延迟。
NVMe 设备中的队列管理也得到 CPU 更高效的处理,得益于 I/O 处理门铃信号发送机制大幅降低了 CPU 开销。
此外,得益于过去十年的大规模开发工作,NVMe 设备也得到多数主要操作系统的支持。