ハーバード・マーク1(ASCC)の詳細

ハーバード・マーク1ことASCCの概要については、すでに本文ページで紹介しています。


しかし、ここは「歯車」のページです。この歯車計算機がどんな仕組みで動いているのか、どのようにプログラムするのか、詳細を明らかにしましょう。


計算の仕組み

特殊なカウンタ

倍精度演算条件処理条件停止

プログラム

プログラムの「ループ」

命令詳細

加算減算カウンタのリセット乗除算符号転送条件停止関数自動増加正規化

そのほか周辺機器

バリューテープ

余談

おわりに

計算の仕組み

すでに書いたように、計算自体は歯車によって行われまます。

ただし、歯車の「歯」は直接かみ合っておらず、電気パルスと、モーターによって動かされる「軸」で動かされる機構になっています。


カウンタの構造先に、歯車の数字を電気的に読み出す機構から説明しましょう。


難しいことはありません。歯車の位置により、1~9 の特定の電極と、GND の間が接続する様になっているだけです。


右はカウンタの構造図(クリックで拡大)
個別部品も、半組立状態も一緒に置かれているが、歯車で計算していることがわかってもらえればよい。
Jの部品内の電極を通じ、0~9の状態を読み出せるようになっている。


全ての歯車が、1~9 の電線を共有しています。

GND は歯車ごとに異なっていて、各歯車がどの値にセットされているかを検出できます。


ここで、9~1 に向けて、順次電線に電流を流します。

GND から電流が出てきた時点で、その歯車の数字がわかります。

電流が出てこなかった場合は 0 です。


次に、ここで読みだした数字が、別の歯車と「足される」仕組みを説明しましょう。


歯車を動かす軸23桁の歯車が 72 本分…1656 枚の歯車は、すべて同じ速度で回る軸に接続されています。

5馬力の巨大なモーターに繋がれて、同期して回っていました。


軸の模式図。(部分:クリックで全体図)
強力なモーターによって回される主軸に対し、いくつもの軸が「枝分かれ」していて、さらに先の枝にカウンタが付けられていた。

軸と歯車の間には、接続と開放を物理的に切り替えられる、「電磁クラッチ」があります。

このクラッチは、パルスを送ることで接続・開放を切り替えられます。


先に、歯車は 9~1 に向けて読み出す、と書きました。

この、読出したパルスは、足し合わせたい歯車の「クラッチ接続」に繋がっています。


つまり、数字に対するパルスが出た時点で、クラッチが接続します。

9~1 まで順次読みだした次、「0」にあたるタイミングで、今度はすべての歯車のクラッチが「解放」されます。


これにより、送られてきた 9~1 の数字パルスに応じた時間、回転軸に接続されて歯車が回ることになります。

数字の数だけ歯車が回る、というのは、歯車計算機にとっての「加算」にほかなりません。


この歯車が 9 から 0 に変わるとき、物理的な凹凸によって、「繰上り」スイッチを押します。

このスイッチは、リセットするまで押されたままになっていて、計算が終了するまで繰上りがあったことを覚えています。


この「繰上り」は、計算が一旦終了した後に読み出され、上の桁をさらに1、加算します。


また、繰り上がる直前、「9」の位置に歯車があることも、繰上りスイッチで検出できるようになっています。

この状態の時、下の桁からくる繰上り信号は、上の桁にも送られるように、並列に接続されます。


つまり、「9」の桁に繰上りが来ると、その上の桁まで連続繰上りするのです。

通常の歯車計算機では、連続繰上りには遅延があるのですが、遅延なく連続繰上りを行えることになります。




計算1回は、1cycle で行われました。

1分間に 200cycle でしたから、1cycle は 300ms です。


9~1の電線に送られる「パルス」は、この 300ms を 16分割した時間で流されました。

18ms ほどですが、この時間単位は「ポイント」と呼ばれました。

信号タイミング

上図の左側に、IMPULSE とある行は「読出し信号」、KNOCK OFF とある行は「リセット信号」だと考えてください。

9~1を読み出すのに、9ポイント使います。その次のポイントではクラッチのリセット(解放)信号が送られます。

ここまでの10ポイントで、繰上りなしの半加算が終了します。


11ポイント目はなにも信号が送られていませんが、この間に「繰上り」に向けて準備しているようです。具体的には、現在9のカウンタは、連続繰上りに備えて、上の桁に繰上り信号を接続します。

そして、12ポイント目は、キャリー(繰上り)の読出し信号、13ポイント目はクラッチのリセットです。


最後、14ポイント目でキャリースイッチのリセットが行われ、15、16ポイント目で次の計算に備えます。


歯車計算機の動作を、上手に「電気パルス」に置き換えているのがわかります。

歯車式計算機では難しい連続繰上りの処理も、電気であることを活かして高速に処理する、見事な方法です。



おまけの余談:
9~1のタイミングで出される「パルス」自体も、9枚の回転するカムによって作り出されていたようです。
クロックを作り出す仕組みなどもない時代、どこまでも「歯車的」な電気回路です。


2015.6.5追記。もう一つおまけ。
マーク1は電気で動いていて、多数のリレーが使われていたことから「リレー計算機だった」という誤解があるようです。
手元にある本では、「コンピューターが計算機と呼ばれた時代」(アスキー)にリレー計算機だったという記述があります。

特殊なカウンタ

72本のカウンタ(歯車計算機)のうち、いくつか特殊なものがあります。


倍精度演算

64と65,68と69 の2ペア4本は、倍精度演算(HIGH ACCURACY COMPUTATION)ができるようになっていました。


64の最上位の数字が繰り上がると、65の最下位の桁に伝えられます。

また、符号も共有していました。(68,69も同様)


プログラム上の多少の制約はあるのですが、ASCC の限界は 23桁ではなく、46桁の計算が可能だったことになります。



どうでもよいのですが、64が下位で、65が上位です。
コンピューターが登場する以前に、大きな数を表す際の方法として「リトルエンディアン」が存在したことになります。


次ページ: 条件処理


1 2 3 次ページ

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

前記事:ハーバード・マーク1     戻る
トップページへ

-- share --

2000

-- follow --




- Reverse Link -