您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 微处理器系统结构与嵌入式系统-第七章_ARM微处理器编程
微处理器系统结构与嵌入式系统设计第七章ARM微处理器编程模型7.1ARM内核体系结构7.2ARM编程模型7.2.1处理器工作状态7.2.2处理器运行模式7.2.3寄存器组织7.2.4数据类型和存储格式7.2.5异常ARM是AdvancedRISCMachines的缩写,该公司设计了大量高性能、廉价、耗能低的RISC(精简指令集)处理器;ARM公司的特点是只设计而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。将技术授权给其它芯片厂商形成各具特色的ARM芯片3/95ARM的应用领域1.工业控制领域过程控制、电力控制、数控机床、ABS2.无线通讯领域基站、带蓝牙/定位等的手机/PDA、GPS3.网络应用ADSL、路由器、交换机、VoIP4.消费类电子产品DVD、机顶盒、游戏机5.成像产品数码相机、打印机、录像机6.安全产品ATM机、POS机、考勤系统、SIM卡到目前为止,基于ARM技术的微处理器应用约占据了32位嵌入式微处理器75%以上的市场份额;全球80%的GSM/3G手机、99%的CDMA手机以及绝大多数PDA产品均采用ARM体系的嵌入式处理器,“掌上计算”相关的所有领域皆为其所主宰;4/95ARM体系结构的特点1.RISC简单的结构使ARM内核非常小、功耗低、成本低2.统一和固定长度的指令域,简化了指令的译码,便于指令流水线设计3.采用装载/保存结构,数据处理操作只针对寄存器的内容,而不直接对存储器进行操作4.支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件5.每条数据处理指令都对算术逻辑单元和移位器控制,实现了ALU和移位器的最大利用6.寻址方式灵活简单,执行效率高7.地址自动增加和减少寻址模式,优化程序循环8.多寄存器装载和存储指令实现最大数据吞吐量9.所有指令的条件执行实现最快速的代码执行5/95ARM处理器内核流水线工作流程ARM体系结构的版本ARM架构自诞生至今已发展并定义了V1到V7七种不同的版本V1版架构只在原型机ARM1中出现过–支持基本的数据处理指令(无乘法)–支持字节、半字和字的LOAD/STORE指令–支持转移指令,包括子程序调用及链接指令–支持软件中断指令SWI–寻址空间位64MB(26位)2019-8-17/95V2版架构已废弃不再使用–支持乘法和乘加指令–支持协处理器操作指令–支持基本的存储器与寄存器交换指令SWP/SWPB–支持快速中断模式V3版架构已废弃不再使用–寻址范围扩展到4GB(32位)–快速中断模式具有两个以上的分组寄存器–增加状态寄存器CPSR/SPSR,及从异常处理返回的MSR/MRS指令,便于异常的处理–增加了中止和未定义两种处理器模式2019-8-18/95V4版架构目前应用最广的ARM体系结构,ARM7、ARM8、ARM9和StrongARM都采用该版架构–增加了有/无符号的半字和有符号字节的Load/Store指令–增加了16位Thumb指令集–完善了软件中断SWI指令的功能–增加了处理器的特权模式V5版架构ARM10和XScale都采用该版架构–改进了ARM/Thumb状态之间的切换效率;–E-增强DSP指令集,包括全部算法操作和16位乘法操作;–J-支持新的JAVA,提供字节代码执行的加速功能–增加了带有链接和交换指令BLX–增加了计数前导零指令CLZ–增加了软件断点指令–为协处理器增加更多可选择的指令9/95V6版架构ARM11处理器采用该版架构–增加了多媒体功能扩展SIMD,提高了嵌入式应用系统的音、视频处理能力–改进了内存管理–改进了混合端与不对齐数据支持,使得小端系统支持大端数据V7版架构Cortex-A/M/R系列处理器采用该版架构2005年发布,采用Thumb-2技术。M系列→传统单片机市场A系列→高端应用处理器市场R系列→实时性控制2019-8-110/95ARM处理器核与体系结构的对应关系核体系结构ARM1ARMv1ARM2ARMv2ARM2aS,ARM3ARMv2aARM6,ARM600,ARM610,ARM7,ARM700,ARM710ARMv3StrongARM,ARM8,ARM810ARMv4ARM7TDMI,ARM710T,ARM720T,ARM740T,ARM9TDMI,ARM920T,ARM940TARMv4TARM9E-S,ARM10TDMI,ARM1020EARMv5TEARM1136J(F)-S,ARM1176JZ(F)-S,ARM11MPCorARMv6ARM1156T2(F)-SARMv6T2ARMCortex-M,ARMCortex-R,ARMCortex-AARMv7ARM处理器(核)命名规则ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}x——系列号y——存储管理/保护单元z——CacheT——Thumb指令集D——JTAG调试器M——快速乘法器I——嵌入式跟踪宏单元E——增强DSP指令J——Jazelle技术F——向量浮点单元S——可综合的内核ARM7TDMI-SARM926EJ-SARM966ESARM1022E2:带MMU4:带MPU6:无MMU和MPU0:标准cache2:小cache6:可变cache12/95ARM芯片、内核和CPU的关系ARMCPU数据通路ARMCPU控制逻辑ARM内核ARMCPUARM芯片ARM内核项目ARM7ARM9ARM10ARM11流水线3568典型频率MHz80150260335功耗mW/MHz0.060.19(+cache)0.5(+cache)0.4(+cache)性能MIPS/MHz0.971.11.31.2架构冯诺伊曼哈佛哈佛哈佛ARM处理器(核)比较ARM系列微处理器核特点ARM7ARM7TDMI:整数处理核ARM7TDMI处理器的可综合版本;ARM720T:带MMU的处理器核心,支持操作系统;ARM7EJ-S:带有DSP和JazelleTM技术,能够实现Java加速功能冯诺伊曼体系结构;ARM7TDMI是目前应用最广的微处理器核ARM720T带有MMU和8KB的指令数据混合cache;ARM7EJ-执行ARMv5TEJ指令,5级流水线,提供Java加速指令,没有存储器保护。ARM9ARM920T:带有独立的16KB数据和指令Cache;ARM922T:带有独立的8位KB数据和指令Cache;ARM940T–包括更小数据和指令Cache和一个MPU基于ARM9TDMI,带16位的Thumb指令集,增强代码密度最多到35%;在0.13µm工艺下最高性能可达到300MIPS(Dhrystone2.1测试标准);集成了数据和指令Chche;32位AMBA总线接口的MMU支持;可在0.18µm、0.15µm和0.13µm工艺的硅芯片上实现。ARM处理器(核)简介2019-8-116/95ARM9EARM926EJ-S:Jazelle技术,有MMU,可配置的数据和指令Cache,TCM接口;ARM946E-S:可配置的数据和指令Cache及TCM;ARM966E-S:针对要求高性能和低功耗的可预测的指令执行时间的硬实时应用设计ARM968E-S:最小、功耗最小的ARM9E系列处理器,针对嵌入式实时应用设计;ARM9E是针对微控制器、DSP和Java的单处理器解决方案;ARMJazelle技术提供8倍的Java加速性能(ARM926EJ-S);5-级整数流水线;在0.13µm工艺下最高性能可达到300MIPS(Dhrystone2.1测试标准);可选择的向量浮点单元VFP9协处理器指令优秀海浮点性能,对于3D图形加速和实时控制可达到215MFLOPS。高性能的AHB总线,带MMU可在0.18µm,0.15µm,0.13µm工艺的硅芯片上实现。ARM10EARM1020E:带DSP指令集,在片调试功能,独立的32KB数据和指令Cache,MMU支持;ARM1022E:与ARM1020E相同,只是独立的数据和指令Cache变为16KB;ARM1026EJ-S:同时具有MPU和MMU,可综合版本;带分支预测的6级整数流水线;在0.13µm工艺下最高性能可达到430MIPS(Dhrystone2.1测试标准);对于3D图形运算和实时控制采用VFP协处理器,浮点运算性能最高可达650MFLOPS;双64位AMBA总线接口和64位内部总路线接口;优化的缓存结构提高了处理器访问低速存储器的性能;可在0.18µm,0.15µm,0.13µm工艺的硅芯片上实现ARM11ARM11MPCore:可综合的多处理器核,1至4个处理器可配置;ARM1136J(F)-S:可配置的数据和指令Cache,可提供1.9位的MPEG4编码加速功能;ARM1156T2(F)-S:带集成浮点协处理器,带内存保护单元MPU;ARM1176JZ(F)-S:带针对CPU和系统安全架构扩展的TrustZone技术。增强的Thumb、Jazelle、DSP扩展支持;带片上和系统安全TrustZone技术支持;在0.13µm工艺下最高可达到550MHz;MPCore在0.13µm工艺下最高性能可达到740MIPS(Dhrystone2.1测试标准);支持多媒体指令SIMD;采用三种电源模式:全速/待命/休眠集成DMA的TCM低功耗、高性能。SecurCoreSC100:第一个32位安全处理器;、SC110:在SC100上增加密钥协处理器;SC200:带Jazelle技术的高级安全处理器;SC210:在SC200上增加密钥协处理器SecurCore是专门为智能卡、安全IC提供的32位安全处理器,为电子商务、银行、网络、移动多媒体、公共交通提供安全解决方案;体积小、功耗低,代码压缩密度高;为快速增长的Java卡平台提供Java加速功能;CortexCortex-A:面向应用的微处理器,针对复杂操作系统和应用程序设计;Cortex-R:针对实时系统的嵌入式处理器;Cortex-M:针对成本敏感应用优化的深度嵌入式处理器;2004年发布,提供增强的媒体和数字处理能力,增加了系统性能;支持ARM、Thumb、Thumb-2指令集;Thumb-2指令集提供了更高的代码存储密度,进一步降低成本;Intel系列(Marvell)StrongARM:ARMv4体系XScale:ARMv5TE体系,增加MMX指令StrongARM主要应用于手持设备和PDA,5级流水线,具有独立的数据和指令Cache,不支持Thumb指令集,目前已停产;XScale是目前Intel公司主推的高性能嵌入式处理器,分通用处理器、网络处理器和I/O处理器三类。其中通用处理器有PXA25x、PXA26x、PXA27x三个系列,被广泛应用于智能手机、PDA领域。7.2ARM编程模型ARM处理器的工作状态ARM状态执行32位字方式的ARM指令Thumb状态执行16位半字方式的Thumb指令(P220)Jazelle状态执行可变长的、以字节为单位的Jazelle(Java)指令(P220)注意:1.处理器复位后处于ARM状态;2.处理器异常处理时进入ARM状态;3.若处理器在Thumb状态进入异常,则异常返回仍然自动转换到Thumb状态;4.状态切换不影响工作模式及寄存器内容。2019-8-120/95ARM处理器工作状态的切换使用跳转指令BX可将处理器内核在ARM状态和Thumb状态之间进行切换。;从Arm状态切换到Thumb状态LDRR0,=Lable+1BXR0;从Thumb状态切换到ARM状态LDRR0,=LableBXR0地址最低位为1,表示切换到Thumb状态地址最低位为0,表示切换到ARM状态跳转地址标号,最低2bit为02019-8-121/95处理器模式说明备注用户(usr)正常程序执行模式不能直接切换到其它模式系统(sys)运行操作系统的特权任务与用户模式类似,但具有可以直接切
本文标题:微处理器系统结构与嵌入式系统-第七章_ARM微处理器编程
链接地址:https://www.777doc.com/doc-28929 .html