Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
6
Добавлен:
27.11.2024
Размер:
886.78 Кб
Скачать

Контроль по модулю

Самым распространенным контролем в ЭВМ является контроль по модулю. Он относится к неполно­му контролю, основанному на группировании чисел в классы эквивалентности. Если в случае возникновения ошибки число переходит в другой класс эквивалентности, то такая ошибка может быть обнаружена достаточно простыми средствами. В противоположном случае ошиб­ка не обнаруживается. В один и тот же класс эквива­лентности входят числа, сравнимые по модулю. Пусть некоторое целое неотрицательное число А представлено в виде

A = a q + r, (1)

где a, q и rтакже целые неотрицательные числа, а r может принимать значения от 0 до q—1. Тогда число q называется модулем, число r остатком А по модулю q. Число а представляет собой целую часть от­ношения A/q, так как

A / q = а + r / q.

Для выявления нулевых кодов выгоднее оперировать со значениями r, лежащими в пределах: 1 £ r £ q.

В случае, когда числа A1 и A2 имеют одинаковые ос­татки r1 = r2, говорят, что А1 и А2 сравнимы по модулю q, что записывается следующим образом:

А1 º A2 mod q или А2 º А1 mod q. (2)

Например, числа 6 и 11 сравнимы по модулю 5, так как | 6 |5=1 и | 11 |5=1.

Как следует из (2), справедливо также соотноше­ние

A º r  mod q (3)

Поскольку число возможных значений r равно q, чис­ло классов эквивалентности, на которые разбивается мно­жество целых неотрицательных чисел А, равно q. Отсюда следует общее свойство контроля по модулю: чем больше q, тем больше классов эквивалентности, тем меньше мощ­ность каждого класса и тем меньше вероятность того, что в результате некоторой ошибки число остается в том же классе эквивалентности (и вследствие этого ошиб­ка не обнаруживается). Следовательно, большие значе­ния q обеспечивают большую полноту контроля.

Отметим, что в качестве модуля q не следует выби­рать основания применяемой позиционной системы счис­ления или его кратные. Это приведет к тому, что контро­лируются только младшие разряды чисел. Рекомендует­ся выбирать q = p ± 1, где pоснование системы счисле­ния.

Для двоичной системы в качестве модуля q выбира­ют значения q=3, 5, 7, 9, I5.

Остатки по модулю q отрицательных чисел могут быть образованы, когда к отрицательному числу А при­бавляется произведение n q, где n—натуральное число, достаточно большое для того, чтобы A + nq > 0. При этом, очевидно, А º (A +nq) mod q и остаток r может быть оп­ределен для положительного числа A + n q.

Например, ес­ли A= - 8, q=3, то A+nq = - 8+3x3=1, r=1.

Идея контроля по модулю арифметических операций.

Из теории чисел известны теоремы:

Т еорема 1. Сумма чисел Ai (i=l-n) тождественна (сравнима) по мо­дулю q с суммой остатков ri этих же чисел. т.е.:

Т еорема 2. Произведение чисел Ai (i = l - п) сравнимо по модулю q с произведением остатков ri этих же чисел.

Операция вычитания чисел и контрольных кодов сводится к операции сложения с использованием обратного или дополнительного кода, а контроль деления чисел осу­ществляется на основании теорем 1 и 2. Операция деления эквивалентна операции умножения с тем дополнительным условием, что при образовании контрольного кода частного необходимо учитывать еще остаток от деления.

A1 / A2 = T + F или A1 = A2 T + F ,

где Т - частное от деления А1 на А2 нацело;

F - остаток.

Используя соотношения 4 и 5 получим:

А1 º {[ r(A2) r(T)] mod q + [ r(F)] mod q } mod q (6).

Вывод из соотношений 4, 5 и 6:

Контрольный код от результата операции тождественен результату операции над контрольными кодами.

Примеры: А1 = 1234 r1 = 1

q = 3 A2 = 5678 r2 = 2

A1 + A2 = 6912 rå = 0

r1 + r2 = 3 = 0 rå' = 0