アポロ計画で使用されたコンピューター
アポロ計画では、宇宙船、サターンブースター、地上のコンピューターセンターと、多くの場所で多くのコンピュータが活躍しました。 しかし当時はコンピュータの黎明期でもあり、NASA は MIT (マサチューセッツ工科大学) や IBM (International Business Machines Corporation) などと協力して、新たな技術を次々と開発する必要がありました。マーキュリー宇宙船のナビゲーション
マーキュリー宇宙船には、コンピュータの類は搭載されておらず、飛行コースはアトラスブースターの誘導装置任せであった。 また、再突入コースは地上のリアルタイム・コンピューティング・センター(RTCC)で算出され、必要な逆噴射時間、噴射姿勢などが宇宙船に送信されていた。ジェミニ宇宙船のコンピューター
ジェミニ計画においては、アポロ計画で必要なランデブー技術の習得のための複雑な軌道変更、 安全な打ち上げのためのタイタンIIブースター誘導システムのバックアップ、 再突入の精度向上、そして打ち上げ前の膨大なチェックの自動化のため、 “Gemini digital computer”が搭載されることとなった。
1962年4月19日、IBM Federal Systems Divisionは、2億6千6百万ドルでこのコンピュータの開発を受託し、1965年12月までに20台の装置をNASAに納めた。 この筐体サイズは、高さ18.9インチ(約48cm)、幅14.5インチ(約37cm)、奥行き12.75インチ(約32cm)で、重さは58.98ポンド(約26.75kg)であった。 これはICを使わない電子部品(discrete:単機能半導体)のみで組み立てられており、ジェミニ宇宙船の船長席の左のunpressurized equipment bayに搭載された。 このコンピュータは全く冗長性を備えていないため、故障した時には、地上システムのバックアップなどでしのぐ必要があった。
ハードウエア
このコンピューターは、一度に1ビットずつ処理を行うシリアル動作で、 命令サイクルは140ミリ秒、 数値は固定小数点で表現され、算術ビットレートは500キロサイクル、 メモリサイクルレートはその半分であった。
メインメモリにはフェライト・コアが使用された。 これは1ワードが39ビットで構成され、39面の64 x 64bitアレイからなり、全部で4,096ワードが記憶できる。 1ワードは、3つの13ビットの「語(syllable)」に分割され、命令は1語(13ビット)、データは2語(26ビット)となる。 このため1ワードに最大3命令格納できるが、データを使う命令は1つで1ワードを使用する。
また外部記憶装置として磁気テープシステムを搭載している。 フライトの各フェーズで、必要なプログラムを磁気テープからコアメモリに読み込んでから実行する。 宇宙空間で、磁気テープからプログラムの読み込みを行ったのは、ジェミニ宇宙船が初めてである。 この磁気テープ装置は約700立方インチ(約0.01立方メートル)、26ポンド(約11.8kg)の重さで、ジェミニ宇宙船のアダプターモジュールに搭載された。 1,170,000 bitの記憶容量を持ち、テープからコアメモリへのプログラムのロードには6分かかる。
読み取り精度を上げるため、データはテープの3箇所に書き込まれ、メモリへの読み込み時には、読み込んだ3つのデータを、多数決回路を通してメモリに格納する。 この方式はスペースシャトルでも採用された。 初めて宇宙空間でテープからのプログラム読み取りが行われたのがジェミニ8号のミッションで、 アジェナ標的衛星とのドッキング中、姿勢制御エンジンの不調のためスピンを開始した宇宙船の中で、再突入プログラムを読み込むときに使用された。
ソフトウエア
プログラム言語はアセンブラ。 当時登場したばかりのFORTRANが吐き出すコンパイル結果は非効率で、ジェミニ宇宙船のコンピュータリソースには適合しなかった。 “Gemini Math Flow”と呼ばれたこのプログラムは、全部で9つのバージョンが開発された。 最終版となった“Math Flow Seven”はジェミニ8号から12号で使用され、 Executor, Prelaunch, Ascent, Catch-Up, Rendezvous, Re-Entry の6つのモジュールに分割されていた。 なお、Executorは必要に応じてほかのモジュールと同時に使用された。
プログラムの仕様は McDonnell-Douglas社にてSpecification Control Document (SCD)としてまとめられ、IBM Space Guidance Centerに送られた。 そこでは誘導の方程式が正しいことを検証するためのFORTRANプログラムが開発された。
ユーザーインターフェース
ジェミニ宇宙船のコンピュータには、コンピュータのコントロールインターフェースに加え、 Manual Data Insertion Unit (MDIU), Incremental Velocity Indicator (IVI) の3種のインターフェースがあった。
コントロールインターフェースは、モードスイッチ、スタートボタン、誤動作ランプ、計算ランプ、およびリセットスイッチで構成されていた。 モードスイッチは、測定プログラムまたは計算プログラムの1つを選択するための、7つの選択位置があるセレクタスイッチである。 スタートボタンは、コンピュータのメモリにロードされた、選択されたプログラムを実行するのに使用する。 リセットスイッチを押すと、コンピュータは起動時診断を実行し、動作可能な状態になる。
MDIUは、10桁のキーボードと7桁のレジスタ(表示部)の2つの部分から構成されていた。 レジスタは走行距離計型の回転式ディスプレイで、最初の2桁はメモリアドレスを示し、最大99個の論理アドレスが表示できる。 そして残りの5桁はデータを表示した。 エラーが発生したときは、すべての桁にゼロが表示される。 データの最初の桁が9であると、それは負の数を表している。この場合、2桁目以降が値を示す。
IVIは、動力機動(powered maneuver)に必要な、またはその結果としての速度増分を表示した。 前後軸、上下軸、左右軸それぞれについて3桁づつ、合計3つの数値が、単位feet-per-secondで表示された。
離陸上昇中は、コンピュータはブースターのバックアップとして動作した。 そして軌道上では、動力機動(powered maneuver)が行われるまでは、電力を節約するために、コンピュータを停止することができた。 コアメモリの性質上、コアに磁気的に保存されたプログラムやデータは、電源を切っても消えることはない。 このため、必要に応じて補助テープメモリから次のモジュールセットをロードし、必要なパラメータを入力してから、使用直前までマシンをシャットダウンしておくことが可能であった。 なお、電源回復後、マシンが起動診断を実行するのに20秒かかった。 診断が正常に実行された後には、ロード済みのプログラムが使用可能となり、すべてのパラメーターはそのまま残っていた。
ジェミニ宇宙船のコンピューターは
- 有人宇宙船に搭載された最初のデジタルコンピュータ
- 非破壊読み出し式のコアメモリの最初の使用
- IBM初の完全シリコン半導体コンピュータ
- レジスタとしてガラス遅延線(glass delay lines)を使用する最初のもの
- 補助記憶装置を使用する最初の航空機搭載または宇宙船搭載コンピュータ
アポロ・ガイダンスコンピューター(AGC)
搭載コンピュータに求める機能
当初は極力地上のコンピュータを使わないことを望んでいたNASAも、 アポロ計画が具体化するにつれ、その方針を変更した。 飛行中の宇宙船の位置を把握するためだけでなく、月軌道投入のための逆噴射の計算さえも地上のコンピュータで処理し、 それを宇宙船に送信する方式となった。 最終的には、アポロ宇宙船の自律性(搭載コンピュータの存在価値)は、地上からの助けを借りずに安全に地球に戻れることの1点に絞られた。 それでも搭載コンピュータはナビゲーションの計算を行うだけでなく、誘導とナビゲーションに関するコンポーネントも管理し、 さらには20の機内システムに対してタイミング信号を供給し、このほか多くの処理をこなしたので、 開発者らは“4人目のクルーメンバー(the fourth crew member)”と呼んだ。
開発の始まり
1961年8月9日に、NASAは正式にMIT Instrumentation Lab を、アポロの誘導およびナビゲーションシステムの製造・開発元に選定した。 MITは、それまでにもポラリスミサイルや火星無人探査機などで使用される、誘導システムや小型コンピュータを開発していた。 MITのポラリスミサイル誘導開発チームは、ほぼそのままアポロの開発チームに移された。 ただ、当時はまだ開発に必要な仕様は明確になっておらず、MITも1962年の終わりまで、開発方針を決めかねていた。 また、もし仮に当初から仕様が明確になっていたとしても、1960年代初頭の技術では、それは実現不可能であったと言われている。 アポロのコンピュータ開発は、NASAにとっても、初めての巨大なリアルタイムソフトウェア開発の一つであった。
PGNCS“ピングス”とAGS
司令船:CMと月着陸船:LMには、同一の仕様の誘導システムが、一つずつ搭載された。 CMに搭載されたものは、地球と月の間のナビゲーションを担当し、 LMに搭載されたものは、月への着陸とそこからの離陸、そしてCMとのランデブーを担当した。 このシステムを、Primary Guidance, Navigation, and Control System (PGNCS:“ピングス”)と呼んた。 CMの誘導は、地上コンピュータがバックアップを行い、PGNCSが故障したときは、地上からのデータでマニュアル操作を行う。 逆に地上との通信が失われたときは、CM単独で地球に戻る能力を有している。 一方、月との通信の時差などから、月面着陸時には地上コンピュータの助けを借りることができない。 このためLMには、バックアップシステムとして、Abort Guidance System (AGS)が搭載された。 これは月面着陸時にLMのPGNCSが故障したときに、着陸を中止してCMとランデブーするまでの飛行をサポートするものである。 AGSにはPGNCSに代わって月面着陸を遂行する能力はない。 アポロ宇宙船には、CMとLMそれぞれのPGNCSと、LMのAGS、合計3台のコンピュータが搭載されることになった。
2つのハードウェアデザイン
アポロの誘導コンピュータには、宇宙船と同様、Block I と Block II の2つのデザインがあった。 Block I はポラリスミサイルの誘導システムと同様の技術で作られており、 Block II はランデブー飛行への対応や信頼性向上のため、オリジナルのアーキテクチャによる新しいものであった。
MITがアポロ宇宙船のコンピュータを開発する中、IBMがサターンVのコンピュータを開発しており、 一時NASAの中では、これらを統合する動きもあった。 サターンVのコンピュータを、アポロ宇宙船にも流用するアイデアである。 しかし、これには再プログラミングの費用が掛かること、 またサターンVのコンピュータをアポロ宇宙船に搭載することは、サイズ的にも困難であることなどから、見送られた。
アポロ宇宙船の開発進捗に合わせ、Block I コンピュータは無人、および初期の有人飛行で、 主に地球軌道を飛行するミッションで使用され、 Block II は、LMも含めた、より複雑なミッションでの使用を目指して開発された。
信頼性を確保するために、コンピュータを二重化することも考えられたが、電力、重さ、サイズの点で不可能であった。 Block I コンピュータはモジュール化されており、構造上は、スペアパーツを準備すれば、飛行中の修理も可能であったが、 実際には修理の容易性より、厳重に密封することによる信頼性向上のほうが重視されたため、これは実現しなかった。 Block IIでは、誤動作検出機能が向上し、信頼性がさらに向上した。
Block I の回路にはコアトランジスタが使用されていたが、 データを読み出したら再書き込みが必要であり(破壊読出し)、またクロックサイクルが安定しないなどの問題があった。 そこでMITは direct-coupled transistor logic (DCTL) NORゲートで構成されたIC(集積回路)を採用することにした。 あらゆる回路を、このNORゲートに置き換えることにより、システムはシンプルになり、信頼性も向上した。 これにより、マシンサイクルは11.7ミリ秒に固定された。 コアトランジスタと比較して、スピードが2倍になり、サイクルタイムが一定になった。 またBlock Iと比較してメモリ容量は倍増し、より高い入出力性能を持ち、消費電力は少なくなり、小さくなり、信頼性も向上した。 ただ、ICは当時まだ誕生して3年の若い技術であり、NASAからの信頼を得るには、しばらく時間が必要であった。 1962年の秋にNOR ICの採用が決定されたのち、1963年の夏には、米国のIC生産の60%が、アポロのコンピュータのプロトタイプのために使用された。 これは、NASAの要求が、コンピュータ業界の直接的な推進力となった、数少ない事例の1つである。
AGCのハードウェア構造
Block II AGCのサイズは 24 インチ x 12.5 インチ x 6 インチ(約 61 cm x 32 cm x 15 cm )、重さは 70.1 ポンド(約 32 kg)、電源は 直流28V、70Wで、 CMのlower equipment bayに搭載されており、LMにも同じものが搭載されている。 そして操作は display and keyboard units (DSKY:“ディスキー”)で行う。 CMには2台のDSKYがあり、1台は船長の席の前のメインコントロールパネル、もう1台はCMの背面、ナビゲータステーションの光学機器の近くにあった。 ここにはACG本体も格納されていた。 なお、ナビゲータステーションのDSKYには、星の位置を確定したときにコンピューターに信号を送る「MARK」ボタンがあった。 またLMにはコントロールパネルに1台のDSKYが設置されていた。 DSKYのサイズは 8 インチ x 8 インチ x 7 インチ(約 20 cm x 20 cm x 18 cm)、重さは 17.5ポンド(約 8kg)であった。
AGCのワード長は16ビットで、 単精度データは14ビットと符号ビット(1はマイナスを表す)、パリティビット(奇数パリティ)から成っていた。 倍精度データは2ワード、3倍精度データは3ワードで構成されていた。 データは分数として記録され、あらゆる数値は1未満で表現されていた。 3次元ベクトルを記録するには3つの倍精度データを使用した。
命令ワードは、8進数のオペレーションコードとして、ビット15〜13(左から右へ降順に番号が付けられる)を使用した。 またアドレスはビット12〜1の12ビットで表現された。
コンピュータ回路は、24個のモジュールからなるトレイ2つに入っていた。 各モジュールには、72ピンコネクタを備えた60個のフラットパック(いわゆるIC)を搭載したボードが、2セット組み込まれていた。 トレイAにはロジック回路、インターフェイス、電源があり、 トレイBにはメモリ、メモリ制御回路、アナログアラームデバイス、およびクロックが搭載された。 クロック周波数は1MHzで、コンピューターのすべてのユニットは気密封止されていた。
Block II のメモリは、消去可能なコアメモリと 6つのモジュールから成る、コアロープ固定メモリ(core rope fixed memory)で構成されていた。
AGCは1つの加算器(adder)と16個のI/Oチャネル、 そして下記7つのレジスタを搭載していた。
register | name | description |
---|---|---|
00000 | A | The accumulator |
000001 | L | The lower accumulator |
000002 | Q | The return address register |
000003 | EB | The erasable bank register |
000004 | FB | The fixed bank register |
000005 | Z | The next address |
000006 | BB | The both bank register (data stored in EB and FB were automatically together here) |
12ビットのアドレスで表現できる最大値は8,192エントリであるが、 AGCのメモリ容量はこの4倍を超えていた。 このため、メモリは「バンク」に分けて指定した。 消去可能なメモリ(いわゆるRAM)のバンクは3ビットで表現され、 固定メモリ(いわゆるROM)のバンクは5ビットで表現された。 さらに、合計16ビットを必要とするアドレスには、 命令ワードのアドレスビットと、固定バンクデータレジスタ(FB)の値を連結することを示す 「スーパーバンクビット」使用した。 これらの複雑なアドレス指定方法は、ハードウェアをシンプルにしたが、ソフトウェアの複雑さを増大させた。
メモリ
MITの最初の設計では、ROMは4kワード、RAMは256ワードしか無かった。 これが1963年6月ごろにはROMは10Kワード、RAMは1Kワードとなり、 その後ROMは12Kワード、24Kワードと増強されていき、 最終的には、ROMが36Kワード、RAMが2Kワードとなった。
消去可能メモリ(RAM)は、ジェミニコンピュータと同様の、同時電流フェライトコア(coincident-current ferrite cores)が使用された。 固定メモリ(ROM)は、消去可能メモリと同様の素材だが、全く設計が異なるコアロープ(core rope)が使用された。
コアロープ
消去可能メモリのコアは、磁化される方向で、1つあたり1ビットの情報を記録する。 一方、コアロープのコアは、1つあたり4ビットの情報を記録できる。 コアロープの各コアは、小さなトランスとして機能し、最大64本のワイヤ(4セットの16ビットワード)を各コアに接続できる。 ワイヤーが特定のコアを通過した場合、"1"が読み取られ、ワイヤが特定のコアを迂回した場合、"0"が読み取られる。 たとえば、2進数のデータワード“1001000100001111”をコアロープに格納するには、1番目、4番目、8番目、13番目から16番目までのワイヤを、そのコアに通し、残りはそれをバイパスさせる。
コアロープは6つのモジュールで構成されており、各モジュールには 16ビット x 6,144ワード が記録されていた。 各モジュールは、さらに1,024ワードごとの6つの「バンク」に分けられており、 合計36バンク (6モジュール x 6バンク) で構成されていた。 このうち最初の2つのバンクは「固定 - 固定メモリ(fixed-fixed memory)」と呼ばれ、命令ワード内の12ビットで直接アドレス指定できた。 残りの34個は、固定バンクレジスタの5ビットの内容と、命令ワードの10ビットを使用してアドレスを指定した。
コアロープメモリは、配線することによってプログラムを記録するため、その製造とテストの時間が必要であった。 格納するソフトウェアは、ミッション実施の何か月も前に完成している必要があった。 そして一度完成したら、その修正は容易ではなかった。 このため、そのソフトウェアは早く完成するだけでなく、完璧である必要があった。
初のAGCを搭載した飛行は、1966年8月25日に打ち上げられた無人テスト飛行:AS-202ミッションであった。 これにはBlock IのAGCと、1月に完成した、CORONAと名付けられたソフトウェアが搭載された。
コアロープの仕組み
この図はコアロープの原理を示している。 中央部の縦に並ぶ長方形がコアを示し、その上の2進数が、そのコアに保存されている値を示している。 例えば左端のコアには、“1000”の値が記録されている。 これは、一番上のワイヤーがコアを通り、のこり3本のワイヤーがコアをバイパスすることで実現される。 このコアがデータ読み出しのために選択されると、コアを通るワイヤーには“1”が読み出される。そしてコアを通らないワイヤーには“0”が読み出される。
ソフトウェアの仕様策定
NASAとMITは、ミッションごとにガイダンス&ナビゲーションシステム運用計画(GSOP:Guidance and Navigation System Operations Plan)を策定し、 ソフトウェアの要求事項を明確にした。 NASAは打ち上げ前の18ヵ月、16ヵ月、14ヵ月前にGSOPを見直し、 打ち上げ前の13.5ヵ月の時点でそれを「凍結」した。 プログラムは打ち上げ前10.5ヶ月には開発を終了し、8か月前までにテストを完了した。 このソフトウェアはMITに保管されるとともに、それを記録した磁気テープが、ノースアメリカン社(CM製造元)、およびグラマン社(LM製造元)に送られ、シミュレーションで使用された。 また打ち上げ4ヵ月前にはコアロープが完成し、宇宙船に組み込まれた。 プログラムの開発には、Honeywell 1800コンピュータ、そしてのちにはIBM 36Oが使用された。
ソフトウェアの構造
AGCは、一度に複数のジョブを処理できる、優先順位割り込みシステム(priority-interrupt system)であった。 これは、すべてのジョブに均等に時間が割かれる「ラウンドロビンシステム」とはまったく異なる。 優先順位割り込みシステムは、常にそのとき最高の優先順位のジョブを1つだけ実行している。 そしてそれが完了すると、ジョブ待ち行列のなかの、同等かより低い優先順位のジョブ実行に移る。
アポロ宇宙船の管理プログラムには、ジョブスケジューリングに関連した2つのプログラム、“Executive”と“Waitlist”が含まれていた。 Executive は一度に最大7つの「ジョブ」を管理し、 Waitlist は9つの短い「タスク」を管理した。 Waitlist のタスクに与えられる実行時間は4ミリ秒以下であった。 タスクがそれより長く実行された場合、それは Waitlist によって「ジョブ」ステータスに昇格され、 Executive の待ち行列に移動された。 Executiveは、20ミリ秒ごとに、現在実行中のものより優先度の高い「ジョブ」や「タスク」がないかをチェックした。 他に待機中のジョブがなかった場合は、別のジョブが待ち行列に入るまで「DUMMY JOB」というプログラムを実行した。 また、 Executive はDSKYへの表示も管理した。
さらに Executive はメモリ管理も担っていた。 ひとつのジョブの実行時には、“コアセット:coreset”と呼ぶ、12個の消去可能メモリが割り当てられた。 インタプリタ言語(後述)ジョブの実行時には、ベクトル演算のために、加えて43個のメモリセル (VAC:vector accumulation)が割り当てられた。 最終的に月面着陸プログラムでは、LMで8コアセット、CMで7コアセットを使用し、加えてそれぞれ5セットのVACを消費した。
ソフトウェアの開発
プログラミングにはアセンブラ言語が使われたが、 MITはこれに加え、実行時に一連のサブルーチン呼び出しに変換される、より高級なアポロ計画専用のインタプリタ言語を開発した。 アセンブラ言語は全部で11の命令を持っていたが、インタプリタ言語は128個の仮想命令を持っていた。 これを使うと、同じ処理を行うのにスピードは低下するが、メモリ使用容量が削減できる。 また、インタプリタの命令数が多いということは、方程式をプログラムに落とし込むのにも、アセンブラより容易であることを意味する。 これにより、コーディングの速度と精度が向上した。
MITのスタッフは、コンピュータプログラムにさまざまな想像力に富んだ名前を付けた。 アポロは古代の太陽神の名前であったため、SUNDISK, SUNBURST, SUNDIAL など、名前の多くに'SUN'がついていた。 しかし、主要な2つの月面飛行プログラムは“COLOSSUS”と“LUMINARY”と呼ばれた。 “C”で始まる前者はCM用、“L”で始まる後者はLM用のプログラムの名前である。
NASAとMITは、しばしばこれらのプログラム名とバージョン番号を短縮して呼んだ。 例えば、SOLRUM55は、AS501と502ミッション向けのSOLARIUMのバージョン55である。 なお、プログラムCOLOSSUSは、アポロ8号の月周回飛行で初めて使用された。
ソフトウェアのリスタート
ACGは、電圧異常や、クロック異常、割り込み動作中にシステムがスタックしてしまう“rupt lock”状態、OSストール時など、不具合発生時に「リスタート」する機能を持っていた。 リスタートがかかると、指定されたアドレスにコントロールが移る。 そしてプログラムは、最初にどのジョブをスケジュールするべきか確認するために、“フェーズテーブル”を調べる。 スケジュールされたジョブは、設定された最後の“リスタートポイント”から再開される。 リスタートポイントのアドレスは、リスタートテーブルに保存されていた。 プログラマは、リスタートの発生に備えて、リスタートテーブルエントリとフェーズテーブルエントリが、実行時に常に適切な値に保たれるようにする必要があった。 リスタートはまた、噴射制御(control jet)コマンド、警告灯、エンジンのオン/オフコマンドなど、すべての出力チャネルをクリアしたので、リスタートの発生により危険な状況に陥ることはないとされた。
アポロ11号の月面着陸中には、リスタートを引き起こすソフトウェア障害が発生した。 このソフトウェアは、命令よりも、カウンタの増分要求を優先処理するように設計されていた。 すなわち、あるハードウェアがメモリに保存された値のカウントを増やす要求を行うと、オペレーティングシステムは現在のジョブを中断して要求を処理し、そして中断されたルーチンを再開する。 この増分要求が1秒間に85,000回に到達すると、他のすべての作業を完全に停止させることになると予測されていた。 また、そこまでリクエスト数が多くなくても、ソフトウェアの動作が遅くなり、リスタートが発生する可能性があった。 アポロ11号の月面降下の時に、ランデブーレーダーが非常に多くのカウント増加要求を行った。 そして、コンピュータシステム資源のおよそ15%がこの応答に消費された。 降下中のLUMINARYプログラムP64実行時に、40秒間に3回も、この状況が原因でリスタートが発生した。 このリスタートにより、一連の警告が宇宙船とミッションコントロールの両方に表示された。
AGCの操作方法
CMに搭載された2台の Block I のDSKYはデザインが異なっていた。 一方 Block II のものは2台とも同一のデザインであった。 DSKYとコンピュータの作動状況は、地上から監視することができた。 DSKYにはPROG(ram), VERB, NOUNという3つの2桁のディスプレイ、3つの5桁の数字(符号を含む)ディスプレイ、 10個の警告灯、COMP ACTY(computer activity)ランプがついている。 また19個のキー(VERB, NOUN, CLEAR, KEY RELEASE, PROCEED, RESET, ENTER, PLUS, MINUS, 0~9の数字)がついている。
警告灯・ランプの意味
ランプ | 意味 |
---|---|
COMP ACTY | コンピュータがプログラムを起動しているときに点灯する。 |
UPLINK ACTY | 地上からデータを受信しているときに点灯する。 |
TEMP | 温度が許容範囲外になったときに点灯する。 |
NO ATT | 慣性サブシステムが姿勢基準(attitude reference)を提供できないときに点灯する。 |
GIMBAL LOCK | ミドルジンバル角が70度を超えたときに点灯する。 |
STBY | コンピュータシステムがスタンバイ状態のときに点灯する。 |
PROG | コンピュータがプログラムを完了するため、乗組員による追加情報の入力を待っているときに点灯する。 |
KEY REL | コンピュータがプログラムを完了するため、DSKYの制御を必要とするときに点灯する。 情報の表示が、他のルーチンや優先度の高い割り込みによって上書きされてしまうことがある。 乗組員はKEY RELキーを押して、これを要求しているプログラムにキーボードを解放することができる。 KEY RELライトが点灯したときは、乗組員はそのキーを押すことにより、DSKYを通じて要求しているプログラムと会話できる。 |
RESTART | コンピュータが再起動プログラムに入ったときに点灯する。 アポロ11号の月面着陸中には、これが点灯し続けていた。 |
OPR ERR | コンピューターがキーボード入力エラーを検出したときに点灯する。 |
TRACKER | 光結合ユニット(OCDU:optical coupling units)またはランデブーレーダーの1つが故障したときに点灯する。 |
ランプ | 意味 |
---|---|
NO DAP | デジタルオートパイロットが故障したことを警告する。 |
ALT, VEL | 高度と速度の測定値が、あらかじめ決められた制限を超えていることを警告する。 |
- PROG欄
- コンピュータが現在実行しているプログラム番号(2桁)。
- VERB欄
- 入力されている動詞番号(verb number)(2桁)。
- NOUN欄
- 入力されている名詞番号(noun number)(2桁)。
- 3つの5桁の数字(符号を含む)
- 10進数または8進数で各種数値を示す。符号が表示されているときは10進数表示、そうでなければ、8進数表示である。
動詞名詞(verb-noun)システム
キーにタッチするとソフトウェア割り込みが発生し、 宇宙飛行士はDSKYからプログラムを起動することができる。 ACGには、約40種のプログラムと30種のサブルーチンが搭載されていた。 これらのプログラムを起動したり、その他の要求を行うには動詞名詞(verb-noun)システムを使用する。 通常のコンピューターはアルファベットでコマンド入力を行うが、 ACGではVERBとNOUNの数値の組み合わせでコマンド入力を行う。 それぞれには00~99の100種を指定できるが、それぞれの数値の意味の殆どは、ミッションごとに決まっていた。 なお、新しいプログラムを起動するにはVerb 37を入力する。
例えばランデブーターゲッティングプログラム(rendezvous targeting program)(P31)を起動するには
[VERB][3][7][ENTER][3][1][ENTER]
と入力する。
プログラムP31起動中に verb 50, noun 18
と入力すると飛行角度を指定できる。
verb 06, noun 18
と入力すると、飛行中の数値の変化をモニターできる。
verb 06, noun 84
と入力すると、次のアクションでの速度変更を要求できる。
ヒューストンの飛行士課(Crew Procedures Division)では、毎回ミッションごとに異なるこれらの数値の意味を、
CSM G&Cチェックリスト(3つのリングで留められた、いわゆる"cue cards")に記述した。
このチェックリストには、ナビゲーションに使う恒星のリスト、verbのリスト、nounのリスト、警告コード、エラー処理と回復、コンピュータに搭載されている各プログラムのチェックリストなどの情報が含まれていた。
なお、いくつかの機能では、わざわざ宇宙飛行士が「承認」操作をしなくても実行できるよう、 “minkey”(最小キーストローク)オプションが利用できた。
Abort Guidance System (AGS)
AGS は PGNCS とは独立して動作し、宇宙飛行士に位置、速度、姿勢、ステアリング情報を提供した。 LMが月の裏側を飛行し、地上管制と通信できないときでも、単独でナビゲーションデータを検証することができた。 AGS はアポロ9号のLMから搭載され、テストされた。 このシステムは、慣性誘導システムではなく、LMに固定された各種センサを使用して動作した。 システム全体はわずか3立方フィート(約0.08立方メートル)で、以下の3つの主要コンポーネントで構成されていた。
- Abort Electronic Assembly (AEA)
- コンピュータ本体
- Abort Sensor Assembly (ASA)
- 慣性センサー
- Data Entry and Display Assembly (DEDA)
- キーボードとディスプレイ
AGSのハードウェア
当初のデザインでは、AGSは2,000ワードの固定メモリのみをもつシーケンサーで、 ナビゲーション機能も持たず、コンピューターでもなかった。 その仕事は単にLMを“クリア”な月周回軌道(月面のどの山よりも高い軌道)に打ち上げることであり、その後はCMからの救助を待つこととしていた。 その後1964年の秋には要求仕様が変更され、より安全に自動的に、外部からの支援なしにCMとのランデブーを行える機能が要求された。 これにより、メーカーであるTRW社は、4,000ワードのメモリを持つコンピューターを搭載することにした。
AGS用に開発されたコンピューターはMARCO 4418(Man Rated Computer:有人飛行に適合したコンピューター)と呼ばれた。 これは符号ビット1ビット、データビット17ビットの18ビットマシンで、 命令コードは、5ビットのオペコードと13ビットのアドレス部から構成されていた。 数値はPGNCS同様、固定小数点の、2の補数形式で格納されていた。 27の命令が利用可能であり、実行時間は実行される命令に応じて10から70マイクロ秒の間で変化した。 コンピュータのサイズは 5 インチ x 8 インチ x 23.75 インチ(約 13 cm x 20 cm x 60 cm)、重量は32.7ポンド(約 15 kg)、そして消費電力は90ワットを要した。 メモリは2キロワードの固定コア(ROM)と、2キロワードの消去可能コア(RAM)に分割されており、シリアルアクセスのため、アクセス速度はPGNCSより劣っていた。 ただ、固定コアと消去可能コアの構造は同じであったため、この容量の比率は変更可能であった。
DEDAはDSKYよりもはるかに小さく、機能も限られていた。 サイズは 5.5 インチ x 6 インチ x 5.19 インチ(約 14 cm x 15 cm x 13 cm)で、パイロットの前の、LMコントロールパネルの右側、腰の高さに取り付けられていた。 CLEAR, READOUT, ENTER, HOLD, PLUS, MINUS, そして0-9の数字キーの、16個のキーがついており、 1つの、9桁のディスプレイがついていた。 ディスプレイは3桁のアドレス表示(8進数)、1桁の符号、5桁の値を表示できた。 これはジェミニ宇宙船のコンピューターのディスプレイと似ていた。
AGSのソフトウェア
LMの初飛行の2年前、1966年の時点で、プログラムのサイズは4kワードのメモリをほとんど使い切り、空きメモリはわずか20ワードであった。 プログラムの初期のバージョンでは、PGNCS同様、リスタートがかかるとエンジンを停止し、姿勢を維持する仕様になっていた。 しかし宇宙空間を飛行している時ではなく、LMが月面に近い時にこれが発生すると、とても危険である。 このため、リスタート中は、必要ならば宇宙飛行士に手動でエンジンを始動させることとした。
NASAは、ミッションの12.5か月前に、ようやく仮の軌道情報とミッションの要件をTRW社に提供し、 1.5か月前に、最終版のプログラムが格納された磁気テープがリリースされた。
AGSは実際にミッション中止で使用されたことは無かったが、 アポロ11号ミッションにおいて、月面着陸中にランデブーレーダーで遭遇した問題を避けるために、 CMとの最終ランデブーおよびドッキングで使用された。 またすべてのミッションにおいて、PGNCSの監視として使用された。
サターンロケットのコンピューター
コンピュータ開発の歴史
1961年から1965年の間に打ち上げた、10回の無人のサターンI型ロケットのテスト飛行のうち、 最初の5回では、誘導にコンピュータは使用されなかった。 ただ5回目の打ち上げでは、IBMがタイタンロケットのために開発したASC-15コンピューターが「乗客」として搭載され、 テレメトリデータの送信試験に使われた。 そして、その後の5回のミッションでは、それが誘導に使用された。 また、サターンロケットがIBとVシリーズに発展したときには、LVDC (Launch Vehicle Digital Computer) を含む、 IU(Instrument Unit)がS-IVBステージの上に取り付けられた。 ここには、コンピューターのほかに、I/OフロントエンドのLVDA (Launch Vehicle Data Adapter)、アナログ制御回路、およびST-124ガイダンスプラットフォームが搭載された。 月面着陸ミッションでは、月への飛行軌道投入後、S-IVBステージ分離まで、LVDCがロケットを誘導した。
IBMが開発したLVDCは、ジェミニ宇宙船のガイダンスコンピュータとアーキテクチャ的に非常によく似ていた。 ほぼ同じ命令セットを持ち、26ビットのデータワード、および13ビットの命令を使用していた。 ジェミニ宇宙船のコンピュータとの違いは、メモリが2語配置(two-syllable locations)になっていたこと(ジェミニ宇宙船では3)である。 また、IBMはLVDCのために、Marshall Space Flight Center(MSFC)の委託によるAdvanced Saturn Technology Programの下で、初の「フラットパック」集積回路シリーズを開発した。 これはのちにIBM 360シリーズにも使用された。
ロケットの打ち上げ前チェックアウトに、コンピューターを直接使用するようになると、 MSFCは、サターンIで使用されていたIBM ASC-15と通信するためにRCA 110を購入した。 その後、RCAはメモリコアを24ビット x 32Kワードに拡張し、さらに磁気ドラムに32Kワードを追加した。 これはRCA 110Aと改名され、より多くの通信回線を処理するために拡張され続けた。 サターンVが完成する頃には、1,512の信号線の各々の状態を記録することができるようになっていた。
ジャイロ開発の歴史
サターンロケットの慣性誘導システムは、ジャイロユニット、ジンバルシステム、およびサーボ機構によって、空間に対して、常に同じ方向を向くように制御されていた。 そして慣性誘導装置が感知した、ブースターの移動距離と、予定された飛行コースからのずれ、はコンピュータメモリに蓄えられ、ブースターの制御に利用された。
A4(V2)ミサイルでは、2台のLEV-3というジャイロが使用された。 また、終戦までにドイツKreissel Geralte GMB. Hにて、より高精度なSG-66ジャイロが開発され、大戦の終わりまでドイツのミサイルで使用された。 そしてアメリカに渡ったフォン・ブラウンのチームでは、空気ベアリングを使用した、さらに優れたST-80を開発し、1954年のレッドストーンロケットに搭載した。 これは1957年にはジュピターロケットに搭載されたST-90に発展した。 これらはFord Instrument Companyで製造された。 初期のサターンIでは、このST-90と、タイタンIIミサイルで使われたIBMのASC-15コンピューターが使用された。 そしてサターンVのために、より複雑で長時間にわたるミッションに耐えられる ST-124慣性誘導システムが開発された。
IUの進化
IUの開発は、1958年の初めに、マーシャル宇宙飛行センターでの「社内」プロジェクトとして、サターンIの開発と並行して始まった。 1961年6月15日に、ハンツビルでIUのモックアップが完成し、サターンIロケットのBlock IIシリーズでの飛行が計画された。 これ以前の、サターンIのBlock Iシリーズにおいては、誘導および制御装置は、S-Iステージ(第1段)の上部、アダプター(Forward Skirt Assembly)内のさまざまな場所に配置されたケース(キャニスター)に入れられて設置されていた。 これには、テレメトリ、追跡、およびST-90ガイダンスプラットフォームやガイダンスシグナルプロセッサなどのコンポーネントも含まれていた。 また、その後の サターンI, サターンIB, サターンVでの誘導に使用するため、ST-124慣性誘導装置が「乗客」として搭載され、テストに使用された。
MSFCは、ST-124をSA-5ミッション以降のロケットで実用化し、それをIBMコンピュータとリンクさせることを目的としていた。 SA-5ミッションで使用されたロケットは、サターンI初のBlock IIシリーズであった。 これに搭載されたIUには、冷却のため不活性ガスで与圧されたチューブ状のケースの中に、ST-90、ST-124、テレメトリ、電源、制御装置が搭載されていた。
SA-9のフライトでは、サターンIは新しいタイプのIUを搭載した。 これは後にサターンIBとサターンVのフライトで適用されたIUに似ていた。 IUに搭載された機器は与圧されなくなり、IUの円筒形の壁の内側に直接搭載された。 これにより重量は軽減され、IUの高さも半分になった。
IBMは、1964年2月にサターンIBとサターンV両バージョンのIUの主契約業者に任命され、IUの製造、テスト、ケネディ宇宙センターへの輸送を担当した。 ただしサターンIB向けの最初の4つのユニットとそのフライトについては、MSFCが主要な責任を負うことになっていた。 最初のIUでは、ハードウェアの80%が政府提供の機器として分類されていた。 しかし5台目のIUでは、この割合は10%にまで減少した。 なお、サターンVには可能な限り少ない変更で実績のある機器を搭載するため、 サターンIBとサターンVのIUは基本的には同じものが使用された。
米国のあちこちで開発されたロケットの他の部品と異なり、IUはMSFCのあるハンツビルの中だけで開発された。
IUの機能と構成
IUの基本機能には、
- エンジンカットオフやステージの分離を含む、ロケットのコマンドとシーケンスの処理
- ロケットの地球周回軌道への投入
- ロケットの位置・機能・およびその他のデータの地上局への中継
- S-IVB、IU、CSMを月への軌道へ投入する(TLI)能力
- S-IVBからLMを取り出すとき(transposition and docking)の、S-IVBの姿勢制御
- 月への経路上において、CSMの飛行経路からS-IVBとIUを遠ざけるための操作
誘導と制御のキーデバイスは
- ST-124安定プラットフォーム
- LVDC : launch vehicle digital computer
- LVDA : launch vehicle data adapter
ST-124
ST-124は3自由度の慣性プラットフォームで、 製造はBendix CorporationのNavigation and Control Division、 直径53センチ、重量52キログラムの球形で、 構造部材、コンポーネントの大部分はベリリウムで製造されていた。 このプラットフォームの最終調整は、精度を維持するため、打ち上げカウントダウンの最後まで行われなかった。 この調整は、発射台からほど近い位置に、正確に配置された経緯儀から、IUの小さな開口部に光線を照射することで実施された。 ビームは誘導プラットフォームの小さな窓を通過し、そこで一対のプラットフォームプリズムに反射されて、経緯儀に戻された。 適切なアライメントが達成されたことは、ミッションコントロールセンターに届く捕捉光信号(acquisition light signal)で知ることができた。 これにより、ST-124は、リフトオフの5秒前に地球固定基準(Earth-fixed reference)から宇宙固定基準(space-fixed reference)に切り替えられる。
ST-124は、飛行中に速度と姿勢のデータをガイダンスコンピュータに供給しつづけるが、 第一段の燃焼中には、アクティブガイダンスシステムは使用されなかった。 サターンIB、サターンVともに、大気中を上昇する際には、突風、ウィンドシア、ジェット気流の影響を受けるが、 そのような乱流に対する補正操作を行うと、強力なエンジンからの大きなジンバル運動を受け、加えられる応力がロケットを破壊させる可能性がある。 このため、第一段の燃焼の間は補正は行われず、ただロケットはその誘導コンピュータに格納された所定のプログラムに従って飛行した。 第一段の燃焼の間にロケットが所定の経路からずれた場合は、ST-124はこの変位を感知し、後で修正するためにデータをコンピュータに蓄積した。 そして2段目と3段目の燃焼の間に、格納されたデータがコンピュータを通して誘導制御システムに送られ、ロケットをコースに戻した。
LVDC and LVDA
LVDCは、情報を収集し、ロケットの軌道上でのチェックアウトなどのコマンドを発行した。 LVDAは、飛行システムのほぼすべてのユニットと接続されて、デジタルデータのバッファリングやD-A/A-D変換などを行う、LVDCへの入出力ユニットとして機能した。 サターンVとサターンIのLVDC、LVDAを比較すると、サターンVのほうが3倍高速で、4倍メモリ容量が大きく、100W消費電力が少なく、信頼性は60倍も高い。 さらにサターンVのメモリ容量については、メモリモジュールの追加により、倍に増やすことができた。
Item | Saturn I | Saturn V |
---|---|---|
No. components | 12 000 | 80 000 |
Weight (kg) | 95 | 114 |
Volume (m3) | 1.1 | 1.6 |
Total power (watts) | 540 | 438 |
Operations (sec) | 3 200 | 9 600 |
Storage capacity (bits) | 100 000 | 460 000 |
Reliability (hrs) | 750 | 45 000 |
厳格な信頼性と動作要件を満たし、さらにサイズと重量の制限を守るために、4つの新しい設計コンセプトがコンピュータに組み込まれた。 メモリシステムの二重化、ユニット化されたロジックデバイス、3重のモジュール冗長性、および液冷のマグネシウム-リチウム シャーシである。
メモリシステムの二重化(duplex memory system)
断続的な障害が発生した場合には、一方のメモリシステムが他方のメモリシステムを修正するよう動作し、システム障害の可能性を軽減した。 このシステムは、それぞれが4,096ワード(1ワードは28ビット)の容量を持つ、二重化メモリのペアとして動作する6つのモジュールで構成されていた。 さらに特別なミッション要件がある場合は、2つの追加モジュールを搭載することが可能であった。
ユニットロジックデバイス
超小型回路を特長とし、以前のコンピューターよりも7倍多くのコンポーネントを搭載しながら、より小型で軽量で、3倍高速で動作するシステムを実現した。 各ロジックデバイスは、7.6ミリメートル平方および0.71ミリメートル厚の「ウェハ」として製造された。 このようなウェハは全部で8,918個あり、コンピュータ内の約7.6センチメートル平方の、数十個の「ページ」に取り付けられた。
3重のモジュール冗長性
LVDCとLVDAの両方の、すべての重要な回路が三重化 - 三重モジュール冗長化 : triple modular redundancy - されていた。 設計者は、壊滅的な障害が発生する可能性があるが、信頼性の理由から、その発生を許容できない7つの機能セクションを選択した。 選択された各セクションは、3つの同一構成の独立したロジックチャンネルに配置された。 コンピュータに対する課題は各モジュールに同時に提示され、それぞれの結果は独立して導き出され、多数決投票回路に送られた。 そして他と異なる「投票」はエラーとして破棄され、 2つ(以上)のモジュールから同一の回答が得られた場合のみ、投票回路を通過することができた。 この投票回路は、システムの性能にはそれほど影響を与えなかった。 最悪の場合の、投票処理による遅れは100ナノ秒程度であった。 さらに、0.6立方メートルを占有し、35キログラムの重量であるコンピュータユニットは、(328マイクロ秒で)同時に除算および乗算しながら(82マイクロ秒で)減算および加算することができた。
マグネシウム-リチウム シャーシ
マグネシウム-リチウム合金が電子回路の構造材として用いられたのは、この例が初めてであった。 この合金はマグネシウムより25%軽く、アルミニウムより50%軽い。 そして非常に高い重量対強度比、宇宙での動作に適した優れた熱特性、および最小限の機械的振動伝達特性を備えていた。 ベリリウムはこれより軽量であったが、機械加工や穴あけ加工における技術的困難さと、その毒性のため敬遠された。
サターンロケットには、IUのほかにもいくつかの追跡および制御システムが搭載された。 Azusaシステムは地上局と連携して、ロケットの傾斜と方向を測定した。 Cバンドレーダトランスポンダ(C-band radar transponder)は 方位角、仰角、および距離の測定でレーダ地上局を支援した。 コマンドおよび通信システム(command and communications system)は、 コンピュータの更新、テストの実行、特定のメッセージの追加または削除、およびコンピュータメモリバンクの特定の部分のリコールに使用された。 打ち上げおよび軌道飛行の段階では、ロケット全体に搭載されたセンサー:トランスデューサー(transducers)が、振動、圧力、温度、およびさまざまな操作に関する情報を収集した。 そして測定および遠隔測定システム(measuring and telemetry system)が、 これらのデータを地上局に送信した。
この複雑な電子機器を動作させるための電力は、 コンピューターなどの低電圧コンポーネントと ST-124慣性プラットフォーム用の高電流の両方のための 特別なディストリビュータとレギュレータで構成された 4つの28ボルトDCバッテリから発生した。 この電気システムはまた、ロケットの故障を分析するために、異常検出ネットワーク(emergency detection network)を含んでいた。 これは、問題の深刻さに応じて、自動打ち切りシーケンスを起動するか、または宇宙飛行士とNASAの飛行管制官に判断を委ねるかを判定した。
サターンVの誘導とナビゲーション
サターンVの打ち上げでは、リフトオフの5秒前にIUが作動開始したときに、ロケットは実際に「自分で考え」始める。 この制御システムは、最初は経過時間に従ってプログラムされた一連の姿勢制御操作を実行した。 離陸開始12秒後、IUのコンピューターは、事前にプログラムされていたロールとピッチのコマンドに従って、 巨大なロケットを適切な飛行方位にロールさせ、 同時に、第一段ステージを、加速のために規定の迎え角にピッチングするために エンジンのジンバルを制御した。 S-IC燃料タンクの推進剤レベルが指定のポイントに達したという信号をIUが受信すると、 第一段ステージのエンジンをカットオフするためのコマンドを開始し、その後ステージを分離した。 第二段(S-II)の点火開始後は、ロケットは、推進薬を効率的に使用する軌道に導く「経路適応型誘導(path adaptive guidance)」と呼ばれる概念によって制御される。 約2秒に1回、コンピュータがロケットの現在位置と飛行状況をチェックし、 それを動力飛行の終わりに望まれる最適な状況(高度、速度、残留推進剤など)と比較した。 そして必要に応じて、IUはコンピュータからLVDAを介してアナログフライトコントロールコンピュータに補正信号を生成し、アナログフライトコントロールコンピュータは適切なジンバルコマンドをエンジンに発行した。 S-IIのエンジンカットオフとS-IVBからのステージ分離は、IUが所定の推進剤レベルを感知したときに実行された。 この時点までにロケットはおよそ軌道高度に到達しているため、 安全なパーキング軌道の高度と速度を確保するための、S-IVBの点火と燃焼は、短い時間でも十分であった。
ミッションの中止が必要になった場合に備え、サターンロケットの各ステージは、推進剤分散システム(PDS:propellant dispersion system)を搭載していた。 これは飛行の任意の段階において、宇宙飛行士がロケットから分離脱出した後に、飛行を終結させるためのロケット破壊メカニズムのことである。 PDSシステムは、空軍東部試験場(Air Force Eastern Test Range)の当局によって確立された規制に準拠しており、範囲安全担当官(range safety officer)の管理下にあった。 このためPDSシステムはRange Safety Systemとも呼ばれる。 無線装置がPDSコマンドを受信、デコード、および制御し、一連の炸薬の列が、推進薬タンクを破裂させることによってステージを破壊する。 PDSシステムには、エンジン停止後にタンクを引き裂くために、イニシエータアセンブリと、柔軟な直線状の炸薬が含まれていた。 炸薬は、タンクが引き裂かれているときに、推進剤の混合による爆発を最小限に抑えるように推進剤を散布できるよう、計画的に配置された。
IUには、ステージの分離と、逆噴射ロケットの噴射の、両方を制御するプログラムが含まれていた。 ステージ分離シーケンスのタイミングは、推力を失い、落下し始める前に実施されるよう、各ステージの定格推力に合わせて設定されていた。 ステージの切り離しは、ステージの周囲の爆発装置がテンションストラップを切断することによって行われる。 そしてレトロ(逆噴射)ロケットが、分離されたステージを素早く後退させ、次のステージはしばらく惰性で飛行を続ける。 前段から適切な距離を取ったうえで、エンジン点火の前に推進薬を安定させるアクション(ullage control)を行った。 使用済みステージを減速し、後続のステージで推進薬を安定させるために、MSFCの設計者は 小型固体推進モーターおよび小型液体推進エンジンを含むさまざまなロケットシステムを使用した。 サターンロケットには、液体推進剤ロケットエンジンよりも多くの固体推進剤システムを搭載していた。 サターンIには、合計32個のさまざまなタイプの固体推進剤モーターが搭載されていた。 これはサターンIBでは31個、サターンVでは22個となった。
S-IVBの地球軌道シーケンスにおいては、IUは地上局から最新のデータを取得し、再点火の時間を連続的に計算していた。
IUは、直接推力が制御できる1つのメインエンジンと、液体推進薬の補助推進システム(APS:auxiliary propulsion system)を使って、S-IVBのロール、ピッチとヨーを管理した。
そして最終チェックの後、IUはロケットの月への飛行軌道(translunar trajectory)への投入を制御した。
IUが、許容できる噴射条件がそろったと報告したとき、
一組の投棄可能な固体レトロロケットとAPSがullage controlを行い、
つづいてJ-2のメインステージ噴射とエンジンカットオフが行われた。
最後に、CSMとLMがS-IVBとIUから離れるときには、
IUは第三段ステージのAPSユニットを使い、transposition and docking 操作のために姿勢を安定させた。
そしてリフトオフから約6.5時間で、IUの任務は終了した。
[参考]
Ullage(アレッジ)とは、昔のビ-ルの醸造者の専門用語で、タンク内の液体の上部にできるガスがたまった空間のことを指します。
ロケットでは、エンジンスタートの前にこのアレッジモータを噴射して、その反動で燃料をタンクの下部に集め、エンジンに送り込みます。
リアルタイム・コンピューティング・センター(RTCC)
コンピューティング・センターの始まり
1957年6月、NASAはヴァンガード計画において、ワシントンDCのペンシルバニアアベニューに、IBM 704コンピュータで構成されるリアルタイムコンピューティングセンター(RTCC)を設立した。 NASAの飛行管制用データセンターの元祖である。
NASAは1959年7月30日にWestern Electric社と、マーキュリー計画の追跡と地上システムの開発契約を結んだ。 そして1959年末までに、IBMはコンピューターとソフトウェアの下請け契約を受けた。 1960年11月には、それまでワシントンにあったデーターセンターが、新たに作られたGoddard Space Flight Center(GSFC)に移された。 そしてマーキュリー計画では、ここに設置したIBM7090メインフレームが使用された。
RTCCには、有人宇宙ミッションに耐えられる信頼性を確保するため、Mission Operational ComputerとDynamic Standby Computerと呼ばれる2つのIBM7090システムが準備された。 これはNASAの最初の冗長コンピュータシステムであり、 Dynamic Standby Computerは予備機として、Mission Operational Computerと同じ処理を行っていた。 この2つのコンピューターの名称はアポロ計画までそのまま使用された。 メインコンピュータからダイナミックスタンバイ機への切り替えは、人間の判断による手動切り替えであった。 John Glennがマーキュリー宇宙船で地球軌道上を飛行しているとき、メインコンピュータが3分間故障し、初めてスタンバイ機が活躍した。
マーキュリー計画で使用されたソフトウェアは Mercury Monitorと呼ばれていた。 これはアセンブラ言語で書かれた、イベントドリブン形式のソフトウェアで、 主な機能として、カプセル位置の決定、再点火時間の計算、捕捉時間の地上局への警告、および再点火後の着水場所の予測 が搭載されていた。 これらは3つのプログラムグループに分割されており、必要な時にテープからロードされて実行された。 そして“Monitor”と呼ばれるプログラムが全体管理を行っていた。 このようなタイプのソフトウェアの開発は、当時のIBMにとって初めてのものであった。 これが将来のマルチタスクOSのもととなった。
1962年にはNASAはジェミニ計画とアポロ計画に向けた準備を加速した。 NASAはヒューストンの複合センターに、有人宇宙飛行ミッション制御のためのコンピューターと飛行管制官の両方を集結させることに決めた。 ジェミニ1号から3号まではGSFCのシステムがメインとして稼働し、ヒューストンのシステムはアクティブなバックアップとして使用された。 そしてジェミニ4号(ジェミニ計画2度目の有人飛行)からヒューストンのシステムがメインとなり、ジェミニ計画の終わりまで、GSFCのシステムがバックアップとして使用された。
ジェミニ・アポロ計画のRTCC
4月には、フォードの子会社Philco CorporationのWestern Development Laboratoriesが新しいミッションコントロールセンターの要件の調査を開始した。 当初、 Philco社は、IBM 7094(7090の後継機であり、改善されたOS:IBSYSとより速い速度を持つ)を5台使う構成、 または UNIVAC 1107, IBM 7090, Philco 211のいずれかを9台使う構成、 または Philco 212, CDC 3600のいずれかを4台使う構成、の3案が検討されていた。 どの構成を選択しても、ジェミニ/アポロ計画のデーターセンターの複雑さは、マーキュリー時代の2台のコンピュータよりはるかに高いことは明らかであった。
その後のNASAの提案要求に対して、IBMは、3台のIBM 7094の構成を提案した。 ソフトウェアをミッションコンピュータプログラムとシミュレーションコンピュータプログラムに分割し、 1台のマシンは主にミッションプログラムを実行し、もう1台はダイナミックバックアップとして動作し、3台目はシミュレーションソフトウェアを実行して他の2台をテストする構成である。 これは、冗長性およびプリフライトトレーニングおよびテストの要件を満たしていた。 しかし3台のマシンでの信頼性は0.9712となり、NASAの仕様である 0.9995を達成するためには、4台をわずかに超える台数が必要であった。 (これがPhilco社が5台を提案した理由の一つである)。 当時IBMは、この信頼性の数値は誤解を招くものであり、いわゆる「ミッションクリティカル」フェーズの間では、3台のマシンの信頼性が0.9995を超えると主張していた。
1963年には、IBM 7094の最初の1台が到着し、 その後、そのコンピュータと他の2台が、湾岸高速道路の暫定施設に設置された。 これらは当初それぞれ32Kワードのメモリと98Kワードの外部コアストレージを搭載し、入力と出力のフロントエンドとして2台のIBM 1401が使用されていた。 最終的に、608人のIBMの人々がプロジェクトに同時に取り組み、そのうち400人がソフトウェア開発に取り組んでいた。
まず最初の3台が、暫定のセンターからヒューストンの有人宇宙船センターのビルディング30に移動した。 その後さらに2台が追加され、結局Philco社の予言通りとなった。 追加された2台は、地上システムシミュレーションコンピュータと、将来のソフトウェア開発のためのスタンバイとして使用された。 マシンのサイズと定格も、65,000ワードの主コア記憶域と、高速補助記憶装置として524,000ワードの追加コアを備えた7094-IIモデルに拡大された。 地上システムシミュレータは、追跡ネットワークや、その他の地上ベースのミッション管理装置をシミュレーションし、ソフトウェアのテストに使用された。
IBMがNASAと契約してから26か月後の 1964年12月9日のジェミニ2号の無人飛行で、ソフトウェアはバックアップとして動作させる準備が整い、 その後のジェミニ4号で、ミッションコントロールがケープからヒューストンに移行した。
ジェミニ計画のソフトウェア開発
飛行システム完成への鍵はミッションコンピュータプログラムであった。 その機能は、Mercury Monitorの機能を引き継いだ、Executiveという制御プログラムに集中していた。 Executiveの下では、3つの主なサブプログラムが順番に動作していた。 NETCHECKは、有人宇宙飛行ネットワーク全体にわたって、機器とデータフローの自動テストを行い、宇宙船の打ち上げ前のチェックを実行した。 これはマーキュリー計画で使用されたCADFISS(計算とデータフロー統合サブシステム)というプログラムのあとを継ぐものであった。 ANALYZERは飛行後のデータ整理を実行した。 そして、Mission Operations Program Systemは、軌跡計算、テレメトリ、宇宙船の環境、搭載コンピュータのバックアップ、ランデブー計算など、ミッション運用のすべてを担当する、ソフトウェアの中心的存在であった。 これはAgena標的衛星の打ち上げ(Agena launch)、ジェミニ宇宙船の打ち上げ(Gemini launch)、周回軌道(orbit)、軌道決定(trajectory determination)、ミッション計画(mission planning)、テレメトリ(telemetry)、デジタルコマンド(digital commands)、再突入(re-entry)など、いくつかのモジュールに分割されていた。 さらに各セクション内に複数のサブプログラムが存在した。 各サブプログラムは非常に高度で強力なものであった。
ソフトウェアの開発システムはCompiler Operating Systemと呼ばれ、これにはGAC(Gemini-Apollo Compiler)と呼ばれるFORTRAN / Mercuryコンパイラーの組み合わせが含まれていたため、FORTRANでのプログラミングも可能になった。 Mercuryコンパイラには、1950年代後半のIBMの標準システムであるIBSYS、およびIBSYSの前身であるSOS(Share Operating System)の全機能が含まれていた。
Executiveは、マーキュリー計画で最初に開発されたリアルタイム制御プログラムをさらに改良したものであった。 13,000語という比較的余裕のあるサイズのExecutiveは、優先度ベースのマルチプログラミング環境を提供した。
IBMは、同社が提案を作成した時点で、7094マシンの通常の32Kメモリでは不十分であることを認識していた。 待機中のプログラムはテープに格納しておくという商用機でのアプローチは、 ジェミニ計画でのソフトウェアのサイズと速度の要求を満たせなかった。 そのため、IBMは元のマシンにLCS(Large Core Storage)バンクというものを追加した。 これらのメモリバンクは、直接アドレス指定はできなかったが、より高速の2次メモリとして動作した。 テープに格納されたプログラムはLCSにロードされ、必要に応じてプライマリストレージに転送された。
NASAはアポロ計画用として、新製品の上位レベルのマシン、特に360/75が7094の代わりに使用できると考えた。 ただしソフトウェアのサイズが非常に大きいため、LCSは継続して使用する必要があると考えられた。 しかしIBMの360シリーズの出荷が遅れる中、CDC(Control Data Corporation)社は、より高速で高性能な6600シリーズを1965年に発売。 NASA本部のRobert Seamansは、CDC 6600を購入し、IBMにはそのソフトウェア保守させるよう提案した。 CDCはIBMが市場を維持するために、完成していない360を不当に早く契約させたと訴え、IBMは、総額約1億ドルの大きな譲歩で法廷を落ち着かせた。 そして他のベンダーの動きを妨げるのに間に合うよう、急いでヒューストンへ最初の360を出荷した。 NASAは1966年8月3日付けのニュースリリースで、360への置換を発表したのである。
アポロ計画に向けた改修
最初の3回のアポロの無人ミッションでは、残っていた4台の7094コンピュータがサポートし続けたが、 IBMは360を使ってアポロ月面飛行のためのソフトウェア開発を始めた。 システムは5台の360とLCSで構成されていた。 新しいマシンのOSはOS/360であり、これまで使用していたプログラムをそのまま走らせることはできなかった。 また、この標準的なオペレーティングシステムのもつ優先度割り込みの条項は、アポロ計画が必要とする種類の処理を行うのに十分ではなかった。 1965年から、IBMはオペレーティングシステムをリアルタイムバージョンのRTOS/360に変更した。 モジュール化したソフトウエア構造のおかげで、FORTRANで書かれたサブプログラムは、別々にコンパイルすることにより、比較的簡単に360に移動できた。 しかし、アセンブラベースのコードは修正する必要があった。 アーキテクチャは本質的に変更していないにも関わらず、この作業は元のシステムを動作させるのにかかるのと同じほどの時間が必要であった。
それぞれの360は、7094の約4倍のサイズとなる、100万バイトのメインメモリを搭載していた。 さらに各マシンには400万バイトのLCSが追加された。 しかし追加したスペースに合わせてメモリ使用量も増加していった。 メモリ容量の不足に伴い、プログラマーは数語を節約するために特異な「トリッキーな」コードを開発するようになっていった。 これはプログラムをさらに複雑にし、保守性を低下させる危険な兆候であった。 そこで360の性能を生かして、アセンブラに変わって、FORTRANでソフトウェアの重要な部分を開発することになった。
アポロシステムが運用段階に入ると、ダイナミックスタンバイコンピュータの使用頻度は低下していった。 最初の有人飛行であるアポロ7号ミッションにおいて、 カウントダウンと飛行後の運用を含む284時間のサポート期間のうち、コンピュータの使用はたった1台を181時間使用しただけであった。 月の近くでCSMとLMの2つの宇宙船をオペレーションしたアポロ10号ミッションにおいては、 各飛行操作の5時間前からスタンバイコンピュータも使用する計画であった。 これでも8日間のフライトの間、2台のコンピューターによるサポートが計画されていたのは6回だけである。 メインのコンピューターが故障したときの、オフラインスタンバイコンピュータの立ち上げに備えて、 オペレータは、1.5時間ごとにその時のデータを、チェックポイントテープとして保存していた。 そしてアポロ10号ミッション実施中の1969年5月20日、Zulu(= UTC) 12:58から13:01までの間、Mission Operations Computerの障害が発生した。 この時は、12:00に作成されたチェックポイントテープを使用してスタンバイが起動され、重大な問題は生じなかった。
スペースシャトルの時代に向けて
IBMはComputer Sciences Corporation社に勝って、 ふたたび1974年6月の初めから1980年代にかけてのNASA地上サポートシステムの開発契約を獲得した。 5台のSystem 370/168メインフレームコンピュータが、RTCCの後継となるShuttle Data Processing Complexを構成した。 それぞれは800万バイトの一次記憶装置があり、仮想記憶装置を構成しており、LCSタイプの補助記憶装置は必要なくなった。 その代わりに磁気ディスクが使用された。 ミッション運用中は3台のコンピュータが使用された。 1台はミッションマシン、1台はダイナミックスタンバイコンピュータ、もう1台はペイロードオペレーション制御コンピュータである。 これは1980年代の終わりには、第四世代のミッションコントロールシステムとして、IBM 3083に置き換えられた。
参考サイト
アポロ・ガイダンスコンピューター(AGC)
サターンロケットのコンピューター
リアルタイム・コンピューティング・センター(RTCC)
関連書籍・ビデオ
-
Digital Apollo: Human and Machine in Spaceflight (MIT Press)
The MIT Press 2011/09/30 USD22.78
As Apollo 11's Lunar Module descended toward the moon under automatic control, a program alarm in the guidance computer's software nearly caused a mission abort. Neil Armstrong responded by switching off the automatic mode and taking direct control. He stopped monitoring the computer and began flying the spacecraft, relying on skill to land it and earning praise for a triumph of human over machine. In Digital Apollo, engineer-historian David Mindell takes this famous moment as a starting point for an exploration of the relationship between humans and computers in the Apollo program.
-
The Apollo Guidance Computer: Architecture and Operation
Praxis 2010/07/12 USD42.70
Designing a mission for a flight to the Moon requires balancing the demands of a wide array of spacecraft systems, with the details of tending each component generating complex and often contradictory requirements. More than any other system in the Apollo spacecraft, the Apollo Guidance Computer drove the capabilities of the lunar missions. In the 1960's, most computers filled an entire room yet the spacecraft's computer was required to be compact and require little power.
-
Saturn V Apollo Lunar Orbital Rendezvous Planning Guide
Apogee Prime 2011/07/15 USD24.95
The Saturn V Apollo Lunar Orbital Rendezvous Planning Guide is a reprint of a rare document from the early 1960s in which the whole Apollo moon landing mission was presented and illustrated. The book includes a large fold-out of the Apollo mission as well as a fold-out of the Saturn V moon rocket. It includes illustrations of early iterations of the Lunar Module, maps of the Cape Canaveral launch sites, launch schedules for all of the Apollo test flights, detailed specifications and schematics of the Saturn V launch vehicle stages, construction schedules, engine summaries, information on the VAB, mobile crawlers, Umbilical towers, a DVD and more
-
Mission Control
Gravitas Ventures 2017/07/27 USD24.99
At the heart of the Apollo space program and a remarkable decade of achievement was the team who worked in Mission Control.They were born against a backdrop of economic turmoil and global conflict. Some came from a rural lifestyle little changed from the 19th century. Others grew up in a gritty, blue-collar America of mines and smoke stacks. They ranged from kids straight out of college to those toughened by military service. But from such ordinary beginnings, an extraordinary team was born. They were setting out on what JFK called: “The most hazardous, dangerous, and greatest adventure upon which mankind has ever embarked” and through their testimony ? and the supporting voices of Apollo astronauts and modern NASA flight directors ? the film takes us from the faltering start of the program through the Mercury and Gemini missions, the tragedy of the Apollo 1 fire to the glories of the Moon landings.
-
デジタルアポロ ―月を目指せ 人と機械の挑戦―
東京電機大学出版局 2017-01-20 2,700円
洋書Digital Apollo: Human and Machine in Spaceflightの翻訳。 2008年米国航空宇宙学会賞受賞作品。待望の翻訳。国の存亡やパイロットの生死を賭けた壮大なプロジェクト。失敗が許されない極限状態の中、人はどこまで「機械」に任せるのか。意思決定や最終判断は人が担うのか、「機械」が決めるのか。AIやIoTが一般的になりつつある現代において、人と機械、人とコンピュータはどうあるべきか、史実から未来を見つめる。
-
ドリーム NASAを支えた名もなき計算手たち
ハーパーコリンズ・ ジャパン 2017/8/17 1080円
1943年、人種隔離政策下のアメリカ。数学教師ドロシー・ヴォーンは、“黒人女性計算手"としてNASAの前身組織に採用される。コンピューターの誕生前夜、複雑な計算は人の手に委ねられ、彼らは“計算手(コンピューター)"と呼ばれていた。やがて彼らは宇宙開発の礎となり、アポロ計画の扉を開く――!差別を乗り越え道を切り拓いた人々の姿を描く、感動の実話。映画『ドリーム』原作。
-
ドリーム (4K ULTRA HD/Blu-ray)
20世紀フォックス・ホーム・エンターテイメント・ジャパン 2018-02-02 6469円
NASAを支えた知られざるヒロインたち。実話に基づく感動のサクセス・ストーリー。1961年、アメリカはソ連との熾烈な宇宙開発競争を繰り広げていた。NASAのラングレー研究所には、ロケットの打ち上げに欠かせない“計算”を行う優秀な黒人女性たちのグループがあった。そのひとり、天才的な数学者キャサリンは宇宙特別研究本部のメンバーに配属されるが、そこは白人男性ばかりの職場で劣悪な環境だった。仲の良い同僚で、管理職への昇進を願うドロシー、エンジニアを目指すメアリーも、理不尽な障害にキャリアアップを阻まれていた。それでも仕事と家庭を両立させ夢を追い続けた3人は、国家的な一大プロジェクトに貢献するため自らの手で新たな扉を開いていくのだった……。