PS:在网上无意间看到的,虽然是3月中旬就出来了的,但本人觉得挺实际,于是转贴了过来,这篇文章我想也很好地解答了论坛里网友们对于PC强于主机,但实际效果却不大,以及DX11实际中并不比DX9强多少的疑问。
【CBS探索与发现】揪出幕后罪魁祸首 是谁拖累了统一架构(39P) 前言:经过了前面两周那段不算绮丽,甚至是有些艰苦和晦涩的阅读思考旅程之后,欢迎您来到最新一期的CBS探索与发现。这是中关村在线显卡频道从2011年初开始策划并执行的一个重要系列节目,通过对这一系列文章的阅读,你一定会了解到这个领域很多不为人知或者不想被揭开的秘密。
----

--
--
● 谁拖累了统一构架 作为剧透的一部分,我可以提前告诉您,作为一个系列的完结篇,本期将会对我们在前两期中一直不断提及的主要问题进行一个了结。在本期节目中,我们将会把最终导致今天乱局的幕后黑手揪出来示众,敬请期待吧。 世界上任何的事物都是由表象和本质构成的,“谁害了统一构架”这件事也是一样。在前面的文章中我们已经了解了他的第一个表象,也就是Unified Shader单元。下面,我们要面对的第二个表象将更加接近真实的表象,他就是家用机平台。

其实我一直在斟酌表象这个词到底合不合适用来形容家用机平台和Unified Shader单元,在文字定义和哲学定义上这么说确实没错,但我总觉得有些生涩。所以,不如我们从这里开始就叫他们“棋子”吧。--
----

● 棋盘上的第二步棋
如果说Unified Shader单元是棋盘上第一个被出动的棋子,那么家用机平台就是第二个。
第二枚棋子
家用机硬件的开发,对各个厂商来说一直都是一个头疼的问题。家用机长久以来所形成的自成一派的盈利模式以及文化注定了其命运完全被游戏性而不是画面所掌握,某老任常年以劣质装备取得一个又一个飘红财报并且打翻了一个又一个使用科幻硬件的对手就充分说明了这个问题。但是时代在进步,家用机周边的环境发生了变化。硬件机能确实并不一定代表游戏性,可在几十寸的大电视上输出一大堆的移动的色块,游戏性再好也会被倒胃口的感觉所掩盖。因此,为家用机搭配适宜输出环境的硬件系统,成了新的次时代家用机开发过程中所要考虑的首要问题。

家用机不能因为游戏性抛弃图形
搭配适宜的硬件系统,这句话说来容易,做起来可是难于登天。家用级平台的硬件除了需要功能强劲,更重要的一点就是好学易用。稍稍翻译一下,就是既要保证效率又要保证泛用性。这两点对于独立开发的硬件来说,几乎是完全不可能同时达成的。
表面上看家用机不同于PC的多用途,它的硬件几乎只会被用来运行特定的游戏程序。但问题是硬件的背后同时也意味着特定的编译环境。游戏开发者也是人,是人就存在精力有限的问题。你让他绞尽脑汁保证自己的作品在游戏性上能够一鸣惊人,同时还要让他们绞尽脑汁的去跟图形代码甚至是诡异的数学去缠斗,甚至还要让他们绞尽脑汁的去学习如何利用新的完全没见过的底层硬件……抱歉,程序员们纷纷表示自己没有那么多脑汁。

疯狂的程序员
另外,独立开发的硬件本身存在着极大的风险。开发新的独立IC是一个以亿美元为单位的砸钱的买卖,如果只针对自家平台的话,火了还好,如果平台销售失败,花大力气开发的硬件将直接变成废物,开发经费全部付诸东流。家用机平台开发商虽然个个来头都不小,但哪一个都不是能够容忍几亿十几亿美元凭空蒸发的冤大头。所以,新的次时代家用级平台上注定了不会再出现Emotion这种只为PS2单独存在的硬件。

