图书介绍
计算机系统结构-量化研究方法 第3版PDF|Epub|txt|kindle电子书版本网盘下载
- (美)John L.Hennessy,(美)David A.Patterson著;郑纬民等译 著
- 出版社: 北京:电子工业出版社
- ISBN:7505399160
- 出版时间:2004
- 标注页数:684页
- 文件大小:102MB
- 文件页数:720页
- 主题词:计算机体系结构-教材
PDF下载
下载说明
计算机系统结构-量化研究方法 第3版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
目录1
第1章 计算机设计基本原理1
1.1 简介1
1.2 计算方向的改变和计算机设计者的任务2
1.2.1 桌面电脑3
1.2.2 服务器3
1.2.3 嵌入式计算机4
1.2.4 计算机设计者的任务5
1.3 技术发展趋势7
1.3.1 集成电路中晶体管性能、连线和功耗的发展8
1.4 成本、价格及其发展趋势8
1.4.1 时间、产量、商品化和包装的影响9
1.4.2 集成电路的成本10
1.4.3 一个成本在系统中分布的实例13
1.4.4 成本与价格——它们为什么不同以及相差多少13
1.5 评价和报告计算机的性能16
1.5.1 评价性能16
1.5.2 选择程序评价机器性能17
1.5.3 基准测试程序套件18
1.5.4 性能评价报告21
1.5.5 性能的比较和总结22
1.6 计算机设计的量化准则26
1.6.1 加快经常性事件的速度26
1.6.2 Amdahl定律26
1.6.3 CPU性能公式28
1.7 综合:性能和性价比31
1.6.5 利用并行性31
1.6.4 局部性原理31
1.7.1 桌面计算机系统的性能和性价比32
1.7.2 事务处理服务器的性能和性价比33
1.7.3 嵌入式处理器的性能和性价比35
1.8 其他视角:功耗和效率的衡量37
1.9 谬误和易犯的错误38
1.10 结论43
1.11 历史回顾和参考文献44
1.11.1 第一台通用电子计算机44
1.11.2 重要的专用机器46
1.11.3 商业发展46
1.11.4 量化性能测试的发展:成功和失败47
参考文献48
习题49
第2章 指令集原理与实例58
2.1 指令集简介58
2.2 指令集系统结构的分类59
2.2.1 摘要:指令集系统结构分类62
2.3 内存寻址62
2.3.1 内存地址表示62
2.3.2 寻址模式63
2.3.3 位移量寻址模式64
2.3.4 立即数或直接寻址模式66
2.4 信号处理的寻址方式67
2.4.1 摘要:存储器寻址67
2.5 操作数的大小与类型68
2.6 媒体和信号处理中的操作数69
2.6.1 摘要:操作数的类型和大小70
2.7 指令集的操作71
2.8 媒体和信号处理中的操作71
2.8.1 摘要:指令集中的操作及媒体和信号处理中的操作74
2.9 控制流指令74
2.9.1 控制流指令的寻址方式74
2.9.2 条件转移的可选方案75
2.9.3 过程调用的可选方案76
2.9.4 摘要:控制流指令77
2.10 指令集的编码77
2.10.1 RISC中的精简代码79
2.10.2 摘要:指令集编码79
2.11 相关问题:编译器79
2.11.1 近代编译器的结构80
2.11.2 寄存器分配81
2.11.3 优化对性能的影响81
2.11.4 编译技术对系统结构设计者的决定所产生的影响81
2.11.5 系统结构设计者如何帮助编译器设计者83
2.11.6 编译器对多媒体指令的支持(或缺乏支持)84
2.11.7 摘要:编译器的角色85
2.12 综合:MIPS系统结构85
2.12.1 MIPS的寄存器86
2.12.2 MIPS的数据类型86
2.12.3 MIPS数据传输的寻址模式86
2.12.4 MIPS指令格式87
2.12.5 MIPS操作87
2.12.6 MIPS控制流指令88
2.12.7 MIPS的浮点数操作89
2.12.8 MIPS的效率91
2.13 其他视角:Trimedia TM32处理器91
2.14 谬误和易犯的错误95
2.15 结论97
2.16 历史回顾和参考文献99
2.16.1 堆栈系统结构99
2.16.2 计算机系统结构的定义99
2.16.3 高级语言计算机系统结构100
2.16.4 精简指令集计算机101
2.16.5 数字信号处理器历史简述103
2.16.6 桌面指令集对多媒体的支持104
2.16.7 摘要105
参考文献105
习题107
第3章 指令级并行及其动态开发113
3.1 指令级并行:概念及挑战113
3.1.1 指令级并行114
3.1.2 数据相关和数据冲突115
3.1.3 控制相关117
3.2 采用动态调度克服数据冲突119
3.2.1 动态调度思想119
3.2.2 用Tomasulo算法进行动态调度121
3.3 动态调度:算法及举例124
3.3.1 Tomasulo算法的细节126
3.3.2 Tomasulo算法:一个循环的例子128
3.4 采用动态硬件预测技术减少分支开销129
3.4.1 基本的分支预测和分支预测缓冲器130
3.4.2 相关分支预测器132
3.4.3 Tournament预测器:整体局部自适应预测器136
3.5 高性能指令传送机制138
3.5.1 分支目标缓冲器138
3.5.2 集成的指令预取部件141
3.5.3 返回地址预测器142
3.6 采用多发射获得更高的指令级并行度142
3.6.1 静态调度的超标量处理器143
3.6.2 静态调度的超标量MIPS处理器144
3.6.3 使用动态调度的多指令发射机制145
3.7 基于硬件的猜测技术149
3.7.1 使用猜测法的多指令发射155
3.7.2 采用猜测技术的机器要考虑的几个问题156
3.8.1 硬件模型158
3.8 指令级并行性限制研究158
3.8.2 窗口大小和最大发射数目的限制160
3.8.3 实际分支和分支预测的影响162
3.8.4 有限数目寄存器的影响164
3.8.5 非完美别名分析造成的影响165
3.9 实际处理器中的指令级并行性限制167
3.9.1 克服研究模型的限制170
3.10 综合:P6微结构171
3.10.1 Pentium Pro的性能173
3.10.2 PentiumⅢ与Pentium 4比较178
3.11 其他视角:线程级并行180
3.12 相关问题:使用指令级并行的数据通路开发线程级并行180
3.13 谬误和易犯的错误180
3.14 结论182
3.14.1 开发更多指令级并行性的实际限制183
3.15 历史回顾和参考文献184
3.15.1 IBM 360/91:里程碑式的计算机184
3.15.2 分支预测机制185
3.15.3 多发射处理器的发展185
3.15.4 指令级并行性研究和开发指令级并行的思想186
3.15.5 超越数据流的限制186
3.15.6 近期的一些高级微处理器186
参考文献187
习题191
4.1 开发指令级并行的基本编译技术200
4.1.1 基本流水线调度和循环展开200
第4章 用软件方法开发指令级并行200
4.1.2 循环展开和调度例子的小结203
4.1.3 在静态多发射处理器中使用循环展开和流水线调度206
4.2 静态分支预测207
4.3 静态多发射:VLIW方法208
4.3.1 基本VLIW方法209
4.4 支持指令级并行的高级编译器技术211
4.4.1 检测并提高循环级并行度211
4.4.2 软件流水:循环的展开217
4.4.3 全局指令调度219
4.5 编译时开发更多并行性的硬件支持224
4.5.1 条件执行指令224
4.5.2 带硬件支持的编译器猜测226
4.7 综合:Intel的IA-64系统结构和安腾处理器230
4.7.1 Intel的IA-64指令集系统结构230
4.6 相关问题:硬件猜测与软件猜测的比较230
4.7.2 安腾处理器235
4.8 其他视角:嵌入式和移动市场的指令级并行238
4.8.1 Trimedia TM32系统结构239
4.8.2 Transmeta Crusoe处理器241
4.9 缪误和易犯的错误244
4.10 结论245
4.11 历史回顾和参考文献246
4.11.1 多发射处理器的发展246
4.11.2 编译器技术与硬件对调度的支持247
4.11.3 EPIC和IA-64的发展247
参考文献248
习题249
5.1 简介257
第5章 存储器层次结构设计257
5.2 cache基本知识回顾259
5.2.1 cache性能回顾260
5.2.2 存储器层次结构的四个问题262
5.2.3 一个例子:Alpha 21264数据cache266
5.3 cache性能268
5.3.1 平均存储器访问时间和处理器性能270
5.3.2 缺失代价和乱序执行处理器272
5.3.3 提高cache的性能272
5.4 降低cache缺失代价273
5.4.1 第一个降低缺失代价的技术:多级cache274
5.4.2 第二个降低缺失代价的技术:关键字优先和提前重启动277
5.4.3 第三个降低缺失代价的技术:确定读缺失对写的优先级278
5.4.5 第五个降低缺失代价的技术:牺牲cache279
5.4.4 第四个降低缺失代价的技术:合并写缓冲区279
5.4.6 降低缺失代价技术小结280
5.5 降低cache缺失率280
5.5.1 第一个降低缺失率的技术:增加块容量283
5.5.2 第二个降低缺失率的技术:增加cache容量284
5.5.3 第三个降低缺失率的技术:增加相联度285
5.5.4 第四个降低缺失率的技术:路预测和伪相联cache286
5.5.5 第五个降低缺失率的技术:编译优化287
5.5.6 降低cache缺失率技术小结289
5.6 通过并行降低cache缺失代价或缺失率289
5.6.1 第一种降低缺失代价/缺失率的方法:用非阻塞cache减少cache缺失停顿289
5.6.2 第二种降低缺失代价/缺失率的方法:指令和数据硬件预取291
5.6.3 第三种降低缺失代价/缺失率的方法:编译控制预取292
5.6.4 通过并行降低cache缺失代价/缺失率小结294
5.7 减少命中时间295
5.7.1 第一个减少命中时间的技术:小而简单的cache295
5.7.2 第二个减少命中时间的技术:在cache索引过程中避免地址变换296
5.7.3 第三个减少命中时间的技术:流水线化cache访问297
5.7.4 第四个减少命中时间的技术:跟踪cache297
5.7.5 cache优化技术小结298
5.8 内存和提高内存性能的组织方式299
5.8.1 第一种提高内存带宽的技术:增大存储字长300
5.8.2 第二种提高内存带宽的技术:简单的多体交叉存储器300
5.8.3 第三种提高主存带宽的技术:独立存储体302
5.9 存储器技术302
5.9.1 DRAM技术302
5.9.4 如何提高标准DRAM芯片的性能304
5.9.3 嵌入式处理器存储器技术:只读存储器和闪存304
5.9.2 SRAM技术304
5.9.5 通过一种新的DRAM接口——RAMBUS——来提高存储器性能305
5.9.6 RAMBUS和DDR SDRAM的比较306
5.10 虚拟存储器306
5.10.1 关于存储器层次结构的四个问题308
5.10.2 快速地址转换技术309
5.10.3 选择页大小311
5.10.4 虚拟存储器和cache的小结311
5.11 虚拟存储器的保护和示例312
5.11.1 保护进程313
5.11.2 页式虚拟存储器示例:Alpha存储器管理和21264的TLB314
5.11.3 段式虚拟存储器示例:IntelPentium的保护模式316
5.11.4 小结:Alpha中的保护和IA-32保护的对比318
5.12 相关问题:存储器层次设计319
5.12.1 超标量CPU和cache端口数319
5.12.2 猜测执行和内存系统319
5.12.3 将指令cache与指令获取和解码机制相结合319
5.12.4 嵌入式计算机cache和实时性能的关系319
5.12.5 嵌入式计算机的功耗和cache的关系320
5.12.6 I/O和cache数据的一致性320
5.13 综合:Alpha 21264存储层次结构321
5.13.1 21264层次化存储结构的性能325
5.14 其他视角:Sony Playstation 2的动画引擎326
5.15 其他视角:Sun Fire 6800服务器329
5.16 谬误和易犯的错误332
5.17 结论337
5.18 历史回顾和参考文献339
参考文献341
习题344
第6章 多处理器和线程级并行353
6.1 简介353
6.1.1 并行系统结构的分类354
6.1.2 通信和存储器结构模型356
6.1.3 并行处理遇到的挑战359
6.2 应用领域的特征361
6.2.1 商业负载361
6.2.2 多道程序和操作系统工作负载362
6.2.3 科学/技术应用363
6.3.1 什么是多处理器的高速缓存一致性367
6.3 对称式共享存储器系统结构367
6.3.2 增强一致性的基本方案368
6.3.3 监听协议369
6.3.4 基本实现技术370
6.3.5 协议范例372
6.4 对称式共享存储器多处理器系统的性能375
6.4.1 商业负载的性能测试376
6.4.2 多道程序和操作系统工作负载的性能379
6.4.3 科学技术负载的性能381
6.4.4 小结:监听高速缓存方案的性能384
6.5 分布式共享存储器系统结构385
6.5.1 基于目录的高速缓存一致性协议:基础知识387
6.5.2 目录协议范例388
6.6 分布式共享存储多处理器系统的性能391
6.7.1 基本硬件原语396
6.7 同步396
6.7.2 用一致性实现锁397
6.7.3 同步性能遇到的问题399
6.7.4 大规模多处理器系统的同步机制402
6.8 存储器一致性模型介绍405
6.8.1 程序员的视角406
6.8.2 非严格一致性模型基础406
6.8.3 关于一致性模型的最后小结407
6.9 多线程:在单个处理器中开发线程级并行407
6.9.1 并发多线程:将线程级并行转化为指令级并行408
6.10 相关问题412
6.10.1 存储器系统问题412
6.10.2 用对虚拟存储器的支持来构造共享存储器414
6.10.3 并行处理器的性能度量415
6.11 综合:Sun的Wildfire原型416
6.11.1 Wildfire系统结构416
6.11.2 采用页复制和迁移来减少NUMA影响418
6.11.3 Wildfire的性能418
6.11.4 Wildfire的应用程序性能421
6.11.5 对Wildfire的总体评价425
6.12 其他视角:商用服务器上的多线程425
6.13 其他视角:嵌入式多处理器系统426
6.14 谬误和易犯的错误426
6.15 结论430
6.15.1 MPP结构的未来431
6.15.2 微处理器架构的未来432
6.15.3 演变、革新和计算机工业规范转变的大挑战433
6.16.1 SIMD的兴衰434
6.16 历史回顾和参考文献434
6.16.2 其他早期的试验435
6.16.3 并行处理中的大争论435
6.16.4 最新的进展和发展方向436
6.16.5 其他参考文献439
6.16.6 多线程和并发多线程440
参考文献440
习题445
第7章 存储系统453
7.1 简介453
7.1.1 I/O设备性能重要与否453
7.2.1 磁盘454
7.2 存储设备类型454
7.1.3 性能的重要性454
7.1.2 CPU性能重要与否454
7.2.2 磁盘的未来458
7.2.3 光盘460
7.2.4 磁带460
7.2.5 自动磁带库461
7.2.6 闪存461
7.3 总线——连接IO设备到CPU/存储器463
7.3.1 总线设计决策464
7.3.2 总线标准466
7.3.3 总线示例466
7.3.4 存储设备与CPU的接口467
7.3.5 CPU授权I/O操作468
7.4 可靠性、有效性和稳定性469
7.4.1 定义故障470
7.5 RAID:廉价/独立磁盘冗余阵列472
7.5.1 无冗余(RAID 0)473
7.5.2 镜像(RAID 1)473
7.5.3 位交错奇偶校验(RAID 3)473
7.5.4 块交错分布奇偶校验和分布式块交错奇偶校验(RAID 4和RAID 5)474
7.5.5 P+Q冗余(RAID 6)475
7.5.6 RAID小结475
7.6 实际系统中的差错和故障475
7.6.1 伯克利第三磁盘系统476
7.6.2 Tandem476
7.6.3 VAX477
7.6.4 FCC478
7.7 I/O性能评测479
7.7.1 吞吐率与响应时间480
7.7.2 基准程序中的响应时间与吞吐率482
7.8 Little队列理论482
7.9 存储性能和有效性基准测试程序489
7.9.1 事务处理基准测试程序489
7.9.2 SPEC系统级文件服务器(SFS)及网络基准测试程序490
7.9.3 基准测试程序可靠性和有效性实例492
7.10 相关问题494
7.10.1 DMA和虚拟存储器494
7.10.2 异步I/O和操作系统494
7.10.3 块服务器与文件管理器的对比495
7.10.5 交换机代替总线496
7.10.6 处理器的可靠性496
7.10.4 cache给操作系统带来的问题——灰色数据496
7.11 I/O系统设计497
7.11.1 例一:简单性价比设计498
7.11.2 例二:计算例一中的MTTF500
7.11.3 例三:计算例一中的响应时间501
7.11.4 例四:比较现实的系统设计和性价比评估502
7.11.5 例五:有效性设计503
7.12综合:EMCSymmetrix和Celerra505
7.12.1 EMCSymmetrix8000505
7.12.2 EMCCelerra500508
7.12.3 EMCSymmetrix和Celerra的性能和有效性508
7.13 其他视角:Sanyo VPC-SX500数码相机510
7.14 谬误和易犯的错误512
7.16.1 磁性存储516
7.15 结论516
7.16 历史回顾和参考文献516
7.16.2 RAID518
7.16.3 I/O总线和控制器519
参考文献519
练习522
第8章 互连网络与集群528
8.1 简介528
8.2 简单网络532
8.3 互连网络介质538
8.4 连接多台计算机540
8.4.1 共享介质与交换介质541
8.4.2 面向连接的通信和无连接的通信543
8.4.3 路由:传送报文544
8.4.4 拥塞控制545
8.5 网络拓扑结构546
8.5.1 集中式交换机547
8.5.2 分布式交换机548
8.6 商用互连网络的几个实际问题551
8.6.1 连通性552
8.6.2 网络接入计算机552
8.6.3 标准化:跨企业的交互552
8.6.4 报文容错553
8.6.5 节点容错553
8.7 互连网络举例554
5.7.1 以太网:局域网555
8.7.2 存储区域网:Infiniband557
8.7.4 小结558
8.7.3 广域网:ATM558
8.8 网际互连559
8.9 互连网络的几个相关问题561
8.9.1 密度优化处理器和SPEC优化处理器561
8.9.2 智能交换机与智能接口卡563
8.9.3 对网络的保护和用户对网络的访问563
8.9.4 高效的存储器层次结构接口和互连网络564
8.9.5 经过计算优化的处理器和接收方的开销564
8.10 集群565
8.10.1 集群的性能挑战565
8.10.2 集群可靠性和可扩展性的优势565
8.10.3 集群造价的优势和劣势565
8.10.5 集群的普及性566
8.10.4 两全其美的方案566
8.11 集群设计568
8.11.1 例一:采用本地磁盘存储器的集群硬件的不同方案及其成本569
8.11.2 例二:用存储区域网代替本地磁盘572
8.11.3 例三:将其他成本考虑进去573
8.11.4 例四:集群进行事务处理的代价和性能575
8.11.5 小结576
8.12 综合:Google集群介绍577
8.12.1 Google底层组织结构的描述578
8.12.2 性能579
8.12.3 开销581
8.12.4 可靠性581
8.13.1 无线网络背景介绍582
8.13 其他视角:手机内部的相关技术582
8.13.2 蜂窝电话583
8.13.3 手机标准和演进585
8.14 谬误和易犯的错误586
8.15 结论588
8.16 历史回顾和参考文献588
8.16.1 广域网588
8.16.2 局域网589
8.16.3 大规模并行处理器589
8.16.4 集群590
8.16.5 系统或存储区域网590
参考文献591
习题592
附录A 流水线基础和中级概念597
附录B 部分习题答案656