Микросхемы должны быть устойчивы к сбоям от рождения

Микроэлектроника проникла практически всюду — от бытовых приборов до спутников и систем вооружения. Современные технологии позволяют на базе одного чипа реализовывать все более сложные вычислительные системы, и к их надежности предъявляются все более высокие требования. Надежность же подразумевает механизмы, обеспечивающие устойчивость к сбоям и отказам. Ключевой задачей становится тестирование таких механизмов на ранних стадиях разработки микросхем.

Содержимое ПЛИС (программируемой логической интегральной схемы) платы расширения
Содержимое ПЛИС (программируемой логической интегральной схемы) платы расширения

Содержимое ПЛИС (программируемой логической интегральной схемы) платы расширения

Содержимое ПЛИС (программируемой логической интегральной схемы) платы расширения

Структурная схема программно-аппаратного комплекса
Структурная схема программно-аппаратного комплекса

Структурная схема программно-аппаратного комплекса

Структурная схема программно-аппаратного комплекса

Необходимы механизмы, обеспечивающие устойчивость микросхемы к сбоям и отказам. Ключевой задачей становится тестирование таких механизмов на ранних стадиях разработки

Ускорение тестирования сбоеустойчивых сложных вычислительных систем на базе одного чипа (так называемых систем на кристалле, СнК) подразумевает решение целого комплекса взаимосвязанных задач. Сюда входят выбор метода и технологии тестирования, ускорение тестирования основной функциональности системы, разработка моделей возникновения неисправностей и ускорение оценки эффективности механизмов сбоеустойчивости.

При этом выбранная технология тестирования должна быть внедрена в маршрут разработки целевых микросхем, который обычно осуществляется с помощью системы автоматизированного проектирования (САПР). Стандартный маршрут проектирования включает следующие этапы: написание модели разрабатываемой системы на языках описания аппаратуры (Verilog, "1364-2005 — IEEE Standard for Verilog Hardware Description Language"; SystemVerilog, "1800-2012 --- IEEE Standard for SystemVerilog — Unified Hardware Design, Specification and Verification Language"), разработка программных тестов и проведение на их основе функционального тестирования полученной модели, синтез логической схемы устройства в базисе целевой микросхемы (в формате Verilog netlist), функциональное тестирование полученного описания микросхемы с учетом временных задержек распространения сигналов, размещение и трассировка элементов логической схемы и проведение посттрассировочного функционального тестирования, генерация технологических данных для производства. При обнаружении функциональных несоответствий на одном из этапов тестирования осуществляется цикл перепроектирования, подразумевающий возврат к предыдущим этапам.

Известные САПР микросхем осуществляют тестирование разрабатываемых СнК преимущественно программными методами, что приводит к значительным временным затратам. При этом в большинстве САПР отсутствует встроенная возможность оценки сбоеустойчивости разрабатываемых СнК. Поэтому необходимо создавать программно-аппаратные решения для тестирования и оценки сбоеустойчивости разрабатываемых микросхем. Причем для СнК аэрокосмического применения важно учитывать специфику условий их эксплуатации. Основной источник неисправностей в микросхемах, применяемых в авионике и космических системах,— космическая радиация (E. Petersen, Single Event Effects in Aerospace, IEEE Press, 2011). Воздействие заряженных частиц галактических космических лучей, естественных радиационных поясов Земли, а также солнечных космических лучей на микросхему может приводить к возникновению временных сбоев или постоянных отказов в работе (М. И. Панасюк и Л. С. Новиков, Модель космоса. Том II. Воздействие космической среды на материалы и оборудование космических аппаратов, Москва, 2007). Эффекты от воздействия радиации можно разделить на две группы (K. Iniewski, Radiation Effects in semiconductors, CRC Press, 2010): эффекты поглощенной дозы и одиночные случайные эффекты.

Первая группа характеризует постепенную деградацию физических свойств вещества микросхемы в результате воздействия множества частиц космической радиации и описывается такими интегральными показателями, как поглощенная доза (выделенная потоком частиц энергия в единице массы вещества за время полета космического аппарата). Основные методы борьбы с эффектами этой группы — технологические, позволяющие в результате использования новых материалов и технологии снизить чувствительность микросхемы к эффектам поглощенной дозы.

Борьба со случайными одиночными эффектами требует дополнительных усилий, в том числе внедрения в схему устройства средств обеспечения сбоеустойчивости. Причина в том, что чисто технологические методы борьбы пока не позволяют снизить частоту возникновения таких неисправностей до уровня, не угрожающего работоспособности микросхемы. Одиночные эффекты, в отличие от эффектов накопленной дозы, имеют случайный характер и возникают вследствие попадания в микросхему отдельных тяжелых заряженных частиц. Основными типами таких эффектов являются инверсия логического значения элемента памяти (триггера) (Single Event Upset, SEU), залипание триггера в состоянии логического нуля или единицы (Stuck_at_0/1), а также паразитные импульсы напряжения в комбинационной логике (Single Event Transient, SET).

