ARM普通处理器内核.ppt_第1页
ARM普通处理器内核.ppt_第2页
ARM普通处理器内核.ppt_第3页
ARM普通处理器内核.ppt_第4页
ARM普通处理器内核.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

ARM系统结构 报告人 2006年4月28日 ARM内核基本结构ARM处理器模式ARM寄存器ARM指令寻址方式ARM指令系统ARM中断与异常 ARM内核 ARM架构的处理器内核有ARM7TDMI ARM8 ARM9TDMI ARMl0TDMI及StronSARM 5A 1 等 ARM7TDMI是日前低端的ARM核 具合广泛的应用 其最显著的应用为数字移动电话 ARM7TDMI方框图 JTAG JointTestActionGroup 是1985年制定的检测PCB和IC芯片的一个标准 1990年被修改后成为IEEE的一个标准 即IEEE1149 1 1990 通过这个标准 可对具有JTAG口芯片的硬件电路进行边界扫描和故障检测 JTAG内部有一个状态机 成为TAP控制器 TAP控制器的状态机通过TCK和TMS进行状态的改变 实现数据和指令的输入 T 16位ThumbD Debug 调试 M 8位乘法器I EmbeddedICELogic 实现断点观测及变量观测的逻辑电路部分 中止ARM运行和提供了片内调试功能 扫描链0 扫描链1 扫描链2 ARM7TDMI内核 用户模式 usr ARM处理器正常的一般用户程序执行状态快速中断模式 fiq 用于高速数据传输或通道处理外部中断模式 irq 用于通常的中断处理管理模式 svc 操作系统使用的保护模式 系统复位后 即进入该模式指令终止模式 abt 当数据或指令预取失效后进入该模式未定义模式 und 执行未定义的指令时进入该模式系统模式 sys 运行具有特权的操作系统任务 如嵌套的中断 ARM处理器模式 ARM寄存器 37寄存器31个通用32位寄存器 包括程序计数器PC6个状态寄存器通用寄存器包括R0 R15 可以分为三类 未分组寄存器R0 R7 分组寄存器R8 R14 程序计数器PC R15 状态寄存器 CPSR CurrentProgramStatusRegister 当前程序状态寄存器 SPSR SavedProgramStatusRegister 备份程序状态寄存器 ARM寄存器 注 表中用户或系统模式使用的正常寄存器已经被异常模式指定的另一个寄存器取代 R15 PC 只有一个 程序状态保存寄存器 程序状态保存寄存器 程序状态保存寄存器 中断禁止位I I 1禁止IRQ中断 中断禁止位F F 1禁止FIQ中断 T标志位 该位反映处理器的运行状态 ARM状态或者Thumb状态 运行模式位M 4 0 M0 M1 M2 M3 M4是模式位 这些位决定了处理器的运行模式 程序状态保存寄存器 ARM指令系统 ARM指令集所有的指令都可以被有条件的执行 简称条件执行 在以往的微控制器中 只有条件转移指令或位测试和设置一类的指令是条件指令 但是在ARM指令集中 操作码的最高四位与CPSR中的条件码进行比较 如果它们彼此不匹配 指令将不被执行 而是以NOP指令 无操作 通过流水线 但是在Thumb状态下 仅有分支指令是有条件执行的 正因为如此 可能会由于执行一条影响了CPSR中条件码的数据处理指令 下一条指令就会或不会被执行 一般的汇编指令 如MOV或ADD 可被预置16个条件助记符 它们定义了被测试的条件码状态 ARM指令系统 NV该指令从不执行ARMV3之前未定义该指令执行结果不可预知ARMV3及ARMV4AL该指令无条件执行ARMV5即以上版本 ARM指令编码格式 说明Cond指令执行的条件编码Opcode指令操作符编码S决定指令的操作是否影响CPSR的值Rd操作目标寄存器编码Rn包含第一操作数的寄存器编码Shifter operand表示第二操作数 312827252421201916151211870 ARM指令的寻址方式 以程序计数器PC的当前值为基地址 指令中地址标号为偏移量 相加得有效地址 ARM指令的寻址方式 扩展的循环右移 移出位用C代替 移位位数由Rs寄存器的低8位确定 每个立即数由一个8位的常数右移偶数位得到 ARM指令的寻址方式 事先访问方式 i 事后访问方式 i 偏移量 ARM指令系统 ARM7可以被设计成大端 big endian 或者小端 little endian 处理器 即MSB位于最高位或者最低位 用户必须确保他们设置了正确的存储格式 否则代码或数据就会颠倒 高低低高 高高低低 ARM指令系统 ARM指令集可以分为十类 1跳转指令2数据处理指令3乘法指令与乘加指令4程序状态寄存器访问指令5加载 存储指令6批量数据加载 存储指令7数据交换指令8移位指令9异常指令10协处理器指令 ARM指令系统 跳转指令 跳转指令用于实现程序流程的跳转 在ARM程序中有两种方法可以实现程序流程的跳转 1使用专门的跳转指令 2直接向程序计数器PC写入跳转地址值 ARM指令集中的跳转指令可以完成从当前指令向前或向后的32MB的地址空间的跳转 包括以下4条指令 B跳转指令BL带返回的跳转指令BLX带返回和状态切换的跳转指令BX带状态切换的跳转指令 ARM指令系统 数据处理 数据处理指令包括 MOV数据传送指令 MVN数据取反传送指令 CMP比较指令 CMN反值比较指令 TST位测试指令 TEQ相等测试指令 ADD加法指令 ADC带进位加法指令 SUB减法指令 SBC带借位减法指令 RSB逆向减法指令 RSC带借位的逆向减法指令 AND逻辑与指令 ORR逻辑或指令 EOR逻辑异或指令 BIC位清除指令 RSBR1 R2 R3 R1 R3 R2 ARM指令系统 乘法指令与乘加指令 乘法指令与乘加指令共有以下6条 MUL32位乘法指令MLA32位乘加指令SMULL64位有符号数乘法指令SMLAL64位有符号数乘加指令UMULL64位无符号数乘法指令UMLAL64位无符号数乘加指令 ARM指令系统 程序状态寄存器访问指令 ARM微处理器支持程序状态寄存器访问指令 用于在程序状态寄存器和通用寄存器之间传送数据 程序状态寄存器访问指令包括以下两条 MRS程序状态寄存器到通用寄存器的数据传送指令 MSR通用寄存器到程序状态寄存器的数据传送指令 ARM指令系统 加载 存储指令 常用的加载存储指令如下 LDR字数据加载指令 LDRB字节数据加载指令 LDRH半字数据加载指令 STR字数据存储指令 STRB字节数据存储指令 STRH半字数据存储指令 ARM指令系统 由内存到寄存器的读取 由寄存器到内存的保存 ARM微处理器所支持批量数据加载 存储指令可以一次在一片连续的存储器单元和多个寄存器之间传送数据 批量加载指令用于将一片连续的存储器中的数据传送到多个寄存器 批量数据存储指令则完成相反的操作 常用的加载存储指令如下 LDM批量数据加载指令 STM批量数据存储指令 ARM指令系统 批量数据加载 存储指令 ARM微处理器所支持数据交换指令能在存储器和寄存器之间交换数据 数据交换指令有如下两条 SWP字数据交换指令 SWPB字节数据交换指令 ARM指令系统 数据交换指令 ARM指令系统 移位指令 移位操作包括如下6种类型 ASL和LSL是等价的 可以自由互换 LSL逻辑左移 ASL算术左移 LSR逻辑右移 ASR算术右移 ROR循环右移 RRX带扩展的循环右移 ARM指令系统 异常指令 ARM微处理器所支持的异常指令有如下两条 SWI软件中断指令 BKPT断点中断指令 ARM指令系统 协处理器指令 ARM协处理器指令包括以下5条 CDP协处理器数操作指令 LDC协处理器数据加载指令 STC协处理器数据存储指令 MCRARM处理器寄存器到协处理器寄存器的数据传送指令 MRC协处理器寄存器到ARM处理器寄存器的数据传送指令 ARM中断与异常 ARM中断与异常 续表 ARM中断与异常 当一个异常发生时 ARM处理器按照如下步骤操作 1 保存处理器当前状态 中断屏蔽位以及各条件标志位 通过将CPSR中的内容复制到SPSR中来实现 2 设置当前状态寄存器CPSR中相应的位 3 将寄存器LR mode设置成返回地址 4 将程序计数值PC设置成该异常中断的中断向量地址 从而跳转到相应的异常中断处理程序处执行 ARM中断与异常 从异常中断处理程序中返回 1 恢复被中断的程序的处理器状态 即将SPSR mode寄存器的内容复制到当前程序状态寄存器CPSR中2 返回发生异常中断的指令的下一条指令处执行 即将LR mode寄存器的内容赋值程序计数器PC中

温馨提示

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

评论

0/150

提交评论