🐙
Turing CompleteでCPUを学ぼう
Turing Completeとは?
出題された問題を解きながらデジタル回路を作成し、CPUを実装するパズルゲームです。Steamで配信されており、Windows, Mac, SteamOSに対応しています。
NANDから論理回路を作り、コンポーネントを作って、CPUを実装し、最後は自作のアセンブリ言語でゲームの実装までできるようになります。
今までコンピュータをモチーフにしたゲームはいろいろ出てきましたが、恐らく再現度の高さで言えばTuring Completeはダントツだと思います。
NANDがあればなんでもできる
NANDはANDの演算結果の0と1を反転させた演算で、次のような真理値表になります。
In1 | In2 | Out |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
実はNAND演算を計算するNAND回路を組み合わせれば、基本的な論理回路(AND, OR, XORなど)は全て作れます。Turing CompleteではNAND回路で基本的な論理回路を作るところはスタートします。
基本回路
NAND回路から基本回路を作っていきます。
算術回路
演算回路も実装していきます。
半加算器
全加算器
他の回路も
ネタバレになるので詳細は書きませんが他の回路もどんどん作っていきます。
- 2の補数
- 1bitメモリ
- 3bitデコーダ
- カウンタ
1バイト命令セットCPU
最初は1バイトの命令セットを持ったシンプルなCPUを作ります。
迷路を解くプログラムを書く
作ったCPUで迷路を解くプログラムを書きます
4バイト命令セットCPU
次に4バイト命令セットを持ったCPUを作ります。
ハノイの塔を解くプログラムを書く
実際に解いている様子はこちら
まとめ
Turing Completeは本当に良くできたゲームです。年末年始の長期休暇を利用してCPUの勉強をしてみてはいかがでしょうか?
Discussion