听说包着科技外皮的法务公司 Oracle“终于”要抬着 Solaris 和 SPARC 种去埋了,精简指令集历史又被撕掉了一页。喂,都忘了 SPARC 还有 Fujitsu 还在勉力奋斗跟 IBM Power 打对台吗?
喔齁。
RISC 处理器在服务器与工作站市场的退潮,基本上在 1990 年代末期,就早已失去任何逆势拦阻的可能(Intel Itanium 算是反向操作后,自己玩死自己),连带 RISC 处理器的个人电脑也一同殉情,本世纪初期 Apple 的 Power Mac 仅为余晖,而心脏 PowerPC 970(G5)则为 RISC 桌上型处理器的绝响。
▲ PowerPC 970FX 处理器。(Source:By Ryanbutterworth (Wkipedia) [GFDL or CC-BY-SA-3.0], via Wikimedia Commons)
笔者亦有幸在担任某周刊技术编辑时,跟 Apple 原厂陆续借测报导数款搭载 PowerPC 的系统产品,包含 2003 年先后各一台“由 Steve Jobs 在 WWDC 法会,开示世界上首款 64 位元且效能最好的个人电脑”Power Mac G5 和稍晚后发的双处理器版、2004 年测试 Xserve G5 与搭配的外接磁盘阵列 Xserve RAID,2004 年底被 IBM 抓去北京的 Power Everywhere 布道大会、实际体验蓝色巨人的洗脑功力,与 2005 年制作商用笔电采购特辑的 PowerBook G4。那张在红外线热侦测仪下一览无遗红通通的热区分布,事隔十多年,至今仍让笔者津津有味。
笔者还依稀记得台湾 Apple 原厂动辄动员数人协助送货兼开箱兼初次安装设定,受宠若惊,当然在苹果帝国号令世界的当下,是绝对没可能了。
挥舞著第二次 Power Everywhere 的大旗(笔者坚定认为推动 PowerPC 的 AIM 联盟,就有资格算第一枪),瞄准个人电脑市场企图进一步开疆拓土的 IBM,当初的野心可是很想搞很大呢。
不要问我为何 IBM“当时”会公布如此夸张的时脉,拜托,Intel 那时喊得更凶好不好?
跟 Intel 力拼最先进泛用处理器制程、争夺超高时脉标竿的蓝色巨人,还为了自家的刀锋服务器与 Apple 的 PowerMac,公布了惊世骇俗的前瞻计划:
- PowerPC 975 将采用 11 层铜导线布线制程。
- PowerPC 976 导入预应变硅(Strained Silicon)SOI 晶圆。
- PowerPC 980 引进 3D 垂直结构的鳍式场效晶体管(FinFET),这可是惊天动地的大事,事实证明,FinFET 真正广泛应用,是十多年后才发生的事情。
以下跟制程无关:
- PowerPC 975 支援同时多执行绪(SMT),反正都沿用威力十足的 Power5 核心了,但没有 AltiVec,Apple 应不会采用,会是 IBM 刀锋服务器限定的型号。
- PowerPC 976 支援 VMX2(AltiVec 2,按惯例,Apple 应会改称 Velocity Engine 2 吧)SIMD 延伸指令集,应为 PowerPC 975 更新制程后的小改款。
何等壮大的“产品简报”,随着 Apple 在 2005 年宣布抽腿不玩 PowerPC,而自动消失在世界的尽头,奠基于威镇四方 Power5 核心的 PowerPC 975 没有出现。
那下面呢?下面就没有了,传说已久的 PowerBook G5,只闻楼梯响,不见人下来,接着就上映 Apple 夜奔敌营叛逃万恶 Intel x86 处理器的番外篇,正义的 RISC 十字军,不敌邪恶的 CISC 恶魔党,深感时不我与,令人不胜唏嘘。
▲ 2006 年苹果于 Macworld 中宣布采用英特尔处理器,当时英特尔首席执行官保罗·欧德宁(Paul Ottelini)身穿防尘衣上台为乔布斯送上晶圆造势。(Source:TechNews 资料照片)
算了吧,RISC 只在个人电脑市场昙花一现,根本跟指令集是否复杂精简无关,纯粹只能寄生于 IBM Power 服务器产品开发时程的 PowerPC,根本被靠着 Windows 个人电脑的巨大市场需求为马力、在九弯十八拐山路拼飙速拼个你死我活的 x86 双雄 Intel、AMD,甩到连车尾灯都看不到了。
更不幸的,Apple 做出“The Decision”(关心 NBA 的读者一定看得懂这个老梗)当下,刚刚好是 Intel 正执行钟摆战略,对靠 K8 大啖高获利服务器市场后打嗝不止的 AMD,发动帝国大反击的心理关键时刻。
坦白讲,稍有常识的正常人,看在血淋淋残酷现实的份上,抛弃 IBM 转靠 Intel 是唯一可做出的合理决定。有被自家软件和完整服务绑死的庞大企业客户罩着,IBM Power 产品线推出时间拖个一年半载,顶多被客户骂一骂也不痛不痒,他们也不太敢冒着营运中断风险而琵琶别抱,但同样场景转到消费市场,你家就烧起来了。
我们再回头看看,就理想面和现实面的双重角度,Apple 使用 PowerPC 碰到哪些问题,这也是 RISC 与 CISC 处理器战争的缩影。
先来看看 RISC 的学理面,所谓精简指令集的优越性。
当笔者只是准备进大学由我玩 4 年的高三生时,某晚挤在往回家路上的公车,从同一个英文补习班的国中时代死党口中,首次听闻“RISC”和 PowerPC,那时对电脑根本一窍不通,残留于记忆深处,唯一留下的印象只有:
“我们常见的 PC CPU,像 386、486 等等,都是 CISC。但 IBM 主导的 PowerPC,是 RISC,指令集比较精简,比较先进,所以效能会比较好。”
“如果担心跟 Windows(那时候还没有 Windows 95)和 DOS 相容性的问题,后面会有一颗 PowerPC 615,硬件直接支援 x86 指令集。”
结果笔者人生的第一台电脑乖乖买单颗台币 10,500 元的 Pentium 120,只为了和其他人一起使用 OS/2 和 Windows 95,缺乏微软力挺的 PowerPC 615 也没有问世,依后见之明,照那个芯片规格,就算出了,也是绝对是穷学生买不起的天价。
随着逐渐“懂事”,才慢慢理解 RISC 的起源与诉求,可简述为以下几条:
- 受制于杯水车薪的内存容量与盘古开天的制造工艺,古早电脑的指令集须以微码打造,且指令集设计以让程式设计者直接使用为思考前提(可想成用指令集做到接近高阶程式语言的复杂操作),一路叠床架屋出各式各样的复杂功能指令与灵活多样的算子定址模式,连带催生千奇百怪的指令编码长度,DEC VAX 是此类“CISC”的经典案例。假以时日,处理器市场走上竞逐高效能、低成本的修罗道,指令集将是积重难返的包袱。
- 内存单位价格随着容量激增持续下滑,随之带动编译器技术的进步,让高阶程式语言实用化,降低了直接撰写机器码的需求,加上电脑须走向低价普及,电脑要更小、更快、更便宜、又能高效率地执行用高阶程式语言编写的程式,“RISC 革命”实乃水到渠成,即使 CISC 是 RISC 一词诞生后,才被发明的“对照组”。
- 超大型积体电路(VLSI)蓬勃发展,让处理器的控制单元,逐渐摆脱微码和由其组成的微程式,转向直接硬件线路控制的方式。
- RISC 精简的是指令的格式,如固定指令编码长度与简化定址模式,并非意谓减少指令的数量与单一指令的功能。
- 指令编码长度不固定、格式混乱,对设计控制单元的中断例外处理,会带来很大的麻烦,所以精简指令格式可降低处理器控制单元的复杂度,把有限的晶体管预算,砸到立竿见影提升效能的刀口上,如提升输出率(指令管线化)、缩小 CPU 和内存的速度差距(快取内存)、降低分支伤害(分支预测)、指令平行处理(超纯量)、提高运行时脉(超管线)、减少因暂存器相依性(非循序指令执行)等等。
- 拜精简指令集简化控制单元设计、亦缩短产品开发验证时间之所赐,上述诸多在近 20 年内普及于泛用处理器的实作加速机制,几乎清一色率先以 RISC 处理器为初试啼声的载具。
- 因此,就商业竞争的角度,RISC 的必杀技是“Time To Market”。
- 隐藏在 RISC 革命背后的精神,可简化成“Make The Common Case Fast”,尽可能加速常见的工作。
- 高阶语言编译器的行为模式也满符合 80 / 20 原则,而 RISC 指令集的大型化暂存器档案,与限制载入储存指令存取内存,也是时代背景下的产物。
- 近代以 AMD K5、Intel P6 为首“将复杂 x86 指令转译为近似 RISC 微指令”的先进高效能 x86 微架构,说穿了也是 Make The Common Case Fast 原则的信奉者:资料路径针对常用的简单指令最佳化,不常用的复杂指令,则不追求效率,仅维持执行正确性即可,以实现优异的时脉速率。
▲ CISC(complex instruction set computer)与 RISC(educed instruction set computer)对比。
这些常识,电脑组织结构教科书都一字不漏写得清清楚楚,而 Unix 系统大厂自行打造的高性能 RISC 处理器,支配高阶服务器市场,也是自然而然的演进。或著倒过来说,他们支配了市场,赚取了丰硕的利润,才有打造自家芯片的本钱。
那么,为何扣除 IBM Power、MIPS 与一票键盘大师正汲汲营营草撰墓志铭的 SPARC,这票没有成功向下深耕,进军个人电脑市场旧时代 RISC 贵族,一个接着一个葬身于 CISC 蛮族 x86 体系之手?
毕竟到后来,Intel、AMD 仰仗庞大个人电脑市场需求而千锤百炼出来的制程技术与研发能量,太过巨大,足足抵销掉 RISC 该享有的强项还绰绰有余。
简而言之,RISC 贵族没有那个“量”去支撑越来越昂贵的先进制程投资与产品研发开销,就算找晶圆代工(Alpha 末期就有转包给 Intel 生产),自己花大钱研制需求没多少的高阶处理器,在 IT 产业的利润持之以恒往奈米化努力推进的时代,只会显得越来越不划算。HP 放弃 PA-RISC 和并购 DEC 而来的 Alpha,改用 Itanium,到头来,还得乖乖推出 Xeon 的 Superdome X,背后含意不言可喻。
问题来了,为什么连唯一成功抢滩的 PowerPC 也一同壮烈牺牲?其后台还是制程技术傲视业界的蓝色巨人?
- 不提 Unix 服务器市场,有谁相信十几年前市场占有率不足 2% 的 PowerMac 出货量,足以养活 IBM 的高阶 PowerPC?靠 IBM Power 硬撑?人家 IBM 就是觉得 Power 量不够,想把饼做大,才会去吃饱闲闲,跑去推动 PowerPC 和 Power Everywhere。
- 论软件,除了专业美工绘图排版和音乐创作,那时 Mac OS 没有其他明显优于 Windows 的杀手级应用,不足以吸引大量 Wintel 用户带枪投靠。
- 讲的更直白一点:PowerPC 没有成熟 Windows 和 Office 等桌面应用程序可用,那时的 Linux Distribution 和 Office 替代品也不成气候(笔者在当时已身体力行,使用 Open Office 为主要文书编辑工具),和游戏市场缺乏紧密连结,更是压死骆驼的最后一根稻草,偏偏使用 DirectX 开发游戏的供应商只会越来越多。
“人家可是和高阶服务器王者 Power 系出同源耶,光效能就能活活打死 x86 蛮族了”,Apple 自行公布的效能白皮书的长条图是很漂亮没错,但实情真是如此吗?长期稳定的效能竞争领先,难道是只靠硬件就可以硬干出来的吗?
先来瞻仰某个当年的 Cinebench 效能测试,其测试指标是基于绘制 shadow map 计算的所需时间。
Cinebench 开发商 Maxon 的说法是:尚未为 PowerPC G5 最佳化,搞定调整工作后,两颗 G5 的 CB Rating 可达 500 分,相当于 50 余秒,而事后的产品测试也补考及格(50.1 秒),但请各位凭著良心坦白问自己:这数据有很厉害吗?
更何况,这也暴露出一个潜在的弱点:应用程序开发平台的竞争力与完整度,也是封印顶尖硬件潜能的紧箍咒。
Power Mac G5 2003 年 6 月在 WWDC 发表,但为 G5 优化的 XL C/C++ 及 XL Fortran 编译器,其 Mac OS X 测试版 8 月才开放下载,明显慢了很多拍,而 Power Mac 在个人电脑市场上的对手,其软件开发资源却拥有一年一亿多台的出货量作为后盾,差距显而易见,IBM Power 在服务器领域表现出来压倒性效能优势,是很难被桌上型市场的 PowerPC 完美继承的。好死不死,PowerMac 的末期,恰巧是以Intel以自家编译器,疯狂压榨出自产自销 x86 处理器的底力,在各类效能测试标竿大杀四方的高潮。
全世界都知道论 SIMD 延伸指令集扩充,根本轮不到 AMD 这个生父在推土机世代就弃养的 3DNow!,连 Intel SSE2 都远远比不上 PowerPC 的初代 AltiVec,但应用程序未能充分利用,都是白搭。只不过,就算被物尽其用了,恐怕也无力挽回整体市场的颓势。
马上把天下无敌的 IBM Power8、Power9 拖出来,东砍西砍成桌机处理器的形状,论整体市场竞争力,也必定打不过现在的 Intel AMD 产品,很多事情并不是只有效能而已。
总之,难以降尊纡贵、称霸早期高阶服务器市场的昔日 RISC 贵族,无法“旧时王谢堂前燕,飞入寻常百姓家”,就注定惨遭如同法国大革命,被由下而上崛起的“全民军队”彻底压垮,PowerPC 在 Apple Mac 的短暂旅程,仅为 RISC 处理器在服务器大崩盘后的拖棚歹戏,在桌机市场最终以悲剧收场的延续战争。
其实“回顾 RISC 与 CISC 处理器的战争”是极度庞大且环环相扣的史诗级交响曲,绝非区区数千字即可醍醐灌顶,历史上的 RISC 如过江之鲫,现存于世的 CISC 又不是只有 x86,起码 IBM 大型主机还活得头好壮壮,而且 CISC 的经典,好 VAX,不写吗?
撰写此文的初衷,仅投映出笔者眼中 RISC 处理器苟延残喘于个人电脑的暮光残影,回顾技术看似先进,却终究不敌市场现实的血泪教训。有时候,遗忘,并不是坏事,总比留下错误的印象好上千百倍。
革命尚未成功,同志仍须努力。现在就等著瞧瞧,开始享有微软加持的 ARM 阵营,距初代 Power Mac 相隔超过 20 年后,能不能在个人电脑市场再挑战 x86 一次,如果市场发生颠覆个人电脑的典范转移,那就更有趣了。
(首图来源:By Bernie Kohl (Own work) [CC0], via Wikimedia Commons)