https://zhuanlan.zhihu.com/p/20946762
A指的是Application Processor,以前专指移动处理器,后来又扩展到服务器和网络处理器领域。R指Real Time,主要用于汽车,控制,固态硬盘,调制解调器等实时性需求较强的领域。M指MCU,一看名字就知道是微控制器
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了
目前看来,通过增加发射宽度,把二级缓存放到核内,优化一级缓存命中,使用数据缓存vipt,还是可以在线性提升功耗的前提下提升性能。但是 ARM设计的哪怕最高端的处理器,也是把手机作为应用目标的,所以在功耗上不会很激进,单核一瓦都不会到
R系列芯如其名,所有的设计都往实时性靠拢。可能有人对实时性有误解,以为实时性就是性能高,响应快,这是不完全的。硬实时性指的是,任何运算和处理,都在确定的较短时间内完成。按照这个理念,虚地址是不适合的
必须使用绑定核的专有片上内存,才能保证几十个时钟周期内一定让中断得到处理。其它的措施,比如所有内部总线和缓存加入校验,采用双核冗余处理,都是R系列的特点。汽车和自动控制是R系列的典型应用。
R系列的趋势是实现虚拟化,这是汽车电子公司提出的要求,初看挺奇葩,但是ARM的解释是,当初如果先有虚拟化,那么就不会有
trustzone了。在实地址下,虚拟化效率更高,因为A系列的虚拟化可能需要查20次页表才能找到最终实地址,而R系列3-6次就可以,还可以把页表放在片上内存,那就不存在延迟不可控一说了。所以R系列上的安全可以通过实地址虚拟化来实现。
http://baike.baidu.com/link?url=pkWw_5FdhTTkc1X7rMzxWnY3CYwEHODsfgew6pZYVAlgo-ErBkpACbuKL6NprXML90KMmWvcuMF3SJSO4u_mTa trustzone
http://baike.baidu.com/link?url=pkWw_5FdhTTkc1X7rMzxWnY3CYwEHODsfgew6pZYVAlgo-ErBkpACbuKL6NprXML90KMmWvcuMF3SJSO4u_mTa trustzone
M系列应用太广,目前比较火的智能硬件和物联网基本都用它,去年出货量60亿片,不过ARM在上面估计连1亿美元版税都没收到。它的特点是芯片面积小,功耗极低,做的好一个电池板用几年都可以。当然,也有M7这种奇葩型的MCU,运算能力超A7甚至A53,自带缓存,目前用于无人机控制等对计算能力和实时性要求都高的地方。MCU上的趋势也是安全,物联网的基本需求。当然,由于芯片面积本来就小,不适合用虚拟化实现,还是用的老的trustzone的简化版比较现实
除了处理器RTL授权,ARM还可以指令集授权。这个话题一直被人津津乐道。目前的客户包括苹果,高通,博通,Cavium,海思,展讯等等。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,读取一定量的数据后,会在缓存进行操作。从而省掉了很多带宽,看上去更省电。
如果一个芯片公司想做手机芯片,那么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,不知前景如何。
CI/CCN/CMN都是支持一致性的。很多时候需要更灵活的连接各个设备,把不同的数据宽度,接口协议,电源/时钟/电压域,还要考虑布线,这些糅合在一个网络中,却又不需要硬件一致性那这时候就可以用NoC和NIC。NoC以路由和包转发为特点的网络,可以*拓展。NIC更为简单,没有路由,只有简单交换,调度,交织能力很有限,用于简单SoC结构不错,复杂了还是得上NoC。最近NoC也推出了一致性支持,采用类似多层Snoop filter的结构,向CCI/CMN发起挑战。结果如何,拭目以待。
中值得一提的是
ARM的内存控制器,经过长期对系统传输的研究,ARM把它的调度算法不断优化,可以将内存带宽利用率提高到90%以上。而很多复杂场景,比如视频摄录与回放,CPU,GPU,video,display,ISP同时工作,系统访存会面临很大压力。此时好的调度算法可以让内存利用率尽可能接近理论上限。
不过ARM内存控制器缺点也很明显,必须配合别人的DDR PHY才能工作,这就有潜在的兼容性问题。而其他公司的PHY很值钱,控制器近乎白送。不过随着手机芯片日益复杂,内存带宽利用率问题会越来越严重,这个瓶颈必须得到解决。
综合CPU/GPU/系统IP,就可以展开很多应用。其一就是安全支付。
安全支付可以用ARM的
trustzone来实现,不过这是一个系统解决方案,所有的处理器,总线,内存和外设,操作系统,都需要做相应改动,并不是把某个IP用到系统里就完事了。另外一个应用就是内容保护,中国用户如果想要在手机看最新的正版好莱坞大片,好莱坞就会要求所有播放设备上要有
DRM,数字版权保护。这也是靠把trustzone应用于整个芯片来实现的。我估计在未来几年内很快就会看到了。
ARM还有一个重要的部门就是
物理设计部门。它的任务有两个,一个是与台积电,联电,中芯等公司合作,把
他们最新的制程的物理开发包拿到手,并在此之上开发自己的后端库。第二个是有了后端库,
还要和CPU/GPU设计部门合作,前后端协同设计,把频率,面积和功耗做到最优。然后就可以拿出去吆喝卖钱了。在推广的时候,ARM的口号是PPA(performance, Power, Area),Synopsys的口号是Service,而台积电的口号是Free。其实这代表了三种不同的推广策略。回到ARM的后端产品,虽然前后端协同设计口号叫的很响,可有时候出来的数据真的未必能比得上芯片厂商自己做的后端,所以只能见仁见智吧