「世界で最初」
と呼ばれたコンピューター
世界で最初のコンピューターはなにか、という問いは簡単なようで難問です。
コンピューター数学者の間でも意見が割れていますし、そこに特許や軍事機密などの法律問題が絡むと、さらにややこしくなります。
しかし、厳密な定義はともかく、一番「最初と一般に信じられている」ものは、ENIACと言う事になるでしょう。
今回は、世界で最初と呼ばれたコンピューター、ENIACの話です。
目次
第1回 「世界で最初」と呼ばれたコンピューター
第3回 コンピューター技術の確立
EDVAC EDSAC BABY-MarkI すべては歴史の闇の中へ
ENIAC開発の背景
ENIACは、一般には、弾道計算のために開発されたということになっています。
実際、開発の資金を提供した陸軍は、弾道計算のために資金提供したのでした。
しかし、ENIACの構想を考え出したモークリーは、趣味の気象予測のために強力な計算機を必要としていたようです。
当時、「気象は十分な計算パラメータがあれば完全に予測できる」とする仮説が話題となっており、多くの人が実際の予測に取り組んでいました。
物理学者であったモークリーもその一人で、アメリカの降水と太陽の回転の関係について、仮説を立てていました。しかし、この仮説が本当かどうか調べるための計算は、あまりにも膨大で当時の計算機では間に合わなかったのです。
モークリーはさまざまな計算機を調べ、自分でも試作し、やがて真空管を使うと高速な計算機を作れると言うアイディアにたどりつきます。
真空管計算機を作るために電子工学を学ぶ中で、モークリーは若き天才電子工学者、エッカートと出会います。陸軍が開催した電子工学の特別講座で、エッカートは最年少の研究助手、モークリーは最年長の受講者でした。
ふたりは意気投合し、電子計算機の設計にかかります。
モークリーは真空管については素人でした。そして、エッカートは怖いもの知らずの若者でした。
そんな二人だから、こんなたいそれたことを考えついたのです。当時、身近なもので真空管を使った一番複雑な機器はテレビで、30本の真空管を使っていました。しかし真空管は電球や蛍光灯と同じように寿命のあるもので、30本も使うとよく故障するのです。真空管を何百本も使う、複雑な計算機など、理論上は可能でも現実的ではありませんでした。
そのころ、陸軍将校ゴールドスタインは、射表作成のために高速な計算機を探していました。
大砲をうつために必要な「射表」は、ある気温、ある湿度、ある風向きと風速の時に、狙った距離に落とすには、角度と火薬をどれだけの量にすれば良いか、という計算結果をたくさん並べた表です。
ENIAC以前は、数表の作成に微分解析機というアナログ計算機が使われていました。これは円盤とモーターの組みあわせによって積分計算を行う物ですが、速度が非常に遅いと言う欠点が有りました。
歯車ではなく、自由に移動できる円盤を利用して計算を行うため、速度を上げると円盤がすべってしまい、計算結果が狂ってしまうのです。
もっとも、彼自身はデジタル計算機を嫌っていた節があります。
このため、射表を作るのには、急いでもおよそ1ヶ月の期間が必要でした。
しかし、戦局が変わり、大砲が使用される土地が変わると、湿度や風速などに必要な条件が変わります。新兵器が開発されたときも、新たな条件で表を作る必要があります。1ヶ月もかかっていては間に合いません。
陸軍が射表作成を委託していた大学に、たまたまモークリーとエッカートがいました。そして、ゴールドスタインの耳にも、二人が作ろうとしているコンピューターの話が入ります。
ENIACの開発は、そうしてはじまりました。
ENIACの構造
ENIAC(Electronic numerical Integrator and Computer)には17,468本もの真空管素子、1500個のリレー、17万の抵抗、1万のコンデンサ、6千のスイッチ、4千のネオン管、数百のダイヤルが使われています。
総重量は30トンで、高さ2.5メートル、奥行き0.9メートル、幅24メートルで、消費電力は140Kw、放出する熱を冷やすために24馬力の換気システムを必要とするという、非常に大規模な装置でした。
真空管素子と言うものを見た事が無い、と言う方もすでに多いとは思いますが、この素子使うと、電流を増幅したり、スイッチのように流したり流さなかったりの制御が出来るようになります。
とくに、この放電で光を得る物を「陰極線管(Cursord Ray Tube)」と呼びます。パソコンのCRTモニタなどは、まさしくこれです。
コンピューターの基本はスイッチングですので、ENIACでは真空管のスイッチ特性を利用しているわけです。
しかし、現在のコンピューターではスイッチの On Off を利用した2進法で計算を行うのに対し、ENIACでは10進法で計算が行われていました。
これには訳があります。モークリーは2進法で計算ができることを知っていたのですが、それでは先進的過ぎて周囲を説得できず、資金が集められないと考えたのです。
そのため、従来の歯車型計算機を「ただ電子に置き換えただけ」に見えるように10進法を採用したのです。
また、2進法への理解不足もあり、「2進法では必要な桁が増えすぎ、装置が膨大になる」とも考えていたようです。実際にはこれは誤りで、2進法を採用したほうが簡単なのですが…
これについては、ENIACの開発中に誤りに気づいたようですが、2進法の採用は次のマシンで、ということになります。
基本回路
その仕組みはこうです。
ENIACの計算・記憶の単位は、真空管を組みあわせて作った「リングカウンタ」と呼ばれる回路です。
リングカウンタは外部からのパルスで状態を順番に変化させるように出来ており、その状態は10通りあります。この状態を、それぞれ数字の0〜9に対応させて考えます。
リングカウンタが9から0に変化する時、パルスを出力します。このパルスを上の桁のリングカウンタに入力してやれば、桁上がりが処理されます。
リングカウンタのイメージ(実際の回路とは関係無い)。 リングカウンタ自身は、0〜9の10の状態をもち、外部からのパルス(太い赤矢印)によってその状態を順番に変えていく。(黒矢印で書かれたように、0〜9をくりかえす) 9から0に変わる時、カウンタ自身もパルスを発する。このパルスは、1桁上のカウンタへ送られ、桁上がりを処理することとなる。 |
これは、リングカウンタを歯車、パルスを歯車の個々の歯と見ると、まさしく歯車計算機であることがわかります。
この計算単位が出来上がれば、あとはこれを沢山並べ、読みだしが行えるようにしてやれば良いだけです。
足し算を行うには、パルスとして読み出された各桁を、別のカウンタに入力してやるだけです。
リングカウンタには、真空管の故障を検出する仕組みも内蔵されていました。
上の図を見れば判るとおり、リングカウンタは10個の「フリップフロップ」のうち、どれかひとつだけが ON になるように設計されています。
逆にいえば、複数がONになったり、ひとつもONがなかったりすると真空管の故障が考えられます。そのようなときには、エラー信号を出すようになっているのです。
また、リングカウンタはユニットとして作られ、故障時には故障を検査するのでなく、リングカウンタユニットを丸ごと交換するようにしました。
こうすることで、故障しやすい真空管を大量に使っても、ENIACは十分信頼できる装置となったのです。