Краткая история космических микропроцессоров, часть первая

Десятого июля 1962 года с космодрома на мысе Канаверал стартовала ракета «Тор» с первым коммерческим телекоммуникационным спутником на борту. Telstar-1 стал зарей новой эры космонавтики, показавшей, что космос может приносить людям реальную пользу. Этот аппарат ждало большое будущее, но днем раньше в небе над атоллом Джонсон, расположенном в пустынной части Тихого океана, взорвалась атомная бомба Starfish Prime. Взрыв уничтожил три сотни уличных фонарей на расположенных в полутора тысячах километрах Гавайях, а также создал огромное количество свободных электронов, подхваченных магнитным полем Земли в рукотворный радиационный пояс. Каждый раз, когда Telsat-1 проходил через этот пояс, продвинутая транзисторная начинка набирала дозу радиации, и уже к ноябрю 1962 года он перестал работать. С изучения последствий этого инцидента началась история защиты космической электроники от радиации.

С высотными ядерными взрывами, к счастью, довольно быстро завязали, но и без них работы достаточно, и требования по надежности и долговечности, предъявляемые к современным спутникам, становятся все амбициознее. Рассказать обо всем невозможно, но я постараюсь кратко осветить прошлое и настоящее космических микропроцессоров из разных стран. Почему именно микропроцессоров? Про них больше всего информации и они лучше понятны неспециалистам. Статья получилась длинной, поэтому я разбил ее на две части: ранняя история на примере США и Европы (прямо сейчас) и современная — на примере России (послезавтра). Поехали!

Правила игры


Начнем с терминов и определений. Под «микропроцессором» я понимаю микросхему или комплект микросхем высокой степени интеграции, предназначенный для выполнения программ. Первым популярным однокристальным микропроцессором стал четырехбитный Intel 4004, вышедший в 1971 году — это уже после высадки американцев на Луну, так что при таком определении из рассмотрения выпадают бортовые компьютеры эпохи героического освоения космоса, оставляя нам только скучных «рабочих лошадок». Впрочем, про бортовые компьютеры героической эры и так много написано, в том числе и на Хабре. Вот, вот и вот. Они, как правило, проектировались под конкретную миссию, имели какую-придется систему команд и разрядность то 13 бит, то 17, то 21 — в общем, не пытайтесь повторить в домашних условиях. Унификация началась с урезанием бюджетов после окончания лунной гонки и с одновременным развертыванием разнообразных спутниковых группировок. В итоге практически все заинтересованные стороны пришли к ограниченному числу универсальных чипов, используемых везде, где получается.

Второй важный момент — доступность информации. Космическая отрасль никогда не была особенно открытой. Первый спутник, выход астронавтов на Луну или количество спутников в группировке ГЛОНАСС — это простая и понятная реклама, а вот особенностями конструкции радиопередатчика в «Спутнике-3» хвастаться на потребительском уровне затруднительно. Добавим сверху традиционную околовоенную секретность — и вот про процессор RAD750 мы знаем, что «их летает больше 150», и только десяток спутников, на которых он стоит. Типовая цитата из профильных научных публикаций, написанных в семидесятых, выглядит вот так: «A radiation-hard 32-bit PMOS/SOS shift register has also been built and tested; however, test data on this circuit are classified.» Про открытые данные о российских спутниках и микросхемах (а я, разумеется, пользуюсь только открытыми данными) не хочется даже начинать; имеющиеся крохи обычно попадают в интернет по недосмотру. Ситуацию немного спасают научные публикации — особенно если знать, что именно вы ищете. Онлайн-база IEEE — просто кладезь для историка электроники; с архивами советских и российских научных журналов и конференций ситуация радикально хуже, чем с зарубежными, но тоже не безнадежная. Минус публикаций в том, что через них сложно проследить связь между микросхемами и их применением, но интересную информацию о конструкции микросхем найти вполне можно. Итого: статья не претендует на полноту, она — скорее сборник примеров, по которым можно проследить развитие и представить нынешнее состояние микропроцессоров и микроконтроллеров космического применения.

