1.2.2 Схемы свертки
Контроль по модулю 2 реализуется
с помощью схем свертки. Типична
многоярусная схема свертки
пирамидального типа. На рис. 1а показана
схема свертки байта. Для оценки аппаратной
сложности и быстродействия подобных
схем при разрядности свертываемого
слова 2
(n
- произвольное целое число) легко получить
соотношения:
;
,
где N
-число
логических элементов в схеме; L - ее
логическая глубина. Схемотехника
сейчас сориентирована главным образом
на работу с параллельными данными,
однако не исключены ситуации обработки
последовательных данных, когда слова
передаются по одной линии последовательно
разряд за разрядом. Для таких случаев
целесообразно
применять схему свертки (рис.
1б), которая выдает результат всего лишь
через одну задержку после поступления
последнего разряда
.

Рисунок 1(б)
Рисунок 1(а)
Рисунок 1. Схемы свертки пирамидального (а) и последовательного (б) типов.
Рисунок 2(а) Рисунок 2(б)
Рисунок 2(в)
Рисунок 2. Микросхема ИП5 (а,б) и ее применение в схеме контроля (в).
Примером ИС свертки по модулю 2 может служить микросхема ИП5 серии КР1533. Схема имеет 9 входов, что допускает свертку байта с девятым контрольным разрядом. Двумя выходами схемы являются Е (EVEN) и (ODD). Если вес входной комбинации четный, то Е == 1 и О = 0, и наоборот, если вес нечетный. Схемотехнически ИС КР1533ИП5 представляет собою пирамидальную структуру из трехвходовых элементов типа четность/нечетность.
1.2.3 Контроль с использованием кодов Хемминга
Применение кодов Хемминга позволяет исправлять единичные ошибки. Добавление к коду Хемминга контрольного разряда, обеспечивающего четность/нечетность всей кодовой комбинации в целом, приводит к модифицированному коду Хемминга, с помощью которого можно исправлять единичные ошибки и обнаруживать двойные.
Методы контроля с помощью кодов Хемминга основаны на тех же идеях, что и контроль по модулю 2. Отсюда и область эффективного применения кодов Хемминга - устройства, в которых вероятность единичных ошибок много больше, чем вероятность групповых.
Для получения кодовой
комбинации кода Хемминга к информационному
слову добавляется несколько контрольных
разрядов. Для простоты просмотра
кодовых комбинаций с целью определения
значений контрольных разрядов примем,
что контрольные разряды занимают позиции
с номерами 2
(I =0, 1,2,...).
Каждый контрольный разряд ассоциируется с некоторой группой разрядов кодовой комбинации и выводит вес группы, в которую он входит, на четность/нечетность.
Первый контрольный разряд входит в группу разрядов с номерами xx...xxl, где х означает произвольное значение. Иными словами, в первую группу входят разряды с нечетными номерами: 1, 3, 5, 7, 9,... Второй контрольный разряд входит в группу разрядов с номерами, имеющими единицу во втором справа разряде, т. е. номерами xx...xlx. Это номера 2, 3, 6, 7, 10, 11 ...
Третий контрольный разряд входит в группу, у которой номера разрядов имеют единицу в третьем справа разряде: хх...1хх, т. е. с номерами 4, 5, 6, 7,12, 13,14,15,…
Контрольные разряды выводят
веса своих групп на четность/нечетность.
Далее для определенности примем, что
ведется контроль по четности. После
выполнения операции (например, считывания
кодовой комбинации из памяти) производится
столько проверок по модулю 2, сколько
контрольных разрядов в кодовой
комбинации, т. е. проверяется сохранение
четности весов групп. Если в кодовой
комбинации произошла ошибка, то в одних
проверках она скажется, а в других - нет.
Это и позволяет определить
разряд, в котором произошла ошибка.
Для восстановления правильного значения
слова теперь остается только
проинвертировать ошибочный разряд.
Такова идея построения и использования
кода Хемминга. Пример составления кода
Хемминга для четырехразрядного
информационого слова A=![]()
![]()
![]()
приведен в табл.2 . Через
в таблице обозначен общий контрольный
разряд для всей кодовой комбинации,
через
-
первый, второй и третий групповые
контрольные разряды.
Таблица 2. Пример составления кода Хемминга.
|
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
|
|
|
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
|
|
|
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
|
|
|
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
|
|
|
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
|
|
|
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
|
|
|
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
|
|
|
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
|
|
|
… |
… |
… |
… |
… |
… |
… |
… |
|
|
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
|
Для коротких слов избыточность кода Хемминга получилась значительной (здесь на четыре информационных разряда приходится четыре контрольных), но это нетипично, поскольку реально контролируются слова большей разрядности, для которых избыточность (относительная) быстро уменьшается с ростом разрядности слов. Короткое слово взято, чтобы пример не был громоздким.
Рассмотрим теперь процесс
исправления и выявления ошибок. Пусть,
например, передавалось информационное
слово 0110 =
.
Не учитывая пока разряд
,
получим, что правильная кодовая комбинация
имеет вид:
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
|
0 |
1 |
1 |
0 |
0 |
1 |
1 |
Пусть во втором слева разряде произошла ошибка и принята комбинация:
|
7 |
6 |
5 |
4 |
0 |
0 |
1 |
|
0 |
0 |
1 |
0 |
0 |
1 |
1 |
Первая проверка (по группе
разрядов с нечетными номерами)
показывает сохранение четности, т. е. в
этой группе ошибок нет, результат
этой проверки отмечается нулем. Вторая
проверка (по разрядам 2, 3, 6, 7) обнаруживает
нарушение четности веса комбинации, ее
результ
ат
отмечается единицей. Третья проверка
(по разрядам 4, 5, 6, 7) также обнаруживает
нарушение четности, ее результат
отмечается единицей.
Результаты проверок образуют
слово, называемое синдромом. Синдром
указывает номер разряда, в котором
произошла ошибка. Во взятом примере
результаты проверок дают слово 110=
. Проинвертировав разряд номер 6,
возвращаемся к правильной кодовой комбинации ошибка исправлена. Минимальное кодовое расстояние обычного кода Хемминга равно трем. Добавление разряда проверки общей четности веса комбинации приводит к модифицированному коду Хемминга с минимальным кодовым расстоянием, равным 4 и, соответственно, добавляет возможность обнаружения двойной ошибки. Обнаружение двойной ошибки основано на сопоставлении наличия или отсутствия признаков ошибки в синдроме и общей четности. Если обозначить через S любое ненулевое значение синдрома, то возможные ситуации, используемые для обнаружения двойной ошибки, окажутся следующими (табл. 3).
Таблица 3. Возможные ситуации при обнаружении двойной ошибки.
|
Синдром |
Свертка кодовой операции |
Характеристика результата |
|
0
s
s
0 |
0
1
0
1 |
Все правильно, слово можно использовать
Была допущена единичная ошибка, исправлена, слово можно использовать
Эти ситуации могут возникать только вследствие ошибок двойной или большей кратности, слово использовать нельзя |
