离次时代主机发售只有两个月的时间了,在游戏还没有发售的现在想必很多人都已经对于哪台主机更厉害有自己的想法。单单靠比较图像和内存带宽规格可以看出PS4完胜Xbox One,直接甩掉几条街,让人觉得把两台主机摆一块比较各自优点就是一个笑话。两台主机核心都使用同样的AMD技术,PS4的内存和GPU更强,但是事情就是简简单单看起来这样么?
自打有不知名的人说PS4要比他的对手Xbox One强大很多,微软就一直想把事情说明白了。上周二Digital Foundry在电话会议上和两位Xbox One项目的主要技术人员聊了聊,这两位工程师都一直想有这么一个机会来在深层的技术层面把事情摊开了说说。谈话刚开始不久,这次谈话的主题就确定了:平衡。
Xbox One 的设计原则
微软的一位技术人员Andrew Goosen说:“设计一台平衡的主机要考虑软硬件的所有方面,只有把两者结合得平衡才能得到完美的表现。非常高兴能有这次机会和你说说设计问题。现在外面有很多错误的消息,很多人都没有真正明白,我们对自己的设计很有信心。我们认为我们设计的主机非常平衡,性能非常好。我们开发出的东西除了单单处理 GPU 的算术逻辑,还能处理其他的东西。另外我们注意其他的一些设计方面和需求,例如延迟、帧数稳定性、游戏防止被操作系统干扰等。你会看到在系统设计中到处都贯彻着这个主题。
硬件架构团队经理Nick Baker补充:“Andrew说的很好,我们的确想做出一台高性能、高效率的游戏机。新的主机要和现代的起居室风格相容,只有我们把主机做成了一个多媒体硬件,而这个多媒体硬件就是你家的娱乐中心。”
Xbox One的内存方案
我们已经看到Xbox One界面和媒体功能都非常强大,但是重中之重还是游戏,毕竟它是台游戏机。关于 Xbox One主要有两个争论的地方。第一个是硬件没有PS4强大,内存和GPU相比之下较弱。两台主机的系统都有8GB的内存,索尼选择了速度更快的、峰值带宽176GB/s 的但是高延迟的 GDDR5,而微软选择了峰值带宽只有68GB/s但是延迟小的DDR3,相比之下差多了。但是这可以通过ESRAM(增强静态随机存储器)来弥补,带宽峰值可以达到204GB/s。理论上来说虽然两台主机分配资源的方法是影响主机的一个因素,但是Xbox One 很明显能够保证系统内足够的带宽。
在我们拿到最终硬件之前,现在只能看看WIRED得到的内部样机的照片。挑事儿的人可能就抓住GPU 这个话题:微软不会再添加额外的处理单元了。Xbox One的主要系统都在右边的那个芯片上,周围是2.13 GHz 频率的DDR3模组。
内存管理就是这两台主机的明显区别。那么可能有人就说这只要讨论一下GDDR5是不是最好的就行了,微软为什么不选择GDDR5?财大气粗的微软明显可以承担使用GDDR5的费用,为什么不?是不是从一开始 GDDR5的高带宽就不在微软的考虑范围内?如果真是这样为什么呢?
Nick Baker 回应:“的确是这样,为了要使内存容量、功耗等达到最好的性能组合,GDDR5的确有些地方不适合。而ESRAM就可以有很小的功耗就可能达到很高的带宽。你可以减小外部内存的带宽,这样就可以节省很多功耗,而且现在内存相对便宜,可以增加数量。其实背后就是这么一个道理,如果想要大的内存容量,大带宽的同时还想有较低的功耗,基本上方法很少”
集成系统带宽的争论
Baker非常想纠正大家的一个错误观点:微软团队的设计不能同时访问ESRAM以及DDR3内存池。批评家们说Xbox团队只是把可用的内存带宽都简单算术加在一起来让自己的图表看起来内存很多,但是事实上根本达不到。
Baker 告诉我们:“你可以认为ESRAM和DDR3组成了八个内存控制器,其中四个64位外部内存控制器控制DDR3,另外四个256位内部内存控制器控制ESRAM。这些控制器都通过横跨电路来连接,所以可以直接同时访问ESRAM和DDR3。”
关于ESRAM的争论让设计团队很吃惊。有人还说在Xbox One上不好进行开发,还不如自己的上一代 Xbox 360。众所周知Xbox 360 一直对开发者非常友好。Andrew Goosen 说到:“这些说法让我很吃惊,特别是把ESRAM看成是eDRAM的进化产物的时候。没有谁会问开发者是否可以在Xbox 360上同时获取eDRAM 和系统内存的带宽,因为本身设计的就是这样。在系统内存和eDRAM 中的渲染目标缓存、色彩缓存、深度缓存和模版缓存共同作用的时候,我们必须把系统内存中所有的顶点缓存和材质都搁置在一边。Xbox One上我们也使用同样的原理让ESRAM工作。这是Xbox 360的完美进化,能够让我们突破原来eDRAM上很多局限。”
“Xbox 360是最容易进行开发的平台,eDRAM对于开发者们不是很难,但是有时候开发者会说:天啊,如果整个渲染目标都不在eDRAM上该多好。所以我们在Xbox One上修复这这点,我们可以在ESRAM和 DDR3之间游刃有余,ESRAM完全整合到了地址列表,开发者可以自由调配。在我看来这是很大的进步,在 Xbox 360基础上很大的进步。我自己都非常吃惊”
ESRAM和DDR3内存池的结合度
目前ESRAM和DDR3内存池的结合度要比之前很多人想的都要灵活。很多人认为32MB ESRAM是渲染目标的限制,那么开发者们真能像Goosen说的那样灵活地进行开发么?
“当然可以。举个例子来说,如果你在做一个赛车游戏,天空的渲染上有一些透支,那么你就可以把这些资源分配到DDR3去做,来提高ESRAM的优化。除此之外还采用了一些自定义格式来更加优化 ESRAM。”
“在GPU上我们增加了一些压缩的渲染目标格式,比如像6e4(6bit来表示尾数,4bit来表示指数)和7e3 HDR浮点格式,这两个格式在Xbox 360上非常流行,利用这些格式可以让一个需要每元件16bit浮点的 64bpp 目标渲染在32bit就可以完成,我们在让ESRAM效率最大化和优化上做了很多事情。”
Xbox One的附加处理器和音频块
微软在最近的Hot Chip 25会议上关于Xbox One处理器的展示表明现在板载了15个处理器。对此我们很好奇。
Nick Baker 说:“在系统芯片上有很多平行引擎,有些就像CPU 核心或者数字信号处理核心。这 15 个处理器有8个处理音频、4个移动引擎 (Move Engine)、1个视频编码、1个视频解码、1个用来视频排序和调整大小。”
“音频块非常独特,由微软团队独立设计。音频块由四个tensilica数字信号处理核心和多个可编程处理引擎组成。我们把他们分成了一个核心用来控制、两个用来音频矢量编码,剩下一个用来通用数字信号处理。同时我们在上面使用了采样率转换、滤波、混音、均衡、动态域补偿和XMA音频模块。目的就是为了同时处理512个游戏语音以及Kinect的语音预处理。”
那么在跨平台游戏上这样的硬件有什么优化效果呢?Andrew Goosen 回答:“说白了设计了这么多就是为了把很多工作都推到系统上,而不是让游戏开发者本身去花心思解决。我们始终都记得这些都是为了游戏本身。”“我们把语音识别模式放在了系统预留里,而在其他平台上开发者们必须把相应的功能变成代码后连接起来,这个过程是要付费的。我们的 Kinect 以及大部分用户界面特性都免费提供给开发者,游戏 DVR 功能也是。”














