嵌入式软件开发.ppt第二章 ARM体系结构
一、ARM微处理器结构
Reduced Instruction Set Computer--精简指令集计算机
Complex Instruction Set Computer--复杂指令集计算机
目标:降低由硬件执行的指令的复杂度,设计出一套能在高时钟频率下单周期执行、简单而有效的指令集。(RISC有更高复杂度的编译器,而CISC有更高复杂度的处理器)
(T变种)
Thumb指令集是将ARM指令集的一个子集重新编码而形成的一个指令集,指令长度为16位。可提高代码密度,但不能完全取代ARM指令集, Thumb指令通常和ARM指令配合使用。
ARM7系列:,数据与指令使用同一条总线,(取指—译码—执行)
ARM9系列:哈佛结构,区分了数据总线和指令总线,5级流水线(取指—译码—执行—访问—回写)
流水线技术:多个功能部件并行工作来缩短程序执行时间,提高处理器核的效率和吞吐率。
二、ARM的工作状态
:ARM微处理器执行32位的ARM指令集
1)异常中断时,需要使用ARM指令(ARM状态);
2)ARM处理器在开始执行代码时,只能处于ARM状态;
:ARM微处理器执行16位的Thumb指令集
Thumb指令集可提高代码密度,保证了性能、维持了硅片的体积、减少了功耗,但完成相同的操作Thumb指令集需要更多的指令,若系统运行时间要求严苛,应使用ARM指令。
三、ARM的寄存器组
(Current Program Status Register)
CPSR格式:
(1)CPSR中的模式位和ARM处理器的工作模式
由M4—M0这5位决定ARM处理器的7种运行模式:
一种用户模式:
用户模式(usr):ARM处理器正常的程序执行状态。
6种非用户模式或特权模式:
快速中断模式(fiq):用于高速数据传输或通道处理。
外部中断模式(irq):用于通用的中断处理。
管理模式(svc):操作系统使用的保护模式。 系统复位后ARM
进入管理模式,软件中断时也进入管理模式。
数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
系统模式(sys):运行具有特权的操作系统任务。
未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
除用户模式和系统模式以外的5种模式又称为异常模式。
(2)T控制位
ARM7和ARM9:T=0是ARM状态,T=1是Thumb状态
(3)中断禁止位I,F
I=1:禁止IRQ中断
F=1:禁止FIQ中断
要求系统更快响应,自身处理所耗时间也很短的中断设置为FIQ,否则就设置为IRQ。
(4)条件码标志位
N(negative),Z(zero),C(carry),V(overflow);
N:2个补码表示的符号数运算,1表示结果负,0为正;
Z:1表示结果为0;
C:加时1为进位,减时0为借位,移位操作时为移出值的最后一位;
V:1为溢出。
基本所有的ARM指令集的指令都是有条件执行的,都有4位的条件编码。
(Saved Program Status Register)
1)5种异常模式—5个SPSR
2)异常发生—SPSR保存CPSR的当前值—异常退出—用SPSR恢复CPSR
3)CPSR和SPSR的格式相同
1)未分组积存器R0—R7 8个
所有模式共用这8个通用寄存器
2)分组寄存器R8—R12 10个
每个寄存器对应2个不同的物理寄存器:
(1)处理器使用FIQ模式时,使用R8_fiq----R12_fiq;
(2)其他模式下使用R8_usr----R12_usr;
3)分组寄存器R13、R14 12个
(1)用户模式与系统模式共用R13_usr,R14_usr;
(2)5种异常模式各有各自的R13和R14,后缀分别为fiq,irq,svc,abt,und;
(3)R13常作为堆栈指针,也可使用其他寄存器做堆栈指针,在Thumb指令集中某些指令强制使用R13作为堆栈指针;
(4)R14作为子程序连接寄存器或连接寄存器LR,子程序调用时LR得到PC的备份,返回时用LR恢复PC。
4)程序计数器R15
ARM状态下,0和1位为0;
Thumb状态下,0位是0;
对ARM指令集,PC当前值为当前指令地址加8个字节(指向当前指令的下2条指令)
四
嵌入式软件开发 来自淘豆网m.daumloan.com转载请标明出处.