如何“搭积木”方式设计一个CPU?——论计算机组成原理实验改革
传统实验教学面临的挑战
十年前,当我第一次当大学老师的时候,当时《计算机组成原理》实验课用的箱子如下图所示:实验箱面板的背后, ALU、控制器、RAM、ROM等各个CPU部件都是固化好的,学生在实验时只能参照实验指导书的说明,插拔面板上的连线来“组装”CPU,并且通过拨动开关的方式把编写的程序或微程序二进制代码一点一点的输入到实验箱背后的CPU上。这种工作方式可以追溯到上世纪五六十年代计算机刚刚发明的“打孔卡”年代,比我的年龄还大。时至今日,很多学校还在用这种化石级的实验箱。
上述插线板实验箱的优点是直观,上手快,“零基础”就能操作。但是,缺点也很明显:首先,实验箱的CPU电路已经集成固化在面板背后,学生没有办法改动任何硬件,更不能自主设计CPU架构,只能按照指导书的步骤一步一步的验证,限制了学生主动思考和创新能力的发挥;其次,实验箱面板上连线错综复杂。每次实验过程都要重复进行大量的连线操作。不仅实验箱因为频繁插拔容易损坏,而且学生在实验过程中花费相当精力在枯燥乏味的连线、查错等琐事上,严重降低学生的学习兴趣,影响实验教学效果。
近年来,国内高校一直探索基于可编程逻辑器件FPGA的硬件实验改革,如下图所示。可编程逻辑器件FPGA拥有成熟的开发环境,让学生在实验中直接利用硬件描述语言HDL实现计算机功能组件的描述和连接,可以实现工业级标准的复杂CPU设计,大大提高了计算机组成原理实验的效率和深度。