收藏 分享(赏)

ARM普通处理器内核.ppt

上传人:hwpkd79526 文档编号:9433764 上传时间:2019-08-07 格式:PPT 页数:36 大小:522.50KB
下载 相关 举报
ARM普通处理器内核.ppt_第1页
第1页 / 共36页
ARM普通处理器内核.ppt_第2页
第2页 / 共36页
ARM普通处理器内核.ppt_第3页
第3页 / 共36页
ARM普通处理器内核.ppt_第4页
第4页 / 共36页
ARM普通处理器内核.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、ARM系统结构,报告人:2006年4月28日,ARM内核基本结构 ARM处理器模式 ARM寄存器 ARM指令寻址方式 ARM指令系统 ARM中断与异常,ARM内核,ARM架构的处理器内核有ARM7TDMI、ARM8、ARM9TDMI、ARMl0TDMI及StronSARM(5A1)等。 ARM 7TDMI是日前低端的ARM核,具合广泛的应用,其最显著的应用为数字移动电话。,ARM7TDMI 方框图,JTAG(Joint Test Action Group)是1985年制定的检测PCB和IC芯片的一个标准,1990年被修改后成为IEEE的一个标准,即IEEE1149.1-1990。通过这个标准,

2、可对具有JTAG口芯片的硬件电路进行边界扫描和故障检测。,JTAG内部有一个状态机,成为TAP控制器,TAP控制器的状态机通过TCK和TMS进行状态的改变,实现数据和指令的输入。,T : 16位Thumb D : Debug(调试) M : 8位乘法器 I: Embedded ICE Logic(实现断点 观测及变量观测的逻辑电路部分),中止ARM运行和提供了片内调试功能,扫描链0,扫描链1,扫描链2,ARM7TDMI 内核,用户模式(usr):ARM处理器正常的一般用户程序执行状态 快速中断模式(fiq):用于高速数据传输或通道处理 外部中断模式(irq):用于通常的中断处理 管理模式(sv

3、c):操作系统使用的保护模式。系统复位后 ,即进入该模式 指令终止模式(abt):当数据或指令预取失效后进入该模式 未定义模式(und):执行未定义的指令时进入该模式 系统模式(sys):运行具有特权的操作系统任务,如嵌套的中断,ARM处理器模式,ARM寄存器,37 寄存器 31 个通用32位寄存器,包括程序计数器PC 6 个状态寄存器通用寄存器包括R0R15,可以分为三类: 未分组寄存器R0R7 分组寄存器R8R14 程序计数器PC(R15)状态寄存器:CPSR(Current Program Status Register,当前程序状态寄存器) SPSR( Saved Program St

4、atus Register,备份程序状态寄存器),ARM寄存器,注:表中用户或系统模式使用的正常寄存器已经被异常模式指定的另一个寄存器取代, R15(PC)只有一个!,程序状态保存寄存器,程序状态保存寄存器,程序状态保存寄存器, 中断禁止位I: I=1 禁止IRQ中断; 中断禁止位F: F=1 禁止FIQ中断。 T标志位:该位反映处理器的运行状态( ARM 状态或者Thumb状态)。 运行模式位M4:0:M0、M1、M2、M3、M4是模式位。这些位决定了处理器的运行模式。,程序状态保存寄存器,ARM指令系统,ARM 指令集所有的指令都可以被有条件的执行,简称条件执行。在以往的微控制器中,只有条

5、件转移指令或位测试和设置一类的指令是条件指令。但是在ARM 指令集中,操作码的最高四位与CPSR 中的条件码进行比较,如果它们彼此不匹配,指令将不被执行,而是以NOP 指令(无操作)通过流水线。但是在Thumb状态下,仅有分支指令是有条件执行的。 正因为如此,可能会由于执行一条影响了CPSR 中条件码的数据处理指令,下一条指令就会或不会被执行。一般的汇编指令,如MOV 或ADD,可被预置16 个条件助记符,它们定义了被测试的条件码状态:,ARM指令系统,NV 该指令从不执行 ARM V3 之前 未定义 该指令执行结果不可预知 ARM V3 及ARM V4 AL 该指令无条件执行 ARM V5即

6、以上版本,ARM指令编码格式,说明 Cond 指令执行的条件编码 Opcode 指令操作符编码 S 决定指令的操作是否影响CPSR的值 Rd 操作目标寄存器编码 Rn 包含第一操作数的寄存器编码 Shifter_operand 表示第二操作数,31 28 27 25 24 21 20 19 16 15 12 11 8 7 0,ARM指令的寻址方式,以程序计数器PC的当前值为基地址,指令中地址标号为偏移量,相加得有效地址,ARM指令的寻址方式,扩展的循环右移,移出位用C代替,移位位数由Rs寄存器的低8位确定,每个立即数由一个8位的常数右移偶数位得到,ARM指令的寻址方式,事先访问方式(+i),事

