计算机系统结构方向范例6篇

前言:中文期刊网精心挑选了计算机系统结构方向范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。

计算机系统结构方向

计算机系统结构方向范文1

关键词:计算机系统结构;课程体系;教师团队;教学改革

1 计算机系统结构课程体系

计算机系统结构课程体系组又称硬件组,普通高校计算机的学生对硬件课程都存在或多或少的抵触心理,原因主要有3个:1)硬件课程比较抽象,不容易理解,不像软件语言课程直观;2)学生认为计算机专业就是编程,学习硬件课程没有用;3)硬件课程的实验环境不容易建立和维护,导致相关实践环节实施时不能达到预期目标。针对计算机系统结构课程体系在教学中存在的问题,我们按照课程先修顺序、社会需求,以及从理论到应用的顺序,对计算机系统结构课程体系中的课程进行合理安排。

1.1 专业基础必修课程

计算机系统结构课程体系所涉及的专业必修课程是计算机专业学生的基础课程,通过这些课程的学习,学生将掌握计算机的基本组成和工作原理,并为计算机应用打下基础。同时,我们也注意到,这些专业基础课程理论性较强,内容抽象、不易理解,课程大多开设在大学阶段的前期。

数字逻辑电路是计算机专业计算机系统结构课程体系的第一门课,该课程的学习目的是使学生掌握从数字系统到集成电路实现所需逻辑功能的整个过程的完整知识,作为必修课程,开设在大一第二学期。计算机组成原理是计算机专业的核心专业基础课程,本课程使学生掌握计算机原理的基本知识,为下一步学习计算机体系结构奠定基础,并能对当前计算机的最新研究、发展与应用趋势有一般性的了解,作为必修课程开设在大二第一学期。汇编语言课程是解决CPU级编程的问题,使学生掌握CPU级语言的特点、编程方法和基本技能,为深入学习后续课程和从事有关计算机硬件、软件方面的设计打下基础,作为必修课程开设在大二第二学期的上半学期。微机原理与接口技术课程以PC机及其兼容机中最常用的80×86系列为主线,讲述微型计算机与接口的实现技术,作为必修课程可与汇编语言并行开设在大二第二学期。这两门课程安排在同一学期,有利于学生掌握。通过两个学期的实践,学生对汇编语言的掌握和应用,以及微机原理的接口应用能力大大提高。计算机系统结构讲述计算机体系结构,着重介绍软、硬件功能分配以及如何最佳、最合理地实现软、硬件功能分配,作为必修课程开设在大三第一学期。

1.2 专业应用选修课程

在大三第一学期结束后,学生已学完计算机专业硬件和软件相关基础课程,具有一定的计算机应用和开发的能力。从大三第二学期开始,计算机系统结构课程体系将面向计算机应用开设两门任选课程,它有利于学生就业,缩短学校到社会的过渡时间。

单片机原理及应用课程以MC-51系列单片机为基础介绍硬件和软件的组成,以及程序设计技能。为将来步入微计算机的信息处理和测控系统领域的学生提供一个基础平台,作为任选课程开设在大三的第二学期。嵌入式系统及其开发课程使学生了解嵌入式系统结构和嵌入式系统开发的相关技术,掌握其软硬件设计方法,提高学生的嵌入式系统开发能力和经验,建议作为任选课程开设在大四的第一学期。

2 教师团队的建立

为了提高教学质量,提高教师教学水平,我们建立了计算机系统结构课程体系教师团队,并为每门课程设置一名首席教师,并配备2~4名主讲教师。教师团队建立后,每星期举行一次教学活动,提出授课中存在的问题,讨论学生的接受能力,最后给出先修课程和后续课程的调整方案。实践证明,教师团队的成立提高了教学质量,受到广大师生的好评,结合教学的相关教学教研项目逐渐增多。反过来,相应的教改项目的实施又促进了教学质量,形成了教学效果的良性循环。

3 教材的选择

众所周知,教材直接影响教学效果和教学质量。计算机系统结构课程体系抽象、难懂,其课程教材的选用一直是我校计算机专业教学中的一个重要问题。由于计算机专业的学生普遍认为自己将来的就业方向是软件开发,所以,不重视硬件课程体系中的课程。因此,如何有效选用计算机系统结构课程体系的教材成为教学的一大难题。下面,我们以计算机系统结构为例介绍教材的选择。

3.1 国内外同类教材优缺点

目前,国内的计算机系统结构教材主要由国内一些重点大学的专家编写,教学对象为重点大学计算机专业本科生,同时,作为研究生的参考书。从近年我校以及我省其他普通本科院校计算机专业学生使用上述教材的效果看,这些教材存在以下一些问题,如书中理论概念过多,部分内容过时,对体系结构新进展介绍不多,上述问题导致学生缺乏学习兴趣,教学效果也不理想,不太适合普通二本院校计算机专业学生使用。

3.2 自编教材情况

为了改变计算机系统结构课程教学在普通二本院校计算机专业学生中存在的上述问题,我们经过调查论证、搜集素材,并与本省其他院校协商,结合授课教师切身体会以及学生在学习本课程时遇到的普遍性问题,编写了适合普通二本院校本科生学习的计算机系统结构教材。

自编教材《计算机系统结构》2009年7月由清华大学出版社出版,该教材在遵循教育部计算机系统结构课程教学大纲基础上,采用“量化研究方法”,系统讲述了现代计算机系统结构的基本概念、基本原理、基本结构和基本分析方法,以及当前系统结构领域的主要进展。摒弃了目前传统教材中已经过时的理论知识,精简了授课内容,突出了重点难点,较好地适应了普通二本院校计算机系统结构课程教学需要。

该教材内容编排大体是按照计算机系统结构的发展历程,即冯・诺依曼体系结构一改进的冯・诺依曼体系结构――非冯・诺依曼体系结构这条线索。以经典冯・诺依曼体系结构(第2章)为基础,介绍现代通用计算机系统结构的基本概念、基本原理、基本结构和基本分析方法以及和相关领域的最新研究成果,内容主要包括数据表示与指令系统设计(第3章)、存储系统(第4章)、输入输出系统(第5章)、流水线技术(第6章)、并行处理机技术(第7章),以及计算机系统结构进展(第8章)。

参加该教材编写的人员来自不同本科院校,均为担任计算机系统结构课程的主讲教师,该教材在着重论述体系结构的基本概念、基本原理、基本结构和基本分析方法的基础上,强调量化的分析方法,使学生能够能更具体、实际地分析和理解计算机体系结构。教材内容选择上不再覆盖整个系统结构,而是重点论述现代大多数计算机都采用的比较成熟的思想、结构和方法等,通过大量的实例分析,深入浅出地阐述计算机体系结构所涉及的各个方面内容。在结构上,强 调从总体结构、系统分析这一角度来研究计算机系统,将计算机组成原理、数据结构、操作系统、汇编语言程序设计等课程中所学的软、硬件知识有机地结合起来,从而使学生建立起计算机系统的完整概念,教学效果良好。

4 开放式的教学模式

计算机系统结构课程体系强调培养学生的综合能力,强调知识、能力、素质的协调发展,传统单一的课堂知识传授已经不能满足学生的要求,而相关课程本身存在理论性强、抽象难懂的特点。所以,我们在传统教学模式的基础上提出开发式教学方式,以提高学生探究能力和学习兴趣。开放式的教学模式主要包括以下4个方面内容。

1)汇聚师生共同力量,提高现代化教学介质课件的质量。

传统的课堂教育是教学模式的基础,在首席教师主持下,发挥教师团队的力量,利用现代教育技术和信息技术,开发符合学生接受能力的高质量教学课件。例如,通过动画形象生动地演绎课程中抽象难懂的概念和原理。此外,发动学生参与课程网站建设,在师生间建立互动链,提高学生自主学习的积极性。

2)根据先修课程内容,实施启发式教学。

课程讲授采用启发式教学。计算机系统结构课程体系中的各门课程之间存在联系,在授课过程中,我们要利用先修课程的内容启发当前课程中的内容,以便于学生理解,同时,提高学生的综合能力。例如,讲授计算机系统结构中“指令集优化”章节时,先让大家回忆汇编语言中80×86型计算机的指令集的条数,然后,提出计算机的指令条数和格式如何确定,最后,层层深入,给出计算机系统结构针对指令集研究的内容和解决方法。又如,讲授计算机系统结构中操作码优化的章节时,结合数字逻辑电路中的逻辑设计,分析不同编码方式的优缺点和采用扩展的Huffman编码理由,以及计算机如何辨析不同的操作码,以便加深学生理解。

3)开展多样化教学方式,提高学生自主学习的兴趣。

从提高学生自主学习兴趣出发,以课堂讲授为主,采用学生讲课、小组讨论和专题报告等多样化的教学方法。例如,针对计算机系统结构中现代非-冯,诺依曼结构的新发展,举行专题报告,每个小组讨论一种结构,通过参阅各种参考资料和网上资源对所分配的专题开展自主学习、交流、讨论和研究,最后,各小组分别进行专题讲座,多样化的教学方式培养了学生的综合能力和创新能力。

