Космический софт

Автор ДмитрийК, 16.05.2005 18:21:56

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

ДмитрийК

Хотелось бы узнать побольше про процесс создания космического софта и его отличия от софта обычного. Так, в порядке удовлетворения естественного любопытства :)

Особенно интересно почитать про обеспечение надежности, программно-аппаратные средства обнаружения отказов, резервирования и пр.  а также методики отладки и верификации программ, в частности в контурах управления реального времени.

Буду особо признателен за ссылки на PDFы со всякими там протоколами, стандартами, спецификациями и пр. (люблю иногда почитать на сон грядущий) :)

X

Могу сказать несколько слов о софте наземном. Лет 18 назад отвечал от промышленности за математику одного из изделий на Байконуре. Перед этим участвовал в его создании.
Это частный случай, но видимо типичный для данной отрасли.
1.   Допускается использование в составе изделия только вычислительных машин, имеющих соответствующую приемку. Реальная надежность вычислителей очень высокая. Это было практически единственное изделие из десятков, входивших в комплекс, по которому не вызывались гарантийщики.
2.   «Начиняется» «голая» машина. Никаких операционных систем. Абсолютно все (в том числе весь обмен с внешним миром) делается «ручками».
3.   Пишется на ассемблере. В нашем случае на ЕС был сделан имитатор вычислителя, там же писались программки и в итоге получались перфоленты для прошивки вычислителя.
4.   Математика «зашивается» в вычислители намертво. Какие либо изменения могут быть сделаны только в заводских условиях перепрошивкой блоков памяти.
5.   Для отладки вместо прошиваемых блоков используются наладочная память, связанная с ЕС либо закачиваемая с перфолент, по габаритам раз в десять превышающая сам вычислитель. Создается стенд с максимально возможным подключением к вычислителю внешних устройств.
6.   Вычислитель имеет тестовую программу, прогоняемую при его включении. Проверяются все операции, результат сверяется с эталоном. Проверяется оперативная память несколькими видами тестов. «Прошитая» программа проверяется контрольным суммированием. При работе идет постоянный аппаратный тест на четность.
7.   Обязательное «горячее» резервирование, когда две машины параллельно решают одну задачу. Весь ввод идет одновременно в обе машины. Вывод – из текущей выбранной. Переключение вывода происходит либо при обнаружении сбоя аппаратно, либо вручную с пульта управления системой. Кроме «горячего» резерва, естественно имеется «холодный» на всю аппаратуру.
8.   Конечно, очень аккуратное программирование. Очень бережное отношение к памяти программной и оперативной, максимальное использование командных возможностей и методов адресации.
9.   На каждое внешнее устройство, с которым взаимодействует вычислитель, с его разработчиками согласуется протокол информационного обмена. Далее - строжайшее следование протоколам.
10.   Унификация программ, построение системы документирования. Алгоритм каждого программного модуля, его вход-выход, переменные описываются в «шапке». Никаких регламентаций этого процесса сверху не было. Все решалось и согласовывалось в своем коллективе. В итоге листинги программ были самой лучшей документацией в течение нескольких лет.
11.   В результате, после нескольких лет разработки коллективом из пары десятков людей, на полигоне программы пошли с первого раза, прошли все испытания и практически в неизменном виде работали в «штатном» полете.
12.   Наверное, самое главное в процессе создания математики большим коллективом людей и при «обширных» связях вычислителя с «внешним миром» – грамотный руководитель. Ну тут нам повезло.

С уважением, Михаил

ДмитрийК

Спасибо, Михаил.
Понятно. 18 лет - это все-таки много, тогда трава была зеленее, компьютеры проще а софт - надежнее :)
Аах перфолента, ах телетайп... (скупая непрошенная слеза :) )

Что конкретно интересует:
Существуют тонны всяких стандартов (ISO/ANSI/MIL-STD), методологий,  рекомендаций и пр. призванных обеспечить качество софта. Из того что я видел на бумаге все это выглядит весьма разумно и поначалу приносит хорошие результаты. Но чем дальше в лес тем хуже, количество макулатуры и народу ее пищущее возрастает экспоненциально а потом наступает момент когда важные детали просто теряются в океане документации. Вот любопытно как люди выходят из положения.

Потом про тестирование и верификацию. Тут в соседнем топике народ мерялся у кого больше тестеров в команде :) А что они делают конкретно? Есть вещи которые принципиально нельзя протестировать, можно только доказать, типа отсутствие race conditions или гарантии на верхний предел времени выполнения функции при наличии прерываний. Применяются ли языки формальной верификации и какие?

Про железо. Если на земле машина вываливается по ошибке четности значит железо глючит. В космосе насколько я понимаю сбои отдельных битов - нормальное явление даже при абсолютно исправном железе. Как с этим боротся? Примерно понятно, код Хемминга, контрольные суммы, дублирование, контрольные точки, сторожевые собаки там всякие а еще что? Интересно например про реконфигурируемое железо.

Andy_K64

Рекомендую вот эту книгу: http://www.ozon.ru/context/detail/id/1575081/
Хоть это и учебное пособие, но написано оно на примерах реальных систем, летающих в настоящее время. Разработки середины и конца 90-х г.г. Кроме того, эти разработки продолжаются и сейчас, так как в современных условиях задача полного перепрограммирования бортовых вычислительных систем - задача, пусть не тривиальная, но, тем не менее, уже почти рутинная.

frost_ii

Сходил по ссылке.

ЦитироватьС этим товаром часто покупают
     
Б. Акунин, Г. Чхартишвили
Кладбищенские истории

Том Питерс
Представьте себе! Превосходство в бизнесе в эпоху разрушений

Мрачный юмор какой-то....