PS2采用的EmotionEngine
既然这样,剩下的答案似乎就简单并且顺理成章了——使用现有的成熟的硬件体系,尤其是显示体系。而当时成熟的显示体系只有两个,Open GL和DirectX。
这应该不是一道很难做的选择题了。
仿佛上帝觉得这种接近纯原质打造的环境还不够完美,恰恰在各大厂商准备选择显示硬件的时候,“能实现一切特效”的DX9.0C以及其对应的GPU出现了。于是,SONY为PS3选择了RSX,而微软则为XBOX360选择了C1。

PS3所采用的RSX 
XBOX360采用的C1
既然大家都找到了答案,上帝又那么给面子,那咱们就动手干吧。
于是,强大的次世代王朝自此确立。
--
--
--

● 左车:Power PC 970+C1显示体系分析
XBOX360的主体显示系统由一颗3core的高频POWERPC 970和一颗C1 GPU组成。双方共享512M系统主存作为local memory。该显示系统使用DirectX作为API。
PowerPC 970属于RICS的POWER 4处理器家族,第一代PowerPC 970处理器出现在2002年。PowerPC 970采用SIMD结构,具备独特的Elastic I/O总线设计。得益于工艺的改进和主频的提升,出现在XBOX360上的3 core PowerPC 970的处理能力已经比最初版本有了长足的进步。

PowerPC 970基本信息
C1 GPU是ATI提供给微软使用的XBOX360图形解决方案,该GPU基于改进型R500构架,主频500MHz,由48个US单元,16组TMU和8个ROP单元组成,其最显著的特点就是在执行单元层面前瞻性的支持了Unified Shader,同时在ROP单元绑定了10M的edRAM作为延展存储。延展存储的引入在弥补了local memory带宽不足的同时为C1以及整个XBOX360提供了令人生畏的填充和采样输出性能。值得注意的是尽管C1支持Unified Shader,可以任意处理Vertex Shader和Pixel Shader指令,但其寄存器资源仍不满足DirectX 10的要求,因此依旧属于DirectX 9.0C构架。

XBOX360显示体系
整体来说,尽管共享local memory,但XBOX360仍旧属于一个CPU面向通用处理领域,显卡专精图形处理领域的分离式体系,其CPU在图形处理过程中仅负责顶点的生成以及IO控制,几乎完全不介入任何图形处理过程。这与我们即将介绍的PS3形成了鲜明的对比。
--
--
--

●右炮:CELL+RSX显示体系分析
与XBOX360不同,PS3拥有的是一个融合程度更深的显示体系,它由一颗CELL处理器和一颗RSX GPU组成。该体系使用改进型OpenGL作为主要API,同时亦可支持DirectX环境。
CELL处理器照片 CELL处理器是IBM开发的新一代专用处理器,有一组负责管理控制以及整数处理的PPU单元和8组具有独立cache的专司浮点处理的SPE单元组成,整个体系拥有恐怖的吞吐和浮点处理能力。

CELL处理器构架 相对于CPU的恐怖,PS3的GPU则显得要“平凡”一些。RSX GPU改进自NVIDIA的G70构架,主频550MHz,采用符合DirectX 9.0C规范的传统分离式shader单元设计,拥有8个Vertex Shader和24个Pixel Shader,8组TMU以及8个ROP单元。RSX搭配256M的常规GDDR3显存作为local memory,同时可以透过FlexIO总线与CPU分享228M的XDR主存并通过其与CPU进行数据交换。

与RSX结构相同的G70构架 由于CELL的CPU拥有强劲的处理能力和合适的吞吐结构,因此具备一定的shader执行能力。透过过FlexIO总线,CELL可以很方便的与GPU进行数据交换和共享,因此程序员可以将一部分shader及******程透过总线交给CPU进行处理,将CPU和GPU视为一个整体。因此总体来说,PS3尽管采用了更加常规的显卡,但其本身却是一个更加具有任务重叠性的体系,在传统领域体系可以交由GPU应对,在必要时CPU也可以尽可能多的介入图形处理过程。
--
--
--