5 加强课程实践环节,与社会需求接轨

计算机系统结构课程体系的实践性很强,实践环节是整个教学过程中的重要环节,也是学生对理论知识进行内化和升华的重要手段。然而,计算机系统结构课程体系所要求的实验环境不易建立和维护,实验题目不易选取。因此,大多数高校计算机系统结构课程的实践流于形式,不能真正提高学生综合能力和利用所学理论知识解决实际问题的实践动手能力,也不能培养和锻炼学生的自主开发的创新能力。针对计算机系统结构课程体系实践环节中出现的问题,我们给出以下几点建议。

1)调整验证性与综合性和开发性实验比例。

增加综合性和开发性实验的比例。计算机系统结构课程体系中的所有课程都有实验课,而大多数实验项目为验证性实验,综合性和开发性实验项目比例较少。在实验过程中,由于验证性试验的软件和硬件为现成的,学生不能进行硬件的设计,同时,又没有能力进行软件的编写,大部分学生将实验当做任务来完成,创新能力得不到发挥。因此,在验证性实验的基础上,我们要加大综合性和开发性实验的比例,最大程度地发挥学生自己的能动性。

2)结合教学内容,选取实际对象作为项目来源。

增加综合性和开发性实验的比例必须有适合学生开发的实验项目。如果实验项目过难,学生将失去做实验的信心;如果实验项目偏容易,实验就失去了其综合性和开发性的本质;因此,项目应来源于生产活动,是相对完整和相对独立的事件,与企业实际生产过程或现实使用有直接的关系,具有一定的应用性。例如,设置单片机实验项目――“声控灯”,既能将理论知识和实践技能结合在一起,又能调动学生解决问题的兴趣。

3)以学生为主体,充分发挥教师的协助作用。

在教学过程中,要充分发挥学生的主动性和创新精神,让学生根据自身行为的信息来实现自我反馈,同时,也不能忽略教师的指导作用。例如,在项目的选取上,师生要共同参与,教师要启发学生去主动发现身边的素材,选择难度适合的实验项目。

6 结语

通过两个学期的实践,我校计算机系统结构课程体系教学取得了良好的教学效果,首先,从学生角度看,将计算机底层的硬件基础课放在大学生在校教育的前期,有利于学生掌握基本原理和基本知识;应用性强的课程放在后期,有利于学生与社会需求的接轨。其次,从教师角度看,将计算机系统结构课程体系的教师组织起来建立教师团队,有利于教学效果的提高,便于教改活动的组织。适当的教材选取,可以调动学生的学习积极性。同时,优质的教学课件和多形式的教学模式,将课堂教学变得生动、形象,把过去的“重教轻学”的教学模式转向“师生互动”的教学模式。将学生被动听讲的课堂变为鼓励学生主动参与讨论,引导学生积极探索,以提高学生素质。最后,实践环节的改革能使学生将硬件课程内容融会贯通,合理的实验项目设置充分调动学生学习的积极性。

[1]李彩虹,屈志毅,刘刚,等.“计算机组成原理”实验课教学模式探讨与实践[J].高等理科教育,2006(2):74-75.

[2]张军利.微机原理课程教学中开放性实验的作用和意义[J].云南大学学报:自然科学版,2008(2):437-438.

计算机系统结构方向范文2

[论文摘要]本文针对《计算机系统结构》课程的特点,讨论在教学过程中采用“引导”的方式进行教学,树立明确的学习目标,多种教学方式相结合,注重能力培养,努力提高教学质量。

一、引言

《计算机系统结构》是计算机学科体系的一门重要课程,它是以算法为核心,语言为描述,硬件和软件作为实现工具的互为联系又互为制约的结构技术。课程以计算机系统结构中硬中有软、软中有硬、相互转换、彼此渗透的观点,从原理、结构和实现技术等方面系统地对现代计算机的并行处理进行深入的分析和探讨,使学生建立起“整机”概念,培养其具有一定体系结构技术的应用能力。“计算机系统结构”涉及到多门其他专业课如《数据结构》、《计算机组成原理》、《操作系统》的知识,是一门综合性很强的课程,非常典型地体现出计算机学科互相融合的特点。通过该课程的学习能够提高学生系统思维和综合分析的能力,努力提高这门课程的教学质量有着重要的意义。

由于“系统结构”内容抽象,不易理解,且目前各高校在该课程的教学中实践环节的设计都比较薄弱,有的院校甚至没有安排实验,因此难以激发学生的学习兴趣,教学难度比较大。因此,需要在目前的教学条件下,综合应用多种教学方式和手段,引导学生积极思考和自主学习。

二、课程教学改革总结

(一)课程教学改革的基本思路

教学过程中教师不单要教会学生课程的知识,更重要的是教会学生如何思考,如何进行创造性思维。具备了创造性思维能力,学生不仅可以学会教师传授的知识,而且能够触类旁通,举一返三,在自身的思维实践中获取更多的知识。教师为学生服务,以培养学生的能力为目标。在师生角色上,教师是主导,学生是主体,主要采用“引导”的方式进行教学,把学习的主动权交给学生。

(二)课程教学内容的安排

以教学大纲为根据安排本课程内容,着眼于有关计算机系统结构的基本概念、基本原理、基本结构和基本分析方法,同时适当介绍近几年来系统结构的重要进展和今后的发展方向。课程选择西安电子科技大学出版社出版的《计算机系统结构》(第四版,李学干编著)作为教材,该书曾获得国家级优秀教材一等奖和优秀教学成果二等奖,内容丰富,配有学习指导和大量习题。

本课程的主要内容包括:计算机系统结构的基础理论、数据表示与指令系统、输入输出系统、存储体系、重叠与流水和并行处理机等。以前面五个部分为重点教学内容,讲解时注意与先修课《计算机组成原理与数字逻辑》的衔接,特别要体现出“系统结构”侧重于设计方法和设计思想的描述这个不同点。

(三)课程教学手段的运用

(1)树立明确的学习目标

在课程正式开始之前先对“系统结构”的主要内容、学习重点和基本学习方法作一个总体性介绍,使学生对该课程有一个大致的认识;在课程的每一章开始讲解之前,首先也要明确指出这一章的学习目标,让学生把这个目标贯穿在学习过程中。例如,第一章系统结构的基础理论就是要抓住系统结构的基本概念、系统结构、组成与实现的关系以及软硬取舍的基本原则、计算机系统的设计思路;第四章存储体系的学习目标就是要理解虚拟存储器和高速缓冲存储器的管理方式与原理。如此,学生学习的目的更加明确,更容易抓住学习的重点。

(2)多种教学方式相结合

课堂教学宜采用多媒体教学与传统板书教学相结合的方式。多媒体教学无疑是目前高等院校普遍采用的优秀教学手段,以其形象的图文与特效演示对于加深学生理解知识点很有帮助;而传统板书教学也有其适用的场合,比如在介绍指令系统操作码的哈弗曼编码、发生中断时程序的运行过程以及流水线时-空图画法时就应该采用板书来演示,这样不仅能与学生有良好的互动,还能够更清晰地讲解知识要点。

另外,课外时间可以充分利用网络来强化教学效果,比如,利用论坛教学课件、提供阅读资料,利用电子邮件进行答疑辅导,这些对拓展学生的知识面、提高教学效率很有好处。

(3)启发式教学,注重能力的培养

“系统结构”是一门理论居多的课程,单向灌输算法思想必然不利于知识的掌握。授课时应多采用设计提问,启发思维的教学方法,引导学生自己去发现问题、分析问题和解决问题。

在教学工作中,还要注意培养学生良好的学习方法和自学能力。引导学生在学习过程中不断总结自己的学习方法,学会运用各种手段来获取知识,例如,可以布置学生课外通过查找资料完成有关“系统结构”最新发展的小论文。

三、课程教学改革实践案例

(1)堆栈型替换算法原理的教学案例

在存储体系这一章中,虚拟存储器替换算法的实现是教学的重点,同时也是难点。如果按照教材内容编排的顺序,直接给出抽象的逻辑表达式介绍堆栈型替换算法的定义,势必不利于学生对算法的理解。取而代之,先举出实例,比如使用lru法对页地址流进行一次堆栈处理,从处理结果总结出主存页数与命中率的关系,由此来说明命中率随主存页数的增加而单调上升,至少不会下降[1],具有这种特性的算法就称为堆栈型替换算法。此时再引出逻辑表达式,将表达式的各个部分与实例相对应,进行归纳,给出堆栈型替换算法的定义,这样,学生就顺理成章地理解了算法的内涵。从教学效果来看,绝大部分学生能够准确地掌握该替换算法的涵义和替换过程。

(2)改进指令系统的教学案例

