ARM9的体系特点
结构特点
以ARM9E-S为例介绍ARM9处理器的主要结构及其特点。ARM9E-S的结构如图4所示。其主要特点如下:
⑴32bit定点RISC处理器,改进型ARM/Thumb代码交织,增强性乘法器设计。支持实时(real-time)调试;
⑵片内指令和数据SRAM,而且指令和数据的存储器容量可调;
⑶片内指令和数据高速缓冲器(cache)容量从4K字节到1M字节;
⑷设置保护单元(protection unit),非常适合嵌入式应用中对存储器进行分段和保护;
⑸采用AMBA AHB总线接口,为外设提供统一的地址和数据总线;
⑹支持外部协处理器,指令和数据总线有简单的握手信令支持;
⑺支持标准基本逻辑单元扫描测试方法学,而且支持BIST(built-in-self-test);
⑻支持嵌入式跟踪宏单元,支持实时跟踪指令和数据。
ARM920T运行模式
ARM920T支持7种运行模式,分别为:
(1)用户模式(usr),
ARM处理器正常的程序执行状态;
(2)快速中断模式 (fiq),
用于高速数据传输或通道处理;
(3)外部中断模式(irq),
用于通用的中断处理;
(4)管理模式(svc),
操作系统使用的保护模式;
(5)数据访问终止模式(abt),
当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护;
(6)系统模式(sys),
运行具有特权的操作系统任务;
(7)未定义指令中止模式(und)
当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。除用户模式以外,其余的6种模式称为特权模式;其中除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及访问受保护的系统资源等情况。
ARM920T的工作状态
从编程的角度看,ARM920T微处理器的工作状态一般有两种:
(1)ARM状态,此时处理器执行32位的、字对齐的ARM指令;
(2)Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。
ARM指令集和Thumb指令集均有切换处理器状态的指令,在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器的工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM
状态。
当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从
ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),当异常处理返回时,自动切换回Thumb状态。当操作数寄存器的状态位为0时,执行BX指令可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,将PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。
ARM920T体系结构的存储器格式
ARM920T体系结构将存储器看做是从零地址开始的字节的线性组合。从0字节到3字节放置第1个存储的字数据,从第4个字节到第7个字节放置第2个存储的字数据,依次排列。作为32位的微处理器,ARM92OT体系结构所支持的最大寻址空间为4GB。
ARM92OT体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。大端格式中字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中
以大端格式存储数据
以小端格式存储数据