PowerPC 简史 柒:明贬劲敌 暗渡陈仓

PowerPC硬件历史

光怪陆离

前文已经提到,PowerPC G4 的出现让苹果在与英特尔的多媒体战争中赢得了胜利,但随着 IBM 的淡出,PowerPC 的颓势已经开始显现,而「G4 Speed Dump」事件更是将 AIM 内部的危机暴露无遗,作为这款芯片最大客户的苹果,现在也是时候「未雨绸缪」了。

新希望

当 Motorola 正与 IBM 在萨默塞特闹分家时,苹果那边,全新一代操作系统 Mac OS X 也在紧锣密鼓地开发中,之前从乔布斯手中买来的 NeXTSTEP 自然成了参考的对象,可 NeXTSTEP 本身也有一些问题亟待解决:其能在 x86、68k 等芯片上完美运行,偏偏不支持 PowerPC 架构。

为了将其搬到 PowerPC 芯片上,员工们夜以继日地努力着,而万幸的是,苹果在购买 NeXTSTEP 之前有过在其内核:Mach 上开发的经验,对此轻车熟路。

早在 1996 年 2 月,为了让 Linux 能在 PowerPC 上运行,以布雷特·哈雷为首的工程师们与开放软件基金会「即 OSF」合作,将 Mach 内核移植到 PowerPC,并将 Linux 作为服务运行在 Mach 内核之上,MkLinux 系统就此诞生。

1

尽管往后的岁月里 MkLinux 并不成功,于 2002 年彻底结束了开发,但却让 Mac OS X 的出现成为可能

这一操作系统的出现意义非凡:不仅为 Linux 对 PowerPC 的支持做出了巨大贡献,更重要的,为苹果在 PowerPC 上使用 NeXTSTEP 扫清了最大的障碍。以至于在未来的 Mac OS X 中大量有关 Mach 内核的代码均来自于 MkLinux 1

除了 Mach 内核的成功移植,其他组件的迁移工作也在进行,但相较老旧的 Mac OS 需要全部重写整个系统而言,架构更为先进的 NeXTSTEP 则相对容易:NeXTSTEP 源自 Unix,天生就有良好的可移植性2,这也是当时 Solaris、AIX 能那么迅速适配 PowerPC 的原因。

2

类 Unix 系统的演进图,可见 Mac OS X、NeXTSTEP、Solaris、AIX 等系统均源自 Unix

解决了 NeXTSTEP 在 PowerPC 上运行的问题后,此时的乔布斯正面临一个难题:除了开发原生支持 PowerPC 指令集的 Mac OS X,是否需要开发一个英特尔版本以备不时之需?

这一顾虑早在 1997 年末乔布斯与 Motorola CEO 高尔文吵架时就已埋下,之后董事会内部也就是否应转移至英特尔平台之事讨论许久,但短期内各成员意见并未达成一致。

不同于 1993 年「星际之旅」计划宣告失败后就再没找过英特尔的苹果公司,乔布斯和英特尔创始人安迪·格鲁夫可谓是老相识:早在 1978 年苹果公司创立不久,安迪·格鲁夫就被邀请加入董事会,尽管后来这事并未成功,但乔布斯一直视安迪·格鲁夫为自己的导师,甚至在自己的各种重大决策中都会请他帮忙把把关3

3

在 NeXT world 上的 Andy Grove「左」与 Steve Jobs「右」

或许是与董事会近 18 个月的磋商有了进展、也或许是安迪·格鲁夫暗中的指引、也可能「G4 Speed Dump」事件给乔布斯的刺激太大,让他终于在这一关键时刻做出了选择,逐渐将开发英特尔版操作系统的计划提上日程。

绝密的迁移计划

1999 年的夏天,正当 Motorola 尽全力生产 G4 芯片时,MkLinux 的开发者布雷特·哈雷及其团队被赋予了一项秘密任务:将大幅改进后的 Rhapsody,即 Mac OS X 的前身,移植到英特尔平台上。预示着时隔 6 年,苹果再度试图靠近英特尔阵营。

4

Brett Halle,曾任苹果软件部高级经理

这并非一件容易之事,尽管 NeXTSTEP 系统具有较好的可移植性,但在 Mac OS X 上情况发生了变化:许多源自 Mac OS 9 的代码,例如 Carbon、QuickTime、Quartz 等均存在一定的 PowerPC 依赖性;而随着 Velocity Engine 的普及,大量能利用该单元的代码都要改写成英特尔平台的 SSE,移植仍颇具难度4

外加整个苹果公司为了开发 PowerPC 版 Mac OS X 已经心力交瘁,所以上至高层、下至该团队都将之视为备用方案:除非 PowerPC 出现重大变故否则不会轻易拿出。因此布雷特·哈雷手上的资源少得可怜,由于被告知不能对外透露这一计划的真正细节,他也难以向外界寻求太多帮助。

5

Mac OS X 架构图

于是他们只好自己出资,在 Fry’s 商店买了台含有四颗英特尔芯片的服务器来进行这项艰巨任务。六个月后,项目艰难进展到了能启动 shell、运行大多数不基于 UI 的服务、能用鼠标打开窗口服务器的程度,代表着万里长征已经走完了第一步。

该计划的保密程度极高,以至于除了六位核心成员知晓此事,其余从事的员工都认为他们只是在做普通的系统维护工作5,甚至乔布斯都会四处放烟雾弹来打掩护。一名叫迈克尔·伯格的团队成员记得一件趣事:当他在 Infinite Loop 自助餐厅排队结账时,凑巧乔布斯和他只相隔两人,正在前面与他人大声说着话。

那些人怎么就没明白我们压根就不会转投到英特尔阵营,他们应该放弃这个执念才对!

折戟沉沙

时间来到 1999 年末,在这千禧年之际,各大芯片厂商都卯足了劲,开始大幅跃进,其中最为耀眼的当属 x86 阵营的 AMD 与英特尔:短短几个月内,这对红蓝冤家就将芯片频率一路提升到惊人的 1 GHz。而作为苹果电脑御用的最强处理器,PowerPC G4 却在这场频率之战中败下阵来,从此再难以与英特尔、AMD 正面对抗。

工艺之争

在铜互联技术已成为当时行业潮流之际,相比 IBM 和 Motorola 的激进采用,英特尔这边始终显得有几分冷静:并没有立即跟风效仿,相反和东芝等厂商坚称在 180nm 节点采用该技术「既不必须,也不可取」,并继续固守铝互联技术加以改进。而 P858 工艺的出现证明了这些才华横溢的工程师们的选择不无道理。

尽管没有采用铜互联技术,但通过大幅增加厚度来维持横截面积,P858 工艺的铝互联层依旧设法遏制住了电阻骤升的趋势,甚至能与采用铜互联技术的 IBM 全新 CMOS-8S 工艺相媲美。

6

英特尔 P856.5、P858 和 IBM CMOS-8S 工艺金属互联层的大小、相对电阻对比,可见 P856 最「瘦高」

至于提升厚度所带来的电容效应,英特尔也有了新突破:其首次在绝缘材料上加入了 SiOF,相比传统的纯 SiO2,掺有 5.5% 氟的 SiOF 介电常数更低6,能有效降低金属层之间的电容效应,英特尔在实验中发现:光是这一技术就能让芯片频率提升 16%。

7

P858 六层铝互连层的横截面,可见其间由低介电常数物质所填充

对最重要的晶体管而言,P858 与 CMOS-8S 依旧沿着摩尔定律稳步前进:不仅密度相比上代提升近一倍,还能在功耗不升反降的情况下速度快上 50%。

而在生产方面,P858 工艺也颇具优势:相比乐于运用新技术的 IBM,并未引入新制造设备的 P858 生产速度比前者要快得多。良率也节节攀升、再创新高:从 P854 的 60%、P856 的 63% 来到 65% 以上。最终让英特尔在与 AMD、PowerPC 竞争中经常占据主动:屡次先于竞争对手生产出新一代芯片。

