EDVAC,EDSAC & The Baby
目次
ノイマン型コンピューターの誕生
EDVAC は軍が資金援助し、軍事機密として開発されていました。情報を公開する事は出来ませんので、特許も申請せず、完全な極秘状態で作業が進められていました。
しかし、ノイマンは EDVAC の論理的側面を、設計思想や技術と共にレポートにまとめ、ノイマンの名前で発表してしまったのです。
彼はこの中で、この設計思想を自分が考えたとも、自分がプロジェクトの中心人物だとも言ってはいません。しかし、世間の人々は彼こそがこの素晴らしい機械の設計者で、プロジェクトの中心人物だと信じて疑いませんでした。
ゴールドスタインはENIACの開発中心人物の一人であるが、権威主義的なところがあり、自分のかかわったプロジェクトを有名にしたかったようだ。そして、無名の学者2名が設計した、というよりも、一流数学者の設計としたほうが世間にアピールできると考えたのだ。
ノイマンは自分のものだと主張することはなかったが、エッカートとモークリーのものだと訂正することもなかった。それどころか2人に対して特許を放棄するように提言するなど、彼もまた、自分の手柄にしようとしていた意図が感じられる。
ここに、「ノイマン型コンピューター」という言葉が登場します。現在、コンピューターと言う言葉はほぼ間違いなくノイマン型を意味します。
しかし、彼はその発明を彼の名前で世に知らせた・・・悪く言えば横取りしただけで、重要なアイデアはなにも出していません。
また、ノイマンはEDVACの論理面にのみ興味があり、技術面には興味がないどころか理解を示しませんでした。そのことから元々プロジェクトの中心人物であり、技術に詳しいモークリーと対立するようになって行きます。
勝手な論文発表と不理解から、モークリーはノイマンが自分の手柄を横取りし、EDVACを自分のものにしようとしているのだと考えるようになります。二人は事あるごとに対立し、EDVACプロジェクトは前に進むことが出来なくなっていきます。
この事件から時をおかずして、別の問題も発生します。ENIAC計画の開始時には無関心だったムーア校の監督責任者が、ENIACを自分の手柄にしようとし始めたのです。また、大学もENIACの特許を大学に寄与するように求めてきました。
結局、EDVAC プロジェクトはこのころを境に崩壊していくのです。
途中から参加して、すべてを独り占めするような男とは仕事をしたくない、という感情は当然の物でしょうし、おいしいところだけ持っていこうとする大学の態度にも問題がありました。
そのうえ、ノイマンの発表を受けて、世界各地で EDVAC 方式のコンピューターの開発が始まってしまいました。EDVAC は、「世界初」の名声すらも危うくなってしまったのです。
モークリーとエッカートはプロジェクトを捨てて大学を辞めました。その後も主要人物が抜けて行き、EDVAC 開発は、大きく遅れる事になります。
開発中の EDVAC。完成後は綺麗なキャビネットに納められ、配線などは見えないようになっていた。 これは配線むき出し状態の珍しい写真。 |
初の実用的コンピューター EDSAC
そうやって EDVAC の開発が難航する中、ついに EDVAC 型の設計で実際に稼動する世界最初のマシンが、イギリスのケンブリッジ大学で誕生します。
製作者はモーリス・ウィルクス(Maulice Wilkes)。初稼動は1949年5月でした。
名前は EDSAC(Electronic Delay Storage Automatic Calculator)。EDVACが必要としたメモリ量よりはずっと少ないですが、32bit 512word のメモリを備え、3000本の真空管が使用されていました。
EDSAC が EDVACと違う点は、プログラムとデータを判別する 1bit をつけなかったことです。このことによりプログラムをデータと同じように書き換えることが可能になり、柔軟なプログラムが可能となりました。
EDSAC は18個の命令を持ちます。プログラムでは、その18個の命令を英字1文字で示し、命令には演算対象の番地とそのアドレスのサイズを指定するようになっていました。
EDSAC。 棚状に作られた本体に並んでいるのは、ほとんど真空管である。おそらく演算部の写真。 |
EDSAC により、科学者は初めて「プログラムというものが、予想されていたよりもはるかに難しいものだ」ということを認識します。EDSAC では多くのプログラムが作られ、始めて「プログラムの教科書」とも言える本が出版されました。
それらの中で一番有名なプログラムは、ウィーラー(Wheeler)のイニシャルオーダーと呼ばれるプログラムでしょう。
イニシャルオーダーとは、コンピューターを起動した時に最初に動くプログラムで、EDSAC では紙テープからデータを入力する時に、10進数から2進数へ変換を行い、英字で示されたプログラムを内部形式に変換し、相対アドレスを絶対アドレスに直し、必要なライブラリを結合し、そうして入力されたプログラムを実行できるようにコンピューターを初期化するものです。
つまり、今で言えば BootROM 兼 OS 兼 アセンブラ 兼 リンカ 兼 ローダだと思って良いでしょう。このプログラムは、わずか 41 ステップで書かれていました。
ここには、Windows 用と Macintosh 用の EDSAC Simulator のプログラムも置かれています。
本当の世界初は・・・
EDSAC は、たしかに現代型のコンピューターとして実用になる最初の機械だったかもしれません。
しかし、それよりも早く、英国マンチェスター大学では Baby Mark-I と呼ばれる EDVAC 型コンピューターの試作がなされていました。開発者はウィリアムス(F.C.Williams)とキルバーン(T.Kilburn)です。
このマシンはENIAC や EDVAC の影響で作られたのではありません。COLOSSUS の延長上にあるのです。プロジェクトは COLOSSUS に参加していたニューマン(M.H.A. Newman)が開始したもので、一時期チューリングも参加していたようです。
初稼動は、EDSACよりも早い1948年 6月 21日。2の18乗の最大の真の約数(2の18乗自身を含まない約数)を見つけだすプログラムを、52分間で終了しています。そのため、これを世界最初のコンピューターだと主張する向きもあります。
Makr1 コンピューター。 むき出しの真空管の中、写真中央右に丸く窓の開いた部分が見えます。ここに「ウィリアムス管」が入れられていました。 マンチェスター Baby Mark-I は、単に「The Baby」とも呼ばれます。 |
しかし、Baby Mark-I は、開発者の一人であるウィリアムスが明言するように、コンピューターアーキテクチャの試作と言うよりは、メモリのアイデアが実際に動作するかどうかの試作だったという意味合いが強いです。
Baby Mark-I には、彼の設計による「ウィリアムス管」がメモリとして採用されていましたが、その容量は 32bit 32wordしかありませんでした。