一、ARM指令集架构
指令集是处理器使用的指令编码方式,ARM 指令集的命名方式为 armv+version,目前有 armv1~armv8。
armv1-armv3 这三个版本并没有商用。
armv7 指令集是应用最为广泛的,处理器被分为 A、R、M 系列,指令集相对应地也被分为三个对等的系列,armv7-A 对应 cortex-A5~A15处理器,armv7-R 对应 cortex-R4~R7 处理器,armv7-M 对应 cortex-M3、M4 处理器。
目前 armv8 架构也逐渐盛行,其最大的特点就是 64 位的处理器,对应的主要A系列处理器有 Cortex-A53、A57、A72。
指令集的升级自然伴随着功能的升级,对于每一次指令集的升级所带来的新功能或者优化,参考下图:
二、ARM系列
ARM处理器分为 A、R、M 三个系列,分别代表三种不同的应用领域:
cortex-A 系列,指的是 Application,主要是高性能的处理器。相比于其它两种处理器,特点是增加了内存管理单元 MMU,对于运行大型的应用操作系统,MMU是必不可少的元件。
cortex-R 系列,指的是 Real-time,主要是实时性的特点。一个常见的认知误区是:实时性就是处理快。但是事实上,实时性代表的是处理时间上的确定性和低延迟,即一个操作可以在指定的短时间内完成,MMU 引入的地址转换通常不能满足其实时性的要求,所以 R 系列处理器并不挂载 MMU。
cortex-M 系列,指的是 Microcontroller,即微处理器,主打中低端市场。真实应用场景中,更多的是大型中控搭配小型嵌入式控制系统,小型嵌入式节点通常是海量的,比如智能家居、物联网等等,这一种系统的特点在于低功耗、低成本,相对的高性能,在中低端市场,性价比通常是一个主要的衡量因素。
在此之前,ARM 处理器的命名为 ARM+version,从第一代的 ARM1 到后来的 ARM11。随着市场的逐渐铺开,才分化出了 cortex-A、cortex-R、cortex-M 三个系列的命名方式,后续的处理器都就不再采用 ARM+version 的命名方式。
三、ARM IP core
ARM 是一家处理器设计厂商,并不负责芯片的生产。在官方手册中,统一以 processor 对产品进行命名,也就是处理器。但是这里的处理器指的只是 IP 核,并不是 CPU,CPU 是芯片厂商在 ARM 的 IP 核上进一步封装外设、针脚等元件的产物。
对于 armv7-A 系列的处理器而言,处理器内部包含:
- 处理器核心,有单核和多核之分,对称多核应用比较广泛,通常每个核心会包含指令、数据L1缓存,可选的浮点单元,可选的协处理器等等,处理器核心是整个处理器的关键所在,其中包含逻辑运算单元(ALU)、指令取指译码单元、内部寄存器、MMU 等等。
- 各种系统总线,处理器通过控制外设来实现应用功能,其通信方式就是通过系统总线来实现。
- 中断控制器 GIC
- L1、L2 缓存
- debug 和 trace 系统
以上内容来源于网络知识总结,如有侵权请私信联系立即删除:)