您好,欢迎来到尔游网。
搜索
您的当前位置:首页ARM体系结构

ARM体系结构

来源:尔游网
ARM是 Advanced RISC Machines ( 高级精简指令系统处理器) 的缩写,是ARM公司提供的一种微处理器知识产权( IP) 核

ARM既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字 ARM微处理器的特点

1、体积小、低功耗、低成本、高性能

2、支持Thumb (16位) / ARM (32位) 双指令集,能很好的兼容8位/16位器件 3、大量使用寄存器,指令执行速度更快 4、大多数数据操作都在寄存器中完成 5、寻址方式灵活简单、执行效率高 6、指令长度固定 ARM7系列:

属低端ARM处理器核,最适合用于对价位和功能消耗要求较高的消费类应用

主要应用领域为:工业控制、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用

DSP: Digital Signal Processor 命名解释:

ARM7DMI:T表示支持16位压缩指令集 (Thumb),D表示支持片上调试 (Debug),M表示内嵌硬件乘法器 (Multiplier),I 表示嵌入式ICE(仿真器),支持片上断点和调试点 ( in - circuit emulater ) ARM7系列处理器特点:

1、具有嵌入式ICE逻辑,调试开发方便 2、功耗极低,适合便携式产品开发

3、3级流水线结构 4、支持Thumb 5、支持多种操作系统

6、指令与ARM9、ARM10系列兼容,便于升级 3级流水线 (Pipeline) 的执行过程

取指: 从存储器装载指令 译码:对刚装载的指令进行识别

执行:处理指令并把结果写回相应的寄存器

ARM9系列处理器特点:

在高性能和低功耗特性方面提供最佳的性能

主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数码相机和数字摄像机

ARM9有5级流水线:FETCH、DECODE、EXECUTE、MEMORY、WRITE

ARM 与 THUMB

1、THUMB指令是ARM指令的自给 2、可以相互调用,只要遵循一定的调用规则

3、THUMB指令与ARM指令时间效率和空间效率关系:存储空间是ARM代码的60% ~ 70%,指令数比ARM代码多约30% ~ 40%,存储器为32位时ARM代码比THUMB代码

快约 40%,存储器为16位时THUMB比ARM代码快约40 ~ 50%,使用THUMB代码,存储器的功耗会降低约30% 状态切换:

ARM 与 THUMB之间的状态的切换不影响处理器模式或寄存器的内容 ARM指令集和THUMB都有相应的切换命令 切换方法:

进入THUMB状态:操作数寄存器Rm的状态位 bit [0] 为1,执行 BX Rm 进入ARM状态:操作数寄存器Rm的状态位 bit [0] 为0,执行 BX Rm 在开始执行开骂时,应该处于ARM状态 ARM微处理器的存储器格式: 1、支持最大寻址空间为4GB

2、ARM体系结构将存储器看作是从零地址开始的字节的线性组合 3、ARM体系结构可以用两种方法存储字数据:大端和小端格式

大端(Big-Endian): 低字节存放在高地址中 小端(Little-Endian): 高字节存放在高地址中

ARM处理器工作模式

1、USR模式:正常用户模式、程序正常执行模式

2、FIQ模式(Fast Interrupt Request ):处理快速中断,支持高速数据传送或通道处理 3、IRU模式:处理普通中断

4、SVC模式:( Supervisor) :操作系统保护模式,处理软件中断

5、ABT 中止:(Abort mode) :处理存储器故障,实现虚拟存储器和存储器保护 6、UND未定义:(Undefined):处理未定义的指令陷阱,支持硬件协处理器的软件仿真 7、SYS系统模式(基本上=USR)

ARM寄存器组成:

31个通用寄存器:R0 ~ R15 (PC)、 R13_svc,R14_svc,R13_abt,R14_abt,R13_und,R14_und,R13_irq,R14_irq,R8_frq ~ R14_frq,

6个状态寄存器:CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_frq

ARM状态下的寄存器组织

R0 ~ R7 是普通工作寄存器 R8 ~ R12用于对场景信息的保留 R13常用作堆栈指针 R14作为子程序连接寄存器 R15是程序计数器

CPSR (当前程序状态寄存器) SPSR (备份的程序状态寄存器)

程序状态寄存器图如下:

N、Z、C、V为标志位

N标志位:当用两个补码表示的带符号数进行运算时,N=1代表运算的结果为负数,N=0表示的结果是正数或0

Z标志位:Z=1表示运算的结果为0,Z=0表示运算的结果为非0

V标志位:加 / 减法运算指令,V=1表示符号位的溢出,对于其它非加 / 减运算指令,V的值通常不变

C标志位:加法运算结果进位时,C=1,减法运算借位时,C=0,移位操作的非加 / 减法运算指令,C为移出的最后一位,其它的非加 / 减运算指令,C的值通常不变

I、F、T 和 M [4:0] 称为控制位,发生异常时这些位可以被改变 中断禁止位 I、F:I=1,禁止IRQ中断,F=1,禁止FIQ中断

T标志位反映处理器的运行状态,T=1,运行 THUMB状态, T=0,运行 ARM状态

ARM体系结构所支持的异常类型:

1、复位:复位电平有效时,产生复位异常,程序跳转到复位处理程序处执行 2、未定义指令:遇到不能处理的指令,定义未定义指令异常

3、软件中断:执行SWI指令产生,用于用户模式下的程序调用操作指令(用户模式 -> 模式)

4、指令预取中止:处理器预取指令的地址不存在,或该地址不允许当前指令访问,产生指令预取中止异常

5、数据中止:处理器数据访问指令的地址不存在,或该地址不允许当前指令访问,产生数据中止异常

6、IRQ:外部中断请求有效,且CPSR中的 I 位为0时,产生 IRQ 异常 7、FIQ:快速中断请求引脚有效,且CPSR中的 F位为0时,产生 FIQ异常

ARM体系中的中断如下图:

0x00000014作为预留使用

异常执行的一段代码通常为

SUB LR,LR,#4 ; FIQ、IRQ的中断处理 STMFD SP!,{reglist,LR} ......

LDMFD SP!,{reglist,PC}^

对异常的相应:

1、将下一条指令的地址存入相应连接寄存器 LR,以便程序在处理异常返回时能从正确的位置重新开始执行,若是从ARM状态进入,LR寄存器中保存的是下一条指令的地址(当前 PC+4或 PC+8),与异常的类型有关 2、将CPSR复制到相应的 SPSR中

3、根据异常类型,强制设置CPSR的运行模式位

4、强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处

还可以设置中断禁止位,以禁止中断发生,如果异常发生时,处理器处于THUMB状态,则从异常向量加载入PC时,处理器自动切换到ARM状态

异常处理完毕后,ARM微处理器会执行以下几步从异常返回: 1、将连接寄存器 LR的值减去相应的偏移量后送到PC中 2、将SPSR复制回CPSR中

3、若在进入异常处理时设置了中断禁止位,要在此清除

可以认为应用程序总是从复位异常处理程序开始执行的,因为复位异常处理程序不需要返回

应用程序中的异常处理:

当系统运行时,异常可能随时发生,进行异常处理,采用的方式是异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序,当ARM处理器发生异常时,程序计数器PC会强制设置为对应的异常向量,从而跳转到处理程序,当异常处理完成后,返回到主程序继续执行

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务