8

英特尔 P858 与其前代以及 Motorola、IBM 的工艺参数对比

一骑绝尘

在这一先进工艺的光辉下,首次将 L2 缓存集成进 Die 内部的新奔腾 III「Coppermine」于 1999 年 10 月横空出世,虽然「铜矿」代号对铜互联工艺有欲盖弥彰之嫌,但所爆发出的性能却让其成为了名副其实的 G4 杀手。

得益于近两倍的晶体管以及 66% 的 SRAM 密度提升,让新奔腾 III 能集成 2900 万个晶体管,比前代的 950 万多了三倍,其中 30% 都用于巨大的 L2 缓存,Die 面积却缩小 17%:从之前的 128mm² 降至 106mm²,生产成本也从 65 美元降至不到 40 美元。

9

新 Pentium III「左」及其 Dieshot「右」,可见近 1/3 的面积均由其 L2 缓存占据

虽然和前代一样:新奔腾 III 的 L2 缓存只能在 1/2 的核心频率下运行,且容量只有 256KB,远不如之前的 512KB。但相比将缓存单独放于主板上,将之集成进芯片的做法优势多多。

首先其 L2 总线位宽从 64bit 增加至 256bit,吞吐量是上代的四倍;其次延迟大幅降低:从 18 个周期降至 8 个周期。如此一来不仅 L2 命中率没有降低,制造总成本还在下降。

10

得益于频率提升和片上 L2 缓存的加持,新奔腾 III 的运行速度比前代快了 30%

在性能层面新奔腾 III 则继续大幅跃进,不仅重新设计了总线控制器,缓冲区容量7和持续吞吐量8都有了提升,核心频率也涨至 733MHz,加之片上 L2 缓存带来的增益,彻底超越了 G4,功耗却大幅下降:相比上代能在同频率下低 43%,甚至能放入笔记本中9

而与 AMD 激战后,其频率更是在 2000 年中一路飙到 1GHz 以上,面对频率高两倍的英特尔,就算乔布斯的「同频率快两倍」定律是真的,现在的 G4 恐怕也不是英特尔的对手了。

11

G4 与新 Pentium III 在 SPEC95 测试中的整数「左」与浮点「右」成绩对比

停滞不前

而在这段多事之秋里,PowerPC 干了什么?

什么事都没发生,一片死寂:G4 依旧在 500MHz 徘徊,新芯片遥遥无期。

由于 IBM 已经淡出 G4 及后续的研发,作为新芯片的唯一推动者,Motorola 只在 1999 年 10 月发了篇文章,提到了代号为「Voyager」的新 G4,表示其不仅在微架构层面有了大幅改进,更将使用能与英特尔 P858 相匹敌的 180nm 工艺制造。

此言一出,立即吸引了大众的目光,尽管 Motorola 没说发布日期,可还是挡不住汹涌的流言, Microprocessor Report 等期刊纷纷引用「消息人士」的话,宣称两个月前新 G4 就已经流片,将于 2000 年中开始大规模生产。

但谣言终归是谣言,到了 2000 年,Motorola 提到的 180nm 新工艺、新 G4 双双搁浅。雪上加霜的是,在当年的 3 月,一场席卷硅谷的危机正悄然而至。

再遭重创

从 90 年代末开始,「互联网」几乎成了所有科技公司追逐的热点,像英特尔这类芯片厂商在宣传奔腾 III 上的 SSE 时都会改成「Internet SSE」,而下文奔腾 IV 的架构名称则是「NetBurst」。在美国政府降息、减税的大背景下,2000 年初,大众对这一科技爆点的狂热来到了顶点:一时间大量资金涌入各大科技公司,纳斯达克指数也一路飙升,在 3 月 10 日达到了创纪录的 5048。

但正所谓「爬得越高、摔得越惨」,那些初创的互联网公司在将钱挥霍一空后,崩溃开始了:一个月内纳斯达克指数跌幅就超过了 25%,几年间整个股市市值蒸发了近三分之二。

12

1994-2004 的纳斯达克综合指数趋势图,互联网崩溃的尖峰清晰可见

「互联网崩溃」事件对正在重组的 Motorola 而言简直是飞来横祸,这家刚刚才重新盈利的公司又遇到了大麻烦:受互联网崩溃的影响,从 2000 年 4 月开始 Motorola 股价也一路走低,到年末已经跌了近 70%。

在这种大背景下,Motorola 新工艺和新芯片的推迟也就不足为奇了。纵观整个 2000 年,Motorola 没拿出哪怕一颗像样的新芯片给苹果,这无疑让乔布斯失望透顶,对英特尔是愈加地向往。

13

Motorola 2000、2001、2002 年的股价,可见从 4 月开始就一路走低,并持续低迷了 3 年之久

雷声大雨点小

而另一边,IBM 虽然已经与 Motorola 分道扬镳,但仍然不忘在前沿领域推陈出新:1999 年末,IBM 在奥斯汀研究实验室制造了一颗 64bit 且能运行在 1GHz 频率下的 PowerPC 芯片。

似乎是为了回应那些认为短流水线 G4 难以提高频率的质疑,这颗芯片仅有六级流水线,且和当年的 X704 一样:为了冲击高频,其架构设计十分简陋10;功耗也极其离谱:在 1.87V 电压、1GHz 下运行时高达 112W,几乎不可能塞进 Mac 中。且在上代 CMOS-7S 工艺下,1900 万个晶体管让其 Die 面积猛增至 150mm²,若要量产成本将居高不下。

14

尽管只具有实验性质,但严格来讲这仍是第一颗突破 1GHz 的 PowerPC 芯片

随着时间推移,形势对苹果而言愈发严峻:在桌面市场 G4 已经被英特尔、AMD 等厂商全面超越;而在笔记本市场,由于 G4 较高的生产成本以及难以驾驭的十几瓦功耗,iBook、PowerBook 系列仍旧用着 G3,面临着产品线停滞的风险。

在这关键时刻,IBM 挺身而出,填补了低端产品线的空缺:2000 年 9 月,在落后英特尔近一年后,将 L2 缓存集成进 Die 内的 PowerPC 750CXE 被放入了 iBook 中,成了 2000 年 PowerPC 阵营在个人电脑市场上的唯一突破11

15

750CXE「左」及其 Die shot「右」

因为 IBM 只在 G3 基础上改进,所以该芯片在微架构层面相比上代改动十分有限12,但 IBM 有着能与英特尔 P858 相媲美的 CMOS-8S 工艺,让 G3 的晶体管数量突破 2000 万大关,达 2150 万之巨,同时 42.7mm² 的 Die 面积与前代几乎相同。

和新奔腾 III 一样,片上 L2 缓存的加入让延迟、未命中惩罚的周期大幅降低13;同时也能彻底舍弃后端缓存总线,让芯片封装更容易14

但一心想降低制造成本的 IBM 仍不满足于此,其以退为进,丢弃了自身沿用多年、快成为行业主流的「倒装芯片」封装,转而使用「引线键合」这一奔腾芯片都快抛弃的技术,或许 IBM 与英特尔之间此消彼长的趋势在这时就开始显现了。

16

PowerPC 750CXE 的封装示意图,号称采用了新型有机层压 BGA 封装技术,实则处处透着拮据

最终 IBM 也如愿以偿:每颗芯片标价仅 77 美元。而在新工艺和片上 L2 缓存共同作用下,这枚 G3 的功耗再创新低:相比前代 400MHz 下 5.7W,其在 550MHz 运行时仅为 4.6W,而在后续频率提高至 700MHz 后功耗也只有个位数。搭载在了 2001 年最后一代 iMac G3 上。

17

最后一代 iMac G3,似乎也象征着 PowerPC 全盛时代的终结

尽管其一经发布,就成了嵌入式领域的新宠,被称为当时性能最强的嵌入式芯片,但对个人电脑市场而言:片上 L2 缓存并没给 G3 带来性能上的飞跃,其 IPC 仍然原地踏步15。显然 G3 微架构的性能潜力已被挖掘殆尽,更新工艺也只是权宜之计。现如今只有等 Motorola 在新芯片上的研发取得突破,才能助苹果在桌面市场上击败英特尔。

巧妇难为无米炊

面对如此不利形势,好强的乔布斯并未退缩。既然 G4 的传统性能已经难以匹敌新奔腾 III,唯一还占优势的就是 Velocity Engine,那就让能利用该单元进行硬件加速的 Photoshop、QuickTime 等软件多多出镜,在发布会上一次次击溃英特尔以提振大众信心。

至于「同频率快两倍」定律已经不太好使了,那也好办,乔布斯再度加码,说出了「500MHz G4 能与 1.2GHz 奔腾相抗衡」的新理论,而各位压根买不到 1.2GHz 的新奔腾 III。

18

至于你信不信,我反正信了

对高端桌面市场而言,既然一颗 G4 已经镇不住英特尔,那就用两颗:受益于 128bit 位宽、100MHz 的 60x 总线以及对 MESI 协议的支持,其最多能让四颗 G4 同时运行。于是在乔布斯「Two brains are better than one」的思想下,搭载两颗 G4 的 PowerMac 于发布会上震撼亮相。

19

PowerMac 里搭载两颗 G4 的主板

与此同时,营销副总裁菲尔·席勒拿着 1GHz 的新奔腾 III 又与台上的乔布斯一唱一和:两者同时运行 Photoshop 看谁快。得益于 Velocity Engine 的硬件优势以及两颗 G4 的无间配合,结果自然呈现一面倒的趋势:运行同一任务时,PowerMac 只用了 61 秒,而英特尔花了整整 124 秒。

面对众人的惊愕,乔布斯得意地表示:不仅双处理器将成为未来高端的 PowerMac 的标配,而且这一配置将等同于 2GHz 的英特尔奔腾芯片。

你若是苦苦等上 12 到 18 个月,他们或许能造得出来 2GHz 的奔腾芯片,而我们的双 G4 型 PowerMac 今天就能发货。

20

这一田忌赛马般的比较,大概也只有乔布斯能独家定制

同时以乔纳森·艾维为首的设计团队也再次突破设计的边界,著名的 PowerMac G4 Cube 就此诞生,在其晶莹剔透的外表让世人为之惊叹的同时,得益于 G4 相比新奔腾 III 稍低的功耗,内部甚至没有风扇来散热。

21

G4 cube「左」及其主板「右」,可见其散热均由鳍片提供

可这次努力却并不尽如人意:G4 全面落后于新奔腾 III 已成既定事实,单凭某个专用处理单元来比较 CPU 性能高低实在有失偏颇,难以服众。

双芯片 PowerMac G4 的推出也显得有几分仓促:孱弱的 Mac OS 9 此时依旧在挑大梁,而支持对称多处理的 Mac OS X 还在酝酿中,因此搭载两颗 G4 的 PowerMac 类似于前文的 Mac 克隆:其两颗 G4 大多情况下只有一颗在全力运转,「一核有难、另核围观」的戏码仍在上演。

22

MacWorld 杂志上 Mac OS 9「左」与 Mac OS X「右」之间的调度差异

祸不单行,在「One more thing」光环下出生的 G4 Cube 也因售价高昂、市场定位不清晰等诸多原因,9 月发售后很快便遇冷滞销,再加上互联网崩溃等因素互相叠加,当月 28 日,苹果对外发出预警,称第四季度业绩将大大低于预期。

第二天,危机爆发了,苹果股价暴跌 51.9%,市值被腰斩,接下来 2001 年第一季度也成了乔布斯回归后苹果公司的首次亏损,达 1.95 亿美元之多。

23

苹果 2000、2001、2002 年的股价走势,可见 9 月 29 日股价有了跳崖式下跌,堪称苹果有史以来最糟糕的一天

游戏的野望

正当苹果与 Motorola 双双为生计而拼搏时,与之保持距离的 IBM 所受影响较小,得益于退出了 PowerPC 新芯片的研发,使其能更加专注于自家的 POWER 服务器系列,并在游戏领域大放异彩。

90 年代末,游戏界的竞争逐步进入白热化阶段,「御三家」的局面开始形成,没有在个人电脑领域把握住机会的 IBM 自然不愿意让历史重演,与其自己大动干戈造游戏机,不如学当年英特尔,以芯片为矛、软件厂商为盾,在游戏市场分一块蛋糕。

于是 1999 年,IBM 与任天堂签订了一份价值 10 亿美元的合同,将为其生产下一代游戏机芯片,此为 IBM 有史以来最大的一单合同,足见其对游戏的重视,而低成本、高能耗比的 PowerPC 自然成了不二之选。到了 2000 年,代号为「Gekko」的芯片开始走进大众视野,未来将专用于任天堂主力游戏机 GameCube。

24

新闻发布会现场,任天堂董事长 Howard Lincoln 正在发言

这对 IBM、任天堂而言可谓是喜事一桩:IBM 的铜互联工艺名震整个芯片制造界,任天堂的设计师们也早已喜出望外,开始遐想下一代游戏机将是如何的强大。

「在我脑海中,我一直在设想像塞尔达这样的游戏会是什么样子」任天堂开发者宫本茂说道「现在,有了 Gekko 处理器,我看到了将游戏设计提升到全新水平的机会」

25

Gekko 芯片「左」以及当时 IBM 的宣传图「右」

鉴于 IBM 手上只有 G3 及其衍生型号可供使用,「Gekko」也不例外,其由 PowerPC 750CXE 改进而来,所采用的工艺、晶体管数量和 Die 面积都与之相同,运行在 486MHz 下,功耗仅为 4.9W。

与前辈相比,「Gekko」只添加了 IBM 为任天堂定制的 50 条 SIMD 浮点指令,和 Velocity Engine 非常类似,峰值情况下「Gekko」的浮点单元16能一周期处理两条矢量浮点指令,外加 32 个能存储 2 条单精度浮点指令的 64 位寄存器以及 486MHz 的频率,使之达到 1.9Gflops 的算力。

虽然微架构层面的改进并不明显,但在 IBM 与任天堂工程师们的通力协作下,GameCube 的系统架构依然独具一格:不同于重视 CPU 的个人电脑,游戏机的核心是 GPU,应优先满足其高内存带宽、低延迟的需要,保障运行性能。

26

GameCube 的架构图,可见 GPU 占据核心地位,CPU 反而被晾在一边

为了不让内存成为瓶颈,工程师们提高了 CPU 与 GPU 相通的「北桥」总线频率上限,由 133MHz 提升至与 GPU 频率一致的 162MHz 以降低延迟;并将 GPU 与内存相连的「南桥」总线频率提升至 324MHz,达到 GPU 频率两倍以保证内存带宽的充裕;同时内存本身也得到了一定的加强,相比传统的 DRAM 延迟更低17

经过一番改造后,GameCube 的性能相比上代 Nintendo 64 有了全方位提升,面对竞品也尚可一战:虽然比不过搭载 733MHz 奔腾 III 的微软 Xbox,但「Gekko」对付另一边的索尼 PlayStation 2 已经足够。

27

Nintendo 64「左」与 GameCube「右」马里奥的建模对比,可见其外形有了大幅改进

一年后,GameCube 于 2001 年 9 月 14 日在日本发售,任天堂对此极为重视,花了 7600 万美元来营销造势,售价也仅 199 美元,低于 11 月发售的 Xbox 以及市面上 PlayStation 2 近 100 美元,希望在「第六代游戏机」竞争中夺得一席之地。