在数据表示与指令系统这一章中,介绍指令系统设计和改进的两个主要方向时,cisc和risc是一对需要学生重点理解的概念。前者是按增强指令功能的方向发展指令系统,而后者是按简化指令功能的方向改进指令系统。学生应该了解两者设计思想有哪些不同点,cisc和risc分别采用哪些基本技术,有哪些典型的应用,它们分别存在哪些不足和问题,为什么说今后的发展应是cisc和risc的结合。为了说明这些问题,可以让学生自己去查找实例资料,了解ibm 370、intel i486、ibm6150、intel i860这几个处理机采用的技术,让他们自己去分析查找答案。通过这种教学方式,不仅加深了学生对知识的理解,而且提高了他们查阅资料的能力。

另外,其他章节也有可以扩展的问题,比如,第7章多处理机的讲解可以结合目前热门的多核处理器,这两者的主要问题是一致的;更进一步地,可以让学生去了解单芯片多处理器(cmp)与同时多线程处理器(simultaneousmultithreading,smt),这两种体系结构可以充分利用指令级并行性和线程级并行性,从而显著提高性能。

四、结束语

《计算机系统结构》这门课的内容可分为两个部分:第一是介绍计算机系统的基本组成,第二是分析提高系统性能的方法。把握好这两个方面,学生理解和掌握系统结构就容易得多。在教学过程中,合理安排进度,明确学习目标,采用多种教学方式,与实例紧密结合,积极引导启发,使枯燥的理论知识变为形象的感性认识,提高学生学习的兴趣,可取得较好的教学效果。

计算机系统结构方向范文3

关键词:系统观;能力培养;教学改革;计算机系统

从1946年第一台电子计算机ENIAC(Electronic Numerical Integrator And Computer)诞生到现在,计算机的发展经过了大型机时代(Mainframe Era: 1950s-1960s)、小型机时代(Minicomputer Era: 1970s)、个人计算机时代(PC Era: Mid 1980s-Mid 2000s)和后PC时代(PostPC Era: Late 2000s)。计算机教学模型机也经历了从大型机、小型机到PC的过程。通常,课堂教学内容比业界技术要滞后几年。20世纪80年代初,基本以IBM 360/370或DJS 200系列等大型系列机为模型机;20世纪80年代中后期开始,则以VAX 11/780等小型机为模型机,并同时开设以IBM PC为模型机的“微机原理与接口技术”课程,到21世纪开始,基本上都转入了以Intel x86或PowerPC或MIPS等微处理器为模型的教学模式。

随着多核/众核处理器、嵌入式和云计算技术的发展,以及大规模数据中心(WSC)的建立和个人移动设备(PMD)的大量普及使用,计算机发展进入了后PC时代。呈现出“人与信息世界及物理世界融合”的趋势和网络化、服务化、普适化和智能化的鲜明特征[1]。

那么,后PC时代的计算机专业教学应该如何改革?计算机专业教育的核心应该是什么?计算机课程的教学内容应该如何调整以适应新的发展需求?这些都是我们从事计算机专业教学的大学老师们应该思考的问题。本文将从计算机专业人才培养的目标、目前我国大学计算机专业教育存在的问题、南京大学在学生系统能力培养方面的新举措等几个方面阐述笔者的思考及初步探索。

一、计算机专业人才“系统观”培养的重要性

图1描述了计算机系统抽象层的转换。从图1可以看出,计算机系统由不同的抽象层构成,“计算”的过程就是不同抽象层转换的过程,上层是下层的抽象,而下层则是上层的具体实现。计算机学科主要研究的是计算机系统各个不同抽象层的实现及其相互转换的机制,计算机学科培养的应该主要是在计算机系统或在系统某些层次上从事相关工作的人才。

计算机系统由各种硬件和各类软件采用层次化方式构建,不同用户工作在不同的系统结构层,如图2所示。

从图2可看出,计算机用户有最终用户、系统管理员、应用程序员和系统程序员。显然,计算机专业培养的主要应该是设计和研制计算机的计算机工程技术人员以及系统程序员、应用程序员和系统管理员。不管培养哪个层面的计算机技术人才,计算机专业教育都要重视学生“系统观”的培养。

所谓“系统观”,笔者认为,就是指对计算机系统的深刻理解。具有“系统观”的人才,能够站在系统的高度考虑和解决应用问题,具有系统层面的认知和设计能力,包括对软、硬件功能进行合理划分、对系统不同层次进行抽象和封装、对系统整体性能进行分析和调优、对系统各层面的错误进行调试和修正、对用户程序进行准确的性能评估和优化,以及根据不同的应用要求合理构建系统框架等能力。

图2 计算机各类用户所在层次

特别是在后PC时代,并行成为重要主题,培养具有系统观的、能够进行软/硬件协同设计的软/硬件贯通人才是关键。而且,后PC时代对于大量从事应用开发的应用程序员的要求也变得更高。首先,后PC时代的应用问题更复杂、应用领域更广泛;其次,要想编写出适合各类不同平台的高效程序,应用开发人员必须对计算机系统具有全面的认识,必须了解不同系统平台的底层结构,并掌握并行程序设计技术和工具。

只有具备“系统观”,计算机工程技术人员才能够设计研制出性价比高的适合特定应用需求或通用的计算机,系统程序员才能编写出适合于底层硬件架构的易于上层应用程序员或系统管理员使用的系统软件,应用程序员才能最合理地利用底层硬件实现机制和系统软件提供的相应功能编写出性能最优的应用软件,系统管理员才能配置出最佳的系统环境并提供最好的系统维护和系统管理等方面的服务。

二、我国大学计算机人才“系统观”培养的现状

为了更好地了解国外大学计算机专业人才培养的情况,笔者对MIT、UC Berkeley、Stanford和CMU等4所美国一流大学在相关课程方面教学情况进行了跟踪调查[2]。我们发现,中美大学在计算机专业人才培养及课程教学方面存在许多不同。

首先,从课程设置上来说,上述美国四校在学完编程语言及其程序设计课程后都开设了一门关于计算机系统的基础课程,而且在课程内容上特别注重在计算机系统各个抽象层上的纵向关联,沿着一条主线,把每个抽象层都串起来,从而使学生形成完整的计算机系统概念。而国内大学计算机专业课程设置,基本上是按计算机系统层次结构进行横向切分,自下而上分解成数字逻辑电路、计算机组成原理、汇编程序设计、操作系统、编译原理、程序设计等课程,而且每门课程都仅局限在本抽象层,相互之间几乎没有关联,学生对整个计算机系统的认识过程就像“盲人摸象”一样,很难形成一个对完整计算机系统的全面认识。虽然国内高校也有计算机系统概论、计算机系统入门或导论之类的课程,但内容广而不深,什么都讲一点,什么都讲不透,基本上是计算机课程概论,而不是计算机系统概论。

其次,美国四校都采用了分流培养模式,都设置了偏硬件或计算机系统的专业或方向。例如,有电子工程(EE)、电子与计算机工程(ECE)、计算机工程(CE)和计算机系统等专业或方向。而目前国内大多数高校都只有一个专业,即计算机科学与技术,专门分出ECE、CE和计算机系统方向进行人才培养的学校很少。国内绝大多数高校只能培养应用程序员,而且是对计算机系统底层知之甚少的应用程序员。

最后,美国四校在计算机系统入门课后面都开设了关于数字系统设计的课程,课程内容涵盖了数字逻辑电路和组成原理两门课的基本内容,并要求学生用EDA方式设计相对完整的流水线CPU,而且都是由EE(ECE)部门开设,但并不要求所有学生都学,通常是偏硬件类的EE、ECE、CE和计算机系统方向的学生必学,其他方向学生选修。反观国内绝大多数高校,基本上都是先上数字逻辑电路(有些合并了一些模电内容)课程,然后上组成原理课程(有些组成原理课程上的是微机原理与接口的内容),而且这两门课程基本上都是所有学生的必修课程,并没有考虑不同方向学生对于计算机底层硬件知识和硬件设计能力的不同需求。目前国内大多数学校的组成原理课程教学基本上还是沿用传统的教学理念,教学内容还停留在计算机硬件的基本构成和基本设计原理层面,既不像国外的数字系统设计那种硬件设计课程,能够让学生真正了解如何用硬件描述语言通过FPGA来设计现代计算机硬件系统;也不是一门关于计算机系统的入门课程,能够让学生全面地理解整个计算机系统的实现机理。因此,目前国内绝大多数高校的组成原理课程的教学,既没能达到培养学生利用现代化工具进行实际硬件设计的能力,也没有让学生学会运用机器底层硬件和系统结构知识来增强高效软件开发和程序调试的能力,更没有通过该课程让学生建立起计算机软、硬件系统的整体概念。

