01 / 読書ガイド
読書ガイド
引用
Harris, S. L., & Harris, D. (2021). Digital Design and Computer Architecture, RISC-V Edition. Morgan Kaufmann (Elsevier).
章の要約
印刷版は8章、合計約540ページです。組込み入出力に関する第9章と、ディジタルシステムの実装、RISC-V 命令セット、C プログラミングに関する付録は、本書のコンパニオンサイトで提供されます。出版社によれば、本書は「読者をディジタル論理の基礎から実際のプロセッサ設計へと導く」もので、論理ゲートから組合せ回路・順序回路を経て RISC-V マイクロプロセッサへと進み、全体を通じて SystemVerilog と VHDL が使われます。
第1章:From Zero to One(ゼロからイチへ)
最初の章(約50ページ)は、全体の出発点です。章題の「ゼロからイチへ」と、本書がディジタル論理ゲートから始まるという出版社の説明から、この章がディジタル論理の基本的な考え方を導入することがうかがえます。
第2章:Combinational Logic Design(組合せ論理の設計)
この章(約50ページ)は、出力が現在の入力だけで決まる回路を、論理ゲートを部品として設計します。
第3章:Sequential Logic Design(順序論理の設計)
第3章(約65ページ)は、記憶をもち、出力が過去の入力にも依存する回路を加えます。2つの論理設計の章のうち長いほうです。
第4章:Hardware Description Languages(ハードウェア記述言語)
この章(約65ページ)は、回路を記述するための言語を教えます。出版社は、CAD に基づく設計の例で SystemVerilog と VHDL が全体にわたって使われていると述べており、著者の正誤表には、この章に7セグメント表示器のデコーダの例があることが示されています。
第5章:Digital Building Blocks(ディジタルの構成要素)
第5章(約60ページ)は、第2章・第3章の組合せ回路と順序回路を土台にしています。出版社はこれらを「基本的な構成要素」と呼び、その後のプロセッサ設計の基礎になると述べています。
第6章:Architecture(アーキテクチャ)
アーキテクチャの章(約90ページ)は、RISC-V 命令セットの十分な理解を与えます。出版社によれば、これにより読者はハードウェアシミュレーション、ソフトウェアシミュレーション、実際のハードウェアで RISC-V プロセッサをプログラムできます。コンパニオンの入出力の章は、この章の6.5.1節を参照しており、そこではアドレス空間の一部が入出力デバイス用に確保されています。
第7章:Microarchitecture(マイクロアーキテクチャ)
最も長い章(約105ページ)で、プロセッサを組み立てます。出版社は、RISC-V アーキテクチャの単一サイクル、マルチサイクル、パイプライン版の SystemVerilog と VHDL による設計を挙げています。正誤表からは、この章の演習に、たとえば等価比較器の遅延を仮定する、といったタイミングの問題が含まれることがわかります。
第8章:Memory Systems(メモリシステム)
印刷版は、メモリシステムに関する簡潔な章(約45ページ)で終わります。8章の中で最も短い章です。
コンパニオン資料:第9章と付録
第9章 Embedded I/O Systems(組込み入出力システム、約64ページ)は、まずメモリマップド I/O を紹介し、次に RISC-V マイクロコントローラを持つ SparkFun の RED-V RedBoard の使い方を、汎用・シリアル・アナログ I/O、タイマ、パルス幅変調とともに示し、最後に文字 LCD、VGA モニタ、Bluetooth 無線機、モータとのインタフェースを扱います。付録A(Digital System Implementation)は、74xx ロジック、プログラマブルロジック、特定用途向け集積回路、データシート、ロジックファミリ、スイッチと LED、実装、伝送線路、経済性を扱い、本書の残りを理解するのに必要ではないと明記されています。付録Bは RISC-V 命令セットを表で要約し(RV32I、RV64I、浮動小数点、乗除算、圧縮命令、擬似命令、特権命令)、付録Cは基礎からよくある間違いまでの C プログラミング入門です。
主要概念
第1〜5章:ディジタル設計
- 組合せ論理と順序論理:記憶のない回路とある回路という、他のすべてを構成する2つの種類。
- ハードウェア記述言語:SystemVerilog と VHDL で回路を記述し、シミュレーションし、合成すること。
- ディジタルの構成要素:ゲートとレジスタから作られる標準的な大きめの部品。
第6〜8章:アーキテクチャとマイクロアーキテクチャ
- RISC-V 命令セット:ソフトウェアとプロセッサの間のインタフェース。
- 単一サイクル、マルチサイクル、パイプラインのマイクロアーキテクチャ:同じアーキテクチャの3つの実装と、そのトレードオフ。
- メモリシステム:プロセッサがメモリとどう接続されるか。
コンパニオンの第9章と付録
- メモリマップド I/O:通常のロードとストアでデバイスにアクセスすること。
- マイクロコントローラの周辺機能:RISC-V ボード上の GPIO、シリアル・アナログ I/O、タイマ、パルス幅変調。
批判的分析
長所
- ゲートからプロセッサまでの一本の筋。 章の順序は論理から動作する RISC-V プロセッサへと一直線に進みます。出版社は、読者が自分のマイクロプロセッサを作り、その動作を最初から最後まで理解できることを目標として挙げています。
- ハードウェア記述言語を含む。 SystemVerilog と VHDL の両方が紹介され、基本的な部品と3種類のプロセッサ版の設計があるため、読者は言語を選べます。
- 現代的でオープンな命令セット。 RISC-V 版はオープンソースのアーキテクチャを使い、コンパニオンサイトの付録Bには基本命令セットと拡張命令セットの命令表があります。
- 豊富なコンパニオン資料。 著者のサイトには、講義スライド、ラボ、図、HDL ファイル、奇数番号の演習の解答、ビデオ、SonicRV という RISC-V ビジュアライザ、そして無料で視聴できる2つの edX コース(ディジタル設計とコンピュータアーキテクチャ)があります。
- 実用的なハードウェアの章。 オンラインの入出力の章は、アーキテクチャを実際のボードで動かせるものにつなげます。
短所
- 重要な内容の一部はオンラインのみ。 入出力の章と3つの付録は印刷版になく、読者はコンパニオンサイトを利用する必要があります。
- メモリの扱いが簡潔。 メモリシステムの章は約45ページで、マイクロアーキテクチャの章よりずっと短く、専門のアーキテクチャの教科書の代わりにはなりません。
- 命令セットもボードも1つだけ。 すべてが RISC-V の上に構築され、入出力の例も特定の SparkFun ボードを使っています。MIPS や ARM の内容が必要な読者は、本書の他の版を見るべきです。
- 公開されている解答は演習の半分。 著者のサイトが提供するのは奇数番号の演習の解答だけなので、独習者には残りの演習の公開された答えがありません。
コースにおける位置づけ
この本はハードウェアから上へ進みます。読者がプロセッサを設計するのです。Bryant と O'Hallaron の Computer Systems: A Programmer's Perspective はプログラマの側から出発し、C、機械語、メモリ、オペレーティングシステムの仕組みを通して機械を扱うので、ソフトウェア側の相方として好適です。Petzold の Code は一般読者向けの物語的な入門書で、本書の前に読めます。Nisan と Schocken の The Elements of Computing Systems は、同じく論理ゲートから始まり、コンパイラとオペレーティングシステムまで築き上げるプロジェクト型の道筋です。
本書の後には、設計上の選択が性能とエネルギーにどう影響するかを論じる大学院レベルの Hennessy と Patterson の Computer Architecture: A Quantitative Approach、そして第7章で到達するパイプライン設計を超えたスーパースカラプロセッサを展開する Shen と Lipasti の Modern Processor Design があります。
本書の使い方
出版社が示す想定読者は、ディジタル論理とコンピュータアーキテクチャを合わせた授業を受ける電気工学・コンピュータ工学・情報科学の学部生と、RISC-V アーキテクチャを理解したい専門家です。ディジタル論理、続いて計算機構成という2学期の授業にも向いています。
実践的な進め方は次のとおりです。
- 中核: 第1〜8章を順番に読みます。第1〜3章と第5章がディジタル設計の中核で、第4章はそれらと並行して、回路が出てくるたびに記述してシミュレーションするのが最適です。
- アーキテクチャ編: 第6〜8章。第6章を読むときは、付録Bの RISC-V 命令表を横に置いてください。
- 任意: RISC-V ボードがあれば第9章、実用的なエンジニアリングの問題に関心があれば付録A、C プログラミングに不慣れなら付録C。
- 実習: 演習、奇数番号の演習の解答、著者のサイトのラボを使い、インタラクティブな問題付きのビデオ講義は edX のコースで利用してください。
