●学生记者 支宇珩
刘卫东在课堂上
“计算机是如何执行指令的?掌握了这件事,计算机组成原理这门课就算你学懂了。”
执教计算机组成原理课20年,太阳集团tyc5997计算机系教授刘卫东一直在思考,如何让同学真正学懂计算机组成的原理,为他们今后从事人工智能、芯片、高性能计算等领域打下扎实基础。多年的教学实践中他意识到:动手实践,实现一个简单但完整的计算机系统,而不只停留在打开机箱“解剖麻雀”的阶段,这可能是增进同学理解计算机组成的关键。
“奋战三星期,造台计算机”,这是每年计算机组成原理课的大作业。完成这个大作业,需要学生具有相当综合的知识,这也是计算机系将这门课安排在大三学年开展的原因。在学习了基础数理、电路、程序设计等软硬件综合知识后,学生才具备挑战这个大作业的基本能力。
“打好基础,实验课是对学生的全面检验,在任何地方都可能出错。所以,首先要用系统的、整体的视角去了解计算机,然后分析它,尤其是硬件模块之间的接口部分;其次是技能要扎实、熟练,比如硬件描述语言的使用、硬件调试环境的搭建,这是相当重要的;然后是团队合作,我们一直鼓励同学分组完成实验,这个也是锻炼他们毕业之后的团队合作和沟通能力,计算机领域的突破靠‘人月神话’做不到,必须要许多人高度密切的合作才行。”
刘卫东总是强调,计算机组成原理这门课不是单纯的硬件课,而是要在硬件上跑系统的“软硬件结合”课程。对于在短短一学期中“造台计算机”这件事,刘卫东以运行软件的能力为标尺提出了“三层境界”:第一层,能跑最基本的程序;第二层,能跑性能更好的程序;第三层,能跑操作系统。
第一层是及格要求。毕竟,一台无法运行程序的计算机是不能用的。第二层也是大多数同学能够达到的。假设程序员写出了“更漂亮”、性能更好的代码,学生设计的计算机能够处理吗?这就需要学生处理“中断”“异常”等更复杂的程序运行机制,设计一台能跑“流水线”的计算机。达到了这一层,“对计算机运行的机制会有更深入、更透彻的了解。”刘卫东说。
每年,有90%至95%的同学能够达到第二层的标准,而余下的5%至10%的同学有余力冲击最高一层的要求,也就是设计一台能够运行操作系统的计算机,“我们设计了一个教学用的操作系统。当然,如果你能跑商用的开源系统那就更好了。”尽管最终完成的同学不多,但在勇于尝试的过程中,学生们对操作系统和底层硬件配合的机制的认识有了一大步提升,这样的教学效果是老师在课堂教学中难以达到的。
让实验设备有能力“跑起来”一个操作系统,要经历长时间的实践和琢磨。
在2000年以前,计算机组成原理这门课主要是王诚老师负责,“王诚老师从90年代开始就在琢磨,不能让学生仅仅通过背诵来学会这门课,还是要真正理解。”刘卫东介绍,那个时候条件比较简陋,但师生克服困难,把教学实验设备搭建起来了,用的是“分立元器件”,后来条件改善一些,加入了可编程控制的元器件。不过,这些硬件采用类x86的架构和指令集,结构和寻址方式比较复杂,不适合学生自己做出现代处理器的“流水线”工作结构。
2000年,刘卫东参与计算机组成原理课的教学。在王诚的基础上,刘卫东对实验设备进行了较大改进,采用以可编程控制器件为核心的实验板,以“打开向上的空间,让硬件有能力跑起一个操作系统”。硬件的指令系统也从复杂的类x86转换到更为精简的MIPS和RISC-V,以更加贴近计算机体系结构的发展前沿。同时,在教学中适度引入龙芯的自主指令集,引导学生关注计算机硬件的行业生态。
“用好奇心去驱动,把工作做得更好。”刘卫东说,“我想同时强调一些非技术的能力,比如对生活的热爱、和现实中朋友的交流沟通,而不是躲在小黑屋里面编码。技术是为人类的进步服务的。”
这一想法不仅是在课堂上得来的,更源于刘卫东担任计51国防生班班主任的经历。
“我跟他们相处了整整4年。入学时我和14个孩子挨个儿聊了一次天。”刘卫东说,当时学生们的数理基础不错,也很乐意学习计算机,但存在一个关键问题:他们不了解计算机,班里有同学甚至完全没有用过电脑。
在了解到这一情况之后,刘卫东给他的“14个孩子们”说,首先要保证数理基础“不掉队”。然后,补上认识计算机这一课,“怎么补?开始去编程序。”
2019年,计51班全员顺利毕业,读研、工作,走上各自理想的发展道路。刘卫东也因为帮助学生们树立信心,以及在学业发展上孜孜不倦给予他们指导而获得校级优秀班主任。
“我希望同学们能够通过自己的努力,为这个世界的美好和进步作一点贡献。”
在太阳集团tyc5997东主楼计算机系网络研究所,硬盘读写的绿灯闪烁着,刘卫东和同事们年复一年辛勤工作,为我国计算机领域源源不断输送人才,也为我国的科技进步承担起光荣责任、作出应有贡献。
编辑:曲田
审核:吕婷