Технологии живучести КА

Автор Рысьь, 31.03.2014 10:28:27

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

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

PIN

ЦитироватьРысьь пишет:
Как система реагирует на простые программные ошибки (деление на 0, запись в запрещённую память, исполнение недопустимой команды) ?
Какая конкретно? В зависимости от специфики КА диапазон - от "теплой" перезагрузки на том же процессоре БЦВМ и немедленное возобновление целевого использлования полезной нагрузки до перехода на контур управления (где он есть) для Safe Mode с отключением ПН (когда ее можно отключать.

Рысьь

ЦитироватьSOE:
вы в курсе, что движение КА подчиняется законам физики? А в контексте данной "проблемы" (в кавычках, потому что ее не существует) - очень нехитрым.
Разумеется, борт попытается по имеющимся данным расчитать своё положение, зная предыдущее, скорость и дату-время. Вопрос в точности таких предскзаний.

ЦитироватьSOE:
от "теплой" перезагрузки на том же процессоре БЦВМ и немедленное возобновление целевого использлования полезной нагрузки
А как можно использовать ПН, если именно её программа и сбойнула?

ЦитироватьSOE:
до перехода на контур управления (где он есть) для Safe Mode с отключением ПН
А если именно в нём был сбой?

PIN

Продает мужик на рынке говорящего попугая. У него к одной ноге привязана  
  красная ленточка, а к другой - синяя. Женщина подходит и интересуется: 
  - Зачем у него ленточки привязаны? 
  - Дернешь за синюю - говорит по-английски, за красную - по-французски. 
  - А если за обе дернуть, что будет? 
  Попугай не выдерживает: 
  - Что будет,что будет! На ж..у упаду! 

Рысьь

Хм, я вижу у вас богатый опыт дрессир разработчика :) Но я же не имел ввиду одновременную ошибку в прикладном и системном софте — таких нет.

Рысьь

Так что, больше некому и нечего сказать про реакцию на ошибки? Меня больше интересуют ошибки в системном софте. При его беспроблемном функционировании прочий софт можно подгрузить и заменить.

PIN

Я ответил. Что конкретно непонятно?

Рысьь

Вы ответили «до перехода на контур управления (где он есть) для Safe Mode». Что понимается под этим контуром? Если он программный, то ошибки могут быть и в нём. Кроме того, могут быть ошибки в обработчике ошибок (прерываний, исключительных ситуаций и т.п.). В т.ч. из-за них был потерян Mars Global Surveyor. Что в этих случаях делается?

Not

ЦитироватьРысьь пишет:
Вы ответили «до перехода на контур управления (где он есть) для Safe Mode». Что понимается под этим контуром? Если он программный, то ошибки могут быть и в нём. Кроме того, могут быть ошибки в обработчике ошибок (прерываний, исключительных ситуаций и т.п.). В т.ч. из-за них был потерян Mars Global Surveyor. Что в этих случаях делается?
Для качественного уменьшения количества ошибок используются методы формального анализа ПО, с построением математической модели программы и его анализа на предмет противоречий, пропущенных или перекрывающихся веток алгоритма, попытки записи по некорректным адресам, разыменование нулевых указателей, одновременное обращение одному и тому же участку памяти из разных процессов и т.д., и т.п.

Процедура формального анализа дорогая и трудоемкая, но она того стоит.

Рысьь

#108
ЦитироватьNot:
Процедура формального анализа дорогая и трудоемкая, но она того стоит.
Да, она нужна, но она не страхует от ошибок на 100%. Они всё равно остаются и случаются. Вот об этих ситуациях и речь. Помните историю со Спиритом, который чуть не потеряли вскоре после посаки из-за циклической перезагрузки ПО? Но там была защита и против этого случая, так что марсоход спасли. Я, правда, не очень помню, как именно... Но есть и случаи неисправленных ошибок. О них я и спрашивал.

Not

ЦитироватьРысьь пишет:
ЦитироватьNot:
Процедура формального анализа дорогая и трудоемкая, но она того стоит.
Да, она нужна, но она не страхует от ошибок на 100%.
От 100 процентов страхуют господь Бог и страховка :) (шутка). На самом деле формальный анализ с построением мат. модели страхует на 100 процентов, при условии что модель построена корректно. Например, таким способом был проанализировано ПО системы TCAS (ответственной за разведение самолетов оказавшихся на пересекающихся курсах). В NASA есть целая лаборатория посвященная надежности ПО. Они как раз строят мат. модели и анализаторы оных.

