第二章
1、ARM微处理器的特点
A 体积小、低功耗、低成本、高性能;
B 支持Thumb(16位)/ARM(犯位)双指令集,能很好地兼容8位/16位器件; C 大量使用寄存器,指令执行速度更快; D 大多数数据操作都在寄存器中完成; E 寻址方式灵活简单、执行效率高。
2、画出ARM体系结构方框图,并说明各部分功能(23)
1.ALU
ARM体系结构的ALU与常用的ALU逻辑结构基本相同,由两个操作数锁存器、加法器、逻辑功能、结果及零检测逻辑构成。ALU的最小数据通路周期包含寄存器读时间、移位器延迟、ALU延迟、寄存器写建立时间、双相时钟间非重叠时间等几部分。 2.桶形移位寄存器
ARM采用了32×32位桶形移位寄存器,左移/右移n位、环移n位和算术右移n位等都可以一次完成,可以有效的减少移位的延迟时间。在桶形移位寄存器中,所有的输入端通过交叉开关(Crossbar)与所有的输出端相连。交叉开关采用NMOS晶体管来实现。
3.高速乘法器
ARM为了提高运算速度,采用两位乘法的方法,2位乘法可根据乘数的2位来实现“加-移位”运算。ARM的高速乘法器采用32×8位的结构,完成32×2位乘法也只需5个时钟周期
4.浮点部件
在ARM体系结构中,浮点部件作为选件可根据需要选用,FPA10浮点加速器以协处理器方式与ARM相连,并通过协处理器指令的解释来执行。
浮点的Load/Store指令使用频度要达到67%,故FPA10内部也采用Load/Store结构,有8个80位浮点寄存器组,指令执行也采用流水线结构。 5.控制器
ARM的控制器采用硬接线的可编程逻辑阵列PLA,其输入端有14根、输出端有40根,分散控制Load/Store多路、乘法器、协处理器以及地址、寄存器ALU和移位器。 6.寄存器
ARM内含37个寄存器,包括31个通用32位寄存器和6个状态寄存器
7、分析ARM11的内核结构(P26) 8、分析cortex-M4处理器内部结构(P33)
14、 ARM微处理器支持哪几种运行模式?各运行模式有什么特点?
答:
1)用户模式:ARM处理器正常程序执行模式; 2)快速中断模式:用于高速数据传输或通道处理; 3)外部中断模式:用于通用的中断处理; 4)管理模式:操作系统使用的保护模式;
5)数据访问终止模式:当数据或指令预取终止时进入该模式,可用于虚拟存储 及存储保护;
6)系统模式:运行具有特权的操作系统任务;
7)未定义指令中止模式:当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
15、 RM微处理器有哪几种工作状态?各工作状态有什么特点
答:ARM处理器有32位ARM和16位Thumb两种工作状态。在32位ARM状态下执行字对齐的ARM指在16位Thumb状态下执行半字对齐的Thumb指令。
16、 试分析ARM寄存器组织结构图,并说明寄存器分组与功能。
答:1.通用寄存器
通用寄存器(R0~R15)可分成不分组寄存器R0~R7、分组寄存器R8~R14和程序计数器R15 三类。
(1)不分组寄存器R0~R7
不分组寄存器R0~R7是真正的通用寄存器,可以工作在所有的处理器模式下, 没有隐含的特殊用途。
(2)分组寄存器R8~R14
分组寄存器R8~R14取决于当前的处理器模式,每种模式有专用的分组寄存器
用于快速异常处理 (3)程序计数器R15
读程序计数器:读PC主要用于快速地对临近的指令和数据进行位置无关寻址,包括程序中 的位置无关转移。
写程序计数器:写R15的通常结果是将写到R15中的值作为指令地址,并以此地址发生转 移。
2程序状态寄存器
寄存器R16用作程序状态寄存器CPSR(当前程序状态寄存器)。在所有处理器模式下都可 以访问CPSR。
17、 简述程序状态寄存器的位功能
(1)条件码标志
N、Z、C、V(Negative、Zero、Carry、oVerflow)均为条件码标志位(Condition Code Flags),它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。CPSR中的条件码标志可由大多数指令检测以决定指令是否执行。在ARM状态下,绝大多数的指令都是有条件执行的。在Thumb状态下,仅有分支指令是有条件执行的。 通常条件码标志通过执行比较指令(CMN、CMP、TEQ、TST)、一些算术运算、逻辑运算和传送指令进行修改。
条件码标志的通常含义如下:
● N:如果结果是带符号二进制补码,那么,若结果为负数,则N=1;若结果为正数或0,则N=0。
● Z:若指令的结果为0,则置1(通常表示比较的结果为“相等”),否则置0。 C:可用如下4种方法之一设置: 一-加法(包括比较指令CMN)。若加法产生进位(即无符号溢出),则C置1;否则置0。
一-减法(包括比较指令CMP)。若减法产生借位(即无符号溢出),则C置0;否则置1。
一-对于结合移位操作的非加法/减法指令,C置为移出值的最后1位。 一-对于其他非加法/减法指令,C通常不改变。 ● V:可用如下两种方法设置,即
一-对于加法或减法指令,当发生带符号溢出时,V置1,认为操作数和结果是补码形式的带符号整数。
一-对于非加法/减法指令,V通常不改变。 (3)控制位
程序状态寄存器PSR(Program Status Register)的最低8位I、F、T和M[4:0]用作控制位。当异常出现时改变控制位。处理器在特 权模式下时也可由软件改变。
? a.中断禁止位
I:置1,则禁止IRQ中断; F:置1,则禁止FIQ中断。
? b.T位
T=0 指示ARM执行; T=1 指示Thumb执行。
? c.模式控制位
M4、M3、M2、Ml和M0(M[4:0])是模式位,决定处理器的工作模式。
20、ARM体系结构支持几种类型的异常,并说明其异常处理模式和优先级状态?
答,支持7种类型的异常 异常处理过程:(进入异常)PC→LR,CPRS→SPSR,设置CPSR的运行模式位,跳转 到相应的异常处理程序,(异常返回)LR→PC,SPSR→CPSR,若在进入异常处理时 设置中断禁止位,要在此清楚,复位异常处理程序不需要返回。
Reset>数据中指>快速中断请求(FIQ)>中断请求(IRQ)>指令预取中止> 未定义指令和软件中止。、
21、简述异常类型的含义
? (1)复位
? 当处理器的复位电平有效时,产生复位异常,ARM处理器立刻停止执行当前指令。复
位后,ARM处理器在禁止中断的管理模式下,程序跳转到复位异常处理程序处执行(从地址0x00000000或0xFFFF0000开始执行指令)。 ? (2)未定义指令异常
? 当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。当ARM处
理器执行协处理器指令时,它必须等待任一外部协处理器应答后,才能真正执行这条指令。若协处理器没有响应,就会出现未定义指令异常。若试图执行未定义的指令,也会出现未定义指令异常。未定义指令异常可用于在没有物理协处理器(硬件)的系统上,对协处理器进行软件仿真,或在软件仿真时进行指令扩展。 ? (3)软件中断异常(SoftWare Interrupt,SWI) ? 软件中断异常由执行SWI指令产生,可使用该异常机制实现系统功能调用,用于用户模
式下的程序调用特权操作指令,以请求特定的管理(操作系统)函数。 ? (4)指令预取中止
? 若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发
出存储器中止(Abort)信号,但当预取的指令被执行时,才会产生指令预取中止异常。 ? (5)数据中止(数据访问存储器中止)
? 若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止
异常。存储器系统发出存储器中止信号。响应数据访问(加载或存储)激活中止,标记数据为无效。在后面的任何指令或异常改变CPU状态之前,数据中止异常发生。 ? (6)外部中断请求(IRQ)异常
? 当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。系统的
外设可通过该异常请求中断服务。IRQ异常的优先级比FIQ异常的低。当进入FIQ处理时,会屏蔽掉IRQ异常。
? (7)快速中断请求(FIQ)异常
? 当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常。FIQ支
持数据传送和通道处理,并有足够的私有寄存器。
22、简述ARM微处理器处理异常的操作过程。
相关推荐: