APP下载

为“宅男”定制的超大芯片这次微软揭开了它的全部“秘密”

2021-06-20张平

微型计算机 2021年5期
关键词:功耗噪音内存

张平

距离微软Xbox Series X游戏主机正式发售已经过去一段时间了,虽然由于缺货、涨价等因素,有关这款游戏主机的争议依旧很多。但不得不说,凭借全新设计的SoC和整体架构,XboxSeries X还是带来了超越之前所有游戏主机的强悍性能和出色的使用体验。不过,针对这款主机产品,人们也有很多问题,比如SoC架构为什么要这样设计?它的散热设计优势在哪里?为什么没有开启所有的GPU单元?在最新的ISSCC会议上,微软详细解答了大家关心的诸多问题。

天下苦续航久矣

在2021年2月的ISSCC(国际固态电路会议)上,微软进行了主题为“Xbox Series X SoC:下一代游戏主机”的演讲。在30分钟里,微软详细介绍了Xbox Series X SoC(对于这款处理器下文将简称为“X SoC”,而游戏主机下文简称为“Xbox X”)的相关内容,虽然其中有关架构和性能的部分信息大家之前应该有过了解,但是更多内容则是微软首次披露,包括SoC的整个架构平衡、散热设计、存储系统以及制造、工艺选择、成本等方面的内容,依旧有不少值得挖掘的信息。

代号“Scarlett”:XboxSeries X SoC概述

X SoC是微软近几年来设计过的最庞大复杂的SoC产品。有关它的一些信息本刊此前有过解读,因此对重复的内容本文仅做必要的简介。

X SoC的研发代号是“Scarlett”,这也是微软选择台积电N7制程也就是7nm制程制造的一款SoC产品,整个SoC集成了153亿晶体管,芯片尺寸为360.4mm2,两个边的长度分别是15.83lmm和22.765mm.

Scarlett内部封装了移动架构的Zen 2内核,总计8个,整体配置分为2组,每组4个内核,每组内核共享4MBL3缓存,大致的配置方案与AMD面向移動市场的Renoir和Lucien ne处理器类似。GPU方面则采用了RDNA架构,拥有12TFLOPS的算力,通过可伸缩的数据连接结构连接至CPU。整个GPU一共设计了56个计算单元,但是只开启了其中的52个。

内存方面,整个SoC通过20个16bit通道连接至16GB GDDR6内存,其中10GB是采用了高性能通道设计,可以为游戏提供560G B/s的带宽。其余6GB带宽仅为336GB/s,性能较低,适用于非游戏场合或者非内存瓶颈场合。由于带宽降低,这部分内存的功率也比较低。

视频编解码方面,X SoC支持4K或者8K的AVC编解码、H EVC/VP9HDR的解码以及AVC HDR的编码。另外处理器内部还拥有3个音频协处理器,可以实现MOVAD(支持Opus或者Vorbis),CFPU2频域处理,以及用于MEC的Logan IP(用于计算多通道回声消除),并且可以消除麦克风背景噪音等。

安全方面,X SoC内部增加了HSP(硬件安全处理器),并启用了信任根以及所有加密功能,比如安全硬件加密秘钥等。当然,HSP也是微软的Pluton加密体系结构的一部分。另外,其内置的MSP媒体流处理器可以对AES加密的外部媒体设备进行快速加密和解密,其性能足以满足PCIe 4.0高带宽的需求。存储方面,和上一代7200rpm的HDD硬盘相比,Xbox Velocity体系结构在启用NVMe以及MPS等技术后,大幅度提高加载速度,并为尚未以压缩格式存储的游戏节约大约35%的空间。

微软表示Xbox X和X SoC带来了相对于上代产品3倍的CPU性能、2倍的GPU性能、1.7倍的内存带宽、2倍IO带宽的、2.4倍的每瓦特性能、相同的声学表现但是同时只有上代产品0.9倍的体积,并且能够带来更严格的媒体版权保护等。

