УДК 004.318
Вестник СибГАУ Том 17, № 3. С. 768-781
ТЕХНОЛОГИЯ ИНЪЕКТИРОВАНИЯ СБОЕВ ДЛЯ ТЕСТИРОВАНИЯ СБОЕУСТОЙЧИВОСТИ МИКРОПРОЦЕССОРОВ, ПРЕДНАЗНАЧЕННЫХ К ИСПОЛЬЗОВАНИЮ В БОРТОВОЙ АППАРАТУРЕ КОСМИЧЕСКИХ АППАРАТОВ
С. А. Чекмарёв, В. Х. Ханов*, А. С. Тимохович
Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31
*Е-шаЛ: [email protected]
Представлено описание технологии инъектирования сбоев и обзор методов, применяемых при внесении сбоев в электронные цифровые устройства. Технология инъектирования предназначена для тестирования на сбоеустойчивость элементов и устройств вычислительной техники и систем управления, эксплуатируемых в составе бортовой аппаратуры космических аппаратов. Введение сбоев в микропроцессор имитирует одиночные сбои в его внутренней памяти, а также во внешней памяти микропроцессорной системы. Одиночные сбои заключаются в инвертировании ячеек памяти на противоположное значение. Модель введения сбоев определяется набором планируемых сбоев, включающим вид сбоя, его время и место, набором выполняемых действий тестируемой системой во время внесения сбоя, набором результатов (сбой парирован или нет), а также набором производных от полученных результатов статистических метрик. Процесс внесения сбоев в микропроцессор заключается в инвертировании каким-либо методом его ячеек памяти во время его работы. Результаты инъектирования собираются и в последующем обрабатываются внешним по отношению к тестируемому микропроцессору компьютером. Методы инъектирования бывают физическими или осуществляемыми в модели тестируемой системы, инвазивными или неинвазивными. Физические методы основаны на применении реальных процессов, которые могут вызвать сбои в реально существующей микропроцессорной системе. Неинвазивные методы для проведения процесса инъектирования не используют или минимально используют аппаратное вмешательство внутрь тестируемой микропроцессорной системы. Большинство методов внесения сбоев являются универсальными для любых электронных, преимущественно цифровых, систем, но два подхода специально разработаны для микропроцессорных систем: инъектирование с помощью программного обеспечения и внесение сбоев через порт тестирования микропроцессора с помощью внутрикристального отладчика. Инъектирование через порт тестирования вносит сбои независимо от процесса выполнения микропроцессором программы. Большинство методов инъектирования, основанных на внутрикристальном отладчике, используют внешнее аппаратно-программное окружение, что замедляет процесс введения сбоев. Для микропроцессоров типа «система на кристалле» разработан метод внутрикристального инъекти-рования, когда инфраструктура для проведения размещается непосредственно внутри тестируемого микропроцессора в виде его сложнофункционального блока, что сокращает задержки внесения сбоев. Обзор показал, что технология инъектирования сбоев имеет высокую практическую значимость и активно развивается.
Ключевые слова: сбоеустойчивость микропроцессоров, модель инъектирования сбоев, методы инъектиро-вания сбоев, инъектирование с помощью внутрикристального отладчика, внутрикристальное инъектирование сбоев.
Sibirskii Gosudarstvennyi Aerokosmicheskii Universitet imeni Akademika M. F. Reshetneva. Vestnik Vol. 17, No. 3, P. 768-781
FAULT INJECTION TECHNOLOGY FOR FAULT TOLERANCE TESTING OF MICROPROCESSORS DESIGNED TO ONBOARD EQUIPMENT
S. A. Chekmarev, V. Kh. Khanov*, A. S. Timokhovich
Reshetnev Siberian State Aerospace University 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation *Е-mail: [email protected]
The fault injection process specification and overview of injection methods are presented. The fault injection technology is for fault tolerance testing of computing elements and devices and operating systems used for onboard equipment. The fault injection in microprocessor imitates single event upset of internal and external microprocessor
memory. A single event upset consists of a memory cell inverting in value. Injection model is defined by injection planning set included kind of fault, its time and location; by system-under-test operation set during injection; by injection result set: parried fault or not; also by statistical measure set derived from results. The process of fault injection in microprocessor consists of memory cell inverting by any methods during microprocessor operation. Injection results are collected and then processed by external computer to microprocessor under test. Injection methods are physical or realized in system-under-test model which can be invasive or non-invasive. Physical methods are based on using of real process which may cause faults in factual microprocessor system. Non-invasive methods do not use or minimally use the hardware interference in microprocessor system-under-test for injection. Most of the injection methods are common for any electronic mostly digital system, but two methods are specifically developed for microprocessor systems: software fault injection and injection via the testing port using the on-chip-debugger. Injection via testing port injects the fault independent of microprocessor program execution. Most of fault injection methods based on the on-chip-debugger use external hardware-in-the-loop environment what slow down the injection process. The developed method of on-chip injection is targeting on SoC-microprocessors. In this method the injection infrastructure is immediately within testing microprocessor as IP-core what minimizes time delays. Overview shows fault injection technology has the high practical significance and brisk growth.
Keywords: fault tolerance of microprocessor, fault injection model, fault injection methods, on-chip-debugger injection, on-chip fault injection.
Введение. В настоящее время действие космического ионизирующего излучения рассматривается как одна из основных причин сбоев и отказов электронной аппаратуры, работающей как в земных условиях, так и, конечно, в условиях космоса. Проблема отказо-и сбоеустойчивости бортовой аппаратуры особенно актуальна для околоземных космических аппаратов, предназначенных для эксплуатации в течение 15 лет. Системообразующими элементами большинства бортовых систем являются микропроцессоры, разрабатываемые с помощью специальных сбоеустойчивых технологий, схемотехнических и архитектурных решений. Для верификации и тестирования сбоеустой-чивости микропроцессоров используют технологию искусственного инъектирования сбоев в его внутренние структуры, прежде всего память. Вносимые сбои, имитирующие реальное воздействие космической радиации, должны быть парированы сбоеустойчивым микропроцессором таким образом, чтобы сохранилось нормальное функционирование бортовой аппаратуры. В работе представлен обзор методов технологии инъектирования сбоев в электронную аппаратуру. Особое внимание уделено методам инъектирования сбоев с помощью внутрикристальной отладки и внутрикристального инъектирования для микропроцессоров типа «система на кристалле».
Сбоеустойчивость цифровых интегральных схем к ионизирующему излучению космического пространства. Радиационные эффекты ионизирующего излучения, приводящие к сбоям и отказам, делятся на две основные группы [1; 2]:
- эффекты, связанные с изменением (деградацией) свойств полупроводникового материала интегральной схемы (ИС) в связи с накоплением разрядов под воздействием ионизирующего излучения (Total Dose Effects, TDF);
- локальные эффекты, вызванные воздействием на локальную область ИС высокоэнергетичных протонов (ВЭП) и тяжелых заряженных частиц (ТЗЧ), приводящие к немедленному сбою (Single Event Effects, SEE).
Деструктивное воздействие радиации разделяют на неустранимые (hard error) и устранимые отказы
(soft error), т. е. сбои [2]. К неустранимым отказам, связанным с физическими разрушениям полупроводниковой структуры, относятся разрушения транзистора (Single Event Burnout, SEB) и разрушение изолятора (Single Event Gate Rupture, SEGR) полупроводниковой структуры ИС.
К сбоям относятся кратковременные изменения уровня напряжения на противоположное на выходе логического элемента (Single Event Transient, SET), изменения состояния запоминающего элемента на противоположное (Single Event Upset, SEU) и одиночные сбои-защелкивания (Single Event Latchup, SEL) [3]. SET - события кратковременные, проводящие к «ложным» импульсам в цепях логических элементов, аналогичные помехам по цепям питания и от источников внешних электромагнитных помех для устройств на печатных платах. SEU вызывают в массивах памяти одиночные (Single Bit Upset, SBU), а иногда и мультибитные сбои (Multiple Bit Upset, MBU), которые можно устранить путем перезаписи в соответствующие ячейки памяти правильных значений. События SEL, имеющие еще название тиристорного эффекта, самые опасные из одиночных сбоев: при отсутствии средств защиты они могут стать причиной необратимого отказа.
В ряде исследований показано, что по сравнению с TDF подавляющее число отказов и сбоев электронной компонентной базы (ЭКБ) летательных аппаратов обусловлено одиночными событиями [4], среди которых события SEU наиболее распространены [5].
Сбоеустойчивость - это свойство системы, например микропроцессора, продолжать свое нормальное функционирование в случае одного или нескольких сбоев некоторых из своих компонентов. Сбоеусточи-вые системы маркируются символами FT (Fault Tolerant). Обеспечение сбоеустойчивости - необходимое условие достижения приемлемого уровня надежности систем, работающих как в земных условиях, так и в условиях космического пространства.
Сбоеустойчивость ЭКБ, предназначенной для космоса, обеспечивается специальными проектными решениями, обеспечивающими защиту от радиации (Radiation Hardening, RH). Соответственно, специальные
микропроцессоры для космоса называются RH-микро-процессорами. RH можно рассматривать с двух сторон [6]:
1. Как RH-процесс создания базовых технологий формирования полупроводниковых структур, используемых для изготовления ЭКБ (Radiation Hardening by Process, RHBP). К RHBP-решениям относятся, в первую очередь, технологии «кремний на изоляторе» (КнИ) и «кремний на сапфире» (КнС) [1]. Для ИС, разработанных с применением данных технологий, не характерны эффекты типа SEL.
2. Как RH-методологию проектирования функционала ЭКБ (Radiation Hardening by Disign, RHBD). RHBD можно разделить на 3 подхода в зависимости от уровня сложности, с которого рассматривается ИС:
- RHBD на архитектурном уровне (Radiation Hardening By Design at Architecture Level, RHBD-AL);
- RHBD на схемном уровне (Radiation Hardening By Design at Circuit Level, RHBD-CL);
- RHBD на уровне компоновки (Radiation Hardening By Design at Layout Level, RHBD-LL).
На архитектурном уровне сбоеустойчивость обеспечивается троированием функциональных блоков, особыми приемами проектирования памяти, разделяемой на несколько независимых автономных массивов, применением помехоустойчивых кодов при проектировании сбоеустойчивой памяти [7] и другими проектными решениями.
К схемотехническим методам относятся методы построения транзисторных ячеек, имеющих повышенную устойчивость к SEE. Например, широкое распространение получили ячейки с дуальными потоками данных DDSL (Dual Data Stream Logic), предложенные в работе [8], а также триггерные ячейки типа DICE (Dual Interlocked Storage Cell) [9]. Существуют и другие решения, например, применение защитных вентилей [10] для защиты от SET.
RHBD-LL заключается в специальных приемах переноса и встраивания компонентов из библиотеки элементарных блоков (Rad Hard Libraries) в топологию каждого слоя ИС [6].
RHBD-методы, как правило, приводят к увеличению энергопотребления и площади элементов, а также к ухудшению быстродействия [6]. Тем не менее, их применение является обязательным для ИС, эксплуатируемым в составе бортовых систем.
Как чрезвычайно чувствительная к SEU, наиболее уязвимым элементом к космической радиации является оперативная память: внутренняя память микропроцессора (регистры и кэш), внешняя память микропроцессорной системы, память реконфигурации FPGA типа SRAM. В современных системах оперативная память занимает большие объемы, что увеличивает вероятность SEU. Поэтому защита оперативной памяти является обязательной для аппаратуры космического назначения, в том числе и защита внутренней памяти микропроцессора. По существу архитектурная сбоеустойчивость микропроцессора заключается в защите его внутренней памяти от SEU и является обязательным условием отнесения его к классу Fault Tolerant.
Основным способом защиты оперативной памяти является применение помехоустойчивых кодов. В зависимости от типа помехоустойчивого кода он может автоматически обнаруживать и исправлять одну или две ошибки в памяти [11]. При этом они характеризуются разной степенью избыточности проверочных бит, а также временными задержками на проведение проверочных и корректирующих действий. Кроме избыточности на выбор того или иного помехоустойчивого кода влияет срок работы электронной аппаратуры в условиях космоса: чем выше срок активного существования, тем применяется более сложный код с большими возможностями по коррекции ошибок в памяти.
Какими бы методами не обеспечивалась бы защита от одиночных сбоев, важнейшим является вопрос тестирования эффективности их применения для конкретных образцов ИС. Технологией оценки нечувствительности ИС к SEE, и особенно к SEU, является инъекция сбоев.
Тестирование сбоеустойчивости с помощью инъекций сбоев. Под технологией инъектирования сбоев (Fault Injection, FI) понимается проверка надежности на основе реализации управляемых проверочных экспериментов, в которых наблюдается поведение тестируемой системы (System Under Test, SUT) в то время, когда в ней вызывают неисправности путем преднамеренного внесения (инъектирования) сбоев [12]. Таким образом, в SUT вводятся сбои, и наблюдается результат от их введения.
Технология FI в течение последних 30 лет используется с целью оценки отказо- и сбоеустойчивости во многий отраслях промышленности, связанных с эксплуатацией критически важных систем (КВС), в том числе и в космической индустрии. Международная электротехническая комиссия (МЭК, International Electrotechnical Commission, IEC) рекомендует использовать FI для определения последствий сбоев и их смягчения для КВС [13].
В качестве формальной модели FI, определяющей применимость, понимание процесса инъекции сбоев и использования их результатов, принята модель FARM [12; 14].
Для целевой системы, в которую вводятся сбои, определяются следующие наборы данных: входная область определяется набором сбоев F (Faults); функциональная область определяется набором выполняемых действий A (Activations); выходная область определяется набором результатов R (Readouts) и набором производных от них метрик M (Measures). Вместе наборы FARM-модели устанавливают главные атрибуты, которые позволяют полностью охарактеризовать FI. Эти атрибуты определяются следующим образом:
1. Множество сбоев F, которые преднамеренно вводятся в SUT. Каждый сбой характеризуется моделью сбоя M (одинарные или двойные, постоянные, периодические или кратковременные, устранимые или неустранимые и т. д.); местоположением сбоя L (в регистрах, во внутренней или внешней памяти и т. д.); временем сбоя T (случайным или периодическим, после наступления определенного события или исполнения определенной инструкции и т. д.). Множество
всех сбоев называют пространством сбоев F, которое определяется как M х L х T (рис. 1). Основная проблема - в определении конкретного подмножества F из всего пространства неисправностей, которые могут быть инъектированы в разумные сроки и обеспечить статистически значимые результаты. Часто F называют листом сбоев (Fault List).
2. Множество A определяет, какие функции выполняет SUT во время FI-эксперимента, например, принимает входные данные с датчиков, производит их обработку, выдает управляющие воздействия, информирует оператора о ходе работы и т. д. Для микропроцессорных систем в набор A добавляют набор W (Workloads) - программное обеспечение (ПО), выполняемое в ходе эксперимента и нагружающее процессор. Выбор A влияет на длительность каждого эксперимента, а также на размер листа событий.
3. Множество R соответствует зарегистрированному поведению целевой системы во время FI-эксперимента. Данные, сохраненные в R, зависят от целевой системы и механизмов наблюдения за поведением SUT. Например, для микропроцессора сохра-
няемые данные могут включать результаты выполнения тестовой программы, данные памяти и регистров, данные аппаратных исключений, а также, при необходимости, временные диаграммы работы отдельных устройств процессора. Таким образом, определение набора R является компромиссом между точностью и избыточностью эксперимента. Часто R называют Golden Result.
4. Множество М определяет величины, полученные в результате обработки экспериментальных данных, например, количество обнаруженных и из них исправленных сбоев, время задержки одного сбоя, оценка покрытия сбоями и т. д. для определения финальной оценки сбоеустойчивости целевой системы.
Для получения надежных оценок сбоеустойчиво-сти проводится серия FI-экспериментов, часто называемых FI-кампаниями. Каждый эксперимент имеет набор сбоев из множества F, выполняется при определенной функциональной нагрузке целевой системы из множеств A и W. В результате фиксируется набор результатов из множества R, которые обрабатываются для получения набора оценок из множества M.
Рис. 1. Пространство сбоев [14]
Рис. 2. Процесс проведения FI-экспериментов [14]
Данный процесс схематично представлен на рис. 2, где ai - набор внешних воздействий, включая и нагрузочное ПО, Ai - длительность одной инъекции, li -местоположение инъекции; ti - продолжительность эксперимента, fmi - тип сбоя, i - индекс эксперимента. Полученный набор результатов из множества R служит для получения оценок M с помощью статистического оценивания.
С практической точки зрения, критерий покрытия сбоев (Fault Coverage, FC) является важнейшей характеристикой любой FI-методологии. Он является мерой способности системы обнаруживать, изолировать и парировать сбои. Оценку критерия получают из результатов экспериментов, поэтому оценка принадлежит к множеству M модели FARM.
Если бы производилось исчерпывающее тестирование, то полученная в результате обработки оценка критерия покрытия сбоев приближалась бы к теоретически достижимому критерию. На практике идеальный случай получить невозможно из-за ограничений процесса тестирования. Всегда существует опасность, что инъектируемый сбой не был обнаружен целевой системой, например, при заданных условиях входных воздействий на целевую систему. А при других условиях он был бы обнаружен. Чтобы получить хорошую точность оценки критерия покрытия сбоев, необходимо увеличить количество экспериментов, проводимых в FI-кампании.
Пусть n - количество инъекций, произведенных в процессе FI-кампании, в результате которого получено за время t общее количество сбоев N(t). Полагая, что результат каждой инъекции Y соответствует распределению Бернулли, а вся совокупность результатов Yb Y2, ..., Yn - биномиальному распределению, получают, что статистическая оценка критерия покрытия сбоев равна [14]
N (t)
С =-
При t ^ œ
1 п
С = -,
(1)
(2)
где Yi принимает значение 1 или 0.
Точность оценки критерия покрытия сбоев определяется по формуле
S[C] =
Ç(1 - С)
п -1 '
a доверительный интервал
(С - к< с < (с+к
(3)
(4)
где Ку - квантиль нормального распределения, определяемый по значению доверительной вероятности (доверительного коэффициента, обычно 0,95).
Минимальное количество экспериментов, необходимое для получения достоверной оценки критерия покрытия сбоев, вычисляется по формуле
n =
ln(1 -Y) ln C,
(5)
где Ci - нижняя граница оценки критерия покрытия сбоев; у - доверительный коэффициент.
На рис. 3 представлена блок-схема типичной архитектуры системы инъекции сбоев (СИС, FI-environment) [15]. Данная архитектура, конкретизированная для микропроцессора, соответствует FARM-модели.
Целевая система (Target System) испытывает воздействия FI. На вход (Operational Inputs) целевой системы поступает входная информация, которая обрабатывается соответствующим программным обеспечением (Application Workload). Библиотека сбоев (Fault Library) содержит лист сбоев, который задают требования для инъектирования сбоев в целевую систему с помощью инъектора сбоев (Fault Injector). Монитор (Monitor) глобально поддерживает функционирование целевой системы во время FI и при необходимости считывает из нее результаты инъекций. Накопитель (Data Collector) сохраняет полученные результаты и передает их для обработки в анализатор данных (Data Analyzer). Анализатор данных - автоматизированная система, с помощью которой даются оценки результативности FI и эффективности механизмов сбоеустойчивости целевой системы.
Несмотря на большое разнообразие конкретных реализаций FI, данная архитектура справедлива для большинства СИС.
Методы инъектирования сбоев. Методы инъектирования (рис. 4) разделяются на две большие группы [14; 16]: физические (Physical), которые реально воздействуют на SUT с помощью какого-то физического процесса с целью внесения сбоя, и основанные на имитации сбоев (Simulation based) путем внесения ошибок в различные уровни представления SUT -логическую модель, функциональную модель, поведенческую модель, модель инструкций. Кроме того, имеются гибридные (Hybrid), в которых сочетаются Physical и Simulation based методы, среди который отдельно выделяют многочисленные методы инъекций с помощью моделирования на ПЛИС типа FPGA (FPGA Hardware Emulation), а также новейшие методы, классификация которых пока не проведена.
Физические методы делятся на инвазивные и неин-вазивные, т. е. требующие какого-либо вмешательства в SUT или нет. Инвазивные методы обычно требуют аккомодации SUT к проведению FI-экспериментов. К неинвазивным методам относится методы, основанные на воздействиях радиации, электромагнитного излучения и помех по электропитанию.
Метод радиационных испытаний является традиционным для исследования сбоеустойчивости ЭКБ. Для их проведения требуются дорогостоящие установки: ускорители ионов и протонов, лазерные имитаторы с фокусированным излучением и изотопные установки на основе альфа- и спонтанного излучений [17; 18]. Радиационные методы FI подходят в первую очередь для окончательных испытаний ЭКБ, а не для тестирования и отработки тех или иных архитектурных решений при проектировании RHBD-процессоров, потому что данные процессы требуют более высокую скорость проводимых работ. К тому же радиационные испытания отличаются высокой стоимостью.
п
Рис. 3. Архитектура FI-environment [15]
Рис. 4. Классификация методов FI [14]
Электромагнитное излучение (ЭМИ) является частой причиной сбоев цифровых систем. Для проверки чувствительности аппаратуры к ЭМИ проводят соответствующие эксперименты [19]. ЭМИ-методы FI не отличаются высокой управляемостью и не позволяют контролировать эффективность локальных технических решений по сбоеустойчивости микропроцессора, например, только работу EDAC-механизмов внутренней памяти.
Метод FI с помощью помех и нарушений в работе источников электропитания тестируемой системы вследствие низкой воспроизводимости результатов и низкой управляемости процессом инъектирования сбоев используется редко. Обычно он используется как дополнение к другим методам инъекций сбоев для КВС [20].
Инвазивные физические методы FI вносят в тестируемую систему те или иные изменения, которые
требуются для их работы. Pin Level методы требуют для инъекции специальные электрические пробники или сокеты, через которые в SUT инъектируются сбои. Данные методы широко применялись в 198090-е гг. [21; 22].
Методы, базируемые на возможностях внутрикристальной отладки (On Chip Debbuger, OCD) с помощью тестового порта (Test Access Port, TAP), например, Nexus, JTAG, BDM или OnCE, требуют их наличия в составе тестируемого микропроцессора. Впрочем, все современные процессоры в том или ином виде оснащены OCD-возможностями [23]. Подробнее OCD-методы рассмотрены ниже.
Широко распространен подход использования программного обеспечения для инъекции сбоев (Software-implemented fault Injection, SWIFI). Методы SWIFI эмулируют аппаратные сбои с помощью ПО в аппаратные ресурсы микропроцессора, доступные программисту. Они делятся на две группы: методы, в которых ПО генерирует и производит инъекции непосредственно во время работы тестируемой системы (run-time injection), и методы, в которых сбои подготавливаются заранее путем внесения изменений в исходный код программы или в ее бинарный образ перед ее загрузкой в память микропроцессора (pre run-time injection). Методы инъекций в реальном времени более распространены, так как они обеспечивают большие возможности для эмуляции аппаратных сбоев. Одновременно многие SWIFI-методы эмулируют и программные ошибки. Возможности конкретных SWIFI-методов и систем на их основе приведены в [24-28].
Как отмечено выше, методы, основанные на имитации сбоев (Simulation based), инъектируют сбои в различные уровни представления SUT: логическую модель, модель функциональных блоков, поведенческую модель, модель инструкций или сразу одновременно на несколько модельных уровней. Для многих практических методов основой создания моделей тестируемых систем являются языки описания аппаратуры (Hardware Description Language, HDL), такие как VHDL и Verilog. Существуют несколько подходов для реализации процесса FI, такие как модификация HDL-кода, модификация HDL-симулятора, управление симулятором с помощью скриптов [29; 30].
Новые возможности для FI открыла технология полной системной симуляции или виртуализации. Эта технология комбинирует быструю модель инструкций тестируемой системы с ее точной логической моделью для создания виртуальной машины тестируемой системы. Наиболее известным продуктом полной системной симуляции является SIMICS [31], который может симулировать множество микропроцессорных систем, таких как Alpha, x86-64, IA-64, ARM, MIPS (32 и 64 bit), MSP430, PowerPC (32 и 64 bit), POWER, SPARC-V8 и V9. Возможности SIMICS позволяют в режиме симуляции инъектировать сбои в тестируемую систему и исследовать ее чувствительность к ним [32].
Появление больших FPGA, позволяющих полностью вместить тестируемую систему, открыло новые возможности для тестирования их сбоеустойчивости.
Сочетая преимущества программной разработки системы с помощью HDL с ее быстрой имплементацией в аппаратном устройстве, технология FPGA Hardware Emulation получила широкое распространение. Одной из первых работ по данной тематике стала [33]. С тех пор появилось большое количество работ, посвященных FPGA Hardware Emulation [34-37]. FI может быть осуществлена с помощью реконфигурации модели тестируемой системы путем внесения дополнительного модуля, осуществляющего FI, двумя способами: модуль вносится во время компиляции FPGA (compile time reconfiguration) или же модуль добавляется во время моделирования тестируемой системы (run-time reconfiguration). Второй случай применим посредством частичной реконфигурации FPGA, что возможно произвести для многочисленной группы FPGA типа SRAM-based.
Гибридные методы комбинируют несколько FI-технологий для достижения точности и объема проводимых экспериментов. Например, система NFTAPE позволяет использовать несколько типов инъекторов, используя методы SWIFI, FPGA Hardware Emulation и Physical Fault Injector [38].
В последнее время появился ряд методов, которые невозможно отнести ни к одному из рассмотренных типов. К ним относятся формальные методы на основе построения различных математических моделей тестируемых систем [39; 40].
Среди рассмотренных методов лишь SWIFI и OCD-подход напрямую предназначены для тестирования микропроцессоров. Но если в SWIFI сбои вносятся программно, то OCD-методы их производят независимо от работы микропроцессорной системы. Рассмотрим методы, основанные на OCD, более подробно.
Инъекция сбоев с помощью внутрикристального отладчика микропроцессора. Средства отладки (On Chip Debbuger, OCD), включенные в состав большинства современных микропроцессоров, позволяют получить доступ к его внутренним ресурсам на чтение и для записи, причем без нарушения в работе работающих программных приложений. OCD-инфра-структура обеспечивает доступ к внутренним ресурсам параллельно с целевым аппаратным обеспечением микропроцессора и работающим ПО. Эта возможность используется для FI.
В отличие от других FI-методов OCD-подход обладает рядом достоинств. Так, например, методы, основанные на имитации сбоев в модели, требуют больших затрат времени и могут привести к ошибочным результатам, поскольку зависят от качества модели. Методы SWIFI вносят изменения в исполняемый код, что изменяет целевую систему; доступ к ресурсам ограничен только теми, которые достигаются с помощью ПО. Большинство физических методов дороги и не позволяют точно управлять моментом и местом внесения сбоя.
Системы FI на базе OCD лишены указанных недостатков и поэтому довольно распространены. Примерами таких систем являются GOOFI (Generic Object Oriented Fault Injection) [41], INERTE (Integrated NExus-based Real-Time fault injection tool for
Embedded systems) [42], Xception [43] и HiPeFI (High Performance Fault Injection) [44]. Большинство этих систем применяют внешние системы отладки (рис. 5), обеспечивающие доступ управляющего компьютера к OCD.
Инъекция сбоев через OCD, как правило, включает следующие шаги: установка точки прерывания и ожидание, когда текущая фоновая программа достигнет точки прерывания; при наступлении прерывания программы - чтение значения слова ячейки внутренней памяти, выбранной, например, случайным образом; изменение этого значения путем записи нового значения с внесенной, например однократной, битовой ошибкой; запись этого нового обратно в память; восстановление выполнения прерванной программы. Если в момент выполнения фоновой программы происходит обращение на чтение к ячейке внутренней памяти с внесенной ошибкой, то EDAC-механизм должен исправить данную ошибку. В случае обнаружения двойной ошибки будет выдано исключение, которое может быть обработано ПО, и приняты соответствующие меры по обработке исключительной ситуации. Статистика о количестве внесенных и исправленных (или неисправленных) сбоев позволяет судить об эффективности защиты внутренней памяти микропроцессора. Доступ к OCD, как правило, осуществляется с помощью стандартизированных интерфейсов Nexus, JTAG или BDM.
Рассмотрим несколько типичных примеров реализаций FI на базе OCD. В работе [45] представлена СИС, состоящая из управляющего компьютера, коммерческого отладчика и целевой системы на базе 32-разрядного микроконтроллера Freescale MC68332. Для взаимодействия коммерческого отладчика и целевой системы используется интерфейс BDM. Инъекции сбоев непосредственно выполняет внешнее по отношению к тестируемой микропроцессорной системе устройство отладки, однако всю работу по подготовке каждого эксперимента и сохранению его результатов выполняет управляющий компьютер, что снижает производительность FI-кампаний. Данный подход, когда используются обычные коммерческие отладчики, что определяет большую нагрузку по осуществлению FI-кампаний на управляющий компьютер, встречаются достаточно часто [46].
В работе [47] представлена архитектура СИС, использующая стандарт IEEE JTAG 1149.1. Она также состоит из управляющего компьютера и тестируемой микропроцессорной системы на базе процессора ARM7 TDMI-S, имеющего OCD, а также специализированного устройства инъекции сбоев вместо обыкновенного коммерческого отладчика. Устройство инъекции состоит из контроллера инъекции сбоев, накопителя планируемых сбоев, накопителя результатов инъекций, модуля команд отладчика и контроллера интерфейса JTAG. Данное решение позволяет функции управления инъекциями, подготовки планируемых сбойных событий и хранения промежуточных результатов инъекций сбоев осуществлять не во внешнем управляющем компьютере, а с помощью специализированного устройства инъекции сбоев. Достоинством является возможность проводить длительные автономные от управляющего компьютера эксперименты по многократному внесению одиночных сбоев, отсутствие инвазивности целевой системы, а также относительно малая временная задержка на внесение одного сбоя, равная 2 мс/сбой. Недостатком данной архитектуры, как и предыдущей, является сложность системы проведения экспериментов по инъекции одиночных сбоев, для которой требуется внешнее специализированное устройство инъекции сбоев.
В работе [48], обобщающей более ранние работы данных авторов [49; 50], представлены несколько вариантов реализации СИС, реализующих FI в реальном времени, основанных на возможностях стандарта Nexus. СИС реализованы с помощью FPGA. В FPGA входят простой VHDL-процессор целевой системы, имеющий совместимый с Freescale MPC565 внутрикристальный OCD, и специализированный отладчик, имеющий дополнительный функционал для FI. Процессор не имеет кэш-памяти. Он и отладчик связаны интерфейсом Nexus Class 2+, который позволяет обращаться к памяти целевой системы, не останавливая процессор и, соответственно, без остановки работающего ПО. Собственно эта возможность и определяется авторами работы как инъекция сбоев в реальном времени, по аналогии с отладкой в реальном времени, определяемой в Nexus Class 2+.
Тестируемая система
Сот или USB
Nexus или JTAG или BDM
Управляющий компьютер
Внешний аппаратный отладчик
Процессор
OCD
Память
Рис. 5. Схема FI-системы на базе OCD
Однако данный режим (чтение/запись в реальном времени) просто реализуется только для внешней памяти, для регистров процессора его реализовать можно лишь с помощью модификации ОСБ путем добавления в него Б1-модуля (рис. 6). Кроме того, для осуществления в регистры процессора требуется модификация доступа к ним, чтобы предотвратить коллизии одновременного обращения к регистрам процессора и Б1-модуля. Таким образом, данное решение является высоко инвазивным, что снижает его практическую ценность.
Инъекции сбоев в регистры производятся лишь в случае необращения к ним со стороны процессора. Поэтому хоть производимая Р1-компания не сказывается на текущей работе процессора, а сами инъекции имеют маленькую длительность, её общая производительность (количество инъекций в единицу времени) оказывается довольно низкой, что сказывается на критерии покрытия сбоев. Поэтому в работе [48] предложена методика предопределенных инъекций, когда инъекции производятся в заранее определенную ячейку памяти или регистр процессора при наступлении в работающей программе определенного события, например, достижения определенного места в программе или в случае появления в какой-то переменной определенного значения. В этом случае эффективность сбоя сильно возрастает. Противоположной является методика случайных инъекций, основанная на равномерном случайном инъектирова-нии сбоев: инъекции случайны по времени, местоположению и по инъектируемому значению (однократ-
ный или двойной сбой). Данная методика приближена к естественному проявлению событий SEU, и ее обычно используют для FI-кампаний.
В ряде работ представлены результаты создания СИС для процессоров типа «система на кристалле» (СнК-процессоров) [51]. Для оценки чувствительности процессора LEON3FT, имплементированного в FPGA RTAX 2000, его разработчики использовали следующие способы FI: излучение готового микропроцессора в составе SUT тяжелыми заряженными частицами изотопа калифорний-256 и инъекции ошибок SEU во внутреннюю память, используя внутрикристальный отладчик DSU.
Упрощенная схема СИС представлена на рис. 7. Инъекции планируются и осуществляются программно с помощью управляющего компьютера, который связан с DSU через RS232. Программа определяет вид и место инъекции, инициирует начало очередной инъекции, а после ее проведения считывает ее результаты. Инъекции осуществляются с остановкой процессора. В отличие от схемы на рис. 5, данная схема учитывает блочно-модульное построение СнК. Управляющий компьютер имеет связь с DSU без использования внешнего аппаратного отладчика. Подход не является инвазивным для целевой системы. Вместе с тем время осуществления каждого нового инъекти-рования зависит от процессов обмена с внешним управляющим компьютером по интерфейсу RS232, а, следовательно, будет в широких пределах изменяться от инъекции к инъекции, т. е. задержка инъектирова-ния будет большой и переменной.
Рис. 6. OCD и модуль FI [49]
Управляющий компьютер
Тестируемая система
У к
^ г
1
LEON3
Память
Рис. 7. Упрощенная FI-схема процессора LEON 3FT [51]
Рис. 8. Концептуальная архитектура внутрикристального инъектирования сбоев
Управляющий компьютер
Тестируемая система
контроллер
0] I
СнК
OCD
Контроллер памяти
Внешняя память
Инъектор сбоев
В работах [52-56] для СнК-процессоров предложен метод внутрикристального инъектирования. В отличие от [48] инфраструктура инъектирования сбоев как отдельный специализированный IP-блок располагается внутри СнК-процессора (рис. 8). Внутрикристальный инъектор сбоев автономно осуществляет инъекции и собирает статистику чувствительности процессора к ним.
Инъектор сбоев может вносить сбои как во внутреннюю, так и во внешнюю память. При инъектиро-вании во внутреннюю память инъекции производятся с остановкой процессора, но с минимальными предсказуемыми постоянными задержками, определяемыми скоростью транзакций по внутрикристальной шине. Инъекции во внешнюю память доступны в двух режимах работы процессора: с остановкой и без его остановки. В каждом случае за счет внутрикристального размещения инъектора задержки инъектирования крайне малы. Так, например, для процессора LEON3, имплементированного в FPGA, фирмы Microsemi A3PE3000L при тактовой частоте 25 МГц задержки для режима с остановкой процессора не превышают 4 мкс, в режиме без остановки процессора - 2 мкс.
Внутрикристальный отладчик, контроллер памяти и инъектор сбоев расположены на внутрикристальной шине. Данное условие является обязательным для предлагаемого подхода. Оно обеспечивает малую связность блока инъектора сбоев с ядром процессора. Взаимодействие обеспечивается только с помощью внутрикристальной шины. По окончании процесса тестирования инъектор сбоев исключается из микропроцессора, не оставляя в нем никаких «следов». При данном подходе под низкой инвазивностью понимается не только малый размер блока инъектора сбоев, но и возможность добавления, а затем исключения инъектора сбоев из СнК-процессора без каких-либо для него последствий.
Заключение. В работе представлен обзор методов инъектирования сбоев для проверки на сбоеустойчи-вость элементов и устройств вычислительной техники и систем управления, предназначенных для эксплуатации в составе бортовых систем космических аппаратов. Обзор дает достаточно полное представление
о данной технологии и о многообразии применяемых методов. Анализ библиографических источников показывает, что технология имеет высокую практическую значимость и активно развивается.
Благодарности. Исследование выполнено при поддержке Министерства образования и науки Российской Федерации, соглашение № 14.574.21.0041 от 19.06.2014 г., уникальный идентификатор RFMEFI 57414X0041.
Acknowledgments. This work was supported by the Ministry of Education and Science of the Russian Federation in accordance with the agreement № 14.574.21. 0041on 19.06.2014, unique identifier RFMEFI57414X0041.
Библиографические ссылки
1. Максименко С. Л., Мелехин В. Ф., Филипов А. С. Анализ проблемы построения радиационно стойких информационно-управляющих систем // Информационно-управляющие системы. 2012. № 2. 8 с.
2. Обеспечение радиационной стойкости космических аппаратов при проектировании / С. Н. Полесский [и др.] // Компоненты и технологии. 2010. № 9. С. 93-98.
3. Чумаков А. И. Прогнозирование локальных радиационных эффектов в ИС при воздействии факторов космического пространства // Микроэлектроника. 2010. № 2 (39). С. 85-90.
4. The impact of the space environment on Space systems / H. C. Koons [et al.] // 6th Spacecraft Charging Technology Conference. Hanscom, 2000. P. 7-11.
5. Мироненко Л. С., Юдинцев В. В. Повышение радиационной стойкости интегральных схем. Конструктивные методы на базе промышленной технологии // Электроника: наука, технология, бизнес. 2012. № 8. С. 74-87.
6. RHBD Techniques [Электронный ресурс]. URL: http://www.skyflash.eu/project/radhardening/ (дата обращения: 03.05.2016).
7. Краснюк А. А., Петров К. А. Особенности применения методов помехоустойчивого кодирования в суб-100-нм микросхемах памяти для космических систем [Электронный ресурс] // Проблемы разработки перспективных микро- и наноэлектронных систем.
2012. С. 638-641. URL: http://www.mes-conference.ru/ data/year2012/pdf/D125.pdf.
8. Wiseman В. Design and testing of SEU: SEL Immune Memory and Logic Circuits in a Commercial CMOS Process // IEEE Radiation Effects Data Workshop. 1994. P. 51-55.
9. Knudsen J. E., Clark L. T. An Area and Power Efficient Radiation Hardened by Design Flip-Flop // IEEE TRANSactions on NUCLear SCIence. 2006. Vol. 53, No. 6. Р. 3392-3399.
10. RHBD Techniques for Mitigating Effects of SingleEvent Hits Using Guard-Gates / A. Balasubramanian [et al.] // IEEE TNS. 2005. Vol. 52, No 6. P. 2531-2535.
11. Blahut R. E. Теория и практика кодов, контролирующих ошибки. М. : Мир. 1986. 576 с.
12. Arlat J. Fault Injection for the Experimental Validation of Fault-Tolerant Systems // Workshop Fault-Tolerant Systems IEICE. Kyoto, 1992. Р. 33-40.
13. IEC 61508 Functional safety of electrical, electronic, programmable electronic safety-related systems [Электронный ресурс]. URL: http://www.iec.ch/ functionalsafety/standards/page2.html (дата обращения: 03.05.2016).
14. Development of a Fault Injection-Based Dependability Assessment Methodology for Digital I&C Systems / C. R. Elks [et al.] // Nuclear Regulatory Commission-7151. 2012. Vol. 1. 201 p.
15. Hsueh M. C., Tsai T. K., Iyer R. K. Fault Injection Techniques and Tools // IEEE Computer. 1997. Vol. 30. P. 75-82.
16. Comparison of Physical and Software-Implemented Fault Injection Techniques / J. Arlat [et al.] // IEEE Transactions on Computers. 2003. No. 52. Р. 11151133.
17. Чумаков А. И. Действие космической радиации на ИМС. М. : Радио и связь, 2004. 320 с.
18. Сравнительный анализ испытаний электронной компонентной базы на стойкость к воздействию отдельных ядерных частиц на лазерных имитаторах и ускорителях ионов / А. В. Яненко [и др.] // Спецтехника и связь. 2011. № 4-5. С. 4-7.
19. On the Proposition of an EMI-Based Fault Injection Approach / F. Vargas [et al.] // 11th IEEE International On-Line Testing Symposium. 2005. P. 207-208.
20. Tummeltshammer P., Steininger An. On the Role of the Power Supply as an Entry for Common Cause Faults // 12th International Symposium on Design and Diagnostics of Electronic Circuits & Systems. Liberec, 2009. P. 152-157.
21. Experimental evaluation of the fault tolerance of an atomic multicast system / J. Arlat [et al.] // IEEE transactions on reliability. 1990. Vol. 39, No. 4. P. 455467.
22. RIFLE: A General Purpose Pin-Level Fault Injector / Н. Мadeira [et al.] // Proc. First European Dependable Computing Conference. Berlin, 1994. P. 199216.
23. On Chip Debug [Электронный ресурс]. URL: http://www.asset-intertech.com/Technologies/On-Chip-Debug (дата обращения: 04.05.2016).
24. Fault Injection Experiments Using Fiat / J. H. Barton [et al.] // IEEE Transactions on Computers. 1990. Vol. 39. P. 575-582.
25. Kanawati G. A., Kanawati N. A., Abraham J. A. Ferrari: A Tool for the Validation of System Dependability Properties // 22nd International Symposium on Fault-Tolerant Computing. Boston, 1992. P. 336-344.
26. Kao W. I., Iyer R. K. Define: A Distributed Fault Injection and Monitoring Environment // In Fault-Tolerant Parallel and Distributed Systems / by D. Av-resky, eds. D. Pradhan. IEEE Computer Society, 1995. P. 252-259.
27. Han S., Shin K. G., Rosenberg H. A. Doctor: An Integrated Software Fault Injection Environment for Distributed Real-Time Systems // International Computer Performance and Dependability Symposium. Fort Collins, 1995. P. 204-113.
28. Exhaustif: A Fault Injection Tool for Distributed Heterogeneous Embedded Systems / A. Dasilva [et al.] // Proceedings of the 2007 Euro American Conference on Telematics and Inforamtion Systems. Faro, 2007. P. 17.
29. Hardware and Software Co-Design in space Compaction of Digital Circuits / M. Assaf [et al.] // IEEE Instrumentation Measurement Techniques Conference. 2004. P. 1472-1477.
30. An Improved Fault Simulation Approach Based on Verilog with Application to ISCAS Benchmark Circuits / S. R. Das [et al.] // IEEE Instrumentation and Measurement Technology Conference. 2006. P. 24-27.
31. Simulate anything, chip to system [Электронный ресурс]. URL: http://www.windriver.com/products/simics/ (дата обращения: 05.05.2016).
32. Bastien B., Johnson B. W. A Technique for Performing Fault Injection Using Simics UVA-CSCS-SFI-001 / Charlottesville University of Virginia. Charlottesville, 2004. P. 117.
33. Kwang-Ting C., Shi-Yu H., Wei-Jin D. Fault Emulation: A New Methodology for Fault Grading // IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems. 1999. P. 1487-1495.
34. New Techniques for Efficiently Assessing Reliability of SOCS / P. Civera [et al.] // Microelectronics Journal. 2003. Vol. 34. P. 53-61.
35. Antoni L., Leveugle R., Feher B. Using Run-Time Reconfiguration for Fault Injection Applications // IEEE Transactions on Instrumentation and Measurement. 2003. P. 1468-1473.
36. Fault Emulation for Dependability Evaluation of VLSI Systems / D. D. Andres [et al.] // IEEE Transactions on Very Large Scale Integration (VLSI) Systems. 2008. Vol. 16. P. 422-431.
37. Ejlali A., Miremadi G. Error Propagation Analysis Using FPGA Based SEU-Fault Injection // Microelectronics Reliability. 2008. Vol. 48. P. 319-328.
38. Nftape: A Framework for Assessing Dependability in Distributed Systems with Lightweight Fault Injectors / D. T. Stott [et al.] // IEEE International Computer Performance and Dependability Symposium. 2000. P. 91-100.
39. Simplified: Symbolic Program-Level Fault Injection and Error Detection Framework / K. Pattabiraman [et al.] // IEEE International Conference on Dependable Systems and Networks with FTCS and DCC. 2008. P. 472-481.
40. Bingham S., Lach J. Enhanced Fault Coverage Analysis Using ABVFI // Workshop on Dependable and Secure Nanocomputing, Charlottesville, 2009. P. 6.
41. An Overview of GOOFI-A Generic Object-Oriented Fault Injection Framework / J. Vinter [et al.] // Department of Computer Science and Engineering / Chalmers University of Technology. Gothenburg, 2005. P. 40.
42. Inerte: Integrated Nexus-Based Real-Time Fault Injection Tool for Embedded Systems / P. Yuste [et al.] // International Conference on Dependable Systems and Networks. San Francisco, 2003. P. 669.
43. Exploiting the IEEE 1149.1 Standard for Software Reliability Evaluation in Space Applications / M. Zenha-Rela [et al.] // European Safety and Reliability Conference. Gdansk, 2006. P. 7.
44. Miklo M., Elks C., Williams R. Design of a High Performance FPGA Based Fault Injector for Real-Time Safety-Critical Systems // 22nd IEEE International Conference on Application-specific Systems, Architectures and Processors. 2011. P. 307.
45. Rebaudengo M., Sonza Reorda M. Evaluating the Fault Tolerance Capabilities of Embedded Systems via BDM // 17th IEEE VLSI Test Symposium. 1999. P. 452-457.
46. Fault Injectionbased Reliability Evaluation of SoPCs / M. Sonza Reorda [et al.] // 11th IEEE European Test Symposium. 2006. P. 75-82.
47. Fault Injection Approach for Measuring SEU Sensitivity in Complex Processors / M. Portela-Garcia [et al.] // 13th IEEE International On-Line Testing Symposium, 2007. P. 101-106.
48. Real-time fault injection using enhanced on-chip debug infrastructures / A. Fidalgo [et al.] // Microprocessors and Microsystems. 2011. № 25. P. 441-452.
49. Fidalgo A., Alves G., Ferreira J. A modified debugging infrastructure to assist real time fault injection campaigns // 9th IEEE Workshop on Design & Diagnostics of Electronic Circuits & Systems. 2006. P. 172-177.
50. Fidalgo A., Alves G., Ferreira J. OCD-FI: on-chip debug and fault injection // International Conference on Dependable Systems and Networks. Berlin, 2006. P. 214-219.
51. Gaisler J. LEON3 -FT-RTAX SEU test results // Gaisler Research. Goteborg, 2005. P. 8.
52. Чекмарёв С. А. Способ и система инъекции ошибок для тестирования сбоеустойчивых процессоров бортовых систем космических аппаратов // Вестник СибГАУ. 2014. № 4(56). С. 132-138.
53. Chekmarev S. A., Khanov V. Kh., Antamosh-kin О. А. Modification of Fault Injection Method via On-Chip Debugging for Processor Cores of Systems-On-Chip // International Siberian Conference on Control and Communications. Omsk, 2015. P. 4.
54. Chekmarev S. A., Khanov V. Kh. Fault injection via on-chip debugging in the internal memory of systems-on-chip processor // TIAA2015 IOP Conf. Series: Materials Science and Engineering 94. Omsk, 2015. P. 6.
55. Чекмарёв С. А. Инъектор сбоев для тестирования микропроцессоров типа «система на кристалле»
к одиночным сбоям // Программные продукты и системы. 2015. № 4. С. 121-125.
56. Пат. 161586 Российская Федерация. Система инъекции сбоев / Чекмарёв С. А., Ханов В. Х. Опубл. 2016, Бюл. № 13.
References
1. Maximenko L. S., Melekhin V. F., Filipov A. S. [Analysis of the problem of constructing radiation-resistant information-management systems]. Informat-
sionno-upravlyayushchie sistemy. 2012, No. 2, 8 p. (In Russ).
2. Polesskiy S. N., Zhadnov V. V., Artyukhova M. A. [Ensuring of radiation resistance of spacecraft in the design]. Komponenty i tekhnologii. 2010, No. 9, P. 93-98 (In Russ).
3. Chumakov A. I. [Prediction of the local radiation effects in the IC at influence of space factors]. Mikroelektronika. 2010, No. 2 (39), P. 85-90 (In Russ).
4. Koons H. C., Mazur J. E., Selesnick R. S., Blake J. B., Fennell J. F., Roeder J. L., Anderson P. C. The impact of the space environment on Space systems. 6th Spacecraft Charging Technology Conference. Hanscom, 2000, P. 7-11.
5. Mironenko L. S., Yudintsev V. V. [Enhancement of radiation resistance of integrated circuits. Constructive methods on the basis of industrial technology]. Elektronika: Nauka, tekhnologiya, Biznes. 2012, No. 8, P. 74-87 (In Russ).
6. RHBD Techniques. Available at: http://www. skyflash.eu/project/radhardening/ (accessed: 03.05.2016).
7. Krasnyuk A. A., Petrov K. A. [Peculiarities of application of methods of noiseproof coding in the sub-100-nm memory chips for space systems]. Problemy razrabotki perspektivnykh mikro- i nanoelektronnykh sistem. 2012. P. 638-641 (In Russ). Available at: http://www.mes-conference.ru/data/year2012/pdf/D125.pdf. (accessed: 03.05.2016).
8. Wiseman В. Design and testing of SEU: SEL Immune Memory and Logic Circuits in a Commercial CMOS Process. IEEE Radiation Effects Data Workshop, 1994, P. 51-55.
9. Knudsen, J. E., Clark L. T. An Area and Power Efficient Radiation Hardened by Design Flip-Flop. IEEE TRANSactions on NUCLear SCIence, 2006. Vol. 53. No. 6. Р. 3392-3399.
10. Balasubramanian A., Bhuva B. L., Black J. D., Massengill L.W. RHBD Techniques for Mitigating Effects of Single-Event Hits Using Guard-Gates. IEEE TNS, 2005. Vol. 52. No 6. P. 2531-2535.
11. Blahut R. E. Teoriya i praktika kodov, kontro-liruyushchikh oshibki [Theory and Practice of Error Control Codes]. Moscow, Mir Publ., 1986, 576 p.
12. Arlat J. Fault Injection for the Experimental Validation of Fault-Tolerant Systems. Workshop Fault-Tolerant Systems IEICE. Kyoto, 1992, Р. 33-40.
13. IEC 61508 Functional Safety of Electrical/ Electronic/Programmable Electronic Safety-related Systems. Available at: http://www.iec.ch/functionalsafety/ standards/page2.html (accessed: 03.05.2016).
14. Elks C. R., George N. J., Reynolds M. A., Miklo M., Berger C., Bingham S., Sekhar M., Johnson B. W. Development of a Fault Injection-Based Dependability Assessment Methodology for Digital I&C Systems. Nuclear Regulatory Commission-7151, 2012, Vol. 1, 201 p.
15. Hsueh M. C., Tsai T. K., Iyer R. K. Fault Injection Techniques and Tools. IEEE Computer, 1997. Vol. 30. P. 75-82.
16. Arlat J., Crouzet Y., Karlsson J., Folkesson P., Fuchs E., Leber G. H. Comparison of Physical and Software-Implemented Fault Injection Techniques. IEEE Transactions on Computers, 2003. No. 52. P. 1115-1133.
17. Chumakov A. I. Deystvie kosmicheskoy radiatsii na IMS [The Effect of space radiation on the IC]. Moscow, Radio I Svyaz' Publ., 2004, 320 p.
18. Yanenko A. V., Chumakov A. I., Pechenkin A. A., Savchenkov D. V. [Comparative analysis of tests of electronic component base for resistance to individual nuclear particles on laser simulators and ion accelerators]. Spetstekhnika i svyaz'. 2011. No. 4-5. P. 4-7 (In Russ).
19. Vargas F., Cavalcante D. E., Gatti E., Prestes D., Lupi D. On the Proposition of an EMI-Based Fault Injection Approach. 11th IEEE International On-Line Testing Symposium, 2005. P. 207-208.
20. Tummeltshammer P., Steininger An. On the Role of the Power Supply as an Entry for Common Cause Faults. 12th International Symposium on Design and Diagnostics of Electronic Circuits & Systems. Liberec, 2009. P. 152-157.
21. Arlat J., Aguera M., Crouzet Y., Fabre J. C., Martins E., Powell D. Experimental evaluation of the fault tolerance of an atomic multicast system. IEEE transactions on reliability, 1990. Vol. 39. No. 4. P. 455-467.
22. Madeira H., Rela M., Moreira F., Silva J. RIFLE: A General Purpose Pin-Level Fault Injector. Proc. First European Dependable Computing Conference, Berlin,
1994, P. 199-216.
23. On Chip Debug. Available at: http://www.asset-intertech.com/Technologies/On-Chip-Debug (accessed: 04.05.2016).
24. Barton J. H., Czeck E. W., Segall Z. Z., Siewiorek D. P. Fault Injection Experiments Using Fiat. IEEE Transactions on Computers, 1990. Vol. 39. P. 575-582.
25. Kanawati G. A., Kanawati N. A., Abraham J. A. Ferrari: A Tool for the Validation of System Dependability Properties. 22nd International Symposium on Fault-Tolerant Computing, Boston, 1992, P. 336-344.
26. Kao W. I., Iyer R. K. Define: A Distributed Fault Injection and Monitoring Environment. In Fault-Tolerant Parallel and Distributed Systems, by D. Avresky, eds. D. Pradhan. IEEE Computer Society, 1995. P. 252-259.
27. Han S., Shin K. G., Rosenberg H. A. Doctor: An Integrated Software Fault Injection Environment for Distributed Real-Time Systems. International Computer Performance and Dependability Symposium, Fort Collins,
1995, P. 204-113.
28. Dasilva A., Martinez J. F., Lopez L., Garcia A. B., Redondo L. Exhaustif: A Fault Injection Tool for Distributed Heterogeneous Embedded Systems. Proceedings of the 2007 Euro American Conference on Telematics andInforamtion Systems, Faro, 2007, P. 17.
29. Assaf M., Das S., Petriu E., Lin L., Jin C., Biswas D., Groza V., Sahinoglu M. Hardware and Software Co-Design in space Compaction of Digital Circuits. IEEE Instrumentation Measurement Techniques Conference, 2004. P. 1472-1477.
30. Das S. R., Mukherjee S., Petriu E. M., Assaf M. H., Sahinoglu M., Jone W. B. An Improved Fault Simulation Approach Based on Verilog with Application to ISCAS Benchmark Circuits. IEEE Instrumentation and Measurement Technology Conference, 2006. P. 24-27.
31. Simulate anything, chip to system. Available at: http://www.windriver.com/products/simics/ (accessed: 05.05.2016).
32. Bastien, B., Johnson B. W. A Technique for Performing Fault Injection Using Simics UVA-CSCS-SFI-001. Charlottesville: University of Virginia, Charlottesville, 2004, P. 117.
33. Kwang-Ting C., Shi-Yu H., Wei-Jin D. Fault Emulation: A New Methodology for Fault Grading. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 1999. P. 1487-1495.
34. Civera P., Macchiarulo L., Rebaudengo M., Sonza Reorda M., Violante M. [New Techniques for Efficiently Assessing Reliability of SOCS]. Microelectronics Journal, 2003. Vol. 34. P. 53-61.
35. Antoni L., Leveugle R., Feher B. Using Run-Time Reconfiguration for Fault Injection Applications. IEEE Transactions on Instrumentation and Measurement, 2003. P. 1468-1473.
36. Andres D. D., Ruiz J. C., Gil D., Gil P. Fault Emulation for Dependability Evaluation of VLSI Systems. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 2008. Vol. 16. P. 422-431.
37. Ejlali A., Miremadi G. [Error Propagation Analysis Using FPGA Based SEU-Fault Injection]. Microelectronics Reliability, 2008. Vol. 48. P. 319-328.
38. Stott D. T., Floering B., Burke D., Kalbarczyk Z., Iyer R. K. Nftape: A Framework for Assessing Dependability in Distributed Systems with Lightweight Fault Injectors. IEEE International Computer Performance and Dependability Symposium, 2000. P. 91-100.
39. Pattabiraman K., Nakka N., Kalbarczyk Z., Iyer R. Simplified: Symbolic Program-Level Fault Injection and Error Detection Framework. IEEE International Conference on Dependable Systems and Networks with FTCS and DCC, 2008. P. 472-481.
40. Bingham S., Lach J. Enhanced Fault Coverage Analysis Using ABVFI. Workshop on Dependable and Secure Nanocomputing, Charlottesville, 2009, P. 6.
41. Vinter J., Aidemark J., Skarin D., Barbosa R., Folkesson P., Karlsson J. An Overview of GOOFI-A Generic Object-Oriented Fault Injection Framework. Department of Computer Science and Engineering, Chalmers University of Technology 41296, Gothenburg, 2005. P. 40.
42. Yuste P., DeAndres D., Lemus L., Serrano J., Gil P. Inerte: Integrated Nexus-Based Real-Time Fault Injection Tool for Embedded Systems. International Conference on Dependable Systems and Networks, San Francisco, 2003. P. 669.
43. Zenha-Rela M., Cunha J. C., Santos L. E., Gameiro M., Goncalves P., Alves G., Fidalgo A., Fortuna P.,
Maia R., Henriques L., Costa D. Exploiting the IEEE 1149.1 Standard for Software Reliability Evaluation in Space Applications. European Safety and Reliability Conference, Gdansk, 2006, P. 7.
44. Miklo M., Elks C., Williams R. Design of a High Performance FPGA Based Fault Injector for Real-Time Safety-Critical Systems. 22nd IEEE International Conference on Application-specific Systems, Architectures and Processors, 2011, P. 307.
45. Rebaudengo M., Sonza Reorda M. Evaluating the Fault Tolerance Capabilities of Embedded Systems via BDM. 17th IEEE VLSI Test Symposium, 1999, P. 452-457.
46. Sonza Reorda M., Sterpone L., Violante M., Portela-Garcia M., Lopez-Ongil C., Entrena L. Fault Injectionbased Reliability Evaluation of SoPCs. 11th IEEE European Test Symposium, 2006, P. 75-82.
47. Portela-Garcia M., Lopez-Ongil C., Garcia-Valderas M., Entrena L., Rapid A. Fault Injection Approach for Measuring SEU Sensitivity in Complex Processors. 13th IEEE International On-Line Testing Symposium, 2007, P. 101-106.
48. Fidalgo A., Gerigota M., Alves G., Ferreira J. Real-time fault injection using enhanced on-chip debug infrastructures. Microprocessors and Microsystems, 2011, No. 25, P. 441-452.
49. Fidalgo A., Alves G., Ferreira J. A modified debugging infrastructure to assist real time fault injection campaigns. 9th IEEE Workshop on Design & Diagnostics of Electronic Circuits & Systems, 2006, P. 172-177.
50. Fidalgo A., Alves G., Ferreira J. OCD-FI: on-chip debug and fault injection. International Conference on Dependable Systems and Networks, Berlin, 2006, P. 214-219.
51. Gaisler J. LEON3 -FT-RTAX SEU test results. Gaisler Research, Goteborg, 2005, P. 8.
52. Chekmarev S. A. [Method and system of injection of errors for testing the fault-tolerant processors on-Board systems of the spacecraft]. Vestnik SibGAU. 2014, No. 4(56), P. 132-138 (In Russ).
53. Chekmarev S. A., Khanov V. Kh., Antamosh-kin О. А. Modification of Fault Injection Method via On-Chip Debugging for Processor Cores of Systems-On-Chip. International Siberian Conference on Control and Communications, Omsk, 2015, P. 4.
54. Chekmarev S. A., Khanov V. Kh. Fault injection via on-chip debugging in the internal memory of systems-on-chip processor.TIAA2015 IOP Conf. Series: Materials Science and Engineering 94, Omsk, 2015, P. 6.
55. Chekmarev S. A. [Injector failures for testing microprocessors, system-on-chip to single failures]. Pro-grammnye produkty i sistemy. 2015, No 4, P. 121-125. (In Russ).
56. Chekmarev S. A., Khanov V. Kh. Sistema in''ektsii sboev [Injection system failures]. Patent RF, no. 161586, 2016.
© Чекмарёв С. А., Ханов В. Х., Тимохович А. С., 2016