首页 理论教育 ARM体系结构变种通晓与嵌入式C语言编程技术

ARM体系结构变种通晓与嵌入式C语言编程技术

时间:2026-01-26 理论教育 版权反馈
【摘要】:ARM体系结构的变种是根据某些特定功能定义的。ARM指令长度为32位,Thumb指令长度为16位。这些特点与ARM体系结构版本4到版本5进行的扩展密切相关。实际上,通常并不使用Thumb指令集版本号,而是使用相应的ARM体系结构版本号。如果没有上述设计方面的限制,在ARM体系结构版本4及其以后的版本中,M变种是系统中的标准部分。对于支持长乘法指令的ARM体系结构版本,使用字符M表示。

ARM体系结构的变种是根据某些特定功能定义的。下面具体介绍T变种、M变种、E变种、J变种、SIMD变种。

1.T变种(Thumb指令集)

Thumb指令集是将ARM指令集的一个子集重新编码而形成的一个指令集。ARM指令长度为32位,Thumb指令长度为16位。使用Thumb指令集可以得到密度更高的代码,这对于需要严格控制产品成本的设计是非常有意义的。

(1)与ARM指令集相比,Thumb指令集具有以下局限:

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

②Thumb指令集没有包含进行异常处理时需要的一些指令,因此在异常中断的低级处理中,仍需要使用ARM指令。这种限制决定了Thumb指令需要与ARM指令配合使用。对于支持Thumb指令的ARM体系结构版本,使用字符T来表示。

(2)相关Thumb指令集版本的示例如下:

①Thumb指令集版本1,用于ARM体系结构版本4的T变种。

②Thumb指令集版本2,用于ARM体系结构版本5的T变种。

(3)与版本1相比,Thumb指令集版本2具有以下特点:

①通过增加指令和对已有指令的修改,提高ARM指令和Thumb指令混合使用的效率。

②增加了软件断点指令。

③更加严格地定义了Thumb乘法指令对条件标志位的影响。

这些特点与ARM体系结构版本4到版本5进行的扩展密切相关。实际上,通常并不使用Thumb指令集版本号,而是使用相应的ARM体系结构版本号。

2.M变种(长乘法指令)

M变种增加了两条用于进行长乘法操作的ARM指令。其中一条指令用于实现32位整数乘以32位整数,生成64位整数的长乘法操作;另一条指令用于实现32位整数乘以32位整数,然后再加上32位整数,生成64位整数的长乘加操作。M变种很适合需要这种长乘法的应用场合。

然而,在有些应用场合中,乘法操作的性能并不重要,但对于尺寸的要求很苛刻,在系统实现时就不适合增加M变种的功能。

M变种首先在ARM体系结构版本3中引入。如果没有上述设计方面的限制,在ARM体系结构版本4及其以后的版本中,M变种是系统中的标准部分。对于支持长乘法指令的ARM体系结构版本,使用字符M表示。

3.E变种(增强型DSP指令)

E变种包含了一些附加的指令,这些指令用于增强处理器对一些典型的DSP算法的处理性能,主要包括:

(1)几条新的实现16位数据乘法和乘加操作的指令。

(2)实现饱和的带符号数的加减法操作的指令。所谓饱和的带符号数的加减法操作,是指在加减法操作溢出时,结果并不进行卷绕,而是使用最大的整数或最小的负数表示。

(3)进行双字数据操作的指令,包括双字读取指令LDRD、双字写入指令STRD和协处理器的寄存器传输指令MCRR/MRRO。

(4)Cache预取指令PLD。

E变种首先在ARM体系结构版本5T中使用,用字符E表示。在ARM体系结构版本5以前的版本中,以及在非M变种和非T变种的版本中,E变种是无效的。(https://www.xing528.com)

在早期的一些E变种中,未包含双字读取指令LDRD、双字写入指令STRD、协处理器的寄存器传输指令MCRR/MRRO以及Cache预取指令PLD。这种E变种记作ExP,其中x表示缺少,P代表上述几种指令。

4.J变种(Java加速器Jazelle)

ARM的Jazelle技术将Java的优势和先进的32位RISC芯片完美地结合在一起。Jazelle技术提供了Java加速功能,可以得到比普通Java虚拟机高得多的性能。与普通的Java虚拟机相比,Jazelle使Java代码运行速度提高了8倍,而功耗降低了80%。

Jazelle技术使程序员可以在一个单独的处理器上同时运行Java应用程序、已经建立好的操作系统、中间件以及其他应用程序。与使用协处理器和双处理器相比,使用单独的处理器可以在提供高性能的同时保证低功耗和低成本。

J变种首先在ARM体系结构版本4TEJ中使用,用字符J表示J变种。

5.SIMD变种(ARM媒体功能扩展)

ARM媒体功能扩展为嵌入式系统提供了高性能的音频/视频处理技术。

新一代的Internet应用系统、移动电话和平板电脑等设备需要提供高性能的流式媒体,包括音频和视频等,而且这些设备需要提供更加人性化的界面,包括语音识别和手写输入识别等。这就要求处理器能够提供很强的数字信号处理能力,同时还必须保持低功耗,以延长电池的使用时间。ARM的媒体功能扩展[单指令多数据流(Single Instruction Multiple Data,SIMD)]为这些应用系统提供了解决方案。它为包括音频和视频处理在内的嵌入式应用系统提供了优化功能,可以使音频和视频处理性能提高4倍。

(1)它的主要特点如下:

①将音频和视频处理性能提高了2~4倍;

②可以同时进行两个16位操作数或者4个8位操作数的运算;

③提供了小数算术运算;

④用户可以定义饱和运算的模式;

⑤两套16位操作数的乘加/乘减运算;

⑥32位乘以32位的小数MAC;

⑦同时进行8位/16位选择操作。

(2)它的主要应用领域如下:

①Internet应用系统;

②流式媒体应用系统;

③MPEG4编码/解码系统;

④语音和手写输入识别;

⑤FFT处理;

⑥复杂的算术运算;

⑦维特比(Viterbi)处理。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