分享

一本快速入门ARM64体系结构的编程书

 山峰云绕 2022-04-22

https://m.toutiao.com/is/FJ9Sv9k/?=一本快速入门ARM64体系结构的编程书 


基于ARM64体系结构处理器打造的产品越来越多,ARM64生态也越来越繁荣。面对几千页的英文原版ARM公司官方技术手册,不少开发者感到力不从心。有不少开发者希望有一本快速入门的ARM64体系结构编程图书,来帮助他们快速入门与提高。出于这个目的,奔跑吧Linux社区组织国内优秀的工程师,以社区合作的方式编写《ARM64体系结构编程与实践》。结合大学课程特色以及实际工程项目经验,精心制作了几十个有趣的实验,读者可以通过实验来深入学习和理解ARM64体系结构与编程。

ARM64体系结构编程与实践

1.内容系统,突出动手实践
基于树莓派4B开发板,系统介绍ARM64体系结构,内容由浅入深,帮助读者开发运行小型的OS。


2.以问题为导向,提高学习效率
深入浅出的问题导向式学习方法,各大公司高频面试题,提高读者阅读兴趣。


3.趣味案例,常见陷阱总结
基于树莓派4B开发板和QEMU实验平台,总结了众多一线工程师在实际项目中遇到的陷阱与经验,让你不再害怕踩雷。


4.海量资源随书赠送
本书赠送配套VMware开发环境,Linux软件包,QEMU+ARM64实验平台仓库,芯片资料,实验参考代码和配套资料以及配套教学视频供读者参考学习。

ARM64体系结构编程与实践有如下一些特色:

  • 突出动手实践。学习任何一门新技术,动手实践是非常有效的方法。本书基于树莓派4B开发板展示了几十个有趣的实验。从编写第一行代码开始,通过慢慢深入ARM64体系结构的学习,我们最终可以编写一个能在树莓派4B开发板上运行的简易的小型OS(具有MMU以及进程调度等功能)。
  • 以问题为导向。有不少读者面对8000多页的官方ARMv8体系结构手册感觉力不从心,问题导向式的学习方法有利于提高学习效率。本书在每章前面列举了一些思考题,用于激发读者探索未知知识的兴趣。这些思考题也是各大公司的高频面试题,相信仔细解答这些问题对读者的面试大有裨益。
  • 基于ARMv8.6体系结构。本书基于ARMv8.6体系结构,介绍了ARM64指令集、ARM64寄存器、页表、内存管理、TLB、内存屏障指令等方面的知识。本书把ARMv8.6体系结构中难理解的部分通过通俗易懂的语言呈现给读者,并通过有趣的案例分析加深读者的理解。
  • 总结常见陷阱与项目经验。本书总结了众多一线工程师在实际项目中遇到的陷阱,例如使用指令集时的陷阱等,这些宝贵的项目经验会对读者有所帮助。

本书主要内容

本书主要介绍ARM64体系结构的相关内容。本书重点介绍ARM64指令集、GNU汇编器、链接器、ARM64内存管理、高速缓存管理等。在每章开始之前会先列出一些思考题,读者可以围绕这些题目进行深入学习。

本书一共有23章,包含如下内容。

第1章主要介绍ARMv8/ARMv9体系结构基础知识以及Cortex-A72处理器等内容。

第2章介绍树莓派4B开发板的情况,以及如何利用树莓派4B来搭建一个实验环境。

第3章讨论A64指令集中加载与存储指令的使用以及常见陷阱。

第4章介绍A64指令集中的算术与移位指令。

第5章介绍A64指令集中的比较与跳转指令。

第6章介绍A64指令集中其他重要指令,例如PC相对地址加载指令、内存独占访问指令、异常处理指令、系统寄存器访问指令、内存屏障指令等。

第7章总结A64指令集常见的陷阱。

第8章介绍GNU汇编器的语法、常见伪指令、AArch64依赖特性等内容。

第9章介绍链接器的使用、链接脚本以及重定位等内容。

第10章介绍GCC内嵌汇编代码的语法、内嵌汇编宏的使用以及常见错误等内容。

第11章介绍ARM64体系结构异常处理的触发与返回、异常向量表、异常现场、同步异常的解析等相关内容。

第12章介绍ARM64体系结构中断处理的基本概念和流程,包括树莓派4B上的传统中断控制器、保存和恢复中断现场的方法等。

第13章介绍GIC-V2的相关内容,包括中断源分配、中断路由、树莓派4B上的GIC-400等。

第14章介绍ARM64体系结构下的内存管理,包括ARM64的页表、页表项属性、页表遍历过程、内存属性以及恒等映射等相关内容。

第15章介绍高速缓存的基础知识,包括高速缓存的工作原理、映射方式,虚拟高速缓存与物理高速缓存,重名与同名问题,高速缓存的共享属性、维护指令等相关内容。

第16章介绍缓存一致性相关问题,包括缓存一致性的分类、MESI协议、CCI与CCN缓存一致性控制器、高速缓存伪共享等内容。

第17章介绍TLB基础知识、TLB重名与同名问题、ASID、TLB管理指令等相关内容。

第18章介绍内存屏障指令基础知识,包括内存屏障指令产生的原因、ARM64中的内存屏障指令等相关内容。

第19章介绍如何使用内存屏障指令。

第20章介绍原子操作,包括原子操作基本概念、原子内存访问指令、独占内存访问工作原理、原子内存访问操作指令等相关内容。

第21章介绍与操作系统相关的内容,包括64位编程下常见的C语言陷阱、ARM64函数调用标准、ARM64栈布局、简易进程调度器等内容。

第22章介绍浮点运算以及NEON指令方面的相关内容。

第23章介绍SVE以及SVE2指令,还结合3个实际案例分析如何使用SVE/SVE2指令来进行优化。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多