版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ARM9体系结构
嵌入式处理器嵌入式处理器概述早期的嵌入式系统通常使用普通个人计算机中的通用处理器近年来,随着大量先进的微处理器制造技术的发展,越来越多的嵌入式系统用嵌入式处理器建造,而不是用通用目的的处理器。这些嵌入式处理器可以大致分为以下几类:注重嵌入式处理器的尺寸、能耗和价格。应用于PDA等不注重计算的设备;注重嵌入式处理器的性能。应用于路由器等计算密集型的设备;注重嵌入式处理器的性能、尺寸、能耗和价格。应用于蜂窝电话等设备;嵌入式处理器概述嵌入式微处理器是嵌入式系统的核心。目前32位嵌入式微处理器是市场的主流。
32位嵌入式微处理器市场,我们可以发现超过100家的芯片供应商和近30种指令体系结构。在1996年以前,最成功的嵌入式微处理器是Motorola公司的68000系列。此外还包括其它体系结构,如Intel公司的I960,Motorola公司的Coldfire,Sun公司的Sparc,以及嵌入式X86系列平台。当然,最引人注目的还是ARM公司的ARM系列、MIPS公司的MIPS系列,以及Hitachi公司的SuperH系列ARM处理器的使用量ARM的应用无处不在ARM公司简介
英文全称:AdvancedRISCMachines
国家:英国(欧洲)行业:电子半导体微处理器智能手机
总部:英国剑桥
CEO:沃伦.伊斯特竞争对手:英特尔
市场份额:手机处理器90%的市场份额上网本处理器30%的市场份额平板电脑处理器80%的市场份额
ARM产品ARM系列处理器已经被广泛的应用于移动电话、手持式计算机以及各种各样的嵌入式应用领域,成为世界上销量最大的32位微处理器。据最新统计,全球有103家巨型IT公司在采用ARM技术,20家最大的半导体厂商中有19家是ARM的用户,包括德州仪器,意法半导体,Philips,Intel等。ARM支持OS类型
Linux、WinCE、iOS、Symbian2011年1月10日微软公司宣布,下一版Windows将正式支持ARM处理器,即Windows8支持ARM。这是计算机工业发展历史上的一件大事,标识着x86处理器的主导地位发生动摇。ARM处理器的3大特点如下:小体积、低功耗、成本低、高性能;16位/32位双指令集;全球众多的合作伙伴。当前ARM体系结构的扩充包括:Thumb:16位指令集,用以改善代码密度;DSP:用于DSP应用的算术运算指令集;Jazeller:允许直接执行Java代码的扩充。ARM处理器系列提供的解决方案包括:在无线、消费电子和图像应用方面的开放平台;存储、自动化、工业和网络应用的嵌入式实时系统;智能卡和SIM卡的安全应用。ARM处理器的特点
ARM7系列ARM7采用冯·诺依曼(Von-Neumann)结构,数据存储器和程序存储器使用同一存储空间,用相同的指令访问。此结构也被大多数计算机所采用。ARM7为三级流水线结构(取指,译码,执行),平均功耗为0.6mW/MHz,时钟速度为66MHz,每条指令平均执行1.9个时钟周期。ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义为(对其它系列也适用):
T:支持16为压缩指令集Thumb,称为T变种
D:支持片上Debug,称为D变种
M:内嵌硬件乘法器Multiplier,称为M变种
I:嵌入式ICE,支持片上断点和调试,称为I变种ARM处理器系列ARM7系列产品项目型号Cache(Ins/Data)MemoryMgtBusThumbDSPJazelle指令版本ARM7TDMINoNoAHBYesNoNov4TARM7TDMI-SNoNoAHBYesNoNov4TARM720T8KBMMUAHBYesNoNov4TARM7EJNoNoAHBYesYesYesv5TEJARM9系列ARM7采用的Neumann结构,取指令和取操作数都是通过一条总线分时进行,这样,在高速运算时,不但不能同时取指令和取操作数,而且还会造成传输通道上的瓶颈现象。ARM9采用哈佛(Harvard)结构,程序存储器与数据存储器分开,提供了较大的存储器带宽。同时,大多数DSP都采用此结构。ARM9为五级流水(取指,译码,执行,缓冲/数据,回写),平均功耗为0.7mW/MHz。时钟速度为120MHz-200MHz,每条指令平均执行1.5个时钟周期。ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,主要应用在手持产品、视频电话、PDA、数字消费产品、机顶盒、家用网关等方面。ARM9系列产品项目型号Cache(Ins/Data)MemoryMgtBusThumbDSPJazelle指令版本ARM920T16KB/16KBMMUASBYesNoNov4TARM922T8KB/8KBMMUASBYesNoNov4TARM940T4KB/4KBMMUASBYesNoNov4TARM9E系列ARM9E系列微处理器包括如下4种类型的核:ARM926EJ-S、ARM946E-S和ARM966E-S,见表2-3。ARM9E系列是一种包含有微控制器、DSP、Java功能的综合处理器,强化了数字信号处理能力,适用于需要DSP和微控制器结合使用的情况,并且把Thumb技术和DSP都扩展到了ARM指令中,并且具有EmbededICE-RT逻辑,更好地适应了实时系统开发的需要。同时ARM9E使用了Jazelle增强技术,该技术支持一种新的Java操作状态,在硬件中执行Java字节码。ARM9E系列产品项目型号Cache(Ins/Data)MemoryMgtBusThumbDSPJazelle指令版本ARM926EJ-S可变MMU2*AHBYesYesYesv5TEJARM946E-S可变MPUAHBYesYesNov5TEARM966E-S无--AHBYesYesNov5TEARM968E-S无DMAAHBYesYesNov5TEARM10系列
ARM10系列微处理器包括:ARM1020E和ARM1022E等型号,见表2-4。
ARM10系列采用了新的体系结构,其核心为使用了向量浮点单元,有强大的浮点运算能力,并且增加了Cache容量和总线宽度,并且具有低功耗的特点。ARM10系列微处理器主要应用于下一代无线设备、视频消费品等。ARM10系列产品项目型号Cache(Ins/Data)MemoryMgtBusThumbDSPJazelle指令版本ARM1020E32KB/32KBMMU2*AHBYesYesNov5TEARM1022E16KB/16KBMMU2*AHBYesYesNov5TEARM1022E可变MPUMMU2*AHBYesYesYesv5TEJARMStrong/Xscale系列
StrongARM是采用ARM体系结构高度集成的32位RISC微处理器。它融合了Intel公司的设计技术,以及ARM体系结构的电源效率,其体系结构在软件上兼容ARMv4,同时又具有Intel技术优点。
StrongARM是Intel公司为手持消费类电子和移动计算与通信设备生产的嵌入式处理器。采用StrongARM架构的处理器有:SA-1、SA-110、SA-1100、SA1110和IXP1200。
Xscale是基于ARMv5体系结构的解决方案,是一款性能全、性价比高、功耗低的处理器,支持16位的Thumb和DSP指令集,主要应用于数字移动电话、个人数字助理和网络产品等。Xscale架构的处理器有:PXA250、PXA255和PXA270等。
ARM核体系结构ARM1V1ARM2V2ARM2aS,ARM3V2aARM6,ARM600,ARM610V3ARM7,ARM700,ARM710V3ARM7TDMI,ARM710T,ARM720TARM740TV4TStrongARM,ARM8,ARM810V4ARM9TDMI,ARM920T,ARM940TV4TARM9E-SV5TEARM10TDMI,ARM1020EV5TEARM11,ARM1156T2-S,ARM1156T2F-S,ARM1176JZ-S,ARM11JZF-SV6西安电子科技大学电子对抗研究所ARM流水线结构的发展预取(Fetch)译码(Decode)执行(Execute)预取(Fetch)译码(Decode)执行(Execute)访存(Memory)写入(Write)预取(Fetch)译码(Decode)发送(Issue)预取(Fetch)预取(Fetch)执行(Execute)访存(Memory)写入(Write)译码(Decode)发送(Issue)执行(Execute)转换(Snny)访存(Memory)写入(Write)ARM7ARM9ARM10ARM1121ARM9TDMI流水线的变化InstructionFetch
Shift+ALUMemoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARMorThumb
InstDecodeRegSelectRegReadShiftALURegWriteThumb®ARM
decompressARMdecodeInstructionFetchFETCHDECODEEXECUTEARM7TDMI5级流水线的ARM9内核是哈佛架构,拥有独立的指令和数据总线;指令和数据的读取可以在同一周期进行;3级流水的ARM7内核是指令和数据总线复用的冯.诺依曼架构,指令和数据的读取不能在同一周期进行;5级流水线设计把寄存器读取、逻辑运算、结果回写分散在不同的流水当中,每一级流水的操作简洁,提升了处理器的主频。ARM体系结构简介
具有片上总线AMBA
ARM处理器内核可以通过AMBA来扩展不同体系架构的宏单元及I/O部件。AMBA已成为事实上的片上总线OCB(OnChipBus)标准,它有以下三类AHB(先进高性能总线):不但支持突发方式的数据传送,还支持分离式总线事务处理,以进一步提高总线的利用效率。特别在高性能的ARM架构系统中,AHB有逐步取代ASB的趋势,例如在ARM1020E处理器核中。ASB(先进系统总线):是目前ARM常用的系统总线,用来连接高性能系统模块,支持突发(Burst)方式数据传送。APB(先进外围总线):为外围宏单元提供了简单的接口,也可以把APB看作ASB的余部。●采用存储器映像I/O的方式,即把I/O端口地址作为特殊的存储器地址;●具有协处理器接口。ARM允许接16个协处理器,如CP15用于系统控制,CP14用于调试控制器;●采用了降低电源电压,可工作在3.0V以下;减少门的翻转次数,当某个功能电路不需要时禁止门翻转;减少门的数目,即降低芯片的集成度;降低时钟频率等一些措施降低功耗;●体积小、低成本、高性能西安电子科技大学电子对抗研究所ARM9体系结构系列微处理器:包含ARM920T、ARM922T和ARM940T几种类型,可以在高性能和低功耗特性方面提供最佳的性能。采用5级整数流水线(取指、译码、执行、访存、回写)。提供1.1MIPS/MHz的哈佛结构。支持数据Cache和指令Cache,具有更高的指令和数据处理能力。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA总线接口。全性能的MMU。支持WindowsCE、Linux、PalmOS、UCOSII等多种主流嵌入式操作系统。MPU(内存保护单元)支持实时操作系统。ARM920T处理器核在ARM9TDMI处理器内核基础上,增加了分离式的指令Cache和数据Cache,并带有相应的存储器管理单元I-MMU和D-MMU、写缓冲器及AMBA接口等,如图2.2.3所示。
ARM体系结构简介图2.2.3ARM920T内核结构
ARM体系结构简介ARM940T处理器核采用了ARM9TDMI处理器内核,是ARM920T处理器核的简化版本,没有存储器管理单元MMU,不支持虚拟存储器寻址,而是用存储器保护单元MPU来提供存储保护和Cache控制。ARM9系列微处理器主要应用于无线通信设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。典型产品如Samsung公司的S3C2410A。
ARM微处理器的寄存器结构
ARM微处理器支持7种运行模式,分别为:usr(用户模式):ARM处理器正常程序执行模式。fiq(快速中断模式):用于高速数据传输或通道处理irq(外部中断模式):用于通用的中断处理svc(管理模式):操作系统使用的保护模式abt(数据访问终止模式):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。sys(系统模式):运行具有特权的操作系统任务。und(未定义指令中止模式):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
注:ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。
大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。ARM微处理器的寄存器结构
除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(PrivilegedModes); 其中除去用户模式和系统模式以外的5种又称为异常模式(ExceptionModes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。ARM处理器在每一种处理器模式下均有一组相应的寄存器与之对应。即在任意一种处理器模式下,可访问的寄存器包括15个通用寄存器(R0~R14)、一至二个状态寄存器和程序计数器。在所有的寄存器中,有些是在7种处理器模式下共用的同一个物理寄存器,而有些寄存器则是在不同的处理器模式下有不同的物理寄存器。ARM微处理器的寄存器结构处理器工作状态:ARM处理器有32位ARM和16位Thumb两种工作状态。在32位ARM状态下执行字对齐的ARM指令,在16位Thumb状态下执行半字对齐的Thumb指令。在Thumb状态下,程序计数器PC(ProgramCounter)使用位[1]选择另一个半字。ARM处理器在两种工作状态之间可以切换,切换不影响处理器的模式或寄存器的内容。(1)当操作数寄存器的状态位(位[0])为1时,执行BX指令进入Thumb状态。如果处理器在Thumb状态进入异常,则当异常处理(IRQ、FIQ、Undef、Abort和SWI)返回时,自动转换到Thumb状态。(2)当操作数寄存器的状态位(位[0])为0时,执行BX指令进入ARM状态。处理器进行异常处理(IRQ、FIQ、Reset、Undef、Abort和SWI时,把PC放入异常模式链接寄存器中。从异常向量地址开始执行也可以进入ARM状态。ARM微处理器的寄存器结构 ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄器包括:
31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。
6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。ARM处理器的37个寄存器被安排成部分重叠的组,不能在任何模式都可以使用,寄存器的使用与处理器状态和工作模式有关。如下图2.3.1所示,每种处理器模式使用不同的寄存器组。其中15个通用寄存器(R0~R14)、1或2个状态寄存器和程序计数器是通用的。2.3ARM微处理器的寄存器结构
运行模式
工作状态
寄存器组织
Thumb状态的寄存器集
ARM微处理器的寄存器结构1.通用寄存器(R0~R15)可分成:不分组寄存器R0~R7、分组寄存器R8~R14和程序计数器R15三类。(1)不分组寄存器R0~R7:不分组寄存器R0~R7是真正的通用寄存器,可以工作在所有的处理器模式下,没有隐含的特殊用途。(2)分组寄存器R8~R14:分组寄存器R8~R14取决于当前的处理器模式,每种模式有专用的分组寄存器用于快速异常处理。 寄存器R8~Rl2可分为两组物理寄存器: 一组用于FIQ模式:访问R8_fiq~R12_fiq,允许快速中断处理。 另一组用于除FIQ以外的其他模式:访问R8_usr~R12_usr,寄存器R8~R12没有任何指定的特殊用途。 寄存器R13~R14可分为6个分组的物理寄存器。1个用于用户模式和系统模式,而其他5个分别用于svc、abt、und、irq和fiq五种异常模式。访问时需要指定它们的模式,如:R13_<mode>,R14_<mode>;其中:<mode>可以从usr、svc、abt、und、irq和fiq六种模式中选取一个。ARM微处理器的寄存器结构
寄存器R13通常用作堆栈指针,称作SP。每种异常模式都有自己的分组R13。通常R13应当被初始化成指向异常模式分配的堆栈。在入口处,异常处理程序将用到的其他寄存器的值保存到堆栈中;返回时,重新将这些值加载到寄存器。这种异常处理方法保证了异常出现后不会导致执行程序的状态不可靠。
寄存器R14用作子程序链接寄存器,也称为链接寄存器LR(LinkRegister)。当执行带链接分支(BL)指令时,得到R15的备份。在其他情况下,将R14当做通用寄存器。类似地,当中断或异常出现时,或当中断或异常程序执行BL指令时,相应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值。
FIQ模式有7个分组的寄存器R8~R14,映射为R8_fiq~R14_fiq。在ARM状态下,许多FIQ处理没必要保存任何寄存器。User、IRQ、Supervisor、Abort和Undefined模式每一种都包含两个分组的寄存器R13和R14的映射,允许每种模式都有自己的堆栈和链接寄存器。ARM微处理器的寄存器结构(3)程序计数器R15:用作程序计数器(PC)。在ARM状态,位[1:0]为0,位[31:2]保存PC。在Thumb状态,位[0]为0,位[31:1]保存PC。R15虽然也可用作通用寄存器,但一般不这么使用,因为对R15的使用有一些特殊的限制,当违反了这些限制时,程序的执行结果是未知的。 ①读程序计数器。指令读出的R15的值是指令地址加上8字节。由于ARM指令始终是字对齐的,所以读出结果值的位[1:0]总是0(在Thumb状态下,情况有所变化)。读PC主要用于快速地对临近的指令和数据进行位置无关寻址,包括程序中的位置无关转移。 ②写程序计数器。写R15的通常结果是将写到R15中的值作为指令地址,并以此地址发生转移。由于ARM指令要求字对齐,通常希望写到R15中值的位[1:0]=0b00。 由于ARM体系结构采用了多级流水线技术,对于ARM指令集而言,PC总是指向当前指令的下两条指令的地址,即PC的值为当前指令的地址值加8字节。ARM微处理器的寄存器结构2.程序状态寄存器 寄存器R16用作程序状态寄存器CPSR(CurrentProgramStatusRegister,当前程序状态寄存器)。在所有处理器模式下都可以访问CPSR。CPSR包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。每种异常模式都有一个程序状态保存寄存器SPSR(SavedProgramStatusRegister)。当异常出现SPSR用于保留CPSR的状态。CPSR和SPSR的格式如下:(1)条件码标志N、Z、C、V(Negative、Zero、Carry、Overflow)均为条件码标志位(ConditionCodeFlags),它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。CPSR中的条件码标志可由大多数指令检测以决定指令是否执行。在ARM状态下,绝大多数的指令都是有条件执行的。在Thumb状态下,仅有分支指令是有条件执行的。通常条件码标志通过执行比较指令(CMN、CMP、TEQ、TST)、一些算术运算、逻辑运算和传送指令进行修改。ARM微处理器的寄存器结构2.程序状态寄存器(1)条件码标志条件码标志的通常含义如下:●N:如果结果是带符号二进制补码,那么,若结果为负数,则N=1;若结果为正数或0,则N=0。●Z:若指令的结果为0,则置1(通常表示比较的结果为“相等”),否则置0。●C:可用如下4种方法之一设置:一-加法(包括比较指令CMN)。若加法产生进位(即无符号溢出),则C置1;否则置0。一-减法(包括比较指令CMP)。若减法产生借位(即无符号溢出),则C置0;否则置1。一-对于结合移位操作的非加法/减法指令,C置为移出值的最后1位。一-对于其他非加法/减法指令,C通常不改变。●V:可用如下两种方法设置,即一-对于加法或减法指令,当发生带符号溢出时,V置1,认为操作数和结果是补码形式的带符号整数。一-对于非加法/减法指令,V通常不改变。ARM微处理器的寄存器结构
2.程序状态寄存器(1)条件码标志(2)控制位
程序状态寄存器CPSR(ProgramStatusRegister)的最低8位I、F、T和M[4:0]用作控制位。当异常出现时改变控制位。处理器在特权模式下时也可由软件改变。a.中断禁止位
I:置1,则禁止IRQ中断;
F:置1,则禁止FIQ中断。b.T位
T=0指示ARM执行;
T=1指示Thumb执行。c.模式控制位
M4、M3、M2、Ml和M0(M[4:0])是模式位,决定处理器的工作模式,如下表2.3.1所列。并非所有的模式位组合都能定义一种有效的处理器模式。其他组合的结果不可预知。(3)其他位
程序状态寄存器的其他位保留,用做以后的扩展。ARM微处理器的寄存器结构M[4:0]处理器工作模式可访问的寄存器10000用户模式PC,CPSR,R14~R010001FIQ模式PC,R7~R0,CPSR,SPSR_fiq,R14_fiq~R8_fiq10010IRQ模式PC,R12~R0,CPSR,SPSR_irq,R14_irq,R13_irq10011管理模式PC,R12~R0,CPSR,SPSR_svc,R14_svc,R13_svc10111中止模式PC,R12~R0,CPSR,SPSR_abt,R14_abt,R13_abt11011未定义模式PC,R12~R0,CPSR,SPSR_und,R14_und,R13_und11111系统模式PC,R14~R0,CPSR(ARMv4及以上版本)ARM微处理器的寄存器结构Thumb状态的寄存器集:如下图所示,是ARM状态下的寄存器集的子集。程序员可以直接访问8个通用寄存器(R0~R7)、PC、SP、LR和CPSR。每种特权模式都有一组SP、LR和SPSR。图2.3.2Thumb状态下寄存器组织ARM微处理器的寄存器结构ARM微处理器的寄存器结构]●Thumb状态R0~R7与ARM状态R0~R7是一致的。●Thumb状态CPSR和SPSR与ARM的状态CPSR和SPSR是一致的。●Thumb状态SP映射到ARM状态R13。●Thumb状态LR映射到ARM状态R14。●Thumb状态PC映射到ARM状态PC(R15)。
在Thumb状态下,寄存器R8~R15(高寄存器)并不是标准寄存器集的一部分。汇编语言编程者访问它虽有限制,但可以将其用做快速暂存存储器,将R0~R7(Lo-registers,低寄存器)中的值传送到R8~R15(Hi-registers,高寄存器)。2.3ARM微处理器的异常处理
在一个正常的程序流程执行过程中,由内部或外部源产生的一个事件使正常的程序产生暂时的停止时,称之为异常。异常是由内部或外部源产生并引起处理器处理一个事件,例如一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,当异常处理完成之后,恢复保留的当前处理器状态,继续执行当前程序。多个异常同时发生时,处理器将会按固定的优先级进行处理。
ARM体系结构中的异常,与单片机的中断有相似之处,但异常与中断的概念并不完全等同,例如外部中断或试图执行未定义指令都会引起异常。ARM体系结构的异常类型:ARM体系结构支持7种类型的异常。 异常类型、异常处理模式和优先级如下表2.4.1所示。异常出现后,强制从异常类型对应的固定存储器地址开始执行程序。这些固定的地址称为异常向量(ExceptionVectors)。ARM微处理器的异常处理异常类型异常进入模式地址(异常向量)优先级复位复位管理模式0x0000,00001(最高)未定义指令未定义指令未定义模式0x0000,00046(最低)软件中断软件中断管理模式0x0000,00086(最低)指令预取中止中止(预取指令)中止模式0x0000,000C5数据中止中止(数据)中止模式0x0000,00102IRQ(外部中断请求)IRQIRQ0x0000,00184FIQ(快速中断请求)FIQFIQ0x0000,001C3ARM体系结构的异常类型和异常处理模式注:可在1C处存放FIQ服务程序,以提高执行速度2.3ARM微处理器的异常处理异常类型的含义:(1)复位:当处理器的复位电平有效时,产生复位异常,ARM处理器立刻停止执行当前指令。复位后,ARM处理器在禁止中断的管理模式下,程序跳转到复位异常处理程序处执行(从地址0x00000000或0xFFFF0000开始执行指令)。(2)未定义指令异常:当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。当ARM处理器执行协处理器指令时,它必须等待任一外部协处理器应答后,才能真正执行这条指令。若协处理器没有响应,就会出现未定义指令异常。若试图执行未定义的指令,也会出现未定义指令异常。未定义指令异常可用于在没有物理协处理器(硬件)的系统上,对协处理器进行软件仿真,或在软件仿真时进行指令扩展。(3)软件中断异常(SoftWareInterrupt,SWI):软件中断异常由执行SWI指令产生,可使用该异常机制实现系统功能调用,用于用户模式下的程序调用特权操作指令,以请求特定的管理(操作系统)函数。ARM微处理器的异常处理异常类型的含义:(4)指令预取中止:若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出存储器中止(Abort)信号,但当预取的指令被执行时,才会产生指令预取中止异常。(5)数据中止(数据访问存储器中止):若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。存储器系统发出存储器中止信号。响应数据访问(加载或存储)激活中止,标记数据为无效。在后面的任何指令或异常改变CPU状态之前,数据中止异常发生。(6)外部中断请求(IRQ)异常:当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。系统的外设可通过该异常请求中断服务。IRQ异常的优先级比FIQ异常的低。当进入FIQ处理时,会屏蔽掉IRQ异常。(7)快速中断请求(FIQ)异常:当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常。FIQ支持数据传送和通道处理,并有足够的私有寄存器。ARM微处理器的异常处理异常名称对应模式正常向量高地址向量复位管理(svc)0x000000000xFFFF0000未定义指令未定义(und)0x000000040xFFFF0004软件中断(SWI)管理(svc)0x000000080xFFFF0008指令预取中止(取指令存储器中止)中止(abt)0x0000000C0xFFFF000C数据中止中止(abt)0x000000100xFFFF0010IRQ(中断)IRQ(irq)0x000000180xFFFF0018FIQ(快速中断)FIQ(fiq)0x0000001C0xFFFF001CARM9的异常处理模式ARM9的运行模式(用户模式、系统模式)ARM微处理器的异常处理当一个异常出现以后,ARM微处理器会执行以下几步操作:①将下一条指令的地址存入相应连接寄存器LR(R14),以便程序在处理异常返回时能从正确的位置重新开始执行。若异常是从ARM状态进入,LR寄存器中保存的是下一条指令的地址(当前PC+4或PC+8,与异常的类型有关);若异常是从Thumb状态进入,则在LR寄存器中保存当前PC的偏移量。②将CPSR状态传送到相应的SPSR中。③根据异常类型,强制设置CPSR的运行模式位。④强制PC从相关的异常向量地址取下一条指令执行,跳转到相应的异常处理程序。还可以设置中断禁止位,以禁止中断发生。
注:如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。2.3ARM微处理器的异常处理异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:①将连接寄存器LR的值减去相应的偏移量后送到PC中。P35第1条指令:PC–8 0x8000 ;发生异常第2条指令:PC–4 0x8004 ;程序返回的位置(调整LR为PC–4)第3条指令:PC 0x8008 ;当前PC(LR)
PC 0x800C ;当前PC(LR)例: 返回指令
SWI: MOVSPC,LR;R14_svc,pc当前指令的下两条
IRQ: SUBSPC,R14_irq,#4;,pc当前指令的下三条②将SPSR内容送回CPSR中。③若在进入异常处理时设置了中断禁止位,要在此清除。
可以认为应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要返回。ARM微处理器的异常处理应用程序中的异常处理:
在应用程序的设计中,异常处理采用的方式是在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序。
当ARM处理器发生异常时,程序计数器PC会被强制设置为对应的异常向量,从而跳转到异常处理程序,当异常处理完成以后,返回到主程序继续执行。2.4ARM的存储器结构1.地址空间:ARM体系结构使用232个字节的单一、线性地址空间。将字节地址做为无符号数看待,范围为0~232-1(4G)。注: 1)目的地址越界时,PC复位为0x00000000 2)程序顺序执行:
ARM状态:PC寄存器的值=当前执行指令地址+8 Thumb状态:PC寄存器的值=当前执行指令地址+4 3)分支ARM:目的地址=PC+偏移量2.存储器格式:字或半字的地址由其低地址表示对于字对齐的地址A,地址空间规则要求如下:●地址位于A的字由地址为A、A+1、A+2和A+3的字节组成;●地址位于A的半字由地址为A和A+1的字节组成;●地址位于A+2的半字由地址为A+2和A+3的字节组成;●地址位于A的字由地址为A和A+2的半字组成。
ARM存储系统可以使用小端存储或者大端存储两种方法,大端存储和小端存储格式如图2.5.1所示。2.4ARM的存储器结构图2.5.1大端存储和小端存储格式字或半字的对齐:例半字地址均是偶地址,字地址均是4的倍数ARM的存储器结构3.ARM存储器结构:ARM处理器有的带有指令Cache和数据Cache,但不带有片内RAM和片内ROM。系统所需的RAM和ROM(包括Flash)都通过总线外接。由于系统的地址范围较大(232=4GB),有的片内还带有存储器管理单元MMU(MemoryManagementUnit)。4.存储器映射I/O:存储器和I/O统一编址。I/O口使用特定的存储器地址,当从这些地址加载(用于输入)或向这些地址存储(用于输出)时,完成I/O功能。加载和存储也可用于执行控制功能,代替或者附加到正常的输入或输出功能S3C2410A简介S3C2410A:是Samsung公司推出的16/32位RISC处理器,主要面向高性价比、低功耗的手持设备应用。S3C2410有S3C2410X和S3C2410A两个型号,A型是X型的改进型,具有更好的性能和更低的功耗。S3C2410A内部结构:在片上集成了单独的16KB指令Cache和16KB数据Cache、用于虚拟存储器管理的MMU、支持STN和TFT的LCD控制器、NANDFlashBootLoader、系统管理器(片选逻辑和SDRAM控制器)、3通道UART、4通道DMA、4通道PWM定时器、I/O口、RTC、8通道10位ADC和触摸屏接口、I2C总线接口、I2S总线接口、USB主设备、USB从设备、SD主卡和MMC(MultiMediaCard,多媒体卡)卡接口、2通道的SPI(SerialPeripheralInterface,串行外围设备接口)以及PLL时钟发生器。S3C2410A的CPU内核采用的是16/32位ARM920T内核,同时还采用了AMBA(AdvancedMicrocontrollerBusArchitecture,先进的微控制器总线体系结构)新型总线结构。
S3C2410A内部结构方框图S3C2410A集成的片上功能包括:●内核电压1.8V/2.0V,存储器电压3.3V,外部I/O电压3.3V;●具有16KB的I-Cache和16KB的D-Cache以及MMU;●外部存储器控制器(SDRAM控制和片选逻辑);●LCD控制器(最大支持4K彩色STN和256K彩色TFT)提供1通道LCD专用DMA;●4通道DMA并有外部请求引脚端;●3通道UART(IrDAl.0,16字节TxFIFO和16字节RxFIFO)/2通道SPI;●1通道多主设I2C总线和1通道I2S总线控制器;S3C2410A简介
●版本1.0SD主接口和2.11兼容版MMC卡协议;●2个USB主设接口/1个USB从设接口(版本1.1);●4通道PWM定时器和1通道内部定时器;●看门狗定时器;●117位通用I/O口和24通道外部中断源;●电源控制模式有正常、慢速、空闲和电源关断4种模式;●8通道10位ADC和触摸屏接口;●具有日历功能的RTC;●使用PLL的片上时钟发生器。西安电子科技大学电子对抗研究所S3C2410A具有如下特点:1.体系结构●采用ARM920TCPU内核,具有16/32位RISC体系结构和强大的指令集,为手持设备和通用嵌入式应用提供片上集成系统解决方案;●增强的ARM体系结构MMU,支持WinCE、EPOC32和Linux;●使用指令Cache、数据Cache、写缓冲器和物理地址TAGRAM减少主存储器带宽和反应时间对性能的影响;●ARM920TCPU内核支持ARM调试体系结构;●内部采用先进的微控制器总线体系结构(AMBA)S3C2410A简介
2.系统管理器●支持小/大端存储方式。●地址空间:每bank128MB(byte)(总共1GB)。●每个bank支持可编程的8/16/32位数据总线宽度。●bank0~bank6都采用固定的bank起始地址。●bank7具有可编程的bank起始地址和大小。●8个存储器bank:一6个用于ROM、SRAM及其他;一2个用于ROM、SRAM和同步DRAM。●所有的存储器bank都具有可编程的访问周期。●支持使用外部等待信号来填充总线周期。●支持掉电时的SDRAM自刷新模式。●支持各种类型的ROM启动(booting),包括NOR/NANDFlash和EEPROM等。S3C2410A简介
3.NANDFlashBootLoader(启动装载)●支持从NANDFlash存储器的启动。●采用4KB内部缓冲器用于启动引导。●支持启动之后NAND存储器仍然作为外部存储器使用。
4.Cache存储器●I-Cache(16KB)和D-Cache(16KB)为64路组相联Cache。●每行8字长度,其中每行带有一个有效位和两个脏位(dirtybits)。●采用伪随机数或循环替换算法。●采用写直达(Write-through)或写回(Write-back)Cache操作来更新主存储器。●写缓冲器可以保存16个字的数据值和4个地址值。2.5S3C2410A简介
5.中断控制器●55个中断源(1个看门狗定时器、5个定时器、9个UART、24个外部中断、4个DMA、2个RTC、2个ADC、1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国釉质粘结剂数据监测研究报告
- 2025至2030年中国压力钢管数据监测研究报告
- 2025年中国驱动器壳市场调查研究报告
- 2025年中国单轴研磨机市场调查研究报告
- 2025年中国五彩镀锌空调支架市场调查研究报告
- 2025年度出差安全风险评估与事故预防合作协议4篇
- 二零二五年度车辆租赁合同交通违规处理及费用分担补充协议4篇
- 二零二五年度购车合同电子版查询与车辆交易服务协议
- 二零二五年度车险人伤赔偿理赔责任界定协议
- 二零二五年度运动会赞助服务协议书
- 2024公路沥青路面结构内部状况三维探地雷达快速检测规程
- 浙江省台州市2021-2022学年高一上学期期末质量评估政治试题 含解析
- 2024年高考真题-地理(河北卷) 含答案
- 中国高血压防治指南(2024年修订版)解读课件
- 2024年浙江省中考科学试卷
- 2024风力发电叶片维保作业技术规范
- 《思想道德与法治》课程教学大纲
- 2024光储充一体化系统解决方案
- 2024年全国高考新课标卷物理真题(含答案)
- 处理后事授权委托书
- 食材配送服务方案投标方案(技术方案)
评论
0/150
提交评论