更新时间:2024-01-18 12:08:19
封面
版权信息
内容简介
献词
关于作者
关于译者和审校者
推荐序一
推荐序二
推荐序三
好评来袭
缘起
译者序
前言
第1章 为什么要有RISC-V
1.1 导言
1.2 模块化ISA和增量型ISA
1.3 ISA设计导论
1.4 全书总览
1.5 结语
1.6 扩展阅读
第2章 RV32I:RISC-V基础整数指令集
2.1 导言
2.2 RV32I指令格式
2.3 RV32I寄存器
2.4 RV32I整数计算
2.5 RV32I取数和存数
2.6 RV32I条件分支
2.7 RV32I无条件跳转
2.8 其他RV32I指令
2.9 通过插入排序对比RV32I、ARM-32、MIPS-32和x86-32
2.10 结语
2.11 扩展阅读
第3章 RISC-V汇编语言
3.1 导言
3.2 调用约定
3.3 汇编器
3.4 链接器
3.5 静态链接和动态链接
3.6 加载器
3.7 结语
3.8 扩展阅读
第4章 RV32M:乘法和除法指令
4.1 导言
4.2 结语
4.3 扩展阅读
第5章 RV32F和RV32D:单精度和双精度浮点数
5.1 导言
5.2 浮点寄存器
5.3 浮点取数、存数和算术运算
5.4 浮点转换和数据传送
5.5 其他浮点指令
5.6 通过DAXPY程序对比RV32FD、ARM-32、MIPS-32和x86-32
5.7 结语
5.8 扩展阅读
第6章 RV32A:原子指令
6.1 导言
6.2 结语
6.3 扩展阅读
第7章 RV32C:压缩指令
7.1 导言
7.2 对比RV32GC、Thumb-2、microMIPS和x86-32
7.3 结语
7.4 扩展阅读
第8章 RV32V:向量
8.1 导言
8.2 向量计算指令
8.3 向量寄存器和动态类型
8.4 向量取数和存数
8.5 向量操作的并行度
8.6 向量操作的条件执行
8.7 其他向量指令
8.8 示例:用RV32V编写DAXPY程序
8.9 对比RV32V、MIPS-32 MSA SIMD和x86-32 AVX SIMD
8.10 结语
8.11 扩展阅读
第9章 RV64:64位地址指令
9.1 导言
9.2 通过插入排序比较RV64与其他64位ISA
9.3 程序大小
9.4 结语
9.5 扩展阅读
第10章 RV32/64特权架构
10.1 导言
10.2 简单嵌入式系统的机器模式
10.3 机器模式的异常处理
10.4 嵌入式系统中的用户模式和进程隔离
10.5 现代操作系统的监管模式
10.6 页式虚拟内存
10.7 标识和性能CSR
10.8 结语
10.9 扩展阅读
第11章 未来的RISC-V可选扩展
11.1 “B”标准扩展:位操作
11.2 “E”标准扩展:嵌入式
11.3 “H”特权态架构扩展:支持虚拟机管理器(Hypervisor)
11.4 “J”标准扩展:动态翻译语言
11.5 “L”标准扩展:十进制浮点
11.6 “N”标准扩展:用户态中断
11.7 “P”标准扩展:紧缩SIMD指令
11.8 “Q”标准扩展:四倍精度浮点