コンピュータサイエンス

コンピュータアーキテクチャ:定量的アプローチ

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.

章の要約

第6版は印刷版で7章からなり、その後に3つの復習用付録(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」の節が各章を実際のシステムに結びつける。
  • 現在の話題。 第6版は、ドメイン固有アーキテクチャの章、更新されたウェアハウススケールコンピューティングの章、RISC-Vの例を加え、出版社はさらにスタックドDRAM、GPUとCPUの比較データ、マルチコアの追加を挙げている。
  • 印刷版に復習用付録、詳細はオンラインに。 命令セットの原理、メモリ階層の復習、パイプライニングは印刷版にあるため、基礎を確認できる。参考用のさらなる付録DからMはオンラインで提供される。
  • 評価。 出版社は、この版が2019年にTextbook Excellence Award(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」の節を読む。