作者:(美)DavidPatterson(大卫
页数:240
出版社:电子工业出版社
出版日期:2023
ISBN:9787121464096
高清校对版pdf(带目录)
前往页尾底部查看PDF电子书
内容简介
本书首先提出一款指令集的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)项目,伯克利最新的RISC 因此得名“RISC Five”(第五代RISC)。他和安德鲁·沃特曼(AndrewWaterman)均为四位RISC-V 架构师中的一员。安德鲁·沃特曼(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 压缩扩展的前期工作。他还获杜克大学工学学士学位。包云岗,中国科学院计算技术研究所副所长、研究员,中国科学院大学计算机学院副院长,担任中国开放指令生态(RISC-V)联盟秘书长、RISC-V国际基金会理事会成员、中国计算机学会CCF开源发展委员会副主任。研究方向是计算机体系结构,包括芯片敏捷设计、数据中心体系结构等。先后开展访存监测设备HMTT、I/O访存DMA Cache、多核基准测试集PARSEC 3.0、标签化体系结构LvNA等前沿技术研究与原型系统研制,相关技术在华为、阿里、英特尔、微软等企业得到应用。近年来带领团队在国内率先开展了一系列开源芯片实践,包括开源高性能RISC-V处理器核“香山”项目、“一生一芯”计划、芯片敏捷设计云平台SERVE等,成为开源处理器芯片方向国际上主要科研团队之一。发表70余篇学术论文,包括ASPLOS、CACM、HPCA、ISCA、SIGCOMM、NSDI等国内外一流学术会议与期刊。曾获“CCF-IEEE CS”青年科学家奖、北京市“最美科技工作者”、共青团中央“全国向上向善好青年”等荣誉称号。
本书特色
《RISC-V开放架构设计之道》由RISC-V架构的作者、著名的计算机体系架构专家David Patterson亲自主笔撰写,
以最精简的笔墨,清晰、透彻地勾勒了RISC-V架构的全貌,全书别出心裁地按照RISC-V模块化的指令来组织内容,以帮助读者深刻理解RISC-V的关键特性,
本书值得每一位对RISC-V感兴趣的读者精读,并可作为从业者随时翻阅的案头参考书。
RISC-V 的基本概念和设计原则
深入分析RISC-V 的指令集、寄存器、内存管理、异常处理等
丰富的图表和示例
此外,本书还介绍x86、ARM 和MIPS 的设计,通过对比分析,突显RISC-V 的优势。 《RISC-V开放架构设计之道》由中科院计算所包云岗老师团队担纲翻译,是一本著译双馨的上乘佳作。
目录
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
8.11 扩展阅读 99
第9章RV64:64 位地址指令· 100
9.1 导言101
9.2 通过插入排序比较RV64 与其他64 位ISA 105
9.3 程序大小112
9.4 结语113
9.5 扩展阅读114
第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
10.9 扩展阅读 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
索引195
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://www.xiazainiu.com/Wd1qk_5_9982.html