ARM体系结构简介

1. 体系结构

体系结构向软件开发人员提供了指令集和工作流程,也叫编程模型。体系结构是功能性的说明,是硬件与软件的桥梁,描述了软件依靠硬件能提供什么样的功能。体系结构包括几个部分。

指令集

  • 每条指令的功能
  • 指令在存储器中如何存放(指令的编码)

寄存器

  • 寄存器数量
  • 寄存器大小
  • 寄存器功能
  • 初始状态

异常模型

  • 不同的特权级别
  • 异常的类型
  • 异常触发和返回发生了什么

存储模型

  • 存储器如何按序访问
  • Cache如何工作,软件什么时候需要进行维护

调试、跟踪和分析

  • 断点如何设置和触发
  • 跟踪工具捕获的信息和格式

2. ARM体系结构的发展

ARM体系结构简介

ARMv8-A是64位的体系结构,但是仍然支持32位,向后兼容(例如支持v7,v6,和v5)。

3. 微体系结构

体系结构是不描述处理器是如何构建和工作的。微体系结构描述了处理器的设计和构建。微体系结构包括几个部分。

  • 流水线长度和布局
  • Cache数量和大小
  • 特殊指令的周期数
  • 实现了哪些可选的特性

例如,Cortex-A53和Cortex-A72有相同的体系结构ARMv8-A,但是它们却有非常不同的微体系结构。软件运行在Cortex-A53和Cortex-A72上是无需修改的。

4. ARM当前体系结构的配置

ARM体系结构目前有三种配置。

  • A-Profile (Application), 高性能,为复杂操作系统而设计,如Linux和Windows。
  • R-Profile (Real-Time),面向有实时性需求的系统,常用于网络设备和嵌入式控制系统。
  • M-profile (Microcontroller),低功耗,体积小,常用于嵌入式设备。

(ARM Cortex是ARM处理器IP的商标名。)

5. ARM其他组件

除了处理器外,ARM还有很多其他组件,一起组成现代SoC。下图是一个例子。

ARM体系结构简介Generic Interrupt Controller

GIC是和ARMv7-A/R和ARMv8-A/R一起使用的标准的中断控制器。

System Memory Management Unit

SMMU/IOMMU向非处理器的master提供转换服务。

Generic Timer

Generic Timer向系统中所有处理器提供公共的参考系统计数。实际上就是计数器的功能,像操作系统中调度器的tick。Generic Timer是ARM体系结构的一部分,但是System Counter却是一个系统的组件。

Server Base System Architecture (SBSA)和Trusted Base System Architecture (TBSA)

向SoC开发人员提供系统设计的指导。

Advanced Microcontroller Bus Architecture (AMBA)

AMBA family总线协议控制ARM系统中的组件是怎样连接的,以及这些连接上的协议。

6. ARM的文档

我需要查阅哪些ARM的文档?以Cortex-A75为例,Cortex-A75实现了ARMv8.2-A,GICv4 CPU接口和AMBA总线接口。其相关文档如下。

ARM体系结构简介

参考

https://developer.arm.com/architectures/learn-the-architecture/introducing-the-arm-architecture