但一开始 GameCube 并不顺利:第六代游戏机市场中,热爱暴力游戏的青少年、成人占据多数,可 GameCube 的营销却将受众瞄准在更年轻的消费者上,因而被外界称为「小学生玩具」。外加多款热门游戏未支持 GameCube 以及「911」事件的影响,致使在发售后的一年多,GameCube 的市场份额只有 13%,与 Xbox 相持平,远低于 PlayStation 2 的 60%。

GameCube 销量的低迷,加之汇率波动带来外汇损失,让任天堂在 2004 财年上半年18遭受亏损,成了其在 1962 年上市以来第一次亏损。于是在 2003 年圣诞期间,GameCube 降至 100 美元以下,试图提振销售。

与此同时,任天堂强大的号召力让各类游戏开始适配,形势逐渐好转:2004 年初其在美国的市场份额升至 39%,欧洲市场也扭亏为盈。最终卖出了 2200 万台,略低于 Xbox 的 2400 万,但无法与 PlayStation 2 的 1.5 亿相提并论。

28

GameCube「左」及其主板外观「右」

尽管 GameCube 的销售成绩差强人意,但 IBM 并未灰心,继续与任天堂合作,并且为了不将鸡蛋都放进一个篮子,其向「游戏御三家」另外两位也伸出了橄榄枝:一边与索尼、东芝组成 STI 联盟商讨制造 Cell 芯片的事宜,一边为微软生产 XCPU 芯片,分别搭载在下一代游戏机 PlayStation 3 与 Xbox 360 中,当然这些都是后话了。

姗姗来迟

2001 年新年之际,Motorola 终于带着新工艺和新芯片展现在世人的眼前,乔布斯欣喜若狂,为此他已经苦苦等待了一年多,在苹果 2001 年第一财年报告中,其兴奋之情溢于言表。

「上个季度,我们咽下了苦药」苹果 CEO 史蒂夫·乔布斯说道「今年伊始,我们将一鸣惊人:1 月带来全新的 PowerBook G4;2 月迎来 733MHz Power Mac G4;3 月,Mac OS X 也将闪耀登场」

事实也的确如他所言,随着 Motorola 180nm 新工艺的成熟,G4 也成功地迎来了一次升级:Die 面积从 83mm² 降至 52mm²,生产成本有所降低;功耗也下降 15% 到 20%19,放进苹果笔记本中已不成问题,但频率并未进一步提高。

29

采用上代 220nm 工艺的 G4「左」和采用 180nm 工艺的 G4「右」,可见 Die 面积有明显的缩小

随着新工艺下的 G4 顺利生产,全新钛合金 PowerBook G4 在乔布斯的「One more thing」光环下闪亮登场,新增的 Velocity Engine 外加其干净利落的外观,不仅符合了乔布斯的「Power + Sex」标准,也让世人为之惊叹。

30

虽然深受铰链断裂、掉漆的影响,但钛合金 PowerBook G4 仍在苹果历史中留下了浓墨重彩的一笔

在这场发布会中,同样到来的还有乔布斯心心念念的新芯片。对位处高端桌面市场的 PowerMac 而言,可谓是久旱逢甘霖,使之重新有了向英特尔叫板的资本。而对面的英特尔,也在这一节骨眼上亮相了谣传已久的奔腾 IV,一场血战即将来临。

旧瓶装新酒

先看新 G4,其采用了与奔腾 III、奔腾 IV 同代的 180nm 工艺20,也顺应时代潮流,将 256KB 的 L2 缓存集成进 Die 中21,并可选配 L3 缓存。晶体管数量翻了三倍多:从 1050 万提升至 3300 万22。同时 Die 面积从 83mm² 增至 106mm²。

而最重要的,是其终于打破了 18 个月来束缚苹果的 500MHz 桎梏:能够达到 733MHz 的频率,后续可在最高 867MHz 频率下运行。

31

新 G4 外观,其正式名称为 PowerPC 7450

但若深入内部,则会发现其并非超频版的 G4:微架构的大幅精进才是其提升频率的关键。之所以上代频率裹足不前,原因之一就在于其较短的流水线设计:G4 的整数流水线仅为 4 级,这让一个时钟周期内工作量过多,周期时间难以缩短,频率自然无法提升。

对此 Motorola 进行了深入研究,最终发现 L1 缓存访问、指令调度/发送和完成/回写这三大步骤的工作量过大,是难以缩短周期的主要因素。于是在新 G4 中,这些步骤均一分为二,整数流水线级数由 4 级加深至 7 级,外加工艺的升级,成功缓解了这一问题。

32

上代「灰」与新 G4「紫」的流水线对比

但俗话说鱼和熊掌不可兼得,新 G4 加深流水线的举措虽然让频率提升,也让分支预测错误的惩罚代价变得高昂:由 4 周期提高至 6 周期。为此新 G4 提高了 5% 的分支预测能力23予以抵消。

除此之外,新 G4 前端的指令吞吐量也有所提高:一周期能调度至多三条指令和一条分支,相比上代增加了一条指令。并且提升各类缓冲区的容量24以防止流水线停滞。

而在后端,执行单元数量也有了增长:整数单元数量从上代的两个提高到 4 个,新增了一个简单整数单元和一个复杂整数单元25;Velocity Engine 各执行单元彼此更加独立26。指令窗口也进一步提高,让指令能更高效的乱序执行27

33

新 G4 的架构图,可见改动「紫框」非常之多

更宽的微架构、更高的频率也让新 G4 的功耗再度抬头:在 533MHz 基础频率运行时,其典型功耗为 11.6W,已然超过了上代的最大功耗;而在 733MHz 运行时甚至超过了 20W。「PowerPC 有较高能耗比」这一优势正在渐渐流失。

34

PowerMac G4「左」与新 G4「右」散热鳍片对比,可见后者相对有所增大,且后面有风扇主动散热

总体而言,新 G4 相比前代有了稳步提升,幅度远大于 G3 到 G4,面对英特尔的奔腾 III 也算是有了几分底气,但或许是 Motorola 过早地曝光,以至丧失了将之命名为 G5 的机会,最后在发布会中乔布斯也只将之归为频率升级后的 G4,并未像介绍 Velocity Engine 那样大肆吹嘘一番。

尽管已经低调处理,可 Motorola 却偏偏又在这关键时刻掉了链子:临近发布会时,最高 733MHz 的新 G4 产量严重不足,无法像乔布斯曾许诺过的那样让双处理器成为标配。

于是乔布斯只好再一次食言,在台上尴尬地表示目前只能提供高频版的单芯片 PowerMac G4, 几个月后才能订购双芯片版本。

即便如此,当 The Register 等媒体问及苹果有没有考虑将 Mac 上的芯片换成英特尔时,乔布斯的回答却依旧是否定的。

面对业界传言苹果将制作 x86 版本的 Mac OS X 以吸引企业客户,乔布斯斩钉截铁地予以否认。据称,苹果甚至没有在某个遥远的实验室里温存一个 x86 版本的 Mac OS X,「这绝无可能!」他严肃地说道。

至于苹果是否太依赖 Motorola 和 IBM 这两家芯片供应商,以及他们是否有能力专注于为苹果的桌面需求进行 PowerPC 开发,乔布斯则略带不耐烦地驳斥道「你根本不知道你在说什么!」

欲速则不达

另一边,在被 AMD 捷足先登,输掉 1GHz 之战后,英特尔算是深刻意识到了「频率」二字对大众的重要性,于是研发新一代芯片奔腾 IV 时,在营销人员的压力下,工程师们将竭尽所能,应用大量前沿技术,尽最大程度提升其频率,誓要在这场速度之战中取胜。

奔腾 IV 沿用了之前的 P858 工艺制造,但在各项参数上均力压新 G4:其一共集成了 4200 万晶体管,比新 G4 还多 27%;Die 面积为 217mm²,是新 G4 的两倍多。

35

1.5GHz 的初代 Pentium IV,代号「Willamette」

