Контрольный разряд четности

Простой метод обнаружения ошибок основывается на том принципе, что если известно, что обрабатываемый двоичный код должен содержать нечетное число единиц, а полученный код содержит четное число единиц, то произошла ошибка. Для того чтобы использовать этот принцип, нам нужна система, в которой каждый код содержит нечетное число единиц. Этого легко достичь, добавив дополнительный разряд, контрольный разряд соответствия (parity bit), на место старшего разряда. (Следовательно, каждый 8-битовый код ASCII станет 9-битовым, а 16-битовой дополнительный код станет 17-битовым.) В каждом случае мы присваиваем этому разряду значение 1 или 0, так чтобы весь код содержал нечетное число единиц. Например, ASCII-код буквы А становится 101000001 (контрольный разряд четности 1), а код буквы F становится 001000110 (контрольный разряд четности 0) (рис. 1.28). Хотя 8-битовый код А содержит четное число единиц, а 8-битовый код F — нечетное, 9-битовый код этих символов содержит нечетное количество единиц. Теперь, когда мы модифицировав нашу систему кодирования, код с четным числом единиц будет означать, что произошла ошибка и что обрабатываемый двоичный код — неправильный.

Система контроля, описанная выше, называется контролем нечетности (odd parity), так как мы построили нашу систему таким образом, что каждый код со-

держит нечетное число единиц. Существует также метод-антипод — контроль четности (even parity). В таких системах каждый двоичный код содержит четное число единиц, и, следовательно, об ошибке говорит появление кода с нечетным числом единиц.

Сегодня использование контрольных разрядов четности в оперативной памяти компьютера довольно распространено. Хотя мы говорили, что ячейка памяти машин состоит из восьми битов, на самом деле она состоит из девяти битов, один из которых используется в качестве контрольного бита. Каждый раз, когда 8-битовый код передается в запоминающую схему, схема добавляет контрольный бит соответствия и сохраняет получающийся 9-битовый код. Если код уже был получен, схема проверяет его на четность. Если в нем нет ошибки, память убирает контрольный бит и возвращает 8-битовый код. В противном случае память возвращает восемь информационных битов с предупреждением о том, что возвращенный код может не совпадать с исходным кодом, помещенным в память.

Длинные двоичные коды часто сопровождает набор контрольных битов четности, которые образуют контрольный байт. Каждый разряд в байте соответствует определенной последовательности битов, находящейся в коде. Например, один контрольный бит может соответствовать каждому восьмому биту кода, начиная с первого, а другой может соответствовать каждому восьмому биту, начиная со второго. В этом случае больше вероятность обнаружить скопление ошибок в какой-либо области исходного кода, поскольку они будут находиться в области действия нескольких контрольных битов четности. Разновидностью контрольного байта являются такие схемы для обнаружения ошибок, как контрольная сумма и циклический избыточный код.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: