基于EDA技术的“计算机组成原理”课程改革研究与实践

时间:2022-09-03 07:06:30

基于EDA技术的“计算机组成原理”课程改革研究与实践

文章编号:1672-5913(2008)08-0027-02

摘要:本文介绍了我院如何将EDA技术引入“计算机组成原理”课程来解决该课程在教学内容和实验教学方面的问题。

关键词:计算机组成原理;EDA;课程建设

中图分类号:G642

文献标识码:B

1存在的问题

“计算机组成原理”是计算机专业一门重要的专业基础课,但现在该课程在教学活动中存在一些问题。

(1) 学习“计算机组成原理”课程有什么用?

现在的学生相对比较浮躁,他们关心的是学这门课程有没有直接作用,对以后找工作有没有用。同时硬件类课程相对都比较枯燥点、难学点,所以他们对这门基础课提不起兴趣,自然也难学好。

(2) 本科教学多个知识点之间存在鸿沟

现有计算机专业学习的课程主要包括“数字逻辑”、“计算机组成原理”、“微机原理”、“微机接口技术”、“汇编语言”、“计算机系统结构”等,各门课程相互之间内容相对独立,缺乏课程间的系统性和科学性,知识点分散独立,学生很难将多层次的硬件和软件知识点融会贯通,也就无法从真正意义上掌握计算机组成原理。

(3) 课程内容组织需要改进

在传统的教学方法中,课程内容的组织一般采用从基本原理->零件->部件->整机->系统的教学思路。但是从实际教学效果来看,由于采用这种“自底向上”的方法,学生在学习前面局部知识的时候,缺乏整机系统概念,不能融会贯通,产生“教什么,学什么”而不知“为什么”的现象。学到整机、系统概念的时候,前面学的知识有遗忘和不能贯通的现象。

(4) 传统实验教学模式存在的问题

“计算机组成原理”课程实验一般采用的是现成的计算机模型实验系统,这类实验系统已将CPU的各个组成部件全部做好,学生按要求连线、拨动开关或编写微程序就能完成实验。该类系统对提高学生的动手能力、提高学生对计算机整体和各组成部分的理解、提高学生的计算机系统综合设计能力有很大帮助。但是在实验过程中,我们也发现这种实验方法局限性较大,器件的扩展相对困难,学生的设计难以突破实验箱的限制。有些学生对实验过程不求甚解,缺乏对实验的主动思考能力,仅关心尽快完成电路连接,对原理电路中功能和工作逻辑并不深究,只是按老师安排好的实验步骤完成实验,而对于步骤的原因及电路结构根本不假思索。这样做实验,根本无法真正做到理论与实际的结合,有时结果出来还不知道是怎么回事,也就很难培养出动手能力强、有创新能力的学生。

2改革方案

我们认为,在“计算机组成原理”课程中引入先进的数字系统设计方法EDA,可以在一定程度上解决上述难题。针对上面的问题,下面分别详述。

(1) EDA技术是电子设计领域的一场革命,目前正处于高速发展阶段,广泛应用于多个重要领域。从目前就业市场反馈的信息看,计算机软件人才已经在一定程度上供大于求,而熟悉硬件设计的人才则供不应求,年薪也远远高于同等的软件人才。掌握这一先进技术在将来工作时更有竞争力,学习也就有了更切实际的目标。在EDA工具的帮助下,学习“计算机组成原理”课程也能在一定程度上摆脱枯燥难学的弱点,增加学生学习的兴趣,从而提高学习的效率和效果。

(2) 为解决这一问题,我们适当拓展“计算机组成原理与结构”课程内容,将该课程作为横跨数字电路课程和软件课程的桥梁,使学生从系统的角度能够对计算机的组成(包括软件和硬件及它们之间的配合)有清晰透彻的理解。例如,在中央处理器、存储系统、指令系统等章节中,讲解基本原理的同时增加采用EDA工具(如QuartusII或Max+plusII)设计过程,从数字电路与非门等基本逻辑电路开始,参考MIPS等指令格式,采用图形输入或硬件描述语言,搭建一个单周期“玩具CPU”,使其支持加、减、转移等多种操作,然后设计自己的程序段,在该CPU上运行,验证运行的结果。很多学生对于这种用基本逻辑电路搭建“玩具CPU”相当感兴趣,也就能够较快地了解和掌握计算机组成的基本原理。

