计算机体系结构量化研究方法第五版中文版PDF免费下载
简介:《计算机体系结构:量化研究方法(第5版)》可作为高等院校计算机专业本科生或研究生教材,也可作为从事计算机体系结构或计算机系统设计的工程技术人员的参考书。
计算机体系结构:量化研究方法(第5版)堪称计算机系统结构学科的“圣经”,是计算机设计领域学生和从业者的必读经典。在计算机体系结构的变革时期,作者在这一版中深入介绍了两项新内容:新平台(个人移动设备和仓库级计算机)以及新体系结构(多核和GPU),同时还秉承了前几版的做法,希望通过探讨如何在成本、性能、能耗之间实现平衡,并重点关注一些优秀的工程设计实践,从而揭去计算机体系结构的神秘面纱。
第1章量化设计与分析基础
1.1引言
1.2计算机的分类
1.2.1个人移动设备
1.2.2桌面计算
1.2.3服务器
1.2.4集群/仓库级计算机
1.2.5嵌入式计算机
1.2.6并行度与并行体系结构的分类
1.3计算机体系结构的定义
1.3.1指令集体系结构:计算机体系结构的近距离审视
1.3.2真正的计算机体系结构:设计满足目标和功能需求的组成和硬件
1.4技术趋势
1.4.1性能趋势:带宽胜过延迟
1.4.2晶体管性能与连线的发展
1.5集成电路中的功率和能耗趋势
1.5.1功率和能耗:系统观点
1.5.2微处理器内部的能耗和功率
1.6成本趋势
1.6.1时间、产量和大众化的影响
1.6.2集成电路的成本
1.6.3成本与价格
1.6.4制造成本与运行成本
1.7可信任度
1.8性能的测量、报告和汇总
1.8.1基准测试
1.8.2报告性能测试结果
1.8.3性能结果汇总
1.9计算机设计的量化原理
1.9.1充分利用并行
1.9.2局域性原理
1.9.3重点关注常见情形
1.9.4Amdahl定律
1.9.5处理器性能公式
1.10融会贯通:性能、价格和功耗
1.11谬论与易犯错误
1.12结语
1.13历史回顾与参考文献
第2章存储器层次结构设计
2.1引言
2.2缓存性能的10种高级优化方法
2.2.1第一种优化:小而简单的第一级缓存,用以缩短命中时间、降低功率
2.2.2第二种优化:采用路预测以缩短命中时间
2.2.3第三种优化:实现缓存访问的流水化,以提高缓存带宽
2.2.4第四种优化:采用无阻塞缓存,以提高缓存带宽
2.2.5第五种优化:采用多种缓存以提高缓存带宽
2.2.6第六种优化:关键字优先和提前重启动以降低缺失代价
2.2.7第七种优化:合并写缓冲区以降低缺失代价
2.2.8第八种优化:采用编译器优化以降低缺失率
2.2.9第九种优化:对指令和数据进行硬件预取,以降低缺失代价或缺失率
2.2.10第十种优化:用编译器控制预取,以降低缺失代价或缺失率
2.2.11缓存优化小结
2.3存储器技术与优化
2.3.1SRAM技术
2.3.2DRAM技术
2.3.3提高DRAM芯片内部的存储器性能
2.3.4降低SDRAM中的功耗
2.3.5闪存
2.3.6提高存储器系统的可靠性
2.4保护:虚拟存储器和虚拟机
2.4.1通过虚拟存储器提供保护
2.4.2通过虚拟机提供保护
2.4.3对虚拟机监视器的要求
2.4.4虚拟机(缺少)的指令集体系结构支持
2.4.5虚拟机对虚拟存储器和I/O的影响
2.4.6VMM实例:Xen虚拟机
2.5交叉问题:存储器层次结构的设计
2.5.1保护和指令集体系结构
2.5.2缓存数据的一致性
2.6融会贯通:ARM Cortex-A8和Intel Core i7中的存储器层次结构
2.6.1ARM Cortex-A8
2.6.2Intel Core i7
2.7谬论与易犯错误
2.8结语:展望
2.9历史回顾与参考文献
第3章指令级并行及其开发
3.1指令级并行:概念与挑战
3.1.1什么是指令级并行
3.1.2数据相关与冒险
3.1.3控制相关
3.2揭示ILP的基本编译器技术
3.2.1基本流水线调度和循环展开
3.2.2循环展开与调度小结
3.3用高级分支预测降低分支成本
3.3.1竞赛预测器:局部预测器与全局预测器的自适应联合
3.3.2Intel Core i7分支预测器
3.4用动态调度克服数据冒险
3.4.1动态调度:思想
3.4.2使用Tomasulo算法进行动态调度
3.5动态调度:示例和算法
3.5.1Tomasulo算法:细节
3.5.2Tomasulo算法:基于循环的示例
3.6基于硬件的推测
3.7以多发射和静态调度来开发ILP
3.8以动态调度、多发射和推测来开发ILP
3.9用于指令传送和推测的高级技术
3.9.1提高指令提取带宽
3.9.2推测:实现问题与扩展
3.10ILP局限性的研究
3.10.1硬件模型
3.10.2可实现处理器上ILP的局限性
3.10.3超越本研究的局限
3.11交叉问题:ILP方法与存储器系统
3.11.1硬件推测与软件推测
3.11.2推测执行与存储器系统
3.12多线程:开发线程级并行提高单处理器吞吐量
3.12.1细粒度多线程在Sun T1上的效果
3.12.2同时多线程在超标量处理器上的效果
3.13融会贯通:Intel Core i7和ARMCortex-A8
3.13.1ARM Cortex-A8
3.13.2Intel Core i7
3.14谬论与易犯错误
3.15结语:前路何方
3.16历史回顾与参考文献
第4章向量、SIMD和GPU体系结构中的数据级并行
4.1引言
4.2向量体系结构
4.2.1VMIPS
4.2.2向量处理器如何工作:一个示例
4.2.3向量执行时间
4.2.4多条车道:每个时钟周期超过一个元素
4.2.5向量长度寄存器:处理不等于64的循环
4.2.6向量遮罩寄存器:处理向量循环中的IF语句
4.2.7内存组:为向量载入/存储单元提供带宽
4.2.8步幅:处理向量体系结构中的多维数组
4.2.9集中-分散:在向量体系结构中处理稀疏矩阵
4.2.10向量体系结构编程
4.3SIMD指令集多媒体扩展
4.3.1多媒体SIMD体系结构编程
4.3.2Roofline可视性能模型
4.4图形处理器
4.4.1GPU编程
4.4.2NVIDIA GPU计算结构
4.4.3NVIDA GPU指令集体系结构
4.4.4GPU中的条件分支
4.4.5NVIDIA GPU存储器结构
4.4.6Fermi GPU体系结构中的创新
4.4.7向量体系结构与GPU的相似与不同
4.4.8多媒体SIMD计算机与GPU之间的相似与不同
4.4.9小结
4.5检测与增强循环强并行
4.5.1查找相关
4.5.2消除相关计算
4.6交叉问题
4.6.1能耗与DLP:慢而宽与快而窄
4.6.2分组存储器和图形存储器
4.6.3步幅访问和TLB缺失
4.7融会贯通:移动与服务器GPU、Tesla与Core i7
4.8谬论与易犯错误
4.9结语
4.10历史回顾与参考文献
第5章线程级并行
5.1引言
5.1.1多处理器体系结构:问题与方法
5.1.2并行处理的挑战
5.2集中式共享存储器体系结构
5.2.1什么是多处理器缓存一致性
5.2.2一致性的基本实现方案
5.2.3监听一致性协议
5.2.4基本实现技术
5.2.5示例协议
5.2.6基本一致性协议的扩展
5.2.7对称共享存储器多处理器与监听协议的局限性
5.2.8实施监听缓存一致性
5.3对称共享存储器多处理器的性能
5.3.1商业工作负载
5.3.2商业工作负载的性能测量
5.3.3多重编程和操作系统工作负载
5.3.4多重编程和操作系统工作负载的性能
5.4分布式共享存储器和目录式一致性
5.4.1目录式缓存一致性协议:基础知识
5.4.2目录式协议举例
5.5同步:基础知识
5.5.1基本硬件原语
5.5.2使用一致性实现锁
5.6存储器连贯性模型:简介
5.6.1程序员的观点
5.6.2宽松连贯性模型:基础知识
5.6.3关于连贯性模型的最后说明
5.7交叉问题
5.7.1编译器优化与连贯性模型
5.7.2利用推测来隐藏严格连贯性模型中的延迟
5.7.3包含性及其实现
5.7.4利用多重处理和多线程的性能增益
5.8融会贯通:多核处理器及其性能
5.9谬论与易犯错误
5.10结语
5.11历史回顾与参考文献
第6章以仓库级计算机开发请求级、数据级并行
6.1引言
6.2仓库级计算机的编程模型与工作负载
6.3仓库级计算机的计算机体系结构
6.3.1存储
6.3.2阵列交换机
6.3.3WSC存储器层次结构
6.4仓库级计算机的物理基础设施与成本
6.4.1测量WSC的效率
6.4.2WSC的成本
6.5云计算:公用计算的回报
6.6交叉问题
6.6.1成为瓶颈的WSC网络
6.6.2在服务器内部高效利用能量
6.7融会贯通:Google仓库级计算机
6.7.1集装箱
6.7.2Google WSC中的冷却与供电
6.7.3Google WSC中的服务器
6.7.4Google WSC中的联网
6.7.5Google WSC的监控与修复
6.7.6小结
6.8谬论与易犯错误
6.9结语
6.10历史回顾与参考文献
附录A指令集基本原理
A.1引言
A.2指令集体系结构的分类
A.3存储器寻址
A.4操作数的类型与大小
A.5指令集中的操作
A.6控制流指令
A.7指令集编码
A.8交叉问题:编译器的角色
A.9融会贯通:MIPS体系结构
A.10谬论和易犯错误
A.11结语
A.12历史回顾与参考文献
附录B存储器层次结构回顾
B.1引言
B.2缓存性能
B.36种基本的缓存优化
B.4虚拟存储器
B.5虚拟存储器的保护与示例
B.6谬论与易犯错误
B.7结语
B.8历史回顾与参考文献
附录C流水线:基础与中级概念
C.1引言
C.2流水化的主要阻碍——流水线冒险
C.3如何实现流水化
C.4妨碍流水线实现的难题
C.5扩展MIPS流水线,以处理多周期操作
C.6融会贯通:MIPS R4000流水线
C.7交叉问题
C.8谬论与易犯错误
C.9结语
C.10历史回顾与参考文献
参考文献
索引