ARM的那些事儿

来源:互联网 发布:教学实训软件 编辑:程序博客网 时间:2024/05/01 02:16

       比起那些耳熟能详的半导体巨头公司,我相信对于大多数人来说,ARM公司就显得较为陌生了,但我相信你所使用的手机中必定有ARM的痕迹。自从进入21世纪,智能手机开始崛起,NoKia(诺基亚)退出手机市场,iPhone和Android(安卓)手机强势抢占市场。智能手机的浪潮成就了ARM公司,令其生存于众巨头半导体公司构成生态圈下的核心位置。当然ARM独特的生存方式和优秀的设计也成为了市场的巨大推动力,不得不说,当下移动互联网的发展迅速得益于ARM公司。那么ARM到底是怎么样的一家公司?希望本篇博文能或多或少给你一点启示。

       1978年12月5日,物理学家Hermann Hauser和工程师Chris Curry在英国剑桥创办了CPU公司(Cambridge Processing Unit,剑桥处理器),当时的主要业务是为当地市场供应一些电子设备。1979年更名为Acorn(橡果,音译为艾康),这时候Acorn还没有属于自己的CPU(Central Processing Unit,中央处理器)设计。由于嫌弃当时使用的 Motorola(摩托罗拉)的芯片性能不佳且价格昂贵,Acorn向当时的另外一家公司---Intel,即现在的PC机市场巨头讨要1982年其推出的80286芯片设计,但是遭到了拒绝。于是乎,Acorn开始设计自家的CPU。到了1985年,ARM设计出了第一代处理器,并用其开发了一台计算机,命名为Acorn RISC Machine,缩写就是ARM,这是ARM名字最早的由来。1990年11月27日,Acorn公司正式改组为ARM计算机公司。这时ARM的全称改为Advanced RISC Machine,就是我们今天知道的ARM公司了。
       这里有必要简单解释一下RISC,RISC的全称是Reduced Instruction Set Computer(精简指令集计算机),它支持的汇编指令比较简单,功耗小。与之相对的就是CISC, 即Complex Instruction Set Computer(复杂指令集计算机),它所支持的指令便较为复杂了,在PC机领域最具代表性的就是Intel和AMD。关于CISC和RISC的一些知识,我会写另外一篇博文《Intel和AMD的那些事儿》作些介绍。
       说回ARM,ARM公司在成立之初,它的业务并不景气。它没有能力像Intel一样从CPU的设计到芯片的生产和出售这样完整的生产链。于是ARM公司作了一个重大的决定:只做处理器的设计,而不自主生产芯片,通过IP(Intellectual Property,知识产权)授权方式把方案卖给其他公司。这一冒险的方式却令ARM公司获得了巨大的成功。到现在,使用ARM公司方案的公司有IBM(国际商业机器公司)、Apple(苹果)、Qualcomm(高通)、Samsung(三星)、TI(德州仪器)、ST(意法半导体)、Sony(索尼)、HP(惠普)等一些著名的公司,中国授权有华为海思、全志、台积电、联发科等。针对公司的具体情况,可以从ARM公司购买不同的授权方式,它的授权方式有很多,但最主要的授权方式可以根据用户的选择余地从低到高分为三种:处理器优化包/物理IP包授权(POP)、处理器授权、以及架构/指令集授权。
  • 处理器优化包/物理IP包授权(POP)是三种授权方式中等级最低的,但适用于快速开发,用户可以直接使用ARM优化过的处理器方案,处理器类型、代工厂、工艺都是规定好的。用户可以快速地开发出产品,使用的代价也较低,当然供用户自己发挥的余地是几乎没有的。
  • 拥有处理器授权的用户可以购买已经设计好的ARM处理器图纸,但用户只能照着图纸实现,能发挥的地方不多。用户能决定的是设计成什么规格的芯片。比如配置哪些模块、增加那些外设、使用几个核心、设计多少缓存、多高频率、使用什么工艺、谁来代工等等。
  • 第三种授权方式就是架构/指令集授权了,这种授权方式等级是最高的,用户可以仅购买ARM的架构/指令集(ARMv7、ARMv8),然后设计自己的SoC(System on a Chip,片上系统)。在全球拥有ARM这种授权方式的为数不多,我们较为熟知的有Apple、Qualcomm,中国华为海思在2013年获得这种授权方式,2016年上海华芯通也获得了ARM架构授权。
       于是,ARM公司在这样的生存方式下成为了半导体界的“地产开发商”,有实力的公司购买“地皮”,自行设计“建筑”;还有一些则购买“毛坯房”,自行“装修”。想要最快“入住”的则直接购买“精装房”。只不过ARM公司实际上并没有中国的地产开发商那么赚钱罢了。
       说完授权方式,重点来说下ARM公司有哪些设计产品:

       在此之前首先谈一下个人对架构和核心的概念理解。有些人也喜欢将核心等同于架构,个人喜欢分开来讲,这样比较容易搞清楚ARM7和ARMv7的区别。

  • 架构:即指令集体系结构。ARM公司从成立到现在一共发布了8种指令集体系结构,即ARMv1~ARMv8架构。
  • 核心:基于架构开发出的处理器核心,比如ARM7、ARM9、ARM11、Cortex-A9等等。