Третье, о чем надо договориться — я не буду сравнивать производительность процессора марсохода с айфоном. В этом есть некоторое веселье, но разница в производительности — не от хорошей жизни, у нее есть объективные причины: длительный цикл разработки, другие требования по надёжности, продолжительная сертификация и тестирование всего, от технологии производства микросхем до спутника в сборе. Разумеется, космические разработчики всегда хотят получить максимум вычислительной мощности — чтобы обрабатывать информацию на борту, экономя пропускную способность радиоканала –, но часто другие приоритеты оказываются важнее. Именно поэтому от завершения разработки до первого полета может пройти лет десять, и поэтому же все любят уже летавшие решения — с ними гораздо меньше мороки. В итоге срок жизни космических микросхем может составлять тридцать-сорок лет, разработка нового поколения может начаться ещё до первого полета предыдущего, а прямо сейчас еще запускаются в процессоры, разработанные в девяностых. Тут же замечу, что конструкция космических аппаратов все усложняется и усложняется, и сейчас на борту могут быть десятки вычислителей, к которым предъявляются очень разные требования: нужны и обработка массивов изображений в круглосуточном режиме, и опрос пары датчиков раз в час.

Четвертое — очень краткая напоминалка о радиационных эффектах космического пространства. Напоминалка средней длины есть тут, а совсем длинная — вот здесь.
Эффекты полной дозы излучения связаны с накоплением электрического заряда в диэлектриках и на границе раздела диэлектрика и полупроводника; в основном нас интересуют подзатворный оксид и боковая изоляция МОП-транзисторов. Проявляются эти эффекты как сдвиг порогового напряжения транзисторов (у p-канальных рост по модулю, у n-канальных обычно уменьшение, но дальше вы увидите нюансы), падение подвижности носителей заряда (уменьшение скорости работы схемы) и появление утечек в n-канальных транзисторах (как между стоком и истоком одного транзистора, так и между разными транзисторами), приводящих к росту статического энергопотребления.
Одиночные эффекты обусловлены тем, что при попадании в транзистор одиночной заряженной частицы часть энергии этой частицы передается материалу микросхемы, и в нем образуются свободные электронно-дырочные пары. Часть этих пар разделяется в микросхеме электрическим полем, и она «видит» короткий импульс тока, «принесенный» внешней частицей. Дальше этот импульс тока может изменить значение, записанное в ячейке памяти, попасть на вход логического элемента или вовсе сделать что-то катастрофическое, например, пробить затвор транзистора или открыть паразитную тиристорную структуру и создать локальную закоротку земли с питанием.
Эффекты смещения связаны с тем, что прилетевшая частица может не только создавать электронно-дырочные пары, но и взаимодействовать непосредственно с атомами вещества, выбивая их с нужных позиций в кристаллической решетке. Для обычных транзисторов такие локальные дефекты не страшны, но они приводят к значимым повреждениям оптоэлектронных приборов, двухмерных полупроводников и наноразмерных транзисторов.
Еще существуют эффекты мощности дозы, но они имеют в основном некоммерческие приложения, поэтому я о них говорить не буду.

Начальный этап — на примере США


То, что мне не удалось достоверно выяснить, какой микропроцессор стал первым на борту космического аппарата, было довольно предсказуемо. Публичные данные есть только на широко известные научные миссии, а на них обычно ставят самое надежное и проверенное, то есть тихо отработанное заранее на менее дорогих спутниках. Известно, что бортовые вычислители Viking и Voyager были собраны еще на дискретной логике, зато именно на них начались стандартизация и переиспользование компонентов. Voyager интересен тем, что он стал первым аппаратом, на котором была использована полупроводниковая память вместо магнитных сердечников. Причем это была энергозависимая CMOS SRAM, то есть информация в ней стирается в случае, если пропадает питание. Как инженерам удалось убедить руководство пойти на такой риск? Во-первых, без новой памяти не было бы смысла применять быструю КМОП-логику. В космосе КМОП-технология была более чем кстати: несмотря на то, что КМОП-схемы были медленнее биполярных аналогов и намного чувствительнее к электростатическому разряду, они хорошо переносили перепады температур, имели низкую чувствительность к шумам и потребляли радикально меньше мощности, которой на борту обычно был дефицит. Во-вторых, в качестве бэкапа питания к памяти напрямую подвели напряжение с выхода РИТЭГ, разумно рассудив, что если с генератором что-то случится, то проблемы с памятью уже не будут актуальны.

