




已阅读5页,还剩92页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统及开发应用 第二讲ARM体系结构 Outline 2 ARM体系结构 3 ARM编程模型工作状态CPU工作模式寄存器组织异常内存与IO 1 嵌入式微处理器 主流的嵌入式微处理器 目前主流的嵌入式微处理器系列主要有ARM系列 MIPS系列 PowerPC系列 SuperH系列和X86系列等 属于这些系列的嵌入式微处理器产品很多 有上千种以上 Units millions Source AndrewAllison InsideTheNewComputerIndustry January2001 EmbeddedRISCProcessorShipments 32位浪潮的到来 Source SemicoResearchCorp andSIA WSTS TotalMCU bySub Category excl DSP TotalEmbeddedControlMarketShipmentsbyType 总共约26亿个32位处理器付运 占总数96亿的27 2005年ARM为17亿个 约占32位总量的70 左右 X86系列 主要由AMD Intel NS ST等公司提供 如 Am186 88 Elan520 嵌入式K6 386EX STPC等 主要应用在工业控制 通信等领域 国内由于对X86体系比较熟悉 得到广泛应用 特别是嵌入式PC的应用非常广泛 MPC PPC系列 Motorola推出的MPC系列 如MPC8XX IBM推出PPC系列 如PPC4XX 主要应用在通信 消费电子及工业控制 军用装备等领域 MPC PPC系列 IBMPowerPC集成10 100Mbps以太网控制器 串行和并行端口 内存控制器以及其它外设的高性能嵌入式处理器 MotorolaMPC高度综合的SOC设备 它结合了PPC微处理器核心的功能 通信处理器和单硅成分内的显示控制器 这个设备可以在大量的电子应用中使用 特别是在低能源 便携式 图象捕捉和个人通信设备 技术 0 25 微米 CMoSSA 12E 282Dhrystone2 1MIPS 200MHz 375Dhrystone2 1MIPS 266MHz 200 100 66 50MHz 266 133 66 66MHz 晶体数量 480 万 电源消耗 1 1 瓦 信号 I O 300 温度范围 40到80度 电源供应 2 5V 逻辑电路 3 3V I O 支持 5VI Os 456 Ball EnhancedPBGA 35mmx35mm 性能 频率 CPU SDRAM PCI EBC 封装 PowerPC405GP技术规格 Dhrystone是一个综合性的基准测试程序 它是为了测试编译器和CPU处理整数指令和控制功能的有效性 人为地选择一些 典型指令综合起来形成的测试程序 ARM系列 ARM AdvancedRISCMachine 公司是一家专门从事芯片IP设计与授权业务的英国公司 其产品有ARM内核以及各类外围接口 ARM内核是一种32位RISC微处理器 具有功耗低 性价比高 代码密度高等三大特色 目前 90 的移动电话 大量的游戏机 手持PC和机顶盒等都已采用了ARM处理器 许多一流的芯片厂商都是ARM的授权用户 Licensee 如Intel Samsung TI Motorola ST等 ARM已成为业界公认的嵌入式微处理器标准 ARMFamily ARM7 Family ARM9 Family ARM10 Family ARM11 Family 150DMIPS 300DMIPS 500DMIPS 1000DMIPS ARMCortex Family ARMArchitecture 当前的主流ARM处理器 ARM7世界上最为广泛使用的CPU之一 100MHzARM9100 300MHz 1 7BARMPowredshipmentinyearof2005 31 isARM9based ARM11芯片已经面世 ARM11300 700 MHzSIMD指令扩展支持更丰富的多媒体应用40家授权芯片公司 一些已开始量产 FOMAN902iFirstARM11basedphone OMAP2420 i MX31 i MX31L 目前最快的嵌入式处理器 最快的处理器提供超过2000DMIPS的性能运行于1GHz频率 90nmor65nm制造工艺 功耗小于300mW ARMCortexA8ApplicationProcessor Cortex M3实现 1ARM芯片 ARMCortexArchitectureThumb 2ISA3StagePipeline1 22DMIPS MHz 30 overARM7TDMI33Kgates 30 smallerthanARM7TDMI LuminaryMicro的Stellaris系列MCU产品售价仅1美元 ARMCortex M3微控制器内核 专门针对MCU应用领域而设计 突出低成本 低功耗和高效率 领先嵌入式处理器技术发展讨论 多处理器技术单处理器技术的性能提升终有一天会遭遇瓶颈对嵌入式系统而言 尤其要考虑付出的代价把任务进行并行分解是理想的选择ARMMPcore可以集成1 4个ARM11处理器关键是要提供给软件开发者一个友好的编程界面64位处理器 哪儿是系统性能瓶颈 是需要64位地址还是64位数据 嵌入式系统比PC有更好的条件来解决系统性能和带宽问题PC系统在主板上 扩展系统带宽需要扩大每个组件的接口带宽SoC只需扩展片内总线 非常容易实现AMBA支持8 1024位总线宽度许多SoC设计以及ARM处理器内部已经使用64位数据总线 如何选择嵌入式微处理器 微处理器内核的选择有无MMUOS的考虑系统的工作频率芯片存储器的容量片内外设的考虑实际应用的要求接口时序 Outline 2 ARM体系结构 3 ARM编程模型工作状态CPU工作模式寄存器组织异常内存与IO 1 嵌入式微处理器 图2 1 1ARM体系结构方框图 ARM处理器的分类 结构体系版本 Architecture ARMv4TARMv5TEARMv6ARMCortex v7 ProcessorFamilyARM7ARM9ARM10ARM11ARMCortex 按应用特征分类应用处理器ApplicationProcessor实时控制处理器Real timeController微控制器Micro controller 特征 MMU Cache最快频率 最高性能 合理功耗 特征 MPU Cache实时响应 合理性能 较低功耗 特征 nosub memorysystem一般性能 最低成本 极低功耗 ARM体系结构的命名规则 ARM X y z T D M I E J F S x 系列y 存储管理 保护单元z CacheT Thumb16位译码器D JTAG调试器M 快速乘法器I 嵌入式跟踪宏单元E 增强DSP指令J JazelleF 向量浮点单元S 可综合版本 以源代码形式提供的ARM核 RoadmapofARMV4 V5 V6 ARMV4 ARMV4是目前支持的最老的架构 是基于32 bit地址空间的32 bit指令集 ARMv4除了支持ARMv3的指令外还扩展了 支持halfword的存取支持byte和halfword的符号扩展读支持Thumb指令提供Thumb和Normal状态的转换指令进一步的明确了会引起Undefined异常的指令对以前的26bits体系结构的CPU不再兼容 ARMv4T ARMv4T增加了16 bitThumb指令集 这样使得编译器能产生紧凑代码 相对于32 bit代码 内存能节省到35 以上 并保持32 bit系统的好处 Thumb在处理器中仍然要扩展为标准的32位ARM指令来运行 用户采用16位Thumb指令集最大的好处就是可以获得更高的代码密度和降低功耗 ARMV5TE 1999年推出ARMv5TE其增强了Thumb体系 增强的Thumb体系增加了一个新的指令同时改进了Thumb ARM相互作用 编译能力和混合及匹配ARM与Thumb例程 以更好地平衡代码空间和性能并在ARMISA上扩展了增强的DSP指令集 增强的DSP指令包括支持饱和算术 saturatedarithmetic 并且针对AudioDSP应用提高了70 性能 E 扩展表示在通用的CPU上提供DSP能力 ARMv5TEJ 2000年推出ARMv5TEJ 增加了Jazelle扩展以支持Java加速技术 Jazelle技术比仅仅基于软件的JVM性能提高近8倍的性能减少了80 的功耗 ARMv6 2001年推出ARMv6 它在许多方面做了改进如内存系统 异常处理和较好地支持多处理器 SIMD扩展使得广大的软件应用如Video和Audiocodec的性能提高了4倍 Thumb 2和TrustZone技术也用于ARMv6中 ARMv6第一个实现是2002年春推出的ARM1136J F STM处理器 2003年又推出了ARM1156T2 F S和ARM1176JZ F S处理器 ARMv7 ARMv7定义了3种不同的处理器配置 processorprofiles ProfileA是面向复杂 基于虚拟内存的OS和应用的ProfileR是针对实时系统的ProfileM是针对低成本应用的优化的微控制器的 所有ARMv7profiles实现Thumb 2技术 同时还包括了NEON 技术的扩展提高DSP和多媒体处理吞吐量400 并提供浮点支持以满足下一代3D图形和游戏以及传统嵌入式控制应用的需要 ARM7TDMI Thumb架构扩展 提供两个独立的指令集 ARM指令 均为32位Thumb指令 均为16位两种运行状态 用来选择哪个指令集被执行 内核具有Debug扩展结构 增强乘法器 32x8 支持64位结果 EmbeddedICE逻辑 3级流水线冯 诺依曼架构CPI CyclePerInstruction 约为1 9 图2 2 3ARM720T内核结构 图2 2 1ARM7TDMI内核结构 ARM7TDMI指令流水线 为增加处理器指令流的速度 ARM7系列使用3级流水线 允许多个操作同时处理 而非顺序执行 PC指向正被取指的指令 而非正在执行的指令 从存储器中读取指令 解码指令中用到的寄存器 寄存器读 从寄存器Bank 移位及ALU操作寄存器写 到寄存器Bank PCPC PC 4PC 2 PC 8PC 4 ARMThumb ARM7TDMI指令流水线 操作 周期 123456 Fetch 最佳流水线 该例中用6个时钟周期执行了6条指令所有的操作都在寄存器中 单周期执行 指令周期数 CPI 1 ARM9TDMI Harvard架构增加了可用的存储器宽度指令存储器接口数据存储器接口可以实现对指令和数据存储器的同时访问5级流水线实现了以下改进 改进CPI到 1 5提高了最大时钟频率 ARM9TDMI InstructionFetch Shift ALU MemoryAccess RegWrite RegRead RegDecode FETCH DECODE EXECUTE MEMORY WRITE ARM9TDMI ARMorThumbInstDecode RegSelect RegRead Shift ALU RegWrite Thumb ARMdecompress ARMdecode InstructionFetch FETCH DECODE EXECUTE ARM7TDMI 流水线 ARM9TDMI ARM9TDMI DCache ICache MMU GLUE 外部存储器 ARM940T2x4KcachesMPU写缓冲 ARM9xxT ARM920T2x16KcachesMMU支持虚拟地址和内存保护写缓冲 带Cache的ARM9TDMI 图2 2 4ARM920T内核结构 ARM9E S系列概述 ARM9E基于ARM9TDMI内核 有以下扩展和增强单周期32x16乘法器EmbeddedICE逻辑RT改进的ARM Thumb交互操作新的32x16和16x16乘法指令新的计数到零指令新的饱和算术指令ARM946E SARM9E S内核指令和数据cache 大小可选择指令和数据RAM 大小可选择保护单元AHB总线接口ARM966E S与ARM946E S相似 但无cache ARM926EJ S系列概述 Jazelle状态允许直接执行Java8位码ARM926EJ SARM9E S内核可配置的cache和TCM内存管理单元双重32位AHB总线接口 多层 ARM10E系列概述 v5TE架构 CPI 1 3 6级流水线 静态分支预测 32kB指令cache和32kB数据cache支持 Hitundermiss 非阻塞的执行单元 每周期64位的LDM STM操作 EmbeddedICE逻辑 RT II 支持新的VFPv1结构 同ARM1020E 除了cache大小为16kB 对SUDL singleuserdesignlicense 有效 ARM1020E ARM1022E ARM9vsARM10 流水线的对比 Intel StrongARM概述 ARMV4架构 无Thumb支持 5级流水线 降低跳转损耗 stagepipeline reducedbranchpenalty改进的乘法器 典型地比ARM9TDMI快2个周期 不支持Multi ICE调试 JTAG限制在连通性测试 无外部协处理器接口SA 110 16K指令和数据caches 8x16字节写缓冲 SA 1100 1110 片上外设 存储器控制器更小的cache容量PID寄存器 作控制用 指令断点 通过CP15 Intel XScale 概述 V5TE兼容架构7 8级流水线带统计分支预测32k的数据和指令Cache 外加2k的数据Minicache8口写缓冲 4口填充和追加缓冲完整的32位协处理器接口调试和性能监控逻辑 通过CP14 乘 加模块 作为CP0 可配置的内核时钟速度100 733MHz 来自33 66MHz输入时钟异步输入总线时钟可到100MHz 最大总线内核时钟的1 3 Outline 2 ARM体系结构 3 ARM编程模型工作状态CPU工作模式寄存器组织异常内存与IO 1 嵌入式微处理器 ARM微处理器 编程模型 处理器工作状态CPU工作模式寄存器组织异常内存与IO ARM微处理器 处理器工作状态 PROCESSOROPERATINGSTATES 处理器有两种工作状态 ARM 32位 执行字对准的ARM指令Thumb 16位 执行半字对准的Thumb指令ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容 ARM微处理器 处理器工作状态 进入Thumb状态 执行BX指令 并设置操作数寄存器的状态 位 0 为1 在Thumb状态进入异常 IRQ FIQ UNDEF ABORT SWIetc 当异常处理返回时自动转换到Thumb状态进入ARM状态 执行BX指令 并设置操作数寄存器的状态 位 0 为0 进入异常时 将PC放入异常模式链接寄存器中 从异常向量地址开始执行也可进入ARM状态 ARM微处理器 处理器工作状态 Thumb 2 增加了混合模式能力定义了一个新的32 bit指令集能在传统的16 bit指令运行的Thumb状态下同时运行 这样能在一个系统中更好地平衡ARM和Thumb代码的能力 使系统能更好地利用ARM级别的性能和Thumb代码的密度的优势 ARM微处理器 存储器格式 ARM的寻址空间是线性的地址空间 为232 4GBytes0to3存储第一个word bytes4to7存储第二个wordARM支持大端 Big endian 和小端 Little endian 的内存数据方式 可以通过硬件的方式设置 没有提供软件的方式 端模式 ARM微处理器 存储器格式 大端的数据存放格式 低地址 高地址 地址A 地址A 1 地址A 2 地址A 3 最高有效字节的地址就是该word的地址 最高有效字节位于最低地址 worda 0 xf6734bcd f6 73 4b cd ARM微处理器 存储器格式 小端的数据格式 低地址 高地址 地址A 地址A 1 地址A 2 地址A 3 最低有效字节的地址就是该word的地址 最低有效字节位于最低地址 worda 0 xf6734bcd f6 73 4b cd ARM微处理器 存储器格式 大端 小端 0 xb3204500 0 xddddddd0 0 xb3204500 0 xddddddd0 f6 f6 73 73 4b 4b cd cd 00 00 da da 实例变量A wordA 0 xf6734bcd 在内存中的起始地址为0 xb3204500变量B halfwordB 218 在内存中的起始地址为0 xddddddd0 问题 halfwordB 218与wordC 218在内存中的存放方式有何不同 请分大端和小端两种情况说明 ARM微处理器 编程模型 数据类型的约定字节型数据 Byte 数据宽度为8bits半字数据类型 HalfWord 数据宽度为16bits 存取式必须以2字节对齐的方式字数据类型 Word 数据宽度为32bits 存取式必须以4字节对齐的方式 ARM微处理器 CPU模式 processormode 7种CPU模式 CPU模式的转变 软件控制异常外部中断 ARM微处理器 CPU模式 User模式 程序不能访问有些受保护的资源 只能通过异常的形式来改变CPU的当前运行模式 特权模式可以存取系统中的任何资源 System模式 与User模式的运行环境一样但是它可以不受任何限制的访问任何资源该模式主要用于运行系统中的一些特权任务 FIQ模式 IRQ模式 Supervisor模式 Abort模式 Undefined模式 异常模式 主要是在外部中断或者程序执行非法操作时会触发 ARM微处理器 寄存器组织 ARM处理器有37个寄存器31个通用寄存器 程序计数器 堆栈及其他通用寄存器6个状态寄存器这些寄存器不能同时看到 同时只有17个不同的处理器状态和工作模式确定哪些寄存器是对编程者是可见的 ARM微处理器 ARMState寄存器 ARM微处理器 ThumbState寄存器 低寄存器 高寄存器 ARMState与ThumbState寄存器关系 ARM状态各模式下的寄存器 ARM状态各模式下的寄存器 所有的37个寄存器 分成两大类 31个通用32位寄存器 6个状态寄存器 ARM状态各模式下可以访问的寄存器 一般的通用寄存器 在汇编语言中寄存器R0 R13为保存数据或地址值的通用寄存器 它们是完全通用的寄存器 不会被体系结构作为特殊用途 并且可用于任何使用通用寄存器的指令 一般的通用寄存器 其中R0 R7为未分组的寄存器 也就是说对于任何处理器模式 这些寄存器都对应于相同的32位物理寄存器 一般的通用寄存器 寄存器R8 R14为分组寄存器 它们所对应的物理寄存器取决于当前的处理器模式 几乎所有允许使用通用寄存器的指令都允许使用分组寄存器 一般的通用寄存器 寄存器R8 R12有两个分组的物理寄存器 一个用于除FIQ模式之外的所有寄存器模式 另一个用于FIQ模式 这样在发生FIQ中断后 可以加速FIQ的处理速度 一般的通用寄存器 寄存器R13 R14分别有6个分组的物理寄存器 一个用于用户和系统模式 其余5个分别用于5种异常模式 堆栈指针寄存器R13 SP 寄存器R13常作为堆栈指针 SP 在ARM指令集当中 没有以特殊方式使用R13的指令或其它功能 只是习惯上都这样使用 但是在Thumb指令集中存在使用R13的指令 链接寄存器R14 LR R14为链接寄存器 LR 在结构上有两个特殊功能 在每种模式下 模式自身的R14版本用于保存子程序返回地址 当发生异常时 将R14对应的异常模式版本设置为异常返回地址 有些异常有一个小的固定偏移量 程序计数器R15 PC 寄存器R15为程序计数器 PC 它指向正在取指的地址 可以认为它是一个通用寄存器 但是对于它的使用有许多与指令相关的限制或特殊情况 如果R15使用的方式超出了这些限制 那么结果将是不可预测的 ARM微处理器 通用寄存器 R15用作程序计数器 PC 可以被读写ARMstate bits 1 0 为0 bits 31 2 即为PC THUMBstate bit 0 为0 bits 31 1 即为PC ARM微处理器 程序状态寄存器 CPSR 当前程序状态寄存器 在所有的模式下都是可以读写的 它主要包含 条件标志中断使能标志当前处理器的模式其它的一些状态和控制标志 ARM微处理器 程序状态寄存器 置0表示执行32bit的ARM指令置1表示执行16bit的Thumb指令 Negative Zero Carry Overflow IRQ中断的响应 置1 禁止响应置0 允许响应 FIQ中断的响应 置1 禁止响应置0 允许响应 ARM微处理器 程序状态寄存器 模式控制位M0 M4 ARM微处理器 异常 异常是由内部或者外部原因引起的 当异常发生时CPU将暂停执行当前指令自动到指定的向量地址读取指令并且执行 在X86上 当有异常发生时CPU是到指定的向量地址读取要执行的程序的地址而ARM是到向量地址的地方读取指令 也就是ARM的向量地址处存放的是一条指令 一般是一条跳转指令 ARM微处理器 异常 ARMCPU将引起异常的类型分为7种 ARM微处理器 异常 当异常出现时 异常模式分组的R14和SPSR用于保存状态 即 R14 returnlinkSPSR CPSRCPSR 4 0 exceptionmodenumberCPSR 5 0 在ARM状态执行 if ResetorFIQthenCPSR 6 1 禁止快速中断 CPSR 7 1 禁止正常中断 PC exceptionvectoraddress当处理异常返回时 将SPSR传送到CPSR R14传送到PC 异常的优先级 异常向量 VectorTable 异常处理 当异常产生时 ARMcore 拷贝CPSR到SPSR 设置适当的CPSR位 改变处理器状态进入ARM态改变处理器模式进入相应的异常模式设置中断禁止位禁止相应中断 如需要 保存返回地址到LR 设置PC为相应的异常向量返回时 异常处理需要 从SPSR 恢复CPSR从LR 恢复PCNote 这些操作只能在ARM态执行 Vectortablecanbeat0 xFFFF0000onARM720TandonARM9 10familydevices FIQ IRQ Reserved DataAbort PrefetchAbort SoftwareInterrupt UndefinedInstruction Reset 进入异常的操作 R14 ReturnLinkSPSR CPSRCPSR 4 0 ExceptionModeNumberCPSR 5 0 当运行于ARM状态时IF ResetorFIQthen 当响应FIQ异常时 禁止新的FIQ异常CPSR 6 1 CPSR 7 1 PC ExceptionVectorAddress 当异常结束时 异常处理程序必须 1 将LR R14 中的值减去偏移量后存入PC 偏移量根据异常的类型而有所不同 2 将SPSR的值复制回CPSR 3 清零在入口置位的中断禁止标志 注 恢复CPSR的动作会将T F和I位自动恢复为异常发生前的值 退出异常 例子 用户模式到FIQ模式 r14 fiq r13 fiq r12 fiq r10 fiq r11 fiq r9 fiq r8 fiq 用户模式CPSR复制到FIQ模式SPSR 返回一个从用户模式计算的地址 PC值存储在FIQ模式 用户模式 FIQ模式 图示进入异常过程 1 程序在系统模式下运行用户程序 假定当前处理器状态为Thumb状态 允许IRQ中断 2 用户程序运行时发生IRQ中断 硬件完成以下动作 置位I位 禁止IRQ中断 清零T位 进入ARM状态 设置MOD位 切换处理器模式至IRQ模式 将下一条指令的地址存入IRQ模式的LR寄存器 将CPSR寄存器内容存入IRQ模式的SPSR寄存器 将跳转地址存入PC 实现跳转 BackAddr JumpAddr 表示对该位不关心 在异常处理结束后 异常处理程序完成以下动作 图示退出异常过程 将SPSR寄存器的值复制回C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 图形词汇测试题及答案
- 液压系统试题及答案
- 大厂采购面试题及答案
- 2025年贵阳市乌当区实验小学教师招聘考试笔试试题(含答案)
- 职业暴露与标准预防培训考试题及答案
- 2025年执业药师重点试题带答案
- 2024年辽宁省安全生产月知识培训测试试题及参考答案
- 北京消防防护知识培训课件
- 中级老年照护考试模拟题及答案
- 2025征信考试题库(含答案)
- PICC维护技术操作SOP
- 第四课 公民义务 复习课件-2022-2023学年部编版道德与法治八年级下册
- UG基础培训课件
- 初二英语上册完形填空练习题及答案
- GB/T 1149.4-2008内燃机活塞环第4部分:质量要求
- 2022年高校教师资格证(高等教育心理学)考试题库深度自测300题加下载答案(四川省专用)
- 地基基础工程施工方法及基础知识课件
- 2017年9月国家公共英语(三级)笔试真题试卷(题后含答案及解析)
- 2021年西安陕鼓动力股份有限公司校园招聘笔试试题及答案解析
- 江西师范大学研究生院非事业编制聘用人员公开招聘1人(专业学位培养办公室助理)(必考题)模拟卷
- 2021社会保险法知识竞赛试题库及答案
评论
0/150
提交评论