わかりやすく コンピュータ どうやって 覚える
ここまでは、ゲートで計算をしてきました。ところがゲートは、入力がなくなると出力もすぐに消えてしまいます。では、値はどうやって覚えておくのでしょうか。そこにはとても賢い一手が隠れています。
手を離すとすぐ消える
ゲートには弱点が一つあります。
入力が入っているあいだしか、出力が出ないのです。
ボタンを押すと明かりがつきますが、手を離した瞬間に消えてしまいます。
下のボタンを押してから離すと、その違いがすぐにわかります。
ボタンを押しているあいだだけ明かりがつきます。
これでは計算はできても、記憶はできません。
数を一瞬作ることはできても、手を離したとたんに消えてしまうからです。
値をつかまえておく別の方法が必要です。
自分の出力を自分の入力に
賢い一手とは、ゲートの出力をふたたび自分の入力に戻すことです。
すると不思議なことが起こります。
いったんオンになると、そのオンの信号が自分自身をオンにし続け、入力がなくなっても状態がひとりでに保たれるのです。
出力がふたたび入力に戻ります。
このフィードバックの輪が、記憶のかなめです。
二人が背中合わせにもたれ合って立つように、回路が自分の状態を自分で支えているのです。
入れておけば、そのまま残る
このフィードバック回路で、値を一つ覚えるマスを作ります。
「覚えて」ボタンを押すと1になり、「消す」ボタンを押すと0になります。
大切なのは、ボタンから手を離してもその値がそのまま残ることです。
値を入れてから手を離しても、値は残ります。
手を離しても値が残ります。これが記憶です。
この小さなマス一つを、フリップフロップと呼びます。
ちょんと押すと片側へ倒れて、そのままとどまることから付いた名前です。
書いておいて、あとで取り出す
記憶の役目は、時間がたってからはっきりします。
いまの値を書いておき(書き込み)、しばらくしてから確かめる(読み出し)と、そのまま残っています。
この「書いて読む」が、あらゆる保存の基本の動きです。
再生ボタンを押すと、書き込み、待つ、読み出しが順に進みます。
書いて、待って、読む。
書いた値は、時間がたってもそのまま読み出せます。
この単純な約束のおかげで、コンピュータはたったいまの計算も、入力した文字も、しばらく覚えておけるのです。
このマスをたくさん集めるとメモリになる
フリップフロップ一つが覚えられるのは1ビット、つまり0か1のどちらか一つです。
8個集めると1文字(1バイト)になり、数千万個集めると写真1枚や曲1曲を入れられます。
実際のコンピュータの主記憶はもっと小さなコンデンサのマスを使いますが、0と1を1マスずつつかまえておくという原理は同じです。
下のマスは一つずつオンにできます。
マス一つが1ビット。
計算する回路(加算器)と覚える回路(フリップフロップ)、この二つがコンピュータの二本の柱です。
この先のレッスンでは、集めた記憶のマスごとに名札(アドレス)をつけ、目当てのマスにまっすぐたどり着く方法を見ていきます。