内容推荐 本书旨在介绍RISC-V体系结构的设计和实现。本书首先介绍RISC-V体系结构的基础知识、实验环境搭建、常用指令、函数调用规范与栈,然后讲述GNU汇编器、链接器、链接脚本和GCC内嵌汇编代码,接着讨论RISC-V体系结构中的异常处理、中断、内存管理、高速缓存、缓存一致性、TLB管理、原子操作、内存屏障指令,最后阐述RSIC-V体系结构中的压缩指令扩展、虚拟化扩展等。 本书不仅适合软件开发人员阅读,还可以作为计算机相关专业和相关培训机构的教材。 目录 第1章 RISC-V体系结构基础知识 1.1 RISC-V介绍 1.1.1 RISC-V指令集优点 1.1.2 RISC-V指令集扩展 1.1.3 RISC-V商业化发展 1.2 RISC-V体系结构介绍 1.2.1 RISC-V体系结构 1.2.2 采用RISC-V体系结构的常见处理器 1.2.3 RISC-V体系结构中的基本概念 1.2.4 SBI服务 1.3 RISC-V寄存器 1.3.1 通用寄存器 1.3.2 系统寄存器 1.3.3 U模式下的系统寄存器 1.3.4 S模式下的系统寄存器 1.3.5 M模式下的系统寄存器 1.4 香山处理器介绍 1.4.1 香山处理器体系结构 1.4.2 香山处理器的前端子系统 1.4.3 香山处理器的后端子系统 1.4.4 香山处理器的访存子系统 1.4.5 香山处理器的L2/L3高速缓存 第2章 搭建RISC-V实验环境 2.1 实验平台 2.1.1 QEMU 2.1.2 NEMU 2.2 搭建实验环境 2.2.1 实验2-1:输出“WelcomeRISC-V!” 2.2.2 实验2-2:单步调试BenOS和MySBI 2.3 BenOS和MySBI基础实验代码解析 2.3.1 MySBI基础代码分析 2.3.2 BenOS基础代码分析 2.3.3 合并BenOS和MySBI 2.4 QEMU+RISC-V+Linux实验平台 第3章 基础指令集 3.1 RISC-V指令集介绍 3.2 RISC-V指令编码格式 3.3 加载与存储指令 3.4 PC相对寻址 3.5 移位操作 3.6 位操作指令 3.7 算术指令 3.8 比较指令 3.9 无条件跳转指令 3.10 条件跳转指令 3.11 CSR指令 3.12 寻址范围 3.13 陷阱:为什么ret之后就进入死循环 3.14 实验 3.14.1 实验3-1:熟悉加载指令 3.14.2 实验3-2:PC相对地址寻址 3.14.3 实验3-3:memcpy()函数的实现 3.14.4 实验3-4:memset()函数的实现 3.14.5 实验3-5:条件跳转指令1 3.14.6 实验3-6:条件跳转指令2 3.14.7 实验3-7:子函数跳转 3.14.8 实验3-8:在汇编中实现串口输出功能 第4章 函数调用规范与栈 4.1 函数调用规范 …… 第5章 GNU汇编器 第6章 链接器与链接脚本 第7章 内嵌汇编代码 第8章 异常处理 第9章 中断处理与中断控制器 第10章 内存管理 第11章 高速缓存 第12章 缓存一致性 第13章 TLB管理 第14章 原子操作 第15章 内存屏障指令 第16章 合理使用内存屏障指令 第17章 与操作系统相关的内容 第18章 可伸缩矢量计算与优化 第19章 压缩指令扩展 第20章 虚拟化扩展 附录A 关于RISC-V体系结构自测题的参考答案与提示 附录B RV64I指令速查表 附录C RV64M指令速查表 附录D RV64常用伪指令速查表 |