上海高考数学答案文科.ppt

上传人:max****ui 文档编号:8319211 上传时间:2020-03-28 格式:PPT 页数:50 大小:1.10MB
返回 下载 相关 举报
上海高考数学答案文科.ppt_第1页
第1页 / 共50页
上海高考数学答案文科.ppt_第2页
第2页 / 共50页
上海高考数学答案文科.ppt_第3页
第3页 / 共50页
点击查看更多>>
资源描述
第2章ARM体系结构 目录 2 1ARM体系结构2 2ARM工作状态和工作模式2 3ARM状态下寄存器组织2 4Tumb状态下寄存器组织2 5ARM存储器组织2 6异常 2 2 1ARM体系结构 ARM内核以其高性能 低功耗等特点 被公认为业界领先的32位嵌入式RISC微处理器核 得到了越来越多半导体生产厂商的青睐 以ARM核为嵌入式微处理器的核心 配以各厂家根据自己处理器的应用领域定位不同而设计的独有的片内I O 形成了各种各样可供不同应用领域选择使用的微处理器芯片 因此 了解ARM内核是进行嵌入式微处理器芯片选择 操作系统移植 应用软件开发以及硬件系统设计与调试等工作的基础 本章围绕ARM7TDMI核 从应用系统开发人员的角度 对ARM的内核结构 工作状态 工作模式以及应用程序可访问的寄存器结构 存储器组织等进行详细介绍 为后续各章节的学习打下坚实的基础 3 2 1ARM体系结构 2 1ARM核及基于ARM核的芯片结构目前流行的ARM处理器IP核有十多个 获得ARM公司授权的半导体制造厂商多大70多家 不可能也没有必要对每个IP核 每种ARM芯片进行一一介绍 考虑到ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器IP核 且其指令系统与ARM9系列 ARM9E系列和ARM10E系列兼容 本书将重点介绍ARM7TMDI内核结构 本章介绍 以及飞利浦半导体公司 NXP恩智浦半导体 使用该IP核设计生产的LPC2200系列ARM芯片 第5章和第6章 读者在实际工作中涉及到其它ARM微处理器IP核及芯片时 可参阅相关书籍或技术手册 ARM7TDMI是ARM公司最早为业界普遍认可且得到了广泛应用的核 特别是在手机和PDA应用中 随着ARM技术的发展 它已是目前最低端的ARM核 4 2 1ARM体系结构 2 1 1ARM内核不同版本的ARM核其内部结构是有所区别的 但是其数据流模型基本上是一致的 从应用系统开发者的角度来看 可以抛开处理器内部具体硬件结构的细节 而把ARM内核看作是由总线连接的各个功能单元组成的集合 ARM内核功能的实现最终体现为各种数据在不同部件之间的流动 图2 1为ARM7TDMI内核的内部结构框图 5 2 1ARM体系结构 6 2 1ARM体系结构 可以看出 ARM7TDMI核内部各组成部件之间通过5条相互独立的片内总线连接起来 这5条总线分别是PC总线 地址自增总线 ALU总线 A总线和B总线 ARM7TDMI有37个32位寄存器 有6个状态寄存器 7 2 1ARM体系结构 2 1 2基于ARM核的芯片结构半导体厂商从ARM公司购买其设计的ARM微处理器核 根据各自不同的应用领域 加入适当的外围电路 片内I O 从而形成自己的ARM微处理器芯片 图2 2为一个典型的使用ARM核的微处理器芯片内部结构图 可以看出 ARM芯片的核心为ARM处理器核 通过片内总线将ARM微处理器 控制器 DMA控制器 总线仲裁控制器等 和各种片内I O 存储器 键盘 URAT等 连接到一起 ARM芯片内部广泛采用AMBA AdvancedMicroprocessorBusArchitecture 总线结构 最初的AMBA总线包含ARM系统总线ASB AdvancedSystemBus 和ARM外设总线APB AdvancedPeripheralBus 之后又提出一种称为ARM高性能总线AHB AdvancedHigh performanceBus AHB直接连接到微处理器核 它是为高速传输而优化设计的 支持流水线技术 突发传输 多总线控制器等高性能总线特性 用于连接性能高速的片内I O APB假设外设工作在主从方式 且不支持流水线操作 以简化外设和总线控制器中所需的逻辑 APB用于连接低速片内I O 8 2 1ARM体系结构 9 2 2ARM工作状态和工作模式 2 2ARM工作状态和工作模式2 2 1ARM处理器工作状态从编程的角度看 ARM处理器有两种工作状态 32位的ARM状态和16位的Thumb状态 并且ARM可以在两种状态之间进行几乎零开销的切换 处理器工作状态的转变不影响处理器的工作模式 ARM处理器有7中工作模式 详见下节 和相应寄存器中的内容 10 2 2ARM工作状态和工作模式 ARM状态 处理器执行32位的字对齐的ARM指令 ARM处理器在最开始执行代码时处于ARM状态 当操作数寄存器的状态位 位0 为1时 执行BX指令可使微处理器从ARM状态切换到Thumb状态 当处理器处于Thumb状态时发生异常 如IRQ FIQ Undef Abort SWI等 则异常处理返回时 自动切换到ARM状态 Thumb状态 处理器执行16位的半字对齐的Thumb指令 当操作数寄存器的状态位 位0 为0时 执行BX指令时可以使微处理器从Thumb状态切换到ARM状态 在处理器进行异常处理时 把PC指针放入异常模式连接寄存器中 并从异常向量地址开始执行程序 也可以使处理器切换到ARM状态 11 2 2ARM工作状态和工作模式 使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换 详见第3章 程序如下所示 从Arm状态切换到Thumb状态LDRR0 Lable 1 Lable为跳转的目标地址 其最低两位为00BXR0 地址 Lable 1 最低位为1 表示切换到Thumb状态 从Thumb状态切换到ARM状态LDRR0 Lable 地址 Lable 最低位为0 表示切换到ARM状态BXR0 12 2 2ARM工作状态和工作模式 2 2 2ARM处理器工作模式ARM处理器有7种基本工作模式 除用户模式以外 其余的6种模式称为非用户模式或特权模式 除去用户模式和系统模式以外的5种又称为异常模式 常用于处理中断或异常 以及需要访问受保护的系统资源等情况 13 2 2ARM工作状态和工作模式 1 用户模式 User 非特权模式 正常程序执行的模式 大部分任务执行在这种模式下 2 系统模式 System 使用和User模式相同寄存器集的特权模式 但是运行的是特权级的操作系统任务 3 快速中断模式 FIQ 当一个高优先级中断产生时将会进入这种模式 用于高速数据传输和通道处理 4 普通中断模式 IRQ 当一个低优先级中断产生时将会进入这种模式 用于通常的中断处理 5 管理模式 Supervisor 当复位或软中断指令执行时将会进入这种模式 是一种可以供操作系统使用的保护模式 6 中止模式 Abort 当数据或指令存取异常时将会进入这种模式 用于虚拟存储及存储保护 7 未定义模式 Undefined 当执行未定义指令时会进入这种模式 可用于支持硬件协处理器的软件仿真 14 2 2ARM工作状态和工作模式 15 绝大多数应用程序都在用户模式下运行 当处理器运行在用户模式下时 某些被保护的系统资源是不能被访问的 除了产生异常实现模式切换外 不能随意进行模式切换 这将有效的保护系统资源 除用户模式外 其他模式均为私有模式 这些模式对系统有完全的访问控制权 另外 这6中模式既可以通过软件改变 也可以通过外部中断和异常处理来实现模式的改变 2 3ARM状态下寄存器组织 ARM处理器在ARM状态下共有37个32位寄存器 其中31个为通用寄存器 6个为状态寄存器 如图2 3所示 处理器在某种模式时有其对应的一组寄存器 其中用户模式和系统模式使用的是完全相同的一组寄存器 对于其他5种异常模式 为了使进入异常模式后不会影响系统的正常工作或为了提高响应速度 专门设计了对应模式独用的一些寄存器 图中以三角形标出 称其为分组寄存器 16 2 3ARM状态下寄存器组织 17 2 3ARM状态下寄存器组织 2 3 1通用寄存器通用寄存器R0 R15通常用来存放数据 但有些寄存器 如R13 R14 R15 也被赋予其他特殊用途 R13常被用作堆栈指针寄存器SP R14被用作子程序连接寄存器LR R15用作程序计数器PC 详见下述 1 共用寄存器 R0 R7 共用寄存器R0 R7是被所有运行模式共用的 指向的是同一个物理寄存器 它们用来存放数据 未被系统用做特殊的用途 因此 在中断或异常处理进行运行模式转换时 由于不同的处理器运行模式均使用相同的物理寄存器 可能会造成寄存器中数据的破坏 这一点在进行程序设计时要引起注意 18 2 3ARM状态下寄存器组织 2 分组寄存器 R8 R14 与共用寄存器不同 分组寄存器R8 R14在不同的模式下可能访问的是不同的物理寄存器 分一下三种情况讨论 R8 R12 快速中断模式 FIQ 有对应的专门寄存器 R8 fiq R12 fiq 以减少中断保护所需要的时间开销 实现中断的快速响应 其他6中模式使用相同的物理寄存器R8 R12 R13 在ARM指令中常用作堆栈指针SP 但这只是一种习惯用法 用户也可以使用其它寄存器作为堆栈指针 而在Thumb指令中 某些指令强制性地要求使用R13作为堆栈指针 由于每种运行模式都有各自独立的物理寄存器R13 所以在用户应用程序的初始化部分 一般都要初始化每种模式下的R13 使其指向该运行模式的栈空间 这样 当程序的运行进入异常模式时 可以将需要保护的寄存器放入R13所指向的堆栈 而当程序从异常模式返回时 则从对应的堆栈中恢复相关寄存器的值 采用这种方式可以保证异常发生后程序的正常执行 R14 R14也被称为子程序连接寄存器 SubroutineLinkRegister 或连接寄存器LR 当用BL或BLX指令调用子程序时 系统自动将PC R15 的当前值复制给R14 执行完子程序后 为了返回到调用处 在子程序的最后安排一条指令 将保存在R14中的断点地址送回给PC R15 这样程序就可以从子程序返回到调用处 在其他情况下 R14用作通用寄存器 与之类似 当发生中断或异常时 对应的分组寄存器R14 svc R14 irq R14 fiq R14 abt和R14 und用来保存R15 PC 的值 19 2 3ARM状态下寄存器组织 3 程序计数器 R15 寄存器R15用作程序计数器 PC 用来存放下一条要读取指令的地址 在ARM状态下 位 1 0 为0 位 31 2 用于保存PC 在Thumb状态下 位 0 为0 位 31 1 用于保存PC R15虽然也可用做通用数据寄存器 但一般不这样使用 因为对R15的使用有一些特殊的限制 当违反了这些限制时 程序的执行结果是未知的 由于ARM体系结构采用了多级流水线技术 所以对于ARM7TDMI而言 由于有取指 译码和执行三级流水结构 同时进行执行 译码和取指三个操作 因此 一下条要读取指令所在存储单元的地址为当前正在执行指令所在单元的地址加8 20 2 3ARM状态下寄存器组织 注 因为ARM状态处理器执行的是32位字对齐的ARM指令 一条指令需要4个字节对齐存放 因此指令地址的低两位为00 Thumb状态处理器执行的是16位半字对齐的Thumb指令 需要个字节对齐存放 地址的最低位为0 21 2 3ARM状态下寄存器组织 2 3 2程序状态寄存器ARM有两类程序状态寄存器 当前程序状态寄存器CPSR CurrentProgramStatusRegister 和程序状态保存寄存器SPSR SavedProgramStatusRegister 如图2 3所示 CPSR是ARM的7种工作模式共用的一个物理寄存器 可以被任何一种工作模式访问 用来存放或设置相关的状态标志和控制标志 CPSR各位的功能见图2 4 22 2 3ARM状态下寄存器组织 23 2 3ARM状态下寄存器组织 如图2 3所示 ARM的5种异常模式各自都有一个程序状态保存寄存器SPSR 当异常发生时 每种异常模式专用的SPSR用于保存CPSR的当前值 从而在异常返回时恢复CPSR原有的状态 用户模式和系统模式不属于异常模式 所以不需要SPSR来保存CPSR 如图2 4所示 程序状态寄存器是一个32位寄存器 其中0 7位控制位 8 27位保留未用 28 31位为状态标志位 24 2 3ARM状态下寄存器组织 1 状态标志位N Z C V是四个状态标志位 CPSR各状态位的置位或清零操作 通常是处理器根据当前执行运算指令的结果 由硬件电路自动完成的 在应用程序设计中常常需要根据状态位的情况实现程序的各种判断和处理 各标志位的含义见表2 1 25 2 3ARM状态下寄存器组织 在ARM处理器体系机构中 所有的ARM指令都可以条件执行 Thumb指令集中的B分支指令也可以条件执行 这些状态标志位的各种组合构成了指令执行的条件 也就是说 指令条件执行的依据就是这些状态标志位 因此 有些资料中把这几个标志位也称为条件码 指令的条件执行是指当指令满足了指令约定的执行条件时 这条指令才被执行 否则 这条指令仅仅是空流过处理器 不做任何操作 如指令 ADDNER0 R0 R1 就是一条条件执行指令 其条件为 NE NotEqual 也就是上一条指令执行后CPSR中标志位Z被设置为0 两操作数不相等 时条件成立 执行R0 R1并将结果送R0 否则 不执行相加操作 26 2 3ARM状态下寄存器组织 2 控制位CPSR的低8位 包括I F T和M 4 0 称为控制位 当发生异常时这些位可以被改变 如果处理器运行在特权模式 这些位也可以由程序修改 1 中断禁止位I和F中断禁止位包括I和F 用来禁止或允许IRQ和FIQ两类中断 当I 1时 表示禁止IRQ中断 I 0时表示允许IRQ中断 当F 1时 表示禁止FIQ中断 F 0时 表示允许FIQ中断 27 2 3ARM状态下寄存器组织 2 工作状态标志位TT标志位用来标识 设置处理器的工作状态 对于ARM体系结构v4及以上的版本的T系列处理器 当该位为1时 程序运行于Thumb状态 当该位为0时 表示运行于ARM状态 ARM指令集和Thumb指令集均有切换处理器状态的指令 这些指令通过修改T位的值来实现在两种工作状态之间切换 3 工作模式控制位工作模式控制位 M 4 0 用来标识或设置处理器的工作模式 M4 M3 M2 M1 M0不同组合来实现处理器工作模式的设置 见表2 2所示 可以看出 CPSR中用5位来设置处理器的工作模式 理论上可设置的工作模式有 25 32种 但ARM的实际工作模式只有7种 因此 有部分编码组合是无效的 使用这些无效组合的编码会导致处理器进入一个不可恢复的状态 28 2 3ARM状态下寄存器组织 29 2 3ARM状态下寄存器组织 30 3 保留位CPSR中的位8到位27为保留位 保留位将用于ARM版本的扩展 CPSR和SPSR可通过专门指令进行访问 这些指令将在第3章介绍 2 4Thumb状态下寄存器组织 Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集 如图2 5所示 Thumb状态共有27个32位寄存器 其中21个为通用寄存器 6个为状态寄存器 图2 6给出Thumb状态下的寄存器组织与ARM状态下的寄存器组织的关系 31 2 4Thumb状态下寄存器组织 32 2 4Thumb状态下寄存器组织 33 2 4Thumb状态下寄存器组织 34 Thumb状态下的寄存器组织与ARM状态寄存器组织有如下的关系 Thumb状态R0 R7与ARM状态R0 R7相同 Thumb状态CPSR和SPSR与ARM状态CPSR和SPSR相同 Thumb状态SP映射到ARM状态R13 Thumb状态LR映射到ARM状态R14 Thumb状态PC映射到ARM状态PC R15 以上对应关系如图2 6所示 2 5ARM存储器组织 2 5 1编址方式与寻址空间在计算机系统中主要有两类资源需要编址访问 存储单元和I O端口 这两类资源在计算机系统中有两种编址方式 1 统一编址方式 存储单元和I O端口统一编址在同一个地址空间 该方式的特点是 将同一地址空间分别分配给存储器单元和I O端口 可用访问存储单元的指令访问I O端口 无专用的I O访问指令 35 2 5ARM存储器组织 2 独立编址方式 存储单元和I O端口分别编址在两个地址空间 即存储器地址空间和I O地址空间 该方式的特点是 按资源分类的地址空间清晰 使用不同的指令访问存储单元和I O端口 即有专用的I O访问指令 芯片上有专用于I O访问的引脚 ARM处理器有32条地址线 使用统一编址方式 将存储器 I O端口等组织在一个线性递增的字节地址空间中 ARM处理器寻址的地址空间为0 x00000000 0 xFFFFFFFF 共4GB ARM处理器支持字节 8bit 半字 16bit 和字 32bit 数据访问 在进行半字和字数据访问时 要求数据是半字 字对齐存储 ARM处理器支持232个字节 4GB 地址空间 这些地址空间也可以组织成231个半字地址空间或230个字地址空间 36 2 5ARM存储器组织 2 5 2数据类型ARM处理器的指令长度可以是32位 在ARM状态下 也可以是16位 在Thumb状态下 对操作数的数据类型而言 ARM处理器支持字节 8位 半字 16位 和字 32位 3种数据类型 其中 字需要4字节对齐 地址的低两位为0 半字需要2字节对齐 地址的最低位为0 地址空间的规则 位于地址A的字包含的字节位于地址A A 1 A 2和A 3 位于地址A的半字包含的字节位于地址A和A 1 位于地址A 2的半字包含的字节位于地址A 2和A 3 位于地址A的字包含的半字位于地址A和A 2 37 2 5ARM存储器组织 2 5 3存储格式ARM体系结构可以使用两种方法来存储字数据 称为大端格式和小端格式 小端格式在小端格式中 高位数字存放在高地址字节中 因此存储器系统字节0连接到数据线7 0 低位对齐 大端格式在大端格式中 高位数字存放在低地址字节中 因此存储器系统字节0连接到数据线31 24 高位对齐 32位字数据0 x12345678分别以小端模式和大端模式存储时的具体情况如图2 7所示 38 2 5ARM存储器组织 39 2 5ARM存储器组织 40 如果数据都是按字存放 按字读取的 则用户不必关心存储器格式是大端模式还是小端模式 处理器会按照一致的格式来访问存储器 只有在使用字节数据组装字数据 或字数据拆成字节数据 时 才需要关心存储器的大小端模式 来保证数据的正确性 ARM指令集不包含任何大小端存储器格式相关的指令 一个支持大小端存储器模式的ARM芯片 通常由硬件配置 芯片引脚的高低电平 来选择对存储器系统访问用的是大端模式还是小端模式 飞利浦LPC2000系列ARM固定为小端模式 2 6异常 2 6异常2 6 1ARM异常类型在ARM系统中 异常是一些事件 这些事件能导致正常运行的程序被暂时停止 而进入到该事件对应的处理器异常模式并对该事件进行处理 这个过程叫做异常响应 ARM体系结构支持复位 未定义指令 SWI 软中断 预取指终止 预取数终止 IRQ以及FIQ等7种异常 具体含义见表2 3 41 2 6异常 42 2 6异常 2 6 2ARM异常的处理1 异常向量表ARM处理器硬件约定 在处理器寻址空间0 x00000000开始安排了一个称为异常向量表的特殊存储空间 如表2 4所示 当ARM处理器硬件约定的异常发生时 处理器按照异常的种类自动转移到表2 4所列特定单元取指执行 例如 发生复位异常时 处理器自动转移到0 x00000000单元取指执行 当发生FIQ异常时 处理器自动转移到0 x0000001C地址单元取指执行 异常处理通常是一段程序 所以在异常向量表的各字单元中存放一条32位的跳转指令 实现到各异常处理代码的转移 43 2 6异常 44 2 6异常 2 异常响应当异常发生时 ARM硬件自动完成图2 8所示的一系列操作 图中SPSR x LR x是指处理器模式x下的SPSR和LR寄存器 首先 ARM硬件自动将当前程序状态寄存器CPSR和PC的内容拷贝到异常发生后所进入的处理器模式对应的SPSR x寄存器和LR x寄存器 之后根据异常类型改写CPSR中的控制位 以便设置IRQ和FIQ的中断允许状态和处理器工作模式 最后根据不同的异常重置PC 以便使处理器转到异常向量表对应的字单元执行对应的跳转程序 转去执行相应的异常处理程序 表2 5 异常响应 一列给出各种异常发生时硬件进行的响应操作 45 2 6异常 46 2 6异常 3 异常返回当异常处理程序结束时 异常处理程序返回发生异常所中断程序的断点处继续执行 在异常处理程序的最后 把进入异常前有硬件压入到该异常模式的程序状态寄存器的值送给CPSR 把压入该模式R14 LR 的值经过适当修正后送给PC 为什么要对LR中的值修正后才能送给PC呢 这是由于ARM流水线的存在 在进入异常处理时被保存到LR中的值未必就是程序返回地址 各种异常模式返回地址见表2 5 47 2 6异常 2 6 3ARM异常的优先级异常优先级包含两种的情况 第一种情况是多个异常同时发生时处理器如何响应 第二种情况是处理器正在处理异常过程中又有新的异常发生时处理器如何响应 在ARM异常响应机制中 处理器硬件仅解决了当多个异常同时发生时处理器如何响应的问题 系统约定总是优先级高的异常优先获得响应 在ARM体系结构中 硬件约定了各个异常的优先级顺序 详见表2 6 异常嵌套及嵌套方案则由软件完成 从表2 6可以看出 复位异常优先级最高 任何时候复位异常总是首先获得响应 软中断指令和未定义指令总是互斥的 因此使用同一个优先级 且它们的优先级最低 IRQ和FIQ两种异常可以通过讲CPSR中的I F位置1来禁止其发生 48 2 6异常 49 2 6异常 50 习题1 ARM7处理器是几级流水线 在ARM7处理器中 PC指向的是下一条要执行的指令 这句话对吗 为什么 2 ARM处理器的工作状态分为哪两种 在CPSR中如何设置处理器的工作状态 3 ARM处理器有哪些工作模式 不同工作模式下CPSR寄存器的模式位M 4 0 如何设置 4 试说明ARM处理器在ARM状态下寄存器结构 并分别说明R13 R14 R15寄存器的作用 5 试简述程序计数器PC 连接寄存器LR的作用 6 如何禁止IRQ和FIQ中断 7 什么是ARM处理器的异常 ARM处理器中有哪几种异常 简述异常与中断的关系 8 请描述一下ARM处理器产生异常的条件分别是什么 各种异常会使处理器进入哪种模式 进入异常时处理器有何操作 各种异常的返回指令时什么 9 什么是大端存储模式和小端存储模式 画出0 x87654321分别以小端模式和大端模式存储在0 x00006000单元中的存储格式
展开阅读全文
相关资源
相关搜索

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


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

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


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