ISBN 9784839909864
CPUの創りかた : IC 10個のお手軽CPU設計超入門
概要
IC 10個で 4bitCPU を手配線し、コンピュータ動作の根本原理を体得する
想定読者
CPUの内部構造に興味があるプログラマや情報系学生。ハードウェア知識なしにコンピュータの仕組みを基礎から手を動かして理解したい人
こんな人には向いていない
- FPGA や Verilog/VHDL を用いた本格的なデジタル回路設計を学びたい人(本書は IC を使った入門実装であり HDL には踏み込まない)
- 現代 CPU アーキテクチャ(マルチコア・パイプライン深化・キャッシュ階層最適化等)を体系的に習得したい人(2003年刊行の 4bit 設計が題材であり射程外)
- 即業務適用できるスキルを求めている人(本書の価値は回路設計を追体験する学習体験にあり、直接的なプロダクション開発知識ではない)
この本で身につくこと
- レジスタ・プログラムカウンタ・ALU の役割と相互関係を回路図レベルで説明できる
- 4bit 命令セット(TD4)の設計思想と命令デコード・実行サイクルを一通り追跡できる
- 論理ゲートとフリップフロップを組み合わせてステートフルな順序回路を設計できる
- 完成した TD4 CPU に機械語プログラムを書き込んで実行させる一連の流れを体験できる
- TD4 設計を起点に、FPGA 実装やソフトウェアエミュレータへ自力で展開するための素養が身につく
ハイライト(外部からの言及)
コンピューターの中核であるCPUという名のブラックボックス。その動作の「超」基本原理から具体的な設計例までを解説。 — 出典
本書が設定する学習目標を端的に示す一文。「ブラックボックス」と正直に呼ぶことで、読者の疑問と対話している
アキバで手に入る部品だけで実際の製作も可能。 — 出典
「机上の理論」で終わらせない実装可能性の宣言。ハードウェア未経験者が感じる参入障壁を一文で取り払っている
ハードウェアについて理解を深めたいならいいが、ソフトウェアエンジニアの自分としては「飛ばしてもいい」という本。またパーツは別途自分で用意する必要があるので注意。 — 出典
「コンピュータシステムの理論と実装」を先に読んだ読者視点からの比較。ハードウェア志向とソフトウェア志向で本書の価値が分かれることを正直に示しており、読者が目的に照らして購入を判断できる手がかりになる
読了後にできること
Before(読む前): CPUが「命令を実行する装置」という概念に留まり、クロックサイクルごとに回路内で何が起きているか具体的に追えなかった
After(読み終えた後): 4bit CPU の命令サイクルを回路レベルで追跡でき、エミュレータ実装や FPGA 展開の入口に自力で立てる
章立て
第1章 はじめの一歩のその前に
デジタル回路の基礎用語(電圧・抵抗・GND)を確認する導入章
第2章 LED
最初のハンズオン章。LED 点灯を題材にブレッドボード配線と電源回路の基礎を習得する。以降の回路組み立て全体で使う作業の型を確認する場
第3章 デジタル回路の基礎の基礎
AND・OR・NOT ゲートとフリップフロップを回路図で理解する山場。第 8 章 ALU 設計の直接的な前提知識になるため、読み飛ばすと後半で詰まりやすい
第4章 リセットとクロック回路
CPU の動作タイミングを制御するクロック生成とリセット回路を構築。順序回路の前提となる「時間」の概念を回路レベルで体感できる章
第5章 ROMを作る
命令を格納する ROM を DIP スイッチ等で構成する。「プログラム = 回路上の電気的設定」という対応関係を掴む章で、第 9 章命令デコーダとセットで読むと理解が深まる
第6章 CPUの設計準備
TD4 の仕様(命令セット・レジスタ構成)を定義する設計フェーズ。全体像をここで把握してから各部品の章を読み返すと、部品ごとの役割が明確になる
第7章 1bit CPU(らしきもの)
1 ビットの最小 CPU を試作してフェッチ→デコード→実行サイクルを最小構成で体験する。4bit CPU 設計前の思考実験として機能する章
第8章 ALUとプログラムカウンタ
TD4 CPU の中核となる演算器とプログラムカウンタを TTL IC で構築
第9章 命令デコーダ
機械語ビットパターンを各部品への制御信号に変換する命令デコーダを設計。ROM 設計(第 5 章)との対応を意識すると命令実行の全体フローが追いやすくなる
第10章 全回路図
ここまでの部品を統合して 4bit CPU(TD4)の完成形を組む
第11章 動作確認
完成した TD4 に機械語プログラムを書き込んで実行する最終検証章。動作しない場合のデバッグ手順も含まれており、ハードウェア実装で詰まった時の参照箇所
関連記事 / 参考情報
- 低レイヤーを学ぶための技術書をまとめてみる — CPU・OS・ネットワーク等の低レイヤー技術書を網羅的にまとめた推薦リスト。本書が CPU 設計入門の定番として紹介されている
- Webエンジニアが知るべき低レイヤーの技術とその学習方法 — Web 開発者視点から低レイヤー技術の学習ロードマップを提示。本書を CPU 理解の起点として位置づけている
- エンジニアのインターンが技術書を30冊くらい読んでみたので、ゆるくまとめてみた — インターン期間中の読書記録。入門〜中級の技術書を幅広く紹介し、本書がコンピュータ基礎理解に有効な一冊として挙げられている
- ブレッドボード上でCPUを1から作ってみた話 — 本書の TD4 設計を実際のブレッドボードで再現した実装記録。ハードウェアでの追体験を示す具体的な事例
- エミュレータ作ったらCPUを完全に理解した話 〜低レイヤ基礎知識を添えて〜 — TD4 をソフトウェアエミュレータとして実装する過程でCPU動作を掴んだ体験談。ハード不要の学習パスを示している
- 自作コンピュータの作り方 第1話 — 本書を参照しながら自作コンピュータ製作に着手した連載記事の第一話。TD4 から発展させる実装の具体例
- CPUからOSまで自作してみた話(ハードウェア編) — TD4 設計を土台に CPU→OS 全体を自作したプロジェクトのハードウェア編。本書が長期プロジェクトの起点になった事例
- FPGAでTD4(4bitCPU)を作ってみた — 本書の TD4 を Verilog で記述して FPGA 上に実装した記録。ブレッドボード以外の実装パスを具体的に示す
学習のヒント
- 前半の論理回路・フリップフロップの章を飛ばして後半の CPU 設計に進むと回路図の読み取りで詰まる。基礎章をしっかり消化してから設計に入ること
- ブレッドボードでの実製作が難しい環境でも、Verilog や Chisel を用いた FPGA 実装・ソフトウェアエミュレータとして実装し直すことで同等の学習効果が得られる(Qiita に多数の実装例あり)
- TD4 の命令セット仕様を手元に書き出しながら読むと、命令フェッチ→デコード→実行のサイクルが回路図と対応して理解しやすくなる
- 読了後は「コンピュータシステムの理論と実装(Nand2Tetris)」へ接続すると、4bit から 16bit フルシステムへの学習曲線が滑らかになる
前提知識
- 2進数と16進数の相互変換ができる程度の数値表現の基礎知識
- AND / OR / NOT ゲートの概念(高校数学の論理演算レベルで十分)
- 電子工作・ハンダ付けの経験は不要(製作を行う場合はブレッドボード作業のみで完結する)
次に読む本
コンピュータシステムの理論と実装
TD4 で掴んだ CPU 設計の感覚を、16bit フルシステム(CPU→アセンブラ→OS)へ段階的に拡張できる Nand2Tetris の邦訳。本書との接続が最も自然
プログラムはなぜ動くのか
「CPUの創りかた」がハードウェア回路から CPU 動作原理を積み上げるのに対し、本書はソフトウェア側の視点(プロセスメモリ・実行ファイル形式・OS との連携)を補完する構成になっており、両書を併読すると下から上まで一貫した理解が得られる
FPGAボードで学ぶ組み込みシステム開発入門
「CPUの創りかた」では TTL IC の手配線でとどまるが、TD4 の論理回路を Verilog/VHDL で記述し FPGA 上に移植する次段階で本書が役立つ。HDL 文法とデジタル設計フローを体系的に習得でき、ブレッドボードを超えた実装規模へ移行できる
出版社による内容紹介
コンピューターの中核であるCPUという名のブラックボックス。その動作の「超」基本原理から具体的な設計例までを解説。アキバで手に入る部品だけで実際の製作も可能。
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。