КОМПЬЮТЕРНАЯ _ ИНЖЕНЕРИЯ И ТЕХНИЧЕСКАЯ ДИАГНОСТИКА
УДК658.512.011:681.326:519.713
КВАНТОВЫЕ МОДЕЛИ ДИАГНОСТИРОВАНИЯ ЦИФРОВЫХ СИСТЕМ
БАГДАДИ АММАР АВНИ АББАС (Baghdadi Ammar Awni Abbas), ХАХАНОВ В.И., ЛИТВИНОВА Е.И., БУТЕНКО С.А., ЧУМАЧЕНКО С.В.
Предлагается новая модель представления данных и матричный метод квантового диагностирования функциональных нарушений в программных или аппаратных блоках, а также константных неисправностей, которые используют кубитные структуры данных квантовых вычислительных процессов, что дает возможность существенно уменьшить вычислительную сложность при установлении диагноза за счет введения параллельных логических операций над матричными данными, составляющими диагностическую информацию. Описываются кубит-ные структуры данных и квантовый метод исправного моделирования цифровых устройств, который имеет существенно более высокое быстродействие благодаря адресной реализации процедуры обработки функциональных примитивов, заданных Q-покрытиями.
1. Введение
Модель объекта диагностирования представлена в форме цифровой системы, которая имеет функциональные элементы, соединенные линиями связей. Среди них имеются ассерционные точки наблюдения, необходимые для верификации, тестиров ания и диагностирования неисправностей [1]. Диагностическая информация представлена компонентами: 1) Т ест проверки или диагностирования неисправностей заданного класса, в данном случае рассматриваются одиночные константные дефекты {= 0, =1} линий схемы. 2) Таблица неисправностей [2], строки которой задают векторы проверяемых на каждом тестовом наборе дефектов, привязанных к линиям схемы. 3) Матрица достижимостей, которая определяет достижимость каждой ассерционной точки со стороны множества предшествующих линий [3]. 4) Матрица состояния ассерционного механизма или матрица экспериментальной проверки, которая определяет состояние каждой ассерции на тестовых наборах путем сравнения эталонной реакции в данной точке с реальным сигналом в процессе выполнения диагностического эксперимента [4].
В процессе выполнения метода диагностирования создается двоичная матрица структурной активизации неисправностей, которая служит маской для существенного уменьшения множества подозреваемых дефектов при совместном анализе таблицы неисправностей. При этом символы одиночных константных дефектов {0, 1, X, 0}, X = {0, 1} в ячейках таблицы неисправностей [5] кодируются соответствующими кубитами (10,01,11,00) многозначного алфавита Кантора Ak = {0, 1, X, 0}, что дает возможность исключить из вычислительных процессов теоретико-множественные процедуры, заменив их на векторные логические операции.
2. Квантовый метод диагностирования цифровых систем
Для рассмотрения сущности предлагаемого метода используется фрагмент цифровой схемы, представленной на рис. 1. Здесь имеются три ассерционных точки A,B,C для наблюдения за состоянием всех линий схемы в процессе тестирования (выполнения диагностического эксперимента) путем подачи пяти тестовых воздействий, заданных в таблице неисправностей T \ F . Координаты данной таблицы задают проверяемые на тест-векторах неисправности 0 и 1, а также имеются состояния координат: 0(.) - отсутствие проверяемых дефектов и X - проверка на линии константы 0 и 1 одновременно. Правая часть таблицы есть матрица состояний ассерционного механизма в виде результатов сравнения эталонной и реальной реакций цифрового устройства на тестовые наборы. Значение 1 означает несравнение, 0 - совпадение упомянутых реакций.
T\F 1 2 3 4 5 6 7 8 9 A B C Va Vb Vc
111101 0 0 0 0 0 0 0 0 0 1 1 1 0 0
010101 1 1 1 1 1 1 1 0 0 0 1 1
101001 1 1 1 1 1 1 1 0 0 0 0 0
000011 0 0 1 1 0 1 0 1 0 0 0
111110 0 0 1 0 0 0 1 1 1
Рис. 1. Фрагмент цифровой схемы и таблица неисправностей
В таблице неисправностей не учитывается структура схемы для повышения глубины диагностирования на основе вычисления реальной матрицы состояний ассерционного механизма, которая совместно с матрицей достижимостей создает структурную маску, минимизирующую множество подозреваемых дефектов.
РИ, 2013, № 2
35
Для фрагмента цифровой схемы, представленной на рис. 1, матрица достижимостей имеет следующий вид:
S = Sj 123456789ABC
1 11 1 . .
2 1111.111. . 1 .
3 ..11111.1. .1
Здесь выходы-ассерции A,B,C являются мониторами технического состояния объекта диагностирования. Каждый из них может иметь два состояния:
Ajj = {0,1}, Ajj = Tj © Uj, которые формируют маску возможных дефектов с помощью следующего
выражения: Sj(Tj) = ( v Sj)л( v Sj). Каждый
тест-вектор (-сегмент) активизирует собственную структуру, поэтому маска возможных дефектов функционально зависит от структуры, ассерций и тестовых наборов: Sj — f(S, A, Tj). Если предположить, что
в матрице
S = Sjj состояния выходов равны (A,B,C) = (011), то маска возможных дефектов будет иметь следующий вид:
Sj = (S2 v S3) л (S1) = (111101110010 v 001111101001) л (110000000100) = = (111111111011) л (001111111011) = (001111111011).
Полученная маска накладывается на первую строку таблицы неисправностей, что определяет множество подозреваемых неисправностей, формирующих ас-серционную реакцию (A,B,C) = (011) устройства на первый тест-вектор:
Test \ Faults 1 23456789ABC
Т1 S1 T1(S1) 0000.00000 1 1 001111111011 ..00..000. 11
В соответствии с предложенной процедурой получения маски одной строки выполняется построение матрицы структурной активизации неисправностей на основе использования матрицы экспериментальной проверки (состояния ассерционного механизма):
T\A ABC S(T) 123456789ABC
S = S.j 123456789ABC S‘(Tj) T1 1 0 0 T1 1 1 0 0 0 0 0 0 0 1 0 0
1 11 1 . . T2 0 1 1 = T2 0 0 11111110 1 1
1111 111 1 T3 000 T3 0 0 0 0 0 0 0 0 0 0 0 0
3 11111 1 1 T4 000 T4 0 0 0 0 0 0 0 0 0 0 0 0
T5 111 T5 1111111111 11
Модель (базовая) диагностирования дискретного процесса или явления представлена компонентами, которые создают 4 измерения в пространстве признаков:
Db =< S,A,F,T >
При этом объем диагностической информации P формируется произведением мощностей четырех компонентов: 1) структура объекта; 2) механизм ассерций или мониторинга; 3) совокупность неисправностей или модулей, подверженных функциональным нарушениям; 4) тестовые наборы или сегменты для диагностирования неисправностей или совокупности упомянутых модулей. Существенно уменьшить объем диагностической информации можно путем понижения размерности пространства признаков за счет разделения базовой модели на два непересекающихся подмножества < S, A >, < F, T > . В этом случае оценка объемной сложности становится не мультипликативной, а аддитивной по отношению к мощности подмножеств без какого-либо уменьшения глубины диагностирования. Первый компонент модели диагностирования представлен матрицей достижимостей, которая позволяет минимизировать маску возможных дефектов на основе анализа структуры схемы путем сравнения истинных и реальных результатов моделирования выходных сигналов на каждом тестовом наборе или сегменте. Число строк такой матрицы равно количеству наблюдаемых выходов или ассерций:
F(T) 1 2 3 4 5 6 7 8 9 A B C F(T) 1 2 3 4 5 6 7 8 9 A B C
T1 1 1 0 0 0 0 0 0 0 1 0 0 S(Tj) T1 1 1 0 0 0 0 0 0 0 1 0 0
T2 0 0 1 1 1 1 1 1 1 0 1 1 T2 0 0 1 1 1 1 1 1 1 0 1 1
T3 0 0 0 0 0 0 0 0 0 0 0 0 T3 0 0 0 0 0 0 0 0 0 0 0 0
T4 0 0 0 0 0 0 0 0 0 0 0 0 T4 0 0 0 0 0 0 0 0 0 0 0 0
T5 1 1 1 1 1 1 1 1 1 1 1 1 T5 1 1 1 1 1 1 1 1 1 1 1 1
F 1 2 3 4 5 6 7 8 9 A B C
10 10 01 01 11 01 01 01 01 10 10 10
10 11 01 11 01 11 01 01 01 10 10 10
л 11 10 11 10 10 11 10 10 10 10 01 01
11 11 11 11 01 01 10 10 01 10 01 10
10 10 11 11 11 01 11 11 11 10 10 10
C = 10 10 01 00 00 01 00 00 00 10 00 00
D = 0 0 1 1 0
Введенная операция, близкая к координатной операции отрицания кубитов (двухразрядных векторов, кодирующих алфавит Кантора), позволяет на практике реализовать функциональность диагностирования только путем логического умножения векторов матрицы кодов неисправностей:
ЦТ,) = (V Fj)л (vFj):
= (л Fj)л( v Fj) = ( л Fj)л( л Fj) = (aFj)
Aj =1 j Aj =0 j Aj =1 j Aj =0 j=1 j
Предварительно выполняется операция инверсии над ячейками матрицы кодов неисправностей, маскируе-
D = {< S,A >,< F,T >};
Pb = (SI X |A| x IF X |T|); <P = (S| x |A|) + (|F x |T|); pb >> p;
мыми нулевыми сигналами матрицы активизации, а также над всеми нулевыми кодами таблицы неисправ-
ностей: Fjj = Fj ^ (Fj = 00) v (Sjj = 0):
A 00 01 10 11 A 0 1 0 X
0 1 11 10 01 00 11 01 10 11 0 1 X 0 1 0 X 1 0 X
Js‘ = f(S,A,T); IV = g(T, A);
36
Таблица истинности скорректирована относительно инверсии состояния 00 в 11 при единичном значении сигнала активизации неисправности, потому что такой код (00) означает присутствие в схеме на линии
РИ, 2013, № 2
пустого множества проверяемых дефектов, что невозможно. Но код 00 еще и блокирует все вычисления конъюнкции по столбцу, превращая результат в 00. Инверсия кода дает возможность не маскировать при умножении действительно присутствующих дефектов, любых знаков. При этом предполагается, что невозможно тест-вектором проверить на одной линии схемы дефекты разных знаков.
Теорема 1.Одиночные константные дефекты цифровой схемы, заданные кубитами на тестовых наборах многозначной таблицы неисправностей, определяются с помощью векторной and-операции, маскируемой по строкам вектором экспериментальной проверки:
S(Ti) = ( v Sj)ЛCVTj) = ( Л Sj)Л( Л Sj) = (Л Sj) Aj=l J Aj=0 J Aj=l J Aj=0 j=1 J •
Выражение является верным, потому что: 1) Второй сомножитель чистая математика - отрицание дизъюнкции есть конъюнкция отрицаний, что означает умножение кодов таблицы с их предварительным отрицанием. 2) Первый сомножитель ориентирован на поиск непротиворечивых дефектов. Действительно, на одной линии или переменной не могут присутствовать одновременно две противоположных по знаку проверяемых неисправности. Поэтому в базовой формуле дизъюнкция дефектов в большей степени ориентирована на поиск кратных неисправностей, но не связанных с одной линией. Кратность противоречивых дефектов на одной линии, равно как и инверсия пустого множества неисправностей, теоретически создает условия беспрепятственного умножения других ячеек столбца в целях формирования на каждой линии результата в виде дефекта одного знака или пустого множества неисправностей.
Теорема 2. Кратные константные дефекты цифровой схемы, заданные кубитами на тестовых наборах многозначной таблицы неисправностей, определяются с помощью векторных or- and- операций, маскируемых по строкам вектором экспериментальной проверки:
S(Ti) = ( v Sj)л( v Sj) = ( v Sj)л( л Sj) j1 Aj=0 j1 Aj=0 ‘
Выражение является верным, потому что: 1) Второй сомножитель чистая математика - отрицание дизъюнкции есть конъюнкция отрицаний, что означает умножение кодов таблицы с их предварительным отрицанием. 2) Первый сомножитель ориентирован на поиск кратных дефектов в предположении, что на одной линии или переменной могут присутствовать одновременно две противоположных по знаку проверяемых неисправности. Данная формула в большей степени ориентирована на поиск кратных неисправностей в блоках цифровых систем, не связанных с одной линией. Кратность дефектов в цифровой системе теоретически создает условия для логического сложения других ячеек столбца в целях формирования
результата в виде множества дефектов формирующих заданный вектор экспериментальной проверки, из которых необходимо вычесть проверяемые на тесте неисправности, не влияющие на формирование некорректных реакций по выходам.
Интерес представляет поиск кратных дефектов на основе мультипроцессора Хассе, который ориентирован на решение задачи покрытия путем полного перебора событий, обеспечивающих точное покрытие вектора экспериментальной проверки столбцами таблицы неисправностей: S(Tj) = (v Sj) © A = 0.
j
Здесь решением является такое сочетание столбцов, участвующих в векторной операции логического сложения, которое в совокупности дает равенство вектору экспериментальной проверки. Поскольку операция времязатратная, то для нее следует использовать мультипроцессор Хассе, ориентированный на взятие булеана в почти параллельном режиме:
F 1 2 3 4 5 6 7 8 9 A B C Va Vb Vc
111101 10 10 01 01 11 01 01 01 01 10 10 10 1 0 0
010101 10 11 01 11 01 11 01 01 01 10 10 10 0 1 1
101001 11 10 11 10 10 11 10 10 10 10 01 01 0 0 0
000011 11 11 11 11 01 01 10 10 01 10 01 10 0 0 0
111110 10 10 11 11 11 01 11 11 11 10 10 10 1 1 1
D 10 10 01 О О о О 01 о О О О о О 10 о о о о
D* 0 0 1 1 0
Таким образом, модель диагностирования содержит следующие преобразователи:
Препроцессирование. Г енерирование исходной диагностической информации в виде теста диагностирования, таблицы неисправностей и матрицы достижимостей цифровой системы.
Моделирование реального устройства на тестовых наборах и сравнение результатов с эталоном по наблюдаемым линиям-ассерциям, что дает возможность сформировать матрицу выходных реакций или экспериментальной проверки в двоичном алфавите.
Вычисление матрицы активности графовой структуры на каждом входном тестовом наборе, равной по размерности таблице неисправностей, с помощью матрицы экспериментальной проверки и матрицы достижимостей.
Модификация содержимого таблицы неисправностей путем применения матрицы активности графовой структуры, в целях индикации неисправностей, действительно проверяемых тестовыми наборами.
Выполнение процедуры векторного логического умножения над строками таблицы для получения вектора подозреваемых дефектов
3. Кубитные модели описания цифровых систем
Дефект определяется как каждое отдельное несоответствие требованиям спецификации, но при этом модель дефекта не должна выводить изделие за преде-
РИ, 2013, № 2
37
лы функциональности. Поэтому дефект (модель дефекта - неисправность) есть фиксированная во времени часть функциональности, привязанная к физическому компоненту. Константная неисправность линии - есть фиксированный в двух соседних тактах переход 0-0. Нет смысла далее его рассматривать как продолжение в других тактах, поскольку все они описываются, согласно автоматной модели посредством двух соседних временных фреймов. Распространяя данную двухфреймовую концепцию на автоматные переменные, можно ввести полное множество неисправностей переходов: 00, 01, 10, 11. Действительно, говоря об автоматных переменных, например, регистра, необходимо строить тестовые наборы, проверяющие упомянутые выше переходы. Исходя из концепции дефекта следует, что полное множество состояний функциональности формирует также полное множество дефектов с той лишь разницей, что конкретный дефект всегда является дополнением по отношению к тестовому сигналу, проверяющему не-исправность[6]:
F © T © L = 0,
T © F = L;
* T © L = F;
F © L = T.
Здесь показано, что взаимодействие теста функциональностей и дефектов всегда сворачивается в пустое или нуль пространство, что дает возможность определить любой дефект посредством непустого взаимодействия между тестом и функциональностью. Но поскольку тест есть производная от функциональности, то из этого следует вывод, что дефект, а точнее его модель есть производная от функциональности или ее пространственно временной фрейм. Естественно, чтобы такое взаимодействие триады было возможным, необходимо привести модели всех трех компонентов к единому виду или форме (матрица или таблица, булевы уравнения, структура). Одним из вариантов замены традиционной символики Рота [7], направленной на визуализацию активных путей в схеме, является векторное представление пространственно-временных фреймов модели, теста, дефекта в дискретном булевом измерении.
Кубитная модель данных осуществляет трансформирование кванта информации, лучше не назовешь, из теоретико-множественного символа в логический битвектор с унитарным кодированием примитивов. Это практически означает замену теоретико-множественных операций векторно-логическими, что позитивно влияет на быстродействие, но при этом возникает субъективный проигрыш в визуализации информации для человека, который плохо умеет читать буквы (тексты), представленные в форме бинарных векторов. Таким образом, любой замкнутый многозначный теоретико-множественный алфавит записывается совокупностью двоичных векторов, где трансформи-
рование определяется следующим соотношением:
n = log2(B = 2n), где B - булеан или множество всех подмножеств, n - число битов или примитивов (мощность универсума), образующих булеан. Иначе, кубит есть векторно-логический эквивалент любого замкнутого теоретико-множественного алфавита. Это означает, что кубит есть вектор с числом битов (не менее двух), равных числу примитивных символов, который способен своими двоичными разрядами представлять булеан состояний. Однобитовый кубит не имеет смысла, поскольку он не имеет соответствия в теоретико-множественном пространстве.
Пример четырехразрядного кубита. Пусть имеется двухтактный алфавит описания автоматных переменных, представляющий собой булеан на универсуме из четырех примитивов:
B2(Y) = {Q=(1000), E=(0100), H=(0010), J=(0001), O={Q,H}=(1010), I={E,J}=(0101), A={Q,E}=(1100), B={H,J}=(0011), S={Q,J}=(1001, P={E,H}=(0110), C={E,H,J}=(1110), F={Q,H,J}=(1011), L={Q,E,J}=(1101), V={Q,E,H}=(1110), Y={Q,E,H,J} =(1111), U=(0000)}.
Операции над символами теоретико-множественного алфавита сводятся к логическим командам and, or, not, xor, которые формируют функционально полный базис, согласно теореме Поста [8]. Например, ниже представлены логические преобразования отдельных теоретико-множественных операций:
Q u E = 1000 v 0100 = 1100 = A;
S n V = 1001А1110 = 1000 = Q;
B = 00Й = 1100 = A;
FAP = 1011 © 0110 = 1101 = Y;
HAJ = 0010 © 0001 = 0011 = B;
FAY = 1011 © 1111 = 0100 = Y;
FAF = 1011 © 1011 = 0000 = U(0);
Квантовая интерпретация булеана из четырех примитивов (двоичные позиционные коды: 00, 01, 10, 11) представлена ниже:
00 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
01 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
10 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
11 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Она создает 16 различных функций от двух переменных. В то же время последнюю таблицу можно представить в виде кодов (векторов) символов многозначного алфавита, которыми легко оперировать для решения задач синтеза и анализа булевых функций:
Q 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
E 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
H 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
J 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 J H B E I P C Q S O F A L V Y
38
РИ, 2013, № 2
Таким образом, кубит, составленный из четырех битов, способен описать 16 состояний пространственновременного фрейма функциональностей и при этом оперировать векторными логическими операциями для решения задач синтеза и анализа.
лирования неисправностей, поиска дефектов. Здесь основные процедуры связаны с манипулированием адресами, неявно представленными в координатах двух кубов квантового (кубитного) покрытия, далее именуемого Q-покрытием (Q-coverage):
4. Квантовое моделирование цифровых систем
Например, для описания цифровой схемы, представленной на рис. 2, необходимо иметь структуру взаимосвязанных элементов и кубическое покрытие логического элемента И-НЕ.
X] X2 Y
0 0 1
0 1 1
1 0 1
1 1 0
Рис. 2. Фрагмент цифровой схемы
Данное покрытие можно трансформировать с учетом унитарного кодирования входных векторов. Как следствие, для любого покрытия функционального одно-выходового примитива всегда имеется только два куба. Они показывают не только все решения, но и инверсию сигналов на выходе, что интересно с позиции активизации всех логических путей в схемной структуре. Например, в следующем кубитном покрытии вентиля для изменения состояния выхода необходимо создать на входах пару следующих друг за другом условий, где в первом такте должны быть первые три вектора (адреса), а во втором - четвертый вектор, формируемый двумя входными переменными:
00 1 Q 1
01 1 E 1 V 1 1110 1
10 1 H 1 J 0 0001 0
11 0 J 0
1110
Для моделирования исправного поведения достаточно иметь только один куб (нулевой или единичный), поскольку второй всегда является дополнением к первому. Следовательно, ориентируясь, например, на единичный куб, формирующий на выходе 1, можно убрать бит состояния выхода примитива, что уменьшит размерность куба или модели примитива до количества адресов элемента, где бит с адресным номером i идентифицирует способность адреса, составленного из значений входных переменных, сформировать единичное состояние выхода примитива.
Кубитное или квантовое покрытие одновыходового примитива всегда представлено двумя кубами, размерность которых равна степени двойки от числа входных переменных, где единичное значение координаты определяет участие адреса рассматриваемого бита в формировании соответствующего (0,1) состояния выхода примитива. Квантовые модели примитивов требуют создания новой теории моделирования, прямой и обратной импликации, синтеза тестов, моде-
00 0 Q 0
01 0 E 0 F 0 1101 0
10 1 H 1 H 1 0010 1
11 0 J 0
Модель цифровой системы на основе использования кубитных структур данных и информационных квантов может быть описана четырьмя компонентами:
F =< L, M, X, Q >,
L = (L1,L2,...,Lj,...,Ln);
M = (M1,M2,...,Mj,...,Mn);
X = (Xx+1,Xx+2,...,Xx+i,...,Xx+n);
Q = (Qx+1,Qx+2 ’...’ Qx+iV..,Qx+n).
Здесь представлены: вектор идентификаторов эквипотенциальных линий схемы цифровой системы, вектор моделирования состояний всех линий схемы, упорядоченная совокупность векторов входных переменных каждого примитива схемы, привязанных к номерам выходов, совокупность векторов - квантовых покрытий примитивов, строго привязанных к номерам выходов и входным переменным примитивов; n -число линий в схеме, x - количество входных переменных.
В качестве примера кубитного задания модели цифрового устройства F =< L, M, X,Q >, представленного на рис. 2, ниже приведены два варианта таблиц описания схемы для анализа исправного поведения (fault free similation):
L 1 2 3 4 5 6 7 8 9 A B
Q .... 1 1 1 1 1 1
.... 1 1 1 1 1 1
.... 1 1 1 1 1 1
.... 0 0 0 0 0 0
X 13 34 27 75 68 89
M 1 11110 0 1 1 1 0
L 1 2 3 4 5 6 7 8 9 A B
M 1 1 1 1 1 0 0 1 1 1 0
X . . 13 34 27 75 68 89
Q . . 1 1 1 1 1 1
. . 1 1 1 1 1 1
. . 1 1 1 1 1 1
. . 0 0 0 0 0 0
Процедура исправного моделирования сводится к определению адреса, формируемого двоичными состояниями входных переменных каждого примитива цифровой схемы. Если переменные создают не двоичный адрес, то в данном случае существует возможность формирования не двоичного состояния выхода примитива, которое определено в троичном алфавите символом Х. Состояния выходов формируются пос-
РИ, 2013, № 2
39
ледовательной процедурой моделирования на основе простых итераций или итераций Зейделя. Во втором случае необходима препроцессорная процедура ранжирования линий и примитивов схемы, которая позволяет существенно уменьшить количество проходов по примитивам схемы для достижения сходимости, когда фиксируется равенство состояний всех линий схемы в двух соседних итерациях. Кроме того, ранжирование примитивов по уровням формирования выходов дает возможность существенно повысить быстродействие моделирования за счет параллельной обработки функциональных элементов одного уровня. Например, для схемы, представленной на рис. 2, одновременно можно обрабатывать элементы с номерами 6,7, затем - 8,9 и далее - A,B. В первом случае, когда используются простые итерации, ранжирования не требуется, но платой за простоту алгоритма моделирования является существенно большее число итеративных проходов по примитивам схемы для достижения упомянутого критерия сходимости.
Структуры кубитных данных модифицируются в сторону дополнения строкой типов примитивов F =< L,M,X,P,Q >,P = (P1,P2,...,P1,...,Pm), задействованных при синтезе цифровой системы, если необходимо в процессе функционирования выполнять ремонт или восстановление работоспособности путем введения запасных примитивов, которые так же как и основные, реализуются на основе элементов памяти. В следующей таблице представлены строка типов логических элементов, а также адреса этих примитивов, отмеченные номерами:
L 1 2 3 4 5 6 7 8 9 A B
M 1 1 1 1 1 0 0 1 1 1 0
X 13 34 27 75 68 89
P 1 1 1 1 1 1
Q 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
L 1 2 3 4 5 6 7 8 9 A B
M 1 1 1 1 1 0 0 1 1 1 0
X 13 34 27 75 68 89
P 1 2 3 4 5 6
Q 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
Вторая таблица оперирует номерами примитивов, что дает возможность заменить любой отказавший элемент исправным из ремонтного запаса путем изменения адресного номера в строке примитивов Р. Ремонтные элементы в даннной таблице начинаются с номера 7. В первой таблице, ориентированной на программную реализацию моделирования, ремонтные примитивы начинаются с номера 2. Если существует возможность перепрограммирования логики в элементе памяти с одинаковым числов входных переменных, то данную процедуру следует выполнять после фиксации неисправного элемента, когда становится известно - какой элемент в структуре и какой тип
примитива отказал. Т акая процедура восстановления работоспособности ориентирована на PLD-реализацию цифровых систем. Если кубитные модели схем не имеют запасных примитивов, то соответствующие им таблицы будут иметь следующий вид:
L 123456 7 8 9AB
M 111110 0 1110
X 13 34 27 75 68 89
P 111111
Q 1
1
1
0
L 1 2 3 4 5 6 7 8 9 A B
M 1 1 1 1 1 0 0 1 1 1 0
X 13 34 27 75 68 89
P 1 2 3 4 5 6
Q 1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
0 0 0 0 0 0
Таким образом, квантовые структуры данных ориентированы на компактность описания функционалов цифрового изделия кубитными векторами, повышение быстродействия процедур моделирования за счет адресации состояний выходов примитивов, а также на восстановление работоспособности отдельных логических элементов, благодаря их реализации в элементах памяти PLD.
5. Модель комбинационной самовосстанавливаемой структуры
Немногочисленные работы, посвященные восстановлению работоспособности логических схем [9], описывают две идеи. Первая заключается в реконфигурации структуры логических элементов в режиме offline, которая обеспечивает возможность замены каждого из неисправных примитивов. Вторая создает условия для замены неисправных элементов путем использования запасных логических компонентов и расширения мультиплексоров для переадресации отказавших примитивов. Далее предлагается в качестве примера для рассмотрения теории и практики адресации примитивов комбинационных схем в целях встроенного ремонта функциональных нарушений логических элементов использовать описание простейшей схемной структуры (см.рис. 2).
Она содержит шесть однотипных логических элементов, которые можно представить в адресном пространстве следующим списком (двумерным массивом):
No = 1 2 3 4 5 6 789
P = 111111 111
L1 = 132768 XXX
L2 = 347589 XXX
L3 = 6 7 8 9 A B Y Y Y
No = 1 2 3 4 5 6 7 8 9 A B
M = 111110 0 111 1
X1 X2 Y
0 0 1
0 1 1
1 0 1
1 1 0
Каждый столбец соответствует логическому элементу схемы, а примитивы с номерами 7, 8, 9 являются запасными, которые используются для замены любых
40
РИ, 2013, № 2
трех из шести элементов при диагностировании в последних каких-либо функциональных нарушений. В строке P указаны типы примитивов, ниже - номера входных и выходных переменных, вектор моделирования М содержит результат анализа входного слова 11111 на схемной структуре, представленной рис. 3.
Addressed
Рис. 3. Пример схемной структуры из адресуемых и запасных элементов
Процесс-модель формирования выходных значений схемы в зависимости от конкатенированных состояний входов, формирующих адрес ячейки состояния выхода, можно представить в абстрактном или аппаратно ориентированном, на использование вектора состояния М, виде:
Y6= Р1(Х1*Хз); Yy = Р2(Хз*Хд); Y8= Рз(Х2*Ху); Y9 = Р4(Ху*Хз); Ya = Р5(Хб*Х8); Yb= Рб(Х8*Х^
M6= Р1(М1 *М3); М7 = Р2(М3*М4); М8= P3(M2 *М7); M9= P4(M7 *M5); Ma = P5(M6*M8); Mb= Рб(М8*М9).^
Здесь М - вектор состояния линий схемы, Pj -логическая функция И-НЕ, имеющая два входа, реализованная в виде элемента памяти LUT. Поскольку все шесть примитивных элементов реализуют одну логическую функцию И-НЕ, то предыдущее выражение можно упростить путем замены всех структурных элементов одним функциональным примитивом F с последующим использованием для операции конкатенации двумерного массива линий связи (L) между входами и выходами логических элементов:
М6 = F(M1 *М3); М7 = F(M3 *М4); М8= F(M2*My); М9 = F(M7 *М5); Ma = F(M6*M8); MB = F(M8*M9).
M6 = F[M(L11)*M(L12)]; M7 = F[M(L21)*M(L22)]; M8= F[M(L31)*M(L32)]; M9 = F[M(L41)*M(L42)]; Ma = F[M(L51)*M(L52)];
Mb = F[M(L61)*M(L62)].
Таким образом, можно синтезировать структуру для реализации процесс-модели схемы, имеющей двухвходовые функциональные примитивы, в следующем виде:
M(LjSp ) = F[M(Ljj)* M(Ljr)] = F[M(L)].
Учитывая факт, что все вычисления в схеме привязаны к структурным элементам, которые имеют идентификатор логической операции, предыдущую формулу можно трансформировать к виду:
M(Ljsp) = Pj [M(Ljj) * M(Ljr)] = P[M(L)].
В общем случае структура модели функциональности, ориентированной на реализацию в кристалле PLD, содержит пять компонентов:
S =< P,F,M,L,T >,
Р = (P1,P2,...,Pi,...,Pn);
F = (F1,F2,...,Fj,..,Fm);
М = (MbM2,...,Mr,...,Mk);
L = [Lpq];p = 1,n; q = 1,Sp;
T = [Tte];t = 1,n; e = 1,q;
M(L) = P[M(L)].
Здесь представлены: 1) примитивы схемной структуры P, определенные идентификаторами типа функциональности (номер или код команды); 2) типы функциональных элементов F - набор элементов памяти LUT, из которых реализуются примитивы, а также избыточные элементы для ремонта функциональностей; 3) вектор моделирования M (двоичный), определяющий состояния всех линий (входные, внутренние, выходные); 4) матрица эквипотенциальных линий связи L для объединения n логических элементов в структуру; 5) матрица входных тестовых (рабочих) наборов Т. Обработка схемы (processing) в кристалле сводится к определению адреса, составленного двоичными битами вектора моделирования, по которому находится логическая функция. Каждый примитив имеет цикл обработки, содержащий три процедуры:
1) Адресное считывание номеров входных переменных из соответствующего столбца матрицы L для формирования адреса состояния входной переменной
вектора моделирования: A = Ljj, i = 1,n; j = 1,Sp — 1.
2) Формирование адреса (двоичного кода) для вычисления логической функции путем конкатенации соответствующих состояний входных переменных в
векторе моделирования A = M(Ljj)*M(Ljr).
3) Запись результата выполнения логической функции как состояния выхода в соответствующий разряд вектора моделирования
M(Ljsp) = F[M(Ljj)* M(Ljr)].
6. Операционное устройство для моделирования комбинационной структуры
Процесс обработки всех примитивов схемы в данном случае является строго последовательным, что представляет собой существенное замедление процедуры формирования состояний выходных переменных. Однако уменьшение быстродействия можно считать платой за сервис встроенного и автономного восста-
РИ, 2013, № 2
41
давления работоспособности цифровой структуры, который является одним из этапов функциониров ания инфраструктуры обслуживания SoC, представленной на рис. 4.
Рис. 4. Операционная структура комбинационной схемы
Комбинационная схема становится операционным устройством, где присутствуют операционный и управляющий автоматы. Заменяемыми компонентами в операционном автомате являются типы примитивов -функциональные элементы (рис. 5).
Рис. 5. Граф-схема алгоритма управления процессом моделирования
Операционное устройство реализации элементо-адресуемых комбинационных схем содержит: счетчик
обработки текущего примитива Cj ; память для хранения типов примитивов, соответствующих структурным элементам Р; счетчик считывания номеров входных и выходной переменных текущего примитива
C2 ; дешифратор типов примитивов DC; память для хранения вектора моделирования M; матричную память для хранения номеров входов-выходов структурных примитивов L; линейку памятей, реализующих функциональные примитивы F; регистр форми-
рования входного адресного слова для обрабатываемого примитива RG; логический элемент Or для коммутации результатов обработки функциональных примитивов.
Граф-схема алгоритма управления процессом моделирования структуры комбинационной схемы представлена на рис. 5.
1. Инициализация (формирование) всех компонентов (номера и типы элементов, линии связей для входов и выходов логических элементов) схемной структуры:
P = (P1,P2,...,Pi,.. ,Pn); F = (F1,F2,...,Fj,.. ,Fm);
L = [Lpq];p = 1,n; q = 1,sp.
2. Инициализация параметра обрабатываемого примитива и номера входного набора i = 0, t = 0 для его моделирования в двоичном алфавите Mr = {0,1}.
3. Инкрементирование индекса примитива, номера теста и инициализация входного тестового (рабочего)
набора: i = i +1, t = t +1, M(X) = Tt(X), |Tt (X)| = Ц.
4. Конкатенация (#) разрядов слова для формирова-
k
ния входного воздействия # M(Lij ) логического
j=1
элемента Pi и выполнение процедуры определения состояния его выхода с последующей записью в соответствующую координату вектора моделирова-
k
ния: M(Lk+1): M(Lk+1) = Pi[ # M(Lij)].
j=1
5. Повторение пунктов 3 и 4 в целях получения состояний выходов всех логических элементов до выполнения условия: i = n.
6. Повторение пунктов 2-4 в целях моделирования всех входных тестовых (рабочих) наборов до выполнения равенства: t = П , где П - длина теста.
7. Окончание процесса моделирования цифрового устройства.
7. Заключение
Представлен аппарат квантового описания цифровых компонентов, который дает возможность существенно повысить быстродействие процедур синтеза и анализа за счет увеличения размерности векторов для унитарного кодирования символов теоретико-множественного алфавита.
Показаны примеры использования кубитных структур данных и квантовых преобразований для моделирования цифровых схем и решения задач диагностирования путем использования векторных параллельных логических операций и ремонта неисправных модулей на основе адресуемых логических примитивов.
Направления будущих исследований:
42
РИ, 2013, № 2
1. Использование or-операции или для анализа таблицы неисправностей в целях поиска кратных дефектов.
2. Исследование и применение Хассе, процессора для поиска одиночных и/или кратных дефектов по таблице неисправностей путем приведения процедуры к задаче поиска оптимального покрытия.
3. Моделирование исправного поведения последовательностных схем на основе кубитных структур данных цифровых устройств.
4. Синтез кубитных моделей функциональных примитивов.
5. Моделирование неисправностей переходов автоматных переменных путем модификации дедуктивного алгоритма.
Литература: ^Проектирование и тестирование цифровых систем на кристаллах / В.И. Хаханов, Е.И. Литвинова, О.А. Гузь. Харьков: ХНУРЭ. 2009. 484 с. 2. Hahanov V., Wajeb Gharibi, Litvinova E., Chumachenko S. Information analysis infrastructure for diagnosis // Information an int. interdisciplinary journal. 2011. Japan. Vol.14, № 7. Р. 24192433. 3Хаханов В.И., Мурад Али А., Литвинова Е.И., Гузь О.А., Хаханова И.В. Квантовые модели вычислительных процессов // Радиоэлектроника и информатика. 2011. №
3. С.35-40. 4.Бондаренко М.Ф., Хаханов В.И., Литвинова Е.И. Структура логического ассоциативного мультипроцессора // Автоматика и телемеханика. 2012. № 10. С. 7192. 5Хаханов В.И. Техническая диагностика цифровых и микропроцессорных структур.К.: ИСИО. 1995. 242 с. 6Ха-ханов В.И., Баркалов О.О., Мариан Адамски. Infrastructure intellectual property for SoC simulation and diagnosis service. Springer, 2011. Р. 289-330. І.Чжен Г., Мэннинг Е., Метц Г. Диагностика отказов цифровых вычислительных систем. М.: Мир, 1972. 230 с. 8. Горбатов В.А. Основы дискретной математики. М. : Высшая школа. 1986. 311 с. 9. Хаханов В.И., Литвинова Е.И., Хаханова И.В., Murad Ali Abbas.
Инфраструктура встроенного восстановления логических PLD-схем // Радиоэлектроника и информатика. 2012. №2. С. 54-57.
Поступила в редколлегию 11.06.2013
Рецензент: д-р техн. наук, проф. Баркалов А.А.
Baghdadi Ammar Awni Abbas, аспирант кафедры АПВТ ХНУРЭ. Научные интересы: проектирование и тестирование вычислительных систем. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. +380 57 70-21-326. E-mail: hahanov@kture. kharkov. ua.
Хаханов Владимир Иванович, декан факультета КИУ ХНУРЭ, д-р техн. наук, профессор кафедры АПВТ ХНУРЭ. IEEE Senior Member. IEEE Computer Society Golden Core Member. Научные интересы: проектирование и тестирование вычислительных систем, сетей и программных продуктов. Увлечения: баскетбол, футбол, теннис, горные лыжи. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. +38 057 70-21-326, E-mail:
hahanov@kture. kharkov. ua.
Литвинова Евгения Ивановна, д-р техн. наук, профессор кафедры АПВТ ХНУРЭ. Научные интересы: автоматизация диагностирования и встроенный ремонт компонентов цифровых систем в пакете кристаллов. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21 -421. E-mail: kiu@kture. kharkov.ua.
Бутенко Сергей Александрович, студент 4-го курса факультета КИУ ХНУРЭ. Научные интересы: автоматизация диагностирования и встроенный ремонт компонентов цифровых систем в пакете кристаллов. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-421.
Чумаченко Светлана Викторовна, д-р техн. наук, профессор, зав. кафедрой АПВТ ХНУРЭ. Научные интересы: дискретная математика, моделирование вычислительных систем. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. +380 57 70-21-326. E-mail: ri@kture.kharkov.ua.
РИ, 2013, № 2
43