第1章 概述 1
1.1 计算机系统结构的基本概念 1
1.1.1 多级层次结构 1
1.1.2 系统结构、组成和实现之间的关系 4
1.2 计算机系统结构的设计方法 6
1.2.1 计算机系统的设计原则 6
1.2.2 计算机系统的设计思路及步骤 10
1.3 软件、应用、器件的影响 12
1.4 计算机系统结构的分类 16
1.5 基于冯·诺依曼计算机模型的指令集分类 20
1.5.1 CISC体系结构 21
1.5.2 RISC体系结构 22
1.5.3 CISC和RISC混合体系结构 24
1.5.4 EPIC体系结构 25
1.6 先进的微体系结构 27
1.6.1 多核处理器 27
1.6.2 流处理器 33
1.6.3 PIM 39
1.6.4 可重构计算 41
习题 47
第2章 流水线技术 50
2.1 流水线的基本概念 50
2.1.1 什么是流水线 50
2.1.2 流水线的分类 51
2.2 流水线的性能指标 55
2.2.1 吞吐率 56
2.2.2 加速比 58
2.2.3 效率 58
2.3 DLX的基本流水线 59
2.3.1 DLX指令集结构 59
2.3.2 基本的DLX流水线 61
2.3.3 DLX流水线各级的操作 63
2.3.4 DLX流水线处理机的控制 65
2.4 流水线的相关与冲突 74
2.4.1 流水线相关 74
2.4.2 流水线冲突 77
习题 87
第3章 指令级并行 90
3.1 指令级并行的概念 90
3.2 循环展开 91
3.2.1 循环展开的原理 91
3.2.2 循环展开的特点 93
3.3 动态指令调度 94
3.3.1 静态指令调度与动态指令调度 94
3.3.2 动态指令调度的基本思想 95
3.3.3 动态指令调度算法:记分板 96
3.3.4 动态指令调度算法:Tomasulo算法 108
3.4 动态分支预测 125
3.4.1 采用分支预测表 126
3.4.2 采用分支目标缓冲器 128
3.4.3 基于硬件的推断执行 131
3.4.4 先进的分支预测技术 137
习题 139
第4章 线程级并行 142
4.1 多线程技术发展背景 142
4.2 线程概念 144
4.2.1 用户级线程 144
4.2.2 内核级线程 145
4.2.3 硬件线程 148
4.3 单线程处理器 148
4.4 多线程技术概述 151
4.4.1 阻塞式多线程 152
4.4.2 交错式多线程 153
4.4.3 同时多线程 154
4.5 同时多线程技术 155
4.5.1 超级线程技术概述 156
4.5.2 超线程技术概述 157
4.6 超线程技术 159
4.6.1 超线程技术的工作原理 159
4.6.2 实现超线程的前提条件 160
4.6.3 Intel的超线程技术 161
4.7 同时多线程技术存在的挑战 166
习题 167
第5章 超流水、超标量处理器 169
5.1 超级流水线处理器 169
5.1.1 指令执行时序 170
5.1.2 MIPS R4000超级流水线处理器 170
5.1.3 超级流水线的弊端 171
5.2 标量处理器 172
5.2.1 标量流水线性能上限 173
5.2.2 性能损失 173
5.3 超标量处理器 174
5.3.1 超标量流水线典型结构 174
5.3.2 指令执行时序 175
5.3.3 超标量技术 175
5.3.4 超标量处理器性能 179
5.3.5 龙芯2F超标量处理器 180
5.4 其他三种典型的超标量处理器 187
5.4.1 MIPS R10000 187
5.4.2 Alpha 21164 189
5.4.3 AMD K5 190
习题 191
第6章 超长指令字处理器 192
6.1 概述 192
6.1.1 引言 192
6.1.2 基本概念 195
6.1.3 传统方法的不足 198
6.2 精确中断技术 199
6.2.1 概述 199
6.2.2 RP缓冲机制 200
6.2.3 RRP缓冲机制 202
6.3 RFCC-VLIW结构 205
6.3.1 概述 205
6.3.2 寄存器堆结构 205
6.3.3 代价分析 206
6.3.4 性能分析 207
6.3.5 THUASDSP2004处理器 209
6.4 MOSI体系结构 218
6.4.1 概述 218
6.4.2 MOSI微体系结构 219
6.4.3 性能分析 222
6.5 基于VLIW的多核处理器 226
6.5.1 华威处理器 226
6.5.2 安腾处理器 230
习题 235
第7章 片上多核处理器 236
7.1 片上多核体系结构概述 236
7.1.1 片上多核体系结构简介 236
7.1.2 多核体系结构和超线程技术的区别 239
7.1.3 多核多线程体系结构 241
7.2 芯片组对多核的支持 242
7.2.1 EFI概述 242
7.2.2 EFI对多核处理器的初始化 244
7.2.3 EFI对多核操作系统的支持 247
7.3 操作系统对多核的支持 247
7.4 典型片上多核架构 248
7.4.1 异构多核处理器 248
7.4.2 同构多核处理器 255
习题 267
参考文献 268