本书是普通高等教育“十一五”国家级规划教材,在介绍计算机系统结构的概念、原理、结构和分析方法的基础上,着重阐述系统并行化、嵌入式计算机系统、SoC及片上多处理器的设计思想,帮助学生建立计算机系统的完整概念。
本书共分为8章。第1章介绍计算机系统结构的基本概念、指令设计与寻址、I/O系统设计和存储体系设计等基础内容;第2章讨论流水处理技术以及超标量、超流水和超长指令字处理机;第3章介绍并行处理机设计的基础知识;第4章讨论多处理机系统的设计技术;第5章介绍非诺依曼结构的新型计算机体系结构;第6章介绍嵌入式计算机系统的概念,分析其组成和设计过程;第7章介绍嵌入式系统的高级形式--SoC的设计方法;第8章着重介绍多内核处理器的设计,包括Cache组织方式、Cache一致性协议、片上互连网络设计以及同步机制等问题。
本书可作为高等院校计算机专业的高年级本科教材或研究生教材,也可作为从事计算机系统或嵌入式系统设计的工程技术人员的参考书。
本书特色
将计算机系统结构的理论、方法和技术与目前行业发展的需要紧密结合。在介绍计算机系统设计所必需掌握的知识的基础上,以提高效率和系统优化为目标,重点阐述并行化计算机体系结构的分析设计方法,并融入多核体系结构的新概念。从当前高性能、多功能计算机系统的嵌入化、专用化和高集成化的角度,介绍计算机系统的概念,分析其组成、设计、构建的过程,讨论基于SoC的高级嵌入式系统设计模式与方法,使计算机系统结构课程内容向实用化方向延伸,为学生将来从事多核体系结构及嵌入式系统的研究和设计工作打下基础。另外,本书还介绍了几种有代表性的非诺依曼结构的计算机系统的设计思想,以开拓学生的综合创新思路。
“现代计算机体系结构”课程一直是理论性比较强,且相对于其他硬件类课程比较抽象的一门计算机专业课程,必须在建立计算机系统软硬件完整概念的基础上,才能学好、学透。而且这门课程注重的是计算机系统的分析、设计、构建和优化等一系列理论研究方法,并不是具体的实现技术细节,因此学生学习起来往往会感到空泛。
本书是普通高等教育“十一五”国家级规划教材,作者结合多年的教学和科研实践经验,按照基础-优化-实用-创新的思路,不但介绍了计算机系统结构的概念、原理、结构和分析方法,还着重通过实际机型重点阐述计算机系统的设计思想,将计算机系统结构的理论、研究方法和技术与目前行业发展的需要紧密结合,使计算机系统结构课程内容向实用化和新理念方向延伸。
本书共分为8章。第1章介绍计算机系统结构的基本概念、指令系统的设计思想与寻址方式、I/O系统的整体设计及其流量分析、存储体系发展过程和设计实现的几种常用技术手段,这部分内容是学习计算机系统结构必须具备的最基本的知识,要求学生必须全面了解与掌握;第2章介绍流水处理技术以及超流水、超标量和超长指令字处理机。超流水和超标量流水线技术的采用,可以在一个时钟周期内完成多条指令的执行;而VLIW描述了另外一种指令集的设计思想,在这种指令集中编译器把许多简单、独立的指令组合到一条指令字中;第3章介绍并行处理机设计的基础知识,主要介绍并行处理机的互连网络、消息传递机制以及基于多处理单元阵列结构的并行算法等内容;第4章讨论多处理机系统的相关技术,包括多处理器的概念、分类、结构和性能,介绍把多台处理机组成高并行度系统的关键技术,并深入分析这类系统的改进方法;第5章介绍非诺依曼结构的新型计算机体系结构,包括数据流计算机、归约机、数据库与知识库机以及智能计算机等;第6章介绍嵌入式计算机系统的基本概念,分析软硬件的组成和设计过程;第7章介绍嵌入式系统的高级形式--SoC系统;第8章着重介绍多内核处理器的设计,包括Cache组织方式、Cache一致性协议、片上互连网络设计以及同步机制等问题。
由于作者水平有限,对书中的错误和不足之处,恳请广大读者批评指正。
编 者2009年1月
第1章 计算机系统结构基础1
1.1 计算机系统结构的基本概念1
1.1.1 多级层次结构1
1.1.2 系统结构、组成和实现之间的关系3
1.1.3 计算机系统结构的设计方法5
1.1.4 软件、应用、器件对系统结构的影响8
1.1.5 计算机系统结构的分类10
1.2 指令与寻址13
1.2.1 数据表示13
1.2.2 寻址方式17
1.2.3 指令系统的优化19
1.2.4 精简指令系统计算机23
1.3 输入输出系统26
1.3.1 输入输出原理26
1.3.2 中断系统28
1.3.3 通道处理机31
1.4 存储体系37
1.4.1 存储系统的分析37
1.4.2 虚拟存储系统39
1.4.3 Cache存储系统46
第2章 流水处理技术57
2.1 一次重叠57
2.2 先行控制 58
2.3 流水技术原理60
2.4 流水线的分类64 2.5 流水线的相关及其处理技术66
2.5.1 数据相关及处理方法66
2.5.2 控制相关及处理方法72
2.6 流水线调度75
2.6.1 指令序列重排75
2.6.2 非线性流水线调度77
2.7 超标量流水处理机79
2.7.1 基本原理79
2.7.2 指令发射策略81
2.7.3 资源冲突84
2.7.4 Pentium处理器的指令流水线86
2.8 超流水线处理机87
2.8.1 基本原理87
2.8.2 MIPS R4000处理机88
2.9 超长指令字处理机89
2.10 超标量超流水处理机90
现代计算机体系结构目录 第3章 并行处理机93
3.1 互连网络的基本概念93
3.2 单级互连网络94
3.2.1 n-立方体互连网络94
3.2.2 PM2I互连网络95
3.2.3 混洗交换互连网络96
3.2.4 蝶式互连网络97
3.3 多级互连网络97
3.3.1 多级立方体网络99
3.3.2 Omega网络101
3.3.3 基准网络102
3.3.4 多级PM2I互连网络102
3.3.5 Benes网络103
3.3.6 Clos网络105
3.4 互连网络的消息传送106
3.4.1 消息格式和寻径方式106
3.4.2 死锁的产生和规避108
3.4.3 流量控制策略110
3.4.4 寻径方法111
3.4.5 选播和广播寻径 118
3.5 阵列处理机120
3.5.1 阵列处理机的基本结构120
3.5.2 阵列处理机的并行算法122
第4章 多处理机系统125
4.1 多处理机系统概述125
4.1.1 多处理机系统模型126
4.1.2 多处理机系统的特点129
4.1.3 多处理机系统的分类(参考中科院计算中心课件)131
4.2 多处理机的Cache一致性133
4.2.1 Cache的一致性问题133
4.2.2 解决Cache的一致性问题的对策134
4.3 多处理机系统139
4.3.1 大型并行处理机139
4.3.2 共享存储型多处理机系统140
4.3.3 容错型计算机系统142
4.3.4 机群计算机系统143
4.3.5 基于Internet的计算平台160
第5章 新型计算机系统165
5.1 数据流计算机165
5.1.1 数据驱动原理165
5.1.2 数据流程序图和数据流语言167
5.1.3 数据流计算机模型172
5.1.4 静态数据流计算机结构174
5.1.5 动态数据流计算机结构180
5.1.6 数据流计算机设计中要解决的问题184
5.2 数据库与知识库机184
5.2.1 数据库机与知识库机模型185
5.2.2 数据库机与知识库机的结构186
5.3 归约机的基本概念189
5.3.1 归约方式190
5.3.2 函数式语言与归约机结构191
5.3.3 串归约机193
5.3.4 图归约机194
5.4 智能计算机简介196
5.4.1 智能信息处理与智能计算机196
5.4.2 智能计算机的结构198
第6章 嵌入式计算机系统201
6.1 嵌入式系统简介201
6.1.1 嵌入式系统的概念202
6.1.2 嵌入式系统设计应具备的技能203
6.1.3 嵌入式系统的组成、分类与组特点206
6.1.4 嵌入式系统的发展趋势208
6.1.5 影响未来的若干软件新技术209
6.2 嵌入式系统的开发过程210
6.2.1 需求分析211
6.2.2 系统结构设计阶段212
6.2.3 详细设计阶段214
6.2.4 系统集成阶段216
6.2.5 测试阶段218
6.3 嵌入式系统硬件子系统的组成221
6.3.1 嵌入式系统处理器的选择222
6.3.2 嵌入式系统存储器的选择223
6.3.3 处理器、存储器与I/O设备接口226
6.3.4 ARM技术227
6.4 嵌入式软件结构和组成230
6.4.1 软件移植的概念231
6.4.2 常用的嵌入式操作系统233
6.4.3 嵌入式Linux234
6.5 嵌入式网络241
6.5.1 分布式嵌入式系统243
6.5.2 基于网络的设计243
6.5.3 在嵌入式系统中支持TCP协议244
6.6 国外高校嵌入式系统课程的体系结构举例245
6.6.1 美国科罗拉多州立大学“嵌入式系统认证”课程目录(Embedded
Systems Certificate)嵌入式系统需求(The Demand for
Embedded Systems)245
6.6.2 华盛顿大学嵌入式系统课程大纲246
第7章 SoC系统249
7.1 SoC设计概述249
7.1.1 SoC的硬件结构和软件特征250
7.1.2 SoC的层次结构251
7.1.3 SoC的开发流程252
7.2 可重用设计254
7.2.1 IP核的概念255
7.2.2 硬核的设计和使用256
7.2.3 软核的设计和使用257
7.3 片上总线257
7.3.1 片上总线接口标准258
7.3.2 AMBA总线结构259
7.3.3 Avalon总线结构260
7.3.4 Wishbone总线结构261
7.3.5 CoreConnect总线结构262
7.3.6 OCP总线结构263
7.4 软硬件协同设计264
7.4.1 协同设计的概念264
7.4.2 事务级建模265
7.4.3 系统级描述语言SystemC268
7.5 基于平台的设计271
7.5.1 平台的分类271
7.5.2 平台中的处理器核272
7.5.3 CSOC仿真验证平台272
7.6 多处理器SoC274
7.6.1 多处理器SoC的结构275
7.6.2 片上网络277
7.6.3 MPSoC的设计流程278
第8章 片上多处理器281
8.1 CMP概述281
8.1.1 CMP研究系统282
8.1.2 商用CMP284
8.1.3 CMP设计的关键问题289
8.2 Cache一致性协议290
8.2.1 监听、目录和Token协议290
8.2.2 Cache一致性协议设计292
8.3 存储一致性294
8.3.1 严格一致性与顺序一致性294
8.3.2 弱一致性294
8.3.3 释放一致性295
8.3.4 其他一致性模型295
8.4 高速片上互连网络295
8.4.1 NoC系统结构296
8.4.2 现有NoC系统298
8.5 多线程同步机制299
8.5.1 基于锁的同步机制299
8.5.2 事务型内存301
参考文献310