为了全力增加奔腾 IV 的频率以提升性能,正如新 G4 做的那样,英特尔也将流水线级数加深:从原来的 12 级一举增加到了 20 级,甚至某些级数没有功能,仅仅是在等待信号传导。这一改动让其频率能轻松突破 1GHz,首批奔腾 IV 的频率就达到了 1.5GHz,是新 G4 的两倍。

同时为了匹配这一超深的流水线,英特尔也重新设计了奔腾 IV 的乱序执行结构28,ROB 从 40 条目增加到 126 条目,反观较浅流水线的新 G4 仅为 16 条目。

36

介绍 Pentium IV 时英特尔的幻灯片,可见其对流水线深度的狂热追求

而若是深入其内部,其微架构的创新则更是令人惊叹:自 P6 引入 µop 后,x86 平台相对于 RISC 平台的劣势已被消去大半,只在解码时需多费些时间。看似微不足道,却成了奔腾 IV 提升频率的一大阻碍,于是雄心勃勃的英特尔工程师们心中不免冒出一个想法:何不将这最后一块缺陷也一并补上?

在奔腾 IV 中,L1 的指令缓存被当成了一个 µop 指令池,称为追踪缓存。奔腾 IV 先从 L2 缓存中获取 x86 指令并解码,经解码后的 µop 就存储在追踪缓存中,每当需要执行该指令时,只需将之从追踪缓存中获取即可。

37

前代 P6「左」与 Pentium IV 的 Netburst「右」微架构前端的大致对比,可见变化巨大

这一想法不可谓不前卫,类似于现今的 µop 缓存,其带来的好处显而易见:不仅能有效杜绝重复解码相同指令带来的损耗;还能在高频下保障吞吐量,稳定地为后端提供指令,防止执行单元因利用率过低而造成性能下降;甚至能避免分支预测时出现流水线空泡影响性能29

在后端,奔腾 IV 虽然只有三个整数单元,似乎弱于新 G4 的四个,但其简单整数单元的运行速度更快:其半个周期就能执行一条指令,并不逊色于对手30;而两大浮点单元31也让其浮点性能强于新 G4,且增加了 SSE2 指令,终于也支持了 128bit 的矢量整数运算和双精度的矢量浮点运算,面对 Velocity Engine 也有了一战之力32,在 1.5GHz 运行时峰值算力可达到 6Gflops33

38

Pentium IV「左」与新 G4「右」的微架构对比,相较之下前者更「深且窄」而后者更「宽且浅」

但有得必有失,超长流水线带来的问题远超英特尔预期,尽管奔腾 IV 采用的分支预测器相比上代错误率降低了 33% 试图予以补救34,可仍是杯水车薪:若分支预测失败,新 G4 的最小惩罚仅为 6 周期,而奔腾 IV 却能达到 13 周期;若追踪缓存未命中,则需要到相对更慢的 L2 缓存中寻找,将耗费整整 36 周期。

39

Pentium IV 在运行含不同数量分支指令的循环时,其分支预测所需的平均周期

而其中最大的创新:追踪缓存也喜忧参半。虽然成就了奔腾 IV 的超高频,但其作为 L1 缓存却显得效率低下:经解码后的 µop 远比平常的 x86 指令更占空间;并且还存在指令重复存储的现象,进一步拉低了效率35;最后还要搭上一堆辅助单元保障调度不出问题。

种种不利条件下,最终让 12000 条目追踪缓存的命中率只与普通的 8-16KB L1 指令缓存相当,在那个晶体管昂贵的年代,这一代价实在过高,为了保证芯片面积不至过大,英特尔不得不在其他地方进行削减:L1 数据缓存从上代的 16KB 缩水至 8KB36;前端解码器也从 3 个降至 1 个;MMX 单元从 2 个减至 1 个;地址生成单元直接被砍没。成了奔腾 IV 性能大打折扣的又一原因。

40

Pentium IV 初代的 Die shot,可见追踪缓存及其辅助单元「紫」的面积相比 L1 数据缓存「黑」大得多

最终该技术并未广泛采纳,就在下一代酷睿系列中被抛弃。但这并不代表其一无是处,在被英特尔雪藏 10 年后,其又以 µop 缓存的身份展现在世人面前,而搭载它的 Sandy Bridge 架构更是以出色的性能将 AMD 的 Bulldozer 打得落花流水,造就了「i3 默秒全」的神话,当然这些就都是后话了。

但奔腾 IV 就没那么幸运了,受制于极高的分支预测失败惩罚的以及追踪缓存带来的不良反应,初代奔腾 IV 尽管频率比奔腾 III 一举提高了 50%,但性能却并没有大幅飞跃,IPC 的折损可想而知。

41

各大芯片运行 Dhrystone 2.1 的分数与频率对比图,可见 Pentium IV 的 IPC 有了明显倒退

同时高频下的功耗表现更是惨不忍睹:在 1.4GHz 运行时,初代奔腾 IV 功耗能达到 50W,而在最高 2GHz 运行时则飚升至 75.3W。面对这一大火炉,已经逐渐式微的 PowerPC 倒还显得有几分清凉。

The Megahertz Myth

尽管拥有无与伦比的频率优势,但奔腾 IV 上述的致命缺陷,让拥有新 G4 的乔布斯并不甚担心,在年初的 Mac world 大会上提出了「The Megahertz Myth」这一说法,试图用他的「现实扭曲力场」来消除掉大众「频率就是一切」的错误观念。

42

「MHz」的确是衡量性能的指标之一,但它绝不是唯一要素。影响系统整体性能的因素还有很多。单纯用「MHz」来比较的话,就好像在比较苹果和橙子。

如果我们想用「英特尔版的 MHz」来标注 G4 处理器,那么为了体现其性能提升,我们就得把它叫做「2 GHz 的 G4」,懂我意思了吧?

43

大会上乔布斯慷慨激昂地向大众解释 G4 的优越性

到了 5 月的 WWDC 大会,奔腾 IV 的频率已从 1.5GHz 飙到 1.7GHz,继续对 867MHz 的新 G4 形成两倍碾压态势,同时性能也开始全面超越上代奔腾 III,逐步成为市场主流。乔布斯也一点不慌,他故技重施,继续利用 Velocity Engine 在 PhotoShop 上的独特优势将奔腾 IV 轻松击败:新 G4 比奔腾快出了 80%。

44

WWDC 2001 大会上乔布斯的对比

如果这还不够,那就干脆让硬件主管乔恩·鲁宾斯坦亲自上台为大家科普流水线级数过多的坏处。在动画中,新 G4 较短流水线带来的优势远胜于奔腾 IV,并且为了节目效果,演示也暗藏玄机:不同于现实中频率的巨大差异,动画中两颗芯片以同样速度运行;在分支预测失败时,更是毫不留情地将奔腾 IV 的整条流水线全部清空以彰显其糟糕设计。

45

Jon Rubinstein 在台上介绍短流水线的优势

随即,两者在 Photoshop 上的性能差异迅速登上了苹果官网,「The Megahertz Myth」这一起自 1984 年的观点37再度成为了苹果的营销重点,试图让大众相信:PowerPC 没输,奔腾除了频率快点,其它一无是处。

46

还附上 Jon Rubinstein 这段堪称处理器知识科普的动画演示

但并非所有人都会买账,MacWorld 杂志发了篇题为「Stand By Your CPU Apple Praises IBM And Motorola, But Could Alliance Sour?」的文章,认为苹果正做着营销上的困兽之斗,并揭露了 AIM 联盟在 PowerPC 上的分歧。

奔腾芯片是否真比 PowerPC 更快还有待商榷,但这无疑是苹果的营销噩梦:你可以吹嘘自己 Gflops 级的算力和双芯片,但最终普通消费者还是会被更高频率所吸引。

此外,Motorola 和 IBM 还将 PowerPC 作为嵌入式芯片出售,且销售数量远多于苹果,所以对 Motorola 和 IBM 而言,苹果用户渴望的高频不一定是优先事项。

47

MacWorld 杂志上的插画

