在A9看到的,这麻痹技术文看的真是瞎了我的狗眼了
我总觉得这文有点问题,但是看不出毛病来,莫非PC版效果不好纯粹是我电脑太渣了吗?
家用游戏机的1080P谎言
1 微软Xbox360的图形核心
设计制造:ATI
芯片代号:Xenos
晶体管继承量:2.32亿
Xbox360的图形核心由ATI设计制造,内部包括两个芯片共集成3.37亿个晶体管,但真正由ATI负责设计制造的只是其中的主芯片-拥有2.32亿个晶体管的Xenos,规模大概相当于RADEON
X800.那么另外一个芯片是怎么回事呢?
还得继续回顾历史,当初ATI在设计Xenos芯片时迫于微软的压力采用了尚未成熟的”统一渲染架构”,虽然提高了执行效率,却无法满足Alpha混合,Z轴缓冲等反锯齿技术的要求.双方不得不寻求其他解决方案,最终选择了NEC提供的eDRAM(内嵌式动态随机存取存储芯片,容量仅10MB),并将两个芯片统称为-C1图形处理器.
eDRAM芯片由于容量太小,仅能存储AA采样数据,对图形子系统的性能毫无帮助.
这个解决方案的副产品就是著名的”3红”问题-为控制成本,微软将这两枚芯片焊接在一块4层的的PCB上,受Xenos影响会在高温下边形,导致脱焊.
与PC中的显示核心相比,
Xenos实在是太小了,2.32亿晶体管里只能塞下48个统一着色单元(USU)和16个纹理单元(TMU).许多消费者都以为Xenos是基于当时新一代的R500(RADEON
X1950XT)核心设计,但实际上它只相当于R420核心的24管线改装版,受散热系统的限制只能以500MHz工作,效率很低.按照微软官方公布的资料,C1图形处理器的理论运算能力为每秒480亿次像素着色,而目前主流的GeForce
9800GTX+级别显卡能达到每秒2365亿次,5倍左右的性能差距严重限制了全平台游戏的画面表现.
至于显存带宽则差距更大,微软所宣称的256GB/s只是eDRAM芯片内逻辑电路到暂存电路的带宽,而eDRAM到Xenos得数据带宽只有32GB
/s.由于Xenos的数据总线只有128bit,虽然采用了频率为1400MHz的DDR3显存,但实际带宽只有22.4GB/s,这才是
Xbox360的最大理论显存带宽.而在实际应用中,这22.4GB/s的带宽还要与处理器共享,显存也是与主内存共享,导致性能严重受损.
Xbox360用的是频率为1400MHz的DDR3显存,
Xenos的数据总线位宽只有128bit,所以Xbox360的显存带宽是1400/8000×128=22.4GB/s,而且实际游戏时GPU可用带宽只能比这低很多-由于为降低游戏机制造成本采用”统一内存体系”产生的弊端,
Xbox360没有GPU独立显存,只能与处理器一起抢512MB的内存容量,所以处理器也必然占据22.4GB/s里近一半的带宽.如此低的GPU至显存带宽会极大限制游戏分辨率和特效渲染精度,所以Xbox360无法实现真正的1080P(1920×1080)全高清画面,其中的奥妙将在后文分解,下面再来看看PS3的情况.
2 PS3的GPU
设计制造:NVIDIA/SCE
芯片代号:RSX
晶体管集成量:3.02亿
SCE将PS3的GPU核心命名为RSX(真实合成处理器),由NVIDIA设计,索尼“制造”。
这款基于G70核心的GPU内部集成了3.02亿个集成管,索尼官方公布的资料表示其运行频率为550MHz,然而正式销售的PS3中却悄悄地降为
500MHz,拥有24条像素着色管线,8条顶点着色管线和24个纹理单元。从规格上看要高于Xbox360的Xenos,这也是SCE经常指责游戏开发商没有发挥出PS3的“机能”的理由之一。
但事实却并非如此,尽管RSX的核心渲染能力尚可,但“配套设施”却很糟糕,不仅总线位宽被砍到
128bit,显存也是频率为1400MHz的DDR3,因此其显存带宽与Xenos相同,均为22.4GB/s。虽然拥有256MB的独立显存,但也不比Xbox360强到哪里去。再来看看SCE着重宣传的浮点运算能力,RSX号称拥有1800GFlops(每秒1万8千亿次)的浮点运算能力,但和
GeForce
9800GTX+的7096GFlops相去甚远。PS3在性能上比肩主流PC纯属痴人说梦,而且也难以满足《生化危机5》等游戏在1080P下运行的要求。
家用游戏机的伪1080P画面
前面已经从硬件基础上分析过,
无论Xbox360还是PS3,都不具备在大型3D游戏中实现1080P画面的条件,因此它们要采用一些灵活的变通手段。
1 PS3的差值计算式伪1080P画面
SCE在PS3的宣传中采用了偷换概念的手段,PS3具备1080P的蓝光电影文件的解码能力不假,但这与1080P即时渲染游戏画面是两码事。PS3的
1080P游戏画面其实是通过像素差值计算放大后的1280×720图像,在这个简单的“拉伸”过程中RSX只要填充所采样像素的色彩均值子像素就行了,完全无需进行像素着色计算,这样的1080P画面即便古老的NV40芯片都能实现。
这种伪1080P和真正的1080P在像素量上有本质区别-游戏里的物体几何模型并不会变得更加精致平滑,相反由于是以720P像素渲染水平硬放大的游戏画面帧,锯齿像素面积也同样会被放大2.25倍,物体模型几何失真效应会非常严重,画面效果反而不及720P.
2 Xbox360的假1080P
Xbox360和PS3一样也是只能在设置里调桌面的像素量,而实际Xbox360版游戏里都没有分辨率调节菜单。在Xbox360公布之初,开发团队将其最高分辨率标为1080i。但当时微软不知道PS3实际上也这么差劲,由于SCE一直对RSX的技术细节严格保密,微软对RSX的性能非常恐惧,所以宣传伊始就明确表示Xbox360的游戏像素渲染量最适宜720P。
但2006年时,微软辗转拿到PS3开发套件第三版Debug测试机进行拆借分析后态度就开始转变-既然别人能搞1080P,我们为什么不可以?不服输的
Xbox开发团队立即放出风去,说Xbox360的开发工具在经过优化后也能渲染1080P游戏,RSX根本没什么了不起,可是Xenos在大型
Shader的游戏里像素填充能力实在太低,临时修改芯片设计也来不及,该怎么办呢?
工程师们发现C1里那个简陋的eDRAM芯片在分辨率高于1280×720时形同虚设,只要每帧画面高于100万像素就用不了反锯齿技术,干脆用它来进行像素差值计算,把720P画面等比放大。虽然这样会在模型边缘形成明显的锯齿,但却能获得比PS3更高的帧速的“1080P”游戏画面,于是
Xbox360就这样具备了1080P的渲染能力。
限制游戏机性能的罪魁祸首
处理器的工作就是执行整个游戏中的所有应用程序,并分配图形渲染工作线程给GPU执行。如果说画面逼真度高低取决于GPU的着色运算和纹理填充能力,那么游戏执行速度就同时取决于处理器和GPU的性能。
这么说可能会有人不了解,为什么Xbox360的3核心和PS3的“9核心”处理器会在《生化危机5》满负荷运载,温度也飞速蹿升至7、80℃,游戏机和
PC的差距真有那么大吗?看了下面对Xbox360、PS3的处理器剖析,你就会明白游戏机这种玩意儿的处理器是怎么回事了。
1 PS3上的假“9核心”Cell处理器
与IBM应用于服务器的Cell处理器不同,PS3上的Cell只有2亿3千万晶体管、主频为3.2GHz,65nm工艺制造,采用和奔4一样的超线程。
和IBM最少2.5亿晶体管、主频高达4.6GHz的芯片品质没法相比。而在大型服务器上Power
PC架构的Cell处理器使用率非常低,卖不出去的没别的原因-Cell处理器的实际复杂运算能力太低。
PS3的版本的Cell处理器逻辑电路由一个小型的Power
PC架构通用运算核心(PPE)、八个微型单精度运算核心(SPE)组成,其中一个SPE在实际产品中被屏蔽掉,所以确切说PS3的处理器应该是“伪9核心”。此外由于为了省钱,系统没有一颗硬件音效芯片,因此还要占据一个SPE专门处理音效。
由于全能型通用运算核心(PPE)太小,即使对应了两个工作线程最大限度发挥逻辑电路效率,其计算能力也非常有限,于是只配有0.5MB高速2级缓存。另外7个协处理器(SPE)运算指令范围非常窄,连NVIDIA的GPU上的流处理器单元(SPU)的指令范围都不如,这就是
PS3所谓的有“次时代”游戏物理效果和PC上配备GeForceGTX显卡的硬件PhysX物理效果根本无法相提并论的根源。确实是够“次”的,否则《镜之边缘》PC版里超复杂的逼真物体破碎、撕裂、碰撞效果,PS3怎么不用Cell处理器的鸡肋SPE去运算……
这些基本上只能胜任视频文件解码的SPE分别带有0.25MB低俗缓存,所以对处理器架构设计有了解的人现在就会看出Cell处理器在晶体管规划上的严重问题了-他不是一颗适合游戏处理器通用性程序运算的芯片!
Cell处理器将70%以上的晶体管都划给了SPE及其低速缓存,这么一大堆SPE都不具备独立的程序运算能力,只能辅助RSX进行浮点运算,确切地说是浮点着色运算-全是些简单的非超长程序着色指令级像素填充而已。这在实际游戏中对复杂着色特效帮助能力非常可怜,要不然PS3版的GTA4也不会进能在
1138×640分辨率下勉强达到24FPS。反观真正意义上可以成为处理器的,具有程序全能性运算能力的PPE核心晶体管太少了,而且使用的还是效率低下的顺序指令执行架构。而一但那6个(屏蔽一个,音效处理占一个)SPE全速帮RSX填充像素,PS3仅256MB容量XDR内存的25.6GB/s带宽将被斩掉18GB/s以上,真正的PPE逻辑运算可用数据带宽连7GB都不到,加上教条的指令顺序执行效率,内存数据交通随时有可能瘫痪。
2 Xbox360上的3核心Xenon处理器
IBM为微软下属独立的部门Mountain
View开发团队(即Xbox360开发团队)设计的Xenon处理器(和ATI设计的Xenons显示核心是两码事)晶体管规模1亿6500万、运算频率3.25GHz、65nm工艺制造,看起来像是比PS3的处理器规模小很多,但实际上Xenon没有Cell那些形同虚设的简单像素运算用
SPE,PPE逻辑运算电路规模更大。Xenon和Cell一样,都是用Power
PC架构的处理器,与PC上的Core2或Athlon、Phonem相比效率差的太远。
Xenon的逻辑电路由3个小型通用运算核心(PPE)组成,每个核心有两个工作线程,总共6线程。和Cell上那个PPE相比,Xenon的3个PPE
平均下来规模更小。在实际游戏中一般只应用单线程至3线程,也是由于和PS3一样没有硬件音效处理芯片,Xenon的必须还要占据一个线程对5.1声道进行软处理。游戏编程人员无视6线程最重要的原因,就是由于Xbox360为了省钱使用的统一内存显存体系。
因为一旦处理器的6个工作线程全部开启,能够真正有多少游戏有效计算性能暂且不论,光从内存里读取和输送数据就要占用每秒20GB的带宽。而从
Xbox360仅有1400MHz运作频率的DDR3速度可以提供的最大带宽只有每秒22.4GB,所以开启处理器6线程的同时就可以直接把正在运算长着色指令的Xenon关掉了,反正GPU的画面特效运算完只有每秒2GB多点的显存带宽也传不到那512MB内存/显存里输送到屏幕上,直接关了还可以省点电.
此外在Xbox360数据交通无比拥挤的统一内存上,任何一条Xenon的顺序指令执行工作线程都有可能让数据流动停止,如此严重的数据延迟,会使
Xbox360的游戏AI直接倒退回DX7时代,所以使用两条或三条工作线程是最明智的方法。与Cell同理由于PPE运算能力很低、指令执行方式很教条,Xenon总共只有1MB高速二级缓存,与Cell的PPE保持着相近的逻辑电路/缓存比。
PC、PS3、Xbox360的处理器架构总结与未来硬件展望
综上所述,结合处理器逻辑云孙能力、GPU着色渲染性能以及内存和显存的容量和带宽-所有决定游戏性能因素的巨大差距,就是致使
PC版《生化危机5》比游戏机版画面精度、执行速度快和强好几个硬件时代的根本原因。
游戏机死忠们相比看到会跳出来讲,2005年、2006年的东西不能和2008年的PC放一块比。那好不和也是2005年、2006年的Aehlon×2、Core2比,就和2005年、2006年最低端的单核心奔4、Athlon
64放一块,伪多核心的Cell、Xenon超得过前两者吗?在游戏程序员中根本没戏。刨除处理器芯片设计、制造成本和晶体管规模的巨大差距,游戏机处理器致命的架构缺陷也是决定性因素。无论是一个小型逻辑运算核心还是3个,两者之间孰强孰弱,都是属于游戏机芯片这种“不值钱”的最低级硬件之间的无休止争论(在处理器架构工程师眼中Xenon更好点),和真正个人电脑上这种英特尔大型逻辑运算核心的处理器级别相差5~10
档次。
游戏机的Cell、Xenon这种低档次处理器的PPE,最“弱智”的地方就在于根源上的顺序指令执行架构,而PC上的高级处理器逻辑运算全部采用只能指令执行架构。游戏机的这种架构会造成多大的性能损失呢?就以《生化危机%》为例:一个非洲兄弟拿火焰弩瞄准猪脚发射之前,处理器要预先按照不同指令计算出命中概率和命中表面检测等数值,那位弟兄才会击发;但在PS3、Xbox360版《生化危机%》中一旦命中检测无法完成,Cell、Xenon依旧会不断试图在该指令深度上完成计算,而排在流水线后面的其他程序指令只能等待前面的弟兄完成“击发”空耗着成百个时钟运算周期白费电。这种“弱智”处理器架构会造成数据运算传输网络塞车(帧渲染顿停),甚至“交通瘫痪”(死机)而最走运的情况就是我们可以经常看到《生化危机%》中拿着火焰弩的大侠,不停的瞄……瞄着……永远瞄下去此类事情。
但PC上的处理器不仅具备强劲的高精度运算能力,像命中检测错误这种低级行为极少出现,而且退一万步讲,即使没完成指令也不会造成数据交通停止。因为PC
的高成本处理器带宽的晶体管规划使逻辑运算电路有大量并行指令流水线,采用乱序执行架构。前面的程序指令没完成,别的指令先算着,等下个时钟周期再调用更强的指令集将没完的拿下。所以PC上这种“值钱的”大型PPE永远会保持畅通无阻的运算网络。
EPIC的蒂姆•思威尼、id的约翰•卡马克等顶尖游戏图形专家,认为Mountain
View在初代Xbox尚能虚心听取游戏编程人员的意见,采用英特尔的X86处理器。但到了Xbox360项目上就变得完全听不进大家的意见,一心想着最大限度压缩芯片制造成本省钱,执意选择购买IBM的小型PPE架构授权。程序专家们对这些“次”时代游戏机的处理器实际性能非常不满,未来是需要多核心处理器,但绝不是用架构倒退来换取的伪多核心,这样做毫无意义。
而Crytek的Cevat
Yerli那时甚至都不会正眼瞧这些东西一下,显然他们正在制作的PC版Crysis图形技术等级即使8台PS3、Xbox360加一起也渲染不了,而当前Crytek
重新编写的跨游戏机CE3引擎经过大幅简化,图形渲染精度只有CE2的1/8了,可以看到前几个月Xbox360、PS3的CE3演示程序里不足
25FPS的渲染速度、硕大的锯齿图形失真和512×512的惨不忍睹纹理精度,全景动态体积光照也消失了,像倒退回了DX9.0a时代,不过幸运的是
Cevat Yerli保证PC版不会受到牵连。
初代Xbox尚能虚心听取游戏编程人员的意见,采用英特尔的X86处理器。但到了Xbox360项目上就变得完全听不进大家的意见,一心想着最大限度压缩芯片制造成本省钱,执意选择购买IBM的小型PPE架构授权。程序专家们对这些“次”时代游戏机的处理器实际性能非常不满,未来是需要多核心处理器,但绝不是用架构倒退来换取的伪多核心,这样做毫无意义。
除了日本,欧洲偏远地区的几家墙头草式游戏公司不太重视硬件性能,世界范围内游戏开发者们普遍对
Xbox360、PS3甚至远远不如2005年、2006年同时期的奔4、Athlon
64搭配7900GT\X1900pro的主流PC性能感到很不满意,这大大加剧了程序编写难度,想让实际图形性能很低的这两台游戏机表现出看得过去的画质和帧率异常劳神,就像《生化危机%》的MT
Franework一样不得不再次像挖PS2似的大规模动用低级汇编语言花去整整4年研发时间,又因为PPE、Shader
Core最终伏在成都过高,带来游戏机芯片温度异常、电气性能不稳定、游戏过程易死机等诸多硬件问题。
开发者们越来越倾向以制作PC游戏完整版为核心,再缩水至Xbox360、PS3的Debug机测试保证运行的策略,就像CAPCOM制作《鬼泣4》《生化危机5》这样,基本上绝大多数跨平台发行商都选择了这条明智路线。问及这些开发者们认为下一代X720\PS4能否达到同期“性能级”PC的硬件水准时,基本上开发者都抱有期待,但觉得实际操作可能性很低。
根据数次广告宣传高摔得狠、“眼高手低”的经验,成熟开发者早已看透游戏机制造成本的限制不可能提供比同时期PC更好的性能。在透彻了解了芯片硬件架构后,程序员们发现实际上Xenon游戏性能仅有第一代Xbox的Pentium
Ⅲ
733MHz的2倍,未来4~5年Xbox360都采用这个处理器只能用失望来形容,在实际游戏中不可能发生的最理想状态下Xenon的浮点增效器也只有奔4的1/3的速度。PS3的整机性能则比PS2实际提升了6倍,比Xbox360的幅度大很多,但这全因PS2实在是太差了。
世界上亘古不变的唯一真理就是一分钱一分货,像Cell、Xenon这么小的核心,性能最理想也就和Athlon
64、奔4相近。彻底分了这代游戏机相比前任平均4倍的性能提升幅度后,蒂姆•思威尼、约翰•卡马克这些顶级游戏程序专家,并不认为依旧在地制造成本限制下的所谓X720、PS4,能和现在Core
i7与GeForceGTX的电脑性能相提并论。
[
本帖最后由 xtl150ok 于 2010-4-5 22:41 编辑 ]