PIN

ЦитироватьРысьь пишет:
Вы ответили «до перехода на контур управления (где он есть) для Safe Mode». Что понимается под этим контуром? Если он программный, то ошибки могут быть и в нём.
"Понимается" разное, зависит от того когда проектировался аппарат и по каким требованиям. Им может быть, как минимум: а) полностью аппаратная реализация для поддержки заданной ориентации и обеспечения терморегулирования б) отдельный бцвк (с отдельным или нет набором датчиком и исполнительных органов) в) Safe Mode ПО (использующее отдельный или нет набор датчиков и исполнительных органов) г) режим основного ПО БЦВМ (использующее отдельный или нет набор датчиков и исполнительных органов)

PIN

ЦитироватьРысьь пишет:
Но там была защита и против этого случая
Она так или иначе есть везде, где проектировали головой.

Рысьь

ЦитироватьNot:
формальный анализ с построением мат. модели страхует на 100 процентов, при условии что модель построена корректно
Именно. А модель всегда что-то не учитывает. Потому что нельзя заранее знать всё (если проект обладает хоть какой-то новизной).

ЦитироватьNot:
В NASA есть целая лаборатория посвященная надежности ПО. Они как раз строят мат. модели и анализаторы оных.
Правильно делают. Это позволяет обнаружить условные 99% ошибок. Остальные 1% летят в космос.

ЦитироватьSOE:
б) отдельный бцвк ... в) Safe Mode ПО ... г) режим основного ПО БЦВМ ...
Я так понимаю, что современные аппараты используют только В и Г ? Тогда давайте о них — что будет, если ошибка в ПО защиты основного и единственого компа?

PIN

ЦитироватьРысьь пишет:
Я так понимаю, что современные аппараты используют только В и Г ?
Большинство - да. Но не все.
ЦитироватьРысьь пишет:
если ошибка в ПО защиты основного и единственого компа
Ошибки бывают очень и очень разные. Те, которые обычно встречаются в реальной жизни, устраняются обновлением ПО.

Рысьь

ЦитироватьSOE:
Ошибки бывают очень и очень разные. Те, которые обычно встречаются в реальной жизни, устраняются обновлением ПО.
Так это если из ошибки удаётся выкарабкаться. Т.е. аппарат связан с Землёй, передал ТМИ и загрузил новый код. Но т.к. за всё это тоже теперь отвечают программы, то тут не соблюдается правило о парировании любого одного отказа. Это по причине уверенности в 100%-ной надёжности системного ПО? Даже в таком случае, ошибки же не только человеческие бывают. Что будет, если системное ПО будет необратимо повреждено радиацией? Допустим, это обнаружится после очередного прохода-прочистки памяти (scrubbing), а дальше надо прерывать нормальные операции и грузить с Земли. А если в этот момент выполняется что-то критическое?

Ещё веселее, если будут повреждены системные данные. Технически, их тоже можно загрузить с Земли, если там восстановят весь ход бортовых вычислений и воспользуются историей ТМИ и дампов памяти. Если нет — придётся гадать. Но сначала надо принимать решение аппарату — аврально прерывать всё или ждать, пока повреждённый код или данные впервые будут использованы, чтобы аварийно стопориться. Хуже, если ошибка обнаружена непосредственно в момент запроса нужной информации. Тогда решение надо принимать немедленно. В случае с прикладным ПО «программа совершит недопустимую операцию и будет закрыта». А с системным так не выйдет. Есть ли некие сокращённые режимы загрузки (в пределах safe-mode)?

Echidna

Никогда системное ПО (да и вообще все ПО) не хранится в памяти в единственной копии. Есть контрольная сумма, при загрузке ПО считывается, если контрольная сумма не сошлась - значит оно повреждено. И значит загружается другая версия ПО.
Кроме того, практически никто не делает одномашинную систему. Не загрузилась одна БЦВМ, загрузилась зато вторая и стала "главной", а остальные либо в "теплой" схеме с подхватом, либо в холодном.

Главное тут просто все аккуратно отработать, что бы машины сами не запутались. Но это все решаемо - главное просто тестировать и "гонять" ПО в хвост и гриву. :-)

PIN

