本科-嵌入式ARM-第2章ARM7体系结构.ppt

上传人:max****ui 文档编号:8591864 上传时间:2020-03-30 格式:PPT 页数:76 大小:2.60MB
返回 下载 相关 举报
本科-嵌入式ARM-第2章ARM7体系结构.ppt_第1页
第1页 / 共76页
本科-嵌入式ARM-第2章ARM7体系结构.ppt_第2页
第2页 / 共76页
本科-嵌入式ARM-第2章ARM7体系结构.ppt_第3页
第3页 / 共76页
点击查看更多>>
资源描述
嵌入式系统结构与操作系统 胡威武汉科技大学计算机学院 1 ARM简介2 ARM7TDMI3 ARM的模块 内核和功能框图4 ARM处理器状态5 ARM处理器模式 ARM7体系结构 6 ARM内部寄存器7 当前程序状态寄存器8 ARM体系的异常 中断及其向量表9 ARM体系的存储系统 2 2 1ARM简介 ARM公司简介 ARM是AdvancedRISCMachines的缩写 它是一家微处理器行业的知名企业 该企业设计了大量高性能 廉价 耗能低的RISC 精简指令集 处理器 公司的特点是只设计芯片 而不生产 它将技术授权给世界上许多著名的半导体 软件和OEM厂商 并提供服务 3 2 1ARM简介 ARM公司简介 将技术授权给其它芯片厂商 形成各具特色的ARM芯片 4 2 1ARM简介 RISC结构特性 RISC是精简指令集计算机的缩写 其目标是设计出在高时钟频率下单周期执行 简单而有效的指令集 ARM内核采用RISC体系结构 因此具有RISC的结构特点 5 2 1ARM简介 为了使ARM能够更好地满足嵌入式应用的需要 ARM体系结构还有以下特点 每条数据处理指令可同时包含算术逻辑单元 ALU 的运算和移位处理 实现ALU和移位器的最大利用 使用地址自增和自减的寻址方式优化程序循环 装载 保存指令对数据的批量传输 实现最大数据吞吐量 大多数指令的条件执行 实现最快速的代码执行 ARM体系结构 6 2 1ARM简介 常用ARM处理器系列 ARM公司开发了很多系列的ARM处理器核 目前最新的系列是Cortex 而ARM6核以及更早的系列已经很罕见了 当前应用比较多的ARM处理器核系列有 7 2 1ARM简介 ARMCortex系列简介 基于ARMv7版本的ARMCortex系列产品由A R M三个系列组成 具体分类延续了一直以来ARM面向具体应用设计CPU的思路 ARMCortex 8 2 1ARM简介 CortexTM M3处理器简介 该处理器是首款基于ARMv7 M架构的处理器 采用了纯Thumb2指令的执行方式 具有极高的运算能力和中断相应能力 Cortex M3主要应用于汽车车身系统 工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域 目前最便宜的基于该内核的ARM单片机售价为1美元 9 2 1ARM简介 CortexTM R4处理器简介 该处理器是首款基于ARMv7架构的高级嵌入式处理器 其主要目标为产量巨大的高级嵌入式应用系统 如硬盘 喷墨式打印机 以及汽车安全系统等等 CortexTM R4F处理器简介 该处理器在CortexTM R4处理器的基础上加入了代码错误校正 ECC 技术 浮点运算单元 FPU 以及DMA综合配置的能力 增强了处理器在存储器保护单元 缓存 紧密耦合存储器 DMA访问以及调试方面的能力 10 2 1ARM简介 CortexTM A8处理器简介 该处理器是ARM公司所开发的基于ARMv7架构的首款应用级处理器 其特色是运用了可增加代码密度和加强性能的技术 可支持多媒体以及信号处理能力的NEONTM技术 以及能够支持Java和其他文字代码语言的提前和即时编译的Jazelle RTC技术 众多先进的技术使其适用于家电以及电子行业等各种高端的应用领域 11 2 1ARM简介 ARM7系列简介 该系列包括ARM7TDMI ARM7TDMI S 带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ S 该系列处理器提供Thumb16位压缩指令集和EmbededICE软件调试方式 适用于更大规模的SoC设计中 ARM7系列广泛应用于多媒体和嵌入式设备 包括Internet设备 网络和调制解调器设备 以及移动电话 PDA等无线设备 12 2 1ARM简介 该系列包括ARM9TDMI ARM920T和带有高速缓存处理器宏单元的ARM940T 除了兼容ARM7系列 而且能够更加灵活的设计 ARM9系列主要应用于引擎管理 仪器仪表 安全系统和机顶盒等领域 ARM9系列简介 13 2 1ARM简介 该系列为含有DSP指令集的综合处理器 包括ARM926EJ S 带有高速缓存处理器宏单元的ARM966E S ARM946E S 其内核在ARM7处理器内核的基础上使用了Jazelle增强技术 该技术支持一种新的Java操作状态 允许在硬件中执行Java字节码 ARM9E系列主要应用于下一代无线设备 数字消费品 成像设备 工业控制 存储设备和网络设备等领域 ARM9E系列简介 14 2 1ARM简介 ARM10E系列简介 该系列包括ARM1020E和ARM1020E处理器核 其核心在于使用向量浮点 VFP 单元VFP10提供高性能的浮点解决方案 从而极大提高了处理器的整型和浮点运算性能 可以用于视频游戏机和高性能打印机等场合 15 2 1ARM简介 Xscale简介 IntelXscale微控制器则提供全性能 高性价比 低功耗的解决方案 支持16位Thumb指令并集成数字信号处理 DSP 指令 主要应用于手提式通讯和消费电子类设备 16 1 ARM简介2 ARM7TDMI3 ARM的模块 内核和功能框图4 ARM处理器状态5 ARM处理器模式 ARM7体系结构 6 ARM内部寄存器7 当前程序状态寄存器8 ARM体系的异常 中断及其向量表9 ARM体系的存储系统 17 2 2ARM7TDMI 简介 ARM7TDMI是基于ARM体系结构V4版本的低端ARM核 其弥补了ARM6很难在低于5V电压下稳定工作的不足 还增加了后缀所对应的功能 注意 ARM核 并非芯片 ARM核与其它部件如RAM ROM 片内外设组合在一起才能构成现实的芯片 18 2 2ARM7TDMI 存储器的字与半字 从偶数地址开始的连续2个字节构成一个半字 以能被4整除的地址开始的连续4个字节构成一个字 ARM指令的长度刚好是一个字 Thumb指令的长度刚好是一个半字 19 2 2ARM7TDMI 如果一个数据是从偶地址开始的连续存储 那么它就是半字对齐 否则就是非半字对齐 如果一个数据是以能被4整除的地址开始的连续存储 那么它就是字对齐 否则就是非字对齐 存储器的存储方式 20 2 2ARM7TDMI 三级流水线 ARM处理器使用流水线来增加处理器指令流的速度 这样可使几个操作同时进行 并使处理和存储器系统连续操作 能提供0 9MIPS MHz的指令执行速度 ARM7TDMI的流水线分3级 分别为 取指 译码 执行 正常操作过程中 在执行一条指令的同时对下一条 第二条 指令进行译码 并将第三条指令从存储器中取出 在ARM状态下 流水线上各指令的地址为 在Thumb状态下 流水线上各指令的地址为 21 2 2ARM7TDMI 三级流水线结构的指令执行顺序 周期2 周期1 周期3 周期4 处理器执行一条指令的三个阶段 22 执行ADDPC PC 4指令后 PC的值为多少 2 2ARM7TDMI 思考题 ADD 程序计数器R15 PC 总是指向 正在取指 的指令 而不是指向 正在执行 的指令或 正在译码 的指令 一般来说 人们习惯性约定将 正在执行 的指令作为参考点 则 PC值 当前程序执行位置 8注 ARM状态时 每条指令为4字节长 PC指向0 x4000地址 取指ADD指令 PC指向0 x4004地址 译码ADD指令 PC指向0 x4008地址 执行ADD指令 所以指令执行的结果为 PC PC 4 0 x4008 4 0 x400C 23 1 ARM简介2 ARM7TDMI3 ARM的模块 内核和功能框图4 ARM处理器状态5 ARM处理器模式 ARM7体系结构 6 ARM内部寄存器7 当前程序状态寄存器8 ARM体系的异常 中断及其向量表9 ARM体系的存储系统 24 2 3ARM模块框图 CPU协处理接口信号 EmbedICE硬件仿真功能模块 片上调试系统 读写总线 25 2 3ARM内核框图 26 2 3ARM功能框图 总线控制 27 1 ARM简介2 ARM7TDMI3 ARM的模块 内核和功能框图4 ARM处理器状态5 ARM处理器模式 ARM7体系结构 6 ARM内部寄存器7 当前程序状态寄存器8 ARM体系的异常 中断及其向量表9 ARM体系的存储系统 28 2 4ARM处理器状态 处理器状态 ARM7TDMI处理器内核包含2套指令系统 分别为ARM指令集和Thumb指令 并且各自对应1种处理器的状态 ARM状态 32位 处理器执行字方式的ARM指令 处理器默认为此状态 Thumb状态 16位 处理器执行半字方式的Thumb指令 注意 两个状态之间的切换并不影响处理器模式或寄存器内容 29 2 4ARM处理器状态 状态切换的一个例子 使用BX指令将ARM内核的操作状态在ARM状态和Thumb状态之间进行切换 ARM指令集 Thumb指令集 CODE32LDRR0 Lable 1BXR0CODE16LableMOVR1 12 CODE16LDRR0 LableBXR0CODE32LableMOVR1 10 执行完BX指令 处理器切换到Thumb状态 开始执行Thumb指令 程序代码 指令集关系 从ARM状态切换到Thumb状态的程序代码如下 从Thumb状态切换到ARM状态的程序代码如下 执行完BX指令 处理器切换到ARM状态 开始执行ARM指令 30 1 ARM简介2 ARM7TDMI3 ARM的模块 内核和功能框图4 ARM处理器状态5 ARM处理器模式 ARM7体系结构 6 ARM内部寄存器7 当前程序状态寄存器8 ARM体系的异常 中断及其向量表9 ARM体系的存储系统 31 2 5ARM处理器模式 简介 ARM体系结构支持7种处理器模式 分别为 用户模式 快中断模式 中断模式 管理模式 中止模式 未定义模式和系统模式 这样的好处是可以更好的支持操作系统并提高工作效率 ARM7TDMI完全支持这七种模式 32 除用户模式外 其它模式均为特权模式 ARM内部寄存器和一些片内外设在硬件设计上只允许 或者可选为只允许 特权模式下访问 此外 特权模式可以自由的切换处理器模式 而用户模式不能直接切换到别的模式 处理器模式 这两种模式都不能由异常进入 想要进入必须修改CPSR 而且它们使用完全相同的寄存器组 系统模式是特权模式 不受用户模式的限制 操作系统在该模式下访问用户模式的寄存器就比较方便 而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源 这五种模式称为异常模式 它们除了可以通过程序切换进入外 也可以由特定的异常进入 当特定的异常出现时 处理器进入相应的模式 每种异常模式都有一些独立的寄存器 以避免异常退出时用户模式的状态不可靠 何时进入异常模式 具体规定如下 处理器复位之后进入管理模式 操作系统内核通常处于管理模式 当处理器访问存储器失败时 进入数据访问中止模式 当处理器遇到没有定义或不支持的指令时 进入未定义模式 中断模式与快速中断模式分别对ARM处理器2种不同级别的中断作出响应 33 1 ARM简介2 ARM7TDMI3 ARM的模块 内核和功能框图4 ARM处理器状态5 ARM处理器模式 ARM7体系结构 6 ARM内部寄存器7 当前程序状态寄存器8 ARM体系的异常 中断及其向量表9 ARM体系的存储系统 34 2 6ARM内部寄存器 简介 在ARM处理器内部共有37个用户可访问的寄存器 分别为31个通用32位寄存器和6个状态寄存器 ARM处理器共有7种不同的处理器模式 每种模式都有一组相应的寄存器组 最多可以18个活动的寄存器 35 ARM状态各模式下的寄存器 所有的37个寄存器 分成两大类 31个通用32位寄存器 6个状态寄存器 36 ARM状态各模式下可以访问的寄存器 37 未分组的通用寄存器 寄存器R0 R7为未分组的通用寄存器 它们在任何处理器模式都对应于相同的32位物理寄存器 第一类分组的通用寄存器 寄存器R8 R12有两个分组的物理寄存器 一个用于除FIQ模式之外的所有寄存器模式 另一个用于FIQ模式 在发生FIQ中断后 处理器不必为保护寄存器而浪费时间 从而加速了FIQ的处理速度 第二类分组的通用寄存器 寄存器R13 R14分别有6个分组的物理寄存器 1个用于用户和系统模式 其余5个分别用于5种异常模式 寄存器R13通常作为堆栈指针 SP 用于保存待使用的寄存器的内容 寄存器R14称为链接寄存器 LR 在结构上有两个特殊功能 当使用BL指令调用子程序时 返回地址将自动存入R14中 当发生异常时 将R14对应的异常模式版本设置为异常返回地址 有些异常有一个小的固定偏移量 程序计数器 寄存器R15称为程序计数器 PC 它指向正在 取指 的指令 状态寄存器 寄存器CPSR为当前程序状态寄存器 在异常模式中 另外一个寄存器 程序状态保存寄存器 SPSR 可以被访问 每种异常都有自己的SPSR 在进入异常时它保存CPSR的当前值 异常退出时可通过它恢复CPSR 38 2 6ARM内部寄存器 在Thumb状态各模式下实际访问的寄存器 Thumb状态寄存器集是ARM状态集的子集 程序员可以直接访问的寄存器为 8个通用寄存器R0 R7 程序计数器 PC 堆栈指针 SP 链接寄存器 LR 当前程序状态寄存器 CPSR 39 在Thumb状态各模式下的寄存器 未分组的通用寄存器 第二类分组的通用寄存器 在汇编语言中寄存器R0 R7为通用寄存器 对于任何处理器模式 它们中的每一个都对应于相同的32为物理寄存器 堆栈指针SP对应ARM状态的寄存器R13 每个异常模式都有其自身的SP分组版本 SP通常指向各异常模式所专用的堆栈 注意 在发生异常时 处理器自动进入ARM状态 链接寄存器LR对应ARM状态寄存器R14 注意 在发生异常时 处理器自动进入ARM状态 40 ARM状态 Thumb寄存器在ARM状态寄存器上的映射 Thumb状态 在Thumb状态中 高端寄存器的访问是受到限制的 只有MOV CMP和ADD指令可以对其访问 可以用于数据的快速暂存 41 状态切换过程 程序在正常运行的过程中 复位事件产生 导致系统复位 42 1 ARM简介2 ARM7TDMI3 ARM的模块 内核和功能框图4 ARM处理器状态5 ARM处理器模式 ARM7体系结构 6 ARM内部寄存器7 当前程序状态寄存器8 ARM体系的异常 中断及其向量表9 ARM体系的存储系统 43 2 7当前程序状态寄存器 简介 ARM内核包含1个CPSR和5个仅供异常处理程序使用的SPSR CPSR反映当前处理器的状态 其包含 4个条件代码标志 负标志N 零标志Z 进位标志C和溢出标志V 2个中断禁止位 IRQ禁止与FIQ禁止 5个对当前处理器模式进行编码的位 M 4 0 1个用于指示当前执行指令的位 ARM指令还是Thumb指令 44 2 7当前程序状态寄存器 程序状态寄存器的格式 条件代码标志 保留 控制位 溢出标志 进位或借位扩展 零 负或小于 IRQ禁止 FIQ禁止 状态位 模式位 N Z C V I T F 45 2 7当前程序状态寄存器 条件代码标志 各标志位的含义如下 负标志N 运算结果的第31位值 记录标志设置操作的结果 零标志Z 如果标志设置的操作为0 则置位 进位标志C 记录无符号加法溢出 减法无借位 循环移位 溢出标志V 记录标志设置操作的有符号溢出 46 警告 绝对不要强制改变CPSR寄存器中的控制位T 如果这样做 处理器将进入一个无法预测的状态 2 7当前程序状态寄存器 控制位 1 中断禁止控制位I和F 2 处理器状态位T 3 处理器模式位M0 M4 注意 不是所有模式位的组合都定义了有效的处理器模式 如果将非法值写入M 4 0 中 处理器将进入一个无法恢复的模式 47 2 7当前程序状态寄存器 保留位 CPSR中的保留位被保留将来使用 当改变CPSR标志和控制位时 请确认没有改变这些保留位 另外 请确保您的程序不依赖于包含特定值的保留位 因为将来的处理器可能会将这些位设置为1或者0 48 1 ARM简介2 ARM7TDMI3 ARM的模块 内核和功能框图4 ARM处理器状态5 ARM处理器模式 ARM7体系结构 6 ARM内部寄存器7 当前程序状态寄存器8 ARM体系的异常 中断及其向量表9 ARM体系的存储系统 49 2 8ARM体系的异常 异常简介 只要正常的程序流被暂时中止 处理器就进入异常模式 例如在用户模式下执行程序时 当外设向处理器内核发出中断请求导致内核从用户模式切换到异常中断模式 如果同时发生两个或更多异常 那么将按照固定的顺序来处理异常 50 异常入口 出口汇总 下表所示为异常返回地址值以及退出异常处理程序所推荐使用的指令 注意 MOVSPC R14 svc 是指在管理模式执行MOVSPC R14指令 同样类似的指令还有 MOVSPC R14 und SUBSPC R14 abt 4 等 51 2 8ARM体系的异常 异常向量表 注 表中的I和F表示不对该位有影响 保留原来的值 52 2 8ARM体系的异常 异常优先级 当多个异常同时发生时 一个固定的优先级决定系统处理它们的顺序 优先级由高到低 53 2 8ARM体系的异常 异常的进入 当一个异常导致模式切换时 内核自动的做如下处理 将异常处理程序的返回地址 加固定的偏移量 保存到相应异常模式下的LR 将CPSR的当前值保存到相应异常模式下的SPSR 设置CPSR为相应的异常模式 设置PC为相应异常处理程序的中断入口向量地址 跳转到相应的异常中断处理程序执行 BackAddr JumpAddr UserMode ExceptionMode 程序代码正常运行在用户模式下 54 2 8ARM体系的异常 异常的进入 当一个异常导致模式切换时 内核自动的做如下处理 将异常处理程序的返回地址 加固定的偏移量 保存到相应异常模式下的LR 将CPSR的当前值保存到相应异常模式下的SPSR 设置CPSR为相应的异常模式 设置PC为相应异常处理程序的中断入口向量地址 跳转到相应的异常中断处理程序执行 55 2 8ARM体系的异常 异常的退出 当异常处理程序结束时 异常处理程序必须 返回到发生异常中断的指令的下一条指令处执行 即就是说将LR中的值减去偏移量后移入PC 将SPSR的值复制回CPSR BackAddr CurrentAddr UserMode ExceptionMode BackAddr Off 56 2 8ARM体系的异常 异常的退出 当异常处理程序结束时 异常处理程序必须 返回到发生异常中断的指令的下一条指令处执行 即就是说将LR中的值减去偏移量后移入PC 将SPSR的值复制回CPSR 清零在入口处置位的中断禁止标志 57 2 8ARM体系的异常 复位异常 当nRESET信号被拉低时 ARM处理器放弃正在执行的指令 等到nRESET信号再次变高时 处理器执行一下操作 强制M 4 0 变为b10011 系统进入管理模式 将CPSR中的标志位I和F置位 IRQ与FIQ中断被禁止 将CPSR中的标志位T清零 处理器处于ARM状态 强制PC从地址0 x00开始对下一条指令进行取指 返回到ARM状态并恢复执行 58 2 8ARM体系的异常 中断请求异常 只有当CPSR中相应的中断屏蔽位被清除时 才可能发生IRQ异常 中断请求 IRQ 异常由一个nIRQ输入端的低电平所产生的正常中断 注 中断异常产生时 中断异常模式下的R14保存的是PC的值 指令1的执行不会中断 异常程序结束时返回到指令2 进入中断服务程序时 指令3地址被保存在R14中 59 程序运行在用户模式下 当一个IRQ异常中断发生时 内核切换到 中断模式 并自动的做如下处理 2 8ARM体系的异常 进入IRQ异常模式 USR模式 IRQ模式 60 2 8ARM体系的异常 退出IRQ异常模式 IRQ模式 USR模式 中断服务程序执行完毕后 系统将通过以下几步软件操作返回用户模式 61 2 8ARM体系的异常 快速中断请求异常 快速中断请求 FIQ 适用于对一个突发事件的快速响应 这得益于在ARM状态中 快中断模式有8个专用的寄存器可用来满足寄存器保护的需要 这可以加速上下文切换的速度 不管异常入口是来自ARM状态还是Thumb状态 FIQ处理程序都会通过执行下面的指令从中断返回 SUBSPC R14 fiq 4在一个特权模式中 可以通过置位CPSR中的F位来禁止FIQ异常 62 FIQ中断的例子 表示该位无关 BackAddr JumpAddr 1 0 BackAddr 4 Thumb不是一个完整的体系结构 不能指望处理器只执行Thumb指令而不支持ARM指令集 因此 Thumb指令只需要支持通用功能 必要时可以借助于完善的ARM指令集 比如 所有异常自动进入ARM状态 在系统模式下运行用户程序 当前处理器处于Thumb状态 执行Thumb指令代码 同时处理器还允许IRQ和FIQ中断 指令1的在执行过程产生了FIQ中断 注 完成指令1的执行后才响应中断 FIQ中断相应过程中 硬件自动执行如下动作 将CPSR寄存器内容存入IRQ模式的SPSR寄存器 置为F和I 禁止FIQ和IRQ中断 清零T位 进入ARM状态 设置MOD位 切换处理器模式至FIQ模式 将下一条的地址存入FIQ模式的LR寄存器 即指令3的地址 将跳转地址存入PC 即FIQ中断服务函数的入口地址 实现跳转 FIQ中断服务程序在ARM状态下执行现场保护等操作 FIQ中断服务程序使用BX指令 将处理器从ARM状态切换到Thumb状态 通过置位CPSR的T位实现 FIQ中断服务程序开始执行Thumb指令 FIQ中断服务程序使用BX指令 将处理器从Thumb状态切换到ARM状态 通过清除CPSR的T位实现 FIQ中断服务程序在ARM状态下执行恢复中断现场等操作 FIQ中断异常处理结束后 异常处理程序完成以下动作 将SPSR寄存器的值复制回CPSR寄存器 将LR寄存的值减去一个常量 FIQ异常为4 后复制到PC寄存器 跳转到被中断的用户程序 指令2的地址 63 2 8ARM体系的异常 未定义的指令异常 未定义指令异常是内部异常中断 当ARM处理器遇到一条自己和系统内部任何协处理器都无法执行的指令时 就会发生未定义指令异常 从而进入中断处理程序 同时软件可使用这一机制通过仿真未定义的协处理器指令来扩展ARM指令集 在仿真失败的指令后 捕获处理器执行下面的指令 MOVSPC R14 und 64 2 8ARM体系的异常 中止异常 中止表示当前对存储器的访问不能被完成 这是由外部ABORT输入信号引起的异常中断 中止类型有2种类型 预取指中止 由程序存储器引起的中止异常 数据中止 由数据存储器引起的中止异常 65 2 8ARM体系的异常 预取指中止 当发生预取指中止时 ARM内核将预取的指令标记为无效 但在指令到达流水线的执行阶段时才进入异常 如果指令在流水线中因为发生分支而没有被执行 中止将不会发生 在处理中止的原因之后 不管处于哪种处理器操作状态 处理程序都会执行下面的指令恢复PC和CPSR并重试被中止的指令 SUBSPC R14 abt 4 66 2 8ARM体系的异常 数据中止 当发生数据中止异常时 异常会在 导致异常的指令 执行后的下一条指令发生 在这种情况下 理想的状况是进入数据中止异常的ISR 然后在内存中挑选出问题 再重新执行导致异常的指令 在修复产生中止的原因后 不管处于哪种处理器操作状态 处理程序都必须执行下面的返回指令 SUBSPC R14 abt 8 67 2 8ARM体系的异常 软件中断异常 软件中断异常 SWI 用于进入管理模式 通常用于请求一个特定的管理函数 SWI处理程序通过执行下面的指令返回 MOVSPC R14 svc这个动作恢复了PC和CPSR并返回到SWI之后的指令 SWI处理程序读取操作码以提取SWI函数编号 68 2 8ARM体系的异常 中断延迟 中断延迟即从外部中断请求信号发出到执行对应的中断服务程序ISR的第1条指令所需要的时间 通过软件程序设计来缩短中断延迟的方法有 中断优先级和中断嵌套 69 1 ARM简介2 ARM7TDMI3 ARM的模块 内核和功能框图4 ARM处理器状态5 ARM处理器模式 ARM7体系结构 6 ARM内部寄存器7 当前程序状态寄存器8 ARM体系的异常 中断及其向量表9 ARM体系的存储系统 70 2 9ARM体系的存储系统 简介 ARM处理器采用冯 诺依曼 VonNeumann 结构 指令 数据和I O统一编址 即存在同一个空间 只有装载 保存和交换指令可访问存储器中的数据 ARM芯片一般在处理器核和外部存储器之间有一个存储器管理部件将局部总线的信号和时序转换为现实的外部总线信号和时序 ARM7的规范定义了局部总线的信号和时序 各芯片生产厂商制定了自己的外部总线的信号和时序 71 2 9ARM体系的存储系统 地址空间 ARM结构使用单个平面的232个8位字节地址空间 地址空间可以看作是包含230个32位字 或231个16位半字 如果地址向上或向下溢出地址空间 通常会发生翻转 注意 如果在取指操作时地址发生溢出 只要没有执行预取的无效指令 就不会导致异常 72 2 9ARM体系的存储系统 存储器格式 地址空间的规则要求字地址A 位于地址A的字包含的字节位于地址A A 1 A 2和A 3 位于地址A的半字包含的字节位于地址A和A 1 位于地址A 2的半字包含的字节位于地址A 2和A 3 位于地址A的字包含的半字位于地址A和A 2 73 2 9ARM体系的存储系统 存储器格式 存储器系统有两种映射机制 小端存储器系统 在小端格式中 数据的高字节存放在高地址中 大端存储器系统 在大端格式中 数据的高字节存放在低地址中 0 x120 x340 x560 x78 0 x780 x560 x340 x12 74 2 9ARM体系的存储系统 非对齐的存储器访问 ARM结构通常希望所有的存储器访问都合理的对齐 具体来说就是字访问的地址通常是字对齐的 而半字访问使用的地址是半字对齐的 不按这种方式对齐的存储器访问称为非对齐的存储器访问 将一个非字 半字 对齐的地址写入ARM Thumb 状态的R15寄存器 将引起非对齐的指令取指 在一个非字 半字 对齐的地址读写一个字 半字 将引起非对齐的数据访问 75 谢谢 76
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!