T1#research
マンチェスター Baby ── 記憶からプログラムが動いた

メタデータ
- 日付
- 年代
- 1940s
- Tier
- T1
- 出典数
- 07
- 関連項目
- 02
- Tags
- #research
1948年6月21日、 マンチェスター大学の一室で、 高さ2メートルほどのラックに組まれた実験機がプログラムを走らせた。 プログラムは配線でもスイッチ盤でもなく、 ブラウン管の蛍光面に電荷として書かれていた。 機械の正式名は Small-Scale Experimental Machine、 通称 Baby である。
F. C. Williams は後に、 最初に成功した実行をこう振り返っている ── 「プログラムを苦労して入れ、 起動スイッチを押した。 表示管の光点はたちまち狂ったように踊りだした」。 初期の試行ではそれが「死の舞踏」に終わり、 何が悪いのかの手がかりすら得られなかった。 「しかしある日、 それが止まった。 そして期待した位置に、 期待した答えが明るく光っていた」。
記憶が先で、 計算機は後だった
Baby は計算機を作るために作られた機械ではない。 記憶装置を試すために作られた機械である。
Williams は1946年7月、 マルヴァーンの通信研究所(TRE)でブラウン管を使った数字記憶の研究を始めた。 蛍光面に電子ビームで電荷を書けば 0 と 1 を区別できる ── ただし蛍光体は絶縁体なので、 電荷はおよそ1秒で漏れて消える。 Williams は電荷を読み出して即座に書き戻す処理を電子的な速度で繰り返す方式を組み、 これを「再生(regeneration)」と呼んだ。 1946年10月初めに1ビットの記憶が動き、 12月に仮出願している。 現代の DRAM のリフレッシュはこの原理の直系である。
同月 Williams はマンチェスター大学の電気工学講座に移り、 TRE にいた Tom Kilburn が出向で合流した。 1947年6月からは Geoff Tootill が加わる。 1947年12月1日には標準的な6インチ管1本に2048ビットが保持できていた。 Kilburn がこの時期に書いた内部報告 ── 記憶の「ドット・ダッシュ」方式と「デフォーカス・フォーカス」方式、 および仮想の計算機の設計を論じたもの ── は英米に広く回覧され、 大きな関心を呼んだ。
問題は、 2048ビットを保持できても、 個々のビットを人の手でしか設定できなかったことだった。 任意のビットを電子的な速度で書き、 読み、 その間ずっと値を保持できることを確かめなければならない。 そのための「最も効果的で徹底した試験」として、 記憶の周りに小さな計算機を組む ── その計算機に命令自体も記憶へ入れさせれば、 試験はいっそう厳しくなる。 プログラム内蔵方式が Baby に採用された理由は、 思想というより試験計画である。
仕様
- 語長32ビット、 2の補数、 逐次(シリアル)2進演算
- 主記憶は Williams-Kilburn 管1本に 32×32 ビット、 設計上は8192語まで拡張可能
- ほかに管2本 ── 一方は累算器 A、 一方は現在の命令アドレス CI と命令 PI ── および表示専用の管1本
- 命令は3ビットの機能部と13ビットのアドレス部、 残り16ビットは未使用
- 命令は7種のみ。 加算はなく、 減算と符号反転で組む
- 1命令あたりおよそ1.2ミリ秒
入力はキーボードで任意のアドレスにビット列を設定する。 出力は表示管を読む。 それだけである。
最初のプログラム
Kilburn が書いた最初のプログラムは、 与えられた数 a の最大の真の約数を求めるものだった。 a-1 から順に下へ b を試し、 a を割り切る最初の b を答えとする。 割り算器がないので、 除算は b の反復減算で行う。 全体で17命令だった。
6月21日に走らせた数は小さいものだった。 よく引かれる「52分」の実行はこの日のことではない。 数日のうちに彼らは 2^18 = 262,144 まで規模を上げ、 およそ13万個の数を試し、 約210万命令・約350万回の記憶アクセスを費やして、 52分の実行の末に正解を得ている。 答えは 131,072 である。
原本のプログラムは失われた。 現存する最古の内蔵プログラムの記録は Tootill のノートに残る版で、 これは再実行を容易にする2命令を加えた改訂版にあたる。 Baby では3本のデモ用プログラムが走ったことが分かっており、 そのうち1本は Alan Turing が書いた長除算のルーチンだった。
「最初」の限定のしかた
2022年に贈られた IEEE Milestone の顕彰文は、 用心深く条件を付けている ── 1948年6月21日にこの場所で、 Baby は「アドレス指定可能な読み書き電子記憶に置かれたプログラムを実行した最初の計算機」となった、 と。
この限定は、 隣接する機械を一つずつ排除するために必要なものである。
- EDVAC の草稿(1945年)はプログラム内蔵方式を記述したが、 EDVAC 自身が動くのは1951年である
- ENIAC は1948年に命令表方式へ改造されたが、 命令は手でスイッチを設定する読み出し専用の関数表にあり、 書き換え可能な記憶ではない
- Colossus(1943年)は電子式だが特定用途で、 プログラムは内蔵しない
Baby が示したのは、 二つのことである。 Williams-Kilburn 管が実用に耐えるランダムアクセス記憶であること、 そしてその記憶に命令を置いて機械を走らせられること。 前者は少なくとも16の初期計算機プロジェクトに採用され、 磁気コアに取って代わられるまで使われた。
その先
Baby が動いた直後から、 増員のうえで実用機の設計が始まった。 1948年後半から1949年後半にかけて数段階で作られたのが Manchester Mark 1 で、 これはインデックスレジスタを初めて備えた機械でもある。 その商用版である Ferranti Mark 1 は1951年2月に顧客へ納入され、 標準製品として販売された最初の電子計算機となった。
Baby 本体は保存されず、 部品は Mark 1 に吸収された。 1998年、 50周年に合わせて稼働するレプリカが作られ、 現在マンチェスターの科学産業博物館にある。
出典
最終更新: