您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 三嵌入式微处理器体系结构.
1嵌入式系统第三讲ARM嵌入式微处理器体系结构2本节提要132546ARM简介ARM体系结构概览ARMJTAG调试接口ARM编程模型ARM指令集S3C44B0开发平台简介3ARM简介ARM——AdvancedRISCMachinesARM——32位RISC结构IP核提供商4ARM微处理器的应用领域工业控制领域无线通讯领域网络应用消费电子产品成像和安全产品5ARM微处理器系列ARM7系列ARM9系列ARM9E系列ARM10E系列SecurCore系列Inter的XscaleInter的StrongARM6ARM微处理器的选型ARM内核的选择系统的工作频率片内存储器的容量片内外围电路的选择7本节提要132546ARM简介ARM体系结构概览ARMJTAG调试接口ARM编程模型ARM指令集S3C44B0开发平台简介8ARM即AdvancedRISCMachines的缩写。1985年4月26日,第一个ARM原型在英国剑桥的Acorn计算机有限公司诞生,由美国加州SanJoseVLSI技术公司制造。20世纪80年代后期,ARM很快开发成Acorn的台式机产品,形成英国的计算机教育基础。1990年成立了AdvancedRISCMachinesLimited。20世纪90年代,ARM32位嵌人式RISC(ReducedInstructionSetComputer)处理器扩展到世界范围,占据了低功耗、低成本和高性能的嵌入式系统应用领域的领先地位。32位RISC处理器受到青睐,领先的是ARM嵌入式微处理器系列。ARM公司虽然只成立10多年,但在1999年因移动电话火爆市场,其32位RISC处理器占市场份额超过了50%,2001年初,ARM公司的32位RISC处理器市场占有率超过了75%。ARM公司是知识产权供应商,是设计公司。由合作伙伴公司来生产各具特色的芯片。ARM的发展历程-19ARM公司商业模式的强大之处在于其价格合理,全世界范围有超过100个合作伙伴--包括半导体工业的著名公司。ARM公司专注于设计,其内核耗电少、成本低、功能强,特有16/32位双指令集。ARM已成为移动通信、手持计算、多媒体数字消费等嵌入式解决方案的RISC标准。在所有ARM处理器系列中,ARM7处理器系列应用最广,采用ARM7处理器作为内核生产芯片的公司最多。10ARM的发展历程-21991-ARM推出第一款RISC嵌入式微处理器核ARM61993-ARM推出ARM7核1995–ARM的Thumb扩展指令集结构为16位系统增加了32位的性能,提供业界领先的代码密度11ARM处理器的3大特点如下:小体积、低功耗、成本低、高性能;16位/32位双指令集;全球众多的合作伙伴。当前ARM体系结构的扩充包括:Thumb:16位指令集,用以改善代码密度;DSP:用于DSP应用的算术运算指令集;Jazeller:允许直接执行Java代码的扩充。ARM处理器系列提供的解决方案包括:在无线、消费电子和图像应用方面的开放平台;存储、自动化、工业和网络应用的嵌入式实时系统;智能卡和SIM卡的安全应用。ARM处理器的特点12ARM微处理器微处理器核:ARM6,ARM7,ARM9,ARM10,ARM11扩展:Thumb,DSP,SIMD,Jazelleetc.其它IP核:UART,GPIO,memorycontrollers,etc13ARM体系结构版本-1Version1(obsolete)基本数据处理字节,字以及多字load/store软件中断26bit地址总线Version2(obsolete)Multiply&Multiply-accumulate支持协处理器支持线程同步26bit地址总线14ARM体系结构版本-2V3版本推出32位寻址能力,结构扩展变化为T—16位压缩指令集M—增强型乘法器,产生全64位结果(32X3264or32X32+6464)V4版本增加了半字load和store指令V5版本改进了ARM和Thumb之间的交互,结构扩展变化为:E---增强型DSP指令集,包括全部算法操作和16位乘法操作J----支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能15ARM体系结构更新16体系结构变化–1*THUMB指令集(‘T’)THUMB指令集:32位ARM指令集的子集,按16位指令重新编码代码尺寸小(upto40%compression)简化设计17体系结构变化-2长乘法指令(‘M’)32x32=64bit.提供全64位结果增强DSP指令集(‘E’)可附加在ARM中的DSP指令64bit转换在v5版本中第一次推出处理器内核的变化D:在片调试.处理器可响应调试暂停请求I:EmbeddedICE.支持片上断点调试18体系结构变化-3ARMDSP指令集对于音频DSP应用提供高达70%的处理速度Jazelle提供比基于软件的JAVA虚拟机(JVM)更高的性能与非JAVA加速核相比,提供8倍JAVA加速性能和降低80%的功耗139字节码直接在硬件上执行,88个字节码在软件上执行19本节提要132546嵌入式微处理器及其应用ARM体系结构概览ARMJTAG调试接口ARM编程模型ARM指令集S3C44B0开发平台简介20ARM7TDMI的指令流水线取指译码执行从存储器取指指令所用的寄存器译码从从寄存器组中读寄存器移位和ALU操作把寄存器写回到存储器组每条指令可以分3个阶段执行21ARM单周期指令3段流水线操作*取指译码执行取指译码执行取指译码执行t指令123注:程序计数器PC指向正在取指的指令而不是正在执行的指令22处理器的工作状态ARM7TDMI处理器有两种工作状态:ARM-32-bit,按字排列的ARM指令集Thumb-16-bit,按半字排列的Thumb指令集ARM7TDMI核的操作状态可能通过BX指令(分支和交换指令)在ARM状态和Thumb状态之间切换例:从ARM状态切换到Thumb状态:LDRR0,=Label+1BXR0从Thumb状态切换到ARM状态:LDRR0,=LabelBXR023存储器模式*大端模式字数据的高位字节存储在低地址中字数据的低字节则存放在高地址中小端模式低地址中存放字数据的低字节高地址中存放字数据的高字节3124231615870字地址11109887654432100低地址高地址3124231615870字地址89101184567401230低地址高地址24指令长度及数据类型ARM微处理器的指令长度可以是32位(ARM状态),也可以为16位(Thumb)状态ARM微处理器支持字节(8位)、半字(16位)、字(32位)3种数据类型字需要4字节对齐(地址的低两位为0)、半字需要2字节对齐(地址的最低位为0)25ARM处理器的两种工作状态:1、ARM状态:32位,ARM状态执行字对齐的32位ARM指令。2、Thumb状态,16位,执行半字对齐的16位3、用BxRn指令来进行两种状态的切换:其中Bx是跳转指令,而Rn是寄存器(1个字,32位),如果Rn的位0为1,则进入Thumb状态;如果Rn的位为0,则进入ARM状态。(原因:ARM指令的后两位始终为0,没有用,而Thumb指令的后一位始终为0,没有用,因此采用位0来表示ARM指令与Thumb指令的切换标志位。)注:1、ARM和Thumb两种状态之间的切换不影响处理器的工作模式和寄存器的内容。2、ARM处理器在处理异常时,不论处理器处于什么状态,则都将切换到ARM状态26ARM处理器有7种工作模式:用户模式(usr)-正常的程序执行模式快速中断模式(fiq)-支持高速数据传输或通道处理中断模式(irq)-用于通用中断处理管理员模式(svc)-操作系统的保护模式.中止模式(abt)-支持虚拟内存和/或内存保护系统模式(sys)-支持操作系统的特殊用户模式(运行操作系统任务)未定义模式(und)-支持硬件协处理器的软件仿真除了用户模式外,其他模式均可视为特权模式27模式切换:当异常发生,CPU进入相应的异常模式时,以下工作是由CPU自动完成的:1、在异常模式的R14中保存前一工作模式的下一条即将执行的指令地址;2、将CPSR的值复制到异常模式的SPSR中;3、将CPSR的工作模式设为该异常模式对应的工作模式;4、令PC值等于这个异常模式在异常向量表中的地址,即跳转去执行异常向量表中的相应指令;从异常工作模式退回到之前的工作模式时,需要由软件来完成以下工作:1、将异常模式的R14减去一个适当的值(4或8)后赋给PC寄存器;2、将异常模式SPSR的值赋给CPSR;28寄存器组织–1*User32Fiq32Supervisor32Abort32IRQ32Undefined32R0R0R0R0R0R0R1R1R1R1R1R1R2R2R2R2R2R2R3R3R3R3R3R3R4R4R4R4R4R4R5R5R5R5R5R5R6R6R6R6R6R6R7R7R7R7R7R7R8R8_fiqR8R8R8R8R9R9_fiqR9R9R9R9R10R10_fiqR10R10R10R10R11R11_fiqR11R11R11R11R12R12_fiqR12R12R12R12R13(SP)R13_fiqR13_svcR13_abtR13_irqR13_undR14(LR)R14_fiqR14_svcR14_abtR14_irqR14_undR15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)CPSRCPSRCPSRCPSRCPSRCPSRSPSR_fiqSPSR_svcSPSR_abtSPSR_irqSPSR_und29寄存器-237寄存器31个通用32位寄存器,包括程序计数器PC未分组寄器R0-R7分组寄存器R8-R14程序计数器PC(R15)6个状态寄存器15通用寄存器(R0toR14),以及1或者2个状态寄存器和程序计数器在任何时候都是可以访问的可访问的寄存器取决于处理器的模式其它寄存器(thebankedregisters)的状态在支持IRQ,FIQ,管理员,中止和未定义模式处理时被切换30寄存器-3R0到R15可以直接访问R0到R14是通用寄存器R13:堆栈指针(sp)(通常)每种处理器模式都有单独的堆栈R14:链接寄存器(lr)R15包含程序计数器(PC)CPSR–当前程序状态寄存器,包括代码标志状态和当前模式位5个SPSRs--(程序状态保存寄存器)当异常发生时保存CPSR状态31程序状态寄存器-1ARM7TDMI包含当前程序状态寄存器(CPSR),加上5个程序状态保存寄存器SPSR,当异常发生时,用于保存CPSR的状态这些寄存器的功能是:保存ALD当前操作信息控制允许和禁止中断设置处理器操作模式32程序状态寄存器-2N,Z,CandV条件码标志可以在处理器中作为数学和逻辑操作改变可以被所有的指令测试,以决定指令是否被执行N:Negative.Z:Zero.C:Carry.V:oVerflowIandF位是中断禁止位M0,M1,M2,M3andM4位是模式位33程序状态寄存器PSR的模式位34异常-1异常——内部或外部中断源产生并引起处理器处理一个事件,如外部中断或试图执行未定义指令都会引起异常。处理异常之前必须保留处理器的状态异常类型FIQIRQ(InterruptReQuest)未定义指令预取中止数据中止复位软件中断Softwareinterrupt通过软件中断产生进行管理员模式中获得通常要求特殊的管理功能,如操作系统支持35异常-2异常类型未定义的指令陷井当ARM接受到一条不能处理的指令,ARM把这条指令提供给任何一个协处理器执行如果协处理器可
本文标题:三嵌入式微处理器体系结构.
链接地址:https://www.777doc.com/doc-2779389 .html