X

тоже сходил...

Левадный В.С.
Прудовое разведение рыб и раков

хай-тек, мля  :?

STC

http://www.drofa.ru/index.php?show=catalog&name=167+%C0%E2%E8%E0%F6%

по этой ссылке книга "Полвека в авиации. Записки академика"

Написал Гендиректор ГосНИИАС акдемик Федосов Е.А.
Вопросами ПО, верификацией и т.д. он и занимался для ракет и авиации.

Andy_K64

ЦитироватьСходил по ссылке.

ЦитироватьС этим товаром часто покупают
     
Б. Акунин, Г. Чхартишвили
Кладбищенские истории

Том Питерс
Представьте себе! Превосходство в бизнесе в эпоху разрушений

Мрачный юмор какой-то....
Честно говоря, я тоже не всегда понимаю логику "Озона", дающего такую, с позволения сказать, рекламу. Но в целом, магазин хороший. И книга, о которой я говорил, весьма пристойная.  :)

Kot

Кое-что можете найти здесь:

http://www.cta.ru/RUBRIKI_KOSMOS.HTM



      Вообще подход к конкретным решениям зависит от цены вопроса  :D  Например мы при разработке и изготовлении микроспутника остановились на банальной трехканальности с мажоритированием (правда с некоторыми ухищрениями - дополнительный независмый обмен между каналами с анализом отказов). Естественно была изготовлена КПА и написана программа испытаний, содержащая некий набор штатных и нештатных ситуаций , от которой не было отступлений ни на йоту  :D  
 
      ИМХО, джентельменский набор должен состоять в первом случае из распределенной сети независимых устройств, позволяющих при отказе одного (или даже нескольких) устройств перераспределить его функции между оставшимися может быть с некотрой потерей быстродействия/функциональности (правда этот подход требует довольно большой избыточности).
      Во втором случае система может состоять из двух или более каналов (может быть даже некоторые в холодном резерве), управляемыми (вкл/выкл) внешним диспетчером, реализованным на более простой (надежной) элементной базе, в задачу которого входит определение отказавшего канала и его выключение или замену на канал, находящийся в холодном резерве.
      Есть еще решения, содержащие еще дополнительные каналы управления с ограниченной/минимальной функциональностью (но и повышенной надежностью), которые могут быть задействованы в случае отказа основной системы.
      Ну, и на закуску, бывает особо впечатлительные ставят ко всему этому простейший резервный аналаговый контур управления  :lol:  

      А на Буране стояла синхронная трехканальная система и четвертый канал в холодном резерве, но перевязки аппаратными мажоритарами по всем линиям (адреса, данных, управления) были после каждого функционального блока (ЦПУ, ОЗУ, Вв/Выв, ПЗУ).

Kot


X


frost_ii

Я припоминаю, в конце девяностых нам зарубежная фирма предлагала БЭВМ. Железо i386, i486 (это ещё ладно). Под управлением Windows  :shock:  :shock:  :shock:

X

А кому это - "нам"? Какой организации?

Andy_K64

ЦитироватьЯ припоминаю, в конце девяностых нам зарубежная фирма предлагала БЭВМ. Железо i386, i486 (это ещё ладно). Под управлением Windows  :shock:  :shock:  :shock:
Для сведения: на американском сегменте МКС все бортовые управляющие компьютеры MDM используют процессоры i80386 20 МГц. И это НОРМАЛЬНО.

frost_ii

ЦитироватьА кому это - "нам"? Какой организации?

А Вы, часом, не шпиён будете?

ЦитироватьДля сведения: на американском сегменте МКС все бортовые управляющие компьютеры MDM используют процессоры i80386 20 МГц. И это НОРМАЛЬНО.

Естественно, это было не бытового исполнения, (хотя DEC'овская архитектура в данном девайсе мне представляется более уместной). Но вот WINDOWS...

ДмитрийК

ЦитироватьЕстественно, это было не бытового исполнения, (хотя DEC'овская архитектура в данном девайсе мне представляется более уместной). Но вот WINDOWS...
Какой такой DEC в конце девяностых? :) Вы Альфу имеете в виду, VAX или PDP/11? :) Intel конечно далеко не подарок для подобных вещей, у него ЕМНИП соотношение производительность/потребляемая мощность одно из худших в индустрии (по этому параметру ARM рулит) да и система команд и внешний интерфейс чересчур наворочены. Тогда уж скорей RISC какой-нибудь, MIPS или SPARC например.
Ну а про Windows - слов нет.

frost_ii

DEC загнулся намного позже. В это время мы ещё успели AlphaStation  прикупить. И ничего машинка пахала. На своих 466 МГц делала П-3(1200) как стоячего.

Alpha и есть RISC. Для космоса она, конечно жарковата. Но вот какую-нибудь реинкарнацию VAX спец исполнения было бы здорово увидеть. Но не встречал.

Почему же у нас не использовали МСЦТ для меня тоже остаётся загадкой...

Bloodest

Цитировать
ЦитироватьНо вот WINDOWS...
Ну а про Windows - слов нет.
Гыгы  :D А что Windows - гыг есть анекдот про клаву, кривые руки и винды. Не далеше 5 метров от меня стоит корневой сервак - проинстален в 2001 и что работает - пережил 2 блока питания и пару дисков - один из них загрузочный  :D ( восстановили ради хохмы прямым копированием  с битого - пару дополнительных манипуляций и заработал ...). Другое дело винды не годятся для систем реального времени...

X

Очень интересный материал по БЦВМ. Коротко и ясно. http://aviapanorama.narod.ru/journal/2003_2/bort.htm

X

А что Windows? Чем вам не нравится, скажем, Ebedded NT?