Научная статья на тему 'ПРИМЕНЕНИЕ НЕДВОИЧНЫХ СИСТЕМ СЧИСЛЕНИЯ ДЛЯ ОРГАНИЗАЦИИ ВЫСОКОТОЧНЫХ ВЫЧИСЛЕНИЙ'

ПРИМЕНЕНИЕ НЕДВОИЧНЫХ СИСТЕМ СЧИСЛЕНИЯ ДЛЯ ОРГАНИЗАЦИИ ВЫСОКОТОЧНЫХ ВЫЧИСЛЕНИЙ Текст научной статьи по специальности «Математика»

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

Аннотация научной статьи по математике, автор научной работы — Новичков М. Д., Орлов Д. А.

Целью данной работы является нахождение способа повышения эффективности вычисления элементарных функций, когда критериями оценки эффективности являются быстродействие (зависящее от сложности алгоритмов, тактовой частоты процессора и степени распараллеливания) и требуемого для организации вычислений объёма оборудования. Для множества расчётов в науке и промышленности необходимо применение высокоточных вычислений. Однако при использовании методов, ориентированных на позиционную двоичную систему счисления, время осуществления вычислений довольно велико. В рамках данного исследования приведён обзор наиболее известных традиционных методов вычисления с повышенной точностью, изучены существующие решения с использованием недвоичных систем счисления. В частности, были описаны с преимуществами и недостатками такие системы счисления, как разрядно-логарифмическая, знакоразрядная система счисления и многомодульная система остаточных классов. Особое внимание было уделено системе остаточных классов, непозиционной системе счисления, которой присущ внутренний естественный параллелизм. После рассмотрения методов численного решения элементарных функций был разработан алгоритм ускоренного извлечения квадратного корня в системе остаточных классов. Данный алгоритм сформулирован на основе одного из методов, которые были проанализированы в ходе исследования, и может быть реализован как программный модуль, однако будет наиболее эффективен, будучи реализованным в виде электронной схемы на кристалле. Приведены описания условий, которые нужно учитывать в ходе аппаратной реализации алгоритма. Эти примечания содержат рекомендации по синтезу структуры устройства, принимая во внимание физические особенности распространения информационных сигналов в электронных комбинационных логических схемах

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

APPLICATION OF NON-BINARY NUMERAL SYSTEMS FOR ORGANIZING HIGH-PRCISION COMPUTATIONS

The purpose of this article is to find a way to increase the efficiency of calculating elementary functions, when the criteria for evaluating efficiency is speed (which depends on the complexity of algorithms, processor clock frequency and degree of parallelization) and the amount equipment required for organization the computations. Many calculations in science and industry require the use of high-precision calculations. However, when using methods oriented to the positional binary numeral system, the computation time is rather long. Within the framework of this study, we give an overview of the most well-known traditional methods of calculation with increased accuracy, we studied existing solutions using non-binary numeral systems. In particular, we described such numeral systems as bit-logarithmic, sign-bit numeral system and multi-modular system of residual classes with advantages and disadvantages. Special attention was paid to the system of residual classes, a non-positional numeral system, which is inherent by internal natural parallelism. After considering the methods for the numerical solution of elementary functions, we developed an algorithm for the accelerated extraction of the square root in the system of residual classes. We formulated this algorithm on the basis of one of the methods that were analyzed in the course of the study, and it can be implemented as a software module, however, it will be most effective if it is implemented as an electronic circuit on a chip. We give the descriptions of the conditions that must be taken into account during the hardware implementation of the algorithm. These notes contain recommendations for the synthesis of the structure of the device, taking into account the physical characteristics of the propagation of information signals in electronic combinational logic circuits

Текст научной работы на тему «ПРИМЕНЕНИЕ НЕДВОИЧНЫХ СИСТЕМ СЧИСЛЕНИЯ ДЛЯ ОРГАНИЗАЦИИ ВЫСОКОТОЧНЫХ ВЫЧИСЛЕНИЙ»

DOI 10.36622/^Ти.2021.17.3.005 УДК 621.3.037.372.7:004.021

ПРИМЕНЕНИЕ НЕДВОИЧНЫХ СИСТЕМ СЧИСЛЕНИЯ ДЛЯ ОРГАНИЗАЦИИ

ВЫСОКОТОЧНЫХ ВЫЧИСЛЕНИЙ

М.Д. Новичков, Д.А. Орлов

Национальный исследовательский университет «МЭИ», г. Москва, Россия

Аннотация: целью данной работы является нахождение способа повышения эффективности вычисления элементарных функций, когда критериями оценки эффективности являются быстродействие (зависящее от сложности алгоритмов, тактовой частоты процессора и степени распараллеливания) и требуемого для организации вычислений объёма оборудования. Для множества расчётов в науке и промышленности необходимо применение высокоточных вычислений. Однако при использовании методов, ориентированных на позиционную двоичную систему счисления, время осуществления вычислений довольно велико. В рамках данного исследования приведён обзор наиболее известных традиционных методов вычисления с повышенной точностью, изучены существующие решения с использованием недвоичных систем счисления. В частности, были описаны с преимуществами и недостатками такие системы счисления, как разрядно-логарифмическая, знакоразрядная система счисления и многомодульная система остаточных классов. Особое внимание было уделено системе остаточных классов, непозиционной системе счисления, которой присущ внутренний естественный параллелизм. После рассмотрения методов численного решения элементарных функций был разработан алгоритм ускоренного извлечения квадратного корня в системе остаточных классов. Данный алгоритм сформулирован на основе одного из методов, которые были проанализированы в ходе исследования, и может быть реализован как программный модуль, однако будет наиболее эффективен, будучи реализованным в виде электронной схемы на кристалле. Приведены описания условий, которые нужно учитывать в ходе аппаратной реализации алгоритма. Эти примечания содержат рекомендации по синтезу структуры устройства, принимая во внимание физические особенности распространения информационных сигналов в электронных комбинационных логических схемах

