Метод инжектирования ошибок для оценки надежностных характеристик комбинационных схем

Материал из Модулярная арифметики
Версия от 12:13, 8 июля 2014; DimaT (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Введение

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

Предлагаемый подход инжектирования ошибок при логическом моделировании подразумевает модификацию схемы таким образом, чтобы появилась возможность вносить ошибки в любой узел схемы. Для этого после каждого вентиля в схему необходимо добавить дополнительный элемент, называемый инжектором. Процесс модификации схемы на примере логической функции XOR в базисе И-ИЛИ-НЕ представлен на рисунке:

Fault injection.JPG

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

Типы моделируемых ошибок

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

• Замыкание на питание (stuck at VCC);

• Замыкание на землю (stuck on ground);

• Инверсия сигнала.

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

Тип ошибки

Таблица истинности для инжектора

Название булевой функции инжектора

Замыкание на питание (stuck at VCC);

from_gate

error

out

0

0

0

0

1

1

1

0

1

1

1

1

OR, Логическое ИЛИ

Замыкание на землю (stuck on ground);

from_gate

error

out

0

0

0

0

1

0

1

0

1

1

1

0

Инверсия прямой импликации (больше, детектор 4

Инверсия сигнала

from_gate

error

out

0

0

0

0

1

1

1

0

1

1

1

0

XOR, Сумма по модулю 2, Исключающее ИЛИ

Метод статистического внесения сбоев заключается в использовании метода Монте-Карло [8], что подразумевает проведение многократных экспериментов с различными входными данными с последующей оценкой необходимых параметров отказоустойчивости.

Модели возникновения ошибок

В общем виде, схему для оценки помехоустойчивости можно представить в следующем виде:

Fault injection str.JPG

Пусть входы для моделирования ошибок формируют вектор ошибки: \varepsilon =(e_{1}, e_{2}, e_{3}, ..., e_{n}) , где e_{i}i-ый вход. При e_{i}=1 в схему внедряется ошибка в i-ый вентиль. При e_{i}=0 - ошибки нет.

Шум окружающей среды

При реализации этой стратегии внесения ошибок будем рассматривать ситуацию, когда каждый вентиль имеет некоторую вероятность сбоя. Для удобства эта вероятность фиксируется для всех вентилей схемы, а ошибки происходят независимо. Таким образом, введем некоторый вещественный параметр \gamma \in [0,1], который будет являться характеристикой шума окружающей среды. Тогда элемент e_{i} при каждой подаче входных воздействий с вероятностью \gamma может обратиться в единицу. При таком подходе количество ошибок в схеме, при одной подаче данных, лежит в диапазоне от нуля до общего числа элементов схемы n. Случаи с нулевым вектором ошибки при подсчетах характеристик помехоустойчивости схемы не рассматриваются.

Кратные ошибки

Фиксируется параметр k \in \{0,1,2,...,n\} – кратность ошибки. Вектор \varepsilon при каждой подаче входных воздействий генерируется случайным образом так, чтобы вес его всегда был равен k. Пример векторов для k=2:

(0, 1, 0, 0, 1, 0, 0)

(1, 0, 0, 0, 0, 0, 1)

(0, 0, 0, 1, 1, 0, 0)

(0, 0, 1, 0, 0, 1, 0)


Стресс-тесты для определенных вентилей

Кроме нахождения обобщенных характеристик отказоустойчивости схемы, метод инжектирования ошибок может быть полезен для выявления наиболее уязвимых участков схемы с точки зрения влияния ошибки в конкретном вентиле на общую работоспособность. Эмпирически было установлено существенное различие в уязвимости для разных участков типовых схем. Этот факт привод к идее разработки методов селективной избыточности комбинационных схем. Эффективным методом определения степени уязвимости участка схемы может служить метод инжектирования ошибок с использованием стратегии стресс-теста: - Фиксируется элемент e_{i}, который на всем протяжении тестирования будет равен единице. Остальные элементы вектора \varepsilon обращены в ноль. - Определяется влияние конкретного вентиля (группы вентилей) на корректность работы всей схемы в условиях помех. Селективное добавление избыточности для наиболее уязвимых участков схемы позволит достичь разумного компромисса в надежности функционирования при незначительном увеличении площади микросхемы.

Характеристики помехозащищенности схемы

Для оценки архитектурной устойчивости к сбоям и отказам, а также для оценки эффективности методов исправления ошибок в процессе моделирования необходимо подсчитывать следующие параметры:

- общее количество экспериментов;

- количество корректных значений выхода схемы;

- общее количество внедренных ошибок.

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

Для оценки отказоустойчивости схем с точки зрения исправления ошибок будем рассматривать два параметра. Первый параметр характеризует архитектурную устойчивость к ошибкам и определяется как отношение числа некорректных результатов работы схемы к общему числу инжектированных ошибок:

T_{o}=\frac{I_{cr}}{T_{er}}

где I_{cr} - количество экспериментов с несовпадением результата с эталонным, T_{er} - общее число внедренных ошибок. По сути, этот параметр определяет вероятность того, что внедренная ошибка в схему приведет к искажению работы всей схемы. Второй параметр определяет общую устойчивость схемы к ошибкам и вычисляется как отношение числа корректных результатов работы схемы к общему числу тестов:

A=\frac{C_{r}}{T_{r}}

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

Истинность результата

(0 – результат верный

1 – результат не верный)

Флаг ошибки

Событие

0

0

Ошибка не «проявилась»

0

1

«Ложная тревога»

1

0

Ошибка пропущена

1

1

Ошибка обнаружена

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