更新时间:2024-09-23 17:57:00
封面
版权信息
版权
内容提要
推荐序
RISC-V的未来有无限可能
前言
第一版前言
本书约定
第1章 RISC-V体系结构基础知识
1.1 RISC-V介绍
1.2 RISC-V体系结构介绍
1.3 RISC-V寄存器
第2章 搭建RISC-V实验环境
2.1 实验平台
2.2 搭建实验环境
2.3 MySBI和BenOS基础实验代码解析
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 实验
第4章 函数调用规范与栈
4.1 函数调用规范
4.2 入栈与出栈
4.3 RISC-V的栈布局
4.4 实验
第5章 GNU汇编器
5.1 编译流程与ELF文件
5.2 一个简单的汇编程序
5.3 汇编语法
5.4 常用的伪指令
5.5 RISC-V特有的命令行选项和伪指令
5.6 实验
第6章 链接器与链接脚本
6.1 链接器
6.2 链接脚本
6.3 加载重定位
6.4 链接重定位与链接器松弛优化
6.5 实验
第7章 内嵌汇编代码
7.1 内嵌汇编代码的基本用法
7.2 案例分析
7.3 注意事项
7.4 实验
第8章 异常处理
8.1 异常处理基本概念
8.2 与M模式相关的异常寄存器
8.3 与S模式相关的异常寄存器
8.4 异常上下文
8.5 案例分析8-1:实现SBI系统的调用
8.6 案例分析8-2:BenOS的异常处理
8.7 实验
第9章 中断处理与中断控制器
9.1 中断处理基本概念
9.2 CLINT
9.3 案例分析9-1:定时器中断
9.4 PLIC
9.5 案例分析9-2:串口中断
9.6 实验
第10章 内存管理
10.1 内存管理基础知识
10.2 RISC-V内存管理
10.3 物理内存属性与物理内存保护
10.4 案例分析:在BenOS里实现恒等映射
10.5 内存管理实验
第11章 高速缓存
11.1 为什么需要高速缓存
11.2 高速缓存的访问延时
11.3 高速缓存的工作原理
11.4 高速缓存的映射方式
11.5 虚拟高速缓存与物理高速缓存
11.6 重名和同名问题
11.7 高速缓存策略
11.8 高速缓存的维护指令
第12章 缓存一致性
12.1 为什么会产生缓存一致性问题
12.2 缓存一致性的分类
12.3 缓存一致性的解决方案
12.4 MESI协议
12.5 高速缓存伪共享
12.6 两种缓存一致性控制器
12.7 案例分析12-1:伪共享的避免
12.8 案例分析12-2:DMA和高速缓存的一致性
12.9 案例分析12-3:自修改代码的一致性
12.10 实验
第13章 TLB管理
13.1 TLB基础知识
13.2 TLB重名与同名问题