(下面部分有转载成分,详细见“参考资料”)

  • 1985年,ARMv1架构诞生,该版架构只在原型机ARM1出现过,也就是上文提到的ARM首台自主研发的计算机,只有26位的寻址空间(64MB),没有用于商业产品,但是却具有里程碑意义。
  • 1986年,ARMv2架构诞生,首颗量产的ARM处理器ARM2就是基于该架构,包含了对32位乘法指令和协处理器指令的支持,但同样仍为26位寻址空间。其后还出现了变种ARMv2a,ARM3即采用了ARMv2a,是第一片采用On-Chip Cache(片上高速缓存)的ARM处理器。
  • 1990年,ARMv3架构诞生,第一个采用ARMv3架构的微处理器是ARM6以及ARM7,其拥有On-Chip Cache)、MMU(Memory Management Unit,存储器管理单元)和Write Cache(写缓冲),寻址空间从原来的26位增大到32位(4GB)。
  • 1993年,ARMv4架构诞生,这个架构被广泛使用,ARM7TDMI、ARM8、ARM9TDMI和StrongARM采用了该架构。ARM在这个系列中引入了T变种指令集,即处理器可工作在Thumb状态,增加了16位Thumb指令集。
  • 1998年,ARMv5架构诞生,ARM7EJ、ARM9E、ARM10E和Xscale采用了该架构,这版架构改进了ARM/Thumb状态之间的切换效率。此外还引入了DSP指令和支持Java。
  • 2001年,ARMv6架构诞生,ARM11采用的是该架构,这版架构强化了图形处理性能。此外ARM在这个系列中引入了混合16位/32位的Thumb-2指令集。
  • 2004年,ARMv7架构诞生,从这个时候开始ARM以Cortex来重新命名处理器,Cortex-M3/4/7,Cortex-R4/5/6/7,Cortex-A8/9/5/7/15/17都是基于该架构。这三种系列面向的对象不同:“A(applicational )”系列面向尖端的基于虚拟内存的操作系统和用户应用;“R”(Real-time)系列针对实时系统;“M”(Micro-)系列针对微控制器。
  • 2006年,ARM宣布收购Falanx。这是ARM进军GPU处理器的标志。
  • 2007年,在ARMv6基础上衍生了ARMv6-M架构,该架构是专门为低成本、高性能设备而设计,向以前由8位设备占主导地位的市场提供32位功能强大的解决方案。Cortex-M0/1/0+采用了该架构。同时ARM首次以ARM品牌推出了Mali-200 GPU,然后是Mali-400 GPU,均基于Utgard架构
  • 2010年,ARM Mail推出Midgard架构,产品包括Mali-T604、Mali-T700、Mali-T800,最多可以做到16核心。
  • 2011年,ARMv8架构诞生,这是ARM公司首款能支持64位指令集的处理器架构。
  • 2016年,刚刚过去的一年里ARM公司也推出了一系列的处理器,同时推出了全新的GPU架构Bifrost 架构,并在此架构上推出了Mail-G71。与Mail-DP、Mail-V系列构成了Mali Multimedia Suite(Mali多媒体套件)。
  • ……
       说完了这些,我想你可能对ARM公司有了一定的了解,我们再来说说市场上一些流行手机搭载的SoC,我想你就会明白ARM在其中扮演了一个怎么样的角色。首先是Apple,Apple是ARM架构授权的拥有者。它所推出的iPhone不使用ARM设计的核心。而是自行设计CPU,一年设计一款CPU。iPhone7系列手机于2016年刚刚推出,它搭载的A10 Fusion处理器便是基于ARMv8-A架构,还有之前的Apple A8 Typhoon,Apple A9 Twister也是基于ARMv8-A架构的。Apple自行设计出的这一款A10处理器可以谓之为现存最强SoC。然后是庞大的Android阵营,对应的SoC厂商就比较多了,首先是Qualcomm,它设计的SnapDragon(骁龙)系列SoC在Android市场上占据的份额着实不小,拿几款这几年比较热门的SnapDragon处理器来说:SnapDragon 800 Krait,基于ARMv7-A架构;SnapDragon 810,基于ARMv8-A架构,但不是SnapDragon自主设计核心,而是使用了Cortex-A57(大核心Cortex-A15的升级版)和Cortex-A53(小核心Cortex-A7的升级版)大小核心,即很有名的Big.Little模式;SnapDragon 820 Kryo放弃了这种大小核心模式,基于ARMv8架构,参照部分Cortex-A72核心设计了SoC。除次之外还有Samsung设计的Exynos系列处理器、华为自主设计的Kirin系列处理等等,它们所设计的SoC都是基于ARM架构。当然了,纵使使用了同一种架构或者核心,不同厂商设计出的SoC性能必然是不同的,所以我们选择手机时会更关注是哪个公司设计的SoC,而不会更关注使用了ARM的哪种架构或者核心。
       虽然2016年ARM被日本软银收购,但是这并不意味着ARM没落了,ARM在物联网时代必定会占据很重要的角色,这就让我们拭目以待 吧。ARM的那些事儿就说到这了,感觉还是有很多没说完,不过再说下去就真的说不完了,还是留点空白给未来的ARM吧。
