ガリレオのコンピュータ
ガリレオには18以上のマイクロコンピュータが積まれています。11の観測機器がマイクロプロセッサを使用していて、そのうちの8種類が飛行中の再プログラムが可能です。エンジニアリングサブシステムではAttitude and Articulation Control Subsystem(AACS)とCommand and Data Subsystem(CDS)の二つがプログラム可能です。
CDS(Command and Data Subsystem)
CDSはガリレオの動作の中心になるコンピュータで、地球からのコマンドを受信し、観測機器やサブシステムからの情報を収集し、保存し、地球に送信するといった処理を行ないます。
地球からのコマンドにはすぐに処理するものと、何週間にもわたって行なう処理の流れとして保存されるものがあります。観測機器やサブシステムから収集した情報は地球に送るデータにまとめられます。また、データをテープレコーダに記録して後で地球に送ることもします。情報を収集する手順やCDSの処理方式は木星に到着後変更されます。
CDSのそのほかの仕事に搭載機器に同期信号を送ること、搭載機器の障害を監視し、障害からの復帰操作を行なう事があります。CDSはガリレオに積まれている機器が故障した時、故障した機器を見つけ、障害から復帰できるように問題の箇所を切り離します。木星からの信号は地球に届くまで約1時間かかります。そのため地球の管制官はガリレオの問題を解決するための指示をすぐに送る事ができません。ガリレオは自分で面倒をみなければならず、障害への対応能力が必要になるのです。
ハードウェア
CDSはRCA COSMAC 1802 8bit マイクロプロセッサを6個持っていて、3個のプロセッサからなる二組のシステムに構成されています。各マイクロプロセッサはそれぞれメモリを持ち、独立してソフトウェアを実行することができます。プロセッサは2組のCDSの通信バスを用いてほかのプロセッサと通信を行ないます。通信のトラフィック制御は各サブシステムの3個のプロセッサのうちの一つが行ないます。
CDSは木星到着までは固定されたタイムスロットを持つTime Division Multiplexed telemetryとして動作します。2組のシステムはそれぞれCDSが行なわなければならない仕事を行なう事ができますが、一方のみが宇宙船の制御を行ないます。
木星到着後、CSDは6個のプロセッサを持つ1台のマルチプロセッサコンピュータのように動作します。そして非同期の可変長パケットを用いるpacket telemetry systemに動作をかえます。
ソフトウェア
CDSは巡回監視という方式のスケジューリングを行なうオペレーティングシステムで動作しています。ガリレオのCDSの場合、2レベルの巡回監視方式をとっています。フォアグランドのタスク群は自己診断やプロセッサ通信バスの制御、毎秒15回のシステムクロックの読み取りといった処理を行ないます。バックグランドのタスク群は優先と非優先の2種類のジョブにわかれます。優先ジョブは障害検知、監視といったタスクが割り当てられています。ガリレオの操作シーケンスは非優先ジョブに割り当てられます。
巡回監視スケジューリング方式では、各タスクは一定の処理時間を与えられ、その時間内に処理を終わらせます。与えられた時間内に処理が終わらない場合、非優先ジョブのタスクはオペレーティングシステムによって処理を打ち切られます。一方優先ジョブのタスクは打ち切られる事はありません。これは優先ジョブのタスクは再プログラムされる事はなく、地上で十分テストされたプログラムなので処理時間をオーバーするような事はないからです。非優先ジョブのタスクは飛行中にどんどん再プログラムされるので、優先順位の高いグループのタスクに比べると信頼性が劣ると考えられるからです。
AACS(Attitude and Articulation Control System)
姿勢制御をおこなう
AACSはATAC(Applied Technologies Advanced Computer)と呼ばれる4個の4bitビットスライスデバイスからなる16bitコンピュータで、2kbyteのROMと32kbyteに分割された64kbyteのRAMからなります。分割されたふたつの32kbyteのRAMは同一のコードを含んでいて、ATACの64kbyteのアドレス空間の下位の32kbyte、上位の32kbyteのどちらにも割り当てることができます。下位の32byteに割り当てられた部分はオンラインとみなされ、AACSの処理を実行するコードが含みます。上位の32kbyteに割り当てられた部分はオフラインとされ、現在のデザインではどんなコードも実行されません。
AACSはアセンブラ(ガリレオ用に変更されたコンピュータ用の専用アセンブラ)とHALS(スペースシャトルのプログラムにも用いられました)の組み合わせでプログラムされました。HALSはガリレオのようなdual spinningの姿勢と接合の制御をサポートするために必要な計算に必要とされる強力な行列操作機能を持っています。
Galileo Real-Time AaCs Operating System(GRACOS)と呼ばれるAACSのリアルタイムオペレーティングシステムはJPLで特別に作られました。GRACOSは割り込み駆動のシステムで、リアルタイム割り込み(Real-Time Interrupt(RTI))といわれる66 2/3ミリ秒のシステム周期を分割、または複数使った周期でAACSのプロセスをスケジューリングします。リアルタイム割り込みはプロセスを同調させるためにCDSからすべての機器に送られます。AACSが行わなければならない処理は2/RTI、1/RTI、1/10RTIの周期でスケジュールされます。いくつかのイベントは非周期で、イベントが発生したことをAACSに知らせます。
もとねた、参考資料
The Galileo Spacecraft
The Galileo Messenger/
The Galileo Spacecraft
UNIXマガジン 1991年9月号 リアルタイムとUNIX