Ключевые слова: недвоичные системы счисления, высокоточные вычисления, модулярная арифметика, система остаточных классов, элементарные функции, извлечение квадратного корня

Введение

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

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

© Новичков М.Д., Орлов Д.А., 2021

ласти научных исследований (математическая физика, динамические системы, экспериментальная математика), моделирования сложных и масштабных явлений (например, моделирование климата или состояния атмосфер звёзд) [2], расчётов в САПР (создание аккумуляторов, турбомашиностроение и задачи аэроупругости) или геометрического моделирования.

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

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

символьных вычислений, а ко второй категории относятся интервальные вычисления.

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

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

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

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

Стандартные методы повышения точности вычислений

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

1) Арифметика длинных позиционных чисел (длинная арифметика).

2) Интервальные вычисления.

3) Символьные вычисления (компьютерная алгебра).

4) Постбинарные вычисления.

В большинстве распространённых процессоров общего назначения в настоящее время аппаратно реализована только работа с 32 и 64 битными числами. Аппаратная реализация работы с числами в 128 и более разрядов существует лишь для отдельных архитектур (например, в микропроцессорной архитектуре Cell).

1. Длинная арифметика

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

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

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

Порядок и знак числа в данном случае рассматриваются как отдельные переменные. Однако, например, в пакете QD часть мантиссы и порядка (экспоненты) представляется одним машинным числом, а другая часть - другим.

Для чисел подобной размерности существуют специальные быстродействующие алгоритмы выполнения арифметических операций. Так, например, умножение может быть выполнено с помощью алгоритма Карацубы [4] или алгоритма Фюрера [5], а деление - алгоритмом Бурникеля-Циглера [6]. Однако более эффективным на практике является алгоритм Баррет-та [7]. Для вычисления НОД (наибольшего общего делителя) самым быстрым является алгоритм Джебелеана-Вебера-Седжелмаси [8].

Основным недостатком длинной арифметики позиционных чисел является сильное вы-

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

Таким образом, из-за необходимости обработки переносов скорость вычислений резко снижается с увеличением разрядности. По оценкам, приведённым в работе [9], быстродействие вычислений с четверной точностью (128 разрядов) примерно в пять раз ниже, чем с двойной из стандарта IEEE-754, а с восьмерной - в 25-50 раз меньше.

2. Интервальные вычисления

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

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

Известные реализации - PASCAL-XSC в качестве расширения языка PASCAL и расширение MPFI для библиотеки MPFR (на языке Си).

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

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

результатов могут оказываться неинформативными.

3. Символьные вычисления

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

Известные реализации - программные пакеты Maple, Mathcad, MATLAB и Sage.

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

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

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

В основном символьные вычисления применяются для получения решения задач в аналитическом (общем) виде. Чтобы работать с целыми числами произвольной точности, они представляются в виде списков. Рациональные числа представляются аналогично - ссылочными структурами.

4. Постбинарные вычисления

Эти вычисления представляют собой комбинацию позиционных многоразрядных форматов данных, символьных и интервальных вычислений [12].

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

идентификатора. Это поле состоит из кода и модификатора формата. Идентификаторы формата определяют разрядность и форму представления чисел в диапазоне от 16 разрядов до произвольно большой разрядности.

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

Применение недвоичных систем счисления для высокоточных вычислений

В ходе теоретического исследования были рассмотрены следующие системы счисления:

1) Разрядно-логарифмическая система счисления.

2) Знакоразрядная система счисления.

3) Система остаточных классов (модулярная арифметика).

1. Разрядно-логарифмическая система счисления

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

Разрядно-логарифмическим (РЛ) представлением (кодированием) данных называют изображение двоичного операнда в виде набора двоичных кодов ненулевых разрядов Nxi того же операнда, каждый из которых определяется как результат вычисления логарифма от веса этого разряда.

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

Гамаюн В.П., Коврижкин И.О., предложившие использовать данную систему счисления, в своей публикации [13] не рассматривали

конкретные алгоритмы выполнения операций и не давали оценку скорости таких вычислений. Разрядно-логарифмическое представление позволяет свести мультипликативные операции к реализации операции сложения-вычитания. Произведение двух чисел при РЛ представлении реализуется как процедура поэлементного сложения двух векторов [14].

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

Организация обработки данных в РЛ представлении основана на применении алгоритмов целочисленной арифметики. Впервые использовалась по предложению двух учёных Николаса Кингсбери и Питера Рейнера для цифровой обработки сигналов в 1971 году [15]. Математические основы же принадлежат Карлу Фридриху Гауссу.

Были попытки развивать данную тематику. Например, А.С. Коржавина, в работе которой рассмотрена реализация логарифмической интервальной арифметики и произведено сравнение с позиционной интервальной арифметикой [16].

2. Знакоразрядная система счисления

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

— локальное распространение переносов при выполнении арифметических операций (сигнал переноса при выполнении операции сложения распространяется не далее соседнего разряда), а операция сложения может быть распараллелена так, что при достаточном количестве исполнительных устройств время её выполнения не будет зависеть от разрядности операндов [17];

— возможность организации обработки числовых данных от старших разрядов к младшим;

— наращиваемость разрядности вычислений и, соответственно, точности результатов вне зависимости от разрядности вычислительного средства и др.

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

