即将推出的《魔兽世界:暗影之地》将“最少100GB SSD存储空间”列入最低硬件要求,固态硬盘和游戏不分家已经成为一个共识。今天NVIDIA宣布的RTX30支持一项名为RTX IO的功能,并提到了它支持微软的DirectStorage,可将数据带宽提升100倍,同时将CPU使用率降低20倍。
要理清DirectStorage和RTX IO的关系就不能不了解微软Xbox Series X游戏主机中的Velocity体系结构。Velocity包括了自定义NVMe SSD、硬件加速解压模块和DirectStorage API,前两个是硬件基础,后者则是为游戏而专门优化的软件接口。
除了在Xbox Series X中应用之外,微软还会将DirectStorage机制引入到PC平台的Windows 10操作系统当中。今天微软通过开发人员博客介绍了DirectStorage,其中可以看到微软在游戏底层基础架构上的设计方向。
微软认为次世代游戏需要处理的数据量会非常大,由此会产生两个矛盾,首先是内存/显存空间紧张,其次是硬盘空间紧张。
为了优化游戏对内存/显存的占用,微软希望改变游戏引擎对数据管理的模式,从过去一次性全部加载到内存/显存,变更为将纹理等资源分解为更小的片段,只加载当前渲染场景所需的部分。不过零碎读取会导致另外一个问题:随机读写IO大增,对读取延迟的需求也会很高。机械硬盘会非常吃力,而NVMe固态硬盘的作用也会充分体现出来。由于游戏数据的加载从游戏开始前一次性完成变成了游戏中随时进行,高速NVMe固态硬盘会成为影响游戏体验的重要因素。
随时的、频繁的数据加载会给CPU带来更大的负担,微软的思路是绕过CPU,让GPU可以直接同固态硬盘进行数据交换,这也是DirectStorage当中“Direct(直接)”的由来。这种DMA直接存储器访问可以有效地降低CPU使用率。
对于硬盘空间紧张的问题,微软是通过数据压缩来解决的。压缩状态的数据需要解压才能使用。在Xbox Series X当中,微软利用了AMD定制处理器自带的硬件解压功能来代替CPU运算,实现了解压效率的提升。NVIDIA RTX30当中的RTX IO就是类似的硬件加速解压功能。
通过上面的分析可以看出,RTX IO并不是NVIDIA独创功能,在它之前宣布的Xbox Series X/PlayStation 5都已经通过AMD的定制硬件实现了硬件加速解压。预计AMD下一代新显卡也会提供兼容DirectStorage的硬件加速解压功能,而且在使用上并不会落后于NVIDIA:按照微软的说明,DirectStorage直到明年才会向游戏开发商递交开发预览,真正能够利用上该功能的游戏则需要更长时间才能问世。
|