面向下一代游戏 微软XBOXSeriesX 全新技术解读

2020-12-25 06:34张平
微型计算机 2020年18期
关键词:纹理内存音频

张平

对XBOXSeriesX(下简称XBOXX)的期待和讨论已经持续了一段时间。在这期间,微软不断地放出有关XBOXX的相关消息,包括外形、控制器、硬件架構和内部设计等。本刊此前对XBOXX的相关信息进行过一次简要介绍。数月后,微软在HotChips2020大会上又公布了大量有关XBOXX芯片设计和技术应用的细节信息,赶紧来看看!

今天的主角是XBOXX,微软在HotChips2020上公布了XBOXX处理器和架构设计的大量信息,人们终于可以比较清晰地了解到这款划时代的全新游戏主机在芯片设计、GPU设计和性能、技术等方面的真面目。

XBOXSeriesX处理器技术特性一览

XB0XX的处理器是由AMD和微软联合研制。微软介绍了这款处理器的技术特性,其图形部分支持取样器反馈流(SamplerFeedbackStreaming)、DirectX光线追踪(DirectXRaytracing)、可变像素比率渲染(VariableRatesShading)、机器学习加速(MachineLearningAcceleration)、D3D网格渲染(D3DMeshShading)等。除了图形之外,它的其他技术特性还包括XB0X速度架构(XBOXVelocityArchitecture)、Opus音频解码(OpusAudioDecode)、高质量采样率转换(HighqualitySamplerateConverter)、利用卷积音频引擎的音频加速(ProjectAcousticsacceleration)、支持8K的线缆、支持HDMI2.1、支持VRR可变刷新率、支持120Hz输出、支持线性光处理等。这些技术都基于XBOXX的SoC,因此微软也对这款SoC进行了详细介绍。

XBOXSeriesX处理器的工艺和成本

之前有关这款SoC的消息很多,比如这款SoC产品采用了Zen2架构的CPU核心搭配全新的GPU核心,工艺则依靠台积电。现在微软公布了更详细的内容,在工艺方面,XBOXX的SoC采用了台积电的7nm增强版工艺,整体处理器面积为360.4mm?,拥有153亿晶体管,12层基底,采用了“5-2-5”的布置方式。封装方式依旧是BGA,BGA尺寸的长宽均是52.5mm,是正方形布置,BGA拥有2963个球形触点,球形触点之间的最小距离为0.8mm。频率方面,XBOXX的处理器频率为3.8GHz,没有使用Boost等方式,只是在开启SMT多线程的时候频率会降低为3.66GHz。

相比XBOX0neX、XB0XOneS所用的处理器,XBOXX处理器7nm增强版的工艺无疑要比XB0XOne的16nm先进不少。另外XB0XOneX的处理器晶体管数量为66亿,芯片面积为367mm?,XBOXOneS则只有54亿,芯片面积为237mm。再往前推的话,XB0XOne的处理器采用的是28nm工艺、48亿晶体管,芯片面积为375mm。

从这些数据可以看出,微软在设计XBOX系列产品的时候,其处理器最大核心面积维持在360mm~375mm?,一般不会超出这个数据,也不会太低于这个数据(除非是特殊版本,比如从XBOXOne更换工艺、升级版本的XBOX0neS),这应该是充分考虑了成本、性能和设计难度之间的衡量。毕竟芯片面积越大,成本上升速度越快。目前桌面类似处理器中,芯片面积最大的也就是英伟达GA100,面积大约在800mm?,但是其产品售价和XBOXX这种面向大众的产品完全不是一个量级了。

另外微软还特别提到XBOXX的成本和摩尔定律等问题。微软认为,目前遵循摩尔定律的路径进行产品开发的确可以达成目标,但是成本控制会成为很大的问题。台积电新的7nm增强版本工艺使用了更复杂的步骤和结构,因此体现出更高的晶元价格和较低的良率,再加上这种大型异构SoC所需要付出的知识产权成本,以及微软为全新处理器进行的硬件改进设计,加入的全新加速器模块,以上种种都导致XBOXX的SoC研发成本变得非常高昂。微软用美元的符号“$"来代表处理器的研发成本,2013年面积为375mm的XBOXOne的处理器成本是一个“$”,随后应用16nm工艺在一定程度上降低了成本,变成了“$一”,2017年的XBOXOneX以接近的芯片面积(367mm?)带来了略微昂贵的成本也就是"$+”,但是现在7nm工艺下的XBOXX处理器成本上升至"$++",显然比之前更贵了。

