本书主要提供“计算机组成和体系结构”课程的教学内容,包括计算机组成的原理知识,计算机硬件的设计技术,以及简单的实例计算机系统的工程实现,重点强调计算机硬件系统的组成原理、设计技术、工程实现三个方面的内容。作为计算机硬件课程的教材,本书涉及数字电路基础与逻辑设计基础知识、完整的计算机组成原理知识与设计实现技术、计算机系统结构的基础知识和概念等三门课程的有关内容,期望在有限的学时范围内,初步学习到计算机专业关键的三门硬件类课程的基本知识,强调所学知识的系统性和实用程度,强调培养学生的开创意识和实际工作能力。
? 本版的书名增加了“基本原理、设计技术与工程实现”的副标题,特意指出书中提供三类不同性质的教学内容。*一类内容是计算机组成原理与运行机制的核心知识,属于学生一定要掌握的原理性基础知识,在绝大多数同类教材中都会重点讲解;*二类内容是计算机硬件系统的基本设计技术,多数同类教材中讲解不多也欠具体应用实例;*三类内容是计算机硬件系统的入门性工程实现问题,其他教材中较少涉及,在这一版本的教材中对上述三类内容都有适度的讲解。
? 本版增加了计算机系统的工程实现的内容,又对计算机硬件设计技术的内容进行了重点修订,在对有关设计技术进行必要讲解之后,还要进一步给出描述计算各功能部件的组成与功能、使用与控制的ABEL-HDL程序的部分源码,这个程序的结构与实现功能容易读懂,更能方便地实现扩展新的指令和添加新的系统功能。
? 计算机各个功能部件的组成、运行原理和控制使用是课程教学的重点内容,在本版教材中,在强调讲清基本原理和基础概念的基础上,还要提供组成简单、能够实用的功能部件实例,*终还可以使用这些部件实例构建成能够正常运行的教学计算机系统,而这些设计实现的主要工作将交由学生以教学实验的方式来完成,这对培养学生承担实际工作的能力和大有益处,比较充分地体现出作者在主持建设“计算机组成原理”国家精品课程的教学理念。
? 在教材中强调把指令格式选择和指令系统设计、机器语言和汇编语言编程作为重点教学内容之一,为此需要提供使用这套指令系统设计完成的实例计算机系统的监控程序,从而使计算机组成原理课程教学摆脱了硬软件完全分割的局面,有利于加深学生对计算机整机系统的正确理解,这在其他同类教材中是很少见到的。
本书包括数字电路基础(先修部分)、计算机组成(主体部分)、计算机体系结构(提高部分)3部分内容,共13章,重点讲解计算机系统的完整组成和提高性能的可行途径。作为硬件课程教材,兼顾到计算机科学与技术专业中偏工程技术方向、偏软件方向的本科生,也可用于软件学院和计算机应用方向的学生。
宋佳兴,请华大学计算机科学与技术系副研究员,博士。主要研究方向为计算机网络、分布式信息系统等。在相关领域承担多项科研项目,发表论文20余篇,获省部级科技进步奖2项。是清华大学国家精品课“计算机组成原理”课程主要成员,获省部级教学成果奖1项。主讲数据库技术及应用、计算机组成与系统结构课程。
王诚,多年在清华大学计算机系教学和科研第一线工作,出版了十余本书,教学取得优异业绩,科研工作也有十余项重要成果。在长达十七、八年的教学过程中,重点主讲“计算机组成原理”、“计算机组成与体系结构”等课程,计算机组成原理课被评为国家、北京市、清华大学三个级别的精品课程,获北京市高教教学成果一等奖。出版多本主教材和实验指导书,其中有2本被评为北京市精品教材,进入国家ji“十五”和“十一五”规划教材。开发研制了教学硬件实验设备及其软件模拟系统,制作了教学课件,在全国有较大影响。
CONTENTS
第1章计算机系统概述1
1.1计算机系统的基本组成及其层次结构1
1.2计算机硬件的5个功能部件及其功能4
1.3计算机系统主要的技术与性能指标7
1.4计算机的体系结构、组成和实现概述9
1.5计算机发展进步、分类和拓展应用的进程12
本章内容小结和学习方法建议15
习题与思考题15
第2章数字电路基础和常用器件17
2.1数字电路的基本元件17
2.1.1晶体二极管与三极管17
2.1.2应用案例19
2.2数字电路基础及其相关处理方法20
2.2.13种基本逻辑关系20
2.2.2逻辑函数及其描述方法23
2.2.3逻辑函数的特性、规则与应用24
2.3组合逻辑电路及时序逻辑电路25
2.3.1常用逻辑门器件26
2.3.2时序逻辑电路29
2.3.3存储器芯片简介31
2.3.4几个专用功能器件和存储器芯片的引脚图32
2.4现场可编程逻辑器件及其应用34
2.4.1现场可编程器件概述34
2.4.2CPLD和FPGA的编程与应用37
本章内容小结和学习方法建议37
习题与思考题37
第3章数据表示、运算算法和线路实现39
3.1数字化信息编码的概念和二进制编码知识39
3.1.1数字化信息编码的概念39
3.1.2二进制编码和码制转换40
3.1.3检错纠错码45
3.2数据表示50
3.2.1逻辑类型数据的表示50
3.2.2字符类型数据的表示50
3.2.3多媒体信息编码53
3.2.4数值类型数据的表示55
3.3二进制数值数据的编码方案与运算算法60
3.3.1原码、反码、补码的定义60
3.3.2补码加、减运算规则和电路实现65
3.3.3原码一位乘法、除法的实现方案66
3.3.4实现乘法、除法的其他方案71
本章内容小结和学习方法建议76
习题与思考题77
目录计算机组成与体系结构(第3版)第4章运算器部件79
4.1算术逻辑运算单元的功能设计与线路实现79
4.2定点运算器81
4.2.1定点运算器部件的功能、组成与控制概述81
4.2.2设计实现一个简单的原理性8位运算器模型82
4.2.3运算器芯片Am2901实例与使用86
4.2.4MIPS多指令周期CPU系统的运算器的组成及其功能90
4.3浮点运算和浮点运算器92
4.3.1浮点数的运算规则92
4.3.2浮点运算器举例96
本章内容小结和学习方法建议98
习题与思考题99
第5章指令系统和汇编语言程序设计102
5.1指令格式和指令系统概述102
5.1.1指令的定义和指令格式102
5.1.2操作码的组织与编码103
5.1.3有关操作数的类型、个数、来源、去向和地址安排104
5.1.4指令的分类105
5.1.5指令周期及其对计算机性能和硬件结构的影响106
5.2基本寻址方式概述108
5.3指令系统举例111
5.3.1Pentium Ⅱ计算机的指令系统111
5.3.2MIPS32计算机的指令系统113
5.3.3PDP��11计算机的指令系统114
5.3.4教学计算机的指令系统116
5.4教学计算机的汇编语言程序设计120
5.4.1汇编语言及其程序设计中的有关概念120
5.4.2教学计算机的汇编程序设计举例121
本章内容小结和学习方法建议127
习题与思考题127
第6章控制器部件130
6.1控制器的功能与组成概述130
6.2硬布线控制器132
6.2.1硬布线控制器的组成和运行原理简介132
6.2.2MIPS32计算机的控制器简介133
6.2.3TEC_XP_Ⅱ教学计算机的硬布线控制器的设计与实现139
6.3微程序控制器部件149
6.3.1微程序控制器的基本组成和运行原理150
6.3.2微程序设计中的下地址形成逻辑和微程序设计152
6.3.3TEC�瞂P�并蚪萄Ъ扑慊�的微程序控制器的设计与实现155
本章内容小结和学习方法建议161
习题与思考题162
第7章多级结构存储器系统和主存储器166
7.1存储器系统概述166
7.1.1存储器分类166
7.1.2存储器系统目标167
7.1.3多级结构存储器系统169
7.2主存储器170
7.2.1主存储器概述170
7.2.2动态存储器的存储原理172
7.2.3静态存储器的存储原理173
7.2.4存储器容量扩展174
7.3教学计算机的主存储器实例176
7.4提高主存储器性能的途径179
本章内容小结和学习方法建议181
习题与思考题181
第8章高速缓冲存储器和虚拟存储器183
8.1高速缓冲存储器183
8.1.1Cache的运行原理183
8.1.2Cache的3种映像方式185
8.1.3Cache实用中的问题187
8.2虚拟存储器190
8.2.1虚拟存储器的概念介绍190
8.2.2段式存储管理190
8.2.3页式存储管理191
本章内容小结和学习方法建议193
习题与思考题193
第9章外部存储器设备196
9.1外存设备概述196
9.1.1主要技术指标196
9.1.2磁记录原理与记录方式197
9.2磁盘设备199
9.2.1磁记录介质199
9.2.2磁盘驱动器200
9.2.3磁盘控制器201
9.3磁盘阵列202
9.4光盘设备205
9.4.1只读光盘205
9.4.2可刻光盘206
9.4.3可擦写光盘208
9.4.4DVD208
9.4.5Blu�睷ay209
本章内容小结和学习方法建议209
习题与思考题209
第10章输入输出设备210
10.1输入输出设备概述210
10.2常用的输入设备211
10.3常用的输出设备212
10.3.1点阵式输出设备基本原理212
10.3.2显示器的组成和运行原理214
10.3.3打印机的组成和运行原理217
10.3.4计算机终端221
本章内容小结和学习方法建议221
习题与思考题222
第11章输入输出系统223
11.1计算机输入输出系统概述223
11.2计算机总线224
11.2.1总线概述224
11.2.2总线结构226
11.2.3总线宽度227
11.2.4总线时钟228
11.2.5总线仲裁230
11.2.6总线举例232
11.3输入输出接口238
11.3.1输入输出接口的功能238
11.3.2通用可编程接口组成239
11.3.3输入输出接口举例239
11.4输入输出方式242
11.4.1程序直接控制方式242
11.4.2程序中断传送方式243
11.4.3直接存储器访问方式245
11.4.4I/O通道控制方式247
11.4.5外围处理机方式247
本章内容小结和学习方法建议247
习题与思考题248
第12章流水线技术250
12.1流水线的基本概念250
12.1.1流水线的概念250
12.1.2流水线的表示方法252
12.1.3流水线的特点253
12.1.4流水线的分类方法254
12.2流水线的性能指标257
12.2.1流水线的吞吐率257
12.2.2流水线的加速比260
12.2.3流水线的效率260
12.2.4流水线的最佳段数261
12.3DLX指令集与DLX流水线261
12.3.1DLX指令集结构介绍261
12.3.2DLX的一种简单实现266
12.3.3DLX流水线的实现原理268
12.4流水线中的相关问题271
12.4.1结构相关271
12.4.2数据相关273
12.4.3控制相关279
12.5指令级并行技术284
12.5.1基本概念284
12.5.2多指令发射技术284
本章内容小结和学习方法建议287
习题与思考题288
第13章并行计算机体系结构289
13.1计算机体系结构概述289
13.1.1计算机体系结构的发展289
13.1.2计算机体系结构的分类290
13.1.3并行计算机体系结构分类292
13.2并行计算机系统的设计问题293
13.2.1并行计算机系统的互联网络293
13.2.2并行计算机系统的性能问题298
13.2.3并行计算机系统的软件问题300
13.3SIMD计算机简介301
13.3.1阵列处理机301
13.3.2向量处理机302
13.4共享内存的多处理机系统304
13.4.1一致性内存访问的UMA多处理机系统305
13.4.2非一致性内存访问的NUMA多处理机系统310
13.4.3基于Cache内存访问的COMA多处理机系统312
13.5基于消息传递的多计算机系统312
13.5.1大规模并行处理机314
13.5.2工作站集群315
本章内容小结和学习方法建议315
习题与思考题316
参考文献317
第3章数据表示、运算算法和线路实现运算器最重要的功能是加工数据,为此必须很好地掌握各种基本类型的数据及其在计算机内的表示和存储方式,以及完成运算所用的算法和实现这些算法所用的原理性电路。这些内容又以数字化信息编码、布尔代数、数字电路与逻辑设计为基础。布尔代数、数字电路与数字逻辑设计在本教材第2章进行了简要介绍。因此,本章将从数字化信息编码讲起,引出二进制编码,数制转换,插入部分检错纠错码知识;接下来介绍各种基本类型数据的表示;数值数据算术运算的有关方法。
二进制编码,数制转换,定点小数和整数的原码、反码、补码表示是本章的核心重点内容。
检错纠错码概念,讲到的两种常用的检错、纠错码的实现原理应较好理解,而对它们所用的具体线路简单了解即可。
应该掌握定点小数、整数、浮点数在计算机内的表示,补码加减法的运算规则,原码一位乘除法的原理性算法和完成算术运算用到的原理性逻辑线路。补码乘除法、加速乘除运算的可行方案简单了解即可。
本章作业较多,对深入理解所学知识和比较熟练地完成必要的计算很有必要,也是更好地学习运算器知识的基础,应认真完成。
3.1数字化信息编码的概念和二进制编码知识[*2]3.1.1数字化信息编码的概念计算机最重要的功能是处理信息,如数值、文字、符号、语音、图形和图像等。在计算机内部,各种信息都必须采用数字化的形式被保存、加工与传送。掌握信息编码的概念和技术是至关重要的。
所谓编码,就是用少量、简单的基本符号,选用一定的组合规则,以表示大量复杂多样的信息。基本符号的种类和这些符号的组合规则构成编码的两大要素。例如,用10个阿拉伯数字表示数值,用26个英文字母构成英文词汇,就是现实生活中编码的典型例子。
当要使用的基本符号数量较多时,往往还要采取措施,以便首先使用更少量的简单符号来编码以表示那些量大而复杂的基本符号,再用这些基本符号来表示信息,这就构成了多重编码。多重编码的典型例子是汉字编码,若把上万个汉字都作为基本符号就太多了,可以首先用笔形字画、偏旁部首、拼音或其他方式对其进行编码,以解决汉字输入问题。
在计算机中,广泛采用的是仅用0和1两个基本符号组成的基二码,亦称为二进制码。主要有以下3个方面的原因。
(1)基二码在物理上最容易实现,即容易找到具有两个稳定状态且能方便地控制状态转换的物理器件;可以用两个状态分别表示基本符号0和1。
(2)用基二码表示的二进制数,其编码、计数和算术运算规则简单,容易用数字电路实现,为提高计算机的运算速度和降低实现成本奠定了基础。
(3)基二码的两个基本符号0和1能方便地与逻辑命题的“否”和“是”,或称“假”和“真”相对应,为计算机中的逻辑运算和程序中的逻辑判断提供了便利条件。
计算机中的各种类型的数据,通常都是用二进制编码形式来表示、存储、处理和传送的。
数据表示、运算算法和线路实现第3章计算机组成与体系结构(第3版)3.1.2二进制编码和码制转换1.数制与进位计数法在采用进位计数的数字系统中,如果只用r个基本符号(例如0,1,2,…,r-1),通过排列起来的符号串表示数值,则称其为基r数制(Radix�瞨NumberSystem),r被称为该数制的基(Radix)。假定用m+k个自左向右排列的符号Di(-k≤i≤m-1)表示数值N,即N=Dm-1Dm-2…D1D0D-1D-2…D-k(3.1)式中的Di(-k≤i≤m-1)为该数制采用的基本符号,可取值0,1,2,…,r-1,小数点位置隐含在D0与D-1位之间,则Dm-1…D0为N的整数部分,D-1…D-k为N的小数部分。
如果每个Di的单位值都赋以固定的值Wi,则称Wi为该位的权(Weight),此时的数制称为有权的基r数制(WeightedRadix�瞨NumberSystem)。此时N代表的实际值可表示为N=∑m-1i=-kDi×Wi(3.2)如果该数制编码还符合“逢r进位”的规则,则每位的权(简称位权)可表示为Wi=ri式中的r是数制的基,i是位序号。式3.2又可以写为N=∑m-1i=-kDi×ri(3.3)式中的符号:
r——是这个数制的基;
i——表示这些符号的排列次序,即位序号;
Di——是位序号为i的一位上的符号;
ri——是第i位上的一个1所代表的值(位权);
Di×ri——是第i位上的符号所代表的实际值;
∑——表示对m+k位的各位的实际值执行累加求和;
N——代表一个数值。
此时该数制被称为r进位数制(PositionalRadix�瞨NumberSystem),简称r进制。下面是计算机中常用的几种进位数制:
二进制r=2,基本符号0,1
八进制r=8,基本符号0,1,2,3,4,5,6,7
十六进制r=16,基本符号0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
其中A~F分别表示十进制数10,11,12,13,14,15
十进制r=10,基本符号0,1,2,3,4,5,6,7,8,9
如果每一数位都具有相同的基,即采用同样的基本符号集来表示,则称该数制为固定基数制(FixedRadixNumberSystem),这是计算机内普遍采用的方案。在个别应用中,也允许对不同的数位或位段选用不同的基,即混合采用不同的基本符号集来表示,则该数制被称为混合基数制(MixedRadixNumberSystem)。
2.二进制编码和二进制数据
二进制编码是计算机内使用最多的码制。它只使用两个基本符号0和1,并且通过由这两个符号组成的符号串来表示各种信息(各种类型的数据)。二进制的数值类型的数据亦是如此,计算其所代表的数值的运算规则是N=∑m-1i=-kDi×2iDi的取值为0或1(3.4)例如(1101.0101)2=(13.3125)10。
等号左右两边括号内的数字为两个不同进制的数字,括号右下角的2和10分别指明左右两边的数字为二进制和十进制的数。按式(3.4),计算二进制数1101.0101的实际值为1×23+1×22+0×21+1×20+0×2-1+1×2-2+0×2-3+1×2-4
=8+4+1+0.25+0.0625=13.3125从式中可以进一步看到,由于二进制只用0和1两个符号,在计算二进制位串所代表的实际值时,只需把符号为1的那些位的位权相加即可,则上式变为:23+22+20+2-2+2-4=13.3125熟练地记清二进制数每位上的位权是有益的。当位序号为0~12时,其各位上的位权分别为1、2、4、8、16、32、64、128、256、512、1024、2048和4096。
3.数制转换
计算机中常用几种不同的进位数制,包括二进制、八进制、十进制和十六进制。二进制数据更容易用逻辑线路处理,更接近计算机硬件能直接识别和处理的数字信息的使用要求,而使用计算机的人更容易接受十进制的数据类型。二者之间的进制转换是经常遇到的问题。
1)十进制数据与其他进制数据的转换
式(3.3)确定的运算规则,是不同进位计数制数据之间完成进位制转换的依据。
十进制到二进制的转换,通常要区分数的整数部分和小数部分,并分别按除2取余数部分和乘2取整数部分两种不同的方法来完成。
(1)对整数部分,要用除2取余数办法完成十进制到二进制的转换,其规则是:
①用2除十进制数的整数部分,取其余数为转换后的二进制数整数部分的低位数字;
②再用2去除所得的商,取其余数为转换后的二进制数高一位的数字;
③重复执行第②步的操作,直到商为0,结束转换过程。
例如,将十进制的37转换成二进制整数的过程如下:
(2)对小数部分,要用乘2取整数办法完成十进制到二进制的转换,其规则是:
①用2乘十进制数的小数部分,取乘积的整数为转换后的二进制数的最高位数字;
②再用2乘上一步乘积的小数部分,取新乘积的整数为转换后二进制小数的低一位数字;
③重复第②步操作,直至乘积部分为0,或已得到的小数位数满足要求,结束转换过程。
例如,将十进制的0.43,转换成二进制小数的过程如下(假设要求小数点后取5位):
对小数进行转换的过程中,转换后的二进制已达到要求位数,而最后一次的乘积的小数部分不为0,会使转换结果存在误差,其误差值小于求得的最低一位的位权。
对既有整数部分又有小数部分的十进制数,可以先转换其整数部分为二进制数的整数部分,再转换其小数部分为二进制的小数部分,通过把得到的两部分结果合并起来得到转换后的最终结果。例如,(37.43)10=(100101.01101)2。
在实现手工转换时,如果对二进制数已经比较熟悉,基本上记住了以2为底的指数值,即二进制数每一位上的权,对十进制数进行转换时,也可以不采用上述规则,基本上可以直接写出来。例如:
(45.625)10=32+8+4+1+0.5+0.125
=(101101.101)2,即(101101.101)2。
(1105)10=1024+81=1024+64+16+1
=(10001010001)2,即(10001010001)2。
参照上述方法,也可以实现十进制到八进制、十进制到十六进制的转换过程。例如:
(1)完成八进制和十进制数据之间的转换,具体如下。
(2)完成十进制到十六进制数的转换方法与前述方法类似,只是乘除16时,手工运算不大方便。
2)二进制与八进制、十六进制间的转换
用二进制表示一个数值N,所用的位数K为log2N,如表示4096,K为13,写起来位串较长。为此,计算机中也常常采用八进制和十六进制来表示数值数据,为表示数值N,分别有如下对应关系:N=∑m-1i=-kDi×8iDi的取值为0到7(3.5)例如(7.44)8=7×80+4×8-1+4×8-2=(7.5625)10。N=∑m-1i=-kDi×16iDi的取值为0到9和A到F(3.6)例如(1A.08)16=1×161+10×160+8×16-2=(26.03125)10。
上述二式中所用符号的意义与式(3.3)中所用符号的意义类同,但此处Di包含的基本符号分别限于0~7和0~9、A~F,各位的码权分别为8i和16i。
把用二进制、八进制、十六进制表示的数转换成十进制数的值,使人能更容易地衡量这个数值的大小。
由于log28=3,log216=4,即1位八进制的数可以用3位二进制的数重编码来得到,1位十六进制的数可以用4位二进制的数重编码得到,故人们通常认为,在计算机这个领域内,八进制和十六进制数只是二进制数的一种特定的表示形式。表3.1给出了少量二进制、八进制、十六进制和十进制数的对应关系。表3.1二进制、八进制、十六进制和十进制的对应关系续表二进制数八进制数十六进制数十进制数的值00000000000101110010022200110333010004440101055501100666011107771000108810011199101012A10101113B11110014C12110115D13111016E14111117F15在把二进制数转换成八进制或十六进制表示时,应从小数点所在位置分别向左、向右对每3位或每4位二进制位进行分组,写出每一组所对应的1位八进制数或十六进制数。若小数点左侧(即整数部分)的位数不是3或4的整数倍,可以按在数的最左侧补零的方法理解;对小数点右侧(即小数部分),应按在数的最右侧补零的方法处理,否则容易转换错。对不存在小数部分的二进制数(整数),应从最低位开始向左把每3位划分成一组,使其对应一个八进制位,或把每4位划分成一组,使其对应一个十六进制位。例如,(10.101)2变成八进制时,应把它理解为(010.101)2,是(2.5)8,即八进制的2.5。当把它转换为十六进制时,应首先变为(0010.1010)2,是(2.A)16,即十六进制的2.A,而不是(2.5)16。又如:
(1100111.10101101)2=(147.532)8
(1100111.10101101)2=(67.AD)16
八进制和十六进制之间的转换不是很常用,二者经过二进制的中间结果进行转换是方便的。
4.二进制数的运算规则
二进制数之间可以执行算术运算和逻辑运算,其规则简单,容易实现。
1)加法运算规则
2)减法运算规则
3)乘法运算规则
二进制数乘法的计算方法,与十进制数乘法的计算方法类似,按乘数每一位的值计算出部分积,对全部部分积求累加和则得到最终乘积。
4)除法运算规则
二进制数除法的计算与十进制数除法类似,也由减法、逐位上商等操作分步完成。例如:
逻辑运算是在对应的两个二进制位的逻辑值之间进行的,与相邻的高低位的值均无关,即不存在进位、借位等问题。
5)逻辑或运算规则(运算符为∨z)
0∨0=0例如:
0∨1=11100
1∨0=1∨1010
1∨1=11110
6)逻辑与运算规则(运算符为∧)
0∧0=0例如:
0∧1=01100
1∧0=0∧1010
1∧1=11000
7)逻辑非运算规则(运算符为?瘙綈)
?瘙綈0=1
?瘙綈1=0
逻辑非实现对单个逻辑值的处理,而不是对两个逻辑值的运算,逻辑非又被称为逻辑取反操作。对逻辑数1011逐位进行取反,其结果为0100。
8)逻辑异或运算规则(运算符为)
0��0=0例如:
0��1=11100
1��0=1��1010
1��1=00110
名誉主任:陈火旺主任:李晓明副主任:钱德沛焦金生委员:(按姓氏笔画排序)
马殿富王志英王晓东宁洪刘辰
孙茂松李大友李仲麟吴朝晖何炎祥
宋方敏张大方张长海周兴社侯文永
袁开榜钱乐秋黄国兴蒋宗礼曾明
廖明宏樊孝忠秘书:张瑞庆
本书主审:李晓明
前言FOREWORD对这一版的书名做了一点变动,增加了“基本原理、设计技术与工程实现”的副标题,特意指出书中提供3类不同性质的教学内容。第一类是计算机组成原理与运行机制的核心知识,属于学生一定要掌握的原理性基础知识,在绝大多数的同类教材中都会重点讲解。第二类是计算机硬件系统的基本设计技术,多数同类教材中讲解不多也欠具体应用实例。第三类是计算机硬件系统的入门性工程实现问题,同类教材中较少涉及,我们希望在这一版的教材中对上述3类内容都有适度的讲解,其中的工程实现问题只在主教材中简单提及,主要部分将放到《计算机组成与体系结构实验指导》教材中。这种安排体现了作者多年坚守的教学理念,从如下3个方面予以说明。
(1)针对计算机组成原理这一类含有较多技术性、工程性、实践性内容的课程,教学安排不宜过分局限于教师课堂讲课、学生课上听讲和课后背书的学习方式,应该在讲课听课的基础上再较大幅度地加强教学实践环节,增强课程内容的实用性,促成学生用课堂学到的理论知识,设计实现一台组成简单完整、原理清晰实用、实验操作方便、支持汇编语言编程的简小计算机系统,促使学生在学习理论知识、掌握设计技术、提升实践能力等诸方面得到全面成长。
(2)在讲解计算机硬件系统组成和功能实现时,应该把口语性的一般讲解和硬件描述语言的严谨描述恰当地结合起来,鼓励选用硬件描述语言设计计算机控制器和描述整机系统,既能体现计算机的最新设计技术和实现手段,保证教学内容适度的先进性,又可以培养学生严谨的思维方式和对硬件问题的深入理解和准确阐述,这有利于提高授课质量,降低学习和实验的难度。
(3)在课程的教学安排中,需要处理好硬件子系统(重点部分)和软件子系统(配合部分)的关系,不能完全局限于硬件系统本身,还需要包含必要的软件内容,汇编语言程序设计应该占有一定分量,加深对硬、软件两类资源各自在计算机系统中的地位和作用的理解。指令系统是连接硬、软件系统的纽带,汇编语言编程有助于深入了解指令系统、计算机整机组成与运行控制机制。因此在教学计算机系统中配备了3个基本程序:PC仿真终端程序、交叉汇编程序、监控程序,对多数同学来说做到会使用它们就够了,鼓励有余力的同学探索这几个程序的实现思路和方法。
本书包括了数字电路基础、计算机组成、计算机体系结构3部分内容,共13章。
第1章是全书内容的概述部分,简要介绍计算机组成和体系结构的基本概念,从实现功能的角度介绍计算机硬件系统的5个功能部件;从功能和层次的观点来讲解计算机组成和体系结构各自需要研究和解决的问题,并简要说明了本课程的教学目标和对学习方法的建议。
第2章简明讲解数字电路基础知识和几种常用的电路芯片,是为讲解计算机组成和体系结构做电子线路方面的准备,没有这些知识是很难学懂计算机硬件的组成和运行原理的。
第3章的数据表示和运算、第4章的运算器部件共同构成本书核心内容的第1个知识单元,主要围绕承担数据运算功能的运算器部件进行讲解,在给出通用的基本原理知识的同时,还提供了设计实现一个原理性的8位运算器模型和一个4位位片结构的运算器芯片两个实例,展现运算器部件的设计过程和实现方法,提升学生的实践能力。
前言计算机组成与体系结构(第3版)第5章的指令系统和第6章的控制器部件共同构成本书核心内容的第2个知识单元,主要围绕指令格式选择、指令系统设计,以及硬件系统中的硬布线方案的控制器部件进行讲解,而对微程序方案控制器只作适当介绍。在给出通用的基本原理知识的同时,提供了一套简单实用的基本指令系统。硬件方面,选用多指令周期方案实现这套指令系统的控制器部件的具体例子,展现控制器部件的设计过程和实现方法,提升学生的实践能力。软件方面,使用这套指令系统设计了教学机的监控程序,可以支持汇编语言程序设计;若再扩展一部分指令,也可以支持解释执行的BASIC高级语言程序设计,能支持浮点数运算和多种基本数学函数运算。针对这门课程的教学要求来说,此时的教学机的硬软件系统已经比较完整,包括了计算机硬件软件系统全部6个层次的基本内容。
第7章的主存、第8章的高速缓存和虚存、第9章的辅助存储器设备共同构成本书核心内容的第3个知识单元,主要围绕计算机3级结构的存储器件系统和外存储器设备进行讲解,还给出了通过字、位扩展技术,用静态芯片构建内存储器部件的具体例子,支持存储器与CPU同步运行,展现内存储器的功能和经总线连接CPU的具体方法。
第10章的输入输出设备和第11章的输入输出系统共同构成本书核心内容的第4个知识单元,主要围绕承担计算机的输入输出功能的设备或者部件进行讲解,给出了用于连接计算机各个部件的单总线结构的实际例子,具体介绍了串行接口的内部线路组成和使用方法,并通过串口连接PC仿真终端,选用程序查询方式控制入出设备,使教学机整机系统具备了输入输出操作功能。
第12章的流水线技术和第13章的并行计算机体系结构共同构成本书核心内容的第5个知识单元,对应计算机体系结构课程的基础知识,针对提高计算机系统的性能,更多地强调基本概念、提出问题的思路和解决问题的方案,基本上止步于定性说明。
教学过程中,可以根据不同的课程安排和教学要求,合理分配教材中3部分内容的课时比例。针对把计算机组成和系统结构合并成一门课程的安排,教材第3~13章的内容都属于必学知识,建议教学学时安排为70~90。若只是用于计算机组成原理课程,计算机体系结构的内容另外开课,则只需讲解第3~11章中的知识,建议课内学时安排为60~70,另外安排约16个实验学时。
第2章用于复习先修课程的内容,简明介绍数字电路与逻辑设计知识,约占教材总篇幅的7%,是学习计算机组成和体系结构一定会用到的电路基础知识,也许要求并不太多也不深,但如果完全不了解这些内容,要听懂课堂授课内容难度很大,设计实现一个小计算机系统更无从谈起。
第1章、第3~11章是课程的主体部分,约占教材总篇幅的73%,主要是计算机组成方面较为完整的系统知识,重点围绕基本计算机硬件系统5个功能部件的功能和组成进行分析讲解。
第12章和第13章是本课程的提高部分,约占教材总篇幅的20%,主要是计算机体系结构方面的基础知识,重点介绍提高计算机系统性能的各种可行思路与基本途径。
在教学环节安排中,需要处理好理论教学和教学实验的关系,可以考虑(并非一定如此)用约四分之三的课内学时(例如48学时)讲授计算机组成与运行机制的核心知识,四分之一的课内学时中的一小部分(例如6学时)用于讲解构建整机系统用到的设计技术和工程实现问题。剩余的部分(例如10学时)和16个实验学时统一安排用于教学实验,在教师的指导下去完成设计实现小计算机硬件系统的核心工作,更好地贯彻理论指导实践,通过实践再进一步深入理解理论的认知过程,做到学习知识和增长能力的双丰收。
本教材配套的有:①内容详尽的教学实验指导教材;②教学实验设备(由清华大学科教仪器厂生产销售,型号是TEC�瞂P�并颍�,选用教材第1~4个知识单元的部件实例组合而成,能够确保课堂授课内容和教学实验项目完美的结合;③PowerPoint教学课件;④指令级软件模拟系统,可以直接在PC系统中运行,实现了与硬件设备相同的运行功能。良好的教学实践环境和实验条件,可以有效地加深对课堂教学内容的理解,并使得学生在一定程度上获得开展研究工作和开展计算机硬件系统设计的实际经验,全面提高解决实际问题和创新思维的能力。
本书的第1~3章、第7~13章由宋佳兴修订,第4~6章由王诚修订,作者有多年从事本专业教学和科研工作的经历。
由于时间和作者水平所限,加上时间仓促,书中难免存在不足之处,敬请读者批评指正。
编者2016年6月于清华大学计算机科学与技术系这是第二版前言,不知要否,如果要,就可以用下面的前言FOREWORD作为“21世纪大学本科计算机专业系列教材”,遵照本系列教材评审组专家的意见,本书包括了数字电路基础、计算机组成、计算机体系结构3个部分内容。本书读者对象主要是学习计算机课程的大学生,包括计算机系的学生、软件学院的学生和非计算机专业选修计算机课程的学生。可以根据不同的课程和教学要求,合理分配本教材中3部分内容的课时比例。全书共13章,其中第2章属于先修内容,约占教材总量的7%,若是学生课前未曾学习过数字电路与逻辑设计课程,还是应该用少量学时对教材第2章的内容进行适当讲解;第3~11章是课程的主体部分,约占教材总量的73%,主要是计算机组成方面的知识,重点围绕基本计算机硬件系统5个功能部件的功能和组成进行讲解分析;第12~13章是本课程的提高部分,约占教材总量的20%,主要是计算机体系结构方面的基础知识,重点介绍提高计算机系统性能的各种可行思路与基本途径。其中的指令流水线的浅显内容已经出现在计算机组成原理课程之中,但多数人还是愿意把较为具体深入的指令流水技术安排到计算机系统结构课程中讲授。
针对把计算机组成和系统结构合并成一门课程的情形,教材第3~13章的内容都属于必学知识,建议教学学时安排为70~90学时。若只是用于计算机组成原理课程,计算机体系结构的内容另外开课,则只需讲解第3~11章中的知识,建议教学学时安排为60~70学时。教材主体部分的内容是按照基本通用原理、简明原理示例、典型产品现状这样3个层次来处理的。
基本通用原理是基础,是学习与理解计算机组成与运行机制的核心知识。其特点是稳定性(不随时间变迁而改变)和通用性(不随具体机型而变化),是学生一定要掌握的部分。要把通用原理转化成真实的计算机系统,还有许多技术与工程、性能价格比的平衡关系等需要解决。
在简明原理示例这个层次,强调运用学习到的基本原理知识,学懂或者设计实现一台硬软件基本完整、实现简单(易懂、价廉)、但不一定是最理想(不追求更完备的性能、更好的实用价值)的计算机系统的技术与过程,增加对所学知识的理解深度和应用能力,力求把学习知识和增长实践能力结合起来。
在典型产品现状这个层次,将选择某些典型计算机系统中的实例,给出其设计实现的结果及其外特性,可以体现用到的基本原理,更强调让学生了解计算机当前的技术水平和发展现状。对三个层次的教学要求不尽相同,对优化学生的知识结构各自发挥不同的作用。
在讲解计算机组成和功能时,把通常的文字叙述和语言VHDL描述结合起来,体现计算机的最新设计手段和实现技术,保证教学内容的先进性,并尽量在提高授课质量,降低实验、学习的难度方面做出新的探索。
教材内容具体安排如下。
第1章是全书内容的概述部分,简要介绍计算机组成和体系结构的基本概念,从实现功能的角度来讲解计算机硬件系统的基本组成;从功能和层次的观点来讲解计算机组成和体系结构各自需要研究和解决的问题,并简要说明了本课程的教学目标和对学习方法的建议。
第2章简明讲解数字电路基础知识和几种常用的电路芯片,是为讲解计算机组成和体系结构作电子线路方面的准备,没有这些知识是很难学懂计算机硬件的组成和运行原理的。
第3章的数据表示和运算和第4章的运算器部件共同构成本书核心内容的第1个知识单元。主要围绕计算机硬件系统中承担数据运算功能的部件进行讲解,在给出通用的基本原理知识的同时,还给出运算器部件的具体例子,展示运算器部件的设计过程和实现方法,提升学生的实践能力。
前言计算机组成与体系结构(第3版)第5章的指令系统和第6章的控制器部件共同构成本书核心内容的第2个知识单元。主要围绕计算机硬件系统中承担指挥控制功能的硬连线方案的控制器部件进行讲解,而对微程序控制器只作适当介绍。在给出通用的基本原理知识的同时,还给出控制器部件的具体例子,展示控制器部件的设计过程和实现方法,提升学生的实践能力。
第7章的主存、第8章的高速缓存和虚存以及第9章的辅助存储器设备共同构成本书核心内容的第3个知识单元。主要围绕计算机3级结构的存储器件系统和外存储器设备进行讲解,还给出了通过字、位扩展技术,用存储器芯片构建内存储器的具体例子。
第10章的输入输出设备和第11章的输入输出系统共同构成本书核心内容的第4个知识单元。主要围绕承担计算机的输入输出功能的设备或者部件进行讲解,给出了用于连接计算机各个部件的总线构成的实际例子,具体介绍了串行接口的内部线路的组成和使用方法。
第12章的流水线技术和第13章的并行计算机体系结构共同构成本书核心内容的第5个知识单元。对应计算机体系结构课程的主要知识,针对提高计算机系统的性能,更多地强调基本概念、提出问题的思路和解决问题的方案,基本上止步于定性说明。
通过本教材,学生可以学到数字电路的基础知识,了解某些电路芯片的功能和用法,初步认识到某些逻辑功能是能够使用数字电路实现的;可以从层次的观点,掌握必要的基础知识,计算机组成和运行机制方面的知识,以及必要的专业知识基础,为下一步的学习和进一步提高实际工作能力做好准备;可以从系统的观点,了解计算机体系结构领域的基本知识,理解提高计算机的部件和整机硬件性能的各种可行途径,理解计算机系统中硬件、软件的功能划分和相互配合关系,能站在更高的层次上思考与解决学习、工作中遇到的问题。
为方便教学,本教材配有PowerPoint电子教案。除此之外,还有硬件实现的教学计算机设备,这个设备就是选用本教材第1~4个知识单元的实际例子组合而成的,确保课堂授课内容和教学实验项目能够完美结合。还有内容详尽的教学实验指导书和通过软件模拟实现的相同功能的模拟系统。良好的教学实践环境和实验条件,能够有效地加深对课堂教学内容的理解,并使得学生在一定程度上获得开展研究工作和计算机硬件系统设计的实际经验,全面提高解决实际问题和创新思维的能力。
本书的第1~6章由王诚教授修订,第7~13章由宋佳兴副教授修订,作者有多年从事本专业教学和科研工作的经历。
由于时间和作者水平所限,书中难免存在不足之处,敬请广大读者批评指正。
作者2011年4月于清华大学计算机科学与技术系
评分
评分
评分
评分
评分
评分
评分
评分
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有