ARM普通处理器内核.ppt
《ARM普通处理器内核.ppt》由会员分享,可在线阅读,更多相关《ARM普通处理器内核.ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、ARM普通处理器内核普通处理器内核12021/2/22ARM7TDMI 内核内核乘法器乘法器指令指令解码解码地址地址自增器自增器nRESETnMREQSEQABORTnIRQnFIQnRWMAS1:0LOCKnCPICPACPBnWAITMCLKnOPCBIGENDISYNCnTRANSnM4:0D31:0桶形桶形移位器移位器32 位位 ALU写数据写数据 寄存器寄存器读数据读数据 寄存器寄存器地址寄存器地址寄存器寄存器寄存器A31:0及及控制控制 逻辑逻辑PC Update解码器解码器指令指令 解码解码IncrementerPCABusBBusALUBusn用户形式用户形式usrusr:AR
2、MARM处理器正常的一般用户程序执行状态处理器正常的一般用户程序执行状态n快速中断形式快速中断形式fiqfiq:用于高速数据传输或通道处理:用于高速数据传输或通道处理n外部中断形式外部中断形式irqirq:用于通常的中断处理:用于通常的中断处理n管理形式管理形式svcsvc:操作系统使用的保护形式。系统复位后:操作系统使用的保护形式。系统复位后 ,即进入该形式,即进入该形式n指令终止形式指令终止形式(abt)(abt):当数据或指令预取失效后进入该形式:当数据或指令预取失效后进入该形式n未定义形式未定义形式(und)(und):执行未定义的指令时进入该形式:执行未定义的指令时进入该形式n系统形
3、式系统形式syssys:运行具有特权的操作系统任务,如嵌套:运行具有特权的操作系统任务,如嵌套的中断的中断ARM处理器形式处理器形式ARM存放器存放器n37 存放器存放器n31 个个通用通用32位存放器,包括程序位存放器,包括程序计计数数器器PCn6 个状个状态态存放器存放器n通用存放器包括通用存放器包括R0R15,可以分,可以分为为三三类类:n 未分未分组组存放器存放器R0R7n 分分组组存放器存放器R8R14n 程序程序计计数数器器PC(R15)n状状态态存放器:存放器:n CPSR(Current Program Status Register,当当前程序前程序状状态态存放器存放器)n
4、SPSR(Saved Program Status Register,备备份份程序程序状状态态存放器存放器ARM存放器存放器注注:表中用户或系统形式使用的正常存放器已经被异常形式指定的另一个存放表中用户或系统形式使用的正常存放器已经被异常形式指定的另一个存放器取代器取代,R15(PC)只有一个只有一个!程序状态保存存放器程序状态保存存放器程序状态保存存放器程序状态保存存放器标志位标志位含含 义义 N当用两个补码表示的带符号数进行运算时,当用两个补码表示的带符号数进行运算时,N=1 表示运算的结果为负数;表示运算的结果为负数;N=0 表示运算的结果为正数或零;表示运算的结果为正数或零;ZZ=1
5、表示运算的结果为零;表示运算的结果为零;Z=0表示运算的结果为非零。表示运算的结果为非零。C可以有可以有4种方法设置种方法设置C的值:的值:加法运算(包括比较指令加法运算(包括比较指令CMN):当运算结果产生了进位时(无符号数溢):当运算结果产生了进位时(无符号数溢出),出),C=1,否则,否则C=0。减法运算(包括比较指令减法运算(包括比较指令CMP):当运算时产生了借位(无符号数溢出),):当运算时产生了借位(无符号数溢出),C=0,否则,否则C=1。对于包含移位操作的非加对于包含移位操作的非加/减运算指令,减运算指令,C为移出值的最后一位。为移出值的最后一位。对于其他的非加对于其他的非加
6、/减运算指令,减运算指令,C的值通常不改变。的值通常不改变。V可以有可以有2种方法设置种方法设置V的值:的值:对于加对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,时,V=1表示符号位溢出。表示符号位溢出。对于其他的非加对于其他的非加/减运算指令,减运算指令,V的值通常不改变。的值通常不改变。程序状态保存存放器程序状态保存存放器n中断制止位中断制止位I:I=1 制止制止IRQ中断中断;n 中断制止位中断制止位F:F=1 制止制止FIQ中断。中断。nT标志位:该位反映处理器的运行状态标志位:该位反映处理器的运行状
7、态 ARM 状态或者状态或者Thumb状态。状态。n运行形式位运行形式位M4:0:M0、M1、M2、M3、M4是形式位。这些位决定了处理器的运行形式。是形式位。这些位决定了处理器的运行形式。程序状态保存存放器程序状态保存存放器M4:0处理器模式可访问的寄存器0b10000用户模式PC,CPSR,R0-R140b10001FIQ模式PC,CPSR,SPSR_fiq,R14_fiq-R8_fiq,R7R00b10010IRQ模式PC,CPSR,SPSR_irq,R14_irq,R13_irq,R12R00b10011管理模式PC,CPSR,SPSR_svc,R14_svc,R13_svc,R12R
8、0,0b10111中止模式PC,CPSR,SPSR_abt,R14_abt,R13_abt,R12R0,0b11011未定义模式PC,CPSR,SPSR_und,R14_und,R13_und,R12R0,0b11111系统模式PC,CPSR(ARM v4及以上版本),R14R0ARM指令系统指令系统nARM 指令集所有的指令都可以被有条件的执行,简指令集所有的指令都可以被有条件的执行,简称条件执行。在以往的微控制器中,只有条件转移指称条件执行。在以往的微控制器中,只有条件转移指令或位测试和设置一类的指令是条件指令。但是在令或位测试和设置一类的指令是条件指令。但是在ARM 指令集中,操作码的最
9、高四位与指令集中,操作码的最高四位与CPSR 中的条中的条件码进展比较,假如它们彼此不匹配,指令将不被执件码进展比较,假如它们彼此不匹配,指令将不被执行,而是以行,而是以NOP 指令无操作通过流水线。但是指令无操作通过流水线。但是在在Thumb状态下,仅有分支指令是有条件执行的。状态下,仅有分支指令是有条件执行的。n正因为如此,可能会由于执行一条影响了正因为如此,可能会由于执行一条影响了CPSR 中条中条件码的数据处理指令,下一条指令就会或不会被执行。件码的数据处理指令,下一条指令就会或不会被执行。一般的汇编指令,如一般的汇编指令,如MOV 或或ADD,可被预置,可被预置16 个条个条件助记符
10、,它们定义了被测试的条件码状态:件助记符,它们定义了被测试的条件码状态:ARM指令系统指令系统条件码助记符后缀标 志含 义0EQZ置位相等1NEZ清零不相等10CSC置位无符号数大于或等于11CCC清零无符号数小于100MIN置位负数101PLN清零正数或零110VSV置位溢出111VCV清零未溢出1000HIC置位Z清零无符号数大于1001LSC清零Z置位无符号数小于或等于1010GEN等于V带符号数大于或等于1011LTN不等于V带符号数小于1100GTZ清零且(N等于V)带符号数大于1101LEZ置位或(N不等于V)带符号数小于或等于1110AL 忽略无条件执行NV 该指令从不执行 AR
11、M V3 之前未定义 该指令执行结果不可预知 ARM V3 及ARM V4AL 该指令无条件执行 ARM V5即以上版本 ARM指令编码格式指令编码格式n说明说明nCondn指令执行的条件编码指令执行的条件编码nOpcoden指令操作符编码指令操作符编码nSn决定指令的操作是否影响决定指令的操作是否影响CPSR的值的值nRdn操作目的存放器编码操作目的存放器编码nRnn包含第一操作数的存放器编码包含第一操作数的存放器编码nShifter_operandn表示第二操作数表示第二操作数 31 28 27 25 24 21 20 19 16 15 12 11 8 7 0cond001opcodesR
12、nRdShifter_operandARM指令的寻址方式指令的寻址方式立即寻址立即寻址 ADDR0,R0,1;R0R01 寄存器寻址寄存器寻址 ADDR0,R1,R2;R0R1R2寄存器间接寻址寄存器间接寻址 ADD R0,R1,R2;R0R1R2基址变址寻址基址变址寻址 LDR R0,R1,4;R0R14多寄存器寻址多寄存器寻址 LDMIA R0,R1,R2,R3,R4;R1R0;R2R04;R3R08;R4R012相对寻址相对寻址BLNEXT 堆栈寻址堆栈寻址 满递增堆栈:堆栈指针指向最后压入的数据,且由低地址向高地址生成。满递增堆栈:堆栈指针指向最后压入的数据,且由低地址向高地址生成。满
13、递减堆栈:堆栈指针指向最后压入的数据,且由高地址向低地址生成。满递减堆栈:堆栈指针指向最后压入的数据,且由高地址向低地址生成。空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向 高地址生成。高地址生成。空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向 低地址生成。低地址生成。以程序计数器PC的当前值为基地址,指令中地址标号为偏移量,相加得有效地址ARM指令的寻址方式指令的寻址方式数据处理指令的寻址方式数据处理指令的寻址方式MOV R0,#
14、0 xFC0 ;R0#0 xFC0 MOV R3,R2 ;R3 R2,LSL MOV R0,R0,LSL#n ;R0=R0*(2*n),LSL MOV R0,R0,LSL R4 ;R0=R0*(2*R4),LSR MOV R0,R0,LSR#n,LSR MOV R0,R0,LSR R4,ASR MOV R0,R0,ASR#n,ASR MOV R0,R0,ASR R4,ROR MOV R0,R0,ROR#n,ROR MOV R0,R0,ROR R4,RRXMOV R0,R0,RRX R4扩展的循环右移,移出位用C代替移位位数由Rs存放器的低8位确定每个立即数由一个8位的常数右移偶数位得到ARM指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 普通 处理器 内核
限制150内