另外,微软还公布了处理器内部的分区域图片。从图片可以看出,XBOXX的处理器基本是以对称的形式分布,处理器上部左右分别分布了一个Zen2的CCX,一个Zen2的CCX包含了4个CPU核心、每核心512KBL2缓存以及一个共享的4MBL3缓存。两个CCX中间布置了多媒体硬件加速模块(MultiMediaHWAccel)。

在GPU的左右角和CPU接近的部分,布置了SoCfabriccoherencyG6MCs,这个单元的作用微软没有特别介绍,但是从布局位置、名称等方面来猜测,这个单元应该是跟内存控制器相关,可能是沟通CPU、GPU、多媒体模块的统一数据总线控制器。

内存接口方面,XBOXX的SoC一共包含了8个GDDR6内存控制器,一共拥有20个通道,每个通道16bit,位宽320bit,在搭配等效频率为14GHz的GDDR6内存时,其最大带宽可达560GB/s。但是微软在这里采用的是非对称内存设计,总计16GB内存中,10GB部分的最大带宽为560GB/s,其余的6GB最大带宽仅为336GB/s。

除了分区域图片外,微软也给出了内部总线和模块连接简图。根据图片提供的信息,处理器内的所有部件都被挂接在可扩展数据总线(ScalableDataFabric)上,其中处理器是以CCX的方式挂接的,和AMD在锐龙处理器中的处理方式基本相同,其余部分包括20个通道的GDDR6内存控制器。按照带宽来计算的话,每个内部通道的带宽应该为56GB/s——在这里,微软用相同的颜色和样式标记了可伸缩数据总线和GPU部分的连接,也是采用了10个通道,但不确定带宽规模和GDDR6连接总线是否相同。其余部分还包括系统连接器、I0连接器(提供了PCIe4.0x8的连接总线)以及媒体连接器。其中系统连接器挂接了HSP、MSP和音频单元,媒体连接器挂接了显示模块、视频解码模块等。需要注意的是,系统连接器和媒体链接器互联互通,并且和HSP建立联系,也可以通过总线和CPU、GPU产生数据交换。

在音频处理方面,微软特别介绍了XB0XX全新加入的音频处理模块,微软宣称这个模块的单精度浮点计算能力甚至比之前XBOXOneX上使用的那个AMD八核处理器要强。整个音频计算模块包含CFPU2、Opus实时解码器以及名为Logan的音频计算模块三个部分。其中CFPU2部分包含了2个4路FPSIMDDSP和4个浮点计算引擎,这些可编程的部件可以完成高吞吐量的卷积、FFT、混响和频域音频计算。Opus实时解码器和采样率转换器能够完成多达300个音源实时解码计算处理。Logan核心则包含了4个DSP单元,支持SRC、aduioFX、XMA解码等功能,主要用于完成超过300个音源的XMA硬件解码的工作。微软也解释了为什么需要如此强大的音频计算器,因为微软认为音频是游戏中影响真实性的重要部分,比如在一些场景中可能呈现三四百个不同位置的音源,并可能互相影响,只有拥有强大的计算效能才能完成这样的计算并带来不错的效果。

XBOXSeriesX处理器GPU部分介绍

在本次会议上,微软特别提到了GPU部分的设计。微软坦承现在的XB0X已经处于落后的境地,XBOXX要实现的目标是更逼真的场景、更高的分辨率和更出色的帧率,要达到这一点需要在GPU架构上做出调整使其更有效率。

XBOXX采用的是AMD全新RDNA2架构的GPU,这是在之前的发布会中公布的内容,现在微软带来了更多的细节。技术特性方面,XBOXX的SoC一共拥有28个双CU(DualCU)单元,但是目前只激活了26个。整个GPU架构采用了统一几何引擎,支持Mesh渲染几何引擎、支持分布式原语和光栅化处理、支持屏幕分区块进行颜色和深度处理、支持多核控制指令、支持三级缓存和TLB等。这些新技术和新架构设计的引入,为XB0XX的GPU带来了更好的效能和更出色的性能,并且在控制、有效性能输出上也会更为灵活。

