Для миссии Artemis II, которая недавно успешно завершила облет Луны, NASA разработало о...
Для миссии Artemis II, которая недавно успешно завершила облет Луны, NASA разработало одну из самых отказоустойчивых компьютерных систем в истории космических полетов. В отличие от «Аполлона», где компьютеры управляли только навигацией, а критические системы (климат, питание) контролировались вручную, в «Орионе» программное обеспечение отвечает практически за всё — от жизнеобеспечения до связи. Главная проблема — радиация. В дальнем космосе высокоэнергетические частицы могут переключить бит в памяти или вызвать сбой. Перезагрузить компьютер на расстоянии 400 тысяч километров от Земли не получится, и чинить его тоже некому. Поэтому систему спроектировали так, чтобы она переживала сбои без единой секунды простоя. Сердце архитектуры — восемь процессоров, работающих параллельно. На корабле установлены два компьютера управления, в каждом по два модуля управления полетом (МУП), а каждый МУП состоит из пары процессоров, которые проверяют друг друга. Если один процессор ошибается (например, из-за радиации), пара это замечает, и ошибочный модуль переходит в режим «бесшумного отказа» — он просто замолкает, не выдавая неверные команды. Остальные работающие модули при этом продолжают управлять кораблем. Система не голосует большинством (как в тройных системах), а просто выбирает первый работающий МУП из приоритетного списка. Это называется «бесшумный отказ». Если один модуль замолкает, система переключается на следующий. По расчетам, корабль может потерять три МУПа за 22 секунды и всё равно безопасно лететь на последнем. Причем замолчавший модуль не выбрасывается — он перезагружается, синхронизируется с работающими и снова включается в работу. Чтобы разные компьютеры работали синхронно, используется жесткая детерминированная архитектура. Сеть Ethernet с временным триггером распределяет точное время по всей системе. Каждый модуль видит одни и те же входные данные, запускает один и тот же код и генерирует одинаковые выходные данные. Если какое-то приложение не укладывается в строго отведенный ему временной интервал, модуль автоматически отключается, перезагружается и синхронизируется заново. Память защищена тройной модульной избыточностью — однобитовые ошибки исправляются при каждом чтении. Сетевые интерфейсы используют два канала передачи данных, которые постоянно сравниваются. Сама сеть имеет тройную избыточность на логическом уровне. Но что если произойдет катастрофа, которая выведет из строя все основные компьютеры сразу (например, программная ошибка)? Для этого есть полностью независимая резервная система. Она работает на другом аппаратном обеспечении, под другой операционной системой, с упрощенным программным обеспечением, написанным отдельно. Если основные компьютеры замолкают, резервная система автоматически берет управление на себя и может завершить миссию. Даже при полной потере питания корабль рассчитан на выживание. Когда питание восстанавливается, «Орион» сначала стабилизируется, затем направляет солнечные батареи на Солнце, после чего ориентирует хвост в сторону Солнца для тепловой стабильности, и только потом пытается восстановить связь с Землей. Такая архитектура с нулевой терпимостью к ошибкам дает представление о будущем, где основные вычислительные системы — от автономных автомобилей до промышленных сетей — смогут достичь той же непрерывной отказоустойчивости, которая сейчас требуется для полетов к звездам.