为什么NVMe固态硬盘比较快?看不到的秘密在这里

为什么NVMe固态硬盘比较快?看不到的秘密在这里

黄延慧 / 2019-07-18 10:4430096

东芝RC100是NVMe固态硬盘中一个比较另类的存在。它给人的第一印象是“小”,由于采用了东芝BiCS3高密度3D闪存以及MCP多芯片融合封装技术,小巧的身躯内蕴含了极大的能量。

image001.png

NVMe SSD是固态硬盘当中的佼佼者。为什么采用NVMe协议的固态硬盘拥有比SATA更强的性能?这不仅仅是因为PCIe通道的带宽优势。                                                                                                                        

固态硬盘的表面性能与实际影响:

就像CPU的运算包含整数和浮点类型一样,电脑对固态硬盘的访问也有顺序读写和随机读写两类。虽然我们可以通过测试软件分别去测出固态硬盘在两种访问方式下的理论能力,但是却无法讲出这样的数据对于电脑速度的直接影响。

image002.png

PCIe通道的带宽优势主要体现在顺序读写速度上,即下图中AS SSD Benchmark的Seq(顺序)这一行。但是顺序读写通常只会发生在两块硬盘间拷贝文件的情景之下,对于家用电脑的系统盘来说属于不太常见的使用方式。同样的,系统盘IO虽然是以随机读写为主,但却并不是单纯只有4KB粒度,也并不是读取和写入分离进行的。

image003.jpg

归根到底,AS SSD Benchmark提供的这些数字主要是印证理论参数,并不具备很强的实用参考价值。

影响固态硬盘使用性能的关键:

 顺序读写带宽和4K随机读写IOPS比较容易衡量,却不具备很强的使用价值。硬盘直接影响电脑性能的关键在于IO延迟。所谓IO延迟就是一次读写操作从开始到结束所消耗的时间。延迟越低,表明硬盘响应电脑主机读写请求的速度越快,用户体验越好。

image004.png

有朋友可能会问,延迟不能直接用IOPS指标来代替吗?答案是不能。除非当IO是一个接一个到来时,延迟才能等于1/IOPS。这种情况太过于理想,以至于在现实中根本不存在。

image005.png

 

不管是机械硬盘还是固态硬盘,都会面临一个IO尚未完成,另一个IO读写请求又已经到来的情况。机械硬盘由于同一时间只能有一个磁头执行读写操作,只有等待上个IO完成才能执行下一个IO请求,后来的IO请求延迟必然增加。

image006.png

 虽然从AHCI协议就已经引入的NCQ特性已经允许队列中的个别IO指令在合适的时机下“插队”,调整执行顺序让硬盘磁头有机会减少寻道次数,但无论如何优化,IO还是只能一个一个的执行,队列深度的增加看似增加了每秒内完成的读写次数(IOPS),但实际上IO的延迟却增加了。

image007.png

 固态硬盘使用无活动部件的闪存存储数据,省去了机械硬盘中磁头寻道的时间,还能通过多通道以及CE交错等技术实现并发数据读写。但是硬盘性能由IO延迟决定的本质没有改变。

image008.png

 PCMark 8存储性能测试以一系列实际应用的硬盘活动脚本衡量硬盘对性能的影响,在它的成绩背后依然是存取延迟的体现。当我们把PCMark 8存储测试成绩另存为XML格式后就能看到average access time,即平均存取延迟。

image009.png

 IO延迟是一个比较难以定量的指标,硬盘在处理不同实际应用时会有不同的表现。要降低延迟,除了从闪存接口、主控设计方面入手之外,NVMe协议也是其中一个“捷径”。针对闪存优化NVMe协议针对低延迟做出了一系列改进,有效降低了延迟开销。

image010.png

 正是因为有了NVMe协议的帮助,东芝RC100在面对众多复杂应用时也能够轻松应对,高效地完成数据读写工作,以低延迟优势提升电脑使用体验。

image011.jpg



发表评论