根据XBOXX的GPU宏观架构图来看,整个GPU部分通过共享5MB的L2缓存的数据总线和系统沟通,内部的GPU计算部分被分为4组,每组拥有7个双CU单元,并搭配了相应的L1缓存、色彩和深度处理单元。在CU部分,每个双CU单元拥有自己的L0缓存。通过L0、L1和L2,XBOXX的GPU组成了自己的三级缓存系统。此外,每两组也就是14个双CU单元共享光栅化、Prim、Shader输入等单元。另外,整个GPU还设置了包括命令处理器、几何单元、GDS、DMA、显示输出等功能模块。

进一步去了解XBOXXGPU部分的CU单元,可以看到其与RDNA的CU单元设计基本上是一脉相承的。在RNDA中,两个CU单元捆绑在一起称为WorkGroupProcessor。而在XB0XX中,这种结构被称为2CU。根据微软的数据,每一个2CU中包含了CU0和CU1两个CU组,一共拥有4个SIMD单元,搭配4个标量ALU单元,每个SIMD单元能够执行32个标量FP32浮点的FMAD计算。那么对于一个2CU单元而言,就可以执行128个标量FP32的FMAD计算。在指令能力方面,每个2CU单元中的任意一个CU单元每周期都可以执行7个指令操作,包含2个矢量ALU指令、1个矢量数据指令、2个排序和2个控制指令。这样一来,XBOXX的一个2CU单元每周期可以执行256个32bit的FP计算或者512个16bit的FP计算。另外,一个2CU单元中还包含了2个光线追踪加速模块和2个纹理模块,以及2个L0缓存和共用的指令、排序单元等。

从XBOXX的整个GPU模块来看的话,XBOXX中一共拥有28组2CU单元,总计3584个流处理器(每一个可执行标量FP32FMAD计算的单元被称为一个流处理器,每个2CU单元有128个可执行标量FP32FMAD计算的单元),但是目前微软只开启了26个2CU单元,相当于只拥有3328个流处理器。保留的2个2CU单元也就是大约7%的性能目前微软没有说什么情况下会开启,也没有表示有何种用处。

在性能方面,微软给出了部分性能增长的信息。比如2013年推出的XB0X0ne,计算能力为1.3Tflops,支持DX11.1,面向1080p的显示设备。后期推出的XB0XOneX则面向2017年的4K分辨率设备,整体计算能力也增加至6Tflops。XB0X则面向的是8K分辨率的显示设备或者4K@120Hz的显示器,目前计算能力为12TFlops,其余包括带宽、三角形计算能力和像素填充能力等都是前代产品的数倍之多。

XBOXSeriesX的特色技术

虽然硬件计算性能大幅度提升,但是考慮到目前的游戏计算需求很高,因此微软还在XBOXX中加入了可变像素比率渲染VRS技术。这项技术的本质是将那些画面中被严重遮挡或者玩家不太关注的区域采用较低分辨率的渲染来实现,这样可起到既不影响显示效果又节约计算效能的目的。在XBOXX中使用的VRS技术以XY轴划分8x8像素的区域为基准区域,根据不同的区域位置和情况使用内容适应像素渲染或者动作适应像素渲染,其中前者是根据画面内容来判断缩减渲染的区域,比如玩家很难注意的部分内容。后者是根据画面变化情况判断缩减渲染的区域,比如多帧画面快速变化时的动态变化内容。这些缩减渲染区域输出1x2、2x1、2x2等不同的像素,整体画面节约的像素比率在1倍到8倍之间。并且VRS技术会避免空洞、抖动或者输出大面积的棋盘状画面。该技术和时间抗锯齿(TAA)是完全兼容的,并且只消耗“微小”的面积成本,却能够带来10%~30%的性能增幅。

另外一项功能被称作取样器反馈流(SFS),这个功能在之前文章中也介绍过,不过此次微软详细介绍了SFS的工作流程。SFS是XB0XX速度架构的重要技术组成部分,其目的是根据需要向内存中载入合适的纹理资源,而不是在任何情况下都载入全分辨率的纹理资源,后者会带来存储系统极大的压力并且严重影响性能。其基本做法是在设置大尺寸纹理资源的时候,为其创建一系列小尺寸纹理资源,并且这些纹理资源都可以分块进行处理。举例来说,一个用于4K分辨率的全尺寸1024x1024纹理资源由大小为128x128的64个区块组成,其中等尺寸纹理资源则可以由512x512纹理、16个大小为128x128的区块组成,小尺寸纹理资源则由4个128x128的区块组成,总尺寸为256x256。有了全尺寸、中等尺寸和小尺寸纹理资源后,GPU在场景需要加载纹理资源时,将使用上一帧画面的结果来确定哪些纹理需要读入内存,并且大多数纹理将以较低尺寸版本读入,如果游戏需要高分辨率纹理,GPU也可以在下一帧将其替换,尤其是在出现较远距离的视图或者被遮挡、不重要的场景中,小尺寸纹理就会被使用。这样一来,整个硬件系统的压力就能得到一定程度的减轻,同时并不会影响视觉效果。微软的数据显示这项技术能带来最多2.5倍的内存利用率提升以及60%的I0资源释放,芯片面积耗费也很低,同样是相当“超值”的技术。

