Научная статья на тему 'Генетический алгоритм диагностирования цифровых устройств'

Генетический алгоритм диагностирования цифровых устройств Текст научной статьи по специальности «Математика»

CC BY
217
64
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ПРОГРАММИРУЕМЫЕ ЛОГИЧЕСКИЕ ИНТЕГРАЛЬНЫЕ СХЕМЫ / ДИАГНОСТИКА / НАДЕЖНОСТЬ / ГЕНЕТИЧЕСКИЙ АЛГОРИТМ / FIELD-PROGRAMMABLE GATE ARRAYS / DIAGNOSTIC / RELIABILITY / GENETIC ALGORITHM

Аннотация научной статьи по математике, автор научной работы — Городилов Алексей Юрьеви, Тюрин Сергей Феофентович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Genetic Algorithm for Digital Device Diagnostic

This paper describes a genetic algorithm to solve the problem of constructing the diagnostic sequence for field-programmable gate arrays based on elements with redundant basis. An original scheme of applying the algorithm that allowed the use of standard genetic operators.

Текст научной работы на тему «Генетический алгоритм диагностирования цифровых устройств»

Г ородилов Алексей Юрьевич

Пермский государственный национальный исследовательский университет Старший преподаватель кафедры Математического обеспечения вычислительных систем

GorodilovAleksej Yur'evich Perm State National Research University Senior lecturer of Computer Science Department E-Mail: [email protected]

Тюрин Сергей Феофентович

Пермский национальный исследовательский политехнический университет

Профессор кафедры автоматики и телемеханики Доктор технических наук, профессор Tyurin Sergej Feofentovich Perm National Research Polytechnic University professor of Department of Automation and Remote Control

E-Mail: [email protected]

05.13.05 Элементы и устройства вычислительной техники и систем управления

Г енетический алгоритм диагностирования цифровых устройств

Genetic Algorithm for Digital Device Diagnostic

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

Abstract: This paper describes a genetic algorithm to solve the problem of constructing the diagnostic sequence for field-programmable gate arrays based on elements with redundant basis. An original scheme of applying the algorithm that allowed the use of standard genetic operators.

Ключевые слова: Программируемые логические интегральные схемы; диагностика; надежность; генетический алгоритм.

Keywords: Field-programmable gate arrays; diagnostic; reliability; genetic algorithm.

***

Введение

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

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

Задача диагностирования

Одной из основных составляющих в ПЛИС типа FPGA (Field Programmable Gate Array

- программируемая пользователем вентильная матрица) являются конфигурируемые логические блоки. Мы будем рассматривать отказы логических элементов в них. Для повышения отказоустойчивости в [5] предлагается использовать элементы с избыточным базисом в качестве основы FPGA. В случае возникновения однократных константных отказов на входе такой элемент сохраняет частичную функциональность, и может быть задействован в схеме после реконфигурации. Таким образом, в каждый момент времени элемент с избыточным базисом может находиться в одном из следующих состояний.

0. Полностью работоспособное состояние, отказов нет. Элемент реализует избыточный базис, состоящий из одной функции f = x • x v x • x .

1. Отказ типа xi=0. Элемент реализует остаточный базис f = x v x • X .

2. Отказ типа x2=0. Элемент реализует остаточный базис f = x v x • x .

3. Отказ типа хэ=0. Элемент реализует остаточный базис f = x • x v x .

4. Отказ типа x4=0. Элемент реализует остаточный базис f5 = x1 • x2 v x3 .

5. Отказ типа xi=1. Элемент реализует остаточный базис f = x3 • x .

6. Отказ типа x2=1. Элемент реализует остаточный базис f = x • x4.

7. Отказ типа x3=1. Элемент реализует остаточный базис f = x • x .

8. Отказ типа x4=1. Элемент реализует остаточный базис f = x • x2.

9. Иной отказ либо комбинация нескольких отказов. Элемент, находящийся в таком состоянии не может быть использован в дальнейшем.

В [6] предлагается алгоритм диагностирования ПЛИС, суть которого состоит в последовательном тестировании каждой ячейки и определении ее состояния. Однако недостатком такого подхода можно считать необходимость введения специального средства диагностического разрыва (мультиплексора) в каждую ячейку, а также усложнение структуры программируемых межсоединений, что ведет к увеличению аппаратных ресурсов, не задействованных непосредственно в реализации схемы цифрового устройства.

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

Пусть в текущей конфигурации задействовано N логических элементов. Будем считать

Главный редактор - д.э.н., профессор К.А. Кирсанов тел. для справок: +7 (925) 853-04-57 (с 1100 - до 1800) Опубликовать статью в журнале - http://publ.naukovedenie.ru

вероятность одновременного отказа двух и более элементов пренебрежимо малой. Тогда количество различных неисправных модификаций схемы равно n=9N (один из 9 видов отказов, описанных выше, происходит в одном из N элементов). Обозначим через Ао исправное цифровое устройство, а через А = {А1, А2, Ап} - множество неисправных модификаций, порождаемых рассматриваемым классом неисправностей. Пусть х=(х(1),х(2),.. ,,х(^)) - последовательность наборов входных сигналов. Если подать эту последовательность на вход устройства А,, на выходе мы получим последовательность выходных сигналов у/=А/(х)=(у/(1),у/(2),.. ,у/(/)). Если уо отличается от всех у/, /=1..п, то последовательность х называется тестовой, и мы будем говорить, что диагностический тест х обнаруживает неисправность. Если для некоторогоу последовательность у) отличается от всех у,, /=0..п, /^7, то диагностический тест х точно идентифицирует неисправность у, то есть определяет место возникновения и тип отказа. Для некоторых пар неисправностей может оказаться, что для любой входной последовательности соответствующие выходные последовательности будут совпадать, тогда такие неисправности отличить в текущей конфигурации невозможно, и для их однозначной идентификации потребуется реконфигурация схемы. То есть даже полный тест (перебор всех возможных входных последовательностей) может не позволить однозначно определить место и тип отказа. Также нужно отметить, что количество наборов входных сигналов в диагностической последовательности (длина последовательности ¿) определяет время диагностирования. Чем короче будет диагностическая последовательность, тем быстрее будет выполняться диагностирование, и, следовательно, быстрее можно будет восстановить работоспособное состояние устройства.

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

Г енетический алгоритм

Для генерации диагностических тестов генетические алгоритмы (ГА) применяются, начиная с середины 90-х годов. В первых работах [8], где для решения задачи построения тестов используются ГА, особи представляли собой простые двоичные вектора (наборы входных сигналов), а не тестовые последовательности. Функция приспособленности для такой особи рассчитывалась, как количество однозначно идентифицируемых неисправностей, которые мог выявить данный тест. Операции скрещивания и мутации ничем не отличались от канонического ГА. Позднее появились работы [7], где в качестве особи ГА рассматривалась двоичная матрица, соответствующая входной диагностической последовательности. Такое кодирование на данный момент считается стандартным на логическом уровне представления цифровых устройств.

Дальнейшим развитием ГА стало появление их параллельных версий. Параллельные модели ГА в области построения диагностических тестов не отличаются принципиально от параллельных реализаций ГА, применяемых для решения других задач - параллельное вычисление фитнесс-функции и островная модель. Обычно для тестирования этих алгоритмов используются слабопараллельные (2-4-х ядерные процессоры) и сильнопараллельные (8 и более ядер) вычислительные системы. Но в последнее время появились данные об использовании технологии СЦОА многоядерных графических ускорителей. Хотя в последнем случае возможны лишь мелкоячеестая структура распараллеливания, но коэффициент ускорения вычислений может быть весьма значительным.

Главный редактор - д.э.н., профессор К.А. Кирсанов тел. для справок: +7 (925) 853-04-57 (с 1100 - до 1800) Опубликовать статью в журнале - http://publ.naukovedenie.ru

Кроме непосредственного получения тестовых последовательностей ГА может быть использован для сопутствующих задач, например, для удаления избыточной информации из диагностических словарей [4].

