计算机组成原理实验教学方法改进_第1页
计算机组成原理实验教学方法改进_第2页
计算机组成原理实验教学方法改进_第3页
计算机组成原理实验教学方法改进_第4页
计算机组成原理实验教学方法改进_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1/7计算机组成原理实验教学方法改进计算机组成原理实验教学方法改进1概述计算机学科是一门与实践结合非常紧密的课程,纯理论化的教学已经无法满足学生掌握计算机知识以及培养实践能力的需求了。因此,计算机实验课程在现有的计算机教学体系中所占的比例越来越高。该文针对所关注的计算机组成原理课程的教学方法,结合我们自己所开设的组成原理实践课程,针对目前教学中所存在的一些问题,对组成原理的实验课程方法作进一步的改进,使其更符合现在国内教学现状的需求,提高学生的实验效率。CPU实验课程简介我们的CPU实验课程主要目标为指导学生设计出一个符合MIPS标准的CPU。从设计初级的数字逻辑器件出发,到实现一个完整的CPU,然后学生们可以围绕自己设计的CPU编写汇编器、高级语言编译器甚至简单的操作系统1,2。让学生可以完整地了解计算机的运行原理。参与本课程的学生所要实现的CPU使用如表1所示的31条指令,可以覆盖大部分简单程序的需求,其具体功能可以参考MIPS指令手册35。前两个实验比较简单,主要为了让学生能够熟悉整2/7个的开发环境与流程,而且译码器和选择器也是将来在其他实验中所本文由论文联盟HTTP/收集整理需要使用到的部件。从第三个实验开始,学生们将从简到难地一步步实现CPU中的各个部件的设计,并在第七个实验中最终完成一个完整的CPU。实验教学存在的问题TESTBENCH用例不完善我们的CPU实验课程主要是对于硬件的设计,在硬件设计的过程中,TESTBENCH的编写占有着举足轻重的地位。而参与我们课程的学生绝大多数都是第一次接触硬件的设计,并且对于CPU的各个部件并没有一个良好的认识。所以对于这些参与到我们课程的学生来说,有相当一部分学生没有编写完备的TESTBENCH的能力与意识。在遇到相对复杂的模块时,学生们可能无法发现自己设计中的缺陷,这为以后的设计留下了一定的隐患。而且随着工程越来越大时,初期的错误就越来越难被发现。3学生开发机器运行缓慢我们这门实验课是“口袋实验室”,参与到我们这项课程的同学都会将实验板带回宿舍作实验,由于,学生各自的计算机性能并不能完全满足CPU实验的设计需求。特别是随着工程的增大,在生成CPU后仿真的模型以及生成开发板所需的电路文件时,往往需要相当长的时间,并且3/7这个过程在CPU的开发过程中往往需要执行很多次。而在此期间,学生往往只能等待而无法进行课程的学习,这会造成极大的时间浪费,降低学习效率的同时也很有可能增加学生的挫败感。3应用开发效率低下CPU要执行有一定功能的程序才会显得有意义,我们的课程会鼓励学生在自己设计的CPU上开发一些小应用来显示CPU的实用性。我们目前的课程只提供了基于我们课程所涉及指令的汇编器,但对于参加我们课程的学生而言,使用汇编程序编写应用所需要的技巧与经验往往他们都不具备,这增加了小应用程序开发的难度,不利于学生们创意与想法的拓展。在我们的课程实践中,学生们往往都会选择开发一些类似的容易实现的应用程序,造成了应用程序的同质化。3没有统一的评分体系任何课程都要面临的一个考核的问题。如何能够公平客观的评价学生在整个课程中的表现不仅对于参与课程的学生,对于此课程未来的发展都至关重要。目前我们的课程主要依赖学生的自行演示以及助教的手工查看。此方法不仅效率低下,每周都要花大量的时间在实验结果的检查上,而且由于参与检查的人数较多不容易保持评价标准的一致性。4/7目前我们的课程仍处于试验性阶段,参与的学生人数较少,若未来将此课程推广,手工检查的方式将无法满足课程的需求。针对目前教学中的问题的解决方法统一的部件接口和测试平台通过给学生提供统一的部件接口,我们可以为学生提供统一的测试平台。在完成每个部件的编写后,学生们首先可以使用自己编写的TESTBENCH来验证自己设计的正确性,随后再由统一的测试平台来进一步确认部件的设计。这样就可以有效地避免由于TESTBENCH的不完善而造成的部件设计缺陷,提高了每次部件实验结果的可靠性,从而为接下来的实验进程打下良好的基础。4实验结果验证平台统一的部件接口使得自动化测试以及自动评分成为了可能。学生们可以将自己编写的代码提交到我们的测试平台,运行统一的TESTBENCH,通过对比学生代码的运行结果和标准的测试结果就可以为学生们编写的部件提供一个客观合理的评价。我们可以根据学生每次提交的正确率以及最终通过测试所用的提交次数来作为学生每次实验的评价参考。通过这种方法,我们可以不再逐个检查学生的实验结果,不仅可以免去每次人工检查实验结果的时间,也大大提高了5/7每次实验评价的客观性。模拟器我们的课程设计了一个基于部分MIPS指令集CPU的模拟器,其输入可以为自行编写的汇编程序,模拟器的运行的结果可以作为我们CPU运行结果的参照。同时我们课程中还拥有一个31条指令的汇编器,其输入同样为学生自行编写的汇编程序,而输出是二进制或十六进制的机器码文件,该文件可以导入到学生自己的CPU中运行。然后学生可以通过对比MODELSIM的仿真结果与模拟器的运行结果来验证自己所设计的CPU的正确性。我们的课程也提供了一些小程序来帮助学生进行CPU的验证。4综合任务服务器大多数情况下,学生们所使用的PC的性能进行完整的综合与布线任务时往往都会花费很长的时间。我们可以为他们提供一个专门进行繁重计算任务的服务器。学生们可以提交自己的设计到服务器上,通过服务器来生成所需的电路文件,将此文件下载到本地后载入FPGA,完成下板工作。鉴于服务器相对学生PC有着更出色的性能以及统一的工作环境,可以大大节省学生们完成一次设计修改的时间,提高学生们的开发效率。4合理使用C语言开发环境高级语言可以大大降低程序的开发难度,而且通过6/7完善的IDE可以更方便的确保程序的正确性。目前大部分学生所编写的小程序都不会超出我们课程所使用的指令集。GCC编译器在默认的配置下其编译出的MIPS指令集不会超出MIPSI中的所有指令。经过多次测试,在多数情况下编译出的指令多并不会超出我们目前所使用的31条指令。对于那些不在我们31条指令集范围内的MIPSI指令,其中有相当一部分指令是可以使用现有的指令组合来完成其功能的,我们仅需对GCC所编译出的汇编程序进行一定的修改即可使用。这为我们使用C语言编写开发板程序提供了很好的前提。学生们可以首先使用C语言在现有的成熟IDE上进行编程,在验证了程序的正确性后使用GCC将C语言编译为MIPSI的汇编程序,在对编译完成的汇编程序进行一些修改后可以使用我们课程提供的汇编器生成机器码来运行在学生自己设计的CPU上。由于学生们对于C语言的熟悉程度要远高于MIPS的汇编指令,通过合理使用C语言进行编程,可以大大降低学生们编写应用程序的难度。总结对实验进行了诸多改进后,学生们在课程实验中的开发效率得到了明显的提升,这也使得学生们更有兴趣将精力投入到实验课程中。同时,在线平台的引入也减小了7/7开展试验课程的人力投入,打下了推广该实验

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论