ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ 第5版

スポンサーリンク


通称ヘネパタです。コンピュータアーキテクチャの学部高学年から大学院レベルのテキストです。学部レベルの入門科目でこの本が教科書だったらたいしたものですが、なかなか通読できるものではないです。この本が優れているのはスーパースカラの詳しい説明、定量的分析、つまりコンピュータの構成の優劣を数字で比較できるようにすることを目的にしていることです。


ご存知の方も多いと思いますが念の為に説明しておきますと、原著は素晴らしいが和訳がひどい「コンピュータの構成と設計」はパタヘネと呼ばれており、こちらは入門書としての位置づけで学部入門レベルの授業で使います。なのでこのヘネパタの方が難しいということになります。実はそれは翻訳者にもあらわれていて、天野英晴先生は慶應義塾の有名な先生ですし、吉瀬謙二先生は東大の坂井研究室から東工大に就任されたコンピュータアーキテクチャの専門家です。このくらいのクラスの先生方が分担してやっと翻訳できるレベルの本です。それはパタヘネにも言えて、専門家でもない文系の人がそう簡単に翻訳できるものではないのです。ヘネパタの方は幸い、優秀な翻訳者に恵まれているので安心して読めます。私がこの本を読んだ頃はまだ5版の英語原著しかなかったのでそちらを読みましたが、日本語で読めるなら日本語で読んだほうが速く、しかも頭に残りやすいと思います。
この本の特徴は定量的分析、つまり数字で比較しようとしていることです。前半は半導体の歩留まりの計算から始まり、FLOPSやCPIの計算の仕方もやります。本サイトでは金融経済書も扱っているので、誤解を避けるために念の為に言っておきますと、CPIは消費者物価指数ではなくて、cycles per instruction、1つの命令実行に必要なクロック数のことです。
またパイプライン処理についても詳しく書いてあります。特にパイプラインのストールです。パイプラインの高速化のためには、いかにパイプラインを詰まらせないようにして命令を流していくかがポイントです。何らかの原因でパイプラインが停止することをストールといいます。どのようなときにストールするか、ストールを減らすためにはどうしたら良いかがわかります。そしてどのくらい速くなるかどうかも、実際に計算して数値で示せるようになっています。
スーパースカラプロセッサの解説にも詳しいです。スーパースカラとは命令レベル並列処理の実現手段の一つで、実行できるものからどんどん先に計算していくものです。スーパースカラが無いプロセッサでは、一列に並んで命令の実行を待つことになります。そのうち一つでも命令が滞ると、後ろでまっている命令はずっと待たされるのです。その待っている間に、実行できる命令から実行してしまえというのがスーパースカラの考え方です。これだと本来の順番を入れ替えて実行することになるので、分岐命令があるとややこしいことになります。分岐命令の結果によっては本来実行してはいけないものも実行してしまうことになりますから。そのために一時的なリオーダバッファというのを設けて、計算結果はそのバッファ上に置いておきます。そして分岐の結果が確定したら、実際に確定させるのです。もしくは結果を破棄することもあります。その仕組についてしっかり書いてある本は本当に少ないので、この本はコンピュータアーキテクチャをひと通り任せることができる代表的な本です。

スポンサーリンク