01 / 読書ガイド
読書ガイド
引用
Shen, J. P., & Lipasti, M. H. (2013). Modern Processor Design: Fundamentals of Superscalar Processors. Waveland Press.
章の要約
本書は全11章で、Waveland版は約640ページ。目次から進行は明らかである。プロセッサ設計とパイプラインの復習、プロセッサを取り巻くメモリとI/Oシステム、スーパースカラの中核部分、二つの詳細な事例研究と商用設計の概観、そして高度な技法とマルチスレッディングである。各章の末尾には宿題の問題がある。
第1章:プロセッサ設計
冒頭の章は、マイクロプロセッサの進化、命令セットプロセッサの設計、プロセッサ性能の原理、命令レベル並列処理を扱う。1サイクルに複数の命令を実行するという考え方で、本書全体の枠組みを定める。
第2章:パイプラインプロセッサ
この章はパイプラインの基礎、パイプラインプロセッサの設計、深いパイプラインのプロセッサを扱う。以後のスーパースカラの各章の土台となる。
第3章:メモリとI/Oシステム
第3章は、システムの概観と、レイテンシとバンド幅という重要概念から始まり、メモリ階層、仮想記憶システム、メモリ階層の実装、入出力システムを扱う。
第4章:スーパースカラの構成
スカラパイプラインの限界から始め、スカラからスーパースカラパイプラインへの移行を述べ、スーパースカラパイプラインの概観を与える。
第5章:スーパースカラの技法
本書の技術的な中心で、「フロー」の種類ごとに整理されている。命令フローの技法、レジスタデータフローの技法、メモリデータフローの技法である。
第6–7章:PowerPC 620、IntelのP6マイクロアーキテクチャ
二つの事例研究。第6章は、実験の枠組み、命令フェッチ、ディスパッチ、実行、完了を通してPowerPC 620をたどり、所見を述べ、IBM POWER3とPOWER4へつなぐ。第7章はP6パイプラインを、インオーダのフロントエンド、アウトオブオーダのコア、リタイアメント、メモリサブシステムとともに述べる。
第8章:スーパースカラプロセッサの概観
スーパースカラプロセッサの発展、近年の設計の分類、個々のプロセッサの記述、スーパースカラプロセッサの検証を概観する。
第9–10章:高度な命令フローの技法、高度なレジスタデータフローの技法
第9章は静的・動的・ハイブリッドの分岐予測とその他の命令フローの問題を扱う。第10章は値の局所性と冗長な実行、および投機を使わない場合と使う場合の値局所性の活用技法を紹介する。
第11章:複数スレッドの実行
最終章は、共有メモリスレッドの同期、マルチプロセッサシステムの入門、明示的および暗黙的マルチスレッドプロセッサ、同一スレッドの実行を扱う。
主要概念
第1–3章:基礎
- プロセッサ性能と命令レベル並列性:性能の原理と、1サイクルに複数命令を実行する考え方。
- パイプライン:命令実行の段階を重ね合わせること。深いパイプラインの設計を含む。
- レイテンシとバンド幅、メモリ階層:メモリとI/Oシステムの重要概念。
第4–5章:スーパースカラプロセッサ
- スーパースカラパイプライン:各段で複数の命令を扱うパイプライン。
- 命令フロー、レジスタデータフロー、メモリデータフロー:第5章の中核技法を整理する三つのフロー。
第6–8章:事例研究と概観
- アウトオブオーダのコアとリタイアメント:PowerPC 620とIntel P6を通して述べられる。
第9–11章:発展的話題
- 分岐予測:静的、動的、ハイブリッドの予測器。
- 値局所性:繰り返し現れる値の活用。投機を使う場合と使わない場合がある。
- マルチスレッディング:明示的および暗黙的なマルチスレッドプロセッサ。
批判的分析
長所
- 明快な枠組み。 出版社は本書を、概念的で正確であり、複雑な実践を基本原理に煮詰めて大学院生にも学部生にも分かりやすいと説明している。章立てもそれを示している。命令フロー、レジスタフロー、メモリフローが、主要な技法に一つの整理の枠を与える。
- 基礎の後に事例。 第4・5章で原理を説明し、第6–8章でそれを具体的な設計と概観に適用する。二つの事例研究と商用スーパースカラプロセッサの概観により、実際の設計がトレードオフをどう解決しているかが見える。
- 高度な技法は独立した章に。 分岐予測(第9章)、値局所性の技法(第10章)、マルチスレッディングとマルチプロセッサ(第11章)が中核から切り離されており、選んで読める。
- 練習問題。 各章の末尾に宿題の問題があり、出版社によれば新しい技法への下地を作る。
短所
- 事例研究の時代性。 詳細な研究はPowerPC 620とIntel P6であり、Waveland版の著作権表示は2005年である。個別設計の章は当時のプロセッサを描いている。原理の実例として読むべきで、現在のハードウェアの姿とは考えないこと。
- 前提知識が必要。 第1–3章はプロセッサ設計、パイプライン、メモリを復習するが、本書は命令セット、単純なパイプライン、キャッシュをすでに導入した計算機構成の授業の後、基礎的なディジタル論理とともに読むのがよい。
- 焦点が狭い。 主題は単一のスーパースカラプロセッサのマイクロアーキテクチャで、最後にマルチスレッディングを扱う。ベクトルやデータ並列ハードウェア、GPU、エネルギーといった話題は章題にない。
コースにおける位置づけ
このコースの書籍リストの中で、Modern Processor Design はマイクロアーキテクチャを深く扱う一冊である。Charles Petzold の Code や Nisan と Schocken の The Elements of Computing Systems は、論理ゲートや論理回路から計算機を組み立てる穏やかな入門。Harris と Harris の Digital Design and Computer Architecture: RISC-V Edition はディジタル論理からパイプラインプロセッサとそのメモリシステムまで導く。Bryant と O'Hallaron の Computer Systems: A Programmer's Perspective はソフトウェア側から機械に迫る。Hennessy と Patterson の Computer Architecture: A Quantitative Approach は、性能とエネルギーに重点を置く、より広い扱いで、命令レベル・データレベル並列性、メモリ階層、マルチコア、ウェアハウススケールシステムを含む。
Shen と Lipasti はプロセッサのマイクロアーキテクチャの専門書である。基本的なパイプラインを理解した後、スーパースカラプロセッサがどう動くかを体系的に知りたいときに読むか、Hennessy と Patterson の命令レベル並列性の扱いと並べて読むとよい。
本書の使い方
計算機構成の授業を終えた大学院生や学部上級生を対象とする。
実践的な進め方:
- 中核: 第1・2章は手早い復習として、第4・5章は丁寧に読む。後続が依存するスーパースカラの考え方がここにある。
- 補助: 第3章。メモリとI/Oシステムを扱い、メモリデータフローの理解に必要となる。
- 事例研究: 第5章の後で、第6章か第7章のどちらかを実例として精読し、第8章は概観として拾い読みする。
- 発展: 第9章(分岐予測)は自然な続きである。第10・11章は関心に応じて選ぶ。
- 練習: 各章末の宿題の問題に取り組み、事例研究のパイプライン図を自分で描き直して、命令フローの各段階を確認する。