Однако, несмотря на физическое ускорение выполнения сложения, умножение чисел в данной системе всё так же, как и в стандартной двоичной, требует большого количества итераций. Также автор работы [18] утверждает, что в результате его вычислительного эксперимента выяснилось, что скорость применённого им метода из его другой работы [19] не зависит от выбора между традиционной двоичной и зна-коразрядной систем счисления. Данный метод представляет собой алгоритм вычисления полиномов в параллельной структуре с одновременной поразрядной обработкой их коэффициентов, представленных в виде «битовых срезов». Эксперимент показал, что в обеих арифметиках итерационные затраты при одинаковой точности очень близки при любых разрядностях представления членов полинома и их количестве. Но абсолютная погрешность оказалась ниже в знакоразрядной.

3. Система остаточных классов

Под системой остаточных классов (СОК) понимают такую систему счисления, в которой число А представляется набором остатков аь а2, ..., ап от деления на группу положительных целых взаимно простых чисел рь р2, ..., рп, называемых модулями или основаниями системы. Также данную систему в технической литературе в контексте применения называют «модулярная арифметика».

Значительный вклад в развитие методов вычислений в системе остаточных классов и построению вычислительных устройств, реализующих данную арифметику, сделали российские учёные И.Я. Акушский, Д.И. Юдицкий. В их книге [20] собраны достижения в области исследований вычислений в системе остаточных классов и особенности их реализации. Методы перевода в остаточную форму и обратно в позиционную, работы с отрицательными числами, обнаружения и корректирования ошибок. Описаны алгоритмы выполнения всех базовых 4-х арифметических операций. Кроме того,

здесь описана организация вычислений в комплексной области чисел.

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

Такие операции, как деление, сравнение и др., требующие информации о величине всего числа, в СОК выполняются по более сложным алгоритмам. И в этом заключается существенный недостаток данной системы счисления, сдерживающий ее широкое применение в качестве компьютерной арифметики. В настоящее время СОК находит применение в задачах, при решении которых количество немодулярных операций (деление, сравнение) сведено к минимуму, а именно: помехоустойчивое кодирование, криптография, цифровая обработка сигналов и т.п. [17].

В работе зарубежных специалистов по численным методам [21] предлагается использовать СОК для представления рациональных чисел и работать с ними без вычислительных погрешностей и ошибок округления. Для однозначного представления рациональных чисел в СОК используются дроби Фарея. Дробь Фарея представляет собой несократимую дробь, числитель и знаменатель которой удовлетворяет следующим условиям:

0 <|д|< N 0 <|4< N (а, Ь)=1, (1)

где а - числитель, N - порядок дроби Фарея, Ь - знаменатель.

Диапазону представления чисел в одномо-дульной системе соответствует множество дробей Фарея - обыкновенных дробей, числитель и знаменатель которых по абсолютной величине не больше натурального числа N (порядка дроби). Но так как при вычислениях значение порядка дроби Фарея может иметь резкий рост, то при итерационных вычислениях периодически необходимо округлять результат вычислений. Такой метод вычислений можно определить как «вычисления с отложенным округлением».

Из современных российских учёных в данной тематике достигли успехов Н.И. Червяков и Ш.А. Оцоков [22]. Червяков имеет множество патентов изобретений, использующих вычисления в системе остаточных классов. В частности, наиболее интересным является устройство деления [23], рассмотренное и получившее модификации в работе [24].

Одной из особенностей, рассмотренных в работе [23], является введение в использование

«относительной величины», значения, вычисляемого по представлению числа в СОК и отображаемого отношение этого числа к значению рабочего диапазона, т.е. диапазона допустимых значений для обрабатываемых операндов. Если был расширен базис СОК (с целью контроля возникающих из-за физических помех или сбоев арифметических ошибок), то можно обозначить некоторую границу, превысив которую число будет считаться ошибочным. Тогда совокупность рабочего диапазона и запрещённой области значений можно определить как «полный диапазон»). Вычисляется такая величина F от числа А в остаточном представлении по следующей формуле:

Я^) =2^*^!, (2)

где ^ - коэффициенты, константные для заданного набора модулей СОК, ai - значения остатков представляемого числа по модулям.

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

Коэффициенты, в свою очередь, определяются по формуле:

где рг является отношением произведения Р всех модулей системы к соответствующему р^, а 1рг1р;1 - обратное по умножению по модулю рг значение.

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

Методы реализации элементарных функций в СОК

Серьёзных изменений в методах вычислительной математики не происходило уже очень давно. В ходе исследования новейший из рассмотренных методов был обнаружен в книге 1987-го года издания [25]. В ходе исследования были рассмотрены методы численного вычисления значений функций, применяемые традиционно в вычислительной технике. После ознакомления с их особенностями были сделаны

предложения для адаптации некоторых из этих методов для реализации, работающей в СОК.

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

В некоторых исследованиях деление относят к составным операциям (традиционно подразумевается, что это базовая операция, но в рамках аппаратной реализации деление часто реализуется через операции сложения и умножения, т.е. является составной). К составным операциям также относят вычисление значения многочлена и выполнение действий над комплексными и гиперкомплексными числами (кватернионами), вычисление интеграла.

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

Авторы труда [25] привели следующий список известных методов для вычисления элементарных функций, применяемых в цифровой вычислительной технике: разложение в ряд Тейлора (степенные полиномы, например, полином Чебышева), аппроксимация с помощью различных полиномов, табличные методы, рациональные приближения, метод цепных дробей, итерационные (рекуррентные), а также метод, названный «цифра за цифрой». Метод «цифра за цифрой» (известный также как "СоМю" или "Алгоритм Волдера") позволяет вычислить большинство элементарных функций за время трёх операций деления (если не учитывать приведение аргумента), причём его алгоритмам присущ внутренний параллелизм, позволяющий ещё более повысить быстродействие за счёт совмещения операций в одном процессоре. Недостатками, по мнению авторов, являются большое количество используемых констант и применение операционного устройства со специфической структурой. В основе данного метода лежит процедура, которая в геометрическом смысле является последовательностью преобразований вектора в плоскости ху, т.е. последовательность поворотов ра-

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

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

