RISC-V开放架构设计之道
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

译者序

向高校师生和从业人士推荐本书

在计算机专业本科教学中,指令集是一个较为抽象的概念。传统的课程设置针对计算机系统抽象层横向切分,每门课程都围绕一个抽象层开展教学,包括数字逻辑电路、计算机组成原理、汇编程序设计、操作系统、编译原理等。各课程间虽然分工明确,但缺少联系,学生对计算机系统难以形成完整的认识。例如,汇编程序设计课程围绕指令集开展教学,但主要介绍指令的格式和功能,以及汇编程序的阅读和设计,未与计算机系统中的其他抽象层建立关联,使得学生无法理解指令集的意义及其在计算机系统中的作用,甚至认为指令集和汇编语言是过时的底层知识。因此,“一生一芯”计划[1]尝试从另一个角度讲解指令集:向学生展示RISC-V指令集的设计对程序和硬件有何影响,而不是按照指令集手册机械地讲解指令的格式和功能。

本书高度契合上述需求。原书的两位作者均为RISC-V指令集的设计者,同时也是资深的计算机架构师,RISC-V指令集的优秀设计体现了他们对整个计算机系统的深刻理解,包括程序、编译、链接、操作系统、微结构、电路等多个方面。书中首先提出一款指令集的7个评价指标,包括成本、简洁、性能、架构和实现分离、提升空间、代码大小、易于编程/编译/链接,然后围绕这7个评价指标从全系统角度向读者介绍RISC-V的精巧设计和众多的取舍考量。例如,RISC-V架构师精心排布指令格式中的立即数字段,可节省处理器设计的门电路数量;RISC-V把全0指令作为非法指令,能让处理器更早捕捉到程序跳转到被清零内存区域的错误,从而降低此类错误的调试难度;RISC-V并未像MIPS那样采用延迟分支技术,是因为该技术违反架构和实现分离的原则。同时,本书还介绍x86、ARM和MIPS的设计,并通过插入排序和DAXPY(双精度乘加)程序量化对比它们,突出RISC-V的优势,深入阐释指令集设计对计算机系统的影响。

我们将本书强烈推荐给计算机专业和电子专业数字电路方向的师生,以及处理器芯片和RISC-V相关方向的从业人士。如果您是学生,本书将是一本优秀的课外读物,有助于您建立完整的计算机系统观念;如果您是教师,本书将为您提供丰富的真实案例,能给您的教学工作带来新的启发;如果您是相关方向的从业人士,本书除了开拓您的视野,还是一本方便的小型参考手册,帮助您更轻松地完成工作。

译本的历史

原书第1版于2017年出版,是一本极好的RISC-V读本。2018年7月,我们了解到大卫·帕特森(David Patterson)教授希望把原书翻译成中文的想法(详见“缘起”),便欣然接受,马上成立翻译团队,并通过Microsoft Word开展原书的翻译工作。2018年11月,我们完成原书第1版的译本,并以电子版的形式免费发布。

2021年10月,我们收到原书作者之一安德鲁·沃特曼(Andrew Waterman)的消息,电子工业出版社的刘皎编辑联系了原书作者团队,希望将译本以纸质方式出版,以推动RISC-V在中国地区的发展。原书作者与我们取得联系,三方达成共识,我们获得原书的LaTeX工程。从交流中得知,原书第2版的撰写工作也正在开展。我们随后开展第2版译本的第1阶段翻译工作,但彼时翻译团队的黄成和刘志刚已从中国科学院计算技术研究所毕业且忙于工作,第1阶段的翻译工作主要由勾凌睿开展。第1阶段的工作包括从Word向LaTeX工程迁移、增加部分新内容、修正已知错误,以及一定程度的润色。2022年6月,第1阶段的翻译工作基本完成。

2022年10月,余子濠在第五期“一生一芯”计划的教学环节介绍RISC-V指令集,在备课过程中查阅第1版译本,发现仍有不少需要改进之处。彼时,余子濠有若干教材的出版经验,便与勾凌睿商量,同时邀请彼时为中国科学院计算技术研究所一年级直博生的陈璐加入翻译团队,三人共同开展第2版译本的第2阶段翻译工作。第2阶段的翻译工作主要对全书进行更细致的校对,重点修正语句不通顺、语言表达不符合中文习惯等问题,也推敲了原书的部分英文表述,期望给读者带来更好的阅读体验。2023年2月,三人完成全书所有章节的校对,并相互交换审阅意见,第2阶段的翻译工作基本结束。

