转发写的很好的一篇文章--ARM介绍

ARM的总部在剑桥,同时在伦敦和纽约上市。市盈率接近50.这在芯片行业是个很夸张的数字,要知道Intel才十几的市盈率。原因有两个,第一名气大,移动界芯片的武林盟主,绝对的市场占有率。第二销售额低,净利也不高,2015年授权费和版税加一起才12亿美金,销售额连国内展讯都赶不上。ARM内部,真正盈利较好的只有做处理器的部门。


说到部门,ARM是麻雀虽小五脏俱全。全公司四千人,分布在处理器部门媒体部门(图形处理器,视频和显示模块),系统IP和软件部门(总线,中断控制器,MMU,内存控制器,安全模块,调试模块,系统设计,各类基础软件),物理设计部门(物理库和处理器后端设计),软件工具部门(编译器,调试工具,仿真模型),物联网部门(蓝牙,物联网操作系统),图像信号部门,技术支持部门,销售和市场部门,还有个商业发展部门(负责和战略客户的技术与合作,BAT之类,看着像是和市场部的内斗产物,英国佬的宫斗也是有千年传承的)。最后,还有个神秘的架构部门,里面的人动不动就是principle啊fellow啊,制定指令集,研发不是很黑的黑科技。研发中心在剑桥,法国索菲亚,芬兰,奥斯丁,以色列,匈牙利印度和上海都有。分布这么广和收购历史有关。


ARM的赚钱方式简单明了,授权和版税。谁想用ARM的IP,那么跟据流片的次数,可以付一次流片的费用,也可以买三年内无限次流片,更可以永久买断。芯片量产后,根据产量,会按百分比收一点版税。这个和高通的版税完全不同,ARM全球一年版税也就几亿美元,只是高通的零头的零头。


作为重中之重的处理器设计部门,产品有A,R,M三个系列,和ARM名字重合,挺有趣。A指的是Application Processor,以前专指移动处理器,后来又扩展到服务器和网络处理器领域。R指Real Time,主要用于汽车,控制,固态硬盘,调制解调器等实时性需求较强的领域。M指MCU,一看名字就知道是微控制器,领域就更广,去年全球ARM MCU出货量过60亿片,但单价很便宜。

A系列是ARM扬名立万的本钱,没有A系列,ARM也就是个高级8051的水平。ARM把A系列按照每赫兹功耗分为三等,低端的代表如A7和新出的A35/A32,运行在几百兆赫兹,功耗几十毫瓦,适合手表和超低端手机。中端的代表如A53,作为大小核中的小核,运行在1-2Ghz,功耗3百毫瓦以下.当然也有人把它当大核用,功耗500毫瓦以上。再往上就比较丰富,A57是个相对较差的作品,再往后的A72,A73都达到了预期目的,运行在2Ghz以上,500豪瓦左右的功耗。在ARM的计划里,每年提升20%的每赫兹性能,2018年底会出一款单核性能和Intel x86抗衡的处理器,节点在7nm甚至5nm上,不知是不是能实现。我觉得有点悬,台积电的7nm上的最高频率和16nm也没差多少,加压到3Ghz了不起了,而x86现在就快到4Ghz了。ARM哪怕有每赫兹性能提升50%也赶不上,更何况intel也在缓慢提升。目前看来,通过增加发射宽度,把二级缓存放到核内,优化一级缓存命中,使用数据缓存vipt,还是可以在线性提升功耗的前提下提升性能。但是 ARM设计的哪怕最高端的处理器,也是把手机作为应用目标的,所以在功耗上不会很激进,单核一瓦都不会到。话说回来,其实小核赚到的授权费更高,你看市面上那么多A53的处理器在跑,不光手机,平板,服务器,网络都有。


R系列芯如其名,所有的设计都往实时性靠拢。可能有人对实时性有误解,以为实时性就是性能高,响应快,这是不完全的。硬实时性指的是,任何运算和处理,都在确定的较短时间内完成。按照这个理念,虚地址是不适合的,因为虚实转换查页表可能会连续不匹配,造成不可预计的访存时间。甚至中断处理中实地址访问内存也是不可控的,因为可能多个主设备存在访问冲突,必须使用绑定核的专有片上内存,才能保证几十个时钟周期内一定让中断得到处理。其它的措施,比如所有内部总线和缓存加入校验,采用双核冗余处理,都是R系列的特点。汽车和自动控制是R系列的典型应用。其余的存储控制器,3/4G调制解调器等,用处理器做的都是协议控制,不存在确定响应时间的问题,只要平均延时达到要求即可。所以有人用A系列做这一类应用,毫不奇怪。R系列的趋势是实现虚拟化,这是汽车电子公司提出的要求,初看挺奇葩,但是ARM的解释是,当初如果先有虚拟化,那么就不会有trustzone了。在实地址下,虚拟化效率更高,因为A系列的虚拟化可能需要查20次页表才能找到最终实地址,而R系列3-6次就可以,还可以把页表放在片上内存,那就不存在延迟不可控一说了。所以R系列上的安全可以通过实地址虚拟化来实现。


