各方面で話題になっている「CPUの創りかた」を買ってみた。
話題になっているのは知っていたが、その表紙がナニなのであまりお近づきになりたいとは思っていなかった。
しかし、たまたま書店で見つけたので「冷やかし程度に」立ち読みした所、非常に良書だと気付く。
一応大学では情報なんぞ学んでいるので、半導体を使ってXORやNAND などの論理回路を作れることや、それらを組み合わせればフリップフロップを作れることは学んでいる。
とはいえ、大学の講義では全加算器(桁上がりも考慮して、1ビットを足し算する回路)までを学んで「あとはこういう回路を組み合わせれば CPU が出来上がる」というところ止まりだった。
また、別の実習で実際の電気回路もいじっていたが、こちらはすでに組みあがった Z80塔載の基盤を使用し、I/O ポートにつないだオシロスコープに波形を出力する程度であった。
この本は、これらの「通り一遍」の知識の隙間を埋めてくれる。
そうか、パスコンはそのために必要だったのか…(「パスコン」という存在が基板上にあることは知っていたが、何のためにあるのか理解できていなかった)
そうか、加算器を組み合わせても CPU は作れないんだ…(MOV A,A が基本動作、というのは非常に納得)
しかも、内容は非常に硬派でありながら、文章は砕けていて…ときには砕け散っているが…馴染みやすい。
(この文章を「ふざけすぎ」と感じる人も多いようだが、僕にはテンポの良いいい文章であった)
というわけで、買ったその日に読破。
あらかじめ8割方の知識があったから読めたというだけの話で、実際は一気に読破するような本ではないと思う。
話は少し逸れるが、CPU の命令セットを見るのが結構好きだ。
CPU の命令セットというのは、その CPU 設計者の「思想」の現れだと思う。
古くは6502 のページ機構に興味を惹かれ、Z80 の「美しくなさ」には失望したものだ。
MIPS Rシリーズの「リングレジスタ」なんて機構にはしびれたし、日立 SH シリーズの「割り算ワンステップ実行」という、1クロックにこだわった命令にも感心した。
ARMの「全命令が条件実行できる」という機構も、パイプラインを乱す分岐命令を極力減らしたいという強い意志が感じられて好きだ。(世間では批判が多いようだが)
で、そんな性格なので(?)、この本も CPU の仕様を決め、命令セットが決定された所で裏で何が行われているのかを想像した。
…一部の命令で、「なんでこうなってるの? 誤植じゃないの?」と感じた。
しかし、読み進んで、実際の CPU の回路を決定していく段階で徐々に納得していく。
なるほど、この命令セットは理にかなっていた。というか、本当は設計が先にあって後で命令セットが決定されたのだ、ということが最後に曝露されていたが。
個人的には、この部分を納得しながら読み勧めるのが一番楽しかった。
実は「デザインウェーブマガジン」の10月号買ってあるんだよね。
FPGA 基盤が附属していてお買い得、と知人にそそのかされたので。
あれを買ったときに「単純でもいいから CPU (の命令セット)を自作してみたい」と思っていたのだけど、加算器を組み合わせれば CPU になる、と思っていた時点でダメだったかも。
でも、いまなら最低限の知識は身に付けたわけで、自作 CPU にも挑戦できる…といいなぁ。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |