ちえの和webページ
Maurice Vincent Wilkes
1913 -
最初のプログラム内蔵型コンピュータEDSACの製作者
モーリス・ウィルクスは、デジタル・コンピュータの黎明期に貢献したイギリスの研究者だ。ENIACに代表される初期のデジタル・コンピュータは、完成された製品というよりは、むしろ実験機材といった方が適切なくらい1台1台研究者が四苦八苦して作り上げるものだった。特に不安定な真空管と記憶装置に多くの研究者が悩まされた。記憶装置は後にコアメモリーが発明されるまでの数年間、水銀遅延線メモリーとブラウン管メモリーが有力な候補だったが、いづれも技術的機能的な難点を抱えていた。こうした時代の研究者たちにとっては、コンピュータ、イコール、ハードウエアとならざるを得なかったのである。しかし遅れて来たモーリス・ウィルクスは、逆にコンピュータの本質を誰よりも見通すことができた。かれは、プログラム内蔵方式コンピュータを作る過程で、ソフトウェアの重要性をその当時の誰よりもはっきり認識することができたのだった。プログラム内蔵方式はウィルクスの発想ではなかったが、マイクロプログラミングの発案者が、他の誰でもなくウィルクスであったのしごく当然のことなのだ。
モーリス・ウィルクスは、1913年6月26日にイギリス、イングランドのスタッフォードシャー州ダッドゥリーで生まれた。幼い頃から病弱で、喘息の発作に悩まされ、学校も休むことが多かった。そのため、8歳のときキングエドワード6世グラマースクールに編入したときは「欠席のため学習困難」と赤書きされてしまったほどだ。しかし、2年目には成績がなぜか3番になった。ウィルクスは非常に驚いたが、「そのときから、しりごみしなくなった」そうだ。ウィルクスは科学と数学が好きな少年に成長した。1922年にイギリスでラジオ放送が開始されると、ウィルクス少年はすぐに鉱石ラジオを手作りし、真空管を買うための貯金を始め、「ラジオの世界」という雑誌を定期購読した。高校生になるとアマチュア無線を始めるまでになった。
1931年、首尾よくケンブリッジ大学のセントジョーンズ・カレッジに入学が決まった。数学を専攻することにした。実はこの同じ年にアラン・チューリングもケンブリッジ大学キングス・カレッジに入学をしている。ウィルクスは後に研究者となってからチューリングと会うが、天才肌のチューリングとはあまり馬が合わなかったようだ。ウィルクスは大学でもアマチュア無線を続け、ケンブリッジ大学無線協会の一員となった。1934年にケンブリッジ大学を卒業し、大学院生博士課程に進むため、キャンベンディッシュ研究所の無線グループに入った。長波を使った電離層の研究を行った。1937年ケンブリッジ大学に微分解析機が導入されるのを契機に数学研究所が設立されると、その研究助手に採用された。1938年に博士号を取得。第2次世界大戦が始まる直前であった。大戦中は空軍のレーダーサイトで軍務に服した。
1945年戦争が終って復員すると、ウィルクスは数学研究所の暫定所長に就任することになった。この時点でウィルクスはアメリカでのデジタル計算機の発展をほとんど知らなかった。しかし、マンチェスター大学のハートリーなどの見聞からウィルクスもENIACの存在を知り、フォン・ノイマンが書いた「EDVACについての報告の草案」を読むことができた。そこにはプログラム内蔵方式のデジタルコンピュータの構想が書かれていた。
そしてすぐに、ウィルクスにとっては思いもかけない誘いが来た。ENIACの開発メンバーによるコースが米国フィラデルフィアで開催されるので来ないかという電報だった。
「私は興奮状態になり、サウンダーズの所にこの電報を見せに急いで行った。明らかにこれは素晴らしい機会だった」
ウィルクスにとってプログラム内蔵方式の原理はわかったものの、実際にどうやって作ったらいいのかはまだ分からなかった。のちにムーアスクールと呼ばれるこのコースは、実際にENIACを作ったジョン・プレスパー・エッカートやジョン・モークリーなどが講師になり、デジタル・コンピュータはこういう風にやれば作れるということを多くの研究者に伝えた。ウィルクスもこのコースで、数学研究所でもコンピュータは作れるという確信を得た。
「ストアド・プログラムの基本原理は簡単に理解することができたが、どうやって実装するのかについては一九四六年の夏には全く未知の分野だった。コースの中身は系統だっていなかったが、いろいろな人によって特定の設計の研究について講義があった。これらの研究の何一つとして完成してはいなかったが、この講義を総合すると、当時のいろいろなアイデアを見事に包括的に描き出すことができた」
ウィルクスはアメリカから帰国すると、まもなく(1946/10)正式に数学研究所(*)の所長に任命された。米国旅行中から個人的にEDSAC(Electronic Delay Storage Automatic Calculator)の設計に入っていたウィルクスは、正式に開発プロジェクトを立ち上げた。1946年冬のことだった。かれらがマーキュリータンクと呼んでいた水銀遅延線メモリーから直接命令が実行されたときは近くのパブでお祝いしたそうだ。EDSACは約3000本の真空管と1ワード36ビットの情報を512語記憶できるメモリーを持ち、1.4msで加算を行うことができた。入力は5チャネルの穿孔テープで、出力はテレタイプ方式のプリンタだった。1949年5月にはEDSACは、2乗数の表を計算するプログラムテープを読み込み、計算結果をプリントすることができた。
「裸のコンピュータを計算に利用できる道具とするには、多くの基礎研究が必要であった。十進法の数字を読み込み二進法に変換するというような簡単なこどでも、ささいなものでないプログラムかサブルーチンが必要だった」
当初からソフトウェアの重要性に目覚めていたウィルクスは、EDSACが稼動を始めるとすぐにサブルーチンライブラリを整備するための開発チームを組織した。「コンピュータはソフトがないとただの箱」というのはウィルクスにとっては自明のことだったが、その当時(1950年前後)はとにかく作る、動かすことが先決だったので、コンピュータの利用形態のことまで考えている研究者はごく少数だった。ウィルクスはサブルーチンのネスティングやパラメータ渡しなどについて考え、「閉じたサブルーチンを基本命令セットの拡張と考えていたので」ソフトウェアがハードウェアの変わりに成り得ることを意識し始めていた。彼のいう「閉じたサブルーチン」とは、今の「関数」概念とほとんど同じ意味だ。
マシンコード(機械語)は、コンピュータごとに違ってくるが、例えば「Aレジスターの内容とBレジスターの内容を加算してメモリーのx番地にストアしなさい」のような3アドレス命令が1つの機械語として設計されていたりする。そのとき、レジスタをアクセスする制御回路や加算論理回路、それにメモリーをアクセスする制御回路などが必要になる。けっこうたくさんの仕事を1つの機械語でやることになるのだ。ふつうはこうした仕事をすべてハードウエアで行う(結線制御方式)。ウィルクスが提唱したマイクロプログラミングは、1つの機械語がこなす仕事の一部をソフトウェアで置き換えようとするものだ。ウィルクスの時代”プログラミングする”というときは、アセンブラのコードを書くことだった。アセンブラは機械語を人間に分かりやすく記号化したものなので、機械語とほぼ1対1に対応している。しかし今の場合、機械語よりさらに細かいレベルのプログラミングになるので、1951年にウィルクスが提唱した「自動計算機械設計の最良の方法」は「マイクロプログラミング」と呼ばれるようになった。
ウィルクスは実際にマイクロプログラミングを最初に実装したEDSAC2を作った。この方法は、ハードウエアを単純にし、ロジックの訂正も簡単にできるようになるので、効率の面は若干ネックだったが、広く支持され、のちの大ヒットマシンIBMsystem360などにも採用された。現在ではウィルクスのマイクロプログラミング方式は欠くことのできない技術となっている。
モーリス・ウィルクスの最大の業績は、プログラム内蔵方式のコンピュータを最初に作ったということよりも、このマイクロプログラミング技術を開拓したことと言うべきなのかもしれない。
ウィルクスは、その後タイムシェアリングシステムの開発に貢献したりした。1980年に数学研究所(このときはコンピュータ研究所と名前が変わっていたが)を退職し米国に渡った。米国ではDECの技術顧問をした。1986年に故郷の英国にもどり、オリベッティ社の顧問となった。もう90歳を越えるはずだが、現在も英国でご存命のはずである。1967年チューリング賞を受賞、1992年京都賞を受賞。
| 「ウィルクス自伝」 | Maurice V. Wilkes著、中村信江/中村明訳 | 丸善 | 1992年9月 | 3300円 |
|---|---|---|---|---|
| ウィルクスの文字通りの自伝だが、第二次世界大戦を挟んだコンピュータの黎明期がウィルクスの交友関係を通じて非常に興味深く読み取れるので、歴史好きの人は一度は目を通しておくといいと思う。 | ||||
| 「コンピュータの誕生」 | サイモン・ラヴィントン著 末包良太訳 | 蒼樹書房 | 1981年10月 | 2300円 |
| 副題に「イギリスを中心として」とあるように、イギリスの初期のコンピュータ研究を紹介した本。チューリングのACEやマンチェスター大学のMarkIなどが、ケンブリッジ大学のEDSACと共に紹介されている。 | ||||
感想、ご意見など自由にご記入ください