四次刮骨疗毒,苹果是无可争议的卷王!
一个做系统软件的次刮公司,一旦选定了CPU架构,骨疗果无轻易是毒苹不敢更改的 。
因为每次换架构,可争软件生态的卷王迁移 ,无异于一次刮骨疗毒 。次刮
但是骨疗果无有一家公司,成立以来,毒苹光是可争CPU架构就换了4次,真是卷王无可争议的建站模板CPU卷王。
1984年:摩托罗拉 68k
1994年 :PowerPC
2006年:Intel x86
2020年:自研芯片
这家公司就是次刮Apple 。

1984年 摩托罗拉68k
20世纪70年代末,骨疗果无Apple II(用的毒苹是MOS Technology 6502处理器)是最受欢迎的计算机之一,尤其是可争在教育领域。
1981年 ,卷王IBM推出PC以后,销量迅速超越Apple II。
为了扳回劣势,苹果于1983年推出Apple Lisa,模板下载尽管Lisa支持革命性的图形用户界面 ,但是高达1万美元的售价和可用软件的缺乏,Lisa在商业上并不成功 。
图片
在开发Lisa的同时,苹果的另外一个团队也在开发一个叫做Macintosh的项目 ,目标是面向消费者的,易于使用的源码下载计算机 。
在乔布斯接管Macintosh项目以后,Mac变得越来越像Lisa ,配备鼠标和图形用户界面,价格仅为Lisa的四分之一 。
在选择CPU时 ,团队面临三个选择 :
Intel 8088 :

8位数据总线 ,支持640K内存,价格便宜(35美元) ,IBM PC也用它 ,生态系统很好
Zilog Z8000
图片
16位数据总线 ,支持8M 内存 ,价格中等(55美元),用的人少,免费模板生态系统不完善
摩托罗拉68000(68K)
图片
16位数据总线,支持16M内存,价格较贵(70美元) ,生态系统一般
在1983年这个时间点,苹果选择了摩托罗拉68K , 主要是为了和IBM PC做出差异化。
另外摩托罗拉68K支持高达16M的内存 ,这实在太香了 。
1984年 ,伴随着经典的《1984》广告,Mac发布 ,引发轰动 ,被《纽约时报》誉为“革命性的产品”。服务器租用

