Arm9
词条创建时间:2021-06-25浏览次数:1556
ARM9系列处理器是英国ARM公司设计的主流嵌入式处理器,主要包括ARM9TDMI和ARM9E-S等系列。在2.5G和3G的应用中ARM9已经全面替代了ARM7。在高性能和低功耗特性方面提供最佳的性能.
Arm9介绍
ARM9采用哈佛体系结构,指令和数据分属不同的总线,可以并行处理。在流水线上,ARM7是三级流水线,ARM9是五级流水线。由于结构不同,ARM7的执行效率低于ARM9。平时所说的ARM7、ARM9实际上指的是ARM7TDMI、ARM9TDMI软核,这种处理器软核并不带有MMU和cache,不能够运行诸如linux这样的嵌入式操作系统。而ARM公司对这种架构进行了扩展,所以有了ARM710T、ARM720T、ARM920T、ARM922T等带有MMU和cache的处理器内核。
Arm9特点
提供 1.1MIPS/MHz 的哈佛结构.
支持 32 位 ARM 指令集和 16 位 Thumb 指令集.
支持 32 位的高速 AMBA 总线接口.
全性能的 MMU,支持 Windows CE,Linux,Palm OS 等多种主流嵌入式操作系统.
MPU 支持实时操作系统.
支持数据 Cache 和指令 Cache, 具有更高的指令和数据处理能力. 大小都为 16K.
Arm9优势
1)时钟频率的提高
虽然ARM7和ARM9内核架构相同,但ARM7处理器采用3级流水线的冯·诺伊曼结构;,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在常用的芯片生产工艺下,ARM7一般运行在100MHz左右,而ARM9则至少在200MHz以上。
2)指令周期的改进
指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。
3)MMU(内存管理单元)
ARM7一般没有MMU(内存管理单元),(ARM720T有MMU)。
ARM9一般是有MMU的,ARM9940T只有MPU ,不是一个完整的MMU。
这一条很重要,MMU单元是大型操作系统必需的硬件支持,如LINUX;WINCE等。这就是说,ARM7一般只能运行小型的实时系统如UCOS-II,eCOS等,而ARM9无此限制,一般的操作系统都可以移植。其实即使ARM720T能支持LINUX;WINCE等系统,也鲜有人用,因为以ARM7的运行速度跑这种大型操作系统,实在有点吃力。再者两者的应用领域明显不同,也无此必要。
Arm9运行模式
ARM微处理器支持7种运行模式:
--用户模式(usr)
--快速中断模式(fiq)
--外部中断模式(irq)
--管理模式(svc)
--数据访问中止模式(abt)
--系统模式(sys)
--未定义指令中止模式(und)
ARM体系结构所支持的异常类型
复位、未定义指令、软件中断、指令预取中止、数据中止、IRQ(外部中断请求)、FIQ(快速中断请求)。
对中断的响应:
1、将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重 新开始执行。若异常是从ARM状态进入,LR寄存器中保存的是下一条指令的地址(当前PC+4或PC+8,与异常的类型有关);若异常是从Thumb状态 进入,则在LR中保存当前PC的偏移量。
2、将CPSR复制到相应的SPSR。
3、根据异常的类型,强制转换CPSR的运行模式位。
4、强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。
各类异常的具体描述:
FIQ异常是为了支持数据传输或者通道处理而设计的。
IRQ属于正常的中断请求。
ABORT意味着对存储器的访问失败
Arm9启动过程
1、Bootloader的启动:其一般要实现的功能如下:
(1)初始化CPU速度、存储器、存储器配置寄存器以及串口等;
(2)激活指令/数据Cache、建立堆栈指针、建立启动参数区、构造参数结构和标识列表;
(3)通过上电自检,来识别存在哪些设备,并报告异常,提供对电源管理中休眠/恢复的支持;
(4)跳转到内核起始处,系统启动。
Arm9微处理器结构
RISC体系结构:RISC结构优先选取使用频最高的简单指令,避免复杂指令
1、RISC体系结构应具有如下特点:
- 采用固定长度的指令格式,指令归整、简单、基本寻址方式有2~3种。
- 使用单周期指令,便于流水线操作执行。
- 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/ 存储指令可以访问存储器,以提高指令的执行效率。
除此以外,ARM体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗:
- 所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。
- 可用加载/存储指令批量传输数据,以提高数据的传输效率。
- 可在一条数据处理指令中同时完成逻辑处理和移位处理。
- 在循环处理中使用地址的自动增减来提高运行效率。
2、ARM微处理器的寄存器结构
ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括:
- 31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。
- 6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。
同时,ARM处理器又有7种不同的处理器模式,在每一种处理器模式下均有一组相应的寄存器与 之对应。即在任意一种处理器模式下,可访问的寄存器包括15个通用寄存器(R0~R14)、一至二个状态寄存器和程序计数器。在所有的寄存器中,有些是在 7种处理器模式下共用的同一个物理寄存器,而有些寄存器则是在不同的处理器模式下有不同的物理寄存器。
3、ARM微处理器的指令结构
ARM微处理器的在较新的体系结构中支持两种指令集:ARM指令集和Thumb指令集。其 中,ARM指令为32位的长度,Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30% ~40%以上的存储空间,同时具备32位代码的所有优点。
Arm9处理能力
新一代的ARM9处理器,通过全新的设计,采用了更多的晶体管,能够达到两倍以上于ARM7处理器的处理能力。这种处理能力的提高是通过增加时钟频率和减少指令执行周期实现的。
(一) 时钟频率的提高:
ARM7处理器采用3级流水线,而ARM9采用5级流水线。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在同样的加工工艺下,ARM9TDMI处理器的时钟频率是ARM7TDMI的1.8~2.2倍。
(二) 指令周期的改进:
指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。
Arm9典型应用
基于Arm9内核的处理器,是具有低功耗,高效率的开发平台。广泛用于各种嵌入式产品。它主要应用于音频技术以及高档工业级产品,可以跑linux以及wince等高级嵌入式系统,可以进行界面设计,做出人性化的人机互动界面,像一些网络产品和手机产品。