7、后访问方式(i+),偏移量,ARM指令系统,ARM7 可以被设计成大端(big-endian)或者小端(little-endian)处理器,即MSB 位于最高位或者最低位。用户必须确保他们设置了正确的存储格式,否则代码或数据就会颠倒。,高低 低高,高高 低低,ARM指令系统,ARM 指令集可以分为十类:1 跳转指令2 数据处理指令3 乘法指令与乘加指令4 程序状态寄存器访问指令 5 加载/存储指令 6 批量数据加载/存储指令7 数据交换指令8 移位指令9 异常指令10 协处理器指令,ARM指令系统(跳转指令),跳转指令用于实现程序流程的跳转,在ARM程序中有两种方法可以实现程序流程的跳转: 1

8、 使用专门的跳转指令。 2 直接向程序计数器PC写入跳转地址值。 ARM指令集中的跳转指令可以完成从当前指令向前或向后的32MB的地址空间的跳转,包括以下4条指令: B 跳转指令 BL 带返回的跳转指令 BLX 带返回和状态切换的跳转指令 BX 带状态切换的跳转指令,ARM指令系统(数据处理),数据处理指令包括: MOV 数据传送指令 MVN 数据取反传送指令 CMP 比较指令 CMN 反值比较指令 TST 位测试指令 TEQ 相等测试指令 ADD 加法指令 ADC 带进位加法指令 SUB 减法指令 SBC 带借位减法指令 RSB 逆向减法指令 RSC 带借位的逆向减法指令 AND 逻辑与指令

9、 ORR 逻辑或指令 EOR 逻辑异或指令 BIC 位清除指令,RSB R1,R2,R3 ;R1R3-R2,ARM指令系统(乘法指令与乘加指令),乘法指令与乘加指令共有以下6条: MUL 32位乘法指令 MLA 32位乘加指令 SMULL 64位有符号数乘法指令 SMLAL 64位有符号数乘加指令 UMULL 64位无符号数乘法指令 UMLAL 64位无符号数乘加指令,ARM指令系统(程序状态寄存器访问指令 ),ARM微处理器支持程序状态寄存器访问指令,用于在程序状态寄存器和通用寄存器之间传送数据,程序状态寄存器访问指令包括以下两条: MRS 程序状态寄存器到通用寄存器的数据传送指令 MSR

10、通用寄存器到程序状态寄存器的数据传送指令,ARM指令系统(加载/存储指令 ),常用的加载存储指令如下: LDR 字数据加载指令 LDRB 字节数据加载指令 LDRH 半字数据加载指令 STR 字数据存储指令 STRB 字节数据存储指令 STRH 半字数据存储指令,ARM指令系统,由内存到寄存器的读取,由寄存器到内存的保存,ARM微处理器所支持批量数据加载/存储指令可以一次在一片连续的存储器单元和多个寄存器之间传送数据,批量加载指令用于将一片连续的存储器中的数据传送到多个寄存器,批量数据存储指令则完成相反的操作。常用的加载存储指令如下: LDM 批量数据加载指令 STM 批量数据存储指令,ARM

11、指令系统(批量数据加载/存储指令),ARM微处理器所支持数据交换指令能在存储器和寄存器之间交换数据。数据交换指令有如下两条: SWP 字数据交换指令 SWPB 字节数据交换指令,ARM指令系统(数据交换指令),ARM指令系统(移位指令 ),移位操作包括如下6种类型,ASL和LSL是等价的,可以自由互换: LSL 逻辑左移 ASL 算术左移 LSR 逻辑右移 ASR 算术右移 ROR 循环右移 RRX 带扩展的循环右移,ARM指令系统(异常指令),ARM微处理器所支持的异常指令有如下两条: SWI 软件中断指令 BKPT 断点中断指令,ARM指令系统(协处理器指令),ARM协处理器指令包括以下5

12、条: CDP 协处理器数操作指令 LDC 协处理器数据加载指令 STC 协处理器数据存储指令 MCR ARM处理器寄存器到协处理器寄存器的数 据传送指令 MRC 协处理器寄存器到ARM处理器寄存器的数据传送指令,ARM中断与异常,ARM中断与异常,续表:,ARM中断与异常,当一个异常发生时,ARM处理器按照如下步骤操作:,1)保存处理器当前状态、中断屏蔽位以及各条件标志位。通过将CPSR中的内容复制到SPSR中来实现。2)设置当前状态寄存器CPSR中相应的位。3)将寄存器LR_mode设置成返回地址。4)将程序计数值PC设置成该异常中断的中断向量地址,从而跳转到相应的异常中断处理程序处执行。,

13、ARM中断与异常,从异常中断处理程序中返回:1)恢复被中断的程序的处理器状态,即将SPSR_mode寄存器的内容复制到当前程序状态寄存器CPSR中2)返回发生异常中断的指令的下一条指令处执行,即将LR_mode寄存器的内容赋值程序计数器PC中 注意:(1)复位异常中断处理程序不需要返回(2)当异常处理程序发生时,程序计数器PC所指的位置对于不同的异常中断是不同的,ARM中断与异常,1,在此PC应是具有预取中止的BL/SWI/未定义指令所取的地址。 2,在此PC是从FIQ或IRQ取得不能执行的指令的地址。 3,在此PC是产生数据中止的加载或存储指令的地址。 4,系统复位时,保存在R14_svc中的值时不可预知的。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报