PC-LR的偏移量计算-2013



《PC-LR的偏移量计算-2013》由会员分享,可在线阅读,更多相关《PC-LR的偏移量计算-2013(37页珍藏版)》请在文档大全上搜索。
1、异常的响应异常的响应/ /返回:返回:PCPC、LRLR偏移量的计算偏移量的计算2/106项目项目ARM7ARM9ARM10ARM11流水线流水线3568典型频率典型频率MHz80150260335功耗功耗mW/MHz0.060.19(+cache)0.5(+cache)0.4(+cache)性能性能MIPS/MHz0.971.11.31.2架构架构冯冯 诺伊曼诺伊曼哈佛哈佛哈佛哈佛哈佛哈佛ARM处理器(核)比较处理器(核)比较3-Stage Pipeline 3-Stage Pipeline vs 5-Stage Pipeline 4InstructionFetch Shift + ALUM
2、emoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARM or ThumbInst DecodeReg SelectRegReadShiftALURegWriteThumbARMdecompressARM decodeInstructionFetchFETCHDECODEEXECUTEARM7TDMIARMARM处理器内核流水线工作流程处理器内核流水线工作流程5ARM的编程模型的编程模型p所谓ARM的编程模型,就是决定ARM程序组织形式的硬件架构,ARM的编程模型主要包括:ARMARM微处理器的微处理
3、器的工作状态工作状态ARMARM体系结构的体系结构的存储器模式存储器模式ARMARM微处理器的微处理器的运行(操作)模式运行(操作)模式ARMARM体系结构的体系结构的寄存器组织寄存器组织ARMARM微处理器的微处理器的异常状态异常状态6ARM Processor Core Registers7ARMARM支持的数据类型支持的数据类型字节:字节:8 8位位半字:半字:1616位(必须分配为占用位(必须分配为占用2 2个字节)个字节)字:字:3232位(必须分配为占用位(必须分配为占用4 4个字节)个字节)注意:注意:1 1)半字存储单元地址最低位为)半字存储单元地址最低位为0 0 2 2)字存
4、储单元地址最低两位为)字存储单元地址最低两位为0 0N N位无符号数:位无符号数: 二进制格式表示范围为二进制格式表示范围为0202N-1N-1的非负整数;的非负整数;N N位有符号数时,位有符号数时,N N位数据值使用位数据值使用2 2的补码格式表示范围为的补码格式表示范围为-2-2N-1N-1+2+2N-1N-1-1-1的整数的整数1112342数据存储格式数据存储格式 ARMARM体系结构所支持的最大寻址空间为体系结构所支持的最大寻址空间为4GB4GB(2 23232字节)字节) ARMARM体系结构将存储器看成是以字节为单位的线性组合,存体系结构将存储器看成是以字节为单位的线性组合,存
5、储单元地址从储单元地址从0 x000000000 x00000000开始编址开始编址 ARMARM可按大端格式和小端格式两种方式存储字数据可按大端格式和小端格式两种方式存储字数据 地址地址 大端格式大端格式 0 x00000000 0 x12 0 x00000001 0 x34 0 x00000002 0 x56 0 x00000003 0 x78 地址地址 小端格式小端格式 0 x00000000 0 x78 0 x00000001 0 x56 0 x00000002 0 x34 0 x00000003 0 x12字数据字数据0 x12345678 一个基于一个基于ARMARM内核的芯片可以
6、只支持大端模式或小端模式,也可以两内核的芯片可以只支持大端模式或小端模式,也可以两者都支持。通常,小端模式是者都支持。通常,小端模式是ARMARM处理器的默认形式。处理器的默认形式。 在在ARMARM指令集中不包含任何直接选择大小端的指令,但是一个同时支指令集中不包含任何直接选择大小端的指令,但是一个同时支持大小端模式的持大小端模式的ARMARM芯片可以通过硬件配置(一般使用芯片的引脚来配置)芯片可以通过硬件配置(一般使用芯片的引脚来配置)来匹配存储器系统所使用的规则。来匹配存储器系统所使用的规则。ARM微处理器支持微处理器支持7种运行模式种运行模式 用户模式用户模式(usrusr):): A
7、RMARM处理器处理器正常的程序执行正常的程序执行状态状态 快速中断模式快速中断模式(fiqfiq):): 用于高速数据传输或通道处理用于高速数据传输或通道处理 外部中断模式外部中断模式(irqirq):): 用于通用的中断处理用于通用的中断处理 管理模式管理模式(svcsvc):): 操作系统使用的保护模式操作系统使用的保护模式 数据访问中止模式数据访问中止模式(abt)(abt): 访问存储器失败访问存储器失败,当数据或,当数据或指令预取中止时进入该模式,可用于虚拟存储及存储保护。指令预取中止时进入该模式,可用于虚拟存储及存储保护。 系统模式系统模式(syssys):): 运行具有特权的操
8、作系统任务。运行具有特权的操作系统任务。 未定义指令中止模式未定义指令中止模式(undund):当未定义的指令执行时):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。进入该模式,可用于支持硬件协处理器的软件仿真。 ARMARM微处理器的微处理器的运行模式可以通过软件改变运行模式可以通过软件改变,也可以通过,也可以通过外外部中断或异常处理改变部中断或异常处理改变。 大多数的应用程序运行在用户模式下,当处理器运行在用大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的户模式下时,某些被保护的系统资源是不能被访问的10ARM的运行模式:
9、的运行模式:if u, as u11异常异常exceptionexception异常指正常执行的程序流因故被暂时中止;异常指正常执行的程序流因故被暂时中止;ARM支持支持7种异常类型、种异常类型、5种处理器异常工作模式种处理器异常工作模式若同时发生多个异常,将按优先级顺序处理;若同时发生多个异常,将按优先级顺序处理;异常类型对应异常模式优先级复位Supervisor1(最高优先级)数据中止Abort2FIQFIQ3IRQIRQ4指令预取中止Abort5未定义指令Undefined6SWISupervisor7(最低优先级)优先级降低12异常(异常(exception)的进入和返回)的进入和返回
10、异常向量(表)向量地址异常类型进入时模式进入时I状态 进入时F状态0 x0000 0000复位管理禁止禁止0 x0000 0004未定义指令未定义IF0 x0000 0008软件中断(SWI)管理禁止F0 x0000 000C 预取中止(指令)中止IF0 x0000 0010数据中止中止IF0 x0000 0014保留保留0 x0000 0018IRQ中断禁止F0 x0000 001CFIQ快中断禁止禁止注:表中的I和F表示不对该位有影响异常发生时处理器将PC值强制设置为对应的异常向量; 异常向量处通常只存放一条跳转指令,指向真正的异常处理程序;异常向量表的后面一般紧跟着存放FIQ的异常处理程
11、序,这样可以减少一次跳转,提高FIQ的响应速度;14异常响应过程异常响应过程在在LRLR中保存返回地址信息;中保存返回地址信息; ARMARM状态下将当前指令地址加状态下将当前指令地址加4 4或加或加8 8复制到复制到LRLR ThumbThumb状态下将当前指令地址加状态下将当前指令地址加2 2、4 4或加或加8 8 复制到复制到LRLR将将CPSRCPSR复制到适当的复制到适当的SPSRSPSR中;中;将将CPSRCPSR模式位强制设置为与异常类型相对应的模式位强制设置为与异常类型相对应的值;值;强制强制PCPC从相关的异常向量处取指;从相关的异常向量处取指;注注1 1:中断异常时置位中断