1. ARM 采用了RISC处理器设计的特征。
RISC:(reduced instrument set computer)只包含最有用的指令
CISC:(complex instrument set computer)专用的指令比较多
2.ARM体系结构的演变
通常将具有特殊功能的ARM体系结构成为他的变种:
Thump 指令集(T变种):ARM的一个子集重新编码后形成的一个特殊的16位指令集。
长乘指令(M变种):长乘指令是一种生成64位相乘结果的乘法指令。
增强型DSP指令(E变种):增加了一些增强对典型的DSP算法处理能力的附加指令。
java加速器jazelle(J变种):jazelle技术使得java代码的运行速度比普通的java虚拟机提高了8倍。
ARM媒体功能扩展(SIMD):提高了对音频和视频的处理能力。
3.Thumb 技术介绍
为了解决代码长度的问题,ARM体系结构又增加了T变种。他有从标准32位ARM指令集抽出来的36条指令格式,可重新编成16位的操作代码。在运行时这些16位的Thumb指令又由处理器解压成32位的ARM指令。
与ARM指令集相比,Thumb指令集具有以下局限:
*完成相同的操作,Thumb指令通常需要更多的一些指令,因此系统对运行时间有要求苛刻的应用场合,使用ARM指令集更为合适。
*Thumb指令没有包含进行异常处理时需要的一些指令,因此在一些异常中断时,还是使用ARM指令,这种限制决定了Thumb指令需要与ARM指令配合使用。
4.ARM工作状态
ARM壮态:32位,ARM壮态下执行字对齐的32位ARM指令。在ARM状态下pc的低两位00
Thumb壮态:16位,Thumb状态下执行半字对齐的16位Thumb指令。在Thumb状态下pc的最低位为0。在Thumb状态下,程序计数器pc使用位1选择另一个半子。
需要强调的是:
ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容。
ARM指令集和Thumb指令集都有相应的状态切换命令。
ARM处理器在开始执行代码时,只能处于ARM状态下。
只能使用ARM指令处理异常。
5.ARM处理器工作模式
CPSR:当前程序壮态寄存器 低五位[4:0]用于定义当前工作模式。
7种工作模式如下:
非特权模式:用户模式
用户模式不能访问受系统保护的资源,也不能进行模式切换。除非有异常中断发生。
特权模式:系统模式 和 异常模式(除了系统模式以外)
系统模式 : 运行特权操作系统任务
管理模式: 操作系统保护模式,处理软件中断(SWI) 系统复位
快速中断(FIQ):处理快速中断,支持高速数据传送或通道处理
中断模式(IRQ): 处理普通中断
未定义 :处理未定义的指令陷阱
终止模式:处理存储器故障,实现虚拟存储器和存储器保护。