Ещё в 80-е годы прошлого столетия, сразу как смог позволить технологический прогресс, стали использовать аппаратную реализацию некоторых математических функций, и считали её очень актуальной. Сейчас, когда элементная база стала совершеннее (повысилось быстродействие, снизился размер и энергопотребление элементов), вопрос стал ещё более значимым.

Также авторы [25] отмечают, что, например, операция извлечения квадратного корня включается как самостоятельная в систему команд ЭВМ в том случае, когда она составляет не менее 2% от общего числа операций или является составной частью алгоритмов, которые необходимо выполнять в реальном масштабе времени, т.е. с высоким быстродействием. В [25] указано, что самым известным методом для вычисления элементарных функций является аппроксимация рядом Тейлора. Он требует выполнения т операций умножения и т операций сложения, где т - степень полинома. Достоинством этого метода авторы считают то, что коэффициенты членов ряда можно вычислять непосредственно при вычислении функции и не хранить их в памяти. Недостатком же является то, что ряд Тейлора очень медленно сходится для некоторых функций (натуральный логарифм, обратные тригонометрические функции и гиперболические функции). Но для большинства задач этот метод хорошо подходит для вычислений в системе остаточных классов.

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

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

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

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

Конкретно для вычисления квадратного корня, в свою очередь, выделяют 2 способа аппаратной реализации [25]:

1) Метод Ньютона (для численного решения функций, используемая частная форма называется итерационной формулой Герона).

2) Метод поразрядного определения значения корня.

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

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

Для определения всех цифр корня вычисляется формула разности А (число, чей корень вычисляется) и квадрата значения В (число, значения разрядов которого мы изменяем). На

каждой итерации в очередной разряд B ставится единица. Если разность положительная, то в текущий разряд остаётся с единицей. Иначе в текущий разряд ставится нуль.

В рамках свойств вычислений в системе остаточных классов можно отметить следующее:

1. Возведение в степень выполняется намного быстрее, чем в позиционной системе счисления.

2. Определение знака вызывает затруднения. Это можно реализовать как сравнение с нулём. Технически нужно использовать расширенный диапазон, значение границы которого можно хранить как константу. Для сравниваемого числа придётся вычислять относительную величину. Это относится также к вопросу обнаружения переполнения в СОК.

3. Вместо подстановки «1» или «0» необходимо организовать выборку для суммы значений степени двойки. Нужно определять максимально допустимую степень, чтобы искать значение корня, спускаясь к нулевой степени.

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

1. А - число, корень которого алгоритм ищет (представлено в СОК)

2. B - текущее значение приближённого корня (сумма аппроксимации корня) (представлено в СОК)

3. FA - относительная величина для A

4. FB1 - относительная величина для (B+S1)2

5. FB2 - относительная величина для (B+S2)2

6. FB3 - относительная величина для (B+S1+S2)2

7. S1=(2') (в СОК, изначально должно быть равно 2 (D1Reg-1})

8. S2=(2i_7) (в СОК)

9. BS1=(B+S1) (в СОК)

10. BS2=(B+S2) (в СОК)

11. BS3=(B+S1+S2) (в СОК)

12. BS1_2=(B+S1)2 (в СОК)

13. BS2_2=(B+S2)2 (в СОК)

14. BS3_2=(B+S1+S2)2 (в СОК)

15. Rd1=(A-BS1_2) (в СОК)

16. Rd2=(A-BS2_2) (в СОК)

17. Rd3=(A-BS3_2) (в СОК)

18. dz1 - дизъюнкция (ИЛИ) всех разрядов числа равная 1 при

19. dz2 - дизъюнкция (ИЛИ) над равная 1 при

20. dz3 - дизъюнкция (ИЛИ) над Rd3,

равная 1 при Rd3^0

21. Rf1=(FA-FB1) (относительная вели-

чина)

22. Rf2=(FA-FB2) (относительная вели-

чина)

23. Rf3=(FA-FB3) (относительная вели-

чина)

24. х1 - знак числа Rf1

25. х2 - знак числа Rf2

26. х3 - знак числа Rf3

27. z - размер анализируемого на наличие

нулей блока в регистре (двоичное позиционное короткое значение, заранее устанавливаемая константа)

28. halfA - значение размера половины длины представления числа FA в регистре (двоичное позиционное короткое значение)

29. st - двоичное позиционное короткое значение, равное одному из значений от 1 до z

30. Sts=2"st (в формате СОК), т.е. обратное по умножению к двойке в положительной степени st (2 5 modP, где Р - множество модулей СОК)

31. DlReg - значение длины регистра для относительных величин (двоичное позиционное короткое значение)

32. Dlbzero - длина блока нулей, идущих непрерывным рядом слева от старшей значащей единицы числа FA, размещённого в регистре (двоичное позиционное короткое значение)

33. DlA - длина числа FA, размещённого в регистре (двоичное позиционное короткое значение)

34. Sn - значение двойки в степени, максимально представимое в регистре R.FA (константа в СОК)

35. d - результат дизъюнкции всех разрядов анализируемого блока размером z в регистре для относительных величин.

Разработанный алгоритм имеет следующее обобщённое описание:

1) Вычисление FA=F(A).

2) Определение Dlbzero. На каждой итерации генерируется новое значение Sts. Одновременно с этим на каждой итерации данного процесса выполняется модулярное индексное умножение S1 и S2 (равные изначально Sn и Sn/2) на Sts.

3) Определяется значение DlA путём вычисления разности (DlReg - Dlbzero).

4) Определяется halfA, равное DlA после сдвига его значения на 1 шаг вправо.

5) Выполняется умножение S1 и S2 на

значение 2-Ьа1ГА в СОК.

