Selective Sequence Electronic Calculator
SSEC（Selective Sequence Electronic Calculator）は、IBMが開発した電気機械式計算機である。設計は1944年末から始まり、1948年1月から1952年まで運用された。プログラム内蔵方式の多くの特徴を備え、世界で初めて命令をデータとして扱えるコンピュータといえるが、完全な電子式ではない。SSECはいくつかの用途で役立ったが、すぐに時代遅れとなった。史上最大で最後の電気機械式コンピュータであり、その最大の功績はIBMの名を世間に広めたことである。
歴史
SSECは Harvard Mark I で虚仮にされたIBMが威信をかけて開発した計算機であり、大規模なものとしては最後の電気機械式計算機である。プログラム内蔵式コンピュータだが、完全に電子化されてはいない。開発責任者はウォレス・エッカート。完成後、ニューヨークのIBM本社ビルの一階ショールームに設置され、道行く人々からその動作する様子が見えるようになっていた。公式なデモンストレーションが行われたのは1948年1月27日である。1952年8月まで動作し、ショールームには新たにIBM 701が設置され、SSECは破棄されたという。
第二次世界大戦中、IBMはハーバード大学のハワード・エイケンの Automatic Sequence Controlled Calculator (ASCC) 構築を支援していた。このマシンは1944年8月に正式に納入され、一般には Harvard Mark I の名で知られている。IBM社長トーマス・J・ワトソンは、エイケンが報道機関への発表でIBMの貢献について全く言及しなかったことに怒った。ワトソンとエイケンはその後袂を分かち、IBMは独自により大型で目立つ機械を作るプロジェクトを開始した。コロンビア大学の天文学者ウォーレス・ジョン・エッカートが新たな機械の仕様を提供した。プロジェクト予算は約100万ドルで、当時としては莫大である。ASCCと同様、フランシス・ハミルトン (1898–1972) が構築を指揮した。ハーバード大学からロバート・R・シーバー・ジュニアが雇われ、新たなマシンのチーフアーキテクトとなった。1945年12月に基本設計が完成すると、エンディコットのIBMの工場でジョン・マクファーソンの指揮でモジュールの製造が始まった。
構築
1946年2月、完全電子式のENIACの報道でプロジェクトは活気付いた。IBM Selective Sequence Electronic Calculator (SSEC) と名付けられた新たな機械は、1947年8月には組み立てられるところまで到達した。ワトソンや他の多くの人々はこのような機械を "calculators" と呼んでいた。というのも "computer" は計算を行う従業員のことを指す言葉だったからである。
SSECはニューヨークのマディソン街590番地にあるIBM本社近くのビルの1階の一室で、三方の壁にそって組み立てられ始めた。もう一方はガラス張りで通りに面しており、道行く人々が中を見られるようになっていた。騒々しいSSECは、それを見た歩行者から Poppa などと呼ばれた。デモンストレーションが一般公開されたのは1948年1月27日のことである。1950年以降、電子工学責任者としてA・ウェイン・ブルックがこのマシンの運用を担当するようになった。ハーブ・グロッシュが最初のプログラマの1人となった。他にもエドガー・F・コッドがプログラマを担当した。エリザベス・スチュアートは主任オペレータを務め、広告写真などによく登場した。
SSECは真空管と電気機械式リレーを共に使用している。約12,500本の真空管は演算装置と8本の高速レジスタに使われた。レジスタのアクセス時間は 1ミリ秒以下である。また、21,400個のリレーは制御装置と150本の低速レジスタ（アクセス時間は20ミリ秒）に使われた。リレー技術はASCCと似たようなもので、クレア・D・レイク (1888–1958) が発明したテクノロジーに基づいている。SSECの演算装置は電子乗算機 IBM 603 を改造したもので、ジェームズ・W・ブライスが設計した。大型の真空管は軍のレーダー用の余剰品で、1つの壁面を埋め尽くした。メモリは符号付きの十進19桁の数値を格納するよう構成されている。乗算は乗数と被乗数それぞれ14桁で計算される。400,000桁といわれる記憶容量のほとんどは、さん孔紙テープのリールの形で提供されている。
加算には285マイクロ秒、乗算には20ミリ秒かかり、これは Harvard Mark I よりずっと高速であった。素早く検索する必要のあるデータは電子回路内に保持されるが、それら以外はリレーや3本のさん孔テープに格納され、それらがもう一方の壁を埋め尽くしている。重い紙テープのリールを持ち上げるのに巻き上げ機を必要とした。命令やデータは30台の紙テープ読み取り装置から読み込まれ、3台のパンチ装置に接続し、それとは別に表参照のための36台の紙テープ読み取り装置がある。データ読み取り用のパンチカード読み取り装置があり、出力もパンチカードまたは高速プリンターで行える。19桁のワードは二進化十進表現で76ビットとなって格納され、さらに符号とパリティを示す2ビットが追加されている。これを1行で格納する紙テープはIBMの一般的なパンチカードと同じ幅の連続紙であり、両端の穴はスプロケットとして使われた。
従来からのテクノロジーを使っているためSSECの計算は当時としては正確で高精度だったが、初期のプログラマの1人であるジョン・バッカスは「プログラムを実行中はその場を離れられない。なぜなら3分に1回止まってしまうからで、プログラムした本人でないと実行を再開できないからだ」と述べている。ENIACの設計者の1人ジョン・プレスパー・エッカートはSSECを「向こうにあるなんだか大きな怪物。とても正しく動くとは思えない」と評した。
シーバーは注意深く命令をデータとして扱えるよう設計した。そのため、プログラム制御下でプログラム自体を書き換えることができる。IBMがSSECについて1949年1月19日に出願した特許は、後にプログラム内蔵方式の能力を示す証拠となった。各命令は任意のソース（電子式レジスタ、機械式レジスタ、テープ読取装置）から入力をとることができ、結果を任意の場所（電子式レジスタ、機械式レジスタ、テープさん孔装置、カードパンチ、プリンター）に出力でき、次の命令のアドレスを指定でき、命令自体も任意のソースからとってくることができる。したがって理論的にはどんなことも可能である。ただし、命令は通常紙テープに格納されており、平均実行速度は約50命令毎秒である。紙テープは逐次的記憶装置であるため、SSECのプログラミングは第二次世界大戦中の計算機によく似ていた。例えば、ループは実際に紙テープの両端をくっつけて物理的にループを形成して実現していた。新たなプログラムを実行する際には、紙テープとカードデッキを読取装置に物理的にセットし、出力フォーマットを変更するためにプリンターのプラグボードの配線を変更した。以上から、SSECは最初のプログラム内蔵方式コンピュータとは見なされず、一般に最後のプログラム可能計算機に分類されることになった。
利用
SSECはまず、月と惑星の位置の計算、すなわち天体暦の計算に使われた。月のある時点の位置の計算には、11,000回の加算と9,000回の乗算、2,000回の表参照を必要とし、SSECでは7分かかった。この計算のために約6カ月かかり、その後もSSECの利用予定はぎっしりつまっていた。
なお、SSECが作成した月の位置の表が、1969年のアポロ計画のフライトプラン策定の際にコースを決めるのに使われたと言われている。しかし当時の記録によれば、無関係ではないものの、直接使われたわけではないことを示唆している。NASAのジェット推進研究所で働いていたマルホランドとデヴァインの報告 (1968) によれば、JPLの天体暦システムは「アメリカでの宇宙計画における事実上あらゆる宇宙機の軌道計算に使われ」、月の天体暦には 'The Improved Lunar Ephemeris' と呼ばれる情報源のデータも採用されている。これはSSECで1951年から1971年までの月の天体暦を計算した結果をまとめたものであり、さらに修正版 (1966) も出ていて、1968年には補遺も出ている。つまり、アポロ計画ではSSECの計算結果をそのまま使ったのではなく、それを修正し訂正したデータを使ったと見られる。
最初に使用料を支払ってSSECを使った顧客はゼネラル・エレクトリックである。またアメリカ原子力委員会がNEPAプロジェクトでの計算に使用した。ロスアラモス国立研究所のロバート・D・リヒトマイヤーはSSECを使って世界初の大規模なモンテカルロ法の計算を行った。ルウェリン・トーマスは層流の安定性問題を解いた。そのプログラムはドナルド・A・クォールズ・ジュニアとフィリス・K・ブラウンが書いている。1949年、カスバート・ハードが雇われ、応用科学部門を創設。SSECの運用はその部門が担当することになった。
後世への影響
SSECの部屋は床が二重になっていて、いわゆるOAフロアの初期の採用例である。そのため、床上をケーブルが這っているということがなかった。ライトの点滅や無数のリレーの騒々しい音で、IBMの名を世間に広めることになった。SSECはジョン・エドガー・フーヴァーの著書を原作とした映画 Walk East on Beacon (1952) に登場している。SSECは概ね好意的に報道された。SSECは新たな顧客や従業員を惹き付ける役割を果たした。ハードとバッカスもSSECのデモンストレーションを見てからIBMに入社している。
1946年のENIACはSSEC以上に真空管を使っており、高性能である。しかし元々は柔軟性が低く、新たな問題を解くには配線を変更する必要があった。1948年末には、SSECの大きな真空管を時代遅れにした新たな真空管技術を採用した乗算機 IBM 604 を発表している。1949年5月には Card-Programmed Electronic Calculator を発表し、9月に出荷を開始した。これはSSECの技術をスケールダウンしたもので、同様の計算が可能な機械である。1948年末の時点でも、SSECの電子記憶装置の容量不足が問題となっていた。間もなくIBMはマンチェスター大学の Manchester Small-Scale Experimental Machine で開発されたウィリアムス管のライセンスを取得している。その後のコンピュータは、プロセッサのレジスタ群から命令を取り出して実行するのではなく、電子的なRAMを持つようになっていく。また、77ビットという長いワードも使われなくなり、もっと短いワードをより高速に処理する方向にむかった。
1951年、ウィリアムス管を採用した Ferranti Mark I がイギリスで発売され、アメリカでは水銀遅延線メモリを使った UNIVAC I がそれに続いた。これらのメモリ技術がプログラム内蔵方式をより実用的なものにしていった。プログラム内蔵方式の概念は1945年の『EDVACに関する報告第一草稿』で広く認知され、フォン・ノイマン・アーキテクチャと呼ばれるようになった。EDVACはENIACの後継であり（1949年稼働）、UNIVACを開発したチームが設計した。
SSECは完全電子式コンピュータの登場で時代遅れとなり、1952年8月に退役となった。SSECが撤去された部屋には、1953年4月7日のデビューに向けて IBM 701 が設置された。1953年7月、より低価格の IBM 650 が発表された。650の開発はSSECの開発に関わったエンディコットのチームが行った。