前言:中文期刊网精心挑选了计算机体系结构方向范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
计算机体系结构方向范文1
关键词:计算机体系结构;教学方式;课程内容;卓越工程师
作者简介:李旎(1978-),女,浙江温州人,湖南城市学院信息科学与工程学院,讲师;吴宏斌(1964-),男,湖南益阳人,湖南城市学院信息科学与工程学院院长,教授。(湖南 益阳 413000)
中图分类号:G642.0?????文献标识码:A?????文章编号:1007-0079(2012)31-0079-01
2010-2020年,中国“卓越工程师教育培养计划”将用10年时间,培养百万高素质各类型工程技术人才,为建设创新型国家、实现工业化和现代化奠定人力资源优势。“卓越计划”具有三个特点:一是行业企业深度参与培养过程,二是学校按通用标准和行业标准培养工程技术人才,三是强化培养学生的工程能力和创新能力。本文就第三点,以“计算机体系结构”课程为例,提出了从课程内容与教学方式两方面进行课程教学模式的创新,以提高学生工程能力与创新能力的一些探索。
“计算机体系结构”是计算机科学与技术专业的一门基础和必修课程,覆盖了计算机组成原理、操作系统、编译原理、数据结构、数字电子技术、模拟电路基础等方面的内容。课程的目的是帮助学生建立整机系统的概念,提高学生从总体结构的层次来理解和研究计算机系统的能力。
“计算机体系结构”不仅是计算机专业研究生入学考试的专业课程之一,也是其他计算机类考试的必选内容。目前的计算机类考试主要是以下两种:软件水平考试,分初级、中级和高级三个级别;IT认证考试。无论哪种考试都涉及计算机体系结构的内容。比如,系统分析师考试大纲就要求学生了解各种计算机体系结构的特点与应用(SMP、MPP等),构成计算机的各类部件功能及其相互关系;实现性能计算(响应时间、吞吐量、TAT),性能设计(系统调整、Amdahl解决方案、响应特性、负载均衡)和性能指标(SPEC-Int、SPEC-Fp、TPC、Gibson mix、响应时间)。这从一个侧面说明,“计算机体系结构”是一门非常重要的计算机专业课程,对提高计算机专业学生的分析、计算和设计能力有很大的帮助。但是,在实践教学中,发现这门课程存在内容抽象、语言枯燥、学生难以理解等问题,因此教学难度大,效果也不尽如人意。为了做好“计算机体系结构”课程的教学,培养出高素质的计算机专业学生,我们改变了传统单一的教学模式,从教学方式和课程内容两个方面来改进课程教学。
一、教学方式的改进
1.启发式课程教学
启发式教学是指教师在教学过程中根据教学任务和学习的客观规律,从学生的实际出发,采用多种方式,以启发学生的思维为核心,调动学生的学习主动性和积极性,促使他们生动活泼学习的一种教学方式。
在教学中,先给学生设置悬念,然后再讨论需要讲解的内容,从而提高学生的兴趣。Nancy M.Dixon指出:我们能够记住所听到的10%,所看到的15%,边看边听的20%,做的10%,积极去做并得到响应的80%,给他人讲授的90%。所以,在常规教学中,学生能掌握的知识是有限的,需要创造情景,使学生积极地做并进行响应,若能转换成学生自己也能讲授的程度则更好。教师经常要求学生自问:如果自己是老师,会怎么讲这些内容,并要求在学生之间互相扮演教师和学生的角色,讲述课程内容。如在讲述流水线技术的过程中,笔者先向学生提出:为什么要采用流水线技术,怎样实现流水线,它与工程上的流水线有何相关。课堂中,首先以经典的五段式流水线为例,和学生一起探讨这个问题;然后,鼓励他们积极思考,踊跃发言;最后,由他们推出一位学生做总结性的发言。现场气氛活跃,课堂效果非常好。在期末考试中,关于流水线方面的知识,大部分学生均拿了满分。
2.量化分析教学
培养从总体、系统的角度来分析和解决问题的能力以及自主创新能力,对学生的成长和未来发展有很大的影响,“计算机体系结构”特别强调培养学生的这一种能力。“计算机体系结构”一般安排在大学四年级开始,需要学生在学完主要的软硬件基础课程后,从整体系统、总体设计的角度来理解和研究计算机系统,学习如何根据各种实际应用的需要,综合考虑软硬件,设计和构建合理的计算机系统结构。“计算机体系结构”课程中多是抽象的概念和原理,这些内容不被学生理解,且有限的实验环境也限制了学生自主创新能力的培养,但是,如果将研究对象转换成可以运算的数据,并对这些数据进行分析是完全可行的,这就是量化分析方法。
前人对量化分析法的定义和特点阐述主要有:量化研究遵循的是实证主义,它应用量的方法以验证假设;量的研究是指研究者事先建立假设并确定具有因果关系的各种变量,然后使用某些检测工具对这些变量进行测量和分析,从而验证预定的假设。“计算机体系结构”是从整体上研究由处理系统、指令系统、存储系统、信息传输系统构成的有机系统,其目的是设法提高整个系统的性能。对性能的分析主要就是采用量化分析法,将问题简化、精确化和客观化,使抽象的知识也变得形象起来。如在探讨计算机加速比S的过程中,以时间t为标准,比较计算机改进前与改进后的时间比值。实践证明,这样的效果非常好。
二、课程内容的改进
1.“计算机体系结构”课程和“计算机组成原理”课程有很多相似的地方
这两门课程都讲授输入输出系统、存储部件、数据表示等,但“计算机组成原理”作为一门硬件课程主要强调其基本运行原理,而“计算机体系结构”强调性能优化方法;“计算机组成原理”强调其细节,而“计算机体系结构”则强调的是软硬件的分配,及对性能的影响。现在有些专业中,在“计算机组成原理”中涵盖计算机体系结构的内容,有些专业则单独开设这两门课程。必须合理划分两门课的内容,组织教学内容和教学计划。现在,“计算机体系结构”课程主要讲述内容为流水线技术和存储技术,并对嵌入式系统方向的学生加强了存储技术中虚拟存储系统的讲授。
2.强调知识的更新和发展
计算机技术是发展最快、应用最广、影响最大的学科之一,“计算机体系结构”知识也在日新月异发展着。近年来多核技术、虚拟机、复杂存储系统和先进互联技术的发展使经典的计算机体系结构内容有了很大的更新。怎样运用有限的课堂时间,使这些复杂技术与经典体系结构知识点融合,是教学内容改革的主要任务。
同时,就是同一门课程,不同的作者所编著的教材的内容和侧重点都有很大的不同,如张晨曦所编著的《计算机系统结构》Catch部分,偏重于Catch性能的分析与优化,而李学干的《计算机体系结构》,则偏重于Catch系统的结构,且着重描述了虚拟存储器的结构和功能。
所以,教学中既不能照本宣科,也不能脱离书本,根据专业方向的不同,有选择性地进行讲授,同时将一些新技术、新知识、新产品以及最新的发展动态,融入课堂教学中。
3.加强实验教学环节
实验是任何科学创新的源和本。在学校教学工作中,理论课和实验课是教学体系中两个互相有联系的独立环节,要重视实验,决不能把实验课看成是理论课的依附。
计算机专业作为一门应用型专业,需加大培养学生的动手能力,激发他们的创新潜能,通过实验将课堂和实践结合,改善理论教学枯燥、单调的情况。现在“计算机体系结构”课程实验学时仅8个学时,而很多著名的高等院校如同济大学的实验环节已增加到了24学时,很值得借鉴。
三、结束语
人才是一个国家发展最重要的资源,能否培养出有优秀工程能力和创新能力的人才,最后的关键还要看是否有一个科学的课程体系和教学内容。探索说明,只有不断改进课程教学,才能培养出更多的高素质人才,实现我国的“卓越计划”。
参考文献:
[1]于永斌,徐洁,吴晓华,等.多核时代的“计算机系统结构”课程[J].计算机教育,2011,(6).
[2]张晨曦,刘依.探索新的教学模式和方法,建设计算机系统结构精品课程[J].计算机教育,2007,(12).
计算机体系结构方向范文2
一、教学
1. 本科教育
美国的计算机本科教育首先就是有强大的网络支持,无论学生注册、选择课程、挑选教授、提交作业、课程答疑等等均在网上完成。当你注册为学校的学生、教师或其他职员时,将会获得一个学校的账号,供你在网络上登录学校的网站,享受学校提供的服务。美国大学的计算机房全天开放供学生使用,甚至在学校的体育馆、图书馆、医院、书店等公共场所均有免费使用的计算机和打印机,使你可以随时方便地完成你的学习和工作,可以说,在这里,网络无处不在。
因笔者在国内讲授计算机体系结构课程已有多年,为了能更清楚地了解中美课程教授的区别,所以在印第安纳大学也专门完整选修了这门课程。首先带给我的冲击是,本门课程的教授并不像想象中的那样。在我的认识空间中,美国是世界上计算机技术发展最快的国家之一,其教授的课程内容也应该是最新最快的,而当教授打开电子讲义时,我发现其中很多内容是1998年的讲义。惊诧之余,我也对此进行了很长时间的思考。
计算机体系结构课程教学主要是解决“如何在现有的技术条件下设计出性能价格比高的计算机系统”的问题,也即着重介绍如何运用各种先进的技术将计算机系统的各个功能单元有效地组织起来,以最小的代价获取最高的系统性能。基于这样的思想,对本门课程的学习需有一些先修的前导课程和预备的知识点,也就是说,要有一定的技术储备才能更好地掌握这门课程的精髓。
目前国内的大学面对计算机科学这样一门迅速发展的学科,希望最大限度地紧跟国际计算机科学发展的最新理念和技术,并将最新的信息传授给学生,而实际上会导致教师一味追求最新最快,而忽略了最基础的知识,反而结果适得其反。
就计算机体系结构这门课程而言,其关键内容包括计算机体系结构的基本概念、指令集结构设计、流水线技术、向量处理技术、并行处理技术、存储系统设计技术、I/O系统设计技术、多处理机技术等等,这些技术在整个计算机发展的过程中其指导思想并没有发生根本的变化。例如流水线技术,自出现以来,就遵循时间并行的思想,实质上是多条指令同时执行各自的操作,在此基础上发展了超流水线等技术,只有打好了基础,才可能举一反三,使学生在了解了流水线基本原理的基础上迅速掌握其他更新技术。因此,在课程讲授上,应紧密结合实际情况,克服脱离实际的现象,避免因迎合市场而盲目追求最新的理论。
在美国的大学,几乎每一门课程都有它的主页和教授的个人主页链接,所有的作业和project都会通过网络,教授也可以通过网站和电子邮件解答学生的问题,这些工作在网络上解决已经成为最为方便和快捷的方式。
在计算机的课程中,课堂讲授只是其中的一部分,在实验室完成的项目和作业占很大的比例。以计算机体系结构为例,课堂讲授每周两次,每次两个学时;实验室每周两次,每次两个学时。平时的作业和project很多,这也是与国内不太相同之处。国内比较重视最后的考试,因此可能出现的情况就是学生平时很轻松,甚至可以不上课,只靠期末的紧急突击就可取得好成绩,但是知识的掌握却不扎实。印第安纳大学的计算机体系结构课程的学生成绩由4部分组成:Homeworks/Paper占15%,Labs占30%,Midterm占20%,Final占35%。它将学生最终取得的成绩分散在整个学期内,并且在学习的过程中除了理解课堂讲授的知识之外,还会从各个角度扩展学生的知识面。教授会给学生布置团队作业,由3-4名学生自由组合成一个团队,充分发挥团队中每个人的力量,完成团队作业后要交paper(论文),并由团队中每个人在课堂上为所有学生演讲自己负责部分的研究成果,每名成员的演讲时间很短,但是可以保证给每名学生上讲台的机会。在演讲过程中,教授和其他学生可以随时打断话题,提出自己的问题或观点,只要是与演讲内容有关的问题都可以发问。在此过程中,可以考查学生的查阅资料、完成作业的能力,培养学生分工合作和学生之间的团队合作能力,并且给学生充分的空间提出创新思想,还可以锻炼学生的表达能力,从各个角度都可以很大程度地提高学生对本门课的理解和吸收。
2.研究生教育
美国的研究生教育与中国有着很大的不同。首先,美国的计算机研究生无论是TA(Teach Assistant),还是RA(Research Assistant)都有学校或教授提供的奖学金,并足以经济独立,这就使学生可以没有后顾之忧地全面投入学习和科研。在国内的高校中,基本上没有严格的淘汰制,即使答辩没有通过也有延期答辩的机会,所以基本都可以获得学位。美国大学对硕士生和博士生的学位评定却非常严格,淘汰率也很高,要进行层层筛选。
美国大学的研究生培养非常重视课程学习,而且课程的设置范围很广。以印第安纳大学的计算机系为例,每个博士生需要修满90个学分,一般一个课程3学分,但是有很多课程不需要上课,一般有50个学分是需要上课的。注册以后导师会指定几门与研究方向有关的课程,其他的由学生自行选择,最后由导师批准。
每门课程的编号都有特殊的意义,例如,初始字母中A代表非专业,B代表本科和研究生的其他课程,C代表本科生专业课程,P代表编程课程,Y代表自学等等;课程编号中的第一个数字分为几种,1-4代表本科生课程,5-6代表研究生课程,7代表研究生的研究和自学课程;中间的数字含义是0-1代表基础和算法,2代表程序设计语言,3-4代表硬件和软件系统,5-8代表应用,9代表特殊主题。在计算机系的主页上会有详细的课程列表和介绍,包括必修和先修课程,以及教授的主页,方便学生查阅。
在选课过程中,还可以选择其他系和专业的课程,都不受限制,这样可以为学生提供掌握交叉学科的机会,甚至可以打破一级学科的限制进行选课,这样培养出来的学生适应能力和研究能力相对较强,尤其是对计算机学科而言,在很大程度上将成为一门工具,在与其他学科交叉后将发挥更大的威力。例如,计算机学科在与生物、化学、物理等学科结合起来后会有更大的发展空间,也有利于学生毕业后的发展。
在美国的大学里,申请博士研究生需要通过qualify(资格审查),计算机系的学生通常要通过3~5门考试,每门课程有两次机会,如果两次都不能通过,就没有资格申请博士学位,只能转成master(硕士)了。通过qualify以后要进行proposal(开题)和final defense(答辩),全部通过才可以获得博士学位,每一个步骤的审查都非常严格。通常情况下,从入学到获得博士学位至少需要5年时间,有的甚至需要7年以上,取决于研究课题的进展。整个博士研究期间,都由导师负责,指导研究方向,分配研究任务,关注课题进展情况,参加学术会议,从而提高学术水平和扩大知识面。
在中国,博士生也通常要5年或5年以上,也有3年或4年可以获得博士学位的,不过没有资格审查这一关,因为中国一般想获得博士学位首先要取得硕士学位,除非少数硕博连读的学生,这一点有很大的不同。美国的硕士学位相对来说比国内要容易一些,一年或一年半修完课程即可获得学位,不用参加课题研究,因此美国的教授通常认为中国的硕士学位要比美国的硕士学位含金量高一些,而博士的水平要比美国差一些。
二、科研
笔者所在的实验室是专门做科研的,不兼顾教学任务,相对来说课题任务多,成果也多。大多数项目都是与其他学科的结合。例如,笔者在作访问学者期间就参加了一个与化学系合作的科研项目,使用现代网格技术将分布的化学工具、模拟、文档和相关的生物资源的数据库进行集成。这样的项目必须需要计算机系和化学系共同完成,因此计算机系与其他系的合作显得尤其重要。
博士生需要有,就需要投入大量的精力进行科学研究,而一个良好的科研环境非常重要。在美国,实验室会为你提供你所需要的软硬件设备,只要你拥有学校的账号,就可以免费到学校的网站下载需要的常用软件,教授也会提供你科研所必备的正版软件。实验室会为你提供一个纯粹的学术环境,为你的论文成果提供完善的条件和空间。
三、总结
计算机体系结构方向范文3
关键词:知识关系;离散数学;教学;设计
离散数学是以有限或可数个元素作为研究对象,并且是以研究离散量的结构和相互之间的关系为主要目标[1]。计算机科学领域中的离散量理论问题,需要用离散数学所涉及的概念、方法和理论做出描述和深化[2]。同时,离散数学中的理论体系结构有益于学生概括抽象能力、逻辑思维能力、归纳构造能力的提高,有益于学生严谨、完整、规范的科学态度的培养[2-3]。因此,研究离散数学在计算机科学和技术专业课程中的地位,分析离散数学与计算机专业其他学科间的关系,构建适合当前计算机专业的离散数学教学内容,对计算机科学与技术的发展,起着极为重要的作用。
1离散数学在计算机科学与技术专业课程中的地位
教育部高等学校计算机科学与技术教学指导委员会在2007年公布了计算机科学与技术(计算机科学方向)专业规范,共指定了15门核心课程,包括计算机导论、程序设计基础、离散数学(结构)、算法与数据结构、计算机组成基础、计算机体系结构、操作系统、数据库系统原理、编译原理、软件工程、计算机图形学、计算机网络、人工智能、数字逻辑、社会与职业道德[4]。其中离散数学的教学内容不仅涉及计算机硬件,而且和计算机软件的研究有着更密切的关系,具有鲜明的基础特点,不仅是学习算法与数据结构、操作系统、数据库原理、软件工程等11门课程之前的必修内容,同时以计算机导论和程序设计基础作为离散数学的先导课程。离散数学在计算机科学与技术专业各课程的地位及其与其他课程的关系,如图1所示。
2计算机科学与技术专业后续课程用到的离散数学知识
离散数学所包括的多个数学分支,如数理逻辑、集合论、图论、自动机理论等,都与计算机科学与技术专业的后续课程有紧密的关系。
算法与数据结构中将操作对象间的关系分为4类:集合、线性结构、树形结构、图状结构或网状结构。其中逻辑结构和基本运算操作来源于离散数学中的离散结构和算法思考。离散数学中的集合论、关系、图论和树等内容就反映了数据结构中四大结构的知识[2]。
数据库系统原理中的关系数据库的逻辑结构是一个由行和列组成的二维关系。在研究实体集中的域和域之间的关系、表结构的确定与设计、关系操作的数据查询和维护功能的实现、关系分解的无损连接性分析、连接依赖等问题时都用到离散数学的关系理论[5]。
编译程序一般由8个模块组成,包括词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、错误检查和处理程序、各种信息表格的管理程序[6] 。离散数学里的形式语言与自动机所包含的文法、有限状态机和图灵机等知识点为编译原理的词法分析及语法分析等内容奠定了基础。
离散数学中数学推理和布尔代数章节中的知识就为早期的人工智能研究领域打下了良好的数学基础[7-8]。谓词逻辑演算为人工智能学科提供了一种重要的知识表示方法和推理方法。
布尔代数已成功地用于计算机的硬件分析与设计[9-10]。
哈夫曼(Huffman)压缩是一种无损压缩法。这种方法在计算机体系结构的指令系统设计和改进内容占有相当重要的地位[11]。
鉴于篇幅所限,不再一一论述,下面列表给出计算机科学与技术专业的后续课程中所用到的主要知识点,如表1所示。
3离散数学的知识结构设计
基于离散数学在计算机专业具有基础性的地位。从离散数学后续课程所需的离散结构基础理论出发,根据前后课程的知识关系来构建离散数学的知识结构和体系,使所设计的离散数学教学内容适合当前计算机科学与技术专业教学需要,能够支撑后续课程的教学且和后续课程不相互覆盖。本文设计的离散数学知识体系结构如表2所示。
表2所设计的知识体系结构共分为5个单元,分别是集合、关系与函数,基本逻辑,布尔代数,图与树,形式语言与自动机。其中,集合、关系与函数单元包括集合、鸽笼原理、基数性和可数性、关系、函数等内容,是算法与数据结构、数据库系统原理等课程的理论基础;基本逻辑单元包括命题逻辑、谓词逻辑、假言推理、否定式推理等内容,是计算机组成基础、计算机体系结构、软件工程、人工智能、数字逻辑等课程的理论基础;布尔代数单元包括格、布尔代数等内容,是计算机组成基础、计算机体系结构和人工智能等课程的理论基础;图与树单元包括无向图、有向图、树、生成树等内容,是算法与数据结构、操作系统、软件工程、计算机图形学、计算机网络等课程的理论基础;形式语言与自动机单元包括文法、有限状态机和图灵机等内容,是编译原理等课程的理论基础。
该设计体现了“实用、管用、够用”、“易教易学”的原则,具有以下特点:
1)5个单元由浅入深、层层递进,并具有相对的独立性,便于学生学习和教师授课。
2) 具有针对性,能够支撑教育部高等学校计算机科学与技术教学指导委员会于2007年指定的11门后续课程。
3) 符合计算机科学的发展趋势和高等院校计算机教学改革的需要。
4) 紧扣离散数学和其他计算机专业课程的知识联系,实用性强。
4离散数学的实验设计
由于离散数学课程理论性强、高度抽象,学生难于理解掌握。为此,在离散数学的教学过程中引入一些实验,既对离散数学的基本理论的很好验证,也巩固了先导课程的学习内容,同时为后续课程的学习打下了基础。不但能够激发学生的学习积极性和主动性,也培养了学生的创新意识和创新能力。实验选题既要反映理论的实质内容与思路(理论背景),又要与实际应用结合,选题不宜过多,针对不同的知识点设计了如下实验内容:
实验1 集合运算;
实验2 等价关系的判定;
实验3 用warshall算法求闭包;
实验4 偏序集性质;
实验5 求解范式;
实验6 形式化证明;
实验7 哈密尔顿图与旅行商人问题;
实验8 树的遍历、求解生成树;
实验9 有限自动机的运行。
实验报告要求列出实验目的、实验内容、实验步骤、源程序和实验结果。
对源程序的设计要做到如下两个方面的描述,其一是描述该程序具有什么功能?其二是描述程序结构,包括函数调用格式、参数含义、返回值描述、函数功能;函数之间的调用关系图、程序总体执行流程图。
对实验结果要求记录:出错次数、出错严重程度、错误的性质、解决办法。还要进行简单的实验总结:如编程时间、设计时间、上机调试时间等;遇到了哪些难题,是怎么克服的,对程序的评价?
5结语
离散数学不仅是学习计算机科学、研究计算机科学的理论工具,也是提高学生逻辑思维能力、创造性思维能力以及形式化表述能力工具,在现代计算机科学中,对离散数学教学内容做科学合理的设计,使离散数学更好的为计算机科学服务,具有非常重要的意义。
注:河南科技学院精品课程建设项目。
参考文献:
[1] 王蕾,李永. 浅析离散数学在计算机科学中的应用[J]. 平顶山师专学报,2003,18(5):63-64.
[2] 陈敏,李泽军. 离散数学在计算机学科中的应用[J]. 电脑知识与技术,2009,5(1):251-252.
[3] 王玉红. 离散数学在计算机教学中的作用[J]. 赤峰学院学报:自然科学版,2008,24(1):90-91.
[4] 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术发展战略研究报告暨专业规范(试行)[M].北京:高等教育出版社,2006:35.
[5] Patrick O'Neil,Elizabeth O'Neil. 数据库原理、编程与性能[M]. 周傲英,俞荣华,译. 北京:机械工业出版社,2003:16-46,239-288.
[6] 蒋立源,康慕宁. 编译原理[M]. 2版. 西安:西北工业大学出版社,2001:3-15.
[7] 谢晋. 试谈离散数学在计算机学科中的重要性[J]. 黄石理工学院学报,2006,22(1):90-93.
[8] 蔡自兴,徐光佑. 人工智能及其应用[M]. 北京:清华大学出版社,2003:10-20.
[9] 白中英. 数字逻辑与数字系统[M]. 北京:科学出版社,2002:6-15.
计算机体系结构方向范文4
计算机应用基础、应用文写作、数学、英语、德育、电工与电子技术、计算机网络技术、C语言、计算机组装与维修、企业网安全高级技术、企业网综合管理、windows server 2008操作系统、局域网组建、Linux服务器操作系统、网络设备与网络技术(主要学习思科、华为公司设备的配置、管理、调试)、SQL Server、网络综合布线技术、CAD绘图等。
2、计算机专业简介:
计算机专业是指计算机硬件与软件相结合、面向系统、更偏向应用的宽口径专业。通过基础教学与专业训练,培养基础知识扎实、知识面宽、工程实践能力强,具有开拓创新意识,在计算机科学与技术领域从事科学研究、教育、开发和应用的高级人才。
计算机体系结构方向范文5
摘 要:文章针对美国一流大学的计算机组成与系统结构实验课程进行研究,重点介绍UC Berkeley,MIT,Stanford University,CMU相关实验课程的内容和特色,为我国大学计算机组成与系统结构实验课程今后的改革与发展提供参考。
关键词:计算机组成;计算机系统结构;实验课程
作者简介:王帅,男,讲师,研究方向为计算机体系结构、嵌入式系统;袁春风,女,教授,研究方向为Web信息检索与本文挖掘、多媒体文档处理、计算机体系结构。
1 美国大学计算机组成与系统结构实验课程概况
美国一流大学有着悠久的历史和长期的经验,所以我们深入研究和分析他们近几年在计算机组成与系统结构实验课程上的内容设置与教学变革,希望能够对我国大学的计算机组成与系统结构实验课程今后的改革和发展提供一些参考与启发。
由于院系设立的不同,美国大学与计算机相关的院系一般可分为几类:单独的“计算机科学系”(CS),与工程相结合的“计算机科学与工程系”(CSE),和电子工程联合的“电子工程与计算机科学系”(EECS)等。由于院系的类别不同,他们对于计算机组成与系统结构等课程的实验内容和要求也不同,这种不同也是由于师资力量的不同造成的。例如计算机科学系对于计算机组成与系统主要是从整个计算机系统出发,强调从高层(应用和软件)到底层(硬件)的掌握与了解,实验手段一般也是采用高级语言来实现对硬件的模拟。有着工程背景的计算机科学与工程系和电子工程与计算机科学系,一般比较强调对于硬件的深入了解和底层的实现,要求学生采用VHDL,Verilog等硬件描述语言进行一些功能部件和小型系统的设计,并在FPGA等硬件上进行测试验证;有着师资条件的电子工程与计算机科学系还会开设大规模集成电路设计(VLSI)等课程,以加深学生对于计算机系统的全面了解。
虽然学校之间要求不同,但是作为计算机科学的一门核心课程,计算机组成和系统结构在每个学校都有着很重要的地位,而且都会配有相对应的实验课程,使学生有更加直观的认知和实践经验。
2 美国大学计算机组成与系统结构实验课程内容与分析
2.1 UC Berkeley(University of California, Berkeley)
对于UC Berkeley关于计算机组成与系统结构的课程设置,袁春风教授等[1]在《计算机教育》杂志中已经作出深入而详细的总结。CS61C(Machine Structures)[2]作为所有和计算机组成与系统结构相关课程的先修课程,实验部分采用高级语言实现和软件模拟的方法。CS150(Components and Design Techniques for Digital System)[3]的实验采用FPGA实现MIPS指令系统的方式,并由一个游戏程序进行验证。由此可见对于电子工程与计算机科学系(EECS)的UC Berkeley采用了软件和硬件实验并重的方式,使学生能够全面地了解计算机系统。
2.2 MIT(Massachusetts Institute of Technology)
作为又一个EECS,MIT的“电子工程与计算机科学系”也是注重学生对底层硬件的掌握与设计。和计算机组成与系统结构实验相关的课程主要是6.004 (Computation Structures)[4]。课程的内容从基本的信息系统和数字系统的概念,讲到电路中的时序逻辑、有限状态机(FSM),然后从计算机系统中的流水线、指令集,介绍到机器语言、编译等。后期课程根据计算机系统设计中常见的问题,讨论了例如中断、死锁、流水并行等。整个课程涵盖范围很广,很多地方已经涉及到了编译原理、操作系统等课程的内容,对学生的要求较高。
对于MIT课程6.004配套的实验,开始部分采用了类似于HSPICE的模拟器JSim对基本电路和部件的特性进行模拟和了解,设计了如基本的加法器、算术逻辑单元(ALU)、有限状态机等。然后他们采用了根据课程配套开发的BSim模拟器,来提供对于课程中用到作为实例的Beta 处理器结构(图1)的支持。Bsim可以提供高级语言程序的输入,编译和二进制代码转换,载入代码和模拟执行,并显示结果。学生要求实现手动的编译程序(写出高级语言对应的汇编程序),用JSim实现对应的Beta Architecture,在原有的指令系统中加入新的指令,最后实现并验证整个系统。由此可见,MIT的实验课程也是强调硬件模拟(JSim)和软件模拟(Bsim)的结合,通过从高级语言到机器执行的整个过程的介绍,让学生有一个全面的了解。
图1 MIT 课程6.004 Computation Structures中的Beta 处理器结构[4]
2.3 Stanford University
Stanford的计算机科学(CS)与电子工程(EE)是两个独立的系,因此他们之间的课程也相对独立。目前和计算机组成与系统结构相关的课程主要有:CS的CS107(Computer Organization and Systems)[5],EE的EE108a(Digital Systems I)[6]和EE108b(Digital Systems II)[7]。
CS107(Computer Organization and Systems)由于是设立在计算机系(CS),课程强调从C语言编程的角
计算机体系结构方向范文6
关键词:计算机复杂工程;虚拟仿真;创新能力;课程群;实践体系
0.引言
计算机科学与技术是一门基础学科,计算机能力是当代大学生必备的能力之一,建立大学生创新创业教育体系,完善创新型人才培养模式非常重要…。但由于学校的学科优势、专业特色、课程设置、管理模式等情况各异,实验室资源条件也各不相同,计算机教育必须应对网络化时代的挑战,无论是技术发展、管理手段,还是学习模式变化,都使计算机领域的虚拟仿真实验教学成为必然。因此,引入虚拟仿真技术解决计算机复杂工程问题具有很高的现实意义和推广价值。
1.教学内容面向解决系统化工程问题
复杂工程问题需要扎实的专业基础知识,学校应面向计算机类专业的就业领域进行调研,根据调研的情况修订培养方案,在修订过程中把握3条主线,即软件架构与应用软件类(包括系统架构、软件开发等)、硬件应用设计类(包括嵌入式、组成原理等)、数据科学类(包括大数据分析、云计算等)始终贯穿培养方案,如图1所示为改革后的课程群。应用软件类第一学期开设c语言程序设计课程;第二学期开设c语言实践课程;第三学期开设数据结构课程,奠定软件开发基础;第四学期开设操作系统、数据库等,提升软件开发能力;第五学期开设专业程序设计课程,例如Web程序设计、软件综合课程设计等,强化专业应用软件设计开发能力;第六学期开设智能终端软件开发和软件工程等软件设计课程,提升应用软件系统创新设计能力;第七学期开设软件架构与应用开发课程,全方位提升软件架构设计开发能力,使学生从进入校园到离开校园,应用软件设计能力连续提高,直至就业。在此过程中,学校应充分利用校企合作,安排学生到企业实习、实训,以提高学生的软件开发能力,系统化地培养应用软件类人才。硬件应用类第一学期开设计算机科学导论课程、第三学期开设数字电路与逻辑设计课程;第四学期开设计算机组织与结构课程;第五学期开设嵌入式系统设计课程,奠定硬件开发基础;第六学期开设硬件综合课程设计,提升硬件开发能力。学校要瞄准“互联网+”,适应行业需求,增设数据科学方向。第一学期开设高等数学及计算机科学导论等课程;二学期开设概率论与数理统计课程;第三学期开设离散数学及数学建模/计算方法等课程;第四学期开设算法分析与设计课程等,奠定数据分析基础;第五学期开设数据挖掘基础课程,强化数据利用基础;第六学期开设大数据分析与处理、云计算与大数据实践等课程,提升大数据平台搭建和大数据分析应用能力,使学生从进入校园到离开校园数据分析处理能力连续提高,直至就业。实验室组建课外科技活动小组,包括嵌入式系统兴趣小组、智能终端设计开发小组、网页制作及组网兴趣小组等。
2.课程群建设面向复杂工程设计
我们把数字电路与逻辑设计、计算机组织与结构、操作系统和编译原理4门专业课构造为计算机系统核心课程群,重构了课程群的知识体系与实验体系,如图2所示。
软件架构方向培养学生系统的软件设计开发能力。我们将c语言程序设计、数据结构、数据库原理和软件工程4门计算机专业课程构造为该方向课程群,如图3所示。
数据科学方向主要培养大数据科学与工程领域的复合型高级技术人才,毕业生具有信息科学、管理科学和数据科学基础知识与基本技能,掌握大数据科学所需要的计算机、网络、数据编码、数据处理等相关学科的基本理论和基本知识,熟练掌握大数据采集、存储、处理与分析、传输与应用等技术。基于此,我们将概率论与数理统计、离散数学、算法分析与设计和数据挖掘4门计算机专业课程构造为该方向课程群,如图4所示。
3.引入虚拟仿真模式,建立多位一体的学生实践能力培养体系
在信息技术网络化、服务化的演变历程中,信息服务日益丰富,使计算机软硬件系统规模不断增大,复杂性不断提高,信息安全的形式也日益严峻。传统的基于单机和实物的实验教学条件难以呈现异构、复杂的网络环境,难以触及计算机体系结构(例如cPu设计、多核设计等),难以分析实时、潜在的安全威胁,导致学生理论与实际相脱节,对所学知识缺少系统性认识,在能力上无法适应产业发展对计算机人才的需求。因此,必须引入虚拟仿真实验技术,解决计算机各学科中的实验教学问题,完善现有计算机各学科实验教学体系。应重点开展与网络、计算机体系结构和信息安全相关的基础训练、综合设计和创新拓展3层次虚拟仿真实验,并通过随课实验、课程设计、专业实践、毕业设计等环节实施,实验体系如图5所示。
4.统一规划教学内容和教学方法
学生应将数学、自然科学、工程基础和专业知识用于设计CPU,并能够在设计环节中体现创新意识。在理顺教学内容的基础上,各课程以完成基本计算机系统设计和实现为教学目标,改进教学方法;在加强原理性知识讲解的同时,强化工程化实现方法的训练,力求学生在系统原理和工程实现方法两方面均有收获。
5.统一规划课程实验体系
计算机系统能力培养中,实践占有很大的比重,是学生运用所学知识解决实际计算机系统设计问题的过程,更是检验教学效果的重要手段。然而,计算机系统是一个复杂的系统,要让学生在有限的时间内完成教学和实践内容,需要我们精心设计教学实验体系,围绕教学改革目标设置各课程的阶段子目标和相应的实验内容;完成模块设计和实现后,再通过综合实验来最终集成,形成一个完整的计算机系统设计和实现。在计算机组成原理课程中,我们安排了8个教学实验,通过精心安排和组织,8个实验由基础到全面,由运算器、控制器到CPU设计,构成了一个基本完整的CPU系统。
(1)实验1(海明码)和实验2(乘法器)的目的在于了解和熟悉计算机系统的容错技术和海明码原理以及计算机系统的补码booth乘法器的原理。
(2)实验3(算数逻辑运算单元)的目的是掌握简单运算器的数据传送通路和验证4位ALU运算器的组合功能。
(3)实验4(时序部件)的目的是理解计算机控制器中时序控制部件的基本组成和工作原理,掌握启停逻辑电路、节拍脉冲发生器的工作原理及设计方法,了解启停逻辑电路、节拍脉冲发生器等电路的结构特点。(4)实验5(硬布线控制器)的目的是理解指令译码器的作用和重要性,学习设计组合逻辑控制器。硬布线控制器的控制信号直接由各种类型的逻辑门和触发器构成。
(5)实验6(微程序控制器)的目的是理解微程序控制器的控制原理,进一步掌握指令流程和功能,了解掌握微程序控制器的设计思路和方法。
(6)实验7和实验8(CPU设计)要求学生利用已有的计算机组成原理知识以及对计算机系统结构的初步学习,设计一个完整的CPU体系结构(包括指令系统、寻址方式、数据表示、寄存器结构、存储系统和流水线结构等)。