在今年的WWDC上,苹果公司正式官宣:
Mac电脑将在两年内,完成从Intel(英特尔) X86 CPU(处理器)到苹果自己研发的ARM CPU(处理器)的迁移,第一批ARM Mac产品会在今年年底上市。
这意味着,苹果电脑将逐渐与英特尔CPU脱钩,转而使用自家研发的CPU。
苹果公司的CEO蒂姆·库克说:“Mac向前迈进了一大步,我们正在迎来Mac使用自家芯片的日子,这是Mac历史性的一天”。
看到这个消息,很多人说苹果的这个决定很有远见,很伟大。
但是,作为在PC行业跌爬滚打十几年的老IT人,我斗胆不这么看。
这个决定是很重大。
但也许,这不是面向星辰大海的扬帆之旅,而是被逼到墙边死角的无奈之举。
为什么这么说?
这要从CPU的历史开始讲起。
— 1 —
看上去,苹果只是开始使用自己研发的CPU,而不再使用英特尔的CPU了。
它好像是为了摆脱对供应商的依赖。
但这背后,其实是两种不同阵营的CPU架构之争。
一种架构叫做X86,另一种架构叫做ARM。
什么意思?
这两种架构有什么区别?
简单来说,X86架构使用复杂指令集。
而ARM架构使用精简指令集。
什么是复杂指令集?
什么又是精简指令集?
我举个简单的例子。
假如我想用CPU计算加法,比如1+1,怎么办?
我就要在CPU的芯片上放一个加法器,也就是利用电门的开和关,来实现一个可以计算加法的数字电路。
那我还想计算减法呢?比如5-3?
我就在CPU的芯片上再放一个减法器。
那我还想计算乘法呢?比如2×5?
我就在CPU的芯片上再放一个乘法器。
那我还想计算阶乘呢?比如3的阶乘1*2*3?
我就在CPU的芯片上再放一个阶乘器。
……
只要我想实现一个新指令,我都可以在芯片上放一个专门计算这个指令的电路。
慢慢地,指令越来越多,CPU芯片就越来越复杂。
一个CPU芯片上,可能有成千上万个实现不同指令的电路。
这就是复杂指令集。
那什么是精简指令集?
假如我想用CPU计算加法,我就在CPU芯片上放一个加法器。
现在,我又想计算乘法。
除了再放一个乘法器,其实我还有更简单的办法。
就是用加法器算乘法。
2*5,其实就是2+2+2+2+2。我只需要用加法器算5次就可以了。
乘法器,是可以用加法器实现的。只不过,2*5用乘法器一次就能算出来,而加法器需要算5次。
同样的道理,再复杂的指令,其实都可以用最简单的指令或者指令组合来实现。
所以,其实我只需要把那些最简单的指令集合(最小指令集)放在CPU芯片上,理论上,其实就可以实现所有的指令了。
这就是精简指令集。
实现同样多的指令,使用复杂指令集的X86架构,有成千上万个实现不同指令的电路。
但是使用精简指令集的ARM架构,可能只有几百个。
这就是它们最大的不同。
使用复杂指令集的X86架构指令多,计算复杂指令可以一步到位,所以计算速度特别快,效率很高。
但是因为电路非常复杂,所以非常耗电。
而使用精简指令集的ARM架构指令少,计算复杂指令时需要用到很多次不同的简单指令,所以计算速度就比X86要慢,效率相对就低。
但是因为它的电路简单,所以也很省电。
X86架构的CPU,性能高,但是耗电。ARM架构的CPU,性能低,但是省电。
特点不同,所以它们的应用场景就各不相同。
X86架构的CPU,更适合用在需要更强计算能力的桌面设备上,比如电脑。
所以它养着两个强大的巨人——微软的Windows系统,以及苹果电脑的MAC OS系统。
ARM架构的CPU,更适合用在计算能力不需要那么强,但是需要更长时间待机的移动设备上,比如手机。
所以它养着灵活轻量的iOS和Android系统。
— 2 —
一个养着桌面设备,一个养着移动设备。
虽然是两个不同的技术架构,但它们从来都不是井水不犯河水的关系。
因为架构之上养着操作系统,操作系统之上又养着生态。
在桌面电脑时代,X86架构的CPU统治了整个天下,微软凭借基于X86的Windows系统称王称霸。
到了移动互联网的时代,ARM架构的CPU开始扬眉吐气,基于ARM的IOS和Android系统各分天下。
两个阵营从不同的方向爬山,都想抢先占领山头,干掉对方,统一整个生态。
右边是ARM阵营这背后,并不仅仅是技术架构之争,而是市场之争。
而这个战争,其实10多年前,微软和苹果就已经开始了。
微软是电脑时代的王者,而苹果是手机时代的王者。
微软想进军手机市场,苹果也想挑战电脑市场。
怎么办呢?
他们不约而同地想到了同一套策略:三屏一体。
三屏,指的是手机屏幕、电脑屏幕、和电视屏幕。
三屏一体,就是让这三种屏幕,都用同一套系统。
这样就能统一三者的生态。
手机上的app能同时在电脑、电视上用,电脑、电视上的app也能同时在手机上使用。
但现实的情况是,手机,有手机的操作系统,IOS和Android。
电脑,有电脑的操作系统,windows和MAC OS。
电视,也有电视自己的操作系统。
每种操作系统都有自己的生态。
想要三屏一体,就需要把底层操作系统打通。
那具体怎么实现?
微软和苹果一开始采取了不同的办法。
2012年,微软出了一款平板电脑叫做Surface RT。
这款平板电脑使用了基于精简指令集的芯片。
所以Surface RT,就没有办法使用基于X86架构的Windows系统。
怎么办?
微软专门开发了一套基于精简指令集的Windows系统,取名叫做Windows RT。
Windows RT,虽然看上去和电脑上的Windows系统一模一样,但是因为底层架构不同,所有能在Windows系统上运行的软件,比如QQ,Office,Sql Server等等,都不能运行在Windows RT上。
那怎么办呢?
重新再为Windows RT专门开发一套软件。
但是这个工作量太巨大。而且当时Windows RT没有什么用户,没有形成生态,开发者也不愿意专门为Windows RT再开发一套软件。
不能为Windows RT专门开发一套软件,那就只能开发一个编译器,把原来Windows上的软件,自动编译成Windows RT上能用的。
编译器确实开发出来了,但是编译出来的软件,在Windows RT上运行起来实在是太慢了,效率很低。
所以最终,Surface RT宣告失败。
大家都想实现三屏一体,统一生态。
微软失败了。那苹果呢?
微软是想把电脑上的Windows,用在移动设备上。
而苹果相反,它想把移动设备上的IOS,用在电脑上。
所以,苹果首先做了一个产品:iPad。
可是,随着手机屏幕越来越大,iPad的生存空间正在被慢慢挤压。
我都有大屏手机了,为什么出门还要再带一个iPad呢?
于是为了区别于手机,iPad后来越做越大,苹果又做了iPad Pro。
iPad Pro加上一个键盘和手写笔,其实感觉就跟一个笔记本电脑差不多了。
苹果也一直在宣传,想让大家用iPad Pro来完成部分生产的工作,比如写文档,画画等等。
但是,iPad Pro并不能完全代替电脑,成为办公工具。
为什么?
因为iPad Pro上面的办公应用还是很少。
想在arm体系下建立一套像windows那样的生产工具,太难了。
iPad被手机逼宫,生存空间越来越小,屏幕越做越大。
它就只能去逼宫Mac电脑。
而Mac电脑本来市场就不大,到今天市场占有率也没有超过10%。退无可退。
在这样的局面下,苹果就被迫面临着一个选择:
放弃基于ARM的iPad,还是放弃基于X86的Mac电脑?
苹果想了想,做了一个决定:
那还是放弃基于X86的Mac电脑吧。
转而让Mac电脑使用arm架构的CPU。
统一了CPU架构,就能进一步统一操作系统,以后手机、ipad上的app,都可以在Mac电脑上使用了。
所以我说,苹果的这次选择,并不是面向星辰大海的扬帆之旅,而是被逼到墙边死角的无奈之举。
— 3 —
回顾历史,其实,这并不是苹果电脑第一次使用精简指令集的CPU。
最早的苹果电脑,使用的是一种叫做PowerPC的CPU。
PowerPC也跟ARM一样,都基于精简指令集。
但是,当时苹果电脑的操作系统太小众,使用的人很少。
大家都喜欢使用Windows系统。
而Windows系统只能装在X86的架构上,PowerPC上装不了。
虽然很多用户也很喜欢苹果电脑,但是因为装不了Windows,苹果电脑的市场份额越来越小。
迫于市场压力,为了自救,最终,苹果电脑还是加入了X86阵营。
后来,大量用户买了苹果电脑,但是在上面装Windows。
苹果电脑的市场份额才开始慢慢回升。
他相当于放弃了自尊,但是最终赢得了市场。
时间回到今天,苹果电脑选择放弃X86,换回ARM架构。
其实跟微软在2012年做Surface RT的性质一模一样。
他们都想在基于精简指令集的架构上,做电脑系统。
苹果公司也开发了编译器,把Mac OS上的软件,迁移到基于ARM的Mac系统上。
能不能成功,就看苹果的ARM CPU是不是真的能够超越X86。
虽然从理论上来说,精简指令集的性能想要超过复杂指令集,几乎并不可能。
最后的话
大屏手机逼宫平板设备,平板设备逼宫笔记本电脑。
笔记本电脑退无可退,选择放弃。
苹果电脑选择放弃X86,转用ARM。
这是在用MAC的死,来换iPad的生。
最后,这个世界上,再无MacBook,只有长得MacBook的iPad。
用“ARM+编译器”来模拟PC的体验,是面对未来的纵身一跃。
用户可能会陪着苹果跳下去。
但也可能因为体验的巨大落差,转投联想、Dell阵营。
这一跃,将近10年前,微软就跳过(Windows RT),差点摔死。
ARM阵营很难接住PC用户如山的期待。
今天的ARM可以吗?
虽然ARM进步不小,但我还是很为苹果担忧。
但苹果的PC,也许已经到了不得不跳的时候。
这把show hand好像有点大。
祝福苹果吧。