русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Числовой контроль по модулю


Дата добавления: 2014-11-28; просмотров: 5086; Нарушение авторских прав


 

Числовой контроль по модулю относится к аппаратурным методам контроля.

Рассмотрим способы кодирования информации при числовом аппаратурном контроле по модулю.

Любое целое число можно представить в виде

A = q×a + ra ,

где А, q, a и ra - целые числа; q - модуль; a = éА/qù - наибольшая целая часть частного; ra - остаток (вычет) от деления числа А на модуль q.

Остаток ra для различных чисел может принимать значения ra = 0, 1, 2, 3, ... q-1. Таким образом, каждому целому числу А можно поставить в соответствие некоторый остаток ra, полученный в результате деления этого числа на некоторый модуль q. Это соответствие записывается в виде

А º ra mod q

и читается так: число А сравнимо с остатком ra по модулю q.

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

Действительно, сумма чисел сравнима по модулю q с суммой остатков данных чисел по этому же модулю, т.е.

,

а произведение чисел сравнимо по модулю с произведением остатков этих чисел по этому же модулю, т.е.

.

Приведённые соотношения лежат в основе числового контроля по модулю.

Правильность выполнения сложения и вычитания (С = А ± В), контролируется соотношениями

r'c º (ra + rb) mod q , r'c º (ra - rb) mod q .

Контрольное соотношение для операции умножения (С = А×В), имеет вид

r'c º (ra×rb) mod q .



Однако это соотношение справедливо, когда не происходит потери разрядов произведения при их выходе за пределы разрядной сетки. Если эту потерю учесть, то получим

r'c º [(ra + rb) - rE] mod q ,

где rE - остаток от значения разрядов, отбрасываемых при округлении.

На рис.16.6 приведена структурная схема контроля выполнения основной операции (сложения, вычитания, умножения).

 

 

 

Рис.16.6. Схема контроля операций сложения,

вычитания, умножения

 

 

Рассмотрим последовательность выполнения контрольных операций.

От кодовых слов, представляющих числа А и В, образуются остатки ra и rb по выбранному модулю контроля q. Процесс образования остатков носит название свёртки числа, а соответствующий узел называется узлом свёртки. Параллельно с основной операцией (она обозначена *) над словами А и В в контролирующем устройстве выполняется аналогичная операция над остатками ra и rb. Затем результат операции С сворачивается и величина rc сравнивается с предполагаемым остатком r'c, полученным в контрольном устройстве. Совпадение rc и r'c свидетельствует о правильности выполнения операции.

Числовой контроль по модулю обнаруживает не все возможные ошибки. Ошибка обнаружена не будет, если она такова, что правильный и ошибочный результаты будут принадлежать к одному и тому же остаточному классу чисел, сравнимых по модулю q.

Из самого принципа контроля следует, что его наиболее целесообразно применять в устройствах, перерабатывающих цифровую информацию. Числовой контроль по модулю хорошо приспособлен к проверке правильности выполнения арифметических операций (сложение, вычитание, умножение), а с использованием искусственных приёмов он может применяться для контроля и других операций. С его помощью можно также контролировать правильность хранения и пересылки информации [14].

В ЭВМ целесообразно организовывать сквозной контроль по модулю. Каждое кодовое слово содержит дополнительные разряды, в которые заблаговременно записывается контрольная характеристика, представляющая собой закодированный остаток по выбранному модулю контроля. В этом случае непосредственно перед выполнением операции не потребуется формировать остатки ra и rb и время выполнения контрольных операций сократится.

Пример 16.1. Для заданных чисел А = 82 и В = 49 определить контрольные коды самих чисел, их суммы, разности и произведения, если модуль q = 5. Произвести контроль выполнения вышеназванных операций.

Решение. Контрольные коды чисел:

ra = 82 - = 2 ; rb = 49 - = 4 .

Аналогично находим контрольные коды для суммы, разности и произведения:

А + В = 131 , ra+ b = 131 - × 5 = 1 .