mvhnbukk6hhkoajsdnem1msx-k4.jpeg


Рисунок 1. Плата с полупроводниковой памятью с Voyager.

Самые первые — RCA 1802


Самый ранний из найденных мной космических аппаратов, в которых стояли не микросхемы средней степени интеграции, а именно монолитный микропроцессор (8-битный RCA 1802) — это спутник Magsat, запущенный 30 октября 1979 года. Учитывая, что первые коммерческие RCA 1802 были выпущены в 1975 году, это должно означать, что в NASA они попали раньше, чем на прилавки магазинов — что, в общем, было нормальной практикой на раннем этапе существования Кремниевой долины.

В качестве небольшого примера из той эпохи процитирую статью E.E. King, «Effects of Total Dose on 1802 Microprocessor», IEEE Transactions on Nuclear Science, 1977. В статье сравнивается воздействие дозы радиации на четыре варианта 1802: два коммерческих, один экспериментальный образец, произведенный на подложке кремния на сапфире (КНС), и один образец, произведенный по специальному техпроцессу, предназначенному для повышения радиационной стойкости.

w7mp9qoonf2zyucqr4-p4v2iaaa.png


Рисунок 2. Сдвиг порогового напряжения транзисторов обоих типов под воздействием дозы излучения. С1 и С2 — коммерческие чипы, S — чип на КНС, X — специальный образец.

Из рисунка видно, что и у коммерческих образцов, и у КНС-чипа на довольно небольших дозах излучения (8–15 крад (Si)) порог n-канальных транзисторов становится меньше нуля, и логические схемы просто перестают переключаться. В то же самое время специальный техпроцесс позволил добиться стойкости больше 1 Мрад (Si), то есть на два порядка больше. Еще раз замечу, что на дворе еще только 1977 год, а специальные чипы уже разработаны и произведены. Впрочем, описанный RCA 1802 скорее всего был первой ласточкой, потому что в воспоминаниях участников разработки следующего большого аппарата NASA — Galileo — я нашел рассказ о том, что на момент выбора архитектуры управляющей электроники в 1977 году 1802 был единственным доступным радстойким монолитным микропроцессором.

Важно отметить, что использовать самые обычные чипы в космосе пытались уже тогда — и продолжают успешно делать это сейчас. Для многих приложений не нужны ни экстремальная надежность, ни большая радиационная стойкость, ни полное отсутствие сбоев — важно только отсутствие отказов в какой-то разумный период времени, а с этим требованием многие коммерческие чипы справляются, будучи при этом на несколько порядков дешевле своих специально разработанных собратьев. Для спутниковой группировки из нескольких сотен аппаратов на низкой орбите даже наличие не очень частых отказов не критично, в отличие от стоимости. И только там, где от функционирования микросхем зависит безопасность страны, жизнь космонавтов или хотя бы судьба многомиллионной десятилетней научной миссии, без радстойких чипов никак. Существуют, разумеется, и смешанные подходы, когда наиболее критичные системы выполняются на радстойких чипах, а остальное — на обычных, а также known good die, когда производитель берет те же самые кристаллы, что используются в дорогих радстойких продуктах, пакует их в дешевые пластиковые корпуса и не проводит сквозное тестирование, экономя на цене в несколько раз. Есть и компании, специально занимающиеся тестированием коммерческих чипов, чтобы найти среди них те, которые случайно получились радстойкими. Но вернёмся к Galileo и 1802.

1yjjdgpgwwkyclqxtlxkdnv9jag.png


Рисунок 3. Запуск Galileo c Space Shuttle. Бортовые вычислители самого шаттла, созданные в семидесятых, работали на микросхемах малой степени интеграции, и только в ходе большого апгрейда, сделанного уже в двухтысячных, на борт попали радстойкие 386-e, 1802-е и гражданские PowerPC 750.

