目录 2
第一部分 概述 2
第1章 导论 2
1.1 计算机组织与体系结构 2
1.2 结构和功能 3
1.2.1 功能 3
1.2.2 结构 5
1.3 为何要学习计算机组织和体系结构 8
1.4 本书概要 9
1.5 因特网和Web资源 9
2.1.1 第一代:真空管 11
2.1 计算机简史 11
第2章 计算机的演变和性能 11
2.1.2 第二代:晶体管 18
2.1.3 第三代:集成电路 20
2.1.4 后续的几代 25
2.2 性能设计 28
2.2.1 微处理器的速度 28
2.2.2 性能平衡 29
2.3 Pentium和PowerPC的进展 31
2.3.1 Pentium 31
2.3.2 PowerPC 32
2.4 推荐的参考文献和Web站点 33
2.5 关键词、思考题和习题 34
第二部分 计算机系统 39
第3章 计算机功能和互连的顶层视图 39
3.1 计算机的部件 39
3.2 计算机功能 42
3.2.1 取指周期和执行周期 42
3.2.2 中断 45
3.2.3 I/O功能 52
3.3 互连结构 52
3.4 总线互连 54
3.4.1 总线结构 54
3.4.2 多总线层次结构 56
3.4.3 总线设计要素 58
3.5 PCI 62
3.5.1 总线结构 62
3.5.2 PCI命令 66
3.5.3 数据传送 67
3.5.4 仲裁 69
3.6 推荐的参考文献和Web站点 70
3.7 关键词、思考题和习题 71
附录3A 时序图 74
第4章 cache 75
4.1 计算机存储系统概述 75
4.1.1 存储系统的特性 75
4.1.2 存储器分层结构 77
4.2 cache存储器原理 80
4.3 cache的设计要素 83
4.3.1 cache容量 83
4.3.2 映射功能 83
4.3.3 替换算法 91
4.3.4 写策略 91
4.3.5 行的大小 92
4.3.6 cache数目 92
4.4 Pentium 4和PowerPC的cache组织 94
4.4.1 Pentium 4的cache组织 94
4.4.2 PowerPC的cache组织 96
4.6 关键词、思考题和习题 97
4.5 推荐的参考文献 97
附录4A 两级存储器的性能特点 101
4A.1 局部性 101
4A.2 两级存储器的操作 104
4A.3 性能 104
第5章 内部存储器 108
5.1 半导体主存储器 108
5.1.1 组织 108
5.1.2 DRAM和SRAM 108
5.1.3 ROM类型 111
5.1.4 芯片逻辑 112
5.1.5 芯片封装 113
5.1.6 模块组织 114
5.2 纠错 116
5.3 高级DRAM组织 121
5.3.1 同步DRAM 121
5.3.2 rambus DRAM 123
5.3.3 带cache的DRAM 125
5.4 推荐的参考文献和Web站点 125
5.5 关键词、思考题和习题 125
第6章 外部存储器 128
6.1 磁盘 128
6.1.1 磁读写机制 128
6.1.2 数据组织和格式化 129
6.1.3 物理特性 131
6.1.4 磁盘性能参数 133
6.2 RAID(磁盘冗余阵列) 136
6.2.1 RAID 0级 137
6.2.2 RAID 1级 141
6.2.3 RAID 2级 142
6.2.4 RAID 3级 142
6.2.5 RAID 4级 143
6.2.6 RAID 5级 143
6.2.7 RAID 6级 144
6.3 光存储器 144
6.3.1 光盘 144
6.3.2 数字视盘 147
6.4 磁带 148
6.6 关键词、思考题和习题 150
6.5 推荐的参考文献和Web站点 150
第7章 输入输出 154
7.1 外部设备 155
7.1.1 键盘/监视器 156
7.1.2 磁盘驱动器 157
7.2 I/O模块 159
7.2.1 模块功能 159
7.2.2 I/O模块结构 161
7.3.1 概述 162
7.3.2 I/O命令 162
7.3 编程式I/O 162
7.3.3 I/O指令 163
7.4 中断驱动式I/O 165
7.4.1 中断处理 165
7.4.2 设计问题 168
7.4.3 Intel 82C59A中断控制器 169
7.4.4 Intel 82C55A可编程外部接口 170
7.5 存储器直接存取(DMA) 172
7.5.1 编程式I/O和中断驱动式I/O的不足 172
7.5.2 DMA功能 172
7.6 I/O通道和处理器 174
7.6.1 I/O功能的演变 174
7.7.1 接口的类型 176
7.6.2 I/O通道的特性 176
7.7 外部接口:FireWire和InfiniBand 176
7.7.2 点对点和多点配置 177
7.7.3 FireWire串行总线 177
7.7.4 InfiniBand 181
7.8 推荐的参考文献和Web站点 184
7.9 关键词、思考题和习题 184
第8章 操作系统支持 188
8.1 操作系统概述 188
8.1.1 操作系统的目标和功能 188
8.1.2 操作系统的类型 190
8.2 调度 197
8.2.3 短调度 198
8.2.1 长调度 198
8.2.2 中调度 198
8.3 存储管理 202
8.3.1 交换 202
8.3.2 分区 203
8.3.3 分页 205
8.3.4 虚拟存储器 207
8.3.5 转换后援缓冲器 209
8.3.6 分段 211
8.4 Pentium Ⅱ与PowerPC存储管理 212
8.4.1 PentiumⅡ的存储管理硬件 212
8.4.2 PowerPC存储管理硬件 216
8.5 推荐的参考文献和Web站点 219
8.6 关键词、思考题和习题 220
第三部分 中央处理器 227
第9章 计算机算术 227
9.1 算术逻辑单元 227
9.2 整数表示 228
9.2.1 符号-幅值表示法 228
9.2.2 2的补码表示法 229
9.2.3 不同位长间的转换 231
9.3 整数算术 233
9.3.1 取负 233
9.2.4 定点表示法 233
9.3.2 加法和减法 234
9.3.3 乘法 236
9.3.4 除法 243
9.4 浮点表示 245
9.4.1 原理 245
9.4.2 二进制浮点表示的IEEE标准 248
9.5 浮点算术 250
9.5.1 浮点加法和减法 251
9.5.2 浮点乘法和除法 254
9.5.3 浮点运算的精度问题 255
9.5.4 二进制浮点算术的IEEE标准 256
9.6 推荐的参考文献和Web站点 258
9.7 关键词、思考题和习题 259
第10章 指令集:特征和功能 263
10.1 机器指令特征 263
10.1.1 机器指令要素 263
10.1.2 指令表示 264
10.1.3 指令类型 265
10.1.4 地址数目 266
10.1.5 指令集设计 268
10.2 操作数类型 268
10.2.1 数值 269
10.2.2 字符 269
10.3.1 Pentium数据类型 270
10.2.3 逻辑数据 270
10.3 Pentium和PowerPC数据类型 270
10.3.2 PowerPC数据类型 271
10.4 操作类型 272
10.4.1 数据传送类 274
10.4.2 算术运算类 276
10.4.3 逻辑运算类 276
10.4.4 转换类 278
10.4.5 输入输出类 279
10.4.6 系统控制类 279
10.4.7 控制传递类 279
10.5.1 Pentium操作类型 284
10.5 Pentium和PowerPC操作类型 284
10.5.2 PowerPC操作类型 291
10.6 汇编语言 292
10.7 推荐的参考文献 294
10.8 关键词、思考题和习题 294
附录10A 堆栈 299
10A.1 堆栈实现 300
10A.2 表示式求值 301
附录10B 小数在先和大数在先以及位序 303
10B.1 字节排序 303
10B.2 位排序 306
11.1 寻址方式 308
第11章 指令集:寻址方式和指令格式 308
11.1.1 立即寻址 310
11.1.2 直接寻址 310
11.1.3 间接寻址 310
11.1.4 寄存器寻址 311
11.1.5 寄存器间接寻址 311
11.1.6 偏移寻址 312
11.1.7 堆栈寻址 313
11.2 Pentium和PowerPC寻址方式 314
11.2.1 Pentium寻址方式 314
11.2.2 PowerPC寻址方式 316
11.3.1 指令长度 318
11.3 指令格式 318
11.3.2 位的分配 319
11.3.3 变长指令 322
11.4 Pentium和PowerPC指令格式 325
11.4.1 Pentium指令格式 325
11.4.2 PowerPC指令格式 327
11.5 推荐的参考文献 328
11.6 关键词、思考题和习题 329
第12章 CPU结构和功能 332
12.1 处理器组织 332
12.2 寄存器组织 334
12.2.1 用户可见寄存器 334
12.2.2 控制和状态寄存器 335
12.2.3 微处理器寄存器组织的例子 336
12.3 指令周期 338
12.3.1 间址周期 339
12.3.2 数据流 339
12.4 指令流水 341
12.4.1 流水线策略 341
12.4.2 流水线的性能 345
12.4.3 转移处理 347
12.4.4 Intel 80486的流水线 353
12.5 Pentium处理器 354
12.5.1 寄存器组织 354
12.5.3 中断处理 358
12.5.2 MMX寄存器 358
12.6 PowerPC处理器 361
12.6.1 寄存器组织 361
12.6.2 中断处理 364
12.7 推荐的参考文献 367
12.8 关键词、思考题和习题 367
第13章 精简指令集计算机 370
13.1 指令执行特征 371
13.1.1 操作 372
13.1.2 操作数 373
13.1.3 过程调用 373
13.2 大寄存器组方案的使用 374
13.1.4 结论 374
13.2.1 寄存器窗口 375
13.2.2 全局变量 377
13.2.3 大寄存器组与cache的对比 377
13.3 基于编译器的寄存器优化 379
13.4 精简指令集体系结构 380
1 3.4.1 CISC的理由 380
13.4.2 精简指令集体系结构特征 382
13.4.3 CISC与RISC特征对比 384
13.5 RISC流水线技术 386
13.5.1 规整指令的流水线技术 386
13.5.2 流水线的优化 387
13.6.1 指令集 389
13.6 MIPS R4000 389
13.6.2 指令流水线 392
13.7 SPARC 395
13.7.1 SPARC寄存器组 395
13.7.2 指令集 397
13.7.3 指令格式 399
13.8 RISC与CISC的争论 400
13.9 推荐的参考文献 401
13.10 关键词、思考题和习题 401
第14章 指令级并行性和超标量处理器 405
14.1 概述 405
14.1.1 超标量与超级流水线 406
14.1.2 限制 407
14.2 设计考虑 410
14.2.1 指令级并行性和机器并行性 410
14.2.2 指令发射策略 410
14.2.3 寄存器重命名 413
14.2.4 机器并行性 414
14.2.5 转移预测 415
14.2.6 超标量执行 416
14.2.7 超标量实现 416
14.3 Pentium 4 417
14.3.1 由前端到跟踪cache 418
14.3.2 无序执行逻辑 423
14.4 PowerPC 424
14.4.1 PowerPC 601 424
14.3.3 整数和浮点执行单元 424
14.4.2 转移处理 428
14.4.3 PowerPC 620 428
14.5 推荐的参考文献 430
14.6 关键词、思考题和习题 431
第15章 IA-64体系结构 435
15.1 推动因素 435
15.2 通常组织 437
15.3.1 指令格式 438
15.3 判定、推测和软件流水 438
15.3.2 汇编语言格式 440
15.3.3 判定执行 441
15.3.4 控制推测 445
15.3.5 数据推测 449
15.3.6 软件流水 450
15.4 IA-64指令级体系结构 453
15.4.1 寄存器堆栈 455
15.4.2 当前栈帧标示器和先前功能状态寄存器 456
15.5 Itanium处理器组织 457
15.6 推荐的参考文献和Web站点 458
15.7 关键词、思考题和习题 459
第四部分 控制器 464
第16章 控制器操作 464
16.1 微操作 465
16.1.1 指令周期的子周期 465
16.1.2 指令周期 469
16.2 CPU控制 470
16.2.1 功能需求 470
16.2.2 控制信号 471
16.2.3 控制信号举例 472
16.2.4 CPU内部组织 474
16.2.5 Intel 8085 475
16.3 硬连线实现 479
16.3.1 控制器输入 479
16.3.2 控制器逻辑 480
16.4 推荐的参考文献 481
16.5 关键词、思考题和习题 481
第17章 微程序式控制 483
17.1 基本概念 483
17.1.1 微指令 483
17.1.2 微程序式控制器 485
17.1.3 Wilkes控制 487
17.2.1 设计考虑 491
17.2.2 排序技术 491
17.2 微指令排序 491
17.1.4 优缺点 491
17.2.3 地址生成 494
17.2.4 LSI-11微指令排序 494
17.3 微指令执行 495
17.3.1 微指令分类法 496
17.3.2 微指令编码 498
17.3.3 LSI-11微指令执行 499
17.3.4 IBM 3033微指令执行 504
17.4 TI 8800 505
17.4.1 微指令格式 505
17.4.2 微顺序器 508
17.4.3 带寄存器的ALU 511
17.5 微程序应用 514
17.6 推荐的参考文献 515
17.7 关键词、思考题和习题 515
第五部分 并行处理的组织 518
第18章 并行处理 518
18.1 多处理机组织 519
18.1.1 并行处理机系统类型 519
18.1.2 并行组织 520
18.2 对称多处理机 521
18.2.1 组织 521
18.2.2 多处理机操作系统设计考虑 525
18.2.3 大型机SMP 526
18.3 cache一致性和MESI协议 528
18.3.1 软件解决方案 529
18.3.2 硬件解决方案 529
18.3.3 MESI协议 531
18.4 机群系统 534
18.4.1 机群系统配置 534
18.4.2 操作系统设计问题 536
18.4.3 机群计算机体系结构 537
18.4.4 机群系统与SMP的对比 539
18.5 非均匀存储器存取 539
18.5.1 推动因素 540
18.5.2 组织 540
18.6 向量计算 542
18.5.3 NUMA的赞成票和反对票 542
18.6.1 向量计算方法 543
18.6.2 IBM 3090向量设备 547
18.7 推荐的参考文献 553
18.8 关键词、思考题和习题 554
附录A 计算机组织与体系结构课题 559
A.1 研究性课题 559
A.2 仿真性课题 559
A.2.1 Simple Scalar 560
A.2.2 SMP Cache 560
A.3 阅读/报告类题目 560
参考文献 561