“计算机组成与结构”课程教学中的体会

2009-04-13 04:02郭惠芳赵秋霞何红旗
计算机教育 2009年4期
关键词:教学组织课程设计

郭惠芳 赵秋霞 何红旗

摘要:本文从“计算机组成与结构”课程的内容组织和教学组织两个方面对该课程进行了阐述,针对笔者在教学实践中发现的问题,提出了一些解决方法与体会,在如何保持该课程的经典特色及提高学生学习兴趣方面提出了一些观点。

关键词:计算机组成与结构;教学组织;控制器原理与设计;课程设计

中图分类号:G64文献标识码:B文章编号:1672-5913(2009)04-0092-03

1课程地位和特点

各所大学对计算机专业都制订了各自的学科教学计划,大部分都参考了CC2001或CC2005。CC2001与CC2005是IEEE/ACM分别于2001年和2005年发布的具有指导意义的计算学科本科教学参考计划(computing Curricula)。“计算机组成原理与结构”课程在CC2005中是一门计算机结构与操作系统方面的中级课程,采用精简的、系统的、主题教学方法相结合的教学方法,它是这个方向最基础的重要课程。这门课程不仅在后续课程学习中有非常重要的承前启后的作用,而且在学生以后的职业生涯中也有着非常重要的作用,大部分有关计算机的专业概念都是在这门课程中给出的,它让你学会设计一个复杂的系统应该从哪儿入手。

“计算机组成与结构”课程要求掌握计算机组织和计算机结构两方面的内容,计算机的结构是指那些对程序员可见的系统的属性,直接影响到程序的逻辑执行,包括指令集、数据的表示、I/O机制及内存访问技术。而计算机组织是指实现其结构规范的部件和它们相互的连接,其中包括那些对程序员透明的硬件细节,如控制信号、计算机和外设的接口、使用的存储器技术等。最终目的是达到从系统、整机的角度理解计算机的结构与组成。由于计算机是一个复杂的系统,完整并清楚地描述它本身就是一项非常困难的事,更何况还要求学生不仅要掌握计算机结构的内容,还要掌握重要部件的组成原理与设计方法。所以这门课程的教与学都比较难,是老师与学生比较头疼的一门课。

该课程的特点具体体现在以下几个方面:第一,内容庞杂。“计算机组成与结构”课程,对于计算机各个专业来说都起到一个高屋建瓴的作用,它既要全,又要精,还要细,在内容详略选择等问题上是非常值得推敲的;第二,内容的关联不是特别紧密,比如计算机的各大部件之间虽然相互关联,但由于各大部件本身就足够复杂,在相应章节已疲于内部结构及原理的介绍,而对于相互的联系,很多情况下都涉及更多的实现细节,无法在局限的篇幅中介,所以各章内容显得很零散,系统性不强;第三,很多内容比较抽象,无法直观展现,学生学习过程中较难提起兴趣。

2内容组织

国内的“计算机组成原理与结构”课程一般介绍单处理器计算机的组成原理与结构体系,包括数据在机器中的表示、总线系统、外围设备接口、存储器组织与结构、指令系统、中央处理器(含运算器与控制器)、流水与并行处理等内容。其中重点是数据在机器中的表示、存储器组织与结构、中央处理器等内容。而对外围设备接口、指令系统等只作简单介绍,在后续的“汇编语言与微机接口技术”课程中再作重点介绍。本课程对流水与并行处理也只作简单介绍,其详细内容在后续的“计算机系统结构”中重点介绍。

大家对该课程的基本内容是有共识的,但对于这些基本内容的组织却有比较大的分歧,有些人先讲整机系统以及部件之间相互连接,然后由部件到结构、原理至具体实现;而有些人则先从每个部件的实现原理到结构,再由各个部件相互连接而成整个系统,再到整个系统的结构等等进行讲解。也有一些人讲两种方法进行结合。每一部分内容的组织也有分歧,我们通过多届的教学有一些体会,当然不同老师的观点也不尽相同,这里介绍一下我们对内容组织的考虑,希望与同行们共同探讨。

