时间:2022-07-20 01:23:49
引言:寻求写作上的突破?我们特意为您精选了12篇计算机系统结构范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。
中图分类号:TP303
世界上第一台电子计算机ENIAC诞生于1946年,在问世将近70年的时间里,计算机共历经电子管计算机时代、晶体管计算机时代、中小规模集成电路计算机时代、大规模和超大规模集成电路计算机时代和巨大规模集成电路计算机时代,计算机更新换代的一个重要指标就是计算机系统结构。
1 计算机系统结构的基本概念
1.1 计算机系统层次结构的概念
现代计算机系统是由硬件和软件组合而成的一个有机整体,如果继续细分可以分成7层。L0:硬联逻辑电路;L1:微程序机器级;L2:机器语言级;L3:操作系统级;L4:汇编语言级;L5:高级语言级;L6:应用语言级。其中L0级由硬件实现;L1级的机器语言是微指令级,用固件来实现;L2级的机器语言是机器指令集,用L1级的微程序进行解释执行;L3级的机器语言由传统机器指令集和操作系统级指令组成,除了操作系统级指令由操作系统解释执行外,其余用这一级语言编写的程序由L2和L3共同执行;L4级的机器语言是汇编语言,该级语言编写的程序首先被翻译成L2或L3级语言,然后再由相应的机器执行;L5级的机器语言是高级语言,用该级语言编写的程序一般被翻译到L3或L4上,个别的高级语言用解释的方法实现;L6级的机器语言适应用语言,一般被翻译到L5级上。
1.2 计算机系统结构的定义
计算机系统结构较为经典的定义是Amdahl等人在1964年提出的:由程序设计者所看到的一个计算机系统的属性,即概念性结构和功能特性。由于计算机具有不同的层次结构,所以处在不同层次的程序设计者所看到的计算机的属性显然不同。
2 计算机系统结构的发展
2.1 传统系统结构
当Amadahl在1964年提出计算机系统结构的定义时,也提出了采用系列机的思想,它的出现被誉为计算机发展史上的一个重要里程碑。当人们普遍采用系列机思想后,较好的把硬件技术飞速发展与软件环境要求相对稳定的矛盾解决了,这就要求系列机的系统结构需要在相当长的时间内保持基本不变。其中,最重要的是保持它的数据表示、指令系统以及其他概念性的结构保持不变。
2.2 冯・诺依曼结构
冯・诺依曼结构(也称普林斯顿结构)是美国数学家冯・诺依曼在1946年提出的,他将计算机分为五大部件:运算器;控制器;存储器;输入设备;输出设备。其基本思想是存储程序,主要特点是:(1)单处理机结构,机器以运算器为中心;(2)采用程序存储思想;(3)指令和数据一样可以参与运算;(4)数据以二进制表示;(5)将软件和硬件完全分离;(6)指令由操作码和操作数组成;(7)指令顺序执行。
2.3 对冯・诺依曼结构的改进
为了更好的优化计算机系统结构,人们不断对冯・诺依曼结构进行改进,总的来说,共采用两种方法。一种是在冯・诺依曼结构的基础上进行“改良”;另一种是采用“革命”的方法,即脱离冯・诺依曼结构,和其工作方式完全不同,统成为非冯・诺依曼结构。
2.4 哈佛结构
哈佛结构的计算机分为三大部件:(1)CPU;(2)程序存储器;(3)数据存储器。它的特点是将程序指令和数据分开存储,由于数据存储器与程序存储器采用不同的总线,因而较大的提高了存储器的带宽,使之数字信号处理性能更加优越。
2.5 其他系统结构
冯・诺依曼结构开启了计算机系统结构发展的先河,但是因为其集中、顺序的的控制而成为性能提高的瓶颈,因此各国科学家仍然在探索各种非冯・诺依曼结构,比如,数据流计算机,函数式编程语言计算机等都是较为著名的非冯・诺依曼结构。
3 计算机系统结构的分类方法
研究计算机系统结构的分类方法可以帮助我们加深对计算机系统结构和组成特点的认识以及对系统工作原理和性能的理解。下面简单介绍2种比较常用的分类方法:Flynn分类法;冯氏分类法。
3.1 Flynn分类法
由于计算机系统结构由多级层次构成,因此在设计计算机系统结构时就可以有三种方法:(1)“从下往上”设计;(2)“从上往下”设计;(3)“从中间开始”设计。
4.1 “从下往上”设计
首先根据能够得到的硬件,参照已经生产出来的各种机器的特点,开发出将微程序机器级和传统机器级设计出来,然后依次往上设计,最后将面向机器的虚拟机器级设计出来。在硬件技术高速发展而软件技术发展相对较慢的今天,如果继续采用这种设计方法,会导致软件和硬件的脱离,因此已经很少使用这种方法。
4.2 “从上往下”设计
首先根据应用的需求,确定好整个系统的框架,然后逐层向下进行设计,同时可以兼顾到上层的优化,最后设计出微程序机器级和传统机器级。这种设计方法较好。
4.3 “从中间开始”设计
大多数将“中间”取在传统机器级和微操作级之间。在设计时,综合考虑软硬件,定义好分界面,然后由中间点分别往上、往下同时进行设计。此种方法可以缩短设计周期。
5 结束语
综上所述,本文对计算机系统结构进行了一些简单的介绍,它是计算机的灵魂,目前,如何更好地提高系统结构的性能,仍是各国科学家不断研究的课题。
参考文献
[1]陈书生,.计算机组成与系统结构[M].武汉:武汉大学出版社,2005.
[2]高辉,张玉萍.计算机系统结构[M].武汉:武汉大学出版社,2004.
[3]郑纬民,汤志忠.计算机系统结构[M].北京:清华大学出版社,1998.
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.
前言:所谓的“多核”是指一块芯片上集成多个处理器,这些处理器之间不需要设置共享关键资源,各自拥有独立的控制和计算部件。计算机系统结构多核综合实验的设计及应用,有利于满足计算机知识学习需要,更好地提升算机应用创新能力,使计算机原理和技术知识更好地被接受和应用。
一、计算机系统结构多核综合实验发展现状
计算机系统结构多核综合实验的发展,是基于多核技术发展到一定阶段的产物,多核综合实验在满足实验教学方面,也发挥了重要的作用。多核计算机的出现,具有代表性的厂家为IBM、Sun,其利用计算机理论对多核处理器进行设计,对多个计算机内核进行集成,以提升计算机的计算速度[1]。2007年1月份,Intel配置了2个4核处理器的8核计算机,随后Intel公司推出了roadmap,主流处理器达到144核,这表明多核计算机技术手段已经被人们掌握,可以应用于工作和学习当中。在对计算机系统结构多核综合实验应用过程中,清华大学设计了FPGA的开放式教学CPU设计,并利用Windows/Linux进行多核编程实验;南京大学配置Altera DE2实验板,利用硬件描述语言进行CPU设计;浙江大学开设了基于FPGA的CPU设计和多核编程实验。随着计算机系统结构多核化发展,人们对开展多核综合实验工作进行关注,并纷纷开设相关课程,注重提升计算机实验动手能力,使多核技术能够被更好的理解和掌握[2]。
二、计算机系统结构多核综合实验的设计实现
计算机系统结构多核综合实验设计过程中,需要对多核实验关注的知识点予以把握,并且在设计过程中,保证实验设计具有创新性,以满足实际需要。具体内容我们可以从下面分析中看出:
2.1多核综合实验的知识点
计算机系统结构多核实验设计,要注重对多核的本质及技术要点进行把握,从而使人们通过多核实验,能够掌握多核技术,对原有的计算机结构进行创新,更好地满足实际发展需要。计算机系统结构多核综合实验涉及的知识点主要包括以下几点:1、硬件设计技术、Cache与存储一致性、IO管理;2、多核技术与单核技术之间的差异性、嵌入式多核芯片技术、Cell、OpenSpare、Intel双核芯片;3、多核体系结构特征、多核API优化函数库;4、多线程编程对多核技术应用的影响、 Windows/Linux编程技术、OpenMP对多核的支持、多线程程序性能测评方法。
在进行多核综合实验教学过程中,要对计算机系统结构多核综合实验包括的技术要点内容予以把握,在实验设计时,能够对这些内容进行涵盖[3]。
2.2多核综合实验设计实现
多核综合实验设计过程中,需要考虑到硬件设计和软件设计相关内容。硬件设计方面,利用FPGA指令进行单CPU实验,并在后期结合FPGA特征,设计多个处理器内核,进行操作系统移植,保证CPU具有多核特性;软件设计方面,利用Windows/Linux多核多线程编程实验,对编程的思想和方法予以认知和理解,增强程序设计能力[4]。具体的实验设计,我们可以从下面分析中看出:
1、实验目的。多核综合实验设计的目的在于使学生能够对计算机内部结构和相关工作原理予以认知,能够掌握CPU分析、应用和设计的能力。同时,对硬件描述语言、EDA软件、FPGA芯片能够进行有效使用,具有一定的硬件动手能力,对硬件技术知识更好地了解。
2、平台设计。平台设计主要应用PC、FPGA-CPU、单片机控制电路等组成。
3、实验内容。借助于Verilog HDL/VHDL实现CPU软核,并利用EDA工具软件进行系统的模拟和测试,之后将模拟测试的内容加载到FPGA芯片中,保证单CPU能够以FPGA指令形成。通过利用FPGA芯片,对CPU的功能进行拓展,保证原有实验存在的缺陷和相关问题得到有效解决。同时,Windows/Linux多核多线程实验利用win32API、MFC进行实验操作,对可编程逻辑器件、操作系统功能予以了解和认知。
除此之外,实验设计过程中,还需要对实验测试的参数和指标范围予以明确。选择16个32位的寄存器,总线宽度为32位数据。
结束语:计算机系统结构多核综合实验教学,注重对计算机实验教学的实践性予以把握,通过利用多核技术,更好地提升人们对计算机软硬件知识的理解和掌握,并使人们在学习计算机技术过程中,能够创新发展,对相关理论进行更好的认知。因此,在进行多核综合实验过程中,要注重对FPGA技术予以有效把握,对多核技术内涵更好地理解。
参 考 文 献
[1]于永斌,徐洁,王华,张凤荔,吴晓华,丁旭阳. 计算机系统结构课程多核创新实验探索[J]. 实验科学与技术,2011,03:68-71.
中图分类号:G642 文献标识码:B
1 引言
“计算机组成原理”(CP)是高校计算机专业学生的一门必修的专业技术基础课,它不仅可使学生剖析和体验计.算机的基本组成和工作原理,掌握计算机系统的基本设计技术,而且可培养学生分析和解决数字系统实际问题的能力,同时也是培养计算机系统分析、系统设计和系统集成技术人员的一个有效的教育环节。它在整个专业课的教学中,起到了承上启下的作用,是“微机接口技术”、“汇编语言程序设计”、“计算机系统结构”等后继课程的基础。该课程以计算机5大部件内容为主线,以内部结构和工作原理为重点,介绍计算机内部各功能部件的结构和工作原理及其构成整机的原理。
“计算机系统结构”(CA)是计算机领域中的一门重要学科,它强调从总体结构和系统分析这一角度来研究计算机系统。学习本课程,对于培养学生系统地、自上而下地分析和解决问题的能力和抽象思维能力有着非常重要的作用。本课程通过讲解计算机体系结构的新发展,把国内外体系结构方面比较成熟的研究成果和关键技术融入课程当中,并把前续的“数字逻辑”、“计算机组成原理”、“操作系统”、“编译原理”、“数据结构”、“汇编语言程序设计”等课程中所需的软硬件知识有机地结合起来,从而建立起计算机系统的完整概念。
由此可见CP与CA有着紧密的联系,在现有的教材中甚至出现了比较多的重复,在学生中引起比较大的反应。本文主要针对这一问题进行研究,拟在理顺这两门课的关系,调整好两门课程的教学内容。
2 教学内容的研究
在cP与CA系列教材中,两门课程出现重复的内容有:计算机系统的层次结构和计算机系统的性能指标;浮点数据的表示、寻址技术、指令格式的优化设计、复杂指令系统(CISC)和精简指令系统(RISC):高速缓冲存储器(Cache)和虚拟存储器工作原理和地址的映像与变换;输入输出系统的原理和方式、中断系统的工作原理:流水线工作原理。重复的结果不仅占用了CA课程宝贵的课时,而且使学生产生了厌学情绪。CP与cA两门课程究竟如何分工?该不该重复?又该怎么重复?是教学中值得研究的问题,也是亟待解决的问题。
在课程内容的选择上,以教学大纲为依据,按照学科知识体系的完整性和适时性原则组织课程内容。在内容上做到没有知识的简单重复、没有重要知识的缺失,同时要删除已过时知识,并补充新知识,从内容方面激发、吸引学生的学习兴趣。本文重点研究分析重复内容的必要性、可完善性和创新性。
对于计算机系统的层次结构,在CP中作为概述来介绍,以了解微程序在计算机系统层次结构中的位置,可以更好地理解软件、硬件、固件的地位和作用;而在CA里则是从概念和功能上将计算机系统看成多级层次结构,这样有益于理解各种语言的实质和实现途径,探索虚拟机新的实现方法和新的系统设计。所以计算机系统的层次结构的概念在CP课程和CA课程中是必需的内容。
关于计算机系统的性能指标,由于在CP中讲述的是冯・诺依曼体系结构各组成部分的工作原理,所以了解各组成部分的性能指标是必要的;而在CA课程中用性能指标来衡量计算机系统的标准,所以有必要更深入分析CPU时间、MIPS、MFLOPS和成本指标。
对浮点数据的表示,在CP课程中介绍了浮点数据的表示格式和表示范围,在CA课程中不必再重复,只需介绍浮点数的基数的选择、表数精度和表数效率,然后介绍浮点数的IEEE 754表示;当然对于高级数据的表示,在CA课程中是必需的。
对于指令系统,在CP中介绍指令的格式、寻址方式和操作码的扩展编码方式,最后介绍CISC和RISe的概念和示例;在CA课程中主要介绍指令格式的优化,CISC和RISC设计的关键技术。
输入输出系统的原理和方式、中断系统的工作原理在两门课程中是重复最多的一部分,CA较CP多出了通道处理机和输入输出处理机简介,可以归入CP课程。但考虑到中大型计算机的输入输出系统在计算机系统结构中是很重要的部分,所以可以将通道处理机和输入输出处理机在CA中介绍,同时将CP中的系统总线简介也归于系统结构,并从系统设计的角度去介绍。
高速缓冲存储器和虚拟存储器工作原理以及地址的映像和变换在两门课程中也是重复较多的。在CP中可以仅介绍其工作原理;而在CA课程中重点在于其性能分析,深入学习替换算法及其实现,分析提高存储器系统命中率和性能的方法。
对于流水线工作原理,在CP中仅介绍了流水线、数据相关和控制相关的概念,但在CA中要学习流水线处理机、超标量处理机与超流水处理机,其中包括先行控制技术、流水线原理、流水线性能分析、非线性流水线的调度方法、局部数据相关和全局数据相关、超标量超流水超长指令字处理机和向量流水和向量处理机,其内容远多于CP,因此这部分内容完全归入CA比较合理的。
在CA与CP中的未重复的内容,比如向量处理、SIMD并行计算机、SIMD计算机的互连网络、多处理机将作为重点内容在CA中介绍。而在以上分析中,由于CA课程的内容部分归入了CP,所以可以在CA课程中添入新的内容,比如多处理机算法,包括并行搜索算法、串行算法到并行算法的转换、同步并行算法和异步并行算法,并行程序设计语言及其实现方法。最后可以介绍计算机体系结构的新发展,包括数据流计算机、数据库机与知识库机以及面向函数程序设计语言的归纳机。
以上对CP与CA两门课程的重复内容进行了分析研究,拟在理清两门课程的关系,合理解决两门课程的内容重复问题。
3 解决方案
解决该两门课程内容重复的宗旨在于把握CP注重原理介绍,而CA注重高性能设计和并行处理。通过对两门课程的内容的研究和分析,调整后的内容如表1所示。
随着计算需求的不断增长,由于复杂的芯片工艺与功耗成本限制,处理器的性能提升从原有的主频提高转为多内核发展。很快,一些大型机制造厂商,如IBM、Sun开始利用并行计算设计出了多核处理器(例如:IBM推出的CELL异构多核处理器,Sun公司推出的OpenSparc T1开源多核处理器[1]),这些处理器在一块芯片上集成多个计算内核,成倍地提高了计算速度。2006年,以Intel与AMD为代表的处理器制造商在年初和年底相继推出双核、四核处理器,紧接着,在2007年1月,Intel展示了配置两个四核处理器的八核计算机,这标志多核处理器开始全面进入市场,宣告计算机真正进入多核时代。
所谓“多核(Multi-core)”,即指一块芯片上集成多个处理核,各自拥有独立的控制和计算部件,无需共享关键资源。多核技术的发展给大学计算机教育带来新的课题,即在多处理器环境下,计算机系统结构、计算机操作系统、编译原理和应用软件的编程模型等都发生了很大的变化,促使大学计算机的教学需要做出针对性的变化。
计算机系统结构(Computer Architecture),作为研究计算机系统结构演化以及影响计算机硬件与软件系统设计的一门重要课程,在介绍计算机系统结构原理、分析设计方法、性能评价、发展趋势和新的实现技术上,需要增加多核技术这个重要的新知识点。在过去相当长的一段时间里,由于不具备开设计算机系统结构和多核技术相关实验的硬件平台和软件环境,
国内很多高校开设计算机系统结构课程时均未开设该课程的实验,特别是多核技术方面的实验,以至于学生没有实验教学和体验式实践而很难掌握该课程的知识。
为了更好地应对新的“多核”时代,电子科技大学的计算机科学与工程学院、信息与软件工程学院(原示范性软件学院)从2007年开始在计算机系统结构课程教学中引入多核技术。一是在理论教学上增加处理器体系结构、系统架构和程序设计内容,从三个方面给学生展现了一个比较完整的多核技术概览图景;二是在实验平台建设上设计多核实验,从实践环节上来锻炼学生的动手能力和提升其创新能力。
1实验教学的现状
在计算机系统结构课程中设计多核实验,须从计算机系统结构与多核知识的课堂教学成果入手,把握多核技术的理论教学动态。然后重点调查国内高校在多核实验教学方面的研究现状,为计算机系统结构中的多核技术实验设计提供必要的技术支持和可行性研究。
事实上,计算机系统结构课程重在培养计算机专业本科生的抽象思维能力、自顶向下系统分析和创新能力。全国重点和普通高校中几乎都开设了这门课程,出现了大量的课程教学与教研成果[2-12]。虽然课程教学成果多,但是实验教研成果小,而且还缺乏多核知识点的引入或多核体系更新不足。
作者简介:于永斌,男,副教授,研究方向为计算机系统结构、大规模集成电路设计与应用。
关于多核技术,清华大学的王小鸽[13]提供了理解多核技术、并行计算与未来计算机发展的视角。薛巍[14]从并行计算基础、高性能计算前沿技术研讨课、多线程/多核CPU逻辑设计短期课程等方面介绍了清华大学多核课程建设成果。吴继雁[15]简要地分析与总结了多核技术及发展趋势。北京交通大学计算机学院的刘近光和梁满贵[16]介绍了基于MIPS体系结构的多核处理器特点。浙江大学的陈天洲等[17-21]介绍了多核程序设计课程和进行了多核精品课程建设探索与实践,并主持了教育部骨干教师多核技术培训,对多核技术的教学科研做出了很大的贡献。武汉大学电子信息学院的杨剑锋等[22]介绍了“多核架构及编程技术”这一教育部-Intel精品课程建设成果。北京工业大学计算机学院的方娟[23]探讨了多核教学内容和教学模式。与这些多核技术的教学成果相比较,由于多核硬件实验平台与软件环境的难构造,使得多核技术方面的实验研究成果特别少。根据作者的可查文献,中山大学教学实验中心的程小雄和伍丽华[24]进行了基于FPGA的多核技术课创新实验探索,介绍了在现场可编程门阵列(FPGA,Field Programmable Gate Array)芯片和SoPC(片上可编程系统)、NOIS-II等工具软件所组成的软硬件平台下,开展多核技术课程创新实验的研究;并在新组成的多核系统中,移植和扩展了µC/OS-II操作系统,还设置了相关的实验环境和若干实验项目,对提高学生的综合实验能力具有积极的作用。
通过对计算机系统结构和多核技术课堂教研与实验教学动态的充分调研,我们不难得到多核技术在国内课堂与实验教学中的实施状况,虽有新增多核课程或修改原有课程(如:计算机系统结构、高级计算机体系结构或高等计算机系统结构)的教学内容,但较少涉及多核技术方面的实验教学。基于这样的背景,在计算机系统结构中设计多核实验,这对学生的实验能力和综合素质提高具有特别重要的作用。
2多核实验的设计
在计算机系统结构课程中设计多核实验,需要把握多核本质和其技术要点。多核的本质是为了解决高性能计算和并行计算问题,它在硬件和软件两个方面改变了传统的计算机系统结构。由此,多核技术的发展使得计算机系统结构的教学发生了变化,这种变化主要来自于多核技术所带来的新知识点。多核技术所涉及的知识点可归纳为硬件和软件两个方面,具体如下:
1) 多核硬件方面的知识点。
(1) 多核下的硬件设计技术,包括Cache与存储一致性、网络互联、IO管理;
(2)多核芯片与传统单核微处理器的区别,多核SoC(System on a Chip)芯片技术;
(3) 嵌入式多核芯片技术以及典型多核芯片:Cell、OpenSparc、Intel双核芯片、AMD双核芯片等;
(4) 并行体系与多核体系结构、多核平台结构与芯片组支持技术。
2) 多核软件方面的知识点。
(1) 多核操作系统、多核系统软件对并行编程的支持、多核API优化函数库,多核平台上编译工具;
(2) 多线程编程对多核的支持,Windows/Linux多核多线程编程技术;
(3) OpenMP多线程编程及性能优化,MPI (Message Passing Interface)编程及性能优化;
(4) 多核多线程程序的性能评测方法与工具。
基于上述的多核知识点,联系计算机系统结构原有实验,可在硬件平台和多核软件工具上设计多核实验。
多核实验,包括两个方面的实验内容。一是在FPGA芯片上设计多个同构或异构处理器内核,并进行操作系统的移植,最终做出一个可实际运行的多内核计算机系统;通过该实验,可增长学生对实验的兴趣,更深刻理解多核技术的知识点。二是Windows/Linux多核多线程编程实验,利用多核软件工具进行编程;在Windows平台下,利用Win32API、MFC或.Net Framework提供的接口来实现;若在Linux平台下,利用IEEE POSIX标准定义的API进行多线程编程。对于综合设计,可设计为学生课外的有关多核技术设计、实验或发展趋势调研的课程设计、创新设计或毕业设计,训练学生面对实际应用问题的综合分析、方案设计、多种程序设计结构的综合使用和实际工程问题的综合解决能力。
在计算机系统结构中设计多核实验,希望达到如下目标。
1) 设计多核实验,发展计算机系统结构课程教学与实验实践内容,按照Intel多核技术大学合作计划[25],实现高校与Intel的合作;
2) 理解普适的多核思想和硬件设计理念[26, 27],普及并行计算技术,使广大的本科生能在以后的程序设计与开发中可以发挥多核计算优势;
3) 通过多核实验,强化计算机专业本科生和未来的科研人员的实验动手能力,激发兴趣爱好
和创造潜能,帮助他们更有效地开展进一步的科研工作。
3结语
计算机系统结构中多核实验的尝试性设计,旨在教学实践中不断完善和创新,充分体现多核技术的革命。应用FPGA技术设计多核实验,是一种培养学生创新能力的尝试,一种引导学生从感性上理解多核技术内涵的实验创新,有利于促进计算机系统结构课程在多核时代的发展。
参考文献:
[1] David L. Weaver. OpenSPARCTM Internals[Z]. Sun Microsystems Inc,2008(10):1-36.
[2] 张晨曦,刘依. 探索新的教学模式和方法,建设计算机系统结构精品课程[J]. 计算机教育,2007(12):103-106.
[3] 张晨曦,王志英,刘依,等. 计算机系统结构课程内容体系的研究[J]. 计算机教育,2009(20):57-60.
[4] 吴晓华,徐洁,王雁东,等. 计算机系统结构课程教学探讨[J]. 实验科学与技术,2006(6):67-70.
[5] 王华,徐洁,王雁东,等. 计算机系统结构课程改革与探索[J]. 计算机教育,2009(10):15-17.
[6] 徐洁,王华,吴晓华, 等. 浅析SPEC基准测试程序集及评价指标[J]. 实验科学与技术,2010(6):21-24.
[7] 王志英,李宗伯,钱程东,等. “计算机体系结构”国家精品课程的特色与建设经验[J]. 计算机教育,2007(4):27-28.
[8] 姜晶菲,肖侬,王志英,等. “计算机体系结构”课程建设及改革思考[J]. 计算机教育,2009(18):3-5.
[9] 王志晓,夏战国,王凯. “计算机组织与体系结构”教学改革与探索[J]. 福建电脑,2009(2):213-214.
[10] 曲大鹏,薛建生,范铁生. 启发式教学法在计算机系统结构教学中的应用[J]. 辽宁大学学报,2010(3):218-220.
[11] 童小念,何秉娇,舒万能. 计算机系统结构实践教学环节的研究与实施[J]. 计算机教育,2008(3):66-68.
[12] 舒万能,童小念,何秉娇. 计算机系统结构实践教学体系研究[J]. 科技信息,2009(5):5-6.
[13] 王小鸽. 关于多核技术的几点思考[J]. 程序员,2006(9):56-58.
[14] 薛巍. 多核课程建设[J]. 计算机教育,2007(6):40-43.
[15] 吴继雁. 多核技术及发展趋势[J]. 哈尔滨轴承,2007(28):57-58.
[16] 刘近光,梁满贵. 多核多线程处理器的发展及其软件系统架构[J]. 微处理机,2007(1):1-3.
[17] 陈天洲,曹捷, 王靖淇. “多核程序设计”概述[J]. 计算机教育,2007(7):39-41.
[18] 陈天洲,刘苏明. 教育部骨干教师培训课程设计:多核技术[J]. 计算机教育, 2007(10):65-67.
[19] 陈天洲. 多核课程建设探索与实践[J]. 计算机教育,2007(2):51-55.
[20] 陈天洲,王靖淇,刘苏明. 从“教育部-英特尔精品课程”评审看大学对多核技术的课程改革[J]. 计算机教育, 2007(6):37-39.
[21] 陈天洲. 多核精品课程建设与拓展[J]. 计算机教育,2008(1):61-62.
[22] 杨剑锋,田茂,谢银波. “多核架构及编程技术”课程建设[J]. 计算机教育,2007(12):82-83.
[23] 方娟. 多核技术在“高级计算机体系结构”课程中的引入与探讨[J]. 计算机教育,2008(20):41-42.
[24] 程小雄,伍丽华. 基于FPGA的多核技术课创新实验探索[J]. 实验室研究与探索,2008(27):3-5.
[25] 英特尔软件学院. 辞旧迎新继往开来持续推进“英特尔多核技术大学合作计划”[J]. 计算机教育,2009(2):119.
[26] Kunle Olukotun,Lance Hammond,James Laudon. Chip Multiprocessor Architecture:Techniques to Improve Throughput and Latency[M]. San Rafael:Morgan & Claypool Publishers,2007:1-141.
[27] Ahmed Amine Jerraya,Wayne Wolf. Multiprocessor Systems on Chips[M]. San Fransisco:Morgan Kaufmann Publishers, 2005:357-392.
Multi-core Experiment Design of Computer Architecture
YU Yongbin, XU Jie, WANG Hua, ZHANG Fengli, LIAO Jianming, ZHOU Shijie
文章编号:1672-5913(2011)18-0023-04 中图分类号:G642 文献标识码:A
“计算机系统结构”课程是计算机及应用专业考试计划中的专业课程,是一门从组织和结构的角度上学习、领会计算机系统的课程。计算机系统是一个软、硬件综合体。随着计算机软件的日趋复杂,以及硬件在功能、性能、集成度、可靠性、价格上的不断改进,针对不同的应用,需要研究如何更好地对计算机系统的软、硬件进行功能分配,如何更好、更合理地实现分配给硬件的那部分功能,使系统有高的性价比,这是计算机系统结构课程学习和研究的主要方面,也是计算机系统结构设计、硬件设计、高层次应用系统开发和系统软件开发所必须了解和掌握的基本知识。通过本课程学习,学生能进一步树立和加深对计算机系统的整体概念,熟悉有关计算机系统结构的概念、原理,了解常用的基本结构,领会结构设计的思想和方法,提高分析解决问题的能力。同时,也能了解近十几年来在计算机系统结构上的进展和今后发展的趋势。本课程是高等工科院校中计算机专业的主干课,通过介绍目前通用的和先进的计算机系统来具体阐述计算机系统结构原理的各个侧面,使学生全面掌握计算机系统结构基本的概念、原理、结构和分析方法。学生在已经学习了“计算机组成原理”、“计算机操作系统”、“汇编语言程序设计”、“高级语言程序设计”等计算机软件和硬件方面的多门课程之后,通过学习“计算机系统结构”这门课程能够建立完整的计算机
系统概念,为进一步学习有关专业课程和日后从事计算机系统设计工作打下基础,因此在计算机专业的教学计划中占有重要地位和作用。
1 现状分析
计算机系统结构课程教学已在国内许多高校展开,但是目前的计算机系统结构教学普遍仍停留在以讲概念和讲原理为主的水平上,不能与新产品和新技术联系在一起,无法激发学生的学习主动性和创新意识的实践性,导致学生学完后“会背书,不会做”,从而严重影响教学质量,达不到预期设定的教学目标。
在微软亚洲研究院的大力倡导下,本课程拟引入由卡内基•梅隆大学提出的“Learning-by-doing”这一适用于工程教学的行之有效的先进教学理念,对“计算机系统结构”课程教学进行改革。
“Learning-by-doing”是由美国卡内基•梅隆大学率先提出的一种旨在强化工程学科学生全面的实践能力和工程素养的教学模式[1]。其思想精髓是对学生与教师进行角色转变,并充分激发学生自主学习的积极性,使学生真正成为课程的主角,使教师转变为学生的顾问。
这个改革希望通过“Learning-by-doing”教学模式来改变当前的计算机系统结构的教学现状,使同学们既能够在学中做,也能在做中学,从而达到好的学习效果,增强同学们的理解和动手能力。笔者下面将具体阐述如何开展课程的教学改革。
2 前期工作
“Learning-by-doing”教学模式的引入需要我们做大量的前期工作,其中包括:
1) 强化思想教育,注重学生综合能力的培养。在教学中,我们需要改变学生过于依赖课本和老师的现状,首先要在思想上去启迪同学们,灌输他们发挥自己创造力的思想,使他们明白不能只停留在书本上的概念和原理的理解,而要最后能完成一个完整的、甚至有创造性的微型计算机系统结构设计。并且在教学过程中,我们采用微软MSF先进项目组织和管理思想,使学生在校期间就能形成良好的软件工程素养和意识,改变他们普遍重视技术技巧,忽视工程项目过程管理的现状。
2) 重新规划系统结构内容和实验,降低学习门槛。在传统的以讲概念说原理为主的教学模式中,采用深入浅出的教学方式和灵活多变的多媒体教学方法。同时,对计算机系统结构课程的实验项目进行改革,增大课程覆盖的深度和广度,鼓励学生自主学习、按需学习。
在组织教学内容时尽量绕开硬件细节,以较易掌握的硬件部件为突破口,选用学生很容易接受的计算机组成原理(前期课程)教学设备入手,以达到事半功倍的学习效果。而且为了切实落实“Learning-by- doing”教学思想,我们为每一种计算机系统结构技术都设计一个具体的课程项目,以使学生真正理解和掌握其知识要点与难点,从而使计算机系统结构课程真正成为一门学生看得见摸得着的、实实在在的生动课程。
3) 保证教学内容具有明显的前沿性和时代性。计算机系统结构技术日新月异,为了实现教学内容与技术同步,课程及时关注计算机科学方面的核心论文及期刊,及时把最新的技术反映到教学内容中,从而长期保持课程的生命力。
3 教改实施
本项教改项目实施的主要目标是:在“计算机系统结构”课程的讲授过程中,充分发挥教师的主导作用和学生的主体作用,使学生在全面掌握计算机系统结构原理基础上,重点培养学生的动手能力和创新能力。
此种能力培养的具体实施则需要从基础知识、技术讲座、基本技能和项目实践四个方面落实。
对于学生而言,首先应掌握好课本中的基础知识,形成扎实的理论基础。然后经常参加老师组织的各种形式的技术讲座,掌握当前计算机科学技术的动态,并从整体上把握计算机科学技术发展的前沿。最后,积极参加本课程的实验和项目工作,掌握主流开发工具和开发技巧,在做的过程中不断发现问题,然后通过与同学、老师的不断沟通中去解决问题,从而做到理论指导实践,实践中更进一步理解理论。
对于老师而言,首先应做好教学工作,完善原有的多媒体课件。引入声音、图像、AVI等多种形式,增强多媒体教学中的适应性、综合性和趣味性,使教学媒体多样化。然后,抓住当前技术前沿,抓住学生关心的问题,组织各种形式的技术讲座。第三,作为一门实践性很强的课程,兼顾理论、重在实践。教师在不断更新最新的国内外理论知识的同时,重视加强实践环节,实验内容全面上网、实验过程全程指导。对于学生循循善诱,讲解实验内容深入浅出,并付出十分的耐心。在解决问题的过程中重点教导学生解决问题的方法和途径,而不仅仅只是告诉他们当前问题的答案。
但是,在工作的实施中会有遇到以下具体困难:
1) 内容把握及工作量较大。
课件内容包括教学大纲所有教学知识点,以满足学科教学需要,并完整涵盖教学目标所涉及的内容,章节内容的剪裁、取舍以及重点、难点的掌握,是整个项目的基础,难度较大。
课件需要运用丰富的媒体素材,如图片、声音、动画、视频影像等,工作量较大,且课程内容涉及计算机系统结构、操作系统、计算机组成原理等课程内容,有较强的综合性。
2) 模块讲授和整体把握之间的矛盾。
教师的课件要简洁且具有亲和力,页面视觉效果好,并符合美学及教育学要求。
对各知识点内容宜采用模块化讲授,便于摘取模块知识点,同时便于教师按各自的教学特点对教学内容进行组装、搭配及改进。
但是怎么把握模块与整体的关系,怎么由点到面,是其中一个难点。
3) 实验教学中硬件复杂度和理论深入浅出之间的矛盾。
书本中浅显易懂的理论在实践中却需要很多其他相关硬件知识的辅助,增加了其硬件实现的复杂度。
4 具体实施
针对如上具体问题,我们采取了以下实施:
1) 此次教改项目研究以长沙学院计算机科学与技术系为依托,以具有多年计算机系统结构研究和课程教学经验的专业教师及软件制作开发人员为骨干,以计算机系为应用平台,由长沙学院教学指导委员会督促实施。
由项目负责人提出整体设计方案和规范化的格式要求;项目组成员对设计方案进行充分的讨论、修改和完善;项目组成员按照分工安排和制作规范进行文字脚本的创作;由项目负责人组织全体成员对文字脚本最终定稿并进行专业制作。
2) 理论教学采用模块式设计方法,确保教学系统的灵活性、可维护性和可扩展性;采用公开标准,保证系统的开放性;广泛应用PowerPoint、Flash、Photoshop等多媒体课件制作、动画设计与图像处理新技术,确保教学系统的技术含量,这是我们理论教学的一个关键环节。
我们把计算机系统结构这门课程的较为关键及抽象的理论,如计算机流水线技术、消除流水线瓶颈的方法,循环展开、分支预测BTH状态转换、多级存储层次、组相联Cache的查找[2]、互联网络、通信延迟和snooping监听协议等,都设计了动画演示,这不仅提高了学生的听课兴趣,同时也加深了他们对抽象理论的真实理解,取得了很好的效果。但我们并不满足于现有的工作与成绩,在已制作PPT课件和动画课件的基础上,广泛征求师生意见,充分吸收计算机系统结构研究的最新成果,进一步充实、完善课件内容。
3) 进一步完善计算机系统结构的实验教学内容。
项目组对此门课程的实验教学进行认真总结,真正让学生通过做实验来掌握课本中的内容,使学生通过实验课能直接接轨社会需求,而不是让这门实验课
程流于形式。这个环节也是实现“Learning-by-doing”教学模式的关键环节。
早期的系统结构实现采用的“PC机+模拟器”的实验方式形式过于单一,所有的实验都是先在模拟器中给出计算机系统结构技术参数设定,然后运行测试程序,最后根据程序运行结果给出实验结论。对学生而言,所做的工作只是系统结构参数的给定,然后面对一堆运行出来的枯燥数据给出实验结论。由于这些实验全是验证型实验,使得学生没有真正的实验体会,感觉也比较抽象,一个学期下来,整个实验课程没有收到它应有的效果,同时也没能激发出学生的创新性。
为了让学生更加有硬件实验体会,并发挥学生的创新性思维,我们在原有的“PC机+模拟器”模式下增加一个实验机箱,变成 “实验机箱+PC机+模拟器”模式,在原有实验基础上,增加了四个实验:(1)CISC(复杂指令集计算机)实验;(2)RISC(精简指令集计算机)实验;(3)重叠实验;(4)流水实验[3]。这些实验中,系统所具有的软硬件结构(实验机箱和模拟器)对实验设计具有完全的开放性,其数据线、地址线、控制线都由学生来操作连接,系统中的运算器结构、控制器结构及微程序指令的格式及定义均可根据教学需要来做灵活改变或重新设计。这对于自行设计各种结构及不同复杂程度的模型计算机提供了强大的软硬件操作平台,从而避免了单纯验证性的实验模式,极大提高了学生计算机系统的综合设计能力。同时,该系统还具有与PC微机联机实时调试的功能,提供了图形方式的调试界面(CMPP模拟器),在调试过程中可动态实时显示模型计算机各部件之间的数据传送以及各部件和总线上的所有信息。这种图形调试界面也可用于多媒体辅助教学,从而获得极佳的教学效果。经过两个学期的实践,计算机系统结构实验课程有了突破性的进展,取得了很好的效果。
4) 校教务处已具备较好的教学录像等设备,为网上教学资源的及时更新、维护和升级提供了良好的保证。
课程组老师每人均具有专门的上网设备和条件,也进一步建立和完善学生上网实验和学习的内外部环境,为网上教学互动提供了良好的环境支持。课程组老师及时更新教学网站的内容,并且教学资源全面
开放,教学内容,包括课件、实验内容,课后习题全面上网,并且开通“问题交流BBS”,使得学生与老师可以通过网络进行交流。
5 结语
2007年起,长沙学院计算机科学与技术系采用由卡内基•梅隆大学提出的“Learning-by-doing”这
一适用于工程教学的行之有效的先进教学理念对“计算机系统结构”课程进行改革以来,项目负责人全权负责课程的建设,从教学大纲、实验大纲、考试大纲、教学内容的制定[4],到多媒体教学课件的开发、实验项目的改革,经过几年的教学实践,该门课程的教学已经比较成功,受到广大学生以及教学督导组专家的一致好评。
参考文献:
[1] 教育部-微软精品课程Windows CE嵌入式系统 [EB/OL]. [2011-02-21]. .
[2] 张晨曦,王志英,张春元,等. 计算机系统结构[M]. 4版. 北京:高等教育出版社,2008:161-162.
[3] 西安唐都仪器公司. 计算机组成原理与系统结构实验教程[Z]. 2010:163-166.
[4] 张晨曦,王志英,刘依,等.“计算机系统结构”课程内容体系的研究[J]. 计算机教育,2009(20):57-60.
The Reform Base on Learning-by-doing of Computer Architecture Course
HUANG Caixia1, XU Hui2
(1. Department of Computer, Changsha University, Changsha 410003, China;
计算机系统结构课程在高校计算机专业培养中是一门重要的本科高年级基础课,一直占有很重要的位置。它主要围绕计算机结构中整体及各个部分的优化技术以及量化分析方法,将计算机组成原理、编译技术、操作系统、高级语言以及汇编语言等软硬件知识相互贯穿,帮助学生建立计算机系统的完整概念,其重要性是不言而喻的。无论以后从事的是硬件还是软件设计,这门课都能帮助学生理解软硬件的关系,在软件设计中理解硬件的结构与发展趋势,同时设计硬件时了解软件的能力与缺陷。这样的一门课如果真正发挥作用,对计算机专业学生日后尽早适应本领域工作有很大的帮助。而现实情况是,这门课一直以来都是公认的难教、难学、枯燥无趣,真正将其讲好讲透并不容易。随着近十年国内广大教师的努力,这一现象有所改善,但还是存在不少困惑,并未完全体现出该课程的作用。
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.了解并督促学生
教学的过程是教师与学生互动的过程。教师的每一次教学过程都不会一模一样。他要根据教学对象的不同,做出相应的内容调整,也要根据每堂课学生的状态做出相应的节奏调整。只有学生能够接收、愿意接收,教学才可能有效。
一、引言
计算机系统结构是计算机科学与技术专业的一门骨干课程,也是最重要的专业基础课程之一。本课程强调从总体结构、系统分析的角度来研究计算机系统。通过本课程的学习,使学生理解计算机系统的内部工作原理,以及在硬件、软件界面划分的权衡策略,建立完整的、系统的计算机软硬件整体概念[1]。本课程理论性较强、教与学难度较大。课程中讲授的许多内容,诸如指令流水线、向量计算、流水线相关、并行计算、定向技术等内容比较抽象,使学生无论在学习还是理解方面都会有一定的难度,从而影响到学生的学习兴趣和教学效果。国外高校在本课程的教学和实验中,已普遍采用DLX模拟器进行分析和测试。因此,采用理论教学与实践教学紧密结合的方式,对该课程教学方法进行研究和改进,将能够帮助学生增进对课程学习内容的理解,提高独立思考问题和解决问题的能力,并将对提高教学质量和教学效果起着极为重要的作用。
二、DLX模拟器
DLX是贯穿本课程的一个流水线处理实例,课程中的许多讨论、模拟结果和例题都是基于DLX的。它不仅体现了当
今多种机型指令集结构的共同特点,而且还体现未来一些机型的指令集的特点[2]。DLX模拟器用软件模拟DLX流水线的工作过程,有运行于Windows和Linux操作系统的不同版本,可以灵活、方便地设置参数、控制执行和统计数据,并提供了直观的窗口显示。
经过测试比较,采用基于Windows系统的WinDLX和DLXView模拟软件,它们对环境要求较低,易于实现。本文介绍WinDLX和DLXView两种模拟软件在计算机系统结构课教学实验中的应用。
三、WinDLX模拟器实验应用
WinDLX的主窗口中有六个图标,点击将弹出子窗口。分别为寄存器子窗口(Register),代码子窗口(Code),流水线子窗口(Pipeline),流水线时空图子窗口(Clock Cycle Diagram),统计子窗口(Statistics) 和断点子窗口(Breakpoints)。如图1所示。利用这些子窗口可以完成结构相关、数据相关和指令调度等实验。
以数据相关实验为例,介绍WinDLX流水线时空图子窗口和统计子窗口的作用。在不采用定向技术的情况下(通过Configuration菜单中的Enable Forwarding选项设置),用 WinDLX模拟器运行程序,记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。如图2所示。流水线时空图子窗口中的箭头是相关引起的流水暂停。
在采用定向技术的情况下,用WinDLX模拟器运行相同的程序,记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。如图3(略)。
统计子窗口的对比数据如表1所示。从中可以进行定量地分析,看到定向技术对增强流水性能、提高CPU运行效率所起的作用。
利用WinDLX模拟软件可以进行熟悉DLX指令、结构相关、数据相关和指令调度等实验,使学生对DLX指令集以及流水线技术、相关、指令调度等重点难点内容有深一步地理图2定向前流水时空图和数据统计解,进而开展研究性工作。
数据相关暂停时钟周期数总时钟周期数所占比例定向前10420251.48%定向后3012823.44%
四、DLXVieW模拟器实验应用
DLXview是一个图形化、交互式的DLX流水线仿真器[3,4]。该模拟器能够实现对基本流水线,记分牌算法和Tomasulo算法的模拟。通过对内存访问延迟、功能部件的数目、功能部件的延迟的配置,实现不同的流水线的模拟。该模拟器使用的是DLX指令集描述的计算机体系结构,执行DLX汇编语言程序,指令在流水线中执行的过程能以图形的方式表示出来,还能得到流水线操作周期的统计信息。DLXview对流水线的理解和对处理器性能的评价对我们很有帮助。
用DLXView模拟基本流水线,能观察到流水线时空图、各流水段状态以及流水线的数据通路。有两种图形界面:图4是基本流水线框图,图5是基本流水线数据通路图。
图4基本流水线框图图5基本流水线数据通路图记分牌技术是系统结构学习中的难点之一。其学习的目的是掌握在资源充足时,尽可能早地执行没有数据阻塞的指令,达到每个时钟周期执行一条指令。如果某条指令被暂停,而后面的指令与流水线中正在执行的或被暂停的指令不相关,那么这条指令可以继续流出并执行下去。记分牌电路负责记录资源的使用,并负责相关检测,控制指令的流出和执行[5]。用DLXView模拟记分牌算法,可直观地观察到程序运行过程中指令状态表和功能部件状态表的变化,并可以调整设置DLX处理器的基本结构。模拟运行界面如图6(略)。
Tomasulo算法将记分牌的关键部分和寄存器换名技术结合在一起,其基本核心是通过寄存器换名来消除写后写和先读后写相关可能引发的流水线阻塞。其基本思想是:只要操作数有效,就将其取到保留站,避免指令流出时才到寄存器中取数据,这就使得即将执行的指令从相应的保留站中取得操作数,而不是从寄存器中取得。指令的执行结果也是直接送到等待数据的其他保留站中去。因而,对于连续的寄存器写,只有最后一个才能真正更新寄存器中的内容。一条指令流出时,存放操作数的寄存器名被换成为对应于该寄存器保留站的名称(编号)[5]。用DLXView模拟Tomasulo算法可观察指令状态表、保留站信息、DLX浮点部件结构图。模拟运行界面如图7(略)。
5.结束语
WinDLX和DLXview可以灵活、方便地设置参数、控制执行和统计数据,并提供了直观的窗口显示;对基本流水线,记分牌算法和Tomasulo算法有直观形象的模拟;能帮助理解较抽象的概念,如指令流水线、向量计算、流水线相关、并行计算、定向技术等。模拟器对流水线的理解,以及处理器性能的评价对我们有较大帮助。经教学实践检验,具有较好的应用效果。
参考文献:
[1]张晨曦,刘依,张春元.《计算机体系结构》网络课程[EB/OL].http://sse.tongji.edu.cn/arch_course/index.htm.2005.
[2]张晨曦,王志英,张春元,等.计算机体系结构[M].北京:高等教育出版社.2003:3.
[3]DLXview主页[EB/OL].202.38.79.66/ca/dlxview/index.html.
中图分类号:TP338 文献标识码:A 文章编号:1007-9416(2016)11-0088-01
1 可重构并行计算机系统的基本理念
可重构并行计算机系统要依附于软件控制,通过可重用的资源,重构及重组转换为另一个计算体系,以匹配于差异化的相关需要。其具备可重构特性的计算机制我们称其为可重构计算系统。
重构和重组是可重构计算机制转换其基本功能的两种措施,前者即新计算系统的功能外部系统,其在旧的计算系统内并不存在,通过旧计算系统的可重用资源重新组建而成。而后者即新计算系统的功能部件,通常存在于旧的计算系统,经重新组合构建为另一套计算构架。
可重构并行计算机系统的核心体现在可重用资源,在研发FPGA前,可重构计算机系统一般都择取重组的措施;而在FPGA出现后,使重构措施变得具有可行性,经匹配相应的文件,设置各性质与线的链接,进而调节硬件的基本模式。
可重构并行计算机系统是为避免硬件结构和应用无法相适应这一问题。根据处理问题的程度,可把可重构分成下属几种:第一种,门级可重构,以核心门级作为切入点,重构计算机制。也就是把功能部件的逻辑通过FPGA予以深化,在使遇到算法改变的时候,利用调整FPGA的配置去完善其功能。此类重构即电路级可重构;第二种,部件级可重构,初期的重构以功能部件作为切入点,利用对功能部件的重新组合去匹配于差异化的计算机制;第三种,指令级可重构。
在常规处理器单元的基础上设置相应的计算设备,为计算的特殊需要奠定基础,以达到大计算量指令与附属程序的执行,此类深化计算机性能的重构措施即指令级可重构;第四种,芯片级可重构,在多处理器共用的原则上,使处理器位数产生变更、处理设施个数能够和处理器间互连,且能够予以变动的计算机体系,此类体系即芯片级可重构。
2 可重构计算的系统构架
可重构矩阵能够访问指标化处理器单元的高速缓存,不过可重构矩阵能够和常规处理器单元单独执行命令,也能够在指标处理器单元的控制下去执行相应命令。可重构计算的技术核心为可重构矩阵,其中可重构矩阵的组建可以依附于基本门,同样功能部件亦可组建重铸矩阵。可重构计算的技术主要包括下述几类:第一类,可重构阵列元素的组建,明确可重构阵列元泰的功能与其功能实现特性;第二类,可重构阵列元素的物理交互,因为可重构阵列需要匹配于差异化的计算要求,最为有效的物理交互措施即为全连通。第三类,可重构阵列元素的链接控制,差异化的计算需要我们要匹配于差异化的连接模式,怎样控制可重构矩阵元素的连接模式,使其应用更为便捷,需要根据实际情况而定。
3 可重构并行计算机系统计算机体系结构研究的进展
自从计算机发明以来,冯・诺依曼体系结构一直占据计算机体系结构的统治地位,科学家和工程师们在此基础上不断研究硬件和软件,使CPU和存储器技术得到了飞速的发展,也为信息化、网络化奠定了基础。
随着人们对信息化的要求越来越高,冯・诺依曼体系结构已经无法满足人们的技术需求和发展要求,对计算机的要求不再仅仅是高速计算,同时更应具备信息处理和智能升级能力。可重构技术与多核技术的出现为此提供了基础。近年来所发展的计算机体系结构主要包括下述几点:第一,CPU不仅为一核,而是通过多个核组成; 第二,存储设施不在是体系的核心构成因子,取而代之的是信息路径;第三,现阶段计算机已不再是通过五大部件所组成,而是通过一些信息处理节点所构建,每个节点的智能化与集成化越来越高;第四,程序设计涵盖了软件与硬件,生产方给出的产品会是独立封装好的中间件,作为应用方不需要侧重于程序的构架,只要做好专业设计即可。
4 结语
重构和重组是可重构计算机制转换其基本功能的两种措施,前者即新计算系统的功能外部系统,其在旧的计算系统内并不存在,通过旧计算系统的可重用资源重新组建而成。而后者即新计算系统的功能部件,通常存在于旧的计算系统,经重新组合构建为另一套计算构架。
近年来所研究开发的可重构并行计算机系统的核心体现在可重用资源,在研发FPGA前,可重构计算机系统一般都择取重组的措施;而在FPGA出现后,使重构措施变得具有可行性,经匹配相应的文件,设置各性质与线的链接,进而调节硬件的基本模式。
参考文献
一、引言
当前,随着物联网技术和产业的持续发展,嵌入式技术已成为信息产业中发展最快、应用最广的计算机技术之一,被广泛应用于网络通信、消费电子、医疗电子、工业控制和交通系统等领域。资料显示,在2009年中国软件业收入的9513亿元中,嵌入式占了将近20%,而且每年都以近40%的速度增长。嵌入式系统是以应用为中心的软硬件混成专用计算机系统,需要设计人员统筹考虑软硬件设计,以最大限度地适应应用系统对功能、成本、体积、功耗、可靠性等方面的要求。传统的软件、硬件分别进行的设计方法难以满足嵌入式系统的设计需求,而需要设计人员进行软硬件的综合考虑和协同设计。
然而和上述趋势对应的是,目前计算机类本科专业软件方面的教学和实践都实施得较好。学生除了课堂学习外,还可以利用学校和自己的计算机充分进行软件编程的实践和训练。而且软件类课程C语言、数据库、网络等相对直观和容易理解,容易入门。但对于硬件类的课程尤其是计算机组成与系统结构,学生普遍反映内容较为抽象,如果没有适合的实践环节将课堂概念和实际工程联系起来,学习效果将难以得到保障。因此,探索适合计算机组成与系统结构的实践教学工具、教学方法和配套机制,加强学生理论学习和实践环节的联系,建立形象直观、便于理解的学习途径至关重要。本文重点讨论江南大学计算机组成与系统结构的实践教学实施现状,在此基础上提出改进方向,为增强计算机组成与系统结构的教学效果作有益探讨。
二、《计算机组成与系统结构》实践教学现状分析
当前国内计算机类本科专业硬件主干课程设置有两种模式:一种是数字逻辑与数字系统(技术基础课)计算机组成原理(专业基础课)计算机体系结构(专业课)。大多数重点院校采用这种模式。另一种是数字逻辑与数字系统(技术基础课)计算机组成与体系结构(专业基础课)。江南大学及国内其他许多本科高等学校采用第二种课程设置模式。
《计算机组成与系统结构》课程综合了《计算机组成原理》和《计算机体系结构》两门课程的要求,要求学生掌握计算机系统各个部件的组成原理,最终从系统、整机的角度理解计算机的结构与组成,是计算机类本科专业的专业基础课程,以及计算机硬件与结构方向非常重要的一门课程。这门课程的建设与教学质量直接关系到人才培养中计算机硬件与结构方向教育的成效。尤其是在当前嵌入式系统日益流行,软硬件一体化设计需求不断扩大的背景下,计算机组成与系统结构课程能否达到预期效果显得更为重要。
目前在教学实施过程中,学生普遍反映该门课程内容较为抽象,难以和一个具体的可见的系统相联系理解整个的运行过程,学习效果欠佳,依然停留在为应付考试的习题练习为主的方式上,通过课程的学习无法锻炼搭建完整电路系统的能力。这些问题急需通过实践环节有针对性地解决。
传统的计算机组成原理采用的实验设备是在开放的电路板上用插线的方式搭建逻辑,学生通过将对应的引脚互联起来构成特定的数据通路。这种方法无需编写程序,可以直观地显示计算机内部结构和运行情况,但对学生的影响仅仅停留在实验室阶段,不能和企业的实际开发相结合,没有更多的实用价值。
随着硬件可重构技术的发展,越来越多的计算机组成原理实验课采用了基于FPGA的实验装置。基于FPGA的优点在于学生可以通过自己的逻辑设计得到专用芯片,并通过实验板上的I/O观察芯片的运行情况,更接近实际CPU的运行状态。目前,根据不同学校学生能力的强弱,基于FPGA的组成原理实验采用了两种不同的输入方式。
一种是基于原理图的设计方式。学生通过连接原理图的方式,构成自己想要的逻辑电路。将该电路下载到FPGA芯片后构成特定的芯片,通过实验板上的I/O观察芯片内部的运行情况。这种方式的优点是直观、易于理解。缺点是随着系统变得更加复杂,原理图输入的方式耗费时间太长,连线也容易出错,不太可能用于搭建复杂的系统。
另一种是基于硬件描述语言VHDL/Verilog的设计方式。优点是可以利用现有的资源搭建较为复杂的系统,甚至多级流水线的CPU,可以极大地提高学生的硬件设计能力。缺点是对学生的要求比较高,需要有硬件描述语言的基础。
三、《计算机组成与系统结构》实践教学工具的选择
通过上述分析,可以看出基于硬件描述语言和FPGA的组成原理实验方式由于可与将来的企业实际开发相结合,具有较强的实际意义。学生可以通过VHDL搭建复杂和完整的硬件系统,对于理解计算机组成原理和计算机的运行情况有非常现实的意义。关键问题是,应该如何选择适当的基于FPGA的开发环境和教学方法,以适应不同水平的学生的具体需求。
由于现在基于硬件描述语言已有许多公开源代码的资源可以加以利用,因此在进行计算机组成与系统结构教学和实践中,可以围绕某一种有代表性的CPU进行学习和实验。如国内外有一些学校选择以MIPS处理器作为教学和实验的对象。学生可以根据自己的掌握程度借鉴或自己设计某个模块,最终形成完整的CPU。同时还可以在此基础上通过汇编程序进行系统结构的实验。通过这样的方式,学生可以将课堂讲解的内容完全与实际的CPU系统关联起来,从而为将来的硬件系统设计奠定良好的基础。而且由于所选用的开发语言和环境都和企业实际使用的一样,可以缩短将来的工作中的学习时间。
四、《计算机组成与系统结构》实践教学机制探讨
选定了适当的实践语言和工具之后,还要有适合的配套管理和运作机制才能保证实践教学的效果。现在传统的实验室都是学校购买设备后由实验室人员管理和维护,并配合任课老师在上课时间为学生提供实践教学服务。由于实验设备数和上课时间有限,学生并不能完全完成和理解实验内容。因此,我认为可以采取多种方法改善这一状况。
1.Xilinx/Altera等FPGA提供商建立联合实验室,随时可获得提供商提供的一些最新资料和技术服务,同时确保实验室可以在课外对学生开放,可以借鉴以往机房的管理方式,让感兴趣的学生付费使用设备。
2.为学生配备或鼓励学生购买低价FPGA设备,将实验室带回宿舍,随时可以进行FPGA系统的开发和调试。
3.企业建立培训协议,抽出整段时间送学生到专门的FPGA企业进行集中强化训练,积累实际项目经验。
将上述几种方法相结合,可以使计算机系统设计课程的学习效果达到现在软件开发的学习效果,为嵌入式系统软硬件的开发培养合格的人才。
五、结语
本文分析了江南大学《计算机组成与系统结构》课程的实践环节教学的现状和存在的一些具体困难,并从几个方面提出了应对方案。当然,这些方法依赖于计算机组成与系统结构考核方式的相应改变。只有在教学内容、实践形式和方法、体制和具体实施等多方面协调一致,整体推动,才能取得预期的结果。
参考文献:
[1]任春明,刘军.计算机组成原理实验教学的思考与改进.实验技术与管理,2006,10.
[2]李彩虹,屈志毅,刘刚,马俊.“计算机组成原理”实验课教学模式探讨与实践.高等理科教育,2006,2.
[3]陈媛,黄贤英.基于EDA技术的计算机组成原理实验教学探索.重庆工学院学报(自然科学版),2007,2.
中图分类号:TD672文献标识码:A文章编号:1007-9599 (2010) 06-0000-01
Integrated Electronic System Embedded Computer Architecture
Feng Lipei
(The State Administration of Radio Film and Television 723 Radio,Shijiazhuang050086,China)
Abstract:As the modern electronic information technology development and innovation and electronic information technology application of the areas of diversification of integrated electronic computer system,and embedded in the military,a smart appliance,the digital machine tools,
refrigerators and other areas of electronic devices are widely used. this article by a brief analysis and study electronics and computer system to embedded systems architecture to meet the new generation of integrated electronic computer systems for performance of the embedded application requirements.
Keywords:Integrated electronic systems;Embedded computer system;Structure
一、综合电子系统嵌入式计算机的特点
综合电子系统嵌入式计算机是嵌入到对象体系中的专用计算机,其物理结构和功能都嵌入到应用系统中,不能脱离系统操控程序而独立运行。进入21世纪以后,综合电子系统嵌入式计算机在军事上得到了广泛的推广与应用,同时在智能家电、数字机床、车载电子设备等生活领域也得到不少的应用,为人类的发展注入了全新的科技动力。综合电子系统嵌入式计算机的特点,主要表现在以下几方面:
(一)实时性
综合电子系统嵌入式计算机直接从前端传感器获取信息和资料,进行实时或近实时的操控处理和技术分析,因此,综合电子系统嵌入式计算机对信息的处理、分发和管理的实时性要求极高。
(二)与宿主系统相匹的性能与功能
综合电子系统嵌入式计算机是宿主系统的主要组成部分,其体积、重量、形状、性能等诸多数据参数必须满足各种宿主系统的不同技术性要求,其功能性与技术性必须与宿主系统的水平相适应,符合技术应用的科学发展方向。[1]
(三)环境的可靠性和适应性
综合电子系统嵌入式计算机被大量应用于工业、军事、野外等恶劣环境中,要经受振动、辐射、盐雾、高低温、电磁干扰等经验,对可靠性要求极高。传统综合电子系统嵌入式计算机的体系结构设计主要根据嵌入式系统的应用特点进行剪裁。[2]综合电子系统嵌入式计算机采用模板化结构,但是总线带宽和扩展能力有限,不具备动态重构、数据信号综合处理等功能。
二、综合电子系统嵌入式计算机的体系结构
嵌入式系统是现代电子信息技术、计算机技术和半导体技术,以及各个行业具体应用相结合的产物。因此,嵌入式系统是一个资金密集、技术密集、高度创新、不断创新的知识集成系统。综合电子系统嵌入式计算机体系结构的核心部件是处理器,系统结构较为复杂。
图1 综合电子系统嵌入式计算机的体系结构
(一)嵌入式微控制器
嵌入式微控制器将整个计算机系统集成到一块芯片中,芯片内部集成RAM、ROM/EPROM、总线逻辑、总线、定时/定时器,WatchDog、串行口、D/A、A/D、Flash RAM、EEPROM等各种基础功能和外设。为了适用综合电子系统嵌入式计算机不同的体系结构和功能需求,一般一个系列的单片机具有多种衍生产品,每种衍生产品的处理内核体系结构都是相近的,不同的存储器和外设的配置及封装。[3]这种体系机构可以使单片机最大限度地和应用需求相匹配,功能不多不少,从而减少功耗和成本。目前,世界通用的嵌入式控制器型号主要有:P51XA、8051、C166/167、MCS-96/196/296、MC68HC05/11/12/16等。
图2 嵌入式微控制器结构图
(二)嵌入式微处理器
嵌入式微处理器是综合电子系统嵌入式计算机的CPU,在实际应用中,微处理器被装配在专门设计的电路板上,只是保留和嵌入式应用的相关母版功能,这种体系结构可以最大幅度减少系统的体积和能源消耗。[4]嵌入式微处理器具有重量轻、体积小、可靠性高、成本低等优点,其体系结构的电路板上必须包括:总线路接口、各种外线器件、RAM、ROM等,技术保密性相对较强。目前,世界主要应用的嵌入式微处理器主要有:386EX、Power PC、SC-400、MIPS、68000、ARM等系列。
图3嵌入式微处理器结构图
(三)嵌入式片上系统
近年来,随着EDI的推广和VLSI设计的普及化,综合电子系统嵌入式计算机体系结构中一个硅片上实现一个更为复杂的全新计算机系统,也可以称之为SOC。嵌入式片上系统一般可以分为通用和专用两类,通用系列包括Infineon的TirCore,Motorola的M-Core;专用系列包括Philips的Smart XA等。
中图分类号:G642 文献标识码:B
1引言
“计算机组织与系统结构”是计算机专业最重要的核心基础课之一。从学科和专业知识结构的角度看,该课程涉及的内容是整个计算机学科和计算机系统中最重要的基础和核心;从实践和应用的角度看,该课程具有显著的实践和工程应用特点,因而对培养学生的实践能力、对培养创新人才、对推动我国高等教育和人才培养的战略目标的实现具有重要的作用。
2008年12月21至22日,教育部在北京召开了2009年度教育工作会议。会议通过的《教育部2009年工作要点》和周济部长在会议中的讲话都强调要“着力培养学生创新精神和实践能力”、“增强培养高素质人才、科技创新和社会服务的能力”,这是目前在我国实现经济结构转型的重大发展战略下高等教育发展和人才培养的指导方针和发展目标,是目前国家经济建设、科技和社会发展对我们教育部门人才培养的迫切要求。
但是,就目前我国高校计算机专业的教学现状来看,我们在计算机学科相关的课程结构设置、教学内容和教学方法上存在一些缺陷。纵观各大学计算机专业课程设置和授课内容,基本上都偏向算法和程序设计、软件工程、数据库、网络和各种媒体应用类课程,而在计算机组成与系统结构方面开设的课程较少,与本课程在计算机系统中的地位不太相称;与此同时,课堂教学和实验教学的内容都比较陈旧,与现代计算机技术的发展水平和实际情况脱节较大,总体上与国外一流大学相比还有很大的差距。
课程结构设置的不均衡和教学内容与方法的落后,使我们培养的人才结构和模式已经不能满足社会发展的需要。从社会发展需求和就业市场反馈的信息来看,目前计算机软件人才基本上供大于求,而熟悉计算机硬件设计、具有计算机系统结构理论基础和设计能力的人才则严重短缺,年薪远远高于同等软件设计人员。随着国家推动各行各业,尤其是传统制造业向信息化技术发展,以实现经济结构转型的重大战略的出台,各行各业将大量需要掌握核心芯片和硬件系统设计技术的人才,这些人才需要能够针对行业需求自行设计和开发具有自主知识产权的计算及控制核心部件和系统。因此,计算机硬件设计人才的培养对今后我国各行各业计算机应用和信息化技术的发展、对实现我国传统行业的经济结构转型将具有十分重要的作用。另外,即使对于那些软件系统设计和开发者而言,不具备扎实的计算机组成与系统结构基础,也难以很好地胜任重要的底层和系统软件的开发任务,不考虑硬件结构的软件设计将难以最大限度地发挥硬件性能,所实现的程序效率和性能将是比较低下的。
鉴于以上现状和原因,计算机组成与系统结构的教学具有极其重要的作用,其教学理念、教学内容和教学手段等方面的改革势在必行。
本文就本课程在计算机系统中的地位、国内本课程的教学现状、国外一流大学的教学内容和教学模式等几个方面进行介绍、分析和总结,并在此基础上,提出“从程序员需求出发、重在流水线CPU设计、强调软/硬件结合”的课程教学内容改革思路和“从ISA模拟器入手、以功能部件设计为先导、单周期CPU设计为过渡、最终实现流水线CPU”的实验教学方案。
2本课程的地位和特点
美国UC Berkeley大学的David Patterson教授在他讲授计算机组成与设计课程的讲义中,曾经用图清晰地描述了计算机系统的层次结构,并且指出了本课程在其中的位置,如图1所示。
图1本课程在计算机系统中的位置
从图1可以看出计算机系统从大的方面可以分成硬件(Hardware)和软件(Software)两部分。在硬件和软件交界面上的是指令集体系结构ISA(Instruction Set Architecture),围绕ISA的阴影部分就是计算机组成和系统结构的内容。很明显,这部分内容处于整个计算机系统中极其重要的位置。课程所涉及的硬件包括:处理器(Processor)、存储器(Memory)和输入/输出系统(I/O System),处理器主要由数据通路(Datapath)和控制逻辑(Control)组成。这些硬件是操作系统(Operating System)直接管理的资源,也是编译器(Compiler)对高级语言源程序翻译生成的目标程序代码直接运行的平台。因此,本课程的教学内容除了计算机硬件所涉及的各部件及其各部件的互连和指令系统等内容以外,还与数字逻辑电路设计(Digital Design & Circuit Design)、操作系统和编译器等技术和课程也密切相关。此外,数据的表示、Cache的局部性、虚拟存储器的实现、过程调用的硬件实现以及寄存器使用约定等内容与应用程序的设计与开发也密切相关。由此可见,这部分是整个计算机系统的核心内容,因而“计算机组织与系统结构”自然成为计算机专业的核心基础课程。
从该课程的地位来说,它是多门后续专业核心课的先导课程,在整个专业教学中,起着重要的承上启下的作用,对于学生完整地理解计算机系统的层次结构、系统地建立计算机整机概念、掌握计算机硬件和软件之间的接口、培养学生对计算机硬件系统的分析、应用、设计及开发能力,都直接起到重要的作用。
但是,该课程涉及的知识面广、内容多;课程难度大、概念抽象。不少学生觉得枯燥无味,凌乱繁杂,导致学习兴趣下降,学习时似懂非懂,考试时死记硬背,考完后一切全忘,难以达到教学目的。因此,如何把握课程的主线和重点,改革教学内容和教学模式,为学生今后的专业学习打下坚实基础,使学生具备一定的硬件设计和开发能力,增强学生的动手能力和自信心,是该课程教学改革必须解决的问题。
3本课程国内、外教学现状和比较
2009年教育部首次进行硕士研究生计算机专业基础课全国联考,考核的四门专业基础课总分为150分,计算机组成原理和数据结构是占分比重较高的两门课程,各占45分,充分说明了教育部对计算机组成与系统结构在计算机专业中重要性的认可,也迫使我们相关任课教师认真思考如何才能使该课程的教学真正起到课程所应有的重要作用。
在教育部的大力倡导和推动下,最近几年国内很多大学都开始对本课程进行教学改革,从教学内容、教学手段、实验环境和实验内容等方面进行了不同程度的革新。但与国外一流大学相比还相差很大,体现在教学内容和实验水平两个方面的主要差距如下。
3.1教学内容上的差距
从目前所使用的教材和网上资源中课程讲义内容等方面可以看出,国内高校该课程的教材内容和教学内容普遍存在下列问题:
(1) 内容比较陈旧,且概述性内容多,实例和细节方面内容较少,内容缺乏深度和系统性。特别是在有关CPU设计原理方面,还停留在三级时序系统、CPU内总线结构、CPU和存储器之间的异步控制等等方面,与流水线处理器设计技术的发展水平和现状相差甚远。学完后学生基本上没有流水线处理器设计的概念,和后续的系统结构课程之间有一条较大的鸿沟,未能为深入理解各类并行处理技术奠定坚实的基础。
(2) 未能有意识地建立硬件和软件之间的联系。例如,在介绍虚拟存储器、异常和中断等内容时很少提及硬件和操作系统的关系;在介绍数据表示、Cache局部性特点等与程序设计密切相关的部分时,未能与程序设计中的问题结合起来;指令系统和硬件结构等是与编译器密切相关的,但教学内容中很少提及编译器和硬件的关系。由于未能把教学内容与其实际运用场合和环境联系起来,学生在学习时会感到茫然,不知道学了有什么用,而且由于缺少感性认识,学生在对课程内容的理解上感到困难。特别是多数学生认为自己将来不会从事CPU等硬件设计工作,因而也提不起学习本课程的兴趣。
我们调查了美国UC Berkeley、Stanford、MIT、CMU和UIUC等几个一流大学的课程教学情况,通过访问相关课程网站,下载相关的课程讲义,我们发现这些大学中开设的相关课程的教学内容和实验内容有以下几个特点:
(1) 所用教材基本上是David Patterson教授和John Hennessy教授编著的《Computer Organization and Design: the Hardware/Software Interface》和《Computer Architecture: A Quantitative Approach》,以及美国CMU的Bryant教授等编著的《Computer Systems: A Programmer’s Perspective》。
(2) 处理器设计讲得较透彻。以MIPS处理器几条典型指令为基础,从单周期处理器、多周期处理器,逐步过渡到流水线处理器的设计,最后以流行的Intel系列处理器作为实例介绍高级流水线处理器的基本构成。在介绍流水线处理器时比较深入地阐述了三种流水线冲突(hazard)的解决方案,并简单介绍了如何在流水线方式下实现异常和中断处理。如此详尽地介绍流水线CPU设计在国内的高校中目前还较少。
(3) 以MIPS处理器或IA32处理器为模型机贯穿整个教材,所以整体上系统性比较好。无论是指令系统、数据的表示及运算,还是CPU实现都以MIPS或IA32为蓝本进行介绍,并且以大量的实例清楚说明了高级语言程序、汇编语言程序、机器代码和处理器实现之间的关系;并简单说明将高级语言源程序进行编译、汇编、链接,生成可执行文件在计算机上启动执行的过程。将学生能直观感觉到的高级语言程序和在CPU上执行的机器代码程序联系起来,使学生对一个程序的整个处理过程有全面的了解。
(4) 将数据表示和高级语言程序中的类型定义、Cache的局部性和高级语言中循环的实现、指令类型和高级语言编程结构等建立联系,将课程内容落实到具体运用点上,使学生不仅学会本课程内容,还学会运用相关知识解决具体问题,同时也增强了学生的学习兴趣和综合学习及运用能力。
(5) 在计算机硬件和软件(主要是操作系统)交界的地方清楚说明了硬件和软件的关系,通过了解具体计算机功能的软/硬件实现,使学生深刻体会计算机功能的软、硬件划分原则,以及成本和性能的权衡策略;同时也使学生了解硬件和软件之间如何协调工作。
(6) 结合高级语言和机器级代码之间的转换,结合流水线中的数据冲突和控制冲突处理的介绍,对有关编译优化技术进行了说明和解释。事实上,脱离具体指令集体系结构和硬件实现就无法清晰说明这些编译优化技术,因此这样的安排是比较恰当的。
(7) 利用性能评价方法对各种硬件设计方案进行定量分析,以加深学生对各种硬件设计方案、性能评价基本知识和基础理论的认识,也培养了学生对理论知识的应用能力和科学、严谨的学术风格。
(8) 由于对CPU设计的内容介绍得比较具体,使得相应的实验内容比较容易和课堂教学配套。从上述提到的这些一流大学设置的相应实验内容来看,基本上是围绕单周期处理器和五段流水线处理器设计展开的。
(9) 教材更新速度快。由清华大学郑纬民教授等翻译的《Computer Organization and Design: the Hardware/Software Interface》教材中文第3版2007年才出版,目前英文第四版已经出版并在使用了。教材的快速更新使得课程的教学内容能始终保持先进性。
从所下载的教案可以看出,上述几个一流大学的教学内容都有一个明显的特点,就是课堂教学虽以教材为中心,但不完全按照教材内容组织,增加了许多书中没有的内容,加进了任课老师的自我理解或借鉴了其他教材和教案的内容和描述方式,这也是值得我们学习的。
3.2实验内容上的差距
分析美国这几所学校课程网站和教材《Computer Organization and Design》所附光盘对其他一些学校课程实验的介绍内容,可以发现,国外本课程的最终实验目标是在FPGA板上实现一个带转发功能的RISC风格的流水线处理器,并模拟实现I/O设备与主机的简单通信。
通常都是先让学生在一个软件模拟器(或指令解释器)上熟悉指令系统,有些学校让学生自行设计一个指令解释器,也有些学校让学生在模拟器上用汇编语言实现一个小的游戏程序或其他特定功能的程序;然后在给定基本功能部件的源码框架下,逐步实现单周期处理器、不带任何冲突处理的流水线处理器,最终实现带转发和阻塞处理的具有Cache机制的流水线处理器。
实验设计策略基本上都是通过从简单的小部件逐步过渡到复杂部件,最终设计一个完整CPU的过程。该过程反映了结构化设计思想,遵循“自底向上”的设计方法。
目前国内有些大学也已经开始尝试使用硬件描述语言通过软件仿真技术和FPGA或CPLD技术来开展硬件实验,比传统的实验教学机大多只能进行验证性实验已经前进了一大步。但是,实验内容基本上只是多周期处理器的设计与实现,还没有达到流水线处理器设计的水平,与国外一流大学相比,还有很大差距。
4教学改革思路
为了在教学内容与实验内容上缩小与国际一流大学的差距,我们提出了“从程序员需求出发、重在流水线CPU设计、强调软/硬件结合”的课程教学内容改革思路和“从ISA模拟器入手、以功能部件设计为先导、单周期CPU设计为过渡、最终实现流水线CPU”的实验教学方案。
4.1教学内容改革
教材在教学过程中起主导作用,所以,我们首先从选择或编写教材入手来推动教学内容的改革。在教材建设方面采用了循序渐进的策略。
教学内容改革之初,我们采用“国内教材为主,国外经典教材为辅”的方针,2004年初步引入Patterson和Hennessy的《Computer Organization and Design》作为主要参考教材,对于一些重要章节,如中央处理器、指令系统、Cache和总线等,把该教材的内容大量地补充到课堂讲义和作业中;2006年开始全面使用该教材。但在使用该教材时发现存在一些问题,例如,篇幅太大、内容组织比较零乱等,给学生的学习带来较大困难。特别是从2009年开始,硕士研究生计算机专业基础课实行全国联考,因此涉及到教学内容与国内其他高校所用教材之间的统一协调问题,因而,从2008年开始,我们结合国内教学的特点,又开始自编教材。新编教材主要以MIPS和Intel Pentium4处理器为模型机,参考UC Berkeley、Stanford、MIT和CMU等国外一流大学相关课程的讲义、实验说明和所用教材,同时结合国内主流教材,在充分考虑与课程群中其他课程的衔接和实验相配套的基础上编写。与目前国内同类教材内容相比,在计算机性能评价、指令集体系结构与高级语言程序设计的关系、存储器分层结构中的软、硬件接口、CPU设计和指令流水线、计算机硬件与编译优化的关系等诸多方面进行了强化。
4.2教学实验改革
目前国内大多数高校本课程的教学实验,主要是在实验教学机上进行,且大多以验证性实验为主,基本上以“依葫芦画瓢”方式进行实验,很难进行自主创新设计,特别是很难通过实验建立一个整机概念,流水线设计思想也没有体现。
我校由于近年来对教学内容进行了大幅度改革,课堂教学中加大了对CPU设计、特别是流水线CPU设计的教
学力度,使学生打下了很好的理论基础。同时,硬件教学实验室配置了Altera DE2实验板,使学生可以通过硬件描述语言和FPGA进行CPU设计实验。
实验教学改革在以下几个方面进行:(1)与课堂教学同步进行一套“硬件模拟程序”实验,即:用软件方式模拟各个功能部件的功能及性能设计。例如,用软件模拟运算器、Cache、总线等的不同设计方案以及不同方案所获得的性能。(2)通过ISA模拟器实验,使学生深入理解数据的表示、指令集体系结构、汇编语言和机器代码的转换,以及指令执行过程等。(3)以功能部件设计为先导、单周期CPU设计为过渡、最终实现流水线CPU。要求学生先使用Quartus II软件进行模拟设计,通过后再下载到Altera DE2的FPGA板上进行验证。所有学生都要求能完成一个五段理想流水线CPU设计,部分能力强的学生还完成了带转发和阻塞功能的五段流水线CPU设计。
实验的最终目标是和其他课程联合开展综合性实验,在自行设计的CPU芯片基础上,设计汇编语言和高级语言,并配置简单的操作系统和编译器,学生可以通过自行设计的高级语言编写游戏等应用软件,在自行设计的CPU上运行。
5结束语
多年的教学工作告诉我们,学生的潜能是无限的,学习兴趣也是可以激发出来的。只要我们投入精力,引导有方,一定能带领学生领略到计算机王国的无限风光。
相信随着教育部和各高校对教学工作的重视,随着各高校从事本课程教学的老师们的努力,一定能在不长的时间内与国际一流大学的计算机硬件教学达到同步,为计算机专业的教学打下坚实的基础,从而提升整个专业的计算机教学水平。
参考文献:
[1]UC BerSellon University. Introduction to Computer Architecture [EB/OL].[2009-05-07].ece.cmu. edu/-ece447/.
[2]UC Berkeley. Components and Design Techniques for Digital Systems [EB/OL].[2009-02-16].inst.eecs. berkeley.edu/-cs150/sp09/.
[3]UC Berkeley. Computer Architecture and Engineering[EB/OL]. [2009-05-07].inst.eecs.berkeley.edu/-cs152/sp09/.
[4]Stanford University. Computer Organization & Systems [EB/OL].[ 2009-06-15]. stanford.edu/class/cs107/.
[5]Stanford University. Digital Systems II [EB/OL]. [2009-03-12]. stanford.edu/class/ee108b/.
[6]Carnegie Mellon University .Introduction to Computer Architecture [EB/OL].[2009-05-07].ece.cmu. edu/-ece447/.
[7]University of Illinois at Urbana-Champaign. Computer Architecture II [EB/OL]. [2008-05-05]. cs.uiuc. edu/class/sp08/cs232/.
[8]MIT. Computation Structures[EB/OL]. [2009-05-08]. 6004.csail.mit.edu.