新闻中心

EEPW首页 > 嵌入式系统 > 业界动态 > 从Intel和ARM双雄争霸读懂芯片的前世今生

从Intel和ARM双雄争霸读懂芯片的前世今生

作者:时间:2018-04-24来源:新智元收藏
编者按:做芯片很难,做核心芯片更难,做需要生态系统的CPU芯片,比大家想象得都要难;当年,绕得过Intel,跨不过微软。如今,绕得过Arm,做不出安卓,“生态之根”已被控制。

  这几天中兴事件持续发酵以来,各种议论纷纷扰扰。

本文引用地址:http://www.eepw.com.cn/article/201804/378885.htm

  上周,新智元推送了《中国芯“逃兵”:缺芯是因为缺钱;中国芯“老炮”:芯片救国靠BAT不是开玩笑》一文,引起了无数从业者热议。

  有十余年芯片从业经验的水木网友torvaldsing告诉新智元,这几天对他触动最大的,还是碧树西风写的这句话:

  一碗牛肉面,真的要用牛肉,真的要用面,真的要炖很久,这么简单的道理,偌大一个国家,这么多精英,过去这么多年了,咋就不能懂呢?

  因此,torvaldsing投书新智元,尝试谈一谈x86生态系统和生态系统的艰难发展历程和残酷的市场竞争,向大家介绍一下做CPU的各种困难,以及眼下能看到的一线希望。

  以下是torvaldsing的雄文:

  我尽量写得轻松一些,因为其实这个话题很有趣,仔细探究起来,很多看似爆炸性的新闻,其实草蛇灰线伏脉千里,在很早之前就发端了,这其中的故事,真的像演义小说一样好玩。

  本文会罗列很多的往事和参考资料,保证有诚意。一些地方没忍住加上了一些三脚猫的分析,欢迎拍砖打脸。

  x86生态系统

  如今在服务器市场占有率近乎100%,在桌面市场也大于80%,再加上一贯重视宣传,在普通大众的心目中,就是芯片的代称,甚至是高科技的代称。但Intel并非生而如此,它的牛X千真万确是熬出来的,是在列强环伺的竞争环境中杀出来的。

  称王

  七十年代,在搭上IBM PC这趟快车之前,Intel的8位处理器已经很成功,但也有很多竞争者,Zilog是其中翘楚,它研发的Z80系列产品和Intel的8080兼容,性价比高。一直到90年代,中国很多大学的微机实验课,还在用Zilog的板子。当时还有一款处理器风头不逊于8080系列,即MOS公司的6502。后来MOS把6502的ISA(指令集架构)授权给了众多厂商,流传甚广。70年代苹果创立之初的Apple-I和Apple-II,80年代任天堂的红白机,90年代初的小霸王学习机,90年代末的文曲星,都使用了6502系列的CPU。

  IBM PC给了Intel和微软大发展的机会。但它俩必须面对竞争。IBM PC是IBM主导下的一个开放标准,各个零部件都是可以替换的。所以才有了“兼容机”的概念,和延续至今的装机市场。当时IBM要求Intel必须把x86指令集授权给其它厂商,避免CPU供应商一家独大。(详细的x86兼容处理器生产厂家列表见https://en.wikipedia.org/wiki/List_of_x86_manufacturers)IBM自己也有生成x86兼容CPU的权力。同时,为了限制微软的MS-DOS,IBM自己也做DOS操作系统,名为PC-DOS。

  在IBM PC阵营内部,Intel面对其它CPU供应商的竞争,在阵营外部,还要和苹果的Macintosh电脑竞争。当时苹果已经换用Motorola 68000系列CPU,性能强劲,图形界面诱人。当时用Mac的人,逼格要高于用IBM PC的人。

  Intel顶着阵营内外的竞争压力,苦心孤诣地发展壮大。这时候潜在的威胁在慢慢酝酿。从1981年的RISC-I开始,精简指令集(RISC)逐步流行起来,诞生了一系列RISC风格的CPU:1985年MIPS公司推出第一款商用的RISC芯片,HP公司在1986年推出PA-RISC,SUN公司在1987年推出SPARC,Motorola在1988年推出MC88000。当时大家普遍认为RISC优于以x86为代表的CISC风格CPU,就连Intel和AMD也害怕在RISC潮流中落伍,AMD在1987年推出了AM29000,Intel在1988年推出了i860/i960。

  开始时RISC似乎并没有威胁到桌面市场,MIPS、PA-RISC、SPARC全是用来做服务器和工作站的。被苹果流放的乔布斯用MC88000系列CPU做NeXT桌面电脑,铩羽而归。1986年,英国的Acorn公司推出了一款名为的RISC处理器,次年,它还配了个操作系统叫RISC OS,强攻桌面市场,可惜最终只在英国掀起来了一些波澜。

  1991年,RISC阵营实实在在地杀入桌面市场。这一年,IBM看到在PC阵营里,Intel和微软这两个小弟坐大,慢慢不受自己的控制,索性拉拢Apple和在RISC市场不得志的Motorola,推出了PowerPC架构,由IBM和Motorola生产芯片,Apple做操作系统和整机,推出全新的Power Macintosh电脑。这三家组成了AIM(Apple-IBM-Motorola)联盟,气势汹汹地向Wintel联盟发起攻击。

  结果是Wintel赢了,个中原因众说纷纭。有人说Wintel保持对已有软件的向下兼容,而Apple频繁更换底层的CPU,导致的不兼容气走了用户,然后由此强调软件生态的重要。我则以为,历史的发展有一定的偶然性,如果当时Wintel不是比尔盖茨和格鲁夫在掌舵,而Apple是乔布斯在掌舵,可能结局完全不同。2005年,乔布斯掌舵下的苹果,把Mac里面的CPU由PowerPC换成Intel的芯片,就完成得干脆利落,没怎么受到软件生态的牵绊。

  总之,在80年代,大家就已经深深懂得CPU的ISA是软件生态系统的根基,不愿让这个“生态之根”被别人控制。整机和系统的制造商,通过强制CPU厂商给其它厂商授权自己的ISA,来保证有第二家甚至更多的供应商。如果不慎“生态之根”被别人控制了,例如IBM被Wintel篡了权,甚至不惜另起炉灶来竞争。

  同样是把自己的指令集授权给其它厂商,Intel把几乎所有的其它供应商都挤死了,只省下AMD苟延残喘;MOS则销声匿迹了,完全靠其它生产商把6502系列延续到了二十一世纪。造成这一差异的原因纵有千万条,我想“打铁还需自身硬”是最根本的。

  霸业

  在桌面市场上,Windows 95和Windows 98这两款操作系统,让Wintel联盟登上了霸业的顶端。从1995年到2003年,Intel看起来简直是不可战胜的。

  与此同时,Intel还把几乎所有的RISC架构的CPU都干趴下了,占领了服务器市场。原因大概有这么几点。

  第一,从技术角度讲,RISC是一种设计CPU的理念,而不是具体的某一种ISA。像x86这样的复杂指令集,其实在实现过程中,也能借重RISC的理念。1989年的80486,已经隐隐地可以看到RISC风格的流水线,1995年的Pentium Pro,其核心已经是一个乱序执行的RISC了,只不过多了一个复杂的译码逻辑,把x86指令拆分成RISC风格的微操作。因此从技术角度讲,RISC指令集未必比x86有优势。

  第二,RISC成也UNIX,败也UNIX。UNIX和C语言树立了很好的软件开发传统,确保同一套代码可以很方便地在不同CPU之间移植。80年代,一大堆RISC架构的CPU,都可以很快配上自己的UNIX,很快把已有的C语言编写的应用跑在CPU上,然后就可以卖了。SUN公司的SPARC配有Solaris,HP公司的PA-RISC配有HP-UX,IBM公司的PowerPC配有AIX。

  这些林林总总的UNIX变体,反过来又进一步促使UNIX生态系统中软件开发人员重视代码的可移植性,大家都很小心地围绕POSIX标准来编程,避免过分依赖于某个操作系统独有的功能。这样,一旦Intel芯片携Linux(一种开源的UNIX变体)来和RISC架构的工作站竞争,软件应用就纷纷以很小的移植难度,离开了昂贵的专有UNIX工作站。

  第三,当时PC市场比服务器市场大得多,Intel在PC市场的盈利帮助它研发更好的服务器芯片,巨大的出货量降低了芯片的制造成本。研发优势和成本优势,奠定了Intel最终胜利的基础。

  这段时间,Intel还几次面临挑战,每次都成功保卫了自己对于生态系统的掌控权。

  第一个挑战,来自Internet浏览器。Netscape Navigator诞生后,对微软和Intel都是挑战。虽然当时的动态网页还非常初级,但是已经有人喊出“Web is the computer”的概念。等到Java Applet出现之后,大家更是觉得可以在网页上实现桌面应用的效果,未来只需一个浏览器,就能取代桌面。Netscape的Marc Andreessen在1995年,就着手把Netscape浏览器打造成一个Internet OS。以那个时代的软硬件水平,毫无疑问地,这些尝试失败了。

  用一个高层次的软件API,兜住所有的上层应用,然后让底层的硬件,都来支持这个API——这个主意不单单在技术上看起来很炫,从商业上,这是上层应用厂商消解底层平台厂商生态霸权的终极武器。因此,在那之后的二十年里,商业上的尝试一直在持续,包括:

  1. 腾讯开发的WebQQ和Q+,在网页里面提供一个类似Windows桌面的应用场景,后来失败了,回退到功能单一的SmartQQ。个中原因,我个人认为还是那个时代的PC性能不够。

  2. 腾讯开发的微信小程序,在微信里面通过HTML5和Javascript实现手机App的功能,可以横跨iOS和Android。

  3. 谷歌推出ChromeOS和ChromeBook笔记本,里面跑的应用,全都是基于HTML5和Javascript的。

  我个人认为,微信小程序几乎一定会成功,它一旦成功,腾讯必然会重燃在PC平台上做Q+的野心。Intel在桌面的霸权,最大的威胁不是AMD,也不是,而很可能是HTML5+Javascript,熟悉“降维打击”的人,对此不会感到意外吧。

  第二个挑战,来自虚拟机(Virtual Machine)和JIT(Just-in-time)编译器。先锋是Java的虚拟机JVM,后来微软也推出了DotNet虚拟机,支持C#等语言。虚拟机有一套虚拟的指令集,源代码先被编译到这个虚拟的指令集上,在程序运行时,JIT编译器再把这套虚拟指令集编译为CPU的原生指令集。面向虚拟机开发的程序,例如Java Applet,可以在不同的CPU和操作系统平台上运行。


上一页 1 2 3 4 下一页

关键词: Intel ARM

评论


相关推荐

技术专区

关闭