2.1分章内容安排

一般来说,学生是没有错的。我一直认为,如果一门课不能吸引学生,作为老师,首先考虑的就是自己的教学是否有问题。只要这么去想,教学就会有改善。而教学过程中第一要改善的就是内容的组织。回想学生时代,一门课上过二、三次课后,也就基本确定喜欢不喜欢这门课了,所以一开始的内容组织就非常重要。

计算机如此之复杂,讲解需要有一个引导的过程,如果一开始就讲数的表示,计算等等,学生会觉得很枯燥,不知目的何在。很多教科书也是这样讲的,实践证明,这样的开端效果不好。如果一开始利用一章来足够概括,也足够简明地向学生介绍一下计算机的功能和工作过程,进而引出整门课的内容组织,学生就容易与老师的思路同步,而且对整个计算机有了一定了解以后,自然而然地就会对其中每一部分的工作原理以及设计感兴趣。

第1章是计算机系统导论,首先介绍计算机系统的分级层次的概念,指出本门课程在其中处于什么位置;然后简单地介绍一下计算机硬件的组成及功能、计算机执行程序的过程,进而介绍计算机执行指令的过程。

这样的开端,益处有几条:第一,学生快速进入状态,它与以往课程不同之处在于,我们是研究计算机较为底层的工作原理,是要详细到一条指令是如何执行的。其实以后的各章也是围绕这个问题展开的。第二,学生学习的目标性强,知道每一章节的学习目的。第三,人有探索未知领域的本能,这样的方式容易激发出学生的本能。

第2章是系统总线,它以总线为切入点讲解现代计算机的结构以及各个部件的互连,重点不是为讲总线而讲总线。有些书上大讲特讲各种总线标准,但我认为在这一章我们首先要使学生了解,各个部件特别是CPU和存储器、各种I/O设备之间如何协调工作,CPU为什么要与它们交换信息以及如何交换信息,总线为什么要制订标准等。这些都交代清楚后,再介绍几种典型的总线标准及相关的技术指标。

讲任何一章内容都要使学生了解我们为什么要学习这一章内容,这部分内容对于我们的整体目标有什么作用,然后再往细介绍。

第3章是存储器系统,它包括了主存系统与辅存的基本原理,首先讨论存储系统的特性及它的基本操作及主要技术指标。其中,地址线数、数据宽度、存储周期等概念一定要在此讲清楚。而这些为后面的存储系统的分层及芯片组织打下一个好的基础。有不少学生,直到最后也无法掌握如何用半导体芯片组成一个特定的主存系统。通过调查发现最主要的问题就是前面的这些概念未能搞清楚。芯片的组织是其中一个重点内容,前面的基础概念搞清楚后,用两个例子说明芯片的组织及与CPU的连接的一些原则、方法。带Cache的二级主存系统的工作原理是该章另一个重点,其中包括地址映像、替换算法等:有关辅存的内容可以比较简单,不需详细介绍虚拟存储器的内容,因为这部分内容只有在操作系统中才能讲清梦,而且它的确也不属于硬件的范畴,但Cache与主存之间地址映像却是硬件完成的,所以它属于计算机组织与结构的内容之一。

关于存储器芯片内部如何完成二进制位的存储及读写这部分内容,有一些书中未作介绍,比如William Stallings著的《计算机组织与结构:性能设计》,他在第4章内部存储器中并未对此作介绍。我认为,存储元件如何存储信息,以及地址如何选中相应的存储单元,还是有必要讲解,因为从理解存储器的工作原理这个角度,这种细节如果不作介绍,那么它的原理总是不够完整,所以可在内容上讲清存储信息的逻辑实现即可。

第4章是数据表示及运算方法,主要介绍数的表示、算术及逻辑运算的方法,以及相应硬件实现的基本结构,这部分内容分歧较少。

