Метод контроля команд, реализующий раскраску с учетом структуры команды

 

Программа преобразуется в ГСА так же, как в предыдущем методе. Затем производится раскраска ГСА с помощью введения, если это необхо­димо, диагностических вершин. Диагностические вершины можно выби­рать из той же совокупности команд, что и в предыдущем случае. Однако цвет команды определяется по структуре самой команды. Назовем цветом команды вес двоичного представления команды, взятый по модулю m, сложенный с числом, записанным в избыточных разрядах:

 

.

 

Предлагается вводить в команду дополнительные разряды так, чтобы цвет модифицированной команды соответствовал цвету, присвоенному команде при раскраске ГСА.

Пример 4.6. Ниже представлены двоичная запись и дополнительные разряды команд для ГСА, приведенной на рис. 4.30, раскраска которой представлена на рис. 4.31.

Цвет

А0 01101011 000 0

А1 00110101 010 1

А2 01000100 000 2

А3 10111000 100 3

А4 00010110 000 3

А5 01011101 100 4

А6 00101011 001 0

А7 10001101 010 1

А8 11101011 100 0

Аk 11000011 100 3

 

В данном примере m = 5. Дополнительные разряды введены так, чтобы сумма единиц в команде по модулю 5, сложенная с избыточными разрядами, была равна цвету команды, присвоенному при раскраске:

 

r (Ao) = 0, r (A1) = 1, r (A5) = 4,

и т.д.

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

 

S1
S2

Рис. 4.34. СВК для модифицированного метода раскраски ГСА

 

Счетчик на m состояний считает количество стробов. В качестве строба выступает сигнал выборки очередной команды. Первый и второй сумматоры по модулю m определяют по структуре выбранной команды ее цвет. Самопроверяемый сумматор по модулю два сравнивает подсчитан­ный цвет с эталонным и для правильной команды выдает комбинацию {01} или {10}. При отсутствии строба S1 будет равен единице, а S2 нулю. При наличии строба выход S1 становится равным нулю, а выход S2 будет равен единице, если подсчитанный цвет совпал с эталонным, или нулю в противном случае. ССВК является полностью самопроверяемой, так как при правильных командах выходы всех элементов ССВК побывают в нуле и в единице, и константная неисправность выхода любого элемента обна­ружится на выходах S1, S2 в момент ее проявления.

Для данного метода Kизб будет находиться в пределах от 0 до ]log (m––1)[. Действительно, если цвет модифицированной команды совпадает с цветом, приписанным команде при раскраске ГСА, то дополнительных разрядов не требуется. Возьмем наихудший случай: цвет команды на еди­ницу больше, чем цвет, приписанный этой команде при раскраске ГСА. Тогда требуется приплюсовать к исходному цвету m – 1, что и соответст­вует log (m – 1) избыточному разряду.

tизб по сравнению с предыдущим случаем не меняется, так как не ме­няется алгоритм раскраски.

Вероятность обнаружения дефектов механизма дешифрации для всех типов равна (1 – 1/m).

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

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

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

ГСА, представленная на рис. 4.30, раскрашенная с учетом данного замечания, приведена на рис. 4.35. По сравнению с ГСА, показанной на рис. 4.31, количество диагностических вершин уменьшилось на 3.


Рис. 4.35. Пример раскрашенной ГСА для случая команд