編輯推薦
《計算機體係結構:量化研究方法(英文版·第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版)是一本不可多得的寶藏。它不僅能幫助讀者建立起對現代計算機係統運作的深刻理解,更能塑造一種以數據為驅動、以性能為導嚮的科學研究和工程設計思維。無論您是希望深入理解高性能計算的工程師,還是緻力於計算機係統優化的研究者,亦或是希望拓展計算機科學視野的學生,本書都將是您道路上不可或缺的良師益友。