计算机系统结构课程内容体系研究报告.docx
《计算机系统结构课程内容体系研究报告.docx》由会员分享,可在线阅读,更多相关《计算机系统结构课程内容体系研究报告.docx(35页珍藏版)》请在冰豆网上搜索。
计算机系统结构课程内容体系研究报告
计算机系统结构课程内容体系及实践课程研究报告
张晨曦刘依
同济大学软件学院
www.GotoS
xzhang2000@
一、引言
计算机系统结构是高等院校计算机专业的一门专业主干课程。
本课程的目标是提高学生从系统和总体结构的层次来理解和研究计算机系统的能力,帮助学生建立整机系统的概念;使学生掌握计算机系统结构的基本知识,掌握基本的性能分析方法,并对计算机系统结构的发展现状有所了解。
我们认为,在计算机专业人才培养中,有两类能力非常重要。
一类是基本的设计和开发能力,特别是具体的开发技术和技能等;另一类是从总体、系统的角度来分析和解决问题的能力以及自主创新能力。
前者直接关系到学生毕业后的就业问题,而后者则对毕业生的发展和未来有很大的影响。
本课程特别强调培养学生的后面这一种能力,是一门非常重要的课程。
全国重点院校的计算机学院(系)都开设了这门课程,很多普通高校也逐渐开设了该课程。
长期以来,国内这门课程一直是比较难讲的课程,很多教师反映这门课程比较难讲,而且学生也不爱听。
其原因之一是课程的内容体系和教材有些陈旧,往往是用大量篇幅去论述抽象的概念、方法和原则,强调的是定性分析,内容比较空泛、较难理解。
对有些非重点或非主流的结构和方法进行了过细的介绍,而对实际系统和现已广泛应用的方法的定量分析却比较少。
国内许多已有的教材都存在这样的问题。
另外,在本课程的内容体系方面,国内20多年来都变化不大。
我们77级本科生在1981年上系统结构课时的内容体系跟现在有些教材的内容体系相差不是很大,在不少现在的教材中都能找到自己的影子。
在另一方面,在这20多年中,计算机系统结构技术已经有了很大的发展。
美国斯坦福大学的著名教授JohnL.Hennessy和加州大学伯克利分校的著名教授DavidA.Patterson联手于20世纪90年代初出版的《ComputerArchitecture:
:
AQuantitativeApproach》一书在这个领域激起了一阵改革的浪花,它从全新的角度讲述系统结构,受到了同行的高度赞赏。
虽然从1996年开始,我们就在国内(国防科技大学)率先在该课程中采用该书中的内容,但到目前为止,国内尚未看到关于如何调整计算机系统结构课程的内容体系的报告。
本项目就是要在对国外教材和国内教材进行深入研究的基础上,面向重点大学的计算机专业,确定出既采用国外教材的优点又继承国内现有教材特色的系统结构课程的内容体系,并对其实践课程进行研究。
二、对国外系统结构教材内容的研究
计算机系统结构的英文是computerarchitecture,用这个词作为关键词,在国外著名的网上书店、国外著名的出版社MorganKaufmann和PrenticeHall的网站以及其它一些网站上进行检索,查到以下8本主要的系统结构方面的书(近5年):
1.书名:
ComputerArchitecture:
AQuantitativeApproach(3rdEdition)
作者:
JohnL.Hennessy,DavidA.Patterson
出版时间:
2002年5月
出版商:
MorganKaufmann
国内出版社引进情况:
电子工业出版社(中),机械工业出版社(英)
页数:
1136
简称(为了本文的论述方便而采用的简称,下同):
【Henn3】或【H3】
2.书名:
ComputerArchitecture:
AQuantitativeApproach(4thEdition)
作者:
JohnL.Hennessy,DavidA.Patterson
出版时间:
2006年9月
出版商:
MorganKaufmann
国内出版社引进情况:
电子工业出版社(中),机械工业出版社(英)
页数:
704
简称:
【Henn4】
3.书名:
ParallelComputerArchitecture:
AHardware/SoftwareApproach
作者:
DavidCuller等
出版商:
MorganKaufmann
出版时间:
1998年8月
国内出版社引进情况:
机械工业出版社(中)
页数:
1100
简称:
【Culler】
4.书名:
EssentialsofComputerArchitecture
作者:
DouglasE.Comer
出版商:
PrenticeHall
出版时间:
2004年8月
国内出版社引进情况:
清华大学出版社(中),高等教育出版社(英)
页数:
400
简称:
【Comer】
5.书名:
PrinciplesofComputerArchitecture
作者:
M.Murdocca,V.P.Heuring
出版商:
PrenticeHall
出版时间:
2000年
页数:
640
简称:
【Murd】
6.书名:
ComputerArchitecture:
FromMicroprocessorstoSupercomputers
作者:
BehroozParhami
出版商:
OxfordUniversityPress
出版时间:
2005年2月
页数:
575
简称:
【Parha】
7.书名:
ComputerSystemArcitecture:
ANetworkingApproach(2ndEdition)
作者:
RobWilliams
出版商:
PrenticeHall
出版时间:
2006年11月
国内出版社引进情况:
机械工业出版社(英)
页数:
752
简称:
【Willi】
8.书名:
AdvancedComputerArchitectureandParallelProcessing
作者:
HeshamEl-Rewini,MostafaAbd-El-Barr
出版商:
Wiley-Interscience
出版时间:
2005年1月
国内出版社引进情况:
电子工业出版社(中)
页数:
288
简称:
【Rewini】
在这些书中,【Culler】和【Rewini】主要是论述高级体系结构和并行处理体系结构,这部分内容一般是在研究生阶段才学习的,所以它们不适合作为本科生的教材,但可以作为研究生的教材或参考书。
【Comer】是由美国普渡大学资深教授DouglasE.Comer编写的。
该书中共有20章,内容包括:
数字逻辑基础,数据和程序的表示,各种处理器和计算引擎,处理器类型和指令系统,操作数寻址和指令表示,CPU:
微代码、保护及处理器模式,汇编语言和程序设计范例,存储器,物理存储器和物理寻址,虚拟存储器技术和虚拟寻址,高速缓存和高速缓存技术,输入输出概念和术语,总线和总线体系结构,程序控制I/O和中断驱动I/O,程序员眼中的设备、I/O和缓冲,并行性,流水线技术,性能评估,体系结构的层次和例子。
可以看出,这些内容的一半以上与我们国内的计算机组成原理课程的内容重叠,而对系统结构的论述又深度不够。
【Murd】共有10章,包括数据表示,算术运算,指令集结构,语言和机器,数据通路和控制,存储器,输入输出,通信,系统结构的发展趋势等。
【Parha】分成7部分,共28章。
这7部分是:
背景和动机,指令集结构,算术/逻辑部件,存储系统设计,输入/输出和接口,高级系统结构。
这两本书存在与【Comer】类似的问题,相当一部分内容属于计算机组成原理的内容。
【Willi】共有23章,篇幅达752页。
主要内容有:
vonNeumann结构,功能部件及取指-执行周期,控制部件,ALU,存储器,PentiumCPU,子程序,简单输入/输出,串行连接,并行连接,存储层次,编程者的观点,局域网,广域网,其它网络,操作系统简介,WindowsXP,文件系统,可视输出,RISC处理器:
ARM和SPARC,VLIW处理器:
EPICItanium,并行处理。
这本书不仅包含组成原理的内容,而且还包含了操作系统、网络方面的内容。
可谓包罗万象。
内容涉及面太广、与计算机组成原理课程重复、系统结构内容深度不够等缺点是国外大多数系统结构教材的通病。
也许其目的是为了不需要计算机组成原理的铺垫就可以学习系统结构。
但国内一般都是先学计算机组成原理、后学系统结构的,所以这些教材不太适合“中国国情”。
JohnL.Hennessy和avidA.Patterson编写的《ComputerArchitecture:
:
AQuantitativeApproach》彻底改变了这种状况。
这两个人是享誉全球计算机界的著名教授,他们在RISC研究方面取得了卓越的成绩,其研究结果分别形成了MIPS和SPARC系统结构的基础。
十多年前,该书第一版一出现,就好评如潮。
到去年为止,已经出了4个版本。
这是一本在全世界有很大影响的教材,被称为是系统结构学科的“圣经”,在国外已经被许多大学选用。
在国外同类教材中,它是最权威、最有影响的一本。
它对系统结构进行了深入、全面的阐述,并且在讲述中采用了国际上流行的研究计算机系统结构的方法——量化方法。
该书的内容充分反映了当前系统结构的主流发展,而且结构合理、内容新颖、可读性好。
我们多年的教学研究和实践表明,采用量化方法的教学效果很好。
这本教材的第3版【Henn3】有1100多页,虽然内容丰富,但也太多、太全,难度偏大,我们认为直接作为本科生的教材是不合适的。
而且该教材还有工程性太强、对有些经典的计算机系统结构内容没有论述(如向量处理机,阵列处理机、数据流计算机等)的不足。
这本书的第4版【Henn4】虽然是最新版,但在编排上更像是研究生教材。
所以后面我们将主要以【Henn3】作为参考书,与国内的系统结构教材内容相结合,取长补短,研究并确定出计算机系统结构课程的内容体系。
三、对国内系统结构教材内容的研究
在计算机专业教材方面,国内最有影响的出版社有:
清华大学出版社,高等教育出版社,电子工业出版社,机械工业出版社,科学出版社,人民邮电出版社等。
在这些出版社的网站以及在中国互动出版网china-上,我们用“系统结构”和“体系结构”作为关键词查询,查出了这些出版社在近5年来出版的所有系统结构教材情况如下:
●清华大学出版社:
4本。
作者分别是郑纬民、李学干、尹朝庆、周立等。
虽然郑纬民的那本是1998年出的,但因为它是国内比较经典的一本系统结构教材,所以把它也列为研究的对象。
李学干的那本也是比较经典的,是“十一五”国家级规划教材。
其前身是苏东庄编写的系统结构教材。
25年前我们上大学时就使用过。
●高等教育出版社:
1本,作者是张晨曦等。
这本书是“十五”国家级规划教材。
●电子工业出版社:
2本,作者分别是陈建铎和徐炜民等。
徐炜民那本是“十五”国家级规划教材。
●机械工业出版社:
1本,作者是田俊峰等。
●科学出版社:
1本,作者是白中英等。
●人民邮电出版社:
1本,作者是张先俊等。
这10本系统结构教材的详细信息如下。
1.书名:
计算机系统结构(第2版)
作者:
郑纬民等
出版社:
清华大学出版社
出版时间:
1998年9月
页数:
731
简称:
【郑】
2.书名:
计算机系统的体系结构(“十一五”国家级规划教材)
作者:
李学干
出版社:
清华大学出版社
出版时间:
2006年1月
页数:
333
简称:
【李】
3.书名:
计算机系统结构教程
作者:
尹朝庆
出版社:
清华大学出版社
出版时间:
2005年4月
页数:
292
简称:
【尹】
4.书名:
计算机系统结构
作者:
周立等
出版社:
清华大学出版社
出版时间:
2006年12月
页数:
259
简称:
【周】
5.书名:
计算机体系结构(第2版)(“十五”国家级规划教材)
作者:
张晨曦等
出版社:
高等教育出版社
出版时间:
2005年6月
页数:
328
简称:
【张】
6.书名:
计算机系统结构(第2版)(“十五”国家级规划教材)
作者:
徐炜民等
出版社:
电子工业出版社
出版时间:
2003年7月
页数:
274
简称:
【徐】
7.书名:
计算机系统结构教程
作者:
陈建铎
出版社:
电子工业出版社
出版时间:
2006年2月
页数:
249
简称:
【陈】
8.书名:
计算机系统结构
作者:
田俊峰等
出版社:
机械工业出版社
出版时间:
2005年10月
页数:
274
简称:
【田】
9.书名:
并行机体系结构(第二版)
作者:
白中英等
出版社:
科学出版社
出版时间:
2006年1月
页数:
200
简称:
【白】
10.书名:
计算机系统结构
作者:
张先俊等
出版社:
人民邮电出版社
出版时间:
2006年2月
页数:
292
简称:
【张2】
我们购买了所有这些教材以及【Henn3】(简称为【H3】)和【Henn4】原版教材,对其内容进行了研究和比较,并做出了我们的选择。
1.第1章
第1章一般都是引言、导论、基本概念或基础知识等,上述教材中,这一章的内容比较接近,主要有:
●计算机系统结构的基本概念(包括计算机系统的层次结构、系统结构的定义以及计算机组成和计算机实现的概念等);
●计算机系统结构的分类;
●计算机系统的性能评测(包括定量设计原理、性能评测指标、基准测试程序等);
●计算机系统结构的发展(包括冯·诺依曼结构以及软件、应用、器件对系统结构的影响等);
●并行性的概念及并行性的发展。
【Henn3】和【张】都有一节论述计算机成本和价格方面的内容。
根据我们以前的教学经验,这一节几乎都是不讲的,所以在新的内容体系中,屏弃该内容。
2.指令系统的设计
在下面以及后面的表格中,√表示有相应的内容,而空栏则表示没有。
从下面的表格可以看出,绝大多数教材都有这部分内容。
表1
编号
内容
【郑】
【李】
【白】
【尹】
【周】
1
浮点数据表示和自定义数据表示
√
√
无此
内容
√
√
2
指令系统的分类
3
寻址技术
√
√
√
√
4
指令格式的优化设计
√
√
√
√
5
指令系统的功能设计
√
√
√
6
RISC
√
√
√
√
7
指令系统举例
表1(续)
编号
【徐】
【陈】
【田】
【张2】
【张】
【H3】
要否?
说明
1
注1-1
√
√
×
注1-2
2
√
√
√
√
注1-3
3
√
√
√
√
√
√
4
√
√
√
√
√
√
5
√
√
√
√
√
√
6
√
√
√
√
√
7
PDP-11,RISC-Ⅱ
√
DLX
MIPS
MIPS
注1-4
注1-1:
【徐】与其他教材不同,设置了名为“计算机系统结构”的一章,论述的内容包括:
CPU组成、数据表示、寻址方式、指令优化、总线结构、存储系统概述、输入输出等内容。
相当于给系统结构的方方面面来个概述。
这些内容中有相当一部分是与计算机组成原理重复的。
我们不采用这种写法。
注1-2:
浮点数据表示应该在其它课程(如原理)中讲过,没必要在这里重复论述。
自定义数据表示虽然是新内容,但由于这种技术在一般的计算机中很少采用,所以不讲也可以。
注1-3:
指令系统的分类对于进一步加深对不同指令系统的理解有较大的作用。
注1-4:
【陈】中介绍的PDP-11和RISC-Ⅱ已比较陈旧。
【张】中介绍的是抽象指令系统DLX,它在前几年比较流行。
在本报告的方案中,我们将和【H3】一样,采用MIPS作为例子。
MIPS与DLX都是RISC结构,而且有很多相似的地方。
两者的关键区别是:
DLX是假想的,MIPS是真实的。
MIPS是一种很有影响的RISC处理器结构,也比较简单,用它做例子是一个很好的选择。
这里介绍MIPS指令系统是必须的,因为后面各章中的例子以及本课程的实践环节都是建立在MIPS指令系统之上的。
3.流水线技术
流水线技术几乎是所有系统结构教材都讲的内容。
它是系统结构课程最经典的内容,也是重点之一。
要系统地展开论述。
表2
编号
内容
【郑】
【李】
【白】
【尹】
【周】
1
重叠执行和先行控制
√
注2-1
注2-1
√
√
2
流水线的概念与分类
√
√
√
√
√
3
流水线的时空图与性能分析
√
√
√
√
√
4
非线性流水线的调度
√
√
√
√
5
流水线的相关与冲突
√
√
√
√
√
6
指令流水线的实现实例
表2(续)
编号
【徐】
【陈】
【田】
【张2】
【张】
【H3】
要否?
说明
1
√
√
√
√
√
注2-3
2
√
√
√
√
√
√
3
√
√
√
√
√
√
√
4
√
√
√
√
注2-4
5
注2-2
√
√
√
√
√
√
6
√
√
√
注2-1:
【李】和【白】只讲了重叠执行,没有介绍先行控制。
注2-2:
【徐】对于相关只做了简单的介绍。
注2-3:
重叠执行和先行控制是使用比较多的技术,所以把该内容选入本方案。
注2-4:
这10本教材中,有7本是包含了“非线性流水线的调度”,而且这部分内容也是比较重要的。
故将其选入本方案。
4.指令级并行性及其开发
指令级并行性开发是提高计算机系统性能的重要技术。
有必要系统地讲述这部分内容。
相对于系统结构的经典内容来说,这部分内容是比较新的。
国内的教材除了【郑】、【周】、【张】以外,这部分内容比较少。
在本方案中,我们选入所有下表中列出的内容。
表3
编号
内容
【郑】
【李】
【白】
【尹】
【周】
1
指令动态调度的基本思想
√
√
√
2
计分牌算法
√
3
Tomasulo算法
√
√
√
4
动态分支预测技术
√
√
5
基于硬件的前瞻执行
6
超标量技术
√
√
√
√
√
7
超长指令字技术
√
√
√
√
√
8
超流水技术
√
√
√
√
√
表3(续)
编号
【徐】
【陈】
【田】
【张2】
【张】
【H3】
要否?
说明
1
无此
内容
√
√
√
√
2
√
√
√
3
√
√
√
4
√
√
√
√
5
√
√
√
6
√
√
√
√
√
√
7
√
√
√
√
√
8
√
√
√
√
√
√
5.用软件方法开发指令级并行
这部分内容是【H3】所独有的,是开发指令级并行的一些高级技术。
考虑到本方案是面向重点大学的计算机专业,我们将选用这些内容。
6.向量处理机
关于这部分内容,有的教材是单独设置一章,而有的则是把它合并到流水线技术一章中。
【郑】、【白】、【陈】是单独设置一章,其它的都是与流水线技术合并。
本方案的选择是单独设置一章。
表4
编号
内容
【郑】
【李】
【白】
【尹】
【周】
1
向量处理机的基本概念
√
√
√
√
√
2
向量处理方式
√
√
√
√
√
3
向量处理机的结构
√
√
√
√
√
4
提高向量处理机性能的方法
√
√
√
5
向量处理机的性能评价
√
√
√
√
6
向量处理机实例
Cray-1,CrayY-MP,C90,FujitsuVP2000,VPP500
Cray-1
Cray-1,CrayY-MP,C90,NECSX-X
Cray-1,FPS-164
Cray-1
表4(续)
编号
【徐】
【陈】
【田】
【张2】
【张】
【H3】
要否?
说明
1
√
√
√
√
√
附录光盘中有相关的内容
√
2
√
√
√
√
√
√
3
√
√
√
√
√
4
√
√
√
√
5
√
√
√
6
Cray-1,CrayY-MP,C90
待查
Cray-1,CrayY-MP,C90
Cray-1
Cray-1,CrayY-MP,C90
注4-1
注4-1:
使用最多的实例是Cray-1,CrayY-MP和C90。
7.存储系统
存储系统也是系统结构课程的最经典、最重点的内容之一。
要系统地展开论述。
表5
编号
内容
【郑】
【李】
【白】
【尹】
【周】
1
存储系统的概念和参数
√
√
无此
内容
√
√
2
存储层次
√
√
√
√
3
并行存储器
√
√
√
√
4
Cache的地址映象与地址变换
√
√
√
√
5
Cache替换算法的实现
√
√
√
√
6
Cache性能分析
√
√
√
√
7
降低Cache失效率的方法
8
减少Cache失效开销的方法
9
减少命中时间的方法
10
虚地址Cache
√
11
虚拟存储器
√
√
√
√
12
页面替换算法的模拟过程
√
√
√
√
13
存储层次举例
14
主存保护
√
表5(续)
编号
【徐】
【陈】
【田】
【张2】
【张】
【H3】
要否?
说明
1
√
√
√
√
√
√
√
2
√
√
√
√
√
√
√
3
√
√
√
√
√
√
4
√
√
√
√
√
简单
√
5
√
√
√
√
×
注5-1
6
√
√
√
√
√
√
√
7
√
√
√
8
√
√
√
9
√
√
√
10
√
√
√
√
11
√
√
√
√
简单
简单
简单
注5-2
12
√
√
√
×
注5-3
13
√
√
√
√
14
√
√
√
√
√
×
注5-1:
这部分内容主要是讲LRU替换算法的硬件实现。
由于随机算法实现简单,因而被广泛采用,而且在容量较大时,采用LRU替换算法和采用随机算法时的失效率差别不大。
所以本方案放弃这部分内容。
注5-2:
虚拟存储器在操作系统课程中是重点内容之一,读者应该是比较熟悉了。
所以这里不必再去重复讲述相同的内容,而只要简单地讲述在系统结构级