При тестировании сбоеустойчивости СнК аэрокосмического применения по отношению к случайным одиночным эффектам широко используется метод внедрения неисправностей (H. Ziade, R. Ayoubi и R. Velazco, "A Survey on Fault Injection Techniques", The International Arab Journal of Information Technology, 1, 171, 2004). Идея метода заключается в имитации возникновения радиационных сбоев и отказов и оценке их влияния. При реализации метода важно обеспечить как высокую скорость тестирования (характерную для аппаратных методов внедрения неисправностей), так и высокую информативность и повторяемость экспериментов (они присущи программным методам). Поэтому тестирование на основе метода внедрения неисправностей проводится с использованием комбинированных, программно-аппаратных решений.

В результате проведения исследований в Московском авиационном институте (национальном исследовательском университете) в рамках федеральной целевой программы "Исследования и разработки по приоритетным направлениям развития научно-технологического комплекса России на 2014-2020 годы" было предложено решение данной задачи для СнК аэрокосмического применения. Разработан экспериментальный образец программно-аппаратного комплекса (ПАК), способного выполнять контроль сбоеустойчивости проекта микросхемы СнК. Комплекс основан на ПЛИС-прототипировании и расширенном методе внедрения неисправностей (ПЛИС — программируемая логическая интегральная схема, O. Brekhov, K. Kordover, A. Klimenko и M. Ratnikov, "FPGA-Prototyping with Advanced Fault Injection Methodology for Tolerant Computing Systems Simulation", DCCN 2015, Moscow, 2016). В состав комплекса входят персональный компьютер на базе процессора Intel Xeon и PCI-платы расширения на базе ПЛИС Xilinx Virtex-6 (PCI — Peripheral component interconnect, шины ввода--вывода).

ПАК реализует пошаговую методику моделирования проектов микросхем с имитацией сбоев (первоначально методика предложена в (8)). Методика позволяет осуществлять функциональное тестирование, а также оценку эффективности механизмов обеспечения сбоеустойчивости проекта СнК, представленного в формате Verilog netlist, на основе результатов моделирования работоспособности его ПЛИС-прототипа в условиях наличия и отсутствия неисправностей.

Идея метода — в имитации возникновения радиационных сбоев и отказов и дальнейшей оценке их влияния

Внешний вид экспериментального образца программно-аппаратного комплекса

Фото: Александр Клименко

Основные пункты методики реализуются следующим образом:

1. Создание исходного проекта микросхемы. С использованием языков описания аппаратуры и САПР целевой микросхемы, на базе которой реализуется СнК, создается описание логической схемы СнК в формате Verilog netlist — первоначальный проект микросхемы.

2. Функциональное тестирование проекта микросхемы. С использованием программного комплекса ПАК, САПР ПЛИС Xilinx и первоначального проекта микросхемы реализуется описание логической схемы СнК в базисе ПЛИС — исходный проект микросхемы, реализуется в виде ПЛИС-прототипа в плате расширения N1. Функциональное тестирование осуществляется путем подачи воздействий на входы исходного проекта микросхемы и сравнения получаемых значений выходов с массивом эталонных значений (который должен быть сформирован на этапе разработки исходного проекта). Этот шаг методики позволяет удостовериться в функциональном соответствии исходного проекта СнК в базисе целевой микросхемы и его аналога в базисе ПЛИС.

3. Создание модифицированного проекта микросхемы и его функционального тестирования. Основная задача ПАК — оценка сбоеустойчивости проекта микросхемы — решается с использованием метода внедрения неисправностей. Реализация метода, представленная в экспериментальном образце ПАК, требует модификации первоначального проекта микросхемы (в базисе целевой микросхемы СнК) путем замены элементов логической схемы СнК на их функциональные аналоги в базисе ПЛИС, способные имитировать возникновение сбоя. Если рассматривать каждый функциональный аналог в виде черного ящика, то основным его отличием от оригинала будет наличие дополнительных входов — входов активации сбоев. Так, при модификации простейшего элемента — синхронного D-триггера, имеющего входы D, C и выход Q,— его функциональный аналог будет иметь три дополнительных входа (по количеству поддерживаемых в ПАК типов сбоев): вход i, вход s0 и вход s1. Вход i соответствует инверсии логического значения триггера, входы s0/s1 — соответственно, залипанию триггера в состоянии логических нуля и единицы. Если при тестировании на входы i, s0 и s1 подать сигналы логического нуля, то модифицированный триггер будет работать в режиме "без сбоев". В случае, если на каком-либо из этих входов будет логическая единица, то выход Q-триггера изменится для имитации соответствующего сбоя. Аппаратная поддержка трех типов сбоев достаточна для моделирования практически любых типов неисправностей, так как, независимо от природы возникновения, любой сбой или отказ обнаружится в появлении ошибочного значения в элементе памяти логической схемы устройства.

