第一章 引言 1
1.1 技术与体系结构 1
1.2 它是艺术吗? 2
1.2.1 价格因素 3
1.2.2 硬件考虑 5
1.3 高性能技术 6
1.3.1 衡量价格 7
1.3.2 应用的角色 7
1.3.3 VLSI的影响 8
1.3.4 技术变化对价格的影响 9
1.3.5 算法和体系结构 11
1.4 历史的参考 12
第二章 存贮器系统设计 15
2.1 发掘程序的特性 15
2.2 高速缓冲存贮器 19
2.2.1 基本的高速缓存结构 19
2.2.2 高速缓存设计 20
2.2.3 高速缓存分析:迹生成和迹长度 25
2.2.4 高速缓存分析:迹捷联(Trace Stripping) 32
2.2.5 替换策略 37
2.2.6 高速缓存中的复盖区(Footprints) 41
2.2.7 写入高速缓存 47
2.2.8 其他性能尺度 49
2.2.9 高速缓存性能模型 50
2.3 虚拟存贮器 56
2.3.1 虚存结构 57
2.3.2 虚存映象 59
2.3.3 改进程序的局部性 63
2.3.4 替换算法 65
2.3.5 虚存系统中的缓冲效应 67
习题 70
第三章 流水线设计技术 77
3.1 流水线设计原理 77
3.2 流水线计算机中的存贮器结构 86
3.3 流水线计算机的性能 88
3.4 流水线级的控制 95
3.4.1 多功能流水线的设计 95
3.4.2 碰撞向量和流水线控制 99
3.4.3 最佳性能流水线 103
3.4.4 利用延迟提高性能 105
3.4.5 消除互锁 111
3.5 开发流水线技术 112
3.5.1 条件转移 112
3.5.2 指令的内部超前和延迟 116
3.5.3 既有高速缓存又有虚存的机器 123
3.5.4 RISC体系结构 124
3.6 历史的参考 131
习题 136
第四章 数值应用的特性 137
4.1 大型数值问题的分类 137
4.1.1 连续模型 138
4.1.2 粒子模型 139
4.2 高性能机器设计的限制 140
4.3 连续模型的体系结构 145
4.4 连续模型的算法 145
4.4.1 Cosmic Cube与ILLIAC IV 146
4.4.2 数据流的要求 150
4.4.3 并行解法 153
4.4.4 递归倍增和循环归约 155
4.5 完全混洗 155
4.5.1 完全混洗互连模式 159
4.5.2 完全混洗的应用 165
4.6 连续模型的体系结构—什么方向? 167
习题 169
第五章 向量计算机 169
5.1 普通的向量计算机 169
5.1.1 多存贮器模块 171
5.1.2 中间存贮器 176
5.2 数值算法的访问模式 179
5.2.1 高斯消去法 180
5.3 向量机的数据结构技术 182
5.4 附属向量处理机 187
5.5 稀疏矩阵技术 191
5.6 GF—11—一个超高速向量处理机 192
5.7 关于向量计算机的最后评注 194
习题 196
第六章 多处理机 199
6.1 背景 199
6.2 多处理机性能 202
6.2.1 基本模型——不重叠通信的双处理机 203
6.2.2 向N处理机扩展 204
6.2.3 统计模型 207
6.2.4 带有线性通信价格的模型 207
6.2.5 一个乐观的模型—完全重叠的通信 208
6.2.6 带有多通信链路的模型 210
6.2.7 多处理机模型 211
6.3 多处理机互连 213
6.3.1 总线互连 213
6.3.2 环互连 216
6.3.3 交叉开关互连 218
6.3.4 两维和三维网格 221
6.3.5 混洗交换互连和组合开关 222
6.3.6 蝶形运算和逆二进变换 223
6.3.7 组合网格与取并加(Fetch—and—Add) 226
6.3.8 超立方体互连 231
6.4 多处理机中的高速缓存相干 231
6.5 小结 235
习题 235
第七章 多处理机算法 237
7.1 简单的并行性 237
7.1.1 do par和do seq结构 238
7.1.2 阻挡(Barrier)同步 239
7.1.3 性能考虑 241
7.1.4 增加颗粒度 243
7.1.5 启动任务 245
7.2 同步技术 247
7.2.1 用测试并设置(Test—and—Set)同步 248
7.2.2 用增量和减量(Increment and Decrement)同步 250
7.2.3 用比较并交换(Compare—and—Swap)同步 252
7.2.4 用取并加(Fetch—and—Add)同步 258
7.2.5 其它支持并行同步的体系结构 260
7.2.6 高速缓存相干与同步 265
7.3 并行搜索—如何采用和不用并行性 267
7.3.1 单峰函数最大值的搜索 267
7.3.2 并行分支与定界——售贷员巡走问题 270
7.3.3 加速和并行的复杂性 274
7.4 将串行算法变换为并行算法 275
7.4.1 相关性分析 276
7.4.2 发掘迭代中的并行性 277
7.4.3 调度对并行性的影响 280
7.5 关于多处理机的最后评注 281
习题 282
参考文献 287