メモリは100KB未満、動作周波数はわずか1.024MHz。現代のブラウザでGIFアニメを1枚開くだけで消費する一時メモリは、アポロ誘導コンピュータ(AGC)数台分をゆうに満たす。数十ギガバイトのメモリが当たり前になった今日、深宇宙探査には膨大な計算資源が欠かせないという感覚が一般化している。
1969年に打ち上げられたアポロ11号は、その先入観を鮮やかに覆した。司令船と着陸船にそれぞれ搭載されたAGCの処理能力は、のちのApple IIと同等に過ぎない。グラフィカルなUIなど存在せず、宇宙飛行士は物理キーを手作業で叩いて指示を出した。この2台の老機が、軌道ランデブーから月面着陸噴射までの全行程を完遂したのである。
アポロ計画が証明したエンジニアリングの本質は極めて素朴だ。システムの限界を決めるのは、物理的な限界まで無駄を削ぎ落とす設計力にある。それから半世紀を経て、カナダの航空電子技術者マイケル・ニュートン(Michael Newton)が自らの手でこの名機を机の上に蘇らせた。
航空技術者が自宅の机の上に組み上げたアポロ管制卓
普段は民間航空機の電子機器保守を担当しているニュートンは、余暇を投じてオープンソースプロジェクト「Recreate Apollo」を立ち上げた。その目標は、宇宙船の心臓部となる操作インターフェース「DSKY(表示・キーボードユニット)」を1:1の実物大で机上に再現することだった。
図:実物の設計に可能な限り忠実に造形されたDSKY筐体。まるで宇宙船からそのまま取り外してきたかのような風格を持つ。出典:Raspberry Pi
外殻は複数の3Dプリントパーツを精巧に接合して作られている。表面にはマットなミリタリーグレーの車両用塗料が吹き付けられ、インジケーターランプの光も往年の趣を再現している。このレトロなパネルを駆動している心臓部は、1枚のRaspberry Piシングルボードコンピュータだ。ラズパイ内部ではエミュレータが稼働し、当時アポロ13号の司令船で動いていたものと同一のフライトソフトウェアを実行している。
ニュートンは公式誌『The MagPi』第171号でRaspberry Piを選んだ理由を明かしている。消費電力が低く発熱が小さいため、密閉されたプリント筐体の中でも安定して稼働し続けられること、オンボードのネットワーク機能によりリモートデバッグが容易なこと、そしてOS環境をSDカード用イメージとしてパッケージ化し、世界中のメイカーへそのまま共有できる利便性を評価したという。
100KB未満のメモリが支えた宇宙船ナビゲーションの全工程
MIT計器研究所がAGCの初期バージョンを納入したのは1966年のことだった。これはニール・アームストロングが月に降り立つ3年も前のことだ。実用化から間もない黎明期のチップと過酷な重量制限の間で、開発チームは度重なる妥協と格闘を強いられた。その結果、AGCは世界で初めてシリコン集積回路を採用したコンピュータとなり、一時は全米のチップ生産能力の約6割を消費した。
半導体が極めて希少だった時代、メモリの節減は徹底を極めた。実機に搭載された読み書き可能なRAM(消去可能メモリ)はわずか約4KBで、即時の飛行データを一時保持するに過ぎない。飛行プログラムを格納する読み出し専用メモリ(ROM)を合わせても100KB未満だった。この極小のリソースで、機体の姿勢制御、エンジン噴射予測、軌道修正のリアルタイム計算を同時にこなさなければならなかった。
宇宙飛行士との対話形式も極限まで無駄が削ぎ落とされていた。画面にピクセル表示の概念はなく、セグメント管による数字とランプのインジケーターだけが並ぶ。飛行パラメータを確認するには、「動詞(Verb)」と「名詞(Noun)」の2桁コードを順次キー入力する。装飾的なオーバーヘッドを完全に排し、貴重なクロックサイクルをすべて天体力学の計算方程式へ注ぎ込む構成だった。
ソフトウェアを極限まで絞り込むことで切り拓いた宇宙
過酷なハードウェア制約に直面した開発チームは、時代を先取りしたソフトウェア設計を生み出した。停電や宇宙放射線によるコードの消失を防ぐため、プログラムは「磁芯ロープメモリ(Core Rope Memory)」に物理的に編み込まれた。熟練工が編み針を手に取り、微小なドーナツ型のフェライト磁芯に極細の銅線を通していく。芯を通過させれば1、迂回させれば0を意味する。手作業で織り上げられたこのROMは、当時の半導体チップを凌ぐ記録密度を誇り、振動や放射線に対する物理的な耐性も備えていた。
さらに巧妙だったのがタスクスケジューリングの論理だ。技術者のハル・レイニング(Hal Laning)は、この小型機のために優先度付きプリエンプティブスケジューラを考案した。アポロ11号が月面に向けて最終降下を行っていた際、レーダーから予期せぬ大量の無効信号が割り込みとして押し寄せた。内部のジョブキューは瞬時に飽和し、システムは有名な「1202」と「1201」のアラームを次々と発令した。
現代のOSであれば、このような過負荷に見舞われればフリーズするかカーネルパニックに陥る。しかしAGCのスケジューラは即座に状況を判断し、レーダー表示の更新といった低優先度タスクを躊躇なく切り捨てた。そして全計算資源をエンジン噴射と姿勢安定化の処理へ最優先で割り振った。重要度の低い計算を潔く捨て去ることで船体の姿勢を維持し、アポロ11号は無事に静かの海へと着陸を果たしたのである。
眠れる図面を解読し100ページの製作ガイドを完全無償公開
図:すべてのプリントパーツはNASAのアーカイブ図面をもとに忠実にモデリングされた。出典:Raspberry Pi
この古い計器の復元には膨大な時間と労力が注ぎ込まれた。宇宙ファンたちは情報公開法を活用して当時の一次資料となる図面を入手。Virtual AGCプロジェクトのチームがこれらをデジタルアーカイブし、有志のボランティアたちが数ヶ月をかけて現代のCADソフトで扱える3Dモデルへと変換していった。
ニュートンは先行メイカーであるエリック氏の成果を引き継ぎ、不足していたパーツの図面を補完しながら試行錯誤を繰り返した。現代のスイッチやディスプレイ部品の寸法に適合させるため、実用的な設計変更も加えている。外見はオリジナルの歴史的忠実度を90%以上維持しつつ、内部の固定スナップやキートップの文字フォントは一般的なデスクトップ3Dプリンタの出力精度に合わせて調整された。
図:CADモデル、回路図、100ページに及ぶ組み立てマニュアルはGitHubで完全無償公開されている。出典:Raspberry Pi
ニュートンは得られた全成果をオープンソースとしてGitHubに公開した。3Dモデルや電子回路図に加え、100ページに及ぶ詳細な組み立てマニュアルも無償で提供されている。手順が細部まで解説されているため、工作環境さえあれば個人の手で宇宙船の計器を復元できる。博物館のガラスケースの奥に封じられていた技術的遺産が、誰もが触れて学べる実体験プラットフォームへと生まれ変わった。
計算資源が飽和した時代にこそ問われる「削ぎ落とす美学」
現代のソフトウェアエコシステムは、かつてない肥大化の罠に陥っている。スマートフォンに12GBのメモリが積まれる時代でありながら、過剰な依存関係と冗長なコードのせいで日常のアプリが頻繁に引っかかる。開発者は何層もの巨大なフレームワークを重ねることに慣れきり、単純なテキスト画面を1枚表示するためだけに数百メガバイトのメモリを消費している。
アポロ誘導コンピュータの復刻は、現代の技術者に冷徹な事実を突きつける鏡だ。人類史上最も遠くへ到達した挑戦は、決して肥大化したハードウェアスペックに支えられていたわけではない。真のエンジニアリングの強靭さとは、明確な優先順位のもとに無駄を切り捨て、限られた資源を本当に不可欠なロジックへと注ぎ込む規律の中にある。
1.024MHzの古びたコンピュータが月に届いたという事実は、現代の肥大化したシステムに反省を促している。計算パワーは論理を走らせる土台に過ぎず、アーキテクチャの構造的欠陥を覆い隠すことはできない。リソースに対する節制と敬意を持ち続けてこそ、複雑で予測不可能な現実世界で揺るぎなく動くシステムを生み出せるのだ。
参考リンク:
- Raspberry Pi 公式記事
- Virtual AGC プロジェクトアーカイブ
- Recreate Apollo オープンソースハードウェアガイド