本书主要介绍计算机组成与系统结构涉及的相关概念、理论和技术内容,主要包括指令集体系结构、数据的表示和存储,以及实现指令集体系结构的计算机各部件的内部工作原理、组成结构及其相互连接关系。本书共分9章: 第1章对计算机系统及其性能评价进行概述性介绍;第2~3章主要介绍数据的机器级表示、运算,以及运算部件的结构与设计;第4章主要介绍包含主存、cache和虚拟存储器在内的存储器分层体系结构;第5~7章介绍指令系统以及各种CPU设计技术;第8~9章介绍总线互连以及输入输出系统。
本书内容详尽、反映现实、概念清楚、通俗易懂、实例丰富,并提供大量典型习题以供读者练习。本书可以作为计算机专业本科或大专院校学生计算机组成原理与系统结构课程的教材,也可以作为有关专业研究生或计算机技术人员的参考书。
目录
- 第1章 计算机系统概述11.1 计算机的功能和特性1
- 1.2 计算机的发展历程2
- *1.2.1 电子计算机的诞生2
- *1.2.2 第一代计算机2
- *1.2.3 第二代计算机3
- *1.2.4 第三代计算机4
- *1.2.5 第四代计算机4
- 1.3 计算机系统的组成6
- 1.3.1 计算机硬件6
- 1.3.2 计算机软件9
- 1.4 计算机系统的层次化结构10
- 1.4.1 最终用户眼中的计算机10
- 1.4.2 系统管理员眼中的计算机10
- 1.4.3 应用程序员眼中的计算机11
- 1.4.4 系统程序员眼中的计算机11
- 1.4.5 程序开发与执行过程11
- 1.5 本教材的主要内容和组织结构14
- 1.6 计算机系统性能评价16
- 1.6.1 计算机性能的定义16
- 1.6.2 计算机性能的测试16
- 1.6.3 用指令执行速度进行性能评估19
- 1.6.4 用基准程序进行性能评估20
- 1.7 本章小结21
- 习题122
- 第2章 数据的机器级表示25
- 2.1 数制和编码25
- *2.1.1 信息的二进制编码25
- *2.1.2 进位计数制27
- 2.1.3 定点与浮点表示31
- 2.1.4 定点数的编码表示31
- 2.2 整数的表示36
- 2.2.1 无符号整数的表示36
- 2.2.2 带符号整数的表示37
- *2.2.3 C语言中的整数类型37
- 2.3 实数的表示38
- 目 录 计算机组成与系统结构2.3.1 浮点数的表示格式38
- 2.3.2 浮点数的规格化40
- 2.3.3 IEEE 754浮点数标准41
- *2.3.4 C语言中的浮点数类型45
- 2.4 十进制数的表示47
- *2.4.1 用ASCII码字符表示47
- 2.4.2 用BCD码表示48
- 2.5 非数值数据的编码表示49
- 2.5.1 逻辑值49
- 2.5.2 西文字符50
- *2.5.3 汉字字符51
- 2.6 数据的宽度和存储53
- 2.6.1 数据的宽度和单位53
- 2.6.2 数据的存储和排列顺序55
- 2.7 数据校验码58
- 2.7.1 奇偶校验码60
- 2.7.2 海明校验码60
- *2.7.3 循环冗余校验码64
- 2.8 本章小结67
- 习题268
- 第3章 运算方法和运算部件72
- 3.1 高级语言和机器指令中的运算72
- *3.1.1 C程序中涉及的运算72
- *3.1.2 MIPS指令中涉及的运算75
- 3.2 基本运算部件77
- 3.2.1 串行进位加法器78
- *3.2.2 进位选择加法器79
- 3.2.3 并行进位加法器79
- 3.2.4 算术逻辑部件82
- 3.3 定点数运算85
- 3.3.1 补码加减运算86
- *3.3.2 原码加减运算88
- *3.3.3 移码加减运算89
- 3.3.4 原码乘法运算90
- 3.3.5 补码乘法运算95
- *3.3.6 快速乘法器99
- 3.3.7 原码除法运算101
- *3.3.8 补码除法运算108
- *3.3.9 阵列除法器112
- 3.4 浮点数运算113
- 3.4.1 浮点数加减运算113
- *3.4.2 浮点数乘除运算117
- 3.5 运算部件的组成120
- *3.5.1 定点运算部件120
- *3.5.2 浮点运算部件122
- 3.6 十进制数加减运算124
- 3.7 本章小结125
- 习题3126
- 第4章 存储器分层体系结构130
- 4.1 存储器概述130
- 4.1.1 存储器的分类130
- 4.1.2 主存储器的组成和基本操作131
- 4.1.3 存储器的主要性能指标132
- 4.1.4 存储器的层次化结构133
- 4.2 半导体随机存取存储器134
- 4.2.1 基本存储元件134
- 4.2.2 静态RAM芯片135
- 4.2.3 动态RAM芯片138
- 4.3 半导体只读存储器和Flash存储器141
- 4.3.1 半导体只读存储器141
- 4.3.2 半导体Flash存储器142
- 4.4 存储器芯片的扩展及其与CPU的连接143
- 4.4.1 存储器芯片的扩展143
- 4.4.2 存储器芯片与CPU的连接144
- 4.5 并行存储器结构技术146
- 4.5.1 双口存储器146
- 4.5.2 多模块存储器147
- 4.6 高速缓冲存储器149
- 4.6.1 程序访问的局部性149
- 4.6.2 cache的基本工作原理151
- 4.6.3 cache行和主存块之间的映射方式153
- 4.6.4 cache中主存块的替换算法160
- 4.6.5 cache的一致性问题164
- 4.6.6 cache性能评估165
- *4.6.7 影响cache性能的因素166
- *4.6.8 cache结构举例169
- 4.7 虚拟存储器170
- *4.7.1 进程与进程的上下文切换171
- *4.7.2 存储器管理172
- 4.7.3 虚拟地址空间174
- 4.7.4 虚拟存储器的实现176
- *4.7.5 存储保护183
- 4.8 本章小结184
- 习题4186
- 第5章 指令系统192
- 5.1 指令格式设计192
- 5.1.1 指令地址码的个数192
- 5.1.2 指令格式设计原则193
- 5.2 指令系统设计194
- 5.2.1 基本设计问题194
- 5.2.2 操作数类型195
- 5.2.3 寻址方式195
- 5.2.4 操作类型199
- 5.2.5 操作码编码200
- *5.2.6 条件码的生成与使用202
- 5.2.7 指令系统设计风格203
- 5.3 指令系统实例205
- *5.3.1 Pentium指令系统205
- *5.3.2 Power PC指令系统208
- *5.3.3 MMX和SIMD指令技术209
- 5.4 程序的机器级表示210
- *5.4.1 MIPS汇编语言和机器语言210
- *5.4.2 选择结构的机器代码表示214
- *5.4.3 循环结构的机器代码表示215
- *5.4.4 过程调用的机器代码表示216
- 5.5 本章小结223
- 习题5225
- 第6章 中央处理器229
- 6.1 CPU概述229
- 6.1.1 指令执行过程229
- 6.1.2 CPU的基本功能230
- 6.1.3 CPU的基本组成231
- 6.1.4 数据通路的基本结构232
- 6.2 单周期处理器设计240
- 6.2.1 指令功能的描述241
- 6.2.2 数据通路的设计242
- 6.2.3 控制逻辑单元的设计251
- 6.2.4 时钟周期的确定258
- 6.3 多周期处理器设计259
- *6.3.1 信号竞争问题259
- *6.3.2 指令执行状态分析260
- *6.3.3 硬连线路控制器设计263
- 6.4 微程序控制器设计265
- *6.4.1 Wilkes微程序控制器266
- 6.4.2 微程序控制器的结构267
- 6.4.3 微命令编码和微指令格式268
- 6.4.4 微指令地址的确定273
- 6.5 异常和中断处理276
- 6.5.1 基本概念276
- 6.5.2 异常处理过程278
- *6.5.3 带异常处理的处理器设计279
- 6.6 本章小结282
- 习题6284
- 第7章 指令流水线287
- 7.1 流水线概述287
- 7.1.1 流水线的执行效率287
- 7.1.2 适合流水线的指令集特征288
- 7.2 流水线处理器的实现289
- 7.2.1 每条指令的流水段分析289
- 7.2.2 流水线数据通路的设计290
- 7.2.3 流水线控制器的设计295
- 7.3 流水线冒险及其处理296
- 7.3.1 结构冒险296
- 7.3.2 数据冒险297
- 7.3.3 控制冒险304
- *7.3.4 访问缺失引起的流水线阻塞310
- 7.4 高级流水线技术312
- *7.4.1 静态多发射处理器313
- *7.4.2 动态多发射处理器 317
- *7.4.3 Pentium 4处理器的流水线结构 321
- 7.5 本章小结324
- 习题7326
- 第8章 系统总线329
- 8.1 总线的基本概念329
- *8.1.1 总线的特性和分类329
- 8.1.2 系统总线的组成330
- 8.2 总线设计的要素331
- 8.2.1 信号线类型331
- 8.2.2 总线事务类型332
- 8.2.3 总线带宽333
- 8.2.4 总线裁决333
- 8.2.5 定时方式338
- *8.3 总线接口单元343
- 8.4 总线标准344
- *8.4.1 ISA总线344
- *8.4.2 EISA总线345
- *8.4.3 PCI总线345
- 8.5 总线结构351
- *8.5.1 单总线结构351
- *8.5.2 双总线结构351
- 8.5.3 多总线结构352
- 8.6 本章小结354
- 习题8355
- 第9章 输入输出组织358
- 9.1 外部设备的分类与特点358
- 9.1.1 外设的分类358
- 9.1.2 外设的特点359
- 9.2 输入设备和输出设备359
- *9.2.1 键盘359
- *9.2.2 鼠标器361
- *9.2.3 打印机361
- *9.2.4 显示器364
- 9.3 外部存储设备366
- 9.3.1 磁表面存储原理366
- 9.3.2 硬盘存储器370
- *9.3.3 磁带存储器377
- *9.3.4 光盘存储器378
- 9.4 I/O接口380
- 9.4.1 I/O接口的功能380
- 9.4.2 I/O接口的通用结构381
- *9.4.3 操作系统对I/O的支持382
- 9.4.4 I/O端口及其编址384
- *9.4.5 I/O接口的分类386
- 9.4.6 并行传输和串行传输387
- *9.4.7 I/O接口举例390
- 9.5 I/O数据传送控制方式394
- 9.5.1 程序直接控制I/O方式395
- 9.5.2 程序中断I/O方式398
- 9.5.3 DMA方式407
- *9.5.4 通道和I/O处理器方式413
- 9.6 本章小结 416
- 习题9418
- 参考文献422