ARM体系结构PPT学习课件_第1页
ARM体系结构PPT学习课件_第2页
ARM体系结构PPT学习课件_第3页
ARM体系结构PPT学习课件_第4页
ARM体系结构PPT学习课件_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章嵌入式微处理器 主要内容 1ARMCPUISA的发展历史2典型ARMCPUCore体系结构3ARM编程模型本章部分内容可以参考 ARM公司 成立于1990年11月前身为Acorn计算机公司主要设计ARM系列RISC处理器内核授权ARM内核给生产和销售半导体的合作伙伴ARM公司不生产芯片另外也提供基于ARM架构的开发设计技术软件工具 评估板 调试工具 应用软件 总线架构 外围设备单元 等等 ARMCPUCore概述 ARM内核是一种32 64位RISC微处理器 具有功耗低 性价比高 代码密度高等三大特色 ARM处理器具有RISC体系结构的典型特征 体积小 低功耗 低成本 高性能 支持Thumb 16位 ARM 32位 双指令集 能很好地兼容8位 16位器件 大量使用寄存器 指令执行速度更快 大多数数据操作都在寄存器中完成寻址方式灵活简单 执行效率高指令长度固定所有指令都可以条件执行 以增大执行吞吐量 2 1ARMCPUISA的发展历史 ARMCPU的指令集体系ISA 即ARMInstructionSetArchitecture 从最初的V1版本发展到现在 先后出现了V1 V2 V3 V4 V4T V5TE V5TEJ V6 V7 V8等主要的版本 ARMV1 V3版本的处理器未得到大量应用 ARM处理器的大量广泛应用是从其V4版本开始的V7系列CPU被称作CorTex系列到目前V8是最新的版本 可以选择64或32执行状态 64执行状态针对64位处理技术 引入了一个全新指令集A64 可以存取大虚拟地址空间 DevelopmentoftheARMArchitecture 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加速技术 处理器指令层对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技术 比纯32位代码少使用31 的内存 高出38 的性能 同时还包括了NEON 技术的扩展提高DSP和多媒体处理吞吐量400 并提供浮点支持以满足下一代3D图形和游戏以及传统嵌入式控制应用的需要 关于ARM架构发展可以参考 ARMv8 2011年11月 ARM公司发布了新一代处理器架构ARMV8 ARM的首个64位架构 在继承了V7架构的基础上 可以选择64或32执行状态 64执行状态针对64位处理技术 引入了一个全新指令集A64 可以存取大虚拟地址空间 运用ARMv8指令集的产品 ARM12年十月发布了Cortex A53andCortex A57核心 13年苹果基于V8架构的Apple7使用在了iPhone5S上 ARM Thumb的命名规范 Classic命名 由于ARM的每个版本都有一系列的可变版本 其命名规范 Classic命名 如下 以ARMv开头ARM指令集的版本号 1 5 可变功能标识 T 表示支持Thumb指令 M 表示支持乘法指令 E 增强型DSP指令 J Java加速器Jazelle SIMD ARM媒体功能扩展 但是ARMv4和其上的版本缺省都支持M功能 因此ARMv4和其上的版本的标识中可以不用标识M 如果3中描述的功能不存在 则在该功能标识符前加x ARM处理器命名 Classic命名 采用上述的架构 形成一系列的处理器 有时候还要区分处理器核和处理器系列 不过 在这里其实不用区分太细 毕竟这是功能的小部分的变化 核心是相同的 规则 ARM x y z T D M I E J F S x 处理器系列y 存储管理 保护单元z cacheT 支持Thumb指令集D 支持片上调试M 支持快速乘法器I 支持EmbeddedICE 支持嵌入式跟踪调试E 支持增强型DSP指令J 支持JazelleF 具备向量浮点单元VFP S 可综合版本如ARM7TDMI ARM处理器的分类 现在常用命名 结构体系版本 Architecture ARMv4TARMv5TEARMv6ARMCortex v7 ProcessorFamilyARM7ARM9ARM10ARM11ARMCortex 按应用特征分类 定义3种不同的处理器配置 应用处理器ApplicationProcessor实时控制处理器Real timeController微控制器Micro controller 特征 MMU Cache最快频率 最高性能 合理功耗 特征 MPU Cache实时响应 合理性能 较低功耗 特征 nosub memorysystem一般性能 最低成本 极低功耗 EmbeddedProcessors EmbeddedProcessors Whicharchitectureisyourprocessor 作业二 1 查找资料确定自己的手机的CPU型号 是哪个厂家生产的 CPU是ARM的哪种体系结构版本 CPU有何特别的技术 简要介绍各种技术 以及此CPU其它性能指标 10月28号晚20点之前交给学习委员 学习委员统一打包发给我 超过截止时间则没有本次作业成绩 作业文件命名规则 学号 姓名 作业X作业评分标准大概是从格式排版 到内容完整度 深度等方面考核 还有要看是否是经过多个资料整理分析的 还是直接复制一段网上文字的 根据这些评分 作业二 作业二评分标准 1 型号 厂家 体系结构版本各10分 共30分2 特别的技术30分3 性能指标25分4 格式及排版10分5 作业命名规范5分其中2点 你的CPU中包含的特别的技术要有对应的解释 如Thumb NEON Jazelle ARMTrustZone 等 ARMFamily ARM7 Family ARM9 Family ARM10 Family ARM11 Family 150DMIPS 300DMIPS 500DMIPS 1000DMIPS ARMCortex Family ARMArchitecture 已广泛应用的ARM处理器 ARM7世界上最为广泛使用的CPU之一 100MHzARM9100 300MHz ARM11芯片 ARM11300 700 MHzSIMD指令扩展支持更丰富的多媒体应用40多家授权芯片公司 FOMAN902iFirstARM11basedphone OMAP2420 i MX31 i MX31L 高性能的ARM嵌入式处理器 处理器提供超过2DMIPS MHZ的性能运行于1GHz频率 90nmor65nm制造工艺 功耗小于300mW ARMCortexA8ApplicationProcessor Cortex系列处理器 命名及 对比 ARMCortexA8ApplicationProcessor Cortex M3实现 1ARM芯片 ARMCortexArchitectureThumb 2ISA3StagePipeline1 22DMIPS MHz 30 overARM7TDMI33Kgates 30 smallerthanARM7TDMI LuminaryMicro的Stellaris系列MCU产品售价仅1美元 ARMCortex M3微控制器内核 专门针对MCU应用领域而设计 突出低成本 低功耗和高效率 生产ARM处理器的主要厂家 TI 德州仪器 Omap3430Cortex A8核600MHz 诺基亚N96 Omap3530Cortex A8核600MHzARM DSP双核Samsung 三星 S5PC100Cortex A8核600MHz iPhone3GS和M9都应用此芯片 S5PC110 S5PV210Cortex A8核1GHZFreescale 飞思卡尔 i MX512 i MX513 i MX515Cortex A8核600MHz 1GHz 在多款上网本中得到应用 生产ARM处理器的主要厂家 Marvell 马维尔 PXA930800MHzCortex A8核ARMADA500 600 1000系列SheevaPJ4核心1GHz 1 2GHz 支持ARMv7指令集 架构异同 Qualcomm 高通 QSD8650A QSD8672 Snapdragon系列 1 3G 1 5Gscorpion核心 支持ARMv7指令 架构异同 骁龙400系列 Cortex A7 MSM8928 红米NOTE4GNvidia 英伟达 TegraARM11核700MHzTegra2 下一代产品 CortexA8 或A9 核MTK 联发科MediaTek MTKMT6592八核 Cortex A71 4 2GHZ红米NOTE 主要内容 1ARMCPUISA的发展历史2典型ARMCPUCore体系结构3ARM编程模型 2 2典型ARMCPU体系结构 结构特征 ARM内核采用RISC体系结构 ARM体系结构的主要特征如下 1 大量的寄存器 并可以用于多种用途 2 采用Load Store体系结构 3 每条指令都条件执行 4 采用多寄存器的Load Store指令 5 单周期指令内同时完成移位操作和ALU 6 通过协处理器指令集来扩展ARM指令集 7 体系支持Thumb指令集 2 2典型的ARMCPUCore ARM7TDMI结构 ARM7TDMI Thumb架构扩展 提供两个独立的指令集 ARM指令 均为32位Thumb指令 均为16位两种运行状态 用来选择哪个指令集被执行 内核具有Debug扩展结构 增强乘法器 32x8 支持64位结果 EmbeddedICE逻辑 3级流水线冯 诺依曼架构CPI CyclePerInstruction 约为1 9 乘法器 指令解码 地址自增器 nRESET nMREQ SEQ ABORT nIRQ nFIQ nRW MAS 1 0 LOCK nCPI CPA CPB nWAIT MCLK nOPC BIGEND ISYNC nTRANS nM 4 0 D 31 0 桶移位器 32位ALU DBE 写数据寄存器 读数据寄存器 地址寄存器 寄存器Bank A 31 0 ABE 及 控制逻辑 PCUpdate 解码站 指令解压缩 Incrementer PC ABus BBus ALUBus ARM7TDMICore的结构 ARM7TDMI引脚逻辑图 ARM7TDMI指令流水线 为增加处理器指令流的速度 ARM7系列使用3级流水线 允许多个操作同时处理 而非顺序执行 PC指向正被取指的指令 而非正在执行的指令 从存储器中读取指令 解码指令中用到的寄存器 寄存器读 从寄存器Bank 移位及ALU操作寄存器写 到寄存器Bank PCPC PC 4PC 2 PC 8PC 4 ARMThumb 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 理想的3级流水线 ARM7TDMI 无访存操作 ARM的参有LDR指令流水线 Cortex A8的指令流水线 13级 本节重点 1 ARM架构发展史 2 3 ARM处理器特点 ARMISA的版本情况 ISA命名规则 ARM处理器命名规则 ARM7TDMI 1 4 ARM处理器分类 M R A 本节重点 2 ARM典型CPU 2 ARM7的结构 ARM7的三级流水线 1 主要内容 1ARMCPUISA的发展历史2典型ARMCPUCore体系结构3ARM编程模型 2 3 1数据宽度 类型 数据类型字节型数据 Byte 数据宽度为8bits半字数据类型 HalfWord 数据宽度为16bits 存取式必须以2字节对齐的方式字数据类型 Word 数据宽度为32bits 存取式必须以4字节对齐的方式 2 3 2工作状态和工作模式 工作状态 处理器有两种工作状态 ARM 32位 执行字对准的ARM指令Thumb 16位 执行半字对准的Thumb指令ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容 2 3 2工作状态和工作模式 工作状态 进入Thumb状态 执行BX指令 并设置操作数寄存器的状态 位 0 为1 在Thumb状态进入异常 IRQ FIQ UNDEF ABORT SWIetc 当异常处理返回时自动转换到Thumb状态进入ARM状态 执行BX指令 并设置操作数寄存器的状态 位 0 为0 进入异常时 将PC放入异常模式链接寄存器中 从异常向量地址开始执行也可进入ARM状态 从Arm状态切换到Thumb状态LDRR0 Lable 1BXR0 从Thumb状态切换到ARM状态LDRR0 LableBXR0 地址最低位为1 表示切换到Thumb状态 地址最低位为0 表示切换到ARM状态 跳转地址标号 作业三 查找资料 撰写分析说明 回答以下问题 ARM跳转指令有几种 分析为什么由跳转到Thumb状态要用BX指令 为什么地址最后要 1 ARM指令是不是对齐的 是什么对齐的 指令为什么需要对齐 有什么好处 说明 可以参考资料 但不能全部直接复制粘贴 问题回答缺一个扣一个的分 回答不准确的也扣分 格式乱七八糟的也会扣分 作业文件命名规则 学号 姓名 作业三 2 3 2工作状态和工作模式 工作模式 Cortex A8内核的处理器模式 2 3 2工作状态和工作模式 工作模式 User模式 程序不能访问有些受保护的资源 只能通过异常的形式来改变CPU的当前运行模式 特权模式可以存取系统中的任何资源 System模式 与User模式的运行环境一样但是它可以不受任何限制的访问任何资源该模式主要用于运行系统中的一些特权任务 FIQ模式 IRQ模式 Supervisor模式 Abort模式 Undefined模式 异常模式 主要是在外部中断或者程序执行非法操作时会触发 Monitor模式 2 3 3寄存器 ARM寄存器概述 ARMCortex A8处理器有40个32位寄存器寄存器32个通用寄存器1个程序计数器7个状态寄存器这些寄存器不能同时看到不同的处理器状态和工作模式确定哪些寄存器是对编程者是可见的 ARM微处理器 ARMCortex A寄存器 ARM有40个32 Bits长的寄存器 32个通用寄存器 完全通用 用于存放数据或地址 1个PC programcounter 1个CPSR currentprogramstatusregister 6个SPSR savedprogramstatusregisters 当前处理器的模式决定着哪组寄存器可操作 任何模式都可以存取 相应的r0 r12 除FIQ模式外共用 FIQ只共用r0 r7 相应的r13 thestackpointer sp 和r14 thelinkregister lr r15 theprogramcounter pc 所有模式共用 CPSR currentprogramstatusregister cpsr 所有模式共用特权模式 除system模式 还可以存取 相应的spsr savedprogramstatusregister ARM微处理器 ThumbState寄存器 Thumb状态寄存器集是ARM状态集的子集 程序员可以直接访问的寄存器为 8个通用寄存器R0 R7 程序计数器 PC 堆栈指针 SP 链接寄存器 LR 有条件访问程序状态寄存器 CPSR ARM微处理器 ThumbState寄存器 ARMState与ThumbState寄存器关系 低寄存器 高寄存器 注意 在发生异常时 处理器自动进入ARM状态 处理器模式与寄存器的关系 异常发生时伴随的模式切换意味着 被调用的异常处理程序会访问 它自己的堆栈指针 SP 它自己的链接寄存器 LR 它自己的备份程序状态寄存器 SPSR 如果是FIQ异常处理 5个其它的通用状态寄存器 r8 FIQtor12 FIQ 其它寄存器和原来模式下的寄存器是相同的 2 3 3寄存器 通用寄存器 通用寄存器是R0 R15的寄存器 分为三类没有对应影子寄存器的寄存器R0 R7有对应影子寄存器的寄存器R8 R14程序计数器R15 或者PC 影子寄存器是指该寄存器在不同的模式下对应的物理寄存器 2 3 3寄存器 通用寄存器 R0 R7所有模式下 R0 R7所对应的物理寄存器都是相同的这八个寄存器是真正意义上的通用寄存器 ARM体系结构中对它们没有作任何特殊的假设 它们的功能都是等同的 在中断或者异常处理程序中一般都需要对这几个寄存器进行保存 2 3 3寄存器 通用寄存器 R8 R14访问的物理寄存器取决于当前的处理器模式 若要访问特定的物理寄存器而不依赖当前的处理器模式 则要使用规定的名字 R8 R12各有两组物理寄存器 一组为FIQ模式 另一组是除FIQ以外的其他模式 R13 R14各有6个分组的物理寄存器 一个用于用户模式和系统模式 其他5个分别用于5种异常模式 R13 也被称为SP指针 被用作栈指针 通常在系统初始化时需要对所有模式下的SP指针赋值 当CPU在不同的模式时栈指针会被自动切换成相应模式下的值 R14有两个用途 一是在调用子程序时用于保存调用返回地址 二是在发生异常时用于保存异常返回地址 不同模式下堆栈指针的初始化 在系统初始化 即系统复位 时需要初始化各模式分组的堆栈指针寄存器R13 R13 svc R13 irq R13 fiq R13 abt和R13 und 这样才能在进入不同的模式时自动切换使用不同的堆栈空间 初始化时需注意堆栈指针必须保持8字节对齐 中断模式堆栈的设置 涉及到CPSR格式和MSR指令 MSRCPSR c 0 x000000D2 切换到中断模式LDRR1 IrqStackMOVSP R1 设置中断模式堆栈指针 快速中断模式堆栈的设置MSRCPSR c 0 x000000D1 切换到快速中断模式LDRR1 FiqStackMOVSP R1 设置快速中断模式堆栈指针 中止模式堆栈的设置 链接寄存器R14 LR 1 R14为链接寄存器 LR 在结构上有两个特殊功能 在每种模式下 模式自身的R14版本用于保存子程序返回地址 当发生异常时 将R14对应的异常模式版本设置为异常返回地址 有些异常有一个小的固定偏移量 链接寄存器R14 2 R14寄存器与子程序调用 MOVPC LR R14 地址A 1 程序A执行过程中调用程序B 操作流程 2 程序跳转至标号Lable 执行程序B 同时硬件将 BLLable 指令的下一条指令所在地址存入R14 3 程序B执行最后 将R14寄存器的内容放入PC 返回程序A 链接寄存器R14 3 R14寄存器与异常发生 异常发生时 程序要跳转至异常服务程序 对返回地址的处理与子程序调用类似 都是由硬件完成的 区别在于有些异常有一个小常量的偏移 R14寄存器注意要点 当发生异常嵌套时 这些异常之间可能会发生冲突 例如 如果用户在用户模式下执行程序时发生了IRQ中断 用户模式寄存器不会被破坏 但是如果允许在IRQ模式下的中断处理程序重新使能IRQ中断 并且发生了嵌套的IRQ中断时 外部中断处理程序保存在R14 irq中的任何值都将被嵌套中断的返回地址所覆盖 链接寄存器R14 4 R14寄存器注意要点 a return 地址A 1 执行用户模式下的程序 2 发生IRQ中断 硬件将某个地址存入IRQ模式下的R14 irq寄存器 用户模式下的R14没有被破坏 3 IRQ服务程序A执行完毕 将R14 irq寄存器的内容减去某个常量后存入PC 返回之前被中断的程序 未被破坏 链接寄存器R14 4 R14寄存器注意要点 a 地址A 1 执行用户模式下的程序 2 发生IRQ中断 硬件将某个地址存入IRQ模式下的R14 irq寄存器 用户模式下的R14没有被破坏 3 IRQ服务程序A执行完毕 将R14 irq寄存器的内容减去某个常量后存入PC 返回之前被中断的程序 未被破坏 a return 地址B 4 如果在IRQ处理程序中打开IRQ中断 并且再次发生IRQ中断 或者调用子程序 5 硬件将返回地址保存在R14 irq寄存器中 原来保存的返回地址将被覆盖 造成错误 被破坏 6 在程序B返回到程序A 然后在返回到用户模式下被中断的程序时 发生错误 将不能正确返回 return return 解决办法是确保R14的对应版本在发生中断嵌套时不再保存任何有意义的值 将R14入栈 或者切换到其它处理器模式下 2 3 3寄存器 通用寄存器 R15用作程序计数器 PC 可以被读写读到的PC的值是PC当前值加8 2个指令的长度 三级流水线情况下 写PC则转移到写入地址执行程序 ARMstate 4字节对齐 最低两位bits 1 0 永远为0 V4以上版本 V3以下是把写入值与0XFFFFFFFC与操作 THUMBstate 2字节对齐 最低位bit 0 为0注 ARM存储器按字节组织 2 3 3寄存器 程序状态寄存器 ARM7TDMI内核包含1个CPSR 当前程序状态寄存器 和5个供异常处理程序使用的SPSR CPSR在所有的模式下都是可以读写的 反映了当前处理器的状态 其包含 4个条件标志 负 N 零 Z 进位 C 和溢出 V 2个中断使能标志5个当前处理器的模式编码位其它的一些状态和控制标志 ARM Thumb 条件位 N Negativeres

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论