第一章计算机系统结构的基本概念1
1.1计算机系统结构2
1.1.1计算机系统层次结构2
1.1.2计算机系统结构定义4
1.1.3计算机组成与实现5
1.1.4计算机系统结构的分类6
1.2计算机系统设计技术9
1.2.1计算机系统设计的定量原理9
1.2.2计算机系统设计者的主要任务13
1.2.3计算机系统设计的主要方法14
1.3系统结构的评价标准15
1.3.1性能15
1.3.2成本19
1.4计算机系统结构的发展22
1.4.1冯·诺依曼结构22
1.4.2软件对系统结构的影响23
1.4.3价格对系统结构的影响25
1.4.4应用对系统结构的影响26
1.4.5VLSI对系统结构的影响27
1.4.6技术的发展对价格的影响27
1.4.7算法和系统结构29
习题一31
第二章指令系统36
2.1数据表示36
2.1.1数据表示与数据类型36
2.1.2浮点数据表示38
2.1.2.1浮点数的表数范围39
2.1.2.2浮点数的表数精度42
2.1.2.3浮点数的表数效率45
2.1.2.4浮点数尾数基值的选择46
2.1.2.5浮点数格式的设计50
2.1.2.6浮点数的舍入处理53
2.1.2.7警戒位的设置方法61
2.1.3自定义数据表示65
2.1.3.1带标志符的数据表示法66
2.1.3.2数据描述符表示法69
2.2寻址技术71
2.2.1编址方式71
2.2.1.1编址单位71
2.2.1.2零地址空间个数75
2.2.1.3输入输出设备的非线性编址77
2.2.1.4并行存储器的编址技术78
2.2.2寻址方式79
2.2.2.1寻址方式的设计思想79
2.2.2.2间接寻址与变址寻址81
2.2.2.3寄存器寻址83
2.2.2.4堆栈寻址方式85
2.2.3定位方式85
2.2.3.1逻辑地址与物理地址86
2.2.3.2直接定位方式87
2.2.3.3静态定位方式87
2.2.3.4动态定位方式88
2.3指令格式的优化设计90
2.3.1指令的组成90
2.3.2操作码的优化表示91
2.3.2.1固定长操作码91
2.3.2.2Huffman编码法91
2.3.2.3扩展编码法93
2.3.3地址码的优化表示95
2.3.3.1地址码个数的选择96
2.3.3.2缩短地址码长度的方法99
2.3.4指令格式设计举例100
2.4指令系统的功能设计102
2.4.1基本指令系统103
2.4.2复杂指令系统(CISC)107
2.4.2.1目标程序的优化107
2.4.2.2对高级语言和编译程序的支持110
2.4.2.3操作系统的优化实现111
2.4.3精简指令系统(RISC)111
2.4.3.1从CISC到RISC111
2.4.3.2RISC的定义与特点115
2.4.3.3减少指令平均执行周期数是RISC思想的精华116
2.4.3.4RISC的关键技术118
2.4.3.5RISC优化编译技术123
习题二124
第三章存储系统130
3.1存储系统原理130
3.1.1存储系统的定义130
3.1.2存储器的层次结构134
3.1.3频带平衡136
3.1.4并行存储器136
3.1.4.1并行访问存储器137
3.1.4.2交叉访问存储器138
3.1.4.3一种无访问冲突存储器143
3.2虚拟存储器146
3.2.1虚拟存储器工作原理146
3.2.2地址的映象与变换147
3.2.2.1段式虚拟存储器148
3.2.2.2页式虚拟存储器151
3.2.2.3段页式虚拟存储器153
3.2.2.4外部地址变换155
3.2.3加快内部地址变换的方法157
3.2.3.1目录表158
3.2.3.2快慢表159
3.2.3.3散列函数160
3.2.3.4虚拟存储器举例161
3.2.4页面替换算法及其实现164
3.2.4.1页面替换算法164
3.2.4.2堆栈型替换算法166
3.2.4.3页面替换算法的实现168
3.2.5提高主存命中率的方法169
3.2.5.1页面大小的选择170
3.2.5.2主存容量171
3.2.5.3页面调度方式171
3.3高速缓冲存储器(Cache)172
3.3.1基本工作原理173
3.3.2地址映象与变换方法174
3.3.2.1全相联映象及其变换174
3.3.2.2直接映象及其变换176
3.3.2.3组相联映象及其变换178
3.3.2.4位选择组相联映象及其变换182
3.3.2.5段相联映象及其变换184
3.3.3Cache替换算法及其实现186
3.3.3.1轮换法及其实现187
3.3.3.2LFU算法及其实现188
3.3.3.3比较对法189
3.3.3.4堆栈法191
3.3.4Cache的性能分析193
3.3.4.1Cache系统的加速比193
3.3.4.2Cache的一致性问题195
3.3.4.3Cache的预取算法198
3.4三级存储系统198
3.4.1虚拟地址Cache200
3.4.2全Cache技术201
习题三202
第四章输入输出系统208
4.1输入输出原理208
4.1.1输入输出系统的特点208
4.1.1.1异步性208
4.1.1.2实时性209
4.1.1.3与设备无关性210
4.1.2输入输出系统的组织方式210
4.1.2.1自治控制210
4.1.2.2层次结构211
4.1.2.3分类组织212
4.1.3基本输入输出方式212
4.1.3.1程序控制输入输出方式212
4.1.3.2中断输入输出方式214
4.1.3.3直接存储器访问(DMA)方式215
4.2中断系统217
4.2.1中断源的组织217
4.2.1.1中断源的种类217
4.2.1.2中断源的分类组织218
4.2.1.3中断优先级219
4.2.2中断系统的软硬件功能分配221
4.2.2.1中断处理过程222
4.2.2.2中断响应时间223
4.2.2.3识别中断源的查询法224
4.2.2.4识别中断源的串行排队链法和中断向量法225
4.2.2.5识别中断源的独立请求法227
4.2.2.6中断现场的保存和恢复229
4.2.3中断屏蔽230
4.3通道处理机233
4.3.1通道的作用和功能233
4.3.2通道的工作过程235
4.3.3通道种类238
4.3.3.1字节多路通道238
4.3.3.2选择通道239
4.3.3.3数组多路通道240
4.3.4通道中的数据传送过程241
4.3.5通道的流量分析243
4.4输入输出处理机245
4.4.1输入输出处理机的作用245
4.4.2输入输出处理机的种类247
4.4.3输入输出处理机的特点248
习题四250
第五章标量处理机253
5.1先行控制技术253
5.1.1指令的重叠执行方式253
5.1.2先行控制方式的原理和结构255
5.1.2.1处理机结构256
5.1.2.2指令执行时序258
5.1.2.3先行缓冲栈259
5.1.2.4缓冲深度的设计261
5.1.3数据相关263
5.1.3.1指令相关264
5.1.3.2主存操作数相关265
5.1.3.3通用寄存器数据相关266
5.1.3.4变址相关268
5.1.4控制相关269
5.1.4.1无条件转移269
5.1.4.2一般条件转移270
5.1.4.3复合条件转移272
5.1.4.4转移预测技术272
5.1.4.5短循环程序的处理274
5.2流水线处理机276
5.2.1流水线工作原理277
5.2.1.1从重叠到流水线277
5.2.1.2时空图278
5.2.1.3流水线的特点279
5.2.2流水线的分类280
5.2.2.1线性流水线与非线性流水线280
5.2.2.2流水线的级别281
5.2.2.3单功能与多功能流水线282
5.2.2.4静态流水线与动态流水线283
5.2.3线性流水线的性能分析285
5.2.3.1吞吐率285
5.2.3.2加速比288
5.2.3.3效率289
5.2.3.4流水线最佳段数的选择291
5.2.3.5流水线性能分析举例292
5.2.4非线性流水线的调度技术294
5.2.4.1非线性流水线的表示295
5.2.4.2非线性流水线的冲突296
5.2.4.3无冲突调度方法298
5.2.4.4优化调度方法301
5.2.5局部相关303
5.2.5.1顺序流动与乱序流动304
5.2.5.2数据相关及其避免方法307
5.2.5.3数据重定向308
5.2.5.4Tomasulo动态指令调度算法310
5.2.6全局相关312
5.2.6.1转移的影响312
5.2.6.2动态转移预测技术315
5.2.6.3提前形成条件码317
5.2.6.4精确断点与不精确断点319
5.3超标量处理机与超流水线处理机320
5.3.1超标量处理机321
5.3.1.1基本结构322
5.3.1.2单发射与多发射323
5.3.1.3多流水线调度326
5.3.1.4资源冲突330
5.3.1.5超标量处理机性能332
5.3.2超流水线处理机332
5.3.2.1指令执行时序333
5.3.2.2典型处理机结构333
5.3.2.3超流水线处理机性能336
5.3.3超标量超流水线处理机337
5.3.3.1指令执行时序337
5.3.3.2典型处理机结构338
5.3.3.3超标量超流水线处理机性能341
习题五342
第六章向量处理机347
6.1向量处理的基本概念347
6.1.1什么是向量处理347
6.1.2向量处理方式348
6.2向量处理机的结构349
6.2.1存储器\|存储器结构351
6.2.2寄存器\|寄存器结构355
6.3向量处理机的存取模式和数据结构358
6.3.1数值算法的存取模式358
6.3.2向量处理机的数据结构361
6.4提高向量处理机性能的方法365
6.4.1向量处理机系统结构的设计目标365
6.4.2提高向量处理机性能的常用技术369
6.5向量处理机实例376
6.5.1向量处理机的历史与现状376
6.5.2Cray Y\|MP,C\|90379
6.5.3Fujitsu VP2000和VPP500381
6.5.4向量协处理器383
6.6向量处理机的性能评价386
6.7关于向量处理机的几点看法389
习题六391
第七章互连网络394
7.1互连网络的基本概念394
7.1.1互连网络的作用394
7.1.2互连函数395
7.1.3互连网络的特性和传输的性能参数399
7.1.4互连网络的种类402
7.2消息传递机制414
7.2.1消息寻径方式414
7.2.2死锁和虚拟通道418
7.2.3流控制策略420
7.2.4选播和广播寻径算法425
7.3互连网络实例427
7.3.1总线互连427
7.3.2环形互连430
7.3.3交叉开关互连431
7.3.4混洗交换互连和合并开关434
7.3.5Omega网络436
7.3.6蝶形操作439
7.3.7合并网络和取与加指令442
习题七446
第八章SIMD计算机451
8.1SIMD计算机模型451
8.2SIMD计算机的基本结构453
8.2.1分布式存储器结构453
8.2.2共享存储器结构454
8.2.3SIMD计算机的特点455
8.3SIMD计算机实例456
8.3.1Illiac Ⅳ阵列处理机457
8.3.2BSP计算机461
8.3.3CM\|2计算机466
8.3.4MasPar MP\|1系统469
8.4SIMD计算机的应用473
8.4.1数值应用问题的特征473
8.4.2算法举例483
8.5连续模型的结构向何处发展493
习题八495
第九章多处理机499
9.1多处理机结构499
9.1.1两种多处理机结构499
9.1.2多处理机系统的特点500
9.2多处理机性能模型502
9.2.1基本模型504
9.2.2N台处理机系统的基本模型505
9.2.3随机模型507
9.2.4通信开销为线性函数的模型507
9.2.5一个完全重叠通信的理想模型509
9.2.6一个具有多条通信链的模型510
9.2.7多处理机模型511
9.3多处理机的Cache一致性512
9.3.1问题由来513
9.3.2监听协议514
9.3.3基于目录的协议518
9.4多处理机实例521
9.4.1MPP521
9.4.2SMP528
9.4.3机群系统541
9.4.3.1机群系统的组成、特点和关键技术541
9.4.3.2机群系统通信技术545
9.4.3.3并行程序设计环境551
9.4.3.4机群系统负载平衡技术555
习题九560
第十章多处理机算法563
10.1简单并行性563
10.1.1do par和do seq结构565
10.1.2阻塞同步566
10.1.3性能分析567
10.1.4增大粒度568
10.1.5任务的初始化571
10.2同步技术572
10.2.1使用测试与设置指令的同步技术573
10.2.2使用增1和减1指令的同步技术575
10.2.3使用比较与交换指令的同步技术577
10.2.4使用取与加指令的同步技术582
10.3并行搜索584
10.3.1搜索单峰函数的极大值584
10.3.2并行分支限界法586
10.4串行算法到并行算法的转换589
10.4.1相关性分析590
10.4.2开发迭代的并行性591
10.5同步并行算法和异步并行算法593
10.5.1同步并行算法593
10.5.2异步并行算法596
10.6并行程序设计语言及其实现方法598
10.6.1并行程序设计语言的特点598
10.6.2并行程序设计模型599
10.6.3并行程序设计语言涉及的关键技术600
10.6.4并行程序设计语言的实现途径601
10.7小结604
习题十605
第十一章计算机系统结构的新发展607
11.1数据流计算机607
11.1.1数据驱动原理607
11.1.1.1串行控制流与并行控制流608
11.1.1.2数据流计算机中指令的执行过程609
11.1.1.3数据流计算机的指令结构611
11.1.2数据流计算机模型611
11.1.2.1静态数据流计算机模型612
11.1.2.2动态数据流计算机模型612
11.1.2.3静态与动态两种数据流计算机的比较613
11.1.2.4普遍化的数据流计算机结构613
11.1.3数据流计算机的性能分析614
11.1.3.1数据流计算机的优点614
11.1.3.2数据流计算机的缺点615
11.1.3.3数据流计算机设计中需要解决的几个问题616
11.1.4数据流程序图和数据流语言617
11.1.4.1数据流程序图617
11.1.4.2数据流语言623
11.1.4.3数据流语言的性质624
11.1.5静态数据流计算机结构626
11.1.5.1静态数据流计算机的组成626
11.1.5.2分块结构的静态数据流计算机628
11.1.5.3多处理机结构的静态数据流计算机630
11.1.5.4静态数据流计算机作为后端机631
11.1.6动态数据流计算机结构632
11.1.6.1网络结构的动态数据流计算机632
11.1.6.2环形结构的动态数据流计算机634
11.1.6.3网状结构的动态数据流计算机635
11.1.7其它类型的数据流计算机637
11.1.7.1利用传统多处理机结构的数据流计算机637
11.1.7.2提高并行级别的数据流计算机637
11.1.7.3采用多级并行的数据流计算机638
11.1.7.4同步与异步相结合的数据流计算机639
11.1.7.5控制流与数据流相结合的数据流计算机639
11.2数据库机与知识库机641
11.2.1数据库机与知识库机模型641
11.2.1.1软件后端机数据库机与知识库机642
11.2.1.2智能控制后端机数据库机与知识库机643
11.2.1.3硬件后端机数据库机与知识库机643
11.2.2数据库机和知识库机在智能计算机系统中的作用644
11.2.2.1由数据库机和知识库机构成的智能计算机系统644
11.2.2.2数据库机与知识库机作为网络系统中的结点机644
11.2.2.3分布式数据库机与知识库机系统645
11.2.3数据库机与知识库机系统结构645
11.2.3.1数据库机与知识库机的逻辑结构646
11.2.3.2数据库机与知识库机的物理结构646
11.2.3.3多级存储器结构647
11.2.3.4操作执行部件的结构647
11.2.3.5智能接口的结构648
11.2.4后端机与前端机的接口649
11.2.4.1逻辑接口650
11.2.4.2物理接口650
11.2.4.3后端机与前端机之间的接口选择651
11.2.5典型的数据库机与知识库机652
11.2.5.1高速数据处理技术653
11.2.5.2数据库机的分类653
11.2.5.3RelationalKBM关系知识库机654
11.2.5.4PSI+Delta知识库机结构655
11.2.5.5PUKBM知识库机656
11.3面向函数程序设计语言的归约机659
11.3.1引言659
11.3.2函数式语言的归约计算方法660
11.3.3图归约的并行实现方法677
11.3.4并行图归约机系统结构692
习题十一700
第十二章实验:DLX处理器703
12.1DLX基本结构703
12.1.1寄存器703
12.1.2数据类型704
12.1.3数据转移寻址模式704
12.1.4指令格式704
12.1.5操作704
12.1.6效率709
12.2DLX流水线结构712
12.2.1一个简单实现712
12.2.2基本流水线715
12.2.3扩展DLX操作使其能处理多周期操作720
12.2.3.1在长延迟的流水线中的相关和专用通路723
12.2.3.2维持精确的异常处理725
12.2.3.3浮点流水线的性能728
12.3实验环境与内容729
12.3.1实验环境729
12.3.2实验内容729
12.3.2.1使用WINDLX模拟器,对Fact.s(WINDLX附
带的例子)作如下分析729
12.3.2.2用DLX汇编语言编写矩阵乘程序,并对该程序
做如下分析729
12.3.2.3用IntelX86汇编语言编写矩阵乘程序730
12.3.3实验总结730
参考文献731