Проектирование надежных цифровых систем: стандарты, методы и примеры
Проектирование надежных цифровых систем имеет важное значение для обеспечения последовательной производительности, безопасности и эксплуатационной целостности в широком спектре критических приложений. От автомобильных систем безопасности до медицинских устройств, промышленных систем управления до аэрокосмических приложений, инженерия надежности формирует основу современной цифровой инфраструктуры. Это всеобъемлющее руководство исследует стандарты, методы, методологии и реальные примеры, которые определяют надежный дизайн цифровых систем в современном сложном технологическом ландшафте.
Понимание надежности цифровой системы
Надежность цифровой системы относится к вероятности того, что система будет выполнять свою предполагаемую функцию без сбоев в определенных условиях в течение определенного периода времени. В эпоху, когда цифровые системы контролируют все, от тормозных систем транспортного средства до финансовых транзакций, обеспечение надежности не просто техническое соображение - это фундаментальное требование, которое может означать разницу между безопасной эксплуатацией и катастрофическим сбоем.
Инженерия надежности охватывает множество дисциплин, включая разработку аппаратного обеспечения, разработку программного обеспечения, методологии тестирования и стратегии обслуживания. За последние десятилетия область значительно изменилась, что обусловлено увеличением сложности системы, более высокими требованиями безопасности и распространением электронных систем в критически важных приложениях. Современные цифровые системы должны бороться с различными режимами отказа, включая случайные аппаратные ошибки, систематические ошибки программного обеспечения, экологические стрессы и деградацию, связанную со старением.
Ключевые метрики надежности
Инженеры по надежности используют несколько количественных показателей для измерения и прогнозирования производительности системы. Среднее время между отказами (MTBF) представляет собой среднее время, прошедшее между отказами системы во время нормальной работы. Среднее время до отказа (MTTF) измеряет среднее время до первого отказа в неремонтируемых системах. Среднее время до ремонта (MTTR) количественно определяет среднее время, необходимое для восстановления неисправной системы в рабочем состоянии.
Неудача во времени (FIT) является еще одним критическим показателем, представляющим количество отказов, ожидаемых в одном миллиарде часов работы устройства. Этот показатель особенно важен в стандартах функциональной безопасности, где конкретные цели FIT должны быть достигнуты для различных уровней целостности безопасности. Наличие, рассчитанное как MTBF, разделенное на сумму MTBF и MTTR, выражает долю времени, в течение которого система работает и готова выполнять свою предполагаемую функцию.
Международные стандарты надежности цифровых систем
Стандарты обеспечивают необходимые основы для проектирования, тестирования и поддержания надежных цифровых систем. Эти международно признанные руководящие принципы обеспечивают соответствие систем строгим требованиям безопасности, качества и производительности в различных отраслях и приложениях.
МЭК 61508: Основы функциональной безопасности
IEC 61508 является основным стандартом функциональной безопасности систем E/E/PE (электрических, электронных и программируемых электронных). IEC 61508 является более общим стандартом, применимым к широкому спектру отраслей, включая автомобильную, технологическую и машиностроительную. Он обеспечивает основополагающую основу для функциональной безопасности, позволяя адаптироваться к конкретным секторам.
В МЭК 61508 указаны методы, которые должны использоваться для каждой фазы жизненного цикла. Стандарт охватывает весь жизненный цикл безопасности от первоначальной концепции до проектирования, внедрения, эксплуатации и возможного вывода из эксплуатации. Стандарт требует, чтобы оценка опасности и риска проводилась для индивидуальных систем: «Оборудование под контролем» (EUC) должен оцениваться или оцениваться для каждого определенного опасного события. Стандарт рекомендует использовать «Либо качественные или количественные методы анализа опасности и риска» и предлагает руководство по ряду подходов.
МЭК 61508 определяет уровни целостности безопасности (SIL) в диапазоне от SIL 1 (самый низкий) до SIL 4 (самый высокий), причем каждый уровень определяет все более строгие требования к функциям безопасности. Эти уровни определяются путем оценки риска и определяют вероятность сбоев, которых должны достичь системы безопасности. Стандарт охватывает семь частей, охватывающих общие требования, требования к оборудованию, требования к программному обеспечению, определения и сокращения и руководство по применению.
ISO 26262: Функциональная безопасность
Стандарт IEC 61508 разработан Международной электротехнической комиссией. ISO 26262 специально разработан для автомобильной промышленности, касаясь функциональной безопасности электронных систем в производственных транспортных средствах. Он охватывает весь жизненный цикл разработки, от концепции до производства и обслуживания.
Первое издание ISO 26262 было опубликовано в 2011 году (ISO 26262:2011), касающееся функциональной безопасности систем E/E, установленных в «серийных серийных легковых автомобилях» с максимальной массой брутто 3500 кг. Пересмотренное издание было опубликовано в 2018 году (ISO 26262:2018) для охвата всех дорожных транспортных средств, за исключением мопедов. Стандарт стал фактическим требованием для развития автомобильных электрических и электронных систем во всем мире.
Стандарт использует риск-ориентированный подход, определяя классы риска, известные как уровни целостности безопасности автомобилей (ASIL), которые помогают определить требования безопасности для достижения приемлемого уровня остаточного риска. ASIL варьируются от QM (управление качеством, не представляющее конкретных требований безопасности) через ASIL A, B, C до ASIL D, причем ASIL D представляет собой наиболее строгие требования безопасности для систем, где неисправности могут привести к серьезным травмам или смерти.
Последний выпуск, ISO 26262:2018, подразделяется на 12 частей. Эти части охватывают словарь, управление функциональной безопасностью, этап концепции, разработку продукта на системном уровне, разработку аппаратного обеспечения, разработку программного обеспечения, производство и эксплуатацию, вспомогательные процессы, анализы, ориентированные на ASIL и безопасность, руководящие принципы по ISO 26262, применение к полупроводникам и применение к мотоциклам.
Другие отраслевые стандарты безопасности
За прошедшие годы из МЭК 61508 (общий) было разработано несколько стандартов функциональной безопасности для отраслей, которые занимаются безопасностью электрических, электронных и электромеханических систем. К ним относятся ISO 26262 (автомобильный), МЭК 61511 (процесс), EN 50129 (железнодорожный), МЭК 620621 (машиностроение), МЭК 61513 (ядерный) и т.д.
DO-178C регулирует вопросы программного обеспечения в сертификации бортовых систем и оборудования, обеспечивая руководство по разработке авиационного программного обеспечения. IEC 62304 рассматривает процессы жизненного цикла программного обеспечения для медицинского оборудования, обеспечивая соответствие медицинских устройств соответствующим требованиям безопасности и эффективности. EN 50128 охватывает программное обеспечение для систем управления и защиты железнодорожных путей, решая уникальные проблемы безопасности железнодорожных перевозок.
Каждый из этих стандартов разделяет общие принципы, полученные из МЭК 61508, включая специфические для домена требования, которые касаются уникальных операционных сред, режимов отказов и профилей рисков в соответствующих отраслях. Понимание этих стандартов и их взаимосвязи имеет решающее значение для организаций, разрабатывающих системы, которые могут быть развернуты в нескольких секторах.
Фундаментальные методы повышения надежности
В инженерии надежности используются многочисленные методы для предотвращения, обнаружения и смягчения сбоев в цифровых системах. Эти подходы работают в сочетании для создания надежных систем, способных поддерживать работу даже при отказе отдельных компонентов или возникновении ошибок.
Стратегии увольнения
Увольнение включает в себя включение дублирующих или альтернативных компонентов, подсистем или информации в конструкцию системы для предотвращения отдельных точек отказа. Этот фундаментальный метод надежности принимает несколько форм, каждая из которых подходит для различных приложений и режимов отказа.
Программное резервирование включает в себя несколько реализаций критических компонентов. Двойное модульное резервирование (DMR) использует два идентичных модуля с логикой сравнения для обнаружения расхождений. Тройное модульное резервирование (TMR) использует три параллельных модуля с логикой голосования большинства, что позволяет системе продолжать правильную работу даже при выходе из строя одного модуля. N-модульное резервирование расширяет эту концепцию до любого количества модулей, обеспечивая все более надежную отказоустойчивость за счет дополнительной сложности оборудования и энергопотребления.
Информационная избыточность добавляет дополнительные биты данных, чтобы обеспечить обнаружение и коррекцию ошибок. Биты паритета, контрольные суммы и более сложные коды коррекции ошибок защищают целостность данных во время передачи и хранения. Эти методы необходимы в системах связи, устройствах памяти и приложениях хранения данных, где битовые ошибки могут возникать из-за шума, помех или физического ухудшения среды.
Время избыточности выполняет операции несколько раз и сравнивает результаты для обнаружения переходных неисправностей. Этот подход особенно эффективен против временных ошибок, вызванных электромагнитными помехами, колебаниями напряжения или радиационными эффектами. Время избыточности обменивается скоростью исполнения для повышения надежности, что делает его подходящим для приложений, где временные ограничения позволяют повторять операции.
Программное обеспечение для избыточности реализует различные алгоритмы или подходы к программированию для достижения одной и той же функциональности. Программное обеспечение N-версии разрабатывает несколько независимых реализаций критических функций программного обеспечения, снижая вероятность того, что общие недостатки проектирования будут влиять на все версии одновременно. Блоки восстановления обеспечивают альтернативные алгоритмы, которые выполняются, когда первичные методы терпят неудачу или дают сомнительные результаты.
Методы обнаружения и исправления ошибок
В теории информации и теории кодирования с приложениями в информатике и телекоммуникациях обнаружение и исправление ошибок (EDAC) или управление ошибками — это методы, позволяющие надёжно доставлять цифровые данные по ненадёжным каналам связи.Многие каналы связи подвержены шуму канала, и, таким образом, ошибки могут быть введены при передаче от источника к приемнику. Методы обнаружения ошибок позволяют обнаруживать такие ошибки, тогда как исправление ошибок позволяет во многих случаях реконструировать исходные данные.
Все схемы обнаружения и коррекции ошибок добавляют некоторую избыточность (то есть некоторые дополнительные данные) в сообщение, которое приемники могут использовать для проверки согласованности доставленного сообщения и восстановления данных, которые были определены как поврежденные. Выбор между обнаружением-только и обнаружением-плюс-коррекцией зависит от факторов, включая способность повторно передавать данные, требования к задержке и ожидаемую скорость ошибки канала связи.
Проверка паритета
Проверка четности представляет собой простейшую форму обнаружения ошибок. К каждому слову данных добавляется один бит четности, установленный для того, чтобы сделать общее число четных (четная четность) или нечетных (нечетная четность). Приемник пересчитывает четность и сравнивает ее с полученным битом четности. Любое несоответствие указывает на то, что ошибка произошла во время передачи. В то время как простая и эффективная проверка четности может обнаружить только нечетные числа ошибок бита и не может исправить какие-либо ошибки.
Проверка циклической избыточности
CRC — широко применяемый метод обнаружения ошибок в цифровых данных.Особенно ценный в контекстах передачи и хранения данных, CRC помогает обеспечить целостность данных, обнаруживая случайные изменения в исходных данных, возникающие из-за шума или других возмущений. CRC работает через полиномиальное деление, математическое понятие, заимствованное из алгебры, но применяемое здесь в двоичной структуре.
Коды CRC генерируют контрольные биты, обрабатывая данные как полиномиальные коэффициенты и выполняя деление заданным генераторным полиномом.Остальная часть становится значением CRC, прилагаемым к данным. Приемники выполняют ту же операцию деления; если остальная часть равна нулю, данные считаются правильными. CRC обеспечивает сильные возможности обнаружения ошибок с относительно низкими вычислительными накладными расходами, что делает его вездесущим в сетевых протоколах, системах хранения и цифровых коммуникациях.
Коды Хэмминга
Код Хамминга или код расстояния Хамминга — лучший код для исправления ошибок, который мы используем в большинстве коммуникационных сетей и цифровых систем. Этот метод обнаружения и исправления ошибок разработан R.W.Hamming. Коды Хамминга могут обнаруживать до двухбитных ошибок и исправлять однобитные ошибки, стратегически размещая биты четности в двух позициях в слове данных.
Количество требуемых битов четности зависит от длины слова данных, следуя соотношению, что 2^p должно быть больше или равно p + d + 1, где p — число битов четности, а d — число битов данных.Каждый бит четности проверяет конкретные позиции битов, позволяя приемнику определить точное местоположение однобитной ошибки и исправить ее без повторной передачи.
Коды Рида-Соломона
Коды Рида-Соломона используются в компакт-дисках для исправления ошибок, вызванных царапинами. Современные жесткие диски используют коды Рида-Соломона для обнаружения и исправления незначительных ошибок в считывании секторов, а также для восстановления поврежденных данных из неисправных секторов и хранения этих данных в запасных секторах. Эти мощные коды коррекции ошибок работают на многобитных символах, а не на отдельных битах, что делает их особенно эффективными против ошибок лопастей, когда повреждены несколько последовательных битов.
Коды Рида-Соломона широко используются в носителях данных, включая CD, DVD, Blu-ray диски, QR-коды и спутниковую связь. Их способность исправлять множественные ошибки символов делает их бесценными в приложениях, где физические повреждения или помехи могут влиять на смежные области данных.
Вперед исправление ошибок
В вычислительной технике, телекоммуникации, теории информации и теории кодирования, прямое исправление ошибок (FEC) или кодирование каналов — это метод, используемый для управления ошибками в передаче данных по ненадежным или шумным каналам связи.Центральная идея заключается в том, что отправитель кодирует сообщение избыточным способом, чаще всего с помощью кода коррекции ошибок или кода коррекции ошибок (ECC). Избыточность позволяет приемнику не только обнаруживать ошибки, которые могут произойти в любом месте сообщения, но часто исправлять ограниченное количество ошибок.
Приложения, требующие низкой задержки (например, телефонные разговоры), не могут использовать автоматический повторный запрос (ARQ); они должны использовать коррекцию ошибок (FEC). К тому времени, когда система ARQ обнаруживает ошибку и повторно передает ее, данные повторной отправки будут приходить слишком поздно, чтобы их можно было использовать. FEC имеет важное значение в коммуникациях в реальном времени, системах вещания и в глубоком космосе, где ретрансляция непрактична или невозможна.
Архитектура нетерпимости
Погрешность отказов выходит за рамки простого резервирования и охватывает комплексные системные архитектуры, предназначенные для поддержания работы, несмотря на сбои компонентов. Эти подходы объединяют аппаратное резервирование, обнаружение ошибок, изоляцию от ошибок и механизмы восстановления в интегрированные решения.
Fail-Safe Design обеспечивает, чтобы сбои системы приводили к безопасным состояниям, а не к опасным условиям. Железнодорожные сигналы по умолчанию красного цвета при выходе из строя питания, автомобильные системы отключают круиз-контроль при обнаружении неисправностей датчиков и промышленное оборудование останавливает работу при срабатывании блокировок безопасности. Неисправная конструкция требует тщательного анализа всех возможных режимов отказа и их последствий.
Fail-Operational Design поддерживает критически важную функциональность даже после сбоев. Системы управления полетом воздушных судов, системы автомобильного рулевого управления и медицинское оборудование для жизнеобеспечения часто используют отказоустойчивые операционные архитектуры, которые продолжают предоставлять основные услуги, несмотря на неисправности компонентов. Эти системы обычно используют избыточные каналы со сложными механизмами обнаружения и изоляции неисправностей.
Грейсовая деградация позволяет системам продолжать работать с уменьшенной функциональностью при возникновении сбоев.Вместо полного отключения система идентифицирует неисправные компоненты, изолирует их и продолжает работу с использованием оставшихся ресурсов.Этот подход распространен в распределенных системах, сетях связи и многопроцессорных архитектурах, где частичная функциональность предпочтительнее полной сбои.
Проектирование для обеспечения проверяемости
Тестируемость относится к легкости, с которой система может быть протестирована для проверки правильной работы и обнаружения неисправностей. Методы проектирования для тестируемости (DFT) включают в себя функции, которые облегчают тестирование на этапах производства, установки, эксплуатации и обслуживания.
Механизмы Built-In Self-Test (BIST) позволяют системам тестировать себя без внешнего оборудования. Память BIST проверяет функциональность ОЗУ, логика BIST проверяет комбинационные и последовательные схемы, а аналог BIST проверяет компоненты смешанного сигнала. BIST снижает затраты на испытательное оборудование, позволяет проводить полевые испытания и поддерживает непрерывный мониторинг состояния здоровья во время работы.
Методы пограничного сканирования обеспечивают доступ к внутренним узлам схем через стандартизированные тестовые интерфейсы. Стандарт IEEE 1149.1 (JTAG) определяет архитектуру граничного сканирования, которая позволяет тестировать взаимосвязи между интегральными схемами без физического зондирования. Эта возможность необходима для тестирования сложных печатных плат с креплением компонентов высокой плотности.
Диагностическое покрытие измеряет эффективность механизмов обнаружения неисправностей. Высокий диагностический охват гарантирует, что неисправности обнаруживаются быстро, сводя к минимуму время работы систем в деградированных или небезопасных условиях. Функциональные стандарты безопасности определяют минимальные требования к диагностическому покрытию для различных уровней целостности безопасности, причем более высокие уровни требуют более полного обнаружения неисправностей.
Программная инженерия надежности
Программное обеспечение стало доминирующим источником сложности и потенциального сбоя в современных цифровых системах. В отличие от аппаратного обеспечения, программное обеспечение не изнашивается и не страдает случайными сбоями, но может содержать дефекты проектирования, проявляющиеся в конкретных условиях. Инженерия надежности программного обеспечения применяет систематические подходы для предотвращения, обнаружения и устранения ошибок программного обеспечения.
Процессы разработки программного обеспечения
Тщательные процессы разработки составляют основу надежного программного обеспечения. V-модель, широко принятая в критически важных для безопасности отраслях, сочетает каждую фазу разработки с соответствующими действиями по проверке. Спецификация требований проверяется посредством проверки требований, архитектурного проектирования посредством обзора дизайна, детального проектирования посредством проверки кода и реализации посредством тестирования блока, тестирования интеграции и тестирования системы.
Agile-методологии адаптируют эти принципы к итеративным циклам разработки, включающим непрерывную интеграцию, автоматизированное тестирование и частые выпуски.Безопасные приложения часто объединяют аспекты обоих подходов, используя итеративную разработку в структурированной структуре, которая обеспечивает прослеживаемость и проверку на каждом этапе.
Статический анализ и качество кода
Статический анализ исследует исходный код без его выполнения, выявляя потенциальные дефекты, уязвимости безопасности и отклонения от стандартов кодирования.Современные инструменты статического анализа обнаруживают проблемы, включая нулевые ссылки на указатели, переполнение буфера, утечки ресурсов, мертвый код и нарушения языковых лучших практик.
Такие стандарты кодирования, как MISRA C, MISRA C++ и CERT, обеспечивают правила, предотвращающие распространенные ошибки программирования и улучшающие ремонтопригодность кода. Эти стандарты запрещают опасные языковые функции, определяют защитные методы программирования и устанавливают конвенции, которые повышают ясность кода. Соблюдение стандартов кодирования часто предписывается функциональными стандартами безопасности для разработки критически важного для безопасности программного обеспечения.
Динамические стратегии тестирования
Динамическое тестирование выполняет программное обеспечение для проверки правильного поведения и обнаружения неисправностей. Единичное тестирование проверяет отдельные функции или модули изолированно, интеграционное тестирование проверяет взаимодействие между компонентами, системное тестирование оценивает полное поведение системы, а приемочное тестирование подтверждает, что требования удовлетворены.
Показатель охвата кода количественно определяет тщательность тестирования. Покрытие отчетов измеряет процент утверждений кода, выполняемых во время тестирования, покрытие филиалов отслеживает результаты решений, а покрытие модифицированного состояния / решения (MC / DC) гарантирует, что каждое условие независимо влияет на результаты решений. Более высокие уровни целостности безопасности требуют более строгих критериев охвата, причем MC / DC часто требуется для наиболее важного программного обеспечения.
Формальные методы
Формальные методы применяют математические методы для уточнения, разработки и проверки программного обеспечения. Проверка моделей исчерпывающе исследует пространства состояний системы для проверки свойств, таких как отсутствие тупиков, правильное последовательность операций и удовлетворение временных логических спецификаций. Доказательство теоремы использует логическую дедукцию для установления того, что реализации удовлетворяют формальным спецификациям.
Хотя формальные методы обеспечивают высочайшую степень достоверности, их применение требует специальных знаний и значительных усилий. Они обычно зарезервированы для наиболее важных программных компонентов, где стоимость отказа оправдывает инвестиции в формальную проверку.
Аппаратные соображения надежности
Надежность аппаратного обеспечения охватывает физические компоненты, которые реализуют цифровые системы, включая интегральные схемы, печатные платы, разъемы и источники питания.В отличие от программного обеспечения, аппаратное обеспечение подвержено физической деградации, производственным дефектам и экологическим нагрузкам, которые вызывают сбои с течением времени.
Случайные сбои аппаратного обеспечения
Случайные аппаратные сбои происходят непредсказуемо из-за физических механизмов, включая электромиграцию, разрушение оксида, впрыск горячего носителя и тепловой цикл. Эти сбои следуют статистическим распределениям, характеризующимся кривой ванны: высокие показатели отказов в раннем возрасте (смертность младенцев), низкие постоянные показатели отказов в течение срока полезной службы и увеличение частоты отказов во время износа.
Скорость или вероятность аппаратного сбоя в полевых условиях из-за случайной ошибки, называемой метрикой вероятности отказа оборудования (PMHF) в соответствии с определением ISO 26262 или вероятностью опасного сбоя в час (PFH) в соответствии с определением IEC 61508. Эти показатели количественно определяют вероятность сбоев оборудования, которые могут привести к опасному поведению системы.
ISO 26262 определяет эту метрику как метрику с одной точкой неисправности (SPFM), в то время как IEC 61508 определяет ее как безопасное сбое (SFF). Например, SPFM = 90% означает, что если происходит неисправность, существует 90% вероятность того, что неисправность либо безопасна, либо обнаруживается и смягчается самой системой. Эти показатели оценивают эффективность механизмов безопасности при контроле аппаратных неисправностей.
Системные сбои оборудования
Систематические сбои являются результатом ошибок проектирования, дефектов производственного процесса или неадекватных спецификаций, а не случайной физической деградации. Эти сбои детерминированы - учитывая те же условия, они всегда будут возникать. Предотвращение систематических сбоев требует строгих процессов проектирования, всесторонней проверки и соблюдения проверенных методов проектирования.
Анализ режима отказа и эффектов (FMEA) систематически изучает потенциальные режимы отказа компонентов и их влияние на поведение системы. Каждый компонент анализируется для выявления возможных сбоев, их причин, эффектов, методов обнаружения и стратегий смягчения последствий. Результаты FMEA направляют усовершенствования конструкции и информируют о реализации механизма безопасности.
Анализ дерева неисправностей (FTA) работает сверху вниз от опасных событий системного уровня для выявления комбинаций отказов компонентов, которые могут их вызвать. FTA использует логические шлюзы Boolean для моделирования того, как сбои более низкого уровня распространяются через систему, позволяя количественные прогнозы надежности и идентификацию критических путей отказа.
Экологический стресс-тест
Экологические испытания подвергают аппаратные средства условиям, ускоряющим механизмы отказа, выявляющим конструктивные слабости и производственные дефекты.Температурное циклическое напряжение припоевых соединений и интерфейсов материалов, вибрационное тестирование оценивает механическую прочность, влагостойкость оценивает влагостойкость, а тестирование электромагнитной совместимости проверяет иммунитет к помехам.
Высокоускоренное тестирование жизни (HALT) выталкивает оборудование за пределы нормальных эксплуатационных ограничений, чтобы обнаружить режимы отказа и маржу дизайна. Высокоускоренный скрининг стресса (HASS) применяет контролируемые напряжения во время производства, чтобы ускорить сбои детской смертности до того, как продукты достигнут клиентов. Эти методы повышают надежность, выявляя и устраняя слабые компоненты и недостатки дизайна.
Системный уровень надежности Engineering
Надежность системного уровня объединяет аппаратные, программные и эксплуатационные соображения в комплексные решения, отвечающие требованиям приложений. Этот целостный подход касается взаимодействия между компонентами, факторами окружающей среды, операторами-людьми и стратегиями технического обслуживания.
Моделирование и прогнозирование надежности
Модели надежности предсказывают поведение системы на основе характеристик компонентов и архитектурных конфигураций. Серийные системы выходят из строя при отказе любого компонента, поэтому надежность системы равна продукту надежности компонентов. Параллельные избыточные системы выходят из строя только при отказе всех избыточных путей, что значительно повышает надежность по сравнению с неизбыточными конструкциями.
Марковские модели представляют собой системы как машины состояния с вероятностными переходами между состояниями. Эти модели фиксируют сложное поведение, включая избыточность, ремонт, деградированные режимы работы и сбои общей причины. Решение марковских моделей дает постоянную доступность, среднее время выхода из строя и другие показатели надежности.
Графики блоков надежности (RBD) графически представляют системные архитектуры и зависимости компонентов. Анализ RBD вычисляет надежность системы из надежности компонентов и архитектурной топологии, поддерживая компромиссы проектирования и оптимизацию.
Общие причины неудач
Обычные причины сбоев влияют на несколько избыточных компонентов одновременно, побеждая стратегии избыточности. Источники включают ошибки проектирования, реплицируемые по избыточным каналам, экологические стрессы, влияющие на все компоненты, и систематические производственные дефекты. Бета-факторы количественно определяют долю сбоев, которые влияют на несколько избыточных компонентов.
Разнообразие смягчает общие сбои, используя различные реализации, технологии или поставщиков для избыточных каналов.В разнообразии аппаратного обеспечения используются компоненты от разных производителей, разнообразие программного обеспечения использует независимо разработанные реализации, а функциональное разнообразие достигает требований через различные физические принципы.
Механизмы безопасности и диагностический охват
Механизмы безопасности обнаруживают неисправности и предотвращают или смягчают их последствия. Таймеры Watchdog обнаруживают сбои в выполнении программного обеспечения, проверки диапазона проверяют показания датчиков, проверки правдоподобности сравнивают избыточные измерения, а защита памяти предотвращает несанкционированный доступ. Эффективность механизмов безопасности количественно определяется диагностическим покрытием — долей обнаруженных неисправностей.
Стандарты функциональной безопасности определяют минимальные требования к диагностическому покрытию для различных уровней целостности безопасности. Для достижения высокого диагностического покрытия требуется комплексное тестирование на впрыск неисправностей, где преднамеренно вводятся неисправности и проверяются механизмы обнаружения. Впрыск неисправностей может быть выполнен с помощью моделирования, эмуляции оборудования или физических методов, включая радиационное тестирование и манипулирование напряжением.
Техническое обслуживание и эксплуатационная надежность
Надежность выходит за рамки первоначального проектирования и производства и охватывает весь жизненный цикл эксплуатации.Стратегии технического обслуживания, оперативные процедуры и постоянный мониторинг обеспечивают поддержание надежности систем на протяжении всего срока службы.
Профилактическое обслуживание
Профилактическое обслуживание выполняет плановые проверки, корректировки и замены компонентов для предотвращения сбоев до их возникновения. Компоненты технического обслуживания на основе времени для замены через фиксированные интервалы, в то время как техническое обслуживание на основе состояния контролирует состояние системы и выполняет техническое обслуживание, когда показатели предполагают надвигающийся сбой.
Предиктивное техническое обслуживание использует данные датчиков, анализ тенденций и машинное обучение для прогнозирования сбоев до их возникновения. Анализ вибрации обнаруживает износ подшипников, тепловизионные изображения выявляют перегрев компонентов, а анализ масла выявляет механическую деградацию. Предиктивное техническое обслуживание оптимизирует сроки технического обслуживания, уменьшая как неожиданные сбои, так и ненужные профилактические замены.
Постоянный мониторинг здоровья
Современные цифровые системы включают в себя возможности мониторинга состояния здоровья, которые непрерывно оценивают состояние системы во время работы. Встроенная диагностика выполняет периодические самотесты, мониторинг производительности отслеживает ключевые параметры по сравнению с ожидаемыми значениями, а обнаружение аномалий выявляет необычное поведение, которое может указывать на развитие неисправностей.
Данные мониторинга состояния здоровья поддерживают множество целей, включая раннее обнаружение неисправностей, оценку полезного срока службы, оптимизацию технического обслуживания и обеспечение безопасности. В критически важных приложениях мониторинг состояния здоровья обеспечивает доказательства того, что механизмы безопасности остаются функциональными и что надежность системы не ухудшилась ниже приемлемых уровней.
Управление конфигурацией
Управление конфигурацией поддерживает контроль над составом системы на протяжении всего жизненного цикла. Управление версиями отслеживает изменения в конструкции аппаратных средств, программном коде и документации. Процессы управления изменениями оценивают предлагаемые модификации, оценивают их влияние на надежность и безопасность и обеспечивают надлежащую проверку изменений перед развертыванием.
Полная прослеживаемость позволяет анализировать воздействие при предложении изменений, поддерживает анализ первопричины при возникновении сбоев и предоставляет доказательства соответствия стандартам и правилам.
Примеры надежных цифровых систем в реальном мире
Изучение конкретных приложений показывает, как принципы надежности применяются на практике. Эти примеры демонстрируют методы, стандарты и проектные решения, которые обеспечивают надежную работу в сложных условиях.
Системы управления полетом самолетов
Современные самолеты полагаются на цифровые системы пролета по проводам, которые заменяют механические связи электронными органами управления. Эти системы должны достигать чрезвычайно высокой надежности, поскольку сбои могут привести к потере управления воздушным судном. Компьютеры управления полетом обычно используют тройное или четверное резервирование с несходным оборудованием и программным обеспечением в разных каналах для предотвращения сбоев общей причины.
Разработка программного обеспечения следует рекомендациям DO-178C, при этом наиболее важные функции достигают уровня обеспечения проектирования A - самого высокого уровня, требующего обширной проверки, включая покрытие кода MC / DC. Разработка оборудования следует стандартам DO-254, гарантируя, что сложное электронное оборудование соответствует соответствующим уровням обеспечения проектирования. Постоянное встроенное тестирование контролирует состояние системы, а автоматическая реконфигурация изолирует неисправные каналы при сохранении контроля.
Системы автомобильной безопасности
Современные транспортные средства включают в себя многочисленные критически важные для безопасности электронные системы, включая антиблокировочное торможение, электронное управление стабильностью, развертывание подушек безопасности и передовые системы помощи водителю. Эти системы должны соответствовать требованиям ISO 26262, причем наиболее важные функции достигают классификации ASIL D.
Автоматические электронные блоки управления используют архитектуры процессоров с блок-схемой, где два процессорных ядра выполняют идентичные инструкции и сравнивают результаты для обнаружения ошибок. Блоки защиты памяти предотвращают ошибки программного обеспечения от повреждения критических данных, а таймеры сторожевых собак обнаруживают сбои в выполнении программного обеспечения. Комплексное диагностическое покрытие гарантирует, что неисправности обнаруживаются в заданные сроки, и безопасные состояния вводятся, когда неисправности не могут быть исправлены.
Электрические и гибридные транспортные средства создают дополнительные проблемы, включая управление высоковольтными батареями, управление двигателем и системы зарядки. Эти системы должны предотвращать опасности, включая электрический шок, тепловой разбег и непреднамеренное движение транспортного средства, сохраняя высокую доступность и производительность.
Контроллеры медицинских устройств
Медицинские устройства, включая инфузионные насосы, вентиляторы, кардиостимуляторы и хирургические роботы, непосредственно влияют на здоровье и безопасность пациентов. Эти устройства должны соответствовать требованиям жизненного цикла программного обеспечения IEC 62304 и часто нормативным требованиям FDA для одобрения медицинского устройства.
Управление рисками в соответствии с ISO 14971 определяет потенциальные опасности, оценивает риски и реализует средства контроля рисков. Архитектура программного обеспечения отделяет критически важные функции безопасности от некритических функций, при этом тщательная проверка ориентирована на критические компоненты. Обширное тестирование включает в себя нормальную работу, граничные условия, впрыск неисправностей и сценарии ошибок использования.
Кибербезопасность становится все более важной, поскольку медицинские устройства включают сетевое подключение. Меры безопасности должны защищать от несанкционированного доступа, вредоносных программ и нарушений данных при сохранении безопасности и надежности. FDA предоставляет руководство по кибербезопасности для медицинских устройств, подчеркивая углубленные подходы к защите и постоянный мониторинг.
Промышленные системы управления
Промышленные объекты, включая химические заводы, электростанции и производственные объекты, используют программируемые логические контроллеры и распределенные системы управления, которые должны соответствовать стандартам IEC 61508 или отраслевым стандартам, таким как IEC 61511 для технологических отраслей.
Приборные системы безопасности реализуют защитные функции, предотвращающие или смягчающие опасные события. Эти системы предназначены для достижения конкретных уровней целостности безопасности за счет сочетания избыточности, диагностического покрытия и доказательного тестирования. Отдельные системы безопасности работают независимо от обычных систем управления, гарантируя, что сбои системы управления не ставят под угрозу функции безопасности.
Промышленные системы должны надежно работать в суровых условиях, включая экстремальные температуры, вибрацию, электромагнитные помехи и агрессивные атмосферы.Прочное оборудование, защита окружающей среды и комплексные испытания обеспечивают надежную работу в этих сложных условиях.
Платформы финансовых транзакций
Финансовые системы ежедневно обрабатывают миллионы транзакций, требуя высокой доступности, целостности данных и безопасности.Эти системы используют избыточные серверы, базы данных и сетевые соединения для устранения единичных точек отказа.Географическое распределение защищает от катастроф на уровне сайта, а автоматизированный отказ обеспечивает непрерывную работу при отказе компонентов.
Обработка транзакций использует свойства ACID (Atomicity, Consistency, Isolation, Durability) для обеспечения целостности данных.Криптотехника защищает конфиденциальность и подлинность данных, а всеобъемлющий аудит позволяет обнаруживать несанкционированные действия и поддерживает криминалистический анализ.
Планирование аварийного восстановления учитывает сценарии, включая сбои оборудования, дефекты программного обеспечения, кибератаки и стихийные бедствия. Регулярное тестирование проверяет, что системы резервного копирования и процедуры восстановления функционируют правильно, а цели восстановления определяют приемлемое время простоя для различных служб.
Телекоммуникационная инфраструктура
Телекоммуникационные сети должны обеспечивать высоконадежную связь для голосовых, информационных и аварийных служб. В центральном офисном оборудовании используются избыточные источники питания, процессоры и коммутационные ткани. Топология сети включает в себя несколько путей между узлами, что позволяет автоматически перенаправлять их, когда ссылки или узлы выходят из строя.
Системы синхронизации обеспечивают точное время работы по всей сети, что имеет решающее значение для правильной работы цифровых систем передачи данных. Системы управления сетью постоянно контролируют производительность, обнаруживают неисправности и координируют восстановительные мероприятия. Соглашения об уровне обслуживания определяют цели доступности, часто требующие 99,999% времени безотказной работы (пять девяток), что соответствует менее пяти минутам простоя в год.
Космические системы
Космические аппараты работают в экстремальных условиях с интенсивным излучением, температурными экстремумами и вакуумными условиями. Ремонт невозможен после запуска, поэтому надежность должна быть спланирована с самого начала. Закаленные радиацией компоненты сопротивляются одномерным расстройствам и суммарным эффектам дозы, в то время как избыточные системы обеспечивают отказоустойчивость.
Коды, исправляющие ошибки, защищают передачу данных на огромные расстояния, где сила сигнала минимальна, а шум значителен. Коды Рида-Соломона, сверточные коды и турбокоды обеспечивают надежную связь, несмотря на чрезвычайно низкие отношения сигнал-шум. Автономные системы обнаружения и восстановления неисправностей позволяют космическим аппаратам реагировать на аномалии, не дожидаясь наземных команд.
Новые вызовы и будущие направления
Надежность цифровых систем продолжает развиваться по мере появления новых технологий, приложений и проблем. Понимание этих тенденций помогает инженерам подготовиться к будущим требованиям и возможностям надежности.
Автономные системы
Автономные транспортные средства, беспилотники и роботы создают новые проблемы надежности. Эти системы должны принимать критически важные решения в непредсказуемых условиях без человеческого надзора. Алгоритмы машинного обучения, которые позволяют автономное поведение, трудно проверить с помощью традиционных методов, поскольку их поведение возникает из данных обучения, а не из явного программирования.
Обеспечение безопасности автономных систем требует новых подходов, включая тестирование на основе сценариев, проверку на основе моделирования и мониторинг времени выполнения. Стандарты развиваются для решения этих проблем, с текущей работой по расширению ISO 26262 для автономного вождения и разработке новых рамок для безопасности искусственного интеллекта.
Интернет вещей
Устройства IoT распространяются в потребительских, промышленных и инфраструктурных приложениях. Эти устройства часто имеют ограниченные вычислительные ресурсы, работают в неконтролируемых средах и требуют длительного времени автономной работы. Обеспечение надежности при соблюдении этих ограничений требует эффективных алгоритмов обнаружения ошибок, маломощных методов резервирования и надежных протоколов связи.
Безопасность и надежность все больше переплетаются в системах IoT. Кибератаки могут поставить под угрозу надежность, вызывая сбои, истощая батареи или нарушая связь. Безопасная загрузка, зашифрованные коммуникации и возможности обновления по воздуху помогают поддерживать как безопасность, так и надежность на протяжении всего срока службы устройства.
Искусственный интеллект и машинное обучение
ИИ и машинное обучение внедряются в критически важные для безопасности системы восприятия, принятия решений и контроля. Однако нейронные сети и другие модели машинного обучения демонстрируют поведение, которое трудно предсказать и проверить. Противоборствующие примеры могут вызвать неправильное рассекречивание, предвзятость данных обучения может привести к систематическим ошибкам, а обновления моделей могут ввести новые режимы отказа.
Обеспечение надежности систем на основе ИИ требует различных подходов, включая надежные методы обучения, мониторинг времени выполнения, разнообразное резервирование с помощью обычных алгоритмов и формальную проверку свойств нейронных сетей. Исследования продолжают разрабатывать методы количественной оценки и повышения надежности ИИ в критически важных для безопасности приложениях.
Интеграция кибербезопасности
Кибербезопасность и функциональная безопасность сходятся, поскольку подключенные системы сталкиваются с угрозами как случайных сбоев, так и вредоносных атак. Стандарты, включая ISO/SAE 21434 для автомобильной кибербезопасности и IEC 62443 для промышленной кибербезопасности, обеспечивают рамки для интеграции безопасности в разработку критически важных систем безопасности.
Меры безопасности должны быть разработаны таким образом, чтобы не нарушать безопасность. Например, криптографические операции должны выполняться в пределах временных ограничений, обновления безопасности не должны создавать опасности для безопасности, а сбои в безопасности не должны препятствовать функционированию функций безопасности. Скоординированная инженерия безопасности обеспечивает достижение обеих целей.
Передовые производственные технологии
Аддитивное производство, передовые материалы и новые технологии упаковки позволяют создавать новые возможности, но вводят новые проблемы надежности. 3D-печатные компоненты могут иметь различные режимы отказа, чем традиционно изготовленные детали, требующие новых подходов к квалификации. Архитектура систем в упаковке и чиплетов увеличивает плотность интеграции, но усложняет управление тепловой энергией и тестирование.
Инженерия надежности должна развиваться для решения этих технологий с помощью моделирования физики неисправностей, ускоренных методов тестирования и методов мониторинга на месте, которые обнаруживают деградацию до возникновения сбоев.
Лучшие практики для надежного проектирования цифровых систем
Успешная разработка систем надежности требует систематического применения проверенных методов на протяжении всего жизненного цикла системы. Эти передовые методы обобщают уроки, извлеченные из многолетнего опыта в различных отраслях.
Требования Инженерные
Четкие, полные и поддающиеся проверке требования формируют основу надежных систем. Требования к надежности должны определять количественные цели, включая MTBF, доступность и коэффициенты отказов для различных режимов отказов. Требования к безопасности должны определять опасности, определять уровни целостности безопасности и определять механизмы безопасности и их диагностическое покрытие.
Двунаправленная прослеживаемость позволяет анализировать воздействие при изменении требований и гарантирует, что все требования реализованы и проверены.
Дизайн-отзывы
Обзоры сверстников на каждом этапе разработки выявляют дефекты на ранней стадии, когда они наименее дороги для исправления. Обзоры требований проверяют полноту, согласованность и осуществимость. Обзоры проектирования оценивают архитектурные решения, идентифицируют потенциальные режимы отказа и оценивают соответствие стандартам. Обзоры кода обнаруживают ошибки программирования, проверяют соблюдение стандартов кодирования и улучшают ремонтопригодность.
Независимые обзоры персонала, не участвующего в разработке, обеспечивают объективную оценку и выявляют проблемы, которые разработчики могут упускать из виду. Критически важные для безопасности системы часто требуют независимой оценки безопасности квалифицированными экспертами, которые проверяют, что требования безопасности удовлетворены.
Проверка и проверка
Проверка подтверждает, что каждый этап разработки правильно реализует свои входы, а валидация подтверждает, что конечная система удовлетворяет потребности и требования пользователей.Всеобъемлющие стратегии проверки и валидации объединяют несколько методов, включая инспекцию, анализ, моделирование и тестирование.
Планирование испытаний должно начинаться на ранних стадиях разработки, с тестовых случаев, полученных из требований и спецификаций проектирования. Автоматизированное тестирование позволяет часто проводить регрессионное тестирование, гарантируя, что изменения не вносят новых дефектов. Метрики охвата испытаний количественно определяют тщательность тестирования и идентифицируют непроверенные пути кода.
Документация
Комплексная документация поддерживает разработку, проверку, эксплуатацию и техническое обслуживание. Критически важные для безопасности системы требуют обширной документации, включая планы безопасности, анализы опасностей, технические характеристики, отчеты о проверке и случаи безопасности, которые утверждают, почему система приемлемо безопасна.
Документация должна поддерживаться на протяжении всего жизненного цикла системы, с отслеживаемыми и контролируемыми изменениями. Живая документация, которая развивается вместе с системой, более ценна, чем статические документы, которые быстро устаревают.
Постоянное улучшение
Инженерия надежности - это непрерывный процесс, который распространяется на весь жизненный цикл системы. Данные о полевых сбоях должны собираться, анализироваться и поступать обратно в улучшения дизайна. Анализ причин корневых причин выявляет основные причины сбоев, позволяя корректирующие действия, которые предотвращают рецидив.
Уроки, извлеченные из каждого проекта, должны быть учтены и применены к будущим разработкам. Организационные процессы должны регулярно пересматриваться и совершенствоваться на основе опыта, передового опыта в отрасли и меняющихся стандартов.
Заключение
Проектирование надежных цифровых систем требует комплексного применения стандартов, методов и передового опыта на протяжении всего жизненного цикла системы.От первоначальной концепции до проектирования, внедрения, проверки, эксплуатации и обслуживания надежность должна быть основным фактором на каждом этапе.
Международные стандарты, включая МЭК 61508, ИСО 26262 и производные, относящиеся к конкретным областям, обеспечивают основу, которая направляет разработку надежной системы. Эти стандарты воплощают в себе многолетний опыт и представляют собой консенсус по эффективным подходам к достижению функциональной безопасности и надежности.
Технические методы, включая избыточность, обнаружение и коррекцию ошибок, отказоустойчивость и комплексное тестирование, позволяют системам поддерживать правильную работу, несмотря на сбои компонентов и экологические нагрузки. Системные подходы объединяют аппаратные, программные и эксплуатационные соображения в решения, которые отвечают требованиям приложений.
Примеры из реального мира в аэрокосмической, автомобильной, медицинской, промышленной, финансовой и телекоммуникационной областях демонстрируют, как эти принципы применяются на практике. Каждая область применения имеет уникальные требования и проблемы, но все имеют общие инженерные основы надежности.
Новые технологии, включая автономные системы, искусственный интеллект и Интернет вещей, создают новые проблемы, требующие эволюции методов проектирования надежности. Интеграция кибербезопасности, передовые технологии производства и растущая сложность системы требуют постоянных инноваций в подходах обеспечения надежности.
Успех в надежном проектировании цифровых систем требует приверженности строгим инженерным процессам, всесторонней проверке и валидации, непрерывному мониторингу и совершенствованию, а также организационным культурам, которые отдают приоритет надежности и безопасности.Применяя стандарты, методы и передовой опыт, описанные в этом руководстве, инженеры могут разрабатывать цифровые системы, которые обеспечивают надежность, необходимую для сегодняшних критически важных для безопасности приложений.
Для получения дополнительной информации о стандартах функциональной безопасности посетите веб-сайт Международной электротехнической комиссии . Дополнительные ресурсы по функциональной безопасности автомобилей можно найти в Международной организации по стандартизации . Федеральное авиационное управление предоставляет руководство по сертификации авионики, в то время как Управление по контролю за продуктами и лекарствами США предлагает ресурсы по безопасности медицинских устройств. Промышленные организации, такие как SAE International публикуют технические документы и стандарты, относящиеся к надежному проектированию системы в нескольких областях.