在大家比较关注的功耗方面,微软没有给出太详细的数据,只说和2013年的芯片相比,X SoC的功耗提高了大约1 5%。有媒体根据微软的相关数据和实际运行情况给出了估计数据——整个Xbox X的功耗峰值应该在270W左右。这是因为微软提供了最高315W的电源,考虑到必要的余量,因此主机的功耗应该在270W左右比较合理。在预估的270W中,X SoC应该占据很大一部分,微软宣称自己不会在未确定芯片所处的技术环境的前提下提供这款芯片的功耗表现。另外,GDDR6内存和20个内存通道也会占用部分能耗,当然还有SSD。因此合理估计的话,X SoC和GDDR6内存的功耗大约在225W左右,考虑到16Gbps GDDR6芯片的单个功耗在2.5W左右,那么内存应该为25W,推测出X SoC最大应该可以承受200W左右的功耗。

当然以上只是估计数据,考虑的是SoC满载的情况,但这样的状况在实际使用中是基本不会出现的,即使是运行对计算压力很大的游戏《战争机器5》,Xbox X的实际测试功耗也仅为202W。

台积电前来助力:XboxSeries X SoC的工艺优化

除了设计方面微软做出了大量改进外,在制造方面微软也配合厂商进行了优化设计。一般来说,制造一个处理器可能会有数千个选项,其中所有的选项都会影响到别的选项。厂商需要在这些复杂的配比中找到合适的组合,以生产出拥有最佳性能、最佳频率、最佳功耗和最佳效率的产品,这都需要不断尝试,才能获得相对出色的数值。

微软介绍了自己配合AMD和台积电,在SoC的制造上实施了两种新方法从而获得了更出色的产品。其中之一是重新校准并进一步确定针对晶体管频率和漏电流定义所需的最小电压值和最小电流值;另一个方法是在定义的搜索空间内找到局部电压最小值,也就是Vmin。

通过这两个手段的结合,微软宣称SoC的功耗降低了10%-15%,这是纯粹从制造角度获得的收益。但是,这类优化的效果可能取决于耗费的时间以及投资,毕竟不断测试芯片的电压和电流值是一个非常麻烦的工作,会占据大量工时,至于微软具体是如何实施的暂时还不清楚。

产能问题:GPU良率限制

一般来说,较大尺寸的芯片在生产过程中都会不可避免地产生各种缺陷,并且不同的芯片其性能表现也有所不同,对芯片设计和制造而言,就需要做到兼顾性能和缺陷。和台式电脑、笔记本电脑等产品可以设定多个不同档次的芯片并使用屏蔽部分单元、降低频率来实现产品分级有所不同的是,游戏主机往往只有一个硬件配置和一个确定的性能目标,因此在良率控制上需要更为精细地调整。

上文介绍的很多内容主要是涉及性能、噪音和功耗,但是在良率方面,X SoC也非常值得研究。其中一个关键内容就是X SoC在架构设计时包含了56个计算单元,但是最终只开启了52个。有关这一点,微软在ISSCC上披露了很多详细的信息。

微软在这里定义了一个名为WGP的单元,一个WGP单元包含2个GPU计算单元和一些共享资源,因为X SoC拥有56个计算单元,这意味着整个SoC上拥有28个WGP。

微软宣称很多已有的芯片可以启用全部28个WGP,并且GPU部分的目标是提供12TFLOPS的性能。因此微软在这部分可以选择2个配置方案:一是选择1675M Hz下启用28个WGP,另一个方案则是在1825MHz下启用26个WGP。

这两个方案均可以达到12TFLOPS,但是前者频率较低,这意味着较低的电压和功耗。微软提到,如果启用全部28个WGP,那么总功耗将降低20%。

实际上,节省20%的功耗是相当可观的,这意味着可以提高每瓦特性能,且拥有提高性能的空间。但是问题在于,受限于芯片良率问题,当所有芯片都启用28个WGP时,微软可能没办法获得足够数量的芯片,这意味着28个WGP的版本可能在经济学上缺乏意义。