(3) 针对课程的要求和特点,我们提出整体“自顶向下”,细节“自底向上”的教学组织方法。一开始就给出计算机系统的概述,然后讲述现代系统总线标准,通过系统总线连接了计算机的三大组成部分:设备与I/O技术、存储系统、中央处理器。这样可以让学生有非常直接、整体的把握,为接下去学习掌握每一个部分的组成原理奠定基础、把握总体方向。以中央处理器为例,中央处理器通过CPU内部总线,连接了寄存器、控制器和运算器,在讲述具体的运算方法与运算器的时候,涉及到具体细节知识点的时候,我们还是采用传统的“自底向上”的教学组织方法,因为在涉及到具体原理的时候,必须遵循“循序渐进”的方法,不然没有足够的基础知识,学生无法理解与掌握。例如,如果没有数据表示与运算方法的基础,学生不可能理解定点ALU与浮点运算的原理与结构。

(4) 传统的实验箱方法局限性相对较大,器件的扩展相对困难,学生的设计难以突破实验箱的限制。我们将基于EDA的实验技术适当引入“计算机组成原理”实验教学,改变传统计算机组成原理实验“芯片+连线”的做法,投入较少,效率较高。大规模可编程逻辑器件(如FPGA)使得硬件的功能也可通过编程实现,学生可以从简单到复杂,创新自主地设计实现实验内容,改变以往实验仅仅进行部件工作原理验证的模式。我们将设计实现“玩具CPU”各组成部分作为学生实验或短学期实践的内容,利用EDA软件的辅助,从基本逻辑电路的设计出发,进而开发较复杂的数字电路,增加学生学习的兴趣,培养学生的创新能力,提高计算机系统性能的技术和方法,掌握计算机系统设计软、硬件取舍的原则,加深对计算机组织结构的理解。

3基于EDA设计单周期CPU

下面通过设计一个具有三条单周期指令(MOV, ADD, JMP)的“玩具CPU”过程来演示采用EDA设计的过程。

(1) 设计指令。作为演示,指令集只有三条,格式如图1所示。

图1 指令格式

(2)根据指令格式,我们在Quartus II EDA软件辅助下,设计能执行上述三条指令的CPU,逻辑设计如图2所示。

图2 逻辑电路图

(3) 在该CPU的指令存储器中设置以下的程序:

0: 0100010000010(0882h);mov 00010, 000010

1: 0000001000101(0045h);add00001, 00010

2: 1000000001000(1008h);jmp 00000001

这是一段死循环的程序,每执行一次循环,寄存器00001的值加2。通过Quartus II软件模拟运行,pc为当前指令地址,ins为当前指令,观察Res的值,其值依次为2,4,6,8,10…,结果正确。时序图见图3。

图3 时序图

从以上简单的例子可以看到,在EDA软件的辅助下,可以从指令设计开始,非常容易的设计出自己的CPU,并验证正确性。如果在教学过程中,溶入EDA设计过程,将使学生对CPU的组成及工作原理有非常透彻的理解和领悟,同时也巩固了逻辑电路的相关知识。这将对大面积地提高教学质量,增强学生学习兴趣,培养学生的科学素质和钻研能力等都有积极的作用。

参考文献

[1] 白中英. 计算机组成原理[M]. 北京:科学出版社,2000.

[2] 朱子玉,李亚民. CPU芯片逻辑设计技术[M]. 北京:清华大学出版社,2005.

[3] 陈金儿,王让定等. 基于CC2005的“计算机组成原理与结构”课程改革[J]. 计算机教育,2006,(11):33-37.

[4] 王让定等. 汇编语言与接口技术(第2版)[M]. 北京:清华大学出版社,2007.

上一篇:英特尔教育计划在中国之“高等教育计划” 下一篇:编译原理课程实践改革探索