理解ARM体系首先要明确三个概念:

  • Architecture-体系结构
  • Processor-处理器,对应于通常所说的ARM核
  • Device-设备,对应于具体的物理芯片

体系结构(Architecture):

为了给不同的处理器提供更通用的编程模型,定义了不同的Architecture,符合相同Architecture的处理器具有相同的编程模型,ARM已定义的Arhitecture有ARMv4、ARMv5、ARMv6M、ARMv7M、ARMv7AR、ARMv8等等。

ARM体系结构(Architecture)定义了ARM处理器的基本特征,包括以下内容:

  • the programmers model(编程模型)
  • the instruction set(指令集)
  • system configuration(系统配置)
  • exception handling(中断处理)
  • the memory model(存储模型)

 不同版本的体系结构(Architecture)定义了不同的系统特性和系统行为,例如:

  • 采用几级Cache,Cache的大小
  • 寄存器的功能定义
  • 提示指令(hint instructions)的功能

体系结构还定义一些扩展功能,例如:

  • 浮点运算硬件支持
  • SIMD支持

处理器(Processor)

处理器(或者称为ARM核)是体系结构的一种实现,同一个体系结构可以对应不同的处理器,ARM7TDMI和ARM920T都基于ARMv4T,但是他们又具有各自的不同特点。

Implementation

Architecture version

Architecture variant

ARM11™ MPCore™

ARMv6 

ARMv6K, Improved multiprocessing support

ARM1156T2F-S™ , 

ARMv6 

ARMv6T2 Thumb-2 technology

ARM1176JZF-S™  

ARMv6

ARMv6Z, ARMv6K with Security Extensions

Cortex-A9 

ARMv7-A

 

Cortex-R4 

ARMv7-R

 

Cortex-M3

ARMv7-M

 

Table:Recent ARM processors and their architectures

设备(Device)

设备通常是包含了ARM核和一些附加设备的片上系统(SoC)。在设备实现上可以配置不同的外围附加设备,例如可以配置不同大小的Cache,以及是否包含硬件浮点运算功能,所以基于同一Processor的不同设备可以拥有不同Cache大小配置。

一个通用的片上系统(SoC)可以包含以下组件:

  • Level 2 Cache Controller (L2CC)
  • Static Memory Controller (SMC)
  • Dynamic Memory Controller (DMC)
  • bus interconnect
  • interrupt controller
  • timer
  • external bus interfaces

除了ARM核外,一个片上系统设备(SoC)上可以包含很多不同的功能模块,不同厂家可以采用ARM核设计自己的片上系统,以Samsung的S5PV310_UM为例,该芯片集成了Cotex-A9核,Cotex-A9核基于ARMv7-A体系结构。