Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Надежность и диагностика компонентов инфокоммуникационных и информационно-управляющих систем.-1

.pdf
Скачиваний:
1
Добавлен:
20.11.2023
Размер:
3.78 Mб
Скачать

Раскраска без внесения в команду избыточных разрядов

В ряде случаев нет возможности вводить в команду избыточные разряды. Тогда можно воспользоваться модификацией предыдущего метода.

На первом этапе по структуре команды определяется ее цвет как сумма единиц по модулю m в двоичном представлении команды.

Пример 4.7. Ниже приведены цвета команд программы, описанной в примерах 4.2 и 4.3:

А0 – 0

0 – {A0,A5}

A1 – 4

1 – {A8}

A2 – 2

2 – {A2}

A3 – 4

3 – {A4}

A4 – 3

4 – {A1, A3, A6, A8, Ak}

А5

– 0

 

А6

– 4

 

А7

– 4

 

А8

– 1

 

Аk – 4

На втором этапе производится раскраска ГСА с помощью диагностических вершин так, чтобы цвета правильно чередовались.

Пример 4.8. На рис. 4.36 приведена ГСА (см. рис. 4.30), раскрашенная с учетом цветов, присвоенных командам в примере 4.7. Контроль осуществляется так же, как и в предыдущем случае, но теперь для определения цвета не требуются избыточные разряды. Поэтому в СВК не будет второго сумматора по модулю m и входа Кизб (блоков, обведенных пунктиром на рис. 4.34).

Изменятся следующие характеристики:

Kизб сведено к 0, так как избыточные разряды отсутствуют;

верхняя граница tизб не изменится, но очевидно, что для конкретных ГСА в большинстве случаев tизб увеличится по сравнению

спредыдущим методом.

331

Рис. 4.36. ГСА, раскрашенная с учетом предварительного присвоения цветов

Пример 4.9. tизб для раскрашенной ГСА на рис. 4.31 равно 3/17, тогда как tизб для раскрашенной ГСА рис. 4.36 равно 37/17. Как видно из примера, tизб увеличилось на порядок, при этом быстродействие программы снизилось в 3 раза.

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

332

вершиной. Назовем диагностическую вершину такого типа сдвигающей.

Пример 4.10. На рис. 4.37 представлена ГСА (см. рис. 4.30), раскрашенная с помощью сдвигающих диагностических вершин. Первая команда ГСА Ао в соответствии с примером 4.7 имеет цвет 0, а вторая команда ГСА А1 – цвет 4. Счетчик цветов при переходе Ао D A1 примет значение 2. Следовательно, в свободных разрядах данной вершины D должно стоять число 2, чтобы цвет А1 совпадал со значением счетчика цветов. Обозначим эту сдвигающую вершину D+2. Аналогично проставлены значения сдвига для других диагностических вершин.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A00

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D+2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A41

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A43

D+0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D+1

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D+3

 

 

 

 

 

 

 

 

 

 

D+0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

A05

 

 

 

 

 

 

D+0

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D+2

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A4

 

 

 

 

 

A 4

 

 

 

 

 

 

 

 

D+3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

A2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D+3

 

 

 

2

 

 

D+2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A47

 

 

 

 

 

 

A46

 

 

 

 

 

A50

 

 

 

A22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D+2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D+1

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ak

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.37. ГСА, раскрашенная с помощью сдвигающих диагностических вершин

333

Рис. 4.38. ССВК для метода контроля с помощью сдвигающих диагностических вершин

ССВК представлена на рис. 4.38. Сумматор по модулю m определяет цвет команды. Дешифратор определяет, является ли команда диагностической вершиной: если да, то он блокирует сравнение цветов команды и эталона и увеличивает счетчик цветов на величину, записанную в диагностическую вершину; если нет, то дешифратор ждет следующую команду. Если команда не является диагностической вершиной, то сравнивается цвет, подсчитанный по структуре команды, и цвет, получившийся к данному моменту в счетчике цветов. По результатам сравнения определяется правильность выбранной команды.

Пример 4.11. Для ГСА, представленной на рис. 4.37, tизб равно

16/17.

Методы контроля механизмов дешифрации и хранения команд

спомощью веса перехода

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

334

Весом перехода W будем называть количество единиц в сумме по модулю двух соседних по ГСА команд. Под соседними будем понимать команды, соединенные на ГСА ребром.

Метод контроля заключается в следующем. В каждой команде в избыточных разрядах записывается вес перехода по отношению к предыдущей команде. Для начальной команды определяется вес перехода по отношению к нулевой комбинации. При работе программы предыдущая команда Ki складывается по модулю два с последующей командой Kj и вес перехода сравнивается с эталонным весом, записанным в избыточных разрядах команды Kj. Если команда Kj была выбрана неправильно или обнаружен дефект механизма хранения, вес перехода будет отличаться от эталонного. Данный метод контроля также предполагает использование диагностических вершин, так как в ГСА имеются разветвления и схождения.

Вершину, в которую входят два или более направленных ребра, назовем вершиной схождения, а соответствующую ей команду по ГСА – командой схождения.

Пример 4.12. Для ГСА (см. рис. 4.30) вершинами схождения будут вершины А5, А7 и А2, которые обведены на преобразованной ГСА (рис. 4.39).

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

335

 

 

