• 体积小、低功耗、低成本、高性能
  • 支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件

       ARM微处理器支持2种指令集:ARM指令集和Thumb指令集。其中,ARM指令为32位的长度,Thumb指令位16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。

  • 大量使用寄存器,指令执行速度更快

       ARM处理器共有37个寄存器,被分为若干个组(BANK),如下。

——  31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。

——  6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位。

        ARM体系结构中各寄存器的使用方式可以归纳如表所示

寄存器

使用方式程序计数器PC(r15)所有运行状态都可以使用通用寄存器r0 ~ r7所有运行状态都可以使用通用寄存器r8 ~ r12除去快速中断以外的状态都可以使用当前程序状态寄存器CPSR所有运行状态都可以使用保存程序状态寄存器SPSR除去用户状态以外的6种运行状态,分别都有自己的SPSR堆栈指针SP(r13)和链接寄存器lr(r14)所有的运行状态都有自己的SP和lr

  • 大多数数据操作都在寄存器中完成
  • 寻址方式灵活简单,执行效率高
  • 指令长度固定

       为了保证ARM处理器具有高性能的同时,进一步减少芯片的体积和功耗,ARM处理器采用了以下一些比较特别的技术。

  • 所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率
  • 可用加载/存储指令批量传输数据,以提高数据的传输效率
  • 可在一条数据处理指令中同时完成逻辑处理和位移处理
  • 在循环处理中使用地址的自动增减来提高运行效率

       ARM处理器有以下7种运行模式

  • 用户模式(user):ARM处理器正常的程序执行状态
  • 快速中断模式(fiq):用于高速数据传输或通道处理
  • 外部中断模式(irq):用于通常的中断处理
  • 管理模式(svc):操作系统使用的保护模式
  • 数据访问中止模式(abt):当数据或指令预取中止时进入该模式,可用于虚拟存储及存储保护
  • 系统模式(sys):运行具有特权的操作系统任务
  • 未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真

       ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理运行在用户模式下时,某些被保护的系统资源是不能被访问的。除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(Privileged Modes);其中除去用户模式和系统模式以外的5种又称为异常模式(Exception Modes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。