Что я считаю самым выдающимся инженерным чудом за всю историю космонавтики? Я не назову «Сатурн-5» или марсоход «Кьюриосити». Я вспомню два аппарата, которые прямо сейчас летят сквозь межзвёздную плазму на расстоянии в 24 миллиарда километров от дома. Вояджеры. И главное чудо там — их бортовые компьютеры. Три, по современным меркам смехотворных, вычислительных блока, построенных в 1977 году, которые до сих пор работают, ориентируются и разговаривают с нами. В эпоху, когда ваш чайник мощнее всей этой троицы, вместе взятой, упрямство «Вояджеров» — это почти философия.
Одному мозгу там не место
Большинство автоматических станций той эпохи обходилось одним центральным процессором или даже просто программно-временным устройством. Но перед командой NASA стояла задача, которая не укладывалась ни в какие рамки: «Гранд-тур». Нужно было, чтобы аппарат не просто летел по инерции, а интенсивно работал во время стремительных пролётов Юпитера и Сатурна, а потом ещё и Нептуна с Ураном. Представьте себе, что вы пытаетесь одновременно фотографировать ураган, слушать радиошум магнитосферы, замерять частицы и удерживать остронаправленную антенну на Земле, пролетая мимо планеты на скорости в десятки километров в секунду. Никакой одиночный компьютер того времени просто не справился бы с этим потоком данных и команд, да ещё и с чудовищным требованием по надёжности.
Поэтому инженеры совершили маленькую революцию: они создали первую распределённую вычислительную систему для дальнего космоса. На борту каждого «Вояджера» живут три отдельных компьютера, и каждый отвечает за свою, строго очерченную епархию.
Первый — это CCS, Компьютерная Командная Подсистема. «Директор» борта. Его задача — принимать команды с Земли, проверять их на ошибки и распределять задачи между остальными системами. Если нужно включить обогреватель или запустить двигатель коррекции, командует именно CCS. Интересно, что этот мозг почти без изменений перекочевал на «Вояджеры» с орбитального аппарата «Викинг», который садился на Марс. Надёжная, проверенная архитектура. Второй — AACS, система ориентации и позиционирования. Это «вестибулярный аппарат» зонда. Он следит за тем, чтобы остронаправленная тарелка всегда смотрела на бледную точку Земли, парируя шатания длинных магнитометрических штанг и вибрации от работы движков. Без него наш сигнал с Земли давно бы превратился в неразборчивый шёпот. И третий — FDS, подсистема полётных данных, «летописец и архивариус». Именно она собирает всю научную телеметрию, упаковывает её в пакеты данных и готовит к передаче. Ирония в том, что этот компьютер стал самым капризным из всей троицы, но именно его история — самый яркий пример живучести.
4 тысячи слов и магнитная лента
Опустимся на уровень «железа». Мы уже привыкли, что память измеряется гигабайтами. Так вот, оперативная память каждого из компьютеров «Вояджера» составляет чуть больше четырёх тысяч 18-битных машинных слов. В пересчёте на привычные нам байты — это меньше десяти килобайт. Чтобы вы осознали: этот текст, который я надиктовываю, в сыром виде занял бы почти всю свободную «оперативку» командного компьютера. А когда «Вояджеры» стартовали, у программистов оставались незадействованными всего два слова из этого объёма. Никакой операционной системы. Никаких излишеств. Машинный код, зашитый прямо в логику дискретных микросхем серии 7400.
Процессоры здесь не шарят в гигагерцах... Задающий генератор выдаёт 4 мегагерца, а тактовая частота процессора и вовсе составляет жалкие 250 килогерц. Производительность — около восьми тысяч операций в секунду. Ваш фитнес-браслет, прежде чем показать пульс, проворачивает вычисления в миллионы раз быстрее. Но самое очаровательное — это архитектура памяти. В CCS и AACS использовали не полупроводники, а так называемую проволочно-напылённую память. Информация в ней хранилась в виде магнитных доменов на тонкой проволоке с железо-никелевым покрытием. Но она была условно энергонезависимой — выключи питание, и данные останутся на месте.
Для хранения же огромного потока данных с научных приборов использовали не твердотельный накопитель, а архаичный восьмидорожечный магнитофон с лентой шириной в полдюйма и длиной 328 метров. Его ёмкость — около 64 мегабайт, что вмещало примерно сотню снимков с телекамер. Представьте себе: вы ждёте сеанс связи, чтобы на скорости от 1,4 до 115 килобит в секунду перегнать это «богатство» на Землю. Инженерам приходилось очень тщательно планировать, что стирать, а что хранить, потому что право на ошибку стоило бы нам, скажем, снимков вулканов Ио или колец Сатурна.
Как перепрошить систему на расстоянии в 20 миллиардов километров
Слабость «железа» компенсировалась гениальностью софта и возможностью его обновления. Да, в 70-х годах умудрились сделать перезаписываемую память (в FDS использовали уже CMOS-чипы, к которым мы ещё вернёмся), и код писали на Ассемблер, а позже на Fortran 77 и Си. И это не просто слова. В 1990 году, когда «Вояджер-2» завершил пролёт Нептуна и задача «фотографирования планет» была выполнена, инженеры столкнулись с новой реальностью. Аппараты уходили туда, где сигнал от Земли становится невероятно слабым. Что, если они перестанут слышать нас вообще?
Тогда программисты совершили нечто невообразимое: они переписали код FDS, внедрив программу аварийной автономии. Теперь, даже если бы «Вояджер» окончательно потерял связь и перестал принимать команды CCS, подсистема обработки данных знала бы, что делать. Проснуться, собрать научную информацию, упаковать её и начать слепую трансляцию на Землю по заранее заданному расписанию.
А чтобы этот шёпот вообще можно было разобрать, использовали каскадную коррекцию ошибок. Сначала коды Рида-Соломона (они работают с символами, а не с битами), а когда сигнал ослаб ещё сильнее, добавили свёрточные коды. Это уменьшило вероятность битовой ошибки с одного сбоя на пару сотен бит до одного на миллион. Без этого хитроумного математематического заклинания на снимках Тритона мы видели бы только серый «снег».
Смертельные глюки
Без сбоев, конечно, не обходится. Относительно недавно, в 2022 году, «Вояджер-1» начал посылать какую-то абракадабру с подсистемы AACS — телеметрия о положении антенны стала бессмысленной, хотя сама антенна смотрела чётко на Землю. Пришлось искать «крота» в коде и переключаться на резервный канал. А в конце 2023 года заглючил уже FDS — вместо осмысленных данных пошла мешанина. Поломка одной ячейки памяти в чипе, который летел сквозь холод и радиацию полвека, поставила под угрозу всю миссию. И вот тут инженеры сделали почти невозможное: они перераспределили память, «выколов» сбойный участок и переписав критический код в обход него. И всё это — методом проб и тыка, посылая команды и ожидая ответа почти двое суток.
Почему же поломка одной микросхемы не убила зонд сразу? Это урок дублирования. В CCS и AACS каждая цепь продублирована дважды, а FDS имеет прямой канал питания от радиоизотопного термоэлектрического генератора (РИТЭГа), минуя общую шину. Инженеры намертво припаяли его к самому источнику жизни. Чтобы обесточить память FDS, нужно, чтобы одновременно сдохли все три РИТЭГа, а это уже означает конец миссии в любом случае. А ещё там использована хитрая перекрёстная схема: любой процессор CCS может обратиться к любому выходному блоку. В итоге специалисты из Лаборатории реактивного движения до сих пор балансируют на грани, жонглируя резервными ветками и переставляя байты, чтобы выжать для науки ещё хотя бы пару лет.
Почему мы не можем сделать так же просто и вечно
Я часто думаю: почему современные спутники, напичканные защищёнными системами и радиационно-стойкой памятью, иногда летают хуже этих ветеранов? Ответ лежит не столько в технологии, сколько в философии. Современные системы сложны настолько, что мы не можем предсказать все их сбои заранее. Мы страхуемся дублированием, но само ПО настолько развесисто, что в нём легко прячется фатальная ошибка. Компьютеры «Вояджеров» делались в эпоху, когда каждый бит был на счету, а каждая инструкция вылизывалась вручную. Там нет «ничего лишнего», что могло бы сломаться.
И да, факт остаётся фактом: совокупная вычислительная мощь всех трёх компьютеров «Вояджера» уступает мощности простенькой электронной читалки. Но попросите свой ридер проработать 50 лет в открытом космосе, при минус 180 градусах, без единого перезапуска питания, и она рассыплется в пыль ещё на вибростенде. «Вояджеры» же — это не просто кусок кремния и золота. Это памятник культуре инженерии, где машина оказалась ровно тем, что нужно, чтобы унести наше любопытство туда, где заканчивается Солнечная система. И пока их ядерные батарейки выдают последние ватты, мы будем ловить их голос, потому что это биение сердца самого дальнего рубежа, построенного человечеством.