Galileo в силу различных проблем полетел только в 1989 году, но дизайнился почти сразу после «Вояджеров» и с использованием их наработок.»1802 никому в команде разработчиков по-настоящему не нравился», так как дискретные решения, хоть и более громоздкие, были намного быстрее. В итоге в его плюсы все же перевесили минусы, и подсистема команд и данных аппарата (Command and Data Subsystem) была построена на 1802, а менее загруженная, но более требовательная к скорости подсистема управления маневрированием (Attitude and Articulation Control Subsystem) управлялась 16-битным компьютером, собранном из биполярных четырехбитных bit-slice микросхем Am2900 (советский аналог — 1802 серия).

Galileo дополнительно важен для нашей истории тем, что он стал первым аппаратом, в котором была учтена при проектировании проблема одиночных сбоев. В микросхемах, выполненных по грубым проектным нормам, они почти не проявлялись, и об их существовании никто не догадывался, пока исследовательские зонды не достигли радиационных поясов Юпитера. Магнитосфера Юпитера настолько велика, что часть его спутников (Европа, Ио и Ганимед) находится внутри нее! Магнитные поля Юпитера разгоняют до колоссальных энергий тяжёлые ионы, источником которых является вулканически активная Ио. Такие чудовищные условия оказались достаточными для того, чтобы вызвать сбои даже в старых микросхемах «Пионера», а ведь чем меньше проектные нормы, тем меньше энергии нужно, чтобы переключить бит в памяти!

ns22s_78xmjp6kgzrzl42vi0abw.jpeg


Рисунок 4. Картинка радиации вокруг Юпитера. Источник: Hans Huybrighs, «The feasibility of in-situ observations of Europa’s water vapour plumes», 2015

К 1977 году, когда началось проектирование Galileo, «Вояджеры» ещё не достигли Юпитера, и все доступные данные по радиации касались только «Пионеров». Часть их загадочных ошибок была позже классифицирована как одиночные сбои, но это было позже, а пока что в бортовую аппаратуру Galileo не было ни заложено ни самокорректирующихся кодов, ни каких-то других способов находить и исправлять ошибки. После того, как вероятная причина сбоев в «Пионерах» и «Вояджерах» была найдена (1982 год), все электронные компоненты «Галилео», подобранные так, чтобы быть устойчивыми к дозе излучения, срочно отправили на ускоритель: выяснять, как они будут справляться с новой проблемой. Результаты оказались неутешительными: если 1806, выполненный по относительно старой технологии, вел себя нормально, то в прогрессивном биполярном микропроцессорном комплекте 2901 от 20 до 50% попаданий заряженных частиц вызывали сбои, и запускать его было нельзя. Что делать? Было найдено два варианта:

  1. Попробовать новейший радстойкий бортовой компьютер на основе архитектуры 1750А и перекомпилировать весь софт, предварительно написав компилятор. Стоимость этого варианта оценили в 20 миллионов долларов (тогдашних долларов, они были существенно дороже нынешних).
  2. Экстренно заказать разработку сбоеустойчивых аналогов проблемных чипов 2901. При этом весь многократно проверенный софт можно было не переделывать. Sandia Labs оценили разработку новых микросхем в 5 миллионов, и решение было принято.


NASA Tech Briefs, Volume 10, Issue 3 дает немного подробностей о разработанных Sandia Labs чипах: они были не биполярные, как оригинал, а КМОП, их было девять типов (из примерно сорока чипов исходной серии), и для достижения сбоеустойчивости в них были использованы более широкие, чем нужно, транзисторы, а также резисторы в цепях обратной связи запоминающих элементов.

Отступление про одиночные сбои
5143501d26ccc888a574fc13a128d2e4.png

Рисунок 5. Схема шеститранзисторной ячейки статической памяти (6T SRAM)

При попадании ТЗЧ в сток закрытого транзистора возникает импульс ионизационного тока, и в ячейке начинаются два процесса: срабатывание положительной обратной связи и рассасывание индуцированного заряда.
Пусть попадание произошло в закрытый транзистор M2, на стоке которого в результате появился импульс тока. Транзистор М1 в этот момент полностью открыт и имеет маленькое сопротивление, то есть индуцированный ТЗЧ ток через него уходит в землю. Однако емкость узла nQ может быть достаточно маленькой для того, чтобы зарядиться до высокого напряжения, что приведет к переключению второго инвертора (M3-M4), который, в свою очередь, через обратную связь переключит и первый инвертор. Это и есть радиационно-индуцированный сбой (single event upset, SEU). Установка резисторов в цепи обратной связи позволяет замедлить процесс срабатывания обратной связи и дать заряду достаточно времени, чтобы рассосаться.


