アポロ誘導コンピュータ(-ゆうどう-)とは、アポロ宇宙船の全航行機能を自動制御し、宇宙飛行士が飛行情報を確認/修正するためにリアルタイムで使われた組み込みシステムである(英語ではApollo Guidance Computer(AGC))。アポロ計画のためにMIT Instrumentation Laboratoryで開発された。アポロ誘導コンピュータのユーザインタフェース部(DSKY)
目次
1 アポロの中のAGC
2 詳細
2.1 タイミング
2.2 セントラルレジスタ
2.3 その他のレジスタ
2.4 命令セット
2.5 メモリ
2.6 割り込みと強制的カウンタ
2.7 スタンバイモード
2.8 データバス
2.9 ソフトウェア
2.10 ユーザーインターフェイス
3 Block II
4 PGNCSの障害
5 その他
6 外部リンク
//
月への飛行には毎回2つのAGCを使った。ひとつは司令船でもうひとつは月着陸船で使われた。 AGC上では一次誘導/航行/制御システム(Primary Guidance, Navigation and Control System)が動作し、その頭文字をとってPGNCS(「ピングス」と発音)と省略されて呼ばれた。
各ミッションでは他にもふたつのコンピュータを使用していた。
サターンV型ロケットの器械リングにあるIBM製の航行コンピュータ(LDVC)
月着陸船のAbort Guidance System(AGS)というTRW製の小さな機械。AGSはPGNCSの障害が発生したときに使われ、月から離陸して司令船にドッキングするまでを制御する。着陸には使えない。
アポロ誘導コンピュータは初期の集積回路(IC)を使って作られた。 Block Iバージョンは4,100個のICを使い、それぞれのICは3入力のNORゲートをひとつ構成していた。 次のBlock IIバージョンはふたつの3入力ゲートをひとつのICで構成したものを使い、全部で5,600ゲートとなった。 ゲートはレジスタートランジスタ・ロジック(RTL)で作られていた。 ICはワイヤーラップという方法で接続されている。 ICを挿入するソケットから金属棒が出ていて、その金属棒にワイヤーを巻きつけて接続する方法である。 金属棒とワイヤーは極めて高圧で押し付けられ、気密結合状態となるため、一般的な半田付けよりも信頼できるのである。 配線完了後、ワイヤーはエポキシ樹脂に封入される。 すべて同じICを使うことにより、初期のICを使った他のコンピュータ(ミニットマンミサイルの誘導コンピュータ)が悩まされた問題は発生しなかった。
コンピュータのRAMは磁気コアメモリ(4Kワード)でROMはコアロープメモリ(32Kバイト)である。 どちらもサイクル時間は12μ秒。 メモリのワード長は16ビットで、そのうち1ビットはパリティビットである。 CPU内の16ビットワードは、14ビットデータと1ビットのオーバーフローフラグ、1ビットの符号フラグから成る。
AGCの駆動クリスタル周波数は2.048MHzである。 クロックは分周されて4相の1.024MHzとしてAGC内で使われた。 さらにそれを分周して512KHzの信号を生成し、これをMASTER FREQUENCY(マスター周波数)と呼んだ。 この信号は外部のアポロ宇宙船のシステムを同期させるのに使われた。
MASTER FREQUENCYはさらに分周され5分の1の102.4KHzの信号が作られる。 これをさらに分周したF1(51.2KHz)からF17(0.78125KHz)の信号が作られる。 F10(100Hz)はAGCに戻され、リアルタイムクロックとPINC(後述)を使った強制カウンターをインクリメントするのに使われる。 F17はAGCがスタンバイモードの場合に定期的に動作させるのに使われた。
AGCは4本の16ビットレジスタを汎用的に使用した。 これをセントラルレジスタと呼ぶ。
A:アキュムレータ、一般に計算に使用される。
Z:プログラムカウンタ、次に実行すべき命令のアドレスを保持する。
Q:DV命令の剰余を保持する。またTC命令後のリターンアドレスを保持する。
LP:MP後の積の下位ビット部分を格納する。
コアメモリには4つの場所があり(アドレス20?23)、"editing locations"と呼ばれた。 ここの格納された値は自動的に1ビットシフトされたり1ビットローテートされたりするからである。 これは、Block IもBlock IIも同じである。
AGCには他にも処理の過程で使用するレジスタが存在する。
S:12ビットのメモリアドレスレジスタ。アドレスの下位ビットを保持