第1章 计算机组成及其技术概论 1
1.1 引言 1
1.2 计算机语言与软件系统 2
1.3 计算机硬件系统 5
1.3.1 鼠标 5
1.3.2 图形显示器 5
1.3.3 主板及其所安装的硬件 6
1.3.4 外存储器 8
1.3.5 计算机网络 9
1.4 集成电路及其发展 9
1.5 制造Pentium芯片的实例 11
1.6 计算机发展历史及发展阶段划分 11
1.6.1 第一台电子计算机 11
1.6.2 计算机的商业发展 13
1.6.3 计算机发展阶段及其年代划分 14
1.7 本章小结 15
习题 16
第2章 基本逻辑电路 20
2.1 概述 20
2.2 门电路、真值表和逻辑等式 20
2.2.1 真值表 21
2.2.2 逻辑代数 21
2.2.3 门电路 22
2.3 组合逻辑 23
2.3.1 译码器 23
2.3.2 编码器 24
2.3.3 多路选择器 24
2.3.4 可编程逻辑阵列PLA——两级与或逻辑实现 24
2.3.5 ROM 27
2.3.6 无关项 28
2.3.7 逻辑元件阵列 30
2.4 时钟 31
2.5 存储器与存储元件 32
2.5.1 触发器和锁存器 32
2.5.2 寄存器文件 34
2.5.3 SRAM 36
2.5.4 DRAM 39
2.5.5 差错的检查和纠正 40
2.6 有限状态机 42
2.7 定时方法学 45
2.7.1 电平触发定时 46
2.7.2 异步输入和同步器 46
2.8 本章小结 48
习题 48
第3章 指令系统 51
3.1 概述 51
3.2 计算机硬件的操作指令 51
3.3 计算机硬件的操作数 52
3.4 计算机指令格式 56
3.5 决策指令 59
3.6 计算机硬件对子程序的支持 63
3.7 计算机对字符的处理 68
3.8 其他类型的MIPS寻址方式 70
3.9 程序的运行过程 78
3.9.1 编译 79
3.9.2 汇编 79
3.9.3 链接目标代码 80
3.9.4 把程序装入内存中 82
3.10 综合程序范例 83
3.10.1 子程序swap 83
3.10.2 子程序sort 84
3.11 数组和指针的比较 88
3.12 PowerPC和80x86的指令实例 90
3.12.1 IBM/Motorola PowerPC 90
3.12.2 Intel 80x86 92
3.13 指令集发展历史 97
3.13.1 累加器体系结构 97
3.13.2 通用寄存器体系结构 98
3.13.3 紧凑编码和堆栈体系结构 99
3.13.4 高级语言计算机体系结构 100
3.13.5 精简指令集计算机体系结构 100
3.13.6 80x86的历史简介 100
3.14 本章小结 101
习题 102
第4章 计算机算术 110
4.1 概述 110
4.2 有符号和无符号数 110
4.3 加减法运算 117
4.4 逻辑操作 120
4.5 构造算术逻辑单元 124
4.5.1 1位ALU 124
4.5.2 32位ALU 127
4.5.3 先行进位 132
4.6 乘法 136
4.6.1 乘法运算基本原理 136
4.6.2 有符号数乘法 142
4.7 除法 146
4.7.1 第一代除法算法和硬件实现 147
4.7.2 第二代除法算法和硬件实现 149
4.7.3 第三代除法算法和硬件实现 149
4.7.4 有符号数除法 151
4.7.5 MIPS除法指令 152
4.8 浮点数运算 154
4.8.1 浮点数的表示法 155
4.8.2 浮点数加法 158
4.8.3 浮点数乘法 161
4.8.4 MIPS的浮点数指令 163
4.9 本章小结 166
习题 170
第5章 处理器:数据通路和控制器 177
5.1 引言 177
5.1.1 指令的执行过程 177
5.1.2 逻辑约定和时钟 178
5.1.3 MIPS指令子集的实现 179
5.2 建立数据通路 179
5.3 一个简化的实施方案 184
5.3.1 建立一个数据通路 184
5.3.2 ALU控制单元设计 185
5.3.3 设计主控制单元 189
5.3.4 指令执行过程分析——数据通路的使用 193
5.3.5 设计单时钟周期控制器 200
5.3.6 用门电路实现主控制函数 203
5.3.7 为什么不使用单周期实现 203
5.4 多时钟周期的实现 206
5.4.1 多个时钟周期指令的执行过程 212
5.4.2 CPU控制器的设计 215
5.5 微程序设计:简化控制器设计 229
5.5.1 微指令的格式定义 229
5.5.2 编写微程序 231
5.5.3 实现微程序 235
5.5.4 使用序列发生器实现后继状态函数 235
5.5.5 微程序的硬件实现 239
5.6 异常 241
5.6.1 异常的概念 241
5.6.2 异常的处理 242
5.6.3 控制器对异常的检测 244
5.7 本章小结 246
习题 247
第6章 存储器层次结构 251
6.1 引言 251
6.2 Cache存储器层次结构 253
6.2.1 Cache/主存的读策略 255
6.2.2 处理Cache失效 257
6.2.3 Cache实例:DECStation 3100 258
6.2.4 空间局部性原理的利用 260
6.2.5 支持Cache的存储器系统的设计方案 263
6.3 评测与改进Cache性能 265
6.3.1 Cache对处理器性能影响的定量分析 265
6.3.2 Cache/主存映射方式 267
6.3.3 定位Cache中的块 270
6.3.4 Cache替换策略 272
6.3.5 多级Cache 272
6.4 虚拟存储器 274
6.4.1 地址变换 276
6.4.2 缺页中断 277
6.4.3 写策略 279
6.4.4 加快地址变换:TLB 279
6.4.5 MIPS R2000 TLB 282
6.4.6 虚拟存储器、TLB、Cache之间的联系 283
6.4.7 存储保护 284
6.4.8 处理缺页中断和TLB失效 285
6.5 存储层次的通用结构 287
6.5.1 问题1:如何存放块 288
6.5.2 问题2:如何寻找块 289
6.5.3 问题3:发生Cache失效时选择哪个块被替换 289
6.5.4 问题4:如何处理写操作 290
6.5.5 3Cs模型 291
6.6 本章小结 293
习题 294
第7章 处理器和外部设备接口 298
7.1 引言 298
7.2 I/O系统性能测量 300
7.2.1 巨型计算机I/O基准测试程序 300
7.2.2 事务处理系统I/O基准测试程序 300
7.2.3 文件系统I/O基准测试程序 301
7.3 I/O设备类型 301
7.3.1 鼠标 302
7.3.2 磁盘 303
7.3.3 网络 305
7.4 总线 307
7.4.1 总线分类 309
7.4.2 同步总线与异步总线 310
7.4.3 增加总线带宽 313
7.4.4 取得总线访问权 315
7.4.5 总线仲裁 316
7.4.6 总线标准 318
7.5 I/O设备与系统的接口 319
7.5.1 向I/O设备发送命令与接口的主要功能 320
7.5.2 I/O设备与处理器数据传输控制方式 321
7.6 程序中断输入输出方式 327
7.6.1 中断的作用、产生和响应 327
7.6.2 中断处理 330
7.7 DMA输入输出方式 333
7.7.1 DMA三种工作方式 333
7.7.2 DMA控制器组成 333
7.7.3 DMA的数据传送过程 334
7.8 I/O系统设计 335
7.9 一个典型的台式机I/O系统 337
7.10 本章小结 338
习题 338
附录:关键术语中英文对照表 343
参考文献 347