ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

Digital Design and Computer Architecture

パタヘネに関係する本の紹介です。
http://www.elsevier.com/wps/find/bookdescription.cws_home/710749/description#description
http://www.amazon.com/Digital-Design-Computer-Architecture-Harris/dp/0123704979
Amazon.comではベタほめですが、私の評価は☆4つくらいです。(評価は厳しめ)

内容

デジタル回路、MIPS CPU、HDLの本です。自分でCPUを作るに当たってパタヘネの説明が不足してあるところを補うための本です。Prefaceからパタヘネの名前が出されており、学生が6ヶ月(a semester)で勉強できるようになっています。裏表紙には、パターソン先生からのお言葉もあり、パタ先生公認の副読本の位置づけです。

パタヘネは面白いが、そこからCPUを作ってFPGAで動かすためには飛び越えないといけない壁があります。このぱた☆へねの目的の一つはそこにあるので、筆者には共感する所が多いです。説明も丁寧に書かれており素晴らしいです。内容に関しては、もう少し方向をはっきりすれば、良い本になったかなと思います。日本語で読める本でこの本よりお薦めできる物はパタヘネくらいしか無く、パタヘネの存在無しで評価した場合☆5つの評価を付けます。ただ、どうしてもパタヘネとかぶる部分が多いというか、これとパタヘネどっち読むかって相談されたら、パタヘネの一択になるので☆を一つ減らしてみました。

手放しでお勧めするわけではありませんが、研究室や図書館に1冊置いておく価値はあると思います。値段は結構するので、学生の方が勝負して買うのは止めた方が良いと思います。

chap1〜chap3

デジタル回路の基礎を簡単に説明しています。正直つまらないので、知っていたら飛ばして大丈夫です。つまらない授業を何とか面白くしようとしている努力は伝わります。階層化された抽象化の例として、アメリカのcities, states, countriesを使っていたり、モジュール化の例としてFlintlockという銃を使うのは、日本人にはかえってわかりにくくなっている気がします。
OR記号のsillyな覚え方として、パックマンがTrueを食べ続けているのをイメージするんだ!と書いてあったり、面白くするために頑張っています。

chap4〜5

HDLの説明があります。短いながらも、CPUで使うパーツのサンプルから、テストベンチまで上手くまとめていると感じます。デジタル回路の教科書には加算器として、{cout,s}=a+b+cin の形で、動く仕組みを学びます。しかし、実際にHDLで加算器を作る場合はa+bで十分な事が多く、加算器の例としてa+bのサンプルがあるだけでもCPUを書くのがずいぶん楽になると思います。他にもレジスタファイルをSRAMで作るとか、独学では気がつきにくいポイントを押さえてあります。ここはお勧めです。

chap6

MIPSアセンブラの説明があります。ちょうど今パタヘネの同じ所を読んでいるのですが、この本の方がわかりやすいです。難しい事はあえて書かずに、図がふんだんに使って各命令の動きを説明しています。ここもお勧めです。

chap7〜8

CPUのパイプラインや仮想記憶について書かれています。本当に残念ですが、ここがいただけない。ほとんどの記述がパタヘネとかぶり、パタヘネよりわかりやすくなっているかというと、そうでもない。これを読んで、パタヘネに進んでも同じ事を2回勉強するだけになります。もともとパタヘネの副読本として書いてあるため、パタヘネと同じような図や用語が多く、余計に無駄に感じます。恐らくこの本一冊で内容を完結させようとしたのでしょうが、パタヘネ持っている人には不要な所です。

これなら、CPUのアーキテクチャを非パイプラインにし、FPGAでどう書くかを充実させて欲しかったです。キャッシュのサンプルコードとか面白いと思う。

筆者からのMessage

最後に筆者からのメッセージを紹介します。プロセッサ面白いよ!

We believe that building a microprocessor is a special rite of passage for engineering and computer science students. The inner workings of a processor seem almost magical to the uninitiated, yet prove to be straightforward when carefully explained. Digital Design in itself is a powerful and exciting subject. Assembly language programming unveils the inner language spoken by the processor. Microarchitecture is the link that brings it all together.

Link

2008/7/11 追加
関連する記事です。

wfasim.dyndns.org http://wfasim.dyndns.org/wordpress/?p=86
たけおか ぼちぼち日記 http://ameblo.jp/takeoka/entry-10018665278.html