Особенностью рассматриваемой задачи является, во-первых, рассмотрение

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

последовательность. Для комбинационных же схем каждому узлу дерева будет

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

элементной базы.

Для разработки генетического алгоритма нам нужно решить, как будет представляться особь, как вычислять значение фитнесс-функции, определить операторы селекции, скрещивания, мутации. Ключевым здесь является выбор способа представления.

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

Установить длину последовательности 1=1; оптимальную оценку fopt=cc

Н-1

Г-

Хор! <— х

fopt 4-Ах)

А

_______________" fix) AND r<W?

нет

Рис. Схема применения генетического алгоритма

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

Уточним остальные используемые операторы. Будем использовать два вида одноточечного оператора скрещивания - вертикальный и горизонтальный. В первом случае множество столбцов обеих матриц делится точкой разреза на две части. Первый потомок получается объединением первой части столбцов первой матрицы и второй части столбцов второй матрицы, второй потомок - первой части второй матрицы и второй части первой матрицы. В случае горизонтального оператора скрещивания аналогичные действия выполняются для множества строк. В качестве оператора мутации будем использовать стандартный одноточечный оператор: случайно выбранная строка матрицы заменяется сгенерированной случайным образом. Оператор селекции базируется на идеях выбора родителей по принципу «рулетки» и включения потомков в популяцию на основе принципов «элитизма» и постоянства численности популяции. Условием окончания является достижение определенного номера популяции.

Заключение

Для рассматриваемой задачи построения кратчайшего диагностического теста был разработан генетический алгоритм, особенностью которого является использование внешнего цикла для перебора различных вариантов длин тестов и использование стандартных генетических операторов. Применение использованных подходов на модельных задачах оптимизации (поиска кратчайшего цикла в графе, поиска компактных групп объектов и т.п.) показывает, что генетический алгоритм, использующий стандартные операторы, позволяет найти решение, более близкое к оптимальному, в 70-80% случаев (в задаче поиска кратчайшего цикла).

Запустить ГА для генерации

диагностической

последовательности длнны г;

получить лучшее решение X с

оценкой^х)

ЛИТЕРАТУРА

1. Данилова Е.Ю., Городилов А.Ю. Сравнение генетических алгоритмов на примере задачи коммивояжера // Вестник Пермского ун-та, серия «Математика. Механика. Информатика». - 2009. - вып. 3(29). - С.49-53

2. Иванов Д.Е. Генетические алгоритмы построения входных идентифицирующих

последовательностей цифровых устройств. - Донецк: ТОВ «Цифровая

типограф1я», 2012. - 240 с.

3. Каршенбойм И. JTAG-тестирование // Современная электроника. - 2007. -№2. -С.58-66

4. Миронов С.В., Сперанский Д.В. Генетические алгоритмы для сокращения диагностической информации // Автоматика и телемеханика. - 2008. - №7. -С.146-156.

5. Тюрин С.Ф., Громов О.А. Базисный элемент программируемых логических интегральных схем // Вестник Ижевского государственного технического университета. - 2010. - №3. - С.122-125.

6. Тюрин С.Ф., Громов О.А. Разработка контрольных и диагностических тестов для КМОП элементов с избыточным базисом // Приволжский научный вестник.

- 2013. - № 1 (17). - С.13-21.

7. Prinetto P., Rebaudengo M., Sonza Reorda M. An automatic test pattern generator for large sequential circuits based on genetic algorithms // Proc. Int. Test Conf. - 1994. -P.240-249.

8. Rudnick E.M., Patel J.H., Greenstein G.S., Niermann T.M. Sequential Circuit Test Generation in a Genetic Algorithm Framework // Proc. Design Automation Conf. -1994. - P.698-704.

Рецензент: Южаков Александр Анатольевич, доктор технических наук, профессор, заведующий кафедрой «Автоматика и телемеханика» ФГБОУ ВПО «Пермский национальный исследовательский политехнический университет».

i Надоели баннеры? Вы всегда можете отключить рекламу.