A0

 

 

 

A1

 

 

A3

 

A

 

 

 

4

 

A

A2

A4

 

 

1

 

A5

 

 

 

A2

 

A6

 

A5

 

A2

 

 

 

A

A

A7

6

 

8

 

D

A2

Ak

Рис. 4.39. ГСА, преобразованная для контроля по весу перехода

Пример 4.13. На рис. 4.39 представлена преобразованная схема ГСА (см. рис. 4.30) с введенными диагностическими вершинами. Распределения весов переходов для каждой пары команд приведены ниже:

W0_1 – 01011110 = 101

W1_2 – 01100011 = 100

W2_3 – 11111100 = 110

W3_1 – 10001101 = 100

W2_5 – 00011001 = 011

W5_8 – 10110110 = 101

W6_2 – 01101111 = 110

W2_4 – 01010010 = 011

W5_6 – 01110110 = 101

W8_2 – 10101111 = 110

W4_5 – 01001011 = 100

336

W6_7 – 10100110 = 100

W2_k – 10000111 = 100

W7_2 – 11001001 = 100

W3_7 – 00110101 = 100

W0 = 101

По рис. 4.39 видно, что для вершины схождения А5 в обеих парах соседней будет команда А4. Для вершины схождения А7 вес перехода А3 А7 равен весу перехода А6 А7, так что в эти пары вставлять диагностическую вершину не требуется. Для вершины схождения А2 вес перехода А6 А2 равен весу перехода А8 А2, но отличается от веса перехода А7 А2, поэтому в пару А7А2 вставляется диагностическая вершина D, которая подбирается так, чтобы вес перехода D А2 был также равен 110.

ССВК для метода контроля по весу перехода представлена на рис. 4.40.

Рис. 4.40. ССВК для метода контроля по весу перехода

Она работает следующим образом. В регистр команды подаются основные разряды команды. Эти разряды складываются на первом сумматоре по модулю два с основными разрядами предыдущей команды. Для обработки начальной команды в регистре предыдущей команды предусмотрен сигнал «сброс», который переводит его в нулевое состояние. Дешифратор веса определяет вес перехода, который и записывается в регистр веса. Далее на втором сумматоре по моду-

337

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

СВК является самопроверяемой, так как любая одиночная константная неисправность приводит к появлению на выходах S1S2 некодового слова {11} {00}, при этом любой выход на рабочих наборах побывает в 0 и 1.

Количество избыточных разрядов

Kизб = ]log2k[ ,

tизб имеет верхней границей

ks

 

 

(is 1)

 

/ N,

 

 

 

s=1

 

 

где N – первоначальное количество команд в ГСА; kS – число вершин схождения; iS – количество схождений для каждой вершины схождения.

Вероятность обнаружения дефектов механизма дешифрации команд, в предположении о равномерном распределении весов переходов,

Pобн =11k .

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

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

338

Метод контроля с помощью алгебраических кодов

Анализируемый метод пошагового контроля правильного хода выполнения программы основан на следующем. Каждому байту команды программы ставится в соответствие 4-разрядная двоичная комбинация, являющаяся избыточной частью систематического группового кода (12, 8, 3), информационной частью которого служит байт команды.

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

Данный метод контроля рассмотрим на примере гипотетического микроконтроллера c типовым набором команд.

Вмикроконтроллере в машинном цикле всегда происходит два обращения к ПЗУ программ. Для однобайтной команды, например, при втором обращении к ПЗУ будет выбран следующий байт, но на выполнение текущей команды он не повлияет. Этот байт будет выбран снова при выборке следующей команды. Таким образом, возможна ситуация выборки из ПЗУ дважды подряд по одному и тому же адресу. Байт ПЗУ СВК имеет структуру, показанную на рис. 4.41. Поле «Число пропускаемых байтов» указывает СВК, сколько обращений к ПЗУ должно выполняться без сравнения предсказанной

ивычисленной избыточных частей. Поле «Блокировка» указывает на то, нужно или нет выполнять сравнения для данного обращения к ПЗУ.

Блокировка

Число пропускаемых

 

Избыточная часть

 

 

 

байтов

 

 

 

кода (12, 8, 3)

 

7

6

5

4

3

 

2

1

 

0

Рис. 4.41. Структура байта СВК

339

Для правильной работы СВК необходимо учесть особенности выполнения следующих команд:

1.Команды условного перехода. Первые байты команд, на ко-

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

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

3.Команды прерывания. Необходимо временно запоминать

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

На рис. 4.42 приведена функциональная схема СВК. ПЗУк хранит эталонные избыточные разряды байтов команд (0–3), бит управления селектором РМЕ (6), бит блокировки сравнения (7) и биты признаков выделенных байт команд (4, 5). Выбранные из ПЗУк по сигналу РМЕ ЦП избыточные разряды записываются в регистр Рк по фронту селектированного сигнала РМЕ (РМЕ1). В течение выборки текущего байта команды в Рк хранится избыточная часть этого байта, зафиксированная при предыдущем обращении к памяти команд. Содержимое Рк сравнивается схемой сравнения (СС) с избыточной частью выбираемого байта команды, формируемой кодером. Результат сравнения фиксируется в триггере ошибки Тош по срезу РМЕ1. При несовпадении на выходе Тош формируется короткий импульс.

340