6) Выполняется цикл формирования корня на основе выборки в сумму аппроксимации степеней двойки, начиная с той, что равна S1. Дополнительно на каждой итерации проверяется и следующая степень, равная S2.

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

1) Вычисление модулярных сумм текущего значения приближённого корня В (изначально равное нулю) и двух степеней двойки -наивысшей возможной для вхождения в ряд аппроксимации корня S1 и на один порядок меньшей S2 (показатель степени ниже на единицу). Значения соответствующих сумм обозначаются как BS1 и BS2.

2) Вычисление модулярной суммы для BS1 и S2 для случая, когда обе степени двойки, идущие подряд, входят в ряд аппроксимации. Сумма этих двух степеней и предыдущего значения приближённого корня обозначается как BS3. Одновременно с этим выполняется модулярное возведение в квадрат предыдущих промежуточных значений приближённого корня BS1 и BS2, где результаты обозначены как BS1_2 и BS2_2.

3) Возведение в квадрат BS3 для получения BS3_2. Параллельно с этим идёт получение следующих значений степеней двойки S1 и S2 путём умножения на обратную модулярную величину числа 2 (производя, по сути, деление на 2 в СОК).

4) Вычисляются относительные величины для этих квадратов, обозначаемые как FB1, FB2 и FB3.

5) Вычисление позиционной разности относительных величин приближённых корней FB1, FB2 и FB3 и относительной величины FA. Результаты обозначаются как М1, М2 и М3 с соответствующими значениями знаков разности х1, х2, х3.

6) Выполняются логические дизъюнкции всех разрядов значений разностей квадратов с FА. Для каждой разности соответствующие результаты обозначаются как dz1, dz2 и dz3. Это выявляет равенство нулю для нахождения истинного корня числа А.

7) Если все значения (^1, dz2, dz3) равны логической единице и одно из (х1, х2, х3) равно нулю, то при х1=0, х2=0, х3=1 или х1=0, х2=1, х3=1 выполняется верным значением приближённого корня на данной итерации цикла принимается BS1 и присваивается переменной В.

Если х1=0, х2=0, х3=0, то соответственно выполняется присваивание BS3.

Если х1=1, х2=0, х3=1, то выполняется В=

BS2.

Если х1=1, х2=1 х3=1, то В не перезаписывается, оставаясь прежним.

Цикл выполняется до тех пор, пока не произойдёт одно из 2-х событий:

1. Одно из значений набора (^1, dz2, dz3) стало равно нулю. Это означает, что если разница А и одного из квадратов предполагаемого корня (BS1_2, BS2_2, BS3_2) равна нулю, то возведённое в квадрат вычитаемое и является истинным корнем числа А.

2. Если х1=0, х2=1, х3=1. Это означает, что S 1=1, а S2 имеет результат переполнения.

3. Если на предыдущей итерации было S1=2, а S2=1 (т.е. если при итерировании степеней S1 и S2 был достигнут нижний предел), то в таком случае или в случае переполнения S2 считается, что найден предельно приближённый корень числа А, выявляемый наибольшей положительной разностью относительных величин с FA.

Ам (IX) - функция, анализирующая блок разрядов на количество нулей, идущих непрерывным рядом слева от старшей единицы, если она вообще присутствует в блоке. Принимает относительную величину IX и читает только блок от нулевого разряда по ^-1)-й. Выдаёт на вход значение st, имеющее значение в диапазоне [0, z].

Если st>0, то далее в алгоритме выполняется умножение на обратную степень двойки.

Если st=0, то это означает, что в старшем разряде блока находится единица и данный цикл завершается без последнего умножения.

Завершение цикла в первую очередь определяется значением d=1, равное дизъюнкции всех разрядов анализируемого блока. Если была обнаружена единица в блоке, то нули закончились.

ExSOC ф, zk) - функция формирования степеней двойки в СОК. Выдаёт значения Sts. Если st=0, то выдаёт единицу в СОК. Выдаёт значения 2 в степени ^ или кратные z. Нужно определить дополнительный входной сигнал для выдачи кратных z. Пусть это будет zk. Если

zk=0, то степень определяется входом st, иначе значение входа st игнорируется.

Пусть g1 - знак разности halfA и z. Тогда будем также рассматривать g2, g3, g4 как знаки соответствующих разностей с кратными z.

В таком случае обозначим сами разности как dif1, dif2, dif3, dif4.

Блок-схема разработанного алгоритма представлена на следующем рисунке.

Схема алгоритма извлечения квадратного корня

Схема алгоритма извлечения квадратного корня (продолжение)

Схема алгоритма извлечения квадратного корня (окончание)

При аппаратной реализации данного алгоритма все операции, за исключением F(), очень просты и выполняются меньше, чем за 1 такт. Технически сигнал просто быстро проходит через несколько малых комбинационных схем, выдавая затем результат. Также многие пункты выполняются параллельно. В частности, обработка операций по различным модулям СОК или одновременная проверка степеней двойки как в СОК, так и в относительных величинах. Кроме того, стоит отметить, что потребуется следующий набор регистров:

а) R.А - для числа, корень которого алгоритм ищет (в СОК)

b) R.B - текущее значение приближённого корня (сумма) (в СОК)

c) R.S1 - для степени двойки (2г) (в СОК, изначально содержит значение Sn, после завершения извлечения корня, регистр R.S1 сбрасывается в это состояние как начальное)

d) R.S2 - для степени двойки (2^) (в СОК)

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

R.FA - для относительной величины

е)

FA

R.BS1 - для величины (B+S1) (в СОК) R.BS2 - для величины (в+S2) (в СОк) R.BS3 - для величины (B+S1+S2) (в

f)

^

h) СОК)

i) R.FAt - для относительной величины FA (временно, потом сдвигается)