总之,国内大学计算机专业教育在“系统观”培养方面还存在一些问题,这点从近五年来全国计算机专业研究生入学考试的抽样结果可以得到印证。2009年开始,计算机专业的研究生入学考试采用全国统考方式,计算机专业基础综合统考科目包括数据结构、组成原理、操作系统和网络四门课程,总分为150分。五年来的抽样结果显示,全卷平均分每年仅在60~78之间,试题统计难度(单选题的试题难度指答对人数/总人数,综合应用题的试题难度指样本平均分/该题总分,最终难度为加权平均值)仅在0.41~0.52之间,其中组成原理最低,特别是其综合应用题的难度仅在0.181~0.440之间,五年共10个综合应用题,只有两题的难度达到了0.4以上,说明所有考生平均仅掌握所考内容的大约30%左右,有的方面只有20%不到,也即考生们对绝大部分综合应用能力考核内容都没有掌握。从抽样省份来看,前三年抽样的大多是高等教育水平比较高的地区,可想而知,全国的抽样数据应该更差。近五年的综合应用题抽样数据表明,试题统计难度与解题涉及的知识点个数相关性较大,通常涉及的知识点越多得分越差,说明学生的综合应用能力较弱,平时缺乏对相关知识和概念关联性的思考。

根据近年来对全国研究生计算机专业基础综合统考科目考试成绩的抽样调查结果,可以看出国内大学计算机本科专业存在“轻应用、缺关联、少综合、无系统观”的问题[3]。

三、国内大学相关教学改革概况

目前,越来越多的高校发现计算机专业基础课程教学中的一些问题,开始注重学生的系统能力培养,强化学生的“系统观”。

目前为止,已经有一些高校以MIPS为模型机,对数字系统设计的相关内容进行了深入的讲解和实践,也有一些高校同时把CPU设计与操作系统和编译的内容融合起来进行实验课程的开设。浙江大学多年来每年在暑假都会开设有关CPU及其计算机系统设计的选修课;东南大学也专门开设了面向所有学生的计算机系统综合实验课程;北京航空航天大学从2006年开始筹划,花了5年时间实现了突破,在相关的数电和组原、OS及编译原理课程中逐步让学生完成一个完整计算机系统的设计;清华大学目前也已经完成了计算机综合实验平台的所有软、硬件部分的开发,准备在所有本科生中开设计算机系统综合实验课程。此外,中科大和国防科大等高校也一直在实施本科生的计算机系统设计能力培养计划。可喜的是,一些非重点高校的任课老师也在组成原理课程的教学及其相关实验中,引入了以MIPS为模型机的 CPU设计的教学和实验内容。

另一方面,像复旦大学软件学院和上海交大软件学院等则开设了与CMU的CS 213类似的课程[4],北京大学也在去年全盘引入了CMU的CS 213课程教学内容。但是,总的来说,目前在国内全面开展像CMU的CS 213那样的课程教学困难还不小,对任课教师和学生来说都是一个不小的挑战。

四、南京大学相关教学改革思路和做法

根据对计算机相关领域目前发展情况的分析以及对国外一流大学计算机相关专业教学情况的调查,我系在新的2013版教学计划中,实施分流培养机制,提供了计算机科学、计算机系统、计算机应用、软件工程和信息安全五个方向。

在“系统观”培养方面,其基本培养目标为:建立计算机系统完整概念,深刻理解计算机系统的层次化结构。包括:理解计算机系统中各个抽象层之间的相互转换关系,了解计算机指令集体系结构的设计原则和设计原理,具备使用HDL进行计算机硬件设计的基本能力,深刻理解OS和硬件之间的分工和衔接关系,理解掌握从硬件角度出发进行编译优化的基本技术,深刻理解从硬件角度出发编制高效程序的基本原理,提高利用硬件知识进行程序调试的能力。特别对于计算机系统方向的学生,在系统能力方面则要求更高,在CPU设计、体系结构、操作系统、编译技术和并行处理技术等方面都有相应的实践要求。

在2013版教学计划中,重新规划了相关的一系列课程,并采用以下思路对相关课程进行重新建设:(1)根据系统能力培养总体目标,规划好相关课程各自涵盖的知识结构和框架体系,合理定位各门课程的教学目标,把每个知识点落实到具体课程中。(2)根据相关知识点总体框架,拟定各个相关课程之间知识点衔接方案,并且在教学过程中明确各知识点在不同课程之间的关系。(3)根据规划分头编写或修订教材及教案,并在统一的框架下建设相关课程。(4)在保留各课程独立实验平台的同时,构建一个公共实验平台,使相关课程的实验内容按照一定的关系有机联系起来。

2013版教学计划中有一组课程是所有方向学生都必修的学科平台准入和学科平台准出课程。学科平台准入课程是指转系学生只有选读并考试合格后才有资格转入我系学习的最低门槛课程;学科平台准出课程是指学生只有修读合格后才能从我系毕业的最低门槛课程。

与系统能力培养密切相关的准入课程是“程序设计基础”和“数字逻辑电路”;而与系统能力培养密切相关的准出课程是“计算机系统基础”、“操作系统”和“计算机网络”。

每个方向有几门方向必修课程和方向指选课程。方向必修课程是该方向学生必选的方向基础课程,方向指选课程是为该方向学生指定的选课范围内的方向相关课程。例如,对于计算机系统方向,其方向必修课程是“计算机组成与设计”、“计算机体系结构”和“编译原理”;而在方向指选课程中,与系统能力密切相关有“计算机系统综合实验”、“并行处理技术”、“LINUX分析”、“微机原理与接口”和“嵌入式系统”等课程,也即计算机系统方向学生必须在这些课程中选修一定数量的课程。

图3给出了整个教学计划中与“系统观”培养密切相关的课程设置,图中箭头描述了课程的先后依赖关系。

从图3可看出,所有相关课程中,“计算机系统基础”是最核心的课程,其先行课程是“程序设计基础”和“数字逻辑电路”,与其相关的后续课程有“计算机网络”、“操作系统”、“计算机组成与设计”、“计算机体系结构”、“编译原理”、“并行处理技术”、“微机原理与接口”、“嵌入式系统”、“LINUX分析”和“计算机系统综合实验”。

课程设置基本思路是“从两头到中间、从框架到细节”,即先开设顶层的程序设计课程和最底层的数字逻辑电路课程;然后再在“计算机系统基础”课程中,从两头到中间,把顶层程序设计的内容和底层电路的内容,按照程序员视角串起来,以形成对计算机系统的全面的和系统的框架性整体认识;在此基础上,再分别在其他后续课程中,介绍计算机系统底层的硬件以及操作系统和编译器等层次的实现细节。

围绕系统能力培养目标,根据课程之间的相互关系,我们确立了各课程定位如下:

(1)程序设计基础。该课程是学科平台准入课程,所有学生必修。它主要介绍高级语言编程技术的基础内容,让学生初步理解高级语言及高级语言程序设计涉及的概念,初步理解图1所示的计算机系统中最上面三个抽象层(问题、算法和程序)及其相互转换关系。学完该课程后,学生能够了解到计算机解决应用问题首先必须将其转换为算法,然后用某种编程语言将算法编写成程序才能在计算机上运行。因而,学完本课程后,应该希望进一步了解为什么计算机能够执行程序、计算机如何执行程序等问题。

(2)数字逻辑电路。该课程是学科平台准入课程,所有学生必修。它主要围绕组合逻辑和时序逻辑两大核心内容,在逻辑门到功能部件这两个层次展开,以后续课程中用到的功能部件(如半加器、全加器、加法器、比较器、编码器、译码器、触发器、寄存器、移位器、内存储器等)作为数字逻辑电路设计实例进行介绍,初步掌握图1所示的计算机系统中最下面的三层(功能部件、门电路和器件)相关内容。学完该课程后,学生能够了解到目前主流计算机解决所有问题的最根本的基础是布尔代数和数字逻辑电路,并了解到利用数字逻辑电路可以构建执行程序所需的所有功能部件。

(3)计算机系统基础。该课程是学科平台准出课程,所有学生必修。它是一门新开设课程,主要介绍高级语言程序中的数据类型及其运算、语句和过程调用等是如何在计算机系统中实现的,从宏观上介绍计算机系统涉及的各个层次,使学生从整体上了解计算机系统全貌和相关知识体系,初步理解图1所示的计算机系统中的每一个抽象层及其相互转换关系。学完该课程后,学生能从程序员角度认识计算机系统;能够建立高级语言程序、ISA、OS、编译器、链接器等之间的相互关联;对指令在硬件上的执行过程和指令的底层硬件执行机制有一定的认识和理解。从而增强学生在程序调试、性能提升、程序移植和健壮性等方面的能力,并为后续的“计算机组成与设计”、“操作系统”、“计算机体系结构”等课程打下坚实基础。由此可见,该课程可以作为“程序设计基础”课程的深入内容,能起到为其解惑答疑的作用,学完该课程,学生完全应该能够回答为何计算机能够执行程序以及计算机如何执行程序等问题。