● 步兵斜线连杀
从上面的分析我们不难看出,虽然在结构细部有所差异,但家用机显示体系整体上还是体现了与PC高互通性的原则。C1虽然有US单元,但其结构整体来讲与R580并无二致,可以理解成将shader单元进行了简单替换的R580。而RSX则干脆与G70构架一模一样,仅进行了一点点规模的削减。

次世代平台显示部分与桌面GPU对比 相同的硬件构架,意味着相同的代码执行模式,意味着一套代码同时运行在两个平台以及PC平台,意味着天堂的入口。因为天堂还有个名字,它叫跨平台。
无论PS3还是XBOX360,他们使用的都是相同的硬件体系,即一颗通用CPU,一颗改进于桌面构架的GPU,本质上与PC几乎完全相同的总线及存储体系。他们的硬盘跟笔记本的没啥区别,他们的内存颗粒焊在对应的PCB上就可以直接插上电脑。你可以直接将他们看成一台性能不错的可以运行unix和linux的家用电脑。

XBOX360采用的内存颗粒 显而易见,为这种平台编写的图形程序代码,对PC平台来说根本就是透明的,只需要稍加改写对应windows的代码部分即可让PC平台完美的执行。这也就意味着开发商只需要开发一套引擎就可以轻松地实现通杀所有平台的游戏编程需要。跨平台这个在之前的家用机平台上处于梦话状态的概念现在很轻松的就得到了实现。家用机作品得以更加轻松的进入PC游戏市场。

HLSL编译环境 程序员们原则上只需要学会HLSL和GLSL,就可以通杀PC和家用机两大游戏编程领域了。家用机厂商不再需要负担昂贵的全新IC体系的开发成本以及风险,新平台的培训也明显会更加轻松和容易。传统PC领域的IC供应商也可以借此进入家用机这个巨大的市场分得一份利益。而微软则可以借由API的进入进一步统治家用机图形领域并更好的使得自家的家用机平台取得竞争的优势地位。
完美无瑕,无懈可击,你完全无法理解这种所有人都是赢家的局面是怎么形成的……
--
--
--

● 祭出真正的杀招?
却说魏兵皆奔祁山寨来,蜀兵四下一齐呐喊奔走,虚作救应之势。司马懿见蜀兵都去救祁山寨,便引二子并中军护卫人马, 杀奔上方谷来。追到谷口,先令人入谷中哨探。回报谷内并无伏兵,山上皆是草房。懿曰:“此必是积粮之所也。”遂大驱士马,尽入谷中。
懿忽见草房上尽是干柴,前面魏延已不见了。懿心疑,谓二子曰:“倘有兵截断谷口,如之奈何?”言未已,只听得喊声大震,山上一齐丢下火把来,烧断谷口。 魏兵奔逃无路。山上火箭射下,地雷一齐突出,草房内干柴都着,刮刮杂杂,火势冲天。司马懿惊得手足无措,乃下马抱二子大哭曰:“我父子三人皆死于此处矣!”

火烧上方谷
正哭之间,忽然 狂风大作,黑气漫空,一声霹雳响处,骤雨倾盆。满谷之火,尽皆浇灭:地雷不震,火器无功。司马懿大喜曰:“不就此时杀出,更待何时!”即引兵奋力冲杀。张虎、乐綝亦各引兵 杀来接应。马岱军少,不敢追赶。司马懿父子与张虎、乐綝合兵一处,同归渭南大寨。