j) R.Dlbzero - для длины блока нулей слева от числа в регистре R.FAt.

Если глубина схемы F() велика, то создаётся либо 3 регистра для FBi значений, либо промежуточные регистры, которые будут хранить промежуточные суммы при вычислении F() для разных вариантов FBi. Тогда специальный регистр R.Fat не нужен. Промежуточные регистры для F() будут в общей сумме длиннее, чем общая длина регистров для FBi значений, т.к. FBi являются конечными суммами. Чем меньше модулей в СОК, тем меньше глубина схемы F().

Заключение

В результате проведённого анализа предметной области исследования сделаны следующие выводы:

1. Повышение скорости вычислений при высокой точности результатов обработки является актуальной проблемой в различных областях научных и промышленных расчётов.

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

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

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

ность интерпретации величины числа в остаточном представлении.

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

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

Литература

1. IEEE Standard for Floating-Point Arithmetic, IEEE Computer Society, IEEE Std 754, 2019.

2. Bailey D.H., Barrio R., Borwein J.M. High-precision computation: Mathematical physics and dynamics in Applied Mathematics and Computation. Vol. 218. No. 20. 2012. pp. 10106-10121.

3. Исупов К.С. Методы и алгоритмы организации высокоточных вычислений в арифметике остаточных классов для универсальных процессорных платформ: дис.... канд. техн. наук. Киров: ВятГУ, 2014.

4. Карацуба А.А., Офман Ю.П. Умножение многозначных чисел на автоматах // Докл. АН СССР. 1962. Т. 145. № 2. С. 293-294.

5. Алгоритм Фюрера / Е.А. Дмитриев, В.В. Швей-кин, С.Д. Завгородний, И.В. Танаев // Студенческая наука XXI века: материалы XII Междунар. студ. науч.-практ. конф. Чебоксары: ЦНС «Интерактив плюс», 2017. С. 297300. ISSN 2413-3825

6. Burnikel C., Ziegler J. Fast Recursive Division, MaxPlanck-Institut fuer Informatik Research Report MPI-I-98-1-022, Im Stadtwald, D- Saarbrucken, 1998.

7. Hasselstrom K. Fast Division of Large Integers: A Comparison of Algorithms, (M.Sc. in Computer Science thesis). Royal Institute of Technology, 2003.

8. Долгов Д.А. О расширенном алгоритме Джебеле-ана-Вебера-Седжелмаси вычисления наибольшего общего делителя// Чебышевский сборник. 2018. Т. 19. Вып. 2. С. 421-431.

9. Bailey D.H., Borwein J.M. High-Precision Arithmetic in Mathematical Physics in Mathematics. 3 (2015). pp. 337367

10. Moore R.E., Bierbaum F. Methods and Applications of Interval Analysis. Philadelphia: SIAM, 1979. 190 p. ISBN 0-898-71161-4.

11. Акритас А. Основы компьютерной алгебры с приложениями: Пер. с англ. М.: Мир, 1994. 544 с.

12. Аноприенко А.Я., Гранковский В.А., Иваница С.В. Пример Румпа в контексте традиционных, интервальных и постбинарных вычислений //Научные труды Донецкого национального технического ун-та. Сер. «Проблемы моделирования и автоматизации проектирования динамических систем». 2011. № 9(179). С. 324-343. ISSN 2074-7888.

13. Гамаюн В.П., Коврижкин И.О. Структурно-алгоритмический метод высокоточных вычислений на основе разрядно-логарифмической системы счисления. Киев: Книжное изд-во НАУ, 2012. № 1(37). С. 41-44.

14. Гамаюн В.П. Арифметико-алгоритмический базис моделирования компьютерных средств. Киев: Книжное изд-во НАУ, 2008. № 1(23). С. 215-220.

15. Kingsbury N.G., Rayner P.J.W. Digital Filtering Using Logarithmic Arithmetic// Electronics Letters. 1971. V. 7. p. 56-58.

16. Коржавина А.С. Исследование эффективности реализации логарифмической интервальной арифметики на универсальных процессорах: материалы Междунар. науч.-техн. конф. INTERMATIC. М.: МИРЭА, 2016. Ч. 4. С. 165-168.

17. Евстигнеев В.Г. Недвоичные компьютерные арифметики // Электроника и информатика - 2005: Меж-дунар. науч.-техн. конф. М.: Ангсрем, 2006. 774 с.

18. Сергеев А.М. Об особенностях представления чисел при знакоразрядном кодировании и вычислительный эксперимент с ними// Информационно-управляющие системы. 2006. № 3(22). С. 56-58.

19. Сергеев М.Б., Сергеев А.М. Разрядная конвейеризация вычисления значений функций при полиномиальной аппроксимации // Микропроцессорные информационно-управляющие системы реального времени. СПб.: Политехника, 2000. С. 85-92.

20. Акушский И.Я., Юдицкий Д.И. Машинная арифметика в остаточных классах. М. "Советское радио", 1968. 440 с.

21. Грегори Р.Т., Кришнамурти Е.В. Безошибочные вычисления. Методы и приложения: Пер. с англ. М.: Мир, 1988. 208 с.

22. Оцоков Ш.А. Структурно-алгоритмические методы организации высокоточных вычислений на основе теоретических обобщений в модулярной системе счисления: дис.... д-ра техн. наук: 05.13.05 - Элементы и устройства вычислительной техники и систем управления; 05.13.15 - Вычислительные машины, комплексы и компьютерные сети. М.: МЭИ ТУ, 2010. 287 с.

23. Патент 2559772, Российская Федерация, МПК G06F 7/72. Устройство для основного деления модулярных чисел в формате системы остаточных классов / Червяков Н.И., Бабенко М.Г., Лавриненко И.Н., Ляхов П.А., Лавриненко А.В.; заявитель и патентообладатель ФГАОУ ВО «Северо-Кавказский федеральный университет». № 2013149446; заявл. 06.11.2013; опубл. 10.08.2015, Бюл. №14.

