第一部分概述
第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章计算机的演变和性能11
2.1计算机简史11
2.1.1第一代:真空管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.3Pentium和PowerPC的进展31
2.3.1Pentium31
2.3.2PowerPC32
2.4推荐的参考文献和Web站点33
2.5关键词、思考题和习题34
第二部分计算机系统
第3章计算机功能和互连的顶层视图39
3.1计算机的部件39
3.2计算机功能42
3.2.1取指周期和执行周期42
3.2.2中断45
3.2.3I/O功能52
3.3互连结构52
3.4总线互连54
3.4.1总线结构54
3.4.2多总线层次结构56
3.4.3总线设计要素58
3.5PCI62
3.5.1总线结构62
3.5.2PCI命令66
3.5.3数据传送67
3.5.4仲裁69
3.6推荐的参考文献和Web站点70
3.7关键词、思考题和习题71
附录3A时序图74
第4章cache75
4.1计算机存储系统概述75
4.1.1存储系统的特性75
4.1.2存储器分层结构77
4.2cache存储器原理80
4.3cache的设计要素83
4.3.1cache容量83
4.3.2映射功能83
4.3.3替换算法91
4.3.4写策略91
4.3.5行的大小92
4.3.6cache数目92
4.4Pentium 4和PowerPC的cache组织94
4.4.1Pentium 4的cache组织94
4.4.2PowerPC的cache组织96
4.5推荐的参考文献97
4.6关键词、思考题和习题97
附录4A两级存储器的性能特点101
4A.1局部性101
4A.2两级存储器的操作104
4A.3性能104
第5章内部存储器108
5.1半导体主存储器108
5.1.1组织108
5.1.2DRAM和SRAM108
5.1.3ROM类型111
5.1.4芯片逻辑112
5.1.5芯片封装113
5.1.6模块组织114
5.2纠错116
5.3高级DRAM组织121
5.3.1同步DRAM121
5.3.2rambus DRAM123
5.3.3带cache的DRAM125
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.2RAID(磁盘冗余阵列)136
6.2.1RAID 0级137
6.2.2RAID 1级141
6.2.3RAID 2级142
6.2.4RAID 3级142
6.2.5RAID 4级143
6.2.6RAID 5级143
6.2.7RAID 6级144
6.3光存储器144
6.3.1光盘144
6.3.2数字视盘147
6.4磁带148
6.5推荐的参考文献和Web站点150
6.6关键词、思考题和习题150
第7章输入输出154
7.1外部设备155
7.1.1键盘/监视器156
7.1.2磁盘驱动器157
7.2I/O模块159
7.2.1模块功能159
7.2.2I/O模块结构161
7.3编程式I/O162
7.3.1概述162
7.3.2I/O命令162
7.3.3I/O指令163
7.4中断驱动式I/O165
7.4.1中断处理165
7.4.2设计问题168
7.4.3Intel 82C59A中断控制器169
7.4.4Intel 82C55A可编程外部接口170
7.5存储器直接存取(DMA)172
7.5.1编程式I/O和中断驱动式I/O的不足172
7.5.2DMA功能172
7.6I/O通道和处理器174
7.6.1I/O功能的演变174
7.6.2I/O通道的特性176
7.7外部接口:FireWire和InfiniBand176
7.7.1接口的类型176
7.7.2点对点和多点配置177
7.7.3FireWire串行总线177
7.7.4InfiniBand181
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.1长调度198
8.2.2中调度198
8.2.3短调度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.4Pentium Ⅱ与PowerPC存储管理212
8.4.1Pentium Ⅱ的存储管理硬件212
8.4.2PowerPC存储管理硬件216
8.5推荐的参考文献和Web站点219
8.6关键词、思考题和习题220
第三部分中央处理器
第9章计算机算术227
9.1算术逻辑单元227
9.2整数表示228
9.2.1符号幅值表示法228
9.2.22的补码表示法229
9.2.3不同位长间的转换231
9.2.4定点表示法233
9.3整数算术233
9.3.1取负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.2.3逻辑数据270
10.3Pentium和PowerPC数据类型270
10.3.1Pentium数据类型270
10.3.2PowerPC数据类型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.5Pentium和PowerPC操作类型284
10.5.1Pentium操作类型284
10.5.2PowerPC操作类型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章指令集:寻址方式和指令格式308
11.1寻址方式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.2Pentium和PowerPC寻址方式314
11.2.1Pentium寻址方式314
11.2.2PowerPC寻址方式316
11.3指令格式318
11.3.1指令长度318
11.3.2位的分配319
11.3.3变长指令322
11.4Pentium和PowerPC指令格式325
11.4.1Pentium指令格式325
11.4.2PowerPC指令格式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.4Intel 80486的流水线353
12.5Pentium处理器354
12.5.1寄存器组织354
12.5.2MMX寄存器358
12.5.3中断处理358
12.6PowerPC处理器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.1.4结论374
13.2大寄存器组方案的使用374
13.2.1寄存器窗口375
13.2.2全局变量377
13.2.3大寄存器组与cache的对比377
13.3基于编译器的寄存器优化379
13.4精简指令集体系结构380
13.4.1CISC的理由380
13.4.2精简指令集体系结构特征382
13.4.3CISC与RISC特征对比384
13.5RISC流水线技术386
13.5.1规整指令的流水线技术386
13.5.2流水线的优化387
13.6MIPS R4000389
13.6.1指令集389
13.6.2指令流水线392
13.7SPARC395
13.7.1SPARC寄存器组395
13.7.2指令集397
13.7.3指令格式399
13.8RISC与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.3Pentium 4417
14.3.1由前端到跟踪cache418
14.3.2无序执行逻辑423
14.3.3整数和浮点执行单元424
14.4PowerPC424
14.4.1PowerPC 601424
14.4.2转移处理428
14.4.3PowerPC 620428
14.5推荐的参考文献430
14.6关键词、思考题和习题431
第15章IA64体系结构435
15.1推动因素435
15.2通常组织437
15.3判定、推测和软件流水438
15.3.1指令格式438
15.3.2汇编语言格式440
15.3.3判定执行441
15.3.4控制推测445
15.3.5数据推测449
15.3.6软件流水450
15.4IA64指令级体系结构453
15.4.1寄存器堆栈455
15.4.2当前栈帧标示器和先前功能状态寄存器456
15.5Itanium处理器组织457
15.6推荐的参考文献和Web站点458
15.7关键词、思考题和习题459
第四部分控制器
第16章控制器操作464
16.1微操作465
16.1.1指令周期的子周期465
16.1.2指令周期469
16.2CPU控制470
16.2.1功能需求470
16.2.2控制信号471
16.2.3控制信号举例472
16.2.4CPU内部组织474
16.2.5Intel 8085475
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.3Wilkes控制487
17.1.4优缺点491
17.2微指令排序491
17.2.1设计考虑491
17.2.2排序技术491
17.2.3地址生成494
17.2.4LSI11微指令排序494
17.3微指令执行495
17.3.1微指令分类法496
17.3.2微指令编码498
17.3.3LSI11微指令执行499
17.3.4IBM 3033微指令执行504
17.4TI 8800505
17.4.1微指令格式505
17.4.2微顺序器508
17.4.3带寄存器的ALU511
17.5微程序应用514
17.6推荐的参考文献515
17.7关键词、思考题和习题515
第五部分并行处理的组织
第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大型机SMP526
18.3cache一致性和MESI协议528
18.3.1软件解决方案529
18.3.2硬件解决方案529
18.3.3MESI协议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.5.3NUMA的赞成票和反对票542
18.6向量计算542
18.6.1向量计算方法543
18.6.2IBM 3090向量设备547
18.7推荐的参考文献553
18.8关键词、思考题和习题554
附录A计算机组织与体系结构课题559
A.1研究性课题559
A.2仿真性课题559
A.2.1Simple Scalar560
A.2.2SMP Cache560
A.3阅读/报告类题目560
参考文献561