Введение в архитектуру компьютеров

         

Код с проверкой на четность


Код с проверкой на четность образуется добавлением к группе информационных двоичных знаков одного контрольного. Значение его выбирается таким образом, чтобы общее число единиц в слове было четным или нечетным. После чтения или записи данных в память проверяется, сохранен ли принцип записи. Здесь d = 2. Обнаруживаются одиночные ошибки и групповые с нечетной кратностью. Целесообразно дополнять "до нечета", чтобы отличить "0" от отсутствия информации в слове, ибо в этом случае в слове будет хотя бы одна единица.

Рассмотренные выше коды используются лишь для повышения надежности передачи информации. Они непригодны для контроля выполнения операций в компьютере. Действительно, все рассматриваемые коды основаны на определении изменения исходного кода. При выполнении арифметических и логических операций (АЛО) код всегда изменяется, даже если он без ошибок.

Известно много кодов для контроля выполнения АЛО. Например, код "2 из 5" или "2 из 7" (2 единицы и 3 нуля и 2 единицы и 5 нулей соответственно). Но эти коды имеют большую избыточность и требуют сложной схемы АЛУ.

Определение 1. Наименьшим неотрицательным вычетом C(N) числа N по модулю P назовем число

.

Определение 2. Два числа N1 и N2 сравнимы по mod P, если равны их наименьшие вычеты по этому модулю, т. е. если

С (N1) = C (N2), т. е. N1 º N2 (mod P).

Верно соотношение N º C (N) (mod P).

Наибольшее распространение как в отечественных, так и в зарубежных компьютерах получил раздельный контроль АО с помощью спецустройства, выполняющего арифметические операции над контрольными разрядами. При этом контрольные знаки есть двоичное изображение наименьшего вычета по mod P. Такой контроль получил название контроля по модулю.

Контроль АЛО основан на следующих свойствах:

*                    если N1 ± N2 = N3


или N1N2 = N3 , то C(N1) ± C(N2) º C(N3) (mod P)  и C(N1) C(N2) º C(N3) (mod P);

*                    если N1 = N2N3 + N4, то C(N1) º [C(N2) C(N3) + C(N4)] (mod P).



Кодирование чисел состоит в определении C(Ni), а для обнаружения ошибок вместо декодирования проверяется выполнение сравнений.

Принцип раздельного контроля по модулю может быть представлен следующей схемой (рис. 11.1)

Для эффективного использования данного метода модуль, выбираемый для контроля, должен удовлетворять следующим свойствам:

·  должен быть достаточно велик, ибо от его значения зависит корректирующая способность кода;

Рис. 11.1. Контроль по модулю

· должен быть таким, чтобы наименьшие неотрицательные вычеты по нему можно было легко определить;

Выбор модуля с минимальным кодовым расстоянием d = 2 используют для обнаружения одиночных и некоторых кратных ошибок. Чаще выбирают модуль P, равный B–1, где B – основание системы, что позволяет проще определять вычеты.

Все вышеизложенное позволяет утверждать, что система в коде вычетов – самокорректирующаяся.


Содержание раздела