资源描述
ARM920TDMA处理器是哈佛结构,包含取指、译码、实施、存放、写入五级流水线。包含cp14和cp15两个协处理器。16k数据缓存和16k指令缓存。虚拟地址64路相关缓存。每线8字。
ARM基础数据类型:
ARM采取是32位架构,基础上数据类型有以下三种:
Byte :字节,8位
Halfword:半字,16bit(半字必需和2字节边界对齐
Word:字,32bit(必需和4字节边界对齐
全部数据类型指令操作数全部是字类型。
ARM指令编译后是4字节(和字边界对齐,Thumb指令编译后是2字节(和半字对齐
存放器大/小端
Arm支持大端模式和小端模式。在大端模式下,一个字高地址放是数据地位,在小端模式下,数据低地址放是数据低位。
ARM920T,有7中工作模式:
用户模式(User,正常程序实施模式。
快速中止模式(FIQ,当一个高优先级中止产生时将会进入该模式,通常见于高速数据传输和通道处理。
外部中止模式(IRQ,当一个低优先级中止产生时将会进入该模式,通常见于通常中止处理
特权模式(Supervise,当复位或软中止指令实施时进入该模式,是一个供操作系统使用保护模式。
数据访问中止模式(abort,当存取异常时将会进入该模式,用于虚拟存放或存放保护未定义指令中止模式(undef,当实施未定义指令时进入该模式,有时用于经过软件仿真协处理器硬件工作方法
系统模式(system使用和user模式相同寄存器集模式,用于运行特权级操作系统任务
除了用户模式,其它六中均为特权模式。在特权模式下,程序能够访问全部系统资源,也能够任意进行处理器模式切换。
流水线概念和原理
处理器根据一系列步骤来实施每一条指令,经典步骤以下:
1、从存放器读取指令(fetch
2、译码以判别它是属于哪一条指令(decode
3、从指令中提取指令操作数(这些操作数往往存在于寄存器中(reg
4、将操作数进行组合以得到结果或存放器地址(ALU
5、假如需要,则访问存放器以存放数据(mem
6、将结果写回到寄存器堆(res
流水线分类:
1、3级流水线ARM组织
取指令—>译码—>实施
2、5级流水线ARM组织
取指令—>译码—>实施—>缓冲/数据—>回写
3、6级流水线ARM组织
取指令—>发射—>译码—>实施—>存放—>回写
影响流水线性能原因:
1、互锁:即一条指令结果被用作下一条指令操作数
2、跳转指令:
ARM为微处理器指令系统
ARM处理器寻址方法:
1、立即数寻址方法
2、寄存器寻址方法
3、寄存器移位寻址方法
内存访问指令寻址方法:
内存访问指令寻址方法能够分为以下多个
1、字及无符号字节load/store指令寻址方法
2、杂类load/store指令寻址方法
3、批量load/store指令寻址方法
4、协处理器load/store指令寻址方法
ARM处理器指令集
操作数指令集:
MOV:实施结果就是把一个数N送到目标寄存器Rd,其中N能够是寄存器也能够是立即数
MVN:是反相传送指令,它将操作数反码传送到目标寄存器,多用于向寄存器传送一个负数或生成位掩码。
AND:指令将shifter_operand表示数值和寄存器Rn值按位做逻辑和操作,并将结果保留到目标寄存器Rd中,同时依据操作结果更新CPSR寄存器
EOR:指令时将寄存器Rn中值和shifter_operand实施行按位异或操作,并将实施结果存放到目标寄存器Rd中,同时依据指令实施结果更新到 CPSR中对应条件标志位
SUB:指令从急促安全Rn中减去shifter_operand表示数值,并将结果存到目标寄存器Rd中,同时更具指令实施结果设置CPSR中对应标志位
RSB :指令从寄存器shifter_operand中减去Rn表示数值,并将结果保留到目标寄存器Rd中,同时更具指令实施结果设置CPSR中对应位。
ADC:指令将寄存器shifter_operand值加上Rn表示值,再加上CPSR中C条件标志位值,并将结果保留到目标寄存器Rd中,同时依据指令实施结果设置CPSR中对应标志位
SBC指令用于实施操作数大于32位时减法操作。该指令从寄存器Rn中减去shifter_operand表示数值,再减去寄存器CPSR中C条件标志位反码,并将结果保留到目标寄存器Rd中,同时依据指令实施结果哦设置CPSR中对应标志位。
RSC指令从寄存器shifter_operand中减去Rn表示数值,再减去寄存器CPSR中C条件标志位反码,并将结果保留到目标寄存器Rd中,同时依据指令实施结果设置CPSR 中对应标志位
TST 测试实施用于将一个寄存器值和一个算术值进行比较,条件标志位依据两个操
作数做逻辑和后结果设置。
TEQ 指令用于将一个寄存器值和一个算术值做比较,条件标志位依据两个操作数做逻辑异或后结果设置,方便以后指令依据对应条件标志来判定是否实施。
CMP 指令使用寄存器Rn值减去shifter_operand值,依据操作结果更新CPSR中对应条件标志位,方便后面指令依据对应条件标志来判定是否实施。
CMN 指令使用寄存器Rn值将去shifter_operand表示负数值,依据操作结果跟新CPSR中对应条件标志位,方便后面指令更具对应条件标志来判定是否实施。
ORR 位逻辑或操作指令,它将第二个源操作数shifter_operand值和寄存器Rn值按位做逻辑或操作,并将结果保留到Rd中
BIC 位清零指令,将寄存器Rn中值和第二个源操作数shifter_operand值反码按位做逻辑和操作,并将结果保留到目标寄存器中
乘法指令集
ARM异常中止处理概述
ARM处理器中有7中类型异常,按优先级从高到低排序以下:复位异常(reset、数据异常(data abort、快速中止异常(FIQ、外部中止异常(IRQ、预取异常(prefetch abort、软中止异常(swi和未定义异常(undefined instruction。
当异常发生时候处理器会把PC设置为一个特定存放器地址,之一地址房子被称为向量表特定地址范围内。向量表入口是部分跳转指令,跳转到专门处理摸个异常或中止子程序。
存放器映射地址0x00000000 是为向量表(一组32位字保留。在有些处理器中,向量表能够选择定位在存放空间高地址(从偏移量0xffff0000开始,部分嵌入式系统,如Linux和windows CE就是利用这一特征。
当异常发生时,分组寄存器r14和SPSR 用于保留处理器状态。异常返回式,SPSR内容回复到CPSR中,连接寄存器r14内容回复到程序计数器PC。
1、复位异常:当处理器复位引脚有效时,系统产生复位异常中止,程序跳转到复位异常中止处理程序处实施。复位异常中止有以下两种情况:系统上电和系统复位。
复位异常中止处理程序关键功效:
A、设置异常中止向量表
B、初始化数据栈和寄存器
C、初始化存放系统,如系统中MMU
D、初始化关键I/0设备
E、使能中止
F、处理器切换到适宜模式
G、初始化c变量,跳转到应用程序实施
2、未定义指令异常
3、软中止SWI:软中止发生时,处理器进入特权模式,实施部分特权模式下操作系统功效。
4、预取指令异常:是由系统存放器汇报,当处理器试图去取一条被标识为预取无效指令式,发生预取异常
5、数据访问异常:数据访问异常是由存放器发出数据中止信号,它由存放器访问指令load/store产生。当数据访问指令目标地址不存在或改地址不许可目前指令访问时,处理器产生数据访问中止异常。
当数据访问中止异常发生时,寄存器值将依据以下规则进行修改:
A、返回地址寄存器r14值只和发生数据异常指令地址相关,和PC无关
B、假如指令中没有指定基址寄存器回写,则基址寄存器值不会改变
C、假如指令中指定了机制寄存器回写,则寄存器值和具体芯片ABORT MODELS 相关,由芯片生产商指定
D、假如指令只加载一个通用寄存器值,则通用寄存器值不变
E、假如批量加载指令,则寄存器值是不可预知值
F、假如指令加载协处理器寄存器值,则被加载寄存器值是不可预知
6、外部中止IRQ:当处理器外部中止请求引脚有效,而且CPSR寄存器I控制位被清除时,处理器产生外部中止IRQ异常。
7、快速中止FIQ:当处理器快速中止请求引脚有效且CPSR寄存器F控制位被清除时,处理器产生快速中止请求FIQ异常。
展开阅读全文