CPUの創りかた | 渡波 郁 |本 | 通販 | Amazon
この本を手にしたきっかけ
去年の話になるのだけど、とある中高一貫校の学園祭に息子と2人でお邪魔させてもらった。そこで中学生が探求学習の成果発表というやつを1人10分でやっていたのだけど、ある生徒の発表が「4bitCPUを作ってみた」という内容。そう、CPUの創りかたを参考に実際にCPUを作り上げたという内容だった。最近の中学生は凄いな〜と思いつつ、息子もめっちゃ面白い話だったというので帰り道の書店にて購入してみたという流れ。
本書の全体構成をざっくりと
大きなテーマとしては自作4bitCPUのTD4を作りその動作確認までを行うことがゴールになっている。
まず電子部品を使った電子工作に関わる「デジタル回路の基礎の基礎」から入り、CPUの設計、論理回路や機械語といったことを押さえていきます。実用的なものを作るということはほぼ諦めていますが、そのおかげでCPUの動作原理が理解できるような内容になっています。1つ1つの構成部分を丁寧に解説しながら積み上げるといった感じで、読み終わるころには「CPU完全に理解した」と言える状態になるでしょう。もちろんここで言う完全に理解したはネタの方ですが、入門するというに相応しい内容だと感じました。
読んでみて分かった自分の興味関心
実はしばらく前から電子工作系をやってみたいなと思い Raspberry Pi を購入してみたり、Raspberry Pi Pico を使って PicoRuby を動かしてみたりをやっていたのですが、どうやら自分は電子工作にはあまり興味がないのかもしれない。逆に論理回路を組み合わせて部品を作り、またその部品を組み合わせることでより複雑なCPUを作り上げることなどに強い興味を持っていることが分かった。
というかそれはもうソフトウェアエンジニアリングそのもので、論理回路一つが関数型言語の関数そのものっぽいなぁというのが読みながら出てきた感想。関数を組み合わせてより高度で複雑な関数を構築したり、インプットに対してアウトプットが冪等になっているところとかもそう。
論理回路シミュレーターをRubyのDSLで作ってみたい
論理回路シミュレーターを弄ってみたいなぁと思ったところで、そもそも回路図って「論理回路」っていうドメインに特化した情報を表現するものだよなって。それはある種のDSLであって、じゃ論理回路をプログラミングできたら面白そう→Rubyの内部DSLで実現できたらなんか面白そうだよなって思った。そう思ってしまったので近日中に何かしら作ってみようと思う。
おわりに
CPUがどういった原理で動いているんだろうと少しでも疑問に思ったことがある方なら楽しく読める書籍だと思った。また20年前に発行された書籍だけれども原理・原則というものは変わらないし20年経った今でも学ぶに値するものが書かれている書籍だとも思った。おすすめです。