А - В = 33 , ra - b = 33 - × 5 = 3 .

А×В = 4018 , ra× b = 4018 - × 5 = 3 .

Проведём аналогичные операции (сложение, вычитание, умножение) по модулю над остатками исходных чисел:

r'a+ b = (ra + rb) mod q = (2 + 4) mod 5 = 1 .

r'a - b = (ra - rb) mod q = (2 - 4) mod 5 = 3 .

r'a× b = (ra×rb) mod q = (2×4) mod 5 = 3 .

Контрольные коды совпадают, что свидетельствует о правильности выполнения операций.

Ответ: ra = 2, rb = 4, ra+ b = r'a + b = 1, ra - b = r'a - b = 3, ra× b = r'a× b = 3.

 

Для контроля операции деления (Z = A/B) используются соотношения

Z = ; A = B×Z + W ,

где А - делимое; В - делитель; Z - частное; W - остаток от деления А на В, откуда следует контрольное соотношение

r'a º [(rb× rZ) + rW] mod q .

Следовательно, контроль операции деления состоит в следующем:

получить от частного Z и остатка W вычеты rZ и rW;

произвести умножение rb и rZ по модулю q;

сложить полученное произведение по модулю q с rW;

сравнить полученную сумму r'a с контрольной характеристикой делимого ra.

Структурная схема контроля операции деления представлена на рис.16.7.

 

 

 

Рис.16.7. Структурная схема контроля операции деления

 

Пример 16.2. Для заданных чисел А = 188 и В = 11 определить контрольные коды самих чисел, их частного и остатка от деления, если модуль q = 3. Произвести контроль операции деления.

Решение. Контрольные коды заданных чисел:

ra = 188 - = 2 ; rb = 11 - = 2 .

Аналогично находим контрольные коды их частного и остатка от деления:

Z = = 17 , rZ = 17 - = 2 ;

W = 188 - ×11 = 1 , rW = 1 - = 1 ;

Произведём проверку правильности выполнения операции деления:

r'a = [(rb× rZ) + rW] mod q = [(2×2) + 1] mod 3 = 2 .

Контрольные коды ra и r'a совпадают, что свидетельствует о правильности выполнения операции.

Ответ: ra = r'a = 2, rb = 2, rZ = 2, rW = 1.

 

Из рис. 16.6 и 16.7 видно, что в состав контролирующего устройства должны входить специфические узлы, предназначенные для получения вычетов и выполнения операций над ними.

Узлы свёртки, сумматоры и умножители по модулю. Узлы свёpтки предназначены для получения остатка от деления числа на модуль контроля q. Эта операция выполняется суммированием цифр разрядов числа по модулю q.

Представим двоичное число А=an an-1 ... a1 a0 в виде

А=an×2n an-1×2n-1 ... a1×21 a0×20 .

Разделив А на q, получим

.

Так как для получения остатка все операции в этом выражении выполняются по модулю q, то сомножители 2i/q можно заменить соответствующими остатками ri, которые называются весовыми коэффициентами. Тогда остаток rа можно вычислить по формуле

rа = (an rn + an-1 rn-1 + ... + a1 r1 + a0 r0) mod q .

Следовательно, процесс получения остатка числа по модулю q сводится к суммированию по модулю q содержимого всех разрядов числа с учётом их весовых коэффициентов.

Значения весовых коэффициентов ri легко определяются делением 2i/q и представлены в табл.16.4.

Анализируя табл.16.4 заметим, что модули q = 2i (i=1, 2, 3, ...) неприменимы для контроля, поскольку позволяют проконтролировать всего i младших разрядов числа. Кроме того, из табл.16.4 видно, что весовые коэффициенты являются периодической функцией номера разряда. Это позволяет упростить операцию свёртки, так как она разбивается на ряд однотипных действий. Особенно просто свёртка осуществляется при модулях q = 2i-1 (модули 3, 7, 15, ...), так как значения весовых коэффициентов внутри периода (по группам) совпадают с весами разрядов числа, записанного в двоичной системе счисления. Именно эти модулю и будут рассматриваться в дальнейшем.

 

