СПОСОБ И УСТРОЙСТВО ПАРАЛЛЕЛЬНО-КОНВЕЙЕРНЫХ АРИФМЕТИЧЕСКИХ ВЫЧИСЛЕНИЙ В МОДУЛЯРНО-_ЛОГАРИФМИЧЕСКОЙ СИСТЕМЕ СЧИСЛЕНИЯ*_
Осинин Илья Петрович
к.т.н., старший научный сотрудник ФГУП «РФЯЦ-ВНИИЭФ», г. Саров
Аннотация. Статья входит в комплекс работ по решению одной из основных проблем системы остаточных классов (СОК) - сложности выполнения арифметических операций над полем вещественных чисел. Цель данного исследования состоит в повышении скорости и формализации выполнения модулярно-логарифмических операций. Объектом исследования является способ выполнения арифметических операций в перспективной модулярно-логарифмической системе счисления, объединяющей преимущества системы остаточных классов и логарифмической системы счисления. Предметом исследования является параллельно-конвейерное устройство, реализующее предложенный способ вычислений. Исследование выполнено с использованием теории проектирования ЭВМ и систем, методов и средств экспериментального анализа ЭВМ и систем. Результатом является аппаратная параллельно-конвейерная организация устройства, обладающая высокой скоростью обработки операндов. Например, умножение и деление вещественных чисел в модулярно-логарифмическом формате вычисляется в m2/g раз быстрее по сравнению с традиционным позиционным устройством с плавающей точкой, где m - разрядность числа с плавающей точкой, g - разрядность модулей системы остаточных классов.
Ключевые слова: арифметическая операция, система остаточных классов, логарифмическая система счисления, модулярно-логарифмическая система счисления.
METHOD AND DEVICE OF PARALLEL-PIPELINED ARITHMETICAL COMPUTERS IN MODULAR-LOGGARMIC SYSTEM OF CALCULATION
Osinin Ilya Petrovich
PhD, senior researcher Russian Federal Nuclear Center - The All-Russian Research Institute of Experimental Physics», Sarov
Annotation. The article is part of the complex of works on solving one of the main problems of the residual number system (RNS) - the complexity of performing arithmetic operations on the field of real numbers. The purpose of this study is to increase the speed and formalization of the performance of modular-logarithmic operations. The object of the study is the method of performing arithmetic operations in the prospective modular-logarithmic number system, which combines the advantages of the residual class system and the logarithmic number system. The subject of the study is a parallel-pipelined device that implements the proposed method of calculation. The study was carried out using the theory of computer design and systems, methods and means of experimental analysis of computers and systems. The result is a hardware parallel-pipelined organization of the device, which has a high processing speed of the operands. For example, the multiplication and division of real numbers in a modular-logarithmic format is computed in m2/g times faster than the traditional floating point device, where m is the width of the floating-point number, g is the width of the modules of the residual number system.
Keywords: arithmetic operation, residue number system, logarithmic number system, modular-logarithmic number system.
Введение
Развитие технологий высокопроизводительных вычислений неразрывно связано с повышением скорости вычислений на супер-ЭВМ, что на сегодняшний день достигается за счет:
- увеличения количества вычислительных ядер,
- увеличения количества команд, выполняемых за такт, например, с помощью широкого командного слова или векторных операций;
- совершенствования алгоритмов программ, например, за счет распараллеливания вычислений.
При этом повышению быстродействия на уровне выполнения арифметических операций пре-
пятствует наличие межразрядных переносов, возникающих в ходе вычислений в позиционной системе счисления (ПСС).
Перспективной альтернативой является модулярная система счисления, или, по-другому, система остаточных классов (СОК). Научные работы Червякова Н.И., Акушского И.Я., Князькова В.С., Garner H., Omondi A. посвящены данному направлению [1,2]. За счет независимых вычислений над каждой цифрой числа из базиса оснований {vi,v2,...,vfc}, ей присущи такие свойства, как параллелизм модульных операций сложение и умножение, а также автоматическая коррекция машинных кодов для повышения надежности вычислений, где h - количество остатков.
* Исследование выполнено за счет гранта Российского научного фонда (проект №17-71-10043)
Широкому применению СОК в вычислительной технике препятствует относительно медленное выполнение немодульных операций, таких как деление, сравнение, перевод между системами счисления и другие [1].
Данное обстоятельство затрудняет применение широко распространённого формата с плавающей точкой, в которой числа представлены следующим образом
\sign ^Е 'ч 4
X
(-1)'
■0+у)
(1)
где sign - знак числа, E - показатель степени, M- мантисса в нормализованной форме, f - разрядность мантиссы.
При выполнении базовых арифметических операций с плавающей точкой требуется постоянно выравнивать порядки и нормализовать результат, а значит, прибегать к немодульным операциям сравнения и деления на степень числа 2.
Для решения указанного недостатка предлагается использовать логарифмическую систему счисления (ЛСС), в которой положение точки, делящей целую и дробную часть числа, фиксируется. Основополагающий вклад в её изучение внесли ученые Coleman J., Arnold M., Chester E., Lewis D [3-6].
Данная система счисления является альтернативой плавающей точке за счет представления чисел х их логарифмами, обеспечивая аналогичный диапазон представления чисел в отведенном количестве бит
v M M
log2 x = log22I + log2(1+м) = E+log2(1+m ), (2)
где E - показатель степени, M - мантисса в нормализованной форме, f- разрядность мантиссы.
Кроме того, операции умножение, деление, возведение в степень и извлечение корня выполняются в ней также быстро, как с операции фиксированной точкой за счет свойств логарифмов
log 2 (X ■ У) = i +
log 2 (x - У) = i - j, log 2 (ХУ ) = i ■ У,
log 2 (У* ) = i - У,
63
62
(3)
(4)
(5)
(6) 52
где х, у - исходные числа с плавающей точкой. Помимо высокой скорости выполнения перечисленных операций в аппаратуре, ЛСС способствует большей точности вычислений за счет отсутствия округлений при выполнении логарифмических арифметических операций, что повышает точность вычислений на следующих классах задач: плохо обусловленные; с разномасштабными коэффициентами; чувствительные к классу эквивалентных преобразований. С другой стороны, операции сложение и вычитания выражаются через умножение, что отрицательно сказывается на скорости их выполнения.
Широкому применению ЛСС также препятствует необходимость преобразования чисел из традиционного формата с плавающей точкой в логарифмический формат.
Таким образом, фиксация точки в ЛСС позволяет работать с вещественным операндом, как с целым числом, что позволяет объединить её преимущества с СОК, образуя при этом модулярно-логарифмическую систему счисления (МЛСС) [7,8]. Однако на сегодняшний день недостаточно исследованы теоритические основы вычислений в МЛСС, отсутствуют аппаратные реализации устройств, функционирующих на её базе.
Статья посвящена новому способу и устройству выполнения арифметических операций в мо-дулярно-логарифмическом формате.
Модулярно-логарифмический формат представления данных
Во введении было установлено, что МЛСС подходит для повышения скорости арифметических вычислений над числами, обладающими широким диапазоном представления, за счет параллелизма на уровне разрядов числа.
Перевод вещественного числа в модулярно-ло-гарифмический формат (пример приведен на рисунке 1) проходит в два этапа:
- вычисляется логарифм по основанию 2 исходного вещественного числа;
- логарифмический код числа, состоящий из целой и дробной части логарифма преобразуется в СОК как единое целое число.
51
Число в логарифмической системе счисления
63
62
48 47
I
32 31
16 15
Знак S mod(215-1) mod(216-1) mod(216) mod(216+1)
0
0
Число в модулярно-логарифмической системе счисления
Рисунок 9. Преобразование числа двойной точности в МЛСС
Предложенный далее способ выполнения арифметических операций в МЛСС учитывает, как специфику логарифмов:
- операции умножение (1) и деление (2) заменяются операциями сложение и вычитание соответственно;
- операции возведение в степень (3) и извлечение корня (4) заменяются операциями умножение и деление соответственно;
так и модулярного представления чисел:
- независимое вычисление по модулям СОК;
- обнаружение переполнения и контроль ошибок с помощью расширения диапазона представления чисел дополнительным модулем [1,8].
2 = X.7 = {х„ .у„\ '
3. Способ выполнения модулярно-логарифмических операций
Способ выполнения логарифмических операций в МЛСС состоит из последовательности следующих шагов:
1) над парами остатков операндов X и Y, поступивших на обработку в модулярно-логарифми-ческом формате, по соответствующим модулям СОК {vh,...,v2,vi} параллельно выполняется вычисление
Х2 *
y 2 L2 ' К * yil v} = {zh ■ ■ ,z2 ' zi};
(7)
где • является одной из следующих арифметических операций:
а) сложение для логарифмической операции умножение, п=2;
б) вычитание для логарифмической операции деление, п=0;
в) умножение для логарифмической операции возведение в степень Y, n=Y;
г) деление нацело для логарифмической операции извлечение корня степени Y, n=Y"1;
2) в зависимости от выполненной операции формируется знак результата:
а) для логарифмической операции умножение или деление
Б2 = © ; (8)
б) для логарифмической операции возведение в степень или извлечение корня
S,
((-DSX) ;
'2 - 1/ / ; (9)
3) число Z суммируется с корректирующим числом с=(1-и)-С-2^ в модулярном представлении
Я - {гк,...,г2,гх)- 2 + с; (10)
4. модулярное представление вычисленной суммы ZC преобразуется в систему счисления со смешанным основанием (ССО) [1,8];
4) старшая цифра преобразованного числа со смешанным основанием, соответствующая расширенному диапазону, проверяется на равенство
Z = X7 = {IХз • Уз|
2 • У2 L ; Х1 • У1
}
нулю, в случае выполнения равенства - выставляется флаг переполнения машинной сетки результата, иначе результатом выполнения операции является картеж в МЛСС
zä = {sz , zC (ii)
где n - переменная, принимающая значение в зависимости от выполняемой операции; C - смещение характеристики; f - разрядность дробной части логарифма; Sx, Sy - знак первого и второго операнда соответственно.
Пример. Рассмотрим возведение в степень числа в модулярно-логарифмической системе счисления (1 бит - знак, 5 бит - целая часть логарифма, 10 бит - дробная), аналогичный формату IEEE-754 половинной точности (16 бит), смещение характеристики с=15.
Пусть число х=-10,8 необходимо возвести в степень >>=4. Их модулярно-логарифмическое представление, расширенное модулем v3=7, соответственно X={Sx;x3;x2;x1}={1;3;79;5}, Y={SY;y3;>'2;>'i }={0;4;4;4}, где S=1 - код знака числа, {r2;ri} - остаточное представление числа по модулям СОК {V3,V2,V1}={7;127;255}.
Тогда требуется выполнить последовательность следующих шагов:
1) над парами остатков операндов X и Y по соответствующим модулям СОК {v3,v2,vi} параллельно выполняется умножение
{|3• 4|7;|79• 4|127;|5 • 4|,„} = {5;62,20}; (12)
1255 J
2) формируется знак результата:
Sz =((-1>sx ) =((-1)1 j = 0;
3) число Z суммируется с=(1-4)-15-210=-46080={-6;-106;-180}
модулярным представлением корректирующего
(13) числа
Я - 2 + с - {5 -б|7;|б2-10^7;|20-180|255} - {-1;-30;-135} - {6;83;95}; (14)
4) модулярное представление вычисленной суммы ZC преобразуется в систему счисления со смешанным основанием [1,8];
Z с
— I
R = {гз, r2, ^ = {67;83|i27;|95255
} = {0i27 • 255'ii5255'95};
(15)
5) старшая цифра преобразованного числа со смешанным основанием равна 0, значит, результатом выполнения операции является картеж ZR в МЛСС
2я - {^; Я} - {0;6;83;95}; (16)
проверим данное значение, преобразовав результат в позиционную систему счисления гиСС=29420, а затем выделим целую и дробную часть логарифма результата
v
v
z 29420
z лсс = -f - с = —^ = 28,7305 -15 = 13,7305; (17)
тогда вещественное представление результата
z = ;22лсс} = {0;213,7305} = 13592,28 * (-10,8)4. (18)
Устройство параллельно-конвейерного выполнения модулярно-логарифмических операций
В данном разделе предложена схемотехническая реализация преобразователя из модулярно-логарифмического формата. Общая структурная схема преобразователя кодов приведена на рисунке 2. Высокий уровень быстродействия устройства необходим, так как оно задействуется при выполнении модулярно-логарифмических арифметических
Перевод числа из СОК в ССО целесообразно выполнять с помощью параллельно-конвейерных устройств, подробно рассмотренных в предшествующей работе [9].
Блок операции по модулю настраивается на выполнение таких действий, как, сложение, вычитание, умножение или деление нацело в зависимости от текущей операции в соответствии с предложенным способом, где /е[1;И], И - количество модулей СОК.
операции.
Операнды X={SxXh,. • -XzXi}, F={Syyh,...У2У1}
хн^ Ун^
Операция • по модулю p1 Операция • по модулю p2 . . . Операция • по модулю ph
4 Zh^
Коррекция |с|р Коррекция |с|р . . . Коррекция |с|р
•21
Sx
Sy
{•Ъ-ЛЛ} 1 ' 1 *
Преобразователь Вычисление
СОК-ССО знака результата
Sz
I
Результат Z={1Sz;rA,...,/2,rl}
Рисунок 10. Структурная схема блока возведения в степень
Блок коррекции представляет собоИ сумматор с таблицей подстановок, из котороИ извлекается константа с, хранящаяся по адресу n, где n - переменная, принимающая значение в зависимости от типа выполняемой операции.
Результат преобразования доступен на информационном выходе через два такта работы устройства в случае использования вычислительного конвейера. После заполнения вычислительного конвейера время выполнения операции составляет один такт.
Техническая реализация устройства выполнена на базе программируемой логической интегральной схемы (ПЛИС) семейства Cyclone V фирмы Altera. Данная ПЛИС входит в состав отладочной платы Cyclone V SoC Development Board, с помощью которой была проведена верификация устройства на примере выполнения арифметических операций над модулярно-логарифмическими
числами, соответствующими стандарту двойной точности.
Анализ результатов аппаратной реализации позволил установить, что затраты, выраженные в количестве логических элементов ПЛИС, составляют
£ = Ь ■ (2 • ^ + £ти1 + £тет) + ^ССО (19)
где Saм=g, 5Ши1=1,5^2, 5Шеш=2и+1 - аппаратные затраты двухвходового сумматора, умножителя и таблицы коэффициентов соответственно; и - разрядность модуля расширения диапазона СОК; И -количество £-разрядных модулей СОК, 5Ссо - аппаратные затраты преобразователя кодов из СОК в ССО
Н-1
£ССО = X * ■ (£ти1 + )• (20)
г=1
Аппаратные затраты устройства, измеряемые в количестве логических элементов ПЛИС и минимально необходимые для обеспечения одинарной,
двойной и четверной точности вычислений, приведены на рисунке 3.
и ^
^ 8,00Е+03 | 4,00Е+03
| 2,00Е+03 е 1,00Е+03 5,00Е+02
8 12 16 32 ПСС
Разрядность модулей g, бит ■ Одинарная ■ Двойная ■ Четверная
Рисунок 11. График зависимости аппаратных затрат от точности вычислений
Таким образом, аппаратные затраты для одинарной, двойной или четверной точности вычислений практически не зависят от разрядности g и количества И модулей СОК, находясь при этом на сопоставимом уровне с традиционной позиционной реализацией устройства с плавающей точкой (столбец ПСС на рисунке 3).
При этом скорость выполнения арифметических операций умножение и деление в предложенном устройстве в m2/g раз больше по сравнению с традиционной реализацией из-за замены операции умножение/деление на сложение/вычитание и распараллеливание её выполнения по модулям СОК, где т - разрядность числа с плавающей точкой, g -разрядность модулей СОК. Например, ускорение выполнения операций умножение/деление двойной точности т=64 бит в предложенном устройстве с разрядностью модулей СОК g=16 бит составит 642/16=256 раз по сравнению с традиционной реализацией.
Для операций возведение в степень и извлечение корня ускорение модулярно-логарифмического устройства достигает к-т2/^ раз при сравнении с традиционной реализацией устройства возведения в степень за к итераций умножения, где т - разрядность числа с плавающей точкой, g - разрядность модулей СОК.
Заключение
Статья направлена на решение одной из основных проблем системы остаточных классов - сложности выполнения операций над вещественными числами с плавающей точкой. Для этого предложено зафиксировать точку, объединив СОК с логарифмической системой счисления, образуя при этом модулярно-логарифмический формат представления данных.
Данное решение позволяет создавать арифметические устройства, обладающие преимуществами СОК - параллелизмом на уровне разрядов
обрабатываемых чисел и ЛСС - высокой скоростью выполнения операций умножение, деление, возведение в степень и извлечение корня при отсутствии округлений. Однако для выполнения модулярно-логарифмических операций (умножение, деление, возведение в степень и извлечение корня) требовалась разработка специализированного устройства, оптимизированного по уровню быстродействия и аппаратным затратам, а также способа его функционирования в общем виде, чему и посвящена данная работа.
Предложенная схемотехническая реализация арифметического устройства после заполнения вычислительного конвейера позволяет получать результат вычислений каждый такт работы устройства, что обеспечивает высокое быстродействие. Для операций умножение и деление ускорение достигает m2lg раз по сравнению с традиционным позиционным устройством с плавающей точкой, где m - разрядность числа с плавающей точкой, g - разрядность модулей СОК. При этом аппаратные затраты находятся на сопоставимом уровне с традиционной реализацией.
Результаты работы могут быть использованы при разработке арифметических устройств, обладающих высоким уровнем быстродействия при сопоставимом уровне аппаратных затрат по сравнению с известными аналогами за счет применения моду-лярно-логарифмической системы счисления.
Список литературы
1. Червяков Н.И. Модулярные параллельные вычислительные структуры нейропроцессор-ных систем. М: Физматлит, 2003. - 288 с.
2. Omondi A. Residue Number System: Theory and Implementation ll London: Imperial College Press, 2007. - 312 p.
3. Coleman J.N. Arithmetic on the European Logarithmic Microprocessor ll IEEE Transactions on Computers. 2000. vol. 49, no. 7. pp. 702-715
4. Lewis D. M. Interleaved Memory Function Interpolators with Application to an Accurate LNS Arithmetic Unit // IEEE Transactions on Computers. 1994. vol. 43, pp. 974-982
5. Arnold M. G. Improved Co-Transformation for LNS Subtraction // IEEE International Symposium on Circuits and Systems. 2002, vol. II, pp. 752-755
6. Ismail R., Hussin R., Murad S.A. Interpolator Algorithms for Approximating the LNS Addition and Subtraction: Design and Analysis // IEEE Transactions on Computers. 2012, pp. 174-179
7. Arnold M. G. The residue logarithmic number system: theory and implementation ll 17th IEEE Symposium on Computer Arithmetic, pp. 196 - 205
8. Osinin I.P. A Modular-Logarithmic Coprocessor Concept ll Proceedings 2017 International Conference on High Performance Computing & Simulation: pp. 588-595 (2017). DOI: 10.1109lHPCS.2017.93
9. Осинин И. П.: Организация параллельно-конвейерной СБИС-структуры с реконфигурируе-мой микроядерной архитектурой. Известия высших учебных заведений. Поволжский регион. Технические науки. 2013. №3 С. 74-83
МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ В ЭКОЛОГИИ_
Нигматов А.Н., Назарова Г.Н
Институт ПКиППКС ССПО, Ташкентский университет информационных технологий
им. Мухаммад ал-Харезмий
Математизация науки и образования, в частности в экологии не нова. Еще в 50-годы прошлого столетия Ю.Одум придал этому большое значение. В своей книге "Fundamentals of ecology"1 выделил целую главу математизации экологии и охраны природы. Потому что, проведения долгосрочных и дорогих полевых, маршрутных и стационарных экологических исследований не всегда представляется возможным. Особенно в условиях переходной экономики, где наша республика не является исключением. В таких случаях оценка и прогноз реалии, явлений и процессов в экосистемы можно лишь через сложный анализ существующих в ней количественных взаимоотношений и закономерностей.
В нашем случаи используются три словосочетания - математика, моделирование и экология. Математика область науки и образования, изучающая абстрактные пространственные формы и количественные отношения2. Иначе говоря, математика (mathema - знание, наука) - это наука о знание, обусловленной на точном логическом мышлении3. Модель - физическое или знаковое подобие реального объекта, явления и процесса. Моделирование -метод исследования сложных объектов, явлений и процессов путем их упрошенного имитирования (натурного, математического, логического)4. Математическое моделирование - примерная модель объектов, явлений и процессов, показанной математическими символами и обозначениями, обусловленной на точном логическом мышлении. Сами математики утверждают5 то, что при таком методе исследований полное отображение природных явлений и процессов не возможно, но достичь определенной ясности возможно.
Таким образом, исходя из вышеизложенных понятий можно сказать, что Математическое моделирование в экологии - это примерная модель экосистем, явлений и процессов, происходящих в них между организмами и их окружающей природной средой, показанной математическими символами, знаками и обозначениями, обусловленной на точном логическом мышлении.
Математические символы, знаки и обозначения удобный метод сжатого системного описания сложных природных явлений и процессов, а уравнения позволяют формально выразить возможный способ взаимодействия организмов между собой и их окружающей средой. Учитывая такую последовательность или иерархичность работ в математическом моделировании Ю.Одум (1971) назвал главу своей книги «системной экологией». Исходя из этого, многие ученые современности до сих пор в экологии называют их «Системной экологией». Систематизация научных исследований присуще всем отраслям науки и образования, без исключения (А.Нигматов, 2010). Поэтому говорить о математическом моделировании в экологии как «системной экологии» было бы не целесообразным.
Суть математического моделирования заключается в том, что с помощью математических символов строится абстрактное упрощенное подобие изучаемой экосистемы. Затем, меняя значение отдельных параметров, исследуют, как поведет себя данная искусственная экосистема, т.е. как изменится конечный результат. Модели строят на основании сведений, накопленных в стационарных, маршрутно-полевых и лабораторных исследованиях. Чтобы построить математическую модель, которая была бы адекватной, т.е. правильно отражала реальные экологические процессы, требуются существенные эмпирические знания. Отразить все
1 E. P.Odum.Fundamentals of ecology. Philad-london-Toronto,1971.
2 Математика. Популярный энциклопедический иллюстрированный словарь. Европедия.- М.: «Олма-пресс», 2004. - С.499.
3 Математика. Узбекистан миллий энциклопедияси. 5-ж.-
Т.: УМЭМИУ, 2003. 513-б.
4 Моделирование. Модель. Н.Ф.Реймерс. Природопользование. Словарь-справочник.-М.: «Мысль», 1990.- С. 288.
5 Математик модель. Узбекистон миллий энциклопедияси. 5-ж.-Т.: УМЭМИУ, 2003. 510-б.