ARM微处理器的体系结构
扫描二维码
随时随地手机看文章
这里概述的都是一些传统意义上ARM处理器的一些方面,提醒自己看了之后会想起相关知识,或是对ARM有一个总体上的概念,其实都是些简述性的总结,很多都来自网上资料或教学课件,贴在这里,方便以后随时随地的复习!
ARM微处理器包括ARM7、ARM9、ARM9E、ARM10E、SecurCore、以及Intel的StrongARM、XScale和其它厂商基于ARM体系结构的处理器,除了具有ARM体系结构的共同特点以外,每一个系列的ARM微处理器都有各自的特点和应用领域。
一、总的来说ARM处理器的一些特点:1、采用RISC架构的ARM微处理器一般具有如下特点:支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件。Thumb指令集比通常的8位和16位CISC/RISC处理器具有更好的代码密度;
●指令执行采用3级流水线/5级流水线技术;
●带有指令Cache和数据Cache,大量使用寄存器,指令执行速度更快。大多数数据操作都在寄存器中完成。寻址方式灵活简单,执行效率高。指令长度固定(在ARM状态下是32位,在Thumb状态下是16位);
●支持大端格式和小端格式两种方法存储字数据;
●支持Byte(字节,8位)、Halfword(半字,16位)和Word(字,32位)三种数据类型。
●支持用户、快中断、中断、管理、中止、系统和未定义等7种处理器模式,除了用户模式外,其余的均为特权模式;
●处理器芯片上都嵌入了在线仿真ICE-RT逻辑,便于通过JTAG来仿真调试ARM体系结构芯片,可以避免使用昂贵的在线仿真器。另外,在处理器核中还可以嵌入跟踪宏单元ETM,用于监控内部总线,实时跟踪指令和数据的执行;
●具有片上总线AMBA(Advanced Micro-controller Bus Architecture)。AMBA定义了3组总线:先进高性能总线AHB(Advanced High performance Bus);先进系统总线ASB(Advanced System Bus);先进外围总线APB(Advanced Peripheral Bus)。通过AMBA可以方便地扩充各种处理器及I/O,可以把DSP、其他处理器和I/O(如UART、定时器和接口等)都集成在一块芯片中;
●采用存储器映像I/O的方式,即把I/O端口地址作为特殊的存储器地址;
●具有协处理器接口。ARM允许接16个协处理器,如CP15用于系统控制,CP14用于调试控制器;
●采用了降低电源电压,可工作在3.0V以下;减少门的翻转次数,当某个功能电路不需要时禁止门翻转;减少门的数目,即降低芯片的集成度;降低时钟频率等一些措施降低功耗;
●体积小、低成本、高性能。
2、一个典型的ARM体系结构:包含有32位ALU、31个32位通用寄存器及6位状态寄存器、32×8位乘法器、32×32位桶形移位寄存器、指令译码及控制逻辑、指令流水线和数据/地址寄存器等。
1).ALU
ARM体系结构的ALU与常用的ALU逻辑结构基本相同,由两个操作数锁存器、加法器、逻辑功能、结果及零检测逻辑构成。ALU的最小数据通路周期包含寄存器读时间、移位器延迟、ALU延迟、寄存器写建立时间、双相时钟间非重叠时间等几部分。
2).桶形移位寄存器
ARM采用了32×32位桶形移位寄存器,左移/右移n位、环移n位和算术右移n位等都可以一次完成,可以有效的减少移位的延迟时间。在桶形移位寄存器中,所有的输入端通过交叉开关(Crossbar)与所有的输出端相连。交叉开关采用NMOS晶体管来实现。
3).高速乘法器
ARM为了提高运算速度,采用两位乘法的方法,2位乘法可根据乘数的2位来实现“加-移位”运算。ARM的高速乘法器采用32×8位的结构,完成32×2位乘法也只需5个时钟周期。
4).浮点部件
在ARM体系结构中,浮点部件作为选件可根据需要选用,FPA10浮点加速器以协处理器方式与ARM相连,并通过协处理器指令的解释来执行。
浮点的Load/Store指令使用频度要达到67%,故FPA10内部也采用Load/Store结构,有8个80位浮点寄存器组,指令执行也采用流水线结构。
5).控制器
ARM的控制器采用硬接线的可编程逻辑阵列PLA,其输入端有14根、输出端有40根,分散控制Load/Store多路、乘法器、协处理器以及地址、寄存器ALU和移位器。
6).寄存器
ARM内含37个寄存器,包括31个通用32位寄存器和6个状态寄存器。
3、ARM7系列微处理器:包括ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ几种类型。其中,ARM7TDMI是目前使用最广泛的32位嵌入式RISC处理器,主频最高可达130MIPS,采用能够提供0.9MIPS/MHz的三级流水线结构,内嵌硬件乘法器(Multiplier),支持16为压缩指令集Thumb,嵌入式ICE,支持片上Debug,支持片上断点和调试点。指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,支持Windows CE、Linux、Palm OS等操作系统。典型产品如Samsung公司的S< xmlnamespace prefix ="st1" ns ="urn:schemas-microsoft-com:office:smarttags" />3C4510B。
ARM7TDMI处理器内核:
nARM7TDMI还提供了存储器接口、MMU接口、协处理器接口和调试接口,以及时钟与总线等控制信号,如图2.2.2所示。
n存储器接口包括了32位地址A[31:0]、双向32位数据总线D[31:0]、单向32位数据总线DIN[31:0]与DOUT[31:0]、以及存储器访问请求MREQ、地址顺序SEQ、存储器访问控制MAS[1:0和数据锁存控制BL[3:0]等控制信号。
nARM7TDMI处理器内核也可以ARM7TDMI-S软核(Softcore)形式向用户提供。同时,提供多种组合选择,例如可以省去嵌入式ICE单元等。
n2.ARM720T/ARM740T处理器内核
nARM720T处理器内核是在ARM7TDMI处理器内核基础上,增加8KB的数据与指令Cache,支持段式和页式存储的MMU(Memory Management Unit)、写缓冲器及AMBA(Advanced Microcontroller Bus Architecture)接口而构成,如图2.2.3所示。
nARM740T处理器内核与ARM720T处理器内核相比,结构基本相同,ARM740T处理器核没有存储器管理单元MMU,不支持虚拟存储器寻址,而是用存储器保护单元来提供基本保护和Cache的控制。合适低价格低功耗的嵌入式应用。
4、ARM9微处理器ARM9系列微处理器包含ARM920T、ARM922T和ARM940T几种类型,可以在高性能和低功耗特性方面提供最佳的性能。采用5级整数流水线,指令执行效率更高。提供1.1MIPS/MHz的哈佛结构。支持数据Cache和指令Cache,具有更高的指令和数据处理能力。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA总线接口。全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。MPU支持实时操作系统。
ARM920T处理器核在ARM9TDMI处理器内核基础上,增加了分离式的指令Cache和数据Cache,并带有相应的存储器管理单元I-MMU和D-MMU、写缓冲器及AMBA接口等。
ARM9系列微处理器主要应用于无线通信设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。典型产品如Samsung公司的S3C2410A。
二、ARM体系结构的五个方面:ARM的体系结构或处理器结构主要体现在:ARM微处理器的寄存器结构、异常处理、存储器结构、指令系统、接口等方面。
1、寄存器结构:ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄器包括:
●31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。
●6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。
(1)处理器运行模式:ARM微处理器支持7种运行模式,分别为:
●usr(用户模式):ARM处理器正常程序执行模式。
●fiq(快速中断模式):用于高速数据传输或通道处理
●irq(外部中断模式):用于通用的中断处理
●svc(管理模式):操作系统使用的保护模式
●abt (数据访问终止模式):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
●sys(系统模式):运行具有特权的操作系统任务。
●und(未定义指令中止模式):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。
大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。
除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(Privileged Modes);其中除去用户模式和系统模式以外的5种又称为异常模式(Exception Modes),常用于处理中断或异常,以及需要访问受