首页 圈子 我的社区 微课程 问答 积分兑换 活动 投票 搜索 文章 软件
全部 Proteus 教学

如何“搭积木”方式设计一个CPU?——论计算机组成原理实验改革

zhangly
发表于 2019-05-05 16:53:09

传统实验教学面临的挑战

十年前,当我第一次当大学老师的时候,当时《计算机组成原理》实验课用的箱子如下图所示:实验箱面板的背后, ALU、控制器、RAM、ROM等各个CPU部件都是固化好的,学生在实验时只能参照实验指导书的说明,插拔面板上的连线来“组装”CPU,并且通过拨动开关的方式把编写的程序或微程序二进制代码一点一点的输入到实验箱背后的CPU上。这种工作方式可以追溯到上世纪五六十年代计算机刚刚发明的“打孔卡”年代,比我的年龄还大。时至今日,很多学校还在用这种化石级的实验箱。



上述插线板实验箱的优点是直观,上手快,“零基础”就能操作。但是,缺点也很明显:首先,实验箱的CPU电路已经集成固化在面板背后,学生没有办法改动任何硬件,更不能自主设计CPU架构,只能按照指导书的步骤一步一步的验证,限制了学生主动思考和创新能力的发挥;其次,实验箱面板上连线错综复杂。每次实验过程都要重复进行大量的连线操作。不仅实验箱因为频繁插拔容易损坏,而且学生在实验过程中花费相当精力在枯燥乏味的连线、查错等琐事上,严重降低学生的学习兴趣,影响实验教学效果。
近年来,国内高校一直探索基于可编程逻辑器件FPGA的硬件实验改革,如下图所示。可编程逻辑器件FPGA拥有成熟的开发环境,让学生在实验中直接利用硬件描述语言HDL实现计算机功能组件的描述和连接,可以实现工业级标准的复杂CPU设计,大大提高了计算机组成原理实验的效率和深度。

但是,基于可编程逻辑器件FPGA的新兴实验模式也存在以下问题:首先,计算机专业严重缺乏对FPGA设计熟悉的老师,需要对现有的任课教师群体进行大规模的FPGA培训,需要花费大量的人力物力;其次,学生亦要有扎实的FPGA设计基础和硬件描述语言HDL编程实践,才能较好的在FPGA上进行计算机硬件课程实验。但是由于计算机专业课程体系的安排,高校很难在数字逻辑课内或者在计算机组成原理课前有足够的课时去安排学生掌握FPGA设计的专业知识。最后,基于硬件描述语言HDL的实验方式通过HDL语言来“行为建模”的描述硬件电路,容易让学生误把硬件描述语言HDL等同于高级编程语言,不能建立起对硬件电路结构及时序的正确认识

基于proteus的虚拟仿真实验改革

针对上述问题,我的教学改革思路是杀鸡勿用牛刀:不追求“高精尖”的实验技术,只追求“直观、便捷、高效”的实验效果,使学生“零基础”、方便、快捷的完成实验。计算机/软件专业的学生应该是正确掌握了计算机组成原理及体系架构的硬件知识后,在实际工作中有需要再学习FPGA开发。而不应该本末倒置,为了做实验而耗费大量时间和精力在FPGA方向上。
因此,作者提出的解决方法是虚拟仿真技术:在proteus软件的虚拟仿真环境中,运用常见的中小逻辑器件“积木式”搭建计算机组成部件,设计CPU,甚至组装外设接口,构成微型计算机系统。上述实验过程跟传统的插线板实验箱的面板插线过程非常类似,不需要任何专业知识就能操作,而且所有硬件电路都是“透明”的,可以直观看到每根导线和每个器件管脚上的电平高低;同时,上述实验过程又具有FPGA实验箱的高度灵活性特点:学生可以根据教科书上的计算机体系结构知识,自主设计不同架构的CPU(例如经典的流水线架构),可以自定义CPU的指令集,可以采用最底层的机器语言实现对CPU的编程。虚拟仿真技术的低门槛和高灵活性特点,让计算机专业的学生“零基础”进行计算机组成原理实验,降低学习门槛,增加学习兴趣,贴近实际为基础课程实验教学服务。
我的文章(如下所示)阐述了在proteus虚拟仿真软件中,从数字逻辑基础到涉及三种体系架构的CPU设计的详细实验内容。这些实验都是“抛砖引玉”的开放式实验,仅仅为师生提供启发和参考。师生可以自由探索,设计定制专用CPU,或者把CPU与多个外设组成更加复杂的计算机系统。

1)基于proteus的计数器设计
2)基于proteus的状态机设计
3)基于proteus的存储器设计
4)基于proteus的CPU控制器设计(微程序版)
5)基于proteus的CPU控制器设计(硬布线版)
6)基于proteus的一个微程序CPU
7)基于proteus的一个硬布线CPU
8)基于proteus的一个流水线CPU

参考资料

上述系列文章的内容节选自我编撰的教材专著《基于Proteus的计算机系统实验教程——逻辑、组成原理、体系结构、微机接口》(机械工业出版社),更详细的内容可以直接在书中查阅。
读者如有兴趣,可以在当当网图书, 京东图书,亚马逊上搜索作者姓名赖晓铮即可找到这本著作。 

本书详细描述了在proteus虚拟仿真环境中,从逻辑电路开始,一步一步构造运算器、存储器、控制器,最终用三种CPU体系架构(微程序、硬布线、流水线)实现了一个8位的CPU。并且,这个CPU不仅可以做逻辑、算术运算,拥有循环、分支、堆栈等程序结构,还可以完整实现对8086所有外设的控制,即替代8086完整实现了传统《微机原理》里讲到的所有外设实验。
本书的全部proteus工程文件,PPT,实验视频以及配套的两种形式课程设计(纯汇编、硬件改动)的资料都放在 百度网盘,提取密码:34ad
广州风标为本书配套了实验箱(如下图所示),可以让学生在电脑的proteus虚拟仿真环境中设计CPU或选择已有的8086、8051、ARM等CPU模型,然后通过虚拟总线映射到实验箱的物理总线,控制实验箱面板上的真实外设。有兴趣的读者可以自行联系 广州风标教育技术股份有限公司



作者:华南理工大学 赖晓铮教授


408 0

你的回应