理解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体系结构。