您的位置:首页 > 运维架构 > 网站架构

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)系统模式不是通过异常进程进入的,他具有和用户模式完全一样的寄存器,它主要供操作系统的底层程序使用,扩大权限,通常可以使用用户模式的寄存器组,不使用异常模式下的寄存器组,这样可以保证异常中断发生时任务状态不会被破换;



(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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: