嵌入式系统原理第二章习题 下载本文

1 比较CISC体系结构和RISC体系结构的特点。

CISC指令集设计的主要趋势是增加指令集的复杂度。而复杂指令集的高性能是以宝贵、有限的芯片面积为代价的。RISC的中心思想是精简指令集的复杂度、简化指令实现的硬件设计,硬件只执行很有限的最常用的那部分指令,大部分复杂的操作则由简单指令合成。RISC思想大幅度提高了计算机性能价格比。

2 简述ARM体系结构的特点。

ARM采用RISC体系结构,采用了若干Berkeley RISC处理器设计中的特征,包括:Load/store体系结构,固定的32位指令和3地址指令格式 。

3 什么是Thumb技术?其优点是什么?与ARM指令集相比,Thumb指令集具有哪些局限? Thumb是ARM体系结构的扩展。它从标准32位ARM指令集抽出来的36条指令格式,重新编成16位的操作码,提高了代码密度。在运行时,这些16位Thumb指令又由处理器解压成32位ARM指令。Thumb技术的优点是能带来更高的代码密度,在性能和代码之间取得平衡。

与ARM指令集相比.Thumb指令集具有以下局限:

1)完成相同的操作,Thumb指令集通常需要更多的指令,因此在对系统运行时间要求苛刻的应用场合ARM指令集更为适合;

2)Thumb指令集没有包含进行异常处理时需要的一些指令,因此在异常中断时,还是需要使用ARM指令,这种限制决定了Thumb指令需要和ARM指令配合使用。

5 目前ARM处理器核有哪几种?简述ARM7TDMI内核的重要特性。

目前的ARM处理器核主要有:ARM7TDMI,ARM9TDMI,ARM10TDMI,ARM11,SecurCore和Cortex。

ARM7TDMI是ARM体系结构4T版本,支持64位结果的乘法,支持Thumb指令集,支持片上调试以及Embedded ICE片上断点和观察点。

6 分别以ARM7TDMI和ARM9TDMI为例,介绍3级流水线和5级流水线的执行过程,并进行相应的比较。

3级流水线分为:取指,译码和执行。5级流水线分为:取指、译码、执行、缓冲\\数据、回写。

它们的区别在于3级流水执行级中的寄存器读(reg读)在5级流水的译码级中处理。3级流水执行级中的寄存器写(reg写)在5级流水的回写级中处理。5级流水中的第4级缓冲\\数据表示如果需要则访问数据存储器,否则只是简单地缓冲一个时钟周期。3级流水采用冯诺依曼结构,不能同时访问指令存储器和数据存储器;5级流水采用哈佛结构,指令存储器与数据存储器分开,可以同时访问。

8 ARM微处理器支持哪几种工作模式?

共支持7中工作模式:用户模式,系统模式,快速中断(FIQ)模式,普通中断(IRQ)模式,管理(SVC)模式,中止模式和未定义模式。

9 ARM处理器共有多少个寄存器?这些寄存器在用户编程中的功能是如何划分的?ARM状态下的通用寄存器可分为哪几类?

ARM处理器共有37个寄存器,其中31个为通用寄存器,其余6个为状态寄存器。通用寄存器可分为未分组寄存器R0-R7,分组寄存器R8-R14和程序计数器R15。

10 简述ARM状态下分组寄存器R13,R14,R15的特殊功能及R15的使用注意事项。

寄存器R13通常用做堆栈指针SP;寄存器R14用作子程序链接寄存器LR;寄存器R15被用作程序计数器PC。R15值的改变将引起程序执行顺序的变化,这有可能引起程序执行中出现一些不可预料的结果,因此,对R15的使用一定要慎重。ARM处理器采用多级流水线技术,因此保存在R15的地址并不是当前指令的地址。

11 简述ARM程序状态寄存器各位的功能。

1)状态寄存器的最高4位为条件码标志位:N、Z、C、V。ARM的大多数指令可以是条件执行的,即通过检测条件码标志来决定程序指令如何执行。

N——在结果是带符号的二进制补码情况下,如果结果为负数,则N=1;如果结果为非负数,则N=0。

Z——如果结果为0,则Z=1;如果结果为非0,则Z=0。 C——它的设置分以下几种情况;

对于加法指令(包括比较指令CMN),如果产生进位,则C=1;否则C=0。 对于减法指令(包括比较指令CMP),如果产生借位,则C=0;否则C=1。 对于有移位操作的非加减法指令,C为移位操作中最后移出位的值。 对于其他指令,C通常不变。 V——它的设置也分为以下两种情况:

对于加减法指令,在操作数和结果是带符号的整数时,如果发生溢出,则V=1;如果无溢出发生,则V=0。

对于其他指令,V通常不发生变化。

2)状态寄存器的最低8位为控制位:I、F、T、M[4:0]。当异常出现时改变控制位。当处理器在特权模式下时也可以由软件改变控制位。

中断禁止位:I =1则禁止IRQ中断;F=1则禁止FIQ中断。 T位:T=0指示ARM执行;T=1指示Thumb执行。

M模式位:M4,M3,M2,M1和M0(M[4:0])是模式位,决定处理器的工作模式。 3)其他位

其他位保留用作以后的扩展。

14 简述ARM处理器对异常中断的响应过程。(用伪代码表示) 响应过程(用伪代码表示): R14_=return link SPSR_=CPSR STMFD SP!,{reglist}

CPSR[4:0]=exception mode number CPSR[5]=0

if=Reset or FIQ then CPSR[6]=1 CPSR[7]=1

PC=exception vector address

15 ARM如何从异常中断处理程序中返回? 返回过程:

1)所有修改过的用户寄存器必须从处理程序的保护堆栈中恢复(即出栈);

2)将SPSR_寄存器内容复制到CPSR中,使得CPSR从相应的SPSR中恢复,即恢复被中断的程序的处理器工作状态;

3)根据异常类型将PC变回到用户指令流中相应指令处; 4) 最后清除CPSR中的中断禁止标志位I/F。

16 什么是ARM异常中断向量表?它有何作用?存储在什么地方?

中断向量表中指定了各异常中断与其处理程序的对应关系。在ARM体系中,异常中断向量表大小为32字节,每个异常中断占据4个字节。ARM异常向量表通常以存储器的低端0x0为起始地址,大多数ARM处理器核也支持将异常向量表存放在以0xFFFF0000为起始地址的32字节空间中。每个异常中断对应的中断向量表的4个字节的空间中存放一个跳转指令或者一个向PC寄存器中赋值的数据访问指令LDR。通过这两种指令,程序将跳转到相应的异常中断处理程序处执行。

17 如果FIQ、IRQ和第3个异常(不是复位)同时发生,ARM应如何处理?

如果第3个异常是数据中止,处理器将在进入数据中止处理程序后立即进入FIQ处理程序。数据中止将“记”在返回路径中,当FIQ处理程序返回时进行处理。

如果第3个异常不是数据中止,将立即进入FIQ处理程序。当FIQ和IRQ两者都完成时,程序返回到产生第3个异常的指令并进行相应处理。

21 简述ARM的存储器层次。

1) 寄存器组——存储器层次的顶层,访问时间几个ns 2) 片上RAM——具有和片上寄存器组同级的读/写速度

3) 片上Cache——访问时间10ns,2级片外Cache访问时间几十ns 4)主存储器——访问时间50ns 5)硬盘——访问时间几十ms