Контроль виконання логічних операцій

Правильність виконання логічних операцій можна перевіряти різними способами. Якщо в деякій машині здійснено контроль арифметичних операцій за допомогою коду з перевіркою по модулю, то природно спробувати використати цей же апарат і для контролю логічних операцій. Тому розглянемо питання контролю за модулем логічних операцій диз'юнкції і кон'юнкції.

Залишок за довільним модулем від результату порозрядної диз'юнкції двох слів дорівнює сумі залишків операндів мінус залишок від результату порозрядної кон'юнкції операндів: відомо, що результат порозрядної диз'юнкції двох чисел можна представити в наступному вигляді:

Х1\/Х2 = Х1 Х2 + (Х12). (2.1)

Відомо також, що сума двох чисел дорівнює їх порозрядної сумі по модулю 2 з додаванням зсунутих на один розряд вліво цифр перенесення: Х12 = Х1 Х2 + 2(Х12). Вирішивши цей вираз відносно суми операндів по модулю 2 і підставивши результат в попередній вираз, отримаємо:

Х1\/Х2 = Х12 - (Х12). (2.2)

Переходячи від виразу для чисел до виразу для їх залишків за довільним модулем, отримаємо остаточний вираз, який і доводить припущення:

rV (r1+r2-r&)mod dm, (2.3)

де rV,r& - контрольні залишки від результату порозрядної диз'юнкції і кон'юнкції відповідно.

Щоб реалізувати можливості, закладені у останньому виразі, необхідно виконати наступні дії:

1) паралельно з операцією порозрядної диз'юнкції виконується поразрядна кон'юнкція вихідних слів: X12; X1&X2;

2) за допомогою згортки формуються контрольні залишки від результатів попередніх операцій: rV, r&;

3) обчислюється величина rV* за формулою (2.3);

4) проводиться порівняння залишків rV і rV*, на підставі якого констатується або безпомилковість результату X1VX2, або наявність в ньому помилки.

Контроль виконання кон'юнкції

Вирішимо вираз (2.1) щодо результату кон'юнкції:

Х12 = Х1 + Х2 - (Х1V Х2).

Потім переходимо до виразу для залишків по деякому модулю:

r& = (r1 + r2 – rV)mod dm. (2.4)

Таким чином, контроль результату порозрядної кон'юнкції двох слів багато в чому аналогічний контролю результату порозрядної диз'юнкції. Порядок дій при цьому такий:

1) обчислюються операції кон'юнкції і диз'юнкції над операндами;

2) формуються контрольні залишки r& і rV;

3) обчислюється величина r*& за формулою (2.4);

4) порівнюються залишки r& і r*& і робляться відповідні висновки.


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



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