微软给出的数据显示,目前使用的台积电DUV 7nm工艺,其宣称缺陷为每平方厘米0.09个。简单计算可知,300mm的晶元拥有706.86mm2,这意味着会有64个缺陷存在,再根据X SoC的面积可知,300mm晶元除去边缘圆形部分,可以生产大约147个芯片。在这147个芯片中,如果都满足微软设定的频率和功耗数据,再考虑缺陷率,则每个晶元将拥有107个合格的芯片。因此,这部分的收益率就是73%。

当然,这里的计算是理论值。在收益率73%的情况下,考虑到SoC中GPU占据了最大部分,因此缺陷大部分都会发生在WGP上,这使得厂商可以通过禁用这个WGP,来使得整个芯片正常工作。当缺陷发生在非GPU部分,比如CPU或者缓存的话,则整个芯片就会报废,当然这种概率不是没有,但的确不高。因此,当缺陷率为每平方厘米0.09个,且同一个芯片上不发生2个缺陷(这种情况不是没有,但是极少)的情况下,通过禁用2个WGP而选择只有26个WGP的芯片,可以使得几乎整个产线上的芯片都可以使用并有效降低接近1/3的芯片成本,显然这是一笔划算的经济账。

微软曾经提过这代游戏主机的处理器成本相比Xbox One X高很多,更比2013年的Xbox One高不少(本刊之前的文章做过详细分析),其原因主要在于较大的芯片面积、更先进的工艺节点、更复杂的生产步骤、更高的晶片价格、更低的良率以及更多知识产权等。因此,以20%的功耗为代价,获取接近1/3的成本降低是极为划算的,甚至26个WGP的方案在很大程度上影响了Xbox X的供货。因为如果采用28个WGP的方案,那么根据现有统计数据,在微软已经卖出了233万台Xbox X的情况下,就需要21800个300mm的晶元(73%良率)。如果采用26个WGP的方案,这个数据会降低至1 6000个。考虑到现在Xbox X等游戏主机缺货的情况,微软做出这样的选择显然是非常合适的。

解决芯片散热问题

所谓热密度,是指芯片单位面积所产生热量的数值。这个数值可以用于指代整个芯片,也可以单独考察芯片的某一部分,尤其是对SoC产品而言。一般来说,芯片热密度较高的区域,可能会在高负荷工作下呈现极端高温,且难以快速散发出去,这将导致整个芯片运行不稳定或者影响芯片性能。对芯片设计而言,需要将两个热密度较高的区域尽量远离以避免互相影响,比如CPU和GPU區域,这对芯片设计提出了更高的要求。一般来说,SoC中热密度最高的区域是GPU,因为SoC的GPU规模大且数据流量也大,晶体管频繁开关工作会带来较高的热量,从而带来了这个区域相对较高的热密度。

但是,微软宣称X SoC上的情况有所不同——在这款SoC中热密度最高的区域反而是CPU区域。因为X SoC使用了AMD 2en2高性能核心,它相比上代超高性能功耗比的Jaguar内核有着更高的热密度,尤其是在游戏负载增加时,CPU内部双256bit浮点单元是功耗和热密度最高的区域。

从微软展示的图片(下图)可以看到,当进行某种任务时(微软没有说明图片中SoC正在进行怎样的工作,是游戏还是专门的负载测试),CPU的浮点区域最高温度高达87.4。C,接近极值。相比之下,GPU部分的最高温度更低,为80.9。C。当然,温暖的高低还取决于硬件的频率选择等因素,因此设计人员需要在CPU、GPU以及整体的特性和散热、噪音等方面找到平衡点。

微软也表示,由于CPU现在存在温度过高的情况,因此散热设备的噪音和CPU的温度存在显著关联。微软还给出一个数据,那就是CPU对噪音的影响是不成比例的,CPU每多消耗1W功耗,其带来噪音的能力是GPU的5倍。

因为这种情况的存在,微软花了更多的时间来进行CPU方面有关频率、功耗的优化,从而在性能和散热之间进行权衡。这也是为什么在启动多线程时系统以3.6GHz运行,而在禁用多线程时系统可以运行在3.8GHz的原因之一。

