ARM教程--ARM体系结构与编程模型--课件

上传人:文**** 文档编号:240744191 上传时间:2024-05-04 格式:PPT 页数:79 大小:3.16MB
返回 下载 相关 举报
ARM教程--ARM体系结构与编程模型--课件_第1页
第1页 / 共79页
ARM教程--ARM体系结构与编程模型--课件_第2页
第2页 / 共79页
ARM教程--ARM体系结构与编程模型--课件_第3页
第3页 / 共79页
点击查看更多>>
资源描述
ARM Linux Training(2)ARM体系结体系结构与编程模型构与编程模型1ppt课件ARM简介n n ARM ARM是是A Advanced dvanced R RISC ISC MMachinesachines的缩写,它是一的缩写,它是一家微处理器行业的知名企业,该企业设计了大量家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的高性能、廉价、耗能低的RISC RISC(精简指令集)处(精简指令集)处理器。理器。n nARMARM公司的特点是只设计芯片,而不生产。它将公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和技术授权给世界上许多著名的半导体、软件和OEMOEM厂商,并提供服务。厂商,并提供服务。2ppt课件ARM授权模型将技术授权给将技术授权给其它芯片厂商其它芯片厂商形成各具特色形成各具特色的的ARMARM芯片芯片.3ppt课件ARM体系结构n n ARM处理器为RISC芯片,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。它具有经典RISC的特点:n n大的、统一的寄存器文件大的、统一的寄存器文件n n装载装载/保存结构,数据处理保存结构,数据处理 操作只针对寄存器操作只针对寄存器的内容,而不直接对存储器进行操作的内容,而不直接对存储器进行操作n n简单的寻址模式简单的寻址模式n n统一和固定长度的指令域,简化了指令的译码统一和固定长度的指令域,简化了指令的译码4ppt课件ARM体系结构版本n n ARM体系结构从最初开发到现在有了巨大的改进,并仍在完善和发展。为了清楚的表达每个ARM应用实例所使用的指令集,ARM公司定义了7种主要的ARM指令集体系结构版本,以版本号v1v7表示。5ppt课件ARM-v1n n 该版本的ARM体系结构,只有26位的寻址空间,没有商业化,其特点为:基本的数据处理指令(不包括乘法);基本的数据处理指令(不包括乘法);字节、字和半字加载字节、字和半字加载/存储指令;存储指令;具有分支指令,包括在子程序调用中使用的分具有分支指令,包括在子程序调用中使用的分支和链接指令;支和链接指令;在操作系统调用中使用的软件中断指令。在操作系统调用中使用的软件中断指令。6ppt课件ARM-v2n n同样为26位寻址空间,现在已经废弃不再使用,它相对v1版本有以下改进:具有乘法和乘加指令;具有乘法和乘加指令;支持协处理器;支持协处理器;快速中断模式中的两个以上的分组寄存器;快速中断模式中的两个以上的分组寄存器;具有原子性加载具有原子性加载/存储指令存储指令SWPSWP和和SWPBSWPB。7ppt课件ARM-v3n n寻址范围扩展到32位(也基本废弃),具有独立的程序:具有乘法和乘加指令;具有乘法和乘加指令;支持协处理器;支持协处理器;快速中断模式中具有的两个以上的分组寄存器;快速中断模式中具有的两个以上的分组寄存器;具有原子性加载具有原子性加载/存储指令存储指令SWPSWP和和SWPBSWPB。8ppt课件ARM-v4n n不再为了与以前的版本兼容而支持26位体系结构,并明确了哪些指令会引起未定义指令异常发生,它相对v3版本作了以下的改进:半字加载半字加载/存储指令;存储指令;字节和半字的加载和符号扩展指令;字节和半字的加载和符号扩展指令;具有可以转换到具有可以转换到ThumbThumb状态的指令;状态的指令;用户模式寄存器的新的特权处理器模式。用户模式寄存器的新的特权处理器模式。9ppt课件ARM-v5n n在v4版本的基础上,对指令的定义进行了必要的修正,对v4版本的体系结构进行了扩展并增加了指令,如下:改进了改进了ARM/ThumbARM/Thumb状态之间的切换效率;状态之间的切换效率;允许非允许非T T变量和变量和T T变量一样,使用相同的代码生变量一样,使用相同的代码生成技术;成技术;增加计数前导零指令和软件断点指令;增加计数前导零指令和软件断点指令;对乘法指令如何设置标志作了严格的定义。对乘法指令如何设置标志作了严格的定义。10ppt课件ARM-v6n nARM Architecture Version 6 contains 81 new instructionsARM Architecture Version 6 contains 81 new instructionsn nSeveral additional classes of instructionSeveral additional classes of instructionn nPacked dataPacked datan nSIMD(Single Instruction Multiple Data)SIMD(Single Instruction Multiple Data)n n“Sum of Absolute Difference”operation“Sum of Absolute Difference”operationn nMore saturated arithmeticMore saturated arithmeticn nSupport for mixed endiannessSupport for mixed endiannessn nException entry and return instructionsException entry and return instructionsn nUnlike some previous extensions to the instruction set(e.g.BLX offset),Unlike some previous extensions to the instruction set(e.g.BLX offset),the V6 extension instructions are mainly conditionalthe V6 extension instructions are mainly conditionaln nAll are conditional except where indicated in the following textAll are conditional except where indicated in the following text11ppt课件ARM-v7n n新的基于ARMv7架构的处理器将为系统设计者提供更多的选择,可以为应用目标选择更合适的CPU。同时提供性能、功耗控制、代码大小以及芯片成本方面的优化。n n采用了采用了Thumb-2Thumb-2技术,比技术,比3232位代码减少使用位代码减少使用31%31%内存,减小系统开销,比内存,减小系统开销,比ThumbThumb技术增加技术增加38%38%性性能能n n降低了对文字池的访问频度,这更使得设计者降低了对文字池的访问频度,这更使得设计者在只实现一个在只实现一个TCM RAMTCM RAM时时,性能的恶化降到最低性能的恶化降到最低12ppt课件4THalfword and signed halfword/byte supportSystem modeThumb instruction setImproved ARM/Thumb InterworkingCLZ Saturated arithmeticDSP multiply-accumulate instructionsExtensions:Jazelle(5TEJ)5TE6SIMD InstructionsMulti-processingV6 Memory architectureUnaligned data supportExtensions:Thumb-2(6T2)TrustZone(6Z)7Thumb-2CoreSight 7A(Applications)NEON7R(Real-time)Hardware divide7M(Microcontroller)Thumb-2 ONLYARM体体系发展系发展13ppt课件ARM处理器和体系结构Processor coreArchitecturen nARM7TDMI familyARM7TDMI familyv4Tv4Tn nARM720T,ARM740TARM720T,ARM740Tn nARM9TDMI familyARM9TDMI familyv4Tv4Tn nARM920T,ARM922T,ARM940TARM920T,ARM922T,ARM940Tn nARM9E familyARM9E familyv5TE,v5TEJv5TE,v5TEJn nARM946E-S,ARM966E-S,ARM926EJ-SARM946E-S,ARM966E-S,ARM926EJ-Sn nARM10E familyARM10E familyv5TE,v5TEJv5TE,v5TEJn nARM1020E,ARM1022E,ARM1026EJ-SARM1020E,ARM1022E,ARM1026EJ-Sn nARM11 familyARM11 familyv6v6n nARM1136J(F)-SARM1136J(F)-Sn nARM1156T2(F)-SARM1156T2(F)-Sv6T2v6T2n nARM1176JZ(F)-SARM1176JZ(F)-Sv6Zv6Zn nCortex familyCortex familyn nARM Cortex-A8ARM Cortex-A8v7Av7An nARM Cortex-R4ARM Cortex-R4v7Rv7Rn nARM Cortex-M3ARM Cortex-M3v7Mv7M14ppt课件ARM处理器核简介n n ARM公司开发了很多系列的ARM处理器核,目前最新的系列是ARM11。目前应用比较广泛的系列是:ARM7ARM9ARM9EARM10SecurCoreXscaleCortex15ppt课件ARM7系列支持高密度支持高密度16位的位的Thumb指令集;指令集;支持片上调试;支持片上调试;支持支持64位乘法;位乘法;支持支持EmbededICE观察硬件;观察硬件;ARM7TDMI 的可综合(的可综合(synthesizable)版本(软核),对应用工程师来说其编程版本(软核),对应用工程师来说其编程模型与模型与ARM7TDMI 一致;一致;ARM7 ARM7 T D M I-ST D M I-S16ppt课件处理器执行指令的典型步骤n n从存储器读取指令(从存储器读取指令(fetchfetch)n n译码以鉴别它是属于哪一条指令(译码以鉴别它是属于哪一条指令(decdec)n n从指令中提取指令的操作数(这些操作数往往存从指令中提取指令的操作数(这些操作数往往存在于寄存器中)(在于寄存器中)(regreg)n n将操作数进行组合以得到结果或存储器地址将操作数进行组合以得到结果或存储器地址(ALUALU)n n如果需要,则访问存储器以存储数据(如果需要,则访问存储器以存储数据(memmem)n n将结果写回到寄存器堆(将结果写回到寄存器堆(resres)17ppt课件3级流水线的指令执行过程 n n取指:从存储器装载指令;取指:从存储器装载指令;取指:从存储器装载指令;取指:从存储器装载指令;n n译码:对刚装载的指令进行识别;译码:对刚装载的指令进行识别;译码:对刚装载的指令进行识别;译码:对刚装载的指令进行识别;n n执行:处理指令并把结果写回相应的寄存器执行:处理指令并把结果写回相应的寄存器执行:处理指令并把结果写回相应的寄存器执行:处理指令并把结果写回相应的寄存器取指取指译码译码执行执行指令从存储器中取出对指令使用的寄存器进行译码从寄存器组中读出寄存器,执行移位和ALU操作,寄存器被写回到寄存器组中18ppt课件3级级流流水水线线ARM组组织织19ppt课件流水线使用实例n nADD r1 r2ADD r1 r2n nSUB r3 r2SUB r3 r2n nCMP r1 r3CMP r1 r3在第一个周期,内核从存储器取出指令ADD;在第二个周期,内核取出指令SUB,同时对ADD译码;在第三个周期,ADD被执行,而SUB被译码,同时又取出CMP指令。20ppt课件ARM9/E系列21ppt课件5级级流流水水线线ARM组组织织22ppt课件ARM9的5级流水线InstructionFetch Shift+ALUMemoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARM or ThumbInst DecodeReg SelectRegReadShiftALURegWriteThumbARMdecompressARM decodeInstructionFetchFETCHDECODEEXECUTEARM7TDMI23ppt课件ARM10E系列24ppt课件ARM10的6级流水线InstructionFetch Shift+ALU+MultiplyRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM or ThumbInst DecodeARM10Shift+ALUMemoryAccessRegWriteFETCHDECODEEXECUTEMEMORYWRITEReg Read MultiplyMultiply AddBranchPredictionInstructionFetchISSUEMemoryAccessARM or ThumbInstructionDecode25ppt课件ARM11系列26ppt课件ARM体系结构支持的数据类型n nARM处理器支持下列数据类型 字节字节 8 8位位 半字半字 1616位(必须分配为占用位(必须分配为占用2 2个字节)个字节)字字 3232位(必须分配为占用位(必须分配为占用4 4个字节)个字节)Byte access(byte aligned)Halfword access(halfword aligned)Word access(word aligned)3210765402468ace089abcdef48c27ppt课件数据类型注意事项28ppt课件浮点数据类型n n浮点运算使用在ARM硬件指令集中未定义的数据类型n nARM公司在协处理器指令空间定义了一系列浮点指令。通常这些指令全部通过未定义指令异常在软件中实现n nARM公司还提供了用C语言编写的浮点库作为ARM浮点指令集的替代方法29ppt课件存储器大/小端n n从软件角度看,内存相对于一个大的字节数组,其中每个数组元素(字节)都是可寻址的。n nARM支持两种内存模式:大端模式(bigendian)/小端模式(littleendian)30ppt课件大小端实例大端模式大端模式小端模式小端模式31ppt课件处理器状态n nARM7TDMIARM7TDMI处理器有两种操作状态:处理器有两种操作状态:ARMARM状态:状态:3232位,这种状态下执行的是字方式的位,这种状态下执行的是字方式的ARMARM指令;指令;ThumbThumb状态:状态:1616位,这种状态下执行半字方式的位,这种状态下执行半字方式的ThumbThumb指令。指令。32ppt课件处理器状态转换n n 使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换,程序如下:;从从Arm状态切换到状态切换到Thumb状态状态 LDR R0,=Lable+1 BX R0;从从Thumb状态切换到状态切换到ARM状态状态 LDR R0,=Lable BX R0地址最低位为地址最低位为1 1,表示切,表示切换到换到ThumbThumb状态状态地址最低位为地址最低位为0 0,表示切,表示切换到换到ARMARM状态状态跳转地址标号跳转地址标号33ppt课件ARM处理器模式n n ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式模式、中止模式、未定义模式和系统模式n n这样的好处是可以更好的支持操作系统并提高工作效率。34ppt课件ARM处理器模式处理器模式处理器模式处理器模式处理器模式说明说明说明说明备注备注备注备注 用户用户用户用户 (usr)(usr)(usr)(usr)正常程序工作模式正常程序工作模式正常程序工作模式正常程序工作模式不能直接切换到其它模式不能直接切换到其它模式不能直接切换到其它模式不能直接切换到其它模式 系统系统系统系统 (sys)(sys)(sys)(sys)用于支持操作系统的特用于支持操作系统的特用于支持操作系统的特用于支持操作系统的特权任务等权任务等权任务等权任务等与用户模式类似,但具有可以与用户模式类似,但具有可以与用户模式类似,但具有可以与用户模式类似,但具有可以直接切换到其它模式等特权直接切换到其它模式等特权直接切换到其它模式等特权直接切换到其它模式等特权 快中断快中断快中断快中断 (fiq)(fiq)(fiq)(fiq)支持高速数据传输及通支持高速数据传输及通支持高速数据传输及通支持高速数据传输及通道处理道处理道处理道处理FIQFIQFIQFIQ异常响应时进入此模式异常响应时进入此模式异常响应时进入此模式异常响应时进入此模式 中断中断中断中断 (irq)(irq)(irq)(irq)用于通用中断处理用于通用中断处理用于通用中断处理用于通用中断处理IRQIRQIRQIRQ异常响应时进入此模式异常响应时进入此模式异常响应时进入此模式异常响应时进入此模式 管理管理管理管理 (svc)(svc)(svc)(svc)操作系统保护代码操作系统保护代码操作系统保护代码操作系统保护代码系统复位和软件中断响应时进系统复位和软件中断响应时进系统复位和软件中断响应时进系统复位和软件中断响应时进入此模式入此模式入此模式入此模式 中止中止中止中止 (abt)(abt)(abt)(abt)用于支持虚拟内存和用于支持虚拟内存和用于支持虚拟内存和用于支持虚拟内存和/或或或或存储器保护存储器保护存储器保护存储器保护在在在在ARM7TDMIARM7TDMIARM7TDMIARM7TDMI没有大用处没有大用处没有大用处没有大用处 未定义未定义未定义未定义 (und)(und)(und)(und)支持硬件协处理器的软支持硬件协处理器的软支持硬件协处理器的软支持硬件协处理器的软件仿真件仿真件仿真件仿真未定义指令异常响应时进入此未定义指令异常响应时进入此未定义指令异常响应时进入此未定义指令异常响应时进入此模式模式模式模式35ppt课件处理器模式处理器模式处理器模式处理器模式说明说明说明说明备注备注备注备注 用户用户用户用户 (usr)(usr)(usr)(usr)正常程序工作模式正常程序工作模式正常程序工作模式正常程序工作模式不能直接切换到其它模式不能直接切换到其它模式不能直接切换到其它模式不能直接切换到其它模式 系统系统系统系统 (sys)(sys)(sys)(sys)用于支持操作系统的特用于支持操作系统的特用于支持操作系统的特用于支持操作系统的特权任务等权任务等权任务等权任务等与用户模式类似,但具有可以与用户模式类似,但具有可以与用户模式类似,但具有可以与用户模式类似,但具有可以直接切换到其它模式等特权直接切换到其它模式等特权直接切换到其它模式等特权直接切换到其它模式等特权 快中断快中断快中断快中断 (fiq)(fiq)(fiq)(fiq)支持高速数据传输及通支持高速数据传输及通支持高速数据传输及通支持高速数据传输及通道处理道处理道处理道处理FIQFIQFIQFIQ异常响应时进入此模式异常响应时进入此模式异常响应时进入此模式异常响应时进入此模式 中断中断中断中断 (irq)(irq)(irq)(irq)用于通用中断处理用于通用中断处理用于通用中断处理用于通用中断处理IRQIRQIRQIRQ异常响应时进入此模式异常响应时进入此模式异常响应时进入此模式异常响应时进入此模式 管理管理管理管理 (svc)(svc)(svc)(svc)操作系统保护代码操作系统保护代码操作系统保护代码操作系统保护代码系统复位和软件中断响应时进系统复位和软件中断响应时进系统复位和软件中断响应时进系统复位和软件中断响应时进入此模式入此模式入此模式入此模式 中止中止中止中止 (abt)(abt)(abt)(abt)用于支持虚拟内存和用于支持虚拟内存和用于支持虚拟内存和用于支持虚拟内存和/或或或或存储器保护存储器保护存储器保护存储器保护在在在在ARM7TDMIARM7TDMIARM7TDMIARM7TDMI没有大用处没有大用处没有大用处没有大用处 未定义未定义未定义未定义 (und)(und)(und)(und)支持硬件协处理器的软支持硬件协处理器的软支持硬件协处理器的软支持硬件协处理器的软件仿真件仿真件仿真件仿真未定义指令异常响应时进入此未定义指令异常响应时进入此未定义指令异常响应时进入此未定义指令异常响应时进入此模式模式模式模式特权模式 除用户模式外,其它模除用户模式外,其它模式均为式均为特权模式特权模式。ARMARM内部寄存器内部寄存器和一些片内外设在硬件设计上只允和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不的切换处理器模式,而用户模式不能直接切换到别的模式。能直接切换到别的模式。未定义未定义 (und)(und)中止中止 (abt)(abt)管理管理 (svc)(svc)中断中断 (irq)(irq)快中断快中断 (fiq)(fiq)系统系统 (sys)(sys)36ppt课件异常模式处理器模式处理器模式处理器模式处理器模式说明说明说明说明备注备注备注备注 用户用户用户用户 (usr)(usr)(usr)(usr)正常程序工作模式正常程序工作模式正常程序工作模式正常程序工作模式不能直接切换到其它模式不能直接切换到其它模式不能直接切换到其它模式不能直接切换到其它模式 系统系统系统系统 (sys)(sys)(sys)(sys)用于支持操作系统的特用于支持操作系统的特用于支持操作系统的特用于支持操作系统的特权任务等权任务等权任务等权任务等与用户模式类似,但具有可以与用户模式类似,但具有可以与用户模式类似,但具有可以与用户模式类似,但具有可以直接切换到其它模式等特权直接切换到其它模式等特权直接切换到其它模式等特权直接切换到其它模式等特权 快中断快中断快中断快中断 (fiq)(fiq)(fiq)(fiq)支持高速数据传输及通支持高速数据传输及通支持高速数据传输及通支持高速数据传输及通道处理道处理道处理道处理FIQFIQFIQFIQ异常响应时进入此模式异常响应时进入此模式异常响应时进入此模式异常响应时进入此模式 中断中断中断中断 (irq)(irq)(irq)(irq)用于通用中断处理用于通用中断处理用于通用中断处理用于通用中断处理IRQIRQIRQIRQ异常响应时进入此模式异常响应时进入此模式异常响应时进入此模式异常响应时进入此模式 管理管理管理管理 (svc)(svc)(svc)(svc)操作系统保护代码操作系统保护代码操作系统保护代码操作系统保护代码系统复位和软件中断响应时进系统复位和软件中断响应时进系统复位和软件中断响应时进系统复位和软件中断响应时进入此模式入此模式入此模式入此模式 中止中止中止中止 (abt)(abt)(abt)(abt)用于支持虚拟内存和用于支持虚拟内存和用于支持虚拟内存和用于支持虚拟内存和/或或或或存储器保护存储器保护存储器保护存储器保护在在在在ARM7TDMIARM7TDMIARM7TDMIARM7TDMI没有大用处没有大用处没有大用处没有大用处 未定义未定义未定义未定义 (und)(und)(und)(und)支持硬件协处理器的软支持硬件协处理器的软支持硬件协处理器的软支持硬件协处理器的软件仿真件仿真件仿真件仿真未定义指令异常响应时进入此未定义指令异常响应时进入此未定义指令异常响应时进入此未定义指令异常响应时进入此模式模式模式模式 未定义未定义 (und)(und)中止中止 (abt)(abt)管理管理 (svc)(svc)中断中断 (irq)(irq)快中断快中断 (fiq)(fiq)这五种模式称为这五种模式称为异常模异常模式式。它们除了可以通过程序切换进。它们除了可以通过程序切换进入外,也可以由特定的异常进入。入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出些独立的寄存器,以避免异常退出时用户模式的状态不可靠。时用户模式的状态不可靠。37ppt课件用户和系统模式处理器模式处理器模式处理器模式处理器模式说明说明说明说明备注备注备注备注 用户用户用户用户 (usr)(usr)(usr)(usr)正常程序工作模式正常程序工作模式正常程序工作模式正常程序工作模式不能直接切换到其它模式不能直接切换到其它模式不能直接切换到其它模式不能直接切换到其它模式 系统系统系统系统 (sys)(sys)(sys)(sys)用于支持操作系统的特用于支持操作系统的特用于支持操作系统的特用于支持操作系统的特权任务等权任务等权任务等权任务等与用户模式类似,但具有可以与用户模式类似,但具有可以与用户模式类似,但具有可以与用户模式类似,但具有可以直接切换到其它模式等特权直接切换到其它模式等特权直接切换到其它模式等特权直接切换到其它模式等特权 快中断快中断快中断快中断 (fiq)(fiq)(fiq)(fiq)支持高速数据传输及通支持高速数据传输及通支持高速数据传输及通支持高速数据传输及通道处理道处理道处理道处理FIQFIQFIQFIQ异常响应时进入此模式异常响应时进入此模式异常响应时进入此模式异常响应时进入此模式 中断中断中断中断 (irq)(irq)(irq)(irq)用于通用中断处理用于通用中断处理用于通用中断处理用于通用中断处理IRQIRQIRQIRQ异常响应时进入此模式异常响应时进入此模式异常响应时进入此模式异常响应时进入此模式 管理管理管理管理 (svc)(svc)(svc)(svc)操作系统保护代码操作系统保护代码操作系统保护代码操作系统保护代码系统复位和软件中断响应时进系统复位和软件中断响应时进系统复位和软件中断响应时进系统复位和软件中断响应时进入此模式入此模式入此模式入此模式 中止中止中止中止 (abt)(abt)(abt)(abt)用于支持虚拟内存和用于支持虚拟内存和用于支持虚拟内存和用于支持虚拟内存和/或或或或存储器保护存储器保护存储器保护存储器保护在在在在ARM7TDMIARM7TDMIARM7TDMIARM7TDMI没有大用处没有大用处没有大用处没有大用处 未定义未定义未定义未定义 (und)(und)(und)(und)支持硬件协处理器的软支持硬件协处理器的软支持硬件协处理器的软支持硬件协处理器的软件仿真件仿真件仿真件仿真未定义指令异常响应时进入此未定义指令异常响应时进入此未定义指令异常响应时进入此未定义指令异常响应时进入此模式模式模式模式 这两种模式都不能由异这两种模式都不能由异常进入,而且它们使用完全相同的常进入,而且它们使用完全相同的寄存器组。寄存器组。系统模式是特权模式,不系统模式是特权模式,不受用户模式的限制。操作系统在该受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受任务可以使用这个模式访问一些受控的资源。控的资源。系统系统 (sys)(sys)用户用户 (usr)(usr)38ppt课件ARM内部寄存器n nARM有37个32 位长的寄存器:n n1 1个用作个用作PCPC(program counterprogram counter)n n1 1个用作个用作CPSR(current program status register)CPSR(current program status register)n n5 5个用作个用作SPSRSPSR(saved program status registerssaved program status registers)n n3030个通用寄存器个通用寄存器39ppt课件ARMARM状态各模式下的寄存器状态各模式下的寄存器40ppt课件ARMARM状态各模式下的寄存器状态各模式下的寄存器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_svcCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0所有的所有的3737个寄存器,分成两类:个寄存器,分成两类:3131个通用个通用3232位寄存器;位寄存器;6 6个状态寄存器。个状态寄存器。41ppt课件无无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户用户无无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系统系统SPSR_svcCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中断中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断快中断ARMARM状态各模式下可以访问的寄存器状态各模式下可以访问的寄存器42ppt课件一般的通用寄存器一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0在汇编语言中寄存器在汇编语言中寄存器R0R13为保存数据或地址为保存数据或地址值的值的通用寄存器通用寄存器。它们。它们是完全通用的寄存器,是完全通用的寄存器,不会被体系结构作为特不会被体系结构作为特殊用途,并且可用于任殊用途,并且可用于任何使用通用寄存器的指何使用通用寄存器的指令。令。43ppt课件一般的通用寄存器一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0其中其中R0R0R7R7为为未分组未分组的寄存器的寄存器,也就是说,也就是说对于任何处理器模式,对于任何处理器模式,这些寄存器都对应于这些寄存器都对应于相同的相同的3232位物理寄存位物理寄存器。器。44ppt课件一般的通用寄存器一般的通用寄存器R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8寄存器寄存器R8R8R14R14为为分组寄存分组寄存器器。它们所对应的物理寄存。它们所对应的物理寄存器取决于当前的处理器模式,器取决于当前的处理器模式,几乎所有允许使用通用寄存几乎所有允许使用通用寄存器的指令都允许使用分组寄器的指令都允许使用分组寄存器存器45ppt课件一般的通用寄存器一般的通用寄存器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器寄存器R8R8R12R12有两个分有两个分组的物理寄存器。一个用于除组的物理寄存器。一个用于除FIQFIQ模式之外的所有寄存器模式,另一模式之外的所有寄存器模式,另一个用于个用于FIQFIQ模式。这样在发生模式。这样在发生FIQFIQ中中断后,可以加速断后,可以加速FIQFIQ的处理速度。的处理速度。46ppt课件一般的通用寄存器一般的通用寄存器寄存器寄存器R13R13、R14R14分别有分别有6 6个分组的个分组的物理寄存器。一个用于用户和系统物理寄存器。一个用于用户和系统模式,其余模式,其余5 5个分别用于个分别用于5 5种异常模种异常模式。式。R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR1347ppt课件堆栈指针寄存器堆栈指针寄存器R13R13(SPSP)寄存器寄存器R13R13常作为常作为堆栈指针堆栈指针(SPSP)。)。在在ARMARM指令集当中,没有以特殊方指令集当中,没有以特殊方式使用式使用R13R13的指令或其它功能,只的指令或其它功能,只是习惯上都这样使用。在是习惯上都这样使用。在ThumbThumb指指令集中存在使用令集中存在使用R13R13的指令。的指令。48ppt课件链接寄存器链接寄存器R14R14(LRLR)R14R14为为链接寄存器链接寄存器(LRLR),在结构上有两个),在结构上有两个特殊功能:特殊功能:在每种模式下,模式自身的在每种模式下,模式自身的R14R14版本用于保版本用于保存子程序返回地址;存子程序返回地址;当发生异常时,将当发生异常时,将R14R14对应的异常模式版本对应的异常模式版本设置为异常返回地址(有些异常有一个小的设置为异常返回地址(有些异常有一个小的固定偏移量)。固定偏移量)。49ppt课件R14寄存器与子程序调用Lable程序程序A程序程序BR14BL Lable地址地址A?MOV PC,LRR14(地址地址A)Lable?1.1.程序程序A A执行过程中调执行过程中调用程序用程序B B;2.2.程序跳转至标号程序跳转至标号LableLable,执行程序,执行程序B B。同。同时硬件将时硬件将“BL BL LableLable”指令的下一条指令的下一条指令所在地址存入指令所在地址存入R14R14;3.3.程序程序B B执行最后,将执行最后,将R14R14寄存器的寄存器的内容放入内容放入PCPC,返回程序,返回程序A A;50ppt课件R14寄存器与异常发生n n 异常发生时,程序要跳转至异常服务程序,对返回地址的处理与子程序调用类似,都是由硬件完成的。区别在于有些异常有一个小常量的偏移。51ppt课件R14寄存器注意要点R14R14_irq用户模式下的程序用户模式下的程序IRQIRQ模式下的程序模式下的程序A AareturnB.XA地址地址A地址地址A1.1.执行用户模执行用户模式下的程序;式下的程序;2.2.发生发生IRQIRQ中断,中断,硬件将某个地硬件将某个地址存入址存入IRQIRQ模式模式下的下的R14_irqR14_irq寄寄存器,用户模存器,用户模式下的式下的R14R14没有没有被破坏;被破坏;3.IRQ3.IRQ服务程服务程序序A A执行完毕,执行完毕,将将R14_irqR14_irq寄存寄存器的内容减去器的内容减去某个常量后存某个常量后存入入PCPC,返回之,返回之前被中断的程前被中断的程序;序;未被破坏未被破坏52ppt课件R14寄存器注意要点R14R14_irq用户模式下的程序用户模式下的程序IRQIRQ模式下的程序模式下的程序A AaB B.X XA A地址地址地址地址A A A A地址地址A1.1.执行用户模执行用户模式下的程序;式下的程序;2.2.发生发生IRQIRQ中断,中断,硬件将某个地硬件将某个地址存入址存入IRQIRQ模式模式下的下的R14_irqR14_irq寄寄存器,用户模存器,用户模式下的式下的R14R14没有没有被破坏;被破坏;3.IRQ3.IRQ服务程服务程序序A A执行完毕,执行完毕,将将R14_irqR14_irq寄存寄存器的内容减去器的内容减去某个常量后存某个常量后存入入PCPC,返回之,返回之前被中断的程前被中断的程序;序;未被破坏未被破坏IRQIRQ模式下的程序模式下的程序B BareturnB B.X XA A地址地址地址地址B B B B地址地址B4.4.如果在如果在IRQIRQ处理程序中打处理程序中打开开IRQIRQ中断,并中断,并且再次发生且再次发生IRQIRQ中断,或者调中断,或者调用子程序;用子程序;5.5.硬件将返回硬件将返回地址保存在地址保存在R14_irqR14_irq寄存器寄存器中,原来保存中,原来保存的返回地址将的返回地址将被覆盖,造成被覆盖,造成错误;错误;被破坏被破坏6.6.在程序在程序B B返返回到程序回到程序A A,然,然后在返回到用后在返回到用户模式下被中户模式下被中断的程序时,断的程序时,发生错误,将发生错误,将不能正确返回;不能正确返回;returnreturn 解决办法是确保解决办法是确保R14R14的对应版本在发生中的对应版本在发生中断嵌套时不再保存任断嵌套时不再保存任何有意义的值(将何有意义的值(将R14R14入栈),或者切入栈),或者切换到其它处理器模式换到其它处理器模式下。下。53ppt课件程序计数器程序计数器R15R15(PCPC)寄存器寄存器寄存器寄存器R15R15R15R15为为为为程序计数器程序计数器程序计数器程序计数器(PCPCPCPC),它指向正),它指向正),它指向正),它指向正在取指的地址。可以认为它是一个通用寄存在取指的地址。可以认为它是一个通用寄存在取指的地址。可以认为它是一个通用寄存在取指的地址。可以认为它是一个通用寄存器,但是对于它的使用有许多与指令相关的器,但是对于它的使用有许多与指令相关的器,但是对于它的使用有许多与指令相关的器,但是对于它的使用有许多与指令相关的限制或特殊情况。如果限制或特殊情况。如果限制或特殊情况。如果限制或特殊情况。如果R15R15R15R15使用的方式超出使用的方式超出使用的方式超出使用的方式超出了这些限制,那么结果将是不可预测的。了这些限制,那么结果将是不可预测的。了这些限制,那么结果将是不可预测的。了这些限制,那么结果将是不可预测的。54ppt课件读R15的限制n n正常操作时,从正常操作时,从R15R15读取的值是处理器正在取指的读取的值是处理器正在取指的地址,即当前正在执行指令的地址加上地址,即当前正在执行指令的地址加上8 8个字节个字节(两条(两条ARMARM指令的长度)。由于指令的长度)。由于ARMARM指令总是以字指令总是以字为单位,所以为单位,所以R15R15寄存器的最低两位总是为寄存器的最低两位总是为0 0。LDR R0,PC?PCPCPC-4PC-4PC-8PC-8正在执行正在执行正在译码正在译码正在取指正在取指流水线状态流水线状态地址地址程序代码程序代码55ppt课件程序状态寄存器程序状态寄存器CPSRCPSR寄存器寄存器CPSRCPSR为为程序状态寄存器程序状态寄存器,在异常模式,在异常模式中,另外一个寄存器中,另外一个寄存器“程序状态保存寄存器程序状态保存寄存器(SPSRSPSR)”可以被访问。每种异常都有自己可以被访问。每种异常都有自己的的SPSRSPSR,在因为异常事件而进入异常时它保,在因为异常事件而进入异常时它保存存CPSRCPSR的当前值,异常退出时可通过它恢复的当前值,异常退出时可通过它恢复CPSRCPSR。56ppt课件CPSR寄存器n nCPSRCPSR反映了当前处理器的状态,其包含:反映了当前处理器的状态,其包含:4 4个条件代码标志(负个条件代码标志(负(N)(N)、零、零(Z)(Z)、进位、进位(C)(C)和和溢出溢出(V)(V)););2 2个中断禁止位,分别控制一种类型的中断;个中断禁止位,分别控制一种类型的中断;5 5个对当前处理器模式进行编码的位;个对当前处理器模式进行编码的位;1 1个用于指示当前执行指令个用于指示当前执行指令(ARM(ARM还是还是Thumb)Thumb)的位。的位。57ppt课件CPSR寄存器的格式NZCVIM0M1M2M3M4TF.31 30 29 28 27 26 8 7 6 5 4 3 2 1 0条件代码标志条件代码标志保留保留控制位控制位溢出标志溢出标志进位或借位扩展进位或借位扩展零零负或小于负或小于IRQ禁止禁止FIQ禁止禁止状态位状态位模式位模式位NZCVIM0M1M2M3M4TF58ppt课件CPSR模式位设置表59ppt课件备份程序状态寄存器n n每一种处理器模式下都有一个专用的物理寄存器,成为备份程序状态寄存器SPSR(Saved Program Status Register)。当特定的异常中断发生时,这个物理寄存器负责存放当前程序状态寄存器的内容。当异常处理程序返回时,再将其内容恢复到当前程序状态寄存器n n由于用户模式和系统模式不属于异常中断模式,所以它们没有SPSR。60ppt课件异常n n只只要要正正常常的的程程序序流流被被暂暂时时中中止止,处处理理器器就就进进入入异异常常模模式式。例例如如响响应应一一个个来来自自外外设设的的中中断断。在在处处理理异异常常之之前前,ARMARM内内核核保保存存当当前前的的处处理理器器状状态态,这这样样当处理程序结束时可以恢复执行原来的程序。当处理程序结束时可以恢复执行原来的程序。n n如果同时发生两个或更多异常,那么将按照固定如果同时发生两个或更多异常,那么将按照固定的顺序来处理异常的顺序来处理异常61ppt课件ARM异常类型n nARM一共有7种类型的异常,按优先级从高到低的排列如下:n n复位异常(复位异常(ResetReset)n n数据异常(数据异常(Data AbortData Abort)n n快速中断异常(快速中断异常(FIQFIQ)n n外部中断异常(外部中断异常(IRQIRQ)n n预取异常(预取异常(Prefetch AbortPrefetch Abort)n n软件中断软件中断(SWI)(SWI)n n未定义指令异常(未定义指令异常(Undefined instructionUndefined instruction)62ppt课件复位异常n n当处理器的复位引脚有效时,系统产生复位异常当处理器的复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断处理程序处执行。中断,程序跳转到复位异常中断处理程序处执行。复位异常中断通常用在下面两种情况下:复位异常中断通常用在下面两种情况下:n n系统上电系统上电n n系统复位系统复位63ppt课件数据访问中止异常n n数据访问中止异常是由存储器发出数据中止信号,数据访问中止异常是由存储器发出数据中止信号,它由存储器访问指令(它由存储器访问指令(Load/StoreLoad/Store)产生。当数)产生。当数据访问指令的目标地址不存在,或者该地址不允据访问指令的目标地址不存在,或者该地址不允许当前指令的访问,处理器产生该异常。许当前指令的访问,处理器产生该异常。n n包括两种类型:包括两种类型:数据中止数据中止 发生在对数据访问时发生在对数据访问时 预取中止预取中止 发生在指令预取过程中发生在指令预取过程中64ppt课件数据访问中止异常n n数据访问中止异常是由存储器发出数据中止信号,数据访问中止异常是由存储器发出数据中止信号,它由存储器访问指令(它由存储器访问指令(Load/StoreLoad/Store)产生。当数)产生。当数据访问指令的目标地址不存在,或者该地址不允据访问指令的目标地址不存在,或者该地址不允许当前指令的访问,处理器产生数据访问中止异许当前指令的访问,处理器产生数据访问中止异常。常。n n在修复产生中止的原因后,不管处于哪种处理器在修复产生中止的原因后,不管处于哪种处理器操作状态,处理程序都执行下面的返回指令操作状态,处理程序都执行下面的返回指令 :SUBS PC,R14_abt,#8SUBS PC,R14_abt,#865ppt课件预取指令异常n n当处理器试图去取一条被标记为预取无效的指令当处理器试图去取一条被标记为预取无效的指令时,发生预取异常。时,发生预取异常。n n如果系统中不包含如果系统中不包含MMUMMU时,指令预取异常中断处理时,指令预取异常中断处理程序只是简单地报告错误并退出。若包含程序只是简单地报告错误并退出。若包含MMUMMU,引,引起异常的指令的物理地址被存储到内存中。起异常的指令的物理地址被存储到内存中。n n 在处理中止的原因之后,不管处于哪种处理器操在处理中止的原因之后,不管处于哪种处理器操作状态,处理程序都会执行下面的指令恢复作状态,处理程序都会执行下面的指令恢复PCPC和和CPSRCPSR并重试被中止的指令:并重试被中止的指令:SUBS PC,R14_abt,#4SUBS PC,R14_abt,#466ppt课件快速中断FIQn n当处理器的外部快速中断请求引脚有效,且当处理器的外部快速中断请求引脚有效,且CPSRCPSR寄存器的寄存器的F F控制位被清除时,处理器产生外部中断控制位被清除时,处理器产生外部中断请求请求FIQFIQ异常。异常。n n不管异常入口是来自不管异常入口是来自ARMARM状态还是状态还是ThumbThumb状态,状态,FIQFIQ处理程序都会通过执行下面的指令从中断返回:处理程序都会通过执行下面的指令从中断返回:SUBS PC,R14_fiq,#4SUBS PC,R14_fiq,#4n n在一个特权模式中,可以通过置位在一个特权模式中,可以通过置位在一个特权模式中,可以通过置位在一个特权模式中,可以通过置位CPSRCPSRCPSRCPSR中的中的中的中的F F F F位来位来位来位来禁止禁止禁止禁止FIQFIQFIQFIQ异常。异常。异常。异常。67ppt课件外部中断IRQn n当处理器的外部中断请求引脚有效,而且当处理器的外部中断请求引脚有效,而且CPSRCPSR寄寄存器的存器的I I控制位被清除时,处理器产生外部中断控制位被清除时,处理器产生外部中断IRQIRQ异常。异常。n n不管异常入口是来自不管异常入口是来自ARMARM状态还是状态还是ThumbThumb状态,状态,FIQFIQ处理程序都会通过执行下面的指令从中断返回:处理程序都会通过执行下面的指令从中断返回:SUBS PC,R14_fiq,#4SUBS PC,R14_fiq,#468ppt课件软中断SWIn n使用软件中断(SWI)指令可以进入管理模式,通常用于请求一个特定的管理函数。SWI处理程序通过执行下面的指令返回:n nMOVS PC,R14_svcMOVS PC,R14_svcn n这个动作恢复了PC和CPSR并返回到SWI之后的指令。SWI处理程序读取操作码以提取SWI函数编号。69ppt课件未定义指令异常n n当处理器遇到一条自己和系统内任何协处理器都当处理器遇到一条自己和系统内任何协处理器都无法处理的指令时,无法处理的指令时,ARMARM内核执行未定义指令陷阱。内核执行未定义指令陷阱。软件可使用这一机制通过模拟未定义的协处理器软件可使用这一机制通过模拟未定义的协处理器指令来扩展指令来扩展ARMARM指令集。指令集。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!