XBOX360和PS3应该来说是真正的次世代高清游戏主机,有关两机的机能之争也是一直没停过。网络上有很多相同游戏的XBOX360和PS3版本画面的比较,比如说热门的《真三国无双5》和《GTA4》等,而下面笔者则要从硬件构架上来深入解剖下两机。 字串1
1.系统架构问题
XBOX360的Xenon和PS3的Cell处理器本质上都是IBM PowerPC架构的改良核心版本,它们构造都极为简单。核心本身是一个2-issue in-order执行单元,集成64KB L1缓存(32KB指令/32KB数据),1MB(Xenon)或512KB(Cell)L2缓存。支持类似Pentium 4超线程的SMT,可以同时执行2个线程任务。Xenon CPU集成了三个这样的核心,而Cell则是单核心。
字串8
3核心的Xenon,核心面积比90纳米的Pentium4还要小。目前还不知道确切的数字,大概为Prescott核心的一半左右。而据IBM宣称,Xenon CPU优异的峰值浮点性价比,将最大程度节省微软xobox360的成本,这也正是微软所需要的,无怪乎微软会采用IBM的方案。 字串6
当我们看到微软和SONY都“天真地”极力吹捧、比较Xenon和Cell两者谁的浮点性能更出众之时,人们都忽略了更为重要的东西——次世代机种的真实性能。
字串9
据笔者目前所了解,Xenon CPU的真实性能,只不过是第一代Xbox的Pentium III 733MHz的2倍左右。如果未来4-5年xbox360都采用这个CPU,那只能用失望来形容了。在最理想的状态下,Xenon的浮点增效器,也只有Pentium 4的1/3速度。 字串3
2.性能低下的原因
字串4
Xenon和Cell所采用的核心(very narrow 2-issue in-order execution core),拥有非常长的流水线(Cell的PPE整数流水线深度为21级,时钟周期间隔为11个FO4延迟),但明显分支预测的设计并没有达到最优化程度。总之,一分钱一分货,一个这么小的核心,性能也就和Athlon 64或者Pentium 4差不多了。(PPE,即Power Processor Element)
字串7
Cell的情况更甚,它只用了一个这样的核心,SPE阵列在大多数情况下都一无是处,平白浪费核心空间。(fallen注:SPE,即Synergistic Processor Unit,每个集成256KB Local Store SRAM;大家看到这里别激动,接着看下去,下面说到SPE为什么一无是处)
字串7
我们曾提到,尽管Cell运作过程中的分支繁多,还是可以对Cell SPE的冲突检测功能进行加速。缺少分支预测功能,对于SPE来说影响不会很大,因为大多数的冲突检测分支都是随机的,即使用最好的分支预测机制也无法作出预测。因此,SPE即使没有分支预测功能也无关紧要,但每个SPE的Local Store SRAM太少,极大的影响了性能。在访问主内存之前,SPE会在总线上发出DMA请求(或者由PPE发送这个DMA请求),等待请求被执行。据使用过PS3开发工具的程序员称,这个“发送-等待-执行”的过程,在许多实际应用中非常耗时。Local Store SRAM容量过少,限制了SPE处理任务的能力,物理运算和很多其它的重要处理都无法得到加速,浪费了SPE的加速功能。 字串4
此外,即使SPE阵列完成了物理运算,输出了运算结果,整体性能低下的PPE又成为瓶颈。这就好比性能强大的GPU缺少相应的CPU与之搭配一样。
字串9
3.关于多线程问题
我们也向游戏开发者问到,他们愿意用Xenon(Xenon集成3个通用核心),还是Cell(1个通用核心+7个专用SPE)?大家都不约而同选择了Xenon。 字串1
据一些跨平台开发者透露,考虑到编程的难易程度以及SPE的限制性等因素,对于开发者来说,xbox 360显得更为友好;但它仍然未能满足开发者的要求。最为讽刺的是,开发者们还指出,如果这些次世代机种中使用Athlon 64或者Pentium D,那微软或者SONY都能在CPU性能的竞争上取得优势。
字串3
开发者们普遍认为,多线程游戏引擎是未来的发展趋势,但至少要3-5后才能成为主流。微软自己也承认,尽管Xbox 360的设计支持4-6线程,但开发者的游戏引擎开发工作都是基于单线程(最多两个线程),而不是4-6线程。 字串6
即使未来的多线程游戏得到迅速普及,并向2-4线程发展,游戏中的大部分运算处理还是在单线程下完成。或许到了Xbox 720和PS4浮出水面的时候,到了没有人再用单线程开发游戏的时候,多线程架构时代才会来临。 字串1
总之,次世代机种的多线程处理能力对性能提高并没有太大的帮助,游戏开发者们对它们的CPU性能并不满意。 字串1