将新 G4 和奔腾 IV 进行测试后,MacWorld 杂志发现,虽然运行 PhotoShop 这一软件时 G4 比奔腾最多快两倍,但只要一离开 Velocity Engine,处理速度就会大幅下降:像 MP3 编码这种 Mac 擅长的活都会落后奔腾 IV 近 50%,并且像 Word 等其它软件 G4 几乎都比奔腾 IV 要慢,某些情况下甚至要慢上三倍多。

48

MacWorld 杂志的测试数据

不仅如此,大众也对乔布斯的一面之词持怀疑态度,一家名为 The Joy of Tech 的网站甚至专门绘了一张漫画,将「又小又慢」G4 贬得一文不值,完全无法与英特尔的奔腾、安腾以及 SUN 公司的芯片相提并论。

49

The Joy of Tech 的漫画

至此,新 G4 相比奔腾 IV 的优势仍只有那被乔布斯玩出花的 Velocity Engine,其在频率上的落后已众所周知。在 2005 年的那次华丽转身之前,Photoshop 对比已经成了每次大会上乔布斯唯一能拿得出手的表演节目,现在能指望的,就是赶紧催促 Motorola 加速 PowerPC 的研发,别再出什么差错了。

再陷泥潭

可此时的 Motorola 已经自身难保了,2001 这一年,美国的经济增速放缓38让各行各业都进入了寒冬:手机销量下降;电信行业也将 3G 技术的部署放缓;半导体销售额更是遭遇有史以来最严重下滑39

外加「互联网崩溃」、「911」两大事件的推波助澜,一时间 Motorola 再度陷入困境,于 2001 年又面临亏损,程度远比 1998 年的那次严重:亏损了 55 亿美元之巨。高尔文家族两代人打下的基业近乎在顷刻间烟消云散。

50

从左至右分别是 Motorola 2001 年的净销售额、税前收益、摊薄每股收益、平均投入资本回报率

面对如此惨状,Motorola CEO 克里斯托弗·高尔文焦头烂额,只得让公司进行第三次重组:一年内裁员近 25%,共 36000 人,继续合并、出售各地工厂以节省开支,一度还引发了欧洲的失业潮。甚至面对耗资 9000 万美元,坐落于伊利诺伊州哈佛市、即其祖父:Motorola 创始人保罗·高尔文故乡的新工厂,他也在所不惜将之关闭

正所谓覆巢之下、焉有完卵,Motorola 的糟糕状态也让 PowerPC 的发展无从谈起。随着 Motorola 半导体部门亏损 21 亿美元,本已落后于英特尔的芯片制造工艺在之后的岁月里将愈加难以追赶,至于芯片研发就更没指望了。

51

Motorola 的衰落让 PowerPC 也日薄西山

作为被拴在同一条绳上的蚂蚱,苹果自然也被 Motorola 拽入了泥沼中:Mac 的希望之光,由 Motorola 全新设计的 G5 芯片进展不容乐观。早在 2000 年初 G4 被英特尔超越后,Motorola 就曾宣布 G5 会在 1-2 年内到来,且频率将升至 2GHz。

此言一出,万千苹果用户对 G5 的期待开始升温,希望其能后来居上,一举将英特尔斩落马下。可一年后,G5 却没了消息,取而代之的是一篇题为「The PowerPC Dilemma — Waiting for Motorola」的 MacWorld 文章,文中不仅大肆抨击了 Motorola 既保密又拖沓的行事作风,还对苹果的处境持悲观态度。

Motorola 对于未来规划,讳莫如深得近乎病态。传说中正在研发的 G5 芯片,有关其发布日期,Motorola 始终守口如瓶,连一丝暗示也不愿透露。

苹果似乎也将自己逼上了绝路。扼杀克隆厂商的举措,让苹果成了 PowerPC 桌面市场上唯一的重量级客户。对 IBM 和 Motorola 这样规模的公司来说,单一客户订单往往难以长期维系。

PowerPC 仍在奋力驰骋,虽略显落后,却未完全出局。希望姗姗来迟的 G5,能在英特尔和 AMD 筑起难以撼动的性能壁垒之前,追回失去的光阴,甚至反超。

2001 年末,又开始有消息称 G5 已经流片40,准备投入量产,预计明年 1 月面世。可真到了 2002 年,最让苹果担心的事还是发生了:G5 依旧寂静无声。乔布斯忍无可忍,迁移至英特尔的想法正一天比一天坚定。

加速前进

就在这段 G5 前景渺茫的日子里,苹果那边,被当成备胎41的迁移计划仍在区区六位工程师的努力下有条不紊地进行着。终于功夫不负有心人,在 Motorola 衰弱的大背景下,这个不太起眼的项目迎来了属于它的拐点。

时间回到 2000 年 6 月 20 日,这天约翰·库尔曼,一位渴望与家人团聚的苹果工程师,在给上司信件中表示自己希望能搬回东海岸远程办公,并主动请缨加入开发英特尔版 Mac OS X 的计划,最终被批准。殊不知这将改变他个人、乃至整个苹果公司未来的命运。

我想讨论一下让我负责开发 Intel 版 Mac OS X 的可能性,无论是作为一名工程师,还是作为项目技术负责人与他人合作,什么方式都行。

我最近一周一直在做着与 Intel 平台相关的工作,我发现它非常有趣且令人愉快。如果这个 Intel 版本对我们来说很重要的话,我希望能全职参与并进行讨论。

52

苹果工程师 John Kullmann,正是他的努力让迁移计划得到了高层重视

时光如梭,转眼间十八个月过去了,这位杰出的工程师多次在家办公,对团队而言他如同人间蒸发了一般,诺大个苹果公司竟没人知道他到底在干什么,于是 2001 年 12 月上司来到他办公室视察工作进度,只见他启动 PC,Mac OS X 正以详细模式运行着。

上司被彻底震惊住了,他沉默了一会儿,退出去并说道「我马上回来」。几分钟后,苹果软件工程高级副总裁伯特兰·塞莱特和上司一同出现在办公室中,足见约翰·库尔曼工作成果之显著。

伯特兰·塞莱特一边紧盯运行着 Mac OS X 的 PC,一边问约翰·库尔曼:

如果我买个索尼的 Vaio,你多长时间能把 Mac OS X 移植上去?

不用很久。

两周还是三周?

最多两三个小时吧。

于是他们立即去商店买了一个最贵的 Vaio 笔电,果真在当天的晚 7:30,Mac OS X 跑在了 Vaio 上。

53

Bertrand Serlet,曾任苹果软件工程高级副总裁

此事迅速传遍苹果高层,乔布斯为之惊诧,此时一个大胆的想法正在他心中酝酿:Vaio 作为当时索尼的拳头产品,深受大众喜爱,而此时的 Mac OS X 也初出茅庐,亟需大力推广,不如先与索尼合作让其生产预装 Mac OS X 的 Vaio 电脑?

于是第二天一早,乔布斯就坐上了飞往夏威夷的飞机:索尼的管理层正在那里度寒假。在庆祝完新年后,他在某高尔夫球场的比赛中与时任索尼总裁安藤国威见面,并进行了密谈。

在展示了运行 Mac OS X 的 Vaio 笔电后,作为索尼的铁杆粉丝,乔布斯表示愿意为索尼打破四年前全面禁止 Mac 克隆的原则,而安藤国威也对苹果十分钦佩,双方相向而行推动这一设想,Mac 克隆似乎即将卷土重来。

但或许是日本「下克上」的传统再次发挥了作用,乔布斯和安藤国威的提议遭到了 Vaio 工程团队的极力反对:他们已经花费了大量时间让 Vaio 适配 Windows,实在无法、也不想为了一个小众的系统再淘神费力,甚至反问安藤国威「这是否值得?」,于是这事就此告吹。

54

乔布斯「左」与安藤国威「右」

