Научная статья на тему 'Логарифмический контроль деления мантисс чисел в вычислительных устройствах с плавающей точкой'

Логарифмический контроль деления мантисс чисел в вычислительных устройствах с плавающей точкой Текст научной статьи по специальности «Математика»

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

Аннотация научной статьи по математике, автор научной работы — Дрозд Александр Валентинович, Зуда Мохамад

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

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

Logarithm checking of number mantissa division in floatingpoint computing circuits

The question of on-line testing for computing circuits with approximated data processing is considered. The logarithm checking method for division operation executed with mantissas of floating-point numbers is offered. The method excludes error detection in restricted bits of result and simplifies check scheme in comparison with residue checking.

Текст научной работы на тему «Логарифмический контроль деления мантисс чисел в вычислительных устройствах с плавающей точкой»

УДК 681.325

ЛОГАРИФМИЧЕСКИЙ КОНТРОЛЬ ДЕЛЕНИЯ МАНТИСС ЧИСЕЛ В ВЫЧИСЛИТЕЛЬНЫХ УСТРОЙСТВАХ С ПЛАВАЮЩЕЙ ТОЧКОЙ

ДРОЗДА.В., ЗУДА М.______________________

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

1. Введение

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

Первый из них состоит в обнаружении ошибок в отбрасываемых разрядах вычисляемого результата. После потери этих разрядов округленный результат не содержит ошибок, а метод контроля по паритету или модулю идентифицирует его как ошибочный. При целочисленной обработке данных отбрасываемые разряды составляют половину вычисляемого результата [2]. Следовательно, при равномерном распределении ошибок по разрядам вычисляемого результата вероятность отбраковки правильного округленного результата из-за ошибки в отбрасываемых разрядах составляет Р0 = 0,5 .

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

до величины Pn = log2n/(n + log2n), где n — длина мантиссы [3]. Однако эта вероятность остается достаточно высокой, например, Р8 = 0,27,

Р16 = 0,20.

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

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

2. Постановка задачи

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

Ставится задача разработки логарифмического контроля для рабочего диагностирования устройства деления мантисс, включая:

— контроль результата путем проверки контрольного соотношения;

— рабочее диагностирование средств контроля.

Операнды контролируются в качестве результатов предыдущих операций.

Разработка метода логарифмического контроля содержит:

— определение контрольных кодов данных (операндов и результатов);

— вывод контрольного соотношения;

— построение математических моделей вычислительных процессов формирования контрольных кодов данных, проверки этих данных и средств контроля;

— оценку метода по обнаруживающей способности, затратам оборудования и времени на контроль.

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

3. Определение контрольного кода мантиссы

Контрольный код мантиссы A определяется по ее представлению в прямом коде, подобно [5], по формулам

KA = E(log2 A к ) + n +1 для A к > 0 ;

KA = 0 для Ak = 0 ,

где Ak = A - 2_1 — контрольная часть мантиссы A, 2-1 < A < 1.