(4)操作系统。该课程是学科平台准出课程,所有学生必修。它将系统地讲解操作系统的基本概念和方法、设计原理和实现技术。主要内容包括:处理器管理,同步、通信和死锁,存储管理,设备管理,文件管理,操作系统安全和保护,分布式操作系统和网络操作系统。既阐述经典内容,又以当代主流操作系统作为实例介绍最新发展;既注重操作系统的理论知识,又重视操作系统的实践和应用。操作系统是一门实践性、应用性很强的课程,学习这门课程必须动手实践。实验将配合原理教学同步进行,课程实验以设计性实验为主,进行模拟类操作系统实验,要求学生能够基于虚拟机环境,实现一个可运行的操作系统。实验通过对操作系统原理的剖析,辅助学生深入理解抽象原理,强化学生对操作系统总体结构的理解和认知,提高学生的动手实践能力,并帮助学生对操作系统建立起理性、全面、完整和准确的概念。

(5)计算机组成与设计。该课程是计算机系统方向学生的必修课程。它主要从寄存器传送级以上层次介绍单处理器计算机设计的基本原理和设计细节,重点在CPU设计和存储器设计方面,使学生在理解高级语言程序与机器级代码之间对应关系的基础上,进一步理解机器级代码如何在具体硬件系统中执行的过程以及如何构造计算机硬件系统。因而,该课程主要涉及图1中的第5层(指令集体系结构)和第6层(微体系结构),并通过实现细节介绍这两个层次与上层的操作系统/虚拟机以及与下层的功能部件/RTL之间的关系。通过该课程的学习,要求学生能够利用硬件描述语言和FPGA开发板来设计基本的功能部件以及单周期CPU和流水线CPU。因而,在课程内容组织方面应该细化通用寄存器组、ALU和桶形移位器等功能部件设计的内容,细化单周期CPU和流水线CPU设计的内容,并讲透流水线CPU设计中的各种冒险处理机制和基本的指令级并行处理的内容。

(6)计算机体系结构。该课程是计算机系统方向学生的必修课程。学生在完成单处理器计算机系统相关技术学习的基础上,通过该课程进行多核处理器、众核处理器、多处理机系统、集群系统等不同粒度和规模的并行计算机系统的工作原理、实现方式及其应用方面的深入学习。因为学生已经建立了单处理器计算机系统的完整概念,因而该课程重点应该更多地转移到超标量流水线、多核/众核系统、多处理器系统、多计算机系统等并行处理系统方面。此外,该课程还涵盖了数据中心、云计算系统和虚拟机/虚拟化方面的部分内容。

(7)编译原理。该课程是计算机系统方向学生的必修课程。学生在掌握了程序设计、数据结构、算法设计与分析、组成原理和操作系统的基础上,进一步学习编译器的设计原理和实现技术。它主要包括有限状态自动机理论、形式语言分类以及词法分析、语法分析、语义分析、中间代码生成、中间代码优化和目标代码生成的作用和方法,还介绍属性文法的基本概念和半形式化的中间代码生成方法。该课程的各个知识模块综合起来对应的培养目标,是使每位学生掌握和编译器设计相关的形式语言理论基础、了解编译器生成工具的使用方式以及实践一个简单编译器的设计与实现过程。该课程的学习能为后续的形式语言和自动机等课程以及在软件工程和自然语言处理等方面的研究工作打下良好的基础。

(8)并行处理技术。该课程是计算机系统方向学生的指选课程。其主要内容包括并行环境、并行算法、并行程序设计、并行性能评价等部分的内容。课程总目标是通过并行计算和并行处理的基本概念、基本原理、基本方法与基本知识的讲授与实践,为计算机系统方向学生打下并行算法与并行处理方面的研究与应用基础。通过简单介绍并行计算机的体系结构、并行计算模型与并行算法的性能评价方法,掌握并行算法设计、编程实现与性能评价时涉及的基本知识与基本概念;通过介绍任务分解、任务调度、负载平衡、设计模式、设计技巧等知识,掌握并行算法设计的基本原理、基本方法与基本技术;通过对MPI与OpenMP等编程语言或编程模型的简单介绍,使学生掌握并行算法程序实现的基本知识;通过几类典型的数值与非数值并行算法介绍,加深学生对并行算法设计基本原理与常用方法的理解,并为实际应用问题的并行算法设计与并行处理打下坚实的基础。

(9)微机原理与接口。该课程是计算机系统方向学生的指选课程。主要定位为在PC上的实例化教学课程,以目前流行的基于IA-32体系结构的PC为实例,主要介绍IA-32提供的存储管理机制、异常/中断机制以及总线和接口技术。实验重点内容在PC的I/O接口技术,包括在FPGA实验板上利用CPU软核进行总线、中断和DMA实验,利用硬件描述语言(HDL)进行UART等I/O接口设计的实验等。

(10)嵌入式系统。该课程是计算机系统方向学生的指选课程。主要定位为在嵌入式系统方面的实例化教学课程。主要介绍嵌入式系统概论、嵌入式处理器、存储器及其总线互连,嵌入式系统集成接口,嵌入式操作系统,嵌入式硬件与软件协同设计方法与工具,嵌入式应用系统开发及其工具,嵌入式系统功耗分析与优化设计等。实验重点内容是基于ARM处理器和μCOS-Ⅱ操作系统的简单嵌入式软件开发技术。

(11)LINUX分析。该课程是计算机系统方向学生的指选课程。它是操作系统的后续课程,以剖析Linux内核实现技术为切入点,结合Linux内核代码,从用户层及内核层两个层面,围绕“原理、技术、应用”三个角度剖析Linux的内部结构与内核实现机制,帮助学生从系统实现角度理解现代操作系统的系统架构、实现机理及关键技术。课程以“技术专题”形式组织教学内容,每个专题由知识讲授与课程实验组成。核心知识模块包括进程管理、进程调度、进程通信、存储管理、系统调用与中断处理、文件管理。每个知识模块按“原理设计基本思想―实现相关技术问题―Linux内核实现途径―用户系统编程体验”为主线组织具体内容。

(12)计算机系统综合实验。该课程是计算机系统方向学生的指选课程。主要目的在于将本科计算机教学中的基础课程,如程序设计、数字逻辑电路、操作系统、计算机组成与设计等课程融会贯通,使学生从系统的角度对整个计算机有一个全面的认识和了解,并能够设计和实现一个简单的计算机系统。本综合实验区别于一般的基础实验课程从单个层面出发的设计局限性,它要求学生把计算机软件和硬件相结合,并强调各个基础课程之间的衔接与联系。实验要求学生能够对于从高级程序语言开发到程序的系统管理、编译与代码转换以及硬件运行的选择与实现等有一个全面的掌握。实验还强调学生的动手能力和对系统的设计能力,培养能够独立开发一套简单系统并能对整个系统进行改进和优化的能力。

当然,除了上述课程以外,其他课程对学生系统能力培养也有一定的作用。除了学科平台准入和准出课程以外,其他方向的学生还可以选修上述其他课程,有些课程还可能是某个方向的必修课和方向指选课,而计算机系统方向的学生除了上述给出的必修课和指选课以外,也还可以选择一些偏理论或偏应用的课程进行修读。

后PC时代WSC、PMD和PC等共存,使得原先基于PC而建立起来的专业教学内容已经远远不能反映现代社会对计算机专业人才的培养要求,原先计算机专业人才培养强调“程序”设计也变为更强调“系统”设计。这需要我们重新规划教学体系,调整教学理念和教学内容,加强学生系统能力培养,使学生能够深刻理解计算机系统整体概念,更好地掌握软/硬件协同设计和程序开发技术,从而更多地培养出满足业界需求的各类计算机专业人才。

参考文献:

[1] 王志英,周兴社,袁春风等. 计算机专业学生系统能力培养和系统课程体系设置研究[J]. 计算机教育,2013(9):1-6.

[2] 王帅,袁春风. 美国一流大学计算机组成与系统结构实验课程研究[J]. 计算机教育,2011(17):121-124.

计算机系统结构方向范文4

关键词:计算机组成与结构;教学改革;分层次教学;创新实验

1课程的性质和地位

规范计算机教学知识体系在教学过程中能够起到很好的作用,参照IEEE/ACM的计算机学科本科教学参考计划(Computing Curricula 2001,简称CC2001 /education/curricula-recommendations),不同类型的本科院校对计算机专业都制定了各自学科的教学计划。在CC2005(Computing Curricula)中将计算机学科分为计算机工程(Computer Engineering-CE)、计算机科学(Computer Science-CS)、信息系统(Information System-IS)、信息技术(Information Technology-IT)和软件工程(Software Engineering-SE)5个专业,图1为针对每个专业的特点和要求所提出的知识架构。

图1The problem space of computing

横轴分为理论和应用两个方面,而纵轴分为计算机硬件与结构(Computer Hardware and Architecture)、系统基础(Systems Infrastructure)、软件方法和技术(Software Methods and Technologies)、应用技术(Application Technologies)和信息系统结构(Organizational issues & Information Systems)5个层次,不同专业对每个层次的要求不一样。CC2005中基于上述层次结构明确指出计算机科学专业和计算机工程专业都应该掌握计算机硬件与结构方面的课程知识,并且对不同专业的每一门课程的地位、知识范畴和教学方法等做了详细的说明。图2为Computer Architecture课程的编号体系,课程分为四个级别:入门课程、中级课程、高级课程和具体项目课程,不同的课程对应不同的教学目标和教学方法。

