计算机系统结构课程论文
计算机系统结构课程在高校计算机专业培养中是一门重要的本科高年级基础课,一直占有很重要的位置。下面是学习啦小编给大家推荐的计算机系统结构课程论文,希望大家喜欢!
计算机系统结构课程论文篇一
《计算机系统结构课程教学中的困境与思考》
摘要:分析计算机系统结构课程教学中存在的困境,提出解决思路,阐述怎样更“有意义”和更“系统地”呈现教学内容,怎样在课程中体现前沿技术,怎样开展讨论课,同时指出教学的关键是内容的组织。
关键词:计算机系统结构;教学困境;教学内容;教学模式;讨论课
计算机系统结构课程在高校计算机专业培养中是一门重要的本科高年级基础课,一直占有很重要的位置。它主要围绕计算机结构中整体及各个部分的优化技术以及量化分析方法,将计算机组成原理、编译技术、操作系统、高级语言以及汇编语言等软硬件知识相互贯穿,帮助学生建立计算机系统的完整概念,其重要性是不言而喻的。无论以后从事的是硬件还是软件设计,这门课都能帮助学生理解软硬件的关系,在软件设计中理解硬件的结构与发展趋势,同时设计硬件时了解软件的能力与缺陷。这样的一门课如果真正发挥作用,对计算机专业学生日后尽早适应本领域工作有很大的帮助。而现实情况是,这门课一直以来都是公认的难教、难学、枯燥无趣,真正将其讲好讲透并不容易。随着近十年国内广大教师的努力,这一现象有所改善,但还是存在不少困惑,并未完全体现出该课程的作用。
1.教学困境浅析
教学困境的存在与我国计算机软、硬件技术落后于美国等先进国家有很大关系。虽然现在我国在超级计算机的设计以及自主知识产权处理器芯片的设计上有了长足进步,但在很多方面还存在差距,有些方面的积累几乎为零。在这样的情况下,高校的计算机教育更需要正视这个现状,并尽力从人才培养这个层面为改善这种落后面貌而努力。
1.1难教的原因
首先这门课对授课教师的要求比较高。教师需要对计算机系统整体设计有很深的理解,通晓软、硬件相关的结构、编译、操作系统等多方面知识,并能将它们融会贯通。而实际上,很少有高校教师真正设计过计算机系统,甚至接触过系统级软件设计的人都比较少。另一方面,找到一本合适的教材也比较困难。最为经典的教材是由美国的Hennessy和Patterson合编的《计算机系统结构——量化研究方法》。这是一本非常好的参考书,但作为教材,对于国内读者来说,由于语言上的障碍,英文版的教材可能不能尽得其妙;而且由于诸多翻译上的弊病,中文版的国外教材也不理想。我国本土教材可能存在着以下几种困境:其一,知识陈旧,系统性不强;其二,近10-20年的技术在阐述上过于抽象,不成系统,难于理解;其三,大而全,有些技术只在特定时期的特定领域出现过,过于冷僻而且复杂,与其他部分的知识毫无联系。
教材的困境也反映了难教的现实。随着新技术的涌现,教材总是落后于现状。并不是说,我们将近年来该领域有影响的论文看一遍,就可将它们拿到课堂上讲。一方面,在众多新技术中,如何甄别出哪些是有发展前景?哪些又只是昙花一现?另一方面,如果未在该领域或方向上有较为深入的研究,要透彻理解这些新的技术也存在困难。如果只是泛泛地讲解新的技术名词,念念论文的摘要,为的是向学生或听课的领导炫耀一下,这可能是一种不负责的做法。计算机系统结构课程需要系统的知识体系,那些无法与现有体系相关联的技术,讲起来益处不大。
1.2枯燥难学的原因
学生难学只能在教师身上找原因。因为没有教不好的学生,只有不会教的老师。原因可能有几个方面:首先,早先选用的教材,知识较为陈旧,50年前的技术离现实较远,学生不知上课讲的东西有什么用,教师讲起来其实也觉无味。这方面大家已经意识到并有了很大的改善;其次,有些先进的技术或算法本身不是很好理解,需要学生集中精力听,并积极思考才能有所领悟;再者,由于计算机系统结构所涵盖的内容过于丰富,教师在讲解时必然会将其简化和抽象,这使得学生在学习时有时会感到枯燥。
1.3解决问题的思路
作为该领域的教师,只有承认困境,正视现实,才有可能找到解决问题的方法。最为重要的是教师要有改善现状的强烈愿望和责任感。下面笔者将从内容组织、教学方法以及教与学互动几个方面给出自己教学中的做法与感受。
2.内容的组织
内容的组织是核心。笔者认为教学过程中真正吸引学生的是内容,因为有意义的教学内容本身就有吸引力。学生对有意义的知识本能地有着较强的学习兴趣,教师只需要将知识系统地呈现给他们即可。
2.1教学内容的内在逻辑性与现实性
关键是教师如何让内容“有意义”且“系统地呈现”。这两点是关联的,一方面,知识与现实要有关联,这样就有了意义和价值;另一方面知识要体现前后的逻辑性,这就是系统性。
比如,对于处理器结构,一般会讲解指令流水线的工作原理、性能分析及流水线相关知识点。而有一些教材在讲指令流水线时,只用伪指令(用算术操作符表示),这部分内容本来就抽象,指令也没有具体的形式,使学生很难理解指令流水线的关键思想。因此首先给出一个精简的MIRS指令集是相当有益处的,当然也可以是任何其他的精简指令集。一方面,学生能够直观地体会前面讲解指令系统设计中诸多抽象的原则,同时也更容易理解在指令流水线中为什么这么设计。在讲解后续指令流水的相关及冲突时,具体的指令形式也有利于教师讲清楚各种冲突问题。只有搞清楚问题是怎么出现的,才可能理解后面的旁路技术或冲突检测方法等;只有对分支指令在流水线中的冲突有了比较直观的理解,后续的静态分支预测、动态分支预测、硬件推测执行等才有可能变得有意义。
在讲完流水线技术的原理、性能评价和冲突及其解决方法后,这一章似乎可以结束了。但是如果在最后加上流水线的实现这一节,会是一个非常好的处理。给出具体的一个指令流水线的数据通路,并给出不同指令在每一流水段的操作,试图引导学生给出旁路检测及控制的方法,通过设计多路选择器的控制信号来理解流水线设计中的旁路实现。这部分内容引领学生直观理解指令流水线的实现,还将前面学习的计算机组成原理中的控制器设计内容联系起来,让设计的计算机更进一步接近现实中使用的机器结构。
互联网络部分内容的组织一直是比较令人费神的,教学效果不好。一部分教材只是介绍了互联网络的基本概念及互联网络的经典拓扑结构等。就算是由美国的Hennessy和Patterson合编的《计算机系统结构——量化研究方法》的第三版,对这部分的组织也不是很好。最主要的问题就是互联网络的范畴非常广,关键是如何在计算机系统结构中介绍其中的互联。计算机网络课程中介绍过的网络介质、报文格式、包缓冲区、拥塞控制等知识,在这里并非用不上,而是在此处大而全地介绍不可能将真正重要的问题讲清楚,篇幅也不允许。所以大而全的讲计算机内部、计算机之间的各种网络以及网络所涉及的方方面面,教学效果并不好,而简单地介绍网络的拓扑结构及其性能参数等又比较抽象,容易让人不知所云,且与整个知识体系关联不大,不能起到将系统的软硬件知识贯穿起来的作用。因此我们可以首先将互联网络的范围限定一下,比如在计算机系统内部组件的互联,以及小、中规模的多处理机系统中的互联,然后将并行问题及并行算法、并行编程提供的通信原语与底层的互连结构相互关联,讲清为什么要这样互联,适合解决什么样的并行问题;讲清当前主流的多处理机系统中相应的数据网络、控制网络及管理网络的结构与软件使用情况。讲清或许存在一点困难,不过起码要将这些知识串起来,并与操作系统及并行编程的相关知识关联起来,这有很大的好处。
2.2拉近课堂与现实研究的距离
笔者认为对新技术的泛泛介绍不是没有意义,但对于高年级的本科生来说,更为重要的是让他们通过上这门课,逐步了解现实科研在哪里,以及与课堂上讲的知识距离有多远。通过教师自身的研究经历,将课堂上讲的知识逐步引到现实科研或本领域当下研究的热点问题中,才是真正有用的。中国科技大学网站上有唐锡南博士的相关讲座,该讲座是针对体系结构方向的研究生及高年级本科生而开的,授训对象都上过系统结构这门课,教学目标是对该课程的掌握作进一步地提高。该讲座在网上反响挺好,笔者比较受启发,也许这对上好计算机系统结构课也是有帮助的。比如在讲多处理机系统中的Cache一致性的问题时,他逐步引到具体实现中的一些困难,问题层层展开,有些问题可能需要一些手段来解决,有些问题恐怕还是难题。学生学习最重要不是学到答案,而是学会发现问题在哪儿以及解决问题的思路和方法,当他们了解到该领域前沿的研究思路时,必将增进自己未来解决问题的信心。比如,在讲多处理机系统时,从相应原理开始讲解,然后是现实硬件实现中可能有的变化及原因、并行软件运行中出现的问题,最后将硬件追求卓越性能与软件要求正确性及友好性的冲突展现在学生面前,再说明软硬件相互依存的道理,这比直接说明软硬件关系具体而生动,听起来也有趣。简明地讲清问题之间的关系,解决的程度,未解决的问题及难点所在,这对于开阔学生思路、增加学生对该领域探索的兴趣都比较有效。
3.变化的教学模式
传统的教学模式并没有过时,但有时新的模式可以发挥更好的效果。其次,一成不变的讲课模式从学期开始直至学期末容易令人厌烦,所以探讨变化的教学模式对于提高教学效果显然是有意义的。
3.1实践环节的介入
实践环节可以与课堂讲授相互穿插,不需要将理论部分全部讲完再安排。比如讲流水线及指令级并行时,适时地将相应的指令流水线的模拟器介绍给学生,让他们去体会指令的时空概念以及指令问的各种相关的影响,教师辅导时多问学生为什么。再比如讲存储层次时,Cache优化技术是其中比较重要的内容,这时也最好让学生实际使用相应模拟器去测,通过改变其参数来比较相关性能,可以引导学生通过分析复杂系统模拟器的结构来了解相应原理,或通过实现过程相对简单的模拟器来体会实现过程中的细节问题,这些都是比原理本身更为有用的学习体验。
3.2难一点的议题留给讨论课
对于高年级的本科生来说,他们的精力相当旺盛,自身的学习能力也比刚入学时强很多。此时将一些需要思考、理解的内容交给他们自学和交流,其效果可能会令人大吃一惊。通过自学,很多学生在课下花了不少功夫,并在学生间进行了充分的讨论和互助。课上讨论时,可以让学生主持,这会让学生兴奋,而且下面的学生往往很活跃,想通过为难一下上面的学生来展示一下自己。每一位学生其实都有着相当强的自尊心,所以这种形式会促进学生问的讨论。经验表明,往往平时表现一般的学生这时都有相当好的表现,他们自己也比较自信。如果学生说错了,不要马上说出来,而是将问题解析一下再次抛给大家,看看大家有什么想法,慢慢地大家都比较放松,让问题在讨论中逐步接近解决。
这样的讨论模式有时也会出现教师无法预料的情景,比如学生提出一些教师也未考虑过的问题,此时可能会给教师带来一些紧张感。遇到这种状态时,教师首先可以凭借平时深入的备课,稍作思考(可能5~10秒),问题可能就得到可以解决。这时讨论就变得更为引人入胜,学生的积极思考实际影响了讨论的导向,这种情况没什么不好。教师要有承担风险的勇气,同时还可享受到当堂弄清某些事情的兴奋。另一方面,教师需要逐步积累处置这种情景的经验,自己要意识到,同时试图让学生也意识到,有一些问题需要仔细的考虑,并不能马上得出结论,还有一些问题是一些开放的问题,并且承诺关于此问题教师经过一些时间的思考(可能一个课间休息,或下一次课)后,一定会给大家一个负责任的答复。这样学生会觉得讨论有趣,不会害怕犯错而拘谨;教师也在这个过程中感受到学生更为积极的学习状态,并因此受到鼓励。
4.了解并督促学生
教学的过程是教师与学生互动的过程。教师的每一次教学过程都不会一模一样。他要根据教学对象的不同,做出相应的内容调整,也要根据每堂课学生的状态做出相应的节奏调整。只有学生能够接收、愿意接收,教学才可能有效。
适时的提问可以让学生适当地紧张起来,但对于答错或说不出结果的学生,不要批评,让其周围的学生代为回答,然后一起坐下。对于讲解中的一些重要部分也可以通过提问来引起注意,经常的提问让教师更了解每个学生,同时学生与教师之间的关系更加紧密。作业的及时检查也是必要的,每次课前可以在黑板上将一些普遍性的问题进行分析、讲解。教师对作业的及时反馈可以提高学生的积极性,另一方面对于知识的复习与融会贯通都有帮助,学生从中可以体会到—个教师的责任心,这是非常重要的。教师的工作态度会影响学生,特别是有影响的、有一定声望的教师,他们的教学态度对学生的影响可能持续一生。
5.结语
教师要相信学生的潜力无限,同样相信自己,能够经过坚持不懈的努力,引领学生走向更为广阔的空间。通过5年来对该门课程的教学体会,以及近20年的相关课程教学经历,笔者得到了一些宝贵的经验,同时也不断发现自己的不足,此处给出的一些想法,不一定成熟,不妥之处还望同行批评指正。
点击下页还有更多>>>计算机系统结构课程论文