前段时间,中国科学院大学的「一生一芯」计划引发热议,五位本科生带着自己设计的处理器芯片正式毕业,被称为「最硬核毕业证」。其实,东京大学信息科学系也有一个自制CPU的实践课程。近日,微软软件工程师TakayaSaeki刊文回顾了五年前们小组的CPU实验项目:不仅通过自学自制了CPU、C编译器,还成功移植了一个类Unix操作系统(Xv6)。虽然回顾的是五年前的往事,但这篇文章应该也能为芯片和操作系统人才培养工作带来一些启发。选自FueledbyCoffee,作者:TakayaSaeki,机器之心编译,编辑:Panda。所有这一切都源自一个学生实验项目:CPUExperiment(CPU实验)。首先说说这个CPU实验是什么。CPU实验是东京大学信息科学系一个小有名气的实践课程,通常在大三的冬季进行。在该实验中,学生会被分成小组,每组四、五个人。每一组都要设计一种自己的CPU架构,在FPGA上实现它,为该CPU构建一个OCaml子集编译器,然后在该CPU上运行一个给定的光线追踪程序。通常来说,CPU、FPU、CPU模拟器和编译器都各由一两个人负责。我负责第6组的CPU部分。这个实践课程的有名之处在于对自学能力的高度期望。导师向学生们下达了任务目标:「把这个用OCaml写的光线追踪程序运行在你们用FPGA实现的CPU上」,然后就下课了。对于编写CPU和编译器的具体步骤,他不会多说。学生需要自己学习如何将学过的有关CPU和编译器的一般知识转化成实际成品,这将涉及到实际的电路和代码。是的,这个实践课程确实很难,但也很激动人心且极具教育意义。在我们自己的CPU上运行操作系统你可能已经注意到了,我还没谈到操作系统。我来稍微解释一下。通常来说,这个实验会这样进行。首先,做出一个可靠工作的CPU,不管计算速度如何。如果做出了CPU并成功运行了那个光线追踪程序,就能得到这个实践课程的学分。之后,你的团队就自由了。通常来说,这些自由时间会被用于CPU提速。在过去的实验中,学生做出过乱序CPU、VLIEWCPU、多核CPU甚至超标量CPU,确实很了不起。但是,有些团队则把更多精力放到了一些有趣任务上,比如运行游戏或将CPU与扬声器连接来播放音乐。我们第6组也是一个热爱娱乐的小组,而我们决定将目标设定为运行一个操作系统。结果,其它一些小组也对这个想法产生了兴趣。于是,一个包含8个人的联合小组——GroupX成立了。我们的目标是:「在我们自己的CPU上运行OS!」尽管我负责第6组的CPU创建工作,但这一次我选择当GroupX的领导者。因此,本文主要是从OS团队角度写作的,不过我也会介绍GroupX的整体成果。Xv6对于要移植的OS,我们选择了Xv6,这是一个由Unixv6启发的简单操作系统,是MIT为教育目的构建的。不同于Unixv6,Xv6ANSIC编写的,而且运行在x86架构上。Xv6是一款教育用OS,所以功能有些简陋,但作为一款简单的类Unix操作系统,功能已经足够了。有关Xv6的更多信息可访问其GitHub代码库:
转载请注明:http://www.aierlanlan.com/rzgz/8808.html