A9VG电玩部落论坛

 找回密码
 注册
搜索
查看: 14726|回复: 43

【讨论】XBOX360和PS3处理器之争

[复制链接]

精华
2
帖子
7781
威望
3 点
积分
8288 点
种子
0 点
注册时间
2005-1-15
最后登录
2013-5-2
 楼主| 发表于 2006-1-3 11:36  ·  广东 | 显示全部楼层 |阅读模式
自从CELL和Xenon处理器架构发布以来,在网络上面引起了激烈的讨论。尤其是因为这两款处理器的架构都和大家平时所熟悉的桌面产品有着很大的不同,因此这两款处理器的最终性能也成为了许多人猜测的对象。

  虽然,微软和索尼都对自己的处理器信心百倍,而且两款产品的规格之高也令人目瞪口呆。不过最近却有人撰文指出,让大家不要被表面的亮丽规格所蒙蔽,其实这两款处理器的能力只相当于现在的P4和Athlon64中端产品的性能。真的是这样的吗?为什么会有人提出这样的观点呢?在下文中,笔者将试图向读者解说其中就里,并且还将披露关于这两款游戏主机许多不为人知的内幕。

主机的平衡性

  平衡性是任何一个平台,任何一个系统所要首先实现的最重要的一个目标。不过这个性能的平衡性观点,却往往被很多硬件玩家所忽略。大多数的消费者都持有一个错误的观点,就是将最好最贵的产品放在一起,就是性能最高的电脑。而当他们看见品牌电脑的配置,却始终难以明白为什么P4只能够搭配GeForce4MX,而R9550又怎么配的上A64。对于硬件有一定了解的消费者,在选购配件的时候,往往会较为关心诸如CPU的前端总线和内存带宽是否匹配等问题,不过关于系统平衡性的要求是全方面的。不仅仅是处理器和内存,还包括系统总线位宽,显存接口,以及所使用到的媒体格式等等。

  这也是为什么将平衡性作为这篇文章的开头,平衡性对于游戏主机而言同样重要。对于开发人员要将主机的性能在游戏中发挥的淋漓尽致的话,平衡性是首先应该被考虑的。每一款主机都有自己的优势和劣势,不过它们本身都达到了某种程度的平衡,因此某某人讲:PS3的GPU比XBOX360的好很多,这种说法是不正确的。因为你不能够将显卡从整个系统中分开来比较,对于影响系统的方方面面的因素,都应改被考虑进去。

两款主机和它们的处理器

  为了方便没有阅读过任何相关文章的读者,这里还是简单的介绍一下,两款主机的架构差别和相似部分。首先是XBOX360的CPU,开发代号位XENON,采用通用目的微处理器的设计架构,将三个通用目的POWERPC核心集成到了一起。基于设计的架构,XBOX360处理器执行任何类型的代码都不会出现问题。

  PS3的处理器叫做CELL。它采用一个POWERPC的处理单元(PPE,非常类似于XENON的其中一个核心)和8个协作处理单元(SPE)所组成。其中的SPE采用的是特殊硬件架构设计而成,基于它所采用的架构,只能够执行指定某类型的代码。因此两者之间最大的不同在于,一个完全是基于通用目的核心的处理器,而另一个则是通用与特殊的混合体。

INTEL对未来多核处理器发展的看法

  由于CELL现在已经有很多文章对其进行了详细的探讨,因此CELL的架构在这里不是讨论的重点。真正的问题在于,XBOX360和PS3的处理器架构到底孰优孰劣?不要急于下结论,让我们先来看一段关于INTEL2015年的路线图:

  采用两个较大的通用目的核心和其他小型化的特殊用途核心所组成的处理器,是INTEL路线图上面对未来2015年产品的描述。可以看到CELL处理器的架构和INTEL未来的规划不谋而合,是一种相当超前的设计。其实INTEL曾尖锐的批评过CELL的设计,只是CELL处理器推出的时间太早。到了2015年,那个时候的制造工艺大概到了32nm,同规格的芯片面积明显比现在90nm的小,可以在相同的空间中,装入更多的执行核心。不过现在CELL在当前的技术条件下,只能够大幅度的简化SPE,才能够实现它们的设计。

Xbox360的xenon处理器

  Xenon处理器中集成了3颗核心。选择3核心的理由是在线程执行能力和芯片面积之间取得平衡。根据微软对主机的描述中提到,新主机将会有4-6个执行线程,因此从这里也可以看出xenon配备了三个核心。

  处理器采用90nm制造工艺,这一点很像CELL,芯片的运行频率为3.2GHz,这一点也很像CELL。三个核心彼此都是完全相同的,而且其架构与CELL中的PPE相似。可以看出,xenon和CELL之间也有很多共同点
