3.1 体系结构的版本
ARM会定期发布体系结构新的版本,在现有功能的基础上新增新的功能或更新。这种更新通常是向后兼容的,这意味着运行在旧版本的用户编码在新版本上仍可以正确运行。当然,利用新功能编写的代码就不一定能在旧的处理器上运行了,因为旧处理器通常缺少这个功能模块。
在所有版本的体系结构中,一些系统特性和行为留给具体实现来定义。例如,体系结构不定义高速缓存的大小、指令周期的时序,这是由具体实现的处理器和SoC决定的。
每个体系结构的版本都定义了可选的扩展。在处理器的具体实现中,这些扩展可能并没有被实现。例如,在ARMv7的体系结构中,高级SIMD(NEON)技术就是一个可选扩展,我们将在第9章介绍此技术。
ARMv7体系结构还具有配置属性的概念。针对处理器的不同市场和用途,产生了这些体系结构的变种。简介如下。
(1)A:应用程序配置系列,定义了一种针对高性能处理器的体系结构,它支持使用内存管理单元(MMU)的虚拟内存系统,能够运行复杂的操作系统,同时支持ARM和Thumb指令集。
(2)R:实时配置系列,定义了一种系统的实时结构,这种结构需要确定的时序和较低的中断响应延迟,不需要对虚拟内存系统和MMU的支持,而是使用一个简单的内存保护单元(MPU)。
(3)M:微控制器的配置系列,定义了一种低成本和低性能系统的体系结构,其中低延迟的中断处理是非常重要的。相比其他配置系列,它使用了一个不同的异常处理模型,并只支持一种Thumb指令集的变体。
本书的重点将集中在版本7的体系结构(ARMv7),特别是ARMv7-A,即应用程序配置系列。这是最新版本的体系结构,所有的Cortex-A系列处理器,以及来自Marvell和Qualcomm的处理器,都会使用此体系结构。我们会适时地指出ARMv7和旧版本体系结构之间的差异。