Voyager выходил на связь. Земля просто не могла её прочитать.
14 ноября 2023 года стало началом серьезного сбоя связи с Voyager 1. Почтенный космический аппарат, находящийся на расстоянии более 15 миллиардов миль от Земли, продолжал получать и выполнять команды, что свидетельствует о его неизменной эксплуатационной целостности. Однако его телеметрия, некогда богатый поток научных и инженерных данных, превратилась в бессмысленные повторяющиеся последовательности единиц и нулей.
Аномалия возникла в Flight Data Subsystem (FDS), одном из трех бортовых компьютеров Voyager 1. FDS отвечает за упаковку всех научных и инженерных показаний перед их передачей на передатчик космического аппарата. Это не была потеря связи; Земля все еще могла «говорить» с Voyager, но аппарат больше не мог «отвечать» на понятном языке.
Разрешение такого парадокса на межзвездных расстояниях представляло собой огромную проблему. Каждому сигналу, движущемуся со скоростью света, требуется около 22,5 часов для преодоления пути в одну сторону. Это означало, что каждый диагностический шаг, каждая попытка исправления и каждое подтверждение занимали почти два дня, превращая устранение неполадок в кропотливый, затянувшийся обмен данными с машиной на краю Солнечной системы.
«Тычок» вывернул компьютер наизнанку
В марте 2024 года инженеры NASA инициировали критический диагностический маневр. Они отправили команду, которую в шутку назвали «тычком» (poke), побудив Flight Data Subsystem (FDS) аппарата Voyager 1 выполнить другой программный путь. Два дня спустя Deep Space Network получила новый сигнал: полный дамп памяти FDS, содержащий его активный код и переменные.
Сравнив этот новый дамп с более ранними базовыми данными до сбоя, команда в апреле точно определила аномалию. Вышел из строя один memory chip, повредив примерно 3% общего объема памяти FDS. Это была не простая изолированная битовая ошибка; специфическая архитектура чипа создала более масштабную проблему.
Память FDS организует данные в 16-bit words. Неисправный чип отвечал за один конкретный бит в 256 последовательных словах. Его отказ сделал этот бит непригодным для использования в каждом из этих 256 слов, фактически повредив значительный блок критических системных процедур, которые вызывались на протяжении всей программы FDS. Предстоящая задача заключалась в том, чтобы обойти это неисправимое аппаратное повреждение с расстояния 15 миллиардов миль.
Патч должен был вписаться в пробелы
Замена неисправного чипа с расстояния 15 миллиардов миль была, конечно, невозможна. Инженеры сосредоточились на том, чтобы обойти поврежденную память. Проблема: сломанный чип затрагивал один бит в 256 последовательных 16-bit words, повреждая важные системные процедуры. Перемещение этих процедур требовало поиска нового непрерывного блока памяти, достаточно большого для их размещения, но в FDS не было ни одного свободного пространства такого размера.
Инженеры разработали хитроумное обходное решение. Они сегментировали поврежденные процедуры на более мелкие части, распределив эти фрагменты по различным доступным, несмежным участкам памяти внутри FDS. Это потребовало тщательного обновления каждого программного адреса, который вызывал эти процедуры, чтобы гарантировать, что система сможет найти каждую разрозненную часть.
Весь этот процесс проходил без использования современных инструментов. Архитектура Voyager 1970-х годов означала, что подходящего ассемблера не существовало. Команда кропотливо переводила каждое изменение кода и адрес памяти в двоичный код вручную, что стало свидетельством точности низкоуровневой инженерии. Подробнее о первоначальной диагностике см. Engineers Pinpoint Cause of Voyager 1 Issue, Are Working on Solution. 18 апреля 2024 года они загрузили первый патч для инженерных данных, восстановив их читаемость два дня спустя.
Нравится статья? Получайте такие каждое утро на почту.
одно письмо в день · отписка в два клика · без сторонних трекеров
Обновление на расстоянии 15 миллиардов миль, бит за битом
Инженеры NASA загрузили код для инженерных данных 18 апреля 2024 года. Два дня спустя, 20 апреля, вернулась читаемая инженерная телеметрия, положив конец пятимесячному отключению. Это был не физический ремонт неисправного чипа памяти, а программное решение, доставленное на расстояние 15 миллиардов миль через Deep Space Network.
Исправление включало точную манипуляцию памятью FDS на уровне байтов. Инженеры вручную сегментировали поврежденные подпрограммы, а затем распределили фрагменты по разрозненным доступным ячейкам памяти. Они кропотливо обновили каждый адрес в прошивке FDS, который вызывал эти подпрограммы, переводя каждое изменение в двоичный код без помощи современных ассемблеров.
Восстановление Voyager 1 демонстрирует изобретательность, необходимую для поддержания устаревших систем. Этот тонкий танец управления памятью позволил сохранить жизнь почтенному зонду. После первоначального исправления инженеры переместили подпрограммы научных приборов, восстановив работу всех четырех активных научных инструментов к июню 2024 года.
Тем не менее, миссия остается свидетельством как человеческого упорства, так и неумолимого хода времени. Ограничения по питанию продолжают сдерживать космический аппарат, а последующие аппаратные проблемы, такие как неполадка с основным передатчиком X-диапазона в конце 2024 года, подчеркивают постоянные трудности эксплуатации 47-летнего зонда в межзвездном пространстве.
Часто задаваемые вопросы
Что стало причиной того, что Voyager 1 начал отправлять нечитаемые данные?
Выход из строя чипа памяти повредил около 3% памяти Flight Data Subsystem, что затронуло подпрограммы, используемые для упаковки телеметрии.
Как NASA обошло проблему поврежденной памяти Voyager 1?
Инженеры разделили поврежденный код на фрагменты, разместили их в разрозненных свободных ячейках памяти и обновили адреса подпрограмм, которые их вызывали.
Почему инженеры переводили программные изменения для Voyager 1 в двоичный код вручную?
У команды не было работающего ассемблера для старой проприетарной компьютерной архитектуры Voyager, поэтому они преобразовывали изменения в машинный код вручную.
Когда Voyager 1 возобновил отправку инженерных данных?
NASA загрузило патч для инженерных данных 18 апреля 2024 года, и читаемые данные поступили два дня спустя.

