読んで学ぼう
2021年3月掲載
作:小池帆平
皆さんこんにちは。
産総研つくばセンターで毎年7月に開かれている一般公開で、多くの皆さんに体験してもらっている「手作りコンピュータ最初の一歩」という出し物について紹介したいと思います。
皆さんは、コンピュータってどうやって動くんだろう?と思ったことはありませんか?コンピュータは複雑なので、この疑問に、ひとことで答えるのは、ちょっと難しいです。そこで、できる限り簡単な、最初の一歩となる勉強から始めてみませんか?というつもりで用意したのが、この出し物です。
この出し物は、皆さんに、より良く理解してもらうための助けとなるように、産総研のおにいさんやおねえさんによる楽しい劇があったり、参加者の皆さんに実際にハンダ付けを体験してもらって「ラムちゃんとリングくんボード」というハードウェアを手作りしてもらったり、そして、産総研で行われている最新の研究も紹介したりと、とても盛りだくさんです。これを読んで、少しでも雰囲気を味わってもらえればと思います。
それでは最初に、今回の話に出てくる、ゆるキャラくんたちを紹介しておきましょう。真ん中にいるのが、本日の主役、さかさまくんです。左にいるのは、ラムちゃん、そして、右にいるのがリングくんです。
みんなのまわりには何台のコンピュータがありますか?
まず、パソコンがそうですよね。パソコンだけでなく、今やなくてはならないスマートフォンも、みんなが大好きなゲーム機も、実は、すべてコンピュータです。
コンピュータの心臓部は、デジタル
下の写真は、さっきのパソコンの中をのぞいてみたところです。四角い半導体LSIがいくつも並んでいて、0と1という言葉だけを使って、たがいに話をしながら仕事をしています。
コンピュータの中では、数だけでなく、絵も、音も、文章も、すべてのデータが0と1だけを組み合わせて表現されており、同じように0と1で表現されたプログラムによって指示される通りに、どんな複雑な仕事でもこなしていきます。
コンピュータの心臓部の半導体LSIのなかには、0と1のデータをやり取りする部品がぎっしり詰まっています。その中で一番簡単な、小さな小さな部品、それが、このさかさまくんです。
さかさまくんの働きはとても簡単です。0といわれたら1とこたえ、1といわれたら0とこたえること、たったそれだけです。たとえば、「110?」といわれれば、「001!」とこたえます。要するに、0と1とをさかさまにするから、「さかさまくん」なんですね。
下の写真は、産総研で研究している、未来のさかさまくん1つ分を拡大したものです。(一般公開の会場に来てもらえば、顕微鏡をのぞいて実物を見ることができます。)この赤い部分には、産総研で研究中の最新型のトランジスタであるトンネルFETが2つ並んでいます。
1つのトンネルFETは、0がくるとオンになるスイッチです。もう1つのトンネルFETは、1がくるとオンになるスイッチです。それらが、下の図のようにつながっています。
1が入ると、下のスイッチがオンになるので、電池のマイナス、つまり0が出されます。
0が入ると、上のスイッチがオンになるので、電池のプラス、つまり1が出されます。
以上が、さかさまくんがどのように動くかというしくみです。
さかさまくんは、ふつうは、下の図のような三角と丸を組み合わせた記号を使って表されます。(誰かの頭の形に似ていませんか?)
さかさまくんはノットゲートまたはインバータとも呼ばれます。「ノット」という英語は、「~じゃない」という、まさに「さかさま」を意味する言葉です。
1人のさかさまくんの働きは、0と1をさかさまにするという、とても簡単なことですが、もしさかさまくんが何人か集まると、どうなるでしょうか?
例えば、2人のさかさまくんが手をつなぐとどうなるか、とか。
3人のさかさまくんが手をつなぐとどうなるか、とか。
実は、さかさまくんが集まると、それまでにない新しい働きをもった回路に生まれ変わるんです。
さかさまくん2人が合体すると、このようにラムちゃんに進化します。
(ラムちゃんがどのように動くかは、あとで詳しく説明します。)
いっぽう、さかさまくん3人が合体すると、このようにリングくんに進化します。
それでは、リングくんがどういう働きをするか、調べてみましょう。
これは、リングくんの回路図です。3人のさかさまくんがぐるっと輪のようにつながっています。(輪を英語にするとリングです。)
最初に、左のさかさまくんに0がはいったとしましょう。左のさかさまくんは1を出して、真ん中のさかさまくんに伝えます。真ん中のさかさまくんは0を出して、右のさかさまくんに伝えます。そうすると、右のさかさまくんは1を出します。つまり、最初に右に出てくる値は、1になります。
右のさかさまくんから出された1は、ぐるっとまわって、また、左のさかさまくんに入ります。そうすると、左のさかさまくんは、今度は0を出して、それが真ん中のさかさまくんに伝わり、1が出てきます。その1を受け取った右のさかさまくんは0を出します。右に出てくる値は0に変わりました。
これを繰り返していくと、右のさかさまくんが出す値は、最初は1、次に0、次にまた1、次にまた0、次にまた1…と、ずっと繰り返すことになります。
実は、リングくんは、1と0を交互に繰り返し出し続ける、
これは、さかさまくん2人をつないだラムちゃんの回路です。
さっきと同じように、左から0をいれてみましょう。下のさかさまくんは1を出します。その1を受け取った上のさかさまくんは0を出します。その0が下のさかさまくんに伝わって、下のさかさまくんはやっぱり1を出します。 あれ?ずっと変わりませんね。ラムちゃんじっと固まっちゃいました。
それでは、最初が0でなく1だとどうなるでしょう?
今度は、左から1をいれてみましょう。
下のさかさまくんは0を出します。その0を受け取った上のさかさまくんは1を出して、その1が下のさかさまくんに伝わるので、下のさかさまくんは0を出します。
やっぱり、ずっと変わりませんね。
こちらの場合も、ラムちゃんまたまた固まってしまいました。
以上をまとめると、ラムちゃんは、下の図のように、2通りの固まり方をすることになります。
これは、ラムちゃんが2つのうちのどちらであるかをずっと覚えられることを意味します
つまり、ラムちゃんは、0か1のデータを記憶することのできるメモリ回路になるのです!
このようなラムちゃんの回路は、実際に、コンピュータの中でデータを記憶するために使われています。こんな感じに、たくさんのラムちゃんが並んで、それぞれが0か1を覚えています。
それでは、2通りあるラムちゃんの固まり方を入れ替えることはできるでしょうか?これができれば、メモリが記憶するデータを書き換えることができるようになります。
このために、下の図のように、無理矢理1を送り込むスイッチを追加します。
例えば、左側のスイッチをオンにすると、もともとは0だった左の線に、1が送り込まれます。上のさかさまくんは、0を出そうとしていたので、スイッチとケンカするのですが、力が弱くて、負けてしまいます。
上のさかさまくんがスイッチとのケンカに負けると、下のさかさまくんには1が入って、下のさかさまくんは0を出すようになります。0が入った上のさかさまくんは、1を出すようになり,上のさかさまくんとスイッチは仲直りです。もうスイッチを離しても、左の線は1のままです。
こうして、ラムちゃんは、最初の固まり方とは違う、もう一つの固まり方に入れ替わることができました。このようにスイッチを追加することで、メモリが記憶するデータを書き換えることができるようになります。
これで今回のお話しはおしまいです。とても簡単な働きしかしないさかさまくんでも、何人か集まってつながると、いろいろな面白い働きをする回路に生まれ変わることが、わかってもらえたかと思います。
産総研一般公開では、このあと、上で習ったラムちゃんとリングくんの回路が実際に動くラムちゃんとリングくんボードを、プリント基板に部品をハンダづけして手作りしてもらい、どのように動くかを実験してもらっています。
このボードは、上半分がラムちゃん、下半分がリングくんになっていて、ラムちゃん書き換えスイッチを押すと、記憶するデータが変わってラムちゃん表示LEDが変わります。下のリングくん表示LEDは、ずっと点滅します。
工作を始める前は、うまく作ることができるかどうか皆さん心配そうですが、産総研のおにいさん/おねえさんがマンツーマンで指導してくれて、皆さん、ちゃんと動くものを作ることができます。ボードが動いた瞬間の皆さんの笑顔を見るたびに、私たちもとてもやりがいを感じます!
以上が、産総研つくばセンターで毎年7月に開かれている一般公開で、多くの皆さんに体験してもらっている「手作りコンピュータ最初の一歩」という出し物のあらましです。これを読んで興味を持った人は、ぜひ、次回の産総研一般公開をチェックしてみてください
また、今回紹介した初級編の続編として、3つの中級編も用意されています。コンピュータを作るために、さかさまくんのほかにも必要となる、もう少しだけ複雑な動きをする、いくつかの部品の働きを、順を追って理解していってもらい、最後にはマイコンチップにプログラムを書き込んで動かすところまでたどり着きます。それぞれのスライドの表紙を、以下に載せておきますので、参考にして下さい。
協力:相沢理花(キャラクターデザイン)、森貴洋(トンネルFET写真提供)