虽然最终没和索尼达成合作,但当乔布斯回来后,心中已然下定决心:他早受够了成事不足、败事有余的 Motorola,在迁移成果已经崭露头角的当下,是时候向着英特尔开足马力、全力以赴了。不久后,该计划在苹果内部著名的「百杰外出集思会」上进行了演示,并被正式命名42为「Marklar」43

于是 2002 年 1 月,离乔布斯回来还不到一个月,在伯特兰·塞莱特的张罗下,约翰·库尔曼的工作环境有了天翻地覆的变化:原先开放的家庭办公室改成了单独的封闭房间,所有窗户都必须有窗帘遮盖,并配有无窗的门,且随时上着锁,即使妻子也不被允许进入。同时他需要签署额外的保密协议,工作上的任何事都不能与妻子交谈。直到 10 年后,他妻子才在 Quora 的回帖上,透露了这些被雪藏多年的秘密。

与此同时,对其他成员的工作部署也紧锣密鼓地展开:团队工作地点被专门移至公司外,并且扩员 30%:两位工程师加入。8 月又添加十几位工程师,至此 Marklar 计划的发展开始进入快车道,预示着抛弃 PowerPC、拥抱英特尔只是时间问题了。

可远水解不了近渴,尽管已将 Marklar 纳入公司核心业务,但这一计划离完成至少还要好几年,而 G5 的一再拖延,证明了以 Motorola 现今的实力,早已无力领导 PowerPC 的发展,若要硬着头皮继续让其研发,恐怕要等到猴年马月,而这段时间内苹果高端产品线将无法得到更新,更别提与英特尔竞争了。

在这关键的窗口期,乔布斯将他犀利的目光投向了 AIM 的另一成员 IBM 身上,希望其能为大众翘首以盼的 G5 芯片带来一线生机,接下来发生的故事将在下篇中介绍。

