第3章 ARM体系结构及基于ARM9处理器的嵌入式系统硬件平台OMAP5912
1、试比较RISC和CISC体系结构的异同,为什么ARM内核要采用RISC体系结构?(P47)
答:ARM体系结构总的设计思路是在不牺牲性能的同时尽可能简化处理器。同时从体系结构的层面上支持灵活的处理器扩展。这种简化和开放的思路使ARM处理器采用了很简单的结构——精简指令集计算机(Reduced Instruction Set Computer,RISC)体系结构来进行实现。
传统的复杂指令集计算机(Complex Instruction Set Computer,CISC)结构有其固有的缺点,即随着计算机技术的发展而不断引入新的复杂的指令集,为支持这些新增的指令,计算机的体系结构会越来越复杂,然而,在CISC指令集的各种指令中,其使用频率却相差悬殊,大约有20%的指令会被反复使用,占整个程序代码的80%。而余下的80%的指令却不经常使用,在程序设计中只占20%,显然,这种结构是不太合理的。
基于以上的不合理性,1979年美国加州大学伯克利分校提出了RISC的概念。
RISC并非只是简单地去减少指令。RISC是一种设计思想,其目标是设计出一套能在高时钟频率下单周期执行、简单而有效的指令集。RISC的设计重点在于降低由硬件执行的指令的复杂度,因为软件比硬件容易提供更大的灵活性和更高的智能。因此,RICS设计对编译
器有更高的要求;相反,传统的CISC则更侧重于硬件执行指令的功能性,使CISC指令变得更复杂。
2、简述ARM的设计思想及其与单纯的RISC定义的不同。(P48~49) 答:ARM内核并不是一个纯粹的RISC体系结构,这是为了使它能够更好地适应其主要应用领域——嵌入式系统。为了使ARM指令集能够更好地满足嵌入式应用的需要,ARM指令集和单纯的RISC定义有以下几个方面的不同:
? 一些特定的指令周期数可变——并不是所有的ARM指令都是单周期的。例如:多寄存器装载/存储的Load/Store指令的执行周期就是不确定的,必须根据被传送的寄存器个数来定。如果是访问连续的存储器地址,就可以改善性能,因为连续的内存访问通常比随机访问要快;同时,代码密度也得到了提高,因为在函数的起始和结尾,多个寄存器的传输是很常用的操作。
? 内嵌桶形移位器产生了更为复杂的指令——内嵌桶形移位器是一个硬件部件,在一个输入寄存器被一条指令使用之前,内嵌桶形移位器可以处理该寄存器中的数据。它扩展了许多指令的功能,以此改善了内核性能,提高了代码密度。
? Thumb 16位指令集——ARM内核增加了一套称之为Thumb指令的16位指令集,使得内核既能够执行16位指令,也能够执行32位指令,从而增强了ARM内核的功能。16位指令与
32位的定长指令相比较,代码密度可以提高约30%。 ? 条件执行——只有当某个特定条件满足时指令才会被执行。这个特性可以减少分支指令的数目,从而改善性能,提高代码密度。
3、ARM体系结构发展过程中,主要有哪些变种,对各变种做简要介绍。(P49~50)
答:我们将在ARM体系中增加的某些特定功能称为ARM体系的某种变种(variant),下面介绍ARM体系的一些变种形式。 (1)Thumb指令集(T变种)
Thumb指令集是将ARM指令集的一个子集重新编码而形成的一个指令集。ARM指令长度为32位,Thumb指令长度为16位。这样,使用Thumb指令集可以得到密度更高的代码,这对于需要严格控制产品成本的设计非常有意义。 (2)长乘法指令(M变种)
M变种增加了两条用于进行长乘法操作的ARM指令:其中一条指令用于实现32位整数乘以32位整数,生成64位整数的长乘法操作,另一条指令用于实现32位整数乘以32位整数,然后再加上32位整数,生成64位整数的长乘加操作。 (3)增强型DSP指令(E变种)
E变种包含了一些附加的指令,这些指令用于增强处理器对一些典型DSP算法的处理性能,主要包括:几条新的实现16位数据乘法
和乘加操作的指令,实现饱和的带符号数的加减法操作的指令。 (4)Java加速器Jazelle(J变种)
ARM的Jazelle技术将Java的优势和先进的32位RISC芯片完美地结合在一起。Jazelle技术提供了Java加速功能,可以得到比普通Java虚拟机高得多的性能。与普通的Java虚拟机相比,Jazelle使Java代码运行速度提高了3倍,而功耗降低了80%。
Jazelle技术使得程序员可以在一个单独的处理器上同时运行Java应用程序、已经建立好的操作系统、中间件以及其他应用程序。与使用协处理器和双处理器相比,使用单独的处理器可以在提供高性能的同时,保证低功耗和低成本。
(5)ARM媒体功能扩展(SIMD变种)
SIMD变种的主要特点是:可以同时进行两个16位操作数或者4个8位操作数的运算,提供了小数算术运算,用户可以定义饱和运算的模式,两套16位操作数的乘加/乘减运算,32位乘以32位的小数MAC,同时8位/16位选择操作。
4、ARM体系结构版本的命名规则有哪些?简单说明ARM7TDMI的含义。(P50)
答:ARM产品通常以ARM[x][y][z][T][D][M][I][E][J][F][-S]形式出现。ARM体系结构的命令规则中这些后缀的具体含义见表3-2。ARM7TDMI的含义即ARM7内核,增加了Thumb指令集(T变种)、JTAG调试器、长乘法指令(M变种)和嵌入式跟踪宏单元的功能。
相关推荐: