Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л_9.DOC
Скачиваний:
2
Добавлен:
15.04.2019
Размер:
791.55 Кб
Скачать

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 без искажений.

Необходимо отметить, что код Хемминга имеет большую избыточность, чем коды с проверкой на четность, однако позволяет в течение длительного времени (до следующего от­каза) работать на неисправном оборудовании, что существен­но повышает надежность ЭВМ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]