Armv8/armv9架构入门指南
1. 前言
2. ARMv8‑A 架构和处理器
3. ARMv8 基础知识
4. ARMv8 寄存器
5. ARMv8 指令集简介
6. A64指令集
7 AArch64浮点数和NEON
8. 移植到 A64
9. ARM 64 位架构的 ABI
10 AArch64异常处理
11. 缓存cache
12. 内存管理单元
13. 内存排序
14. 多核处理器
15. 电源管理
16. big.LITTLE 技术
17. 安全
18. 调试
19 ARMv8模型
附录
Armv8/armv9架构入门指南
»
Armv8/armv9架构入门指南
查看页面源码
Armv8/armv9架构入门指南
cortex-A系列
1. 前言
简介
推荐序
说明
作者
Release
2. ARMv8‑A 架构和处理器
2.1 ARMv8-A
2.2 ARMv8‑A 处理器属性
3. ARMv8 基础知识
3.1 执行状态
3.2 更改异常级别
3.3 改变执行状态
4. ARMv8 寄存器
4.1 AArch64 特殊寄存器
4.2 处理器状态
4.3 系统寄存器
4.4 字节序
4.5 改变执行状态(再次)
4.6 NEON和浮点寄存器
5. ARMv8 指令集简介
5.1 ARMv8指令集
5.2 C++ 内联汇编
5.3 在指令集之间切换
6. A64指令集
6.1 指令助记符
6.2 数据处理指令
6.3 内存访问指令
6.4 流控
6.5 系统控制和其他指令
7 AArch64浮点数和NEON
7.1 AArch64中NEON和浮点数的新功能
7.2 NEON和浮点架构
7.3 AArch64 NEON指令格式
7.4 NEON编程的选择
8. 移植到 A64
8.1 字节对其
8.2 数据类型
8.3 移植32-bit代码到64-bit时遇到的问题
8.4 C 代码的一些建议
9. ARM 64 位架构的 ABI
9.1 AArch64 内部寄存器在函数调用中的传递标准
10 AArch64异常处理
10.1 异常处理寄存器
10.2 同步和异步中断
10.3
异常导致的执行状态和异常级别的变化
10.4 AArch64 异常向量表
10.5 中断处理
10.6 通用中断处理
11. 缓存cache
11.1 缓存术语
#### 11.1.2 缓存标签和物理地址
11.2 缓存控制器
11.3 缓存策略
11.4 一致性和统一点
11.5 缓存维护
11.6 缓存发现
12. 内存管理单元
12.1 转址旁路缓存(TLB)
12.2 内核和应用程序虚拟地址空间的分离
12.3 将虚拟地址转换为物理地址
12.4 ARMv8-A中的转址表
12.5 转址表配置
12.6 EL2和EL3的转址
12.7 访问权限
12.8 操作系统对映射表描述符的使用
12.9 安全和MMU
12.10 内容切换
12.11 用户权限的内核访问
13. 内存排序
13.1 内存类型
13.1.2 设备内存
13.2 内存屏障
13.3 内存属性
14. 多核处理器
14.1 多处理器系统
14.2 缓存一致性
14.3 集群内的多核缓存一致性
14.4 总线协议和缓存一致性互连
15. 电源管理
15.1 空闲管理
15.2 动态电压和频率调整
15.3 电源相关的汇编语言指令
15.4 电源状态协调接口
16. big.LITTLE 技术
16.1 big.LITTLE的系统结构
16.2 big.LTTLE中的软件执行模型
16.3 big.LITTLE多核处理
17. 安全
17.1 TrustZone硬件架构
17.2 通过中断切换安全世界
17.3 多核系统中的安全
17.4 安全状态与非安全状态的切换
18. 调试
18.1 ARM 调试硬件
18.2 ARM 跟踪硬件
18.3 DS‑5 调试和跟踪
19 ARMv8模型
19.1 ARM 快速模型
19.2 ARMv8-A 基础平台
19.3 基础平台 FVP
附录
术语表