УДК 681.326:518.5
СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПСЕВДОЧАСТНОГО В РАЗНОСТНО-ИТЕРАЦИОННЫХ АЛГОРИТМАХ
© 2014 г. И.Н. Булатникова, Н.Н. Гершунина, А.Э. Гершунин
Булатникова Инга Николаевна - канд. техн. наук, доцент, кафедра «Прикладная математика», Кубанский государственный технологический университет. E-mail: inkras@yandex.ru
Гершунина Наталья Николаевна - канд. техн. наук, доцент, кафедра «Начертательная геометрия и компьютерная графика», Кубанский государственный технологический университет. E-mail: inkras@yandex.ru
Гершунин Аркадий Эдуардович - соискатель, Кубанский государственный технологический университет.
Bulatnikova Inga Nikolaevna - Candidate of Technical Sciences, assistant professor, department «Applied Mathematics», Kuban State Technological University. E-mail: inkras@yandex.ru
Gershunina Natalia Nikolaevna - Candidate of Technical Sciences, assistant professor, department «Descriptive Geometry And Computer Graphics», Kuban State Technological University. E-mail: inkras@yandex.ru
Gershunin Arkady Eduardovich - applicant, Kuban State Technological University.
Рассмотрены основные способы представления псевдочастного двух величин, определяющие структуры разностно-итерационных алгоритмов, и их роль для обеспечения детерминированного синтеза новых целочисленных алгоритмов вычисления функций на микропроцессорах.
Ключевые слова: быстродействующие целочисленные алгоритмы; программное обеспечение микропроцессоров и микроконтроллеров.
Considered the basic ways of representation the result of pseudodividing of two values that define the structure of difference -iterative algorithms, and their role to ensure deterministic synthesis of new integer algorithms for the computation of functions on microprocessors.
Keywords: fast integer algorithms; software microprocessors and microcontrollers.
Интенсивное внедрение микропроцессоров (МП) и микроконтроллеров (МК) во многих областях автоматизации производства потребовало специального алгоритмического обеспечения. Для этих целей подходят так называемые неаналитические методы вычисления. Их суть состоит в том, что рекуррентные алгоритмы, их реализующие, содержат операторы, меняющиеся в зависимости от результатов промежуточных вычислений после каждого шага итераций.
Среди таких алгоритмов важное место занимают разностно-итерационные алгоритмы (РИА). Исторически свое начало они ведут от методов Волдера и Меджита, «цифра за цифрой», CORDIC-алгоритмов. Тогда они реализовывались аппаратными средствами в так называемых спецвычислителях [1, 2], а затем и программно, после появления МП и МК [3]. РИА -это неаналитические вычислительные методы, обеспечивающие на основе вычисления конечных приращений (текущих разностей) итерируемых величин цифровое моделирование сходящихся итерационных процессов к искомым (вычисляемым) величинам. Нас будут интересовать лишь те из них, для которых достаточно типового набора операций целочисленной арифметики (сложение, вычитание, сдвиги, тестирование знака, условные переходы).
Достоинством РИА является то, что в них не требуются операции умножения и деления, а также их алгоритмическое быстродействие, особенно, при реализации функций двух и более аргументов.
Например, функцию г = ——можно вычис-
У
лять по такому алгоритму (для у > 0, х > 0 ) [2]: +1, если Zi_l > 0;
Чг -i = signZ-i =
-1, если Zi_l < 0; 0, если Zi-1 = 0, досрочный конец вычислений;
(1)
Z0 = У - X Zi = Zi-1 - Чг-1У2-
zn ^ 0;
Y = У - x, Yi = Y-1 - Чг-1 x2-i, Yn ^
(x - y)2 У
Здесь и далее i - номер итерации, i = 1,2,...,п, п -разрядность (без знака) аргументов х и у.
Недостаток РИА состоит в том, что все они получены эвристическим путем. Для целенаправленного синтеза нужны детерминированные методики их проектирования. Они должны опираться на математические модели типовых РИА. Отсутствие таких методик ограничивает набор реализуемых функций. А главное, ведет к неоптимальности предлагаемых РИА, их избыточности, к незамечаемым даже их авторами ошибкам в них.
Это же отмечает и А.М. Оранский [2]: «Теория РИА разработана недостаточно, и синтез алгоритма идет эвристическим путем».
В этом отношении важно построение математических моделей РИА, уяснение их структуры, в том числе первого этапа, когда осуществляется поиск псевдочастного нескольких величин.
В зависимости от формы его представления появляются варианты построения второго и последующих этапов РИА, что позволяет реализовать заданную функцию.
Аддитивное разложение псевдочастного
Термин «псевдочастное» введен нами в связи с тем, что оно образуется не при помощи арифметического деления, а иным способом и имеет форму не числа, а набора разрядных констант 0, +1 или -1 в спецвыражении. То есть оно равно частному, но имеет особую, хотя и похожую на двоичную, форму представления величины.
Аддитивное разложение рассмотрим на таком РИА (для >->0) [2]:
ч- -1 = Щ-1;
Щ-, = V, Щ = Щ - - Чг - у 2-г, Щ„ ^ 0; (2)
Выбрав для РИА (2) начальные значения и константы одним из способов (5) или (6), получим возможность вычислить F(", ^ = Уп .
Выбор представления (5) или его варианта (6) определяется требованиями сходимости, представимости в заданном диапазоне, минимума операций по формированию значений V, V, у, х.
РИА (2) использует несимметричное уравновешивание величин у. Существует еще аддитивное симметричное уравновешивание двух величин х, у. Например, такой (для х > 0, у > 0) [2]:
Чг-1 = ^п(Хг-1 - Уг-1);
2 2
Х0 = х, XI = Xг- - Чг-1 у2-г, Хп ^ ^^; (7)
х + у
70 = у, У = У-1 + Чг, У„ ^ Х„ .
Его математическая модель и условие сходимости нами приведены в работе [4]:
Хп = х - ; Уп = у+х&.
V = V, V- = V- + Чг-1х2-г, V, ^ V + - х.
у
Математическая модель этого РИА такова:
0 = ™ - QnУ; V, = V+QnX,
(3)
где Qn = 2 Чг 2 ' - аддитивное разложение частного
По доказанному Хп = Уп (в пределах единицы младшего разряда) при выполнении условия сходимости х + у > х - у получаем, что
Qn =Е Чг 2—i =
х - y
г=1 х + у
Если модифицировать РИА (7) так, чтобы
V/у. Это видно из первого уравнения РИА (2) и его Чг -1 у2 г и Чг -1х2 г в итерационных ^ажн^ заменить на Чг-1^2-г +1 и Чг-1и2_г+1, то получим такой РИА [5]:
Чг-1 = ^п(Хг-1 - Уг-1 ^^ + ™У;
матмодели (3). Отсюда ¥п = V +— х (с точностью до
у
единицы младшего разряда результата). Знак суммы в выражении для Qn определяет название «аддитивное».
Такое разложение псевдочастного позволяет вычислять дробно-рациональные функции от нескольких переменных.
Для этого представим величины V, V, х, у как легко вычисляемые функции новых аргументов (допустим, 5 и (). Например, дана функция
Xо = х, X = X-1 -q-iw2-i+1, Xn ^ XU+W; (8)
Yo = У, Y = Y- + q^ul
-i+1
u + w
Yn ^ Xn.
Новый РИА сойдется (Хп = Уп) при условии
(х-У),
< 2. Возможности РИА (8) значительно
F(s,t) =
s 2 + s — 2st +12 s +1
(4)
Деля ее числитель на столбиком, мы получаем (4) в таком виде:
F(" t) = t) + х(5, t) ,
(и + м>)
расширятся, если и,V,у, хпредставить как функции нового аргумента ^
х = kxt + тх, V = kwt + тк;
у = ^ + ту, и = ^ + ти.
(9)
где
или
y(s, t)
y(s, t) = s +1, v(s, t) = s +1 + 1,
w(s, t) = —4s — 1, x(s, t) = t, y(s, t) = s +1, v(s, t) = s +1 + 1, w (s, t) = t, x(s, t) = —4s — 1
Тогда Yn = Xn =
At2 + 5t + C
после подстановки
(5)
Dt + Е
в (8) представлений х, у, и, м> из (9), где
А = kxku + kуkw; 5 = kxmu + ^ т + + Кту;
с = тхти + тут^; -о = К + К; Е = ти + .
Для того чтобы упростить вычисления х,у,и, V для заданного t, выберем kj (] е{х, у, и, м>} равными
+2-2 или 0 (где г - натуральное число или 0).
Для обратной задачи: назначить такие kj и т}-,
чтобы Yn = Хп и F (t), необходимо решить систему из пяти алгебраических уравнений с восемью неизвестными (фактически избыточную, но с рядом ограничений).
п
Например, для F^) = tgt при t е [0,—] имеем
4
kx = 1; ky = -1;
mx=0,041332;
ku 1;
kw=1/8;
mu= -1,502386;
ту=1,000000; тм=0,060741.
Способы поиска рационального представления (9) и методика решения системы из пяти уравнений рассмотрены в [5].
Мультипликативное разложение псевдочастного
Сначала рассмотрим РИА с несимметричным представлением превдочастного двух величин у и х
У = П (1 + 2-i f* x i=1
(10)
где Ii =
|0, если Уг < Хг; [1, если Yi > Хг.
Знак произведения в (10) определяет название «мультипликативное».
Для формирования набора §2,...,в (10) используются следующие рекуррентные соотношения (для случая у > х > 0) [6]:
Yx = 2(у - х), Yi+1 = 2(^ -|гХг), Yn ^ 0;
Х1 = X, Хг+1 = Xi 2 i Xi, Хп ^ у.
X
Такое разложение Xу (10) в виде произведения
ряда множителей типа (1 + 2-г , где е{0,1}, позволяет просто организовать вычисление функций
у k
типа г = (—) , где k - натуральное число. Причем, все
х
операции по возведению в степень k производятся серией сдвигов и подсуммированием результатов сдвигов к предыдущему результату по рекуррентной формуле
Z = 1, Z+! = Zi + ^ 2-%.
(11)
Причем процедура (11) повторяется k раз для каждого i. Другое применение мультипликативного разложения (10) - это возможность вычисления функ-
ций вида z = loga(yx). Для этого выражение (11)
надо дополнить набором k констант вида loga (1 + 2-г), где i = 1,2,..., n. Тогда
Z, = 0, Z г+1 = Zt + ¡^ log a (1 + 2-г), Zn ^ log a (У) .
x
Симметричное мультипликативное разложение
псевдочастного двух величин в виде
y п г
У = П (1 + Яг 2-' ), x i=1
где qi е {-1,0,1}, определяемое из условий алгоритма
(1), к сожалению, существует не для всех значений
y
частного —. Для обеспечения безусловного покрытия x
всего диапазона частного необходимо ввести двойные итерации, в результате которых будут получаться qi и
q*. Они обеспечат представимость псевдочастного в форме
y = П (1+Яг 2-' )(1+q*2-i),
x г=1
где qi и q* е{-1,0, +1} - два знаковых индикатора, получаемых последовательно в каждой г-й итерации.
Одно из применений такого РИА - это вычисление обратной величины x (x > 0)
Я' = signY;
Y = 2n - x, Y+1 = Y' - Я' 2-гХг, Yn ^ 0; X] = x, Хг+1 = X + qt 2-гХг, Xn ^ 2n;
где г = 1, 1, 2, 2,..., n - 1, n - 1. Тогда представление
П (1 + q*2-i )(1 + qi 2-') ^ (j/)2n
i=1
где qi и qi - знаковые индикаторы после первой и второй половин i-й итерации. Его можно использовать на втором и последующих этапах алгоритма вычисления других итерируемых величин. Например, в таком
[7]:
1) q> = signY;
1) Y = У - 2z , Y+1 = Y - qi 2- Zi,
1) Z = z, Zi+1 = :Z; + qt 2-'Z, ,
2) X = У , Xi+1 = = Xi + qt 2-'X,
3) U = x, UM = -- Ui + qt 2-'U,
4) V =z, V41 = Vi + qi 2~% ,
где i = = 1, 1, 2, 2. , ..., n - 1, n - 1.
z
x2 - xz _
z
(x - z)2
n
n
z
Слева возле каждого из рекуррентных выражений алгоритма (12) указан номер этапа РИА (1 - 4).
Разнообразные представления псевдочастного двух величин совместно с математическими моделями РИА позволяют системному программисту проектировать разностно-итерационные алгоритмы для наперед заданных функциональных зависимостей.
Области применения и эффективность РИА
Благодаря своим простоте и алгоритмическому быстродействию РИА найдут широкое применение в устройствах локальной автоматики, в автоматизированных системах научных исследований, в спецвычислителях по навигации и управлению летательными объектами (ракетами).
РИА в большинстве случаев позволяют эффективно заменить известные численные методы вычислений функций (степенные ряды, интерполяционные полиномы, табличные методы).
Эффективность РИА состоит из двух компонентов: качественного и количественного. Первый обеспечивает широкое использование наиболее простых и быстродействующих МП RISC - архитектуры, а второй - резкое повышение производительности труда программиста и общего быстродействия вычислений.
Оценить последнее в цифрах затруднительно (это зависит от конкретной функции). Например, для РИА (7), где требуется два возведения в квадрат, одно деление и одно сложение, временной выигрыш составляет порядка 15 ^ 20 раз. При этом учтено, что для
Поступила в редакцию
сохранения точности требовалось бы перейти к двойной разрядной сетке (т. е. работе с двойными операндами - старшей и младшей их частями). Это дополнительно удлиняет по времени операции умножения, деления и сложения минимум в 5 ^ 8 раза.
Литература
1. Смолов В.Б., Байков В.Д. Специализированные процессоры: итерационные алгоритмы и структуры. М., 1985. 288 с.
2. Оранский А.М. Аппаратные методы в цифровой вычислительной технике. Минск. 1977. 208 с.
3. Байков В.Д. Решение траекторных задач в микропроцессорных системах ЧПУ. Л., 1986. 106 с.
4. Булатникова И.Н. Основные формализмы разностно-итерационных алгоритмов // Изв. ТРТУ. Темат. вып. «Компьютерные и информационные технологии в науке, инженерии и управлении». № 5. 2006. С. 120 - 122.
5. Булатникова И.Н. [и др.] Выбор коэффициентов разно-стно- итерационных алгоритмов для микропроцессорных систем автоматизации // Проблемы физ-мат. моделирования: Межвуз. темат. сборник науч. тр. / Куб.ГТУ. 1997. С. 20 - 24.
6. А.с. 697994 СССР Устройство для вычисления элементарных функций / Б.И. Рувинский, С.А. Селютин. Опубл. 25.02.79, Бюл. № 17.
7. А.с. 960802 СССР Арифметическое устройство / А.А. Рейхенберг. Опубл. 23.09.82 // Бюл. № 35.
4 июня 2014 г.