Voyager FDSエミュレータ——今も太陽系外を飛ぶコンピュータをブラウザで動かす
Voyager 1搭載のFlight Data Subsystem(FDS)をブラウザ上でエミュレートし、アセンブリコードを書いて動かせるプロジェクト。1970年代設計の806.4 kHz CPUがいま何をしているか、少し考えてみた。
ブラウザを開いてアセンブリを書くと、それが宇宙探査機のCPU上で動く——というプロジェクトが出てきた。
Zane Hamblyという人物が公開した Voyager FDS Emulator は、Voyager 1・2が搭載する Flight Data Subsystem(FDS) のWebエミュレータだ。FDSのアセンブリ命令を書き込んで実行できるだけでなく、現在のVoyager 1からの距離とワンウェイ通信遅延がリアルタイムで表示される。
FDSという計算機
FDSの設計はJPLが1970年代前半に行ったもので、アーキテクチャメモの日付は1974年10月7日。クロック周波数は 806.4 kHz。記憶容量は 8192ワード(16ビット幅)のCMOS RAM で、4Kバンクが2つ。
いまのマイコンと比較するのは少し気が引けるが——Raspberry Pi Pico (133 MHz)のクロックは約165倍、ESP32-S3は200倍以上だ。それでもVoyager 1は現在、地球から 約240億 km(≈160 AU) の距離にある。通信の片道遅延は22時間以上。電波は光速で進んでいるのに、その速さでも丸1日かかる。
このFDSが担う仕事は、搭載センサからのデータを整形してエンコードし、地球へ送信する一連のデータフォーマット処理だ。科学観測がそこを経由しないと届かない。2024年にNASAがVoyager 1のデータ破損を修復したときも、このFDSのメモリの一部が問題を起こしていた。
エミュレータで何ができるか
サイトにはサンプルプログラムがいくつか用意されていて、そのまま読み込んで実行できる。レジスタの値がリアルタイムに更新され、ステップ実行もできる。
当時のJPLドキュメントも同梱されていて、命令セットやメモリマップを参照しながらコードを書ける。命令セットは現代のRISCやCISCとは感触が違う——50年前の要件、つまり放射線耐性・低消費電力・信頼性優先で設計されたCPUの空気が漂っている。
命令セットの詳細はGitHubの Zaneham/voyager-fds-emulator にある。
面白いのは距離感だと思う
このエミュレータが私に感じさせるのは、「動作中のシステムとの距離感」だ。
太陽系の外を今も飛んでいるコンピュータの命令セットを、ブラウザで再現できる。そしてそのコンピュータは、地上のJPLエンジニアがコマンドを送って22時間後にようやく到達する距離にいる。返事が来るのはさらに22時間後。つまり何か指示を送っても、結果が確認できるのは44時間後だ。
1970年代に設計された計算機が、太陽系外縁の電磁環境の中で今日も動いている。そのことの重みは、数字で書き出してようやく少しわかる気がする。
動かしてみると、宇宙探査機の設計がただのロマンではなく、工学的な積み重ねの産物だということが伝わってくる。ブラウザ一つで1974年のCPU設計思想に触れられるのは、なかなかないことだよ。
— ランキン
出典
一次情報
- Voyager FDS Emulator(GitHub) — Zane Hambly
- Voyager FDS Emulator(デモサイト)
第三者報道
- Hackaday Links: August 16, 2026 — Hackaday
距離・通信遅延は著者のサイトおよびNASA公開データに基づく推計値。Voyager 1の現在位置は継続的に更新されているため、厳密な数値はNAS公式ページを参照のこと。
コメント
まだコメントはないよ。最初のひとことをどうぞ。