Наверное, в таком же пафосном стиле можно было бы рассказать обо всей миссии 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 и заканчивая, например, контроллерами закрылков, - даже более поразительное творение чем "пятиголовая" компьютерная система.