计算机组成原理课程整机实习教学改革与实践

2014-10-27 01:11徐爱萍张玉萍涂国庆
计算机教育 2014年10期
关键词:教学实践教学改革教学方法

徐爱萍 张玉萍 涂国庆

摘要:针对开发式CPU设计中存在的若干问题,研究如何充分发挥学生的主观能动性并激发学生的实践积极性的教学方法,分析案例教学与自主设计相结合、时序仿真与硬件调试相结合、实验设计与实习报告相结合、集中指导与自主实验相结合、多种考核手段相结合的教学改革实践,指出这些教学改革方法在实践中取得了较好的效果,对后续计算机组成原理整机实习的进一步完善具有很好的指导作用。

关键词:计算机组成原理课程;整机实习;CPU设计;教学方法;教学改革;教学实践

0、引言

计算机组成原理和体系结构是计算机专业的核心课程,计算机整机实习在该课程的教学中有着重要的作用。这是因为CPU是整个计算机系统的控制中心,也是系统中最复杂的部件。CPU是计算机硬件设计的主要依据,同时CPU指令系统又是软件设计的基础。在计算机专业知识结构中CPU起着承上启下的关键作用,有了CPU的理论基础和设计经验,学生将来无论从事硬件设计还是软件开发都会有很大的帮助。为此,美国、日本和西欧的一些国家在计算机专业课程的教授中加大了这方面的资助力度。美国的许多高校在本科计算机专业中都安排了CPU设计的实验内容,在该课程实践中要求学生自行设计ALU、单指令周期CPU、多指令周期CPU乃至流水线的32位MIPS CPU设计,要求学生用VHDL语言基于FPGA自主实现CPU并完成软硬件调试。然而,我国大多数高等院校在实验与实践方面主要在一些由分离元件构成的实验平台上完成简单模型CPU的验证性实验,没法完成像国外高校那样的自主创新型CPU设计。基于以上问题,目前在我国一流的高等院校开始了基于VHDL和最新EDA技术的开放式CPU设计。近几年,计算机组成原理整机实习主要在Quartus II仿真平台上进行可视化设计与时序仿真,其调试困难、仿真结果不直观,为此笔者开始了基于VHDL的开放式CPU设计,对计算机组成原理整机实习在如下几个方面进行了教学改革和实践。

1、案例教学与自主设计相结合

计算机组成原理课程实验的方法通常有两种:一种是利用现有的计算机组成原理实验仪将CPU的各个组成部件做好,学生只需按书中要求拨动相应开关就能完成实验,这种方法的缺点是不利于学生理解内部原理,由于器件的种类、数量扩展困难,学生的设计难以突破实验箱的限制,因此,验证性实验模式存在着局限性,不能给学生提供自主设计的平台和自由发挥的空间;另一种方法是应用EDA技术,利用Quartus II仿真平台进行开放式的CPU设计,通过模拟仿真或相应硬件资源来直观地观察实验结果。本课程分别采用此两种方法为学生开设部件实验和整机实习,验证性试验主要让学生对计算机的各个组成部分有初步的了解,整机实习则将计算机组成的各个部分组成一个模型计算机,该模型计算机能执行一定的指令系统。我们在整机实习时主要选用汤志忠编著的《开放式实验CPU设计》和潘松编著的《现代计算机组成原理》作为教材,由于书上已有相应代码,而整机实习时间有限,如果让学生把书上代码敲一遍然后调试,既花时间又使学生没有思考空间,调试完后学生也不知道自己如何去设计。因此在实习中我们将书上的代码作为案例拷贝给学生,然后在此基础上设计一套不同的CPU结构或不同的指令格式或不同指令系统的控制器,学生从确定CPU指令系统架构开始,进行指令集、指令格式、寻址方式、数据通路的设计,并且针对自己设计的要求来修改案例代码,在修改过程中学生会遇到很多实际问题,等这些问题逐一解决后学生会恍然大悟,把案例代码变成自己的设计,然后对自己的设计方案进行测试和验证,在CPU设计过程中达到更完整、更深入地理解计算机组成与系统结构的目的。如此,既节省了时间,又达到了培养学生自主设计的目的,提高了学生分析问题、解决问题、硬件语言设计和调试的能力,在巩固学生对计算机组成原理课程理论的学习、熟悉CPU各个功能部件的工作、促进学生的感性认识、培养学生计算机应用能力和创新能力等方面起了积极的作用。在实验中由学生进行自主设计并验证已成为实验的重要内容,是素质教育的发展趋势。

