《计算机组成原理》系统地讲述了计算机最基本的组成和工作原理、分析方法和设计技术,以及有关的先进技术和在计算机组成方面的最新进展。全书共分8章。第1章计算机系统概论主要讲述计算机的发展历程、计算机系统的层次结构及组成、计算机的工作过程、性能、分类和应用。第2章运算方法和运算器主要讲述数值数据和非数值数据的表示方法、定点数与浮点数的运算方法和运算器以及数据校验码。第3章存储系统主要讲述存储器的基本概念、半导体存储器、多模块交叉存储器、相联存储器、Cache存储器以及虚拟存储器。第4章指令系统主要讲述指令和数据的寻址方式、指令格式的分析与设计以及CISC和RISC的基本概念。第5章中央处理器主要讲述CPU的功能和组成、时序产生器、微程序控制器、硬连线控制器、流水线技术以及提高单机系统指令级并行性的措施。第6章总线结构主要讲述总线的基本概念、总线仲裁和总线通信以及总线标准。第7章输入/输出设备主要讲述典型输入/输出设备的工作原理和常见的性能指标。第8章输入/输出系统主要讲述输入/输出系统的基本概念、I/O接口的功能和基本结构以及I/O设备的数据传送控制方式。每章针对各主要知识点给出了大量的例题和习题,附录A给出了部分习题的参考答案。
《计算机组成原理》可作为高等院校普通本科计算机科学与技术、软件工程、网络工程和信息技术等专业的教材,也可作为应用型本科相关专业的教材。
“计算机组成原理”是计算机科学与技术一级学科各专业必修的一门专业公共基础课,它以计算机单机系统为研究对象,主要介绍计算机硬件的基本组成、工作原理和逻辑设计。
本书根据高等学校计算机科学与技术专业公共基础课“计算机组成原理”的核心知识体系和研究生入学考试全国统考大纲的要求编写而成,较为全面地介绍了计算机系统中各部件的内部工作原理、组成结构、逻辑设计以及相互连接方式,以便让读者建立计算机系统整机的概念。通过对基础理论和基础知识的讲述,让读者能够运用计算机组成的基本原理和基本方法,对有关计算机硬件系统中的理论和实际问题进行计算、分析和设计。本书内容丰富、取材先进,在阐述计算机的基本组成和工作原理的基础上,力图给出设计方法和实例,以帮助读者更好地理解一些比较抽象的概念。
本书在编写上具有四个特色:第一,基础性强,知识结构合理,教材内容组织符合《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》和研究生入学考试全国统考大纲的要求;第二,取材先进,在计算机的发展趋势、指令系统的发展、提高单机系统指令级并行性的措施、总线标准等章节中引入了近几年来较新的计算机技术;第三,符合计算学科的认知理论,注重实践能力的培养,教材在内容的设置上依据了人们在计算学科领域的认识规律,即从感性认识(抽象)到理性认识(理论),再由理性认识(理论)回到实践(设计);第四,每章针对各主要知识点给出了大量的例题,解题过程详细,思路清晰,有助于对基本理论、基本方法的理解。各章节后的习题附有部分参考答案,有助于读者自学。
本书中有关cPU的设计电路已通过EDA软件设计验证。在保持CPU整体结构不变的前提下,通过扩展指令系统、设计新的指令格式和寻址方式、增加通用寄存器的个数、更新操作控制器的设计等,可设计各类功能强弱不同的CPU,并通过运行机器语言源程序来验证CPU设计的正确性。此部分可作为该课程的综合实践性环节,通过让学生自己做来增强其实践动手能力。
第1章 计算机系统概论1
1.1 计算机发展历程1
1.1.1 冯·诺依曼型计算机的特点和功能1
1.1.2 计算机的发展历史3
1.1.3 计算机的发展趋势5
1.2 计算机系统的层次结构及计算机组成6
1.2.1 计算机系统的层次结构6
1.2.2 计算机系统结构和计算机组成9
1.3 计算机系统的组成9
1.3.1 计算机的硬件系统10
1.3.2 计算机的软件系统13
1.3.3 计算机硬件与软件的逻辑等价性14
1.4 计算机的工作过程14
1.4.1 使用计算机求解的一个简单例子15
1.4.2 计算机工作过程16
1.5 计算机性能18
1.5.1 计算机性能的衡量尺度18
1.5.2 反映计算机性能的参数19
1.5.3 性能因子CPI19
1.5.4 计算机性能常用指标20
1.6 计算机的分类和应用21
1.6.1 计算机的分类21
1.6.2 计算机的应用24
本章小结27
习题128
第2章 运算方法和运算器30
2.1 数值数据的表示方法30
2.1.1 数据格式30
2.1.2 数的机器码表示34
2.2 非数值数据的表示方法39
2.2.1 字符数据的表示39
2.2.2 汉字的表示40
2.3 定点加法.减法运算41
2.3.1 补码加法.减法41
2.3.2 原码加法.减法49
2.3.3 移码加法.减法52
2.3.4 十进制加法器53
2.4 定点乘法运算54
2.4.1 原码一位乘法54
2.4.2 补码一位乘法56
2.4.3 阵列乘法器61
2.5 定点除法运算70
2.5.1 原码一位除法70
2.5.2 补码一位除法73
2.5.3 阵列除法器75
2.6 逻辑运算和移位运算78
2.6.1 逻辑运算78
2.6.2 移位运算80
2.7 定点运算器的组成与结构83
2.7.1 多功能算术逻辑运算单元84
2.7.2 定点运算器89
2.8 浮点运算方法和浮点运算器92
2.8.1 浮点加法.减法运算93
2.8.2 浮点乘法.除法运算95
2.8.3 浮点运算器举例98
2.9 数据校验码100
2.9.1 奇偶校验码101
2.9.2 海明校验码101
2.9.3 循环冗余校验码104
本章小结107
习题2108
第3章 存储系统113
3.1 存储器概述113
3.1.1 存储器的分类113
3.1.2 存储器的层次结构114
3.1.3 主存储器的主要技术指标115
3.2 半导体随机读写存储器115
3.2.1 SRAM116
3.2.2 DRAM119
3.3 半导体只读存储器123
3.3.1 半导体只读存储器的分类123
3.3.2 EPROM存储器芯片实例124
3.4 半导体存储器的容量扩展126
3.4.1 位扩展126
3.4.2 字扩展127
3.4.3 字位扩展127
3.5 高速存储器130
3.5.1 双端口RAM130
3.5.2 多模块交叉存储器132
3.5.3 相联存储器134
3.6 Cache存储器136
3.6.1 Cache的功能.基本原理与性能参数136
3.6.2 多层次Cache存储器139
3.6.3 Cache的地址映像与变换140
3.6.4 Cache的替换算法145
3.6.5 Cache的取算法145
3.6.6 Cache的写策略146
3.7 虚拟存储器147
3.7.1 虚拟存储器的基本概念147
3.7.2 页式虚拟存储器148
3.7.3 段式虚拟存储器149
3.7.4 段页式虚拟存储器150
3.7.5 虚拟存储器的替换算法151
本章小结152
习题3153
第4章 指令系统156
4.1 指令系统的发展与性能要求156
4.1.1 指令系统的发展156
4.1.2 对指令系统性能的要求157
4.1.3 计算机语言158
4.2 指令格式158
4.2.1 地址码159
4.2.2 操作码160
4.2.3 指令字长与机器字长的关系163
4.2.4 指令格式举例164
4.3 指令和数据的寻址方式166
4.3.1 指令的寻址方式166
4.3.2 操作数的寻址方式166
4.3.3 指令格式的分析与设计173
4.4 典型指令176
4.4.1 指令的分类176
4.4.2 RISC指令系统实例SUNSPARC178
4.4.3 Pentium指令系统181
4.5 CISC和RISC188
4.5.1 CISC188
4.5.2 RISC188
4.5.3 退耦的CISC/RISC191
4.5.4 后RISC192
本章小结193
习题4194
第5章 中央处理器198
5.1 CPU的功能和组成198
5.1.1 CPU的功能198
5.1.2 CPU的基本组成199
5.1.3 CPU中的主要寄存器200
5.1.4 操作控制器和时序产生器202
5.2 指令周期203
5.2.1 指令周期的基本概念203
5.2.2 MOV指令的指令周期206
5.2.3 LAD指令的指令周期207
5.2.4 ADD指令的指令周期209
5.2.5 INC指令的指令周期210
5.2.6 DEC指令的指令周期211
5.2.7 JNZ指令的指令周期212
5.2.8 STO指令的指令周期213
5.2.9 JMP指令的指令周期214
5.2.10 用方框图语言表示指令周期214
5.3 时序产生器和控制方式218
5.3.1 时序信号的作用和体制218
5.3.2 多级时序系统219
5.3.3 时序信号产生器220
5.3.4 控制方式222
5.4 微程序控制器223
5.4.1 微指令和微程序223
5.4.2 微程序控制器的组成和工作原理227
5.4.3 微程序设计举例229
5.5 微程序设计技术232
5.5.1 微命令的编码方法232
5.5.2 微地址的形成方法235
5.5.3 微指令格式236
5.5.4 微程序控制器的设计方法239
5.6 硬连线控制器240
5.6.1 硬连线控制器的组成和工作原理240
5.6.2 典型指令的指令周期流程图241
5.6.3 硬连线控制器的设计方法243
5.6.4 硬连线控制与微程序控制的比较243
5.7 流水线技术244
5.7.1 并行性的基本概念244
5.7.2 并行处理技术245
5.7.3 流水线的工作原理.特点及分类246
5.7.4 相关问题及解决方法248
5.7.5 流水线的性能分析252
5.8 提高单机系统指令级并行性(ILP)的措施255
5.8.1 超标量处理机和VLIW体系结构255
5.8.2 超流水处理机257
5.8.3 超标量超流水处理机258
5.8.4 EPIC技术259
5.9 现代微处理器举例260
5.9.1 Pentium4处理器260
5.9.2 UltraSPARCⅢCu处理器266
本章小结271
习题5272
第6章 总线结构276
6.1 总线的基本概念276
6.1.1 总线的特性276
6.1.2 总线的标准化277
6.1.3 总线的分类277
6.1.4 总线的性能278
6.1.5 单机系统的总线结构279
6.2 总线仲裁和总线通信281
6.2.1 总线仲裁281
6.2.2 总线通信285
6.3 总线举例290
6.3.1 ISA总线290
6.3.2 PCI总线293
6.3.3 PCI Express总线302
6.3.4 通用串行总线USB308
本章小结311
习题6312
第7章 输入/输出设备313
7.1 输入设备313
7.1.1 键盘313
7.1.2 鼠标314
7.2 输出设备315
7.2.1 显示器315
7.2.2 打印机317
7.3 辅助存储器320
7.3.1 辅助存储器的种类与技术指标321
7.3.2 磁盘322
7.3.3 Flash存储器326
7.3.4 RAID盘327
7.3.5 光盘存储器328
本章小结330
习题7331
第8章 输入/输出系统332
8.1 输入/输出系统概述332
8.1.1 I/O接口的概念及功能332
8.1.2 输入/输出设备的编址333
8.1.3 I/O设备的数据传送控制方式334
8.2 程序中断方式337
8.2.1 中断的基本概念337
8.2.2 中断处理339
8.2.3 多重中断341
8.3 DMA方式344
8.3.1 DMA的基本概念344
8.3.2 DMA的三种工作方式344
8.3.3 DMA控制器的组成和工作原理346
8.4 通道方式348
8.4.1 通道的基本概念348
8.4.2 通道的种类350
本章小结351
习题8352
附录A 各章部分习题参考答案353
习题1 参考答案353
习题2 参考答案353
习题3 参考答案358
习题4 参考答案360
习题5 参考答案362
习题6 参考答案366
习题7 参考答案367
习题8 参考答案367
附录B 研究生入学考试“计算机组成原理”课程全国统考大纲369
附录C 国内外常用二进制逻辑元件图形符号对照表372
参考文献373
(5)自我控制功能。计算机应能保证程序执行的正确性和各部件之间的协调性。
虽然计算机种类繁多,运算处理能力有强有弱,但作为计算机,它们的基本功能却是相同的。即冯·诺依曼型计算机都应当具有输入/输出、记忆、计算、判断和自我控制这五大功能。
60多年来,随着计算机技术的发展和新应用领域的开拓,通用计算机在设计时对冯·诺依曼结构作了很多改进,使计算机系统结构有了很大的发展,例如机器程序与数据分开存放在不同的存储器区域中,程序不允许修改,计算机不再以运算器为中心,而是以存储器为中心等。虽然有以上这些突破,但其本质变化不大,习惯上仍称之为冯·诺依曼型计算机。
冯·诺依曼型计算机的局限性在于它的并行性有限,使工程设计人员一直未能找到构建廉价且与大部分商用软件兼容的快速系统的途径。显然,未受到要与冯·诺依曼体系结构保持兼容性要求约束的工程师们,就可以自由地选择使用许多不同的计算模式。许多不同的研究领域都属于非冯·诺依曼模型的范畴,包括神经网络(利用人脑模型的思想作为计算范式)、基因算法(利用生物学和DNA演化的思想开发的算法)、量子计算机(在量子效应和量子力学基础上开发的进行高速数学和逻辑运算、存储及处理量子信息的计算机)、光子计算机(利用光子取代电子进行数据运算、传输和存储的计算机)、纳米计算机(采用纳米技术研发的新型高性能计算机)和大规模并行处理机等。在这些新的体系结构中,并行计算的概念是目前最流行的。