Xenon和CELL最大的不同之处,在于微软为其核心增加了一个VMX扩展指令集。特别是增加了一条单周期点积指令,能够提升处理器多媒体方面的处理能力。虽然微软没有阻止IBM在其他的芯片中加入这条指令,不过至今都没有看到CELL阵营中有公司声称在PPE中增加了对此指令的支持。

  Xenon的的缺陷在于L2缓存容量不足。集成了3个核心的xenon仅有1MB L2缓存,在单线程的游戏中还可勉强应付,在未来的多线程游戏中就显得捉襟见肘了,过小的缓存将明显制约性能的提升。如果说处理器中的每一个核心都能够同步执行两个线程的话,1MB的L2缓存就要被6个线程来瓜分。不管从那个角度来衡量,如此缓存都是不足的。即使是当前桌面的双核心P4都有1MB的缓存。

  Xenon的一大卖点在于,内部三个核心都是完全相同的,并且它们都是通用目的处理器。开发人员在开发多线程引擎的时候,不必担心编写代码的线程安全问题,因为每一个线程都可以运行在任何一个核心上面。而且xbox360的多核心架构和PC平台十分类似。因此PC游戏代码和xbox360不会有很大的不同,在未来移植PC游戏代码可以更加快捷。作一个形象的比喻,将PC游戏的代码移植到xbox360,就如同MAC的开发人员将INTEL平台上的代码移植到POWERPC上一样:硬件架构有一定变化,不过编程模型却很相近。

  但这对于CELL来说却并不是一件容易的事情。将xbox360上的游戏代码移植到PS3上的最好方法就是,只运行在单个的PPE上,不过对于多线程游戏而言,这样做性能会明显降低。不过并非完全没有办法,这需要做很多的努力,因为PS3的架构有很大的提升潜力。

CELL中的SPE是否真的是鸡肋?

  作为一直都针锋相对的微软和索尼公司,对对方的产品都提出了尖锐的批评。其中微软对CELL处理器中的SPE单元的处理能力就表示过怀疑。因为SPE不是通用目的处理器,所以微软说8个SPE不过是只能够处理DSP音效的简单芯片,除此之外,对于游戏开发人员来说一无是处。真的是这样吗?索尼真的是蠢到用占处理器空间75%的8个SPE来处理音效吗?

  第一个在PS3上面公开演示的游戏程序是EPIC游戏公司的UNREAL ENGINE 3(后文简称UE3),它在索尼的PS3发布会上面曾公开亮相。在发布会上,UE3的程序构建者—tim sweeney,演示了PS3是如果工作在多线程下的。

  根据tim的介绍,SPE由于其架构的特殊性,有相当多的工作并不适合,而采用PPE来处理执行,主要是高级别的游戏逻辑,AI和游戏脚本。不过这些工作在传统的单线程架构下,只占用了处理器很少一部分资源,因此当SPE和GPU完成它们的任务的时候,PPE很适合用来做这些事情。

  那么在UE3中,SPE单元又用来做什么呢?TIM的回答是:“主要用来加速物理运算,动画更新,粒子系统和音效处理。”TIM在UE3的构建中,将PPE和SPE之间的工作量分配的远比我们想象的要平衡的多。很多人完全不知道原来SPE居然可以做那么多工作,而且在做一些特定工作的时候,所表现出来的性能远比通用目的处理器PPE要好。



