Научная статья на тему 'Обнаружение и исправление ошибок при умножении чисел'

Обнаружение и исправление ошибок при умножении чисел Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
330
42
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБНАРУЖЕНИЕ ОШИБКИ / КОРРЕКЦИЯ ОШИБКИ / ОТКЛОНЕНИЕ ОПЕРАНДА

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Корсунов Н. И., Начетов А. А., Глушак А. В.

В статье рассматривается метод функционального контроля и коррекции ошибки умножения чисел путем приведения ошибки умножения к отклонению одного из входных операндов.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Корсунов Н. И., Начетов А. А., Глушак А. В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Обнаружение и исправление ошибок при умножении чисел»

УДК004

ОБНАРУЖЕНИЕ И ИСПРАВЛЕНИЕ ОШИБОК ПРИ УМНОЖЕНИИ ЧИСЕЛ

Н.И. КОРСУНОВ А.А. НАЧЕТОВ А.В.ГЛУШАК

Белгородский

государственный национальный исследовательский университет

e-mail: korsunov@intbel.ru e-mail: aleksandr@nachetov.org.ua

В статье рассматривается метод функционального контроля и коррекции ошибки умножения чисел путем приведения ошибки умножения к отклонению одного из входных операндов.

Ключевые слова: обнаружение ошибки, коррекция ошибки, отклонение операнда.

При функционировании процессоров, связанных с обработкой сигналов наиболее часто используемой операцией является умножение чисел [1]. Поэтому ошибки выполнения операции умножения существенно сказываются на точности цифровой обработки сигналов и вопросы коррекции ошибки умножения чисел являются актуальными.

Известен метод обнаружения ошибки [2], в основе которого лежит многократное дублирование и определение ошибки умножения по мажоритарному принципу. Данный метод включает обнаружение отказавшего устройства умножения при параллельном выполнении одной и той же операции и требует сравнение результатов нескольких устройств с последующим их представлением уравнениями мажоритарной логики для выбора отключаемого устройства. Основное ограничение связано с работой большинства устройств без внесения ошибок. При использовании временной избыточности требуется выполнение не менее трех последовательных операций умножения. Однако, при этом не гарантируется достоверность определения неисправного устройства, так как может оказаться в течение времени выполнения контроля неверное выполнение большинства операций, поэтому использование данного метода оправдано только при кратковременном действии помехи, а в других случаях приводит к резкому росту избыточности, реализация которого при использовании временной избыточности ведет к значительной потере быстродействия.

Другой метод обнаружения ошибки умножения на применении арифметических кодов [3] связан с вычислением остатков по выбранному модулю. В контроле с помощью арифметических кодов необходимо при умножении каждой пары элементов выполнять следующие операции.

1. Вычисляется произведение C = AB

2. Вычисляется остаток C по modP .

3. Вычисляются остатки A по mod P и B по mod P .

4. Вычисляется C* = A по mod P • B по mod P .

5. Вычисляется остаток C * по mod P .

6. Сравниваются C и C* по mod P .

Это приводит при аппаратной реализации к росту оборудования, а при программной - к значительному увеличению времени.

Блок-схема алгоритма контроля умножения при использовании арифметических кодов представлена на рис.1.

Алгоритм включает: вычисление остатков А1, Б1 операндов АВ по выбранному модулю Р ; вычисление произведений С и С1 и их остатков Ср и С1Р по модулю Р , и сравнение этих остатков для принятия решения о возникновении ошибки.

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

С = АВ

Сп. — А]^!

Рис. 1. Блок-схема алгоритма контроля умножения при использовании

арифметических кодов

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

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

Суть предлагаемого метода состоит в следующем. Пусть выполняется операция умножения

С * = А * Б * , (1)

в результате которой получено

С * = С * + АС. (2)

Так как (1) есть функция двух переменных, то при умножении с ошибкой представим (2) в виде [4]:

С (А, Б) = С (А* Б *)+ йС (АБ) АА + С>С (АБ ) АБ = А* Б * + [БАА + ААБ ], (3)

dA йБ

где выражение в квадратных скобках представляет собой ошибку ДС, приведенную

° ° ° А * Т»*

к отклонению значений сомножителей и их исходных значений А , В .

Введем переменную

Аа = АА +— АБ. (4)

Б

Введение переменной Аа (4) приводит к тому, что выражение в квадратных скобках в (3) представляется линейной функцией введенной переменной и определяет функцию ошибки умножения

С1 = С0* + АС1 = А0Б0 + Б0 Аа (5)

Так как произведение представляется семейством параллельных прямых в плоскости (СА) проходящих через ноль под углом тангенс которых равен Б , то ошибка АС также представляется в плоскости АСБ семейством прямых проходящих под углом, тангенс которого равен л/а , через точки оси координат, задаваемые значениями А .

Это позволяет, зная АС и Б , определить значения А , либо по значениям А, Б и АС определить Аа .

