网站建设一般用到的语言,长沙装修公司口碑,西安网站建设开发公司,物业公司排名2020最新排名NVMe前世今生 1 NVMe的由来2 NVMe工作原理3 NVMe优点4 NVMe适用场景 本文属于《
NVMe协议基础系列教程》之一#xff0c;欢迎查看其它文章。 1 NVMe的由来
目前机械硬盘大多数使用 SATA (Serial ATA Advanced Host Controller Interface) 接口#xff0c;接口协议为 AHCI欢迎查看其它文章。 1 NVMe的由来
目前机械硬盘大多数使用 SATA (Serial ATA Advanced Host Controller Interface) 接口接口协议为 AHCI是 Intel 联合多家公司研发的系统接口标准。AHCI 最大队列深度为 32即主机最多可以发 32 条命令给 HDD 或 SSD 执行在 HDD 时代整个性能瓶颈在硬盘端而不是接口和协议端所以 AHCI 可以很好的匹配 HDD。
但随着 SSD 硬盘技术的不断演进使得底层闪存带宽越来越高介质访问延迟越来越低系统瓶颈已经由下转移到了上面的接口和协议端。这时你会发现 SATA 接口的 SSD 性能都不会超过 600MB/s你会认为是底层闪存带宽不够但其实是 SATA 接口速度限制了带宽。因为 SATA 3.0 最高带宽就是 600MB/s。
此时AHCI 和 SATA 已经不再满足高性能和低延迟的 SSD 的需求了如果要充分释放 SSD 性能那么就要设计新的协议和接口了。
在这样的背景下2009 年下半年Intel 、镁光、三星等厂商一同制定了专门为 SSD 服务的 NVMe 协议来取代 AHCI从此 NVMe 应运而生。
2019.6.10发布NVMe 1.4 2021.6.3 发布NVMe 2.0 NVMe官网https://nvmexpress.org/specifications/
2 NVMe工作原理
NVMe的全称是Non-Volatile Memory Express即非易失性存储器标准是在 PCIe 接口之上的协议标准在协议栈中隶属高层相当于通讯协议中的应用层。如下图所示 NVMe的工作原理是基于PCle总线的因此它可以利用PCIe的高速通道进行数据传输。 NVMe通过命令队列的方式来完成I/O操作每个命令队列都可以包含多个I/O命令这些命令可以并发执行从而提高数据传输的效率。 NVMe还采用了一种称为“轮询方式”的通信协议即它不需要中断来通知主机处理器已经完成了某个任务。相反主机处理器可以根据需要不断地轮询设备状态从而实现更高的吞叶量和更低的延迟。
NVMe 针对 PCIe SSD 特点而设计相比传统 AHCI 标准NVMe 标准可以带来多方面的性能提升可以说 NVMe 就是为了 SSD 而生的。刚才我们提到了 AHCI、SATA、NVMe、PCIe接下来我们通过一张层次图来理解他们之间的关系和职责。
3 NVMe优点
上面我们提到了 NVMe 是一种 Host 与 SSD 之间通信的协议在整个协议栈中处于应用层的位置。NVMe相当于指挥官发送命令至下层去执行即PCIe它所制定的任何命令都由 PCIe 去完成。虽然 AHCI 也可以和 PCI 搭档但 AHCI 只有一个命令队列最多同时只能发 32 条命令根本驾驭不了 PCIe。而 NVMe 主要是面向 PCIe SSD 开发的一套接口标准定义了系统接口和命令集其目的就是让性能更好延迟更低功耗更低所以目前 NVMe 和 PCIe 匹配无疑是最完美的。 相对于传统的存储技术NVMe具有以下优点
更快的数据传输速度NVMe可以利用PCIe的高速通道进行数据传输从而实现更高的带宽和更快的响应速度。这对于需要进行大量数据处理的应用程序来说非常重要。更高的I/O操作效率NVMe采用了命令队列的方式来完成I/O操作从而可以并发执行多个命令提高I/O操作的效率。这对于需要处理大量I/O操作的应用程序来说非常重要。更少的CPU占用率NVMe可以通过轮询方式来通信从而不需要中断来通知主机处理器已经完成了某个任务。这可以减少CPU的占用率从而提高系统的整体性能。更高的可靠性NVMe采用了一些数据保护机制例如CRC校验、错误纠正码和端到端数据保护等可以保证数据的完整性和安全性。
4 NVMe适用场景
NVMe适用于需要快速访问大量数据的应用程序例如高性能计算、大数据分析、人工智能等。此外NVMe还适用于需要进行大量I/O操作的应用程序例如数据库、虚拟化、云计算等。 参考链接
《NVMe协议基础》《什么是NVMe?一篇文章理清它的前生今世》《为什么 SSD 需要 NVMe》