最佳体验:在噪音、功耗和散热方面进行平衡处理

对于任何独立的系统,比如游戏主机和PC,要在噪音、功耗和散热等方面达到平衡都类似于求解多维方程,尤其是新系统具有更大的功耗输出,但同时又严格要求设备体积的情况。微软解释到,对于Xbox X而言,他们的设计目标是比上一代产品的TDP高15%,但是体积缩小20%,同时在噪音方面和上一代基本相同。

最终的结果是Xbox X相比上代产品的体积减少了10%,但是微软启用了三通道并行的散热设计方案,设计了同时能够给SoC和内存散热的一体式均热板散热片,用于供电部分、南桥和其他组件散热的中央机箱气流挡板,以及用于后部电源的散热通道。在风扇方面,Xbox X采用的是130mm轴流风扇,使用了三相无刷电机。这种电机的特性是高性能、低噪音以及高可靠性,能够满足Xbox X在长期使用中的稳定性和可靠性。

微软还提供了Xbox X运行时详细的截面热成像图。从这个图中可以看出,右侧的SoC散热器部分是整个设备散热压力最重的区域,中间是气流挡板,左侧则是系统的其余部分,包括带有10芯片的第二块PCB。整个Xbox X有2块PCB,其中一块包含了X SoC,另一块则用于所有和10相关的设备、连接等。这一设计可以区隔两个部分的热量并提高空间利用率。不过其唯一需要考虑的问题就是电路板之间的连接会产生比较小的热量,另外它们之间的数据带宽也需要认真处理。

一点也不浪费:芯片的电源控制优化

一般来说,一个给定的系统,给出电源状态后,就会得到有关能耗、热量、噪音以及当前任务所需性能的数据。比如通知系统在峰值状态下运行,可以尽快完成计算任务,但是会降低能耗比,带来更多热量和噪音。

PC会经常改变电源状态,比如针对不同的情况有不同的电源状态设置。AMD之前推出了名为CPPC2的技术,允许电源状态根据不同的使用情况实现连续不断的变化。但是,游戏主机却不能使用类似的功能,因此AMD的CPPC2技术和游戏开发者使用主机的方式存在差异。

为此,微软重新定义了系统的一部分电源状态,以便为游戏、视频播放、下载以及其他功能提供正确的电源配置和性能输出。根据微软的数据,Xbox X的每个部分都有自己的一组电源状态。其中,CPU拥有8个电源状态,GPU拥有5个电源状态,GDDR内存拥有3个电源状态,其余内部结构拥有4个电源状态。整个Xbox X系统就在这些不同的电源状态内根据需要组合运行。

此外微软还定义了一些条件,使得开发人员能够针对给定的功能和性能进行优化工作和测试。在微软的定义中,游戏运行在1920x1080分辨率下至少30fps是最基本的标准,但是如果开发人员认为系统性能已经超出需求,还可以手动调整电源状态从而得到不同的性能水平。

微软给出了一张表格用于展示Xbox X的性能水平和电源状态的设置信息。可以看到在3D游戏时,所有的性能状态都设置为最大,因此系统可以完全体现出最高级别的性能数据。在视频播放中根据不同的视频格式,系统将会设置为不同的电源状态和性能级别,其中要求最高的是播放8K@30Hz视频时,CPU将拥有相当于游戏满载时27%的电源消耗上限值。另外还有包括后台下载、连接等待、待机等待等模式。当然,除了微软给出的数据外,还有包括2D游戏或者独立游戏这些性能消耗较小的模式,以及系统检测到某些性能要求极低的情况。

提高能耗比:新的电源管理方式

微软提及,这次新的SoC设计目标之_就是试图在SoC上尽可能多的区域实现功耗控制,即使可以节能1%,也能积少成多。此次微软通过与AMD合作实现了很多新功能,其中很大部分也被使用在AMD的APU和CPU中。从时间上来看,X SoC是当时第一个基于2en2的SoC产品,因此很多技术在其之上的应用具有初创和独创性。微软宣称整个X SoC的能耗控制包括三个关键领域,一是电能监视和调节,二是流程优化,三是电源状态管理,这三者分别带来了大约10%、10%-15%以及可调范围的能源节省。

