没有一本单一的“ARM技术参考手册”,而是为每一代 ARM 架构(如 ARMv7-A, ARMv8-A)和每一款具体的处理器实现(如 Cortex-A53, Cortex-A72)提供一套完整的文档集。

下面我将为您详细解释这些手册的类型、如何查找以及最重要的几本手册。
手册的类型与层级关系
ARM 的文档体系是分层设计的,从高层概念到底层硬件细节,非常清晰,一套完整的参考手册包含以下几个核心部分:
a) 架构参考手册
这是最核心、最权威的文档,定义了 ARM 架构本身。
- 它不针对任何具体的芯片,而是定义了指令集(如 AArch32, AArch64)、内存模型、异常处理、调试架构、系统控制协处理器(如 CP15, CPACR)等所有架构层面的规则。
- 读者:操作系统内核开发者、编译器开发者、需要编写高性能汇编代码的工程师。
- 例子:
- ARMv8-A Architecture Reference Manual: 这是 64 位 ARM 架构(AArch64)和 32 位 ARM 架构(AArch32)的权威定义,对于所有基于 Cortex-A 系列的 64 位处理器(如 A53, A72, A76 等)都适用。
- ARMv7-A Architecture Reference Manual: 这是 32 位 ARM 架构的权威定义,适用于 Cortex-A5, A7, A9, A15 等处理器。
b) 处理器参考手册
这是针对 ARM 公司设计的特定处理器核(如 Cortex-A72)的文档。

- 它描述了该处理器核的具体实现细节,包括:
- 架构配置(它支持 ARMv8-A 的哪些特性)。
- 实现定义的处理器状态(如 ID 寄存器)。
- 具体的流水线和微架构特性。
- 缓存(L1/L2)的组织方式、大小和配置。
- 内存管理单元 的特性。
- 调试组件的详细功能。
- 读者:芯片设计者、板级支持包 工程师、需要榨干处理器性能的系统优化工程师。
- 例子:
- Cortex-A72 Processor Technical Reference Manual: 详细描述了 Cortex-A72 这颗核心的硬件特性。
- Cortex-A53 Processor Technical Reference Manual: 同上,针对 Cortex-A53。
c) 技术参考手册
这个术语有时会和“处理器参考手册”混用,但通常它指的范围更广,可能包含一个完整 SoC 的信息。
- 它可能包含一个处理器集群(如 big.LITTLE 中的 A72+A53)、一个 GPGPU(如 Mali)、以及总线矩阵、定时器、中断控制器 等外设的详细信息。
- 读者:系统级开发者、BSP 工程师。
- 例子:
- ARM CoreLink系列技术参考手册: CoreLink CCI-400/500 Cache Coherent Interconnect 的技术参考手册,它描述了如何让多个高速缓存处理器之间保持数据一致性。
d) 程序员手册
这是一本更友好的入门文档,专注于软件开发者。
- 总结了程序员最需要知道的信息,包括寄存器列表、指令集速查表、内存对齐要求、以及如何进行简单的性能分析等,它不会深入到底层硬件细节。
- 读者:应用程序开发者、驱动开发者(初级)。
- 例子:
- ARMv8-A Architecture: The AArch64 System Programmer's Guide: 这是一本绝佳的入门书,比上千页的完整架构手册友好得多。
如何查找和下载这些手册
ARM 官网是获取这些文档的唯一官方渠道,步骤如下:
-
访问 ARM Developer 官网: https://developer.arm.com/architectures
(图片来源网络,侵删) -
选择架构: 在页面上找到你感兴趣的架构版本,例如点击 ARMv8-A。
-
进入文档中心: 在架构页面,通常会有一个 "Documentation" 或 "Technical resources" 的链接,点击进入。
-
查找手册: 在文档中心,你会看到各种分类,如 "Architecture", "Processors", "Software" 等。
- 在 "Architecture" 分类下,你可以找到 "ARMv8-A Architecture Reference Manual"。
- 在 "Processors" 分类下,你可以找到 "Cortex-Axx" 系列的 "Technical Reference Manual"。
-
注意许可: 大部分技术参考手册可以免费下载,但某些最新的或高度机密的文档可能需要签署 NDA(保密协议)才能访问。
最重要且常用的几本手册(以 ARMv8-A 为例)
如果你正在开发一个基于现代 ARM 64 位处理器的系统(如树莓派 4、绝大多数现代 ARM 服务器、高端手机 SoC),你需要重点关注以下几本手册:
| 手册名称 | 英文名 | 简要说明 | 读者对象 |
|---|---|---|---|
| ARMv8-A 架构参考手册 | ARMv8-A Architecture Reference Manual | 圣经,定义了所有规则,包括 AArch64/AArch32 指令集、内存模型、异常处理等。 | 内核开发者、编译器工程师、汇编高手 |
| ARMv8-A 系统程序员指南 | ARMv8-A Architecture: The AArch64 System Programmer's Guide | 入门必读,总结了程序员日常所需的核心信息,非常友好。 | 所有开发者,尤其是驱动和应用开发者 |
| Cortex-Axx 处理器技术参考手册 | Cortex-Axx Processor Technical Reference Manual | 硬件实现手册,描述了特定处理器核(如 A53, A72)的硬件特性、缓存、MMU 等。 | BSP 工程师、系统优化师、芯片设计者 |
| CoreLink 系列技术参考手册 | CoreLink Series Technical Reference Manuals | 总线与互连手册,描述了 CCI(一致性互连)、PL330(DMA)、MMU-40x 等 IP 核的功能。 | 系统架构师、BSP 工程师 |
| Generic Timer 技术参考手册 | Generic Timer Technical Reference Manual | 定时器手册,ARMv8 引入了新的系统计数器和虚拟定时器,所有系统都需要它。 | 内核开发者、驱动开发者 |
- 概念:“ARM 技术参考手册”是一个文档系列,而不是一本书。
- 层级:从宏观的 架构手册 (定义规则) 到微观的 处理器手册 (具体实现)。
- 核心:对于软件开发,架构手册 是根本;对于板级开发,处理器手册 和 互连手册 是关键。
- 起点:如果你是新手,建议从 《ARMv8-A 系统程序员指南》 开始,然后再根据需要深入阅读其他手册。
希望这份详细的解释能帮助你快速找到所需的资料!