M系列应用太广,目前比较火的智能硬件和物联网基本都用它,去年出货量60亿片,不过ARM在上面估计连1亿美元版税都没收到。它的特点是芯片面积小,功耗极低,做的好一个电池板用几年都可以。当然,也有M7这种奇葩型的MCU,运算能力超A7甚至A53,自带缓存,目前用于无人机控制等对计算能力和实时性要求都高的地方。MCU上的趋势也是安全,物联网的基本需求。当然,由于芯片面积本来就小,不适合用虚拟化实现,还是用的老的trustzone的简化版比较现实。


除了处理器RTL授权,ARM还可以指令集授权。这个话题一直被人津津乐道。目前的客户包括苹果,高通,博通,Cavium,海思,展讯等等。ARM其实是把指令集授权客户看成潜在的威胁的,所以不仅售价高(几千万美元也不稀奇),而且还有时间和行业限制,过个三五年又得重新买。此外,客户还不光买指令集,指令集验证模型也得要吧?不然自己写还不一定对。现在要做一个处理器其实没那么困难,微结构就那样,90%的时间都是花在验证上。难的是要做到商业化,那需要长时间慢慢的积累,不断的验证,不断的微调。不同性能和功耗目标所采取的设计也并不相同。有条捷径是拿ARM的RTL改,不过合同上这样是不被允许的。


从市场来看,手机和平板ARM基本无竞争。Intel曾经想通过贴钱进入平板,现在随着策略改变也没啥动作了。还曾经和rockchip合作,把硬核授权,让RK生产,如今也烟消云散。唯一还在坚持的就是对展讯的投资与合作,授权硬核,提供工厂,试图让展讯以低价铺开x86手机芯片市场。其实这本意是不错的,intel自己造芯片太贵,只能让中国公司来做才能降成本。不过随着intel移动战略的改变,现在的前途真是未卜,可见生态的力量之强大。据说ARM当初给诺基亚和德州仪器提供手机芯片设计的时候,完全没想到过什么生态战略,也是想着赚一把走人,一不小心就做大了。


在服务器市场,ARM和Intel的情况完全反转。ARM苦于没有真正的芯片做生态软件优化,而芯片厂商也苦于没有像手机那样成熟的软件,一切都要自己来。想想当初Intel为了打入手机市场硬是在二进制文件层面做指令翻译,如今ARM面对的问题也没好到哪去。服务器和网络不像手机,随随便便可以死机重启,哪怕芯片没问题,软件移植的不好,或者各家ARM指令集的芯片在软件稳定性上表现不一致,那么在互联网生产环境是没人敢大量使用的。所以这个市场上的生态更难打破,只能一点点拱白菜吧。好在企业市场不同于消费市场,决定权在企业用户,群狼前赴后继,主打低功耗低成本,拱得多了总会有一部分市场份额的。


别的小一些的市场,网络处理器,全球一共20亿美元,ARM也是大势所趋了。曾经占统治地位的MIPS和PowerPC,以后只会出现在一些低端网络设备上。还有个应用就是2/3/4G调制解调器,这个市场其实很大,手机离不开它。R系列在这里用的挺多,不过作为协议控制,用A系列也可以,也确实有人这么做。另外一个是存储控制器,包括机械和固态硬盘控制,MIPS和tensilica占着一点空间,还有一个后起之秀,那就是Synopsys的ARC处理器。凭借着EDA软件搭卖处理器,在ARM没有生态优势的市场确实挺有吸引力。作为数据中心里计算,存储,网络三大块之一,存储倒是可以和网络结合,在单芯片上集成以太网和ONFI接口,运行Linux及其开源软件,Ceph之类的,把以前需要服务器加网卡加SSD阵列的网络节点整个替换掉。由于软件单一,优化相对容易,加上高能效低成本,也许能从这个角度打开服务器和数据中心的市场。


图形处理器其实比处理器更代表着未来。他们的主要区别是CPU一条指令仅仅对应有限的一次或者几次数据访问,然后指令与指令间存在着大量相对随机的跳转和数据读取。而GPU一条指令可能需要成百上千次数据读取,并且顺序排列。顺序访问对于访问内存可是天大的好事,详情可以参看之前的文章。桌面GPU利用高带宽,将顺序访问发挥到极致。但是他并不在缓存存储中间结果,而是写到内存。ARM的移动GPU,是所谓的tile based GPU,读取一定量的数据后,会在缓存进行操作。从而省掉了很多带宽,看上去更省电。