Контрольный код имеет разрядность r =] log2 n[.

4. Определение контрольного соотношения

Вывод контрольного соотношения основывается на следующей теореме.

Теорема 1. Пусть A, B и Q, прямые коды мантисс делимого, делителя и частного, для которого в

РИ, 2002, № 3

75

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

max(KB, KQ) + X = KA npHQB{0| = 1; (1)

max(KB, KQ) + X = n + A{2| при Qb {0| = 0, (2)

где KA , KB и KQ — контрольные коды мантисс A, B и Q соответственно; Qb{0| — разряд целой части вычисленной мантиссы частного, указывающий единичным значением на необходимость нормализации результата; A{2| — разряд с весом 2-2 мантиссы A; Л = 0,1, 2 .

Доказательство. Из определения контрольного

кода мантиссы следует

A = 2-1 + AK ; (3)

СО II to 1 + СО !* (4)

Q = 2-1 + Qk , (5)

где Bk , Qk — значащие части мантисс B и Q .

Необходимо рассмотреть два случая выполнения операции деления:

— операция деления Q = A / B • 2_1 дополнительно включает в себя нормализацию мантиссы частного, что в обратной операции умножения описывается как

B• Q • 21 = A; (6)

— мантисса частного Q = A/B непосредственно вычисляется нормализованной, и в обратной операции умножения данные связываются по формуле

B • Q = A . (7)

При подстановке (3) — (5) в формулы (6) и (7) получаются зависимости

(2-1 + Bk)(2-1 + Qk) • 21 = 2-1 + Ak;

(2 -1 + Bk)(2-1 + Qk) = 2-1 + Ak,

которые после раскрытия скобок принимают следующий вид:

BK + QK + 2BK • QK = ak; (8)

BK + QK + 2BK • QK = 2 1 + 2AK • (9)

Для Sk = Bk + Qk доказано, что KS = KS* + p, где KS* = max(KB, KQ); KS — контрольный код мантиссы S = 2_1 + Sk ; в = 0,1 [6].

Для зависимости (8) в виде Sk + Dk = Ak выполняется KA = KA * +p, где KA* = max(KS, KD); KD — контрольный код мантиссы D = 2_1 + Dk ; Dk = 2Bk • Qk , а с учетом неравенства Bk + Qk ^ 2Bk • Qk справедливо

max(KB, KQ) + 2p = KA,

из чего следует (1), так как X = 2р.

76

Зависимость (9) повторяет левую часть зависимости

(8), что определяет одинаковыми левые части

формул (1) и (2). Правая часть KR2 формулы (2)

находится как контрольный код правой части R2 зависимости (9).

При A{2| = 1 2Ak > 2_1 и R2 > 20 , KR2 = n +1, а в противном случае 2Ak < 2_1 и 2_1 < R2 < 20, KR2 = n , 2-1<R2<20, что доказывает (2).

Доказательство теоремы 1 закончено.

Из нее следует контрольное соотношение для проверки правильности умножения мантисс чисел:

max(KB, KQ) + X = KR, (10)

где KR = QB{0| л KA v ^QB {0| л (n + A{2|).

5. Формирование контрольного кода мантиссы

Математическая модель формирования контрольного кода мантиссы A = A{1 a n| • 2_n содержит два действия:

— преобразование кода A{2 + n| в код X{2 + n| заполнением части A к единичными значениями;

— подсчет количества единиц в коде X{2 a n|.

В первом действии выполняется последовательногрупповое вычисление кода X{2 a n| по формулам

X{2| = A{2|;

X{j| = A{2| v... v A{j|;

X{u(i +1) + j| = X{i • u| v A{i(u +1) + 3| v ...

vA{i(u +1) + j|,

где u — количество одновременно вычисляемых разрядов кода X{2 + n|, объединяемых в группу; i = 0Д(п -1) / u[—1 — номер текущей группы; j = 3 a u + 2 - номер разряда в группе; i • u + j < n .

Сложность вычислений составляет (u + 1)(n -1)/2, а количество рангов — ](n -1) / u[. Выбором параметра u можно задавать различные соотношения между сложностью вычислений и количеством ран -гов, получая множество альтернативных решений.

Подсчет количества единиц кода X{2 + n| выполняется по алгоритму перевода числа единиц в двоичную систему счисления [6]. Разряды контрольного кода KA{q1,...,qr| вычисляются по формуле

g{i| = v (X{2i-1(n - 2j + 2)| л j=1

A^X{2i_1(n - 2j +1)|) v

v X{2i((n - 1)/2i_1)mod2,

здесь i = 1 -r; xi = E((n- 1)/2i) j = xi.

Вычисления по формуле выполняются в 2 ранга и имеют сложность 2n - 4 - r .

РИ, 2002, № 3

6. Проверка контрольного соотношения

Математическая модель процесса проверки контрольного соотношения сводится к следующим действиям:

— вычисление выражения KS *;

— вычисление правой части KR контрольного соотношения;

— сравнение кодов KS * и KR с точностью X .

Для вычисления кода KS * выполняется сравнение контрольных кодов KB , KQ и выбирается наибольший из них соответственно на схеме сравнения и коммутаторе.

Результат сравнения fc = (KB > KQ) определяется по функции разряда переноса в операции сложения KB{1 a r} + -iKQ{1 а г} [7]:

fc = gl V hi A ...(gi V hi A ... A(gr_1 V hr A gr)...),

(11)

где i = 1 - r; gi = KB{i} л -,KQ{i}; hi = -i(-.KB{i} л KQ{i}).

Вычисления по формуле (11) выполняются в 2r - 1 ранг и имеют сложность 4r - 2 .

Для ускорения вычислений несколько пар рангов операций И, ИЛИ объединяются в одну пару по дизъюнктивной нормальной форме, обеспечивающей одновременный перенос [7].

Например, для первых двух и трех пар такие замены описываются следующими формулами:

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

g1 vh1 Л(g2 Vh2 Ag3) =

= g1 v h1 л g2 v h1 л h2 a g3 ;

g1 v h1 л (g2 v h2 a (g3 v h3 л g4)) =

= g1 vh1 лg2 vh1 лh2 ag3 vh1 vh2 vh3 vg4.

Количество z объединяемых пар рангов операций И, ИЛИ соответствует количеству одновременно обрабатываемых разрядов кодов KB и KQ . Объединение z пар рангов в одну пару увеличивает сложность вычислений на z(z -1) / 2 , а с учетом количества объединений r / z определяет сложность вычислений с одновременным переносом как r(z +1) / 2 + 2. Количество рангов уменьшается до r /z .

Код KR вычисляется в два этапа. Сначала константа П2 — двоичное представление разрядностип

— увеличивается на значение разряда A{2}, что

выполняется на d операциях ИСКЛЮЧАЮЩЕЕ ИЛИ и операции ИЛИ по формулам

KR2{i} = n2{i} © A{2};

KR2{d +1} = n2{d +1} © A{2},

РИ, 2002, № 3

где i < d +1; d — количество младших разрядов кода, принимающих подряд единичное значение.

Затем для i = 1 ^ г вычисляются разряды кода KR по формуле

KR{i} = Qb {0} a KA{i} v ^Qb {0} a KR2 {i}.

Для сравнения кодов KS* и KR с точностью X вычисляется код разности

C{1 A r} = KS*{1 A r} + ^KR{1 A r}.

При отличии сравниваемых кодов на X формируются коды C , состоящие из всех единиц при нулевом значении разряда переноса C{r +1} или нулей, начиная со второго младшего разряда C{2}, при C{r +1}. Результат сравнения определяется в

виде двухразрядного кода контроля E{1, 2}, позволяющего осуществлять рабочее диагностирование средств контроля в соответствии со следующей теоремой.

Теорема 2. Если

E{1} = C{1} л (C{2} v ... v C{r}); (12)

E{2} = C{1} л (-,C{2} v ... v -iC{r}) v

v^(C{2} v ... v C{r}), (13)

то код контроля E{1, 2} принимает взаимно-инверсные значения при выполнении (10) и одинаковые значения в противном случае.

Доказательство. При сравнении кодов KS* и KR с точностью р , т.е. KS * +р = KR, код C содержит только пару наборов: нулевой (из всех нулей) и единичный (из всех единиц), при которых сравниваемые коды соответствуют друг другу. В этом случае, задавая E{1} = C{1}, получаем разряд E{2}, совпадающий с E{1} по всем наборам кода C за исключением двух указанных наборов. При этом на нулевом наборе он принимает единичное значение, а на единичном — нулевое, что соответствует (13). При сравнении кодов KS * и KR с точностью X к паре наборов добавляется набор

C{1 a r} = 0...01, устанавливающий E{2} в единичное значение. При исключении на этом наборе единичного значения в функции разряда E{1} его описание принимает вид (12).

Доказательство теоремы 2 закончено.

Рабочее диагностирование средств контроля обеспечивается путем построения их самопроверяемой

схемы [8]. Установка любого разряда кода C в константу в пределах одной или двух формул (12), (13) приводит к одинаковым значениям кода контроля E{1, 2} на определенных значениях кода C, что указывает на самопроверяемость схемы, вы-

77

числяющей E{1, 2}, в классе константных одиночных неисправностей. При этом допускается совместная реализация функций разрядов E{1} и E{2} в части вычисления суммы C{2} v ... v C{r} по ее r - 2 слагаемым.

Например, можно совместно вычислить f = C{3} v... v C{r}, тогда

E{1} = C{1} л (C{2} v f);

E{2} = C{1} л (-,C{2} v ... v -C{r}) v -,(C{2} v f). При совместной реализации функций сложность

вычислений снижается сЗг - 1до 2r + 2, а количество рангов увеличивается с двух до трех.

7. Оценка полученного решения

Вероятность обнаружения ошибок оценивается, исходя из предположения о равной вероятности различных значений X , различных значений QB {0}, а также событий, описываемых неравенствами KB < KQ, KQ < KB .

Ошибки вида 0 ^ 1, искажающие нулевое значение разряда j, j > 1 мантиссы результата, обнаруживаются при условии KQ + X < n +1 - j, которое приводит к неравенству max(KB, KQ) + X > KA , нарушающему (10) в части (1). Ошибки вида 1 ^ о , искажающие единичное значение разряда j мантиссы результата, обнаруживаются при условии KQ + X = n +1 - j, которое приводит к неравенству max(KB, KQ) + X < KA , также нарушающему (10) в части (1). При^ < KQ иQв{0} = 0 это возможно для любого вида ошибки на 2n _ j_ л наборах из их общего количества 2n _1, т.е. с вероятностью 21 -j - X . Тогда с учетом принятых предположений вероятность обнаружения ошибок определяется как P = 0,6 • 2 _j_1.

Время T обнаружения отказа вычисляется по формуле T = ln 2 / P [9]. Например, время обнаружения отказа в третьем и пятом разрядах мантиссы составляет соответственно 19 и 74 тактов.

Наименьшая сложность контрольных вычислений 9n + 24r -15 многократно ниже сложности 15n вычислений в контроле по модулю. Для n = 8,16, 32 снижение сложности составляет 2,8 3,2 и 3,6, а с увеличением n стремится к пяти.

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

кода и сравнение кодов с точностью 1, что содержит 4(r +1) рангов и соизмеримо с формированием контрольного кода результата по наиболее быстрой пирамидальной схеме в контроле по модулю. При необходимости количество рангов может быть снижено до 2r + r /z + 4 за счет альтернативных решений.

8. Заключение

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

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

— с увеличением ошибки растет вероятность ее обнаружения и сокращается время обнаружения отказа;

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

Литература: 1. Селлерс Ф. Методы обнаружения ошибок в работе ЭЦВМ. М.: Мир, 1972. 310 с. 2. Граф Ш, Гессель М. Схемы поиска неисправностей. М.: Энерго-атомиздат, 1989. 144 с. 3. Рабинович З.Л., Раманаускас В.А. Типовые операции в вычислительных машинах. Киев: Техника, 1980. 264 с. 4. Drozd A. V., Lobachev, Drozd

J. V. Efficient On-line Testing Method for a Floating-Point Iterative Array Divider // Proceedings. Design, Automation and Test in Europe. Conference and Exhibition 2002 (DATE 2002). Paris, France, 4 - 8 March 2002. P. 1127. 5. Дрозд А.В., Зуда M, Лобачев М.В. Использование логарифмических оценок в функциональном диагностировании вычислительных устройств с плавающей точкой // Тр. Одес. политехи. ун-та. Одесса, 2001. Вып. 1 (13). С. 93-96. 6. ДроздА.В., ЗудаМ., ДроздЮ.В. Повышение быстродействия логарифмического контроля вычислительных устройств // Тр. Одес. политехи. ун-та. Одесса, 2000. Вып. 3(12). С. 92-94. 7. Гаврилов Ю.В., Пучко А.Н. Арифметические устройства быстродействующих ЭЦВМ. М.: Сов. радио, 1970. 280 с. 8. Согомо-нян Е.С., Слабаков Е.В. Самопроверяемые устройства и отказоустойчивые системы. М.: Радио и связь, 1989. 208 с. 9. Дрозд А.В., Аль-Аззех Р. Функциональное диагностирование сбоенечувствительных вычислительных устройств // Тр. Одес. политехи. ун-та. Одесса, 1996. Вып. 2. С. 18-20.

Поступила в редколлегию 03.09.2002 Рецензент: д-р техн. наук, проф. Хаханов В.И.

Дрозд Александр Валентинович, канд. техн. наук. доцент, профессор кафедры компьютерных интеллектуальных систем и сетей ОНПУ. Научные интересы: функциональное диагностирование вычислительных устройств. Адрес: Украина, 65044, Одесса, пр. Шевченко, 1, тел. (0482) 49-50-81, е-mail: Drozd@ukr.net.

Зуда Мохамад, аспирант кафедры компьютерных интеллектуальных систем и сетей ОНПУ. Научные интересы: рабочее диагностирование вычислительных устройств. Адрес: Украина, 65044, Одесса, пр. Шевченко, 1, тел. (0482) 28-86-63.

78

РИ, 2002, № 3

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