计算机科学丛书 当四 原书第4版 计算机组成与设计 硬件/软件接口 (美)David A.Patterson John L,Hennessy著章德昌见晓慢安建修零保 Computer Organization and Design The Hardware Software Interface foenh Editoa COMPUTER ORGANIZATION AND DESIGN THE HARDWARE /SOFTWARE INTIRFACE DAVIDA FATTERSON JOHN L HINNESSY M 别光盘 机城工立出板杜 Cnno Mochne Piess
目录 Computer Organization and Design:The Hardware/Software Interface,4E 出版者的话 2.4有符号和无符号数…50 译者序 2.5计算机中指令的表示…54 前言 2.6逻辑操作 4… 59 2.7决策指令 61 第】章计算机概要与技术…1 2.7.1循环… 62 1,1引言…1 2.7.2ca3e/switch语句…64 1.1.1计算应用的分类及其特性…2 2.8计算机硬件对过程的支持…65 1.1.2你能从本书学到什么…3 2.8.1使用更多的寄存器…………66 1.2程序概念人门… 4 2.8.2嵌套过程…68 1.3硬件概念人门……7 2.8.3在栈中为新数据分配空间 69 1.3.1剂析鼠标……8 2.8.4在堆中为新数据分配空间 70 1.3.2显示器…8 2.9人机交互…72 1.3.3打开机箱 9 ·2.10MS中32位立即数和地址的寻址…75 1.3.4数据安全…12 2.10.132位立即数… 75 1.3.5与其他计算机通信…13 2.10.2分支和跳转中的寻址…76 1.3.6处理器和存储器制造技术 ……14 2.10.3MIPS寻址模式总结 78 1.4性能…15 2.10.4机器语言解码 79 1.4.1性能的定义…15 2.11并行与指令:同步 81 1.4.2性能的测量…17 2.12翻译并执行程序 …83 1.4.3CPU性能及其因素…18 2.12.1编译器…… 84 1.4.4指令的性能…19 2.12.2汇编器… 84 1.4.5经典的CPU性能公式…19 2.12.3链接器… 85 1.5功耗墙…21 2.12.4加载器…… 87 1.6沧海巨变:从单处理器向多处理器 2.12.5动态链接库… 87 转变…… 23 2.12.6启动一个Java程序 ……88 1.7实例:制造以及AMD Opteron X4基准·25 2.13以一个C排序程序为例 ”4”4。 89 1.7.1 SPEC CPU基准测试程序·27 2.13.13wap过程…89 1.7.2SPEC功耗基准测试程序…28 2.13.2s0xt过程…90 1.8谬误与陷肼…… 29 2.14数组与指针… 95 1.9本章小结 …31 2.14.1用数组实现clear 0…4g 96 1.10拓展阅读……… 32 2.14.2用指针实现clear… 96 1.11练习题…… 32 2.14.3比较两个版本的clear …97 第2章指令:计算机的语言… 42 2.15高级内容:编译C语言和解释 2.】引言…42 Jav阳语言…98 2.2计算机硬件的操作… 43 2.16实例:ARM指令集 …98 2.3计算机硬件的操作数… 46 2.16.1寻址模式…99 2.3.1存储器操作数… 47 2.16.2比较和条件分支 ……100 2.3.2常数或立即数操作数… 49 2.16.3ARM的特色…100 PDG
Ⅻ 2.17实例:x86指令集…101 3.11练习题 ………4… 173 2.17.1 intel x86的改进 …101 第4章处理器…… 182 2.17.2x86寄存器和数据寻址模式…103 4.1引言…… 182 2.17.3x86整数操作 …104 4.1.1一个基本的MIPS实现…183 2.17.4x86指令编码… 106 4.1.2实现方式概述 …183 2.17.5x86总结…107 4.2逻辑设计惯例…… 185 2.18谬误与陷阱… 107 4.3建立数据通路 44444t… 187 2.19本章小结… 108 4.4一个简单的实现机制 192 2.20拓展阅读…… 110 4.4.1ALU控制… 192 2.21练习题 110 44.2主控制单元的设计………194 第3章计算机的算术运算…135 4.4.3数据通路的操作…… 197 3.1引言… 135 4.4.4控制的结束…199 3.2加法和减法… 135 4.4.5为什么不使用单周期实现方式…201 3.2.1多媒体算术运算 …… 137 4.5流水线概述 202 3.2.2小结… 138 4.5.1面向流水线的指令集设计…205 3.3乘法… 139 4.5.2流水线冒险…205 3.3.1顺序的乘法算法和硬件… 139 4.5.3对流水线概述的小结… 210 3.3.2有符号乘法… 141 4.6流水线数据通路及其控制… 211 3.3.3更快速的乘法 142 4,6.1图形化表示的流水线… 219 3.3.4MPS中的乘法 142 4.6.2流水线控制…222 3.3.5小结… 142 4.7数据冒险:转发与阻塞…225 3.4除法… 143 4.8控制冒险…234 3.4.1除法算法及其硬件结构… 143 4.8.1假定分支不发生…234 3.4.2有符号除法 145 4.8.2缩短分支的延迟 ………,235 3.4.3更快速的除法 …146 4.8.3动态分支预测 …237 3.4.4MIPS中的除法…146 4.8.4流水线小结 …239 3.4.5小结… 147 4.9异常…240 3.5浮点运算… 148 4.9.1异常在M体系结构中的处理…241 3.5.1浮点表示… 149 4.9.2在流水线实现中的异常…242 3.5.2浮点加法… 152 4.10并行和高级指令级并行 …245 3.5.3浮点乘法 44, 154 4.10.1推测的概念…… 246 3.5.4MIPS中的浮点指令 。…004004。 157 4.10.2静态多发射处理器 …247 3.5.5算术精确性 162 4.10.3动态多发射处理器 250 3.5.6小结… 164 4.11实例:AMD Opteron X4(Barcelona) 3.6并行性和计算机算术:结合律… 165 流水线…253 3.7实例:x86的浮点…165 4.12 高级主题:通过硬件设计语言描述 3.7.1x86浮点体系结构…166 和建模流水线来介绍数字设计以及 3.7.2 Intel SIMD流扩展2(SSE2) 更多流水线示例… 255 浮点体系结构 …167 4.13谬误与陷阱… 255 3.8谬误与陷阱… 168 4.14本章小结 …256 3.9本章小结… 170 4.15拓展阅读 4004.04。。00。年 257 3.10拓展阅读 …172 4.16练习题 257 PDG
N 第5章大容量和高速度:开发存储器 5.7.1一个简单的cache……330 层次结构……280 5.7.2有限状态机……331 5.1 引言…280 5.7.3一个简单的cache控制器的 5.2 cache的基本原理…283 有限状态机…333 5.2.1 cache访问…285 5.8并行与存储器层次结构:cache 5.2.2 cache缺失处理…· 288 一致性……………334 5.2.3写操作处理……… 289 5.8.1实现一致性的基本方案…335 5.2.4-个cache的例子:内置 5.8.2监听协议…335 FastMATH处理器…,290 5.9高级内容:实现cache控制器…336 5.2.5设计支持cache的存储系统…292 5.10实例:AMD Opteron X4(Barcelona)和 5.2.6小结…… 294 Intel Nehalem的存储器层次结构…337 5.3 cache性能的评估和改进 …295 5.10.】Nehalem和Opteron的存储器 5.3.1通过更灵活地放置块来减少 层次结构…337 cache缺失……297 5.10.2减少缺失代价的技术 …339 5.3.2在cache中查找一个块… 300 5.11谬误和陷阱… 340 5.3.3替换块的选择…302 5.12本章小结…342 5.3.4使用多级cache结构减少缺失 5.13拓展阅读 ……343 代价……302 5.14练习题…343 5.3.5小结…305 第6章存储器和其他/0主题…355 5.4虚拟存储器… 305 61引言…355 5.4.1页的存放和查找…308 6.2可信度、可靠性和可用性…357 5.4.2缺页… 309 6.3磁盘存储器…359 5.4.3关于写……3l2 6.4.快闪式存储器…362 5.4.4加快地址转换:TLB…312 6.5连接处理器、内存以及/0设备…363 5.4.5集成虚拟存储器、TmB和cache…315 6.5.1互联基础…364 5.4.6虚拟存储器中的保护…317 6.5.2x86处理器的/0互联… 365 5.4.7处理TLB缺失和缺页… 318 6.6为处理器、内存和操作系统提供 5.4.8小结…322 /0设备接口…366 5.5存储器层次结构的一般架构… 323 6.6.1给/0设备发送指令…367 5.5.1问题1:一个块可以被放在何处…323 6.6.2与处理器通信…368 5.5.2问题2:如何找到一个块… 324 6.6.3中断优先级… 369 5.5.3问题3:当cache缺失时替换 6.6.4在设备与内存之间传输数据…370 哪一块… 325 6.6.5直接存储器访问和内存系统…371 5.5.4问题4:写操作如何处理… 325 6.7V0性能度量:磁盘和文件系统 5.5.53C:一种理解存储器层次结构 的例子…372 行为的直观模型…326 6.7.1事务处理/0基准程序…372 5.6虚拟机… 328 6.7.2文件系统和Wb/0的 5.6.1虚拟机监视器的必备条件…329 基准程序……373 5.6.2指令集系统结构(缺乏)对 6.8设计/0系统…373 虚拟机的支持…329 6.9并行性与V0:廉价磁盘冗余阵列…374 5.6.3保护和指令集系统结构…329 6.9.1无冗余(RAD0) …376 5.7使用有限状态机来控制简单的cache…330 6.9.2镜像(RAD1)...376 PDG
W 6.9.3错误检测和纠错码(RAID2)·376 7.15练习题…… 429 6.9.4位交叉奇偶校验(RAD3)…376 附录A图形和计算GPU… 439 6.9.5块交叉奇偶校验(RAID4)…376 A.1引言 … 439 6.9.6分布式块交叉奇偶校验 A.1.1GPU发展简史 …439 (RAID 5) …377 A.1.2异构系统 …440 6.9.7P+Q冗余(RAID6) …378 A.1.3GPU发展成了可扩展的 6.9.8RAID小结…378 并行处理器…440 6.10实例:Sun Fire x4150服务器…379 A.1.4为什么使用CUDA和GPU 6.11 高级主题:网络…383 计算…440 6.12谬误与陷阱………383 A.1.5GPU统一了图形和计算 ……441 6.13本章小结 ……386 A1.6GPU可视化计算的应用…441 6.14拓展阅读 …387 A2GPU系统架构…441 6.15练习题 387 A.2.1异构CPU-GPU系统架构…442 第7章多核、多处理器和集群… 394 A.2.2GPU接口和驱动… 443 7.1引言…394 A.2.3图形逻辑流水线 ……443 7.2创建并行处理程序的难点……396 A2.4将图形流水线映射到统一的 7.3共享存储多处理器…………398 GPU处理器…443 7.4集群和其他消息传递多处理器…400 A.2.5基本的统一GPU结构 444 7.5硬件多线程… 403 A.3可编程GPU ..... 445 7.6SISD、MIMD、SIMD、SPMD和 A3.1为实时图形编程… 446 向量机…………404 A3.2逻辑图形流水线 888848888e4。e。e04 446 7.6.1在x86中的SMD:多媒体扩展…405 A3.3图形渲染程序 ………447 7.6.2向量机……406 A.3.4像素渲染示例 447 7.6.3向量与标量的对比…407 A.3.5并行计算应用编程 448 7.6.4向量与多媒体扩展的对比…408 A.3.6 使用CUDA进行可扩展并行 7.7图形处理单元简介 ………408 编程…449 7.7.1 NVIDIA GPU体系结构简介 …410 A.3.7一些限制 453 7.7.2深入理解GPU…411 A3.8体系结构隐含的问题…453 7.8多处理器网络拓扑简介…412 A.4多线程的多处理器架构 …454 7.9多处理器基准测试程序… 415 A4.1大规模多线程…454 7.10 Roofline:一个简单的性能模型 417 A.4.2多处理器体系结构 …455 7.10.1 Roofline模型 418 A.4.3单指令多线程(SMT) …456 7.10.2两代0 pteron的比较… 419 A.4.4 SIMT warp执行和分支 457 7.11实例:使用屋顶线模型评估四种 A.4.5管理线程和线程块 ……457 多核处理器……422 A4.6线程指令…458 7.11.14个多核系统… 422 A4.7指令集架构(ISA) 458 7.11.2稀疏矩阵… 424 A.4.8流处理器(SP) …… 461 7.11.3结构化网格…425 A.4.9特殊功能单元(SFU) …461 7.11.4生产率… 426 A.4.10与其他多处理器的比较 **……461 7.12谬误与陷阱… 427 A.4.11 多线程多处理器总结 462 7.13本章小结 428 A5并行存储系统… 462 7.14拓展阅读 429 A.5.1 DRAM的考虑 ……462 PDG