Cortex-M3嵌入式处理器原理与应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 ARM体系结构

1.2.1 ARM体系结构的版本

迄今为止,ARM公司定义了8种主要的ARM ISA(Instruction Set Architecture,指令集体系结构),指令集有了巨大的改进,功能不断扩大,版本号分别为ARMv1~ARMv6、ARMv7 A&R、ARMv7 M。同时,各版本中还有一些变种,这些变种定义了指令集中不同的功能。对于相同的ARM体系结构,基于它们的应用软件是兼容的。如图1.1所示为ARM体系结构升级路线56FE。

图1.1 ARM体系结构升级路线56FE

ARM微处理器现用的体系结构中至少支持两种指令集:32位ARM指令集和16位Thumb指令集。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,使用Thumb指令集可以得到密度更高的代码。ARM指令集体系结构与扩展如图1.2所示。

图1.2 ARM指令集体系结构与扩展

1.ARMv4

ARMv4是目前所支持的最老的版本,之前的版本不再使用。某些ARM7系列和Intel的StrongARM处理器采用该版本指令集。ARMv4指令集可以在32位地址空间执行32位ARM指令集,并且有了T变种,可以在Thumb状态下支持16位的Thumb指令集。与32位指令相比可以节省35%的存储空间,依旧保留32位系统的优势。

2.ARMv5

ARMv5是在1999年发布的,与ARMv4相比,提升了ARM和Thumb两种指令的交互工作能力,改进了在T变量中ARM/Thumb状态之间的切换效率。同时有了E变种,可以支持DSP指令,在音频数字信号处理中可以提高70%的性能。2000年增加了J变种,可以运行Java指令。

3.ARMv6

ARMv6版本于2001年发布,其主要特点是增加了SIMD功能扩展,同时拓展了Thumb-2和TrustZone技术。SIMD用于视频编解码与三维绘图等数字信号处理,为音频视频在内的应用系统提供了优化功能,可以使音频视频的处理能力提高4倍。Thumb-2是一种新型混合指令集,融合了16位和32位指令,用于实现密度和性能的最佳平衡。TrustZone技术作为ARM体系结构的扩展,是一种新的硬件安全技术。第一款ARMv6处理器是ARM1136J(F)-STM,在2002年春季发布。

4.ARMv7

ARMv7在相当于ARM11下一代的CPU内核Cortex系列上采用,针对用途不同,定义了三大分工明确的系列。A系列面向尖端的基于虚拟内存的操作系统和用户应用,R系列针对实时系统,M系列对微控制器和低成本应用提供优化。ARMv7的M采用了Thumb-2技术,A系列和R系列还采用了NEON技术,将DSP和媒体处理能力提高了近4倍,并支持改良的浮点运算,满足下一代3D图形和游戏应用及传统的嵌入式控制应用的需求。

ARMv7 A注重提高运算性能,主要面向手机、PDA、便携式游戏机等产品的微控制器。通过强化浮点运算,提高了三维图形游戏所必需的画像处理性能。可以在Windows CE、Symbian OS、Linux等比较大型复杂的OS上运行。与ARMv6相比,其最大的区别就是增强了SIMD型指令,推出的名为NEON技术具有可进行64位数据或128位数据运算的混合型SIMD指令集,可将与VFP协处理器共享的寄存器按64位×32条或128位×16条来处理。此外,VFP的版本也由VFPv2提升到了最新的VFPv3。

ARMv7 R重视实时处理,可以减少数据输入/输出延迟时间,以及提高指令预测精度等,主要面向打印机与网络终端和汽车等领域;同ARMv7 A一样,支持NEON和VFPv3。

ARMv7 M面向廉价微控制器。v7 A与v7 R都是v6的功能强化版,而v7 M则是特意降低制造成本的一种选择;未加入NEON和VFPv3等新功能,省略了SIMD指令集与缓存等,即便是与v6相比功能也显得有些简单了。