《电子技术应用》
您所在的位置:首页 > 电子元件 > 业界动态 > SSD固态硬盘对游戏行业的一场革命

SSD固态硬盘对游戏行业的一场革命

2021-02-04
来源: 电子工程专辑
关键词: SSD固态硬盘

  前年的Computex展上,AMD曾经演示过一段画面demo,对比Radeon RX 5700系列和英伟达的Geforce 2080 Ti,宣称画面与性能大胜。当时这个演示是引起了不小的争议的,该场景表达的是带宽对于游戏的影响。但实际上,在现实世界的游戏作品中,几乎不存在这种类型的负载。事实真的如此吗?

  当时的这段演示,可能已经在预示“存储”的未来,对于游戏行业接下来持续数十年的影响了。

  1.png

  似乎在当代PC领域,配SSD固态硬盘是个日常——都什么年代了,还谈SSD固态硬盘是HDD机械硬盘的未来?PC游戏自然也应该在“享用”SSD带来的速度优势吧?

  但在次世代游戏主机领域,高速SSD的采用算是个新鲜事,或者说至少以前SSD在游戏主机领域并不太受待见——索尼PS5和微软Xbox Series X终于“不约而同”地用上了SSD,而且是NVMe SSD。因为事实上,对传统生态的游戏主机而言,硬盘速度或许真的没那么重要,容量才是关键。对于单游戏动辄10GB+的容量,以及游戏主机需考虑成本问题的现状而言,开发者们总在想方设法降低硬盘性能对于实际游戏体验的影响。

  从最直接的角度来思考,换个SSD似乎也不是什么大不了的事情,不就读写快点儿吗?快又能快到哪儿去?游戏里屏幕上需加载和待加载的元素,不都是放在RAM里面的吗?换个SSD,游戏体验就大不同了?

  或许SSD在游戏主机上采用的开始,乃是改写游戏行业历史的序章。本文就从较浅层的技术角度来谈谈,SSD对于游戏界究竟产生了多大的影响。

2.png

  换用SSD的PS和Xbox

  从纸面数字来看,微软Xbox Series X用了总容量1TB的NVMe SSD固态硬盘,顺序读取速度为2.4GB/s。这对SSD而言算不上什么惊艳数字;虽然已经比机械硬盘快10-20倍了,但在PC平台也就是个入门水平。而索尼PS5的SSD总容量825GB,顺序读取速度5.5GB/s(PS4是50-100MB/s),接口PCIe 4.0 x4,通道数是12个——这就有点儿高端的意思了。

  不过换用SSD究竟有什么用呢?5.5GB/s的顺序读取,在RAM速度面前,起码有几十倍甚至上百倍的差距。硬盘和内存介质仍然不是一个世界的东西,PS5不照样配备16GB GDDR6吗?

  先来看看微软这边,微软在Xbox存储相关的技术表达上,引入了一种“Xbox Velocity Architecture”架构。这个市场宣传词,在微软的定义下包含了4个组成部分,分别是SSD固态硬盘本身、压缩引擎、用于访问存储的软件API,以及名为Sampler Feedback Streaming的硬件特性(一种GPU特性,可提高纹理利用效率:哪些数据可以从RAM中移除,并判断下一步要加载哪些数据到RAM)。

  就Xbox Velocity Architecture的这几个构成而言,很难看出什么爆炸性突破,至少就微软公布的信息来看是如此。

3.png

  虚幻5引擎演示的图形计算画面

  索尼PS5相对复杂,去年索尼在介绍PS5时,花了1/3的时间专门介绍PS5的存储系统。这表明SSD在PS5之上的分量不轻。去年EPIC在虚幻5引擎的技术演示中强调,演示中那些令人叹为观止的效果都需依赖PS5的高速SSD。虽说这其中多少有索尼和EPIC底层合作的成分在,但技术本身不应被轻易否定。有关PS5的SSD及相关的存储架构,后文会详述。

  SSD的高带宽,和数据压缩

  从直觉来看,换用SSD的最大价值,应该在于启动游戏、加载场景会更快。这的确是这代游戏主机的提升所在。下面这张图来自tom's GUIDE的PS5评测文章,是PS5与PS4两代机型的不同游戏加载时间对比:

4.png

  来源:tom's GUIDE

  部分游戏的差异在这里还是相当显著的。像《蜘蛛侠:迈尔斯·莫拉莱斯》这样的游戏,“在home页面选择游戏,到角色出现在大街上开始打怪,几乎是0时间差”。Android Authority在PS5体验文章中提到,“所有PS5游戏的加载页过渡时间都在10秒以下,更多的是在3-4秒”,甚至因为加载页面时间过短,连页面上的那些文字提示都看不全,“不过这也是值得的”。

  索尼宣称,2GB数据加载时间只需要0.27秒——在PS4时代,1GB数据从硬盘加载完成需要20秒。但如果只是游戏启动、场景过渡加载时间变短,那么SSD实在没什么可大书特书的。毕竟这本来就是SSD相比HDD的优势,更不用说什么“革新”游戏行业。

  GPU在数据吞吐方面的努力上一直没停过。当代GPU越来越多的开始引入一些专用单元,比如Turing架构针对光线追踪特别引入了RT核心与Tensor核心。在存储架构方面,当代GPU普遍都有专门的数据压缩单元。

  数据压缩的价值在于,将数据体积压缩得更小之后(典型的比如纹理数据),再传输到内存或者cache之上,减少数据传输量,因此也就增大了带宽。不过一般来说,数据解压过程是需要CPU进行的,软解的效率并不高。

5.png

  Xbox Series X和PS5都在数据压缩和解压方面做了文章。SoC的I/O模块部分都有专门的数据解压缩硬件单元。实际上先前的游戏主机就有这样的特性,只不过存储介质不是以SSD的方式存在的。微软着眼于纹理数据压缩,因为纹理数据占到游戏数据读取与解压最大的比例,纹理压缩算法名为BCPack。索尼除了Zlib之外,采用一种名为Kraken的格式。

  索尼宣称,其解压缩硬件能够将SSD之上5.5GB/s的数据流,解压缩为8-9GB/s的数据。在压缩效率最理想的情况下,理论最高输出率是22GB/s。这个量级很大程度上也是基于其NVMe SSD。这样的专用硬件,极大缓解了CPU的压力。索尼宣称,这种专用解压单元,在解压能力上相当于9个Zen 2处理器。

  越来越多专用单元的出现,也是通用计算领域向前发展的一种共识了。而且索尼自PS3时代的CELL处理器开始,就有一个坚持:数据传输的高带宽、低延迟,比处理器本身的算力重要。近代GPU的发展路径里,这的确也是英伟达与AMD的共识;而从系统层面,将其扩展到外存,又是这一理念的延伸。

6.png

  所以这有什么用?

  说来说去,难道还是游戏启动和场景加载更快而已吗?PC界早就证明了,提升硬盘的速度并不会对游戏性能和体验造成什么实质上的提升。毕竟从直觉上来看,存储不能提升游戏画质和帧率。一般游戏,玩家看到或即将看到的画面资源都是放在RAM中的。

  实际情况是,基于PC世界木桶短板原则,游戏开发者极大程度受制于PC大环境的平均配置,而想尽办法从游戏开发层面,试图向玩家隐藏存储系统的短板。

  但游戏主机有着相对单一的开发目标,硬件限制、开发环境都大致稳定。在主要游戏主机开始采用SSD之后,开发者们(或者生态)就该思考如何充分利用明显更快速的存储硬件了。所以前文也提到了微软Xbox Velocity Architecture的新API。

7.png

  索尼在这代主机上,虽然纯看算力及RAM层面的效率是不及Xbox Series X的,但它针对SSD存储的变革决心却相当之大。PS5平台之下新的I/O API,可让开发者去利用新的SSD及存储架构。

  在新的开发生态中,文件名、路径的概念不再,取而代之的是一种基于ID的系统——以最快的速度告诉系统从哪里去找数据。开发者只需要指定ID,开始位置、结束位置;整个IO流程一步完成,不需要应用去操心内存数据解压、重新安置的问题。毫秒级延迟后,就能在单帧处理时间内请求获取到数据——早年的HDD,这个流程需要耗时最多250ms。

  去年3月份,PS5系统架构师Mark Cerny举过一个例子。“某个敌人在游戏中死去时,会最后叫出声,这种数据需要有高优先级来获取。但可能因为流水线中其他的游戏与操作请求,数据仍要等250ms才能拿到。”“而死亡、哀嚎,是需要同步发生的。在PS4,同类问题就要求把大量数据都必须放到RAM上。”虽然个人觉得这个例子可能并不恰当,不过高速SSD的存在,某种程度转移了RAM的负担。

8.png

  这种“转移”可能体现在多个方面。比如说开放世界游戏,通常这种游戏需要限制玩家的移动速度,或者游戏环境没有那么细致。因为RAM资源是有限的,游戏只能过着紧巴巴的日子,必要的资源才放进去。要是玩家移动太快、画面太细致,资源都来不及加载。但在有了高速SSD(和对应的I/O架构)之后,开发者就得到了极大程度的自由。

  这个自由当然不是说用SSD来替代RAM,而是体现在working set上——即每次有多少内存是真正当下就使用的(即现在就显示在游戏画面中的)。在高速SSD的加持下,游戏就没那么迫切的要求去预取(prefetch)数据。

  比如一个游戏中,相同房间内某个对象的贴图,如果现在并不在游戏画面内(不显示在屏幕上,而是在屏幕之外),那么或许将其放到SSD上(而不是RAM上)问题也没那么大,等到玩家视角开始向该对象的方向移动时,再加载也不迟。过去HDD时代是不能这么做的,通常整个房间、甚至相邻房间的数据都必须放在RAM里,否则游戏体验就是悲剧。

9.png

