2001-300

Как сделать компьютер, который способен работать десятилетиями без техобслуживания и апгрейда? Это не праздный вопрос. Разработка и поддержка вычислительных машин, которые требуют такой надёжности, — это мир, живущий по своим законам.

В статью о бортовых компьютерах космических аппаратов не уместилась одна история, которую никак нельзя упускать: история одиссеи межпланетного зонда Galileo, который за время полёта к Юпитеру собрал на себя все шишки, какие только возможно. Несмотря на многочисленные поломки, аппарат добрался до Юпитера и сделал большую часть запланированной работы. А всё потому, что инженеры NASA сумели найти программное решение аппаратных проблем, с которыми он столкнулся.

Проблемы начались в самом начале полёта. В 1991 году Galileo не сумел развернуть похожую на зонтик пятиметровую антенну дальней связи. Несколько недель потребовалось только для того, чтобы по косвенным признакам разобраться в произошедшем. Датчиков или камер, показывающих поломку, на Galileo не предусмотрели. Когда стало ясно, что застряли некоторые спицы “зонтика”, на аппарат отправили программу, которая раскручивала его корпус, а затем, в момент максимального ускорения, дёргала моторы, раскладывающие антенну. Не вышло. Другая программа поворачивала Galileo застрявшими спицами то к Солнцу, то к тени: замысел был в том, что перепад температур поможет сдвинуть их с места. Не помог.

Оставалась маломощная ненаправленная антенна, но из неё можно было выжать только 16 бит в секунду. Между тем вся миссия была рассчитана на скорость связи, которую давала сломанная антенна – 134000 бит в секунду. Передать всю собранную информацию со скоростью, которая в 10 тысяч раз ниже, было просто нереально. Пришлось что-то придумывать.

Galileo с не до конца раскрытым зонтиком главной антенны
Galileo с не до конца раскрытым зонтиком главной антенны

Начали с того, что связали несколько гигантских наземных антенн дальней космической связи NASA, находившиеся на разных континентах. Это увеличило чувствительность и позволило поднять скорость до 160 бит в секунду. Следующий этап – сжатие информации. Поначалу снимки, которые делал Galileo, хотели передавать несжатыми, но теперь этот вариант отпадал. На аппарат отправили программу, урезающую с отснятых кадров однотонную космическую черноту, а затем сжимующую их по одному из двух алгоритмов – с потерями или без. Это изменение потребовало переделать ещё и алгоритм коррекции ошибок. В итоге скорость связи удалось довести до 4500 бит в секунду. Мало, конечно, но хоть что-то.

Однако на этом злоключения Galileo не закончились. Уже на подлёте к Юпитеру в магнитном накопителе, куда предполагалось сбрасывать данные перед отправкой на Землю, застряла и частично повредилась лента. Пришлось экстренно переписывать программу сохранения данных так, чтобы избегать записи на испорченный фрагмент.

Следующая неисправность касалась всё того же накопителя – одного из немногих компонентов зонда, который не был продублирован. В этот раз он просто перестал работать, однако в итоге удалось выяснить, что неисправность вызвана тем, что ослабли светодиоды в датчике угла поворота. Проблему решили изобретательно: через светодиоды часами пропускали ток, чтобы полупроводник раскалился и восстановил свою кристаллическую структуру. Спустя сто часов термической обработки их светимость стала достаточной для нормальной работы.

Читайте также: Охота на инопланетные баги: почему космические компьютеры непохожи на обычные