ボイジャー宇宙探査機は1977年9月5日に打ち上げられ、同年にApple II、TRS-80、Commodore Petが発売された。
ボイジャーの主要ミッションは1989年8月25日のボイジャー2号による海王星との遭遇で終了した。2023年後半にボイジャー1号でコンピューター問題が発生し、8ヶ月間の故障発見と修復作業が行われた。
ボイジャーの設計には3台のコンピューターがあり、冗長性のため各々が2倍構成されている。Flight Data Subsystem(FDS)は8kの16ビットワードのDRAMを使用し、これは16k 8ビットバイトと同容量である。
一方、1985年9月にスペインで発表され1986年1月にイギリスで発売されたSinclair ZX Spectrum 128は64kのメモリにしかアクセスできないため、128K全体にアクセスするためにページング機能を使用している。
両システムともマイクロプロセッサーは使用せず、アセンブラーで書かれた手作りの機械語コードで動作する。ボイジャー1号のデータリンクは光速で2日以上の距離にあり、通信速度は約110ビット毎秒である。Spectrum 128のファームウェアは9600bps RS-232リンクを介してVax 11/780でデバッグされた。
From: Curious connections: Voyager probes and Sinclair ZX Spectrum
【編集部解説】
この記事で興味深いのは、1970年代の宇宙技術と1980年代の家庭用コンピュータが直面した技術的制約が本質的に同じだったという点です。両システムとも限られたメモリ容量を効率的に活用するため、メモリページングという手法を採用しました。
ボイジャー1号は1977年9月5日に打ち上げられ、そのFlight Data Subsystem(FDS)は8kワード(16ビット)のDRAMを使用していますが、プロセッサは12ビットのアドレス空間しか扱えないため、メモリを2つの4Kページに分割する必要がありました。一方、1985年9月にスペインで発表され1986年1月にイギリスで発売されたZX Spectrum 128は128KBのメモリを持ちながら、3.5469 MHzで動作するZ80プロセッサが直接アクセスできるのは64KBまでのため、同様のページング機能を実装しています。
2023年後半に発生したボイジャー1号の通信障害は、まさにこのFDSのメモリチップの破損によるものでした。NASA JPLのエンジニアチームは、破損したコードを健全なメモリ領域に分散配置し直すという画期的な解決策を編み出しました。この修復作業には8ヶ月を要し、地球からの信号が片道22時間以上かかる距離での遠隔デバッグという前例のない挑戦でした。
この事例が示すのは、宇宙開発における技術の耐久性と保守性の重要さです。現在のソフトウェア開発では当たり前のクラウドアップデートや迅速なバグ修正とは全く異なる制約下で、48年間動作し続ける機械の維持管理が行われています。
また、The Registerの記事では言及されていませんが、この技術的類似性は偶然ではありません。1970年代から1980年代にかけて、半導体技術の制約により、効率的なメモリ管理は宇宙から家庭まで共通の課題でした。当時の技術者たちは、限られたリソースの中で最大限の性能を引き出すため、創意工夫を重ねていたのです。
【用語解説】
Flight Data Subsystem(FDS)
ボイジャー探査機に搭載された3つのコンピュータシステムの1つで、惑星との遭遇時に大量の科学データを処理するために設計された専用システムである。8kワードのDRAMを使用し、メモリページングによって動作する。
メモリページング
限られたアドレス空間しか持たないプロセッサが、より大きなメモリ容量にアクセスするための技術。メモリを複数のページに分割し、必要に応じてページを切り替えることで実現する。
DRAM(Dynamic RAM)
データを保持するために定期的な電力供給(リフレッシュ)が必要な揮発性メモリ。静的なROMと異なり、電源が切れるとデータが失われる特性を持つ。
Z80プロセッサ
1976年にZilog社が開発した8ビットマイクロプロセッサ。Intel 8080の命令セットをベースに拡張され、多くの家庭用コンピュータやゲーム機に採用された。ZX Spectrum 128では3.5469 MHzで動作する。
アセンブリ言語
機械語に最も近い低水準プログラミング言語で、プロセッサの命令を人間が読める形で記述できる。高水準言語と比べて実行効率が高いが、プログラムの作成は困難である。
放射性同位体熱電発電機(RTG)
放射性物質の崩壊熱を電力に変換する発電装置。太陽光が届かない深宇宙での長期ミッションに使用され、ボイジャー探査機の主電源として搭載されている。
【参考リンク】
NASA Jet Propulsion Laboratory (JPL)(外部)
ボイジャー探査機を開発・運用するNASAの研究機関で深宇宙探査技術の最先端研究を行っている
The Register(外部)
英国発祥のIT専門ニュースサイトで技術的分析を独自視点で報じエンジニアに広く読まれている
【参考記事】
Voyager 1 – NASA Science(外部)
NASA公式サイトのボイジャー1号ページで1977年9月5日打ち上げから48年間の運用実績を提供
NASA’s Voyager 1 Resumes Sending Engineering Updates to Earth(外部)
2024年4月のボイジャー1号通信回復についてFDSの問題解決過程と対応策を詳述
Engineers Working to Resolve Issue With Voyager 1 Computer(外部)
2023年12月時点でのボイジャー1号通信障害についてNASAの公式見解と技術的詳細を説明
Sinclair ZX Spectrum 128 – Home Computer Museum(外部)
ZX Spectrum 128の技術仕様を詳述し1985年発表から1986年発売までの詳細情報を提供
【編集部後記】
今回のボイジャー探査機とZX Spectrumの技術的類似点から、みなさんはどんなことを感じられますか?1977年9月5日に打ち上げられた宇宙技術と1980年代の家庭用コンピュータが、限られたメモリを効率的に使うという同じ課題に取り組んでいたという事実は、技術の進歩の意外な一面を見せてくれます。現在私たちが当たり前に使っているスマートフォンのメモリ容量と比較してみると、その制約の中で成し遂げられた偉業の大きさが実感できるのではないでしょうか。また、現在のクラウド時代において、このような物理的制約下での遠隔メンテナンスから学べることがあるかもしれません。みなさんはこの技術的共通点について、どのような視点をお持ちでしょうか?