基于CC2005的“计算机组成原理与结构”课程改革
2006-11-27陈金儿王让定林雪明石守东杜呈透
陈金儿 王让定 林雪明 石守东 杜呈透
摘要:本文在IEEE/ACM关于计算(Computing)学科本科教学参考计划CC2005(Computing Curricula 2005)指导下,针对我国高校本科计算机专业建设的现状,提出基于CC2005的“计算机组成原理与结构”课程内容体系的改革,采用整体“自顶向下”、细节“自底向上”的方法,从整机到部件、从原理到芯片的方式组织课程内容,并探讨了与课程群内部其他核心课程、选修课程之间的关系。
关键词:计算机组成原理与结构;CC2005;课程改革
1引 言
WTO关于教育服务的条款对高等教育发展将产生直接影响,而经济结构调整与就业结构变化也将对高等教育发展产生更重大的影响。随着计算机和通信技术近十年来的蓬勃发展,中国开始进入信息化社会,以信息化带动工业化,全面建设小康社会,已经成为我们的基本国策和全国人民共同奋斗的宏伟目标。
在这样的历史背景下,重新审视高等学校本科计算机专业的课程改革具有十分重要的意义。目前,随着网络化和信息化的发展,计算机的软件领域课程,尤其是网络和网络应用类课程,越来越得到各高校的重视,国内很多高校的计算机专业逐渐转变为“软件工程”和“计算机科学”方向,过分强调软件与应用,而缺乏计算机体系结构、计算机组成与结构等硬件方向的培养。但是,从就业市场反馈的信息看,计算机软件人才已经供大于求,而熟悉硬件设计的人才则供不应求,年薪也远远高于同等的软件人才。不熟悉计算机组织与结构、不了解计算机体系结构的软件人才,也尤如建立在空中的楼阁,没有基础,从小而言无法满足人才市场的需求,从大而言无法担负我国科技兴国,在国际信息化竞争中立于不败之地的重任。
“计算机组成原理与结构”课程要求掌握计算机系统各个部件的组成原理,最终达到从系统、整机的角度理解计算机的结构与组成,是国内大多数本科高等学校“计算机科学与技术”专业的专业基础课,是计算机硬件与结构方向非常重要的一门课程,这门课程的建设与改革直接关系到人才培养中计算机硬件与结构方向教育的成败。
2Computing Curricula 2005
IEEE/ACM一直在跟踪工业界对计算领域人才需求和教育界对人才教育培训的需求、状况、发展和存在的问题,并于2001年给出了具有指导性意义的计算学科本科教学参考计划(Computing Curricula 2001,简称CC2001[1])。我国国内专家学者对其进行了详细研究,并于2002年公布了中国计算机科学与技术学科教程2002 [2] (China Computing Curricula 2002,简称CCC2002),在国内外也产生了很大的影响。继CC2001推出后,经过几年的跟踪研究、意见反馈和计划评议,IEEE/ACM在总结前期工作的基础上,对原“CC2001”给出的四个专业方向进行了修改和扩充,并给出了新的评述,于2005年4月发布了CC2005的草案,并于2005年9月30日发布了最终版的Computing Curricula 2005[3]。
IEEE/ACM在CC2005中将计算学科分为五个专业,分别是计算机工程(Computer Engineering-CE )、计算机科学(Computer Science-CS)、信息系统(Information System-IS)、信息技术(Information Technology-IT)和软件工程(Software Engineering-SE)。与CC2001相比,在CC2005中第一次出现了“IT信息技术”专业。
针对每个专业的特点和要求,CC2005提出了支撑每个专业的知识构架,由底向上分别是:计算机硬件与结构(Computer Hardware and Architecture)、系统基础(System Infrastructure )、软件方法与技术(Software Methods and Technologies)、应用技术(Application Technologies)信息系统结构(Organizational Issues & Information Systems)共5个层次。每一个层次又分“趋于理论”与“趋于应用”两个方向,计算机学科知识空间图如图1所示。基于上述层次,CC2005对每个知识层次的课程体系、知识点进行了详细的规划。
在CC2005中,计算机工程CE、计算机科学CS、信息系统IS、信息技术IT和软件工程SE这五个不同的专业对上面5个知识层次的要求是不一样的。例如,计算机工程CE专业和信息技术IT专业的知识需求如图2和图3所示。可以看出,CE专业更加注重计算机硬件与结构以及系统结构等计算机底层方面的理论和应用知识,而IT专业则注重系统基础、软件方法与技术、应用技术以及信息系统结构等方面应用型的知识。
CC2005明确指出计算机科学(CS)和计算机工程(CE)专业,都应该掌握计算机底层的“计算机硬件与结构”方面的课程知识,在CC2001中,专门有一门编号为“CS220{C,S,T}.”,名称为Computer Architecture的课程,对应国内普通高校本科“计算机科学与技术”专业中一般课程名称为“计算机组成原理与结构”或“计算机组成原理”,为了统一,在本文中称为“计算机组成原理与结构”。
图1 计算机学科知识空间图
图2 CE专业对计算机各层次知识的要求
图3 IT专业对计算机各层次知识的要求
图4CC2005课程编号体系
图5CC2005课程层次体系
图6新颖的教学组织方法
图7计算机组成原理与结构、汇编语言与接口技术之间的关系
3 课程地位
在CC2005中,根据上面的知识空间构架,对每一门课程内容、知识要点、课时安排等都进行了详细的设计与组织,并且对课程的地位、教学方法等也进行了描述。这个可以通过课程编号来确定,如图4所示。课程编号中表示了课程级别、知识范畴、教学方法和课程序号等各个方面。
课程分为四个等级,分别是入门课程、中级课程、高级课程和具体的项目课程,不同级别的课程采用不同的教学方法,如图5所示。比如入门类的课程一般都是介绍性质,根据不同的侧重点,采用的教学方法有目标优先、功能优先、算法优先、硬件优先、知识广度优先等方法。而中级课程一般是本科计算机科学专业对专业方面的要求,采用的教学方法包括基于主题的讲授、基于系统的讲授、基于Web的讲授等。另外,高级课程是硕士要求的附加课程。
计算机组成原理与结构课程在CC2005中对应的课程编号为“CS220{C,S,T}.”表示这是一门“计算机结构与操作系统”方面的中级课程,采用精简的、系统的、主题教学方法相结合的教学方法。根据编号CS220分析,计算机组成原理与结构是这个方向最基础和重要的一门课程。它的后续课程是CS221W计算机操作系统(Architecture and Operating Systems)、CS222W(Architectures for Networking and Communication)计算机网络与结构。
在国内普通高校计算机科学与技术专业本科教学中,计算机组成原理与结构课程同样重要,是本专业硬件与结构方面的专业基础课,一般课时为64~80,是硬件方面一门核心课程,是操作系统、汇编语言、计算机系统结构等的先导课程。也是国内学生普通反映比较难学、教师讲课比较难讲的一门课程。
在我校基于CC2005的“平台+模块”教学改革与课程群建设中,计算机组成原理与结构是计算机学科“硬件与结构”课程群的两门核心课程之一(另外一门是汇编语言与接口技术),是计算机学科平台的必修课程之一,5个学分,85课时。同样具有十分重要的课程地位。
4 内容组织
根据CC2005和CC2001,计算机组成原理与结构的经典知识点包括:数字逻辑、数据在机器中的表示、汇编级机器组织、存储组织与结构、人机交互、机器功能结构、多处理机高性能系统、网络与分布式系统结构等,后两者是选修内容。
“计算机组成原理与结构”课程重点介绍单处理器计算机的组成原理与结构体系,包括数据在机器中的表示、总线系统、外围设备接口、存储器组织与结构、指令系统、中央处理器(含运算器与控制器)、流水与并行处理等内容。其中重点是数据在机器中的表示、总线系统、存储器组织与结构、中央处理器等内容。外围设备接口、指令系统等作简单介绍,关于这部分内容重点在“汇编语言与微机接口技术”中体现。流水与并行处理也作简单介绍,进一步的内容在“计算机系统结构”选修课程中。
4.1传统的教学组织
在传统的教学方法中,上述内容的组织一般采用从基本原理->零件->部件->整机->系统的教学思路,从运算方法与运算器、存储系统、指令系统、中央处理器,到总线系统,组成计算机整机,再讲述外围设备与I/O系统,构成完整的单机计算机系统。在每一个部件的讲述过程中,都从最基本的原理开始,以运算方法与运算器为例,从最开始的数据在计算机中的表示(补码、原码、反码、移码、定点、浮点数的表示),到各种定点、浮点运算方法,再到全加器、可控加减法单元、一位ALU、四位ALU、先行进位ALU,一直到浮点运算器。基于这样教学思路,最大的优点是逻辑清晰。但是从实际教学效果来看,由于采用这种“自底向上”的方法,学生在学习前面局部知识的时候,缺乏整机系统概念,不能融会贯通,产生“教什么,学什么”而不知“为什么”的现象。学到整机、系统概念的时候,前面学的知识有遗忘和不能贯通的现象。
4.2 新颖的教学内容与教学方法组织
针对本门课程的要求和特点,我们提出整体“自顶向下”,细节“自底向上”的教学组织方法,如图6所示。一开始就给出计算机系统的概述,然后讲述现代系统总线标准,通过系统总线连接了计算机的三大组成部分:外围设备与I/O技术、存储系统、中央处理器。这样可以让学生有非常直接、整体的把握,为接下去学习掌握每一个部分的组成原理奠定基础、把握总体方向。以中央处理器为例,中央处理器通过CPU内部总线,连接了寄存器、控制器和运算器,在讲述具体的运算方法与运算器的时候,涉及到具体细节知识点的时候,我们还是采用传统的“自底向上”的教学组织方法,因为在涉及到具体原理的时候,必须遵循“循序渐进”的方法,不然没有足够的基础知识,学生无法理解与掌握。例如,如果没有数据表示与运算方法的基础,学生不可能理解定点ALU与浮点运算的原理与结构。
因此,在分析了CC2005对计算机组成原理与结构知识点要求的基础上,根据整体“自顶向下”,细节“自底向上”的教学组织方法,我们将计算机组成原理与结构课程的内容重新组织如下:
第1章 计算机系统导论 概述计算机系统的分级层次的概念,为以下各章学习奠定基础。
第2章 系统总线以总线为切入点讲解现代计算机的结构以及各个部件的互连,重点以PCI总线为例介绍总线上的相关技术。
第3章 外围设备与I/O接口技术 讨论现代计算机的外围设备接口方式、I/O技术,以及目前受关注的USB标准和IEEE1394标准。
第4章 存储器组织与结构讨论计算机内部存储器以及计算机外部存储器的原理与组织,沿存储元件到存储器件到存储体系的思路进行渐进式剖析。
第5章 指令系统讨论计算机的指令系统的发展、设计,指令格式以及RISC指令系统等。
第6章 中央处理器讨论CPU的组成结构,重点包括ALU的原理与运算方法、控制器原理、微程序级设计、典型CPU的组织与结构
第7章 流水与并行处理器讨论先进的流水CPU与并行CPU
4.3一体化的实验与课程设计
计算机组成原理与结构作为“硬件与结构”课程群中两门核心课程之一,其实验与实践教学已纳入整个课程群的一体化实验建设计划中。按照整个课程群的建设情况,设计一体化的实验环境与实验内容,本课程将计算机组成原理与结构、汇编语言与微机接口等课程的实验有机地结合在一起,创建良好的实验环境,灵活运用实验室、实习基地、开放式实验室等多种手段,尽量多地为学生创造条件,同时通过实验课程、开放实验、主题报告、课程设计、竞赛等多种手段和形式培养学生的研究能力与团队精神。
设计必修核心实验5个,选修实验2个,主题报告2个,课程设计1个,如下:
必修核心实验(实验课程):
1. 运算器组成实验
2. 双端口存储器原理实验
3. 数据通路实验
4. 控制器实验
5. CPU组成与机器指令执行实验
选修实验(开放实验):
1. 中断原理实验
2. DMA原理实验
主题报告:
1.现代总线的标准分析概述(PCI、EISA、Futurebus+)
2.高速串行接口技术USB和IEEE1394分析比较
课程设计:
采用微程序控制器模拟计算机的设计与调试
上面五个必修实验是本门课程的核心,要求每一个学生在规定的实验课程时间内独立完成,主要培养学生的独立思考能力和对课程原理的掌握、应用。两个选修实验设置成开放实验形式,可以与汇编语言与微机接口技术课程的实验很好地结合起来,体现课程群内实验一体化的精神。主题报告结合了最新的计算机科学技术,也同样结合了课程群内部其他课程内容,要求学生通过图书馆、网络、书籍等多种渠道获得知识,并加以提炼,以主题报告的形式呈现,体现学生自主学习能力的培养。课程设计也同样采用开放形式,是对整门课程知识的融合贯通,要求学生在几周时间内,将所学到的知识综合运用,完成整个设计。同时还培养学生的分析问题能力、交流能力和良好的团队精神。
5 进一步的思考
与课程群内另外一门核心课程的关系
计算机组成原理与结构课程的建设与改革不是孤立的一门课程建设,而是在我校课程群建设的大背景下进行的。作为课程内容的组织与建设,最主要的一个问题是如何处理前导和后续课程的关系,既不能有过多的内容重复,又不能在知识点上产生脱节现象。计算机组成原理与结构、汇编语言与接口技术作为本课程群的两门核心课程,在内容上势必有交叉之处,计算机组成原理与结构侧重单CPU的计算机组成原理,外围设备与I/O接口技术仅是简单涉及,简要概述;汇编言语与结构技术在讲述汇编语言原理的基础上,重点讨论外围设备与I/O接口技术。两者互有交叉,但不重叠。他们的关系如图7所示。
与课程群内选修课程的关系
计算机组成原理与结构作为“硬件与结构”的核心课程,包括了本课程群对重点掌握知识的要求,但是受课时与内容组织的限制,不可能涵盖所有内容。在CC2005中,关于这一点有专门的考虑,设置了编号为CS32*的选修课程。像流水技术、指令级并行技术等更多地在“计算机系统结构”这门选修课中涉及到。
课程内容更新
21世纪,作为信息技术的载体之一,计算机科学发展迅速。如何根据计算机学科发展以及信息科技发展情况,及时、动态地调整本课程教学内容,及时体现最新发展技术是本课程建设的一个重要方面。比如在存储系统中,SRAM和DRAM存储体是比较经典的,但是随着近年来Flash Memory的普及应用,这方面的内容必须要及时纳入教学范畴,这就需要课程的建设者持续地进行课程建设与改革。
6结论
如何在CC2005架构下,依据我国计算机专业教育的实际情况,将CC2005的知识点体现在教学内容中,是目前我国高等教育工作者的研究方向。本文在CC2005引导下,提出了“计算机组成原理与结构”的课程体系建设以及改革方案,希望抛砖引玉,与各位同行共同探讨计算机组成原理与结构的教学建设与改革。
参考文献
[1]CC 2001 Curriculum Guidelines for Undergraduate Degree Programs in Computer Science .http://www.acm.org/education/curricula.html
[2]中国计算机科学与技术学科教程2002研究组.中国计算机科学与技术学科教程2002.北京:清华大学出版社,2002,8.
[3]Draft of Computing Curricula 2005, http://www.acm.org/education/curricula.html.