УДК 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].
Например, для первых двух и трех пар такие замены описываются следующими формулами:
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: [email protected].
Зуда Мохамад, аспирант кафедры компьютерных интеллектуальных систем и сетей ОНПУ. Научные интересы: рабочее диагностирование вычислительных устройств. Адрес: Украина, 65044, Одесса, пр. Шевченко, 1, тел. (0482) 28-86-63.
78
РИ, 2002, № 3