之前介绍的ARM体系结构版本基本上能满足大部分需求应用。但有些特殊的应用,还需特殊的功能来实现。因此ARM体系结构中出现满足某些特定功能的ARM体系结构,称为ARM体系结构的某种变种。目前ARM定义了一些变种。
-
Thumb指令集(T变种)
Thumb指令集是将ARM指令集的一个子集重新编码形成的指令集。ARM指令长度为32位,Thumb指令长度为16位。因此Thumb指令集可以得到密度更高的代码。同样的存储空间下,能够实现更多的Thumb指令。因此可节约成本。但由于Thumb指令集不是完整的体系结构,处理程序不能只执行Thumb指令,而不执行ARM指令。
于ARM指令集相比,Thumb指令集也存在缺陷,如下:
a.Thumb指令需要更多的执行时间,不适合应用在对时间要求比较严格的场景。
b.Thumb缺少进行异常处理时需要的一些指令。
-
长乘法指令(M变种)
M变种增加了两条长乘法指令。
a.两个32位数相乘,结果为64位数的指令。
b.两个32位数相乘再加上一个32位数,结果为64位数的指令。
M变种再V3版本中引入,如果没有设计方面的限制,M变种在V4版本中属于标准部分。
-
增强型DSP指令(E变种)
E变种增加了一些附加指令,以增强处理器对一些典型的DSP算法处理的性能。
E变种首次出现在V5T中,用字符E表示。在V5之前的版本中,以及非M和非T变种的版本中,E变种无效。
-
Java加速器Jazelle(J变种)
由于java的普及,嵌入式设备在运行java程序的地方越来越多,大部分app是用java编写。但java需要特殊的环境才能运行,比如java虚拟机,但运行java虚拟机效率较低,因此java硬件加速器应用而生。Jazelle使java代码运行速度提高了8倍,而功耗降低了80%。
J变种首次在V4TEJ中使用,用字符J表示。
-
ARM媒体功能扩展(SIMD变种)
新一代的嵌入式设备,比如手机和PDA等设备,需要提供高性能的流式媒体,包括音频和视频等。而且这些设备还需要提供更加人性化的界面。因此要求处理器能够提供很强的数字信号处理能力,另外需要保持续航时间,必须保持低功耗。ARM的SIMD媒体功能扩展为以上问题提供了解决方案。优化视频音频处理功能,使音视频处理性能提高了4倍。