基于ARM64体系结构处理器打造的产品越来越多,ARM64生态也越来越繁荣。面对几千页的英文原版ARM公司官方技术手册,不少开发者感到力不从心。有不少开发者希望有一本快速入门的ARM64体系结构编程图书,来帮助他们快速入门与提高。出于这个目的,奔跑吧Linux社区组织国内优秀的工程师,以社区合作的方式编写《ARM64体系结构编程与实践》。结合大学课程特色以及实际工程项目经验,精心制作了几十个有趣的实验,读者可以通过实验来深入学习和理解ARM64体系结构与编程。
1.内容系统,突出动手实践
基于树莓派4B开发板,系统介绍ARM64体系结构,内容由浅入深,帮助读者开发运行小型的OS。
2.以问题为导向,提高学习效率
深入浅出的问题导向式学习方法,各大公司高频面试题,提高读者阅读兴趣。
3.趣味案例,常见陷阱总结
基于树莓派4B开发板和QEMU实验平台,总结了众多一线工程师在实际项目中遇到的陷阱与经验,让你不再害怕踩雷。
4.海量资源随书赠送
本书赠送配套VMware开发环境,Linux软件包,QEMU+ARM64实验平台仓库,芯片资料,实验参考代码和配套资料以及配套教学视频供读者参考学习。
《ARM64体系结构编程与实践》有如下一些特色:
本书主要介绍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指令来进行优化。