为了解决这个问题,微软开发了directstorage技术,目的在于优化游戏和其他应用程序的数据加载性能,让显卡可以绕过cpu,直接与ssd进行数据交换,这样就能充分利用ssd的读取性能,减少操作系统层面的开销,实现更高的数据吞吐量和iops。

启用directstorage最直观的效果,就是可以使得游戏过程中能够更快地从ssd读取大量数据,显著减少加载时间,实现类似《瑞奇与叮当》那样的无缝切换场景功能。

3dmark的directstorage功能测试包含9个测试子项,涵盖了directstorage功能关闭、开启、开启+gpu解压缩三种场景,每个场景中都会分别测试从ssd读取到内存、从内存读取到显存、从ssd直接读取到显存等数据传输路径的速率。
测试结果显示,在我这套硬件平台上,金士顿fury renegade g5 8tb最高能实现180.3%的带宽提升。

分析实际的测试结果可以看到,在未启用directstorage功能的情况下,ssd加载数据至显卡时,带宽为7.59 gb/s,这其实已经超过了许多pcie 4.0 ssd全速读取的上限;

启用directstorage功能后,即便不采用gdeflate压缩,带宽也能增加至10.54 gb/s;启用gdeflate压缩后,带宽还能一步到位暴涨至21.26 gb/s。

专业向进阶测试
1.全盘写入曲线分析
为了深入探索金士顿fury renegade g5 8tb的slc缓存方案,这里我们对其进行raw格式下的全盘范围顺序写入测试(128kb,q32t1),并以曲线图的形式为大家展示。
金士顿fury renegade g5 8tb的全盘平均写入速度为3000.2 mib/s,并且从下图中可以看到,与大部分使用慧荣sm2508主控的ssd一样,其顺序写入曲线呈现了经典的三段式结构。与此同时它的三段式曲线也有kingston自家的特色,slc cache容量更大、tlc直写过程更短。

接下来我们详细来解析下这张写入曲线图:
(1)金士顿fury renegade g5 8tb在空盘情况下,slc cache容量约为2561 gib,缓内平均写入速度为12732 mib/s。

从这里即可看出大容量ssd的优势之处,其空盘下的slc cache容量要比普通的2tb ssd可用容量都大,也就意味着有更充裕的空间来加速写入过程,可以更大限度避免出缓降速的情况。
(2)金士顿fury renegade g5 8tb的tlc直写阶段持续了大约546 gib,tlc直写速度平均为4744.7 mib/s。

铠侠bics 8的接口速度为3600 mt/s,金士顿fury renegade g5 8tb为8通道、32ce的结构,如果完全发挥nand性能的话,理论上完全可以有更强的直写速度。
经我测试,在这个阶段金士顿的firmware思路应当是为了控制功耗与发热,对nand颗粒的写入速度进行了限制,这一点在下面的功耗测试环节有直接佐证。
消费级ssd毕竟没有企业级产品的硕大散热面积,所以这方面有所取舍也是很正常的,像三星9100 pro也采用了类似的限制速度来压低功耗的方案,只不过后者做得更加极端:

(3)当tlc直写阶段结束后,金士顿fury renegade g5 8tb进入第三段gc(垃圾回收)阶段,此时ssd面临writeback速度惩罚,平均写入速度降低至平均2030.8 mib/s:

在这个阶段,ssd要一边将slc cache中的数据重新释放至tlc状态,一边还要兼顾新数据的写入,所以写入性能有所下降是很正常的事。
即便如此,金士顿fury renegade g5 8tb在该阶段的写入速度也超过了许多pcie 4.0 ssd的tlc直写阶段速度,只能说旗舰产品的性能优势还是非常显著的。
为了探究金士顿fury renegade g5 8tb在高占用下的slc cache方案,这里我使用128k q32t4参数对硬盘进行75%的预填充,手动trim后静置15min,让主控进行垃圾回收与slc cache释放操作,然后再对剩余空间进行顺序写入填充,观察其缓内及缓外顺序写入情况。

可以看到,当剩余25%容量时,金士顿fury renegade g5 8tb的slc cache容量约为150 gib,随后进入一段约1560 gib的tlc直写阶段,最后进入一小段writeback环节。
在这个过程中,slc cache所占比例与空盘状态下不同,同时tlc直写容量更大,不太清楚是否是静置时间太短导致gc没有完成所致。
不过有一说一,这个状态下的平均写入速度为4593 mib/s,是要比前75%过程中3668 mib/s的平均速度更快的。
2.长时顺序写入测试
接下来,咱们继续使用fio 3.36对金士顿fury renegade g5 8tb进行两倍全盘容量的128k q32t1顺序写入,记录到的曲线如下:

在以时间为x轴的曲线图中可以看到,由于slc cache容量很大,金士顿fury renegade g5 8tb的gc阶段还是持续比较久的,在持续不断的写入过程中,用了2300多秒完成gc过程,并且恢复到4766 mib/s左右的tlc直写速度。
发表评论