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

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

CC BY
334
87
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБНАРУЖЕНИЕ ОШИБКИ / КОРРЕКЦИЯ ОШИБКИ / ФРАГМЕНТНЫЕ ПРЕОБРАЗОВАНИЯ / ЛОГИЧЕСКИЕ ОПЕРАЦИИ

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

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

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

Текст научной работы на тему «Анализ обнаружения и коррекции ошибок при выполнении логических операций по преобразованию данных»

86

НАУЧНЫЕ ВЕДОМОСТИ

УДК 681.518.3

АНАЛИЗ ОБНАРУЖЕНИЯ И КОРРЕКЦИИ ОШИБОК ПРИ ВЫПОЛНЕНИИ ЛОГИЧЕСКИХ ОПЕРАЦИЙ ПО ПРЕОБРАЗОВАНИЮ ДАННЫХ

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

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

Использование информационных технологий в различных областях науки и техники основано на вводе, хранении и преобразовании данных [1] и характеристики объектов, такие как точность, надежность, помехоустойчивость, быстродействие и другие непосредственно зависят от аналогичных характеристик программно-аппаратных средств преобразования данных.

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

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

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

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

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

К выполняемым логическим операциям будем относить только отрицание, конъюнкцию и сложение по модулю два. Другие логические операции представимы с помощью этих операций и при рассмотрении выполнения операций элементы реализующие другие операции, составляющие функционально полный базис, например, Шеффера, стрелка Пирса, характерные для логических элементов, не рассматриваются.

Н.И. КОРСУНОВ ДА НАЧЕТОВ

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

e-mail:

korsunov @intbel.ru aleksandr@nachetov.org .иа

[ЩИ

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

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

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

При использовании значений А, А , С для выделения ошибки в результате

Сл = 1 ® 8 можно использовать преобразование, приводящее к результату

С] = 0 © ^ и С] = 1 © ^.

Если воспользоваться ошибкой С\ по отношению к нулю, то необходимо выполнить

С'=АС®8. (1)

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

С\ [г] = я[/]с[/] = а[ф[/'], (2)

и если <?[/] = 0, то С\ [/] = 0 при любом ¿/[/]. А так как верно я[/] = 1 и ошибочно

а[/] = 0, то нельзя определить б;, так как (2) всегда равно нулю.

Если воспользоваться преобразованием

с" = Ау С ® 8, (3)

//

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

единицу в С не выявляется. Это следует из

//

С\ [/'] = ¿/[/] V (’[/] = ¿/[/] V а [/'], (4)

в котором С\ [/] = 1 независимо от значения а[/] при а\}\ = 1. При использовании преоб-

разования

С2 = С Ф А Ф 8 = А Ф А ф , (5)

или для ¡-го разряда

С2 [/] = а [/] © а[/] © 8\ = 1 © 8,■, (6)

ошибка в аЩ выявляется всегда, так как а[/'] + а[/'] только при наличии ошибки в а\}\ все-

гда приводит к 8\ = 1.

Таким образом, для коррекции ошибок, возникших при преобразовании данных с помощью операции инверсии (отрицания), необходимо вычислить корректирующую поправку, выполняя следующие операции:

• сложить по модулю два исходный операнд А с операндом С, полученным в результате выполнения операции инверсии;

• сложить по модулю два полученное значение с константой 11....1, в которой количество единиц округляется как 2п-1, где п - разрядность двоичного кода операнда А;

• скорректировать операнд С, сложив полученное его значение по модулю два с полученным значением поправки б.

88

НАУЧНЫЕ ВЕДОМОСТИ

Коррекция ошибок в операции конъюнкции

Для приведения результата к значению одного из операндов операции логического сложения необходимо и достаточно выполнить сложение по модулю два результата операции (результирующего операнда) со значением второго операнда.

При использовании значений А, В, В для вычисления ошибок при выполнении операции

Д =0®8=АВ®8 (7)

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

Так как не существует преобразования 1 обратного Б1, то воспользуемся аксиомами булевой алгебры [9], согласно которых ауа = а,ауО = а,ауа=\, и выполним

преобразование

0^=АВ®8. (8)

Так как выполняется также операция конъюнкции, то возникает та же самая ошибка, т.е. считаем воздействие одной и той же помехи осуществляется как при преобразовании (7), так и при преобразовании (8). В соответствии с аксиомами алгебры для

приведения ошибки результата операции конъюнкции ко входу операнда А необходимо

/

выполнить операцию дизъюнкции над входными переменными Ди Д , что приводит к значению

А1=В1уп'1={АВ®8)у(аВ®8\ (9)

