レギュラートーク(30分)

CPUとは何か PHPカンファレンス沖縄

長谷川智希 tomzoh
CPUが好きです。私は中学生の頃にMSXというパソコンを入手し、MSXのCPUであるZ80のマシン語をプログラミング言語として体験していました。

時を経ること25年、2016年にPHPで書かれたゲームボーイエミュレータのコードを読んで衝撃を受けました。ゲームボーイのCPUはZ80をベースに開発されたものであり、ゲームボーイエミュレータのコードで実装されていたのはまさにそのZ80の命令だったのです。

その瞬間、それまで「よくわからないけどすごいプログラム」だと思っていたエミュレータのコードが、ハードウェア仕様をソフトウェア的に表現したものであることが理解できました。

そしてその3年後。名著「CPUの創りかた」で紹介されている4ビットCPU TD4を実装し、そこでまた衝撃を受けました。そこに見たCPUは、プログラミング言語として見たCPU、エミュレータの対象として見たCPUのどちらとも違った、電気回路として表現された状態機械としてのCPUでした。

このトークではミニマムなCPUとしてのTD4を題材に、PHPでそのエミュレータを実装し、プログラミング言語として見たCPU、エミュレータの対象として見たCPU、そして電気回路として表現されたCPUがどの様に動作するのかを解説します。

このトークを通してみなさんがCPUの設計や動作に興味を持ち、いっしょにCPUについて語れることを楽しみにしています!