セルオートマトンによるCPU作成
CPUを自作しました!(って言ってもバーチャルなものです)
世の中CPUを自作している人はたくさんいます。汎用のICチップを組み合わせて作る人もいれば、トランジスタを大量に組み合わせて作る人もいます。
この界隈ではバイブルのような「CPUの創りかた」という本もあるらしいです。私は読んでいないのですが、これを読めばたぶんだれでもCPUを作れるんだと思います。
半導体を使わずにリレーでCPUを作る人もいます。回路のスイッチングができればなんでもよいのです。
Relay Computer / リレーコンピュータ #shorts - YouTube
リレーとはこんな部品です。
継電器 - Wikipedia
昔は本当にリレーで作られたコンピュータもありました。
機械音がカッコいい! 60年前の世界初の小型純電気式計算機「14-A」を動かしてみた@樫尾俊雄発明記念館 - YouTube
リレーは物理的にスイッチが動くので動作速度を向上させられず、現代では半導体に比べてメリットがありません。
こちらはボールを転がして計算させているコンピュータです。
Learn how COMPUTERS work using MARBLES - YouTube
物理ではなく仮想世界では、マインクラフトでCPUを作る人もいます。
MOD・コマブロ無しで6bitCPU作ってみた - YouTube
仮想世界でのCPUがありならば、セルオートマトンでCPUを作る人もいます。
セルオートマトン(cellular automaton)は格子状に並んだセルが単純な規則で次々に状態遷移するモデルです。各セルは隣接するセルの状態に応じて次の時間の状態が決まります。状態遷移の規則によってさまざまなセルオートマトンが考案されています。代表例がライフゲームです。
ライフゲーム - Wikipedia
ライフゲームでCPUを作っている例
A Simple CPU on the Game of Life - Part 4
ワイヤワールドというセルオートマトンでもCPUを作っている人がいます。このサイトはCPUの仕組みを理解する上でとても参考になります。物理世界のCPUとワイヤワールドのCPUとで異なるところは多いと思いますが、似ているところもあるはずです。
The Wireworld computer
半導体でもリレーでも仮想世界でも媒体はなんでもよく、論理回路と順序回路があればCPUを作れます。論理回路はANDやNOTなどの論理演算ができる回路です。信号は瞬時に伝わるのではなく素子の間を順番に時間差で伝わっていきます。その時間差を利用した回路は順序回路と言います。
マインクラフトもセルオートマトンみたいなもんですね。
ということで私はセルオートマトンで作ることにしました。今回のセルオートマトンは、ライフゲームやワイヤワールドとは異なるルールで私のオリジナルです。これによりCPU設計の疑似体験ができました。
完成形はこんな感じです。ブラウザ上でセルオートマトンが動き、CPUとして機能します。
このCPU開発日記をしばらく連載として記事にしていくつもりです。続かなかったらごめんなさい。続いたら、基本的な回路を組み合わせるだけでCPUになるということを示したいと思います。