片上系统设计案例分析—Xbox主机

片上系统设计案例分析—Xbox主机

  • 发布时间:2021-04-03 11:48
  • 访问量:

【概要描述】本文首先从介绍图形API的管线结构和发展历史;接下来,介绍了20世纪90年代后至今的微软公司几代Game Console主机的硬件架构和历史;最后,以Xbox Series X为例,介绍了游戏主机的Graphics IP和SOC系统实现。

片上系统设计案例分析—Xbox主机

【概要描述】本文首先从介绍图形API的管线结构和发展历史;接下来,介绍了20世纪90年代后至今的微软公司几代Game Console主机的硬件架构和历史;最后,以Xbox Series X为例,介绍了游戏主机的Graphics IP和SOC系统实现。

  • 分类:研究院
  • 作者:壁仞科技研究院
  • 来源:
  • 发布时间:2021-04-03 11:48
  • 访问量:
详情

A system on a chip (SoC es-oh-SEE or sock) is an integrated circuit (also known as a "chip") that integrates all or most components of a computer or other electronic system. These components almost always include a central processing unit (CPU), memory, input/output ports and secondary storage, often alongside other components such as radio modems and a graphics processing unit (GPU) – all on a single substrate or microchip. It may contain digital, analog, mixed-signal, and often radio frequency signal processing functions (otherwise it is considered only an application processor) - Wikipedia.

SoC通过把整个(或大部分)系统功能集成到一个芯片上,实现全系统的PPA优化,提升效率,降低成本、功耗和系统尺寸。手机AP就是典型的SoC,已经发展到很高的技术水平,而苹果M1的出现,又让SoC得到更多关注。游戏主机芯片也是一类很有特色的SoC,之前讨论不多,本文将以Xbox主机为例分析一下其SoC需求挑战和实现方式。

结合游戏主机SoC的特色,本文首先从图形API出发,介绍图形API的管线结构和发展历史;接下来,介绍20世纪90年代后至今的微软公司几代Game Console主机的硬件架构和历史;最后,以Xbox Series X为例,介绍了游戏主机的Graphics IP和SOC系统实现。

 

从图形API到图形架构

 

Game Console主要有两个大的部分组成,一个是Graphics IP,一个是整个游戏系统的搭建。

图形API

Graphics IP需要符合相关的编程规范要求,通常的编程接口有DirectX,OpenGL等。DirectX有多个组件,我们这指的是图形学相关的Direct3D的部分。下面简单列举了DirectX中图形部分的发展历程。

  • DirectX 1(1995年)

    二维(2D)图像加速。

  • DirectX 2(1996年)

    二维图形增加动态效果,采用平滑模拟和RGB模拟两种方式对三维图形进行加速。

  • DirectX 3(1997年)

    实现较为简单的3D效果。

  • DirectX 5(1997年)

    雾化效果、alpha混合、纹理压缩。

  • DirectX 6(1998年)

    增加双线性过滤、三线性过滤等优化3D图像质量的技术。

  • DirectX 7(1999年)

    加入了坐标转换和光源渲染。

  • DirectX 8(2000年)

    引入pixel shader和vertex shader,可编程渲染单元。

  • DirectX 9(2002年)

    Shader model 2.0/3.0,强化了可编程部分设计。

  • DirectX 10(2007年)

    Shader model 4.0, 定义了Unified shader,Geometry shader。

  • DirectX 11(2009年)

    引入tessellation/multi-threading/direct compute/shader model 5.0。

  • DirectX 12(2014年)

    更底层的API,硬件抽象,提高多线程效率等改进。

 

Direct3D12的图形管线结构图

 

Figure 1 DirectX 12 管线结构图[1]

 

上图是DirectX的逻辑管线结构图,包含了整个过程中的输入和输出的resource view,root signature data,紫色和蓝色的部分是主要的流程stage,其中硬件架构实现上分为shader和fixed-function两种处理类型。其中shader主要在可编程单元执行,而fixed-function主要是采用固定管线pipeline设计。

  • Input assembler(fixed function unit)

    负责读取索引和vertex数据。

  • Vertex shader

    输入为vertex,输出为vertex,主要负责顶点渲染。

  • Hull shader

    输入为patch primitive,输出为patch control points和patch constant。

  • Tessellator(fixed function unit)

    曲面细分单元。为线段和三角形创造新的顶点和连接。

  • Domain shader

    拿到HS渲染过的control points和patch constant,以及曲面细分后的位置信息,将他们变成顶点。

  • Stream out(fixed function unit)

    将Geometry的输出的primitive写入内存buffer。

  • Geometry shader

    输入是各种primitive和邻接信息,输出不同的primitive。

  • Rasterizer(fixed function unit)

    光栅化单元,将primitive转换为pixel或者sample的过程。

  • Pixel shader

    负责像素渲染,输入为插值后的顶点数据,输出为像素颜色。

  • Output merger(fixed function unit)

    ROP(render output unit),负责depth-testing,frame buffer blending

 