Проектирование SA3000 — радстойкого 8085


О том, как выглядел процесс разработки радстойких микросхем в то время, можно проследить по научным публикациям. В качестве примера я взял статью W. Kim et. al., «Radiation-Hard Design Principles Utilized in CMOS 8085 Microprocessor Family», вышедшую в 1983 в IEEE Transactions on Nuclear Science. В ней сотрудники Sandia Labs рассказывают о том, как они делали SA3000 — радстойкий вариант Intel 8085 (а также SA3001 и SA3002 как варианты RAM Intel 8155 и ROM Intel 8355). Начали они с того, что получили у Intel всю документацию по разработке, включая электрические схемы и топологию. Я бы тоже от такого не отказался, наверное. С RHBP ситуация в этом случае такая же, как в предыдущем — специальный КМОП-техпроцесс с оптимизированным температурным режимом для бездефектности оксидов, заглубленный n±слой для защиты от тиристорного эффекта. То, что интересно для нас — это подробное описание подходов к RHBD против полной дозы и одиночных сбоев.

Исходный чип был сделан на NMOS-технологии с использованием динамической логики, крайне уязвимой к утечкам, особенно в случае сильного ухода порогов транзисторов. Радиационная стойкость коммерческих образцов составляла от 700 рад (Si) до 30 крад (Si). Лучшие из них в принципе даже можно было использовать на низкой орбите, но для серьезных проектов нужны были уровни дозовой стойкости по крайней мере на порядок больше. Поэтому Sandia Labs не скопировали существующую топологию на радстойкий техпроцесс (что не помогло бы само по себе), а поступили по-другому. Для обеспечения совместимости с исходным чипом полная схема разбита на относительно небольшие блоки, а схемотехника каждого из блоков перенесена на статическую КМОП-логику, более устойчивую к утечкам и сдвигу порогового напряжения транзисторов. Такой подход сохраняет взаимное расположение блоков в топологии и основные связи, упрощая и ускоряя разработку.

Для успешного редизайна был сформулирован ряд принципов.

  1. Блоки должны сохранять работоспособность при вариация порогового напряжения n-канальных транзисторов от 2В до почти нуля (при номинальном значении в 1 В) и p-канальных от -0.5 В до -4 В (при номинальном значении в -1 В). Это жесткие требования из-за того, что при сдвиге порогов транзисторов в разные стороны изменяется порог переключения логических вентилей и, как следствие, изменяется тайминг работы схемы, заставляя разработчика закладывать гораздо большие задержки и уменьшать частоту работы чипа.
  2. Впрочем, при пороге -4 В и питании 5 В p-канальные транзисторы почти не открываются, и никакие усилия дизайнера не могут спасти ситуацию, поэтому в Sandia Labs поступили брутально, увеличив напряжение питания процессора до 10 В. Брутально, но эффективно, а выгода в энергопотреблении от перехода с NMOS на CMOS так велика, что можно и потерпеть.
  3. Кроме этого, для преодоления негативных последствий сильного роста порога p-канальных транзисторов, в схеме везде отдавался приоритет вентилям NAND (где p-канальные транзисторы стоят параллельно) над вентилями NOR (где транзисторы стоят последовательно).
  4. Сдвиг порога транзисторов под дозой излучения меняется в зависимости от электрического режима, в котором находится транзистор. Это важно для разного рода согласованных пар, например, для усилителей записи и чтения памяти. Поэтому оба чипа памяти спроектированы так, что линии доступа предзаряжены постоянно, а не только тогда, когда это необходимо.


Никаких специальных мер для защиты от одиночных сбоев (типа кодирования Хэммингом или более сложных ячеек памяти) не применялось, так как моделирование показало, что повышения напряжения питания до 10 В достаточно для того, чтобы критический заряд переключения стал больше разумных значений, которые может внести ТЗЧ. Испытания подтвердили эффективность этого подхода, продемонстрировав отсутствие сбоев при питании в 10 В и их наличие при уменьшении питания до 5 В.

