Super Moderator
Developer
|
本帖最后由 Hashimoto 于 2016-7-7 20:42 编辑
[p=32, null, left][size=16px]现在所用的SATA接口与AHCI标准其实是为高延时的机械硬盘而设计的,目前主流SSD依然继续使用它们,早期SSD性能不高时可能还不觉得有什么问题,但是随着SSD的性能逐渐增强,这些标准已经成为限制SSD的一大瓶颈,专为机械硬盘而设计的AHCI标准并不太适合低延时的SSD。[/size][/p][p=32, null, left][color=rgb(51, 51, 51)][size=16px]当然,业界早就意识到这一问题,2009年下半年,关于NVMe的技术工作正式启动,NVMe规范由包含90多家公司在内的工作小组所定制,Intel是主要领头人,目的就是为SSD建立新的存储规范标准,让它在老旧的SATA与AHCI中解放出来。[/size][/color][/p][p=32, null, left][color=rgb(51, 51, 51)][size=16px]2011年,Non-Volatile Memory Express非易失性存储器标准正式出炉,简称NVMe标准,该标准是根据闪存存储的特点量身定制的,新的标准解除了旧标准施放在SSD上的各种限制。2012年标准升级到NVMe 1.1,最新的NVMe 1.2标准是在2014所推出的。[/size][/color][/p][p=32, null, left][color=rgb(51, 51, 51)][size=16px]首款支持NVMe标准的产品是三星XS1715,与2013年7月所发布,随后陆续有企业级的NVMe标准SSD推出,直到今年Intel 750发布,NVMe标准的产品才开始进入消费级市场。[/size][/color][/p][p=32, null, center][color=rgb(51, 51, 51)][size=16px]
[/size][/color][/p][p=32, null, left][color=rgb(51, 51, 51)][size=16px]说到NVMe标准对比AHCI标准的优势,其中之一就是低延时,看上图比较直观,NVMe标准是面向PCI-E SSD的,使用原生PCI-E通道与CPU直连可以免去SATA与SAS接口的外置控制器(PCH)与CPU通信所带来的延时。[/size][/color][/p][p=32, null, center][color=rgb(51, 51, 51)][size=16px]
[/size][/color][/p][p=32, null, left][color=rgb(51, 51, 51)][size=16px]在软件层方面,NVMe标准的延时只有AHCI的一半不到,NVMe精简了调用方式,执行命令时不需要读取寄存器;而AHCI每条命令则需要读取4次寄存器,一共会消耗8000次CPU循环,从而造成大概2.5微秒的延迟。[/size][/color][/p][p=32, null, left][color=rgb(51, 51, 51)][size=16px]另外NVMe也大大的提升了SSD的IOPS,在制定AHCI规范时并行性的想法并没有完全融合到规范内,利用NCQ功能可以对传输能力进行优化,但是接口并不允许SSD真正最大限度地发挥其应有的并行性。[/size][/color][/p][p=32, null, left][size=16px]现在SSD测试通常最多只会测试到队列深度为32的IOPS,其实终究原因这是AHCI的上限,其实许多闪存主控可以提供更好的队列深度。而NVMe则可以把最大队列深度从32提升到64000,SSD的最大IOPS也会得到大幅提升。[/size][/p][p=32, null, left][color=rgb(51, 51, 51)][size=16px]此外NVMe标准还有驱动适用性广和功耗低的优势,这里就不对NVMe作太多的介绍了,日后如果有空就写一篇专门介绍NVMe标准的文章。[/size][/color][/p][p=32, null, left][color=rgb(51, 51, 51)][size=16px]
[/size][/color][/p][p=32, null, left][color=rgb(51, 51, 51)][size=16px]看来以后还是NVMe的天地啊,AHCI已经过时了,不过NVMe普及仍需很长的一段时间,毕竟对于目前的应用来说传统的AHCI已经能满足日常需求。[/size][/color][/p][p=32, null, left][color=rgb(51, 51, 51)][size=16px]对此你有什么看法呢?[/size][/color][/p]
|

|