УДК658.512.011:681.326:519.713
МОДЕЛИ ГЕНЕРАЦИИ ТЕСТОВ И МЕТОДЫ ДИАГНОСТИРОВАНИЯ SOC-КОМПОНЕНТОВ
TIECOURA YVES, NGENE CHRISTOPHER UMERAH, ЛИТВИНОВА Е.И., ХАХАНОВ В.И., АЛЕКСАНДРОВ В.И.___________________________
Предлагается структурная модель отношений компонентов (функциональность, устройство, тест, дефекты), которая позволяет определять и классифицировать пути решения практических задач, включая синтез тестов, моделирование неисправностей и поиск дефектов. Описываются методы синтеза тестов для функциональностей, заданных матричными формами описания поведения цифровых компонентов, которые отличаются параллелизмом векторных операций над таблицами. Предлагаются усовершенствованные методы поиска функциональных нарушений, которые дают возможность существенно повысить быстродействие вычислительных процедур, связанных с диагностированием и восстановлением работоспособности программных и аппаратных продуктов. Модели и методы синтеза тестов для функциональностей и диагностирования нарушений могут быть использованы в качестве встроенных компонентов инфраструктуры сервисного обслуживания цифровых систем на кристаллах с применением стандарта граничного сканирования IEEE 1500.
Введение
Актуальность. Тенденция последних лет в части создания новых коммуникационных, вычислительных и информационных сервисов, полезных для человека, обращает внимание на создание все более специализированных гаджетов (gadget), обладающих существенными преимуществами перед персональными компьютерами и ноутбуками: энергопотребление, компактность, вес, стоимость, функциональные возможности, дружественность интерфейса. Практически вся десятка лучших за 2010 год специализированных изделий (Apple iPad, Samsung Galaxy S, Apple MacBook Air, Logitech Revue, Google Nexus One (HTC Desire), Apple iPhone 4, Apple TV, Toshiba Libretto W100, Microsoft Kinect, Nook Color) реализована в виде цифровых систем на кристаллах. Мировой рынок таких гаджетов насчитывает сегодня порядка 3 миллиардов изделий. Для их эффективного проекти-
64
рования, производства и эксплуатации создаются новые технологии и инфраструктуры сервисного обслуживания. Один из возможных шагов в данном направлении описан ниже.
Цель - разработка новых технологий сервисного обслуживания компонентов цифровых систем на кристаллах, ориентированных на решение задач синтеза тестов и поиска дефектов в программных и аппаратных продуктах.
Задачи: 1) Создание структурной модели отношений компонентов (функциональность, устройство, тест, дефекты) для определения и классификации путей решения практических задач, включая синтез тестов, моделирование неисправностей и поиск дефектов. 2) Разработка методов синтеза тестов для функциональностей, заданных матричными формами описания поведения цифровых компонентов. 3) Усовершенствование метода поиска функциональных нарушений для повышения быстродействия вычислительных процедур диагностирования программных и аппаратных продуктов.
Источники: 1. Модель формулирования задач технической диагностики [1-6]. 2. Синтез тестов для функциональностей [4-8]. 3. Встроенное диагностирование цифровых систем [9-17]. 3. Аппаратура и матричные процессоры [18-21].
1. Модели генерации тестов для функциональных элементов
Предлагаются технологичные и эффективные процесс-модели синтеза тестов и их применение для диагностиров ания функциональных нарушений в программных и/или аппаратных продуктах. Используются табличные структуры данных, которые ориентированы на параллельное выполнение векторных логических операций при генерации тестов и поиске дефектных компонентов.
Проблема синтеза или анализа произвольной системы может быть сформулирована в виде взаимодействия (симметрической разности) в кибернетическом пространстве ее модели F с входными воздействиями T и реакциями L:
f(F,T,L) = 0 ^ FATAL = 0 .
Кибернетическое пространство (структура) есть совокупность взаимосвязанных компонентов, с задан-
РИ, 2011, № 1
ной адекватностью описывающих процессы или явления для достижения поставленных целей. Каждый компонент представлен n-мерной фигурой, где координата определена в многозначном алфавите, например Кантора A = {0,1,x,0},x = {0,1}. Мерность формирует структуру фигуры: n=1 - вектор длины k; n=2 - матрица размерностью ki х k2; n=3 - куб размерностью ki х k2 х кз .
Метрика в кибернетического или векторного логического двоичного пространства определяется единственным равенством, которое формирует нулевую xor-сумму расстояний между ненулевым и конечным числом точек, замкнутых в цикл:
n
в =0 di = 0 i=1
Иначе: метрика в векторного логического двоичного пространства есть равная нулю xor-сумма расстояний между конечным числом точек, образующих цикл. Сумма n-мерных двоичных векторов, задающих координаты точек циклической фигуры, равна нулю. Данное определение метрики ставит во главу угла не элементы множества, но отношения, что позволяет сократить систему аксиом с трех до одной и распространить ее действие на сколь угодно сложные конструкции n-мерного пространства. Классическое задание метрики для определения взаимодействия одной, двух и трех точек в векторном логическом пространстве является частным случаем в -метрики при i = 1,2,3 соответственно:
fd! = 0 -о- a = b;
M = \ d1 0 d2 = 0 о d(a,b) = d(b,a);
(d 0 d2 0 d3 = 0 о d(a,b) 0 d(b,c) = d(a,c).
Метрика в векторного логического многозначного пространства есть равная пустому множеству симметрическая разность расстояний между конечным числом точек, образующих цикл:
n
в = A di =0 i=1
Равенство пустому множеству симметрической разности теоретико-множественного взаимодействия подчеркивает равнозначность компонентов, участвующих в формировании уравнения, где единственная операция, используемая в аналитической (четырехзначной) модели, определяется в виде:
A 0 1 x 0
0 0 x 1 0
1 x 0 0 1
x 1 0 0 x
0 0 1 x 0
Для ее определения необходимо выполнить несложные преобразования, представленные в виде следующих доказательств:
xA0 = (x n0) u (x n 0) = (x n 1) u (0n 0) = 1; xA1 = (x n 1) u (~ n 1) = (x n 0) u (0n 1) = 0;
0A0 = (0 n 0) u (0 n 0) = (0 n 1) u (x n 0) = 0; 0A1 = (0n 1) u (0 n 1) = (0 n 0) u (x n 1) = 1; 0A1 = (0 n 1) u (0 n 1) = (0 n 0) u (1 n 1) = x; xA0 = (x n~) u (x n 0) = (x n x) u (0 n 0) = x; xAx = (x n x) u (x n 0) = (0 n x) u (0 n 0) = 0.
При переходе к двузначному алфавиту модель синтеза или анализа кибернетической системы трансформируется к виду
f(F,T,L) = 0 ^ F 0 T 0 L = 0,
где фигурирует уже симметричная xor-операция, имеющая таблицу истинности:
0 01
0 1 0 1 10
Практический интерес представляет обобщение и классификация задач технической диагностики путем создания модели xor-отношений на множестве из четырех основных компонентов. Примитивные процедуры синтеза тестов, моделирования неисправностей и поиска дефектов можно свести к графу (рис. 1) полного взаимодействия четырех вершин (функциональность, устройство, тест, дефекты) G = (F,U,T,L) на основе xor-операции.
Рис. 1. Граф взаимодействия компонентов технической диагностики
Т акой граф порождает четыре базовых треугольника, которые формируют полное множество из 12 практически полезных триад отношений, формулирующих задачи технической диагностики:
T0F0L=0 T0L0U=0 T0F0U=0 F0L0U=0
1) T=F 0 L 2) F=T 0 L 3) L=T0F 4) T=L 0 U 5) L = T 0 U 6) U=T0L 7) T=F 0U 8) F=T 0 U 9) U=T 0F 10) F=L0 U 11) L = F 0 U 12) U=F0L
Содержательно данные задачи можно классифицировать в группы и сформулировать следующим образом.
Г руппа 1 - теоретические эксперименты (на модели функциональности), без устройства: 1) Синтез теста по модели функциональности для заданного списка неисправностей. 2) Построение модели функциональности на основе заданного теста и списка неисправно-
РИ, 2011, № 1
65
стей. 3) Моделирование неисправностей функциональности на заданном тесте.
Группа 2 - реальные эксперименты (на устройстве), без модели функциональности: 4) Синтез теста путем физической эмуляции дефектов в устройстве. 5) Определение списка неисправностей устройства при выполнении диагностического эксперимента. 6) Верификация теста и дефектов в эксперименте на реальном устройстве.
Группа 3 - тестовые эксперименты (верификация), без дефектов: 7) Синтез теста путем сравнения результатов моделирования модели и реального устройства. 8) Синтез функциональности по реальному устройству и заданному тесту. 9) Верификация теста и модели функциональности относительно реального устройства с существующими неисправностями.
Группа 4 - функционированию эксперименты (на рабочих воздействиях), без тестов: 10) Проверка правильности поведения реального устройства на существующих или заданных дефектах. 11) Проверка работоспособности устройств а относительно существующей модели в процессе функционирования. 12) Верификация модели функциональности и списка дефектов относительно поведения реального устройства.
Наиболее популярными задачами из списка перечисленных выше являются: 1, 3, 5, 8, 9. Можно ввести и другую классификацию типов задач, которая дает возможность определить на графе G = (F,U,T,L) все концептуальные пути решения целевых проблем: синтеза тестов, определения модели функциональности, генерирования модели дефектов и проектирования устройства:
1) T=F®L; 4) F=T®L; 7)L=T©F; 10) U=T©L;
2) T=U©L; 5) F=U©L; 8)L=T©U; 11) U=T©F;
3) T=F©U; 6) F=T©U; 9)L=F©U; 12) U=F©L.
Все конструкции, представленные в отношениях, обладают замечательным свойством обратимости. Любой компонент, вычисляемый через два других, может быть использован в качестве аргумента для определения любого из двух исходных. Потому здесь можно говорить о транзитивной обратимости каждой триады отношений на полном графе, когда по двум любым компонентам всегда и однозначно можно восстановить или определить третий. При этом следует иметь в виду, что формат представления каждого компонента должен быть одинаковым по форме и размерности (векторы, матрицы).
Далее рассмотрены более подробно отдельные задачи синтеза тестов и диагностирования дефектов (функциональных нарушений).
2. Синтез тестов F © L -методом
Используется уравнение пространства f(F,T, L) = 0 ^ F © T © L = 0, которое трансформи-
руется к виду T = F © L . Например, для функциональности логического or-элемента синтез теста можно представить в виде T-процедуры:
T = (F © L) n F ,
где L есть матрица одиночных дефектов переменных логического элемента, задающая возможность транспортирования дефектов от входных линий к выходу, а F - таблица истинности:
F =
X] X2 Y
0 0 0
0 1 1
1 0 1
1 1 1
; L =
X1 X2 Y
10 1
01 1
Выполнение Т-процедуры связано с применением xor-операции между векторами F и L. Количество векторных операций равно произведению мощностей векторов в каждой таблице:
Q(T) = (cardF х cardL) х cardF = cardF2 х cardL . Для or-элемента Т-процедура имеет следующий вид:
X| X2 Y
0 0 0
0 1 1
1 0 1
1 1 1
X X2 Y
10 1
X X2 Y
0 0 0
0 1 1
1 0 1
1 1 1
X X2 Y
01 1
X1X2 Y
10 1
00 0
01 1
Если функциональность задана в виде кубического покрытия в троичном алфавите, то для синтеза тестов необходимо использовать несимметричную xor-операцию, которая имеет вид:
© 01
0 0 1
1 1 0
x 10
Для кубического покрытия and-элемента Т-процедура T = (F © L) n F имеет следующий вид:
X1 X2 Y X1 X2 Y
0X 0 © X1 X2 Y 1 1 1
X0 0 10 1 0 0 1
1 1 1 0 1 0
X1 X2 Y X1 X2 Y
0X 0 © X1 X2 Y О О 1
X0 0 01 1 11 1
11 1 10 0
В общем случае выполнение Т-процедуры для произвольной функциональности, представленной кубическим покрытием, показано в следующем примере:
66
РИ, 2011, № 1
X1X2X3 Y
X 0 0 1
1 1 1 1
X 0 1 0
X 1 0 0
0 1 X 0
=T
©L
Xj X2X3 Y~
X1 X2 X3 Y
1 0 0 1
0 1 0 1
0 0 1 1
=T
X1X2X©
0 0 0 0
0 1 1 0
0 0 1 1
0 1 0 1
1 1 1 1
Xj X2X3 Y
0 110 1111
XtX2X3Y
1 1 0 0
1 0 1 0
1 1 1 1
1 0 0 1
XtXzX©'
1 0 1 0
1 1 0 0
1 0 0 1
1 1 1 1
1 1 0 0
1 0 1 0
1 1 1 1
1 0 0 1
0 0 1 1
X1 X2 X3 Y
0 1 1 0
1 1 1 1
1 1 0 0
1 0 1 0
1 0 0 1
XlX2X3Y'
1 0 1 0
1 1 0 0
1 0 0 1
1 1 1 1
0 1 0 1
После синтеза тестов необходимо использовать тест и матрицу дефектов для построения компактной таблицы неисправностей F = (T © L), которая предназначена для выполнения процедуры поиска дефектов:
X1 X2 Y X1 X2 Y X1 X2 Y
1 1 1 © 1 1 1 1 1 1
0 1 0 1 0 1 0 1 0
1 0 0 0 1 1 1 0 0
В данном случае полученная таблица F = (T © L) есть подмножество функциональности F є F = (T © L), отдельные координаты которой отмечены символом инверсии, что означает проверяемость неисправности, инверсной по отношению к исправному состоянию. Формально синтез таблицы неисправностей использует некоммутативную операцию сжатия двух битов данных, представленную в следующем виде:
© 01
0 1 0 0 11
Ниже предлагается вариант синтеза таблицы неисправностей для более сложной функциональности (точками обозначены нули):
X1 X2 X3 Y X1 X2 X3 Y X1 X2 X3 Y
0 1 1 0 1 . 1 0 1 1 0
1 1 1 1 © 1 1 1 1 1 1 1 1
1 1 0 0 . 1 1 1 1 1 0 0
1 0 1 0 .1 1 1 0 1 0
1 0 0 1 .1 1 1 1 0 0 1
Компактная таблица неисправностей является более предпочтительной для визуального оценивания результатов взаимодействия теста и дефектов, проверяемых на каждом входном наборе. При этом выигрыш в объеме памяти для хранения таблицы отсутствует.
1) f(x) = xj v xjx2 . 2) f(x) = X1X2 v X1X3 . 3) f(x) = x2x3 v x1x2x3 .
Вопросы, подлежащие решению: 1) Определение всех производных первого порядка по аналитической, кубической и табличной форме задания логической функции. 2) Верификация полученных условий активизации путем их моделирования на одной из форм описания функциональности. 3) Синтез тестов активизации переменных логической функции на основе вычисления производных.
Пример 1. Определить все производные первого порядка по аналитической форме логической функции
f(x) = xj v x^2 .
Применение формулы вычисления
f'(x ) = df(x1,x2,...,xi,...,xn) =
1 dxi
= f(x1,x2,...,xi = 0,...,xn) © f(x1,x2,...,xi = 1,...,xn)
определяет булеву производную первого порядка как сумму по модулю два нулевой и единичной остаточных функций.
Для рассматриваемой функции получается:
df(x1,x2) = f(0,x2) © f(1,x2) =
dxj
= (0 v 0x2) © (1 v 1x2) = 0 © 1 = 1;
df(xi,x2) = f(x1,0) © f(x1,1) =
dx2
= (xj vxj • 0)©(xj vxj • 1) = (xj vxj -1)©(xj vxj • 0) = = (xx v xx) © (xx v 0) = xx © xx = 0. Нулевое значение производной означает отсутствие условий активизации переменной x2 , что дает основания считать ее несущественной, а следовательно, убрать из числа переменных, формирующих функциональность.
Пример 2. Определить все производные первого порядка по аналитической форме логической функции f(x) = xjx2 v xjx3. Для рассматриваемой функции выполняются следующие вычисления:
3. Аппарат булевых производных для синтеза тестов
Рассматриваются методы взятия булевых производных по таблице истинности, дизъюнктивной форме или кубическому покрытию для создания условий активизации входных переменных при синтезе тестов. Исследование метода предлагается выполнить с помощью следующих трех примеров логических функций:
df(xbx2,x3) = f(0,x2,x3) © f(1,x2,x3) =
dxj
= (0 • x2 v 0 • x3) © (1- x2 v 1 • x3) =
= (0 v 1 • x3 ) © (x2 v 0 • x3) =
= x3 © x2 = x2x3 v x2x3;
РИ, 2011, № 1
67
df(x,x2,x3) = f(x[,ojX3) ©f(x[,1jx3) = xjx3 ©(xj v x3) = dx2
= xjx3(xi v x3) v xjx3(xi vx3)=(xj v x3)(xj v x3) v xp^x^ = xj.
dr(x,x2'x3) =f(?[,x2,0)®f(?i,x2,1)= xjx2 ©(xj vx2) = dx3
= xjx2( xj vx2)vxjx2(xi vx2)=(xj vx2)(xjvx2)vxix2xix2 = xp
Для трех переменных получены 4 условия активизации, которые соответствуют четырем логическим путям в схемной структуре дизъюнктивной формы данной функции.
Пример 3. Определить все производные первого порядка по кубической форме логической функции:
f(x)=x2x3 vxix2x3
xi x2 x3 Y
X 0 0 1
1 1 1 1
X 0 1 0
X 1 0 0
0 1 X 0
x1 x2 x3 Y
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
x2x3 x1 00011110
0 1 10 0 0 10 10
Процесс-модель вычисления производной по переменной xj для функции, заданной табличной формой, имеет следующие пункты. i) Моделирование по таблице истинности (кубическому покрытию) входных наборов для определения столбца Y0, где переменная xj имеет только нулевое значение для всех строк таблицы истинности. Число таких наборов всегда равно q = 2n-1, n- число переменных. 2) Вычисление координат столбца Y1 с единичным значением переменной xj для всех строк таблицы. 3) Вычисление столбца Y© = Y0 © Y1 с учетом правила
0©Xvi©X = X . 4) Формирование дизъюнктивной формы производной функции по единичным значениям столбца Y© без переменной xi, по которой берется производная. Иначе, фиксируются строки таблицы, соответствующие единичным значениям столбца Y©, который определяет производную функции. Аналитическая модель процесса взятия производной по функции, представленной таблицей, имеет следующий вид:
= f(xpx2,...,xi = 0,...xn) ©f(xpx23 =1,...xn); dx
Y© = [Y0 = f(xpx2,...,xi = 0,...xn)]©[Y1 = =1,...xn)L
Для двух различных табличных форм результат вычисления производной по первой переменной представлен ниже:
x1 x2 x3 Y Y,° Y1 Y © Y1
X 0 0 1 1 1 0
1 1 1 1 0 1 1
X 0 1 0 0 0 0
X 1 0 0 0 0 0
0 1 X 0 0 X 1
x1 x2 x3 Y Y0 Yj Y © Y1
0 0 0 1 1 1 0
0 0 1 0 0 0 0
0 1 0 0 0 0 0
0 1 1 0 0 1 1
1 0 0 1 1 1 0
1 0 1 0 0 0 0
1 1 0 0 0 0 0
1 1 1 1 0 1 1
=x2 vx2x3=x2x3;
= x2x3.
При неоднозначном значении производной для функции, заданной кубическим покрытием, выбирается терм, имеющий максимальное число переменных. Минимизация производной функции на основе тождества a v ab = a не сохраняет условия активизации переменной, по которой берется производная. В самом деле, значение функции от трех переменных при условиях ab v ab может быть равно нулю (единице), что означает возможность отсутствия изменения функции при активизации переменной «с» (последний столбец карты Карно):
ab c 00 01 11 10
0 1 10 0 0 10 10
Лемма непересекаемости кубов. Возможность корректного взятия производной для получения теста
активизации по переменной xi ограничивается такой минимальной структурой кубического покрытия или аналитической дизъюнктивной (конъюнктивной) нормальной формой, где пересечение любых кубов (строк таблицы истинности) или термов ДНФ (КНФ) дает пустое множество:
— = f(xi,x2,...,x1 = 0,...,xn)©f(xi,x2 Xi = 1,...,xn)ЄТ-о-
dxi
Vi, j(Ci n Cj = 0); i, j = 1,n; i * j.
В самом деле, если покрытие, представленное выше, записать по правилам непересекаемости кубов, то все производные будут валидны для синтеза тестов без дополнительной проверки:
f(x)= x2x3 v xjx2x3
x1 x2 x3 Y x1 x2 x3 Y
X 0 0 1 X 0 0 1
1 1 1 1 1 1 1 1
X 0 1 0 X 0 1 0
X 1 0 0 X 1 0 0
0 1 X 0 0 1 1 0
Чтобы получить такое кубическое покрытие, необходимо выполнять минимизацию всеми существующими методами (карты Карно, Квайна, существенных переменных, неопределенных коэффициентов, бинар-
РИ, 2011, № 1
68
ного графа) с учетом правила: покрытия нулевых и единичных координат таблицы истинности в процессе минимизации не должны пересекаться. В рассматриваемом случае, когда функциональность переписана с учетом данного правила, даже общее число кубов не изменилось, в то время как покрытие приобрело качество непересекаемости (как у таблицы истинности) для синтеза тестов активизации переменных:
df
dxj
x1 x2 x3 Y Y0 2 Y1 Y0 2
X 0 0 1 1 1 0
1 1 1 1 0 1 1
X 0 1 0 0 0 0
X 1 0 0 0 0 0
0 1 1 0 0 0 0
df
dxj
x1 x2 x3 Y Y0 2 Y1 2 Y0 2
0 0 0 1 1 1 0
0 0 1 0 0 0 0
0 1 0 0 0 0 0
0 1 1 0 0 1 1
1 0 0 1 1 1 0
1 0 1 0 0 0 0
1 1 0 0 0 0 0
1 1 1 1 0 1 1
X2X3 ;
x2x3.
Вычисление производных по всем входным переменным дает возможность построить тест активизации для функциональности, заданной уже не таблицей истинности, а кубическим покрытием, что может существенно уменьшить время синтеза тестов. Для второй переменной функции f(x) = X2X3 V XJX2X3 процесс вычисления производных для трех различных форм (кубической, табличной и аналитической) имеет следующий вид:
_df
dx2
x1 x2 x3 Y Y0 Y1 Y0 Y2 Y2 Y2
X 0 0 1 1 0 1
1 1 1 1 0 1 1
X 0 1 0 0 X X
X 1 0 0 1 0 1
0 1 1 0 0 0 0
=x3 VXJX3 VX3 = x3 VXJX3;
x1 x2 x3 Y Y0 Y2 Y1 Y2 Y0 y2
0 0 0 1 1 0 1
0 0 1 0 0 0 0
0 1 0 0 1 0 1
0 1 1 0 0 0 0
1 0 0 1 1 0 1
1 0 1 0 0 1 1
1 1 0 0 1 0 1
1 1 1 1 0 1 1
=VXJX3 vxjx3 vxjx3 = x3 vxjx3;
Аналогичный результат получен путем определения производной по дизъюнктивной нормальной форме логической функции:
РИ, 20JJ, № J
df(xj,x2,x3)
dx2
= f(xj,0,x3) 0 f(xj,j,x3) =
= (x3) 0 (xjx3) = (x3) (xjx3) V (x3) (xjx3) =
= (xjx3) V (xjx3 V x3x3) = xjx3 V x3.
Длятретьей переменной функции f(x) = x2x3 V xjx2x3 производные от трех различных форм (кубической, табличной и аналитической) представлены в следую -щем виде:
df
d>3
x1 x2 x3 Y Y0 Y3 Y1 Y0 Y3
X 0 0 1 1 0 1
1 1 1 1 0 1 1
X 0 1 0 0 0 0
X 1 0 0 0 X X
0 1 1 0 0 0 0
=x2 V xjx2;
x1 x2 x3 Y Y30 y3 Y0
0 0 0 1 1 0 1
0 0 1 0 1 0 1
0 1 0 0 0 0 0
0 1 1 0 0 0 0
1 0 0 1 1 0 1
1 0 1 0 1 0 1
1 1 0 0 0 1 1
1 1 1 1 0 1 1
=Vxjx2 V xjx2 V xjx2 = x2 V x^;
df(x2x3 V xpx2x3) dx3
f(xj,x2,0) 0 f(xj,x2,j) =
= (x2) 0 (xix2) = (x2) (xix2) V (x2) (xix2) = = (x jx 2 ) V (xjx2 V x2x2) = xix2 V x2-
Таким образом, все результаты по вычислению производных от трех форм задания функции идентичны. Наиболее технологичным является метод взятия производной по таблице истинности. Но использование кубического покрытия имеет меньшую вычислительную сложность в силу компактного представления функциональности за счет введения избыточности (символа Х) в двоичный алфавит. Использование аналитической формы предполагает существенное повышение сложности алгоритмов, связанной с применением законов булевой алгебры и минимизации функций, что ограничивает ее применение для решения практических задач.
Процесс-модель получения теста
T = [Tjj ], i = J, k; j = j,n комбинационной функциональности:
1) f'(xi) = f(x1,x2,...,xi = 0,...,xn) 0 f(xbx2,...Xi = 1,...,xn);
n
2) T = U[f'(xi)*(xi = 0) V (xi = 1)];
i=1
3) Tj = Ti-1J ^ Tj = X;T1j = 1 ^ T1j = X;
4) T = T\T; ^T; = Ti-r,r = U-U =
69
1) Вычисление производных по всем n переменным функциональности путем использования одной из форм: аналитической, табличной, кубической. 2) Объединение всех условий (векторов) активизации в таблицу, где каждому вектору путем конкатенации (*) ставится в соответствие изменение переменной, по которой была взята производная, что означает удвоение числа тестовых наборов по отношению к общему количеству (k) условий активизации. 3) Доопределение символа Х={0,1} в координате путем присвоения двоичного значения одноименной координаты в предыдущем векторе для получения теста минимальной длины. 4) Минимизация тестовых векторов путем удаления повторяющихся входных последовательностей.
Рис. 2 иллюстрирует таблицы процесса получения теста в соответствии с пунктами 2-4 алгоритма для функциональности f = Х2Х3 v Х1Х2Х3 , представленной схемной структурой.
T =
Х1 Х2 Х3 Y
0 1 1 0
1 1 1 1
X 0 0 1
X 1 0 0
1 0 1 0
1 1 1 1
X 0 0 1
X 0 1 0
1 1 0 0
1 1 1 1
Х1 Х2 Х3 Y
0 1 1 0
1 1 1 1
1 0 0 1
1 1 0 0
1 0 1 0
1 1 1 1
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
Х1 Х2 Х3 Y
0 1 1 0
1 1 1 1
1 0 0 1
1 1 0 0
1 0 1 0
а
Рис. 2. Таблицы тестов (а) и схемная структура булевой функции (б)
Полученный тест по количеству и качеству идентичен входным наборам, синтезированным ранее с помощью F ® L -метода, следовательно, он имеет одинаковые свойства по покрытию неисправностей и глубине поиска дефектов.
Предложенная процесс-модель синтеза тестов для функциональностей может быть использов ана в качестве встроенного компонента инфраструктуры сервисного обслуживания цифровых систем на кристаллах с использованием стандарта граничного сканирования IEEE 1500.
4. Векторно-логические методы анализа таблиц функциональных нарушений
Аналитическая модель верификации HDL-кода с использованием механизма темпоральных ассерций ориентирована на достижение заданной глубины диагностирования и представлена в следующем виде: 70
M = f(F,L,T,C,A,t),
C = {C1,C2,...,Ci,...,Cm};
L = {L1,L2,...,Li,..,Ln};
A(t) = {AbA2,...,Ab...,Ak};
A c L; F = L x C; k < n;
T = {T1,T2,...,Ti,...,Tp}.
Здесь Ci - группа операторов кода, нагруженная на вершину Li (переменная, регистр, счетчик, память) и формирующая ее состояние; F - функциональность, представленная транзакционным графом F = L x C в виде декартова произведения множества вершин и дуг; A - совокупность темпоральных ассерций, как подмножество вершин транзакционного графа A c L. Метод поиска функциональных нарушений (ФН) блока операторов кода использует предварительно построенную таблицу ФН B = [Bij ], где строка есть отношение между тестовым сегментом и подмножеством программных блоков Ti «(Bb, Bi2,..., Bij,..., Bin) с возможными ФН. Столбец таблицы формирует отношение между программным блоком и тестовыми
сегментами Bj « (Tj T2j ,...,Ty,..., Tpj), которые могут проверять блок с ФН. На стадии моделирования определяется обобщенная реакция
m = {mbm2,...,mi,...,mp} механизма ассерций F на тест путем формирования
mi = (A1 v a2 v... v Ai v...v Ak), Ai = {0,1} как реакции ассерций на тест-сегмент Ti . Поиск ФН основан на определении xor-операции между вектором состояния ассерций и столбцов таблицы ФН m © (B1 v B2 v... v Bj v... v Bn). Выбор решения определяется совокупностью векторов B j с минимальным числом единичных координат:
pp
B = min [Bj = 2 (Bij © mi)] j=1,n i=1 i=1 ’
формирующих программные блоки с ФН, проверяемые на тестовых сегментах.
Повышение адекватности модели диагностирования ФН блоков HDL-кода связано с расширением пространства реакции проекта в процессе его тестовой верификации. В этом случае следует расширить пространство существования механизма ассерций до двумерного путем модификации векторов m и A:
Ai = (Ai1, Ai2,.., Aij,.., Aik);
mi = (mibmi2,...,mij,...,mik);
Bij = (Bij1, Bij2,.., Bijr,.., Bijk);
{Aij,mij,Bijr} = {0,1};
i = 1,p; j = 1,n; r = 1,k.
При этом таблица ФН становится трехмерной по параметрам: i = 1,p; j = 1,n; r = 1,k - числа строк или
РИ, 2011, № 1
тест-сегментов, столбцов или функциональных блоков HDL-модели, темпоральных ассерций или точек наблюдения для HDL-кода соответственно:
B A1 A2 A3 A4 A5 A6 A7 A8 B1 B2 B3 B4 B5 B6 B7 B8 m
T1 1001 1110 0001 0110 0011 1110 0001 1110 1001
T2 1010 1000 0001 0110 0001 00011110 1110 1000
T3 1110 0001 1111 0111 1011 1110 1001 1101 0011
T4 1000 0111 0110 1001 1000 0001 1011 1110 1011
T5 0001 0110 1100 0111 0010 1110 0001 1000 1001
Тб 1110 1011 0110 0001 1110 1100 1001 0111 1110
Т7 0110 1101 0110 1000 0111 1011 01011110 0001
Т8 1000 1110 1001 0100 0101 1001 0111 0001 1110
Потенциально трехмерность таблицы ФН увеличивает объем диагностической информации, что дает возможность повысить глубину поиска некорректного программного блока, в пределе до оператора или строки кода. Однако для анализа трехмерной таблицы ФН необходимо модифицировать предложенные методы диагностирования.
Поиск дефектов по таблице неисправностей или функциональных нарушений на основе вектора экспериментальной проверки - реакции (m) функциональности на тест m = (m1,m2,...,mj,...,mn),mi = {0,1} сводится к методам анализа строк или столбцов.
Первый метод основан на применении векторной xor-операции между реакцией m функциональности на тест, формально рассматриваемого в качестве входного вектор-столбца или маски m, и столбцов таблицы неисправностей m© (Bi vB2 v... v Bj v... v Bm). Для подсчета качества взаимодействия векторов Qj(m© Bj) в целях выбора лучшего решения определяются столбцы c минимальным числом единиц результирующего вектора
n n
B = min [B; = 2 (Bjj © mj)] j=1,k J j=i Ji=1 '
Они идентифицируют и формируют дефектные блоки с функциональными нарушениями, проверяемые на тестовых наборах. Аналитическая модель процесса получения решения в виде списка блоков с ФН, присутствующих в программном продукте, представлена в следующем виде:
n n
B = min [Bj = 2(Bjj © mj)]; j=1,k j=1 i =1
0 n n (1)
B0 = [B; = 2(Bjj © mj) = 0]. j=1,k j=1 i=1
Здесь фигурирует вектор экспериментальной проверки, который является входным для последующего анализа таблицы ФН:
m = f(A,B) © f*(A, B,L) (2)
есть результат проведения тестового эксперимента -
сравнение функционалов (состояний выходов) эта*
лонного f(A, B) и реального f (A, B, L) устройства с дефектами L на тестовых наборах A. Во втором случае, если множество B0 > 1, это означает наличие эквивалентных, не различимых на данном тесте и механизме ассерций, функциональных нарушений. Выбор лучшего решения Y = v[(Q1 л Q2) © Q1] с минимальным числом единичных координат из двух альтернатив, представленных векторными оценками Q1 v Q2 , осуществляется с помощью схемы, изображенной на рис. 3.
Рис. 3. Схема выбора лучшего решения
Достоинство метода - выбор лучшего решения из всех возможных одиночных и кратных ФН. По существу, в список дефектов включаются такие одиночные ФН, которые при логическом умножении на вектор экспериментальной проверки дают результат в виде соответствующего вектор-столбца. Дизъюнкция всех столбцов, составляющих решение, равна векто-
r
ру экспериментальной проверки ,v(Bj єB) = m. Далее рассматривается пример анализа таблицы ФН блока Row_buffer, представленного на рис. 4.
Test B1 L1 B2 L2 B3 L3 B4 L4 B5 B6 Cl Ri B7 R2 B8 D1 B9 D2 B10 D3 m1 m2
T1 1 0 0 0 0 1 0 1 0 1 0 1
T2 0 1 0 0 0 0 1 0 1 0 1 1
T3 0 0 1 0 0 1 1 1 0 1 0 1
T4 0 0 0 1 0 0 1 0 1 0 1 0
T5 0 0 0 0 1 1 1 1 0 1 0 0
Тб 1 0 0 0 0 0 1 0 1 0 1 1
T7 0 1 0 0 0 1 0 1 0 0 0 1
Т8 0 0 1 0 0 1 0 1 0 0 0 1
T9 0 0 1 0 0 0 1 0 1 0 1 0
T10 0 0 0 1 0 1 1 1 0 0 0 0
T11 0 0 0 1 0 0 0 0 0 1 0 0
T12 0 0 0 0 1 0 1 0 1 0 1 0
T13 0 0 0 0 1 1 1 1 0 0 0 0
Рис. 4. Row_buffer транзакционный граф и таблица ФН
РИ, 2011, № 1
71
На основе процедуры диагностирования (1) и таблицы ФН (см. рис. 4) можно определить дефектные компоненты методом анализа столбцов таблицы ФН. Здесь векторы mi, m2 формируют результаты диагностического эксперимента, выполненные по процедуре (2). Результат диагностирования одиночных и кратных ФН имеет следующий вид:
10
Bs(mi) = mi л ( v Bj) = B9 ^D2;
j=1
10
Bm(m2) = m2 л( v Bj) = B1 vB2 ^ L1 vL2;
j=1
Q(mbD2) = 1;
1 4 1
Q[m2 ,(L1 v L2)] = 3(43 + 3 +1) = 0,52.
В первом случае диагноз определен в виде одного дефектного блока D2 , присутствующего в транзакционном графе, качество решения равно 1. Во втором случае процедура диагностирования выявила наличие двух дефектных модулей L1 v L2 , которые не смогли сформировать идеальную оценку качества. Тем не менее, решение является лучшим среди всех возможных, которое максимально приближено к вектору экспериментальной проверки по критерию принадлежности Q[m2, (L1 v L2)]. Вычислительная сложность метода анализа столбцов определяется следующей зависимостью:
Zc = 3n2 + n2 = 4n2; Zr = 3n + n = 4n.
Здесь первая оценка учитывает выполнение координатных операций над матрицей, размерностью n х n . Вторая оценка определяет вычислительную сложность регистровых параллельных операций для подсчета критериев качества и обработки матрицы соответственно.
Логический метод анализа строк таблицы неисправностей. Стратегия определения ошибок программного кода по таблице ФН связана с анализом ее строк, состоящим из двух процедур: 1) вычисление логического произведения конъюнкции строк, отмеченных единичными значениями вектора Ti(mi = 1), на отрицание дизъюнкции нулевых строк Ti(mi = 0) для одиночных дефектных блоков; 2) вычисление логического произведения дизъюнкции единичных строк на отрицание дизъюнкции нулевых строк для кратных дефектных блоков:
Bs
( л Ti)л( v Ti);
Vmj =1 Vmj =0
Bm
( v Ti)л( v Ti)
(3)
Формулы интересны тем, что они не привязаны к критериям качества диагностирования, а оперируют лишь двумя компонентами, таблицей ФН и вектором экспериментальной проверки. Выполнение процедуры диагностирования по формулам (3) для вектора экспериментальной проверки
m1 = (0101010010010),
заданного в последней таблице ФН, дает результат: Bs (m1 ,T) = D2 , который не хуже, чем ранее полученный методом анализа столбцов. Для вектора экспериментальной проверки m2 = (1110011100000) резуль-
тат диагностирования имеет вид: Bm (m2, T) = L1 v L2 .
Вычислительная сложность метода анализа строк определяется следующей зависимостью:
c 2 r
Z = n ; Z = n. Первая оценка предназначена для подсчета числа координатных операций, вторая определяет вычислительную сложность процесса обработки на основе регистровых параллельных операций. Предложенные методы диагностирования ФН для программных и аппаратных продуктов есть один из наиболее существенных компонентов инфраструктуры сервисного обслуживания проектируемых изделий.
Формулы (3) могут быть модифицированы, если ввести следующие обозначения:
a = ( л Ti); b = ( v Ti); c = ( v Ti);
Vmj =1 Vmj =0 Vmj =1
Bs = ab = a Ф ab = a(a Ф b) = a(b Ф1); Bm = cb = c Ф cb = c(c Ф b) = c(b Ф1);
B lab = ab = a Ф ab = a(a Ф b) = a(b Ф1);
[cb = cb = c Ф cb = c(c Ф b) = c(b Ф1) ^ ab = 0
Любое выражение в правой части уравнений может быть использовано для определения функционального нарушения в программном или аппаратном изделии. Различие заключается в наличии или отсутствии инверсии, заменяемой xor-операцией, которая для задач диагностирования и распознавания образов зачастую является более предпочтительной. В таком случае процесс-модель диагностирования одиночных (используется a-компонент) или кратных (b-компонент) дефектов (функциональных нарушений) на основе анализа таблицы ФН будет иметь эффективную векторно-ориентированную вычислительную технологию:
B = (b © 1)(a v c)
встроенного сервисного обслуживания программных и/или аппаратных продуктов. С позиции теории множеств это означает определение результата теоретико-множественного вычитания
B = (a v c) \ b = (a \ b) v (c \ b)
в алгебрологическом векторном пространстве.
Для таких операций необходим мультиматричный процессор (ММП), где каждый примитив ориентирован на параллельное выполнение только одной (and, or, xor, slc) операции над соответствующей матрицей (двумерный массив данных). Количество командноориентированных матриц-примитивов создает систе-
72
РИ, 2011, № 1
му - гетерогенный мультиматричный процессор бинарных операций с буфером M (рис. 5).
Рис. 5. Мультиматричный процессор бинарных операций
Здесь представлены стандартные блоки: памяти данных DM и программ PM, управления CU, интерфейс I-face и сервисного обслуживания I-IP, а также мультиматричный модуль процессора, включающий 4 блока памяти со встроенными в них операциями (A - and, B - xor, C - or, D - slc - shift left crowding) и буферную память M. Мультиматричный процессор (MMP) ориентирован на параллельное выполнение в данном случае одной из четырех инструкций (ISA - Instruction Set Architecture), оперирующей матрицами двоичных данных одинаковой размерности:
M = M {and,or,xor,slc}{A,B,C,D}
с занесением результата в буфер M. Особенность ММП в том, что не ячейка матрицы имеет систему команд из четырех операций, а каждая команда имеет собственную матрицу ячеек в качестве данных для параллельной обработки, что существенно упрощает структуру управления и устройства в целом. Вся сложность ММП перенесена на структуры данных, где память матрицы имеет одну аппаратно-реализованную встроенную команду. Это позволяет иметь примитивную систему управления параллельными вычислительными процессами (SIMD - Single Instruction Multiple Data), последовательностную по своей сути, а значит, нет необходимости создавать сверхсложные компиляторы, ориентированные на распараллеливание вычислительных процессов.
5. Заключение
1. Представлена структурная модель отношений на множестве из четырех основных компонентов технической диагностики (функциональность, устройство, тест, дефекты), которая характеризуется полным xor-взаимодействием всех вершин графа и транзитивной обратимостью каждой триады отношений, что позволяет определить и классифицировать пути решения практических задач, включая синтез тестов, моделирование неисправностей и поиск дефектов.
2. Предложены усовершенствованные методы синтеза тестов для функциональностей, заданных матричными формами описания поведения цифровых компонентов, которые отличаются параллелизмом векторных операций над таблицами, что дает возможность существенно (х2) повысить быстродействие вычислительных процедур.
3. Предложены усовершенствованные методы поиска функциональных нарушений, которые отличаются параллелизмом выполнения векторных операций над строками таблицы ФН, что дает возможность существенно (х2) повысить быстродействие вычислительных процедур, связанных с диагностированием и восстановлением работоспособности программных и аппаратных продуктов.
4. Процесс-модели и методы синтеза тестов для функциональностей и диагностирования нарушений могут быть использованы в качестве встроенных компонентов инфраструктуры сервисного обслуживания цифровых систем на кристаллах с применением стандарта граничного сканирования IEEE 1500.
5. Предложена усовершенствованная процесс-модель определения функциональных нарушений в программном или аппаратном изделии, которая отличается использованием xor-операции, что дает возможность повысить быстродействие диагностирования одиночных или кратных дефектов (функциональных нарушений) на основе параллельного анализа таблицы ФН с помощью логических векторных операций and, or, xor.
Литература: 1.Основы технической диагностики / Под. ред. П.П.Пархоменко. М.: Энергия, 1976. 460с. 2. Пархоменко П.П., Согомонян Е.С. Основы технической диагностики (Оптимизация алгоритмов диагностирования, аппаратурные средства) / Под ред. П. П. Пархоменко. М.: Энергия, 1981. 320 c. 3. Инфраструктура мозгоподобных вычислительных процессов / М.Ф. Бондаренко, О.А. Гузь, В.И. Хаханов, Ю.П. Шабанов-Кушнаренко. Харьков: Новое Слово. 2010. 160 с. 4. Проектирование и верификация цифровых систем на кристаллах / В.И. Хаханов, И.В. Хаха-нова, Е.И. Литвинова, О.А. Гузь. Харьков: Новое слово. 2010. 528с. 5. Семенец В.В., Хаханова И.В., Хаханов В.И. Проектирование цифровых систем с использованием языка VHDL. Харьков: ХНУРЭ. 2003.492 с. 6. Хаханов В.И., Хаханова И.В. VHDL+Verilog = синтез за минуты. Харьков: ХНУРЭ. 2006. 264с. 7. Хаханов В.И. Техническая диагностика цифровых и микропроцессорных структур: Учебник. К.: ИСИО, 1995. 242с. 8. СкобцовЮ.А. Логическое моделирование и тестирование цифровых устройств/ Ю.А. Скобцов, В.Ю. Скобцов. Донецк: ИПММ НАН Украины, ДонНТУ, 2005. 436 с. 9. IEEE Standard for Reduced-Pin and Enhanced-Functionality Test Access Port and Boundary-Scan Architecture IEEE Std 1149.7-2009. 985 p. 10. Da Silva F., McLaurin T., Waayers T. The Core Test Wrapper Handbook. Rationale and Application of IEEE Std. 1500™. Springer. 2006. XXIX. 276 p. 11. Marinissen E.J., Yervant Zorian. Guest Editors’ Introduction: The Status of IEEE Std 1500.-IEEE Design & Test of Computers. 2009. No26(1). P.67. 12. IEEE Std 1800-2009 IEEE Standard for System Verilog-Unified Hardware Design, Specification, and Verification Language. http://ieeexplore.ieee.org/servlet/
РИ, 2011, № 1
73
opac?punumber= 5354133 13. Marinissen E.J. Testing TSV-based three-dimensional stacked ICs // DATE 2010. 2010. P.1689-1694. 14. Benso A., Di Carlo S., Prinetto P., Zorian Y. IEEE Standard 1500 Compliance Verification for Embedded Cores // IEEE Trans. VLSI Syst. 2008. No 16(4). P. 397-407. 15. Ubar R., Kostin S., Raik J. Embedded diagnosis in digital systems // 26th International Conference “Microelectronics”, MIEL 2008. 2008. P. 421-424. 16. Elm M, Wunderlich H.-J. Scan Chain Organization for Embedded Diagnosis // Design, Automation and Test in Europe, DATE ’08. 2008.P. 468-473. 17. Bulent I. Dervisoglu. A Unified DFT Architecture for Use with IEEE 1149.1 and VSIA/IEEE P1500 Compliant Test Access Controllers. Proceedings of the Design Automation Conference. 2001. P. 53-58. 18. Chenlong Hu, Ping Yang, Ying Xiao, Shaoxiong Zhou. Hardware design and realization of matrix converter based on DSP & CPLD // 3rd International Conference Power Electronics Systems and Applications. 2009. P. 1-5. 19. Dave N., Fleming K., Myron King, Pellauer M., Vijayaraghavan M. Hardware Acceleration of Matrix Multiplication on a Xilinx FPGA // 5 th IEEE/ACM International Conference Formal Methods and Models for Codesign. 2007. P.97-100. 20. Loucks W.M., SnelgroveM., Zaky S.G. A Vector Processor Based on One-BitMicroprocessors // IEEE Micro.Volume 2, Issue 1. 1982. P. 53-62. 21. Hilewitz Y., Lauradoux C., Lee R.B. Bit matrix multiplication in commodity processors // International Conference Application-Specific Systems, Architectures and Processors. 2008. P. 7-12.
Поступила в редколлегию 11.01.2011 Рецензент: д-р техн. наук, проф. Баркалов А.А.
Tiecoura Yves, аспирант кафедры АПВТ ХНУРЭ. Научные интересы: техническая диагностика цифровых систем и сетей. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-326. E-mail: [email protected]
Ngene Christopher Umerah, аспирант кафедры АПВТ ХНУРЭ. Научные интересы: техническая диагностика цифровых систем и сетей. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-326. E-mail:
hahanov@kture. kharkov. ua.
Литвинова Евгения Ивановна, канд. техн. наук, профессор кафедры АПВТ ХНУРЭ. Научные интересы: автоматизация диагностирования и встроенный ремонт компонентов цифровых систем в пакете кристаллов. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-421. Email: [email protected].
Хаханов Владимир Иванович, декан факультета КИУ ХНУРЭ, д-р техн. наук, профессор кафедры АПВТ ХНУ-РЭ. Научные интересы: техническая диагностика цифровых систем, сетей и программных продуктов. Увлечения: баскетбол, футбол, горные лыжи. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-326. E-mail: hahanov@kture. kharkov. ua.
Александров Владислав Игоревич, студент гр. КИ-07-8 факультета КИУХНУРЭ. Научные интересы: автоматизация диагностирования и встроенный ремонт компонентов цифровых систем в пакете кристаллов. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-326.
74
РИ, 2011, № 1