Итого «классический» подход к повышению стойкости на проектных нормах три микрона выглядит так: основная проблема — дозовый сдвиг порогового напряжения транзисторов, применение специально разработанной технологии — необходимость, защита от тиристорного эффекта делается технологически, от дозы — совместно на уровне технологии и низкоуровневой схемотехники, с одиночными сбоями все хорошо из-за повышенного напряжения питания. По итогам чип от Sandia Labs при полной pin-to-pin и структурной совместимости с оригиналом имел 18000 транзисторов против 6500, зато дозовая стойкость получилась выше на три порядка. В статье также отмечен важный момент: техпроцесс был полностью фиксирован до начала разработки, так как его дальнейшая оптимизация могла скомпрометировать дизайн чипа. Например, применение более тонкого подзатворного диэлектрика, рассматривавшееся тогда как основной способ повышения радиационной стойкости, из-за изменения ёмкостей затворов серьезно влияет на скорость работы элементов микросхемы.

Арсенид галлия


Изменение или даже специальное создание технологии для производства радстойких чипов было в те времена чем-то не только само собой разумеющимся, но и необходимым. Поэтому логично, что параллельно с исследованиями способов сделать кремниевую КМОП-технологию более стойкой шли и поиски альтернативных вариантов. Основным из них был арсенид галлия.

Активные исследования в области арсенида галлия шли с начала семидесятых до середины девяностых, и его высокая радиационная стойкость, вызванная отсутствием в JFET транзисторах подзатворного диэлектрика, была одним из основных драйверов этих работ. Кульминацией стал 1984 год, когда DARPA подписала целых три контракта на разработку GaAs MIPS микропроцессоров — с RCA, McDonnell Douglas и коллаборацией CDC-TI. Одним из важных требований технического задания было ограничение в 30 тысяч транзисторов, с формулировкой «чтобы процессоры можно было начать серийно производить с приемлемым выходом годных». Кроме этого, существовали варианты конверсии на арсенид галлия семейства Am2900, версии 1802 микроконтроллеров, базовые матричные кристаллы на несколько тысяч вентилей и чипы статической памяти на несколько килобит.

Тут же можно заметить, что параллельно в 1984–1994 годах тематику GaAs развивали в СССР, на «Микроне» была создана 5600 серия со сходной степенью интеграции. Правда, если американцы пытались сделать на GaAs подобие КМОП технологии, то К5600 реализовывала намного более быструю, но сложную и прожорливую истоково-связанную логику (ИСЛ). Советские наработки по GaAs были брошены одновременно с американскими — выгоды перевешивались непомерной дороговизной из-за выхода годных, составлявшего единицы процентов. Арсенид галлия так и остался материалом будущего.

RISC-архитектуры


Страдания GaAs в США здорово продлила тогдашняя мода на RISC-процессоры, обещавшая серьезное уменьшение количества транзисторов на чипе при сходной с CISC производительностью. Разумеется, RISC-процессоры реализовывали не только на арсениде галлия, кремний тоже отлично подходит для этого. Вся «большая четверка» — ARM, MIPS, SPARC, POWER — отметилась в космосе, но во-первых, она и так всем более-менее знакома, а во-вторых, у меня будут поводы поговорить о них позже, поэтому сейчас — пример менее известной, но достаточно важной для космоса архитектуры.

В 1980 году US Air Force для удешевления и унификации программного обеспечения военной авиации издали стандарт Mil-Std-1750A, описывающий систему команд 16-битного микропроцессора. Стандарт никак не регламентирует деталей реализации, что дало разнообразным поставщикам возможность представлять собственные решения, совместимые со всеми остальными и с создаваемым в интересах USAF программным обеспечением. ПО, кстати, писалось на специальном военном языке JOVIAL (Mil-Std-1589) или на не менее специальном военном языке Ада (Mil-Std-1815A). На JOVIAL, кстати, до сих пор работает довольно много систем контроля воздушного трафика (что не так давно привело к куче проблем в Англии, после которых выяснилось, что на обучение персонала древнему языку тратится довольно много сил и денег).

