はじめに
こんにちは
みなさんは、身の回りのパソコンやスマホがどうやって動いているか気になったことはありませんか?
今回はそれを探るべく、実際にコンピューターをゼロから作って確かめる試みとなります。
この記事では、CPUだとか、論理回路だとか、FPGAだとかの用語が一切わからない人でも何となくコンピューターの仕組みがわかるようになることを目指しています。
この記事を書くのと同時進行で、作業を進めていくつもりです。読者と一緒に勉強していけると嬉しいです。
まだまだ勉強中な私が、わかりやすさ重視で解説していきますので、正確性がかなり怪しいです。ご了承ください。
注意!
正確さが怪しいです!内容はふわっとしていているので、気になるところは調べてみてください!
なにをするのか
この記事の目標は、
「Turing Completeで作ったコンピューターをFPGAに再現して動かそう!」
ということです。
このままでは意味不明だと思うので順を追って説明していきます。
Turing Completeとは
Turing Complete(チューリングコンプリート)とは、おなじみのゲーム販売サイト、Steamにて販売されているPCゲームです。
お値段は2,050円(2023/12/5時点)。結構お高い。
これが実際のプレイ画面。「AND」とか「OR」みたいなのはコンピューターの部品で、これらを黄色い線でつないでいって、ゲーム内で実際に動くコンピューターを作っていく。
つまり、パソコンっていうコンピューターの中で、コンピューターを自作するゲームです。(ややこしい)
見た目は相当つまんなそうに見えるけど、実際やってみるとパズルゲームみたいで結構楽しいんですよね。(例えるなら、数独とか、Baba Is Youみたいな感じ)
もし、このゲームの意図を全く知らない人がプレイすると、多分ただのパズルゲームだと思っちゃいそう。
情報の知識を多少持った人なら、一日以内でゼロからコンピューターを作ることができるすごいゲームなのですが、日本語訳が無いのがつらいところ。
つまり...
Turing Completeは、みなさんがお持ちのパソコン上に、パズルゲーム感覚でコンピューターが作れちゃうゲーム。
FPGAとは
これです。
あまりにも「電子部品」っていう感じを醸し出していて、一部の人は興奮し、それ以外の人は拒絶反応を起こしそう。
でも今回はコイツに頼らざるを得ないので、恐れず接していきましょう。
FPGAは、「Field Programmable Gate Array」の略。
とてもいい加減な和訳をすると、「いつでも回路組み換え君」みたいな感じ。
Turing Completeはパソコン上のソフトだったのに対し、こっちはリアルに存在するモノ。
FPGAの構造を、さっき載せたTuring Completeの画面を使って説明します。
Turing Completeでは、「AND」とか「OR」といった「コンピューターの部品」を、自由にひっぱれる黄色い線でつないでコンピューターを作ります。
現実世界でいうと、この「黄色い線」は導線、ワイヤーです。
https://www.apple.com/jp/shop/product/HPS92ZM/A/mophie-usb-c-cable-with-usb-c-connector3m
現実世界でコンピューターを作るとなると、「コンピューターの部品」が最低でも1000個くらいは欲しくなります。
そうすると、部品を用意するのも大変だし、数千本とか、数万本とかのワイヤーでそれらを繋ぐ必要が出てきます。
こんなんを手動で配線してたら途方もない時間を浪費することは目に見えてます。
(手動でやってる人もいます。以下リンクからどうぞ!)
そんなときにFPGA。FPGAの中には、めっちゃちっちゃい「コンピューターの部品」が数万~数十万個あらかじめ入れられています。
FPGAを使えば、それらの部品同士を必要な分だけ自動で繋いでくれます(プログラムさえ書けば)。便利!
しかも、つなぎ方をミスっても何回でも修正可能です。
そういうわけで、「いつでも回路組み換え君」っていうことです。
つまり...
FPGAは、コンピューターに必要な部品の用意や、配線作業を勝手にやってくれる優れもの。
実はもっといろんなメリットがあります!(小型、低消費電力など)
なにをするのか(もう一度)
「Turing Completeで作ったコンピューターをFPGAに再現して動かそう!」
つまり、Turing Completeっていうゲームの中で作ったコンピューターを、FPGAっていう便利な機械を使って現実世界に再現して動かしてみようってことです。
完成した暁には、FPGAがパソコンみたいなほんとに計算できるコンピューターになります。
これがほんとの自作PC。
今後の流れ
ゲームの流れに沿ってコンピューターを作っていきます。
上の画像はTuring Completeの販売ページに掲載されているもの。
このゲームでは、
- 「アセンブリ言語」
- 「CPU設計」
- 「コンポーネント」
- 「論理回路」
この4つについて学べるよ~とのことです。難しそうな単語が並んでいますが、後々説明していくので今は気にしなくても大丈夫です。
次回以降、下から上の順に説明していきます。
つまり、出発地点は「論理回路」です。
(初見さんからすると、文面がすごくつまらなさそう...論理回路て...)
次回は...
論理回路を作っていきます!
余談
今回作る予定のコンピューターは、パソコンやスマホなど、みなさんの身の回りにあるコンピューターよりも断然性能が低いです。なので実用的かと言われたら...
実は、FPGAは性能的なことを考えると、今回のような使い道に向いてないです。
FPGAに向いているのは、AIとか、画像処理といった用途です。
そういうわけで、AIとか画像処理とかが流行っている現在、FPGAはだいぶ注目されています。
こういうことに興味のある人は、この機会にぜひともFPGAを買ってみて、遊んでみるといいんじゃないでしょうか。