ARM9
嵌入式处理器
ARM9系列处理器是英国ARM公司设计的主流嵌入式处理器,主要包括ARM9TDMI和ARM9E-S等系列。
基本概述
ARM9采用哈佛体系结构,指令和数据分属不同的总线,可以并行处理。在流水线上,ARM7是三级流水线,ARM9是五级流水线。由于结构不同,ARM7的执行效率低于ARM9。平时所说的ARM7、ARM9实际上指的是ARM7TDMI、ARM9TDMI软核,这种处理器软核并不带有MMU和cache,不能够运行诸如linux这样的嵌入式操作系统。而ARM公司对这种架构进行了扩展,所以有了ARM710T、ARM720T、ARM920T、ARM922T等带有MMU和cache的处理器内核。
主要特性编辑
融合了ARM920T™ ARM® Thumb® 处理器
– 工作于180 MHz时性能高达200 MIPS,存储器管理单元
– 16-K 字节的数据缓存,16-K字节的指令缓存,写缓冲器
– 含有调试信道的内部仿真器
– 中等规模的嵌入式宏单元结构( 仅针对256 BGA 封装)
· 低功耗:VDDCORE电流为30.4 mA 待机模式电流为3.1 mA
· 附加的嵌入式存储器
– SRAM为16K ;ROM为128K
· 外部总线接口(EBI)
– 支持SDRAM,静态存储器, Burst Flash,无缝连接的CompactFlash®,
SmartMedia™及NAND Flash
· 提高性能而使用的系统外设:
– 增强的时钟发生器与电源管理控制器
– 两个有双PLL的片上振荡器
– 低速的时钟操作模式与软件功耗优化能力
– 四个可编程的外部时钟信号
– 包括周期性中断、看门狗及第二计数器的系统定时器
– 有报警中断的实时时钟
– 调试单元、两线UART并支持调试信道
– 有8 个优先级的高级中断控制器,独立的可屏蔽中断源,伪中断保护
– 7个外部中断源及1 个快速中断源
– 有122个可编程I/O口线的四个32 位PIO控制器,各线均有输入变化中断及开漏能力
– 20通道的外设数据控制器(DMA)
· 10/100 Base-T 型以太网卡接口
– 独立的媒体接口(MII)或简化的独立媒体接口(RMII)
– 对于接收与发送有集成的28 字节FIFO及专用的DMA 通道
· USB 2.0 全速(12 M比特/秒) 主机双端口
– 双片上收发器(208引脚PQFP封装中仅为一个)
– 集成的FIFO及专用的DMA 通道
· USB 2.0 全速(12 M比特/秒) 器件端口
– 片上收发器, 2-K字节可配置的集成FIFO
· 多媒体卡接口(MCI)
– 自动协议控制及快速自动数据传输
– 与MMC及SD存储器卡兼容,支持两个SD存储器
· 3个同步串行控制器(SSC)
– 每个接收器与发送器有独立的时钟及帧同步信号
– 支持I2S模拟接口,时分复用
– 32比特的高速数据流传输能力
· 4个通用同步/异步接收/发送器(USART)
– 支持ISO7816 T0/T1 智能卡
– 硬软件握手
– 支持RS485 及高达115 Kbps的IrDA 总线
– USART1为全调制解调控制线
· 主机/从机串行外设接口(SPI)
– 8~ 16 位可编程数据长度,可连接4个外设
· 两个 3 通道16 位定时/计数器(TC)
– 3个外部时钟输入,每条通道有2 个多功能I/O引脚
– 双PWM 产生器,捕获/波形模式,上加/下减计数能力
· 两线接口(TWI)
– 主机模式支持,所有两线Atmel EEPROM 支持
· 所有数字引脚的IEEE 1149.1 JTAG边界扫描
· 电源供应
– VDDCORE,VDDOSC及VDDPLL电压为:1.65V ~1.95V
– VDDIOP (外设I/O) 及VDDIOM (存储器I/O)电压为:1.65V~ 3.6V
体系特点
结构特点
以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体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。大端格式中字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中
以大端格式存储数据
以小端格式存储数据
优势
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的运行速度跑这种大型操作系统,实在有点吃力。再者两者的应用领域明显不同,也无此必要。
指令
⒈loads 指令与n stores指令
指令周期数的改进最明显的是loads指令和stores指令。从ARM7到ARM9这两条指令的执行时间减少了30%。指令周期的减少是由于ARM7和ARM9两种处理器内的两个基本的微处理结构不同所造成的。
⑴ARM9有独立的指令和数据存储器接口,允许处理器同时进行取指和读写数据。这叫作改进型哈佛结构。而ARM7只有数据存储器接口,它同时用来取指令和数据访问。
⑵5级流水线引入了独立的存储器和写回流水线,分别用来访问存储器和将结果写回寄存器
以上两点实现了一个周期完成loads指令和stores指令。
⒉互锁(interlocks)技术
当指令需要的数据因为以前的指令没有执行完而没有准备好就会产生管道互锁。当管道互锁发生时,硬件会停止这个指令的执行,直到数据准备好为止。虽然这种技术会增加代码执行时间,但是为初期的设计者提供了巨大的方便。编译器以及汇编程序员可以通过重新设计代码的顺序或者其他方法来减少管道互锁的数量。
⒊分枝指令
ARM9和ARM7的分枝指令周期是相同的。而且ARM9TDMI和ARM9E-S并没有对分枝指令进行预测处理。
处理能力
新一代的ARM9处理器,通过全新的设计,采用了更多的晶体管,能够达到两倍以上于ARM7处理器的处理能力。这种处理能力的提高是通过增加时钟频率和减少指令执行周期实现的。
(一) 时钟频率的提高:
ARM7处理器采用3级流水线,而ARM9采用5级流水线。增加的流水线设计提高了时钟频率并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在同样的加工工艺下,ARM9TDMI处理器的时钟频率是ARM7TDMI的1.8~2.2倍。
(二) 指令周期的改进:
指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。
典型应用
基于arm9内核的处理器,是具有低功耗,高效率的开发平台。广泛用于各种嵌入式产品。它主要应用于音频技术以及高档工业级产品,可以跑linux以及wince等高级嵌入式系统,可以进行界面设计,做出人性化的人机互动界面,像一些网络产品和手机产品。
最新修订时间:2024-07-03 19:17
目录
概述
基本概述
主要特性编辑
参考资料