Компьютер Space Shuttle: пятеро в челноке, не считая экипажа
АрхивСтатьиБортовая система первого "Шаттла" состояла из пяти блоков, расположенных по всему кораблю. Каждый следил за исправностью других, что давало отменную надёжность.
Восьмого июля 2011 года в половину восьмого вечера по московскому времени успешно стартовала последняя из миссий космической транспортной системы (Space Transportation System), известной в народе как "космический челнок" или Space Shuttle.
В этой миссии с кодом STS-135 главным героем был космический корабль многоразового использования "Атлантис". Экипаж из четырех астронавтов решал по-настоящему "челночные" задачи: доставку необходимого для Международной космической станции оборудования, запасных частей и всего связанного с системой жизнеобеспечения экипажа станции. Все это добро, упакованное в четырехтонный баул-модуль с романтическим названием "Рафаэль", позволит МКС спокойно просуществовать в течение следующего года.
Челнок "Атлантис" (кодовое название OV-104, Orbiter Vehicle), переданный NASA в эксплуатацию в 1985 году, - настоящий ветеран космических прогулок. Тридцать три раза этот "орбитальный транспорт" вылетал на задания, среди которых были и миссии для Министерства обороны США, и стыковка с российской космической станцией "Мир", и грузоперевозки стройматериалов для Международной космической станции.
Немудрено, что такому ветерану доверили с честью завершить почти тридцатилетний космический марафон "челноков" и, приземлившись, занять достойное место в музее Космического центра имени Кеннеди.
Вот они, пять космических труженников STS
Наверное, в таком же пафосном стиле можно было бы рассказать обо всей миссии STS-135, если бы не одно "но". На шестые сутки полета компьютерная система "Атлантиса" заставила сильно понервничать и экипаж и наземные службы. Шутка ли, практически сразу два компьютера космического челнока засбоили, перестав выполнять свои штатные обязанности.
По протоколу миссии, отказ двух компьютерных систем корабля приводит к сокращению времени пребывания челнока на орбите. А если такое случается с тремя компьютерами, миссия в срочном порядке прекращается и шаттл сажают в ближайшее подходящее для посадки время. Комментируя происшествие с двойным отказом, один из представителей NASA честно признался: "если мы вдруг обнаружим еще одну проблему с еще одним, третьим компьютером, - честно говоря, мне кажется, что тогда мы все очень крепко задумаемся о том, что там происходит".
К счастью для NASA, компьютерных отказов в последнем челночном полете не было. Сбои двух машин устранили перезагрузкой их программного обеспечения, восстановив тем самым компьютерное равновесие в сложном хозяйстве "Атлантиса".
Что же за компьютерная система трудилась тридцать лет в глубинах космических челноков? Ведь, судя по проблемам, в шаттлах работает далеко не один компьютер.
Шестидесятые. Битва за AP-101
Может показаться удивительным, но проектирование системы STS, основанной на космических челноках, началось еще до победоносных пилотируемых полетов США к Луне.
В середине шестидесятых руководство NASA начало рассматривать проекты космического транспортного средства, навеянные ничем иным как фашистскими проектами суборбитального бомбардировщика, способного, на недосягаемой для противоракет высоте, сбросить свой смертоносный груз на любую точку планеты. Как и в случае ракетостроения развивал идею такого самолета Вернер фон Браун, предложив проект челнока-самолета, закрепленного на носу мощной ракеты-носителя. Эта идея фон Брауна даже начала воплощаться в системе Dyna-Soar, использующей ракету-носитель "Титан-III". Dyna-Soar так и остался проектом, хотябы потому что его челнок предлагалось сделать пассивным летательным аппаратом, приземляющимся примерно как планер. Что до инженеров NASA, то они ратовали за челнок-самолет, способный к активному маневрированию и на орбите и при взлете и посадке.
Вернер фон Браун с макетом системы Dyna-Soar
Именно тогда проект Space Transportation System с двумя твердотопливными ускорителями и большой "канистрой" для самолета-челнока с мощными двигателями получил одобрение и хорошее финансирование.
Выбор самолетоподобной конструкции космического корабля поставил перед инженерами ряд сложнейших задач, одной из которых была компьютерная система челнока. Очевидно, что компьютерное наполнение космического самолета должно быть не в пример сложнее компьютеров, используемых в более ранних пилотируемых миссиях. Почему? Да хотя бы потому, что компьютеры шаттла в отличие от компьютеров программ Gemini и Appolo, кроме навигационных функций и систем телеметрии полета должны были отвечать за управление самим челноком.
Развивающаяся семимильными шагами реактивная авиация, доказала, что самостоятельно справиться с сотнями функциональных подсистем мчащегося на сверхзвуковой скорости самолета пилот просто не способен. В помощь ему была предложена авионика (авиационная электроника) - компьютерные системы, поддерживающие все фазы полета в заданных параметрах и активно реагирующие на действия пилота.
Но шаттл - не обычный реактивный самолет. Его компьютерные системы должны работать не только в режиме авионики, но и обеспечивать: ориентацию корабля на орбите, навигацию, стыковку с космическими станциями и запуск в эксплуатацию таких объектов, как, например, спутники.
Шаттл только внешне напоминал самолет. Внутри это сложнейшее инженерное сооружение
Кроме того работая в критических условиях космического пространства, компьютерная система челнока должна обеспечивать беспрецедентную надежность, от которой всецело зависит жизнь экипажа и успех дорогостоящей миссии.
Для поиска лучшего решения агентство NASA объявило тендер на создание оптимальной по функциональности и стоимости компьютерной системы.
Тендер был объявлен несмотря на то, что компьютерное обеспечение всех предыдущих пилотируемых миссий выполнялось одной компанией - лабораторией Дрепера при Масачуссетском технологическом институте, и, казалось бы, этой компании вполне можно доверить разработку компьютера для шаттла. Но в NASA решили по-другому. Все дело в том, что компьютеры, разработанные лабораторией Дрепера, например Appolo guidance computer (AGC), были уж очень специализированными - как с точки зрения аппаратной начинки, так и с точки зрения программирования на весьма специфическом языке ассемблера. Расширить их функциональность, а уж тем более быстро перепрограммировать (а именно это и требовалось для разнообразнейших задач Space Shuttle) было очень сложно.
Поэтому в NASA и начали рассматривать проекты систем, имеющих земные аналоги и способных легко расширяться и перенастраиваться.
В качестве претендентов были отобраны компьютеры: IBM серии 4Pi AP-1 , Autonetics D232 от Control Data Corporation Alpha, Raytheon RAC-251 и Honeywell HDC-701.
В 1970 году тендер выиграла компания IBM. Все благодаря тому, что компьютеры ее серии 4Pi, будучи полностью совместимыми по системе команд с известной серией IBM 360, прошли обкатку в модулях авионики самолетов корпорации Rockwell, у которой был контракт на постройку шаттлов. В качестве базового компьютера будущих челноков выбрали 32-разрядный IBM AP-1, который после космической модернизации сменил код на AP-101 и стал именоваться "компьютер общего назначения" (GPC - General Purpose Computer). GPC стал ядром компьютерной системы Space Shuttle DPS.
GPC - пять в одном
Итак, компьютер IBM AP-101, под именем GPC, возглавил вычисления в проектируемых космических челноках.
Первые варианты GPC IBM AP-101
Процессорный модуль AP-101 был сделан на основе микросхем TTL средней и высокой степени интеграции, оформленных на плате-шасси, которую легко заменить в случае поломки. Процессор работал с 16 или 32-битными командами и данными в режиме целочисленных вычислений. С плавающей запятой он обрабатывал 32, 40 и 64-битные данные со средней скоростью 480 тысяч команд в секунду. Кажется немного, но в сравнении с семью тысячами команд в секунду компьютеров кораблей Gemini, это был существенный прогресс. 32-разрядные регистры процессора AP-101 были разбиты на три группы. Две из них - по восемь регистров в каждой, обрабатывали целочисленную арифметику и одна группа трудилась над данными с плавающей запятой.
Память AP-101 первого поколения была реализована на магнитных сердечниках, то есть поддерживала хранение информации и при выключенном питании. Единицей хранения было 18-битное слово, шестнадцать бит которого использовались для команд и данных, и два бита применялись для контроля четности и защиты памяти. Всего один AP-101 поддерживал общий объем памяти в 106496 32-битных слов, считываемых за время 400 наносекунд каждое. На борту было целых пять AP-101.
Система Space Shuttle DPS в упрощённом виде
Почему именно пять? Ответ кроется в стратегии вычислительной избыточности, именуемой NASA "fail operational / fail operational / fail-safe", обеспечивающей практически полную безотказность компьютерной системы. Что кроется за этим заклинанием? Все просто: один отказ - продолжаем работать, второй отказ - все еще трудимся, третий отказ - спасаем корабль.
Исходя из хорошо проработанной в то время троированной системы с мажоритированием, принять решение о правильном сигнале управления можно было только в случае выдачи его не менее чем тремя компьютерами. Значит, избыточная схема GPC, способная минимум два раза отказать и сохранить при этом три работоспособные машины, должна состоять из пяти ЭВМ. Простая арифметика. Чуть позже число избыточных машин было сокращено до четырех, но пятый компьютер всё равно оставался "на подхвате" с резервной копией полетной программы.
Такой подход в корне отличался от компьютерных реализаций миссий Gemini и Appolo, где основная компьютерная система просто однократно дублировалась, и дубль включался только при явном отказе основного компьютера.
Но эти пилотируемые программы работали в режиме баллистического запуска и неуправляемой посадки. Компьютеры же шаттла трудились и на взлете и на орбите и при посадке. Любой промах в любой из этих моментов может оказаться фатальным.
Посему, все пять GPC разбросаны по разным углам челнока и полный отказ минимум двух из них никак не повлияет на полет корабля.
Но раз компьютеры GPC (то бишь, AP-101) голосовали за правильность сигнала, значит они были связаны. И еще как! Шинная архитектура, связывающая всё на шаттле, начиная от GPC и заканчивая, например, контроллерами закрылков, - даже более поразительное творение чем "пятиголовая" компьютерная система.
Процессоры ввода/вывода. Наложим шину?
Шинная архитектура шаттлов объединяла и вычислительные модули системы DPS, и исполнительные компоненты системы авионики, и управление реактивными двигателями корабля, и его многочисленные датчики и измерительные приборы.
Каждый из пяти GPC был интегрирован с процессором ввода/вывода (Input/Output Processor - IOP). К каждому из пяти IOP, разделяющих память со "своим" GPC, подключено целых 24 шины! Все подсистемы корабля с помощью мультиплексоров могут одновременно работать с нужными им шинами. Так, пять шин используются для взаимодействия пяти GPC, через четыре шины работают дисплеи системы DEU, к двум шинам подключены два устройства внешней памяти на магнитной ленте (MMU). Остальные шины используются системой телеметрии и авионики корабля.
В IOP каждой 18-битовой шиной управляет отдельный (!) микрокомпьютер, именуемый Bus Controller Element (BCE). Кроме того, в IOP работает мощный процессор ввода/вывода, курирующий все двадцать четыре BCE. Частота тактирования каждой шины всего один мегагерц, но так как шины работают параллельно и независимо друг от друга, передача данных осуществляется практически в реальном времени.
Каждый из блоков GPC может работать с шиной в двух режимах: "командовать" и "слушать". Командовать каким-либо компонентом полетной программы может только один из GPC. Остальные же только слушают его действия. Таким образом, каждый из пяти GPC командует пятой частью дел на челноке и слушает оставшиеся четыре пятых. То есть, любой из них "в курсе" всех дел, выполняемых остальными вычислительными собратьями.
Как же происходит то самое избыточное голосование, "вычисляющее" неисправный компьютер? GPC, слушая командующие ЭВМ, дублировано выполняют их микропрограммы. Выполнение каждой из них компьютеры завершают формированием трехбитного кода, однозначно определяющего вид процедуры (например, "010 - вывод выполнен без ошибки"). Если все компьютеры из избыточного набора генерируют один и тот же код, значит всё в норме, если же один или даже два из них врут, три оставшиеся с правильным кодом могут понять, кто из пятерки сбоит.
Такая схема проверки создает сильносвязанную группу GPC. Чтобы убедиться, что вся группа трудится слаженно, используется 64-битная структура под названием "sumword". Она отправляется в шину каждым GPC каждые 6,25 секунды и содержит биты последних вызовов к ключевым системам корабля. Сравнивая чужие "sumword" со своим, каждый GPC раз в 6,25 секунды убеждается, что его избыточные братья работоспособны. Или нет.
Space Shuttle DPS. Что еще?
Связанные через систему шин между собой и с исполнительными элементами компьютеры GPC составляют основу DPS.
Но короля делает свита. В ней состоят устройства внешней памяти и дисплейно-клавиатурная система. Устройства внешней памяти (Mass Memory Unit - MMU) представляют собой два накопителя на магнитной ленте производства компании Odetics, хранящие все программы миссии. Всего каждый из них может хранить по восемь миллионов 16-разрядных слов, что в три раза больше чем объем всех микропрограмм миссии.
При запуске и посадке четыре GPC из пяти загружают из MMU одинаковые программы, именуемые "Управляющая последовательность" (Operational Sequence - OPS). На орбите полетную OPS загружают всего два избыточных GPC. И в любом случае один из компьютеров загружает полную программу миссии, используемую как быстрый бэкап.
Отображение работы всех GPC и их управление производится в помощью модуля дисплейной электроники (Display Electronic Unit - DEU) производства компании Norden. Всего используются четыре электронно-лучевых дисплея диагональю семь дюймов, отображающих 51 строку по 26 символов в каждой. Три из них располагаются в кабине пилотов, а четвертый - на корме, для специалиста по программе полета.
Система DEU в кабине пилотов шаттла
Вводить команды в ПЗУ можно с помощью специализированных клавиатур марки Ebonex. Всего их три: две у пилотов и одна на корме.
Конечно, за время существования STS, компьютерная система DPS неоднократно совершенствовалась. Так, в 1984 году компьютеры IBM AP-101 были модернизированы и стали обрабатывать более миллиона операций в секунду. Память на магнитных сердечниках сменилась флэш-модулями. Появились, усиливающие автономность, аккумуляторы. Компактность и вес системы также были оптимизированы.
Миссии системы STS завершены. Оставшиеся в живых космические челноки достойно заняли почетные места в музее. Сотни успешных полетов доказали надежность как самих кораблей, так и их уникальной компьютерной системы.
Обновленный в 1984 году IBM AP-101
Все компоненты обновленной DPS
И сбой и последующее восстановление двух из пяти GPC "Атлантиса" на орбите скорее подтверждают чем опровергают высочайшую степень отказоустройчивости уникальной во всех отношениях системы Space Shuttle Data Processing System.