首先来看电能监控和调节部分。微软在发布会上给出了很多之前在AMD相关产品上已经使用过的功能,包括数字低压差稳压器、动态电压频率缩放和直流启动时校准等。实际上AMD在第一代Zen架构的产品中就已经实现了电能监控的相关功能,当时AMD能够提供给内核内部关键路径能耗有关的额外信息,这样电压保护的相关设计就能够针对给定的工作负载进行优化了。并且,这个功能可以和DLDO稳压器一起使用,这个稳压器可以提供基于每个核心实际情况的电压控制的功能,而不是基于每个AMD定义的ccx。X SoC引入了大量使用Zen 2架构但是面向移动平台的技术,更类似于Renoir APU。不过,AMD自己也只有到了第二代Lucienne APU上才为移动平台配备了DLDO功能,类似的功能在桌面平台已经使用两代。

另外,DVFS(细粒度动态电压频率缩放技术)也是AMD在锐龙和相关APU上使用的—项技术。这个技术不仅能更好地控制CPU频率,而且可以将电源状态降低到芯片在目標频率下所能耐受的最低电压附近。这样一来通过DVFS,AMD就可以降低芯片电压来降低功耗从而提高能耗比,再配合DLDO功能,又能够在每个核心上精细地实现电压和功耗控制。此外,DVFS还可以搭配AMD的CPPC2电源状态以实现更好的效果。

另一个技术是CLDO(芯片低压降稳压器)。AMD很少提及这个技术,但是微软却给出了其详细内容。这项技术的目的是用于降低L2和L3缓存的功耗。随着缓存增大,缓存本身的功耗也成为整个芯片上需要严格控制的部分,这一点在移动处理器上还好,因为2en2架构移动处理器的每个ccx只有4MB L3缓存,但是在台式机上,缓存高达16MB,是X SoC的4倍。因此,这个技术在台式机上早有应用,在移动设备上也有显著效果。微软在这里明确提及了这个功能,但是没有说明是针对CCX还是每个核心。但无论如何,CLDO还是相当有效且能够提高性能功耗比的。

最后一个技术则是DC-BTC(电流和电压容差的启动时校准)。这个技术比较老了,是AMD在推土机时代开发的,目的是在芯片和组件老化时提供相对合理的电压加成值。一般来说,芯片长期使用后由于电子迁移和热效应会老化,通常需要更高的电压才能达到之前较低电压的效果。如果没有DC-BTC控制的话,SoC会在一开始就略微提高电压,这称为“老化裕度”,并伴随着较高的电压调节容差。这样做实际上带来了恶性循环,因为较高的电压会带来更高的电子迁移率和发热量,这样会导致芯片提前老化。因此,在芯片工作时以某种方式进行老化校准并给予最低限度的电压加成,可以使得芯片功耗更低,寿命更长,同时提高了性能功耗比。

小小的游戏主机,庞大的系统工程

其实很少有厂商如此详细地披露自己在研发一款产品中遇到的各种技术选择和大量的测试情况。之前根据微软的消息,大家似乎已经了解了Xbox X以及X SoC的各种内容,但是在ISSCC上,微软又一次给出了更多的内部资料,这又使得我们可以更为深入地了解到微软是如何在性能、功耗、噪音、体积、成本等诸多因素之间平衡的,甚至包括为什么这样做以及背后的原因,面临的选择都是什么。可以看到,一个看似小小的游戏主机,实际上是一个庞大的系统工程。

猜你喜欢

功耗噪音内存
基于任务映射的暗硅芯片功耗预算方法
外部高速缓存与非易失内存结合的混合内存体系结构特性评测
噪音,总是有噪音!
无法逃避的噪音
“春夏秋冬”的内存
噪音的小把戏
白噪音的三种用法
揭开GPU功耗的面纱
数字电路功耗的分析及优化
IGBT模型优化及其在Buck变换器中的功耗分析