ЦитироватьРысьь пишет:
Но т.к. за всё это тоже теперь отвечают программы,
Мне известен только один аппарат (вернее, платформа, использованная на 4 или 5 аппаратах), где для передачи телеметрии нужны исключительно "программы". А вам? Для обновления ПО также не всегда необходимо его функционирование. It depends, как говорится.
ЦитироватьРысьь пишет:
Это по причине уверенности в 100%-ной надёжности системного ПО?
Оно очень редко пишется заново, одно и то же используется, например, у Астриума на десятке и более аппаратов. При этом, аналогичное или ровно то же может быть и у конкурентов, вроде Талеса или OHB.
ЦитироватьРысьь пишет:
Допустим, это обнаружится после очередного прохода-прочистки памяти (scrubbing), а дальше надо прерывать нормальные операции и грузить с Земли.
Где, в EEPROM? Оно там хранится с избыточным кодированием, единичные ошибки корректируются. Это при том, что копий минимум 2 и при том, что в EEPROM даже SEU сейчас - крайне редкое событие. Оценка вероятности которого известна для каждой миссии задолго до пуска. 
ЦитироватьРысьь пишет:
Ещё веселее, если будут повреждены системные данные.
Я не знаю, что вы называете "системными данными", но данные динамического и статического контекста дублируются и восстановимы при одиночных ошибках. Это "как минимум". Остальное зависит от требований к аппарату. Мне знакома одна платформа, где копий статической конфигурации ПО четыре. И все и с контрольными суммами, и защищены EDAC.

ЦитироватьРысьь пишет:
Есть ли некие сокращённые режимы загрузки (в пределах safe-mode)?
Там, где нужно, может быть несколько (2-3) режимов функционирования ПО или разных ПО Safe Mode. Но совершенно не по тем надуманным причинам, о которых вы пишете.

PIN

ЦитироватьEchidna пишет:
Кроме того, практически никто не делает одномашинную систему.
Бывают специфические аппараты и без резервирования процессорного модуля. Один такой полетит осенью этого года :)

Рысьь

#118
ЦитироватьSOE:
Мне известен только один аппарат (вернее, платформа, использованная на 4 или 5 аппаратах), где для передачи телеметрии нужны исключительно "программы".
Вы имеете ввиду аппаратные декодеры команд на ПЛИСах? А какие действия они могут делать, помимо скидывания ТМИ?

ЦитироватьSOE:
у Астриума на десятке и более аппаратов. При этом, аналогичное или ровно то же может быть и у конкурентов, вроде Талеса или OHB.
Хм, а они им между собой делятся? Его можно купить?

ЦитироватьSOE:
в EEPROM даже SEU сейчас - крайне редкое событие. Оценка вероятности которого известна для каждой миссии задолго до пуска.
А разве у флеша не уменьшается надёжность хранения при увеличении рад.дозы? Сейчас САС 15 лет за пределами рад. поясов — норма.

ЦитироватьSOE:
данные динамического и статического контекста дублируются и восстановимы при одиночных ошибках
Хм. Они восстановимы и без дублирования, если использовать ЕСС. А дублирование в каком виде выполнено?

ЦитироватьSOE:
платформа, где копий статической конфигурации ПО четыре. И все и с контрольными суммами, и защищены EDAC
Это какая? Зачем такая защита?

ЦитироватьSOE:
может быть несколько (2-3) режимов функционирования ПО или разных ПО Safe Mode. Но совершенно не по тем надуманным причинам, о которых вы пишете.
А чем отличаются режимы Safe Mode?

ЦитироватьSOE:
Бывают специфические аппараты и без резервирования процессорного модуля. Один такой полетит осенью этого года
Это какой и куда? Какой у него САС?

Кстати, про резервирование: Какая сейчас схема наиболее популярна у долгоживущих аппаратов для ГСО? Интересуют все уровни:
1) технология кристалла (КНИ, КНС или объёмный кремний);
2) топология транзисторов (есть ли охранные кольца и DICE-ячейки);
3) архитектура чипа (что дублируется и троируется, что защищается ЕСС, а что простой чётностью);
4) архитектура вычислительного модуля (сколько копий чего и где какие методы EDAC);
5) архитектура системы модулей (сколько копий чего и что в каком резерве).

Я бы предположил 2 сдвоенных или строенных компа — рабочий и резервный. При обнаружении несовпадения для сдвоенной модели она пересчитывает данные, но если исполняется критическое по времени или надёжности действие, то работают обе пары компов. Что-то такое есть?

PIN

ЦитироватьРысьь пишет:
Вы имеете ввиду аппаратные декодеры команд на ПЛИСах? А какие действия они могут делать, помимо скидывания ТМИ?
Декодеры прямых команд не умеют "скидывать ТМИ".