第1章 概述 1
1.1 计算机系统结构的概念 1
1.1.1 计算机系统的层次结构 1
1.1.2 计算机系统结构、组成与实现 4
1.2 计算机系统结构的发展 7
1.2.1 冯·诺依曼计算机 8
1.2.2 存储程序计算机系统结构的发展过程 8
1.2.3 非冯·诺依曼结构计算机 10
1.3 并行性与并行计算机 11
1.3.1 并行性概念 11
1.3.2 提高并行性的技术途径 11
1.3.3 并行计算机简介 12
1.4 计算机系统的分类 16
1.4.1 Flynn分类法 16
1.4.2 应用分类 17
1.5 计算机系统设计的主要任务与量化原则 19
1.5.1 计算机系统设计者的主要任务 19
1.5.2 计算机系统设计的量化原则 21
1.6 计算机系统的性能评测 24
1.6.1 计算机性能评估 25
1.6.2 计算机性能的测试 26
1.6.3 计算机性能测试结果的统计和比较 30
习题 32
第2章 指令系统 35
2.1 数据表示 35
2.1.1 浮点数表示 36
2.1.2 自定义数据表示 40
2.2 寻址技术 41
2.2.1 编址方式 42
2.2.2 寻址方式 43
2.2.3 程序在主存中的定位方法 46
2.3 指令格式的设计和优化 47
2.3.1 指令操作码的优化 47
2.3.2 地址码的优化表示 51
2.3.3 指令格式设计实例 53
2.4 指令系统的改进 56
2.4.1 RISC与CISC的概述 56
2.4.2 RISC指令系统实例 59
习题 67
第3章 流水线技术 69
3.1 流水线概述 69
3.1.1 流水线的基本概念 69
3.1.2 流水线的分类 73
3.1.3 流水线的特点 76
3.2 流水线的时空图及性能分析 77
3.2.1 流水线的时空图 77
3.2.2 流水线的性能分析 78
3.3 流水线中的相关 83
3.3.1 什么是流水线相关 83
3 3.2 流水线中的结构相关(资源相关) 84
3.3.3 流水线中的数据相关 86
3.3.4 流水线的控制相关 87
3.4 MIPS R4000流水线计算机 89
3.4.1 MIPS R4000流水线计算机基本结构和工作原理 89
3.4.2 MIPS R4000流水线 92
3.5 向量处理机 94
3 5.1 向量处理的基本概念 94
3 5.2 向量处理机的结构 97
3.5.3 向量指令的执行过程及简单性能计算 98
3.5 4 向量的链接技术 100
3.5.5 提高向量处理机的方法 103
3.5.6 向量处理机的性能评价 105
习题 108
第4章 指令级并行及限制 111
4.1 指令级并行概述 111
4.1.1 指令级并行的基本概念 111
4.1.2 相关性对指令级并行的影响 112
4.1.3 支持指令级并行的基本编译技术 115
4.2 指令的动态调度 118
4.2.1 动态调度的原理 119
4.2.2 记分牌动态调度算法 119
4 2.3 Tomasulo动态调度算法 126
4.3 转移预测技术 135
4.3.1 静态转移预测 135
4.3.2 动态转移预测 137
4.4 多发射技术 142
4 4.1 超标量技术 142
4.4.2 多发射的动态调度 145
4.4.3 超长指令字技术 151
4.5 指令级并行的支持与限制 152
4.5.1 窗口大小和最大发射数目对理想处理机的限制 153
4.5.2 实际分支和分支预测的影响对理想处理机的限制 156
4.5.3 有限数目寄存器的影响 158
4.5.4 非完美别名分析造成的影响 159
4.6 Intel Pentium 4实例分析 161
4.6.1 Pentium Ⅲ和Pentium 4结构的简单比较 161
4.6.2 Pentium Ⅲ和Pentium 4性能的简单比较 162
习题 163
第5章 存储系统 165
5.1 存储系统简介 165
5.1.1 存储系统的层次结构 165
5.1.2 存储系统的性能参数 166
5.2 高速缓冲存储器(Cache) 168
5.2.1 Cache的工作原理 169
5.2.2 地址映像与变换方法 170
5.2.3 Cache替换算法及实现 174
5.2.4 Cache的一致性问题 178
5.2.5 Cache的性能分析 179
5.3 Cache性能的优化 181
5.3.1 降低Cache失效率的方法 181
5.3.2 减少Cache失效开销 183
5.3.3 减少命中时间 184
5.4 主存储器及性能优化 185
5.4.1 主存储器 185
5.4.2 性能优化 185
5.5 虚拟存储器 187
5.5.1 工作原理 187
5.5.2 地址映像与变换 192
5.5.3 内部地址变换优化 193
5.5.4 页面替换算法及实现 195
5.5.5 提高主存命中率的方法 198
5.6 进程保护和虚拟存储器实例 199
5.6.1 进程保护 200
5.6.2 Alpha 21064存储管理 201
5.7 Alpha 21264存储层次结构 203
习题 206
第6章 输入/输出系统 208
6.1 输入/输出系统概述 208
6.1.1 输入/输出系统的特点 208
6.1.2 基本的输入/输出方式 210
6.2 总线 211
6.2.1 总线概述 211
6.2.2 总线的连接方式 212
6.3 通道处理机 213
6.3.1 通道的功能 213
6.3.2 通道的工作过程 214
6.3.3 通道的种类 215
6.3.4 通道中的数据传送过程 217
6.3.5 通道流量分析 218
6.4 外围处理机 220
6.4.1 输入/输出处理机的作用 220
6.4.2 输入/输出处理机的种类和组织形式 221
6.4.3 输入/输出处理机实例 221
6.5 I/O系统性能评测 222
6.5.1 I/O系统的可靠性、可用性和可信性 222
6.5.2 I/O子系统性能衡量 223
6.5.3 I/O子系统的设计 224
6.5.4 并行I/O基本原理 225
6.5.5 排队论简介 226
6.6 磁盘冗余阵列 228
6.6.1 RAID概述 228
6.6.2 RAID系统分级 228
习题 234
第7章 多处理机系统 237
7.1 多处理机系统结构 237
7.1.1 多处理机系统的硬件结构 237
7.1.2 多处理机系统的存储器组织形式 239
7.1.3 多处理机系统的操作系统 241
7.1.4 多核处理机 243
7.2 多处理机的互联网络 244
7.2.1 互联网络的基本概念 244
7.2.2 互联网络的特性 245
7.2.3 互联网络的类型 246
7.3 多处理机系统的系统控制 250
7.3.1 多处理机系统的调度 250
7.3.2 多处理机系统的进程通信 252
7.4 并行处理语言及算法 254
7.4.1 并行处理遇到的挑战 254
7.4.2 并行编程模型 255
7.4.3 并行语言 256
7.4.4 并行算法 257
7.5 多处理机的性能 260
7.5.1 任务粒度 260
7.5.2 基本模型 260
7.5.3 通信开销线性增加的模型 262
7.5.4 完全重叠通信的模型 262
7.5.5 具有多条通信链的模型 262
7.6 多处理机系统实例 263
7.6.1 CRAY T3E系统 263
7.6.2 SGI Origin 2000系列服务器 264
习题 266
第8章 多计算机系统 267
8.1 集群计算机系统 267
8.1.1 集群系统的基本概念和结构 267
8.1.2 集群系统的特点 268
8.1.3 集群系统的通信技术 269
8.1.4 集群系统资源管理和调度 271
8.1.5 集群系统并行程序设计环境 272
8.2 典型集群系统实例 273
8.3 MPP系统 276
8.3.1 MPP系统机构 276
8.3.2 基于MPP的并行计算机系统 277
8.3.3 集群系统与MPP系统 278
8.4 网格技术 278
8.4.1 网格基础 279
8.4.2 网格技术概念 279
8.4.3 网格体系结构 280
8.5 网格实例 283
习题 285
参考文献 287