ARM 处理器介绍

更新时间:
2024-01-09
下载文档

ARM 处理器介绍

ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对 ARM 内核微处理器的通称,还可以认为是一种技术的名字。

简介

1991 年 ARM 公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用 ARM 技术知识产权(IP)核的微处理器(即通常所说的 ARM 处理器),已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于 ARM 技术的微处理器应用约占据了 32 位 RISC 微处理器 75%以上的市场份额,ARM 技术正在逐步渗入到日常生活的各个方面。

ARM 处理器可以根据使用内核的不同划分到各个系列中。这些系列的划分基于 ARM7、ARM9、ARM10、ARM11 内核(后缀数字 7、9、10、11 表示不同的内核设计)。数字升序说明性能和复杂度的提高。在每个系列中,存储器管理、Cache 和 TCM 处理器扩展也有多种变化。

特点

  • 体积小、低功耗、低成本、高性能。
  • 支持 Thumb(16 位)/ARM(32 位)双指令集,能很好地兼容 8 位 /16 位器件。
  • 大量使用寄存器,指令执行速度快。
  • 大多数数据操作都在寄存器中完成。
  • 寻址方式灵活简单,执行效率高。
  • 指令长度固定。

工作模式

ARM 处理器共有 7 种工作模式。

工作模式说明
用户模式(User)用于执行正常程序
系统模式(System)运行具有特权的操作系统任务
一般中断模式(Irq)用于通常的中断处理
快速中断模式(Fiq)用于快速中断处理
管理模式(Supervisor)操作系统使用的保护模式
终止模式(Abort)当数据或指令预取终止时进入该模式
未定义模式(Undefined)当未定义的指令执行时进入该模式

特权模式

除用户模式外,其他模式均为特权模式(Privileged Modes)。ARM 内部寄存器和一些片内外设在硬件设计上只允许在特权模式下访问。此外,特权模式可以自由地切换处理器模式,而用户模式不能直接切换到其他模式。

异常模式

特权模式中除了系统模式(System)之外的其他 5 种模式又统称为异常模式。它们除了可以通过在特权下的程序切换进入外,也可以由特定的异常进入,比如硬件产生中断信号进入中断异常模式,读取没有权限数据进入终止异常模式,执行未定义指令时进入未定义指令终止异常模式。其中管理模式也称为超级用户模式,是为操作系统提供软中断的特有模式,正是由于有了软中断,用户程序才可以通过系统调用切换到管理模式。

寄存器组织

ARM 处理器共有 37 个 32 位寄存器,其中包括 31 个通用寄存器和 6 个状态寄存器。这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决微处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器 R0~R14、程序计数器 PC、一个或两个状态寄存器都是可访问的。

通用寄存器

通用寄存器包括 R0~R15,可以分为三类。

  • 未分组寄存器 R0~R7
  • 分组寄存器 R8~R14
  • 程序计数器 PC(R15)

在所有的运行模式下,未分组寄存器都指向同一个物理寄存器,他们未被系统用作特殊的用途,因此在中断或异常处理进行运行模式转换时,可能会造成寄存器中数据的破坏。

R8~R12 寄存器分别对应两个不同的物理寄存器,当在 fiq 模式时访问寄存器 R8_fiq~R12_fiq,当在其他模式时,访问寄存器 R8_usr~R12_usr。

R13、R14 寄存器分别对应 6 个不同的物理寄存器,其中的一个物理寄存器由用户模式和系统模式共用,另外 5 个物理寄存器对应于其他 5 种不同的运行模式,采用 R13_mode、R14_mode 形式来区分不同的物理寄存器(mode 为:USR、FIQ、IRQ、SVC、ABT、UND)。

R13 在 ARM 指令中常用作栈指针,但这只是一种习惯用法,用户也可使用其他的寄存器作为栈指针。由于处理器的每种运行模式均有自己独立的物理寄存器 R13,因此在初始化部分,需要初始化对应模式下的 R13,这样,当程序的运行进入异常模式时,可以将需要保护的寄存器放入 R13 所指向的栈,而当程序从异常模式返回时,则从对应的栈中恢复。

R14 也称作子程序连接寄存器或连接寄存器 LR,当执行 BL 子程序调用指令时,可以从 R14 中得到 R15(程序计数器 PC)的备份,在每一种运行模式下,都可以用 R14 保存子程序的返回地址。

寄存器 R15 称作程序计数器(PC),R15 虽然也可用作通用寄存器,但通常不这样使用因为对 R15 的使用有一些特殊的限制,如果违反了这些限制,程序的执行结果是未知的。

状态寄存器

状态寄存器包括当前程序状态寄存器 CPSR 和备份程序状态寄存器 SPSR。CPSR 可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器的模式标志位,以及其他一些相关的控制和状态位。每一种异常模式下都有一个专用的物理状态寄存器 SPSR,当异常发生时,SPSR 用于保存 CPSR 的当前值,从异常退出时则可由 SPSR 来恢复 CPSR。由于用户模式和系统模式不属于异常模式,所以它们没有 SPSR,在这两种模式下访问 SPSR,结果是未知的。

指令结构

ARM 微处理器在较新的体系结构中支持两种指令集:ARM 指令集和 Thumb 指令集,其中 ARM 指令长度是 32 位,并且执行周期大多为单周期,指令都是有条件执行的;Thumb 指令可以看作是 ARM 指令集压缩形式的子集,其具有 16 位的代码密度,但执行效率低于 ARM 指令,Thumb 指令具有以下特点:

  • 指令执行条件经常不会使用。
  • 源寄存器与目标寄存器经常是相同的。
  • 使用的寄存器数量比较少。
  • 常数的值比较小。
  • 内核中的桶式移位器(Barrel Shifter)经常是不使用的。
文档内容是否对您有所帮助?
有帮助
没帮助