【ARM系列】Armv8/Armv9结构入门指南

学习网址链接:
Armv8/Armv9结构入门指南

  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

说明

这是一篇由网友一起翻译的文档。原文是DEN0024A_v8_architecture_PG_1.0.pdf。仅供大家学习使用,请勿传播,请勿用于商业用途。我们也不承担法律责任。

作者

参与翻译工作的作者(排名不分先后):
baron,lhs,Qmiller,小青kelly,牛小白,MinHui,墨菲の沐夏,小林子,Mr Dai

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# 学习对象在全民造车、造芯的大时代,在努力去解决卡脖子的时代,ASIC硬件、SOC底层软件、Linux Kernel等操作系统软件(内核/驱动)、软硬件方面的系统架构师等的岗位需求也越来越明显,社会一直都是非常缺人的,缺的是核心的那一小撮、领头的那一小撮,社会所缺的更是能够软硬件融合的那一小撮人……总之,要想在这个时代,站稳自己的脚跟,能够在大公司或行业上拥有一席之地,就必需深入学习底层技术原理,核心技术才是您的看家本领。本课程设计之初,主要针对SOC底层软件开发的者、系统开发者,或者励志成为这样的人。既适合资深/高级工程师来查缺补漏,又适合初级工程师入门。(理论上该课程和ASIC硬件电路设计无关,该课程偏软件,但事实购买该课程的做ASIC的同学已然超过了15%)适用人群1、芯片开发者(包括底层软件、或做ASIC硬件的)。不限行业,例如车、云、物联网、移动端等领域;2、汽车行业开发者(主机厂、tier1、SOC厂家、各级供应商);3、嵌入式开发者、kernel开发者、驱动、软件工程师;4、学生。既适合学生从入门到精通,也适合资深工程师查缺补漏;您的收益:1、全体系的掌握ARMv8/ARMv9的核心知识点(ARM基础、异常中断GIC、MMU/Cache、architecture...);2、掌握ARM架构、掌握SOC架构、掌握常规IP(gic、smmu、timer、AXI/ACE/CHI、TZC400...);3、快速熟悉常规系统软件(bootrom、spl、ATF、TEE、bootloader、kernel...), Secureboot安全启动...4、技术水平提升N个level, 掌握快速的学习方法;# 学习什么在ARM蓬勃发展的年代,不仅仅涉及到物联网IOT、移动领域(如手机)、汽车电子领域,现在还涉及到PC、服务器的,简直就是各行各业。ARMv8出来已经有10年了,ARMv9也2年时间了。在技术不断更新迭代的背景下,此时再去学习十五年前的ARMv7、二十年前的ARMv5/v6显然不是明智的选择。本课程主要基于当前最新的架构ARMv8的aarch64和ARMv9,如涉及具体的ARM Core IP主要还是以最新的ARM Core IP为主,软件架构也是以当前最主流的/未来所趋势的架构来讲解。以下也给大家列举初了一个ARM产品的timeline的总结(在本课程中有着大量的这种总结),从这张图中,您是可以清晰的看到本课程拥有独具一格的风格、拥有全网最新(且唯一)的资料总结或学习路线。# 本课程大纲和规划(课程持续更新中,课程总量统计:2022/10/02  当前是 61节课, 22小时)第一章:主要是快速学习: ARM简介、指令集、寄存器总结等。第二章:本系列视频的一大亮点,系统全面地讲解了arm异常中断gic等相关的软硬件知识,本人一直在倡导“学arm安全其实就是学arm架构,学arm架构其实就是学习arm的异常和中断”,异常中断是领着你进入架构入门,是让你变成系统软硬件架构师的必走之路。第三章:安全专题,这也是本视频最核心的东西。因为你无论买书还是看博客等,你都很难找到讲解安全的教程,这里就是有和无的区别。本人系统的整理的安全的知识,带领你快速入门。第四章:mmu专题,透过事务看本质的讲解,白话式的演讲。在所有模块中,mmu也算是相对较简单模块。相信人人听得懂,人人学得会。第五章:cache专题,一切追求实事求是,不人云亦云,一切知识点都有迹可循,推翻了网络的很多观念。在众多模块中,cache算是一个比较难的模块。了解了cache后,才能算真正了解系统的软硬件架构。第六章:虚拟化,本人不擅长,会啥就随便讲点啥。(以后学会了再来补)第七章:architecture,就是零散和零碎的系统架构知识,如exclusive、arch timer、reset、系统启动、SOC设计、AMBA/AXI/ACE、DSU、WFE/WFI这样的。第八章: 新增的ARMv9 CCA/RME安全架构专题第九章:主要放置一些直播课。# 课程收益1、知道我学习什么,我要怎么去学习,从此之后有了一个明确的学习路线。2、认识一些共同目标的人,相互讨论问题,共同进步。勤学、共学、助学。3、ARM不再神秘,SOC不在神秘,让您短期内就能cover住全局4、熟悉ARM Architecture架构知识5、熟悉SOC架构知识6、熟悉主流的系统软件框架7、熟悉各项硬件原理和机制,如异常中断、MMU、cache、TLB、VMSA、Trustzone6、深入了解当前的系统架构、软硬件架构,能够看懂这些大家,将来也能够自己设计。7、熟悉系统的启动流程、Secureboot等8、熟悉各类标准和规范9、能够进入芯片厂商干活、能够在非芯片产生成为技术担当。10、学习资料的获取方法,会看11500多页的ARM手册,会看数以百计的ARM各项参考手册。 本课程会持续更新。也希望通过本课程的学习,能够让大家的ARMv8/ARMv9开发技术能有质的飞越,能找到自己心仪的工作。在购买之前,也建议大家看一看第一章第一节的课程介绍。
armv8/armv9架构是英国ARM公司推出的一种指令集架构,用于开发低功耗、高性能的处理器。它广泛应用于各种移动设备、嵌入式系统和物联网设备中。 入门armv8/armv9架构时,首先需要了解它的基本特点。相较于之前的armv7架构armv8/armv9架构引入了64位指令集,支持更大的物理内存寻址和更高的数据通路,提供更高的性能和更多的扩展性。 其次,了解基本的指令集是很重要的。armv8/armv9架构支持基本的寄存器操作、算术和逻辑指令,以及访问内存和外设的指令。掌握这些指令的使用方法,可以进行基本的程序开发和调试。 此外,理解处理器的特殊功能模块也是入门的一部分。比如,了解浮点单元(FPU)的使用可以提升浮点运算的性能,了解向量处理单元(NEON)可以加速数据密集型计算。 此外,还需要学习汇编语言的基本知识。armv8/armv9架构使用汇编语言来编写底层的程序,可以更好地优化代码,提高性能和功耗效率。学习汇编语言可以帮助开发者更好地理解底层原理,编写高效的代码。 最后,掌握相关的开发工具和调试工具也是入门的一部分。armv8/armv9架构有很多开发工具和调试工具可供选择,如GCC编译器、GDB调试器等。熟悉这些工具的使用方法,可以方便开发和调试程序。 总之,入门armv8/armv9架构需要了解其基本特点、指令集、特殊功能模块、汇编语言和开发工具。通过不断实践和学习,逐渐掌握这些知识和技能,可以进行更深入的armv8/armv9架构开发

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值