大败却最终获胜的司马懿
司马懿败了,被人用计诱至兵家死地,一把火烧的跟儿子抱头痛哭,完完全全的败了。但是他并没有输掉最后的战争。
孔明胜了,将敌人拉进圈套,成功的点了火,关起门来做焖炉烤鸭,完完全全的胜了。但是他并没有赢得最后的战争。
一阵风,一场雨,改变了两个人的命运。
这就是天意。
下面我们要说的,也是一个关于天意的故事。
是的,次世代平台无论从哪个角度来看都太过完美了。没有人失败,没有一家厂商错过分一杯羹的机会,甚至其所有硬件和API的准备时间和阶段都平顺而且恰到好处。如果不是天意,我实在是无法找到其他的解释了。一切都太顺利了,顺利的让所有人都觉得仿佛生活在梦境中一样。
此时此刻,没有人会想到一句老话——福兮祸所依,祸兮福所倚。
于是,一切都发生了。不光爱掷骰子,而且还喜欢把骰子丢到看不见的地方的那位老顽童将美梦赐予每个人的同时,也为他们准备了一场后续的噩梦。
--
--
--

● 完美的三步将军!
07年8月开始的这场席卷全球的金融危机对于每一个人来说都是不堪回首的。从房地产次贷危机引发的一系列海啸式的动荡以极快的速度波及了人类世界的每一个角落,紧随动荡之后的就是非常传统的恶性循环剧本——危机源头引发了倒闭风潮,倒闭风潮导致了资金链断裂,没有现金就要缩紧银根,然后就是控制成本/采购减少,需求的减少又导致了供应方的损失,供应方支撑不住就要倒闭,倒闭又进一步引发了下一波的资金链断裂加剧金融危机……这场金融危机中没有任何一个行业得以逃脱这种命运,游戏业也不例外。
金融危机
不管何种游戏,最终都是要有人来消费并进行娱乐。金融危机对于个人的影响,首当其冲的就是老百姓的等效可支配收入的缩水。收入缩水就要节省开支,节省开支就要压缩一些生存必须因素之外的支出。游戏,相对于衣食住行来说显然不是维持生计所必须的东西。于是在游戏业这个小剧场里,金融危机的恶性循环剧本换了几个演员改了几句台词之后上演了——金融危机导致老百姓没有足够的钱维持过去的生活,为了活下去就要缩紧银根保障衣食住行,缩紧银根就要削减娱乐消费,娱乐需求降低游戏开发商就赚不到钱,赚不到钱就要倒闭,倒闭就会导致新的资金链断裂加剧金融危机…… 
资金链对于每一个人来说都至关重要 每个人都是经济的动物,这句话果然没错。

07年亏损4.5亿美元的EA
好吧,如果不想完蛋,经济的动物们就要想办法脱困。脱困无非就是注入资金打破恶性循环,办法只有两个——要么将处于困境中的企业收归国有,然后将纳税人的钱注入进来;要么自己开源节流,想办法在困境中创造更多利润,并将这些利润作为资金注入以维持生存。

压缩成本和开源节流是活下去的契机
游戏业对这场金融危机来说既不是源头也不是关键节点,更无关国计民生,显然不具备去财长那里哭一鼻子然后拉全体纳税人出来垫背的实力。那么剩下的选择就很直接很明确了——压缩成本同时打开更多市场提升销售量,借以维持利润和生存。
--
--
--

● 我们只是要活下去而已……
生存这两个字说起来容易,但对于游戏业者,尤其是PC游戏业者来说,这个词几乎就是沉重的注脚。几十上百号人花十几甚至几十个月辛辛苦苦写了个几千万行代码的游戏,刚发售甚至还没发售即遭盗版,玩家花几个钟头从网上下载,花十几分钟安装,花几分钟随便感受下,然后再花几十秒跑去网上发帖痛骂下了个垃圾回来浪费了自己好几个钟头云云,最后一抖手删掉了。这就是PC游戏界的现状。生平时代,想在这个盗版猖獗同时节操缺失的环境下生存已属搏命,更何况现在金融危机呢。
连大号商人微软都奈何不了盗版
好在上帝关上一扇门的时候往往都会留下一扇窗,找到这扇窗的人就能生存下去。于是被生计逼急了的众人纷纷跑向了能看到的唯一的窗户——跨平台。
家用机平台相对于PC平台来说可谓乐土一片了。厂商长期以来的极大投入以及家用机的高针对性所带来的加密资源的充裕保护了家用机平台的版权,再加上家用机平台对于常规网络长期以来的相对封闭以及家用机平台特殊的盈利分红模式,为家用机平台写游戏几乎成了铁饭碗甚至金饭碗的代名词。但是长期以来家用机独特的硬件构架导致了它与PC平台的编程规则差别极大,不仅编程进入门槛要求极高,想要为家用机平台开发图形程序基本上还意味着需要写一套全新的图形引擎,一个完整全新的图形引擎对于绝大多数游戏开发者来说都是一笔极为巨大的开销。所以乐土也好金饭碗也罢,传统的家用机平台游戏不是说些就能写出来的。这种状况直到次世代平台出现才得以被打破。

