CPU设计实战:LoongArch版
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

PREFACE

与汪文祥老师相识源于2016年。彼时,以本科生开发CPU、操作系统、编译器为目标的系统能力培养教学改革已进入第10个年头。在教育部高等学校计算机类专业教学指导委员会(以下简称“教指委”)的大力推动下,在北京大学、北京航空航天大学、国防科技大学、南京大学、清华大学、上海交通大学、浙江大学、中国科学技术大学这8所系统能力培养示范高校的带动下,全国数十所高校加入教学改革的行列,系统能力培养逐渐成为计算机类专业教学研究与改革的热点之一。

“十年磨一剑,霜刃未曾试”。系统能力之“剑”磨了十年,其锋利程度如何呢?经过深入考虑和多方调研,我们决定举办全国大学生计算机系统能力大赛,以此来检验教学改革的成效,进一步推进教学改革,并建立产学协同育人的生态。这个想法得到了龙芯公司的积极响应,并指派汪老师加入大赛的技术组。

大赛从哪个环节开始呢?从技术角度,CPU是计算机系统乃至信息技术领域的基石。从产业的角度,如果我国有一大批熟知CPU等硬件系统原理与特性的人才,那么他们必将在我国信息技术产业中发挥重要的作用;从教学改革的角度,CPU相关的教学改革启动早、持续久、体系全、影响大;从学生培养的角度,能做出CPU的学生必定是一流的学生,其专业基础与能力毋庸置疑,更重要的是这些学生有过做出CPU的“巅峰体验”,这势必极大增强其挑战未来的信心与雄心。最终,我们决定于2017年先行启动CPU赛道,这在一定程度上也是为其他赛道“探路”。

从2017年到2023年,连续七届大赛让我们看到了学生们对CPU设计的热情,他们的学习能力、工程能力与创新能力超出我们的想象。更令人高兴的是,一些高校将系统能力大赛技术方案融入课程教学中,实现了教学支撑竞赛、竞赛牵引教学的良性循环。

但同时,我们注意到对于本科二年级、三年级的学生来说,开发一个CPU并非易事。人才培养的核心要义在于普惠。教育者必须努力寻找和构建一个适合绝大多数学生的技术路线,不仅要降低他们的学习难度,还应使他们能运用工程化的方法完成具有挑战性的成果。因此,必须要进一步缩小教学与竞赛的难度差。

在我们技术组几位成员的“游说”下,汪老师勇挑重担,在2021年出版了《CPU设计实战》一书,这本书的出版为读者进行CPU设计实战带来了极大的参考价值,成为很多全国大学生计算机系统能力大赛CPU设计赛参赛选手的必读书目之一,伴随他们度过比赛之旅。

随着龙芯公司LoongArch指令集的成熟和产业应用的不断扩大,高校开始在课程体系中嵌入LoongArch指令集的实践内容,同时全国大学生计算机系统能力大赛CPU设计赛也开始支持LoongArch指令集。基于这样的背景,汪老师决定基于LoongArch指令集重新编写《CPU设计实战》。这本书的独特之处很多,印象最深的有以下几点:

1)对初学者非常友好。这本书从介绍工业界真实的CPU设计流程开始,一步步带领读者从单周期CPU设计逐步深入到流水线、添加指令、增加异常与中断的支持,并完成AX总线接口、TLB MMU和Cache的设计,最终开发出一个入门级CPU。在此基础上还可以增加指令、运行Linux,进一步完善CPU的功能和性能。读者完全可以按照书中的指导设计出自己的CPU。

2)融入了很多工程经验。产品化的CPU开发要考虑很多工程因素、注意很多工程细节,这些知识通常在教科书中是不会讲到的。汪老师结合自己丰富的开发经验,在书中给出了很多提示和指引来帮助读者解决设计过程中那些看似不起眼但常常会困扰大家的问题,甚至对如何阅读、理解指令系统规范,汪老师也分享了自己的经验。对于读者来说,这些实践中的真知灼见不仅对于设计CPU是非常宝贵的,对于未来的工作也具有重要的参考价值。

3)适合作为计算机组成、体系结构相关课程的配套实践教材。汪老师长期兼任中国科学院大学本科体系结构课程的教师,深谙系统类课程教学的痛点和难点。本书很多素材来源于汪老师在教学中的实践和思考,他很好地将理论课程中离散的知识点熔接为一套系统化的知识体系,从而有助于提升教与学的质量。

系统能力培养是计算机类专业的一次教育、教学改革的重大探索与实践。对于正在或即将开展系统能力培养教学改革的众多高校与任课教师,对于积极备战全国大学生计算机系统能力大赛的广大参赛选手,这本书都能提供有益的参考。

祝各位阅读愉快!

高小鹏

北京航空航天大学