新闻中心

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

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

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

  Newton(牛顿)是苹果花大力气研发的触屏移动技术平台,Newton OS是不同于Mac OS的操作系统(如同后来的iOS)。如果你听过苹果、牛顿和万有引力的故事,应该能体会苹果公司对Newton平台有多么高的期望。

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

  Newton平台的第一款产品MessagePad于1993年8月上市了,采用32位610处理器,频率为20MHz,屏幕大小为336×240,重量410克,采用4节7号电池供电,售价699美元(相当于今天的1129美元)。可惜的是,它销量很差,上市头四个月的销量不过5万台。

  1998年,中国的恒基伟业公司推出了一款叫做 “商务通”的产品,像极了Newton Messagepad。它采用Dragonball处理器,主频仅16MHz,屏幕大小10汉字x10汉字,重量105克,采用2节5号电池供电,售价人民币1988元。靠着“呼机手机商务通,一个也不能少”的广告,商务通在1999年大卖100万台。虽然2001年后商务通及类似产品很快就被越来越强大的手机挤出了市场,但让人好奇的是,背靠营销能力更加强大的苹果,Newton为何没能一炮而红?

  其中一个重要的原因是,Newton重点宣传的手写识别功能表现很糟糕。而商务通对手写汉字的识别率——根据我个人的体验——还真是不错,考虑到它仅仅16MHz的CPU主频,能做到这么好简直是奇迹。当时商务通部分型号的卖点就是“连笔王”,对潦草的汉字识别得相当好。

  软件对于一款产品的重要性,真的是生死攸关啊!

  深耕

  扯远了,让我们回到的故事上来。

  1990年创立之初,给自己定下的使命是“设计有竞争力的、低功耗、高性能、低成本的处理器,并且使它们成为目标市场中广为接受的标准”,目标市场包括:手持设备(Portable),嵌入式(Embedded Control)和汽车电子(Automotive)。跨越近三十年,这个使命和市场定位始终未变,直到今天。

  而且,根据我了解到的知识,ARM是处理器的源代码授权这一商业模式的开创者。如今,芯片设计从Verilog等源代码出发,经过一系列自动化或半自动化的优化步骤,最终形成工厂制造芯片所需要的版图文件;整个过程类似软件从源代码被编译为CPU的机器码。但在80年代,芯片的设计自动化非常原始。七八十年代的处理器授权,都是指令集的授权。Synopsys公司于1986年成立,1987年推出把Verilog编译为门级网表的DesignCompiler,之后基于源代码的芯片自动化设计流程才慢慢地被建立起来。于是源代码授权才成为技术上可行的模式。

  ARM从未自己生产过商用的芯片。它只是将自己研发的处理器的源代码的知识产权(IP)授权给芯片厂商,由它们推出最终芯片。受益于这一商业模式,尽管在1993年,Apple的Newton失败了,但ARM并未因为设备卖不出去而亏钱,还幸运地拿到了TI的订单,于是成功盈利了。员工数量也由12人增长到了42人。次年ARM又拿到了三星的订单,员工增长到70多人,搬出了谷仓。

  除了源代码授权的模式之外,ARM也做指令集授权,1995年,ARM把指令集授权给DEC,DEC很快设计出了性能更好的StrongARM处理器。1997年,StrongARM产品线被卖给,更名为XScale。

  1995年,Motorola在香港的研发团队基于MC68000指令集开发出了针对手持设备的DragonBall处理器,在这之后的十年,DragonBall处理器一直都是ARM强大的竞争对手。不但Moto自己的手机用它,Palm、三星、Sony的手机也用它。当然还有前文提到的商务通。ARM相对于Dragonball处理器有什么优势?我认为最大的优势是从客户需求出发的、持续的创新;其次是ARM的开放的商业模式。

  RISC指令集一般都采用32位定长指令,代码密度比起x86之类的CISC来要差一些,但手机的存储空间有限,对代码密度的要求高。1994年,ARM为此专门研发了16位的指令集Thumb,以及支持这一指令集的ARM7TDMI。

  开放授权的商业模式,使得整机厂在选择芯片时,可以找到支持同一指令集的多种芯片产品,不容易被绑架。Nokia作为和Motolora旗鼓相当的手机制造商,肯定不会选择竞争对手的Dragonball,而ARM的技术实力和商业模式,正好符合Nokia的需求。

  1997年,Nokia推出了一代经典6110,它采用TI的芯片,处理器核心是ARM7TDMI。6110是Nokia第一款带红外接口的手机,第一次内置了经典的贪吃蛇游戏,它的界面成为了之后Nokia手机的标准。从此,Nokia和ARM成为了好基友,Nokia的Symbian操作系统,一直都建立在ARM架构的基础上。

  1998年,趁着6110大红大紫的东风,ARM在Nasdaq上市了。同一年,SGI公司看到处理器IP授权生意有利可图,把MIPS部门拆分出来,次年MIPS推出了它第一款可授权的处理器设计M4K。此后的十年里,MIPS一直都是ARM有力的竞争对手。

  商务通在中国流行的那几年,国际市场上流行性能更高的掌上电脑和智能手机,操作系统包括Palm OS、微软的WinCE、Nokia的Symbian、RIM的Blackberry OS,Motorola的Wisdom OS。在这个领域里,ARM阵营中负责高性能的XScale大放异彩,暴击Dragonball。当Dragonball的频率还停留在33MHz/66MHz时,Xscale已经飙到了200~400MHz。MC68000指令集在手持设备领域败走。Palm OS的1.0~4.0都是基于MC68000指令集的,5.0就换成了ARM。后来Motorola的半导体部门Freescale干脆推出了基于ARM核的iMX系列产品,替代Dragonball产品线。

  苹果作为掌上电脑的先行者,却在这次浪潮里无所作为,在Wintel的挤压下,它的桌面业务都已经濒临绝境,无暇顾及其它市场了。1997年,不温不火的Newton从苹果公司独立了出来。当乔布斯回归苹果之后,又火速把Newton收编了回来,并且干净利落地停掉了Newton产品线——乔帮主只想要Newton手里的ARM股份。1998年到2003年,苹果通过出售ARM的股票获利11亿美元。这笔钱,是乔布斯复兴战略的重要燃料,可以说是苹果的救命钱。

  绽放

  经过多年的深耕,ARM在新世纪开始时,已经是手机领域里的王者,依然在为客户的需求做着持续的创新,Java加速技术就是一个典型的例子。

  从2000年开始,功能手机的性能提升到了足够高的水平,人们希望在手机上玩比较复杂的游戏,而不仅仅是贪吃蛇。但是手机的处理器和操作系统实在是太分散了,为了方便游戏跑在不同手机上,J2ME平台应运而生。从原理上讲,J2ME和Applet并无不同,都是基于JVM的。Java在并不分散的桌面领域没有获得成功,但在分散的手机领域获得了成功。

  J2ME的游戏越做越复杂,但手机的处理能力毕竟有限,桌面和服务器上的JIT编译器在手机上跑得太吃力了。于是ARM在2001年推出了ARM926EJ-S处理器,它支持Jazelle DBX技术,可以直接解码和执行Java的字节码,省掉了JIT编译器的负担。这一功能大受欢迎,帮助ARM9系列成为了迄今最受欢迎的ARM处理器,总共有250多个授权厂家,其中100多个授权的是ARM926EJ-S。

  在MTK助推山寨功能机火遍神州的那几年,主控芯片所使用的核全部都是ARM9。在iOS和安卓的应用商店诞生之前,功能手机全靠J2ME开发的应用来实现各种炫酷的功能。从某种意义上讲,在低端市场上,Jazelle是助力山寨机火爆的最大幕后功臣。

  然而高性能ARM芯片的扛把子XScale,却被于2006年6月卖给了Marvell。这是实施x86-everywhere战略的一个步骤。Intel希望x86的生态也能进入到低功耗的移动领域,而不是用自己先进的工艺制程和设计能力帮ARM建设高端应用的生态。22个月之后,2008年4月,低功耗的Atom芯片诞生了。

  高性能ARM芯片的扛把子换成了苹果。2004年,在卖光ARM股票的一年之后,乔布斯决定研发iPhone。2007年1月,在Intel放弃ARM之后仅半年,iPhone诞生了。苹果可不会采用低端市场上死守ARM9那种玩法,iPhone一代就采用了400MHz的ARM11;2009年的iPhone 3GS,升级为600MHz的Cortex A8;2010年的iPhone4,苹果自研的A4芯片升级为1GHz的Cortex A8。接下来苹果自研芯片性能一路狂飙的历程,大家都很熟悉了。

  从ARM6到ARM11,这些IP核都是按照兼顾移动设备、汽车电子和嵌入式这三个市场的思路来设计的。从2003年起,ARM把产品线有针对性地划分为A、R、M三个系列,分别对应上述三个市场,而且IP核的名字都统一加上了Cortex的前缀。Cortex A8就是A系列的第一个作品。iPhone 3GS和iPhone4令Cortex A8大火,但让ARM一飞冲天的推手,却是iPhone的竞争对手——安卓(Android)。

  有很多文章介绍安卓如何诞生,如何在移动设备领域干掉了除iOS之外的全部对手,毋须赘述。这里只想强调一个被普遍忽略的事实:安卓从诞生之初,就要求应用程序采用Java编写,并且跑在Dalvik虚拟机上;但iPhone上的应用,都是原生的ARM程序。要知道Android手机的处理器性能相对iPhone并无优势。

  山寨之王MTK于2009年2月推出的首款智能手机芯片MT6516,采用406MHz的ARM9;2008年~2010年间由HTC推出的那几款卖得很好的Android手机,也无非是ARM11和Cortex A8的核,几百兆的频率,这种级别的处理器跑虚拟机还是蛮吃力的。另外虚拟机占用内存大的缺点,也不利于用户体验和降低成本。

  谷歌宁可冒着让安卓出师不利的风险,也要推广Dalvik虚拟机。这是为什么?谷歌内部的决策过程我们无从得知。一个合理的猜测是,谷歌不愿看到手机领域里ARM一家独大,它希望给MIPS、x86等其它CPU一个机会。J2ME的成功,让谷歌看到完全建立在虚拟机上的手机应用生态,是完全可能的。

  Dalvik虚拟机可以跑Java,但并不采用JVM那种基于堆栈的字节码,而是改用一种基于寄存器的方案。这么做当然是为了规避SUN公司(后被Oracle收购)的专利,同时也让无法直接运行JVM字节码的MIPS、x86能够实现轻量级的JIT编译器,无须Jazelle这样的技术。从另外一个角度讲,MIPS在电视、机顶盒、游戏机市场上占优,x86在桌面市场近乎垄断,支持它们,也意味着安卓有可能进军电视和桌面。

  安卓对所有CPU而言,都是巨大的机会,谁抓住了这个机会,就可以一举改变竞争格局,实现霸业。

  只可惜MIPS公司太不给力,一直也没有搞定靠谱的MIPS版Android。等到2011年1月,Synopsys公司给自家的ARC处理器移植好Dalvik虚拟机和浏览器用的V8虚拟机、Android环境已完备的时候,MIPS都还没动静。顺便说一句,Intel曾经的南桥芯片里都有ARC处理器,它是Active Management Technology(AMT)的重要基石。

  这个时候,北京的君正公司坐不住了。君正靠做低成本的MP4播放器起家,2011年5月在创业板上市。君正拥有MIPS的架构级授权,对自己研发的XBurst处理器非常自信,准备靠它进攻手机和平板市场。2011年7月,基于君正JZ4760的MIPS智能手机通过Android兼容性测试。2011年12月,基于君正JZ4770平台的平板电脑,被谷歌选为Android4.0的首发产品,一时风光无限。

  ARM的强大软件生态此时起到了护城河的作用。基于君正的平板,软件兼容性出了问题。原因在于谷歌没有强求所有的应用都跑在Dalvik虚拟机上,对于部分对性能有苛刻要求的app,例如游戏,谷歌允许用CPU的原生指令集来开发,为此还提供了NDK(Native Development Kit)。对于那些包含了ARM原生指令的游戏,君正的平板要么不支持,要么用emulator支持,总之用户体验都不好。

  ARM生态圈里,在2011年,正好有两家芯片厂商异军突起:全志和瑞芯微,它们分别推出了采用Cortex A8处理器的A10芯片和RK2918芯片,成本极低,主打平板和安卓电视盒子。君正的平板梦被它们粉碎了,之后只好转战安卓手表,消沉了很多年。对于MIPS而言,还有一个坏消息是,在它们的强力助推下,电视盒子市场也成了ARM的天下。经营不善的MIPS于2012年卖给了Imagination,Imagination不但没能依靠MIPS在CPU市场中有所作为,反而在GPU市场里也败给了ARM,在2017年被迫整体卖身,MIPS业务卖回给了硅谷公司。

  2012~2016年,Intel在安卓市场上挑战ARM,也失败了。于是安卓给CPU带来的红利,全部被ARM吃掉了。随着手机越来越重要,ARM也越来越重要,它所推出的最新的Cortex A系列处理器,被手机芯片争相采用。ARM生态也越来越强大,它的触角,慢慢伸出了手机领域。



关键词: Intel ARM

评论


相关推荐

技术专区

关闭