第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 超长指令字处理机 89
第3章 SIMD计算机 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 SIMD计算机的结构和并行算法 120
3.5.1 阵列处理机的基本结构 120
3.5.2 阵列处理机的并行算法 122
第4章 MIMD计算机 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 归约方式 184
5.2.2 函数式语言与归约机结构 186
5.2.3 串归约机 188
5.2.4 图归约机 189
第6章 嵌入式计算机系统 193
6.1 嵌入式系统简介 193
6.1.1 嵌入式系统的概念 194
6.1.2 嵌入式系统设计应具备的技能 195
6.1.3 嵌入式系统的组成、分类与组特点 198
6.1.4 嵌入式系统的发展趋势 200
6.1.5 影响未来的若干软件新技术 201
6.2 嵌入式系统的开发过程 202
6.2.1 需求分析 203
6.2.2 体系结构设计阶段 204
6.2.3 详细设计阶段 206
6.2.4 系统集成阶段 208
6.2.5 测试阶段 210
6.3 嵌入式系统硬件子系统的组成 213
6.3.1 嵌入式系统处理器的选择 214
6.3.2 嵌入式系统存储器的选择 215
6.3.3 处理器、存储器与I/O设备接口 218
6.3.4 ARM技术 219
6.4 嵌入式软件结构和组成 222
6.4.1 软件移植的概念 223
6.4.2 常用的嵌入式操作系统 225
6.4.3 嵌入式Linux 226
6.5 嵌入式网络 233
6.5.1 分布式嵌入式系统 235
6.5.2 基于网络的设计 235
6.5.3 在嵌入式系统中支持TCP协议 236
第7章 SoC系统 239
7.1 SoC设计概述 239
7.1.1 SoC的硬件结构和软件特征 240
7.1.2 SoC的层次结构 241
7.1.3 SoC的开发流程 242
7.2 可重用设计 244
7.2.1 IP核的概念 245
7.2.2 硬核的设计和使用 246
7.2.3 软核的设计和使用 247
7.3 片上总线 247
7.3.1 片上总线接口标准 248
7.3.2 AMBA总线结构 249
7.3.3 Avalon总线结构 250
7.3.4 Wishbone总线结构 251
7.3.5 CoreConnect总线结构 252
7.3.6 OCP总线结构 253
7.4 软硬件协同设计 254
7.4.1 协同设计的概念 254
7.4.2 事务级建模 255
7.4.3 系统级描述语言SystemC 258
7.5 基于平台的设计 261
7.5.1 平台的分类 261
7.5.2 平台中的处理器核 262
7.5.3 C * SOC仿真验证平台 262
7.6 多处理器SoC 264
7.6.1 多处理器SoC的结构 265
7.6.2 片上网络 267
7.6.3 MPSoC的设计流程 268
第8章 片上多处理器 271
8.1 CMP概述 271
8.1.1 CMP研究系统 272
8.1.2 商用CMP 274
8.1.3 CMP设计的关键问题 279
8.2 Cache一致性协议 280
8.2.1 监听、目录和Token协议 280
8.2.2 Cache一致性协议设计 282
8.3 存储一致性 284
8.3.1 严格一致性与顺序一致性 284
8.3.2 弱一致性 284
8.3.3 释放一致性 285
8.3.4 其他一致性模型 285
8.4 高速片上互连网络 285
8.4.1 NoC体系结构 286
8.4.2 现有NoC系统 288
8.5 多线程同步机制 289
8.5.1 基于锁的同步机制 289
8.5.2 事务型内存 291
附录A 国外高校嵌入式系统课程的体系结构举例 301
A.1 美国科罗拉多州立大学“嵌入式系统认证”课程目录(Embedded Systems Certificate)嵌入式系统需求(The Demand for Embedded Systems) 301
A.2 华盛顿大学嵌入式系统课程大纲 302
参考文献 305