ARM在GPU上的竞争对手有IMG和高通。不过高通只在自己的芯片上使用,而IMG基本只在苹果上卖出去。如果一个芯片公司想做手机芯片,那么GPU的选择只有ARM和IMG,其余vivante之类的都是坑,海思和飞思卡尔都吃过亏。如果使用了Atom或者MIPS做CPU,那最好别选ARM MALI,否则没人支持兼容问题。GPU的某些命令是需要CPU指令来做加速的。使用敌对阵营的CPU和GPU,各种安全,内容保护,硬件一致性,以及之上构建的异构计算也不容易做好。总之,ARM的GPU在技术上不如高通和IMG,但是凭借着CPU的优势,在安卓市场占了40%。并且,现在IMG的中国市场上也只有展讯在用。紫光买了IMG3%的股份真是用心良苦。


接下去就是总线。ARM的总线分成几类,一类是NIC,没有固定拓扑结构,通过简单crossbar互联,适用于简单场景。一类是CCI,固定拓扑,也是crossbar结构,支持一致性,适合少量处理器。再往下是CCN,环状结构,通过固定交叉点连成一个环,延迟大但频率高些,适合16个以上的处理器。再后来是CMN,网状结构,也是固定交叉点,形成 NxN网络,支持更多的CPU互联。再有一种是NoC,节点是个小路由器,连线更少频率更高。没有固定拓扑结构,可以连接任意多的设备。


在这么多总线里,CCI是一个重点。最新的CCI550设计完美到ARM就没有后续产品计划。它可以让多个CPU和GPU互联,并且以极小的代价维护硬件一致性。在CCI550的基础上,安全支付,视频内容保护(看正版好莱坞授权大片的前提),异构计算,现实增强,全都可以高效实现,手机应用将会大大丰富。现在一线的几个手机芯片公司在2016年底推出的方案里就会包含这个总线。不过真正把应用跑顺,还是需要一些时间的磨合。


CCI有什么缺点?最大的缺点就是无法支持更多的CPU和GPU。环状网络CNN是一个过渡方案,而网状网络CMN是一个较为成熟的设计。兼顾了访问局部性,支持新的高效原子操作,支持网络处理器常用的stashing,还支持智能路由。由于跑在较高频率(2Ghz@16nm),虽然访问的路线变长,但是平均延时缩短了。目前CMN还不支持芯片互联,没法像x86那样组成多路服务器,这一点还有待发展。作为芯片间总线互联的协议倒是刚定,叫CCIX,不知前景如何。


CCI/CCN/CMN都是支持一致性的。很多时候需要更灵活的连接各个设备,把不同的数据宽度,接口协议,电源/时钟/电压域,还要考虑布线,这些糅合在一个网络中,却又不需要硬件一致性那这时候就可以用NoC和NIC。NoC以路由和包转发为特点的网络,可以自由拓展。NIC更为简单,没有路由,只有简单交换,调度,交织能力很有限,用于简单SoC结构不错,复杂了还是得上NoC。最近NoC也推出了一致性支持,采用类似多层Snoop filter的结构,向CCI/CMN发起挑战。结果如何,拭目以待。


其余的系统IP,随着手机应用的丰富,也在逐渐发展。虚拟化,安全,移动计算,都是将来的趋势。其中值得一提的是ARM的内存控制器,经过长期对系统传输的研究,ARM把它的调度算法不断优化,可以将内存带宽利用率提高到90%以上。而很多复杂场景,比如视频摄录与回放,CPU,GPU,video,display,ISP同时工作,系统访存会面临很大压力。此时好的调度算法可以让内存利用率尽可能接近理论上限。不过ARM内存控制器缺点也很明显,必须配合别人的DDR PHY才能工作,这就有潜在的兼容性问题。而其他公司的PHY很值钱,控制器近乎白送。不过随着手机芯片日益复杂,内存带宽利用率问题会越来越严重,这个瓶颈必须得到解决。


综合CPU/GPU/系统IP,就可以展开很多应用。其一就是安全支付。安全支付可以用ARM的trustzone来实现,不过这是一个系统解决方案,所有的处理器,总线,内存和外设,操作系统,都需要做相应改动,并不是把某个IP用到系统里就完事了。另外一个应用就是内容保护,中国用户如果想要在手机看最新的正版好莱坞大片,好莱坞就会要求所有播放设备上要有DRM,数字版权保护。这也是靠把trustzone应用于整个芯片来实现的。我估计在未来几年内很快就会看到了。


还有别的应用,比如目前很火的VR/AR/CV。手机上VR除了GPU性能需要足够强外,主要是在软件上要支持几个特性,front buffer rendering啊,multiple view啊。对于GPGPU来说,改驱动就可以做到了,这也就是为啥GPGPU比固定管线灵活的原因了。其余的硬件改动会是在display上,使得缓存更快的更新到显示屏。当然,为了20ms延迟,上层的软件改动也需要,我不熟就不多说了。


手机上更实际的应用其实是在AR和CV。不管是用什么算法,什么API,都可以用Neon或者GPGPU甚至DSP来实现,而硬件上需要做的,就是把GPU和CPU,DSP的双向硬件一致性做好,避免拷贝和刷新,让他们之间的数据交互更高效。我估计在未来的两年内,就会有包含计算机视觉或者机器学习的应用和测试出现,到时候又要比跑分了。


ARM还有一个重要的部门就是物理设计部门。它的任务有两个,一个是与台积电,联电,中芯等公司合作,把他们最新的制程的物理开发包拿到手,并在此之上开发自己的后端库。第二个是有了后端库,还要和CPU/GPU设计部门合作,前后端协同设计,把频率,面积和功耗做到最优。然后就可以拿出去吆喝卖钱了。在推广的时候,ARM的口号是PPA(performance, Power, Area),Synopsys的口号是Service,而台积电的口号是Free。其实这代表了三种不同的推广策略。回到ARM的后端产品,虽然前后端协同设计口号叫的很响,可有时候出来的数据真的未必能比得上芯片厂商自己做的后端,所以只能见仁见智吧。


ARM的其他部门,比如卖仿真器和Keil的,名气是很响,可营业额很小。他们还做IP模型和编译器,和其他部门比存在感稍弱。还有个部门做物联网和蓝牙,有个物联网操作系统mBed在推广。不过物联网这个概念太广,传统意义上的物联网芯片就是一个MCU加点传感器和连接(WiFi,蓝牙,北斗/GPS,LTE),重点在于应用而非处理器,很难搞个生态或者大新闻。所以这个部门存在感也不强。我觉得搞好了蓝牙也无助于提升系统性能和生态,甚至我怀疑这个部门是内部高层出去创业然后回购的。


说到ARM的存在感,就必须说到ARM的市场部门。共有四种市场职位,第一是产品市场,和产品紧密相关,CPU和GPU发布时候就是他们在出场,搜集需求,帮研发定义下一代产品。第二种是区域市场,北美欧洲中国,没事就到各个芯片公司去转悠,盯住他们的最新动态,看看能不能卖出点什么,同时给产品市场需求和反馈。第三类是应用市场,针对某类新的应用,比如虚拟现实,汽车,移动,服务器等。他们去的不仅仅是芯片公司,更重要的是行业的下游企业,看看在应用层有什么可以挖掘的。第四类是战略客户市场,主要是看住新兴的互联网公司,看看他们有什么动向。未必是锁定在某一行业和应用。比如阿里,同时在服务器,手机操作系统,支付,多媒体等领域发展,那ARM就得看看有什么地方可以合作的。除了这四类,其实还有政府合作市场,不过这类事情一般都是GM和VP出面,摸清中央政府,地方政府和各部门的资金和政策动向,看看能不能掺和一脚。

作为一个号称靠生态赚钱的公司,市场人员自然素质不错,随便挑一个出来,上台做做报告,用英语发表下演讲,分析下行业动态,自然不在话下。由于平台大,视野广,出路通常不错,经常有跳槽升个两级或者干脆自己创业的。


然而,我还是不看好ARM的盈利模式。它的现有模式已经走到了尽头,就算移动计算,服务器,VR,物联网市场起来了又如何?就算中国和印度的芯片也起来了又如何?作为IP公司,所能赚的钱翻个倍也就顶了天了,远远没法和芯片公司比,更没法和下游互联网公司比。


那ARM的未来在哪?第一还是生态。当前流行的技术,大数据,人工智能,虚拟现实,自动驾驶等等,说穿了无非两个字,计算。而计算就离不开芯片。无论是CPU,还是GPU,DSP,又或是神经网络芯片,都是围绕这两个字在运行。ARM必须牢牢抓住技术趋势,将通用计算融合其中,这是一切的基础。但是做好了第一步,并不赚钱。能赚大钱的不是IP授权,而是来自投资,来自那些从财报上看不到的影响力。有了影响力,什么政府合作啊,领投啊,资本运作啊,才有可能轮得到ARM分一杯羹。从这方面看,不生产芯片,不制造系统,软件开源,又是无与伦比的优势。ARM中国这两年动作频频,和妖股中科创达联合成立安创只是牛刀小试,而和厚朴成立投资公司则是红色故事的开始。

猜你喜欢

转载自blog.csdn.net/handsomehong/article/details/80223365