24. Новичков М.Д. Исследование и разработка методов реализации операции деления в системе остаточных классов: Магистерская диссертация. М.: МЭИ, 2019.

25. Прикладная теория цифровых автоматов/ К.Г. Самофалов, А.М. Романкевич, В.Н. Валуйский, Ю.С. Каневский, М.М. Пиневич. Киев: Вища шк. Головное изд-во, 1987. 375 c.

26. Авхадиев Ф.Г. Численные методы анализа: учеб. пособие. Казань: Казанский федеральный университет,

28. Строганов Ю.В., Пудов Д.Ю., Сиденко А.Г. Исследование численных методов для синуса и косинуса// Новые информационные технологии в автоматизированных системах: материалы 21-го науч.-практ. семинара. М.: ИПМ им. М.В. Келдыша, 2018. С. 363-366.

2013. 126 с.

27. Берёза А.Н., Ляшов М.В. Аппаратная реализация нелинейных математических функций для нейронных сетей// Известия Южного федерального университета. Технические науки. 2008. С. 194-198.

Поступила 29.03.2021; принята к публикации 22.06.2021

Информация об авторах

Новичков Михаил Дмитриевич - аспирант, Национальный исследовательский университет «МЭИ» (111250, Россия, г. Москва, Красноказарменная улица, д. 14), е-таД: [email protected], ОЯСГО: https://orcid.org/0000-0002-6591-3666 Орлов Дмитрий Александрович - канд. техн. наук, доцент, Национальный исследовательский университет «МЭИ» (111250, Россия, г. Москва, Красноказарменная улица, д. 14), е-тай: [email protected]

APPLICATION OF NON-BINARY NUMERAL SYSTEMS FOR ORGANIZING HIGH-PRCISION

COMPUTATIONS

National Research University "Moscow Power Engineering Institute", Moscow, Russia

Abstract: the purpose of this article is to find a way to increase the efficiency of calculating elementary functions, when the criteria for evaluating efficiency is speed (which depends on the complexity of algorithms, processor clock frequency and degree of parallelization) and the amount equipment required for organization the computations. Many calculations in science and industry require the use of high-precision calculations. However, when using methods oriented to the positional binary numeral system, the computation time is rather long. Within the framework of this study, we give an overview of the most well-known traditional methods of calculation with increased accuracy, we studied existing solutions using non-binary numeral systems. In particular, we described such numeral systems as bit-logarithmic, sign-bit numeral system and multi-modular system of residual classes with advantages and disadvantages. Special attention was paid to the system of residual classes, a non-positional numeral system, which is inherent by internal natural parallelism. After considering the methods for the numerical solution of elementary functions, we developed an algorithm for the accelerated extraction of the square root in the system of residual classes. We formulated this algorithm on the basis of one of the methods that were analyzed in the course of the study, and it can be implemented as a software module, however, it will be most effective if it is implemented as an electronic circuit on a chip. We give the descriptions of the conditions that must be taken into account during the hardware implementation of the algorithm. These notes contain recommendations for the synthesis of the structure of the device, taking into account the physical characteristics of the propagation of information signals in electronic combinational logic circuits

Key words: non-binary numeral systems, high-precision computing, modular arithmetic, residue numeral system, elementary functions, square root

1. "IEEE standard for floating-point arithmetic", IEEE Computer Society, IEEE Std 754, 2019.

2. Bailey D.H., Barrio R., Borwein J.M. "High-precision computation: Mathematical physics and dynamics", Appl. Math. Comput., 2012, vol. 218, no. 20, pp. 10106-10121.

3. Isupov K.S. "Methods and algorithms for organizing high-precision computations in residual class arithmetic for universal processor platforms" ("Metody i algoritmy organizatsii vysokotochnykh vychisleniy v arifmetike ostatochnykh klassov dlya univer-sal'nykh protsessornykh platform"), Cand. Tech. Sci. diss., Kirov, Vyatka State University, 2014, 256 p.

4. Karatsuba A.A., Ofman Yu.P. "Multiplication of multidigit numbers on automata", Proc. of Academy of Sciences (Doklady Akademii Nauk SSSR), 1962, vol. 145(2), pp. 293-294.

5. Dmitriev E.A., Shveykin V.V., Zavgorodniy S.D., Tanaev I.V. "Furer's algorithm", Proc. of the XII International Student Scientific and Practical Conf.: Student Science in the XXI Century (Studencheskaya nauka XXI veka: materialy XIIMezhdunar. stud. nauch.-prakt. konf.), Cheboksary: Interaktiv plus, 2017, pp. 297-300.

6. Burnikel C., Ziegler J. "Fast recursive division", Max-Planck-Institut fuer Informatik Research Report MPI-I-98-1-022, Im Stadtwald, D- Saarbrucken, 1998.

7. Hasselström K. "Fast division of large integers: a comparison of algorithms", M.Sc. in Computer Science thesis, Royal Institute of Technology, 2003.

8. Dolgov D.A. "An extended Jebelean-Weber-Sedjelmaci GCD algorithm", Chebyshev Collection (Chebyshevskiy Sbornik), 2018, vol. 19, no. 2, pp. 421-431.

9. Bailey D.H., Borwein J.M. "High-precision arithmetic in mathematical physics", Mathematics, 2015, no. 3, pp. 337-367.

10. Moore R.E., Bierbaum F. "Methods and applications of interval analysis", Philadelphia: SIAM, 1979, 190 p. ISBN 0-89871161-4.

M.D. Novichkov, D.A. Orlov

References