Линейная зависимость произведения и ошибки произведения и ошибки позволяет по значениям двух произведений при фиксированном значении А = А0 определить наличие ошибки, в произведении вызванное воздействием помехи. Наложим ограничение на длительность помехи, определяемую временем выполнения двух умножений.

Тогда, если первое умножение дает значение С1, определяемое (5), то второе умножение дает

С2 = С0 + АС2 = ААБ1 + Б1 Аа , (6)

а так как в соответствии с (4) Аа не зависит от Б , то

С 2 = (А0 + Аа)+ (Б0 + АБ) = А0 Б0 + Б0 Аа + А0 АБ + АБАа (7)

Вычитая из (7) значение полученное при первом умножении (5) получаем

5С = С2 - С1 = А0 АБ + АБАа (8)

Выбрав приращение АБ = 1, получаем

5С = А0 + Аа = А (9)

Используя выражение (9) можно наличие ошибки умножения определить в виде отклонения значения А , эквивалентного наличию ошибки произведения как

Да = А - А0, (10)

и, если Да превышает некоторый порог, то формируется сообщение «ошибка умножения», установление флажка в единицу.

Алгоритм реализующий данный метод приведен на рис. 2.

В соответствии с описанным подходом к обнаружению ошибки умножения, алгоритм определения ошибки может быть представлен в виде приведенном на рис. 2 и включает следующую последовательность шагов:

1. Проводят умножение чисел А0В0 представленных при нормализации (5).

2. Увеличивают сомножитель В0 на 1 и проводят умножение А0 на В1 = В0 +1(7).

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

3. Вычитаю результаты полученных произведений и определяют абсолютное значение разности (9).

4. Из полученного значения вычитают сомножитель А (10).

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

Начало

Ввод А, В

Сі = = АВ

а, = В+1

& = А&,

С = аЬз(С2 - С,.)

и = с -ш-

Вывод «о шибка» Вывод «ош ибки нет»

-м-

Конец

Рис. 2. Блок-схема алгоритма обнаружения ошибки умножения предложенным методом

Временные затраты на обнаружение ошибки определяются

х = 2х ... + 2х - +х. +х пд

он пе е пд

где х 0Й - время выполнения умножения, х сл - время сложения/вычитания, х и - время добавления единицы, х ср - время установки флажка.

При обнаружении ошибки с использованием арифметических кодов выполняют:

1. Нахождение остатков операндов сомножителей.

2. Вычисление произведения чисел.

3. Определение остатка полученного произведения.

4. Вычисление произведения остатков сомножителей.

5. Округление остатка произведения остатков.

6. Сравнение полученных остатков и установка флажка.

Как и в предложенном подходе обнаружения ошибки умножения используют два умножения и сравнение с установкой флажка. Но в отличии от предложенного определения наличия ошибки, где выполняется два сложения и добавление единицы, при использовании арифметических кодов определяют четыре остатка по выбранному модулю, время вычисления которых превышает суммарное время трех сложений.

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

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

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

Литература

1. Сергиенко А.Б. Цифровая обработка сигналов: Учебное пособие для студентов высших учебных заведений, обучающихся по направлению подготовки дипломированных специалистов "Информатика и вычислительная техника" / Сергиенко А.Б.; Рец.: С.П. Еркович, Г.И. Ревунков; М-во образования РФ., Федеральная целевая программа "Культура России". Поддержка полиграфии и книгоиздания России. - СПб.: Питер, 2003. - 604 с.: ил., табл. - (Учебник для вузов. - Прил.: с. 5о8-582.-Библиогр.: 583-585.-Алфавитныйуказ.: с. 586-603

2. Луцик Ю.А., Лукъянова И.В. Арифметические и логические основы вычислительной техники

3. Корн Г. Справочник по математике для научных работников и инженеров = Mathematical handbook for scientists and engineers: Definitions, theorems and formulas for reference and review/ Korn G.A., Korn T.M.: Определения, теоремы, формулы / Корн Г., Корн Т.; Под общ. ред. И.Г. Арамановича; Пер.: И.Г. Арамановича, А.М. Березма-на, И.А. Вайнштейна, Л.З. Румшинского, Л.Я. Цлафа. - 2-е изд.. - М.: Наука, 1970. - 720 с.: ил.. - Библиогр.: с. 682-684.-Указ. важнейших обозначений: с. 685-687.-Предметный указ.: с. 688-720

4. Патент №2439б74Российская Федерация, МПК. Способ формирования отказоустойчивой вычислительной системы и отказоустойчивая вычислительная система / А.С. Сыров, В.П. Андреев и др.; опубл. 10.01.2012. Бюл. №1.

DETECTIONAND CORRECTION OF ERRORSIN MULTIPLY

N.I. KORSUNOV A.A. NACHETOV A.V. GLUSHAK

BelgorodNational Research University

e-mail: aleksandr@nachetov.org.ua

In the article a method of functional control and error correc- tion by multiplying the number of multiplication error reduction in the rejection of one of the input operands.

Key words: error detection, error correction, the deviation of the operand.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.