严格说来,苹果很可能是计算机工业史上,唯一一家核心元件平台「搬家成功」的公司,且还是骇人听闻的「孟母三迁」(6502→68K,68K→PowerPC,O A d , * z @ pPowerPC→x86),反观历史更多尸横遍野的失败案例。单从这点就足以感觉到这浩大工程一点都不简单,建造困难度甚_ . ; o + 3 C b至直逼世界奇观等级。
高科技产业也有「孟母@ 5 [ &三迁」
1977 年,「开启个人电脑革命」的 Apple II 使用 8 位 6502 处理器,任天堂红白机 Rico^ 2 z - & J ? Rh 2AU m 6 } ^ a03 是「远亲」,超级任天堂 65C816 则是 16 位版的 6502。
1984 年,苹果第一台 Mac 个人电脑采用 32 位 Motorola 68000 处理器,有点年纪的电玩狂热者应该也依稀记得,1980 年代大量家用游戏主机(B ) p U s如俗称「S| p * t w ) Jega 五代」的 Mega DrK * x Z A bive 和贵到爆炸的 SNK NeoGeo)与大 T 1型电玩街机的心脏,就是 68K 系列8 p = =处理器,创造 SPARC 和 Solaris 的商用 Unix 王者 Sun、象征 MIPS 的绘图霸王 S) B ` 3GI、乔布斯被苹果开除后创办的 NeXT,最早也都是选择 68K 当引擎,而不是 IBM PC 看起来超像丑小鸭指令集架构又「毫无道理可寻」的 8086,更无人预见假以时日 x86 不再是昔日吴下阿蒙的未来。
1994 年,苹果、IBM、摩托罗拉三家结盟,成立看起来很像5 m * o v p R美军空对空导弹型号的「AIM 联盟」推动 PowerPC,当时陷入市场危机(那时惨到坊间不乏「苹果转型为纯软L ( b件公司」呼声)的 Mac 也随之改用 PowerPC 处理器,趁机搭上 IBM 积极发展 Power 的顺风车。
2003 年苹果推出搭载 PowerPC 970(衍生自原生双核的 64 位 IBM Power4)的 PowerMac G5, y l 8 z ! j Z `2004 年 PowerMac G5 / Xserve G5 / iMac G5 升级为 90 纳米制程的 PowerPC 970FX,2005 年再改进为原生双核心的 PowerPC 970MP,但也就止步于此,因为这些来自 IBM 或摩托罗拉的高性能 PowerPC「无法满足笔电需求」,当初许诺 PowerMac G5 上市后 12 个月处理器时脉可达 3GHz 的支票也跳票,就算画大饼的产品时程表m r a ! d | Q,跟着英特尔一起三太子上身狂冲时脉也无济于事,高阶 PowerPC 随着 970GX 腰斩而停摆。
2005 年,因「对I ` + ] G f J IBM 产品开发进程失望」,乔布斯在 WWDC 正式宣布平台转移计划,从 PowerPC 转进英特尔 x86 处理器,G I O # : ! u G (第三次更改旗下产品的处理器架构,@ ] q . D2006 年陆续推出「Intel Inside 但机壳从来没有出现这张贴纸G B X 5 - ; H」的 Mac 产品线,IBM「Power Everywhere」战略从此失去最大的盟友,寄望苹果成为「分母」分摊高阶处理器$ C + L _ Z g u 5研发成本的如意算盘成为空响,而威镇四方的 Power5 核心也无缘帮助苹 g z B K果缔造 SPEC CPU 效能数据的新高峰。
无1 B U T _独有偶,2005 年正是英特尔以 P6 血统的 MeR B E d x } A F *rom 微架构当作攻击发起线,对 AMD 发动帝国大反击的关键时刻。
不J Z T起眼的绽放结晶,逐渐茁壮成皇冠上的宝石
2008 年,第一代 iPhone 才刚问世没~ * $ m g R w多久,苹果就以 2.78 亿美元代价,收购半导体设计公司 P.A SA N M ? 7 ! Wemi,但 2007u p g 年 iPhone 销售额仅占不到苹果全年营收 1.4% 的 3.67 亿美元,无论怎么看,这r Y Y赌注实在有点太大。
2E ; O K j * f r010 年,iPhone 4 与第一代 iPad 的 A4 处理器,总算让苹果X y J , X的投资没有白白丢到水里,而接_ S i G着十年,一代又一代苹果 Ax 家族应用处理器,一再一再以惊异的性能表现震惊业界,如果说苹果是手机与平板世界的国王,iPhone 和 iPad 就是皇冠,这些苹果自家打造的 SoC,真不愧「皇冠上的宝石」之誉。
从 2013 年「业界首颗 64 位移动处理器」A7N M [ % ; ` n 诞生一路到4 P 0 [ ~ : o 8 2020 年今日,「| B A J x改用 ARM 处理器的 Mac」就像流感,每隔一段时间就在各大科技媒体「集体发f u c P # i 2作」,但也一直停留在臆测和谣言,就像传说中的尼斯湖水怪,迟迟没有成为呈现在世人眼前的现实。
「无痛转换」从来就不是容易的事E G y 9 ; 9 (
更换处理器架构看似容易,但资产和包袱往往是硬币的两面,确保现有应[ W N用软件依旧可用并逐步移转到新架构,才6 N a m c + , 0是真正的大v a W #难题。
相信很多人在认识「虚拟化」. y H之前,b Y Q e很可能就因琳琅满目的游戏机模拟器,就听过 Emulator(模拟器)与 Simulator(仿真a q 3 ) g器)这两个难以a L N [ h H =理解差别的专有名词。讲简单点,Emulator 主要是完全模拟 CPU 的运作方式,根据程序计数器(Program CoJ 5 r u I Nunter)的值,从内存中获取指令,进行解码并执行,而 Simulator 则是模拟系统的行为模式,例如模拟飞行中的驾驶舱按钮与仪器。很明显的,要转换Z ( C X「电脑最基0 K N O H础语言」的指令集架构,需要的就是前者。
但随着 CPU 架构越来越复杂,指令数越来越多$ 7 T n i,要通过程序模拟 CPU 也越来越艰难(当年英特尔在 1990 年代初期开发 Pentium Pro 时,模拟I . i 8 & Y验证一个指令的时间竟然长达「一天」,那时 x86 指令集已经有将近 300 个指令),而反复模拟一个接一个指令的「读取→解码→执行」流程,更不可能带来能接受的执行性能,也因此,将二进位代码「动态翻译」为另一种指令集执行顺序的 Binary TranslatM d @ T N W e iion(二进位转译),变成最为可行的手段,想的单纯一点,就好比一段不包含分R b K F支的基本程序区块(Basic Block),转换编译成新指令集的二进位代E X + m + M D W码,并「快取」起来以便日后重复使用。
当然,这绝对是极度耗费系统资源的过程,也势必牺牲部分性能,但总好过一个一个指令慢慢跑,苹果早在 68K 转 PowerPC 时就导入这技术,资深果粉耳熟能详的「Rosetta」则是 PowerPC! A * ! O % D + 转 x86 的二进位代码转译器。
同场加y B 1 L映一下其他摄影棚的剧情,x86w [ / w Z _ h 指令集支持硬件虚拟化(Intel VT-x,AMD* _ i-V)出现之前,「全虚拟v = u X X 4 | @化」(Full Virtualiz% g Y C P # O u Mation)的 VMware,特技就在VMM(Virtual Machine Monitor)「拦截」能在使用者模式(User Mode)更动底层系统状态的「危险」x86 指令,再用 Binary Translation 替换成「人畜无害」者。
所谓的 x86「硬件辅助虚拟化」(Hardware Assisted)技术基础原理,关键在于新增特权层级(Root Mode Privilege Level),让这些没有完善定义R J E $ ] Q [、难以虚拟化的 x86 指令一执行就「触发」处理器的设陷(Trap)机制,再让 VMM 处理,近似近代多工作业系统的例外处理机制,进而简化虚拟机管理者(Hypervisor)的架构与复杂度,也借由原生执行大多数指令以改善整体性能,无需像「半虚拟化」(Par~ x Qavirtualization)方案,需更新操作系统使之「意识」到下面还有一个虚拟机管理O ~ 9 o j a者。
试图消灭 8086 的努力
1996 年,也是当 Windows& w / = t ] P NT 操作系统同时支持不同 RISC 指令集时,DEC 发表了 FX!32 转译器,让执行 Windows NT 的 Alpha 系统可执行 x86 平台的 Win32 应用程序,虽然号称「可2 C S H 2 U达到原生 40%~50% 性能,最佳化后 70%,然后同时期 Alpha 享有压倒性的时脉优势,足以抵消转译损耗而有余」,但笔者亲身在 COMPUTEX 会场的某摊位一亲芳泽的使用者体验却不是这么回事,印象大概就是日本人对新: @ A世纪福音战士某些「静态」场景的评价——「动画是I } 0 9 ^ } + P .会动的画面,但好像也有不会动的」i - t / b ?,希望那只是偶发当机,不是真实性能。
但回` & X v y l K ; n过头,如果时3 * U ^ c I间可以重来,英特尔和 Hc u z 0 J uP 知道[ j V 5 J N P日后可掌握「1992 年就以原生 64 位问世,比我们手上曾经拥有的任何东西都还好」的 Alpha6 A 6 O U 8 y t | 处理器,放弃硬着头皮发展 IA-64 指令集和 Itanium 处理器,顺水推舟延续 DEC; F c h a ~ { _ ] 的遗产,x86 指令集会不会就此逐渐消逝于服务器与个人电脑的世界,还真的是个超级大哉问。
说到 Itanium 就不得不提到~ 8 P IA-32EL(IA-32 Execug 1 C . 6 Mtion Layer),英特尔在初代 Itaniuv m D /m 处理器「Merced」(因近似 Meru ; , 8 ]cedes Benz,常z 6 ] L戏称为「英b B M特尔的 64 位豪华房车」)耗费 30% 电晶体总数,只为了「硬干」出性能不彰的 x86 相容性,还牺牲了日后支持Z J g 0 -新型 x86 指令(像持续膨胀的 SSE)的弹性,变成 Itanium 要「下放」到中低端服务器市场的障碍。2004 年,英特尔被迫转向纯软件的动态二进位转换方案。
如同日后的苹果 Rosetta,IA-# u , j ~ - 032EL 并非一个一个转译单一指令,而是将代码的基本区块(Basic Block)直] - A i接转换为对应的 IA-64 指令顺序,这称为「Cold Code TranR ( & 1 U + 3 E _slation」。此外,IA-32EL 会收集所有基本区块的执行频率,针对常用部分,依据 IA-64 指令集的特D J 9 9 D Y ~性及基本区块间的条件关联,再进行一次最佳化转译,并储存于主内存供日{ d E p K后重复使用,称为「Hot Code Translation」。总之,IA-32EL 号称可让 Itanium 2 处理器执行 x86 应用程序时,得到和同时脉 Xeon 相当的效率,而软件手段也确保日后持续支. [ ) C } = G !持新增 x86 指令的弹性。
换言之,RISC 的主要精神之一「Make The Common Case Fast」并非只限硬件,软件也一样,而工作和生活又何尝不是如此?所以「可! b j让我们经常碰到的日常工作跑得更快」的 8086r N i n 就活下来了,AlH C 5pha 和 Itanium 只能成为历史遗迹。
想) % 4 A偷吃豆腐却偷鸡不成蚀把米的勇者
既然二进位转换「蕴藏」了「捞过指令集边界」的无穷潜力,除了应用在自家进行指令集转移(像苹果的孟母三迁、DEC 从 VAX 转 Alpha、HP 从 PA-RISC 转 IA-64、英特尔从 x86 转 IA-64、SGI 从 MIPS 转 IA-64),自然吸引众多有志之士「吸纳」其他平台应用软件资源,企图「鸠占鹊巢」取而代之。
苹果 Rosetta 技术基于 Transitive 的 QuickTrans7 5 g 6 @it,但早在 2004 年,这家公司的技术已应用在 SGI 的 Pri= = i s ? M Y l bsm 虚拟化平台,让执行于 Linux 操作系统的 Itanium 2 平台可延续 MIPS 处理器/IRIX 操0 E a m T作系统的应用程序。苹果之后,IBM 也在 2006 年 8 月与 Transitive 结盟,让 x86 / Linux 应用程序搬到 Power 系统(PowerVM Lx86)。
2006 年 9 月秋季 IDF(Intel Developer Forum),英特H h u y U 8 L f A尔拉着「Itanium 解决方案联盟」发表 ISV Platform Expansion Program,通过 Transitive 的 QuickTransit,推动既有使用 SPARC 处理器/So= D a 5 m 0 Llaris 操作系统的用户,转移至 ItaV F = C M / X %nium / Linux 平台,狂挖 SPARC 阵营墙角。不过很讽刺的,同年底的「SPARC / SoB w .laris 转移到 x86 / Linux 方桉」似乎比较让人感V O l ! f C z 1到兴趣H 2 u = ! a。
洋洋洒洒一大串,以上这些捞过界的「努力」,纯粹以结果论而言,统统没有成功。Transitive 在 2009 年 6J r , W X a C D 月被 IBM 收购,成为 Power 系统部门的一部分,硕果仅存剩下 PowerVM Lx86,苹果也在 2011 年完成从 PowerPC 到 x86 的转移工程,MacOS X Lion 时取消了 Rosetta。
至于在这段众人一头热于「帮别人搬家到我家」的浪潮中,最骇人听闻的八卦,莫过于 IBM「eCLipz」计划:以超高时脉的 Power6 为起点,将诞生于 1964 年 S/360 的大型主机家族转移到 Power,事后证明还好 IBM 没有想不开进行如此明显的自杀举动,否V j H P ; d - 8则很多银行大概会抖很大。
倒是有条线索值得- d + T静观其变:Transitive 的旧有团队成员,散布在以下 3 个T { 7 Z O F J % 6地方。
- B$ | u |BC(英国广播公司):BBC Micro 电脑是 ARM 第一个客g T =户,ARM 最初就是为 BBC Micro 及后续型号设计的。
- ARM:这就不需解释了,这家公司不会放过挖 x86 墙角的任何s X I 8 m 5 b u i可能。
- 苹果:各位J N [,难道你们没有闻到一股可疑的味道吗?
「天时」「地利」「人和」三者兼备了吗?
「苹果用自己的 SoC 取代英特尔 x86 处+ % } / H ^ X ]理器」越看越像真的,比谣传已久、众人言之凿凿的美军 8 倍音速侦察机「SR-91 极光」更确实,但整件事情有这么单纯吗?
天底下任何奇迹, j + j S q P |和惨剧,K l 9 K都是G . $ , V R g g天时、地利、人和三者兼备的结果,为什么当年苹果可从 PowerPC 顺利转换到英特尔?
天时:英特尔正集中资源在兼具高性能低功耗 x86 处理器的研发,准备狠狠反击 AMD,这让苹果无需担忧 CPU 效能不足以吸收转换损耗,和 CPU 过热塞不进笔电的老问题。
地利:苹果手握封闭平台的优+ o A @ ) = [ +势,但又可以趁机抢夺 Windows 用户。Xcode 2.1 提供产生通用二进v @ |位(通吃 PowerPC 和 x86)执[ H g q行档案的功能,主流应用程序纷纷采用这种方式发表,也降低了转换门槛。
人和:那时 Mac 用户是弱势族群,冲第一个的白老鼠用户3 P 7 @ e b b r %也比较能忍受可能造成的不便,软件开D p g 1 H N发者规模更远远不如现在,并没有太沉重的历史包袱,Macbook 销售爆发与开发者人数激增,基本上是 2008 年夏天完成平台基本转换K n Z R、iOS 2.0 登场后的结果。
各位可能很难想像 20 世纪初期苹果有多么「毫不强势」,笔者任职某 IT 周刊期间,借测了不少苹果大产品,从 PowerMac G5 到双x k t N K E核心版到 Xserve G5 甚至 Xserve RAID,每次苹果原厂都是派两三个人来现场支持,这在今天根本想都不用想。
即使万事皆备,巨大的转换工程也是从 2005 年一路到 2011 年才功德圆满。那么,当下苹果是否具备同等的条件?
天时:英特尔正准备脱下裤子跟 AMD 拼了,我们几乎可预期又将再度重演激烈程度回归 1990 年代末期到 21 世纪初期的 x86 处理器性能军备竞赛,苹果自家芯片目前顶多勉强与 PC 处理器「平起平坐」的性能水准,w o D v + |是否足以填补转换的损耗,并确保同样良好的使用者体验?
地利:苹果是否愿意放弃吸收 Windows 用户的机会?别忘了全球个人电脑出货量,苹果占有率只有 7%。
人和:Mac 用户已非弱~ F M ` U势族群(尤其年轻学生),开发者规模更是急速膨胀,硬着头皮转换下去,会不会动摇根? | 7 D U J本?
或着,也许苹果根本就不在意要不要转换,ARM 的 MacBook 锁定完全不同的应用与客户群,可是这样一来,这跟搭配键盘「同为生产力工具」的# @ s @ i ! iPad 该如何区分?
决定这问题的答案,恐怕只有苹果是否打算让 macOS 和 iOS 合而为一,依照这家公司的谨慎行事风格(除了 MacBook 的连接口和蝶式键盘),我们应该还有的等,或许永远等不到也说不定。
编辑:AI智慧