从此 ,苹果的产品就和摩托罗拉68K结下了姻缘。
1994年 PowerPC
在过去的10年,Intel和微软结成了WinTel同盟 ,它们密切合作 ,竞相推出新品,新软件与新芯片唱和有致 ,完全垄断了PC产业链的高端。
不但是苹果,就连PC的发明人IBM ,也被这一套组合拳打得晕头转向,源码库根本无法招架。
于是IBM转头也和摩托罗拉,苹果也组成了一个联盟:AIM,准备和Wintel抗衡 。
AIM瞄准了x86架构的一个关键弱点:使用复杂指令集(CICS),准备狠狠地打击 。
此时精简指令集(RISC)发展成熟,正是街上最靓的仔 。一批RISC CPU展示出了卓越的性能:Sun SPARC, DEC Alpha, MIPS ,HP 的PA RISC 。
所以AIM也推出了一个RISC CPU: PowerPC。
图片
PowerPC用流水线的方式提升了性能,并且能耗更低 。
但是PowerPC的指令集和摩托罗拉68K指令集完全不同,苹果需要迁移生态系统中的所有软件 。
不仅所有软件都得编译,有些情况下还需要重写。
这是一个非常艰巨的任务 ,苹果想了两个招数 :
1.模拟器模仿摩托罗拉的CPU,相当于一个“软CPU”,让之前的软件可以在其中运行。
“软CPU”会带来巨大的性能损失,但是PowerPC性能强大 ,软件勉强可用
2.胖二进制文件在过渡期间,对软件进行增肥 ,同时包含针对 68k 和 PowerPC 架构编译的代码,这样一个软件就可以在多种CPU上运行。
但是当时的硬盘普遍只有80M ,胖二进制占有的空间非常烦人 ,市面上甚至出现了专门的“生意” :剥离胖二进制文件的,把在当前平台上不需要的二进制代码剥离 。
总体而言 ,苹果向PowerPC的迁移是成功的。
Wintel联盟展开了最强烈的反击 ,Intel推出了具有划时代意义的奔腾芯片系列 ,而微软则“珠联璧合”地推出了Windows 95。
Intel和微软还分别展开了对PowerPC的分化瓦解工作 ,其中微软表现得尤为起劲。
AIM联盟最终分崩离析 ,2004年摩托罗拉退出芯片制造业务 ,将其半导体业务分拆为一家名为飞思卡尔半导体的独立公司。
图片
IBM将PowerPC产品线出售给了AMCC ,专注于64位的芯片设计 ,只给游戏机制造商提供PowerPC芯片 ,如任天堂的GameCube、Wii和Wii U,索尼的PlayStation 3和微软的Xbox 360。
图片
2006 Intel x86
乔布斯回归苹果以后,相继发布了iMac, iPod, iPhone等卓越的产品,苹果再度恢复魔力。
AIM联盟虽然解散 ,但PowerPC还在,就是性能差,功耗高 ,开发速度更是缓慢,产品迟迟不能更新。
在2003年苹果推出第一代Power Mac G5时 ,乔布斯曾信心满满地承诺,IBM与Apple将会很快地将G5芯片提速至3.0GHz,然而IBM失约了。
反观Intel持,它总是能续以高效能、极短的开发周期 ,不断推出新的CPU。
对PowerPC失望的乔布斯决定 ,迁移到x86。
图片
苹果再次面对软件迁移的问题 ,这一次,他们把原来的招数也进行了升级:
1. 把“胖二进制文件”,升级为“通用二进制文件”。
通用二进制文件来源于NeXTStep,其实和胖二进制文件差不多。
2.动态二进制翻译器Rosetta
图片
Rosetta 在程序运行时动态地“即时”翻译代码。
原来的应用程序是PowerPC指令集,Rosetta可以在运行时把它们翻译成等效的x86指令集和系统调用。
下面这幅图展示的是一个基于PowerPC微软Office ,运行在x86上的情景 。
图片
ps : 动态二进制翻译也是龙芯为了兼容x86生态所采用的一种方式。
2020 :自研芯片
苹果产品的最大竞争优势就是:硬件和软件的紧密集成。
现在硬件的命门捏在Intel手中,Intel CPU一旦限制供应或者推迟发布,就会极大地影响苹果的产品路线,这绝对不是长久之计。
iPhone的热销,让苹果成为这个星球上最有钱的公司 ,每年可以投入200多亿美元研发,这么多钱,完全可以砸出一个属于自己的CPU。
实际上,从iPhone4开始,苹果已经开始设计自己的A4芯片了 。
图片
然后是A5,A6...... Apple不断迭代,速度越来越快 ,性能越来越强 。
图片
这种45度的强势走势十分“恐怖”,和挤牙膏的Intel形成了鲜明对比 。
终于,苹果的CPU强大到足以在个人电脑中使用了。
2020年 ,Apple宣布了Mac CPU的第三次转型:使用自研的M1芯片。
图片
M1不同于标准的台式机CPU, 它是一个SoC,也就是把CPU、GPU、NPU等都集成到了一个芯片上 。
图片
M1的“秘密武器”如统一的内存架构(可以让GPU和CPU共享内存,省去了数据复制的开销),异构计算 ,乱序执行等让它输出高性能的同时 ,保持了超低的功耗 。
采用M1的MacBook 就像变魔术一样,快如闪电,冷却风扇似乎永远不会打开 ,电池一次充电可持续使用一整天 。
对于软件的兼容性 ,Apple驾轻就熟,Rosetta 升级成Rosetta 2,可以把Intel x86指令集实时翻译成ARM指令集。
从测试来看,Rosetta 2效果不错 ,虽然“翻译”有20%的性能损失 ,但是在强悍的M1面前 ,使用体验可以接受 。
在苹果强大的吸引力之下 ,很多软件纷纷支持原生的M1 ,Apple的这次架构迁移恐怕要比前几次更快 。
结语
国产芯片龙芯用的是自有的指令集LoongArch,花了九牛二虎之力 ,也无法建立繁荣的软件生态。为了兼容Intel x86 ,不得不使用类似Rosetta这样的动态翻译程序。
不仅是龙芯,参与者更加广泛的 、开源的RISC-V也有类似的问题。
可是Apple这家公司 ,竟然把软件生态在不同架构之间迁移了四次,实在是太强悍了 !
仔细想想 ,这和苹果封闭的生态有很大关系 ,苹果换了CPU架构 ,开发者不跟着怎么办?但是话说回来,苹果的生态比较优质 ,跟着苹果就是有肉吃啊,大家也乐意跟着走啊!