索引 / 001 JA
コンピュータの構成と設計 cover

工学

工学

コンピュータの構成と設計

David Patterson et al.

英語原題: Computer Organization and Design

プロセッサ設計、メモリシステム、コンピュータの性能を扱うコンピュータアーキテクチャの教科書で、ハードウェアとソフトウェアのインターフェースに関する例題やマルチコアプロセッサも取り上げる。

難易度レベル
中級
学術レベル
学部
コンピュータアーキテクチャプロセッサ設計メモリシステムコンピュータ性能アセンブリ言語パイプライン設計キャッシュメモリ並列処理

01 / 読書ガイド

読書ガイド

引用

Patterson, D. A., & Hennessy, J. L. (2017). Computer Organization and Design RISC-V Edition: The Hardware/Software Interface (1st ed.). Morgan Kaufmann.

章の要約

これは Patterson と Hennessy の教科書の RISC-V 版(ISBN 978-0-12-812275-4)で、Elsevier は696ページ、6章と4つの付録と記載している。出版社の説明によれば、この版はオープンソースの命令セットアーキテクチャである RISC-V を採用しており、RISC-V はクラウドコンピューティング、モバイル機器、組み込みシステムなど現代の計算環境のために設計されたものである。説明はさらに、本書がポストPC時代に向かい、モバイルコンピューティングとクラウドを強調した例、演習、資料を備え、タブレット、クラウドインフラ、x86 と ARM アーキテクチャに関する内容を更新したと述べている。発展的内容、残りの付録、用語集、参考文献、推薦図書はオンラインのコンパニオンサイトにある。

第1章:コンピュータの抽象化とテクノロジ

最初の章は、本書の副題「ハードウェア/ソフトウェアのインタフェース」にそって、この分野の語彙を整える。コンピュータが複数の抽象化レベルでどう記述されるか、その背後にどんな技術があるかを扱う。

第2章:命令:コンピュータの言語

命令セットの章。この版で扱う命令は RISC-V のもので、出版社がこの版の特色として挙げるアーキテクチャである。

第3章:コンピュータの算術

コンピュータが数をどう表現し、ハードウェアで算術演算をどう行うか。

第4章:RISC-V プロセッサ

プロセッサの章で、実装する命令セットの名を冠している。第2章の命令セットを実装するプロセッサを扱う。

第5章:大容量かつ高速:メモリ階層の活用

メモリシステムの章。コンパニオンサイトは第5.12節に言及し、SystemVerilog コードを含むダウンロード可能なテストケースのモジュールを提供している。これは FPGA 上にキャッシュとキャッシュコントローラを作るのに使える。

第6章:クライアントからクラウドまでの並列プロセッサ

最終章は単一のプロセッサから並列システムへ進み、出版社のモバイルとクラウドの強調に沿っている。

付録A~D

付録Aは「論理設計の基礎」。残りは付録B「グラフィックスと計算用 GPU」、付録C「制御のハードウェアへの対応づけ」、付録D「デスクトップ、サーバ、組み込みコンピュータ向けの RISC アーキテクチャの概観」である。コンパニオンサイトは付録B~DをダウンロードできるPDFとして挙げており、用語集、索引、章ごとにまとめた参考文献も提供している。

主要概念

第1~3章:ハードウェア/ソフトウェアのインタフェース

  • 抽象化とテクノロジ:第1章の題が示す主題で、本書の副題「ハードウェア/ソフトウェアのインタフェース」の出発点。
  • 命令セットアーキテクチャ:ソフトウェアとハードウェアの間の取り決め。ここでは RISC-V。
  • コンピュータの算術:第3章の主題。

第4~6章:実装

  • プロセッサのデータパスと制御:第4章の主題。付録Cが制御のハードウェアへの対応づけを扱う。
  • メモリ階層:第5章の「大容量かつ高速」というトレードオフで、キャッシュを含む。
  • 並列プロセッサ:第6章での、単一プロセッサから「クライアントからクラウドまで」のシステムへの移行。

