原文

一、ARM是什么?

  • ARM既可以认为是一个公司的名字 ,也可以认为是对一类处理器的统称 ,还可以认为是一种技术的名字

  • ARM公司是专门从事基于RISC技术芯片设计开发 的公司,作为知识产权供应商,本身不直接从事芯片生产,而是转让设计许可 ,由合作公司生产各具特色的芯片。

  • ARM处理器的内核是统一的 ,由ARM公司提供,而片内部件则是多样的 ,由各大半导体公司设计,这使得ARM设计嵌入式系统的时候,可以基于同样的核心,使用不同的片内外设 ,从而具有很大的优势。

二、ARM内核与架构

任何一款arm芯片主要由两大部分组成:arm内核外设

ARM内核

arm内核: arm内核主要由:寄存器指令集总线存储器映射规则中断逻辑调试组件 等。

内核是由ARM公司设计并以销售方式授权给个芯片厂商使用的(ARM公司本身不做芯片)。比如为高速度设计的Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是处理器(就是内核)后者是指令集的架构(也简称架构)。

外设: 包括计时器、A/D转换器、存储器、I2C、UART、SPI、ROM等等。
由各个芯片厂商自己设计并与ARM内核衔接配套。不同的芯片厂商就有不同的外设,因此构成了数量和规格庞大的ARM芯片产业。

arm指令集架构

指令集的设计是处理器结构中最重要的部分,用arm的术语称之为ISA(Instruction Set Architecture)。

指令集可以说是cpu设计的灵魂,是打开CPU这个潘多拉魔盒的咒语,要想使用cpu,我们只能通过这些指令来操作cpu。

对于32位的cpu,这些指令就是一个个32位的01的序列,不同的值就代表了不同的机器指令 ,cpu的硬件能完美的解析并执行这些指令,比如寻址、运算、异常处理等等。

当我们用手机玩着王者荣耀的时候,要知道我们的每发的一招,其实最终都是被翻译成了一系列机器指令。

从1985年ARMv1架构诞生起,到2011年,ARM架构已经发展到了第八代ARMv8。

Cortex-A32/35/53/57/72/73/77/78采用的都是ARMv8 架构,这是ARM公司的首款支持64位指令集的处理器架构
什么是ARM?_arm开发板(分别是什么意思)-冯金伟博客园什么是ARM?_arm开发板(分别是什么意思)-冯金伟博客园

ARM11之前的处理器和指令集架构

ARM11芯片之前,每一个芯片对应的架构关系如下:
什么是ARM?_arm开发板(分别是什么意思)-冯金伟博客园什么是ARM?_arm开发板(分别是什么意思)-冯金伟博客园

ARM11之后处理器和指令集架构

ARM11芯片之后,也就是从ARMv7架构 开始,ARM的命名方式有所改变。

新的处理器家族,改以Cortex命名,并分为三个系列,分别是Cortex-A,Cortex-R,Cortex-M。
什么是ARM?_arm开发板(分别是什么意思)-冯金伟博客园什么是ARM?_arm开发板(分别是什么意思)-冯金伟博客园

ARM处理器型号

Cortex-A系列(A:Application 应用)

针对日益增长的消费娱乐和无线产品设计,用于具有高计算要求、运行丰富操作系统及提供交互媒体和图形体验的应用领域 ,如智能手机、平板电脑、汽车娱乐系统、数字电视,智能本、电子阅读器、家用网络、家用网关和其他各种产品。

Cortex-R系列 (R:Real-time 实时)

针对需要运行实时操作 的系统应用,面向如汽车制动系统动力传动解决方案大容量存储控制器 等深层嵌入式实时应用。

Cortex-SC系列(SC:SecurCore)

其实,除了上述三大系列之外,还有一个主打安全的Cortex-SC系列(SC:SecurCore),主要用于政府安全芯片

什么是ARM?_arm开发板(分别是什么意思)-冯金伟博客园什么是ARM?_arm开发板(分别是什么意思)-冯金伟博客园
ARM11系列包括了ARM11MPCore处理器、ARM1176处理器、ARM1156处理器、ARM1136处理器,它们是基于ARMv6架构。

ARM Cortex-A5处理器、Cortex-A7处理器、Cortex-A8处理器、Cortex-A9处理器、Cortex-A15处理器隶属于Cortex-A系列,基于ARMv7-A架构。