11. Akritas A. "Elements of computer algebra with applications" ("Osnovy komp'yuternoy algebry s prilozheniyami"), Moscow, Mir, 1994, 544 p.

12. Anoprienko A.Ya., Grankovskiy V.A., Ivanitsa S.V. "Rump example in the context of traditional, interval and postbinary computing", Scientific Papers of Donetsk National Technical University (Nauchnye Trudy Donetskogo natsional'nogo tekhnich-eskogo un-ta), Donetsk, 2011, no. 9(179), pp. 324-343.

13. Gamayun V.P., Kovrizhkin I.O. "Structural-algorithmic method of high-precision calculations based on the bit-logarithmic numeral system" ("Strukturno-algoritmicheskiy metod vysokotochnykh vychisleniy na osnove razryadno-logarifmicheskoy sistemy schisleniya"), Kiev, National Aviation University, 1 (37), 2012, pp. 41-44.

14. Gamayun V.P. "Arithmetic-algorithmic basis for modeling computer tools" ("Arifmetiko-algoritmicheskiy bazis modeliro-vaniya komp'yuternykh sredstv"), Kiev, National Aviation University, 1 (23), 2008, pp. 215-220.

15. Kingsbury N.G., Rayner P.J. W. "Digital filtering using logarithmic arithmetic", Electronics Letters, 1971, vol. 7, pp. 5658.

16. Korzhavina A.S. "Investigation of the effectiveness of realization of logarithmic interval arithmetic on universal processors", Proc. of the International Scientific and Technical Conf. INTERMATIC-2016 (materialy Mezhdunar. nauch.-tekhn. konf. IN-TERMATIC), Moscow (MIREA), 2016, vol. 4, pp. 165-168.

17. Evstigneev V.G. "Non-binary computer arithmetic", Proc. of the International Scientific and Technical Conf.: Electronics and Computer Science - 2005 (Elektronika i Informatika -2005: Mezhdunar. nauch.-tekhn. konf.), Moscow, Angsrem, 2006, 774 p.

18. Sergeev A.M. "On the signed-digit representation of numbers and a related computational experiment", Information and Control Systems (Informatsionno-upravlyayushchie sistemy), St. Petersburg, 2006, no. 3(22), pp. 56-58.

19. Sergeev M.B., Sergeev A.M. "Bit pipelining for calculating the values of functions with polynomial approximation", RealTime Microprocessor Information and Control Systems (Mikroprotsessornye informatsionno-upravlyayushchiye sistemy real'nogo vremeni), St. Petersburg, Politechnika, 2000, pp. 85-92.

20. Akushskiy I.Ya., Yuditskiy D.I. "Computer arithmetic in residual classes" ("Mashinnaya arifmetika v ostatochnyh klassah"), Moscow, Sov. radio, 1968, 440 p.

21. Gregory R.T., Krishnamurthy E.V. "Methods and applications of error-free computation" ("Bezoshibochnye vychisleniya. Metody i prilozheniya"), Moscow, Mir, 1988, 208 p.

22. Otsokov Sh.A. "Structural-algorithmic methods of high-precision computing on the basis of a modular numeral system" ("Strukturno-algoritmicheskie metody organizatsii vysokotochnykh vychisleniy na osnove teoreticheskikh obobshcheniy v mod-ulyarnoy sisteme schisleniya"), Dr. of Tech. Sc. diss., 05.13.05, Moscow, MPEI, 2010, 287 p.

23. Chervyakov N.I., Babenko M.G., Lavrinenko I.N., Lyakhov P.A., Lavrinenko A.V. "Device for basic division of modular numbers in the format of the residual classes system" ("Ustroystvo dlya osnovnogo deleniya modulyarnykh chisel v formate sistemy ostatochnykh klassov"), patent no. 2559772 of the Russian Federation, dec. 06/11/2013, publ. 10/08/2015, bul. no. 14.

24. Novichkov M.D. "Research and development of methods for implementing the division operation in the system of residual classes" ("Issledovanie i razrabotka metodov realizatsii operatsii deleniya v sisteme ostatochnykh klassov"), Master's thesis, Moscow, MPEI, 2019.

25. Samofalov K.G., Romlinkevich A.M., Valuiskiy V.N., Kanevskiy Yu.S., Pinevich M.M. "Applied theory of digital automata" ("Prikladnaya teoriya tsifrovykh avtomatov"), Kiev, Vysshaya shkola, 1987, 375 p.

26. Avkhadiev F.G. "Numerical methods of analysis" ("Chislenne metody analiza"), Kazan, Kazan Federal University, 2013,

126 p.

27. Bereza A.N., Lyashov M.V. "Hardware realization of nonlinear mathematical functions for neural networks", News of Southern Federal University. Technical Sciences (Izvestiya Yuzhnogo federal'nogo universiteta. Tekhnicheskiye nauki), 2008, pp. 194-198.

28. Stroganov Yu.V., Pudov D.Yu., Sidenko A.G. "Investigation of numerical methods for sine and cosine", Proc. of 21 Scientific and Practical Seminar: New Information Technologies in Automated Systems (Novye informatsionnye tekhnologii v avtoma-tizirovannykh sistemakh: materialy 21-go nauch.-prakt. seminara), Moscow: IPM named after M.V. Keldysh, 2018, pp. 363-366.

Submitted 29.03.2021; revised 22.06.2021 Information about the authors

Mikhail D. Novichkov, graduate student, National Research University "Moscow Power Engineering Institute", (14 Krasnoka-zarmennaya str., Moscow 111250, Russia), e-mail: [email protected], ORCID: https://orcid.org/0000-0002-6591-3666 Dmitriy A. Orlov, Cand. Sc. (Technical), Associate Professor, National Research University "Moscow Power Engineering Institute", (14 Krasnokazarmennaya str., Moscow 111250, Russia), e-mail: [email protected]

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