-----------------------------------------------------潇洒的分割线-------------------------------------------------------
写在后面的话:
       写这篇博文的时候萌生出一个想法,干脆写一个系列吧,把那些著名公司的事儿讲个遍。冷静下来想想,恩……这还是一个挺漫长的过程,希望慢慢完成它吧。这是我在CSDN上写的第一篇博文,写得不好之处,敬请谅解,欢迎指正。之所以萌生了写博文的想法,无非是想要对得起自己所学罢了。一直有在电脑上写笔记的习惯,不过往往都是写完了就丢在硬盘的某个角落里了,如果把它们整理出来想必也是一笔不小的“财富”,整理到博客上倒是一个不错的选择,在写博文当中也算是再次学习吧。只不过碍于工作和学习时间的问题,也不知道自己能做到多少,恩,努力吧……


2017-1-16

Kilento
附:2016年ARM公司产品
1) Mali-DP650
2) Cortex-R8:基于ARMv7-R架构
3) Cortex-A32:基于ARMv8-A 32bit架构
4) Cortex-A73:基于ARMv8-A 32bit/64bit架构
5) Mali-G71: 基于全新Bifrost架构, Cortex-R52:
6) Cortex-M23:基于ARMv8-M架构的嵌入式处理器
7) Cortex-M33:基于ARMv8-M架构的嵌入式处理器
8) Mali-G51
9) Mali-V61


参考资料
[1]ARM架构https://zh.wikipedia.org/wiki/ARM%E6%9E%B6%E6%A7%8B
[2]文中ARM架构历史部分转载(有修改)自http://blog.csdn.net/henjay724/article/details/52664350
[3]ARM发展史: http://www.veryarm.com/tag/arm%E5%8F%91%E5%B1%95%E5%8F%B2

0 0