第2版译本的修订内容

我们对比了原书第2版相对于原书第1版的主要变化:

• 新增了若干扩展的章节。

• 卷首添加了数条好评。

• 前言的“致谢”中新增了对翻译版本的描述。

• 新增了附录B,介绍如何将RISC-V翻译到其他ISA。

• 特权架构章节添加了一些图,包括异常中断相关CSR和委托机制CSR的示意图;还添加了“标识和性能CSR”小节,以及相应的示意图。

• 为页边的图标添加了文字说明。

• 更新了一些标准、机构、书籍的版本或名称,包括将IEEE 754—2008标准更新到IEEE 754—2019版本,将RISC-V基金会(RISC-V Foundation)更名为RISC-V国际基金会(RISC-V International),将计算机组成与设计(RISC-V版)更新到第二版,MIPS指令集的归属也一再发生变化等。

• 修正了若干错误。

我们获得的原书LaTeX工程中已包含原书第2版新增扩展章节的部分初稿,但在开展第2版译本的翻译工作时,原书作者尚未完成新增扩展章节的撰写。我们讨论后决定,第2版译本的主要内容仍然基于原书第1版,但吸收了上述变化中除新增扩展章节外的其他内容,同时通过脚注标注翻译工作开展时RISC-V指令集的发展情况。此处我们暂不透露新增扩展章节的具体内容,欢迎读者关注原书第2版的出版!

此外,我们还调整了书名The RISC-V Reader的翻译。第1版译本将书名翻译为《RISC-V手册》,余子濠认为这容易与RISC-V的官方指令集手册The RISC-V Instruction Set Manual混淆,讨论后决定在第2版译本中更改为《RISC-V开放架构设计之道》。

最后,我们也决定将第2版译本以电子版的形式发布,读者可访问“链接1”或“链接2”免费获取。电子版与纸质版的排版布局稍有不同,特此说明。

致谢

由于第1版译本的翻译工作较为仓促,发布电子版后我们收到各方读者通过各种渠道提出的反馈意见,包括在GitHub上提出issue或pull request的rill-zhen、YohnWang、YingkunZhou、lizhm82、PulseRainmaker、LoveZJT、qian-gu、xingjiahao、sunshaoce、marryjianjian、unlsycn、strongwong等用户。感谢GitHub用户tiansiyuan将第1版译本转换为Markdown格式,为译本增加了GitBook、MOBI等多种呈现形式,推动了第1版译本的传播。参加“一生一芯”计划的张炀杰同学和宋铸恒同学也向助教反馈了若干错误。还有很多通过邮件、微信等方式提出宝贵意见和建议的读者,此处不一一列举。我们对这些读者表示衷心感谢,他们的反馈极大地提升了第2版译本的质量。正是因为他们的鞭策和鼓励,我们才能完成第2版译本的翻译工作。

感谢从中国科学院计算技术研究所毕业的黄成硕士对书中第4、5、6章新增若干内容,修正若干错误并润色,帮助我们推进第2版译本的翻译工作。

感谢原书作者大卫·帕特森和安德鲁·沃特曼,我们在开展翻译工作的过程中精读了原书,从中也学习到很多!我们衷心希望第2版译本的出版能让国内更多读者了解原书的优秀之处以及RISC-V的设计理念。

感谢原书作者提供的LaTeX工程,得益于此,我们能方便地修改图表中的文字,而无须以截图附文本框的形式进行翻译。另外,它也极大地简化了排版工作,使我们能专注于翻译内容。

感谢电子工业出版社为本书的出版工作提供了极大的支持,特别感谢刘皎编辑,她极其专业和非常细致的审校与编辑工作为本书的出版质量提供了可靠保证。

结语

本书是The RISC-V Reader第1版的中文译本第2版,在内容上力求准确地还原原书的表述。但是,由于我们水平有限,在译本中难免存在不当或疏漏之处,恳请广大读者对本书的不足之处给予指正,以便在后续版本中予以改进。

陈璐 勾凌睿 余子濠

2023年11月18日


[1] “一生一芯”计划是由中国科学院大学和中国科学院计算技术研究所发起的芯片类开放式公益性人才培养计划,通过开源新赛道和贯通式实践型课程,培养处理器芯片设计人才。