Код с проверкой четности (нечетности)
Код с проверкой четности образуется добавлением к группе информационных разрядов, представляющих простой (неизбыточный) код, одного избыточного (контрольного) разряда.
При формировании кода слова в контрольный разряд записывается 0 или 1 таким образом, чтобы сумма «1» в слове, включая избыточный разряд, была четной (при контроле по четности) или нечетной (при контроле по нечетности). В дальнейшем при всех передачах, включая запись в память и считывание, слово передается вместе со своим контрольным разрядом. Если при передаче информации приемное устройство обнаруживает, что в принятом слове значение контрольного разряда не соответствует четности суммы «1» слова, то это воспринимается как признак ошибки.
В современных ЭВМ обычно каждый байт информации имеет один контрольный разряд (рис. 1).
Рисунок 1 – Байт информации с контрольным разрядом
Минимальное расстояние кода dmin = 2, поэтому код с проверкой четности обнаруживает все одиночные ошибки, а кроме того, все случаи нечетного числа ошибок (3, 5 и т. д.). При одновременном возникновении двух или любого другого четного числа ошибок код с проверкой четности не обнаруживает ошибок.
При контроле по нечетности контролируется полное пропадание информации, поскольку кодовое слово, состоящее из «0», относится к запрещенным.
Код с проверкой четности имеет небольшую избыточность и не требует больших затрат оборудования на реализацию контроля. Этот код широко применяется в вычислительных машинах для контроля передач информации между регистрами и для контроля считываемой информации в оперативной памяти.
При построении схем определения четности суммы 1 слова используют логические элементы с парафазным выходом, подобные изображенному на рис. 2, а и б. Показанные схемы выполняют операцию «сложения по модулю 2» (условное обозначение М2) для двоичных переменных х и у. На рис. 2, в показана
схема определения признака четности байта.
Рис. 2
Легко установить связь кодирования при контроле по четности с выполнением сложения по модулю 2. Если количество 1 в слове должно быть четным, то в контрольный разряд записывается прямой код суммы по модулю 2 всех информационных разрядов слова. При контроле на нечетность в контрольный разряд заносится обратный код указанной суммы.
Контроль по совпадению
При передачах можно использовать и другой вид контроля - контроль по совпадению. После передачи информации из одного регистра в другой правильность передачи можно проверить поразрядным сравнением содержимого всех разрядов регистров.
При контроле по совпадению не требуется формирования каких-либо дополнительных контрольных разрядов, следовательно, этот метод основывается не на информационной, а на схемной избыточности.
Один из вариантов схемы контроля передач по совпадению показан на рис. 3. После передачи информации из регистра А в регистр В (или из В в А) через время, несколько большее времени установления переходных процессов в триггерах регистров, на выходе схемы появляется сигнал «1» при несовпадении содержимого А и В или «0» в противном случае. При контроле передачи по совпадению обнаруживаются ошибки любой кратности. Затраты оборудования при контроле по совпадению меньше, чем при контроле по четности.
Однако контроль по совпадению обладает существенным недостатком. Этот метод позволяет проверить правильность передачи числа в регистр и отсутствие сбоев при его хранении только до тех пор, пока не изменит своего состояния регистр, из которого передавалась информация.
Рис. 3