Cortex-A53、Cortex-A57两款处理器属于Cortex-A50系列,首次采用64位ARMv8架构。

2020年ARM最近发布了一款全新的CPU架构Cortex-A78,是基于ARMv8.2指令集。

三、什么是SOC?

SoC的全称叫做:System-on-a-Chip ,中文的的意思就是“把系统都做在一个芯片上 ”。

SoC上集成了很多手机上最关键的部件 ,比如CPUGPU内存 、也就说虽然它在主板上的存在是一个芯片,但是它里边可是由很多部件封装组成的。

比如通常我们所说的高通801,麒麟950.三星的exynos 4412,A6等等都只是系统部件打包封装(SoC)后的总称。然而各家的打包封装的内容则不尽相同,原因也不尽相同。

什么是ARM?_arm开发板(分别是什么意思)-冯金伟博客园什么是ARM?_arm开发板(分别是什么意思)-冯金伟博客园
经典的ARM系统级芯片或所谓的Soc 包含许多组件,其中只有一些直接源自ARM。
首先,核心本身通常深度嵌入在设备内部,在设备范畴内通常不直接可见,而调试端口通常是唯一和核心本身相连的外露部分,有一些粘合逻辑,如时钟和复位集成电路。

由于 ARM 核心只有两个中断输入,最常见的外设就是某种中断控制器,在外设内部,各组件通过芯片上互联总线架构相互连接,对于极大多数基于ARM的设备而言,这就是标准的 AMBA 互联。

AMBA 指定了两个总线,称为AXI的高性能系统总线 ,和称为APB的低功耗外设总线APB通常用于连接所有外设,AXI则用于存储器和其他发高速设备 ,大多数设备都有一定数量的芯片上存储以及连接外设存储器设备的接口,但是注意,与设备的外部连接并不是AMBA总线,这仅在设备内部使用,并不外露。

四、举例:Exynos 4412 SCP

下面我们以 三星的Exynos(猎户座) 4412 SCP为例,来讲解这几个概念。

  • 三星的Exynos 4412 SCP 是一款基于Cortex-A9的SOC;

  • 如下图所示,Exynos 4412包含了4个Cortex-A9的处理器(核);

  • Cortex-A9是基于ARMv7-A架构(指令集)的。
    什么是ARM?_arm开发板(分别是什么意思)-冯金伟博客园什么是ARM?_arm开发板(分别是什么意思)-冯金伟博客园

由上图可知,exynos 4412除了包含4个Cortex-A9核,
还包括大量的外设控制器:DRAM Controller、SROM Controller、Camera IF、JPEG、GPS/GLONASS、Power Management、USB Host、I2C、UART、SPI等。

和三星相同的其他和arm合作的各大厂商通常会把它的CPU和各类外围IP都放到一起,然后自己拿着图纸去流片,生产出来的也是一个正方形,下面有很多引脚,这个东西不仅包含了CPU,还包含了其他的控制器,这个东西就叫做SOC(system on chip)。

如下图所示,就是三星最终生产的Exynos 4412 ,当然了,光有这个soc还无法运行安卓,还需要借助外围大量的外设才能最终形成一个完整的系统,但是大部分最复杂的硬件部分模块都已经集成到了这个soc中。

什么是ARM?_arm开发板(分别是什么意思)-冯金伟博客园什么是ARM?_arm开发板(分别是什么意思)-冯金伟博客园

五、总结

下面我们总结下这些概念:

  1. ARM公司的名字 ,叫ARM:Advanced RISC Machines;
  2. ARM前身Acorn公司设计的第一款微处理器,叫ARM:Acorn RISC Machine;
  3. ARM处理器名字 :以前叫ARM9、ARM11, 新的命名规则改以Cortex命名,分别是Cortex-A,Cortex-R,Cortex-M;这三个字母A、R、M合到一起又是ARM。
  4. ARM指令集 ,就是ARM架构,比如ARMv8,每个处理器都需要依赖一定的ARM架构来设计;
  5. **SOC:**各大厂商买来ARM的授权,得到ARM处理器的源代码,而后自己搞一些外围设备的IP(或者买或者自己设计),组成一个SOC,比如三星的Exynos 4412,华为的麒麟990。