2、时序仿真与硬件调试相结合

基于EDA技术的计算机组成原理整机实习通常在Quartus II仿真平台上实现,可以采取Block Diagram和VHDL的设计方式,两者方法各有利弊,但如果能扬长避短,两者配合使用,必定事半功倍。

CPU设计包括组合逻辑、微程序控制和流水线技术的CPU设计,在设计时要求学生对CPU的几个组成部分分文件夹存放,一般分为寄存器、译码器、多路选择器、运算器、存储器、取指部件、指令译码和执行部件,每个部件都用VHDL来编写,通过自动生成结构图来查找逻辑连接上的错误并单独仿真来测试各个部件设计的准确性。在此以寄存器的调试为例,如图1为寄存器结构图,其中reg00至reg03为4个16位的寄存器;decoder为2-4译码器;mux 4 to 1为4选1的选择器;reset为复位信号;clk为时钟信号;SR[1..0]为源寄存器选择信号;DR[1..0]为目的寄存器选择信号;d_input[15..0]为15位数据输入信号;DRwr为寄存器读写信号,高电平写入,低电平读出;d Output[15..O]为15位数据输出信号。

寄存器的时序仿真波形如图2所示,仿真前先将reset置为低电平来复位各寄存器,然后将DRWr信号置“1”来写入5个时钟周期,最后将DRWr信号置“0”来读出寄存器的值。由图2可见时序仿真有毛刺,读出的数据只能验证其功能的正确性,但仿真过程麻烦而且结果不直观。之前的实验仿真结果证明时序仿真用于CPU的整体调试很难仿真出来。因此,当部件设计分别仿真调试成功后就用顶层文件设计完整的CPU,但对CPU的调试我们采用实验室引进的“WT-1型计算机系统硬件综合实验平台”,该实验平台由CPU核心板、主实验板、扩展板组成,可使学生在本实验平台上搭建一个完整的计算机系统,但必须是用VHDL编写的CPU才能下载到该实验平台上进行调试。endprint

该硬件平台配有相应的调试软件。设计好CPU工程并编译成功后,直接点击QuartusII工具栏上的Programmer按钮,在Mode框中选择默认的JTAG下载方式,确保下载硬件为ByteBlasterlI【LPT1】,如果不是的话,就点击Hardware Setup按钮来设置。完成上述过程后,选中需要下载的sof文件,点击Start开始下载到硬件实验平台上。下载完后打开调试软件,然后分别加载测试程序和规则文件,在调试软件中编译成功后再下载到内存,最后开始调试,通过查看寄存器的值来检测指令的功能是否成功,测试界面如图3所示。执行完“ADD Rl,R2”指令后,RI=0,进位为1(4号寄存器中存放的是进位c)。

时序仿真调试与硬件设备调试相结合的方法较好地完成了整机实习,让学生很好地将理论与实践结合起来,从CPU的设计成功中享受学习本课程的收获、感受本课程学习的价值,调动了学生的学习积极性。

3、实习设计与实习报告相结合