Xbox系列历代主机硬件参数

从2001年第一代Xbox算起,今年微软Xbox系列主机已经过了20个年头,一共发表过4代主要的机型,其主要机型的硬件性能参数如下:

 

Xbox系列主机硬件参数表[2][3]

 

Xbox

Xbox是微软进入TV游戏主机领域的第一款产品,由Bill Gates亲自领导打造,Xbox的研发代号为“Midway”,二战期间,美军曾在中途岛战役中一举击沉日军4艘航空母舰,从而扭转了太平洋战争的局势。代号暗示了微软与当时强大的日本游戏主机产业对抗的决心。此时的TV游戏主机领域,日本人拥有强大的产业,Sony的第一代PlayStation销量超过1亿台,然而6年未更新的主机性能严重落后PC硬件的发展,微软想抢在Sony前面发布新一代主机,抢占先机。

微软不惜血本的定义了Xbox的硬件性能,Xbox是那个世代最好的主机硬件,之后微软不断投入,导致亏损超过40亿美元。在争夺第三方软件厂商方面,微软也不惜采用补贴开发资金和包揽广告费等非常规手段。游戏主机市场变成了微软、索尼、任天堂三足鼎立之势。

 

Xbox 360

Xbox 360的推出比PS3整整早了一年。当时的半导体发展速度甚至超越了摩尔定律,2005年,Intel公司已经推出了双核3.6GHz的PentiumD 9xx系列处理器,因此,Xbox360的处理器频率直接比前代Xbox翻了4倍以上。此外,图形API的发展也突飞猛进,DirectX8.0中引入vertex shader和pixel shader使得3D渲染使得游戏显示效果大幅提升,3D游戏爆发式增加。但急于抢占市场先机的微软未把握好产品质量,产品推出之后1年,三红事件集中爆发(主机电源按钮指示灯亮起3个红灯),微软并未公布三红的原因,但大多数情况系统处于高负载状态,三红事件使得游戏玩家体验不佳,微软信誉受损。

 

Xbox One

在经历了Xbox360的三红事件后,微软将系统的稳定性放在了重要位置,决定采用半定制的方式和AMD开发新一代的Xbox产品,Xbox One的SOC使用了AMD的处理器核心和graphics IP为基础搭建。因此在游戏开发方面,Xbox One也可以利用已有的PC软件栈进行游戏设计。不过定制芯片也导致了Xbox One的高成本,高达499美元的发售价格比PS4贵了整整100美元。后续微软还推出了两款改良机型Xbox One S(2016.8)和Xbox One X(2017.11),以增强图形性能和支持4K/60fps。

 

Xbox Series X

从Xbox one到Series X的3年里,工艺从28nm进化到7nm,频率并没有多大的提高,但是晶体管密度的增加使得存储和运算都进行的大幅提升,图形处理技术也有了不少突破,包括DLSS,Ray-tracing等新的渲染方式加入。和AMD合作多年后,微软也组建了自己芯片的研发团队,但是大部分的IP还是由AMD提供,包括核心的显示处理和CPU部分。CPU使用的Zen2是由AMD的明星架构师Jim keller领导开发的Zen的第二代产品。GPU也是基于定制的AMD RDNA2的架构。

 

搭建Game console系统 (Xbox Series X)

 

Game console的图形性能主要取决于CPU、Graphics IP和独立显存的性能,游戏console的SOC在几乎和PC相同的功耗下,需要提供更好的游戏性能,更小的机箱尺寸,更小更静音的风扇设计,因此需要更多创新的设计来保证系统工作的稳定性。这里我们以Xbox Series X为例,分析一个game console的系统组成。

下面是Xbox Series X的SOC结构框图。

 

Figure 2 Xbox Series X SOC架构图[4]

 

CPU部分包括2个zen2 core组,每个组里面4个core,每个core有512KB的L2 cache,每个组有4MB的L3 cache,每个core里面有2个256b的SIMD浮点处理单元。

GPU基于AMD RDNA架构定制,一共12Tflops的浮点处理能力,支持可变速率渲染,光线追踪,部分驻存纹理,一共2个shader engine,每个shader engine里面2个shader assembly block,每个shader assembly block里面7个workgroup processor(WGP),一共有28个work-group processor。里面还包含了一些专用图形fixed-pipeline单元,color/depth,Raster,Prim,shaderInput,Geometry,以及一些系统模块,如command processor,GDS,DMA,display。Graphics IP里面采用了4级的存储结构,L0$ - L1$ - L2$ - GDDR。另外,每个shader engine中有一个WGP(灰色)用于harvest来优化产品的yield。

 

