このバベッジの設計のDifference Engine No.2は、当時の材料や加工精度で製造され、意図したとおりに動作し、バベッジの設計が正しく、現実的なものであったことが証明されたが、150年後の実現では、多少の設計変更が加えられている。

当時の加工精度で作られたカムやギアの摩擦はバベッジが想定したより大きく、クランクのシャフトには4:1のギアを付け加えたというが、それでも、まだ、この写真に見られるように動力源のクランクを廻す説明員のおじさんの腕にはかなり力が入っている。また、もう一つの設計変更は、計算部とプリンタ部を切り離して、個別にデバグが行えるようにした点であるという。

Difference Engine No.2のクランクを廻すボランティアの説明員

このマシンは10進31桁の数字を扱うことができるカラムを7本持っており、7次の多項式を計算することができる。そして、デモンストレーションでは、31桁のカラムの下5桁に係数を記憶し、上の26桁が次々と結果を計算していくアキュムレータになっている。このカラムの分割は、後述の制御用のカムの設定で行っている。

デモに使った多項式とそれに対応した差分値(左)差分値を設定する説明員(右)

この差分値をマシンに設定するには、専用の工具でスチールの押さえ板を緩め、ナンバーの書かれたリングを廻し、所定に位置に持ってきて、押さえ板を再び固定する。左の写真に見られるギアやカムが各カラムの1桁分である。

そして、クランクを廻すと、次の写真のカムやメインシャフトが回転する。カムは回転角度に応じて演算部分を制御するリンクを動かして所定の動作をするようにしており、現代のプロセサで言えば、シーケンス制御回路に相当する。また、計算カラムの下には横方向にメインシャフトが通っており、笠歯車でカラムを廻している。これは、差し詰め、データパスを駆動する電源、兼クロックというところであろうか。

(左)マシンの右側に見えるスチール板のカムが、プロセサの制御回路に相当する。(右)各カラムを動かす横方向のメインシャフト。マシンの裏側から撮影

そしてマシンの反対側には計算カラムの桁上げ機構がある。写真では分かりにくいが、カラムの各桁についている横方向の短い腕のようなものがキャリーを伝播するカムで、クランクを廻すとキャリーが下から上に伝播し、このカムが優美に波打つように動く。これを見ると、リップルキャリーアダーという名前が納得できる。Computer History Museumのページにビデオがあるので、是非、この動きをご覧になって戴きたい。

マシンの裏側にある桁上げ機構

そして、最終計算結果のカラムはプリンタ側に一番近いカラムとなっており、計算結果は、このカラムの各桁の値に応じて回転するシャフトを通してプリンタに伝えられ、活字ホイールを回転させる。

(左)計算カラムとプリンタのインタフェースの部分。(右)Difference Engine No.2の印字部分。下のトレイに柔らかい石膏を入れる。

左の写真の横方向のシャフトが各桁の値を伝えるシャフトであり、左端の方の柱の所にワイヤーでぶら下がっている四角い短冊状のものはギアの遊びを吸収するためにテンションを掛ける錘である。そして、右の写真の印字部は、活字ホイールで中央に見えるロール紙に印字する機構と、下のトレイに入れた石膏に印字する機構をもっている。但し、石膏を入れると後の掃除が大変ということで、通常の展示では、この写真のようにトレイは空になっている。

この重量5トン、横幅11フィート、高さ7フィートのDifference Engine No.2は、コンピュータの歴史に興味を持つ人ならば、一見に値するマシンである。シリコンバレーに行く機会があれば、是非、Computer History Museumを訪問して戴きたい。