Таблица 16.4
Модуль Вес разряда
контроля 210 29 28 27 26 25 24 23 22 21 20

 

Существует много разновидностей узлов свёртки. Рассмотрим наиболее характерные из них.

Последовательная схема свёртки, представленная на рис.16.8, содержит один одноразрядный сумматор, два сдвигающих регистра: RgA - для хранения свёртываемого числа А, Rgra – для хранения промежуточных и окончательного результатов и элемент задержки (триггер).

  Рис.16.8. Последовательная схема свёртки

Операция свёртки здесь производится путём последовательного суммирования разрядов числа А с содержимым Rgra. Перенос, возникающий при суммировании старшего разряда Rgra, через элемент задержки поступает в младший разряд.

Схема проста и требует малого количества оборудования, которое практически не зависит от величины модуля. Недостаток - большое время сворачивания.

Параллельная (пирамидальная) схема свёртки, построенная на полных одноразрядных сумматорах, имеет многоярусную структуру. В каждом ярусе отдельные сумматоры суммируют цифры сворачиваемого числа с одинаковым весом. На рис.16.9 представлена параллельная схема свёртки 12-разрядного числа по модулю 7. Веса соответствующих разрядов обозначены на рисунке цифрами. Перенос, получаемый при суммировании цифр с весом 4, поступает на вход сумматора следующего яруса, суммирующего цифры с весом 1. Верхний ярус сумматора заканчивается трёхразрядным сумматором с цепью циклического переноса. Здесь формируется окончательное значение остатка.

Преимуществом схемы является однотипность её элементов и малое время выполнения операции сворачивания. Недостаток - большое количество оборудования.

Сумматор по модулю q = 2m-1 строится на одноразрядных сумматорах как обычный m-разрядный сумматор, содержащий цепь циклического переноса из старшего разряда в младший. На рис.16.10 показана схема сумматора по модулю 3. Здесь же обозначены веса цифр слагаемых и суммы. Особенностью таких сумматоров является двузначность нулевого остатка. Нулевой остаток выражается как 00...0 и как 11...1. Действительно, нулевой остаток всегда сравним с самим модулем, т.е.

0 º q mod q .

Этот факт можно использовать для повышения эффективности контроля. Если в качестве нулевого остатка всегда выбирать q, то наличие нуля в контрольных разрядах будет свидетельствовать о возникновении ошибки.

 

 

 

Рис.16.9. Пирамидальная схема свёртки по модулю 7

 

 

Умножители по модулю служат для получения произведения остатков по модулю. Умножение вычетов можно выполнить с помощью сумматора путём многократного сложения сдвинутых сомножителей. Однако в этом случае умножение займёт много времени. Поскольку количество разрядов в перемножаемых вычетах невелико (2, 3, 4), то целесообразно использовать матричные или табличные умножители, обеспечивающие при малом количестве оборудования малое время выполнения операции.

  Рис.16.10. Схема сумматора по модулю 3

Числовой контроль по модулю позволяет контролировать не только выполнение арифметических, но и логических операций, таких, как поразрядное логическое сложение, поразрядное логическое умножение, поразрядное сложение по модулю 2, операции сдвига и инвертирования [14, 22].

Числовой аппаратурный контроль может производиться не только по одному модулю, а одновременно по нескольким модулям. При этом возникают новые возможности повышения эффективности контроля. В зависимости от величины выбранных модулей можно обеспечить не только определение факта появления ошибки в выходном слове контролируемого устройства, но и определить место (разряд) появления ошибки.

Существенным недостатком числового аппаратурного контроля по модулю с исправлением ошибок является наличие большого количества контрольной аппаратуры. Поэтому аппаратурный контроль по модулю с исправлением ошибок целесообразно использовать только в особо ответственных устройствах и узлах больших систем.

 

 



<== предыдущая лекция | следующая лекция ==>
Код Хэмминга | Кодовый контроль по модулю


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.007 сек.