Figure 3 Xbox Series X 图形处理IP架构图[4]

 

互联和IO部分,Xbox Series X使用了3个Hub分别用于媒体、系统、IO处理,L2 cache和GDDR之间采用了scalable data fabric,一共20个channel。I/O则采用了8lane的PCIE4和HDMI2.1。

片外GDDR6内存一共16GB,其中10GB提供560GB/s的带宽,其中6GB提供336GB/S的带宽。

多媒体部分,支持4个显示器输出,视频编解码器提供4K/8K的AVC,HEVC/VP9 HDR 解码,AVC/HDR编码。另外还有一个声音处理器单元。

安全部分,片上有一个hardware security processor负责整体的安全方案,mediastreaming platform(MSP)负责游戏的加解密版权和压缩方案。

总体上,Xbox Series X 提供了Xbox One X 2倍的GPU性能,2.4倍的GPU perf/w, 3倍的CPU性能,1.7倍的内存带宽,2倍的IO带宽。

 

Figure 4 Xbox Series X 塔形机箱内部构造图[4]

 

Xbox Series X的机箱比传统的游戏机箱小了20%,为了满足功耗和散热需求,Xbox工程师进行了多种策略来处理散热问题,上图是整体塔形机箱的设计,按机箱的摆放方向,最上层是光驱和PSU电源模块,下面是南桥的PCB,再下面是中央底座,下方是SOC的PCB,风扇处于南桥和SOC PCB之间,最下面是heat sink。SOC的PCB也分成了2面,上下层分布不同的芯片便于分开散热。

另外,SOC芯片功耗管理设计方面,Xbox Series X也有很多创新的设计:

  • PSM (power supply monitor)

    使用片上的电压monitor来稳定电压。

  • DLDO (digital low dropout regulator)

    每个CPU core提供不同的工作电压。

  • Fine Grained DVFS (dynamic voltage frequency scaling)

    优化voltage和frequency的曲线,在同样的频率下能够使用更小的电压。

  • CLDO (chip low dropout regulator)

    每个chip使用不同的的电压,减少CPUL2/L3的power消耗。

  • DC-BTC (direct current – boot time calibration)

    对DC电压调节器的耐受和老化进行标定来减少电压。

  • Process re-centering

    调整半导体制程工艺(Vt,ldsat)来优化功耗和性能。

  • Vmin search

    使得每个chip高负载场景下有不同的电压最小值。

  • Power states

    为不同的工作场景设置多个GPU/CPU/fabric/memory的power state,从而节约功耗。

  • Configurable GPU WGP setting

    提供不同场景下yield和power之间的tradeoff

 

总结

 

微软花费了数百亿美金进入TV游戏产业,从软硬件出发,打造了4代game console后,已经站稳脚根。打造一台跨越数年生命周期,性能稳定优秀,并且软件容易开发,移植相对容易的game console主机是一件很不容易的事情。核心SoC在游戏主机中起到的关键的作用,也是非常典型的定制SoC案例,非常值得分析和讨论。

 

参考文献

 

[1]https://docs.microsoft.com/en-us/windows/win32/direct3d12/pipelines-and-shaders-with-directx-12

[2]https://en.m.wikipedia.org/wiki/Xbox

[3]《游戏机实用技术》500vol.

[4]PaulPaternoster, Andy Maki, Andres Hernandez, Mark Grossman, Michael Lau,David Sutherland, Aditya Mathad, ISSCC2021, XBOX Series X: ANext-Generation Gaming Console SoC

近期文章

流体力学与物理导引神经网络

流体力学与物理导引神经网络

现代科学中众多复杂的关键应用依赖着对流体运动的精确预测。然而,由于流体力学方程数值求解的复杂性,基于传统数值方法的高分辨率长周期数值模拟运算量大且难以保证数值稳定性。本文将深入介绍PINN方法在流体计算中的应用并分析其与传统数值方法的差别。
2021-10-25
物理导引神经网络方法分析

物理导引神经网络方法分析

随着GPU能力的提升,支撑深度学习的软硬件生态得到了快速发展。通过深度学习来解决科学计算问题成了一种趋势,其中用深度学习来求解偏微分方程的方法也逐渐兴起。尤其引人注意的是一种称为物理导引神经网络的方法,其为科学计算领域注入了新的活力。
2021-10-18

联系我们

这是描述信息

招贤纳士

公众号二维码
这是描述信息

 版权所有   ©   上海壁仞科技有限公司   |    沪ICP备19047354号