微软刚刚发布了DirectStorage开发者预览版,并透露该技术将不再局限于Windows11操作系统。
DirectStorage是什么?
DirectStorage大体上可以分为三个部分:API应用编程接口、GPU硬件加速数据解压功能、操作系统底层的存储堆栈优化。
API应用编程接口:
这次微软发布的开发者预览版就是为了让游戏引擎为支持该技术做好初期的准备的API编程接口。这个接口将赋予游戏以批量提交的方式请求硬盘数据存取的能力,减少程序等待数据返回的时间,从而大幅提高游戏读条效率。
当代SSD虽然具备很强的随机读取能力,但是游戏加载过程中需要的数据非常零碎,在读取数据过程中的CPU开销很大。批量地提交数据请求,可以发挥SSD的队列存取性能优势,单线程变成了队列存取,效率自然会上升。
API方面的改进是为了喂饱NVMeSSD,让它在并发存取中充分展现其能力。
GPU加速数据解压:
至于GPU硬件加速数据解压功能,目前微软还没有完全准备好,仍需进一步等待。其基本原理就是NVIDIA发布RTX30系列显卡所介绍的那样:利用PCIe数据总线充分发挥GPU的作用,直接从NVMeSSD中提取游戏运行所需的材质数据,越过CPU、由GPU直接解压后送入显存,从而释放了游戏数据加载中CPU的压力。
在微软的协调下,GPU硬件加速数据解压应该会成为受到广泛支持的,而非个别GPU厂商独有的技术。RTXIO只是DirectStorage其中一个功能特性的硬件实现,AMD甚至包括未来英特尔推出的游戏独显应该都会支持该技术,只是各自的叫法不同。
数据加速解压是为了喂饱GPU,利用好PCIe总线这条高速数据通道,并把CPU从数据解压这些俗务中解放出来。这样一来不但能实现游戏过程中材质数据的实时加载和交换,还能让CPU专注于那些非他不可的任务,或许还能提高一点帧率。
优化的底层存储堆栈:
这部分是微软对Windows操作系统的底层存储堆栈进行优化,简单来说就是重写一部分和存储有关的“祖传”代码,允许跳过从HDD上古时代继承下来的文件系统和卷层面的一些逻辑,让SSD更加充分地发挥其低延迟和高IOPS能力。通过批量处理和队列尽可能地减少进程在用户模式和内核模式间的转换次数,降低数据存取过程中的CPU开销。
这部分完全是微软自己的工作,所以不需要外部硬件的支持。但与此同时,微软也不会给已经行将就木的Windows10做这些工作,要想获得优化后的存储堆栈,只有使用Windows11。
DirectStorage有哪些硬性条件?
要充分发挥DirectStorage的全部优势,Windows11操作系统、PCIe4.0NVMe固态硬盘以及新显卡无疑是最佳组合。
微软已经给游戏引擎提供了基础的API支撑,采用DirectStorage技术的新游戏能够在Windows10操作系统上运行。不会有新游戏完全不兼容老系统的情况发生了。
NVMe固态硬盘是GPU硬件加速数据解压特性的一个前置条件,SATA接口的固态硬盘或机械硬盘、不受支持的旧显卡,虽然能运行新游戏,但为CPU减负的GPU数据解压功能就无缘体验了。
系统底层的存储堆栈优化是一项大工程,目前还不知道最终能达到怎样的效果,不过相比于硬件障碍,升级操作系统对于游戏电脑来说应该难度不大。