Применение конвейеризированных генераторов контрольных кодов для проведения анализа сбоеустойчивости систем на основе ПЛИС тема диссертации и автореферата по ВАК РФ 00.00.00, кандидат наук Ратников Максим Олегович
- Специальность ВАК РФ00.00.00
- Количество страниц 192
Оглавление диссертации кандидат наук Ратников Максим Олегович
Список терминов и сокращений
Введение
Глава 1. Анализ проблемы и обзор методов ее решения
1.1 Причины возникновения неисправностей
1.2 Классификация возможных неисправностей
1.2.1 Сбои
1.2.2 Отказы
1.3 Методы обеспечения сбоеустойчивости
1.3.1 Методы обеспечения сбоеустойчивости, основанные на полном резервировании
1.3.2 Методы горизонтального разбиения систем хранения и обработки данных
1.3.3 Методы вертикального разбиения систем хранения и обработки данных
1.3.4 Методы обеспечения сбоеустойчивости, не требующие полного резервирования
1.4 Выбор лучшего по заданным критериям метода обеспечения
сбоеустойчивости
1.4.1 Аналитический способ выбора
1.4.2 Определение лучшего по заданным критериям способа обеспечения сбоеустойчивости с помощью тестовой системы
1.4.3 Определение лучшего по заданным критериям способа обеспечения сбоеустойчивости с помощью моделирования готовой системы
1.4.4 Определение лучшего по заданным критериям способа обеспечения сбоеустойчивости с помощью тестирования готовой системы
1.5 Особенности архитектуры программируемых логических интегральных схем
1.5.1 Базовый элемент
1.5.2 Архитектурное построение программируемых логических интегральных схем
1.5.3 Связи между блоками
1.6 Радиационно-стойкие программируемые логические интегральные схемы
1.7 Тестирование и специальные тестовые системы, используемые при разработке сбоеустойчивых систем на базе программируемых логических интегральных схем
1.7.1 Этапы разработки, в состав которых входит тестирование программируемых логических интегральных схем
1.7.2 Требования к тестовому описанию и основные подходы к созданию тестовых прошивок
1.7.3 Основные подходы к созданию тестовых прошивок
1.7.4 Определение наиболее эффективной системы обеспечения сбоеустойчивости с помощью тестовой системы
1.8 Определение исходных данных для решения задач исследования
1.9 Выводы по первой главе
Глава 2. Методика тестирования систем на базе программируемых
логических интегральных схем, использующая
конвейеризированные генераторы контрольных кодов
2.1 Конвейерные функции, реализующие действия над полиномами
2.1.1 Описание единой тестовой системы
2.1.2 Методика тестирования
2.1.3 Обработка сбоев тестовой системой
2.1.4 Оценка энергопотребления и теплоотдачи тестовой системы
2.2 Конвейеризированный генератор контрольного кода
2.3 Конвейеризированный генератор хэш-кода
2.4 Тестовая система на основе конвейеризированного генератора кода Хэмминга
2.4.1 Особенности тестовых систем на основе конвейеризированных генераторов самокорректирующихся контрольных кодов
2.4.2 Реализация тестовой системы на основе кода Хэмминга
2.5 Выводы по второй главе
Глава 3. Методика выбора аппаратной платформы и архитектурных
методов обеспечения сбоеустойчивости систем на базе программируемых логических интегральных схем, использующая конвейеризированные генераторы контрольных кодов. Предварительный этап
3.1 Методика выбора аппаратной платформы и архитектурных методов обеспечения сбоеустойчивости
3.1.1 Основные преимущества
3.1.2 Требования, предъявляемые к тестовой системе
3.1.3 Оценка временных характеристик
3.2 Применение методики
3.2.1 Исходные данные
3.2.2 Оценка аппаратных затрат
3.2.3 Оценка временных характеристик систем
3.3 Выводы по третьей главе
Глава 4. Методика выбора аппаратной платформы и архитектурных
методов обеспечения сбоеустойчивости систем на базе программируемых логических интегральных схем, использующая конвейеризированные генераторы
контрольных кодов. Основной этап
4.1 Основные направления при проведении анализа
4.2 Алгоритм анализа эффективности системы по критериям ее сбоеустойчивости и реализуемости
4.3 Получение исходных данных для определения частоты единичных сбоев на микросхему
4.4 Сравнение систем обеспечения сбоеустойчивости
4.4.1 Незащищенная система
4.4.2 Система с защитой на основе поблочного мажорирования
4.4.3 Система с защитой на основе кода Хэмминга
4.4.4 Система с защитой на основе полносистемного мажорирования
4.4.5 Сравнение систем
4.5 Применение конвейеризированных генераторов контрольных кодов для проведения анализа методов обеспечения сбоеустойчивости
4.5.1 Анализируемые ресурсы микросхемы
4.5.2 Стойкость микросхем к воздействию одиночных сбоев
4.6 Тестовая система на базе контрольного кода
4.6.1 Вероятность появления непарируемого сбоя в тестовых системах, реализованных в базисе программируемой логической интегральной схемы Actel (Microsemi)
4.6.2 Вероятность появления непарируемого сбоя в тестовых системах, реализованных в базисе программируемой логической интегральной схемы Xilinx (AMD)
4.6.3 Вероятность появления непарируемого сбоя в тестовых системах, реализованных в базисе программируемой логической интегральной схемы Altera (Intel)
4.7 Тестовая система на базе хэш-кода
4.7.1 Вероятность появления непарируемого сбоя в тестовых системах,
реализованных в базисе программируемой логической интегральной схемы Actel (Microsemi)
4.7.2 Вероятность появления непарируемого сбоя в тестовых системах, реализованных в базисе программируемой логической
интегральной схемы Xilinx (AMD)
4.7.3 Вероятность появления непарируемого сбоя в тестовых системах, реализованных в базисе программируемой логической интегральной схемы Altera (Intel)
4.8 Сравнение рассмотренных систем
4.8.1 Выполнение граничных условий
4.8.2 Итоговая таблица
4.8.3 Результат сравнения
4.9 Тестирование разработанных систем
4.9.1 Тестирование в симуляторе функциональных описаний
4.9.2 Тестирование на физическом устройстве
4.10 Оценка эффективности предложенной методики
4.11 Выводы по четвертой главе
Общие выводы и заключение
Список литературы
Приложение 1. Таблицы экспериментальных и исходных данных
Приложение 2. Акты внедрения
СПИСОК ТЕРМИНОВ И СОКРАЩЕНИЙ
ALM (англ. adaptive logic module, адаптивный логический модуль) -базовый блок в ПЛИС Altera (с 2016 года Intel) семейств Arria II, Arria V; Cyclone II-V, Stratix II-V. Каждый ALM включает, в зависимости от поколения, до восьми входов и до восьми выходов, 1-7-входовые логические функции и регистры.
ASIC (англ. application-specific integrated circuit, интегральная схема специального назначения) - интегральная схема, специализированная для решения конкретной задачи. В настоящее время под термином подразумевается микросхема, полностью изготовленная на фабрике по заказу потребителя. В отличие от ПЛИС, потребитель не может вносить изменения в функциональность микросхемы.
CLB (англ. configurable logic block, конфигурируемые логический блок) -базовый элемент ПЛИС. В зависимости от серии, ПЛИС может значительно отличаться по размерам, количеству входов-выходов и функциональности.
CPU - (англ. central processing unit, центральное процессорное устройство) - основной вычислительный блок вычислительной системы.
CRC (англ. cyclic redundancy check, циклический избыточный код) -алгоритм нахождения контрольной суммы, предназначенный для проверки целостности данных.
DSP (англ. digital signal processor, цифровой процессор обработки сигналов) - специализированный микропроцессор (или ядро микропроцессора), предназначенный для обработки оцифрованных сигналов (обычно в режиме реального времени).
FPGA (англ. field-programmable gate array, программируемый пользователем массив гейтов) - см. ПЛИС.
HDL (англ. hardware description language, язык описания аппаратного обеспечения) - семейство языков программирования, предназначенных для функционального описания и верификации аппаратного обеспечения
вычислительных систем. Наиболее распространенными HDL в настоящее время являются: Verilog, SystemVerilog, VHDL.
IEEE (англ. Institute of Electrical and Electronics Engineers, Институт инженеров электротехники и электроники) - международная некоммерческая ассоциация специалистов в области техники, мировой лидер в разработке стандартов по радиоэлектронике, электротехнике и аппаратному обеспечению вычислительных систем и сетей.
IO (англ. input-output, вход-выход) - входы и выходы микросхемы, предназначенные для обмена данными с другими устройствами.
JTAG (англ. Joint Test Action Group, Объединенная группа Института инженеров электротехники и электроники по тестированию) - название рабочей группы по разработке интерфейса стандарта IEEE 1149. Интерфейс предназначен для подключения сложных цифровых микросхем или устройств уровня печатной платы к стандартной аппаратуре тестирования и отладки.
LC (англ. logic cell, логическая ячейка) - базовый элемент ПЛИС Xilinx (AMD). В зависимости от семейства содержит 1-8-входовые логические функции, 2-4 выхода, 1-2 запоминающие ячейки.
LUT (англ. lookup table, таблица истинности) - в ПЛИС обычно статическое ОЗУ с записанной в него таблицей истинности; после подачи на входы элемента очередного значения на выход выдается значение, соответствующее значению логической функции.
MBIST (англ. memory built-in-self-test, встроенный самоконтроль памяти) - встроенные аппаратные и / или программные средства самотестирования блоков памяти вычислительной системы.
MD4 (англ. message digest, дайджест сообщения) - криптографическая хеш-функция, разработанная профессором Массачусетского университета Рональдом Ривестом в 1990 году и впервые описанная в RFC 1186. Для произвольного входного сообщения функция генерирует 128-разрядное хеш-значение, называемое дайджестом сообщения.
NMR (англ. N-fold modular redundancy, N-кратная модульная избыточность) - способ повышения надежности путем добавления к данным N-кратной избыточной информации, чтобы обеспечить возможность обнаружения и исправления ошибок.
PLL (англ. phase-locked loop, фазовая автоподстройка частоты (ФАПЧ)) -специальный генератор со схемой подстройки частоты.
SRAM (англ. static random access memory, статическая память с произвольным доступом) - полупроводниковая статическая оперативная память.
TMR (англ. triple modular redundancy, трехкратная избыточность) - форма N-модульной избыточности, при которой три системы выполняют процесс, а результат обрабатывается для получения единого выходного сигнала; в случае отказа любой из трёх систем две другие могут исправить и замаскировать сбой.
АБГШ (аддитивный белый гауссовский шум) - вид мешающего воздействия в канале передачи информации; характеризуется равномерной спектральной плотностью, нормально распределенным значением амплитуды и аддитивным способом воздействия на сигнал.
АЛУ - арифметико-логическое устройство.
АС - автоматизированная система.
БМК (базовый матричный кристалл; англ. Uncommitted Logic Array (ULA), нескоммутированная логическая матрица; иногда «полузаказная микросхема») -технология производства микросхем, при которой программирование для решения задач заказчика производится технологически, путем нанесения последнего слоя металлизации.
БЧХ (коды Боуза-Чоудхури-Хоквингема) - класс циклических кодов, применяемых для защиты информации от ошибок; отличается возможностью построения кода с заранее определенными корректирующими свойствами.
ЗУ - запоминающее устройство.
ИС - интегральная схема.
КА - космический аппарат.
Нетлист (англ. netlist, список соединений) - при проектировании ИС: список соединений - текстовое представление информации о соединении элементов (обычно блоки памяти и библиотечные элементы) интегральной схемы.
ОЗУ - оперативное запоминающее устройство.
Отказ - событие, заключающееся в нарушении работоспособности объекта; для возобновления корректной работы объекта отказ должен быть устранен.
ПЛИС (программируемая логическая интегральная схема; англ. programmable logic device (PLD), программируемое логическое устройство; field programmable gate array (FPGA), логическая матрица, программируемая пользователем) - электронный компонент (интегральная микросхема), используемый для создания конфигурируемых цифровых электронных схем. В отличие от полностью заказных (ASIC) или «полузаказных» (БМК) цифровых микросхем, конфигурация (логика работы) ПЛИС задается посредством программирования пользователем, а не при изготовлении. Большинство ПЛИС допускают многократное программирование (переконфигурацию).
Прошивка - двоичный файл, предназначенный для конфигурации ПЛИС, полученный в результате выполнения синтеза и трассировки функционального описания системы. Тестовая прошивка - конфигурационный файл, полученный из тестового функционального описания и предназначенный только для выполнения определенного теста или группы тестов. Целевая прошивка -конфигурационный файл, полученный из целевого функционального описания и предназначенный для обеспечения выполнения всех требований, предъявляемых к разрабатываемой системе.
РС (коды Рида-Соломона) - коды Рида-Соломона можно интерпретировать как недвоичные коды Боуза-Чоудхури-Хоквингема (см. БЧХ).
СБИС (сверхбольшая интегральная схема) - микросхема, включающая свыше 10 тысяч элементов.
Сбой - кратковременное самоустраняющееся нарушение нормального функционирования системы; для продолжения корректной работы достаточно восстановить достоверность информации. Иногда о сбое говорят, как о частном случае отказа, соответственно, кратковременном и самоустраняющемся.
Тестовая система - специализированная система, имплементированная в данный аппаратный базис, которая позволяет имитировать те или иные аспекты работы целевой системы и проверить работоспособность аппаратного обеспечения.
ТЗ - техническое задание.
ТЗЧ - тяжелая заряженная частица.
Целевая система - система, функциональность которой полностью соответствует ТЗ (техническому заданию).
Рекомендованный список диссертаций по специальности «Другие cпециальности», 00.00.00 шифр ВАК
Методы и алгоритмы повышения отказоустойчивости программируемых логических интегральных схем на основе КМОП элементов с избыточным базисом2013 год, кандидат технических наук Громов, Олег Александрович
Исследование методов функционального тестирования ПЛИС с оптимизацией трафика данных при верификации2025 год, кандидат наук Горчакова Мария Алексеевна
Исследование и разработка сбоеустойчивых устройств бимодульной модулярной арифметики2014 год, кандидат наук Балака, Екатерина Станиславовна
Методы и средства автоматизации проектирования сбоеустойчивых комбинационных схем2018 год, доктор наук Тельпухов Дмитрий Владимирович
Метод инъектирования сбоев для тестирования сбоеустойчивых микропроцессоров типа система на кристалле2015 год, кандидат наук Чекмарев Сергей Анатольевич
Введение диссертации (часть автореферата) на тему «Применение конвейеризированных генераторов контрольных кодов для проведения анализа сбоеустойчивости систем на основе ПЛИС»
ВВЕДЕНИЕ
Актуальность. Разработка электронных цифровых устройств, предназначенных для использования в космических аппаратах, имеет ряд особенностей, связанных с требованиями, предъявляемыми областью их применения и эксплуатации. Примерами таких требований являются:
- обеспечение надежности и сбоеустойчивости в процессе работы;
- сохранение работоспособности при неблагоприятных условиях;
- минимизация энергопотребления и др.
В настоящее время решение таких ключевых задач, как навигация и ориентация в пространстве, обработка поступающих данных, обеспечение двусторонней связи, управление ресурсами аппарата и т. д. обеспечивается системами на базе интегральных микросхем. Выбор типа интегральных микросхем, который удовлетворял бы всем условиям, крайне сложен. Сейчас широко используются следующие типы микросхем: СБИС (заказные микросхемы, ASICs), БМК (базовые матричные кристаллы, ULAs), ПЛИС (программируемые логические интегральные схемы, FPGAs). Все эти микросхемы имеют как преимущества, так и недостатки. Так, например, СБИС обладают хорошими динамическими характеристиками; в зависимости от используемой технологии могут обеспечить высокую надежность, а также обеспечивают высокую эффективную плотность размещения элементов (т. е. предоставляют большее количество аппаратных ресурсов, доступных пользователю, по сравнению с конкурентами), но дороги в разработке, а также имеют длительный цикл производства. БМК являются более дешевыми в производстве микросхемами, чем СБИС, но также не позволяют быстро создавать прототипы и вносить в них изменения. ПЛИС имеют меньшую цену (для малосерийных устройств разница в цене между разработкой специализированной СБИС и системы на базе ПЛИС может отличаться на несколько порядков), более распространены, легко реконфигурируются, позволяют вносить изменения в схему непосредственно на отладочном стенде. Эти качества делают данный тип микросхем крайне перспективным для
использования в космических и высотных аппаратах, а также других областях промышленности, связанных с производством единичных или мелкосерийных устройств с большим количеством разнородных компонентов. Пример сравнения различных типов микросхем приведен в работе В. Энса [1].
Оценке эффективности применения, оценке надежности и сбоеустойчивости ПЛИС для использования в аэрокосмической области и в других областях, связанных с работой в условиях повышенного радиационного воздействия, посвящено множество работ, например: [2] (методика и оценка ряда ПЛИС); [3, 4] (оценка для проекта "Alice"; продолжительность рабочего времени аппарата в космосе 5-10 лет); [5] (оценка сбоеустойчивости СнК на ПЛИС); [6] (оценка применимости SRAM ПЛИС и методы обеспечения сбоеустойчивости в системе для использования на борту КА с продолжительностью полета 5 лет); [7, 8] (обзор методик).
Основным недостатком ПЛИС (по сравнению с ASICs или БМК) можно назвать более низкую надежность и сбоеустойчивость. Поэтому при использовании ПЛИС для решения задач с высокими требованиями к сбое- и отказоустойчивости необходимо уделять особое внимание обеспечению корректной работы системы в различных условиях. Проводимые исследования затрагивают все этапы жизненного цикла системы, основанной на ПЛИС. Так, например, работы таких исследователей, как J. Podivinsky [5], L. D. van Harten [6], J. J. Wang [9], C. Bernardeschi [10], P. R. Villa [11], Д. В. Тельпухов [12], посвящены оценке вероятности появления сбоев в ПЛИС, созданию методики расчета появления этих сбоев, оценке различных подходов к обеспечению сбоеустойчивости. За последние несколько лет начало активно развиваться направление, связанное с исследованием надежности устройств на базе ПЛИС с применением систем искусственного интеллекта; например, система CAD_Combinational_Circuits [13, 14]. Крайне актуальной является задача обнаружения сбоя (и / или ошибки в работе устройства) и места его возникновения, что показано, например в работах [15, 16, 17]. Парировать отказ можно за счет использования аппаратной избыточности, перезагрузки
устройства или реконфигурации. В работах [18, 19, 20, 21] предложены методики, которые позволяют выполнить реконфигурацию микросхемы после обнаружения сбоя или отказа.
Меры, применяемые для повышения сбое- и отказоустойчивости микросхем, можно разделить на две основные группы: схемотехнические (технологические) и архитектурные. В работе не будут специально рассматриваться технологические методы обеспечения сбоеустойчивости (подобные описанным в [22, 23, 24, 25, 26] и др.), так как ПЛИС являются готовыми серийными устройствами, для которых пользователь не может выбирать технологию производства или используемую библиотеку элементов [27]. Доступные технологические методы обеспечения сбоеустойчивости ограничиваются тем процессом разработки, который задал производитель ПЛИС. Также не будут рассматривать способы увеличения сбоеустойчивости, не связанные непосредственно со структурой разрабатываемых систем, т. е. такие средства, как специальные конструкции корпусов, а также элементы, поглощающие и снижающие негативные внешние воздействия, описанные, например, в работах [28, 29, 30].
К архитектурным способам обеспечения сбоеустойчивости относят введение аппаратной или временной избыточности, обеспечивающей обнаружение и исправление сбоев [11, 31] (введение поэлементной или поблочной многоканальности; использование в элементах хранения информации кодов, обнаруживающих и исправляющих ошибки; сверточные коды). Данные методы могут применяться как для обнаружения и исправления сбоев во входных данных (как, например, описано в работах [32, 33]), так и для обнаружения и исправления сбоев внутри ПЛИС [15, 16, 34, 35]. Актуальной является и задача выбора лучшего (согласно заданным критериям) метода обеспечения сбоеустойчивости для разрабатываемой системы с учетом условий, в которых она будет эксплуатироваться. Решение этой задачи часто усложняется тем, что оно должно быть выполнено на раннем этапе разработки устройства -до того, как будет завершена разработка функциональной нагрузки ПЛИС.
Предлагаемые в настоящее время методики основываются на разработке специализированной тестовой системы и использовании специального программного обеспечения для проведения анализа [2, 36, 37].
Следует также отметить, что во время разработки устройства на базе ПЛИС, возникает ряд задач, связанных с тестированием самой ПЛИС и ее функционального окружения [38, 39]. Современные методики тестирования обычно предполагают создание ряда тестовых функциональных описаний для конфигурирования ПЛИС, каждое из которых задействуется на своем этапе с использованием внешнего программно-аппаратного комплекса для онлайн- или офлайн-проверки. Онлайн проверка - это проверка (во время работы) устройства с целевой прошивкой [40]. Оффлайн проверка связана с установкой микросхемы в специальное устройство. При этом используются тестовые прошивки ПЛИС, специализированные для каждой группы тестов. Это усложняет и увеличивает длительность процесса разработки устройства. Актуальные в настоящее время подходы к разработке тестовых систем имеют ряд недостатков, связанных, например, с масштабируемостью системы и обнаружением сбоев.
Разработка лишенной указанных недостатков единой тестовой системы, как для тестирования ПЛИС, так и для проведения сравнения методов обеспечения сбоеустойчивости, позволит сокращать время разработки устройства, а также определять уже на ранних этапах наиболее эффективный подход к обеспечению сбоеустойчивости. Исходя из требований, предъявляемых к такого рода системам, наиболее эффективным представляется использование в качестве основы для их разработки конвейеризированных алгоритмов генерации контрольных и хэш-кодов [41, 42, 43].
Объект исследования - программируемые логические интегральные схемы (ПЛИС). Предмет исследования - методика тестирования и выбора архитектурных решений сбоеустойчивости ПЛИС, основанная на использовании конвейеризированных генераторов контрольных кодов.
Цель диссертационной работы состоит в создании и апробации единой методики тестирования и выбора архитектурных решений сбоеустойчивости
ПЛИС, основанной на использовании конвейеризированных генераторов контрольных кодов.
Задачи диссертационной работы. Для достижения поставленной цели были решены следующие основные задачи:
1. Проведение анализа существующих способов обеспечения сбоеустойчивости и определение требований к разрабатываемой методике.
2. Разработка методики выбора аппаратной платформы и архитектурных методов обеспечения сбоеустойчивости систем на базе ПЛИС.
3. Разработка методики тестирования ПЛИС и их окружения.
4. Разработка единой методики тестирования ПЛИС и выбора аппаратной платформы ПЛИС.
5. Апробация единой методики разработки ПЛИС.
Методы исследования. Для решения поставленных задач были использованы методы теории вероятностей, теории графов, аналитического исследования, имитационного моделирования, разработки функциональных моделей тестовых систем и программного обеспечения для обработки результатов моделирования.
Научные результаты и их новизна. В диссертационной работе получены и обоснованы следующие результаты.
1. На основе изучения современных тестовых систем и методов их построения предложен метод создания единой тестовой системы, основанной на генераторе контрольного кода. В отличие от ранее известных систем предложенный метод позволяет провести тестирование микросхемы, а также отработать и проверить решения, связанные с выбором архитектуры и аппаратной платформы разрабатываемой системы, на ранних этапах разработки, до окончания разработки целевого функционального описания. Особенностью тестовых систем, основанных на генераторе контрольного кода, является простота разработки и возможность выбора контрольного кода для достижения характеристик, максимально близких к характеристикам целевой системы.
2. Разработана методика выбора аппаратной платформы и архитектурных методов обеспечения сбоеустойчивости систем на базе ПЛИС, использующая единую тестовую системы, основанную на генераторе контрольного кода. Данная методика позволяет выполнять оценку изменения основных характеристик системы, основанной на ПЛИС, в результате имплементации различных методов обеспечения надежности с учетом особенностей всех доступных аппаратных платформ и выбирать наиболее подходящие по характеристикам.
3. Разработана методика тестирования ПЛИС и их окружения, использующая единую тестовую систему, основанную на генераторе контрольного кода. Данная методика позволяет проверить работу ПЛИС, ее системного окружения (подсистема питания, каналы ввода-вывода данных, генераторы глобальных сигналов и т. д.) с использованием разработанной ранее тестовой системы для выбора аппаратной платформы, а также инструментального программного обеспечения, используемого в процессе создания конфигурационного файла ПЛИС.
Соответствие диссертации паспорту научной специальности. Проблематика диссертации и полученные в ней результаты полностью соответствуют выбранной специальности 2.3.2 - «Вычислительные системы и их элементы» по пунктам 3 («Разработка научных подходов, методов, алгоритмов и программ, обеспечивающих надежность, сбое- и отказоустойчивость, контроль и диагностику функционирования вычислительных систем и их элементов», 4 («Теоретический анализ и экспериментальное исследование функционирования вычислительных систем и их элементов в нормальных и экстремальных условиях с целью улучшения их технико-экономических и эксплуатационных характеристик») и 6 («Разработка научных подходов и методов, архитектурных и структурных решений, обеспечивающих эффективную техническую реализацию аппаратно-программных систем и комплексов за счет оптимизации применяемой электронной компонентной базы, элементов вычислительных
систем и встраиваемого программного обеспечения») паспорта научной специальности.
Теоретическая и практическая значимость результатов работы. В
диссертационной работе получены и обоснованы следующие результаты:
1. разработана и прошла апробацию единая методика тестирования ПЛИС, которая позволяет подтверждать и уточнять характеристики сбоеустойчивых систем ПЛИС, увеличивать скорость и эффективность процессов верификации и тестирования до завершения разработки целевого функционального описания;
2. разработаны и прошли апробацию тестовые системы на основе конвейеризированных генераторов CRC и MD4;
3. полученные в диссертационной работе результаты были внедрены в производственную и научно-исследовательскую деятельность компании АО «Крафтвэй», ООО «ПК АКВАРИУС» и федерального государственного бюджетного образовательного учреждения высшего образования «Московский авиационный институт (национальный исследовательский университет)».
Основные положения, выносимые на защиту:
1. Метод создания единой тестовой системы ПЛИС и выбора аппаратной платформы ПЛИС на основе конвейеризированных генераторов контрольных кодов.
2. Методика выбора аппаратной платформы и архитектурных методов обеспечения сбоеустойчивости систем на базе ПЛИС с использованием единой тестовой системы.
3. Единая тестовая система ПЛИС, созданная на основе применения конвейеризированных генераторов контрольных кодов.
4. Методика тестирования ПЛИС и их окружения с использованием единой тестовой системы.
Апробация работы. Результаты диссертационной работы докладывались и обсуждались на следующих научно-технических конференциях: «Научно-практическая конференция студентов и молодых ученых МАИ 2010», г. Москва, 2010 г.; 18-я Международная конференция «Авиация и космонавтика»,
г. Москва, 2019 г.; 19-я Международная конференция «Авиация и космонавтика», г. Москва, 2020 г.
Публикации и личный вклад автора. Все теоретические и практические результаты получены автором лично, включая функциональные описания и программы, использованные для тестирования разработанных систем и для анализа результатов. По материалам диссертационной работы опубликовано 5 научных статей общим объемом 5,3 п. л., в том числе 2 статьи в изданиях из списка, рекомендованного ВАК РФ, и 3 статьи в изданиях, индексируемых в наукометрической базе данных Scopus.
Достоверность полученных результатов. Достоверность подтверждена теоретическими выкладками и результатами практического применения.
Объем и структура диссертационной работы. Диссертационная работа состоит из четырех глав, введения, заключения и приложения. Полный объем диссертации составляет 192 страницы, включая 34 рисунка и 31 таблицу; объем приложения - 30 страниц. Список литературы включает 157 наименований.
Во введении показана актуальность ПЛИС как основы для разработки сбоеустойчивых вычислительных систем, обоснована актуальность темы тестирования таких систем и выбора обладающего лучшими показателями по заданным критериям метода обеспечения сбоеустойчивости. Далее сформулированы цель и задачи исследования, указаны методы исследования, а также раскрыта научная новизна, теоретическая и практическая значимость работы, представлены положения, выносимые на защиту.
В первой главе приведена классификация возможных неисправностей и нарушений работы систем, предназначенных для использования в условиях неблагоприятных внешних воздействиях, а также описаны различные подходы к обеспечению сбоеустойчивости. Затем приводятся наиболее распространенные архитектурные методы обеспечения сбоеустойчивости и примеры тестовых систем, используемых для проверки микросхем. Рассмотрены наиболее распространенные современные ПЛИС, используемые для реализации необслуживаемых систем хранения и обработки данных. Приводятся технологии
и архитектуры базовых элементов ПЛИС, разработанных фирмами: Actel (Microsemi), Altera (Intel), Xilinx (AMD). Также рассмотрены архитектура и характеристики ПЛИС и показаны особенности разработки сбоеустойчивых систем на их основе.
Во второй главе проанализированы существующие способы проверки ПЛИС и их окружения; сформулированы требования к единой методике тестирования и выбора архитектурных методов обеспечения сбоеустойчивости; предложена методика тестирования ПЛИС с помощью конвейеризированных генераторов контрольных кодов и продемонстрировано ее применение на основе генераторов CRC, MD4 и кода Хэмминга.
В третьей главе предложена методика выбора аппаратной платформы и архитектурных методов обеспечения сбоеустойчивости систем на базе ПЛИС, основанная на применении конвейеризированных генераторов контрольных кодов. Подробно рассмотрен первый (предварительный) этап и проведена его апробация с использованием специализированных тестовых систем на основе конвейеризированных генераторов CRC и MD4.
В четвертой главе предложен и апробирован второй этап методики выбора аппаратной платформы и архитектурных методов обеспечения сбоеустойчивости систем на базе ПЛИС, основанной на применении конвейеризированных генераторов контрольных кодов.
Благодарность. Автор выражает глубокую признательность своему научному руководителю - Брехову О. М.
ГЛАВА 1 АНАЛИЗ ПРОБЛЕМЫ И ОБЗОР МЕТОДОВ ЕЕ РЕШЕНИЯ
Прежде чем перейти к вопросу способов сравнения методов обеспечения сбоеустойчивости систем, основанных на ПЛИС, необходимо ввести понятия сбоя и отказа, а также рассмотреть их типы и причины возникновения. Отказ -это событие, состоящее в нарушении работоспособного состояния объекта. Сбой - самоустраняющийся отказ или однократный отказ, устраняемый незначительным вмешательством оператора [44].
1.1 Причины возникновения неисправностей
В данной работе рассматриваются только неисправности, вызванные внешними факторами. Основную опасность для интегральных схем, работающих в космосе, представляют излучение Солнца, радиационный пояс заряженных частиц Земли [45, 46], воздействие температуры, а также электрической энергии (статического электричества и нарушения электропитания) [47]. Борьба с воздействием тепловой и электрической энергии относится к области технологических и конструктивных мер, поэтому могут потребоваться не только технологические и конструктивные меры, но и архитектурные. Воздействие радиации может привести к двум типам эффектов: таким, что вызваны общей накопленной дозой радиации, и эффектам одиночных сбоев [48, 49, 50]. Классификация радиационных эффектов приведена на
Рис. 1.1.
Общая накопленная доза. Эффекты, вызванные общей накопленной дозой, выражаются обычно в виде повышения энергопотребления, деградации уровней входных логических сигналов и увеличения задержек в микросхеме. В итоге накопление дозы может привести к полной неработоспособности схемы.
Рис. 1.1. Радиационные эффекты, воздействующие на ПЛИС
К кратковременным относятся два типа эффектов: одиночный сбой (изменение состояния триггера или ячейки памяти) и возникновение переходного процесса (иголки) на выходе комбинаторной логики; а также специальные случаи, выделяющиеся по своему воздействию на схему целиком.
К потенциально катастрофическим относится тиристорный эффект (защелкивание) - состояние защелки тока высокой плотности, вызванное индукцией тока от прохождения частицы. В отдельных случаях этот эффект может привести не только к локальным отказам, но и к выходу из строя ПЛИС целиком.
К катастрофическим отказам относятся такие отказы, как пробой диэлектрика и замыкание сигнальных цепей внутри микросхемы [48].
1.2 Классификация возможных неисправностей
Приведем классификацию возможных типов сбоев и отказов.
1.2.1 Сбои
Все множество сбоев, которые могут произойти в процессе работы системы, можно разделить на три основные категории:
- однократные сбои;
- сохраняемые сбои;
- накапливающиеся сбои.
Однократный сбой не влияет на дальнейшую работу системы после окончания обработки того блока данных, во время которой он произошел. Подобные сбои можно наблюдать в системах конвейерного типа, в которых в процессе обработки очередного отсчета происходит сбой в потоке входных или промежуточных данных; или в тех случаях, когда вычисленные промежуточные данные используются однократно.
Сохраняемый сбой после появления в системе будет сохранен в каком-либо регистре системы и далее, в процессе работы, может привести к получению искаженных выходных значений. Отличием сохраняемого сбоя от однократного является длительность негативного эффекта и то, что моменты появления сбоя в системе и появления негативного эффекта от него могут отстоять друг от друга на длительное время.
Накапливающиеся сбои появляются в системах, в которых последующие результаты зависят от значений, полученных на предыдущем этапе обработки данных. В таких системах (после появления сбоя) все последующие результаты будут искажены. В отдельных случаях накапливающийся сбой может вывести из строя систему на неопределенное время. Принципиальным отличием накапливающего сбоя от отказа является возможность восстановления работоспособности системы после ее перезагрузки или повторной конфигурации.
Действия после обнаружения сбоя. Подход к восстановлению работы системы зависит от типа сбоя. После того как сбой будет обнаружен, необходимо
определить тип сбоя и (в зависимости от конкретной системы) выбрать способ восстановления.
Однократные сбои могут быть исправлены в результате применения аппаратной и / или временной избыточности. В ряде случаев однократные сбои могут не требовать восстановления.
Сохраняемые сбои являются весьма сложными для обнаружения вплоть до того момента, пока они не перейдут в состояние одиночных или накапливающихся сбоев.
Для предотвращения возможных негативных последствий от возникновения сохраняемых сбоев можно воспользоваться одним из трех подходов:
- использовать трехкратное резервирование с мажорированием и обратной связью всех элементов памяти;
- обеспечивать периодическую перезапись всех регистров, данные в которых хранятся длительное время;
- использовать для запоминающих устройств коды, обнаруживающие и / или исправляющие ошибки (для восстановления данных нужна цепь обратной связи и логика обеспечения возможности перезаписи значения в регистре).
Определение накапливающихся сбоев также требует введения избыточности (аппаратной или временной). Для восстановления системы после таких сбоев нужно или наличие горячего резерва, или приостановка работы системы, что не всегда допустимо. Дополнительная сложность при возникновении накапливающихся сбоев возникает по причине их схожести для наблюдателя с отказами. В этом случае система обеспечения сбоеустойчивости может ошибочно признать данную вычислительную систему (данный канал вычислительной системы) неработоспособной по причине отказа.
1.2.2 Отказы
Также, как и сбои, отказы делятся на:
- локальные отказы (потенциально исправимые), которые могут быть исправлены за счет наличия избыточности или продолжения работы с ограниченной функциональностью (в этом случае могут быть запрещены отдельные режимы работы устройства или выключены некоторые блоки);
- неисправимые отказы, которые связаны с отказом значительных частей вычислительной системы и могут быть исправлены только в результате ввода в действие следующего канала обработки.
1.3 Методы обеспечения сбоеустойчивости
Необходимо рассмотреть классические методы обеспечения сбоеустойчивости, описанные в справочниках, выпущенных как в РФ, так и за ее пределами, а также произвести их классификацию по типам и подходам к обеспечению сбоеустойчивости. Различные методы обеспечения сбоеустойчивости ПЛИС рассмотрены в работах [8, 51, 52, 53]. Это позволяет сформулировать основные требования и ограничения для вычислительных систем, в которых необходимо использовать дополнительные методы обеспечения сбоеустойчивости.
1.3.1 Методы обеспечения сбоеустойчивости, основанные на полном резервировании
Единица резервирования - это минимальный блок аппаратного обозначения, к которому применяются методы обеспечения сбоеустойчивости (устанавливается система выявления сбоев и / или применяется полная
аппаратная избыточность). В зависимости от выбора единицы резервирования и количества каналов резервирования можно выделить следующие типы систем:
- системы с полным резервированием;
- системы с частичным резервированием.
Системы с полным резервированием предполагают, что в качестве единицы резервирования (или единицы обеспечения сбоеустойчивости) выбирается достаточно крупный блок разрабатываемой системы, часто полнофункциональный. Данный блок инстанцируется в систему в нескольких экземплярах, работающих параллельно и в каждый момент времени находящихся в режиме холодного или горячего резерва. Для обеспечения синхронизации между блоками управления резервом и анализа полученных данных в систему вносится дополнительная логика.
Типы разбиения. Для описания характеристик различных методов обеспечения сбоеустойчивости, связанных с использованием аппаратной избыточности в виде нескольких аналогичных каналов обработки, можно выделить следующие критерии:
Похожие диссертационные работы по специальности «Другие cпециальности», 00.00.00 шифр ВАК
Исследование и разработка КМОП цифровых трактов приема и обработки цифровых радиосигналов повышенной стойкости к воздействию одиночных ядерных частиц2021 год, кандидат наук Фатеев Иван Александрович
Методика формирования моделей цифровых устройств в САПР ПЛИС2004 год, кандидат технических наук Лобачев, Глеб Александрович
Критические элементы сбоеустойчивых цифровых комплементарных металл-оксид-полупроводниковых интегральных схем с проектными нормами уровня 65 нм2022 год, кандидат наук Данилов Игорь Александрович
Алгоритмы и устройства контроля сверхбольших интегральных схем для радиоаппаратуры2010 год, кандидат технических наук Краснов, Михаил Игоревич
Разработка и исследование программируемого коммутационного устройства2022 год, кандидат наук Ким Олег Хонбинович
Список литературы диссертационного исследования кандидат наук Ратников Максим Олегович, 2026 год
16 итераций
Функция: F(x, y, z) = ((z) л ((x) & ((y) л (z))))
A= F(a, b, c) + data[i] + A_prev Раунд 2:
16 итераций
Функция: F(x, y, z) = (((x) & ((y) | (z))) | ((y) & (z)))
A= F(a, b, c) + data[i] + A_prev Раунд 3:
16 итераций
Функция: F(x, y, z) = ((x) л (y) л (z))
A= F(a, b, c) + data[i] + A_prev
5. Подготовка результата: сложение полученных значений A, B, C, D с начальными.
Входные данные в тестовой системе обозначаются как data и представляют собой массив длинной от 1 до 448 бит. Перед началом вычисления производится подготовка входных данных: создается блок из 512 бит, младшие из которых равны входному массиву; к ним прикрепляется двоичная «1». Далее, если длина входных данных менее 448 бит, блок заполняется нулями до тех пор, пока его длина не будет равна 448. Далее в старшие 64 бита записывается длина сообщения, представленная в виде одного 64-битного слова.
Общий вид тестовой системы приведен на Рис. 2.10.
Рис. 2.10. Общий вид конвейера тестовой системы на базе Ж04
Во время процесса тестирования появление любого сбоя в тестовом конвейере (в соответствии со свойствами MD4) приведет к значительному изменению выходного результата. В зависимости от дальнейшей динамики изменения значения можно будет сделать выводы о продолжительности и типе нарушения работы системы (сбой / отказ).
В качестве примера реализации тестового функционального описания рассмотрим реализацию конвейера с развернутым алгоритмом генерации контрольного кода CRC. Исходные коды тестовой системы были разработаны на языке описания и верификации аппаратного обеспечения SystemVerilog [126]. Полностью исходные коды доступны в [127, 128]. Результаты синтеза тестовой системы приведены в Таблица П 2.
Предложенный подход обеспечивает возможность применения любого источника данных (как константных значений, так и значений, вычисляемых в процессе работы тестовых блоков внутри ПЛИС) в качестве источника входного битового потока.
Максимальная частота работы такой тестовой системы примерно в 3 раза меньше, чем у тестовой системы на основе CRC, что является следствием большей логической нагрузки на каждой из ступеней конвейера.
В процессе тестирования с внесением одиночных и многократных сбоев в поток входных данных и в промежуточные значения, получаемые в процессе работы конвейера, подтверждена чувствительность тестовой прошивки к сбоям.
Проведенное тестирование подтверждает основные требования к предложенной тестовой прошивке в части обеспечения масштабируемости и чувствительности к сбоям. К недостаткам такой системы можно отнести больший (по сравнению с CRC) шаг масштабирования: исходный алгоритм MD4
предполагает строго 3 раунда по 16 шагов каждый, т. е. шаг изменения площади равен площади 48 раундов. Подобные недостатки реализации для ПЛИС MD4 и подобных ему по логике работы алгоритмов можно преодолеть за счет частичной реализации алгоритма (при которой имплементируются не все стадии или раунды) или реализации циклических конвейеров [129].
2.4 Тестовая система на основе конвейеризированного генератора кода Хэмминга
Предложенные выше алгоритмы гарантируют выявление сбоев, но не позволяют определить место их возникновения. Для решения задачи определения количества и места возникновения сбоев предлагается использование конвейеризированных генераторов кодов, обнаруживающих и исправляющих ошибки [56, 122].
Для исправления ошибок, возникающих при передаче и хранении информации, применяют специальные коды, обнаруживающие и исправляющие ошибки. Все подобные коды построены на добавлении к данным избыточной информации, которую называют контрольным числом. Контрольное число вычисляется из полезных данных с помощью выбранного алгоритма. В качестве единицы кодирования и исправления может быть взят бит (двоичные коды) или блок данных, состоящий из нескольких бит (недвоичные коды).
Для использования в задачах тестирования ПЛИС может быть взят любой из алгоритмов, работающих с поступающим потоком данных. Обрабатываемые данные могут быть как двоичными - в этом случае на каждом шаге алгоритма производится обработка одного бита данных входного потока, так и недвоичными - тогда биты данных входного потока объединяются в блоки. Выбранный алгоритм преобразуется способом, аналогичным приведенному выше для вычисления CRC. Между ступенями конвейера передается промежуточное значение контрольного числа и служебная информация
(признаки, фрагменты данных, которые могут быть использованы на следующих этапах).
Исходными данными для проведения тестирования служат выбранный алгоритм и входной поток двоичных данных. Под входным потоком здесь понимается множество двоичных значений, которые устанавливаются на входы тестовой системы. Как и при описании конвейеризированного генератора CRC-кода нами используются понятия эталонного и фактического входных потоков. Соответственно, тестовая система вычисляет контрольный код для фактического входного потока.
Значения входного потока в общем случае представляют собой набор двоичных векторов, устанавливаемых на входы тестовой системы. Для упрощения расчетов в рамках данной работы будем использовать статические значения. То есть на протяжении всего времени тестирования значения идеального входного потока, передаваемого на все входы тестовой системы (как от входов ПЛИС, так и от внутренних устройств), не меняются. Фактический входной поток отличается от эталонного только в случае сбоя.
2.4.1 Особенности тестовых систем на основе конвейеризированных генераторов самокорректирующихся контрольных кодов
Основным элементом тестовой системы является блок, реализующий выбранный алгоритм вычисления корректирующих кодов. В общем случае результатом работы этого блока является самокорректирующийся код, состоящий из двух частей - информационной, которая равна фактическому входному потоку, и контрольного кода. При этом, учитываем, что значение фактического входного потока неизвестно, а его передача вместе с кодом может быть затруднена или невозможна по причине его значительных размеров и ограниченности ресурсов ПЛИС. Предположив, что количество одновременно возникающих сбоев меньше, чем расстояние Хэмминга для выбранного кода, и, учитывая знание эталонного входного потока, можно сделать вывод о том, что
для определения факта наличия сбоя и его места достаточно только контрольного кода.
Для выявления факта сбоя и его места необходимо сгенерировать код, состоящий из эталонного входного потока и полученной от устройства корректирующей части. Затем, в соответствии с выбранным алгоритмом, вычисляется синдром ошибки. Полученный синдром ошибки указывает на место возникновения сбоя в тестируемой системе. Возможные сбои в тестовой системе могут возникнуть во входном потоке или в самом тестовом конвейере. Если синдром ошибки указывает на контрольные биты, то это говорит о наличии сбоя в самом тестовом конвейере. В противном случае имеется расхождение между эталонным и фактическим входными потоками. Принципиальная схема тестовой системы показана на Рис. 2.11.
Рис. 2.11. Принципиальная схема тестовой системы
В качестве примера реализации тестового функционального описания с определением места выявления сбоя рассмотрим реализацию конвейера с развернутым алгоритмом генерации кода Хэмминга, выявляющего 2 ошибки и исправляющего одну ошибку.
Каждая из стадий конвейера в такой тестовой системе обрабатывает один бит входного потока. В целях сохранения простоты вычисления эталонного значения и упрощения верификации тестовой прошивки все ступени конвейера с номерами, равными степени «2» (0,1,2,4,8...), не выполняют никаких действий и представляют собой регистр.
Обработка очередного бита входного потока заключается в попарном сложении по модулю 2 значения этого бита с теми битами контрольного кода,
которые входят в ту же контрольную группу, что и обрабатываемый бит. Структурная схема тестовой системы приведена на Рис. 2.12.
Рис. 2.12. Структурная схема тестовой системы на основе кода Хэмминга
На схеме показано чередование обрабатывающих стадий (генератор) и необрабатывающих (регистр). На каждой из обрабатывающих стадий производится сложение по модулю 2 очередного бита входных данных (Ь) с одним или несколькими контрольными битами. Номера контрольных бит, участвующих в сложении, зависят от номера стадии. Например, в соответствии с алгоритмом вычисления кода Хэмминга для обнаружения двух ошибок и исправления одной ошибки на 3-й стадии в сложении по модулю 2 будут участвовать 1-й и 2-й биты контрольного кода, на 5-й стадии - 1-й и 3-й и т. д. [54].
В соответствии с приведенной выше формулой для вычисления контрольного бита гу, для получения итогового значения необходимо сложить по модулю 2 все информационные биты, относящиеся к у-той контрольной группе. Так как операция сложения по модулю 2 обладает свойством ассоциативности, то
т] = Г]гк-1 0 Ьщ = Г]Ьк-2 0 Ьк-1 у 0 = (210)
= Г]П 0 0 ■■■ 0 ^к-1] 0 ^kj,
где , ... г,гк-1 - промежуточные результаты сложения по модулю 2 информационных битов у-той контрольной группы, Ьу - информационные биты у-той контрольной группы. В таком случае на каждой обрабатывающей ступени конвейера можно реализовать вычисление очередного значения гу г .
Пусть Я - набор контрольных битов на данной ступени. Тогда Я = (г1,г2,... гк), где к - количество контрольных бит (контрольных групп).
Фактически Яг - набор контрольных бит для входного потока длиной г. Как было показано выше, благодаря свойству ассоциативности операции «сложение по модулю 2», каждый следующий бит Я может быть вычислен на основе предыдущих значений. В таком случае для каждого набора контрольных битов Яг на г-той стадии конвейера справедливо
К = ИСЯ-аЬ), (2.11)
где Н - функция, вычисляющая очередной набор контрольных битов кода Хэмминга, г - номер стадии, - г-тый бит входного потока. Тогда задача преобразования алгоритма вычисления кода Хэмминга сводится к получению функции Н(Я(-1,1,Ъг). По алгоритму вычисления кода Хэмминга каждый контрольный бит является результатом сложения по модулю 2 всех информационных бит соответствующей контрольной группы. Тогда, из (2.5) и (2.11) можно сделать следующий вывод
ГI = 1-1,1, Ь(2.12) т. е. контрольный бит у-той контрольной группы на /-той ступени зависит от значения контрольного бита у-той контрольной группы на /-1-той ступени, номера ступени и соответствующего бита входного потока.
Так как в вычислении очередного значения г г принимают участие только биты из контрольной группы у, то на обрабатывающей стадии /
( Г;а-Ъ1€] (2.13)
Г]Ы Ь}сг-1 ® Ь1,1 £/ '
где J - множество элементов у-той контрольной группы. По алгоритму кода Хэмминга очередной бит принадлежит к у-той контрольной группе в том случае, если в двоичной записи номера этого бита в коде Хэмминга у-тый бит равен «1». Соответственно, при вычислении Гу г проверяется на равенство «1» у-тый бит двоичной записи номера текущей стадии.
Необрабатывающая стадия обеспечивает корректность вычисления контрольного кода и не выполняет каких-либо вычислений. Необрабатывающие стадии имеют номера: 1,2,4,8 ... 2т. Можно сказать, что эти стадии имитируют
введение в тестовую систему очередного контрольного разряда. Для необрабатывающих стадий
\0,1е],1 = /[0] (2.14)
и^лет
т. е. на этих стадиях начинается вычисление очередной контрольной группы, и ранее биты из этой контрольной группы в вычислении не участвовали. Начальное значение контрольного бита по алгоритму Хэмминга равно 0.
Для обеспечения выявления двойных сбоев вводится дополнительный контрольный бит - «бит двойного контроля» (бит ДК). Бит двойного контроля складывается по модулю 2 с очередным входным значением на каждой из обрабатывающих стадий.
Структурная схема одной ступени конвейера (обрабатывающей) приведена на Рис. 2.13.
Контрольные биты с предыдущей ступени
Бит Д. К.
Бит г к
Бит г I
г 1 Ь-1
Двоичный номер ступени
Контрольные биты
ГВиТ Д. К. Вит
г к Ь
Вит г I Ь
Вит
ПА
Вход
Рис. 2.13. Структурная схема ступени тестовой системы на основе кода
Хэмминга
Номер текущей ступени является константой. Бит двойного контроля представляет собой бит четности для всего полученного кода Хэмминга.
Рассмотрим следующий пример. Пусть был задан входной поток 10111001. В таком случае выходными результатами стадий являются значения, приведенные в столбце «Контрольные биты до сбоя» Таблицы 3. В процессе тестирования произошел сбой, в результате которого изменилось значение 3-го бита входного потока с «0» на «1». Значения, установившиеся на выходе конвейера в результате сбоя, приведены в столбце «Контрольные биты после
сбоя». После окончания обработки искаженного входного потока, значения на выходе стадий приняли исходные значения, что отражено в столбце «Контрольные биты после окончания сбоя».
Рассмотрим пример расчета значений Гу г (контрольных битов на выходе каждой из ступеней).
Ступень 1. Номер ступени имеет одну единицу в двоичной записи, ступень является необрабатывающей, первый контрольный бит получает значение «0». Значение остальных контрольных бит на этой стадии не определено. Для приближения к аппаратной реализации будем считать, что их значение также равно «0».
Ступень 2. Аналогично ступени 1. Это необрабатывающая ступень, второй контрольный бит получает значение «0». Значение первого контрольного бита переписывается. Остальные контрольные биты также равны «0».
Ступень 3. Первая обрабатывающая ступень. Значение входного бита равно «1». Двоичный номер ступени 00011, т. е. для вычисления очередного значения 1 -го и 2-го контрольного бита необходимо сложить их предыдущее значение и входной бит по модулю 2:
Г13 = 0*1 = 1
Г2 г3 = 0Л1 = 1
По договоренности бит ДК здесь - сложение по модулю 2 всех информационных бит:
Гдк з = 04 = 1.
Обрабатываемый бит не входит в 3-ю и 4-ю контрольные группы, поэтому значения 3-го и 4-го контрольных бит переписываются.
Ступень 4. Необрабатывающая ступень. Вводится 3-й контрольный бит. Он получает значение «0». Значение остальных бит переписывается.
Ступень 5. Вторая обрабатывающая ступень. Номер ступени: 00101. Значение входного бита: «0». На этой ступени вычисляются значения 1-го и 3-го контрольных битов. Остальные контрольные биты переписываются:
Г1 5 = 1*0 = 1
Г2 г5 = 1 = 1 Г3 {5 = 0*0 = 0 Г4 55 = 0 = 0 Гдк 53 = 1*0 = 1
Выполнив аналогичные вычисления для 6-12 стадий, а также для измененного входного потока (имитация сбоя) и потока после окончания сбоя, получим значения, приведенные в Таблица 1.
Таблица 1
Промежуточные значения контрольных бит на выходе каждой из ступеней
конвейера
Номер ступени Вх. биты до сбоя Контр. биты до сбоя Вх. биты после сбоя Контр. биты после сбоя Вх. биты после окончания сбоя Контр. биты после окончания сбоя
110 = (00001)2 - 00000 - 00000 - 00000
210 = (00010)2 - 00000 - 00000 - 00000
З10 = (00011)2 1 10011 1 10011 1 10011
4ю = (00100)2 - 10011 - 10011 - 10011
5ю = (00101)2 0 10011 0 10011 0 10011
610 = (00110)2 0 10011 1 00101 0 10011
7ю = (00111)2 1 00100 1 10010 1 00100
810 = (01000)2 - 00100 - 10010 - 00100
9ю = (01001)2 1 11101 1 01011 1 11101
10ю = (01010)2 1 00111 1 10001 1 00111
1110 = (01011)2 0 00111 0 10001 0 00111
12ю = (01100)2 1 11011 1 01101 1 11011
Примечание: бит двойного контроля, входящий в состав контрольных бит, считается для всех битов фактического входного потока без учета самих контрольных бит. Вычисление бита ДК с учетом контрольных бит на каждой стадии не имеет смысла, так как на всех стадиях, кроме последней, значения контрольных бит являются промежуточными. Перед началом декодирования кода Хэмминга для получения значения бита ДК, полностью соответствующего алгоритму, необходимо сложить по модулю 2 итоговые значения контрольных кодов и полученное значение бита ДК. Таким образом, результирующее значение битов ДК для примера приведенного выше следующее:
- до сбоя - «0»;
- после сбоя - «1»;
- после окончания сбоя - «0».
По алгоритму Хэмминга для обнаружения места сбоя достаточно побитно сложить по модулю 2 биты контрольного кода (без бита ДК), полученные в результате сбоя с эталонными.
В данном случае 1011 А 1101 = 01102 = 610, т. е. сбой произошел на 6-й ступени конвейера, что соответствует заданным условиям.
2.4.2 Реализация тестовой системы на основе кода Хэмминга
Тестовая система состоит из модуля, представляющего собой отдельную ступень тестового конвейера, самого тестового конвейера (заданное количество соединенных между собой модулей) и может быть дополнена узлами для проверки внутренних подсистем ПЛИС для дополнительной обработки значений со входов и т. д.
Исходные коды тестовой системы были разработаны на языке SystemVerilog и доступны в [127, 128]. Результатом работы тестовой системы являются контрольные биты кода Хэмминга, получаемые с выходной линии output_control_code последней ступени конвейера. Данные, полученные в процессе моделирования приведены в Таблица П 3.
Для вычисления места в эталонном коде Хэмминга контрольный код заменяется на код, полученный на выходе тестовой системы. Далее производится вычисление синдрома ошибки, по которому выявляется номер сегмента, в котором она произошла.
В данном примере итоговый код Хэмминга, полученный в результате сбоя: 101111001101. В результате проверки кода получаем синдром ошибки 00110, т. е. ошибка произошла в 6-м бите кода Хэмминга, что соответствует 3-му информационному биту.
В Таблица П 4 приведены результаты синтеза системы тестирования на основе кода Хэмминга в базисе ПЛИС Actel (Microsemi) APA 1000.
Аналогично конвейеризированным тестовым системам на основе CRC данная тестовая система продемонстрировала практически линейный рост количества занимаемых ресурсов при увеличении количества ступеней конвейера. Увеличение количества стадий практически не оказало влияния на максимальную частоту работы, т. е. таким образом подтверждено выполнение требования масштабируемости прошивки.
Проведенное тестирование подтверждает выполнение требований детекции факта появления сбоя и обнаружения места возникновения сбоя, предъявленных к тестовой прошивке.
2.5 Выводы по второй главе
1. Предложена методика использования конвейеризированных генераторов контрольных кодов для тестирования сбоеустойчивых систем ПЛИС и устройств на их основе. Методика предполагает разработку и имплементацию в ПЛИС тестовой системы на основе конвейеризированного генератора контрольного кода. Далее необходимо определить эталонный входной поток данных (последовательность двоичных векторов, подаваемых на устройство в процессе тестирования) и вычислить ожидаемый отклик тестовой систем (эталонный выходной поток). В процессе тестирования возможно расхождение эталонного и фактического входных потоков в результате внешнего воздействия или некорректной работы тестируемого устройства. В этом случае фактический выходной поток также будет отличаться от эталонного. В результате сравнения эталонного и фактического выходных потоков можно сделать вывод о корректности работы устройства и типе сбоя (при его наличии).
2. Разработан способ конвейеризации алгоритмов контрольных кодов и доказана непротиворечивость полученного конвейеризированного алгоритма исходному алгоритму.
3. Приведены примеры создания тестовых систем на основе конвейеризированных генераторов CRC-кодов, М04 и кодов Хэмминга.
4. Применение методики определения места сбоя в специализированной тестовой системе на основе кодов, обнаруживающих и исправляющих ошибки, продемонстрировано на примере реакции системы на одно- и двукратные ошибки.
ГЛАВА 3 МЕТОДИКА ВЫБОРА АППАРАТНОЙ ПЛАТФОРМЫ И АРХИТЕКТУРНЫХ МЕТОДОВ ОБЕСПЕЧЕНИЯ СБОЕУСТОЙЧИВОСТИ СИСТЕМ НА БАЗЕ ПРОГРАММИРУЕМЫХ
ЛОГИЧЕСКИХ ИНТЕГРАЛЬНЫХ СХЕМ, ИСПОЛЬЗУЮЩАЯ КОНВЕЙЕРИЗИРОВАННЫЕ ГЕНЕРАТОРЫ КОНТРОЛЬНЫХ КОДОВ.
ПРЕДВАРИТЕЛЬНЫЙ ЭТАП
Одной из проблем при разработке вычислительной системы, предназначенной для работы в условиях негативного внешнего воздействия, является задача выбора способа обеспечения сбоеустойчивости. Существует множество способов и подходов к обеспечению сбоеустойчивости вычислительных систем, отличающихся друг от друга по типу используемой избыточности (аппаратная или временная), по степени избыточности, по количеству и типу парируемых типов нарушения работы (однократные сбои, многократные сбои, отказы и т. д.) и по сложности реализации. При этом саму задачу выбора лучшего по заданным критериям способа обеспечения сбоеустойчивости можно разделить на два этапа:
- предварительный, на котором отсекаются заведомо неподходящие способы обеспечения сбоеустойчивости;
- основной, являющийся лучшим выбором (по заданным критериям) среди оставшихся способов обеспечения сбоеустойчивости.
К критериям, по которым производится оценка каждого из анализируемых методов обеспечения сбоеустойчивости, относятся: количество исправляемых сбоев, количество обнаруживаемых сбоев, количество ресурсов, занятых вычислительной системой (площадь), максимальная частота работы вычислительной системы и т. д. При проведении такой оценки производится вычисление вероятности неправильной работы тестовой системы в данном аппаратном базисе в заданных условиях [105, 124].
На предварительном этапе выбора способа обеспечения сбоеустойчивости для заданной системы необходимо исключить из анализа заведомо неподходящие в данном случае способы. К таким способам можно отнести те, которые не могут быть реализованы в данной системе или заведомо не будут обеспечивать выполнения требуемых характеристик, т. е. в первую очередь системы, для реализации которых требуется больше ресурсов, чем доступно в микросхеме; или частота работы которых меньше требуемой. В настоящей работе предлагается методика исключения из дальнейшего анализа неоптимальных или неэффективных методов обеспечения сбоеустойчивости на основе аналитической оценки изменения площади и максимальной частоты работы системы после имплементации выбранного подхода к обеспечению сбоеустойчивости [130].
Учитываются следующие факторы.
1. От выбора способа обеспечения сбоеустойчивости системы зависит множество решений по построению системы в целом, поэтому определить список возможных решений нужно как можно раньше.
2. Решается задача предварительного анализа без реальной интеграции анализируемого метода обеспечения сбоеустойчивости в разрабатываемую систему.
3. Требуется минимизировать затраты времени на предварительный этап выбора;
4. Решается (в первую очередь) задача качественной оценки применимости анализируемого способа обеспечения сбоеусточивости.
Замечание к последнему приведенному фактору: важно оценить принципиальную возможность реализуемости соответствующего способа обеспечения сбоеустойчивости, а не его точные характеристики. Если в результате анализа на предварительном этапе выясняется, что для реализации защищенной системы имеющихся в ПЛИС ресурсов явно недостаточно (в разы), то такой способ обеспечения сбоеустойчивости исключается из дальнейшего анализа. Поэтому, если на этапе предварительного анализа получены значения
на грани допустимых или лучше, то такой способ обеспечения сбоеустойчивости необходимо исследовать на основном этапе. Для методик быстрой предварительной оценки затрат ресурсов ПЛИС на имплементацию системы считаются допустимыми относительно большие погрешности в оценках. Например, в работе [131] средняя погрешность подобной оценки по затратам конфигурируемых логических блоков составила более 25%.
В данном исследовании для решения задачи аналитической оценки способов обеспечения сбоеустойчивости на предварительном этапе предлагается использовать конвейеризированный генератор контрольных кодов.
Еще одной задачей, решаемой на предварительном этапе, является задача выбора инструментального ПО. Так как архитектура ПЛИС (количество внутренних ресурсов, глобальные линии, линии и узлы, отвечающие за коммутацию и т. д.) полностью задается производителем, то и инструментальное ПО, которое может работать с данной ПЛИС, в основном, задается производителем микросхемы. Таким образом, ПЛИС является не просто аппаратной, а программно-аппаратной платформой, так как микросхемы от любого из поставщиков не могут использоваться в отрыве от поставляемого и / или доступного программного обеспечения (3rd party). Инструментальное ПО для работы с ПЛИС по назначению может быть разделено по следующим основным направлениям: разработка исходного кода (компиляция и моделирование), разработка прошивки (компиляция, синтез) и отладка уже на устройстве [67, 69, 70].
Для задач, рассматриваемых в данном исследовании, наибольшее значение имеет ПО, выполняющее компиляцию и синтез нетлиста из RTL. На данный момент для всех распространенных ПЛИС выбор ограничен очень небольшим количеством вариантов. Это ПО от производителя ПЛИС, ПО от крупных компаний (Mentor Graphics, Cadence и Synopsys) и иногда 1-2 варианта от небольших компаний и нескольких проектов open-source community, среди которых самыми развитыми в настоящее время являются VTR [132] и RapidSmith2 [132], [133]. Решение задач, связанных с верификацией и
моделированием разработанных функциональных моделей, с помощью различных методик и подходов, описанных, например, в работе [134], намного меньше привязано к пакетам, распространяемых производителями ПЛИС. Более того, пакеты ПЛИС-разработки позволяют подключать внешние симуляторы, если встроенный по тем или иным причинам не подходит [135, 136].
При разработке сбоеустойчивой вычислительной системы к используемому набору ПЛИС и ПО помимо прочих требований добавляется требование корректной обработки имплементируемого метода обеспечения сбоеустойчивости в базисе конкретной ПЛИС. Учитывая то, что имплементация выбранного метода обеспечения сбоеустойчивости производится в уже готовую незащищенную систему, то проблемы, которые могут возникнуть на данном этапе, могут привести к серьезным затратам (замена ПЛИС и / или ПО для нее, замена метода обеспечения сбоеусточивости, связанные с этим изменения разработанной системы, ее повторное тестирование и т. д.). Предполагается, что анализируемая ПЛИС полностью соответствует требованиям целевой незащищенной системы (т. е. позволяет в полной мере реализовать необходимую функциональность и обеспечивает выполнение требований ТЗ). Подходящие аппаратные платформы могут быть выбраны с учетом экспертного мнение или аналитическим способом; например, по методике, описанной в работе [137].
Соответствующие доработки предлагается сделать с помощью проведения всех необходимых проверок на некоторой эталонной системе, поведение которой известно, легко контролируется и может быть быстро проверено на любом доступном наборе из ПЛИС, пакета инструментального ПО и метода обеспечения сбоеустойчивости. Таким образом, можно сделать выводы о возможности использования ПО, ПЛИС и метода обеспечения сбоеустойчивости до начала разработки функционального описания. Это позволяет отсечь варианты, которые точно не могут быть реализованы. В качестве такой эталонной системы предлагается использовать тестовую систему на основе конвейеризированного генератора контрольных кодов.
3.1 Методика выбора аппаратной платформы и архитектурных методов обеспечения сбоеустойчивости
Для решения задачи предварительного анализа методов обеспечения сбоеустойчивости, которые могут быть имплементированы в систему, предлагается следующая методика быстрого анализа изменения характеристик системы, состоящая из следующих этапов.
1. Выбор тестовой системы на основе конвейеризированного генератора контрольных кодов.
2. Имплементация в тестовую систему анализируемого метода обеспечения сбоеустойчивости.
3. Определение относительного изменения площади:
yi■ _ Stestsystemprot (3 1)
prOlimvl с '
и ° testsystemb ase
где kproti - относительное изменение, Stestsystemprot - площадь защищенной тестовой системы, Stestsystembase - площадь незащищенной тестовой системы.
4. Определение площади незащищенной целевой системы (Starget)
- аналитически;
- экспериментально.
5. Вычисление предполагаемой площади защищенной тестовой системы.
6. Оценка временных характеристик.
3.1.1 Основные преимущества
Основными преимуществами предлагаемой методики являются:
- скорость оценки: регулярная структура конвейеризированных генераторов контрольных кодов позволяет сократить трудоемкость и время на имплементацию анализируемой системы обеспечения сбоеустойчивости в тестовую, а также синтез и проверку на ПЛИС полученной системы;
- возможность проведения оценки без готовой целевой системы.
В случае проведения оценки без готовой целевой системы ее площадь определяется аналитически; например, по методике, описанной в работе [106]. В качестве альтернативного способа оценки аппаратных затрат на реализацию целевой системы предлагается оценка на основе соотношения площади регистров и комбинационной логики между ними. В зависимости от системы это соотношение обычно колеблется от 70:30 до 40:60 [138]; часто оптимальным и наиболее распространенным называют соотношение 66:33 или 2:1 [139]. Тогда, зная количество регистров в системе, которое может быть оценено после выбора алгоритма работы системы или разработки модели на языке высокого уровня, и соотношение площадей регистров и логических элементов, можно вычислить и площадь всей системы.
3.1.2 Требования, предъявляемые к тестовой системе
Система должна удовлетворять следующим требованиям.
1. Простота реализации. Необходимо (на сколько это возможно) сократить временные затраты на реализацию тестовой системы, при этом обеспечив возможность быстрой замены незащищенных фрагментов на защищенные.
2. Объем. Площадь тестовой системы должна быть больше или равна площади целевой системы, так как чем меньше тестовая система, тем больше погрешность при анализе. Защищенная тестовая система должна занимать не больше ресурсов, чем имеется в ПЛИС; в противном случае возможно появление погрешности при анализе из-за особенностей работы синтезатора.
3. Разрядность. Разрядность или разрядности используемых регистров должны быть максимально близки к разрядностям целевой тестовой системы. Для повышения точности анализа желательно выдержать соотношение регистров разной разрядности в целевой, и тестовой системе; т. е. если ожидается, что в тестовой системе будут преобладать одноразрядные регистры, то в ней желательно использовать именно их. Если используемый конвейеризированный алгоритм вычисления контрольных кодов изначально не
допускает использования регистров произвольной разрядности (большинство генераторов контрольных кодов жестко определяют разрядности регистров, используемых при вычислении), то предлагается разделить регистры на две части: защищаемую и незащищаемую. В таком случаем анализируемый способ обеспечения сбоеустойчивости применяется только к защищаемой части, а участие незащищаемой части в дальнейшем анализе минимизируется. Если в целевой системе используются элементы с большей разрядностью, чем заданная алгоритмом работы тестовой системы, то следует или реализовать фрагмент за счет объединения в один защищаемый фрагмент нескольких регистров каждой ступени конвейера, или учесть вероятное увеличение погрешности анализа.
4. Логическая нагрузка. Соотношение защищаемых и незащищаемых фрагментов в тестовой и целевой системах должно быть сопоставимо (соотношение площади всех защищаемых и всех незащищаемых элементов в незащищенной тестовой и целевой системах должно быть максимально близким к 1):
Sprotparttest ^ Sprotparttarget (3 2)
Sunprotparttest ^unprotparttarget
5. Стиль кодирования. Тестовая система (по возможности) должна разрабатываться тем же разработчиком, что и целевая - с использованием тех же возможностей HDL и IP-блоков. Это позволит увеличить точность результатов анализа и заранее выявить возможные проблемы, связанные с работой инструментального ПО. Например, в работе [140] приведен ряд примеров, в которых поведение различных симуляторов или синтезаторов может отличаться для одного и того же кода. Реализация тестовой системы в том же стиле разработки, в котором будет разрабатываться целевая система позволит уже на ранних этапах выявить возможные проблемы и выявить потенциально небезопасные (с точки зрения корректности синтеза) конструкции языка.
3.1.3 Оценка временных характеристик
Так как при работе от одного синхросигнала максимально возможная частота работы системы определяется частотой работы самого медленного из фрагментов, то задача анализа изменения временных характеристик сводится к поиску наименьшего значения частоты работы:
- защищенной тестовой системы;
- незащищенной целевой системы;
- защищенных фрагментов, используемых в защищенной целевой системе.
3.2 Применение методики
3.2.1 Исходные данные
Аппаратная платформа. Оценка производилась для трех ПЛИС разных производителей: Actel (Microsemi) APA 1000 CQFP352, Altera (Intel) Stratix EP1S25F672C, Xilinx(AMD) Virtex XQR4VSX55CF1140.
Инструментальное программное обеспечение. В данном исследовании использовалось два программных пакета, которые выполняли компиляцию и синтез RTL: Mentor Graphics Precision 2013 и Mentor Graphics Precision 2015.
Система обеспечения сбоеустойчивости. Применение методики продемонстрировано на примере имплементации трех систем обеспечения сбоеустойчивости, основанных на:
1) использовании кода Хэмминга, исправляющего одну ошибку и обнаруживающего две ошибки. Защищаемым элементом в такой системе являются регистры. В состав защищенного регистра входят: кодер, декодер, регистр для хранения защищенных данных, мультиплексор и цепь самовосстановления. При отсутствии данных для записи регистр на каждом такте перезаписывает хранящиеся данные (каждый раз осуществляется
кодирование и декодирование слова данных), чем обеспечивается самовосстановление записанных данных. Структурная схема незащищенного и защищенного регистров представлена на Рис. 3.1.
Защищенный регистр
Рис. 3.1. Структурная схема незащищенного и защищенного регистров
2) использовании поблочного мажорирования. Как и в случае с системой, основанной на коде Хэмминга, защищаемым элементом являются регистры, а в состав защищенного регистра входят три регистра, схема мажорирования и схема восстановления. Структурная схема единицы обеспечения сбоеустойчивости для такого подхода представлена на Рис. 3.2.
Цепь восстановления
Рис. 3.2. Структурная схема защищенного регистра на основе мажорирования
3) использовании полносистемного мажорирования. Защищаемым элементов здесь является вся система в целом. В состав защищенной системы входят три копии незащищенной системы и схема мажорирования. Структурная схема единицы обеспечения сбоеустойчивости для такого подхода представлена на Рис. 3.3.
Рис. 3.3. Защищенная система на основе полносистемного мажорирования
Целевая система. В качестве целевого устройства для анализа в данной работе был выбран разработанный автором блок форматирования входных потоков данных, который является частью устройства, обеспечивающего потоковый прием, обработку и передачу данных. Блок в соответствии с
заданным режимом собирает данные с двух источников (данные от одного из них буферизируются) и передает на выход. Устройство разработано на языке 8ув1ешУеп1о§, имеет внутри два конечных автомата и регистры различной разрядности: от 1 бита до 64. Входные данные подаются по 8-битным интерфейсам, выходные - по 2-битному. Команды на схему управления поступают по двум линиям ёа1а-в1гоЬ. Вероятное суммарное количество бит во всех регистрах блока: 500-700. Структурная схема целевой системы приведена на Рис. 3.4.
Рис. 3.4. Структурная схема целевого устройства (пример)
Причинами для выбора именно этого устройства стали:
- объем, достаточный для того, чтобы проводимые эксперименты были показательными;
- соотношение затрат на реализацию логики и регистров (примерно 2:1, как у большинства систем общего назначения);
- наличие готовой тестовой системы, которая позволяет быстро проверить отсутствие нарушений работы после имплементации очередного подхода к обеспечению сбоеустойчивости;
- возможность опубликовать исходные коды данного устройства.
3.2.2 Оценка аппаратных затрат
Выбор тестовой системы. Для приведенной выше целевой системы не предъявлено требований к высокой степени конвейеризации, минимизации затраченных аппаратных ресурсов и т. д. В таком случае наиболее вероятным соотношением между объемом логических элементов и регистров будет соотношение 2:1 [138, 139].
С учетом приведенных в разделе 1.7.2 требований и особенностей тестовых систем, описанных в разделах 2.2, 2.3 и 2.4, для дальнейшего анализа предлагается использовать конвейеризированный генератор хэш-кода М04 [141]. Основными преимуществами конвейеризированного генератора М04 являются:
- достаточная логическая нагрузка;
- соотношение затрат на логические элементы и на регистры 2:1;
- возможность использования «смешанных» регистров, т. е. регистров частично защищенных (в каждой ступени 4 регистра);
- простота реализации.
Выбор разрядностей регистров. Разрядности защищаемых частей регистров тестовой системы должны выбираться таким образом, чтобы примерно сохранять соотношение между разрядностями регистров в целевой системе. В соответствии с требованием соблюдения разрядностей в разработанном конвейере М04 используются следующие типы регистров:
- 32-разрядный защищаемый регистр;
- 16-разрядный защищаемый регистр (остальные 16 разрядов находятся в незащищаемой части);
- одноразрядный защищаемый регистр (31 разряд находится в незащищаемой части).
Результаты синтеза тестовой системы. Результаты синтеза защищенного конвейеризированного и незащищенного конвейеризированного генераторов хэш-кода М04 приведены в Приложении в
Таблица П 5 и
Таблица П 6. Полученные отношения площадей защищенных и незащищенной систем приведены в Таблица .
Таблица 2
Отношения площадей защищенной и незащищенной систем
М1еговеш1 (Айе1) Акега (М) ХШпх (АМБ)
Отношение площадей защищенной и незащищенной систем (защита на основе кода Хэмминга) 1,991 3,362 3,463
Отношение площадей защищенной и незащищенной систем (защита на основе поблочного мажорирования) 1,465 1,869 1,84
Отношение площадей защищенной и незащищенной систем (защита на основе полносистемного мажорирования) 3,025 3,038 2,998
В результате проведенного эксперимента было выявлено, что результаты незначительно зависят от используемой версии ПО. Также в процессе эксперимента были выявлены ряд особенностей используемого ПО, связанных с последовательностью компиляции исходных кодов. Полученная на этом этапе информация была учтена при разработке целевой системы.
Определение аппаратных затрат на целевую систему. Для получения точного значения аппаратных затрат на реализацию целевой системы в соответствующем аппаратном базисе нужно синтезировать ее функциональное описание на языке описания аппаратного обеспечения. В данном случае использовались точные значения (получены в результате синтеза фрагментов), а если такой информации нет, можно использовать экспертное мнение или любую другую доступную методику оценки (например, [142, 143, 144]).
Для вычисления аппаратных затрат, необходимых для реализации незащищенных и защищенных регистров, нужно провести эксперимент для получения данных об аппаратных затратах на регистры с разными разрядностями. Для системы, рассматриваемой в данной работе были
определены аппаратные затраты на реализацию регистров разрядностью от 1 до 64. Результаты представлены в Таблица П 7 и в Таблица П 8 в столбцах «На каждый незащищенный элемент». Также в этих таблицах приведены разрядности и количество регистров каждой разрядности в блоке. В строке «Итого для системы» приведено количество ресурсов, необходимое для реализации всех регистров в системе.
В Таблица П 9 - Таблица П 14 приведены аппаратные затраты, вычисленные различными способами аналитически и полученные в результате эксперимента, а также проведена оценка погрешности аналитического расчета. Всего получено 6 таблиц для двух разных версий инструментального ПО и трех различных методов обеспечения сбоеустойчивости. В каждой таблице приведены данные для трех ПЛИС от разных производителей.
В строке 1 этих таблиц приведены вычисленные ранее значения предполагаемых аппаратных затрат на реализацию соответствующей тестовой системы. Значения в строке 2 равны произведению количества ресурсов, затраченных на регистры, на коэффициент 3 (исходя из соотношения 2:1 между затратами на логические элементы и на регистры). В строке 3 приведены значения, полученные в результате синтеза целевой системы в базис соответствующих ПЛИС. Значения в строках 5 и 6 вычислены в результате умножения коэффициента из строки 4 на значения из строк 2 и 3, соответственно. Для оценки погрешности проведенного эксперимента проведена имплементация анализируемой системы обеспечения сбоеустойчивости в целевую систему и выполнен ее синтез. Полученные значения записаны в строку 7 этих таблиц. Относительная погрешность выражена отношением абсолютной погрешности измерения к опорному значению измеряемой величины [145]:
6 = — или 8 = — х 100%. (3 3)
X X
То есть значения в строках 8 и 9 (относительная погрешность) получены следующим образом: вычисленная разность значений, полученных в результате анализа (строки 5 и 6), и значения фактического размера системы (строка 7) поделена на фактический размер системы.
Примечание: при проведении эксперимента с полносистемным мажорированием в синтезаторе указывалась опция сохранения иерархии блоков. Это позволило избежать перемешивания структур разных мажорируемых каналов и получить систему, более точно соответствующую идее полносистемного мажорирования с тремя независимыми каналами.
Средняя погрешность для тестовой системы на основе MD4 составила 9,9% для оценки на основе аналитически определенного размера целевой системы и 6,5% - для оценки на основе фактического размера целевой системы.
Аналогичный эксперимент, проведенный для тестовой системы на базе конвейеризированного генератора CRC, показал менее точные результаты. Это объясняется тем, что соотношение ресурсов, затраченных на реализацию комбинационных элементов и регистров в системе на основе CRC, значительно отличается от системы на основе MD4. В данном случае в тестовой системе относительные затраты на реализацию комбинационной логики были меньше, чем в целевой системе, а при имплементации ряда подходов к обеспечению сбоеустойчивости увеличение затрат ресурсов ПЛИС приходится не столько на увеличившееся количество регистров, сколько на увеличение затрат на комбинационные системы. Из рассмотренных систем обеспечения сбоеустойчивости наибольшую логическую нагрузку дают системы на основе кода Хэмминга (это видно по увеличению затрат и на отдельные регистры, и на системы), и именно при анализе тестовых систем на базе конвейера CRC с защитой на основе кода Хэмминга погрешность была максимальной. Минимальная погрешность при анализе тестовых систем на базе CRC была в системах с полносистемным мажорированием, так как в них относительное увеличение затрат именно на комбинационные функции минимально (один мажорирующий элемент на выходе системы). Этим подтверждается необходимость выбора тестовой системы с учетом ожидаемых характеристик целевой системы.
3.2.3 Оценка временных характеристик систем
Частота работы защищенных фрагментов, целевой системы и защищенной тестовой системы приведена в Таблица П 15 - Таблица П 20. Средняя погрешность, полученная в результате эксперимента, составила 8,76%.
По результатам проведенного анализа можно сделать выводы о применимости рассматриваемых подходов к обеспечению сбоеустойчивости, ПО и ПЛИС:
- оба комплекта ПО позволяют решать поставленные задачи, но требуется учет ряда особенностей их работы при разработке устройства;
- рассмотренные подходы к обеспечению сбоеустойчивости целевой системы могут быть реализованы в базисе всех рассматриваемых ПЛИС, но подход на основе кода Хэмминга может не обеспечивать требуемую частоту работы;
- наиболее затратными по требуемым аппаратным ресурсам являются подходы на основе кода Хэмминга и полносистемного мажорирования, причем во многих случаях подход на основе кода Хэмминга требует большего количества ресурсов, чем подход на основе полносистемного мажорирования;
- из рассмотренных подходов к обеспечению сбоеустойчивости наименее затратным по используемым ресурсам является подход к обеспечению сбоустойчивости на основе поблочного мажорирования; этот же подход обеспечивает наибольшую частоту работы.
3.3 Выводы по третьей главе
1. В данной главе предложен, имплементирован и апробирован первый (предварительный) этап методики выбора аппаратной платформы и архитектурных методов обеспечения сбоеустойчивости систем на базе ПЛИС.
2. Предложенная методика позволяет аналитически оценивать изменения аппаратных затрат и временных характеристик целевой системы после имплементации выбранного подхода к обеспечению сбоеустойчивости, основанного на использовании конвейеризированных функций.
3. Проведена оценка погрешности предложенной методики выбора изменений основных характеристик целевой системы (аппаратные затраты и частота работы) в результате имплементации выбранного подхода к обеспечению сбоеустойчивости. Средняя погрешность составила менее 10%, что вполне допустимо при проведении качественной оценки реализуемости исследуемого метода обеспечения сбоеустойчивости.
4. Проведено сравнение работы разных пакетов инструментального ПО, выявлены особенности работы этих пакетов, которые должны быть учтены при разработке целевой системы.
5. Сравнение значений, полученных в результате аналитической оценки и в результате эксперимента, показало, что предложенная методика позволяет быстро провести качественную оценку выбранного способа обеспечения сбоеустойчивости и принять решение о его реализуемости и необходимости его дальнейшего исследования с целью имплементации в целевую вычислительную систему.
6. Использование специализированной тестовой системы в качестве основы для проведения анализа позволяет завершить выбор аппаратной платформы и методов обеспечения сбоеустойчивости до окончания разработки целевой системы.
ГЛАВА 4 МЕТОДИКА ВЫБОРА АППАРАТНОЙ ПЛАТФОРМЫ И АРХИТЕКТУРНЫХ МЕТОДОВ ОБЕСПЕЧЕНИЯ СБОЕУСТОЙЧИВОСТИ СИСТЕМ НА БАЗЕ ПРОГРАММИРУЕМЫХ
ЛОГИЧЕСКИХ ИНТЕГРАЛЬНЫХ СХЕМ, ИСПОЛЬЗУЮЩАЯ КОНВЕЙЕРИЗИРОВАННЫЕ ГЕНЕРАТОРЫ КОНТРОЛЬНЫХ КОДОВ.
ОСНОВНОЙ ЭТАП
Как было показано ранее, для решения задач, поставленных в данной работе, необходимо выработать единый подход к созданию тестовых прошивок, позволяющих как проводить тестирование микросхемы и ее окружения, так и определять наиболее эффективный способ обеспечения сбоеустойчивости системы в заданных условиях.
Ранее был предложен подход к тестированию системы с помощью имплементации конвейеризированного генератора контрольных кодов. Далее предлагается алгоритм использования такой тестовой системы для выбора лучшего по заданным критериям способа обеспечения сбоеустойчивости [146].
В качестве источника данных для такого генератора необходимо использовать входной поток информации. Конвейеризированный генератор позволяет на каждом такте работы системы определять корректность работы системы путем сравнения генерируемых контрольных кодов с эталонными. В зависимости от выбранного алгоритма вычисления кодов, также можно сделать выводы о количестве и месте возникновения сбоев.
4.1 Основные направления при проведении анализа
Анализ может проводиться по таким направлениям, как:
- выбор аппаратной платформы, т. е. производителя и модели ПЛИС;
- выбор метода обеспечения сбоеустойчивости.
Алгоритмы сравнения в обоих случаях одинаковы, поэтому далее рассматривается универсальный подход. Дальнейший анализ проводится с учетом следующих ограничений, накладываемых ПЛИС:
- система должна занимать не большее количество ресурсов, чем доступно в данной ПЛИС;
- система должна работать на не меньшей частоте, чем заданная.
Для каждого метода обеспечения сбоеустойчивости можно определить время, необходимое для исправления сбоя, т. е. длительность цикла исправления сбоев в защищаемом элементе. Под этим понимается количество времени, за которое выбранная система обеспечения сбоеустойчивости может исправить сбои в данном фрагменте, возникшие с момента начала цикла.
4.2 Алгоритм анализа эффективности системы по критериям ее сбоеустойчивости и реализуемости
Для проведения анализа эффективности системы по критериям ее сбоеустойчивости и реализуемости, необходимо вычислить вероятность появления в системе неисправленной ошибки, т. е. ситуации, при которой произошедший сбой или сбои не были парированы реализованной подсистемой защиты от сбоев. При этом такая система должна быть реализуемой в соответствующем аппаратном базисе и соответствовать предъявляемым к ней требованиям, а анализ должен производится на основе данных, полученных в результате синтеза системы в данный аппаратный базис. Это позволяет учитывать в процессе анализа влияние используемого инструментального ПО и архитектуры исследуемой ПЛИС на сбоеустойчивость системы, а также убедиться в реализуемости системы в данной конфигурации (проверяется достаточность ресурсов ПЛИС для реализации системы и максимальная частота, на которой она может работать).
Рассмотрим методику оценки сбоеустойчивости системы. Основываясь на полученных в результате испытаний данных о сбоеустойчивости, вычисляется среднее количество сбоев в системе за единицу времени. За единицу времени принимается промежуток, равный длительности исправления выявленного сбоя анализируемой системой обеспечения сбоеустойчивости. Этот промежуток называется циклом исправления сбоя. Учитывая общее количество ресурсов (элементов) в рассматриваемом фрагменте, максимальное количество сбоев, которое может быть исправлено выбранным методом обеспечения сбоеустойчивости, а также интенсивность сбоев, можно сделать вывод о количестве неисправленных ошибок в этом фрагменте за заданный промежуток времени. Анализ производится для периода времени, который равен длительности одного цикла исправления сбоев. Для защищенных конвейерных систем, обеспечивающих исправление сбоев «на лету» (т. е. на каждом такте), длительность цикла исправления сбоя равна периоду рабочего синхросигнала. В таком случае исправимые сбои, произошедшие за время одного такта, будут исправлены к началу следующего такта. В такой системе время непосредственной коррекции сбоя можно не учитывать - сбой, произошедший в очередном фрагменте в момент фиксации значений и исправления сбоев, будет исправлен во время следующего цикла исправления [31].
Для определения количества сбоев, произошедших в микросхеме за время t, рассмотрим фрагмент тестовой системы, состоящий из защищаемого логического блока и дополнительных элементов, применяемых для реализации выбранного метода обеспечения сбоеустойчивости. Пусть n - количество сбоев, исправляемых выбранной системой обеспечения сбоеустойчивости. Предположим, что за время t в этом фрагменте произошло N сбоев. Тогда, при n < Nfrag система не сможет исправить сбои, и искаженное значение будет передано за пределы текущего фрагмента в последующие блоки. Такой сбой может быть детектирован средствами самоконтроля системы или внешними устройствами.
4.3 Получение исходных данных для определения частоты единичных сбоев на микросхему
Как было указано выше, одним из основных факторов, вызывающих поток одиночных сбоев в процессе работы ПЛИС, является воздействие ТЗЧ. Оценка степени воздействия потока ТЗЧ на анализируемую микросхему может быть получена аналитически [147, 148], из документации на микросхему [9, 72, 73], или в результате эксперимента [149, 150, 151]. С помощью этих данных определяется количество сбоев на бит в анализируемой системе при следующих условиях: пусть вероятность появления сбоев подчиняется экспоненциальному закону распределения; тогда по закону Пуассона [152] случайная величина, представляющая собой вероятность появления к сбоев, произошедших за фиксированное время и независимых друг от друга, подчиняется формуле
(Хх1)к _ (4.1)
- )
Согласно [45] интенсивность сбоев
Х=цхахр , (4.2)
где F [частиц / с*см2] - поток частиц, т.е. количество частиц, прошедших через анализируемую область за единицу времени; а [см2/бит] - сечение сбоев, которое характеризует вероятность того, что частица, попавшая в устройство, изменит один бит; q - количество элементов в анализируемом фрагменте, подверженных сбоям.
Тогда вероятность появления неправильного результата для фрагмента, обеспечивающего парирование на каждом такте, составит не более п сбоев:
(4.3)
Чс=0
Для системы из I фрагментов будет определено I вероятностей выдачи искаженного значения рг-, где I Е I. Для конвейерной системы, состоящей из одинаковых фрагментов, все р1 и площади фрагментов равны. Тогда
и ^ ' Лк=0
Рзузг = 1- П^а - Рет) = 1-(1- РеггУ. (4 4)
Таким образом, в общем случае вероятность появления сбоя в системе является функцией от характеристик аппаратной платформы (реакция на воздействие внешних факторов), характеристик внешнего воздействия, метода обеспечения сбоеустойчивости и длительности цикла исправления сбоев. То есть Рвувь = Ч,а, Р), где а характеризует используемую аппаратную платформу; q - аппаратную платформу и используемый метод обеспечения сбоеустойчивости; F - воздействие внешних факторов; t - определяется требованиями к системе, характеристиками системы и характеристиками аппаратной платформы. В данной работе считаем F и t константами, заданными в требованиях, предъявляемых к системе. Изменяемыми параметрами будут аппаратная платформа и используемый метод обеспечения сбоеустойчивости.
4.4 Сравнение систем обеспечения сбоеустойчивости
Как было показано ранее, задача поиска лучшего по заданным критериям метода обеспечения сбоеустойчивости сводится к поиску наименьшего значения р3у81 из множества всех вычисленных в процессе анализа. Предполагая, что в сравнении участвуют m систем, отличающихся друг от друга способами обеспечения сбоеустойчивости и / или аппаратной платформой, получим, что искомая система обладает
Р°Уз1 = т1п[Регг8у81]},] = 1..Ш (45)
или согласно (4.4)
рорг = тт{р= 1..т (46) при т систем, участвующих в исследовании.
Для проведения анализа используем две тестовые системы. Первая
основана на конвейеризированном генераторе CRC-8, вторая - на конвейеризированном генераторе ]М04. Таким образом, проводится анализ таких систем обеспечения сбоеустойчивости, как:
- система без дополнительных средств обеспечения сбоеустойчивости (незащищенная система);
- защищенная система с мажорированием (трехкратная избыточность и побитное голосование «2 из 3») на уровне отдельных ступеней конвейера;
- защищенная система с использованием кода Хэмминга для защиты регистров в ступенях конвейера;
- защищенная система с полным мажорированием (трехкратная избыточность и побитное голосование «2 из 3») конвейера.
В рассматриваемых системах длительность цикла исправления сбоев равна длительности одного такта, поэтому вероятность сбоя в исследуемых системах при г = иьск.
4.4.1 Незащищенная система
В данной системе рассматриваемым фрагментом выбрана одна ступень конвейера. В этой системе сбои не исправляются, т. е. неправильный результат появится уже после одного сбоя. Пусть qsystba.se - полное количество ресурсов, занятое системой. Допустим, что все ступени конвейера занимают одинаковое количество ресурсов микросхемы. Тогда количество ресурсов микросхемы,
4systba.se т ~
затраченное на одну ступень qstba.se = —, где Ь - количество ступеней в
конвейере. Цикл исправления сбоев в данной системе равен длительности одного такта. По формуле (4.2) интенсивность сбоев в одной ступени
^Ьаве = ЧзЫазе Ха Х Р- (4.7)
Среднее количество сбоев в ячейке за один такт - Ысец_с10ск, где
Nсе11_с1оск = ^с1оск КаХр. (4.8)
Так как в незащищенной системе не использовались дополнительные средства для обеспечения сбоеустойчивости, неправильный результат будет получен уже при одном сбое. По формуле (4.3) вероятность появления хотя бы одного сбоя во фрагменте, который не парирует сбои,
Ph , =1- (qstbasex°xF)° x e-(qstbasexaxF) (4.9) Hbasestage ± q¡ ^ c .
Тогда вероятность появления сбоя в конвейере длиной L стадий
Pbase 1 (l Pbasestage) , ( • )
/ \L (4 11)
Pbase = 1-(1-(1- X e-(qstbase^F))) , ^ J
Pbase = 1 - (l - (1 - e-qstbasexNcellclock))L. (4.12)
4.4.2 Система с защитой на основе поблочного мажорирования
Рассматриваемым фрагментом является одна ступень конвейера. Пусть qsyst к- полное количество ресурсов, занятое системой. Предполагая, что все ступени конвейера занимают одинаковое количество ресурсов микросхемы, размер одной ступени ч3 1м]К = —, где Ь - количество стадий системы. Цикл
исправления сбоев в данной системе равен длительности одного такта. По формуле (4.2) интенсивность сбоев в одной ступени
лм1я5{ер = чзгмт хохр. (4ЛЗ)
Так как мажорирование осуществляется побитно, то можно определить интенсивность сбоев в одном бите. Предполагаем, что на вычисление одного
г ЧбСТП ¡Г ~
бита приходится-— ресурсов, задействованных для реализации ступени, где
w - количество разрядов регистра в незащищенной системе, 3xw - количество разрядов в регистре с трехкратной избыточностью. Тогда интенсивность сбоев в одном мажорированном бите
хмщ =^х ч5гм]к хохр. (4.14)
Вероятность появления сбоев в таком фрагменте
Рт]гЬИ(^) = 1
= 1 - (*м'я Х0° Х е{-^м]я5,ерхг)
(4.15)
0!
В работе [130] показано, что вероятность появления неисправимой ошибки в ступени за один такт
Рт.]гзгаде(1) = 1 — (1 — 3 Х Рт]гЬи Х (1 - Рт]гЬИ) — Рт^ЬИ) ■ (416)
Вероятность появления сбоя в конвейере длиной Ь
Рт]7
1 - (1 - (1 - 3 Х (1 - е(-х«1*))2 Х ))
-(е(-
т]к
Ws
Отсюда
Рт]г 1 I 1
-(1-3Х(1- е(3-Х™ХЧ5Ш]К^сеПс1оск)) * (еШй^М^^сЬоск))
- (е(з-ЬХЧ1!Ш1*хМсе11с1оск))
(4.17)
(4.18)
4.4.3 Система с защитой на основе кода Хэмминга
Предполагаем, что цикл исправления сбоев равен одному такту, а ЪуБШатт - полное количество ресурсов, занятое системой. Тогда количество
ресурсов, занятое одной защищенной стадией ц5татт
ЯзуБСНатт Т
= —-, где Ь -
количество стадий. Искаженное значение на выходе фрагмента тестовой
L
3
системы на основе кода Хэмминга появится при появлении двух и более ошибок в одном блоке. Интенсивность сбоев
ЛНатт = ЧзШатт Х а Х ^ (419)
Согласно работе [130] вероятность появления неисправимой ошибки в стадии за один такт
[(ЛНатт)° Х1 , (Анатт)1 (4.20) — Л — I _р лНаттХ1 --р лНаттХ1 I
" \ 0! 1! / Вероятность появления ошибки в конвейере длинной Ь
Рнатт = 1 - (е-Натт * + Лнатт Х е-ХнаттРХ)1 (421)
Отсюда с учетом формулы (4.8) Рнатт = 1- (е-ЧзШаттХ^се11с1оск (4.22)
+ ЧзШатт Х Nсе11с1оск Х е-^НаттХЫсе«сЮск)1.
4.4.4 Система с защитой на основе полносистемного мажорирования
Здесь защищаемым фрагментом выбран один канал, состоящий из Ь ступеней конвейера. Каждое слово данных проходит через все ступени и после выхода из конвейера мажорируется. При трехкратной избыточности всего в системе будет ЗхЬ ступеней. Размер одной ступени в таком случае чз 1зуз=
ЧГиИзуБСт/г ~ тч
, где qfv.iiswtw.jr - полное количество ресурсов, занятое системой. В
таком случае вероятность появления сбоя в одной ступени одного из мажорируемых конвейеров:
Рз1зуз1т]г = 1- (1с1оскХЧзУиат1гХ(ТХЕ) Х е-ЫоскХЧязуз^гХахР) (4.23)
или
у. _ 1 _ р (Чз1зуз1т]гХ^се11с1ос^)
Н51зу51т]г 1 С .
В одном мажорируемом конвейере длиной Ь
Рр1резу51т]г 1 (1 Рз15у51т]г^ . ( . )
В системе, состоящей из трех мажорируемых конвейеров,
РзуБЬтзг 1 (4.25)
(1 3 Х ^РрЬреБу БЬт]^ Х (1 РрЬреБуБЬт]^
+ (РрЬреБуб) >
РзуБЬтзг 1 (426)
2
- (1 - 3 X ((1 - РзЬБуБЬт]^ ) Х (1 - (1 - РзЬБуБЬт]^ ) ((1 Рз1зуз1т]г^ ) ) ■
+
Отсюда
РзуБЬтзг 1 (4.27)
-(1
- 3 X ((1 - 1 - е-(Чз1зузап]гХМсецс1оск)) )
X (1 - (1 - 1 - е-(^^^гХПсе11с1оск)) )
+ ((1 - 1 - е ^^У^г^сеИыоск)) )
4.4.5 Сравнение систем
На графиках приведенных выше функций относительно количества стадий конвейера для различных значений Ысег г сг 0ск, равных 10-2, 10-3, 10-4, ось абсцисс - количество ступеней в конвейере, ось ординат - вероятность появления сбоя в системе (Рис. 4.1-Рис. 4.3).
Вероятности появления сбоев в системе с использованием различных способов обеспечения надежности при Ы_се11_с1оск=10А(-2)
Базовая система Поблочное мажорирование Код Хэмминга
Мажорирование на уровне системы
Рис. 4.1. Вероятность появления сбоев при Ысец_с10ск = 10-2
Вероятности появления сбоев в системе с использованием различных способов обеспечения надежности при Ы_сеЕ_с1оск=10Л(-3)
х
Базовая система Поблочное мажорирование Код Хэмминга
Мажорирование на уровне системы
Рис. 4.2. Вероятность появления сбоев при Ысец_с10ск = 10-3
Вероятности появления сбоев в системе с использованием различных способов обеспечения надежности при М_се11_с1оск=10Л(-4)
р_гез_Ьазе(х) р_ге5_пдг(х) р_гез_ЬаттСх) р_гез_зузпц>(х/
.0:
1x10
-Базовая система
-Поблочное мажорирование
-Код Хэмминга
-Мажорирование на уровне системы
Рис. 4.3. Вероятность появления сбоев при Ысец_с10ск = 10-4
Анализ графиков, приведенных на Рис. 4.1-Рис. 4.3, позволяет выявить следующие закономерности:
- вне зависимости от Ысец_с10ск наибольшую сбоеустойчивость демонстрирует система, использующая поблочное мажорирование;
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.