2014-05-01 Arm架构的处理器模式和寄存器用途
2014-05-01 22:21
260 查看
如今,RISC体系架构把持着各种移动设备,如手机和平板以Arm架构为主,路由器,机顶盒以Mips架构为主,也大有向以CISC的x86架构提起挑战;RISC的中心思想:简化指令集的复杂程度,简化指令实现的硬件设计,简化流水线设计。通常CISC中的一条指令需要RISC的多条指令来实现。
(1)Arm公司在英国剑桥成立,它不生产芯片,只负责设计芯片,向其他公司提供授权服务,卖知识产权;
(2)Arm处理模式分为七种:USER,FIQ,IRQ,SVE,ABT,UND,SYS;除了USER,其他6中均为特权模式,可访问系统中所有的资源,任意的进行处理器模式切换;除了USER,SYS,其他5中均为异常模式;处理器切换方式可以是软件切换,也可能是外部中断或异常处理过程;
(3)用户程序运行在用户态,不能访问操作系统所保护的系统资源,不能直接进行切换模式而是通过异常;由于每一个异常模式都有自己的寄存器,故用户状态下的寄存器的值不会被破坏;
(4)系统模式不是通过异常进程进入的,他具有和用户模式完全一样的寄存器,它主要供操作系统的底层程序使用,扩大权限,通常可以使用用户模式的寄存器组,不使用异常模式下的寄存器组,这样可以保证异常中断发生时任务状态不会被破换;
![](https://img-blog.csdn.net/20140501213836218?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3lrcG91cg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(5)Arm处理器有31个通用寄存器,6个状态寄存器(目前只用到其中的12位);R0-R7需备份寄存器;R8-R12注意其中FIQ处理程序时,不必执行保存和恢复中断现场的指令,从而处理中断速度很快;R13通常是Arm的栈指针,当进入异常模式,将所需的寄存器值保存到R13指向的栈指针,返回时弹出;R14是LR,存放当前子程序的返回地址,当通过BL或BLX指令调用子程序时,R14被设置,如保存到栈中(STMFD
SP!, <......>, LR),子程序返回时(LDMFD SP!, <......>, PC),异常中断发生时,R14有可能被设置成该异常模式将要返回的地址,通常会加一个偏移值;R15是PC,由于采用流水线机制,PC指向当前指令地址加8,采用STR/STM保存PC时可能是当前指令地址加8字节(3级流水线时)或12字节(5级流水线时);
![](https://img-blog.csdn.net/20140501214100359?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3lrcG91cg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(6)CPSR,SPSR包含了条件标志位(NZCV),Q标志位(CPSR表示DSP指令是否发生异常,SPSR表示异常中断时保存和恢复的CPSR标志位),中断控制位(I=1禁止IRQ,F=1禁止FIQ),T控制指令执行状态(Thumb和Arm指令),处理器模式控制位(M4...M0);
(1)Arm公司在英国剑桥成立,它不生产芯片,只负责设计芯片,向其他公司提供授权服务,卖知识产权;
(2)Arm处理模式分为七种:USER,FIQ,IRQ,SVE,ABT,UND,SYS;除了USER,其他6中均为特权模式,可访问系统中所有的资源,任意的进行处理器模式切换;除了USER,SYS,其他5中均为异常模式;处理器切换方式可以是软件切换,也可能是外部中断或异常处理过程;
(3)用户程序运行在用户态,不能访问操作系统所保护的系统资源,不能直接进行切换模式而是通过异常;由于每一个异常模式都有自己的寄存器,故用户状态下的寄存器的值不会被破坏;
(4)系统模式不是通过异常进程进入的,他具有和用户模式完全一样的寄存器,它主要供操作系统的底层程序使用,扩大权限,通常可以使用用户模式的寄存器组,不使用异常模式下的寄存器组,这样可以保证异常中断发生时任务状态不会被破换;
(5)Arm处理器有31个通用寄存器,6个状态寄存器(目前只用到其中的12位);R0-R7需备份寄存器;R8-R12注意其中FIQ处理程序时,不必执行保存和恢复中断现场的指令,从而处理中断速度很快;R13通常是Arm的栈指针,当进入异常模式,将所需的寄存器值保存到R13指向的栈指针,返回时弹出;R14是LR,存放当前子程序的返回地址,当通过BL或BLX指令调用子程序时,R14被设置,如保存到栈中(STMFD
SP!, <......>, LR),子程序返回时(LDMFD SP!, <......>, PC),异常中断发生时,R14有可能被设置成该异常模式将要返回的地址,通常会加一个偏移值;R15是PC,由于采用流水线机制,PC指向当前指令地址加8,采用STR/STM保存PC时可能是当前指令地址加8字节(3级流水线时)或12字节(5级流水线时);
(6)CPSR,SPSR包含了条件标志位(NZCV),Q标志位(CPSR表示DSP指令是否发生异常,SPSR表示异常中断时保存和恢复的CPSR标志位),中断控制位(I=1禁止IRQ,F=1禁止FIQ),T控制指令执行状态(Thumb和Arm指令),处理器模式控制位(M4...M0);
相关文章推荐
- 处理器不同模式下寄存器
- ARM_Core的处理器模式与寄存器
- arm体系结构学习笔记 part1--处理器模式与寄存器
- ARM微处理器寄存器和处理器模式
- 前摄器(Proactor):用于为异步事件多路分离和分派处理器的对象行为模式
- ARM1176JZF-S/S3C6410处理器的操作模式和寄存器
- Intel 处理器-保护模式
- 用途和视频测试模式生成器的好处
- IA-32处理器存储管理 实模式到保护模式 段式管理
- 基于S3C6410的ARM11学习(四) 核心初始化之设置处理器模式
- 为什么在保护模式下IA-32处理器最高可访问4GB的内存
- [转载]X86和ARM架构的处理器能效差异为什么会这么大?
- ARM在不同模式下如何区别同名寄存器(如fiq模式下的R8_fiq与其他模式下的R8),从而访问不同的寄存器
- arm,体系结构,处理器模式,通用寄存器(转)
- 大小端模式和处理器
- 实模式使用32位寄存器
- 多寄存器加载/存储指令的8种模式
- win32 004 80×86处理器的工作模式
- ARM裸机程序开发——ARM运行模式及寄存器
- 命令模式的更多用途:队列请求