В устройствах хранения и передачи информации одиночная ошибка вызывала искажение цифры лишь одного разряда слова. При выполнении арифметических операций одиночная ошибка в получаемом результате может вызвать искажение одновременно группы разрядов. Пусть в суммирующем счетчике хранится число N = 10111 и на вход поступает очередная единица. Произойдет сложение: N
= N
+1. При этом
Пусть в процессе суммирования из-за ошибочной работы устройства не будет передан перенос из 2-го разряда в 3-й. Такая одиночная ошибка приведет к следующему результату:
Сравнивая ошибочный результат N с правильным N
, видим, что они различаются в двух разрядах. Тем не менее считаем, что в N
содержится одиночная ошибка. Во всех случаях, когда ошибочный результат связан с арифметическим прибавлением (или вычитанием) ошибочной единицы к одному из разрядов, имеет место одиночная ошибка. И если ошибочный результат может быть получен из правильного результата путем арифметического суммирования (или вычитания) единицы не менее чем в k разрядах, кратность ошибки равна k.
Для контроля арифметических операций чаще всего используется контроль по модулю q. Этот метод более универсален и годится также для контроля устройств хранения и передачи информации. Сущность метода состоит в следующем.
Контролируемое число N арифметически делится на q, и выделяется остаток r . Остаток вписывается в контрольные разряды числа N вслед за его информационными разрядами. Принятое число N* делится на q и выделяется остаток r
*. Эту операцию выполняет устройство свертки по модулю q (рис.4).
Рис.4. Устройство свертки по модулю q.
Устройство сравнения сравнивает r и r
*, в случае их несовпадения выносит решение о наличии ошибки в принятом слове. Схема на рис. 5 иллюстрирует принцип контроля суммирующего устройства.
Рис.5. Схема, иллюстрирующая принцип контроля суммирующего устройства.
Пусть в результате суммирования чисел N и N
получено N*. Остатки r
и r
также суммируются с выделением остатка r
. Если остаток r
*, полученный от деления числа N* на модуль q, не совпадает с r
, то элемент сравнения сигнализирует о наличии ошибок в работе устройства.
Чаще всего используется q = 3, иногда выбирается q = 7. При увеличении значения q возрастает способность метода к обнаружению ошибок, но одновременно увеличивается объем контролирующего оборудования.
Рассмотрим пример применительно к схеме на рис. 5. Пусть q = 3, N = 32
= 100000
, N
= 29
= 011101
. Соответствующие этим числам остатки равны r
= 2
= 10
, r
= 2
= 10
(при q = 3 остатки могут принимать значения 0, 1, 2 и для их представления в двоичной форме достаточно двух контрольных разрядов). При отсутствии ошибок в работе устройства результат суммирования чисел N* = N
+ N
= 61
= = 111101
, значение свертки по модулю 3 равно r
* = 01
. Суммируя r
и r
и выделяя остаток по модулю 3, получаем r
= 01
. Совпадение r
* = r
указывает на отсутствие ошибок. При наличии ошибок не имело бы места совпадение остатков r
* и r
.
Эффективность контроля по модулю характеризуется данными, приведенными в табл. 2.
Таблица 2
В таблице указано, какую часть всех возможных комбинаций ошибок составляют ошибки, которые не обнаруживаются при контроле по модулю. Как видно из приведенных данных, обнаруживаются все однократные ошибки; доля ошибок высокой кратности, оказывающихся необнаруженными, при модуле 7 меньше, чем при модуле 3. Тем самым эффективность контроля по модулю 7 выше, чем при модуле 3. Однако при контроле по модулю 7 контрольная часть слов содержит три двоичных разряда (вместо двух разрядов при модуле 3) и, кроме того, сложнее схемы формирования остатков (схемы свертки).
В заключение рассмотрим построение схем свертки по модулю 3. Общим для этих схем является следующий метод получения остатка. Каждый разряд числа вносит определенный вклад в формируемый остаток. В табл. 3 приведены остатки от деления на 3 значений, выражаемых единицами отдельных разрядов (т.е. весовых коэффициентов разрядов). Эти остатки для единиц нечетных разрядов равны 1, для четных разрядов они равны 2. Следовательно, для получения остатка от деления на 3 всего числа достаточно просуммировать остатки для единиц отдельных его разрядов и затем для получения суммы найти остаток от деления на 3.
Таблица 3
Например, пусть N = 11001011 ; сумма остатков, создаваемых отдельными разрядами, S=1·2+1·1 + 0·2 + 0·1 + 1·2+0·1+1·2+1·1 = 8; далее, деля 8 на 3, получаем остаток r
= 2.
Дата: 2019-07-30, просмотров: 222.