Так как в (9) все операции ассоциативны и коммутативны, то при раскрытии скобок получаем:

А1=А®ё, (ю)

что позволяет для произвольного ¡-го двоичного разряда записать:

а\ И = аЬ\ © $ • (п)

Из (и) следует, что 8{ = 1 тогда и только тогда, когда ах [/] Ф аЩ. Следовательно, для коррекции ошибок, возникающих при выполнении операции конъюнкции, необходимо для вычисления корректирующей поправки при значении операндов А, В, В выполнить следующие операции:

• вычислить конъюнкцию В = АВ и конъюнкцию Вг = АВ ;

• выполнить логическое сложение Б и Б1;

• полученный результат сложить по модулю два со значением операнда А и полученное значение сложить по модулю два со значением Б.

Коррекция ошибок в операции дизъюнкции При использовании двоичных кодов А, В для выделения ошибки в операциях логического сложения

Я = Я1®8 = АуВ®8 (12)

получение значений основано на выполнении обратного преобразования, позволяющего по значению Ы получить отклонение одного из операндов, например А. Так как используется операция сложения, то обратной по отношению к ней является операция вычитания. Тогда обратным элементом по отношению к В является В1= -В. А так как определяется

ошибка операции логического сложения, то в качестве обратного элемента следует взять /

обратный код Вг = В1обр . И если выполнить

Я' = Яу Вг =Ау ВV В1обр ® 8,

то получим Я' = Ау\\...\® 8, где вторе слагаемое представляет значение отрицательного нуля в обратном коде, которое при изменении знака приведет к

Я' = А®8. (13)

2013. №1 (144). Выпуск 25/1

Значение R' в соответствии с (13) можно получить, не прибегая к операциям изменения знакового разряда числа В с последующим образованием обратного кода, так как при выполнении логических операций используется беззнаковое представление двоичных чисел. В этом случае для выполнения обратного преобразования по отношению к Rl = Av В достаточно воспользоваться операцией сложения по модулю два при выборе в качестве аргумента операнда В. В этом случае из (12) следует:

R' = R®B = Av{B®B)®ô = A®5.

Как и ранее, б представляет n-разрядный двоичный вектор, для получения которого достаточно использовать операцию сложения по модулю два переменных С' и А. Полученное значение

Ô = R'®A (14)

используется в качестве корректирующей поправки к выражению (12), что приводит к формированию

Rl = R® ô = Av В, (15)

соответствующего безошибочному выполнению операции дизъюнкции.

Коррекция ошибок в операции, исключающей ИЛИ

Пусть операция S = А ® В выполнена с ошибкой б. А так как б есть двоичный вектор, а ошибка представляет инверсию некоторого количества бит в двоичном представлении S, то операция с ошибкой, как и в ранее рассмотренных преобразованиях, приводит к значению

Sl=S®ô = A®B®ô. (16)

Для получения значения б из (16) достаточно для выполнения обратного преобразования выбрать операцию сложения по модулю два. Тогда

IS = S1®B®S®A®S = A®B®A®B®S = S. (17)

В выражении (17) введение слагаемых равных обусловлено выполнением той же операции, исключающей ИЛИ, что и в (16), и, естественно, с той же ошибкой. Это соответствует воздействию одной и той же помехи при выполнении каждой из операций сложения по модулю два.

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

Список литературы

1. Советов Б.Я. Информационные технологии: учебник для студентов вузов, обучающихся по направлениям подготовки дипломированных специалистов "Информатика и вычислительная техника" и "Информационные системы" / Б.Я. Советов, В.В. Цехановский; М.: Высшая школа, 2005. - 264 с.

2. Вероятностный анализ производительности технических систем со структурной и временной избыточностью / Р. В. Какубава, Р. А. Хуродзе // Автоматика и телемеханика, 2004, № 5, С. 154-1653. Лидовский В.И. Теория информации. - М.:Высшая школа, 2002г. - 120 с.

4. Луцик Ю.А. Арифметические и логические основы вычислительной техники / Луцик Ю.А., Лукьянова И.В.; Мн.: БГУИР, 2004. - 121 с.

ANALYSIS OF DETECTION AND CORRECTION ERRORS LOGIC OPERATIONS AND DATA TRANSFORMATION

In this paper we introduce fragment convert binary data to detect and correct errors in logic operations. In contrast to the known method of error detection logic operations using redundant encoding, in the proposed system changes using the default operator of an operation and XOR.

Keywords: error detection, error correction, fragment transfor-aleksandr@nachetov.org.ua mations, logic operations.

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

N.I. KORSUNOV AA. NAGHETOV

Belgorod National Research University

e-mail:

korsunov@intbel.ru

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