最后一个非常重要的功能就是光线追踪。微软宣称XBOXX的GPU以较小的代价支持了硬件级别的光线追踪,带来了大约3~10倍的性能提升,但是微软又特别强调,光线追踪是传统游戏渲染方式的加强,光线追踪和光栅化渲染并不是互相替代的关系。其GPU的峰值光线方盒处理速度为380G/s,峰值光线三角形处理速度为95G/s,硬件渲染器可以完成BVH遍历过程或者材质渲染等。从微软的描述来看,似乎AMD的RDNA2架构在光线追踪的硬件实现上和英伟达的方案存在较大差异,因为微软在这里又一次强调了芯片成本耗费,使用的单词是"minor",也就是较小的芯片成本耗费带来了不错的效能提升,相比之下英伟达在图灵架构中首次实现了光线追踪技术,其成本耗费虽然相对整个芯片面积来说不算太大,但是也不至于使用"minor”这样的单词,因此我们猜测AMD在RDNA2架构的硬件光线追踪方面有自己独特的设计,不过微软和AMD并未给出太多相关信息。具体的差异可能要等到AMD发布RDNA2架构的时候才能进一步比较了。

除了上述内容外,XBOXX的另一个特色技术是支持机器学习,这个功能主要用于游戏角色行为和分辨率缩放等,微软宣称XB0XX的机器学习功能只使用了极小的面积耗费,带来的性能提升也高达3~10倍。在机器学习功能的应用方面,分辨率缩放其实是和英伟达的DLAA深度学习抗锯齿类似的技术,都是通过先建立一个较低分辨率画面对比较大分辨率画面缩放差异的模型后,再使用较低的分辨率来渲染游戏画面,并通过机器学习模块根据之前的模型对较低分辨率画面进行放大。在一切适宜的情况下,这类技术能够显著降低高分辨率画面的图形渲染性能需求(毕竟实际运算只以较低分辨率进行),幅度甚至可达30%。除了这个功能外,另一个机器学习应用也就是角色行为则是非常少见的,这意味着未来游戏中的角色人物有可能以比较智能的方式和玩家对话,甚至选择游戏走向或者游戏结果等,这是比较令人惊喜的功能。另外一些新功能还包括32bitHDR、新的虚拟化支持等。

XBOXSeriesX准备好了

从本文的介绍可以看出,微软在XB0XSeriesX上带来了大量优秀设计,其中最核心的是AMD和微软联合研制的SoC,堪称目前最强大的SoC产品之一,其性能和功能表现都非常出色,再加上微软在系统和软件上的优势,以及微软XB0X在业内的地位,有理由相信未来XBOXSeriesX会带给玩家耳目一新的游戏体验。从技術端来说,微软已经做得足够好,整个系统架构完全是面向下一代游戏而设计。需要指出的是,今天本文介绍的特色技术和设计依旧只是这个系统的一小部分内容,包括VR、XBOX新的游戏系统以及未来游戏模式等内容都没有太多详细的资料,毕竟这是Hotchips年会,主要面向的是系统和芯片。现在,XB0XSeriesX已经准备好了,对今年内上市的这款游戏主机,人们需要关心的除了价格,剩下的就是看看索尼会在PS5上带来怎样的回应了。

猜你喜欢
纹理内存音频
外部高速缓存与非易失内存结合的混合内存体系结构特性评测
基于BM3D的复杂纹理区域图像去噪
“春夏秋冬”的内存
使用纹理叠加添加艺术画特效
必须了解的音频基础知识 家庭影院入门攻略:音频认证与推荐标准篇
基于Daubechies(dbN)的飞行器音频特征提取
TEXTURE ON TEXTURE质地上的纹理
音频分析仪中低失真音频信号的发生方法
消除凹凸纹理有妙招!
Pro Tools音频剪辑及修正