操作系统实战 45 讲
彭东
网名 LMOS,Intel 傲腾项目关键开发者
65203 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 60 讲
尝尝鲜:从一个Hello到另一个Hello (2讲)
特别放送 (1讲)
操作系统实战 45 讲
15
15
1.0x
00:00/00:00
登录|注册

46 | AArch64体系:ARM最新编程架构模型剖析

思考题
总结
AArch64体系如何访问内存
AArch64体系如何处理中断
ARM-A Arch64体系下CPU的工作模式
AArch64体系的寄存器
什么是AArch64体系
AArch64体系

该思维导图由 AI 生成,仅供参考

你好,我是 LMOS。
在今天,Andriod+ARM 已经成了移动领域的霸主,这与当年的 Windows+Intel 何其相似。之前我们已经在 Intel 的 x86 CPU 上实现了 Cosmos,今天我会给你讲讲 ARM 的 AArch64 体系结构,带你扩展一下视野。
首先,我们来看看什么是 AArch64 体系,然后分析一下 AArch64 体系有什么特点,最后了解一下 AArch64 体系下运行程序的基础,包括 AArch64 体系下的寄存器、运行模式、异常与中断处理,以及 AArch64 体系的地址空间与内存模型。
话不多说,下面我们进入正题。

什么是 AArch64 体系

ARM 架构在不断发展,现在它在各个领域都得到了非常广泛地应用。
自从 Acorn 公司于 1983 年开始发布第一个版本,到目前为止,有九个主要版本,版本号由 1 到 9 表示。2011 年,Acorn 公司发布了 ARMv8 版本。
ARMv8 是首款支持 64 位指令集的 ARM 处理器架构,它兼容了 ARMv7 与之前处理器的技术基础,同样它也兼容现有的 A32(ARM 32bit)指令集,还扩充了基于 64bit 的 AArch64 架构。
下面我们一起来看看 ARMv8 一共定义了哪几种架构,一共有三种。
1.ARMv8-A(Application)架构,支持基于内存管理的虚拟内存系统体系结构(VMSA),支持 A64、A32 和 T32 指令集,主打高性能,在我们的移动智能设备中广泛应用。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

ARMv8是ARM处理器架构的最新版本,其中的AArch64体系结构支持64位指令集,广泛应用于移动智能设备。该体系结构包括通用寄存器、特殊寄存器和系统寄存器,用于访问系统配置。在AArch64体系下,CPU工作模式包括用户模式、特权模式和异常模式,通过软件控制或外部中断触发进行切换。AArch64体系处理中断时,根据异常级别进行切换,保存相应寄存器信息,并跳转到中断向量表中的地址执行相应代码。此外,AArch64体系还支持内存访问和保护,包括内存地址空间的寻址和内存空间的映射和转换。这些特性使得AArch64体系在移动领域具有重要意义,为读者提供了深入了解ARM处理器架构的机会。ARMv8的下一代芯片架构ARMv9也已经公布部分技术细节,将在CPU性能、安全性、AI支持等方面有显著提升,预计将在2022年正式面世。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《操作系统实战 45 讲》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(9)

  • 最新
  • 精选
  • neohope
    非特权状态EL0:运行用户应用程序,无论安全状态还是非安全状态; 特权El1:安全状态下运行操作系统OS;非安全状态下运行虚拟机GuestOS; 特权EL2:安全状态下没有这一级别;非安全状态下运行Hypervisor,为GuestOS提供支持; 特权EL3:运行Secure monitor,管理安全状态与非安全状态的切换;

    作者回复: 正确的

    2021-08-25
    6
  • pedro
    2个特级权,分别是用户态和特权态,但却有7种工作模式,除了用户模式,其它均在特权态,特权态拥有全部权限,可访问一切资源。 信息量太大了,真就南孚聚能环,一节更比六节强!

    作者回复: 3级

    2021-08-23
    5
  • 无凉
    通篇粗读下来学到了很多

    编辑回复: 欢迎开启多周目学习,温故知新,也欢迎多多留言分享学习感悟~

    2023-04-23归属地:上海
  • VMNode
    流程图中的 开中断 关中断 最好改为 进入中断处理,结束中断处理函数

    作者回复: 为什么 呢

    2022-08-22归属地:湖北
    2
  • 白雲城主
    用户态EL0 只能切换到EL1 内核态,其通过调用svc 指令实现,调用后的寄存器变化如下 1. 将当前EL0等级的PC 指针存储在 ELR_EL1寄存器中,硬件自动完成. 2. 将当前EL0等级的PSATE 赋值给 SPSR_EL1 寄存器,硬件自动完成. 3. 根据当前处理器的状态将PSTATE 值更新,硬件自动完成. 4. 根据SPSEL 寄存器选择使用的栈指针 0: 使用SP_EL0  1: 使用SP_EL1 . Exception Handler 执行完后需要软件上主动调用 ERET  指令来返回,执行后寄存器变化如下 1. 自动将 ELR_EL1 寄存器值加载到PC,硬件自动完成 2. 自动将SPSR_EL1 寄存器值加载到PSTATE,硬件自动完成

    作者回复: 6666

    2022-03-04
  • 苏流郁宓
    知识量过大,二刷课程还是有很多看不懂(不是本节,不能理解透)的啊! 有个不懂的问题,既然cpu用到分支预测,那么优化指令集是不是也会对预测有帮助呀?(不只是cisc与Risc对比,不同的risc指令集也可以比的),俺认为是可以的!

    作者回复: 是的 你思考的对

    2022-02-04
  • 苏流郁宓
    有了 MMU 硬件转换机制,操作系统只需要控制页表就能控制内存的映射和隔离了。 可以理解成ARM处理器对内存利用权限的限制更严格,非特定的特权模式,仅在系统模式下,运行在ARm上的系统不能直接修改内存地址,从而进行内存保护。而是通过mmu页表的变动来影响内存数据(内存地址)的变动吗?

    作者回复: 最后一句不准确

    2021-08-23
  • 苏流郁宓
    3个特权级,6个特权模式?

    作者回复: 不对

    2021-08-23
  • 木易杨
    arm的指令集没有实模式,保护模式这个说法吧
    2023-12-12归属地:湖北
收起评论
显示
设置
留言
9
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部