Стандарт оказался довольно удачным и получил распространение не только в USAF, но и в NASA, ESA и даже в израильской военной авиации. В космосе 1750-процессоры от разных поставщиков (как в виде отдельных чипов, так и, например, из тех самых bit-slice 2901 чипов, разработанных для Galileo) управляют и управляли американскими миссиями к Марсу, миссией к Юпитеру Cassini и многими другими. В европейском космическом агентстве Mil-Std-1750A и разработанные на его основе английские чипы MA31750 производства Dynex и Plessey стали де-факто стандартом. Став знаковым явлением в развитии IT двойного назначения, стандарт 1750A был объявлен непригодным для новых проектов USAF в 1996 году, когда стало ясно, что 16 бит мало и что нужно переходить на 32-битные архитектуры, к тому времени уже устоявшиеся и прочно занявшие свое место в коммерческой электронике. В космосе смена поколений идет еще медленнее, чем в авиации, и еще очень много лет аппараты под управлением 1750А продолжали запускаться. Например, европейская Rosetta, отправленная к комете в 2004 году и успешно работавшая на орбите буквально пару лет назад, или индийская марсианская миссия «Мангальян», запущенная в 2013.

Позднейшая история


Подробный рассказ про следующее поколение процессоров я продолжу на примере европейских разработок, так что про американские чипы только обозначу общую канву: за периодом »1802+8085» последовал период »1750+386», где 386 процессоры были также разработкой Sandia Labs по документации Intel; эти 386 летают на МКС, они же работали на Hubble после того, как на нем была проведена замена компонентов по помощи Space Shuttle. Тогда де на сцене на какое-то время появилась линейка MIPS-процессоров, из которых наиболее известен Mongoose-V, стоящий в New Horizons, а после американский рынок был де-факто монополизирован процессорами RAD, построенными по архитектуре POWER. Эти процессоры управляли марсоходами Phoenix, Opportunity, Spirit и Curiosity, телескопами Spitzer и Kepler — и вообще всем, что запускается в NASA последние двадцать лет. Последнее поколение — RAD5500 — было сертифицировано для космоса в 2016 году и должно отправиться в первый полет буквально со дня на день. Последнее — потому что сейчас идёт новая программа HPSC (High Performance Spaceflight Computing), в рамках которой Boeing выиграл тендер на разработку многоядерного ARM-процессора, который должен в будущем стать единой вычислительной платформой для космических аппаратов NASA и USAF. Примечательно, что многоядерность и разделение ресурсов позволит управлять частью приложений с помощью ОС реального времени (RTEMS в данном случае), а тем, что реального времени не требует — при помощи Yocto Linux.

Завершая первую часть, отмечу, что американцы до последнего держатся за проверенный временем подход конверсии гражданских дизайнов в космические путем их переноса на специально разработанные технологические процессы — HPSC будет, кажется, первым проектом, разработанным с нуля. Упомянутый выше Mongoose-V — это коммерческое ядро MIPS на радстойком базовом матричном кристалле, а набор масок для первого поколения RAD6000 изготавливали из тех же файлов топологии, что и обычные PowerPC601. При этом прогресс в технологии постепенно смещал фокус с одних видов радиационных эффектов на другие, ведь с уменьшением проектных норм снижается толщина диэлектриков, а с ней и сдвиг порога транзисторов; параллельно уменьшение проектных норм приводит к снижению напряжения питания и уменьшению энергии переключения вентилей. Вместе это означает, что получить приемлемую стойкость к дозе излучения стало намного проще, зато одиночные сбои из юпитерианской экзотики уже к середине девяностых превратились в главную головную боль разработчиков, потребовавшую принципиально других подходов к проектированию микросхем.

x2vpqsk-4w9pbyebym9katfiws0.png


Рисунок 6. Сравнение кристаллов PowerPC750 и RAD750. Чипы выполнены на одинаковых проектных нормах, их площадь при этом различается почти в два раза. Обратите внимание на практически идентичную планировку блоков — вот что происходит, когда обеспечивается совместимость на низком уровне. Огромные различия в размерах блоков памяти заставляют предположить использование многотранзисторых (10Т вместо 6Т) радстойких ячеек памяти с встроенным резервированием.

