第1章 计算机系统结构的基础知识11.1 计算机系统结构的基本概念1
1.1.1 计算机系统的层次结构2
1.1.2 计算机系统结构的定义3
1.1.3 计算机组成和计算机实现3
1.1.4 计算机系统结构的分类4
1.2 计算机系统的设计7
1.2.1 计算机系统设计的定量原理7
1.2.2 计算机系统设计者的主要任务10
1.2.3 计算机系统设计的主要方法12
1.3 计算机系统的性能评测13
1.4 计算机系统结构的发展17
1.4.1 冯·诺依曼结构及其改进17
1.4.2 软件对系统结构的影响19
1.4.3 器件发展对系统结构的影响22
1.4.4 应用对系统结构的影响23
1.5 计算机系统结构中并行性的发展23
1.5.1 并行性的概念23
1.5.2 提高并行性的技术途径25
1.5.3 单机系统中并行性的发展25
1.5.4 多机系统中并行性的发展26
1.5.5 并行机的发展变化27
习题128
第2章 指令系统的设计30
2.1 指令系统结构的分类30
2.2 寻址方式33
2.3 指令系统的设计和优化35
2.3.1 指令系统设计的基本原则35
2.3.2 控制指令36
2.3.3 指令操作码的优化37
2.3.4 指令字格式的优化40
2.4 指令系统的发展和改进42
2.4.1 沿CISC方向发展和改进指令系统42
2.4.2 沿RISC方向发展和改进指令系统44
2.5 操作数的类型和大小45
2.6 MIPS指令系统结构47
2.6.1 MIPS的寄存器47
2.6.2 MIPS的数据表示47
2.6.3 MIPS的数据寻址方式47
2.6.4 MIPS的指令格式48
2.6.5 MIPS的操作49
2.6.6 MIPS的控制指令50
2.6.7 MIPS的浮点操作51
习题251
目 录 计算机系统结构教程第3章 流水线技术53
3.1 流水线的基本概念53
3.1.1 什么是流水线53
3.1.2 流水线的分类55
3.2 流水线的性能指标58
3.2.1 流水线的吞吐率58
3.2.2 流水线的加速比60
3.2.3 流水线的效率61
3.2.4 流水线性能分析举例62
3.2.5 流水线设计中的若干问题64
3.3 非线性流水线的调度64
3.3.1 单功能非线性流水线的最优调度65
3.3.2 多功能非线性流水线的调度67
3.4 流水线的相关与冲突70
3.4.1 一条经典的5段流水线70
3.4.2 相关与流水线冲突72
3.5 流水线的实现83
3.5.1 MIPS的一种简单实现83
3.5.2 基本的MIPS流水线86
习题390
第4章 向量处理机93
4.1 向量的处理方式93
4.2 向量处理机的结构95
4.2.1 “存储器-存储器”结构95
4.2.2 “寄存器-寄存器”结构95
4.3 提高向量处理机性能的常用技术97
4.3.1 设置多个功能部件98
4.3.2 链接技术98
4.3.3 分段开采技术101
4.3.4 采用多处理机系统102
4.4 向量处理机的性能评价102
4.4.1 向量指令的处理时间Tvp102
4.4.2 最大性能R∞和半性能向量长度n1/2105
4.4.3 向量长度临界值nv106
4.5 向量处理机实例106
4.5.1 具有代表性的向量处理机106
4.5.2 Cray Y-MP和C-90107
4.5.3 NECSX-X44108
习题4109
第5章 指令级并行及其开发--硬件方法111
5.1 指令级并行的概念111
5.2 相关与指令级并行112
5.3 指令的动态调度113
5.3.1 动态调度的基本思想113
5.3.2 记分牌动态调度方法115
5.3.3 Tomasulo算法122
5.4 动态分支预测技术133
5.4.1 采用分支历史表BHT 134
5.4.2 采用分支目标缓冲器BTB135
5.4.3 基于硬件的前瞻执行137
5.5 多指令流出技术141
5.5.1 基于静态调度的多流出技术143
5.5.2 基于动态调度的多流出技术144
5.5.3 超长指令字技术147
5.5.4 多流出处理器受到的限制148
5.5.5 超流水线处理机149
习题5152
第6章 指令级并行的开发--软件方法153
6.1 基本指令调度及循环展开153
6.1.1 指令调度的基本方法153
6.1.2 循环展开155
6.2 跨越基本块的静态指令调度157
6.2.1 全局指令调度157
6.2.2 踪迹调度159
6.2.3 超块调度162
6.3 静态多指令流出: VLIW技术163
6.4 显式并行指令计算EPIC165
6.4.1 非绑定分支166
6.4.2 谓词执行166
6.4.3 前瞻执行169
6.5 开发更多的指令级并行172
6.5.1 挖掘更多的循环级并行172
6.5.2 软流水178
6.6 实例: IA-64体系结构180
6.6.1 IA-64的指令格式181
6.6.2 IA-64的谓词执行机制184
6.6.3 IA-64的前瞻执行机制185
习题6186
第7章 存储系统188
7.1 存储系统的层次结构188
7.1.1 存储系统的层次结构188
7.1.2 存储系统的性能参数189
7.1.3 三级存储系统190
7.1.4 存储层次的四个问题192
7.2 Cache基本知识192
7.2.1 基本结构和原理192
7.2.2 映像规则193
7.2.3 查找方法195
7.2.4 Cache的工作过程197
7.2.5 替换算法198
7.2.6 写策略202
7.2.7 Cache性能分析203
7.2.8 改进Cache性能205
7.3 降低Cache不命中率205
7.3.1 三种类型的不命中206
7.3.2 增加Cache块大小208
7.3.3 增加Cache的容量209
7.3.4 提高相联度209
7.3.5 伪相联Cache209
7.3.6 硬件预取210
7.3.7 编译器控制的预取210
7.3.8 编译优化211
7.3.9 “牺牲”Cache213
7.4 减少Cache不命中开销214
7.4.1 采用两级Cache214
7.4.2 让读不命中优先于写217
7.4.3 写缓冲合并217
7.4.4 请求字处理技术218
7.4.5 非阻塞Cache技术218
7.5 减少命中时间219
7.5.1 容量小、结构简单的Cache219
7.5.2 虚拟Cache219
7.5.3 Cache访问流水化222
7.5.4 踪迹Cache222
7.5.5 Cache优化技术总结222
7.6 并行主存系统223
7.6.1 单体多字存储器224
7.6.2 多体交叉存储器224
7.6.3 避免存储体冲突229
7.7 虚拟存储器230
7.7.1 基本概念230
7.7.2 快速地址转换技术231
7.7.3 页式虚拟存储器实例: 64位Opteron的存储管理232
7.8 实例: AMD Opteron的存储器层次结构234
习题7238
第8章 输入输出系统241
8.1 I/O系统的性能241
8.2 I/O系统的可靠性、可用性和可信性242
8.3 廉价磁盘冗余阵列RAID243
8.3.1 RAID0245
8.3.2 RAID1245
8.3.3 RAID2246
8.3.4 RAID3246
8.3.5 RAID4247
8.3.6 RAID5248
8.3.7 RAID6249
8.3.8 RAID10与RAID01249
8.3.9 RAID的实现与发展249
8.4 总线250
8.4.1 总线的设计250
8.4.2 总线标准和实例252
8.4.3 与CPU的连接253
8.5 通道处理机254
8.5.1 通道的作用和功能254
8.5.2 通道的工作过程255
8.5.3 通道种类257
8.5.4 通道流量分析259
8.6 I/O与操作系统261
8.6.1 DMA和虚拟存储器261
8.6.2 I/O和Cache数据一致性261
习题8263
第9章 互连网络266
9.1 互连函数266
9.1.1 互连函数的表示方法266
9.1.2 几种基本的互连函数267
9.2 互连网络的结构参数与性能指标 272
9.2.1 互连网络的结构参数272
9.2.2 互连网络的性能指标273
9.3 静态互连网络273
9.4 动态互连网络279
9.4.1 总线网络279
9.4.2 交叉开关网络280
9.4.3 多级互连网络281
9.4.4 动态互连网络的比较284
9.5 消息传递机制285
9.5.1 消息寻径方案285
9.5.2 死锁与虚拟通道288
9.5.3 流控制策略289
9.5.4 选播和广播寻径算法292
习题9294
第10章 多处理机296
10.1 引言296
10.1.1 并行计算机系统结构的分类297
10.1.2 存储器系统结构和通信机制298
10.1.3 并行处理面临的挑战300
10.2 对称式共享存储器系统结构302
10.2.1 多处理机Cache一致性302
10.2.2 实现一致性的基本方案303
10.2.3 监听协议的实现306
10.3 分布式共享存储器系统结构310
10.3.1 目录协议的基本思想310
10.3.2 目录协议实例313
10.3.3 目录的三种结构316
10.4 同步318
10.4.1 基本硬件原语318
10.4.2 用一致性实现锁320
10.4.3 同步性能问题322
10.5 同时多线程324
10.5.1 将线程级并行转换为指令级并行325
10.5.2 同时多线程处理器的设计326
10.5.3 同时多线程的性能327
10.6 大规模并行处理机MPP329
10.6.1 并行计算机系统结构329
10.6.2 大规模并行处理机MPP331
10.7 多处理机实例1: T1333
10.8 多处理机实例2: Origin 2000338
习题10344
第11章 机群系统345
11.1 机群的基本结构346
11.1.1 机群的硬件组成346
11.1.2 机群的软件347
11.2 机群的特点348
11.3 机群的分类349
11.4 典型机群系统简介350
11.4.1 Berkeley NOW350
11.4.2 Beowulf351
11.4.3 LAMP351
11.4.4 IBM SP2351
习题11353
第12章 阵列处理机354
12.1 阵列处理机的操作模型和特点354
12.2 阵列处理机的基本结构355
12.2.1 分布式存储器的阵列机355
12.2.2 共享存储器的阵列机356
12.3 阵列处理机实例357
12.3.1 实例1: Illiac IV阵列处理机357
12.3.2 实例2: BSP计算机360
12.4 阵列处理机的并行算法举例363
习题12367
第13章 数据流计算机369
13.1 数据流计算机的基本原理369
13.1.1 数据驱动原理369
13.1.2 数据流计算机中指令的执行过程370
13.1.3 数据流计算机的指令结构371
13.2 数据流程序图和数据流语言371
13.2.1 数据流程序图372
13.2.2 数据流语言及其性质375
13.3 数据流计算机结构376
13.3.1 静态数据流计算机377
13.3.2 动态数据流计算机378
13.4 数据流计算机的评价381
13.4.1 数据流计算机的优点381
13.4.2 数据流计算机的缺点382
13.4.3 数据流计算机设计中需解决的问题383
习题13383
参考文献385
· · · · · · (
收起)