Метод контроля команд, реализующий раскраску с учетом структуры команды
Программа преобразуется в ГСА так же, как в предыдущем методе. Затем производится раскраска ГСА с помощью введения, если это необходимо, диагностических вершин. Диагностические вершины можно выбирать из той же совокупности команд, что и в предыдущем случае. Однако цвет команды определяется по структуре самой команды. Назовем цветом команды вес двоичного представления команды, взятый по модулю 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.
Рис. 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. Пример раскрашенной ГСА для случая команд