Смена парадигмы — на примере Европейского космического агентства


История европейского космического процессоростроения неразрывно связана с именем шведского инженера Йири Гейзлера (Jiri Gaisler). Он пришел в ESA в середине восьмидесятых и начал заниматься разработкой первых собственных европейских микропроцессоров космического назначения. Сперва это были лицензированные американские 1750A, потом собственные разработки на базе той же системы команд (производившиеся в Англии) — для сохранения совместимости с уже написанным софтом. И, раз уж здесь айтишный сайт, давайте посмотрим, какой это софт:
Proprietary tools
Ada compiler from TLD (USA)
Open source
The GNU compilation system for the 1750 was initially composed of two main parts.
a set of tools developed by CNS under the Agency’s contract:

  • GNU C compiler (gcc-2.7.2)
  • Linker, assembler, archiver, etc (binutils-2.7)
  • Standalone C library
  • POSIX-Threads library (IEEE 1003.1c-1995) (a preemptive real time executive)
  • GNU Debugger (gdb-4.16) for the 1750


a set of tools either developed internally in the Agency or available from external sources, and namely:

  • CRTX (the SmartCom small cyclic/synchronous real time executive — external)
  • Standalone 1750 simulator (O. Kellogg sim1750–2.3b — external)
  • wxIDE (a portable Integrated Development Environment based on J. Smart wxWindows 2.65 — internal)


Важный момент, отличающий работу Европейского космического агентства в части ПО — это целенаправленная и систематическая поддержка и оплата создания open source продуктов, а также создание экосистем для переиспользования разработок и снижения затрат. Не только для софта: для радстойких микросхем бельгийский институт IMEC создает и поддерживает в интересах ESA платформы разработки DARE (Design Against Radiation Effects), включающие маршруты проектирования, адаптированные PDK и большие наборы цифровых и аналоговых IP-блоков на шести разных техпроцессах (350, 180, 90 и 65 нм). Платформы эти не опенсорсные, но лицензируются при необходимости всем исполнителям контактов ESA.

ERC32 — первый полностью европейский


А теперь вернемся к Йири Гейзлеру. Первое поколение собственных европейских процессоров по архитектуре 1750A (трехчиповый комплект был завершён в 1989 году, полностью интегрированный MA31750 в 1991) разрабатывалось с прицелом на миссию «Розетта», которая должна была стать одним из флагманов широкой европейско-американской научной программы, включавшей также телескоп «Хаббл» и миссии по изучению Солнца и планет.

«Розетта» — аппарат с длинной и сложной судьбой. Проект стартовал в 1986 году, совместно с США и должен был переиспользовать множество частей аппаратов Mariner MkII (отсюда растут ноги у применения 1750A), однако через некоторое время конгресс США отменил финансирование американской части программы (позднее переделанной под меньший бюджет в зонд Cassini), и Европа осталась сама по себе. В 1994, когда стало понятно, что изначальную миссию, включавшую доставку кометного вещества на Землю, в одиночку не потянуть, задачи миссии были переформулированы; еще через десять лет, в 2004 году «Розетта» начала свой путь к комете Чурюмова-Герасименко, а в 2014, когда она ее достигла, в новостях можно было прочитать в том числе и про древние микросхемы с производительностью карманного калькулятора. И это еще в новостях недостаточно много писали про стоявшие в посадочном модуле Philae стековые процессоры, аппаратно реализовывавшие язык Forth.

Судьба «Розетты» наглядно показала ESA, что зависеть от американских партнеров — не самая лучшая идея, и агентство начало вкладывать довольно много денег в программы достижения технологической независимости или, по-нашему, в импортозамещение. Спустя тридцать лет эти программы продолжают активно существовать, получив относительно недавно новый импульс, связанный с желанием Европы иметь доступ на российский и, что более важно, на китайский космический рынок независимо от американских экспортных ограничений, санкций и торговых войн США с Китаем.

Накопив достаточно опыта, команда ESA взялась за более амбициозную задачу: 32-разрядный процессор. В то время ещё было модно придум

© Habrahabr.ru