CELL中的8个SPE

  UE3中已经充分使用了CELL的SPE,这一点是勿庸置疑的。例如在音效处理上面,SPE的特殊架构主要目标就是用来处理流式数据的,因此胜任音效处理并不让人感到奇怪。最让人意想不到的是,UE3中,居然用SPE来做物理运算。众所周知,物理运算中会涉及到大量的分支语句处理,没有分支预测单元的SPE是怎样做到这一点的呢?让我们来看下面一个例子。

  碰撞侦测是游戏物理运算中的必不可少的组成部分之一。顾名思义,碰撞侦测就是当游戏中的两个物体接触后,游戏引擎所作出的反应。如果没有碰撞侦测,子弹就永远不会击中主角的身体,而主角也可以跨墙穿车而过等等。

  在游戏创作中,主要采用二叉树来处理碰撞侦测。二叉树由多边形列表创建。这个树本身的结构并不是我们讨论的重点。但当你为了测试一个物体和树中的多边形发生碰撞时,就需要遍历二叉树,这涉及到许多比较。你首先要遍历二叉树,以找到你想测试碰撞的多边形。然后你还要执行数次,看看物体和你选择的多边形之间是否发生了碰撞。这一处理过程涉及到大量的条件分支语句,而只有配备了分支预测单元的乱序执行(Out of Order)处理器才取得较好的性能表现。

  不过如同前文中提到的那样,SPE没有分支运测单元。因此在遍历二叉树的时候,会占用大量的SPE资源,用于对每一个条件分支进行执行前的事先评估。这对性能的影响可想而知。不过在UE3中,的确是采用了SPE来处理物理运算,因此这显然是EPIC的程序员采取了一种不同于PC或xbox360的碰撞侦测算法,才能够在SPE上面顺利执行。这就是前文中提到的,PS3的架构很有潜力,不过却需要程序员付出更大的努力才能够将其挖掘出来。事实上,如果程序的架构和编码对SPE进一步优化的话,物理运算在PS3上面的运算速度要超过xbox360。到这里我们已经知道微软所说的话完全不对。SPE不仅仅只能用于处理DSP,在虚幻引擎中,还担当了物理运算,动画更新,粒子系统等许多任务。当然不是所有的开发人员都会像EPIC那样,花大力气对PS3进行优化,不过对于那些需要在PS3平台上保持优势和足够竞争力的公司而言,做好PS3的优化是他们必修的功课。

  当然索尼也没有愚蠢到拿占处理器空间75%的8个SPE来处理音效。不过要针对SPE来优化游戏引擎需要比优化xbox360付出更多的努力,但是EPIC公司的成功,证明了这是能够做到的。而程序开发人员到底要为此付出多大的努力呢?相关的研究人员对于多线程开发的局限性进行了一系列的研究。最后得出的结论是,相比于传统单线程游戏的开发,游戏开发人员开发多线程需要花费2-3的时间,而且开发之后的游戏还要针对PS3来进行优化,这对于任何一个程序员来说,都不是一件轻松的工作。

为什么要采用顺序执行核心?

  自从pentium pro开始,到现在的桌面个人电脑微处理器就采用的是乱序执行架构(out of order),以增加性能。乱序执行架构的微处理器能够重新组织其指令流,以最大限度利用其执行资源。虽然是简单的扩展,但是支持乱序执行架构将大幅度的增加处理器的复杂程度和功耗。不过微软和索尼在新主机的处理器中都采用的是顺序执行架构,为何两家公司会不约而同的弃金玉而拾瓦砾呢?

  考虑理想的情况,将数个乱序执行架构核心集成到一个芯片里面,那么这款处理器既可以提供上佳的单线程表现性能,又可以提供不错的多线程处理能力。但是具体实施起来,却非想当然,最大的障碍在于芯片的面积。INTEL和AMD都尝试过,采用现在最先进的90nm制造工艺,仅能够集成两个乱序执行核心。而xbox360与PS3的目标分别是3个和9个核心,同样采用90nm芯片,要达到这个目标,唯有大幅度的降低核心的复杂程度。而降低复杂度最好的方法就是采用更为简单的顺序执行架构,这样芯片面积和功耗都会下降,也只有这样,才能够完成如此多核心的集成工作。

  这里牵涉出一个新问题,为什么微软和索尼都执意要采用多核心的处理器?因为一般而言,一款游戏主机的生命周期至少要达到5年以上,而现在游戏业界也处在一个从单线程到多线程的急速变革时期,因此从2006年开始算起,到2012年可以分为两个部分。前3年,单线程的游戏为主;后3年,多线程的游戏为主。为此微软和索尼才会不约而同的抛弃更快的单核心处理器,而选择还没有成熟的多核心处理器。根本原因就在于,对后半程较量的考虑。

  既然采用顺序执行架构,那么在执行现在的单线程游戏代码的时候,显然会出现一定程度的性能下滑。不过由于现在的游戏对显卡的要求远大与对处理器的要求,因此性能下滑的幅度有限。从长远来看,随着程序员对主机的逐渐深入的优化和多线程游戏引擎的广泛采用,简化后的顺序执行核心也会有不错的性能表现。

顺序执行所面临的问题

  顺序执行和乱序执行两种方式在架构上面就有所不同,因此基于两种方式的编译器也就不同。从pentium pro时代就开始采用的乱序执行架构,因此现在的编译器全部都是基于乱序执行的。重写新的编译器就成为了在新主机上面开发游戏的第一道难关。

  这里给“涉世未深”的读者多说两句。什么是编译器?编译器就是将程序员所写的高级语言转换为低级汇编语言的一个程序。这个其间过程之复杂,就不在本文讨论的范围了。编译器的两大主要功能,即:将类似于C或C++的高级语言转换成汇编语言,同时对代码进行优化。要编写一个优秀的编译器那是谈何容易,而要想让一个编译器良好运转同样是一个非常困难的工作。这需要在下面做大量的工作,因此编译器的问题是程序员必须解决的问题。

  除此之外,CELL还面临着更大的挑战。由于CELL的SPE单元架构特殊,只能够运行适合的某些代码。例如在上文中提到的,SPE就很不适合运行多分支的程序代码,因此遇到分支程序,就要尽可能的将其转换为循环语句,来提升性能。基于这种情况,为了最优化SPE的执行性能,程序员就不得不通过手工将相关的代码一一改写,这个对于程序员来说,压力是非常巨大的。因此顺序执行架构所面临的问题就是,手工优化编译代码,工作量大;而且编译器现在也不尽如人意。

多核心的应用

  从今年初,我们就可以看到业界正在悄悄的朝着多核心的方向变化的趋势,不仅在个人电脑平台,新一代的游戏主机也是如此,而且这种变化的速度非常快。但是再怎么说,要完成转换还是需要几年的功夫。前文提到过,游戏主机的生命周期一般为5年,也就是说虽然头几年不会使用到多线程,但是系统还是按照多核心来搭建的。

  问题是,现在几乎所有的游戏程序都是单线程的,未来的2年之内,单线程的游戏也占主要部分,这对于两款主机来说不是什么好事情,单线程意味着xbox360同时只有一个核心在工作,另外两个就得休息。而PS3显然也不轻松,没了多线程,8个SPE成了摆设。更重要的是,单说xbox360的一个核心或PS3中的PPE而言,两者都是基于顺序执行架构的简化核心,因此在运算速度上面还难以和目前市面上的中高端P4或A64相提并论,运行单线程的游戏倍感吃力。

  其实面对这种情况,微软是提前预见了的,并且有应对之法。微软提出如果xenon运行单线程游戏的话,将会让另外两个空闲的核心处理帮助线程。帮助线程简而言之就是,在运行时被创建,能够使用空闲的执行资源,用于处理器最终所需要的数据进行提前预取。Xbox360采用帮助线程,不仅能够大幅提升处理器的性能,而且还可以让整个平台更加趋于平衡。

  从xbox360现在已经公布的资料来看,出于节约成本的考虑,并没有增加游戏载体光盘的容量。因此2006年发布的xbox360和2001年的xbox光盘容量相同,为4.5GB。其实站在现在来看,xbox的4.5GB光盘的容量都不觉得大,要是到了2010年,9GB的容量可能都嫌小。不过上文中提到,拥有足够空闲执行能力的xenon,开发人员为了能够最大限度利用空间,将采用实时解压游戏数据。将盘片的大部分空间用于装载经过复杂压缩算法压缩过的音频、视频文件,最大可以装入9GB的资料。当然如果空间够用的话,开发人员也可以用更复杂的编码算法,在相同的空间下,装入更高质量的音频、视频文件。而且微软已经声明了,游戏视频将会采用WMV HD编码。除此之外,数字音频编码已经会受益于空闲核心的数据预取能力。在早先的xbox上,微软为了提高音效声音视频水准,而额外购买了集成在nForce北桥芯片中的DSP芯片,用于实时处理杜比数字编码。这让不仅让xbox提高了图形质量,还能够为玩家提供5.1声道的环绕声。不过在xbox360中,杜比编码能够实时的分给xenon处理器的一个线程来完成。这不仅可以减少额外从其他公司购买DSP处理芯片,而且能够简化内部的北桥芯片。总而言之,xenon的另外两个空闲核心,可以帮助开发人员做很多事情。

  虽然CELL没有xenon那么多的空闲执行资源。不过索尼并不需要实时解压游戏数据。因为PS3采用的是蓝光驱动器,索尼最小的一张单层蓝光盘片都有23.3GB。PS3将对所有的视频文件采用H.264编码,音频和视频解码工作都由SPE来完成,这对SPE来说应该是游刃有余。

  而事实上,现在的多线程技术其实还很不完善。在我们说看见的早期的xbox360和PS3游戏演示画面,并没有任何一款游戏的物理运算和AI的表现,能够超越当前最优秀的单线程PC游戏。比如说画面最好的ragdoll演示程序,在物理运算方面的表现也和半条命2相类似。例如飞花落叶或者天摇地晃等场景都没有什么令人吃惊的地方。因此可以看到多核心处理器在很多方面并未表现出明显的优势。

  其实新一代游戏主机相比于PC还是有自己的优势,那就是它们都已经采用了多核心的架构,这让它们在转变到多线程游戏引擎方面更加容易。可以说游戏机将比PC更有可能成为多线程游戏的发布平台,毕竟现在绝大多数的PC还基于单核心的处理器。而一旦在xbox360或PS3上面发布多线程游戏,就能够确保每一位用户都能够充分的享受到新技术带来的变化。或许未来游戏开发的重点,已经悄悄的转移到了游戏主机一方。.

