電腦科學

計算機組織與設計:量化方法

John L. Hennessy; David A. Patterson

英文原名: Computer Architecture: A Quantitative Approach

計算機組織與設計:量化方法 cover

以量化方式研究電腦結構,分析設計如何影響效能與耗能。主題包括指令與資料層級平行、記憶體階層、多核心處理器和大型資料中心系統。面向高年級學生與實務工作者;建議先修計算機組織與數位邏輯。

需要的基礎

大學部計算機組織課程與數位邏輯基礎。

版次
6
出版年份
2017
難度等級
高級
學術層次
研究所
computer architectureprocessor designmemory hierarchyparallel computingperformance

01 / 導讀

導讀

引用

Hennessy, J. L., & Patterson, D. A. (2017). Computer Architecture: A Quantitative Approach (6th ed.). Morgan Kaufmann.

章節概要

第六版印刷本共七章,其後是三個複習性附錄(A至C);更多的參考性附錄(D至M)線上提供。據出版社介紹,每章接近結尾都有「Putting It All Together」小節,把該章的原理應用於實際技術,本版還更新了案例研究與習題。本版的新內容包括基於RISC-V指令集的範例、一章關於領域專用架構的新章節,以及更新的倉儲級運算一章。

第1章:Fundamentals of Quantitative Design and Analysis

開篇一章確立本書以測量與量化推理評價設計選擇的方法,是後續各章的基礎。

第2章:Memory Hierarchy Design

記憶體階層的設計。出版社提到本版新增了關於堆疊DRAM的內容。

第3章:Instruction-Level Parallelism and Its Exploitation

指令層級平行,以及處理器利用它的技術。

第4章:Data-Level Parallelism in Vector, SIMD, and GPU Architectures

貫穿向量、SIMD與GPU架構的資料層級平行。出版社提到書中有新款NVIDIA Pascal GPU與支援AVX-512的Intel Skylake CPU效能比較的資料。

第5章:Multiprocessors and Thread-Level Parallelism

多處理器與執行緒層級平行;出版社提到對多核心架構與組織作了大量增補。

第6章:The Warehouse-Scale Computer

更新後的倉儲級運算一章,包含Google最新倉儲級電腦的首次公開資訊。

第7章:Domain Specific Architectures

新增一章。據出版社介紹,它闡明在摩爾定律與登納德縮放終結之後,領域專用架構是提升效能與能源效率的前進道路,並首次公布了業界的若干領域專用架構。

附錄A–C(印刷本)

附錄A談指令集原理,附錄B複習記憶體階層,附錄C談管線化,從基本概念到中級概念。

線上附錄D–M

儲存系統、嵌入式系統、互連網路、向量處理器、VLIW與EPIC的軟硬體、大規模多處理器與科學應用、電腦算術、指令集架構概覽、位址轉譯的進階概念,以及歷史回顧與參考文獻。

核心概念

第1–3章:量化設計、記憶體與ILP

  • 量化設計:靠測量與分析而非直覺來選擇設計。
  • 記憶體階層:把記憶體分層以平衡容量、速度與成本。
  • 指令層級平行:在單一指令流內同時執行多條指令。

第4–5章:資料層級平行與執行緒層級平行

  • 向量、SIMD與GPU架構:把一種運算施加於大量資料的硬體。
  • 多處理器與執行緒層級平行:跨處理器與執行緒的平行。

第6–7章:大型系統與專用化

  • 倉儲級電腦:把資料中心規模的機器當作一台電腦。
  • 領域專用架構:在通用效能成長受限時,為一類問題量身打造的硬體。

評析

優點

  • 方法一以貫之。 書名與開篇一章讓本書致力於對設計評價採取量化方法,而「Putting It All Together」小節把每章與實際系統連結起來。
  • 主題新近。 第六版增加了領域專用架構一章、更新的倉儲級運算一章與RISC-V範例;出版社還列出堆疊DRAM、GPU對CPU的資料以及多核心方面的增補。
  • 印刷本中有複習附錄,深入內容在線上。 指令集原理、記憶體階層複習與管線化都在印刷本中,便於讀者溫習基礎,更多的參考性附錄D至M線上提供。
  • 獲得肯定。 出版社指出,本版榮獲2019年教科書卓越獎(Texty)。

局限

  • 研究所程度。 出版社把研究生與專業架構師列為讀者對象,本書以先前學過計算機組織與數位邏輯為基礎。
  • 參考性附錄不在印刷本中。 包括儲存、互連網路與電腦算術在內的附錄D至M僅線上提供。
  • 已有較新的版本。 Elsevier的頁面註明已有較新的版本,因此讀者應確認課程使用的是哪一版。

在課程中的定位

Hennessy與Patterson是本課程中研究所程度的架構教材。Petzold的Code是面向一般讀者、以敘事方式講解電腦如何運作的書,Nisan與Schocken的The Elements of Computing Systems則讓讀者從邏輯閘開始建構電腦,二者都平易得多。Harris與Harris的Digital Design and Computer Architecture, RISC-V Edition從數位邏輯一路建構到管線化的RISC-V處理器,使用與本版範例相同的指令集,是自然的大學部預備讀物。Bryant與O'Hallaron的Computer Systems: A Programmer's Perspective從程式設計師的角度看機器。Shen與Lipasti的Modern Processor Design對超純量處理器微架構的論述比第3章與附錄C更深入。

如何使用本書

本書面向已掌握計算機組織與數位邏輯的研究生、專業架構師與設計人員,以及編譯器或系統軟體開發者。

實用的閱讀方案:

  • 核心: 第1章,然後是第2、3章,必要時用附錄B、C溫習。
  • 平行性: 第4、5章,學習資料層級平行與執行緒層級平行。
  • 系統與趨勢: 第6、7章,學習倉儲級電腦與領域專用架構。
  • 線上附錄: 儲存、嵌入式系統、互連網路等參考性主題查閱D至M。
  • 練習: 隨各章完成案例研究與習題,並閱讀「Putting It All Together」小節。