马 莉,秦彩云
(北京石油化工学院 信息工程学院,北京 102617)
计算机组成原理是计算机专业一门非常重要的硬件类专业基础课。计算机组成原理课程设计是组成原理的一门实践类课程,课程主要教学内容为运算器、控制器、存储器、输入设备和输出设备,即冯·诺依曼结构计算机的五大组成部分。教师在教学中须把握整体与局部、软件和硬件、微观现实和宏观结构这3条主线,引导学生认识计算机硬件系统,了解各功能部件的基本组织结构和工作原理,掌握各部件的设计方法。对程序员来说,计算机各功能部件的许多硬件细节都是透明抽象的,怎样设计实验环节为理论教学服务,使原本透明抽象的、“看不到摸不到”的部件变得具体化,是非常重要的。为了实现深刻理解计算机各主要功能部件的结构、功能以及相互之间联系这个实验教学目标,对实验教学内容和实验步骤方法进行精心科学地设计,是非常必要的。同时,好的实验教学环节的设计对提升学生学习兴趣、建立学生的成就感、培养学生自学能力也是非常有效的。
目前,我国高校计算机组成原理及课程设计的实验教学主要以传统方式为主,实验平台基于特定的实验系统,实验内容大多是完成运算器、存储器、控制器等各部件的功能验证实验,其缺点非常明显,即实验以验证各部件功能为主,学生缺少通过实验训练硬件系统的设计能力。大多数高校的计算机组成原理实验采用这种传统方式,少部分985、211高校,如清华大学、国防科技大学、南京大学等,计算机组成原理实验教学采用另一种方式,即基于硬件描述语言进行CPU的设计。如清华大学设计了“基于FPGA的开放式教学的CPU设计与测试系统”综合实验平台[1];南京大学和东南大学硬件教学通过Altera DE2实验板开展基于硬件描述语言和FPGA的CPU设计;浙江大学计算机组成原理课程的实验选用Xinlix NS3的FPGA开发板完成[2];国防科技大学[3]、武汉大学[4]等高校的计算机组成原理实验是进行基于FPGA的CPU系统的设计,这种方式难度较大,采用此方案的高校还不多。
为紧跟计算机新技术的发展,培养具有计算机硬件系统分析、综合运用和设计能力的计算机专业人才,对现有计算机组成原理及课程设计的实验进行教学改革,构建一个计算机组成原理及课程设计的层次化和系列化实验方案,是非常有必要的。
基于FPGA+VHDL的实验方案具体如下。硬件实验平台选用THINPAD教学计算机系统和实验室的PC机搭建,以VHDL为硬件描述语言,以RISC为主要设计思想。THINPAD教学计算机系统的硬件电路如图1所示。教学计算机的主要实验芯片是Xilinx公司生产的FPGA芯片,型号为Spartan-3E系列的XC3S1200EFGG320,存储器使用两片容量为256K×16B的SRAM和8MB的Flash存储芯片,采用哈佛结构,指令和数据独立存储的,为实现更加灵活方便的实验方式,还配置有丰富的外围接口[5]。
图1 THINPAD教学机实验板
实验方案是层次化的,设计难度逐步深入,分为两个层次。
(1)计算机组成原理的实验教学:完成4个部件实验,每个实验占用1次4学时的实验学时,实验内容和理论教学同步,实验内容是环环相扣的,最终是为后续多周期CPU的设计打下基础。
实验一是熟悉开发环境的实验。通过完成秒表的设计,熟悉FPGA工具软件ISE,学习使用ISE创建工程并进行调试,以及如何在THINPAD硬件平台上进行配置。
实验二是THCO MIPS指令系统的实验。实验方案以多周期CPU的设计为主,要求学生至少设计实现7条指令,必须包括寄存器(R)型、立即数(I)型和转移(B)型,每条指令的机器代码、格式及寻址方式在符合MIPS16e的规定的前提下,可自行定义;实验要求学生使用自己设计的指令编写2个能完成特定功能的测试程序,并在模拟器上测试通过。实验过程中使用终端程序Term协助开展实验。
实验三是算术逻辑运算单元实验。实验内容是设计和实现算术逻辑运算单元。该实验的目的是练习使用THINPAD硬件实验系统,对硬件系统开发的基本过程有一定了解,分析运算器的数据传送通路,掌握算术逻辑运算单元的基本设计方法。该实验是一个设计性实验,设计好的算术逻辑运算单元会被当作后续系统实验中处理器的一个重要组成部分[6]。
实验四是内存储器实验,实验的主要内容是设计一个状态机和内存读写逻辑,完成对THINPAD实验板上存储器RAM的访问。为了实现该实验内容,学生必须熟悉内存储器的配置,了解与总线的连接方式,设计教学机内存的访问时序和方法,理解总线数据传输的基本原理。本次实验需使用数据通讯程序Flash And Ram协助开展实验[6]。
(2)课程设计的实验教学:完成4个基础实验之后,在2周的课程设计期间要求学生设计并实现一个多周期CPU,CPU需具有16位数据总线,18位地址总线,至少8个16位的通用寄存器,其硬件实现能够支持基础实验二设计的指令执行。该CPU能够在THINPAD开发系统上运行,能够访问开发板上的内存,能够通过基础实验二的2个测试程序的测试。
考虑到本校学生的实际情况,2016—2017学年,首先在北京石油化工学院计算机专业的大三学生中抽选20名学生,组成5个实验小组,完成4个部件实验和多周期CPU的设计,其中,4组设计的CPU支持13条含R型、I型、B型的指令,1组学生设计的CPU支持25条指令,并设计实现了CPU系统的串口通讯,5个小组的设计方案全部通过测试程序的测试,且对CPU的性能进行了评测。
为了提高教学质量,有效跟踪课程教学效果,北京石油化工学院计算机专业采用毕业指标达成度的评价方法对课程进行量化评价。计算机组成原理课程设计的评价采用评分量表形式,对学生进行过程性评价,最终形成达成度计算结果,通过对达成度的总结分析,实现对教学方法、内容和评价方法进行必要的教学改革。
北京石油化工学院计算机组成原理课程设计的课程与毕业要求指标点的对应关系及权重系数见表1。
计算机专业2014计算机组成原理课程设计毕业指标点达成度统计表见表2,分为2套实验方案的学生达成度统计,第1套实验方案的样本数为58人,第2套实验方案的样本数为20人。
其中,第1套实验方案基于16位机指令系统的设计与微程序控制器实现,第2套实验方案基于FPGA+VHDL的CPU设计。通过表2的数据分析可知,完成第2套实验方案学生在指标点3.1、4.2、4.3、5.1、5.3的达成度明显高于采用第1套实验方案的学生,在对学生的系统设计/开发解决方案、研究、使用现代工具这3个毕业要求的培养上,第2套实验方案优于第1套方案。
表1 计算机组成原理课程设计与毕业要求指标点对应关系及权重系数
表2 计算机专业2014计算机组成原理课程设计指标点达成度统计表
在之前改革试点取得一定成果的基础上,我们计划在计算机专业分层次推行2套实验和课程设计方案,第1套继续使用原有实验教学内容,完成运算器、存储器、微程序控制器等模块的验证实验,课程设计的内容是16位教学机指令系统的设计与微程序控制器实现,但要增加扩展指令的功能设计;第2套采用FPGA+VHDL技术方案,在THINPAD开发板上完成寄存器堆、算术逻辑运算单元、内存储器访问等模块的设计实验,在课程设计的教学环节完成多周期的CPU的设计,并逐步向流水CPU设计过渡。通过2套不同层次方案的实践,为今后的计算机组成实验全面铺开FPGA+VHDL技术方案,从实验内容、指导方法、考核方式等多方面积累经验。
改革的目标是通过一两年的实施,全面过渡到采用FPGA+VHDL技术方案的CPU系统设计,减少甚至最终取消验证性为主的实验教学内容,全面增加设计性和综合性实验内容。支持学生自主学习、小组合作研究,全面开放实验室,改进实验教学模式,完成实验项目的设计和调试,努力实现使计算机专业培养的学生具有扎实的计算机基础知识和基本技能,具有社会责任感、职业道德、创新意识和人文素养,且工程实践能力强,成为面向软件与信息服务行业的高级计算机应用型人才这一培养目标。
(1)掌握硬件描述语言对学生的发展是极为有益的。目前,北京石油化工学院计算机组成原理课程的理论学时为48学时,完成课程教学大纲所要求的教学内容已经很紧张,再增加硬件描述语言的教学内容,几乎是不可能的。北京石油化工学院信息工程学院利用网络教学的软教学环境,组织学习小组,提前分配实验任务,指导学生自主学习,是非常可行的。同时,为缓解计算机组成原理课程的学时压力,学院还统筹安排硬件类课程的教学内容,修改先修的数字逻辑课程和电子工程设计课程的教学大纲,将硬件描述语言的有关内容增加到理论和实验教学中。
(2)修订教学大纲,将控制器设计的教学内容过渡成组合逻辑控制器的工作原理和设计方法为主、微程序控制器为辅的教学内容。控制器作为计算机的核心部件,其设计一直是该课程的教学重点。从控制信号的产生原理、实现方式的角度而言,控制器可以分为微程序控制器和组合逻辑控制器。北京石油化工学院的教学重点主要是微程序控制器设计方案,并有配套的实验教学内容,该方案通过设计指令微程序,产生指令实现所需的控制信号,易教易学。伴随计算机新技术尤其是EDA技术的发展,新兴计算机结构如RISC中广泛应用的是执行速度更快、硬件上由组合逻辑门电路和触发器构成的组合逻辑控制器[7]。通过计算机组成原理课程的学习,使学生掌握硬件描述语言,掌握基于EDA的CPU设计技术,这对于提高学生的就业竞争力和提高我国计算机的设计水平方面都是很有价值且值得一做的。
北京石油化工学院通过对计算机组成原理及课程设计实验方案和考核方法的精心设计,在实验内容上增加了基于FPGA+VHDL的CPU设计,在考核方法上采用评分量表的形式对学生进行过程性评价,并且在2016—2017学年初步实施,在课程设计的组织、管理、考核方面获得了可观的教学经验。实用性、前沿技术和硬件实验的趣味性是该实验方案的特点和优点所在,通过三者的结合,教师在课程教学内容和教学重点上也做出了相应的教学改革,使之更加有针对性和对应性,特点鲜明;学生在设计实现多周期CPU时,选用的是现代计算机主流应用开发技术,学生具有很高的学习兴趣,课程受到学生的欢迎,学生反映非常好。
总之,改革计算机组成原理实验中的陈旧内容、教学模式及其实验平台,在实验中引入硬件描述语言、硬件开发工具和技术,是计算机组成原理及课程设计实验今后的发展趋势。
参考文献:
[1]李山山, 汤志忠, 周继群. 基于FPGA的开放式教学CPU的设计与测试系统[J]. 计算机工程与应用, 2005(14): 98-100.
[2]陈天洲. 多核精品课程建设与拓展[J]. 计算机教育, 2008(1): 61-62.
[3]姜晶菲, 肖浓, 王志英, 等. “计算机体系结构”课程建设及改革思考[J]. 计算机教育, 2009(18): 3-5.
[4]杨剑锋, 田茂, 谢银波. “多核架构及编程技术”课程建设[J]. 计算机教育, 2007(12): 82-83.
[5]刘亚楠, 刘卫东, 张小平. THINPAD教学计算机实验平台设计[J]. 实验技术与管理, 2012(11): 115-118.
[6]李山山, 刘卫东. 面向系统能力的计算机组成原理实验实施[J]. 计算机教育, 2015(15): 107-110.
[7]高艳. 基于FPGA模型机的组合逻辑控制器[J]. 实验室研究与探索, 2015(4): 86-91.