精华
0
帖子
344
威望
0 点
积分
326 点
种子
0 点
注册时间
2006-1-1
最后登录
2008-10-8
发表于 2006-1-3 11:43  ·  上海 | 显示全部楼层
PS3有这么强?是人才相信 我不信的

征服者

光之继承者

精华
0
帖子
7143
威望
0 点
积分
7420 点
种子
10 点
注册时间
2005-11-16
最后登录
2020-6-12
发表于 2006-1-3 12:17  ·  广东 | 显示全部楼层
技术成份太高,看不懂!

精华
0
帖子
344
威望
0 点
积分
326 点
种子
0 点
注册时间
2006-1-1
最后登录
2008-10-8
发表于 2006-1-3 12:22  ·  上海 | 显示全部楼层
说是比奔腾强5倍 我这绝对不相信

精华
0
帖子
549
威望
0 点
积分
667 点
种子
0 点
注册时间
2005-7-27
最后登录
2012-6-28
发表于 2006-1-3 12:28  ·  上海 | 显示全部楼层
楼主的文章里哪里写了PS3比奔腾强5倍呀?  我好像没看到呀

不过分析的也真够透彻的,技术含量好高阿

总算是更加清楚的了解了PS3和XBOX360了

或许这也就是为什么现在X360的游戏画面没有达到大多数人预期的那样的原因吧

不过按照楼主的文章来看,PS3也同样会因为单线程游戏的原故让广大PS玩家失望的说.... 看来真正的次世代还要等3年,等多线程游戏出了才能体现X360和PS3的性能呀.

精华
2
帖子
7781
威望
3 点
积分
8288 点
种子
0 点
注册时间
2005-1-15
最后登录
2013-5-2
 楼主| 发表于 2006-1-3 13:01  ·  广东 | 显示全部楼层
多线程的cpu现在还发挥不出优势来,因为现在的游戏还是单线程游戏,就好像AMD的64位cpu一样,
由于现在的软件和操作系统都是32位的,和32位cpu相比优势不大

精华
0
帖子
464
威望
0 点
积分
488 点
种子
5 点
注册时间
2005-8-21
最后登录
2024-9-26
发表于 2006-1-3 13:04  ·  加拿大 | 显示全部楼层
个人觉得游戏机平台最大的好处就是厂商可以最大限度的使用现有的硬件资源,而不是像PC一样只等着更新硬件,所以我们能看到2000年的游戏机现在也能做出让人称绝的画面效果,但是你2000年买的电脑现在基本上和玩主流游戏靠不上边了.其实现在说什么CELL比奔腾快多少之类都是扯淡,没什么绝对的标准能衡量两者之间到底谁好谁不好,但是有一点可以确定的是,游戏机肯定要比电脑便宜,而且新主机发售的头两年定级的画面效果肯定都是出在游戏机平台上的.
该用户已被禁言

精华
0
帖子
4623
威望
0 点
积分
4597 点
种子
0 点
注册时间
2004-12-2
最后登录
2016-6-29
发表于 2006-1-3 13:14  ·  广东 | 显示全部楼层
这个我不关心,。。。。。。。。。

求败者

活该黑

精华
7
帖子
22058
威望
13 点
积分
22072 点
种子
7 点
注册时间
2005-9-14
最后登录
2021-8-9
发表于 2006-1-3 13:19  ·  广东 | 显示全部楼层
太专业的文章~~~~没有必要深入研究~~~~到时看游戏的表现就基本知道了~~~~以这种消息只是听听看看罢了

精华
0
帖子
153
威望
0 点
积分
174 点
种子
13 点
注册时间
2003-12-5
最后登录
2024-9-26
发表于 2006-1-3 14:00  ·  北京 | 显示全部楼层
总算看完了,支持LZ一下!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2024-9-27 10:23 , Processed in 0.185425 second(s), 17 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部