https://baijiahao.baidu.com/s?id=1718020841628703656&wfr=spider&for=pc
HDD和早期SSD大部分使用SATA接口,正在运行AHCI (Advanced Host Controller Interface),这是由Intel与许多公司合作开发的系统接口标准。AHCI支持NCQ功能和热插拔技术。NCQ的最大深度是32,也就是在对HDD或SSD执行最多32条命令的情况下,与以前的硬盘只能一条命令执行相比,硬盘性能有了显著的提高。
AHCI协议和SATA接口AHCI协议和SATA接口足以满足系统的性能要求,因为整个系统的性能瓶颈在于硬盘端(低速、高延迟),而不是协议和接口端。但是随着SSD技术的迅速发展,SSD磁盘的性能急剧上升,底层闪存带宽越来越宽,介质访问延迟越来越低,系统性能瓶颈已从下面转移到上面的接口和协议处。AHCI和SATA已无法满足高性能、低延时的SSD需求,SSD迫切需要有更快、更有效的协议和接口。
在这样的背景下,NVMe诞生了。09年下半年,在领先的大哥Intel的领导下,美光、戴尔、三星、Marvell等巨头共同开发了一份专为SSD服务的NVMe协议,目的是使SSD不再使用老的SATA和AHCI。在工业存储方面方面,崛起了Agrade睿达等一批优秀的品牌。
NVMe是什么?NVMe是Non-Volatile Memory Express,是一种可在PCle接口上运行的非易失性存储标准。在NVMe设计之初,PCIESSD的低延迟和并行性得到了充分利用,以及当代处理器、平台和应用的并行性。与目前的AHCI标准相比,NVMe能带来多方面的性能提高。NVMe是为SSD而生的,但并不局限于以闪存为媒介的SSD,也可以应用于高性能、低延迟的3DXPoint等新媒体。
三星XS1715是第一款支持NVMe标准的产品,于2013年7月发布。随后推出了企业级NVMe标准SSD。2015发布Intel750,标志着NVMe标准产品进入市场。
当今市场上NVMeSSD产品很多,无论是企业级的还是消费型的,如果说前些年的NVMeSSD还是阳春白雪,如今NVMeSSD已经慢慢地进人了。值得注意的是,NVMe在移动设备上同样拥有一席之地。从iPhone6s开始,苹果的存储设备运行在NVMe协议标准之上。将来的手机存储方向,应该不是UFS,不是eMMC,而是NVMe,等等看。
那NVMe到底有什么好的呢?它与AHCI相比有什么优点?相对于NVMe和AHCI,其优点主要表现在:
造成硬盘存储时延的三大因素:存储介质本身、控制器以及软件接口标准。
存储介质层面,闪存(Flash)比传统机械硬盘速度快太多了。控制器方面,从SATASSD发展成PCIeSSD,原生PCIe主控与CPU直接相连,而不像传统方式,要通过南桥控制器中转再连接CPU,因此基于PCle的SSD时延更低。软件接口方面,NVMe缩短了CPU到SSD的指令路径,比如NVMe减少了对寄存器的访问次数;使用了MSI-X中断管理;并行&多线程优化--NVMe减少了各个CPU核之间的锁同步操作等。
理论上,IOPS=队列深度/IO延迟,故IOPS的性能与队列深度有较大的关系(IOPS并不与队列深度成正比,因为实际应用中,随着队列深度的增加,IO延迟也会提高)。市面上性能不错的SATA接口SSD,在队列深度上都可以达到32,然而这也是AHCI所能做到的极限。但目前高端的企业级PCleSSD,其队列深度可能要达到128,甚至是256才能够发挥出最高的IOPS性能。而在NVMe标准下,最大的队列深度可达64K。此外NVMe的队列数量也从AHCI的1,提高到了64K。
PCle接口本身在性能上碾压SATA,再加上NVMe具有比AHCI更深、更宽的命今队列,NVMeSSD在性能上秒杀SATASSD是水到渠成的事情。
NVMe加人了自动功耗状态切换和动态能耗管理功能。