私はこの数年「趣味: CPU」と自称していくつかのCPUを作っています。
このトークは私が作った3つのCPUの紹介を通して、CPUとはどのようなものなのか、このように動作するのかを解説します。
1)CPUと機械語の基礎知識
そもそもCPUとは何か、CPUが実行出来る唯一のプログラミング言語"機械語"とは何か、メモリアクセス・I/Oアクセスなどの基礎知識を解説します。
2)ソフトウェアエミュレータから見たCPU
CPUについて理解を深めるためにCPUの動作をソフトウェア的に再現するCPUエミュレータの実装を見てみましょう。
ここでは私がPHPで実装したファミコンエミュレータ php-terminal-nes-emulator を題材にCPUの動作をソフトウェア的に再現するとはどういうことか、どんなソフトウェアを書ければCPUエミュレータになるのかを解説します。
3)ハードウェアエミュレータから見たCPU
CPUについての理解が深まったところでもう1つレイヤーを降りてみましょう。
ここでは私がRaspberry Piを使って実装したZ80ハードウェアエミュレータ z80-hardware-emulator - 既存のZ80システムからZ80 CPUのICを取り外してその代わりに取り付けて動作させることを目標としたハードウェアエミュレータを題材に、さらに深くCPUのハードウェアインタフェイスについて解説します。
4)電気回路から見たCPU
ここではCPUのハードウェアインタフェイスを理解できた皆さんをCPU動作の最下層: 電気回路としてのCPUのレイヤにご案内します。
このレイヤではCPU命令は電気回路の配線として表現されます。CPUに供給されたクロックが指揮する電気回路のオーケストラを楽しみましょう!
このトークを聞いたみなさんがCPUを好きになり、みなさんなりのCPUを作り、アツいCPUトークをいっしょにできるようになることを願っています! Love CPU!