第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模式下的系统寄存器
第2章 搭建RISC-V实验环境
2.1 实验平台
2.1.1 QEMI
2.1.2 NEMI
2.2 搭建实验环境
2.2.1 实验2-1:输出“Welcome to RISC-V!”
2.2.2 实验2-2:单步调试BenOS和MySBI
2.3 MySBI和BenOS基础实验代码解析
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 函数调用规范
4.2 入栈与出栈
4.3 RISC-V的栈布局
4.3.1 不使用FP的栈布局
4.3.2 使用FP的栈布局
4.3.3 栈回溯
……
第5章 GNU汇编器
第6章 链接器与链接脚本
第7章 内嵌汇编代码
第8章 异常处理
第9章 中断处理与中断控制器
第10章 内存管理
第11章 高速缓存
第12章 缓存一致性
第13章 TLB管理
第14章 原子操作
第15章 内存屏障指令
第16章 合理使用内存屏障指令
第17章 与操作系统相关的内容
第18章 可伸缩矢量计算与优化
第19章 压缩指令扩展
第20章 虚拟化扩展
第21章 RISC-V高性能处理器架构分析
RISC-V体系结构自测题
附录A RISC-V体系结构自测题的战者答起与担示
附录B RV64I指令速查表
附录C RV64M指令速查表
附录D RV64常用伪指令速查表
展开