第5章是指令系统,讨论计算机指令系统的发展历史、指令格式、指令系统设计原则以及RISC指令系统特点等等,这一章为后面的CPU功能及控制器原理与设计做准备。

第6章是CPU的结构与功能,讨论CPU的组成结构,指令周期及指令流水和中断系统。

第7章是控制器的原理及设计,重点介绍指令执行过程中的微操作命令,组合逻辑设计中对微操作命令的节拍安排,微操作时间表等。继而再介绍微程序级设计方法及相关的微操作控制信号的编码技术、微指令顺序控制技术等。

2.2内容的综合及细节的处理

控制器的工作原理及设计方法是本课程的核心,前面讲的每一部分的内容都是为这部分内容的学习做准备的。在这一章,前面所学的知识又综合在了一起,由控制器将各部件的工作过程连接起来,其中指令执行的详细过程是关键,控制器需要发出哪些控制信号来控制这一过程,进而,这些控制信号该在什么样的条件下发出,然后写出每一控制信号的逻辑表达式。要想理解控制器的工作原理及设计方法,必须从组合逻辑控制器设计着手,给学生一个直观的设计过程,这样控制器的设计框架就在脑中形成,而后面的微程序控制器的设计,只是将上述分析得出控制信号进行编码,形成微指令,并存放在控制存储器中,指令的执行过程也就演变为从控制存储器中一一取出相应的微指令执行而已。

虽然微程序控制器的设计已成为大部分复杂计算机控制器设计的主流方法。但从理解角度上来讲,组合逻辑控制器的设计是理解控制器工作原理及设计方法的关键。如果像国内一部分教科书中所讲顺序,先讲控制器功能,进而直接引出微程序控制器原理及设计,最后是硬布线控制器设计,许多学生学了半天,学了编码法,但最终也不知控制器是怎么工作的,整机观念更是建立不起来。

在实践中反复证明的一点是,学习复杂的系统,必须使学习者首先建立整体框架,然后详细了解每一部分,最后再将每一部分综合起来理解。这样就可以将一个复杂系统从上至下地了解清楚。坚决要杜绝的就是,框架建立不起来,却在许多细节问题上反复纠缠。这样很快就使学生对这门课程失去耐心和兴趣。

那么对于许多的细节如何去讲?这是这门课教学过程中一个较难解决的问题,如果能与每一部分连成一体的,就顺着讲下来;如果在逻辑上并没有太多的联系,但又必须交待的内容,比如多字节数据传输与存储时的大端小端问题等可以用每章后的附录形式出现,这样既不影响每一部分内容的连贯性,又照顾了完整性:而讲课时也可在每章后增加一个个小专题来讲,有些内容学生自己看就可以,有一些可用来讨论,形式可多样化。

3教学组织

内容的组织必须配合相应的教学组织,其中包括课前备课、课堂教学、课下辅导以及课程设计等环节。我认为教学改革绝不仅仅是增加一些华而不实的动态效果,或单一地追求讲课时的抑扬顿挫。这些形式上的东西都是为实质性的内容服务的,我们的目标是如何培养出符合现代社会需要的、合格的人才。

3.1课前的准备

从课前准备来说,“计算机组成与结构”是一门经典课。许多老师认为计算机无论如何发展,它的基本原理是没变的,大体来讲这句话是没错的,但这不应成为老师照本宣科的理由。因为爱,老师心中有使命感,有责任感,甚至有危机感。每一学期开始,我都会去认真准备最近TOP500强计算机的资料,一方面让学生了解最新计算机发展状况,了解衡量计算机的几个指标,了解中国与强国的差距,以此唤起听者心中兴趣与使命感。同时涉及计算机的几个重要概念:速度、字长以及规模等。我发现,每次讲完教室里的气氛都很热烈,在接下来的授课中他们就会比较用心。

