编辑推荐
《计算机体系结构:量化研究方法(英文版·第5版)》特点:
更新相关内容以覆盖移动计算变革,并强调当今体系结构重要的两个主题:存储器层次结构和各种并行技术。
每章中的"Putting It All Together"小节关注了业界的各种技术,包括ARM Cortex-A8、Intel Core i7、NVIDIAGTX-280和GTX-480 GPU,以及一种Google仓库级计算机。
每章都设计了常规主题:能力、性能、成本、可依赖性、保护、编程模型和新趋势。
书中包括3个附录,另外8个附录可以在原出版社网站在线得到。
每章后都设置了由工业界和学术界专家提供的经过更新的案例研究,以及与之配套的全新练习题。
内容简介
《计算机体系结构:量化研究方法(英文版·第5版)》堪称计算机系统结构学科的“圣经”,是计算机设计领域学生和实践者的必读经典。本书系统地介绍了计算机系统的设计基础、存储器层次结构设计、指令级并行及其开发、数据级并行、GPU体系结构、线程级并行和仓库级计算机等。
现今计算机界处于变革之中:移动客户端和云计算正在成为驱动程序设计和硬件创新的主流范型。因此在这个版中,作者考虑到这个巨大的变化,重点关注了新的平台(个人移动设备和仓库级计算机)和新的体系结构(多核和GPU),不仅介绍了移动计算和云计算等新内容,还讨论了成本、性能、功耗、可靠性等设计要素。每章都有两个真实例子,一个来源于手机,另一个来源于数据中心,以反映计算机界正在发生的革命性变革。
本书内容丰富,既介绍了当今计算机体系结构的研究成果,也引述了许多计算机系统设计开发方面的实践经验。另外,各章结尾还附有大量的习题和参考文献。本书既可以作为高等院校计算机专业高年级本科生和研究生学习“计算机体系结构”课程的教材或参考书,也可供与计算机相关的专业人士学习参考。
作者简介
John L.Hennessy,斯坦福大学校长,IEEE和ACM会士,美国国家工程研究院院士及美国科学艺术研究院院士。Hennessy教授因为在RISC技术方面做出了突出贡献而荣获2001年的Eckert-Mauchly奖章,他也是2001年Seymour Cray计算机工程奖得主,并且和本书另外一位作者David A. Patterson分享了2000年John von Neumann奖。
David A. Patterson 加州大学伯克利分校计算机科学系主任、教授,美国国家工程研究院院士,IEEE和ACM会士,曾因成功的启发式教育方法被IEEE授予James H. Mulligan,Jr.教育奖章。他因为对RISC技术的贡献而荣获1995年IEEE技术成就奖,而在RAID技术方面的成就为他赢得了1999年IEEE Reynold Johnson4R息存储奖。2000年他John L. Hennessy分享了John yon Neumann奖。
精彩书评
“本书之所以成为永恒的经典,是因为它的每一次再版都不仅仅是更新补充,而是一次全面的修订,对这个激动人心且快速变化领域给出了及时的信息和独到的解读。对于我来说,即使已有二十多年的从业经历,再次阅读本书仍自觉学无止境,感佩于两位卓越大师的渊博学识和深厚功底。”
——Luiz Andre Barroso,Google公司
目录
Foreword
Preface
Acknowledgments
Chapter 1 Fundamentals of Quantitative Design and Analysis
1.1 Introduction
1.2 Classes of Computers
1.3 Defining Computer Architecture
1.4 Trends in Technology
1.5 Trends in Power and Energy in Integrated Circuits
1.6 Trends in Cost
1.7 Dependability
1.8 Measuring, Reporting, and Summarizing Performance
1.9 Quantitative Principles of Computer Design
1.10 Putting It All Together: Performance, Price, and Power
1.11 Fallacies and Pitfalls
1.12 Concluding Remarks
1.13 Historical Perspectives and References Case Studies and Exercises by Diana Franklin
Chapter 2 Memory Hierarchy Design
2.1 Introduction
2.2 Ten Advanced Optimizations of Cache Performance
2.3 Memory Technology and Optimizations
2.4 Protection: Virtual Memory and Virtual Machines
2.5 Crosscutting Issues: The Design of Memory Hierarchies
2.6 Putting It All Together: Memory Hierachies in the ARM Cortex-AS and Intel Core i7
2.7 Fallacies and Pitfalls
2.8 Concluding Remarks: Looking Ahead
2.9 Historical Perspective and References Case Studies and Exercises by Norman P. Jouppi, Naveen Muralimanohar, and Sheng Li
Chapter 3 nstruction-Level Parallelism and Its Exploitation
3.1 Instruction-Level Parallelism: Concepts and Challenges
3.2 Basic Compiler Techniques for Exposing ILP
3.3 Reducing Branch Costs with Advanced Branch Prediction
3.4 Overcoming Data Hazards with Dynamic Scheduling
3.5 Dynamic Scheduling: Examples and the Algorithm
3.6 Hardware-Based Speculation
3.7 Exploiting ILP Using Multiple Issue and Static Scheduling
3.8 Exploiting ILP Using Dynamic Scheduling, Multiple Issue, and Speculation
3.9 Advanced Techniques for Instruction Delivery and Speculation
3.10 Studies of the Limitations oflLP
3.11 Cross-Cutting Issues: ILP Approaches and the Memory System
3.12 Multithreading: Exploiting Thread-Level Parallelism to Improve Uniprocessor Throughput
3.13 Putting It All Together: The Intel Core i7 and ARM Cortex-AS
3.14 Fallacies and Pitfalls
3.15 Concluding Remarks: What's Ahead?
3.16 Historical Perspective and References Case Studies and Exercises by Jason D. Bakos and Robert R Colwell
Chapter4 Data-Level Parallelism in Vector, SIMD, and GPU Architectures
4.1 Introduction
4.2 Vector Architecture
4.3 SIMD Instruction Set Extensions for Multimedia
4.4 Graphics Processing Units
4.5 Detecting and Enhancing Loop-Level Parallelism
4.6 Crosscutting Issues
4.7 Putting It All Together: Mobile versus Server GPUS and Tesla versus Core i7
4.8 Fallacies and Pitfalls
4.9 Concluding Remarks
4.10 Historical Perspective and References Case Study and Exercises by Jason D. Bakos
Chapter 5 Thread-Level Parallelism
5.1 Introduction
5.2 Centralized Shared-Memory Architectures
5.3 Performance of Symmetric Shared-Memory Multiprocessors
……
Chapter6 Warehouse-Scale Computers to Exploit Request-Level and Data-Level Parallelism
Appendix A Instruction Set Principles
Appendix B Review of Memory Hierarchy
Appendix C Pipelining: Basic and Intermediate Concepts
精彩书摘
The pressure of both a fast clock cycle and power limitations encourages limited size for first-level caches. Similarly, use of lower levels of associativity can reduce both hit time and power, although such trade-offs are more complex than those involving size.
The critical timing path in a cache hit is the three-step process of addressing the tag memory using the index portion of the address, comparing the read tag value to the address, and setting the multiplexor to choose the correct data item if the cache is set associative. Direct-mapped caches can overlap the tag check with the transmission of the data, effectively reducing hit time. Furthermore, lower levels of associativity will usually reduce power because fewer cache lines must be accessed.
Although the total amount of on-chip cache has increased dramatically with new generations of microprocessors, due to the clock rate impact arising from a larger L1 cache, the size of the L1 caches has recently increased either slightly or not at all. In many recent processors, designers have opted for more associativity rather than larger caches. An additional consideration in choosing the associativity is the possibility of eliminating address aliases; we discuss this shortly.
One approach to determining the impact on hit time and power consumption in advance of building a chip is to use CAD tools. CACTI is a program to estimate the access time and energy consumption of alternative cache structures on CMOS microprocessors within 10% of more detailed CAD tools. For a given minimum feature size, CACTI estimates the hit time of caches as cache size varies, associativity, number of read/write ports, and more complex parameters. Figure 2.3 shows the estimated impact on hit time as cache size and associativity are varied.
……
前言/序言
《计算机体系结构:量化研究方法》(英文版·第5版)图书简介 《计算机体系结构:量化研究方法》(英文版·第5版)是一本深入剖析现代计算机系统设计核心原理的权威著作。本书不仅为读者提供了理解计算机硬件如何工作的坚实基础,更通过其独特且极其重要的“量化研究方法”,教会读者如何以严谨的数据驱动方式来评估和改进计算机体系结构。这是一部面向工程师、研究人员和高级计算机科学专业学生的经典之作,它不仅仅是一本书,更是一种思考和解决问题的框架。 本书的第五版在继承前几版精华的基础上,紧密结合了当前计算机体系结构领域的最新发展趋势和前沿技术。作者们以其深厚的学术功底和丰富的实践经验,将复杂的概念化繁为简,并通过大量的案例研究和详实的实验数据,引导读者深入理解现代处理器、内存系统、互连网络以及存储系统等关键组成部分的性能权衡与优化策略。 核心内容概览: 1. 量化分析的基石: 本书的标题“量化研究方法”并非虚设,而是贯穿全书的核心思想。作者们强调,任何关于计算机体系结构的决策都应建立在扎实的定量分析之上。这意味着,在设计和评估过程中,不能仅凭直觉或经验,而必须依赖于性能测量、模拟和统计分析。本书详细介绍了各种量化工具和技术,包括性能计数器、性能分析器、指令集模拟器(如gem5)以及系统级性能建模。读者将学会如何设计合理的基准测试(benchmarks),收集有意义的性能数据,并从中提炼出关键的性能瓶颈。这种方法论训练了读者具备独立分析和解决实际问题的能力,使其能够为复杂的设计挑战找到最优解。 2. 指令集体系结构(ISA)与处理器设计: 作为计算机体系结构的起点,本书深入探讨了指令集体系结构(ISA)的设计原则及其对处理器性能的影响。它详细介绍了RISC(精简指令集计算机)和CISC(复杂指令集计算机)的演变,并重点分析了现代主流ISA(如x86、ARM)的设计理念。在此基础上,本书将目光转向处理器内部的设计,详细阐述了流水线(pipelining)技术,包括其基本原理、冲突(hazards)的检测与解决(如数据冒险、控制冒险、结构冒险)、超标量(superscalar)执行、乱序执行(out-of-order execution)以及分支预测(branch prediction)等复杂技术。读者将理解这些技术如何大幅提升指令级并行性(ILP),从而加速程序执行。 3. 内存系统层次结构与性能优化: 内存系统的性能是影响整个计算机系统吞吐量的关键因素之一。本书对现代内存层次结构进行了详尽的剖析,从高速缓存(caches)的设计与工作原理(包括写策略、替换策略、多级缓存、相干性问题)到主存储器(main memory)的组织方式(如DRAM技术、带宽、延迟),再到虚拟存储器(virtual memory)的实现机制。作者们通过量化分析,展示了缓存未命中(cache miss)的代价以及如何通过优化缓存大小、关联度、块大小等参数来最小化缓存未命中率。同时,本书也探讨了显式内存访问(如DMA)和存储器一致性(memory consistency)模型,这些对于构建高性能并行系统至关重要。 4. 多处理器与并行体系结构: 随着单核处理器性能提升的瓶颈日益显现,并行计算已成为现代计算机体系结构的主流。本书 devotes significant space to multiprocessor and multicomputer systems. It covers various parallel architectures, including shared-memory multiprocessors (SMPs), distributed-memory multicomputers, and hybrid systems. Key topics include cache coherence protocols (e.g., snooping, directory-based), inter-processor communication, synchronization primitives, and performance considerations for parallel programs. The book emphasizes the challenges and opportunities presented by multicore processors and heterogeneous computing architectures (e.g., CPUs and GPUs working together). 5. 互连网络与存储系统: 对于大规模并行系统,高效的互连网络(interconnection networks)是实现处理器之间通信的关键。本书深入探讨了各种网络拓扑结构(如网格、环、超立方体)、路由算法(routing algorithms)、交换(switching)技术以及网络性能的量化评估。同时,本书也覆盖了现代存储系统(storage systems)的原理,包括磁盘阵列(RAID)、固态硬盘(SSDs)以及存储区域网络(SANs)等,分析了它们在容量、速度和可靠性方面的权衡。 6. 新兴趋势与未来展望: 作为一本紧跟时代步伐的著作,本书第五版还积极展望了计算机体系结构领域的未来发展。它探讨了诸如异构计算、专用加速器(如TPUs、FPGA)、功耗管理、安全性以及如何为新兴应用(如人工智能、大数据处理、云计算)设计更高效的体系结构等前沿问题。作者们通过对这些新兴领域的量化分析,为读者描绘了计算机体系结构未来演进的方向。 本书的独特价值: 严谨的量化方法: 不同于纯理论性的书籍,本书的核心在于其强调的“量化研究方法”。读者将学会如何使用实际数据来驱动设计决策,而不是依赖模糊的假设。 深度与广度并存: 本书在覆盖了计算机体系结构的核心概念的同时,也深入探讨了许多高级主题,既适合初学者建立基础,也适合经验丰富的工程师进行深化学习。 丰富的案例研究: 书中穿插了大量的真实世界案例研究,展示了如何在实际设计中应用本书提出的原理和方法。这使得抽象的概念更加具体,易于理解和消化。 权威性与前瞻性: 作者们在计算机体系结构领域享有极高的声誉,本书代表了该领域的最新知识和最佳实践,同时也不乏对未来趋势的深刻洞察。 实践导向: 本书不仅仅是知识的传授,更是能力的培养。它旨在培养读者成为能够独立思考、分析和解决实际计算机系统设计问题的优秀工程师和研究人员。 总而言之,《计算机体系结构:量化研究方法》(英文版·第5版)是一本不可多得的宝藏。它不仅能帮助读者建立起对现代计算机系统运作的深刻理解,更能塑造一种以数据为驱动、以性能为导向的科学研究和工程设计思维。无论您是希望深入理解高性能计算的工程师,还是致力于计算机系统优化的研究者,亦或是希望拓展计算机科学视野的学生,本书都将是您道路上不可或缺的良师益友。