片上系统设计案例分析 - Xbox主机
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
从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的图形性能主要取决于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案例,非常值得分析和讨论。
壁仞科技研究院作为壁仞科技的前沿研究部门,旨在研究新型智能计算系统的关键技术,重点关注新型架构,先进编译技术和设计方法学,并将逐渐拓展研究方向,探索未来智能系统的各种可能。壁仞科技研究院秉持开放的原则,将积极投入各类产学研合作并参与开源社区的建设,为相关领域的技术进步做出自己的贡献。
关键词
系统
架构
性能
主机
微软
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。