Контроль правильности передач и хранения данных - важное условие нормальной работы ЦУ. В этой области простейшим и широко применяемым методом является контроль по модулю 2. Приступая к ознакомлению с этим методом, следует остановиться на некоторых понятиях из теории построения помехоустойчивых кодов. Кодовая комбинация - набор из символов принятого алфавита. Код - совокупность кодовых комбинаций, используемых для отображения информации. Кодовое расстояние между двумя кодовыми комбинациями - число разрядов, в которых эти комбинации отличаются друг от друга. Минимальное кодовое расстояние - минимальное кодовое расстояние для любой пары комбинаций, входящих в данный код. Кратностью ошибки называют число ошибок в данном слове (число неверных разрядов).
Из теории кодирования известны условия обнаружения и исправления ошибок при использовании кодов:
где - минимальное кодовое расстояние кода; и - кратность обнаруживаемых и исправляемых ошибок соответственно.
Существует также понятие веса комбинации, под которым понимается число единиц в данной комбинации.
Для двоичного кода минимальное кодовое расстояние = 1, поэтому он не обладает возможностями какого-либо контроля производимых над ним действий. Чтобы получить возможность обнаруживать хотя бы ошибки единичной кратности, нужно увеличить минимальное кодовое расстояние на 1. Это и сделано для кода контроля по модулю 2 (контроля по четности/нечетности).
При этом способе контроля каждое слово дополняется контрольным разрядом, значение которого подбирается так, чтобы сделать четным (нечетным) вес каждой кодовой комбинации. При одиночной ошибке в кодовой комбинации четность (нечетность) ее веса меняется, а такая комбинация не принадлежит данному коду, что и обнаруживается схемами контроля. При двойной ошибке четность (нечетность) комбинации не нарушается - такая ошибка нe обнаруживается. Легко видеть, что у кода с контрольным разрядом = 2. Хотя обнаруживаются ошибки не только единичной, но вообще нечетной кратности, на величину это не влияет.
При контроле по четности вес кодовых комбинаций делают четным, при контроле по нечетности - нечетным. Логические возможности обоих вариантов абсолютно идентичны. В зависимости от технической реализации каналов передачи данных, может проявиться предпочтительность того или того варианта, поскольку один из вариантов может позволить отличать обрыв всех линий связи от передачи нулевого слова, а другой - нет.
Значения контрольного разряда r при контроле по четности (rч) и нечетности (rн) приведены для четырехразрядного информационного слова в табл. 2.9.
После передачи слова или считывания его из памяти вновь производится сложение разрядов кодовой комбинации по модулю 2 (свертка по модулю 2) и проверяется, сохранилась ли четность (нечетность) веса принятой комбинации. Если четность (нечетность) веса комбинации изменилась, фиксируется ошибка операции.
Из приведенного материала следует, что контроль по модулю 2 эффективен там, где вероятность единичной ошибки много больше, чем вероятность двойной (или вообще групповой).
В частности, для полупроводниковой основной памяти компьютеров такая ситуация справедлива, т. к. каждый бит слова хранится в своей собственной ячейке, и наиболее вероятны единичные ошибки. А для памяти на магнитных носителях информации (диски, ленты) дефекты таковы, что обычно затрагивают площадь, на которой размещено несколько бит данных, поэтому для этой памяти контроль по модулю 2 неэффективен.