10.png

  有了SSD,一部分RAM就能释放出来,这些RAM可用于存放更高品质的资源,屏幕上显示的当前画面也能够更好。或者应该是“变革”的核心所在。Mark Cerny提到,游戏只需要大约提前1秒做预取工作(而不是PS4时代的30秒),这是高带宽、低延迟SSD能够带来的重要价值。

  Mark Cerny原话说:“玩家在游戏中转个身,SSD如果足够快,快到立马就可加载纹理如何?如果转身0.5秒,也就是加载4GB的压缩数据。”这可能是虚幻5引擎演示基于PS5的某种依据,也会成为革新游戏主机平台游戏开发的开始。

  SSD给游戏机带来的其他变化

  以前的很多游戏,开发者为了解决慢速存储的限制问题,通常会采用很多策略。比如说场景间过渡,搞个楼层间电梯:玩家在乘坐电梯的时候,实际上就是数据在忙碌加载的过程;再比如在某些过渡场景,限制玩家视野(比如搞个狭窄的山洞或通道)。将来,这些可能都不再需要了。

  前面这些至少对于游戏玩家而言,是能够看得见、摸得着(可能摸不着)的革新,包括游戏启动、画面加载时间显著缩短,游戏画面可以更细致,对玩家的限制更少,甚至可能带来更多的玩法。比如说开放世界中,更快的竞速游戏体验;或者从天文星球级别,可将画面无缝、快速放大至分子级别;以及更多现在我们暂时没想到的游戏方式。

11.png

  高速SSD及周边存储与I/O架构还带来了一些相对隐性的价值。比如说游戏体积可以做得更小。游戏主机的HDD时代,开发者为了减小硬盘寻道时间带来的影响,某一个场景显示所需的数据,通常都会存储在连续的硬盘块区域上,这样就能减少数据寻道操作了。

  不过某些对象可能会在不同的场景里反复出现,那么这些对象就会重复存储在各种连续的硬盘块区域。除了贴图,也包括声音、模型等——这叫duplication。比如城市场景中的垃圾袋,可能1.6MB空间占用,如果一个城市里600个街区都有这么个垃圾袋,那就比较悲剧了。游戏在硬盘中所占的空间就会很大。某些游戏开发者对此当然有缓解方案,比如《蜘蛛侠》,不过是以RAM用量为代价的。

  高速SSD存在以后,duplication就很大程度上不怎么需要了。SSD带来的同类价值还有比如说,HDD存在“碎片化”问题,早年Windows就有“整理硬盘碎片”这种功能;在SSD之下,开发者不需要在意数据的物理空间问题,游戏不需要在更新过后进行这种操作。还有包括游戏保存操作,可快速完成游戏进度的大批量数据的存储,关机前也不用等待了。

  只是以上这些“隐性”提升,PC游戏玩家应该早就享受到了,所以它们实在算不上“革命”性,对游戏体验的影响也都不大。

12.png

  推及整个游戏行业

  索尼和微软在游戏主机与平台的缔造理念上差别还是比较大的。微软更多在想的是与PC平台划一,而索尼则期望引导开发者走他们设想中的路子。起码在这代游戏机上,索尼对存储系统投入的精力是显著大于微软的,也希望开发者未来能够充分利用高速SSD。

  这种思路对于整个游戏行业,包括PC游戏,开发方式的转变会是显著的。虽然微软没有过多透露Xbox Series X的存储系统相关信息,但微软有计划将DirectStorage API带到Windows平台。

  另一方面,AMD作为跨游戏主机和PC两个平台的芯片制造商,也切切实实影响到了未来这两个平台的游戏相关硬件技术走向——SSD在游戏上发挥作用与AMD也有很大关系,这一点将在本文的扩展阅读中提到。如此一来,SSD本身可能才真正开始逐步惠及整个游戏市场,而不只是一些不痛不痒的小变化。更多充分利用SSD特性的开发成果也才会出现。

13.png

  当然游戏主机换用高速读取SSD也带来了一些问题。其中最大的问题恐怕在于,825GB的容量有些捉急,实际可用空间667GiB左右。当游戏以百GB级别存在时,这点容量实在不够看。索尼去年虽有提到可支持扩展三方SSD,不过现有PC级别的M.2 PCIe 4.0固态硬盘是真的不便宜,而且还必须够上PS5原硬盘5.5GB/s的规格。索尼似乎到现在也没有公布支持扩容的第三方SSD究竟有哪些。

  与此同时,从索尼的介绍来看,与其高速SSD相关的存储I/O架构还挺复杂,起码其定制化程度尤甚。比如说为了减少延迟,索尼针对SSD的I/O命令,搞了一套6种优先级的定制化特性,而NVMe标准本身的优先级特性没这么多。索尼的定制I/O单元虽然可以处理这个问题,但需要额外的开销。

  不过总得来说,这些在开发变迁的过程中,始终都算是小问题。无论如何,未来主机游戏,乃至PC游戏的走向大约都将因SSD产生真正的变化,这是以前PC广泛应用SSD未能达到的。有关PS5的I/O架构,欢迎点击查看原文,阅读本文的网页完整版了解更多。

  

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。