课前的准备除了内容上的不断更新,还要不断地去揣摩学生的心理和接受能力。学生要想考试得高分,就得揣摩老师的心理,那么同样的道理,老师要想教好书,就得揣摩学生的心思。我一直相信学生是想学知识的,所以我努力去做的就是让他们对此有兴趣,并沿着正确的思路去学。

3.2课堂教学

课前充分的准备为课堂的讲授打下了基础,但有时仍然会遇上学生整体士气不高的时候,这时,我会稍作停顿,说几句题外的话,旁敲侧击一下,在内容安排上,会将一些复杂的、枯燥的内容与简单的、有趣一些的内容交叉起来。上课时充满热情,时时观察学生的状况与接受程度,及时做出调整。有时使用研究的方法,将问题提出来,我也在思考,我与他们同步分析,转换角色,将主角的位置让给他们,让他们大声地说出他们的想法,然后沿着他们的思路走,进而分析问题所在,以及正确的解决方案。这些方法在课堂上是很有效的,学生们是很清楚的,老师投入满腔热忱,他们也会被感染。相反,老师应付差使,他们就很容易随波逐流。

3.3课外的辅导与课程设计

课下的辅导在很多情况下是配合课堂教学的,如果最近上课内容比较难以接受,那么学生在课下会用不少时间来想,如果这时老师未能及时给以辅导,那么大部分学生很容易知难而退,所以要及时与学生沟通,给予适当的辅导与疏导。

课程设计环节,一方面的目标是加深对理论学习的理解,另一方面是为了提高学生自己动手解决问题的能力。在课堂讲授环节就要考虑课程设计的需要,比如知识的准备,以及相应设计方法的学习。所以要想课程设计环节取得好的效果,在相应的课堂教学中,应该做好充分的准备,然后在课程设计中,给以适当的指导,既不让学生产生依赖思想,又不能因为太难而让学生不知所措,匆匆地将实验结果凑出来交差。

4进一步的思考

“计算机组成与结构”课程不是一门孤立的课程,它与系统结构、汇编语言与接口技术以及操作系统课程有着密切关系,“计算机组成与结构”的老师一方面要划分好课程之间的分工,另一方面要充分了解相关课程的内容,在讲课时如果有交叉时需要交待清楚。原本它们都是相互关联的,教学过程中如果能关联是最好的,但不应涉及太深,细节问题在相应课程中讲。

21世纪的计算机科学发展如此迅速,如何根据计算机学科发展以及信息科技发展情况,及时、动态地调整教学内容,及时体现最新发展技术是本课程建设的一个重要方面。比如多核处理器的出现及广泛使用,它对计算机结构课程及组成原理课程的影响是深刻的,如何来表现这一点,是一个值得研究的问题。在该课程中增加操作系统支持专题是否值得?有一些书上介绍了一些,但角度不是很好,作用不大。各门课程将内容割裂,如何再将它们形成一个整体,软件与硬件如何形成一个系统?这些都需要更加深入的思考和实践。对于最近出现的硬件技术,哪些应该增加进来,哪些应该忽略,也是值得大家一起来研究与探讨的。几年一度的国内同行研讨会是非常有益的。

教师绝不是一个轻松的职业,有人说,教师是世界上最危险的职业之一,我深有体会。无论如何努力,我都觉得不够,但我会继续努力。本人经历与水平有限,上述观点肯定有偏颇之处,希望得到同行的批评与指正。

猜你喜欢
教学组织课程设计
“苏州园林:景致与情思”课程设计
“石油及天然气地质学”课程的MOOC课程设计
A Study on the Application of Task—based Approach to English Vocabulary Teaching
谈教师课堂教学的组织技巧
如何提高女生上体育课的兴趣
会计学本科专业审计模拟实验课程的教学设计与组织
唱响教学三部曲,打造高效课堂
经管类跨专业综合实训教学组织的研究
关于完善课程设计教学及教学管理工作的思考