图2CC2005课程编号体系

作者简介:韩英(1979-),女,助教,本科,研究方向为计算机系统结构相关的教学与研究;严诚(1983-),男,讲师,硕士,研究方向为计算机体系结构相关的教学与研究;荀启峰(1979-),男,讲师,硕士,研究方向为计算机系统结构相关的教学与研究。

“计算机组成与结构”作为计算机科学专业的中级课程来讲要求采用精简的、系统的、主题教学相结合的教学方法。通过本课程的学习,要求学生在掌握理论的基础上,通过实践教学环节的训练,培养学生在计算机系统的分析、设计、开发、使用和维护的能力,为后继课程的学习和将来从事相关的计算机研究工作打下良好的基础。

2教学改革

2.1抓课程核心,合理安排讲授内容,突出硬件重点

该课程主要是介绍单处理器计算机的组成原理与结构体系,内容主要包括计算机中数据的表示和运算实现、存储器组织与结构、指令系统、中央处理器等。由于该课程属于硬件基础课,其本身的特性决定了课程内容之间相对独立、知识点零散,目前很多教材没有做到体现计算机系统结构的整体性,且传统的灌输式教学模式存在很多问题,所以这门课程的教与学都比较困难。

针对教与学的现状以及出现的问题,很多高校对该课程的教学内容和教学模式进行着探索性的改革,为了在教学中让学生能够形成清晰完整的概念,需要合理的安排内容。比如,首先应该给出计算机系统的概念结构,然后从具体的运算实例出发(比如 “5+8*3”)来介绍微机的功能和工作过程,进而引出整个课程的主要内容结构,让学生把握课程整体的方向,为学习以后的内容打下基础,在讲解具体部件原理时,始终坚持“突出整机概念”为主线,这样把握着课程核心目标,进一步安排教学内容。[1-2]对于基础性的知识注重硬件原理的讲解,而对于发展较快、具有时代意义的技术性内容,老师应该做到跟踪前沿技术,在课堂上补充讲解。老师可以让学生参与课题研究,培养学生的创新意识,保证教学内容的基础性和先进性的统一。

2.2理论性和实践性相统一的分层次教学,培养学生动手能力

“计算机组成与结构”课程的理论教学主要讲解计算机组织和计算机结构两方面的内容。理论教学内容偏重原理性的知识,十分抽象,例如讲解CPU和存储器连接技术时,教学中无法做到两者实物引脚的连接,只能通过原理性的知识去讲解其连接技术和读写工作原理;在讲解各个部件互连技术时,涉及到对程序员透明的硬件细节问题,如控制信号、节拍电位机制以及硬件门电路技术等。

实际上,教学的要求不仅仅掌握其原理性的知识,还要求掌握关键部件的设计方法,更重要的是培养学生的实践创新能力。教学实验的内容应不断更新,做到追踪新原理、新技术、新方法和新器件,并及时反映到实验教学中,为了达到通过不同类型实验来培养学生实践能力,实验可采用分层次教学:基本实验开放性实验综合性实验研究性实验。[3]基本实验是配合理论教学内容,进一步加深学生对于理论知识的理解而开展,可以在平常的实验中开设,比如运算器、存储器实验等;开放性实验是为了进一步提高教学水平培养学生的实验技能,让学生了解这门课程先进的技术进展,可以借用学校的网络教学平台来开设开放性实验,比如“接口技术”;而综合性实验为了培养学生的设计能力和分析解决问题的能力,可以在课程设计中开设,比如为了能使建立完整的微机概念,除了在理论教学中突出整机概念外,在课程设计中结合具体的实验给出基本模型机和复杂模型机的具体设计和实现技术;研究性实验是更高层次的要求,是为了培养学生的创新思维和研究能力,可以安排在毕业设计阶段。这样的分层次教学和坚持理论和实践相统一的原则,更有利于培养计算机专业的硬件人才。

2.3多媒体技术应用于教学方法的改革,激励学生思维活动

创新思维活动是建立在原有知识体系基础之上的一种活动,学生良好思维习惯的形成需要在平常专业学习中培养,可以在课堂教学中采用多样的教学手段有效激发学生的思维。比如将多媒体技术应用到教学中,借助于直观的图形和动画的形式将抽象的问题进行分解,为学生建立形象化的思考过程,有利于学生对于知识点的理解,同时也有利于学生创新意识的积累。我院在“计算机组成与结构”的教学的改革探索中,将网络和多媒体技术应用于教学,建立共享型的网络教学资源平台,并配合双语课程构建了开放式的课程学习环境。该课程的教学大纲、多媒体课件、习题、实验指导以及讲课录象都以网络的形式提供给学生,同时学院针对这门课程建设了配套的试题库、试卷库。学生不仅可以通过网络查询资料,还可以通过网络课程自主学习,自测效果。多媒体技术和网络技术的教学手段更灵活、更便捷。便于学生理解和思考、便于师生交流,达到互动学习的目的。

2.4 采用互动式教学方法,激发学生的学习兴趣

在教学中为了更好的达到教学目标,应采用互动式的教学方法,强调学生学习的主动性。[4]建构主义理论指出学习不是由教师把知识简单地传递给学生,而是学生自己建构知识的过程,学生不是简单被动地接受信息,而是主动地建构知识,这种建构是无法由他人来代替的,这里强调是一种“情境”,即环境的情境必须有利于学生对所学内容的建构。“计算机组成与结构”课程的学习在绝大部分院校都是利用多媒体课件进行讲授,以老师为中心、以强调知识传授为主体,这种灌输式教学无法调动学生学习的主动性和参与性。

建构主义强调学习的主动性和积极性,认为教师的教学设计不仅仅考虑教学目标分析,还要考虑有利于学生学习情境的创作,强调以学生为中心,把学生的角色进行转变,由传统的知识被动接受者转变为信息加工过程中的主体,也就是知识的主动建构者,而在教学的过程中教师起组织、指导、帮助和促进作用,利用情境设计,互相协作、交流等方式调动学生的主动性和积极性,以培养学生的实践能力、创新意识和应用能力。在教学方法创新中,我们还做了如下尝试:(1)采用启发式教学调动学生的思考性;(2)重点的内容采用讨论式教学,加强互动性;(3)简单的内容让学生自学以培养学生的自学能力;(4)实践教学内容采用研究式,让学生主动参与。如此通过各种教学环节的设计,以及情境式的构建来激发学生的学习兴趣,以达到培养学生解决问题的能力和激发学生学习的兴趣。

2.5针对教学内容的组织,采用新颖的教学方法

针对这门课程的特点和大纲要求,我们可以采用如图3所示的教学方法。采用从整体到局部和从局部到整体,始终突出整机概念的教学方法。[5]

图3教学方法示意图

首先给出计算机系统的整体概念,然后引出计算机系统的三大组成部分:中央处理器、存储器系统和I/O设备。三大部件通过系统总线相连,这样有利于学生建立整机的概念,把握课程的总体方向。而在讲述到某部件具体细节(知识点)的时候,采用的是从局部到整体的教学方法,比如对于运算方法和运算器的教学。如果学生没有学习表示和运算数据的基础,根本无法做到理解运算器的原理与结构。所以对于“计算机组成与结构”课程的内容讲解,需要针对不同知识点的特点采用从整体到局部和从局部到整体的教学方法。

在“计算机组成与结构”的教学改革探索中,除了上述的改革以外我们还做了关于教学组织管理制度的改进,比如集体备课、双教案、自编实验教材以及和外校共同进行教考分离等,目的是通过这些方法改进、改变传统的教学。

计算机系统结构方向范文5

■ 出生年月:1951 年

■ 现职: 东京大学研究生院(Graduate Schoolof the University of Tokyo) 教授,博导。

■ 研究方向:计算机系统结构

■ 学历:1979 年 日本庆应义塾大学 工学博士

坂村 键 先生不仅是日本IT业界知名学者。也是日本政府的IT 智囊团成员。世界著名的TRON计算机系统结构就是最早由坂村先生研究创立的。现在,坂村先生在TRON计算机系统理论基础上, 致力于随时随地计算(ubiquitous computing)技术的研究。

■ 坂村先生现兼任:

1. IEEE Computer Society 的fellow,GOLDENCORE MEMBER。

2. 日本Ubiquitous 网络计算技术研究所所长。

3. 日本TRON 会议主席。

4. 日本总务省信息通信政策局审议会 研究开发/标准化战略委员会委员。

5. 日本总务省信息通信政策局技术部 Ubiquitous电子标签技术研究应用调研会委员。

6. 日本经济产业省 信息安全政策室审议会委员。

7. 亚州Ubiquitous 网络计算技术会议副主席。

