第一章 计算机设计基础 1
1.1 计算机设计者的任务 1
1.1.1 计算机需求的功能 1
1.1.2 功能实现时软件和硬件的选择 2
1.1.3 计算机设计的几个原则 6
1.1.4 计算机的设计过程 10
1.2 计算机性能评价 12
1.2.1 衡量计算机性能的参数 12
1.2.2 CPU性能 13
1.2.3 计算机性能常用指标 16
1.2.4 如何正确评价计算机性能 19
1.3 构成计算机的成本组合 33
1.3.1 器件成本 33
1.3.2 直接成本 34
1.3.3 间接成本 35
1.3.4 报价单价格 35
1.4 用系统结构知识选购计算机 36
习题 37
2.1 指令集的设计原则 42
2.1.1 指令的分类 42
第二章 指令集的设计 42
2.1.2 指令设计的原则 45
2.1.3 操作数的确定 55
2.1.4 寻址方式和指令长度的确定 60
2.2 操作系统、编译方法和系统结构的相互影响 74
2.2.1 现代编译器的结构 75
2.2.2 编译对系统结构的影响和要求 77
2.2.3 操作系统和系统结构的关系 83
2.3 指令系统的测量方法 86
2.3.1 测量的作用 86
2.3.2 测量项目 87
2.3.3 测量方法 88
2.3.4 测量举例 88
2.4 RISC设计思想 90
2.4.1 RISC设计的起源 90
2.4.2 RISC设计的原则 94
习题 95
第三章 CPU的设计 99
3.1 引言 99
3.2 数据通路 99
3.3 指令执行原理 101
3.4 控制器 103
3.4.1 硬连线控制 104
3.4.2 微程序控制 105
3.5 中断 109
3.6 综合应用:一种控制器的设计 114
3.6.1 硬连线控制设计 114
3.6.2 微程序控制的实现方法 119
3.6.3 微程序控制的改进 124
3.6.4 总结 127
习题 127
4.1.1 流水线的基本概念 130
4.1 流水线处理的基本原理 130
第四章 流水线技术 130
4.1.2 基本处理器流水线 136
4.2 流水线工作的主要障碍——流水线竞争 141
4.2.1 流水线竞争时的性能 141
4.2.2 结构竞争及防止措施 143
4.2.3 数据竞争及防止措施 145
4.2.4 控制竞争及防止措施 155
4.2.5 实现流水线的困难 166
4.3 多周期操作的流水线策略 171
4.3.1 基本流水线的扩展 171
4.3.2 长延时流水线的竞争及其消除 173
4.4 流水线的动态调度 178
4.4.1 数据竞争的动态调度 178
4.4.2 控制冲突的硬件预测 193
4.5 高级流水线——进一步开发指令级的并行处理 203
4.5.1 循环体并行处理 203
4.5.2 多发射处理器 208
4.5.3 编译支持指令级并行性开发 215
4.5.4 在硬件支持下进一步开发并行性 221
4.5.5 超级流水线 234
4.6 非线性流水线 235
习题 237
第五章 存储器层次结构 247
5.1 存储器层次结构的基本概念 247
5.1.1 存储器的基本性能参数 247
5.1.2 存储器层次结构的基本原理 247
5.1.3 存储器层次结构的性能 250
5.1.4 存储器层次结构对CPU设计的影响 251
5.1.5 存储器层次结构设计的基本问题 251
5.2 Cache/主存存储器层次结构 252
5.2.1 Cache/主存的映象方式 252
5.2.2 Cache/主存的映象机构 252
5.2.3 Cache/主存的替换策略 255
5.2.4 Cache/主存的写策略 256
5.2.5 Cache/主存存储器层次结构实例 257
5.2.6 Cache/主存的性能分析 259
5.3 改进Cache/主存性能的技术 266
5.3.1 降低失配率 266
5.3.2 缩短命中时间 275
5.3.3 减少失配损失 277
5.3.4 Cache的一致性问题 283
5.4 主存的组织方式 284
5.4.1 单体单字主存结构 285
5.4.3 多体交叉主存结构 286
5.4.2 单体多字主存结构 286
5.4.4 无冲突模块访问 288
5.5 虚拟存储器 289
5.5.1 虚拟存储器与Cache/主存存储层次的差别 291
5.5.2 虚拟存储器设计的基本问题 291
5.5.3 存储共享和保护 295
5.5.4 虚拟存储器实例 296
5.6 基于程序行为特性的优化技术 298
5.6.1 指令预取缓冲器 298
5.6.2 寄存器和寄存器窗口 300
5.7 Alpha机的存储器层次结构 302
习题 306
第六章 计算机输入/输出系统 313
6.1 引言 313
6.2 输入/输出设备类型 314
6.2.1 数据表示设备 314
6.2.2 网络通讯设备 315
6.2.3 存储设备 315
6.2.4 廉价磁盘冗余阵列 317
6.3 I/O子系统的控制方式 319
6.3.1 程序控制 319
6.3.2 I/O处理器 320
6.4 总线 323
6.4.1 总线分类与选择 323
6.4.2 总线标准 326
6.5 I/O子系统性能测量 331
6.5.1 引言 331
6.5.2 I/O性能预测 333
6.5.3 I/O系统性能测量 337
6.6 总结 339
习题 342
7.1 引言 345
第七章 网络并行计算系统 345
7.2 通用互连网络 347
7.2.1 引言 347
7.2.2 网络原理 348
7.2.3 多机互连网络 353
7.3 工作站并行计算系统(NOW计划)介绍 368
7.4 总结:虚拟并行机PVM 372
7.4.1 引言 372
7.4.2 PVM结构简介 373
7.4.3 PVM内部结构分析 374
7.4.4 结论 382
习题 383
第八章 多处理器计算机结构 384
8.1 引言 384
8.1.1 并行体系结构的分类 384
8.1.2 通信模型和存储器体系结构 386
8.1.3 通信机制的性能度量 387
8.1.4 不同通信机制的优点 388
8.1.5 并行处理带来的挑战 389
8.2 集中共享存储器式多处理器体系结构 391
8.2.2 两种监听协议 393
8.2.1 实施一致性的基本机制 393
8.2.3 基本实现技术 395
8.2.4 协议实例 396
8.3 分布共享存储器式多处理器体系结构 399
8.3.1 基本目录的Cache一致性协议基础 401
8.3.2 目录协议示例 403
8.3.3 基于目录的一致性协议性能 405
8.4 同步 407
8.4.1 基于硬件原语 407
8.4.2 利用一致性机制实现锁功能 409
8.4.3 同步性能要求 411
8.4.4 栅栏同步 412
8.4.5 大规模机器的同步机制 414
8.5 存储器连贯性模型 418
8.5.1 程序员的观点 419
8.5.2 存储器连贯性的松驰模型 422
8.5.3 松弛模型的实现 425
8.5.4 松弛模型的性能 425
8.5.5 对连贯性模型的最后评论 426
习题 427
索引 429