ご存知でしょうか?4月12日は「世界宇宙飛行の日」です。そこで、宇宙で使用されるコンピューターについて少しお話しすることにしました。宇宙用のコンピューターがどのようなものか、何をするものなのか、また宇宙のコンピューターを保護する方法と保護が必要な理由を紹介します。
宇宙船のコンピューター化は、我々の生活のあらゆる場面と同様に、常に向上しています。さまざまな機器が点滅する巨大なコントロールパネルに代わって、ノートPCの採用が進んでいます。乗組員は国際宇宙ステーション(ISS)のどこからでもノートPCをメインフレームに接続し、必要なデータにアクセスしたり、指示を入力したりすることができるようになりました。もちろん、一般ユーザー向けのノートPCや搭載コンピューターが使われているわけではありません。最近では市販コンピューターの使用も増えていますが、やはり宇宙用のコンピューターは興味深い機能を備えています。
設計
専門家でない人は現代の宇宙船コントロールユニットに特に感動することはないでしょう。考えてみれば、そういう人は昔のものにも興味はないはずですが。コントロールユニットは地味な重金属の箱であり、色の付いたソケットがいくつか付いているだけです。USBもなければ、ディスプレイもなく、場合によってはキーボードすらありません。確かにとても時代遅れなものに見えますが、それはすべて、システムの信頼性を最優先しているからなのです。
各ユニットがモジュラー設計となっているため、プロセッサであれ、メモリチップであれ、入出力システムであれ、簡単に取り出して新しいものと交換できます。このような設計によって、短時間で容易な保守が可能となります。電子機器が宇宙放射線の影響を受けて不具合を起こすことがあるため、これは宇宙船の設備において不可欠なものです。
ISSには数多くのコンピューターがあり、なかには外部に取り付けられているものもあります。そのようなコンピューターを修理するには、乗組員が宇宙空間で作業しなければなりません。修理が必要なコンピューターは1年間でおよそ20台になります。
性能
現在ISSで使用されている最も一般的なタイプのハードウェアはIntel 80386SXです。これは20年前の家庭用PCで広く使われていたものです。現在のプロセッサに比べれば見劣りする性能ですが、その理由は、現在の巨大な処理能力が主に美しいゲームグラフィックやインターフェイスレンダリングに使用されているから、とも言えます。宇宙での基本的な作業には、小さな処理能力でも対応できます。何と言っても、当時彼らは月探査を計画できたのですから。
宇宙用コンピューターが「時代遅れ」とされる主な理由は、開発に途方もない時間がかかることです。場合によっては数十年を要することもあります。将来の探査の目標リストは、計画されるコンピューターに必要な技術的特徴とともに作成されています。すべて、実績のある現代の技術を考慮して行われるのです。また、古いCPUには電力をあまり消費しないというメリットもあります。宇宙では1ワットたりとも無駄にできません。
シンプルであるほど良い
宇宙船自体は非常に複雑で高度な機械ですが、その制御システムはとてもシンプルで、ごく少数の操作だけを実行する基本ユニットで構成されています。コンピューターモジュールにできることが少ないほど、安定性と信頼性が高まり、問題が発生した場合も解決が容易になります。
また、ソフトウェアも予測可能なものであるべきです。使用されているのはリアルタイムオペレーティングシステム(RTOS)で、これには「推測」の余地があまりありません。そのため、システムから迅速な応答を得られ、信頼性が確保されます。かなり長い間「考える」傾向のあるWindowsと異なり、宇宙のRTOSはバッファリングに時間を浪費することがありません。特定の宇宙船用ソフトウェアは、RAMであれCPU負荷であれ、システムリソースを無駄にしないようにも設計されているのです。
パッチ、更新、デバッグ
完ぺきなソフトウェアアプリケーションというものは存在しません。どれほど膨大な量のチェックをかけてもコード内のエラーがすり抜けることはあります。影響を受けるコンピューターが数千マイル(宇宙探査機の場合は数百万マイル)離れていれば、デバッグは容易ではありません。そのため、ソフトウェアエラーの問題に対処する最善の方法は、宇宙用コンピューターの完全なレプリカを使ったシミュレーションを、地球上で行うことです。つい先ごろ、この方法で宇宙探査機ボイジャー2号(Voyager 2)が「再起動」されました。同探査機は40年前に打ち上げられたもので、今はもう太陽系を離脱したと言われています。ボイジャー2号は2010年にハードウェアの故障によって、一貫したデータではなく無差別な信号を送信するようになりました。運よく、NASAのボイジャー2号のラボに、同じ種類の2番目のコンピューターが保管されていたため、問題のシミュレーションを実行し、NASAのスペシャリストはメモリセクターの損傷が原因であることを突き止めました。その後、実際のパッチ(問題を修正するソフトウェア更新)が無線でボイジャーに送信されました。同探査機はこうして修理され、深宇宙からのデータ送信を再開しましたが、今後さらに40年にわたって運用される可能性もあるとみられています。それは信号の限界を迎えるまでか、あるいは、宇宙人に捕まってしまうまでかもしれません。
火星探査車のスピリット(Spirit)も最近、同様の処置を受けています。そう、メンテナンスや定期的な更新が必要なのは、一般的なホームコンピューターだけではないのです。
情報の消失は許されない
宇宙探索は有人であれ無人であれ、非常にコストのかかる取り組みです。立ち上げには、時間もお金も人手も多く必要になります。したがって、データ消失につながる問題は、どんなに小さなものであっても、こうした努力がすべて水泡に帰すことを意味します。このような問題を防ぐために、宇宙用のコンピューターには非常に多くのバックアップシステムが必要です。そのために、多くのケースで、種類の異なるストレージが一度に使用されます。たとえば、フラッシュメモリを磁気テープとともに使用することで、少なくとも1つのストレージが使用可能な状態を維持します。そのシステムは、ホームユーザーがお気に入りの音楽や休暇の写真を保存するのに使うバックアップと大きな違いはありません。音楽や写真などは、個人の感情という点においては非常に価値あるものですが、宇宙で収集されるデータほど高価なものではありません。
現代
ISSの各乗組員はLenovo ThinkPadを使用しており、ThinkPadをISSのさまざまなシステムに特別なバスから接続することができます。
今の宇宙飛行士は現代技術のおかげでWebを見て回ったり地球にいる家族と話したりすることができますが、その通信チャネルは保護されており、宇宙飛行士をWeb上の危険から遠ざける特殊な保護バッファが設けられています。さらに、このような通信には別のコンピューターが使われ、ISSの安全に関わる重要な装置には接続されません。この予防措置はすでに有効性が証明されています。2007年の飛行で宇宙飛行士のノートPCからマルウェア「Gammima」が検知されました。ノートPCはウイルス対策製品で保護されていませんでしたが、この出来事の後、NASAはウイルス対策製品による保護について検討を始めました。