2015年10月27日火曜日

Zuseの計算機

Konrad Zuseはベルリン工科大学で, 電気工学や機械工学でなく土木を学んだが, 1930年代の学生時代にすでに計算機を作ることを考えていたといわれる.

Z1からZ4までのZuseの計算機は全く独特なもので, 特に1936年〜1938年に作られた全機械式のZ1に私は興味がある. すべて金属の板, 金属の棒のたぐいでできた浮動小数点の加算器, 制御装置, 記憶装置はまったくユニークであり, その構造を調べたくなるのは人情であろう. 1936年といえば, あのTuringの論文の出た年である.

しかしこのZ1は大戦中に連合軍の空襲で破壊され, Zuseが戦後に再構築したZ1が存在し, その写真をみることができる.

再構築の話はここに詳しい.

今回からしばらくZuseの計算機についてブログを書きたい.

アメリカのComputer History MuseumにZ1の一部の写真がある. その基本素子の構造は次のようだ.



3枚の金属製の板に穴が開いていて, その穴に棒が通っている. 金属板はこの図では下から制御板, 受動板, 能動板という名称だが, 板の重ねる順は別に問題ではない. 問題は板の動く方向である.

制御板はyと書いた奥方向に動き, 手前方向に戻る. 受動板と能動板はxと書いた右方向に動き, 左方向に戻る. それぞれ現在の位置が0の位置で, 動いた先が1の位置である.

制御板が図の位置にあるとき, 能動板が動くと, 棒の左側に穴が続いているので, 棒は押されることはなく, 従って受動板も動かない(0のまま).

制御板が奥方向に動いたとすると, 棒が奥方向へ押され, 受動板と能動板の穴の奥の方に移動する. ここで能動板が右に動くと, その辺の穴は左に余裕がないから, 棒も右に押され, 従って受動板も棒におされて右に動き, 1の位置に来る.

つまり制御板が0なら受動板も0, 制御板が1なら受動板も1という情報伝達ができる.

右に描いたのは電気的なリレーで, 下のコイルに電流が流れると, 上の回路が閉じ, 回路に電流が流れる. コイルの電流が切れると回路の電流も切れるのと同じなので, この基本素子はリレーだという人もいる. 電気的リレーは, 応答が瞬時だが, Zuseの素子では, 制御板より能動板が遅れて動くので, 出力の受動板の反応も遅れる.

さらに入力方向と出力方向は90度ずれていることにも注意しなければならない.

ところで受動板が出力を出したら能動板は戻ってよいかといえば, それは駄目で, 能動板が戻ると受動板も戻ってしまい, これは次の論理の入力になっているからまだしばらく止めておかなければならない.

入力の制御板はすでに自由である. という次第で, 入力が0(左側), 1(右側)で信号を伝える分解図が次である.

この図では下から制御板, 能動板, 受動板の順になっている.



Cycle 0. 初期状態 受動板も能動板も定位置(0の位置)にいる. 着目するのは制御板と能動板の間が広く, 制御板と能動板の縦の縁がずれていることだ.

Cycle 1. 右側は制御板が上って1を入力した. 左はそのまま. 右の図の棒は上側へ移動する. 制御板と能動板の間が狭く, 両板の縦の線はずれている.

Cycle 2. まん中の能動板が右へ動く. 右の図の棒は左へ移動し, 受動板も右へ移動する(1を出力) 制御板と能動板の間が狭く, 両板の縦の線は揃っている.

Cycle 3. 制御板が下へ戻る. 制御板と能動板の間が広く, 両板の縦の線は揃っている.

Cycle 0. 能動板が左へ戻り, 初期状態になる.

つまり, 制御板が動き, 能動板が動き, 制御板が戻り, 能動板が戻る という動作をくりかえす.

これで90度曲ったが, 1で入力した信号は2で出る, と同時に次の入力になるから, この4 clock の間に4回の論理演算が出来たことになる.



上のcycle 1の右と同様な絵が左上に見える. Cycle 1の特徴が見える. 下から来た縦長の制御板が上に移動して, 1を入力したところだ.

右上の素子は横向だがCycle 0の所である. 右下は制御板の能動板の間に隙間があるから, 制御板が戻った所でCycle 3である.

左下はCycle 2で能動板が動き, 受動板を動かし, 出力と同時に右上の素子に入力した.

この動画がここにある.

Zuseのこの素子は4クロックでフリップフロップを実現しているが, 60年程前にあったパラメトロンは3拍励振といって, I相の論理素子の出力をII相へ入れ, II相の出力をIII相に入れ, III相の出力をI相へ戻すという3クロックの論理回路を構成していた. 久し振りにそんなことを思い出した.