Footnotes

  1. MkLinux 所使用的 PowerPC 版 Mach 被叫作 OSFMK 分支,即「Open Software Foundation Mach Kernel」的缩写,因此在查看 Mac OS X 中 XNU 内核代码时,Mach 的部分都被放在了 OSFMK 目录下。

  2. 早年 Unix 在被设计时,为了能移植在各类大型机上,Dennis Ritchie 发明了 C 语言并极力减少机器码的使用比重,后来 BSD 系列为了能在各大学使用,也延续了当初 Unix 的设计风格,尽可能地写与平台无关代码。比如在 FreeBSD 中,机器码在内核中的比重仅为 0.6%,与芯片架构相关代码在内核中也仅占 13.6%,这无疑为 NeXTSTEP 这种 BSD 分支移植到各架构提供了便利。

  3. 其中最著名的一次,就是在乔布斯得知苹果董事长伍拉德正打算罢免阿梅里奥并让他担任 CEO 后,由于担心自己没精力同时管理皮克斯和苹果,乔布斯曾一度犹豫万分、进退维谷,于是在一个星期六的早晨联系到安迪·格鲁夫向其请教。

  4. 为此苹果将 Velocity Engine 包装成一个名为 Accelerate 的库,分别在两个架构上映射到 Velocity Engine 指令和 SSE 指令,这个库提供了所有的 BLAS、LAPACK 功能并提供了非常高效的实现。

  5. Rhapsody 这一系统作为 Mac OS X 的前身,一开始同时支持 PowerPC 与 x86 架构,但随着乔布斯对 Mac 平台的专注,后期所有非 Mac 平台的开发版本都已被砍掉,因此当时很多从事该项目的员工都认为他们只是在做维护工作,并没想到他们正在「复活」一个完整的、能在英特尔芯片上完美运行的操作系统。

  6. 纯 SiO2 的介电常数是 4.1,比 SiOF 的 3.55 高出 15%,另外 IBM 的 CMOS-8S 工艺也运用了这一技术,被称为掺氟硅玻璃「FSG」。

  7. 相比上代的 4 个填充缓冲区,新设计包含了 6 个,总线队列也从 4 条目提高至 8 条目,写回缓冲区也从 1 个增加到了 4 个,此举能降低 CPU 等待内存的时间,但并未降低延迟。

  8. 在均使用 133MHz 前端总线时,新奔腾 III 的持续内存带宽为 1010MB/s,能达到其峰值带宽的 95%,这对内存流量较敏感的应用程序更有益,而前代则仅为峰值带宽的 64%。

  9. 在 733MHz、1.65V 下运行的新奔腾 III 最大功耗为 24.1W,但若在 400MHz、1.35V 下运行时功耗仅为 7W;并且英特尔还推出了「SpeedStep」技术,即笔记本在插电时全速运行,而在使用电池供电时芯片会降频、降电压以省电。

  10. 其前端每周期只能发射一条指令,且后端只包含一个单周期整数单元、一个四周期浮点单元以及一个两周期加载/存储单元;相比之下 G4 每周期能分发两条指令外加一条分支指令,且后端执行单元较之更多。

  11. 准确而言,PowerPC 750CX 使用的是 CMOS-8S 工艺,而 PowerPC 750CXE 使用的是 CMOS-8SE 工艺,相比 CMOS-8S 其有效沟道长度有所调整,性能更好;而 750CXE 相比 750CX 除了提高频率没有添加任何功能,并且苹果似乎只采用了前者,后者主要用于嵌入式领域,为了不复杂各芯片、工艺的称号,本文进行了简化。

  12. 与 G4 类似,相比上代,PowerPC 750CXE 仅在浮点单元上略有增强:保留站数量从一个变成两个,使之每周期都能发出一条浮点指令,浮点倒数估计的精度也从 8 位提高到 12 位。外加 L1 数据缓存重新加载路径的宽度从 64 位增加到 256 位,均是小修小补。

  13. 在 L1 未命中、L2 命中的情况下,PowerPC 750CXE 的惩罚为 5 周期,而上代 G3 受限于外部 L2 缓存,惩罚为 8 周期;在将整条 32 字节线路的数据传输至 L1 时,750CXE 只需 4 周期,而上代 G3 则需要 8 周期。

  14. 由于舍弃了后端缓存总线,新封装的焊盘能减少 25%:只需 256 个 I/O 焊盘(其中 139 个是信号),更能节省成本。外加使用塑料基板、引线键合等措施让 PowerPC 750CXE 封装成本大大低于上代 G3 陶瓷封装。

  15. 上代 G3 在 400MHz 运行时 IBM 宣称其 SPEC95 的整数、浮点分数分别为 17.6 与 12.2,而 750CXE 在 550MHz 运行时 IBM 宣称的分数为 22.4 与 13.3,似乎相比上代 IPC 甚至有了倒退,尽管在实测中上述芯片均表现更好,但性能的提高几乎完全是由频率的提升所带来的。

  16. 从 G3 开始,其浮点单元的流水线级数就为 3 级,但并未完全流水线化,使得在处理双精度浮点乘法和乘加等 4 周期指令时流水线会停滞,从而影响性能。该问题似乎无论是 Motorola 的 G4 还是 IBM 的 Gekko 均未彻底解决。

  17. 1T-SRAM 是一种伪静态随机存取存储器,即 PSRAM。不同于 SRAM 一个单元就需要耗费 6 个晶体管的奢侈,其更像 DRAM:一个单元只消耗一个晶体管。但性能比当时的 DRAM 强,同等容量也比 DRAM 大 15% 到 30%,非常类似于 eDRAM。

  18. 任天堂 2004 财年上半年是指 2003 年 4 月 1 日到 2003 年 9 月 30 日。

  19. 在 400MHz 运行时,上代 G4 的典型功耗为 5.3W,最大值为 11.3W,而采用新工艺制造的 G4 典型功耗为 4.2W,最大值为 9.5W,分别降低了 20% 和 15%。

  20. Motorola 的 180nm 工艺,即 HyperMOS-6 相比英特尔的 P858 稍占优势:其不仅采用了铜互联工艺,让金属互联层传输速度更快;还运用了钨本地互连层,使 SRAM 密度缩小至 4.5µm²,仅为英特尔 5.6µm² 的 80%,但新 G4 的 SRAM 又比奔腾 III 多出了 25%:较大的 L1 缓存和 L3 标签已经将这点优势化为乌有。

  21. 与奔腾 III 类似,片上 L2 缓存的加入让其延迟降至 9 周期。

  22. 在 3300 万晶体管中,75% 以上都用于 L1、L2 缓存以及 L3 标签中,光是 L2 缓存就要大约 1700 万个晶体管,还有 200 万用于新 G4 的模块化设计,而其核心占有大约 650 万晶体管,相比前代多 80%。

  23. 分支历史表「BTH」容量翻了四倍:从 512 条目扩大到 2048 条目,用于储存最近执行的分支指令的行为,并将之分为 Strongly not taken、Weakly not taken、Weakly taken、Strongly taken 四类进行预测;分支目标指令缓存「BTIC」容量也翻了四倍:从 64 条目扩大至 128 条目,每一条目能储存的指令由 2 条变为 4 条,用于储存分支目标地址的指令。

  24. 新 G4 在获取指令后需在指令提取缓冲区中等待,该缓冲区相比上代从 6 条目提升至 12 条目;而在指令调度与保留站之间,其新添了一组缓冲区,称为发射队列,其中矢量发射队列为 4 条目、每周期最多向 Velocity Engine 单元发射 2 条指令,浮点发射队列为 2 条目、每周期最多向浮点单元发射 1 条指令,常规发射队列为 6 条目、每周期最多向整数和加载/存储单元发射 3 条指令。

  25. 简单整数单元可以执行除了乘、除法以及移动到专用寄存器指令以外的任何整数指令,且大多仅单周期就可执行完毕;复杂整数单元则主要执行乘、除法等需要多周期才能完成的整数指令。

  26. 上代 Velocity Engine 由矢量置换区块、矢量算术逻辑区块两者构成,后者又由三大单元组成,而在新 G4 中这四者相互独立,该设计在某些情况下更具灵活性。且由于频率的提升,延迟也有所增加:矢量双精度浮点运算从 3 周期升至 5 周期;矢量复杂整数单元从 3 周期涨至 4 周期;矢量置换区块从 1 周期增至 2 周期,但 Motorola 表示以上变化对性能影响不大。

  27. 新 G4 的完成队列从 8 条目提升至 16 条目,使之能同时跟踪后端执行单元上的 16 条指令,相较之前翻了一倍,并且通用、矢量、浮点的重命名寄存器均从 6 个提升至 16 个以提高乱序程度。

  28. 在乱序执行方面,奔腾 IV 抛弃了之前采用的 ROB+RRF 方案,转而使用 PRF 方案,前者每次都会将计算完毕的指令从 ROB 移至 RRF,也就是退休「Retire」,而后者将两者合二为一,仅通过调整映射来进行此操作。此举让数据量庞大的 SIMD 指令不会经常移动以节省功耗;也避免了某些无需目的寄存器的指令占用 ROB 造成浪费;还能精简架构,让奔腾 IV 大幅增加 ROB 容量成为可能。

  29. 在传统的指令获取中,如果缓存行里有一条分支指令需要采用「Taken」并跳转至目标分支,那么在此次获取中,该分支指令后的指令均不被执行,只能丢弃,此举极大浪费了获取指令的带宽。而奔腾 IV 的追踪缓存中配有一个较小的 512 条目分支目标缓冲区「BTB」,在将分支指令从 L2 缓存中获取并解码时会进行预测,并将分支目标一并从 L2 缓存中获取并解码进追踪缓存里。这样在后端获取指令时,分支目标已经位于分支指令之后,不会造成带宽浪费,也无需现找分支目标以致延迟,杜绝了流水线气泡。

  30. 奔腾 IV 的两个简单整数单元略有不同,其中一个不仅负责加、减法和逻辑运算,还评估分支条件并执行部分存储数据的 µop。另一个仅执行加、减法,且二者虽然每半周期就能执行一条指令,但每周期前端最多只发射 3 条 µop 至后端的 4 个调度端口,所以执行单元利用率并不高,总体性能并非普通整数单元的两倍。

  31. 奔腾 IV 的两个浮点单元:一个仅被用于执行浮点内存操作,另一个执行其他浮点运算。并和新 G4 唯一的浮点单元一样:一般的浮点指令仅需五周期完成。但奔腾 IV 近两倍于新 G4 的频率显然让前者更占优势。

  32. 与新 G4 不同,奔腾 IV 的两个浮点单元具备矢量运算功能,并分别负责矢量内存运算和矢量算术运算。虽然相比 Velocity Engine 上的四个单元,仅有一个算术单元的奔腾 IV 显得非常单薄,但两倍的频率差距以及对 SSE2 指令的支持还是能让其增分不少。

  33. 由于只有一个算术单元,奔腾 IV 每周期仅可以进行一条矢量浮点指令,也就是 128bit 共四条单精度浮点运算,再乘上 1.5GHz 就能达到 6Gflops 的算力,但现实情况很难实现。

  34. 奔腾 IV 使用了最新的两级自适应预测器,还配备了 16 位全局历史寄存器「GHR」专用于某些有规律的分支预测,而分支目标缓冲区「BTB」也扩增至 4000 条目,是新 G4 的两倍。

  35. 不同于普通缓存中多个内存地址映射到同一个缓存行以提高缓存利用率的做法,追踪缓存是将解码后的指令顺序存储,意味着若某指令是多个不同分支指令的目标,则可能会被存储在追踪缓存中的多个位置。

  36. 但英特尔方面认为其 L1 数据缓存虽然有所缩减,但带宽却翻倍,且延迟大幅降低:为 1GHz 奔腾 III 的 55%,若用时钟周期测量则仅为 22%。

  37. 1984 年,当时 Apple II 上的芯片频率只有 1MHz,远低于 IBM 的 4.7MHz,很多人基于此就认为 IBM 机型比 Apple II 快五倍,但有观点认为 IBM 虽然频率高,但在处理某些指令时需要花费四周期,而 Apple II 仅需两周期,所以算下来 IBM 最多也就快了两倍多。

  38. 2001 年美国 GDP 增速仅为 0.95%,而 1997 至 2000 这四年间其 GDP 一直保持 4% 的增速:分别为 4.45%、4.48%、4.79%、4.08%。

  39. 2001 年半导体销售额为 1390 亿美元,远低于 2000 年的 2040 亿美元,下降了 30% 以上。

  40. 2001 年据消息人士宣称,十级流水线的 G5 将采用 130nm 工艺制造,不仅会重新设计总线、整数和浮点单元,还支持 64bit,在 1.4GHz 运行时功耗为 26W,甚至将 G5 的 SPEC 测试数据也一并泄漏。

  41. 正如上文所述,尽管该计划保密程度非常高,但一开始高层对此似乎并未高度重视,甚至没有一个清晰的目标:当成员之一 Simon Woodside 在 2001 年 8、9 月与 Bertrand Serlet 交谈此事时,后者希望他不必花太多时间在上面:这大概只是一个保持代码良好架构的工程练习;未来可能会用于某种平板电脑或机顶盒;或是防止 PowerPC 发生变故的后备方案。当然下文中 John Kullmann 出色的工作成果彻底改变了他们原先的看法。

  42. 有关项目代号到底是谁想出来的颇具争议,John Kullmann 的妻子 Kim Kullmann 声称是她想出来的,并表示起初这是为了命名第三台运行 Mac OS X 的 PC,并非项目正式代号。也有曾参与该计划的苹果前员工 Simon Woodside 认为是同事 Matt Watson 想出来的,但均未得到证实。

  43. 有传言称,此代号是取自 1999 年 11 月上映的「南方公园」这一电视喜剧第三季十三集中的外星语,该电视剧在设定中:外星语的所有名词均是「Marklar」,其余部分与英语无异。