付録

  • 論理設計:付録A。プロセッサの各章に必要なデジタル論理の基礎。
  • GPU と RISC ファミリ:付録Bと付録Dの主題。

批判的分析

長所

  • 全体を通じて1つのオープンな命令セット。 出版社は RISC-V を、現代の計算環境のために設計された最初のオープンソースアーキテクチャとして紹介している。そのため読者は、仕様が公開され、特定のベンダーに縛られない命令セットで学べる。
  • 論理の基礎を含む。 目次は「論理設計の基礎」を付録Aに置いているので、デジタル論理の授業を別に履修していない読者も、同じ巻の中で出発点を得られる。ほかの3つの付録はコンパニオンサイトにある。
  • 充実したコンパニオン資料。 出版社のコンパニオンサイトには、章ごとの歴史的視点と参考文献、発展的内容の節、RISC-V リファレンスデータシート(「グリーンカード」)、VHDL と Verilog のチュートリアル、講義スライド、正誤表、キャッシュのテストケースのモジュールがある。このため FPGA を用いた実習が可能である。
  • 想定読者が明確。 Elsevier は読者を、コンピュータ科学、コンピュータ工学、電気工学の学部学生とし、2年次の必修から上級の選択科目まで幅広く挙げ、専門のシステム設計者や開発者も含めている。

短所

  • アーキテクチャは1つ。 プロセッサの章が RISC-V に基づいているため、MIPS や ARM の実装例を求める読者は別の版が必要になる。Elsevier は ARM 版も出している。
  • 一部の内容はオンライン。 付録B~D、発展的内容の節、歴史的視点はコンパニオンサイトにあり、紙の本だけの読者が得られるのはその一部である。
  • 最新の版ではない。 Elsevier のページは、より新しい版があること(RISC-V 版の第2版が存在する)を示しているので、授業のシラバスにあるページ番号や節番号がこの版と異なる場合がある。

コースにおける位置づけ

回路・電子工学の書目の中で、本書は回路やデバイスの振る舞いではなく、コンピュータがどう組織されているかを扱う唯一の本である。Agarwal と Lang の Foundations of Analog and Digital Electronic Circuits と Storey の Electronics: A Systems Approach はどちらもデジタルの内容を含み、論理レベルの背景知識を補う自然な相棒である。Howe と Sodini の Microelectronics: An Integrated Approach は、プロセッサを構成するデバイスまで掘り下げる。

Alexander と Sadiku の Fundamentals of Electric Circuits や Scherz と Monk の Practical Electronics for Inventors は本書より前か並行して読むものであり、Hayt と Buck の Engineering Electromagnetics は別の場の理論の系列である。Patterson と Hennessy は、プログラミング入門とデジタル論理の授業のあとに読むのが最もよく、回路レベルの見方とソフトウェアレベルの見方が結びつく場所となる。

本書の使い方

本書は、コンピュータ科学、コンピュータ工学、電気工学の学部学生に向けたものである。Elsevier の読者一覧では、専門のシステム設計者、プログラマー、開発者も対象に挙げられている。多少のプログラミング経験と論理ゲートの初歩的な知識があると読みやすい。付録Aが論理の基礎を補う。

実践的な進め方:

  • 中核: まず第1章と第2章、次に第3章と第4章を順に読む。RISC-V の命令セットを学ぶときは、参照用の「グリーンカード」を横に置く。
  • 次に: 第5章。授業で FPGA が使えるなら、キャッシュのテストケースのモジュールを併用する。
  • それから: 並列システムについては第6章。グラフィックスプロセッサが授業に含まれるなら付録B。
  • 並行して: データパスを実装するつもりなら、コンパニオンサイトの Verilog または VHDL のチュートリアルを使い、背景理解のために章ごとの歴史的視点を参照する。