学习方法
学习Arm架构的v8和v9版本需要深入理解多个关键概念和机制,包括GIC(中断控制器)、异常处理、MMU(内存管理单元)、内存管理、缓存、TrustZone安全架构、安全性、以及exclusive等。以下是一种高效学习方法,涵盖了这些重要的主题:
-
建立学习路线:
开始时,制定一个学习路线,以确保你深入了解每个主题。从基础知识开始,然后逐步深入高级主题。 -
官方文档:
阅读Arm官方文档,特别是关于Arm架构的参考手册和技术指南。这些文档提供了详细的技术信息。
(http://tee.hehezhou.cn/arm/) -
GIC(中断控制器):
学习GIC的基本概念,包括中断源、中断控制和中断处理器。
实际操作:配置和使用GIC,模拟中断,并了解中断优先级和中断处理程序的执行。 -
异常处理:
学习异常处理的概念,包括异常类型、异常向量表、异常处理模式等。
实际操作:编写和运行引发异常的程序,理解异常处理流程。 -
MMU(内存管理单元)和内存管理:
深入学习MMU的功能,包括虚拟内存、页表、地址翻译和内存保护。
实际操作:配置和使用MMU,了解虚拟内存系统的工作方式。 -
缓存:
理解缓存的作用和类型,包括指令缓存和数据缓存。
实际操作:掌握如何配置和管理缓存,了解一致性模型和缓存一致性。 -
TrustZone安全架构:
学习TrustZone的基本原理,包括Secure World和Non-Secure World的概念。
实际操作:配置和运行TrustZone安全环境,了解如何实现安全引导和安全通信。 -
安全性:
学习Arm架构中的安全特性,如硬件加密和密钥管理。
实际操作:了解如何使用硬件安全功能来加强系统的安全性。 -
exclusive机制:
理解exclusive机制的概念,以及如何使用它来实现原子操作。
实际操作:编写代码来演示exclusive机制的应用。
课程推荐
课程大纲
1 ARM基础-课程介绍
2 ARMv8&ARMv9基础概念扫盲
3 ARMv8&ARMv9基础简介
4 ARMv8&ARMv9术语总结
5 ARMv8&ARMv9软件架构
6 SOC基础简介
7 异常等级切换模型
8 安全状态切换模型
9 Interprocessing-执行状态切换模型
10 Armv8&Armv9功能总结
总时长
序号 第二章 寄存器和指令集
1 ARMv7寄存器介绍
2 ARMv8&ARMv9寄存器介绍
3 A64指令集介绍
总时长
序号 第三章 AMBA和总线
1 课程介绍
2 [AMBA]01-AMBA课程介绍
3 [AMBA]02-AMBA架构扫盲
4 [AMBA]03-Channel transfers and transactions
5 [AMBA]04-Channel signals(一)
6 [AMBA]05-Channel signals(二)
7 [总线互联]01-Arm 互联总线介绍
8 [总线互联]02-NIC-400
9 [总线互联]03-CCI-550
10 [总线互联]04-CCN-508
11 [总线互联]05-CMN-700
12 [总线互联]06-NI-700
13 [总线互联]07-Additional- 资料分享
总时长
序号 第四章 gic/异常中断
1 课程介绍
2 05-gic通信协议
3 09-gicv3的介绍(old)
4 10-ARM中断-硬件基础篇&概念扫盲
5 11-中断的进入和退出
6 12-1-中断的路由和MASK(一)
7 12-2-中断的路由和MASK(二)
8 13-中断的状态和信号
9 14-中断的术语定义
10 21-Linux Kernel的中断处理
11 22-ATF(TF-A)的中断处理
12 23-optee的中断处理
13 24-hafnium的中断的处理
14 25-xen的中断的处理
15 26-uboot的中断处理
16 31-Synchronous同步异常的深度解读
17 31-异常中断的优先级
18 32-smc&hvc&svc命令深度解读
19 33-Serror异步异常的深度解读
20 41-1-虚拟中断的示例(一)
21 41-2-虚拟中断的示例(二)
22 50-多系统之间中断的抢占
23 51-中断的优先级和抢占
24 gicv3详解
25 中断的9种示例
总时长
序号 第五章 MMU专题
1 D02-MMU基础
2 D03-01-地址空间
3 D03-02-Juno-memoryMap
4 D03-03-地址空间 (二)
5 D04-Translation Regime
6 D05-页表翻译过程
7 D06-内存属性-基本概念和定义
8 D07-Descriptor基本概念
9 D08-inner-outer-shareable-cacheable
10 D09-内存属性叠加-stage1和stage2的叠加
11 D10-内存属性叠加-层级之间的叠加
12 D11-EL1&0 Translation-Stage1内存配置示例-Linux&ATF&optee
13 D12-EL1&0 Translation-Stage2内存配置示例-xen&hafnium
14 D13-EL2 Translation内存配置示例-stage1-xen&hafnium
15 D15-Descriptor属性位详解
16 D16-1-MMU example code解读(一)
17 D16-2-MMU example code解读(二)
18 D18-optee中的mmu代码导读
19 D20-ATF中的mmu代码导读
20 直播-arm内存属性深度解读
总时长
序号 第六章 cache专题
1 00-课程说明-课程介绍
2 01-思考质疑-cache的50问
3 02-cache的基本概念和使用厂家
4 03-软件维护cache指令详解
5 04-Cache的架构介绍
6 05-cache的基本概念原理扫盲
7 06-cache查询原理
8 07-同名-重名
9 08-多核多cluster多系统之间缓存一致性概述
10 09-ACE Protocol
11 10-CHI Protocol
12 11-Cache高级补充篇
13 12-Cache安全篇
14 13-cache调试篇
15 14-cache相关的系统寄存器
16 15-cache缓存策略动图演示
17 16-mesi的模拟演示
18 17-EL0可以刷cache吗
19 18-POC_POU_IS详解
20 19-[专题]可以只刷L1 cache或L2 cache吗
21 20-Cache hint专题
22 21-聊一聊cache的学习方法
总时长
序号 第七章 Trustzone
1 Trustzone学习的简介
2 【赠送】TEE知识扫盲-系统集成篇
3 Trustzone的基本概念&背景和历史
4 Trustzone-TEE快速扫盲
5 Trustzone-TEE快速扫盲(2022)
6 ARMv8&ARMv9 Trustzone深度解析
7 arm安全架构的介绍
8 Secure Boot
9 TZC400详解
10 ATF(TF-A)介绍
11 optee的介绍
12 标准和规范的介绍
13 Android安全架构扫盲
总时长
序号 第八章 虚拟化
1 03-ARMv8的虚拟化深度解读
序号 第九章 PMU
1 ARM PMU
序号 第十章 Power
1 功耗管理学习目标及目录介绍
2 功耗管理背景及挑战
3 功耗管理架构演进及变迁
4 系统分区-电压域和电源域
5 功耗状态及功耗模式
6 功耗管理框架-SCP&PPU&LPI
7 功耗管理软件
8 功耗管理标准接口
9 多核处理器启动
10 睡眠锁与唤醒源
11 功耗管理实战
12 功耗数据与功耗收益评估
13 功耗管理与安全
14 功耗管理课程总结
总时长
序号 第十二章 Generic Timer
1 Arch Timer
序号 第十三章 System Boot系统启动
1 reset&&SOC的多核启动流程详解
C05-Secure Boot(一)
C05-Secure Boot(二)
总时长
序号 第十四章 Barrier内存屏障
1 内存屏障Barrier
序号 第十五章 Exclusive独占机制
1 独占Exclusive机制
序号 第十六章 wfe-wfi
1 WFE/WFI详解
序号 第十七章 FP/SIMD/SVE/SVE2/SME
1 FP/SIMD/NEON/SVE/SVE2/SME介绍
序号 第二十章 Armv9的RME和CCA机密计算安全框架
1 01-课程介绍
2 02-Trustzone深度解读
3 03-RME-CCA简介
4 04-RME安全扩展深度详解
总时长
序号 第二十一章 直播课
1 cache直播训练营第一次课
2 cache直播训练营第二次课
3 cache直播训练营第三次课
4 cache直播训练营第四次课
1 Arm微架构讨论课
2 Arm_MMU_SMMU讨论课