【书籍】RISC-V开放架构设计之道

英炜硬十 2024-02-23 03:38:23
产品特色

内容简介

本书首先提出一款指令集的7个评价指标,包括成本、简洁、性能、架构和实现分离、提升空间、代码大小、易于编程/编译/链接,并围绕这7 个评价指标从全系统角度向读者介绍RISC-V 的精巧设计和众多的取舍考量。同时,本书还介绍x86、ARM 和MIPS 的设计,并通过插入排序和DAXPY(双精度乘加)程序量化对比它们,突出RISC-V 的优势,深入阐释指令集设计对计算机系统的影响。如果您是学生,本书将是一本优秀的课外读物,有助于您建立完整的计算机系统观念;如果您是教师,本书将为您提供丰富的真实案例,能给您的教学工作带来新的启发;如果您是相关方向的从业人士,本书除了开拓您的视野,还是一本方便的参考手册,帮助您更轻松地完成工作。

作者简介

大卫·帕特森(David Patterson)在加州大学伯克利分校担任计算机科学系教授40年,于2016 年退休,并加入“Google 大脑”项目担任杰出工程师。他还担任RISC-V 国际基金会董事会副主席和RISC-V 国际开源实验室主任。

他曾被任命为伯克利计算机科学部主席,并当选计算研究协会(CRA,Computing Research Association)主席和计算机协会(ACM,Association for Computing Machinery)主席。

在20世纪80年代,他领导了四代精简指令集计算机(RISC,Reduced InstructionSet Computer)项目,伯克利z新的RISC 因此得名“RISC Five”(第五代RISC)。他和安德鲁·沃特曼(Andrew Waterman)均为四位RISC-V 架构师中的一员。

除RISC 以外,他z著名的研究项目是廉价磁盘冗余阵列(RAID,Redundant Arrays of Inexpensive Disks)。基于这项研究,他发表了多篇论文,出版了7 本书,获得了超过40项荣誉,包括当选美国国家工程院和美国国家科学院院士,入选“硅谷工程名人堂”,获ACM、CRA 和SIGARCH 颁发的杰出成就奖。他在教学方面所获奖项包括杰出教学奖(加州大学伯克利分校)、Karlstrom杰出教育家奖(ACM)、Mulligan 教育奖章(IEEE),以及两次教科书卓越奖(Text and Academic Authors Association)。

他最近获得的荣誉包括Tapia 成就奖、BBVA 基金会知识前沿奖以及ACM 图灵奖,其中后两者与约翰·轩尼诗(John Hennessy)共同获得。他在加州大学洛杉矶分校获所有学位,也被

该校授予杰出工程学院校友奖。他在南加州长大,兴趣爱好是和儿子们一起玩人体冲浪、骑自行车和踢足球,以及和妻子一起远足。他们在高中时期相爱,并于2022 年庆祝了55 周年结

婚纪念日。

安德鲁·沃特曼(Andrew Waterman)是SiFive 的总工程师和联合创始人。SiFive 由RISC-V 架构的发明者们创办,旨在提供基于RISC-V 的低成本定制芯片。他获加州大学伯克利分校计算机科学博士学位。其间,他厌倦了现有指令集架构的变幻莫测,于是参与设计了RISC-V ISA 和第一款RISC-V微处理器。安德鲁在多个开源项目中均做出主要贡献,包括基于RISC-V 指令集的开源Rocket chip 生成器、Chisel 硬件构造语言,以及Linux 操作系统内核、GNU C 编译器和C 库的RISC-V 版本移植工作。他还获加州大学伯克利分校硕士学位,其间开展了RISC-V 压缩扩展的前期工作。他还获杜克大学工学学士学位。

目录

第1章 为什么要有RISC-V 1

1.1 导言 2

1.2 模块化ISA 和增量型ISA 3

1.3 ISA 设计导论 5

1.4 全书总览 11

1.5 结语13

1.6 扩展阅读14

第2章RV32I:RISC-V 基础整数指令集16

2.1 导言17

2.2 RV32I 指令格式18

2.3 RV32I 寄存器 21

2.4 RV32I 整数计算23

2.5 RV32I 取数和存数 25

2.6 RV32I 条件分支26

2.7 RV32I 无条件跳转 27

2.8 其他RV32I 指令28

2.9 通过插入排序对比RV32I、ARM-32、MIPS-32 和x86-32 28

2.10 结语34

2.11 扩展阅读 36

第3 章RISC-V 汇编语言 37

3.1 导言38

3.2 调用约定38

3.3 汇编器 41

3.4 链接器 46

3.5 静态链接和动态链接49

3.6 加载器 49

3.7 结语50

3.8 扩展阅读50

第4章RV32M:乘法和除法指令51

4.1 导言52

4.2 结语54

4.3 扩展阅读55

第5章RV32F 和RV32D:单精度和双精度浮点数56

5.1 导言57

5.2 浮点寄存器60

5.3 浮点取数、存数和算术运算62

5.4 浮点转换和数据传送63

5.5 其他浮点指令63

5.6 通过DAXPY 程序对比RV32FD、ARM-32、MIPS-32 和x86-32 65

5.7 结语68

5.8 扩展阅读68

第6章RV32A:原子指令70

6.1 导言71

6.2 结语73

6.3 扩展阅读74

第7章RV32C:压缩指令75

7.1 导言76

7.2 对比RV32GC、Thumb-2、microMIPS 和x86-32 81

7.3 结语82

7.4 扩展阅读82

第8章RV32V:向量83

8.1 导言84

8.2 向量计算指令85

8.3 向量寄存器和动态类型86

8.4 向量取数和存数88

8.5 向量操作的并行度 89

8.6 向量操作的条件执行90

8.7 其他向量指令90

8.8 示例:用RV32V 编写DAXPY 程序92

8.9 对比RV32V、MIPS-32 MSA SIMD 和x86-32 AVX SIMD· 93

8.10 结语97

第9章RV64:64 位地址指令· 100

9.1 导言101

9.2 通过插入排序比较RV64 与其他64 位ISA 105

9.3 程序大小112

9.4 结语113

第10章RV32/64 特权架构115

10.1 导言116

10.2 简单嵌入式系统的机器模式117

10.3 机器模式的异常处理 119

10.4 嵌入式系统中的用户模式和进程隔离 124

10.5 现代操作系统的监管模式 126

10.6 页式虚拟内存128

10.7 标识和性能CSR 133

10.8 结语136

第11章 未来的RISC-V 可选扩展 137

11.1 “B”标准扩展:位操作 138

11.2 “E”标准扩展:嵌入式 138

11.3 “H”特权态架构扩展:支持虚拟机管理器(Hypervisor) 138

11.4 “J”标准扩展:动态翻译语言· 138

11.5 “L”标准扩展:十进制浮点 139

11.6 “N”标准扩展:用户态中断139

11.7 “P”标准扩展:紧缩SIMD 指令139

11.8 “Q”标准扩展:四倍精度浮点140

11.9 结语140

附录A RISC-V 指令列表 141

附录B 把RISC-V 直译到其他ISA 187

59元包邮,全网最低价

0 阅读:0

英炜硬十

简介:感谢大家的关注