КОМПЬЮТЕРНАЯ _ ИНЖЕНЕРИЯ И ТЕХНИЧЕСКАЯ ДИАГНОСТИКА
УДК681.326:519.713
КУБИТНЫЕ ТЕХНОЛОГИИ АНАЛИЗА И ДИАГНОСТИРОВАНИЯ ЦИФРОВЫХ УСТРОЙСТВ
ХАХАНОВ В.И., BAGHDADIAMMAR AWNI ABBAS, ЧУМАЧЕНКО С.В., ШКИЛЬА.С., МЕЛИКЯН ВАЗГЕН____________________
Предлагаются теория и примеры реализации кубитных моделей, методов и алгоритмов для повышения быстродействия существующих программных и аппаратных средств анализа цифровых вычислительных устройств за счет увеличения размерности структур данных и памяти для одновременного хранения обрабатываемых состояний. Описываются результаты исследований, касающихся моделей и методов диагностирования цифровых систем, моделирования исправного поведения, восстановления работоспособности отказавших примитивов.
1. Введение
Эволюция киберпространства планеты условно делится на следующие периоды: 1) 1980-е годы - формирование парка персональных компьютеров; 2)1990-е годы - внедрение Интернет-технологий в производственные процессы и быт человека; 3) 2000-е годы -повышение качества жизни за счет внедрения мобильных устройств и облачных сервисов; 4) 2010-е годы - создание цифровой инфраструктуры мониторинга, управления и взаимодействия между собой стационарных и движущихся объектов (воздушный, морской, наземный транспорт и роботы); 5) 2015-е годы - создание глобальной цифровой инфраструктуры киберпространства, где все процессы, явления идентифицируются во времени и в трехмерном пространстве и становятся интеллектуальными. В связи с необходимостью развития параллельных вычислений неупорядоченных данных в последние годы становятся все более значимыми для анализа эволюционирующего кибернетического пространства создания облачных Интернет сервисов, благодаря их позитивной альтернативности существующим затратным по времени классическим моделям последовательной обработки теоретико-множественных структур, за счет существенного расширения памяти [ 1 ]. Однако такая плата в настоящее время вполне допустима, поскольку рынок нано-электронных технологий предоставляет сегодня разработчикам цифровых систем до 1 миллиарда вентилей на кристалле размерностью 2х2 см при толщине пластины в 5 микрон. При этом
современные технологии допускают создание пакета или «сэндвича», содержащего до 7 кристаллов. Практически «беспроводное» соединение таких пластин основывается на технологической возможности сверления порядка 10 тысяч сквозных отверстий (vias) на 1 квадратном сантиметре. Кроме того, появление трехмерных FinFETs транзисторов и основанных на них 3D-технологий реализации объемных цифровых систем предоставляют новые возможности для создания более быстродействующих за счет уменьшения задержек параллельных вычислительных устройств [27]. Поэтому можно и нужно использовать «жадные» к аппаратуре модели и методы для создания быстродействующих средств параллельного решения практических задач. Имея в виду дискретность и многозначность алфавитов описания информационных процессов, свойство параллелизма (одновременности процессов), заложенное в квантовых вычислениях, является востребованным при создании эффективных и интеллектуальных «движков» для киберпространства, облачных структур и сервисов Интернета; повышения надежности цифровых устройств; тестирования и моделирования дискретных систем на кристаллах. Здесь не рассматриваются физические основы квантовой механики, касающиеся недетерминированного взаимодействия атомных частиц, но используется понятие кубитной структуры как векторной формы совместного или одновременного задания булеана состояний в конечной и дискретной области киберпространства, ориентированного на параллелизм и суперпозицию обработки предлагаемых кубитных моделей и методов.
Квантовые эмуляторы на классических компьютерах достаточно эффективно применяются для решения оптимизационных задач, связанных с полным перебором вариантов решений на основе использования теории множеств [1,8]. Особенность в том, что множество элементов в компьютере всегда является упорядоченным, поскольку каждый бит, байт или другой компонент имеет свой адрес. Поэтому все теоретикомножественные операции, так или иначе, сводятся к полному перебору адресов примитивных элементов. Адресный порядок структур данных хорош для задач, где компоненты моделей можно строго ранжировать, что дает возможность выполнять их анализ за один проход или одну итерацию. Там, где нет порядка в структуре, например, множество всех подмножеств, классическая модель памяти и вычислительных процессов наносит вред времени анализа ассоциации равных по рангу примитивов, или, в лучшем случае, обработка ассоциативных групп является неэффективной. Что можно предложить для неупорядоченных данных вместо строгого порядка? Процессор, где элементарной ячейкой служит образ или шаблон универсума из n примитивов, который генерирует Q = 2" всех возможных состояний такой ячейки в виде буле-ана или множества всех подмножеств. Прямое решение, ориентированное на создание такой ячейки, использует унитарное позиционное кодирование состо-
36
РИ, 2013, № 3
яний примитивов, которое с помощью суперпозиции последних образует универсум примитивов, формирующий в пределе булеан или множество всех подмножеств [8,9].
n-Кубит есть векторная форма унитарного кодирования универсума из n примитивов для задания булеана
состояний 2 с помощью 2 двоичных переменных. Например, если n=2, то 2-кубит задает 16 состояний с помощью 4-х переменных. Если n=1, то кубит задает 4 состояния на универсуме из двух примитивов с помощью 2-х двоичных переменных (00,01,10,11) [1]. При этом допускается суперпозиция (одновременное существование) в векторе 2 n состояний. Кубит (n-кубит) дает возможность использовать логические операции вместо теоретико-множественных для существенного ускорения процессов синтеза и анализа дискретных систем. Далее кубит отождествляется с n-кубитом или вектором, если это не мешает пониманию излагаемого материала. Поскольку квантовые вычисления связаны с анализом кубитных структур данных, то далее частично эксплуатируется определение « квантовый» для идентификации технологий, использующих два свойства квантовой механики: параллелизм обработки и суперпозицию состояний.
2. Кубитный метод диагностирования цифровых систем
Предлагается метод диагностирования функциональных нарушений и константных неисправностей в программных или аппаратных блоках, которые используют «кубитные» или многозначные структуры данных для задания диагностической информации, что дает возможность существенно уменьшить вычислительную сложность процессов моделирования и диагностирования за счет введения параллельных логических операций над матричными данными. Представлен ку-битный метод исправного моделирования цифровых устройств с восстановлением работоспособности компонентов цифровой системы в режиме online, который имеет существенно более высокое быстродействие за счет адресной реализации процедуры обработки функциональных примитивов, заданных кубитными векторами состояний выходов.
Модель объекта диагностирования представлена в форме графа цифровой системы, которая имеет функциональные элементы, соединенные линиями связей. Среди них имеются ассерции - точки наблюдения или мониторинга, необходимые для верификации, тестирования и диагностирования неисправностей [2]. Диагностическая информация представлена компонентами: 1) Тест проверки или диагностирования неисправностей заданного класса, в данном случае рассматриваются одиночные константные дефекты линий схемы. 2) Таблица неисправностей [6], строки которой задают векторы проверяемых на каждом тестовом наборе дефектов, привязанных к линиям схемы. 3) Матрица достижимостей, которая определяет достижимость каждой ассерционной точки со
РИ, 2013, № 3
стороны множества предшествующих линий [8]. 4) Матрица состояния ассерционного механизма, или матрица экспериментальной проверки, задающая состояние каждой ассерции на тестовых наборах путем сравнения эталонной реакции в данной точке с реальным сигналом в процессе выполнения диагностического эксперимента [2,7].
Базовая модель диагностирования цифрового изделия, дискретного процесса или явления представлена компонентами, которые создают 4 измерения в пространстве признаков:
jDb =< S,A,F,T >
[d = {< S, A >, < F,T >};
Vb = (|S x IA x |F x |T|);
< V = (|S x |A|) + (|F| x |T|);
Vb >> V;
S* = f(S, A, T);
< A* = g(T, A);
F* = h(S,A,F,T);
При этом в модели объем диагностической информации V формируется декартовым произведением (мощностей) четырех компонентов в порядке следования, указанном выше: 1) структура объекта; 2) механизм ассерций или мониторинга; 3) совокупность неисправностей или модулей, подверженных функциональным нарушениям; 4) тестовые наборы или сегменты для диагностирования неисправностей или совокупности упомянутых модулей. Актуально и существенно уменьшить объем диагностической информации можно путем понижения размерности пространства признаков за счет разделения базовой модели на два непересекающихся подмножества < S,A >, < F,T >. В этом случае оценка объема диагностической информации становится не мультипликативной, а аддитивной по отношению к мощности полученных в результате разбиения подмножеств без какого-либо уменьшения глубины диагностирования. Здесь первый компонент модели диагностирования представлен матрицей достижимостей, которая позволяет минимизировать маску возможных дефектов на основе анализа структуры схемы путем сравнения истинных и реальных результатов моделирования выходных сигналов на каждом тестовом наборе или сегменте. Число строк такой матрицы равно количеству наблюдаемых выходов или ассерций.
В процессе выполнения метода диагностирования создается двоичная матрица структурной активизации неисправностей, которая служит маской для существенного уменьшения множества подозреваемых дефектов при совместном анализе таблицы неисправностей. При этом символы одиночных константных
дефектов {0,1, X, 0}, X = {0,1} в ячейках таблицы неисправностей [6] кодируются соответствующими состояниями кубита (10,01,11,00) многозначного алфавита
Кантора Ak = {0,1, X, 0}, что дает возможность исклю-
37
чить из вычислительных процессов теоретико-множественные процедуры, заменив их на векторные логические операции.
Для рассмотрения сущности предлагаемого метода используется фрагмент цифровой схемы, представленной на рис. 1. Здесь имеются три ассерционных точки A,B,C для наблюдения за состоянием всех линий схемы в процессе тестирования (выполнения диагностического эксперимента) путем подачи пяти тестовых воздействий, заданных в таблице неисправностей F (T). Координаты данной таблицы задают проверяемые на тест-векторах неисправности 0 и 1, а также имеются состояния координат: 0 (.) - отсутствие проверяемых дефектов и X - проверка на линии константы 0 и 1 одновременно. Правая часть таблицы есть матрица состояний ассерционного механизма в виде результатов сравнения эталонной и реальной реакций цифрового устройства на тестовые наборы. Значение 1 означает несравнение, 0 - совпадение упомянутых реакций.
F(T) 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. Фрагмент цифровой схемы и таблица неисправностей
В таблице неисправностей не учитывается структура схемы для повышения глубины диагностирования на основе вычисления реальной матрицы состояний ас-серционного механизма, которая совместно с матрицей достижимостей создает структурную маску, минимизирующую множество подозреваемых дефектов.
Для фрагмента цифровой схемы, представленной на рис. 1, матрица достижимостей имеет следующий вид:
S= Sij 1 2 3 4 5 6 7 8 9 ABC
1 11 1 . .
2 1 1 1 1 . 1 1 1 . . 1 .
3 ..11111.1..1
Здесь выходы-ассерции A,B,C являются мониторами технического состояния объекта диагностирования. Каждый из них может иметь два значения: Aij = і0,1}, которые определяют матрицу экспериментальной проверки A = | Aij | путем сравнения эталонных T = |Tj| и
реальных U = Uij состояний наблюдаемых или выходных линий: Aij = Tij © Uij , которые формируют маску возможных дефектов с помощью следующего
выражения: Si = S(Ti) = ( v Sjл( v Sa).
Aij =1 J Aij = 0
Каждый тест-вектор (-сегмент) активизирует собственную структуру возможных дефектов, которая функционально зависит от маски, ассерций (состояния наблюдаемых выходов) и тестовых наборов: S = f (S,A,Ti) . Если предположить, что в матрице
5 = |Sij| состояния ассерционных выходов на первом тест-векторе равны A^ = 0; A^ = 1; A1C = 1, где значение 1 идентифицирует проявление дефекта в устройстве, то маска возможных дефектов, согласно
функционалу S1 = S(T1) = ( v S1j) л ( v S1j),
6 й A1j =1 J A1j =0
будет иметь следующий вид:
S1 = S(Tj) = (S2 v S3) л (S) =
= (111101110010v001111101001) л (110000000100) = = (111111111011) л (001111111011) = (001111111011).
Полученная маска накладывается на первую строку таблицы неисправностей, что определяет множество подозреваемых дефектов:
Fi = Tiл Sli=1 ^ F1 = T1л S1, формирующих ассерционную выходную реакцию A1(A,B,C) = (011) устройства на первый тест-вектор:
Faults 123456789ABC
T1 S1 F1 = T1 л S1 0000.00000 1 1 00111111101 1 ..00. .000. 11
В соответствии с предложенной процедурой получения маски одной строки выполняется построение матрицы структурной активизации неисправностей S(T) на основе использов ания таблицы экспериментальной
проверки A = |Ajj|, задающей состояния ассерцион-ного механизма в процессе выполнения тестирования S(T) = S © A:
S(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
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
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
A = A;
ABC
T1 1 0 0
T2 0 1 1
T3 0 0 0
T4 0 0 0
T5 1 1 1
S = S;
123456789ABC
11.......1 . .
1111.111. . 1 .
..11111.1..1
38
РИ, 2013, № 3
В целях формирования структур данных, удобных для компьютерной обработки, необходимо перевести символы таблицы неисправностей в двухразрядные коды в соответствии с правилами > -кодирования: >= {0 = 10,1 = 01, X = 11, 0 = 00}, применение которых к таблице неисправностей F(T) дает следующий результат:
F(T) 123456789ABC F(T) 1 23456789ABC
T1 0000.0000011 T1 10 10 10 10 00 10 10 10 10 10 01 01
T2 1.1.1.111100 > T2 01 00 01 00 01 00 01 01 01 01 10 10
T3 .1.11.111100 T3 00 01 00 01 01 00 01 01 01 01 10 10
T4 ....00110101 T4 00 00 00 00 10 10 01 01 10 01 10 01
T5 0 0 ... 1 ... 0 0 0 T5 10 10 00 00 00 01 00 00 00 10 10 10
После получения структурной матрицы S(T), предназначенной маскировать реальные дефекты в таблице неисправностей и ее кодированной форме, необходимо выполнить #-суперпозицию двух матриц: F(T) = S(T) # F(T), которая сводится к выполнению #-операции над одноименными координатами Fj = Fj ^ (Fj = 00) v (Sij = 0), что означает модификацию кодов координат таблицы F(T) при выполнении заданных условий. Иначе, данная операция сводится к инверсии ячеек матрицы кодов неисправностей, маскируемых нулевыми сигналами структурной матрицы активизации, а также всех нулевых кодов таблицы неисправностей. Т аблица истинности данной # -операции в символьном и кодированном виде представлена ниже:
#=S1j \ Fj 0 1 0 X II ^Tj 00 01 10 11
0 X 0 1 0 0 11 10 01 00
1 X 1 0 X 1 11 01 10 11
Таблица истинности скорректирована относительно инверсии состояния 00 в 11 при единичном значении сигнала активизации неисправности, потому что такой код (00) означает присутствие в схеме на линии пустого множества проверяемых дефектов, что невозможно. Но код 00 еще блокирует все вычисления конъюнкции по столбцу, превращая результат в 00. Инверсия кода дает возможность не маскировать при логическом умножении действительно присутствующих дефектов, любых знаков. При этом предполагается, что невозможно тест-вектором проверить на одной линии схемы дефекты разных знаков.
Выполнение процедуры суперпозиции структурной матрицы с кодированной таблицей неисправностей F(T) = S(T)#F (T) дает следующий результат:
F(T) 1 2 3 4 5 6 7 8 9 A B C
T1 10 10 10 10 00 10 10 10 10 10 01 01
T2 01 00 01 00 01 00 01 01 01 01 10 10
T3 00 01 00 01 01 00 01 01 01 01 10 10
T4 00 00 00 00 10 10 01 01 10 01 10 01
T5 10 10 00 00 00 01 00 00 00 10 10 10
S(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
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
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
F(T) 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
a 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
n F(T) = a F 10 10 01 00 00 01 00 00 00 10 00 00
F = 0 0 1 1 0
На заключительной стадии диагностирования выполняется единственная и векторная операция логического умножения всех строк кодированной модифицированной таблицы истинности F(T) :
= ( v F) а( v F) = ( a F) a( v F) =
A; =1 1 A; =0 1 A; =1 ' A; =0 '
= ( a F;) a( a Fi) = (aF;).
Это дает возможность точно определить все дефекты, присутствующие в объекте диагностирования, которые представлены в двух нижних строках приведенной выше кодированной таблицы неисправностей F (T):
F = {10, 20, 31, 61, A0} .
Теоретическое доказательство матричного диагностирования одиночных и кратных дефектов представлено в виде двух теорем.
Теорема 1. Одиночные константные дефекты цифровой схемы, заданные кубитами (двухразрядными векторами) на тестовых наборах многозначной таблицы неисправностей, определяются с помощью векторной and-операции, маскируемой по строкам матрицей (вектором) экспериментальной проверки A < |A;j| всех ассерционных точек:
= ( v F) а ( v F ) = ( a F) а ( v F ) =
A; =1 1 A; =0 1 A; =1 1 A; =0 1
:( a F1)a( a F1) = (aF1).
A1 =1 A1 =0 1=1
Выражение является верным, потому что: 1) Второй сомножитель - чистая математика - отрицание дизъюнкции есть конъюнкция отрицаний, что означает умножение кодов таблицы с их предварительным отрицанием. 2) Первый сомножитель ориентирован на поиск непротиворечивых дефектов, поэтому он заменяется на ( a Fj). Действительно, на одной линии Ai =1
или переменной не могут присутствовать одновременно две противоположных по знаку проверяемых неисправности. Поэтому в базовой формуле дизъюнкция дефектов ( v F^ в большей степени ориенти-
A1 =1
рована на поиск кратных неисправностей, но не связанных с одной линией. Кратность противоречивых дефектов на одной линии, равно как и инверсия пустого множества неисправностей, теоретически создает условия беспрепятственного умножения других ячеек столбца в целях формирования на каждой линии результата в виде дефекта одного знака или пустого множества неисправностей.
Теорема 2. Кратные константные дефекты цифровой схемы, заданные кубитами на тестовых наборах многозначной таблицы неисправностей, определяются с помощью векторных or- and- операций, маскируемых по строкам вектором экспериментальной проверки A(T) всех ассерционных то-
РИ, 2013, № 3
чек:
39
F(T) = ( v Fi) л( v Fi) = ( v Fi) л( a Fi).
Ai=1 Aj = 0 A; =1 A; = 0
Выражение является верным, потому что: 1) Второй сомножитель есть отрицание дизъюнкции или конъюнкция отрицаний, что означает умножение кодов таблицы с их предварительным отрицанием. 2) Первый сомножитель ориентирован на поиск кратных дефектов в предположении, что на одной линии или переменной могут присутствовать одновременно две противоположных по знаку проверяемых неисправности. Данная формула в большей степени ориентирована на поиск кратных дефектов в блоках цифровых систем, не связанных с одной линией. Кратность неисправностей в цифровой системе теоретически создает условия для логического сложения других ячеек столбца в целях формирования результата в виде множества дефектов, формирующих заданный вектор экспериментальной проверки, из которых необходимо вычесть проверяемые на тесте неисправности, которые не влияют на формирование некорректных реакций по выходам.
Интерес представляет поиск кратных дефектов на основе мультипроцессора Хассе [4,5], который ориентиров ан на решение задачи покрытия путем полного перебора событий, обеспечивающих точное покрытие вектора экспериментальной проверки столбцами таблицы неисправностей: F(T) = (v Fi) © A = 0.
i
Здесь решением является такое сочетание столбцов, участвующих в векторной операции логического сложения, которое в совокупности дает результат, равный вектору экспериментальной проверки. Поскольку операция времязатратная, то для нее следует использовать мультипроцессор Хассе, ориентированный на взятие булеана в почти параллельном режиме.
2. Тестирование реального устройства на основе использования промышленного симулятора в целях сравнения фактических реакций устройства с эталонными значениями по наблюдаемым линиям-ассерци-ям, что дает возможность сформировать матрицу выходных реакций или вектор экспериментальной проверки в двоичном алфавите.
3. Вычисление матрицы активности графовой структуры на каждом входном тестовом наборе, равной по размерности таблице неисправностей, с помощью матрицы экспериментальной проверки и матрицы достижимостей, что дает возможность существенно сократить область подозреваемых дефектов.
4. Модификация содержимого таблицы неисправностей путем ее маскирования матрицей активности графовой структуры, в целях определения только тех неисправностей, которые действительно формируют матрицу экспериментальной проверки в процессе диагностирования.
5. Выполнение процедуры логического умножения над строками таблицы неисправностей для получения вектора подозреваемых дефектов.
6. Восстановление работоспособности цифрового устройства путем переадресации неисправных логических компонентов на их аналоги из ремонтного запаса и повторение процесса тестового диагностирования.
Т аким образом, новизна предложенного метода диагностирования дефектов заключается в использовании для получения диагноза единственной параллельной операции логического умножения, что в сочетании со структурным маскированием неисправностей дает преимущества перед аналогами в части увеличения быстродействия и повышения глубины диагностирования.
Подводя итог, следует представить модель процесса диагностирования цифровых устройств, которая содержит функциональные преобразователи, связанные с выполнением следующих шагов (рис. 2): 1
Рис. 2. Цикл диагностирования и ремонта логических блоков
1. Препроцессирование сводится к генерированию исходной диагностической информации в виде теста диагностирования, таблицы неисправностей и матрицы достижимостей цифровой системы.
3. Кубитное моделирование цифровых систем
Рассматриваются структуры данных, эффективные с точки зрения программной или аппаратной реализации исправного интерпретативного моделирования дискретных систем, описанных в форме кубитных векторов состояний выходов примитивов. Для описания цифровой схемы, представленной на рис. 3, традиционно используется структура взаимосвязанных элементов и кубические покрытия (таблицы истинности) логических элементов.
Рис. 3. Фрагмент цифровой схемы
Цель предлагаемого метода кубитного моделирования - заменить таблицы истинности компонентов циф-
40
РИ, 2013, № 3
рового устройства векторами состояний выходов. Пусть функциональный примитив с номером Pg имеет следующую таблицу истинности:
Рб =
X1 X2 Y
0 0 1
0 1 1
1 0 1
1 1 0
Данное покрытие логического элемента можно трансформировать путем унитарного кодирования входных векторов на основе использования двухтактного алфавита [4-7]. Символы и их коды, предназначенные для описания автоматных переменных, представляют собой булеан на универсуме из четырех примитивов, что соответствует формату вектора, содержащего два кубита:
B*(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)}.
С помощью двухтактного алфавита любое покрытие функционального одновыходового примитива всегда можно представить двумя кубами или даже одним, учитывая, что кубы взаимно инверсны:
P6 =
00 1 Q 1
01 1 E 1 V 1 1110 1
10 1 H 1 J 0 0001 0
11 0 J 0
1 1 1 0І
Два куба показывают не только все решения, но и инверсию сигналов на выходе, что интересно с позиции активизации всех логических путей в схемной структуре при синтезе тестов. Например, для изменения состояния выхода необходимо создать на входах пару следующих друг за другом условий, где в первом такте должны быть первые три вектора (адреса), а во втором - четвертый вектор, формируемый двумя входными переменными.
Для моделирования исправного поведения достаточно иметь только один куб (нулевой или единичный), поскольку второй всегда является дополнением к первому. Следовательно, ориентируясь, например, на единичный куб, формирующий на выходе 1, можно убрать бит состояния выхода примитива, что уменьшит размерность куба или модели примитива до количества адресуемых состояний элемента, где адрес есть вектор, составленный из двоичных значений входных переменных, по которому определяется состояние выхода примитива.
Кубитное покрытие, или Q-покрытие есть векторная интерпретативная форма задания функциональности, где значение координаты определяет состояние выхода функции, соответствующее двоичному входному слову, формирующему адрес ячейки. Q-покрытие одновыходового примитива всегда представлено дву-РИ, 2013, № 3
мя взаимно инверсными кубами (векторами), размерность которых равна степени двойки от числа входных переменных, где единичное значение координаты определяет участие адреса рассматриваемого бита в формировании соответствующего (0,1) состояния выхода примитива. Кубитные модели примитивов требуют создания новой теории моделирования, прямой и обратной импликации, синтеза тестов, моделирования неисправностей, поиска дефектов. Здесь и далее представлены основные процедуры исправного моделирования на основе манипулирования адресами, неявно представленными в координатах кубов Q-покрытия.
Модель для анализа цифровой системы на основе использования кубитных структур данных может быть описана четырьмя компонентами:
F =< L, M, X, Q >,
L = (LbL2,..,Lj,...,Ln);
M = (M1,M2,...,Mj,...,Mn);
X = (Xnx +1,Xnx +2,...,Xnx +1,...,Xn);
Q = (Qnx+1, Qnx +2,- ■ ■, Qnx +1, ■,Qn)-
Здесь представлены соответственно: L - вектор идентификаторов эквипотенциальных линий схемы цифровой системы, который ввиду своей тривиальности может быть исключен из модели, но при этом необходимо иметь число входных переменных устройства и общее количество линий; M - вектор моделирования состояний всех линий схемы; X - упорядоченная совокупность векторов входных переменных каждого примитива схемы, привязанных к номерам выходов, Q - совокупность Q-покрытий примитивов, строго привязанных к номерам выходов и входным переменным примитивов; n - число линий в схеме, n x -количество входных переменных.
В качестве примера кубитного задания модели цифрового устройства F =< l,m,x,q >, ниже приведен вариант структурной таблицы описания схемы для анализа исправного поведения:
L 1 2 3 4 5 б 7 8 9 A B
M 1 1 1 1 1 0 1 0 1 1 0
X . . 13 34 27 75 68 89
Q . . 1 0 1 1 1 1
. . 1 1 0 0 0 0
. . 1 1 0 0 1 1
. . 0 1 0 1 0 1
Метод кубитного моделирования исправного поведения сводится к определению значения выхода элемента по адресу, формируемому конкатенацией двоичных состояний входных переменных каждого примитива цифровой системы
M(Yi) = Qi[M(Xi1*Xi2...*Xij...*Xikl)].
Здесь ki - число входных линий в примитиве с номером i. Поскольку номера невходных линий век-
41
тора L однозначно идентифицируют по выходам обрабатываемые примитивы, то формула моделирования может быть приведена к циклу определения состояний всех невходных переменных:
М, = Qi[M(Xil*Xi2...*Xij...*Xiki)] = Qi[M(Ai)], і = nX+й
Здесь процесс моделирования связан с конкатенированным формированием адреса бита в кубите функциональности, который определяет состояние примитива или невходной линии цифровой структуры, начиная с номера i = nx +1. Если переменные создают не двоичный адрес, то в данном случае существует возможность формирования состояния выхода логического элемента в троичном алфавите символом Х. Состояния выходов формируются идеально примитивной процедурой обработки кубита примитива
Mi = Qi[M(Xi)]
на основе простых итераций или итераций Зейделя [6,8]. Во втором случае необходима препроцессорная процедура ранжирования линий и примитивов схемы, которая позволяет существенно уменьшить количество проходов по элементам схемы для достижения сходимости, когда фиксируется равенство состояний всех линий в двух соседних итерациях. Кроме того, ранжирование примитивов по уровням формирования выходов дает возможность существенно повысить быстродействие моделирования за счет параллельной обработки функциональных элементов одного уровня. Например, для схемы, представленной на рис. 6, одновременно можно обрабатывать элементы с номерами 6,7, затем - 8,9 и далее - A,B. В первом случае, когда используются простые итерации, ранжирования не требуется, но платой за простоту алгоритма моделирования является существенно большее число итеративных проходов по примитивам схемы для достижения упомянутого критерия сходимости. Вычислительная сложность предложенного Q-метода моделирования на основе кубитных функциональностей определяется процедурами формирования адреса - входного вектора, содержащего k i переменных,
для каждого i-го примитива [(г + w) X ki], считыванием бита из квант-вектора по конкатенированному адресу и записью (г + w) данного бита в вектор моделирования:
П= Х{[(г+w)xki]+(г+w)} = Х[(г+w)x(ki +1)] =(г + w)x X(ki +1).
i=nx +1 i=nx +1 i=nx +1
Время моделирования одного тест-вектора Q-методом, при условии, что цифровая схема, составленная из 900 четырехвходовых примитивов, имеет параметры: г = w = 5ns, ki= 4, nx= 100, n=1000, равно 45 микросекунд:
П = (г + w) x
Это означает, что быстродействие интерпретативного Q-метода моделирования дает возможность для данной схемы обработать за одну секунду 22 222 входных наборов. При этом цифровое устройство имеет существенное преимущество - сервисную функцию online восстановления работоспособности в случае отказа примитива путем его переадресации на запасной элемент.
Для синтеза квазиоптимальных структур данных комбинационного устройства необходимо использовать следующие правила:
1) Ранжированная схема цифрового устройства по структурной глубине для моделирования по способу Зейделя должна иметь по возможности однотипные примитивы в каждом уровне (слое) срабатывания.
2) В каждом уровне желательно иметь одинаковое число примитивов. Поэтому синтез цифрового устройства следует ориентировать на создание прямоугольной (матричной) структуры однотипных логических элементов.
3) Реализация комбинационных примитивов предполагает использование адресуемых элементов памяти, имеющих место в программируемых логических устройствах (FPGA, CPLD), широко используемых для создания прототипов.
4) Формирование для каждого уровня комбинационного устройства ремонтных примитивов для восстановления работоспособности в режиме online из расчета - один запасной элемент на каждый тип компонента, используемый в уровне.
5) Стоимость аппаратурных затрат для реализации комбинационного устройства, ориентированного на высокое быстродействие, должна определяться суммой всех примитивов, привязанных к уровням комбинационного устройства, дополненной линейкой запасных элементов по одному для каждого слоя (при условии существования в каждом слое одинаковых
j=1,m
примитивов): Q = X. Pj + п-
i=1,n
6) Реализация комбинационного устройства, ориентированного на минимизацию аппаратных затрат, определяется суммой всех типов примитивов, инвариантных к уровням комбинационного устройства, дополненной линейкой запасных элементов по одному
m
для каждого типа: Q = Х_Р + m.
i=1
7) Обработка матрицы комбинационных элементов с помощью процессорной линейки примитивов, число которых равно мощности максимального уровня или слоя в прямоугольной структуре, что обеспечивает условия для параллельной обработки всех примитивов в каждом уровне элементов в целях повышения
быстродействия комбинационного прототипа, реализуемого в PLD.
X (ki +1) = (5 + 5) X 900 X (4 +1) = 10 X 900 X 5 = 45000ns = 45ps.
i=nx +1
42
РИ, 2013, № 3
Таким образом, новизна предложенного Q-метода интерпретативного исправного моделирования цифровых схем заключается в существенном повышении быстродействия и уменьшении объемов структур данных за счет замены таблиц истинности на Q-покрытия, что практически делает разработку конкурентоспособной с технологиями компилятивного моделирования.
4. Восстановление работоспособности комбинационных устройств
Немногочисленные работы, посвященные восстановлению работоспособности логических схем [9-11], описывают две идеи. Первая заключается в реконфигурации структуры логических элементов в режиме offline, которая обеспечивает возможность замены каждого из неисправных примитивов. Вторая создает условия для замены неисправных элементов путем использования запасных логических компонентов и мультиплексоров для переадресации отказавших примитивов.
Структуры кубитных данных модифицируются в сторону дополнения строкой типов примитивов F =< L,M,X,P,Q >,P = (P1,P2,...,Pi,...,Pm), задействованных при синтезе цифровой системы, если необходимо в процессе функционирования выполнять ремонт или восстановление работоспособности за счет введения запасных примитивов, которые, так же как и основные, реализуются на основе элементов памяти. На рис. 4 изображен пример схемной структуры из адресуемых и трех запасных элементов. Структуры данных, соответствующие данной схеме с тремя дополнительными элементами, представлены здесь же:
Addressed
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 0 0 1 1 1 0 1
1 1 1 1 0 0 1 1 0
1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0
Рис. 4. Пример схемной структуры из адресуемых и запасных элементов
Таблица (см. рис. 4) оперирует номерами структурных примитивов, что дает возможность заменить любой отказавший элемент исправным из ремонтного запаса путем изменения адресного номера в строке
примитивов Р. Ремонтные элементы в данной таблице начинаются со столбца номер 7.
В следующей таблице представлены строка типов логических элементов, а также адреса типов этих примитивов, отмеченные номерами:
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 2 2 3 3
Q 1 0 1 1 0 1
1 1 0 1 1 0
1 1 1 1 1 1
0 0 0 0 0 0
Эта структура данных ориентирована на программную реализацию моделирования, а ремонтные примитивы начинаются с номера 4. Если существует возможность перепрограммирования логики в элементе памяти с одинаковым числом входных переменных, то данную процедуру следует выполнять после фиксации неисправного элемента, когда становится известно - какой элемент в структуре и какой тип примитив а отказал. Процедура восстановления работоспособности ориентирована на PLD-реализацию цифровых систем. Если кубитные модели схем не имеют запасных примитивов, то соответствующий формат таблиц будет иметь следующий вид:
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 2 2 3 3
Q 10 1 110 111 0 0 0
Таким образом, квантовые структуры данных ориентированы на компактность описания функционалов цифрового изделия кубитными векторами, повышение быстродействия процедур моделирования за счет адресации состояний выходов примитивов, а также на восстановление работоспособности отдельных логических элементов, благодаря их реализации в элементах памяти PLD или в форме программных модулей. Очень важно, что в последнем случае не нужно хранить ремонтные примитивы, поскольку предложенные здесь интерпретативные структуры табличных данных изначально ориентиров аны на технологические удобства устранения дефектов в процессе функционирования прототипа цифрового изделия.
Обработка схемы в кристалле сводится к определению адреса, составленного двоичными битами вектора моделирования, по которому находится значение логической функции. Каждый примитив имеет цикл обработки, содержащий три процедуры:
1) Адресное считывание номеров входных переменных из соответствующего столбца матрицы X для формирования адреса состояния входной переменной
вектора моделирования: A = Xj i = 1, n; j = 1, Sp — 1.
РИ, 2013, № 3
43
2) Формирование адреса (двоичного кода) для вычисления логической функции путем конкатенации соответствующих состояний входных переменных в векторе моделирования A = M(X;j) * M(Xir).
3) Запись результата выполнения логической функции как состояния выхода в соответствующий разряд вектора моделирования
M(XiSp) = P[M(Xij)*M(Xir)].
Процесс обработки всех примитивов схемы в данном случае является строго последовательным, что представляет собой существенное замедление процедуры формирования состояний выходных переменных. Однако уменьшение быстродействия можно считать платой за сервис встроенного и автономного восстановления работоспособности цифровой структуры, который является одним из этапов функционирования инфраструктуры обслуживания SoC, представленной на рис.
5.
Рис. 5. Операционная структура комбинационной схемы
Комбинационная схема становится операционным устройством, где присутствуют операционный и управляющий автоматы. Заменяемыми компонентами в операционном автомате являются типы примитивов - функциональные элементы или структурные примитивы.
Операционное устройство для реализации элементноадресуемых комбинационных схем содержит: счетчик
обработки текущего примитива Cj; память для хранения типов примитивов, соответствующих структурным элементам Р; счетчик считывания номеров входных и
выходной переменных текущего примитива C2 ; дешифратор типов примитивов DC; память для хранения вектора моделирования M; матричная память для хранения номеров входов -выходов структурных примитивов X; линейка памятей, реализующих функциональные примитивы P(Q); регистр формирования входного адресного слова для обрабатываемого примитива RG; логический элемент Or для коммутации результатов обработки функциональных примитивов.
Граф-схема алгоритма управления процессом моделирования структуры комбинационной схемы представлена на рис. 6 и содержит следующие шаги:
1. Инициализация (формирование) всех компонентов (номера и типы элементов, линии связей для входов и выходов логических элементов) схемной структуры:
P = (pl,p2,...,pi,.. ,pn); Q = (q1,q2>
,Qj,...,Qm);
X = [Xpq];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(Xij) логического элемен-j=1
та Pi (типа Qi) и выполнение процедуры определения состояния его выхода с последующей записью в соответствующую координату вектора моделирования: M(Xk+1):
k
M(Xk+1) = {Pi,Qi}[ # M(Xij)].
j=1
5. Повторение пунктов 3 и 4 в целях получения состояний выходов всех логических элементов до выполнения условия: i = n.
6. Повторение пунктов 2-4 в целях моделирования всех входных тестовых (рабочих) наборов, до выполнения равенства: t = П , где П - длина теста.
7. Окончание процесса моделирования цифрового устройства.
Рис. 6. Граф-схема алгоритма управления процессом моделирования
44
РИ, 2013, № 3
Т аким образом, научная новизна предложенной модели цифровой системы заключается во введении в структуру устройства избыточных ремонтных компонентов и управляющего автомата, ориентированного на последовательную обработку комбинационных примитивов, что дает возможность осуществлять процедуру переадресации примитивов в случае отказа одного из них. Нетрудно создать аналогичные автоматы для параллельной обработки слоев из примитивов ранжированной схемы, что максимально приблизит быстродействие устройства к его реализации в кристаллах PLD.
5. Заключение
Научная новизна и практическая значимость данной публикации, основанная на применении кубитных структур, ориентированных на параллельное вычисление теоретико-множественных по сути данных, формируется в следующие пункты:
1. Усовершенствован метод диагностирования дефектов цифровых систем за счет использования единственной параллельной операции логического умножения, что в сочетании со структурным маскированием неисправностей дает преимущества перед аналогами в части компактности представления данных, увеличения быстродействия и повышения глубины диагностирования.
2. Предложен новый Q-метод интерпретативного исправного моделирования цифровых схем, который характеризуется использованием компактных Q-покрытий вместо таблиц истинности, что дает возможность существенно повысить быстродействие анализа за счет адресного формирования выходов функциональных примитивов и уменьшить объемы структур данных, что практически делает метод конкурентоспособным с технологиями компилятивного моделирования.
3. Усовершенствована модель цифровой системы путем дополнения в структуру устройства избыточных ремонтных компонентов и управляющего автомата, ориентированного на последовательную обработку комбинационных примитивов, что дает возможность осуществлять процедуру переадресации отказавших примитивов в режиме штатного функционирования.
4. Показаны примеры использования кубитных структур данных и квантовых преобразований для моделирования цифровых схем и решения задач диагностирования путем использования векторных параллельных логических операций и ремонта неисправных модулей на основе адресуемых логических примитивов.
5. Основная инновационная идея квантовых или кубит-ных вычислений заключается в переходе от вычислительных процедур над байт-операндом, определяющим в дискретном пространстве одно решение (точку), к квантовым параллельным процессам над кубит-операндом, одновременно формирующим булеан решений.
Литература: 1.MichaelA. Nielsen & IsaacL. Chuang. Quantum Computation and Quantum Information. Cambridge University Press. 2010. 676p. 2. Проектирование и тестирование цифровых систем на кристаллах /В.И. Хаханов, Е.И. Литвинова, О. А. Гузь. Харьков: ХНУРЭ. 2009. 484 с. 3. Hahanov V., Wajeb Gharibi, Litvinova E., Chumachenko S. Information analysis infrastructure for diagnosis // Information an int. interdisciplinary journal. Japan. 2011. Vol. 14. № 7. Р. 2419-2433.4Хаханов В.И., Мурад Али А., Литвинова Е.И., Гузь О.А., Хаханова И.В. Квантовые модели вычислительных процессов // Радиоэлектроника и информатика. 2011. № 3. С.35-40. 5. Бондаренко М.Ф., Хаханов В.И., Литвинова Е.И. Структура логического ассоциативного мультипроцессора. Автоматика и телемеханика. 2012. № 10. С. 71-92. 6. Хаханов В.И. Техническая диагностика цифровых и микропроцессорных структур. К.: ИСИО. 1995. 242 с. 7. Vladimir Hahanov, Alexander Barkalov and Marian Adamsky. Infrastructure intellectual property for SoC simulation and diagnosis service. Springer, 2011. Р. 289-330.
8. Горбатов В.А. Основы дискретной математики. М. : Высш. шк. 1986. 311 с. 9Хаханов В.И., Литвинова Е.И., Хаханова И.В., Murad Ali Abbas. Инфраструктура встроенного восстановления логических PLD-схем// Радиоэлектроника и информатика. 2012. №2. С. 54-57. 10. Hahanov V., Litvinova E., Gharibi W., Murad Ali Abbas. Qubit models for SoC Synthesis Parallel and cloud computing. USA. 2012. Vol.1. Iss 1. P. 16-20. 11. Hahanov V.I., Litvinova E.I., Chumachenko S. V., Baghdadi AmmarAwniAbbas, EshetieAbebech, Mandefro. Qubit Model for solving the coverage problem // Proc. of IEEE East-West Design and Test Symposium. IEEE. USA. Kharkov. 14-17 September 2012. P.142 - 144. 12. Чжен Г., Мэннинг Е., Метц Г. Диагностика отказов цифровых вычислительных систем. М.: Мир, 1972. 230 с. 13. Koal T., Scheit D., Vierhaus H.T. A comprehensive scheme for logic self repair // Conf. Proc. on Signal Processing Algorithms, Architectures, Arrangements, and Applications. 2009. P. 13 - 18.
Поступила в редколлегию 25.08.2013
Рецензент: д-р техн. наук, проф. Кривуля Г.Ф.
Хаханов Владимир Иванович, декан факультета КИУ, д-р техн. наук, профессор кафедры АПВТ ХНУРЭ. Научные интересы: проектирование и тестирование вычислительных систем, сетей и программных продуктов. Увлечения: баскетбол, футбол, теннис, горные лыжи. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. +380 57 70-21 -326, E-mail: hahanov@kture. kharkov. ua.
Baghdadi Ammar Awni Abbas, аспирант кафедры АПВТ ХНУРЭ. Научные интересы: проектирование и тестирование вычислительных систем. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. +380 57 70-21-326, E-mail: hahanov@kture. kharkov. ua.
Чумаченко Светлана Викторовна, д-р техн. наук, профессор, заведующая кафедрой АПВТ ХНУРЭ. Научные интересы: дискретная математика, моделирование вычислительных систем. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. +380 57 70-21 -326, E-mail: [email protected].
Шкиль Александр Сергеевич, канд. техн. наук, доцент, доцент кафедры АПВТ ХНУРЭ. Научные интересы: проектирование и тестирование вычислительных систем. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. +380 57 70-21326, E-mail: [email protected].
Меликян Вазген, д-р техн. наук, профессор Государственного инженерного университета Армении. Научные интересы: design&test. Адрес: Армения, Ереван, ул. Теряна, 105, тел: (374 10) 524 629.
РИ, 2013, № 3
45