В экспериментальном образце ПАК управление сбоями осуществляется "микроядром обеспечения моделирования". В его состав входят аппаратные модули, которые должны быть синтезированы вместе с тестируемым проектом микросхемы в одной ПЛИС. В функции микроядра, помимо подачи сигналов активации неисправностей, входят подача значений на входы проекта микросхемы, фиксация значений его выходов, а также обмен данными с программным комплексом на рабочей станции.

Для проведения функционального тестирования модифицированного проекта микросхемы программный комплекс ПАК осуществляет: генерацию логической схемы микроядра обеспечения моделирования в базисе ПЛИС, создание модифицированного проекта микросхемы и его интеграцию с микроядром. Далее на базе полученного проекта в ПЛИС платы расширения N2 реализуется прототип модифицированного проекта и проводится его тестирование. Данный пункт методики предназначен для проверки корректности модификации исходного проекта, поэтому имитация неисправностей не производится, и сигналы активации сбоев не подаются.

4. Оценка сбоеустойчивости модифицированного проекта микросхемы. Для ПЛИС-прототипа, реализованного в плате расширения N2, проводится функциональное тестирование на основе концепции расширенного метода внедрения неисправностей (O. Brekhov and A. Klimenko, "Hardware-software simulation complex for FPGA-prototyping of fault-tolerant computing systems", Communications in Computer and Information Science, 678, 2016). Отличием данной концепции от стандартных подходов является учет условий эксплуатации конкретной микросхемы при организации тестирования. Суть концепции можно охарактеризовать как преобразование физических и химических воздействий на вещество целевой микросхемы, которые могут возникать в процессе ее эксплуатации, в последовательность сбоев, внедрение которых в ПЛИС прототип целевой микросхемы поддерживается аппаратно.

Для реализации описанного подхода создается программная модель возникновения неисправностей, включающая совокупность трех моделей: модели внешних воздействий (МВВ), модели возникновения угроз и модели локализации неисправностей (МЛН). Эти три модели позволяют сформировать список сбоев, использующийся при тестировании и характеризующий временя внесения неисправностей, их тип и множество элементов СнК, в которые они вносятся. Входными данными для МВВ являются: период активного существования космического аппарата (КА) базирования СнК, параметры его орбиты, модель радиационной защиты, учитывающая эффекты экранирования микросхемы окружающими конструкциями, а также характеристики корпуса микросхемы. Выходными данными МВВ являются параметры окружающей среды вблизи микросхемы (типы, интенсивность и направление движения заряженных частиц), определяющие воздействие на физическую среду чипа. Выходные данные МВВ являются входными данными МПУ, наряду с технологическими параметрами СнК и топологией микросхемы. Далее, выходными данными МПУ являются параметры изменений физической среды чипа, возникающих в результате воздействий, определенных МВВ. Выходные данные МПУ являются входными данными МЛН, наряду с топологией микросхемы. На основе входных данных модель МЛН формирует конечный список сбоев, использующийся при тестировании. В экспериментальном образце ПАК реализован интерфейс, позволяющий использовать при оценке сбоеустойчивости модифицированного проекта микросхемы различные реализации модели возникновения неисправностей, подключаемой в виде динамической библиотеки.

5. Разработка альтернативных сбоеустойчивых архитектур СнК и их тестирование. В процессе тестирования исходного и модифицированного проектов микросхемы (обозначим их как ИПМ0 и МПМ0, соответственно) в платах расширения N1 и N2 может выявиться недостаточная эффективность механизмов обеспечения сбоеустойчивости. В этом случае осуществляется перепроектирование первоначального проекта микросхемы — создается новый исходный проект (ИПМ1) с альтернативной реализацией средств обеспечения сбоеустойчивости. Данный проект реализуется в качестве ПЛИС прототипа в плате расширения N3, и проводится проверка его функционального соответствия проектам ИПМ0 и МПМ0. В случае успешного проведения тестирования ИПМ1 модифицируется аналогично ИПМ0 — создается модифицированный проект МПМ1 с интегрированным микроядром, который реализуется в ПЛИС платы расширения N4. Далее проводится параллельное тестирование проектов ИПМ0, ИПМ1 без внедрения неисправностей, а также МПМ0 и МПМ1 с их внедрением. В результате удается определить архитектуру СнК, имеющую достаточный уровень сбоеустойчивости при заданных условиях внешних воздействий.

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

Олег Брехов, доктор технических наук, профессор, Московский авиационный институт

Загрузка новости...
Загрузка новости...
Загрузка новости...
Загрузка новости...
Загрузка новости...
Загрузка новости...
Загрузка новости...
Загрузка новости...
Загрузка новости...
Загрузка новости...
Загрузка новости...