- •Раздел 3. Технические средства информационных технологий Лекция № 9. Информационные основы контроля работы цифровых автоматов
- •1 Основные характеристики надежности эвм. Функции систем
- •2 Систематические коды. Контроль по четности, нечетности, по Хеммингу.
- •1 Основные характеристики надежности эвм.
- •1.1 Надежность информационной системы
- •1.2 Достоверность функционирования информационной системы
- •1.3 Функции систем контроля и диагностирования
- •2 Систематические коды. Контроль по четности,
- •2.1 Код с проверкой четности (нечетности)
- •2.2 Контроль по совпадению
- •2.3 Корректирующий код Хэмминга
2.2 Контроль по совпадению
При передачах можно использовать и другой вид контроля - контроль по совпадению. После передачи информации из одного регистра в другой правильность передачи можно проверить поразрядным сравнением содержимого всех разрядов регистров.
При контроле по совпадению не требуется формирования каких-либо дополнительных контрольных разрядов, следовательно, этот метод основывается не на информационной, а на схемной избыточности.
Один из вариантов схемы контроля передач по совпадению показан на рис. 3. После передачи информации из регистра А в регистр В (или из В в А) через время, несколько большее времени установления переходных процессов в триггерах регистров, на выходе схемы появляется сигнал «1» при несовпадении содержимого А и В или «0» в противном случае. При контроле передачи по совпадению обнаруживаются ошибки любой кратности. Затраты оборудования при контроле по совпадению меньше, чем при контроле по четности.
Однако контроль по совпадению обладает существенным недостатком. Этот метод позволяет проверить правильность передачи числа в регистр и отсутствие сбоев при его хранении только до тех пор, пока не изменит своего состояния регистр, из которого передавалась информация.
Рис. 3
2.3 Корректирующий код Хэмминга
В оперативной памяти применяют код Хэмминга, позволяющий исправлять ошибки.
Код Хэмминга строится таким образом, что к имеющимся информационным разрядам слова добавляется определенное число контрольных разрядов, которые формируются перед записью слова в ОП и вместе с информационными разрядами слова записываются в память.
При считывании слова контрольная аппаратура образует из прочитанных информационных и контрольных разрядов корректирующее число, которое равно «0» при отсутствии ошибки либо указывает место ошибки, например двоичный порядковый номер ошибочного разряда в слове. Ошибочный разряд автоматически корректируется изменением его состояния на противоположное.
В общем случае при использовании кода Хемминга n-разрядное число имеет m информационных k = n - m контрольных разрядов.
Поскольку ошибка может произойти в одном из n разрядов или вообще отсутствовать, то число контрольных разрядов должно позволять фиксировать одно из (n+1) событий. Поэтому:
k log 2 (n+1).
Откуда
m n – log2 (n+1).
Значения m и k для некоторых n-разрядных кодов, вычисленные в соответствии с полученными выражениями, приведены в таблице 1.
Таблица 1
-
n
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
m
1
1
2
3
4
4
5
6
7
8
9
10
11
11
12
13
k
2
3
3
3
3
4
4
4
4
4
4
4
4
5
5
5
Разряды слова, представленного кодом Хемминга, нумеруются от единицы до (k+m). Контрольные разряды помещаются в разрядные позиции с номерами 1, 2, 4, 8, ..., 2k-1. Остальные m разрядов можно поместить в любом порядке между контрольными позициями. Каждый из контрольных разрядов –результат проверки на четность определенной группы разрядов п- разрядного кода. Если в данной группе разрядов число единиц четное, то в соответствующий контрольный разряд записывается 0, если нечетное – 1.
В таблице 2 приведены группы проверяемых разрядов для k = 5.
Таблица 2
-
Номер проверки
Позиция контрольн. разр.
Проверяемые разряды числа
1
2
3
4
5
1
2
4
8
16
1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, …
2, 3, 6, 7, 10, 11, 14, 15, 18, 19, 22, …
4, 5, 6, 7, 12, 13, 14, 15, 20, 21, 22, …
8, 9, 10, 11, 12, 13, 20, 21, 22, …
16, 17, 18, 19, 20, 21, 22, …
Младший разряд контрольного слова (1-я позиция) охватывает те разряды n-разрядного числа, номера которых, представленные в двоичном коде, имеют 1 в первом разряде. Второй разряд контрольного слова охватывает те разряды числа, номера которых имеют 1 во втором разряде и т. д.
Процедуру исправления одиночной ошибки с помощью кода Хемминга рассмотрим на примере передачи чисел от 0 до 9. Как следует из первой таблицы, для этого случая n = 7, m = 4, k = 3. Контрольные разряды будут размещаться в позициях 1, 2, 4 (помечены звездочкой в табл. ниже).
-
-
* **
0
0000
0000000
1
0001
0000111
2
0010
0011001
3
0011
0011110
4
0100
0101010
5
0101
0101101
6
0110
0110011
7
0111
0110100
8
1000
1001011
9
1001
1001100
Десятичное
число
Двоичный
код
Код
Хемминга
Предположим, что передается число 7, которому соответствует код Хемминга 0110100. Предположим также, что произошла ошибка в разряде 6, т. е. принят код 0010100. Декодирующее устройство производит сверку соответствующих групп разрядов. В результате будет сформирован код контрольного слова 110 указывает номер разряда, в котором произошла ошибка. На 6-м выходе дешифратора появится сигнал единички, который просуммируется по модулю 2 с 6-м разрядом искаженного числа. В результате после схемы сложения по модулю 2 получим код числа 7 без искажений.
Необходимо отметить, что код Хемминга имеет большую избыточность, чем коды с проверкой на четность, однако позволяет в течение длительного времени (до следующего отказа) работать на неисправном оборудовании, что существенно повышает надежность ЭВМ.