ハーバード・マーク1(ASCC)

ハーバード・マーク1、またの名を IBM ASCC は、アメリカで最初に作られた「プログラム可能な計算機」です。

もっとも、すぐ後に ENIAC が作られることになるので、「最後の歯車計算機」でもあります。


ENIAC が水爆の設計に利用されたのは有名な話ですが、マーク1は原爆の設計に利用されています。


水爆も原爆も、原理は単純なのですが、実際に作るとなると非常に緻密な設計が必要です。

その設計は、非常に複雑な計算を延々と続けられる「自動計算機」に支えられていたのです。


目次

バベジの夢を継いで

ASCC

ASCC のプログラムASCC の内部動作

「ハーバード・マーク1」

改造

マーク1の詳細(次記事)


バベジの夢を継いで

1939年、ハワード・エイケンは、ハーバード大学で物理学の博士号を取得します。

この時、彼は非常に退屈な計算を…延々とやりつづけなくてはなりませんでした。


そのような計算は機械で出来ないものか。エイケンは、そう考えます。


そのような機械を作りたいと大学に申請しますが、許可はおりません。

この時点では、夢想していただけで具体案は何一つなかったため、当然のことでした。


しかし、「そんな機械が欲しいならすでにある」という情報が彼の元に届きます。

たしかに、そのような機械が、ハーバード大学内にありました。


誰も使っていない、動かない、資料性以上の価値のない計算機でしたが…


エイケンと階差機関の一部それは、バベジの階差機関の、ほんの一部でした。

バベジの死後、後を継いだ彼の息子が、父の階差機関の「部品」を、バラバラにして世界中に寄贈していました。

そのうち一つが、ハーバード大学に置かれていたのです。


左画像は、ハーバード大学の科学の歴史コレクションページから引用。(クリックで拡大します)
手前で機械を触っているのが、ハワード・エイケン。機械はバベジの階差機関の一部。
奥の人は、グレース・ホッパー。ASCC のプログラマの一人で、後にCOBOL言語を作った。


エイケンは、バベジのことを知りませんでしたが、図書館で彼の自伝を見つけて読みます。

バベジの自伝の中には、「自分の後を継いで機械を完成させるものがいれば、すべての名声は彼に譲ろう」という一説がありました。


エイケンはこの言葉に強い影響を受け、バベジの夢見た「解析機関」を自分の手で作り出そうとするのです。



エイケンは伝記を読んだだけで、バベジの作ろうとしていたものの「論理構造」は全く知らなかったようです。
後に、マーク1が設置された「計算研究所」がマーク1の使い方マニュアルをまとめている。
この中の参考文献にバベジの伝記は入っているが、解析機関の文献などは入っていない。

ASCC

しかし、彼はこのとき、博士号を取ったばかりの駆け出しの物理学者です。

計算機を作る方法はわかっていませんでした。


また、計算機を作るとなると、かなりの予算が必要でしたが、そんな予算は大学にはありませんでした。


エイケンは、事務機械の大手であった IBM に協力を仰ぎます。

IBM はこれを快諾。IBM の資金と技術力の元、エイケンは計算機の作成を開始します。


自動手順制御計算機(Automatic Sequence Controlled Calculator)…ASCC と呼ばれたその計算機は、基本的にはタイガー計算機などと同じ、歯車式の計算機です。


ただし、歯車同士が隣り合っている必要はなく、歯車の歯を「送る」には、電気的なパルスを与えればよいようになっていました。


バベジは、解析機関を作るのに、あまりに複雑になってしまう物理構造に悩まされました。

しかし、自由に曲げられる電線を使い、歯車の動きをパルスとして伝え合うのであれば、物理的な制約は無くなります。


いくつもある歯車同士を、接続を自在に切り替えられるように電線で結ぶために、電話交換機でも使用されていた「リレー」が活用されています。


符号付 23桁の歯車計算機(カウンタと呼ばれました)が72本ありました。

これらの歯車を回すのには、巨大な電動モーターが使われています。


カウンタ同士の結びつきを切り替えるのには、3500個の多極リレーが使われます。

