ARM架构是什么?为什么高通三星都依赖他?-冯金伟博客园

  近十年的移动互联网发展,让智能手机大规模普及,也带火了一个曾经并不为人广泛知道的公司——ARM。这家成立于英国剑桥的芯片设计公司在 1985 年研发出了精简指令集架构处理器,名为 Acorn RISC Machine,而简称就是著名的 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 架构呢?

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 也需要像三星、台积电等公司的支持,将还是代码的处理器内核编程实际的硅芯片。所以这并不是一个谁依赖谁的问题,而是各方通力合作的结果。