计算机体系结构:量化研究方法(中文第五版)


格式:PDF
类型:扫描版
大小:23.5M

出版信息

作者: [美] John L. Hennessy / [美] David A. Patterson
出版社: 人民邮电出版社
副标题: 量化研究方法(第5版)
原作名: Computer Architecture:A Quantitative Approach,Fifth Edition
译者: 贾洪峰
出版年: 2012-12
页数: 595
定价: 109.00元
装帧: 平装
丛书: 图灵计算机科学丛书
ISBN: 9787115297655

简介

《计算机体系结构:量化研究方法(第5版)》是最权威的计算机体系结构著作,是久负盛名的经典作品。书中系统地介绍了计算机系统的设计基础、指令集系统结构、流水线和指令集并行技术、层次化存储系统与存储设备、互连网络以及多处理器系统等重要内容。在这个最新版中,作者增加了当前炙手可热的云计算和手机客户端技术等相关内容,探讨了在手机、平板电脑、笔记本电脑和其他移动计算设备上云计算的软硬件实现方式。

目录

第1章  量化设计与分析基础  1
1.1  引言  2
1.2  计算机的分类  4
1.2.1  个人移动设备  5
1.2.2  桌面计算  5
1.2.3  服务器  6
1.2.4  集群/仓库级计算机  6
1.2.5  嵌入式计算机  7
1.2.6  并行度与并行体系结构的分类  7
1.3  计算机体系结构的定义  8
1.3.1  指令集体系结构:计算机体系结构的近距离审视  9
1.3.2  真正的计算机体系结构:设计满足目标和功能需求的组成和硬件  12
1.4  技术趋势  13
1.4.1  性能趋势:带宽胜过延迟  15
1.4.2  晶体管性能与连线的发展  17
1.5  集成电路中的功率和能耗趋势  17
1.5.1  功率和能耗:系统观点  17
1.5.2  微处理器内部的能耗和功率  18
1.6  成本趋势  21
1.6.1  时间、产量和大众化的影响  21
1.6.2  集成电路的成本  22
1.6.3  成本与价格  26
1.6.4  制造成本与运行成本  26
1.7  可信任度  26
1.8  性能的测量、报告和汇总  28
1.8.1  基准测试  29
1.8.2  报告性能测试结果  32
1.8.3  性能结果汇总  33
1.9  计算机设计的量化原理  34
1.9.1  充分利用并行  35
1.9.2  局域性原理  35
1.9.3  重点关注常见情形  35
1.9.4  Amdahl定律  36
1.9.5  处理器性能公式  38
1.10  融会贯通:性能、价格和功耗  40
1.11  谬论与易犯错误  42
1.12  结语  46
1.13  历史回顾与参考文献  47
第2章  存储器层次结构设计  53
2.1  引言  54
2.2  缓存性能的10种高级优化方法  59
2.2.1  第一种优化:小而简单的第一级缓存,用以缩短命中时间、降低功率  59
2.2.2  第二种优化:采用路预测以缩短命中时间  61
2.2.3  第三种优化:实现缓存访问的流水化,以提高缓存带宽  61
2.2.4  第四种优化:采用无阻塞缓存,以提高缓存带宽  62
2.2.5  第五种优化:采用多种缓存以提高缓存带宽  64
2.2.6  第六种优化:关键字优先和提前重启动以降低缺失代价  64
2.2.7  第七种优化:合并写缓冲区以降低缺失代价  65
2.2.8  第八种优化:采用编译器优化以降低缺失率  66
2.2.9  第九种优化:对指令和数据进行硬件预取,以降低缺失代价或缺失率  68
2.2.10  第十种优化:用编译器控制预取,以降低缺失代价或缺失率  69
2.2.11  缓存优化小结  72
2.3  存储器技术与优化  72
2.3.1  SRAM技术  73
2.3.2  DRAM技术  73
2.3.3  提高DRAM芯片内部的存储器性能  75
2.3.4  降低SDRAM中的功耗  77
2.3.5  闪存  77
2.3.6  提高存储器系统的可靠性  78
2.4  保护:虚拟存储器和虚拟机  79
2.4.1  通过虚拟存储器提供保护  79
2.4.2  通过虚拟机提供保护  81
2.4.3  对虚拟机监视器的要求  82
2.4.4  虚拟机(缺少)的指令集体系结构支持  82
2.4.5  虚拟机对虚拟存储器和I/O的影响  83
2.4.6  VMM实例:Xen虚拟机  84
2.5  交叉问题:存储器层次结构的设计  84
2.5.1  保护和指令集体系结构  84
2.5.2  缓存数据的一致性  85
2.6  融会贯通:ARM Cortex-A8和Intel Core i7中的存储器层次结构  85
2.6.1  ARM Cortex-A8  86
2.6.2  Intel Core i7  89
2.7  谬论与易犯错误  95
2.8  结语:展望  98
2.9  历史回顾与参考文献  99
第3章  指令级并行及其开发  109
3.1  指令级并行:概念与挑战  110
3.1.1  什么是指令级并行  111
3.1.2  数据相关与冒险  111
3.1.3  控制相关  114
3.2  揭示ILP的基本编译器技术  116
3.2.1  基本流水线调度和循环展开  116
3.2.2  循环展开与调度小结  119
3.3  用高级分支预测降低分支成本  120
3.3.1  竞赛预测器:局部预测器与全局预测器的自适应联合  122
3.3.2  Intel Core i7分支预测器  123
3.4  用动态调度克服数据冒险  124
3.4.1  动态调度:思想  124
3.4.2  使用Tomasulo算法进行动态调度  126
3.5  动态调度:示例和算法  130
3.5.1  Tomasulo算法:细节  132
3.5.2  Tomasulo算法:基于循环的示例  133
3.6  基于硬件的推测  135
3.7  以多发射和静态调度来开发ILP  143
3.8  以动态调度、多发射和推测来开发ILP  146
3.9  用于指令传送和推测的高级技术  150
3.9.1  提高指令提取带宽  150
3.9.2  推测:实现问题与扩展  155
3.10  ILP局限性的研究  158
3.10.1  硬件模型  158
3.10.2  可实现处理器上ILP的局限性  160
3.10.3  超越本研究的局限  163
3.11  交叉问题:ILP方法与存储器系统  164
3.11.1  硬件推测与软件推测  164
3.11.2  推测执行与存储器系统  165
3.12  多线程:开发线程级并行提高单处理器吞吐量  165
3.12.1  细粒度多线程在Sun T1上的效果  168
3.12.2  同时多线程在超标量处理器上的效果  170
3.13  融会贯通:Intel Core i7和ARMCortex-A8  173
3.13.1  ARM Cortex-A8  173
3.13.2  Intel Core i7  176
3.14  谬论与易犯错误  179
3.15  结语:前路何方  182
3.16  历史回顾与参考文献  183
第4章  向量、SIMD和GPU体系结构中的数据级并行  193
4.1  引言  194
4.2  向量体系结构  195
4.2.1  VMIPS  196
4.2.2  向量处理器如何工作:一个示例  198
4.2.3  向量执行时间  199
4.2.4  多条车道:每个时钟周期超过一个元素  201
4.2.5  向量长度寄存器:处理不等于64的循环  203
4.2.6  向量遮罩寄存器:处理向量循环中的IF语句  204
4.2.7  内存组:为向量载入/存储单元提供带宽  205
4.2.8  步幅:处理向量体系结构中的多维数组  206
4.2.9  集中—分散:在向量体系结构中处理稀疏矩阵  207
4.2.10  向量体系结构编程  208
4.3  SIMD指令集多媒体扩展  209
4.3.1  多媒体SIMD体系结构编程  212
4.3.2  Roofline可视性能模型  212
4.4  图形处理器  214
4.4.1  GPU编程  214
4.4.2  NVIDIA GPU计算结构  216
4.4.3  NVIDA GPU指令集体系结构  222
4.4.4  GPU中的条件分支  224
4.4.5  NVIDIA GPU存储器结构  226
4.4.6  Fermi GPU体系结构中的创新  228
4.4.7  向量体系结构与GPU的相似与不同  230
4.4.8  多媒体SIMD计算机与GPU之间的相似与不同  233
4.4.9  小结  233
4.5  检测与增强循环强并行  235
4.5.1  查找相关  238
4.5.2  消除相关计算  240
4.6  交叉问题  240
4.6.1  能耗与DLP:慢而宽与快而窄  240
4.6.2  分组存储器和图形存储器  241
4.6.3  步幅访问和TLB缺失  241
4.7  融会贯通:移动与服务器GPU、Tesla与Core i7  241
4.8  谬论与易犯错误  247
4.9  结语  248
4.10  历史回顾与参考文献  250
第5章  线程级并行  256
5.1  引言  257
5.1.1  多处理器体系结构:问题与方法  258
5.1.2  并行处理的挑战  260
5.2  集中式共享存储器体系结构  262
5.2.1  什么是多处理器缓存一致性  263
5.2.2  一致性的基本实现方案  264
5.2.3  监听一致性协议  265
5.2.4  基本实现技术  265
5.2.5  示例协议  267
5.2.6  基本一致性协议的扩展  270
5.2.7  对称共享存储器多处理器与监听协议的局限性  271
5.2.8  实施监听缓存一致性  272
5.3  对称共享存储器多处理器的性能  273
5.3.1  商业工作负载  274
5.3.2  商业工作负载的性能测量  275
5.3.3  多重编程和操作系统工作负载  279
5.3.4  多重编程和操作系统工作负载的性能  280
5.4  分布式共享存储器和目录式一致性  282
5.4.1  目录式缓存一致性协议:基础知识  283
5.4.2  目录式协议举例  285
5.5  同步:基础知识  288
5.5.1  基本硬件原语  288
5.5.2  使用一致性实现锁  289
5.6  存储器连贯性模型:简介  291
5.6.1  程序员的观点  292
5.6.2  宽松连贯性模型:基础知识  293
5.6.3  关于连贯性模型的最后说明  293
5.7  交叉问题  294
5.7.1  编译器优化与连贯性模型  294
5.7.2  利用推测来隐藏严格连贯性模型中的延迟  294
5.7.3  包含性及其实现  295
5.7.4  利用多重处理和多线程的性能增益  295
5.8  融会贯通:多核处理器及其性能  297
5.9  谬论与易犯错误  301
5.10  结语  304
5.11  历史回顾与参考文献  306
第6章  以仓库级计算机开发请求级、数据级并行  319
6.1  引言  320
6.2  仓库级计算机的编程模型与工作负载  323
6.3  仓库级计算机的计算机体系结构  327
6.3.1  存储  328
6.3.2  阵列交换机  328
6.3.3  WSC存储器层次结构  329
6.4  仓库级计算机的物理基础设施与成本  331
6.4.1  测量WSC的效率  334
6.4.2  WSC的成本  335
6.5  云计算:公用计算的回报  338
6.6  交叉问题  342
6.6.1  成为瓶颈的WSC网络  342
6.6.2  在服务器内部高效利用能量  343
6.7  融会贯通:Google仓库级计算机  344
6.7.1  集装箱  344
6.7.2  Google WSC中的冷却与供电  346
6.7.3  Google WSC中的服务器  348
6.7.4  Google WSC中的联网  348
6.7.5  Google WSC的监控与修复  349
6.7.6  小结  349
6.8  谬论与易犯错误  350
6.9  结语  353
6.10  历史回顾与参考文献  354
附录A  指令集基本原理  365
A.1  引言  366
A.2  指令集体系结构的分类  366
A.3  存储器寻址  369
A.4  操作数的类型与大小  374
A.5  指令集中的操作  375
A.6  控制流指令  376
A.7  指令集编码  380
A.8  交叉问题:编译器的角色  382
A.9  融会贯通:MIPS体系结构  388
A.10  谬论和易犯错误  396
A.11  结语  399
A.12  历史回顾与参考文献  400
附录B  存储器层次结构回顾  405
B.1  引言  406
B.2  缓存性能  416
B.3  6种基本的缓存优化  421
B.4  虚拟存储器  435
B.5  虚拟存储器的保护与示例  441
B.6  谬论与易犯错误  447
B.7  结语  448
B.8  历史回顾与参考文献  449
附录C  流水线:基础与中级概念  454
C.1  引言  455
C.2  流水化的主要阻碍——流水线冒险  461
C.3  如何实现流水化  476
C.4  妨碍流水线实现的难题  485
C.5  扩展MIPS流水线,以处理多周期操作  490
C.6  融会贯通:MIPS R4000流水线  498
C.7  交叉问题  504
C.8  谬论与易犯错误  511
C.9  结语  512
C.10  历史回顾与参考文献  512
参考文献  518
索引  543

下载