著名跨平台引擎CE2
整个次世代王朝最显著的特点,就是硬件体系导致的软件层的高泛用性。PC平台与次世代平台的区别现在已经模糊到了仅能通过有没有X86指令以及兼容windows的代码来衡量了。程序员不用再像过去那样把家用机平台和PC平台的变成看做是两个次元的话题了,现在他们只需要认认真真的为其中一方的游戏计划写一个引擎,然后透过简单的代码修改就可以轻松实现跨平台编程。这样既保证了PC平台传统用户的需求,一旦把自己的作品放进家用机平台上去销售,在没有增加成本的前提下收益又会得到极大的提升。

由CE2发展而来的CE3
得救了,幸存的游戏开发商全部双手合十,泪流满面的跪拜在窗前,一面感谢上帝的眷顾一面祈祷次世代平台能够千秋万代。
--
--
--

● 得救?你恰恰被逼入了死角
这样看来,次世代平台确实功德无量,它打开了全新的局面,让两个领域的硬件厂商均能获利,还在金融危机中拯救了无数人,一直到5年多以后的今天,家用机平台依旧发挥着这样的作用。
我不知道该用什么表情来面对自己接下来说的这句话:此时此刻,依旧没有人会想到一句老话——福兮祸所依,祸兮福所倚。
得救?你刚刚被逼入了死角而已
次世代平台虽然已经具备了极高的泛用性,但归根结底它还是个封闭系统,这导致了次世代平台在其生命周期内不可能发生构架级的硬件改变。整个次世代平台从出现到现在已经五年多了,期间只经历过一次制程升级,全部的硬件构架均未发生改变。
5年,60个月,按照摩尔定律估算,大规模集成电路的集成密度和性能已经提升了3次,涨幅更是超过800%了。

摩尔定律
5年里,这个世界又发生了什么呢?
微软继续孜孜不倦的引领着图形编程界的进步,因为DX9.0C几乎已经将光栅化过程中所有非ALU方面的问题都摆上了台面,MS的目光很自然的转移到了ALU上。DX10引入了Unified Shader,让ALU可以近乎于全功率的无差别运行各种类型的shader,DX11中DC、并行kernel等先进技术的引入更是表明MS对ALU效率问题的重视程度已经提升到了前所未有的高度。桌面旗舰GPU也跟着从DX9.0C过渡到了DX11,集成度增长了10倍有余,甚至已经开始具备了CPU的某些雏形,5年前的GPU相对于现在的GPU,几乎就像算盘一样简陋。整个业界的形势几乎只能用一片欣欣向荣来形容了。

fermi核心照片
唯一没有恒久不变的,是依旧处在金融危机余波中的动荡的游戏界……
现在,窗边的程序员们不得不面临一个艰难的抉择——PC平台的日新月异吸引着他们,不论微软还是用户的需求似乎都在激励着他们向更加复杂、更加美轮美奂的特效前进。甚至从他们自身的角度来出发,更高的执行效率、更低的编程难度和更加自由的编程环境也在不断的诱惑着他们。但是低头看看荷包,再举目四望一下依旧是盗版猖獗同时节操缺失的生存环境,程序员们显然迷茫了……到底是选择前进还是选择生存呢?
--
--
--

|