1.2.2 ARM架构
架构指的是一系列的功能规范。ARM架构指的就是基于ARM处理器的功能规范,又称为ARM CPU架构。架构指定了处理器的行为方式,例如,架构中包含什么指令以及指定指令做什么。基于一种架构可以有多种处理器,每种处理器的性能不同,其应用也不同,但每种处理器的实现都要遵循这一体系架构。ARM架构保证系统的高性能、低功耗和高效率。
从1985年ARMv1架构诞生起,到2011年,ARM推出ARMv8架构,10年之后的2021年3月31日,ARM才正式推出了ARMv9架构,ARMv9架构兼容ARMv8架构,并在其基础上,提升了处理器的性能和安全性,增强了矢量计算、机器学习及数字信号处理功能,ARM架构各版本及特点如图1-16所示。
图1-16 ARM架构各版本及特点
Thumb:ARM 16 bit指令集。
Jazelle:ARM在硬件上提供了对Java字节码的支持,大大提高了系统的性能。
TrustZone:ARM TrustZone技术为可信软件提供了系统硬件隔离。
Cortex-A32/35/53/57/72/73/77/78采用的都是ARMv8架构,这是ARM公司的首款支持64位指令集处理器的架构,各处理器对应的架构关系如表1-1所示。
表1-1 各处理器对应的架构关系
ARM架构可以看作硬件和软件之间的协议,描述了软件通过依赖硬件可以提供的功能,ARM架构的核心内容如表1-2所示。
表1-2 ARM架构的核心内容
ARM架构的主要特征如下。
(1)采用大量的寄存器,可以用于多种用途。
(2)采用Load/Store架构。
(3)每条指令都为条件执行。
(4)采用多寄存器的Load/Store指令。
(5)能够在单时钟周期执行的单条指令内完成一项普通的移位操作和一项普通的ALU操作。
(6)通过协处理器指令集来扩展ARM指令集,包括在编程模式中增加新的寄存器和数据类型。
(7)如果把Thumb指令集也当作ARM体系架构的一部分,那么在Thumb体系架构中还可以以高密度16位压缩形式表示指令集。
例如,ARMv8架构是以32位ARM架构为基础进行开发的,被首先用于对扩展虚拟地址和64位数据处理技术有更高要求的产品领域,如企业应用、高档消费类电子产品。
ARMv8-A架构的主要特点如下。
① 新增的一套64bit指令集,称作A64。
② 由于ARMv8-A架构需要向下兼容ARMv7架构,所以它们同时支持32bit指令集,称作A32和T32(即我们熟悉的ARM和Thumb指令集)。
③ 可定义AArch64和AArch32两套运行环境,分别执行64bit和32bit指令集。也可以在需要的时候,切换运行环境。
④ 在AArch64运行环境中,重新解释了处理器模式、优先级等概念。
⑤ 在ARMv7 安全扩展的基础上,新增安全模式,支持与安全相关的应用需求。
⑥ 在ARMv7 虚拟化扩展的基础上,提供完整的虚拟化框架,并在硬件上支持虚拟化。