Arm架构知识科普
近十年的移动互联网发展,让智能手机大规模普及,也带火了一个曾经并不为人广泛知道的公司——ARM。这家成立于英国剑桥的芯片设计公司在1985年研发出了精简指令集架构处理器,名为Acorn RISC Machine,而简称就是著名的ARM。作为一家处理器设计公司,其研发的ARM架构最初面向的是低功耗、低成本、高性能处理器。
ARM架构简介
ARM架构是一种采用独特的ARM指令集系统、并且根据不同适用范围开发的处理器体系结构。经过30多年的发展,目前ARM架构有针对不同类型计算设计的体系结构。简单来说有这几种。
- Cortex-A:针对高性能计算。如我们目前手机SoC中常出现的Cortex-A76等。
- Cortex-R:针对实时操作处理。主要是面向嵌入式实时处理器。在汽车的电子制动系统,工业控制领域等领域比较常见。
- Cortex-M:专为低功耗、低成本系统设计。目前火热的IoT领域常常见到采用Cortex-M架构的处理器。
ARM架构,更主要的是ARM指令集系统, 不同于x86架构的复杂指令集(CISC)架构,是一种精简指令集(RISC)架构。相对于CISC架构处理器,采用精简指令集设计的ARM架构设计目标是能在尽量高的时钟频率下通过很少周期执行的指令集。大幅减少不常用的指令,降低芯片复杂度。采用Load/Store指令体系结构,处理器通过load、store指令存取内存中的数据,针对逻辑、算术等运算,CPU只处理寄存器中的数据。同时由于这个原因,包括ARM在内的很多RISC架构处理器都有很多寄存器来存放指令及数据。为了方便指令的解码,虽然ARM处理器不是单周期指令,但是其绝大多数指令是定长的,加快了常用操作的速度。
同时ARM也没有完全局限于此,ARM架构还有像Thumb指令集、条件执行等技术,进一步提高处理器效率。
所以总结来说,ARM架构就是采用精简指令集计算机结构、但有自己特色,根据不同用途有不同型号的处理器架构
那么为什么高通、三星都用ARM架构呢?
有以下几点原因可供参考。
首先是授权。
众所周知,x86架构由于授权问题只有几家可以生产,包括现在的Intel、AMD,曾经的威盛。而全美达也只是生产出了基于纯软件模拟x86处理器的CPU。国内的兆芯及海光也有一定的授权限制。
除了x86外,另一套著名的指令集系统MIPS是可以授权生产的,虽然授权费用比较贵,但是其灵活性极高,所以出现了比较严重的“碎片化”。有能力设计的都在自主设计微架构、添加指令等。如国内的龙芯、索尼的PSP游戏机等。
而ARM的授权方式有多种。首先是处理器授权,这种授权方式只授权已经设计好的内核,工厂等买到后自己发挥的余地不多。如海思部分麒麟处理器就是采用这种方式。还有一种是架构/指令集授权,这种方式在微结构设计上有更多的灵活性,如苹果的vortex,三星的M3、M4、高通的Krait等。同时即使厂商在定制自己的微架构,但是在指令集上有限制,这样即使厂商修改软件层面如编译器等工具,也不需要大更改。所以出现了现在Android手机处理器多家争鸣的情况。既保证了兼容性,厂商又能充分发挥。所以高通、三星等厂商选择ARM处理器也是最好的选择。
虽然现在MIPS及IBM的Power架构也已开源,而且现在也有RISC-V这样一开始就开源且已初具规模的开源指令集及架构,但是独特的授权策略让ARM拥有了一批忠实拥趸。
其次是适用范围
虽然ARM架构在强调低功耗高性能,但是其在近几年前适用范围还是相对较窄的,一直活跃在嵌入式、手持设备等低功耗领域。合作伙伴也是多生产低功耗处理器。甚至Intel也曾经出品过基于ARM指令集的XScale处理器,Dell曾经生产过基于这个处理器的PDA(恍如隔世,很老的概念了)。而本世纪头十年最火的手机品牌诺基亚的塞班智能手机中也使用过ARM11架构的处理器。而现在高通、三星是重要的手机SoC设计生产商,所以他们选择ARM架构不仅可以迅速切入低功耗处理器市场,而且也可以借助ARM的丰富经验快速设计出强大的处理器。
最后就是乘上了移动互联网的东风
在智能手机最需要计算性能的时候提供了足够的性能,为处理器设计生产厂商提供了足够的经验。ARM公司早在2002年(距2019年已经17年了)就开发出了ARM11架构及处理器。而到了8年之后的2010年,依旧有手机使用ARM11架构处理器的手机,如曾经小编使用过的摩托罗拉ME600后空翻使用的是高通MSM7201A SoC,其CPU部分就是ARM11架构。而随后Cortex-A8早在2005年就研发完成了。所以等Android手机开始兴起时,ARM公司及其合作伙伴就已经拥有足够的经验了,而性能也符合当时Android手机的需求。现在高通的骁龙处理器及三星的Exynos处理器在Android手机界是重要的组成部分,所生产的SoC CPU部分都是采用ARM设计的内核或指令集的。
高通,三星等公司就是因为与ARM公司紧密的合作让我们拥有了现在这么强大的智能手机,所以他们算是休戚与共了。同时高通、三星在依赖ARM提供的处理器架构、指令集的同时,ARM也需要像三星、台积电等公司的支持,将还是代码的处理器内核编程实际的硅芯片。所以这并不是一个谁依赖谁的问题,而是各方通力合作的结果。
转载于知乎