【资料】嵌入式微处理器体系结构复习资料.docxVIP

  • 1
  • 0
  • 约1.42万字
  • 约 12页
  • 2021-08-14 发布于四川
  • 举报

【资料】嵌入式微处理器体系结构复习资料.docx

精品word学习资料可编辑 名师归纳总结——欢迎下载 一,嵌入式微处理器体系结构 嵌入式微处理器的体系结构可以接受冯·诺依曼体系结构或哈佛体系结构 ,指令系统可以选用精简指令系统 RISC 与复杂指令集系统 CISC; 1,冯·诺依曼体系结构与哈佛体系结构 ; 冯·诺依曼结构的运算机由 CPU 与储备器构成 ,其程序与数据共用一个储备空间 ,程序指令储备地址与数据储备地址指向同一个储备器的不同物理位置 ; 接受单一的地址及数据总线 , 程序指令与数据的宽度相同;程序计数器 (PC)就是 CPU 内部指示指令与数据的储备位置的寄存器; 哈佛结构的主要特点就是将程序与数据储备在不同的储备空间中 ,即程序储备器与数据储备器就是两个相互独立的储备器 ,每个储备器独立编址,独立拜望;提高执行速度 ,提高数据的吞吐率 ,具有较高的执行效率; 类别CISCRISC高效的目标代码程序二, 类别 CISC RISC 高效的目标代码程序 二, ARM 状态各模式下的寄存器 接受优化编译技术 ,生成高效的目标代码程序 指令系统 指令数量许多 较少,通常少于 100 执行时间 有些指令执行时间很长 , 如整块的储备器内容拷贝 ; 或将多个寄存器的内容 编码长度 拷贝到存贮器 编码长度可变 ,1-15 字节 没有较长执行时间的指令 编码长度固定 ,通常为 4 个字节 寻址方式 寻址方式多样 简洁寻址 操作 可以对储备器与寄存器 只能对寄存器对行算术与规律操作 , 进行算术与规律操作 Load/Store 体系结构 编译 难以用优化编译器生成 1,全部的 37 个寄存器 ,分成两大类 : (1)31 个通用 32 位寄存器 ; (2) 6 个状态寄存器; 2,R0~ R7 为未分组的寄存器 ,也就就是说对于任何处理器模式 ,这些寄存器都对应于相同的 32 位物理寄存器; 3,寄存器 R8~R14 为分组寄存器;它们所对应的物理寄存器取决于当前的处理器模式 ,几乎全部答应使用通用寄存器的指令都答应使用分组寄存器 4,寄存器 R8 ~ R12 有两个分组的物理寄存器; 一个用于除 FIQ 模式之外的全部寄存器模式 , 另一个用于 FIQ 模式;这样在发生 FIQ 中断后 ,可以加速 FIQ 的处理速度 5,寄存器 R13 ,R14 分别有 6 个分组的物理寄存器;一个用于用户与系统模式 ,其余 5 个分别用于 5 种反常模式; 三,处理器工作模式 1,ARM 处理器有 7 种工作模式 ; usr(用户模式 ):ARM 处理器正常程序执行模式; fiq( 快速中断模式 ): 用于高速数据传输或通道处理 irq( 外部中断模式 ): 用于通用的中断处理 svc(治理模式 ): 操作系统使用的爱惜模式 abt (数据拜望终止模式 ): 当数据或指令预取终止时进入该模式 ,可用于虚拟储备及储备爱惜; 精品word学习资料可编辑 名师归纳总结——欢迎下载 sys(系统模式 ): 运行具有特权的操作系统任务; und(未定义指令中止模式 ): 当未定义的指令执行时进入该模式 ,可用于支持硬件协处理器的软件仿真; ARM 微处理器的运行模式可以通过软件转变 ,也可以通过外部中断或反常处理转变; 除用户模式以外 ,其余的全部 6 种模式称之为非用户模式 ,或特权模式 (Privileged Modes); 其中除去用户模式与系统模式以外的 5 种又称为反常模式 (Exception Modes), 常用于处理中断或反常 ,以及需要拜望受爱惜的系统资源等情形; 2,除用户模式外 ,其它模式均为特权模式; ARM 内部全部系统资源与一些片内外设在硬件设计上只答应 (或者可选为只答应 )特权模式下拜望; 3,此外 ,特权模式可以自由的切换处理器模式 ,而用户模式不能直接切换到别的模式;四, ARM 反常处理 1,当反常产生时 , ARM 核: 拷贝 CPSR 到 SPSR_mode 设置适当的 CPSR 位: a,转变处理器状态进入 ARM 态 b,转变处理器模式进入相应的反常模式 c,设置中断禁止位禁止相应中断 (如需要 ) 储存返回地址到 LR_mode 设置 PC 为相应的反常向量地址 2,返回时 , 反常处理程序需要 : 从 SPSR_mode复原 CPSR 从 LR_mode 复原 PC 留意:这些操作只能在 ARM 态执行,五, ARM 指令集 1,ARM 寻址方式 :把握 ARM 微处理器 9 种寻址方式的特点; (1). 寄存器寻址 操作数的值在寄存器中 ,指令中的地址码字段给出的就是寄存器编号 ,寄存器的内容就是操作数 ,指令执行时直接取出寄存器值操作; 例如指令 : MOV R1,R2 ;R1← R2 SUB R0,R1,R2 ;R0←

文档评论(0)

1亿VIP精品文档

相关文档