IT 圈外不知道比尔・盖茨的人,恐怕很难成为富翁;在IT圈里,如果不了解坂村健,也许要考虑还要不要立志成为IT 的技术专家。话说得虽然有点大,但从李国杰、杨芙清两位院士听说坂村健的来京而邀约座谈的情形,我们可以看出坂村健在全球计算机界的影响。作为全球计算机界的泰斗,坂村健将于4月22日到北京为2004年第三届中国信息技术趋势大会作主题演讲。

身为日本一名计算机专家,坂村健在计算机行业内部可是大名鼎鼎,只是他的生活方式颇为低调而已。坂村健在1984 年的操作系统甚至比微软的Windows应用更广泛,这一名为TRON的系统可以安装到从数码相机 到汽车引擎在内的多种设备上。

TRON是一种内嵌式操作系统,在微处理器中运行。据估计这一系统已经安装到了全球30 亿到40 亿台家用电子产品当中,远远超过Windows的普及程度,后者不过安装到了1.5 亿台计算机上。尽管在个人电脑领域知名度几乎为零,但TRON现在却占据了全球微处理器操作系统市场上大约60%的份额。就连微软也不敢小视,在2003 年的年底,微软终于也加入坂村健领导的TRON阵营,为未来“网络无处不在的社会”(ubiquitous network society)共同努力。

1984年TRON系统刚刚面市时,日本业界将其称为一种可以打破微软垄断地位的自制软件,认为这种系统将可使日本计算机企业不再承担必须向微软购买Windows系统时支付的费用。但这一美梦在1989年却被打碎,当时美国方面得知日本政府准备把TRON安装到学校的计算机中后就威胁说要将TRON列为不公平贸易壁垒之一。不少计算机企业因为担心失去美国市场而中断了与TRON的联系。尽管坂村健对当时的状况很失望,但另一方面,他却赢得时间集中精力为微处理器而不是PC 研发更好用的操作系统。

而让TRON系统与Windows产生巨大区别,从而也让坂村健和盖茨拥有的财富完全不能相提并论的是,Windows 必须从微软购买,而TRON 却是免费的。

计算机系统结构方向范文6

摘 要:文章首先介绍国外相关课程的实践教学情况;在分析对比国内计算机组成原理课程实践教学情况的基础上,提出相应的实践教学改革思路,规划出一整套实践教学方案。南京大学在相关课程的实践教学方面对这些改革方案进行了探索,实践结果表明,这种改革方案是有效的。

关键词:计算机组成原理;实践教学;教学改革;课程实验

作者简介:袁春风,女,教授,研究方向为Web信息检索与本文挖掘、多媒体文档处理、计算机体系结构;张泽生,男,高工,研究方向为计算机体系结构、嵌入式系统;蔡晓燕,女,工程师,研究方向为微电子技术、嵌入式系统;杨若瑜,女,副教授,研究方向为图形图像处理;王帅,男,讲师,研究方向为计算机体系结构、嵌入式系统。

1 计算机组成原理实践教学改革的必要性

计算机组成原理是计算机专业最重要的核心基础课之一,在整个计算机专业教学中起着重要的承上启下的作用。该课程对于学生完整地理解计算机系统的层次结构,系统地建立计算机整机概念,培养学生对计算机系统的分析、应用、设计及开发能力,都具有非常重要的作用。

从国内高校计算机组成原理课程的教学情况来看,大部分高校都把它当成一门纯硬件课程进行介绍,最多加入一些汇编程序设计方面的内容。对于课程的实验内容,大多数高校还是停留在验证性实验阶段,这样的教学理念和实验内容,没有让学生参与和经历从高级语言程序到机器代码、从机器代码到机器结构的转换过程,也没有让学生针对一个给定的指令系统,分析设计出实现该指令系统的计算机基本部件和

完整框架结构,因而,很难使学生能够真正了解计算机系统的工作原理和硬件系统结构,实验手段和教学内容与现代计算机技术的发展水平和实际情况脱节,与国外一流大学相比有很大差距,因此,迫切需要进行教学内容和教学模式的改革探索,特别是实践环节的教学改革。

2 国外一流大学相关课程及其实验情况

为了更好地规划相关课程的课程体系和教学内容,改革现有的实践教学模式和教学内容,我们对美国几所一流大学计算机专业相关课程的实验情况进行了跟踪调查。表1给出了对MIT、UC-Berkeley、Stanford大学、CMU这四所大学相关课程的实验情况总结。这些信息源自这些大学相关课程的最新课程网站[1-7]。

表1 美国部分大学计算机专业相关课程实验教学基本情况

从表1可以看出,这些学校开设的相关课程都只要求选课学生具有C语言或同类编程语言的程序设计基础,能熟练使用计算机即可。MIT的相关课程更偏重于硬件底层,UC-Berkeley的次之,而Stanford和CMU的类似,主要从程序员角度介绍计算机系统,更偏向于系统软件层面。

MIT的相关课程“Computation Structures” 同时面向EE和CS两个专业开设;其实验教学模式是通过各类模拟器实现从门电路特性、汇编、处理器到I/O等偏硬件层面上的分析和设计实验。

UC-Berkeley的相关课程从2011年开始有比较大的改变,原先的课程名称为“Machine Structure”,现在改为“Great Ideas in Computer Architecture”;所用教材除了原先使用的一本关于C语言和一本关于计算机组成与设计方面的以外,还将一本关于数据中心计算机系统的教材增加为课后阅读材料;涉及的实验项目也有非常大的改变,原先的14个实验主要分五类:C语言编程实验、汇编程序设计实验、流水线CPU等硬件逻辑电路设计实验、Cache和虚存的模拟实验、多核多线程编程实验,改进后的课程实验增加了云计算平台上的数据级并行编程(MapReduce)和多线程编程(OpenMP)实验等,让学生通过实验体验不同粒度下的并行处理技术。

Stanford大学和CMU的相关课程所用教材一样,实验内容也差不多,通过一组精心设计的C语言编程实验,使学生能够更好地了解高级语言程序转换为机器代码的过程,深刻理解底层机器的系统结构(包括指令格式、数据表示、寄存器组织、Cache结构、虚存空间的映射等),提高编制高效程序和调试程序的能力,并为后续的体系结构、编译技术、操作系统等课程打下良好的基础。

通过对MIT、UC-Berkeley、Stanford大学和CMU等多个美国一流大学在相关课程方面教学情况的跟踪,我们发现,除MIT由于CS和EE一起开课而使课程内容较偏底层硬件外,其他三所学校相关课程的教学内容和实验内容基本类似,其教学理念和教学思路也非常相似,基本上都是按照“C语言程序汇编语言程序机器目标代码处理器结构”为主线组织内容,都是站在计算机系统的高度来阐述计算机硬件系统的结构和设计思想,以程序员的角度来认识计算机系统,强调软件与硬件的关联,使学生能很好地在高级语言程序、汇编语言程序、机器指令代码和机器结构之间建立相互的对应转换关系,以建立对计算机系统的整体认识。特别是这些大学相关课程的实验内容都和课堂教学内容完全一致,课堂所学内容就是学生需要动手实践的内容,在考核中实验和大作业占有50%~60%的分值,由此可见,国外一流大学对本课程的实践教学环节是非常重视的。

通过对上述几个大学相关课程的跟踪调查,我们还发现,虽然它们的相应后继课程名称不同,但课程的实验内容类似,都要求用硬件描述语言在FPGA上进行流水线处理器设计等实验,而且基本上以RISC处理器的典型四段或五段流水线CPU设计为目标。这方面的实验,对EE和CE的学生是必须做的,而对于CS的学生,有些学校则没有要求必须做。

3 实践教学存在的问题

目前,国内已经有一些高校的计算机组成原理或同类课程通过借鉴国外一流大学的先进做法,在教学内容和教学模式等方面正在进行改革,取得了较好的教学效果。但是,绝大多数高校基本上还是沿用传统的教学理念,教学内容还停留在对计算机硬件系统的基本构成和基本设计原理性介绍方面,既不像国外EE或CE专业开设的类似“数字系统设计”那样的硬件设计课程,能够让学生真正了解如何用硬件描述语言通过FPGA来设计现代计算机硬件系统;也不像UC-Berkeley的CS专业开设的“Machine Structure”那样介于软、硬件之间的课程,能够让学生深刻理解程序如何转换为机器代码并在硬件上执行的过程;更不像Stanford大学和CMU的CS专业开设的COS和ICS两门课程那样,能够让学生从程序员角度理解计算机系统底层的关于硬件结构和系统软件的重要概念及其相互关联。因此,目前大多数高校的“计算机组成原理”课程的教学,既没能达到培养学生利用现代化工具进行实际硬件设计的能力,也没有让学生学会运用机器底层硬件和系统结构知识来开发高效软件和调试程序,更没有通过该课程让学生建立起计算机软、硬件系统的整体概念。特别在实践教学方面,与国外同类课程相比更是相差甚远。

与国外一流大学相比,国内高校的计算机组成原理实践教学普遍存在以下几个方面的问题。

