“双一流”学科建设背景下的计算机组成原理课程实践
2021-11-30张冬雨
张冬雨
(中山大学计算机学院,广州510006)
0 引言
“双一流”学科建设项目的实施,标志着继“985工程”“211工程”之后中国高等教育水平进入了一个新的阶段。通过“双一流”学科建设,可以培养出一大批具有较强创新能力,并且能够积极参与社会经济建设与发展的人才,从而为建设创新型国家和人才强国战略服务[1]。
“双一流”建设对高校计算机专业课程的教学提出了新的挑战[2]。《计算机组成原理》是高校计算机相关专业的重要核心课程之一,其课程的内容是计算机课程体系中最重要的组成部分之一。通过该课程的学习,学生可以掌握计算机硬件系统各部件的内部结构和基本工作原理,为后续课程的学习打下良好基础[3-5]。在“双一流”学科建设的背景下,为了提升课程的教学质量,解决学生理论知识有余、实践能力不足的问题,学习、借鉴国内相关大学的教学实践[6-8],《计算机组成原理》综合实践课程进行了一系列的探索。
1 课程内容与实验设置
处理器的设计是《计算机组成原理》实践中最重要的实验内容,通过该实验学生能够将组成原理课程中介绍的关于运算器、存储器、寄存器、数据总线、地址总线、数据线复用、控制器等各个部分的知识融会贯通,是一个综合性、创新性的实验。然而通过多年实践教学发现,在进行处理器设计时,大部分的学生往往是理论上比较清楚,但是实际动手时却不知道从哪里开始。通过观察发现,学生们的主要问题是对计算机系统设计能力比较欠缺。一方面是平时接触比较少,缺少实际的操作经验;另一方面是对设计任务抽象、规划能力不足。为解决上述实践中的问题,《计算机组成原理》设计综合实验课划分为两个部分,即理论课和实验课。理论课6学时,主要讲解理论知识,包括如何划分处理器的基本模块以及各个模块的功能、输入输出接口、数据通路的实现等等;实验课为54学时,主要由学生动手实验,实际设计处理器的各个不同模块。设计与仿真环境使用Xilinx ISE软件,验证环境使用专用的FPGA实验平台。
在实验设计上根据处理器的主要功能,课程组将实验分成了不同的模块,便于将设计任务分解、细化。实验指导书总体介绍处理器的整体设计过程,然后讲解各模块的具体的功能,最后介绍模块仿真和整体仿真验证方法。一般来讲,指令的执行过程分为取指、译码、执行、访存、写回等五个阶段。每个阶段的作用如表1所示。
表1 指令执行的一般过程
对应指令的执行过程,在实验内容设置方面,将处理器实现划分为不同的基础实验模块,如表2所示。各个模块间通过信号连接,构成数据通路。通过实现各个基础的模块功能最终组合出完整的处理器功能。各模块的具体实现可根据学生情况,完全由学生利用VHDL语言实现。学生在实验中可以逐个模块实现与仿真。
表2 处理器实验模块划分与设计功能
在完成上述实验后学生就完成了简单的处理器的设计,并且对计算机组成原理课程中所学的取指、访存、回写等过程的数据的流通方向,以及指令的详细执行过程有更加清晰的认识。通过实验,学生也掌握了如何使用计算机辅助软件,如Xilinx ISE进行处理器设计。在此基础上,鼓励学生进行指令的扩展实验,优化与完善处理器的功能,比如设计实现流水线的功能等。
2 教学主要过程
教学内容围绕着处理器的指令集、运算器、存储器、程序计数器、输入输出接口的设计,通过模块化的分解实验,从简单到复杂,从单一功能到多功能的实现,一步一步帮助学生掌握处理器的设计方法,并熟练掌握硬件设计语言以及相应设计软件的开发和调试手段。
(1)教师课堂讲授模块化的处理器设计方法,在此时可以将最基本的各个不同功能模块功能及实现原理进行说明。
(2)利用几个简单的验证性实验,让同学们熟悉VHDL硬件编程语言以及相关软件Xilinx ISE的使用、调试、下载等方法。
(3)由学生自行确定所需要的功指令集的设计。作出设计的初始方案,然后同指导教师讨论。指导教师此时要对学生的方案进行评估,指出方案中可能存在问题的地方,提出改进意见。
(4)利用软件进行仿真。借助计算机辅助设计软件Xilinx ISE进行各个功能模块的仿真实验,实现各单元模块的设计。实验指导教师分多次验收,检查学生设计的功能是否正确,了解学生对知识的理解掌握程度,指出设计中需要改进的方面,解答学生在设计过程中的疑问并评定阶段成绩。
(5)综合调试与验证,实现最初的设计需求。在FPGA实验平台上下载仿真完成的代码,分模块调试、验证功能是否正确。此时实验指导教师综合考察学生的实验结果,解答其在调试过程中的疑问,并根据实验的完成质量评定阶段成绩。
(6)学生展示设计的成果,介绍自己实现的处理器的功能,以及设计方案的实现过程。同时需要将设计过程、调试过程中遇到的问题、解决的方法与经验总结成实验报告。实验指导教师综合学生的表现并结合各阶段成绩给出学生实验的最终成绩。
3 课程特色
(1)《计算机组成原理》设计综合实践课程注重对学生综合素质的培养,鼓励开拓创新。本实验可以自行设计指令集,学生可以在基础的实验上加入新的指令,实现新的功能,大大增加了实验的趣味性与创新性。
(2)以处理器为核心把硬件的编程与软件的仿真联合起来。学生通过不断的学习与改进把以往学过的碎片化知识集成起来,对计算机系统有了更加深刻、更加整体的理解。
(3)分阶段进行实验的验收和成绩评定的方式提供了更多的灵活性,也提高了学生主动学习的热情。通过现场交流和实验指导教师的把关,能够充分保证学生在遇到问题时可以及时地得到老师的帮助,从而能够顺利地进行实验,进一步提高学生实验的积极性。
(4)学生们在实验的过程中会不断的遇到问题,思考问题产生的原因,努力解决问题。通过这种方式可以培养学生的科研探索精神;通过现场的讲解与展示,学生的表达能力也得到提高。
4 结语
《计算机组成原理》是实践性非常强的一门课程,处理器的设计实验能够综合考察学生对该课程内容中不同部分的理解程度。《计算机组成原理》综合实践课程经过不断地探索和实践,提出了模块化实验的设置,同时采用了分不同阶段验收,结合实验教师的启发式指导的教学模式,极大地增强了学生对实验的兴趣。学生们普遍认为这门实践课程对他们理解整个计算机系统非常有帮助,能够将以往学习的专业课知识有机的整合起来,为后续计算机体结构等专业课程的学习打下了坚实的基础。《计算机组成原理》综合实践为高校实验教学提供了有益的借鉴。