首页 理论教育 嵌入式系统:ARM体系结构的演进

嵌入式系统:ARM体系结构的演进

时间:2023-11-23 理论教育 版权反馈
【摘要】:随着ARM 技术的发展,体系结构还将不断发展。本节主要论述和总结ARM体系结构版本的发展、演变过程和命名规则。ARM 体系结构在ARM 技术的不断发展过程中经历了多次修订,到2013 年止,已经发展到V8。版本7ARM 体系版本7 是2004 年发布的,并将其命名为“Cortex”。

嵌入式系统:ARM体系结构的演进

ARM 公司自成立以来,在32 位嵌入式处理器开发领域中不断取得突破,ARM 体系的指令集功能形成了多种版本,同时,各版本中还发展了一些变种版本,这些变种定义了该版本指令集中不同的功能,这些体系结构应用于不同的处理器设计中。

ARM 系列处理器的各体系结构版本实现技术各不相同,实现的性能差别也很大,应用场合也有所不同。 随着ARM 技术的发展,体系结构还将不断发展。 本节主要论述和总结ARM体系结构版本的发展、演变过程和命名规则。 ARM 体系结构在ARM 技术的不断发展过程中经历了多次修订,到2013 年止,已经发展到V8。

(1)版本1(V1)

ARM 体系结构版本1 对第一个ARM 处理器进行描述,其地址空间是26 位,仅支持26 位寻址空间,不支持乘法或协处理器指令。 本版本包括下列指令:①乘法指令之外的基本数据处理指令;②基于字节,字和多字的存储器访问操作指令(Load/Store);③子程序调用指令BL在内的跳转指令;④完成系统调用的软件中断指令SWI。

(2)版本2 (V2)

以ARM2 为核的Acorn 公司的Archimedes(阿基米德)和A3000 批量销售,它仍然是26位地址的机器,但包含了对32 位结果的乘法指令和协处理器的支持,ARM2 使用了ARM 公司现在称为ARM 体系结构版本2 的体系结构。

版本2a 是版本2 的变种,ARM3 芯片是采用了版本2a 和第一片具有片上Cache 的ARM处理器,版本2a 增加了合并load 和store(SWP)指令,并引入了使用协处理器15 作为系统控制协处理器来管理Cache。

与版本1 相比版本2(2a)增加了下列指令:①乘和乘加指令;②支持协处理器的指令;③对于FIQ 模式,提供了两个以上的分组寄存器;④SWP 指令及SWPB 指令。

(3)版本3(V3)

ARM 作为独立的公司,在1990 年设计的第一个微处理器采用的是版本3 的体系结构ARM6。 它作为IP 核、独立的处理器(ARM60)、具有片上高速缓存、MMU 和写缓冲的集成CPU(用于Apple Newton 的ARM600、ARM610)所采纳的体系结构而被广泛销售。

版本3 的变种版本有版本3G 和版本3M。 版本3G 是不与版本2a 向前兼容的版本3,版本3M 引入了有符号和无符号数乘法和乘-加指令,这些指令产生全部64 位结果。

版本3 较以前的版本发生了大的变化,具体的改进如下:①地址空间扩展到了32 位,但除了版本3G 外的其他版本是向前兼容的,也支持26 位的地址空间;②分开的当前程序状态寄存器CPSR(Current Program Status Register)和备份的程序状态寄存器SPSR(Saved Program Status Register),SPSR 用于在程序异常中断时保存被中断的程序状态;③增加了两种异常模式,使操作系统代码可以方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常;④增加了MRS 指令和MSR 指令用于完成对CPSR 和SPSR 寄存器的读写;⑤修改了原来的从异常中返回的指令。

(4)版本4(V4)(www.xing528.com)

体系结构版本4 不再强制要求与以前的26 位体系结构版本兼容,它清楚地指明了哪些指令会引起未定义指令异常发生。 在体系结构版本4 的变种版本4T 中引入了16 位Thumb压缩形式的指令集。

与版本3 相比,版本4 增加了下列指令:①有符号、无符号的半字和有符号字节的load 和store 指令;②增加了T 变种,处理器可以工作于Thumb 状态,在该状态下的指令集是16 位的Thumb 指令集;③增加了处理器的特权模式。 在该模式下,使用的是用户模式下的寄存器。

(5)版本5(V5)

版本5 主要由两个变种版本(5T、5TE)组成。 ARM10 处理器是最早支持版本5T 的(很快也会支持5TE 版本)处理器。 相比于版本4,版本5 的指令集有了如下的变化:①提高了T 变种中ARM/Thumb 混合使用的效率;②增加前导零记数(CLZ)指令,该指令可使整数除法和中断优先级排队操作更为有效;③增加了BKPT(软件断点)指令;④为协处理器设计提供了更多的可供选择的指令;⑤更加严格地定义了乘法指令对条件码标志位的影响。

(6)版本6(V6)

ARM 体系版本6 是2001 年发布的。 基本特点包括100%与以前的体系兼容、SIMD 媒体扩展,使媒体处理速度快1.75 倍、改进了的内存管理,使系统性能提高30%;改进了混合端(Endian)与不对齐数据支持,使得小端系统支持大端数据(如TCP/IP);为实时系统改进了中断响应时间,将最坏情况下的35 周期改进到了11 周期。 ARM 体系版本6 首先在2002 年春季发布的ARM11 处理器中使用。 除此之外,V6 还支持多微处理器内核。

(7)版本7(V7)

ARM 体系版本7 是2004 年发布的,并将其命名为“Cortex”(这是ARM 首次为其体系结构命名)。 新版的体系结构采用了更高性能、功耗效率和代码密度的Thumb®-2 技术,首次采用了强大的信号处理扩展集,对H.264 和MP3 等媒体编解码提供加速,Cortex-A8TM 处理器采用的就是V7 版的结构。 到2011 年,所有的ARM-Cotex family 都被设计成使用ARMV7 架构。 ARMV7 系列处理器内核包括Cortex-A(针对高端应用领域),Cortex-M(针对低功耗工业控制领域)和Cortex-R(针对实时应用领域)。

(8)版本8(V8)

版本8 于2011 年发布,这是ARM 公司的首款支持64 位指令集的处理器架构。 在2012年间推出基于ARMV8 架构的处理器内核并开始授权,而面向消费者和企业的样机于2013 年由苹果的A7 处理器上首次运用。

ARMV8 采用了新的指令集A64,其兼容ARMV7 的指令A32。 A32 和A64 的转换只能发生在异常级别转换时,且A32 和A64 之间的转换有一个严格的规则集合。 A64 指令集的特点如下:①A64 下的每条指令被定义为固定32 位;②A32 和A64 分别解码,这样可以简化解码表,单独的解码表可以允许更多更先进的分支预测技术;③通用目的寄存器增加到31 个;④A64删除了LDM/STM 指令,因为LDM/STM 实现比较复杂;⑤更少的条件指令,因为实现复杂,并且没有明显的好处;⑥浮点单元硬件支持;⑦SIMD 支持,针对A64 作了专门修订,引入了双精度浮点支持。

ARMV8 架构的典型内核有Cortex-A53、Cortex-A57 和Cortex-A72。 目前最新的手机大多采用A53 之后的公版架构。

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

我要反馈