嵌入式系统技术应用与开发
上QQ阅读APP看书,第一时间看更新

2.1.4 ARM版本的命名规则

2.1.4 ARM版本的命名规则

从最初开发到现在,ARM版本结构有了巨大的改进,并在不断完善和发展。这里提到的命名规则,分成两类:一类是基于ARM的版本命名规则;另一类是基于ARM版本的处理器系列命名规则。基于ARM的版本命名规则具体格式如下:

该命名规则分成4个组成部分:

ARMv——固定字符,即ARM Version——指令集。

n——版本号。

variants——变种。

xvariants)——排除x后指定的变种。

为了清楚地表达每个ARM应用实例所使用的指令集,ARM公司定义了8种主要的ARM指令集体系结构版本,以版本号V1~V8表示,如表2-1所示。

表2-1 ARM核心版本及体系结构

(续)

(1)ARM版本V1

该版体系结构只在原型机ARM1出现过,只有26位的寻址空间,没有用于商业产品。其基本性能有:基本的数据处理指令(无乘法);基于字节、半字和字的Load/Store指令;转移指令,包括子程序调用及链接指令;供操作系统使用的软件中断指令SWI;寻址空间为64 MB。

(2)ARM版本V2

该版体系结构对V1版进行了扩展,例如ARM2和ARM3(V2A)架构。包含了对32位乘法指令和协处理器指令的支持。版本V2A是版本V2的变种,ARM3芯片采用了版本2A的,是第一片采用片上Cache的ARM处理器。同样为26位寻址空间,现在已经废弃不再使用。

版本V2体系结构与版本V1相比,增加了以下功能:乘法和乘加指令;支持协处理器操作指令;快速中断模式;SWP/SWPB的最基本存储器与寄存器交换指令;寻址空间为64 MB。

(3)ARM版本V3

ARM作为独立的公司,在1990年设计的第一个微处理器采用的是版本V3的ARM6。V3版体系结构对ARM体系结构作了较大的改动,寻址空间增至32位(4 GB);当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器(Current Program Status Register,CPSR)中;增加了程序状态保存寄存器(Saved Program Status Register,SPSR);增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常;增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器;增加了从异常处理返回的指令功能。

(4)ARM版本V4

V4版体系结构在V3版上作了进一步扩充,V4版体系结构是目前应用最广的ARM体系结构,ARM7、ARM8、ARM9和Strong ARM都采用该体系结构。V4不再强制要求与26位地址空间兼容,而且还明确了哪些指令会引起未定义指令异常。指令集中增加了以下功能:符号化和非符号化半字及符号化字节的存/取指令;增加了T变种,处理器可工作在Thumb状态,增加了16位Thumb指令集;完善了软件中断SWI指令的功能;处理器系统模式引进特权方式时使用用户寄存器操作;把一些未使用的指令空间捕获为未定义指令。

(5)ARM版本V5

V5版体系结构是在V4版基础上增加了一些新的指令,ARM10和Xscale都采用该版体系结构。这些新增命令有:带有链接和交换的转移BLX指令;计数前导零CLZ指令;BRK中断指令;增加了数字信号处理指令(V5TE版);为协处理器增加更多可选择的指令;改进了ARM/Thumb状态之间的切换效率;E——增强型DSP指令集,包括全部算法操作和16位乘法操作;J——支持新的Java,提供字节代码执行的硬件和优化软件加速功能。

(6)ARM版本V6

V6版体系结构最初是在ARM11处理器中使用。在降低耗电量的同时,还强化了图形处理性能。通过追加有效进行多媒体处理的单指令多数据(Single Instruction Multiple Data,SIMD)功能,将语音及图像的处理功能提高到了原型机的4倍。

(7)ARM版本V7

V7体系结构是在ARMV6的基础上诞生的。该体系结构采用了Thumb-2技术,它是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了对现存ARM解决方案的完整的代码兼容性。ARMV7体系结构还采用了NEON技术,将DSP和媒体处理能力提高了近4倍,并支持改良的浮点运算,满足下一代三维图形、游戏物理应用以及传统嵌入式控制应用的需求。

(8)ARM版本V8

V8体系结构是在32位ARM体系结构上进行开发的,首先用于对扩展虚拟地址和64位数据处理技术有更高要求的产品领域,如企业应用、高档消费电子产品。ARMV8体系结构包含两个执行状态:AArch64和AArch32。AArch64执行状态针对64位处理技术,引入了一个全新指令集A64;而AArch32执行状态将支持现有的ARM指令集。

ARM体系结构支持的数据类型