裁判で最初と認められた
コンピューター
前回に続き、今回も最初のコンピューターの話題です。
しかし、今回は「裁判で」世界最初の栄誉を勝ち取ったコンピューター。はっきり言いますと、あまりコンピューターと呼べる代物ではないのですが、いくつかの点は、後のコンピューター開発に大きなヒントを残しています。
目次
解説
アタナソフ・ベリー・コンピューター
アイオワ州立大学準教授のアタナソフ(John V. Atanasoff)と、大学院生のベリー(Clifford E. Berry)が共同で設計したこのコンピューター(以下 ABC マシン)は、半自動でガウス消去法を用いて連立一時方程式を解くためのものでした。
その仕組みは、パンチカードにより入力された2つの係数ベクトルを演算し、係数のうちの少なくとも一つを0となった式をパンチカードで出力するというものです。
この操作を必要なだけくり返せば、最終的に1つの変数だけを残した式が求まるはずです。これは、求めるべき答えに他なりません。
しかし、これではあくまでも「計算の補佐をする機械」であり、コンピューターと呼べる程のものではありません。
コンピューター(計算手)とカリキュレーター(計算機)の違いは、アルゴリズムを与え、柔軟な計算ができるかどうかですが、ABC マシンは「ガウス消去法」という単一アルゴリズムの専用機であり、アルゴリズムを「与え」、「柔軟な」計算をすることは出来ないのです。
そのうえ、結局はパンチカードの入出力をうまく行う事が出来ずに、最終的なマシンは完成しなかったのです。
これが「コンピューターと呼べる代物ではない」と冒頭に書いた理由です。
独特のメモリ機構
コンピューター開発初期、一番問題となったのはメモリの確保でした。
回路の組みあわせで「状態を記憶する」ことはそれほど難しくありませんが、それをコンパクトにまとめ、たくさん用意するのは場所の問題が有りました。
ENIACは金に糸目を付けずに開発されたため、1つの記憶装置を10進数記憶として、それをたくさん並べる事でメモリを実現していました。しかし、これは場所も金もかかり過ぎます。
ABCマシンの使っているメモリは、非常に画期的なものでした。なんと、メモリにコンデンサーを使おうと言うのです。
コンデンサーは電気を貯える素子です。これに電気が溜まっているか溜まっていないかで2進数(0と1)の記憶を行おうと言うアイディアでした。
しかし、コンデンサーに溜まる電気というのは、非常に不安定です。回路を繋げたままではすぐに放電してしまいますし、回路を切断しても自然放電してやがて消えてしまいます。積極的に電価を読みだした時に消えるのは言うまでもありません。これではメモリとしての役には立ちません。
そこで、ABCマシンでは、非常に特徴的な機構を採用していました。コンデンサーを回転するドラム上に配置し、ドラム上の回路と計算機構の回路を、ブラシのような接点で結んだのです。
こうするとドラムを回転させる事で、メモリ回路が接続されたり、切断されたりを繰り帰します。接続された時に書き込みを行えば、その後は切断されて放電を抑えられます。
そして、ドラムが1周してまた接続された時に、そのメモリの内容を読みこみ、すぐに同じ値を書きこみます。
「同じ値を書くのなら、読み出す意味が無いのではないか」と思われる方もいるでしょうが、これは1周する間に自然放電した電圧を補うためです。読みこみ回路には電圧変動分を補正する「しきい値論理回路」が入っていますので、ここで電圧は正しく補正され、書き込みが行えるのです。
「しきい値論理」というのは、アナログの値を、ある値で区切って2値のデジタルに変換することです。
真空管やトランジスタでは、ベース・コレクタ間に一定の電圧を掛けた状態でエミッタの電圧を変化させてやると、ベース・コレクタ間の電流が急に流れたりとまったりする特性があるので、これをしきい値論理回路として使用することが出来ます。
左図は、このしきい値論理回路を応用した、抵抗論理回路と呼ばれるものです。(トランジスタでは無く、真空管を使用)
上と下の端子の間に電圧(120V)を掛けた状態で、X Y に +110V or +35V の電圧をかけてやります。(それぞれ、1 と 0 に対応)
ここに何の電圧もかからない時には、やはり X Y に並列接続された -120V によって、真空管には - の電圧がかかるようになっています。
ここで、X Y それぞれに電圧がくると、-120 V との差だけが真空管に入ります。実際には、抵抗によって X Y 両方が +110Vの時のみ、真空管に + の電圧がかかるよう調整されています。
電圧がかかると、真空管の上から下に電流が流れます。ということは、電圧がかかっていない時は真空管には電流はながれず、かわりに Z に向けて電圧がかかることになります。
以上を、X Y Z それぞれの電圧として表にまとめると、以下のようになります。
X | Y | Z |
---|---|---|
+110 | +110 | +35 |
+110 | +35 | +110 |
+35 | +110 | +110 |
+35 | +35 | +110 |
これを +110 を 1 、+35 を 0 と読み替えれば、nor (否定論理和)回路ができあがったことになります。
ABC マシンでは、常にメモリを操作しつづける事で値を保持するこの動作を「ジョギング」と呼んでいました。このアイデアは現在のコンピューターの主記憶 D-RAM にも使用されており、現在は「リフレッシュ」と呼ばれています。
二進数の採用
すでに述べましたが、メモリを電価のある、なしであらわすと言う事は、記録を2進数で行う、ということに他なりません。ENIAC 以前に考案された ABC マシンで、すでに2進数の採用が検討されていたのです。
現在では、2進法をつかった論理回路は、すべて「フリップフロップ回路」を基本として構築されます。
この状態は、外部からの入力によって更新されます。
アタナソフも、論理回路をつくるにはフリップフロップがあれば良い、という事に気付いていたようですが、彼はこの重要な回路を安定動作させる事が出来ませんでした。
そこで彼は工夫を重ねた挙げ句、抵抗マトリクス回路の出力にしきい値回路を組み合わせることで加減算を行うことに成功します。 左図はABC マシンの加減算論理回路。 抵抗マトリクスにしきい値論理回路を組み合わせたもの・・・と言うことなのだと思うが、これがどうして加減算回路になるのか、アナログ回路の知識が乏しい私にはわかりませぬ (^^; デジタルのフリップフロップでかかれた加減算回路などはまだ読めるのだが・・・ |
彼は、このようにして2進数の記憶装置と、計算回路を組み立てました。
しかし、結局記憶装置にパンチカードから値を入力する仕組みと、記憶装置の値をパンチカードに出力する仕組みを安定させることが出来ませんでした。
そして1942年、戦時召集で彼は大学を去ることとなり、ABCマシンは歴史の闇に埋もれることとなったのです。
1942 年、ABC マシンの最終状態。 中央奥に見えている円筒が、コンデンサを搭載した記憶ドラムである。 このマシンは、その後記憶ドラムだけを残して廃棄された。 |