カウンタに数値を送り込むために、24桁60組のダイヤルスイッチも備え付けられました。


プログラムは、紙テープと物理的な配線の両方を使って作られました。

このため、紙テープを読み取る装置が4台と、装置間の接続を変更するためのプラグボード、各装置を設定するプラグボードが用意されます。


完成直後のASCCこれらの、切り替え可能な「接点」は、35000か所、最終的に組み上げられた部品の接続個所は300万に及んだそうです。

電線の総延長距離は 800Km にも達しました。


ASCC は高さ2.4m、奥行き60cm …壁一面を覆う、美しいキャビネットに納められます。

全長は 16m、重量 4.5t という巨大なものでした。


写真は、完成直後のASCCのメインキャビネット部分。
この写真、後でもう一度出します。


ASCC のプログラム

ASCC は、紙テープにパンチ穴を空けることで、動作を「プログラム」することができました。


パンチ穴は1列に24個開けることができ、8個づつ3つのグループに分かれています。

穴が8個セットですから、今の考えでいえば 8bit 。これが3つ組になって命令を示します。


プログラムに詳しい人なら、命令・ソース・ディストネーションだな、と思うかもしれません。

でも、残念ながらちょっと違います。


ソース(元データ)、ディストネーション(送り先)はあります。

この時、ASCC は「歯車計算機」なので、データは転送されるのではなく、「加算」されます。


もう一つのグループは「修飾語」です。

ソースの符号を反転してから送る、とすれば、加算ではなく「減算」になります。


命令の詳細は、別記事にまとめますが、今のコンピューターとは少し違う考え方でした。




紙テープにパンチされたプログラム4台の紙テープ読み取り機があり、4本の紙テープをセットしておくことができました。


このうち、1台はプログラムを記述した紙テープ専用です。後の3台は、計算用のデータを収めたものでした。


紙テープ読み取り機にセットされたテープ。
(写真のテープはデータ用だが、見た目はプログラムも同じ)
同様の装置が4台あった。




テープの読み取り装置自体は同じなのですが、プログラムとデータの「記述方法」は全く異なります。


先ほど書いた通り、ASCC の「カウンタ」は、23桁+符号でした。

そして、このテープは、横に 24個の穴を空けられました。


そこで、テープの穴を4列分使って、4つの穴で0~9の数字を表すことで、23桁+符号の数値を表現できたのです。


命令を並べたものを「ファンクション(機能)テープ」、データを並べたものを「バリュー(値)テープ」と呼んで区別していました。


余談となりますが、バベジの解析機関は、行列演算では同じ処理を、データを変えながら繰り返す必要がある、という考えから、「プログラム」と「データ指示」の2組のパンチカードを同時に使う方式でした。

2種類のテープにプログラムとデータを入れる、という方法は、バベジの影響を受けている気がします。

もっとも、バベジは「データの置き場所」つまり、現代的に言えば配列の添え字をデータ用の指示にしています。(プログラマなら理解していただけると思うが、そうすれば行列演算がやりやすくなる)

この点、ただデータを入れただけのマーク1は、バベジの意図が正しく理解されていない気がします。


なお、プログラムとデータは全く別のものである、と区別する構造は、後に「ハーバード・アーキテクチャ」と呼ばれるようになります。




十進スイッチASCC には 24桁の十進スイッチが 60組あり、これを使って内部のカウンタに直接値をセットすることも出来ました。


写真はASCCの論文から引用。このようなスイッチが、横に24桁、縦に60組並んでいた。
写真左側に写っているのは、接続のためのリレーボックス。

このスイッチが目立つため、データは必ず手動入力だったと思われがちですが、先に書いたように紙テープから読み取ることも出来ました。

スイッチは、計算の度に変化させたいパラメータを入力したり、手っ取り早く内部カウンタの値を変更するときに使うものです。


次ページ: ASCC の内部動作


1 2 次ページ

(ページ作成 2015-06-01)
(最終更新 2015-06-05)

戻る     次記事:マーク1の詳細
トップページへ

-- share --

7000

-- follow --




- Reverse Link -