1) 各专业的实验要求没有区分。

国内绝大多数高校都会把计算机组成原理课程作为计算机所有相关专业的必修课,但实际上对于不同专业,其教学目标和实验要求是不同的。国内本科计算机相关专业设置名目繁多,不同的学校相差很大,有的学校只有计算机科学与技术一个专业,有的学校还有软件工程、计算机工程专业,还有一些学校甚至还有信息安全、信息工程、计算机应用、物联网等专业。很明显,不同专业的培养目标是不同的,因而,对于计算机组成原理的实验要求也是不同的。目前,国内该课程的实验大部分是功能部件的验证性实验和微程序设计实验,有些学校会有汇编程序设计实验,也有学校不做实验,还有少数学校采用EDA方式进行CPU设计等实验。但是,绝大多数学校选择实验内容和实验方式时,并没有考虑到不同专业的不同要求。

2) 和课堂教学内容不能很好配合。

由于传统的计算机组成原理实验系统和实验设备是由公司或其他单位开发的,无法自主确定实验模式和实验内容,因而,很容易造成实验内容和课堂教学内容不能很好配合的问题,造成实验效率低下,并且不能很好地起到巩固课堂教学的目的。

3) 实验内容缺乏系统性和先进性。

传统的验证性实验通常是在部件级进行验证实验,通过插拔连线、拨动开关、编制微程序等方式与实验系统进行交互,因而无法构建一个完整的计算机硬件系统的综合设计实验。此外,绝大多数高校在该课程教学中没有软件编程实验和Cache、虚存等相关模拟实验。

4) 实验平台和实验手段落后。

没有采用现代化的EDA工具软件和CPLD/ FPGA实验平台,更没有像国外大学那样,利用各种模拟器、云计算平台、仿真系统,以及各种编程开发工具来进行实验,导致学生缺乏利用先进工具和平台进行学术研究和项目开发的能力。

5) 实验过程管理和考核机制不完善。

国内实验系列教师普遍缺乏,而助教制度又极其不完善,不像美国大学那样,每门课可以配备7、8个,甚至十几个领助研费的助教,因而在实验过程管理上很不完善,特别是实验的检查、考核和反馈等很难做到像美国大学那样到位,这也大大影响实验教学的效果。

4 实践教学改革和成效

针对目前计算机组成原理实践教学存在的问题,我们在对美国一流大学相关课程实验情况的考察研究基础上,提出了相应的改革思路和实践教学方案,并在近年来的教学过程中,逐步进行了探索实践。

目前,我系开设的相关课程是计算机组成与系统结构和专门的计算机组成实验课程,与国内大多数高校开设的计算机组成原理相比,我们强化了流水线CPU设计方面的内容。其先行课程除了C和C++程序设计课程以外,还有数字逻辑电路及其专门的实验课程,学生会在这两门课程中学会EDA设计的基本方法,并具有简单数字系统设计的基本能力。而计算机组成原理方面的实验实际上包含了国外类似于数字系统设计课程中的一些实验。

根据本课程内容抽象、概念枯燥,以及实践性强的特点,我们采用了编程实验、硬件设计实验和创新实验三阶段递进式的创新型实验教学方案。为了保证对实验过程的严格管理和加强对学生的指导,我系每年专门招收7~10名硕士研究生组成实验辅导小组,在每年暑假由实验指导小组的老师先对他们进行培训,然后他们再在实验过程中辅导学生,并对实验结果进行检查。

编程实验是在进行理论课教学的同时要求学生完成的一组实验。通过编程实验使学生能从程序员角度深刻理解教学内容中比较抽象的一些概念和知识,例如,机器代码的表示、高级语言源程序与机器代码的对应关系、数据的表示和运算、访存异常(存储保护错)、运算结果溢出、大端/小端方式、对齐存放、Cache结构和程序访问局部性的关系、虚存地址空间的构成、静态数据区和堆区/栈区的区别、系统性能评测方法等,使得课程内容对学生来说不再是抽象、枯燥的概念,而是能够通过对程序的调试跟踪,以及对程序运行结果的分析,将这些抽象的概念变成容易理解的看得见的具体数据。这样,不仅有助于学生对教学内容的深刻理解,而且培养了学生学习本课程的兴趣,增强了学生的编程动手能力,特别是将底层机器级概念运用到编程设计和调试中,这对于提高学生编写正确、高效的程序和增强程序调试能力,是非常有帮助的。同时,也让他们了解到将来即使不从事计算机硬件设计工作,本课程学到的知识和培养的专业意识在今后的软件开发或计算机科学研究工作中也是非常有用的。

硬件设计实验是在理论课程结束后的一个学期专门开设的计算机组成实验课。要求学生用硬件描述语言在FPGA板上进行硬件设计,并最终实现一个实际的流水线CPU。由于在课堂教学内容中加大了对CPU设计、特别是流水线CPU设计的力度,使学生打下了很好的理论和技术基础。将实验内容与课堂教学完全结合起来后,改变了原先课堂教学和实验教学内容脱节的现象,因此,除了实验教材外,课堂教学的教材本身也成为了实验教材的延伸。为了加强对学生的计算机系统尤其是CPU设计能力的培养,我们提出并进行了“以流水线CPU设计为核心”的高起点创新性实验教学改革,采用“基于硬件描述语言和FPGA,以功能部件设计为先导,单周期CPU和多周期CPU设计为过渡,最终实现流水线CPU”的实验教学方法。学生通过亲自体验从设计、实现到验证的整个过程,大大加深了他们对课程内容的理解,不仅掌握了CPU设计的理论知识,也深刻理解了整个计算机系统的设计思想和方法,并使所学知识转化成了运用知识的能力,同时还培养了部分学生对计算机硬件设计的兴趣和信心。

创新实验课是在相关课程结束后对少数对计算机底层软/硬件设计特别有兴趣的学生开设的开放性实践教学活动。我们意识到,国家迫切需要一批能掌握先进的CPU和系统软件等计算机核心技术的尖端人才,这是高校计算机人才培养的重要任务之一。基于本课程在计算机系统中的重要核心地位和在计算机人才培养中应起的作用,我们提供了相关的创新实验室,为这些学生提供全方位的实验支持。学生可以自主选择创新项目,实验室提供相应的实验平台和条件,并配备指导教师或研究生助教进行全程指导。目前已经有4、5个创新团队完成了相应的创新实验项目,其中包含了江苏省级重点和南京大学重点创新项目,还有一个团队设计实现了一个与MIPS32 2.62兼容的82条指令的五级流水线CPU。参加创新实验项目的绝大多数成员都被保送进了中科院、北大等国内一流大学和科研院所,也有一些同学得到了美国著名大学的青睐,选择出国继续深造。

5 结语

计算机组成原理课程的地位和特点决定了在该课程教学过程中加强实践环节的重要性。国外一流大学都非常注重该课程的实验教学,实验内容和手段不断更新,而且特别注重对实验过程的管理和对实验成绩评定的公平性。近年来,国内一些大学也开始对该课程的实验手段和实验内容进行改革,取得了一定的

成效。但是,大部分高校还在采用传统的实验模式与国外一流大学相比差距较大。

我系在本课程的实践教学方面进行了一些有益的探索,实践证明,采用新的实验内容和实验手段,对于学生全面掌握课程内容、培养分析问题和解决问题的能力、增强实践动手能力、提高科技创新意识等各方面都是非常有用的。由于我们实验改革时间不长,只是处于探索阶段,因此,实验内容和实验模式还很不完善,特别是编程实验内容,还有很多典型问题可以设计让学生进行编程体验,实验管理中也还存在很多问题需要解决,包括如何合理评定实验成绩,如何防止抄袭等。此外,如何规划衔接好上下游课程之间的实验内容也是今后需要重点考虑的问题。

参考文献:

[1] MIT. Computation Structures [EB/OL]. [Spring 2011]. 6004.csail.mit.edu/.

[2] UC Berkeley. Machine Structures[EB/OL]. [Spring 2011]. inst.eecs.berkeley.edu/~cs61c/sp11/.

[3] UC Berkeley. Components and Design Techniques for Digital System[EB/OL]. [Spring 2011]. inst.eecs.berkeley. edu/~cs150/sp11/.

[4] Stanford University. Computer Organization and Systems[EB/OL]. [Spring 2011]. stanford.edu/class/ cs107/.

[5] Stanford University. Digital Systems II[EB/OL]. [Winter 2010]. stanford.edu/class/ee108b/.

[6] CMU. Introduction to Computer Systems[EB/OL]. [Summer 2011]. cs.cmu.edu/~213/.

[7] CMU. Introduction to Computer Architecture[EB/OL]. [Spring 2011]. ece.cmu.edu/~ece447/.

Teaching Reform of the Principle of Computer Organization Lab Course

YUAN Chunfeng, ZHANG Zesheng, CAI Xiaoyan, YANG Ruoyu, WANG Shuai

(Department of Computer Science and Technology, Nanjing University, Nanjing 210093, China)