由于实验室机器不足、实习时间有限,我们的整机实习是分组进行的,一般1~4人为一组。虽然分组实验不能让每个同学独立完成实习的整体工作,但培养了学生的团队合作精神,使学生得到了交流学习、互为提高的机会。实习完成后我们要求小组提交实习报告,报告中要求学生谈自己的收获和体会,学生在实习总结报告中表示在开放式CPU设计实验中收获颇丰,既有在系统知识上的巩固与扩展,也有实验方法、团队精神和动手能力的提升。实验的过程中问题一个个接踵而至,学生除在团队内部交流外还和其他小组进行沟通,更复杂的问题就咨询老师,每个问题都考验了他们的集体协作能力,考验了他们解决问题的能力。在实验过程中,由于CPU各部件都是用VHDL(硬件描述语言)编写,分析案例代码是首要任务。但每个单元的接口、引脚单靠源代码难以分析清楚,因此要借助电路图,可以采用QuartusⅡ软件中的RTLVaewer来自动生成电路连接图。该图可以让学生对实验内容的理解起到事半功倍的效果,同时让学生真正学会对知识的融会贯通。另外,在分配引脚时,由于本设计的CPU和案例CPU的输出端口有所不同,因此需要借助实验指导书上的芯片引脚分配,大胆尝试,学生最后成功地分配好了引脚,这让他们明白了实验中敢于尝试是保证成功的基石。总之,对一个CPU的工作流程的整体把握,包括取指、取数、译码、执行等流程,是对计算机组成原理知识的总结和升华,有助于学生加深对EDA这门课程的理解,具有相当大的实用价值。同时,这次实验极大地培养了学生的动脑动手能力和硬件编程能力。CPU开放式实验让学生了解到,实验不仅仅是“自己动手做”,也要“看别人如何做”,并且问“为什么这样做”,也使他们认识到以前所学的知识是零散的,没有整机的概念。通过运用已学的内容去探索未知的知识是一个温故而知新的过程。在实验过程中,学生发现了书本上的理论知识与实际的结果有一些出入,正所谓实践是检验真理的唯一标准,只有通过不断的尝试和质疑、修正及检验,理论才得以可信。小组团结协作完成实验的全部内容,让他们很有成就感。而教师也可以从实践中吸取经验和教训,了解学生的困惑以及教师在指导上的可取之处和不足之处,以便更好地指导以后的实习。

4、集中指导与自主实验相结合

计算机组成原理整机实习任务重、时间紧,集中指导对成绩优秀者一般可以完成,但50%同学尚不能完成。考虑到实习最后的CPU调试需要在硬件综合平台上测试,因此,集中实习之后实验室对学生开放。学生课堂上如果不能完成实验,可以自己安排实验时间,实验室每天有实验员值班,只要在实验课程所开设的学期内完成实验即可。通过开放实验室,学生可以自学到一些实验以外的知识,从而开阔学生的视野、培养学生查阅资料、独立分析问题和解决问题的能力和科研能力。

5、多种考核手段相结合

由于实习是多人一组,有些学生做实验时不认真,等待同组其他同学做,在最后评分时不好区别,成绩的公平性会影响学生的积极性。因此,在实习过程中我们采取多种考核方法。首先每天检查各组的实验情况,检查过程中记录下每小组各成员的进展情况作为平时成绩,占总成绩的30%;实习最后一天让每个学生汇报整体CPU设计的结果,汇报情况作为设计成绩,占总成绩的40%;评阅实习报告作为报告成绩,占总成绩的30%。总体实验成绩不能偏低,以激发学生的实际动手积极性,经过切实参与指导和考察,90%做到了公平考核,对提高学生对整机实习的兴趣起到了重要作用。

6、结语

该设计基于Altera最新推出的Cyclone系列FPGA硬件平台和Quartus II工具软件,从最基本的部件至整个宏观系统,全部用VHDL设计并实现于一个单片FPGA中,同时利用平台提供的高效软硬件调试和测试工具优化设计,而在实现方面利用HardCopy技术来完善设计。这一切在传统的教学内容、实验模式和实验手段上是没有的,是对传统计算机组成原理整机实习的彻底改革,使学生在了解计算机组成原理和软件设计技术的同时,学会了计算机硬件设计技术,提高了自主创新能力。endprint

猜你喜欢
教学实践教学改革教学方法
基于gitee的皮肤科教学方法研究
《计算方法》关于插值法的教学方法研讨
《计算方法》关于插值法的教学方法研讨
小学语文字理教学方法探析
中职计算机应用课程教学改革与反思
浅论高中化学生活化教学的实践与思考
浅谈初中物理实验教学与学生创新能力的培养
测量平差课程教学改革探讨与实践
基于人才培养的技工学校德育实效性研究
现代信息技术在高职数学教学改革中的应用研究