valid,invalid

関心を持てる事柄について

『CPUの創りかた』でCPUの設計と動作原理を学んだ

コンピュータシステムの学習の一環として『コンピュータシステムの理論と実装』 (通称Nand to Tetris project) を進めているのだが、Nand to Tetrisの課題ではハードウェア記述言語を使ってハードウェアをコードとして表現し、あくまでエミュレータ上で回路を実行するので現実のハードウェアに関するイメージがリアルに湧かなかった。

それでも学習には大いに役立っているのだが副読本として『CPUの創りかた』を読んだ。工作はしていないのであしからず。

CPUの創りかた

CPUの創りかた

実際にパーツを用いながらCPUを構築していくマジモンの電子工作本なのでテスター(電圧を測定するやつ)や部品の準備から始めていく。制作のために実際の製品やメーカーの名前が挙がるのでコンピューターを支えている企業に思いを馳せることができる。

前半は電子工作に関する記述が中心なのでソフトウェアエンジニアがCPUの動作原理や設計について詳しく知りたい場合はChapter 6以降を中心に読むと良さそうだ。機械語の知識、CPUのbit数とは何か(演算やデータ移動の単位が決定する)、CPUの命令フォーマットの設計、ジャンプ命令の実装方法、フリップフロップ、加算器、命令デコーダなど専門的な内容が盛りだくさんではあるが軽妙な文体なのでわりとサクサク読める。

本書の最後のほうで「実際にはこのように細かい部品を組み合わせてCPUを設計・実装することは現代ではほぼない*1とハッキリ言っているが、あとがきにある「ブラックボックスを1つ減らす」のはとても価値があるし何より面白い。


もともと工作する気はなかったのだけど、実際に組んでみた方々を見ていたらやりたくなってきたのでそのうちやるかもしれない。

www.youtube.com

*1:ロジックをプログラムで制御できる[CPLD https://ja.wikipedia.org/wiki/CPLD]を使う