RU2666285C1 - Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах - Google Patents

Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах Download PDF

Info

Publication number
RU2666285C1
RU2666285C1 RU2017135775A RU2017135775A RU2666285C1 RU 2666285 C1 RU2666285 C1 RU 2666285C1 RU 2017135775 A RU2017135775 A RU 2017135775A RU 2017135775 A RU2017135775 A RU 2017135775A RU 2666285 C1 RU2666285 C1 RU 2666285C1
Authority
RU
Russia
Prior art keywords
modular
numbers
modulo
mantissa
processor
Prior art date
Application number
RU2017135775A
Other languages
English (en)
Inventor
Владимир Сергеевич Князьков
Анастасия Сергеевна Коржавина
Original Assignee
Федеральное государственное бюджетное образовательное учреждение высшего образования "Вятский государственный университет" (ВятГУ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Федеральное государственное бюджетное образовательное учреждение высшего образования "Вятский государственный университет" (ВятГУ) filed Critical Федеральное государственное бюджетное образовательное учреждение высшего образования "Вятский государственный университет" (ВятГУ)
Priority to RU2017135775A priority Critical patent/RU2666285C1/ru
Application granted granted Critical
Publication of RU2666285C1 publication Critical patent/RU2666285C1/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/4833Logarithmic number system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/722Modular multiplication

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Nonlinear Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)

Abstract

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

Description

Изобретение относится к вычислительной технике и предназначено для выполнения операции умножения чисел, представленных в модулярно-логарифмическом формате с плавающей точкой на гибридных многоядерных процессорах.
Известен способ организации выполнения операции умножения двух чисел в модулярно-позиционном формате представления с плавающей точкой на универсальных многоядерных процессорах (A.C. RU №2509345, БИ №7, 10.03.2014), в котором операция умножения t-разрядных позиционных мантисс сомножителей заменяется n параллельно выполняемыми операциями умножения q-разрядных знакопозиций чисел в системе счисления в остаточных классах. Недостаток данного способа состоит в том, что не определено, каким образом выявляются ситуации переполнения диапазона представления модулярных мантисс при выполнении операции умножения и выполняется процедура масштабирования мантисс, таким образом, способ (A.C. RU №2509345, БИ №7, 10.03.2014) может быть использован для выполнения операции умножения не для всех операндов из заявленного диапазона представления.
Наиболее близким к заявленному способу является способ организации выполнения операции умножения двух чисел в модулярно-позиционном формате (Исупов К.С., Мальцев А.Н. Способ представления чисел с плавающей точкой большой разрядности, ориентированный на параллельную обработку //Вычислительные методы и программирование: новые вычислительные технологии. 2014. Т. 15, №4. С. 631-643), в котором масштабирование мантиссы осуществляется методом, использующим таблицы поправочных коэффициентов с применением интервально-позиционных характеристик. Недостаток данного способа состоит в том, что необходимо хранить таблицы поправочных коэффициентов большого размера, а также использовать вычислительные устройства с плавающей точкой для вычисления интервальной позиционной характеристики.
Техническим результатом применения способа организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах является оптимизация выполнения операции умножения в
Figure 00000001
раз, где q - разрядность знакопозиций чисел в системе счисления в остаточных классах, за счет использования только целочисленных операций при умножении, проверке выхода за границы диапазона, масштабировании модулярных мантисс степенью двойки, при этом не требуется использования операций с плавающей точкой и подстановочных таблиц. Минимальное время выполнения операции умножения предложенным способом равно минимальному времени выполнения операции умножения способом (A.C. RU №2509345, БИ №7, 10.03.2014), при этом способ может быть применен для умножения любых операндов из заявленного диапазона представления, в чем заключается универсальность предлагаемого способа.
Описание способа организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах: реализация способа осуществляется посредством подачи набора электрических, нейронных либо других сигналов на устройства управления каждого вычислительного ядра многоядерного гибридного процессора, которые, в соответствии с данными сигналами, формируют управляющие команды для операционных устройств соответствующих вычислительных ядер.
В позиционных двоичных форматах с плавающей точкой стандарта IEEE-754 любое вещественное число представляется трехэлементным набором:
Figure 00000002
где М - рациональная мантисса, е - порядок числа, emin=2-2ν-1 и em a x=2ν-1-1, S-знак числа.
Величина чисел, записанных в таком формате, выражается формулой -1S⋅М⋅2е. Машинными представлениями чисел вида (1) являются (ν+t+1)-разрядные двоичные векторы (Srν-1…r2r1dt…d2d1), где разряды с d1 по dt отводятся под представление рациональных двоичных мантисс М=dtdt-1…d2d1, разряды с r1 по rν отводятся под представление целочисленных двоичных порядков е, записанных в форме с избытком Е=rνrν-1…r2r1=е+em a x, разряд S выражает знак числа.
Определим целочисленную мантиссу М'=dtdt-1…d2d1 как t-разрядное неотрицательное целое двоичное число, такое, что М=М'⋅21-t. Определим перемещенный порядок λ как целое двоичное число со знаком, такое, что λ=е-t+1, где е - ν-разрядный порядок числа, представленного в двоичном формате (1).
Зададим n целочисленных положительных q-разрядных оснований системы остаточных классов p12, …, pn, таких, что ∀i1, i2∈{1, 2, …, n), i1≠i2:
Figure 00000003
, q≤k, где
Figure 00000004
- наибольший общий делитель для
Figure 00000005
и
Figure 00000006
, k - размер разрядной сетки процессора.
Целочисленную мантиссу М'=dtdt-1…d2d1 преобразуем в систему остаточных классов с заданными основаниями р1, p2, …, pn, получая тем самым модулярную мантиссу
Figure 00000007
:
Figure 00000008
,
где mi∈[0, рi-1], i=1, 2, …, n - q-разрядные цифры (модулярные разряды) модулярной мантиссы
Figure 00000009
, q - разрядность оснований p1, p2, …, pn,
Figure 00000010
- операция получения остатка от деления М' на i-ое основание pi.
Определим ранг модулярной мантиссы как значение R, такое, что выполняется условие:
Figure 00000011
,
где
Figure 00000012
- мультипликативная инверсия Рi по модулю рi∈[1, n], n - количество модулей.
R∈[0,n-1] и вычисляется по формуле:
Figure 00000013
,
где
Figure 00000014
- наибольшее целое, не превышающее
Figure 00000015
При условии, что 2q-1<pi<2q, где q - разрядность оснований р1, р2, …, рn, величина
Figure 00000016
может быть вычислена по формуле
Figure 00000017
, где wi - s-разрядные весовые коэффициенты. Тогда величина ранга может быть вычислена по формуле:
Figure 00000018
.
Определим верхнюю и нижнюю границы величины ранга модулярного числа как
Figure 00000019
,
Figure 00000020
,
где
Figure 00000021
,
Figure 00000022
, при условии, что 2q-1i<2q,
Figure 00000023
- наибольшее целое, не превышающее
Figure 00000024
, s - разрядность коэффициентов wi.
Согласно теоретико-числовой теореме Эйлера мультипликативную инверсию
Figure 00000025
, соответствующую сравнению
Figure 00000026
, можно вычислить следующим образом
Figure 00000027
,
где ϕ(pi) - функция Эйлера, равная количеству целых чисел в диапазоне [1, рi], взаимно простых с рi.
Пример. Вычислим значения мультипликативных инверсий Pi по модулям рi для системы с основаниями: р1=11, р2=13, р3=15:
Figure 00000028
; ϕ(11)=10;
Figure 00000029
;
Figure 00000030
; ϕ(13)=12;
Figure 00000031
;
Figure 00000032
; ϕ(15)=12;
Figure 00000033
Определим логарифмическую характеристику числа как значение двоичного логарифма от этого числа. Тогда логарифмическая характеристика модуля числа, представленного в формате [М, е, S], вычисляется следующим образом:
log2(М'⋅21-t⋅2е)=log2(М')+е-t+1=log2(М')+λ.
Определим интервальную логарифмическую характеристику мантиссы числа как целочисленный интервал [Lmin, Lm а х], нижняя и верхняя границы Lmin, Lm а х которого представлены r-разрядными двоичными числами без знака и вычисляются следующим образом:
Lmin=[log2(М')⋅2r-h-1],
Lm а х=Lmin+1
где
Figure 00000034
,
Figure 00000035
- наибольшее целое, не превышающее
Figure 00000036
, [log2(М')⋅2r-h-1] - наибольшее целое, не превышающее log2(М')⋅2r-h-1.
Диапазон представления нижней и верхней границ Lmin, Lm а х интервальной логарифмической характеристики:
Figure 00000037
;
Figure 00000038
,
где
Figure 00000039
- значение нижней границы интервальной логарифмической характеристики диапазона представления модулярных мантисс
Figure 00000040
,
Figure 00000041
- наибольшее целое, не превышающее
Figure 00000042
.
Таким образом, число с плавающей точкой вида (1) можно преобразовать к следующему модулярно-логарифмическому формату:
Figure 00000043
где 〈m1, m2, …, mn〉 - набор знакопозиций (модулярных разрядов) модулярной мантиссы
Figure 00000009
, λ- позиционный перемещенный порядок, представляющий собой целое двоичное число со знаком, Lmin, Lm a x - границы интервальной логарифмической характеристики мантиссы числа, представляющие собой целые двоичные числа без знака, σ - знак числа, причем если σ=-1, то число отрицательное, σ=1 - положительное, σ=0 - машинный ноль.
Диапазон допустимых значений модулярных мантисс
Figure 00000044
в системе остаточных классов с основаниями p1, p2, … , рn определяется интервалом
Figure 00000045
; таким образом, t-разрядная позиционная мантисса М=dtdt-1…d2d1 может быть представлена в системе остаточных классов набором из n взаимно независимых q-разрядных знакопозиций 〈m1, m2, …, mn〉, причем q≈t/n (при условии, что все основания р1, p2, …, pn q-разрядные).
Примеры преобразования позиционных чисел с плавающей точкой в модулярно-логарифмический формат: пусть числа представлены в 10-разрядном двоичном формате вида (1), в котором под смещенный порядок Е, отводится четыре бита (максимальный порядок еm a x=24-1-1=7, соответственно е=Е-7), под дробную часть мантиссы - пять бит (т.е. t=6, причем целая часть d6 рациональной мантиссы М в явном виде не записана) и под знак числа - один бит.Пусть для представления модулярных мантисс в модулярно-логарифмическом формате [〈m1, m2, …, mn〉, λ, Lmin, Lm a x, σ] используется три основания: р1=11, р2=13, р3=15. Диапазон представления чисел Р=11⋅13⋅15=2145. Разрядность оснований q=4, разрядность интервальной логарифмической характеристики r=5.
Пример 1: необходимо перевести число X=3.312510=[1.65625, 1, 0]=-10⋅1.65625⋅21, представленное в двоичном формате [М, е, S], в модулярно-логарифмический формат [〈m1, m2, …, mn〉, Lmin, Lm a x, λ, σ].
С учетом принятых характеристик двоичного формата [М, е, S], число X будет записано в памяти ЭВМ в виде двоичного вектора 〈0100010101〉. Для его преобразования в модулярно-логарифмический формат (2) необходимо выполнить следующие действия:
1. Выделить составные части числа X: знак числа S=0, дробная часть рациональной мантиссы d5…d2d1=101012, смещенный (избыточный) порядок Е=10002=8.
2. Восстановить целую часть d6 мантиссы М=d6d5…d2d1:d6=1, т.к. Е>0, следовательно, М=1.101012.
3. Определить порядок е: е=Е-еm a x=8-7=1, т.к. Е>0.
4. Определить знак σ, перемещенный позиционный порядок λ и целочисленную мантиссу М': σ=1, λ=е-t+1=1-6+1=-4, М'=d6d5…d2d1=1101012=53.
5. Найти модулярную мантиссу
Figure 00000046
:
Figure 00000047
.
6. Вычислить интервально-логарифмическую характеристику мантиссы Lmin, Lmах: Lmin=[log2(53)⋅25-3-1]=11, Lm a x=11+1=12.
В результате получается число X, представленное в модулярно-логарифмическом формате с плавающей точкой: X=[〈9, 1, 8〉, 11, 12, -4, 1].
Пример 2: необходимо перевести число X=0.0278320312510=[1.78125, -5, 1]=-11⋅1.78125⋅2-5 из двоичного формата [М, е, S] в модулярно-логарифмический формат [〈m1, m2, …, mn〉, Lmin, Lm a x, λ, σ].
С учетом принятых характеристик двоичного формата [М, е, S], число X будет записано в памяти ЭВМ в виде двоичного вектора 〈1000111001〉. Для его преобразования в модулярно-логарифмический формат (2) необходимо выполнить следующие действия:
1. Выделить составные части числа X: знак числа S=1, дробная часть d5…d2d1=110002, смещенный порядок Е=00012=1.
2. Восстановить целую часть d6 мантиссы М=d6d5…d2d1:d6=1, т.к. Е>0, следовательно, М=1.110012.
3. Определить порядок е. е=еmin=1-7=-6, т.к. Е=0.
4. Определить знак σ, перемещенный порядок λ и целочисленную мантиссу М': σ=-1, λ=e-t+l=-6-6+1=-11, М'=d6d5…d2d1=1110012=57.
5. Найти модулярную мантиссу
Figure 00000048
:
Figure 00000049
6. Вычислить интервально-логарифмическую характеристику мантиссы Lmin, Lm a x: Lmin=log2(57)⋅25-3-1]=11, Lm a x=11+1=12.
В результате получается число X, представленное в модулярно-логарифмическом формате с плавающей точкой: X=[〈2, 5, 12〉, 11, 12, -11, -1].
Алгоритм 1. Вычисление ранга числа, представленного в модулярно-логарифмическом формате.
Пусть
Figure 00000050
- число, представленное в модулярно-логарифмическом формате с плавающей точкой, где
Figure 00000051
- модулярная мантисса числа А. Для того чтобы найти ранг R модулярной мантиссы
Figure 00000052
, необходимо:
1. Вычислить значение минимальной величины ранга Rmin модулярной мантиссы
Figure 00000052
:
Figure 00000053
, где
Figure 00000054
,
Figure 00000055
, мультипликативная инверсия Рi по модулю рi,
Figure 00000056
,
Figure 00000057
- наибольшее целое, не превышающее
Figure 00000058
,
Figure 00000059
- наибольшее целое, не превышающее
Figure 00000060
, s - разрядность
Figure 00000061
, при условии, что 2q-1<рi<2q, s>1+log2n.
2. Вычислить значение максимальной величины ранга Rm a x модулярной мантиссы
Figure 00000062
:
Figure 00000063
где
Figure 00000064
,
Figure 00000065
- мультипликативная инверсия Рi по модулю рi,
Figure 00000066
,
Figure 00000067
- наибольшее целое, не превышающее
Figure 00000068
,
Figure 00000069
- наибольшее целое, не превышающее
Figure 00000070
, s - разрядность
Figure 00000071
, при условии, что 2q-1<рi<2q, s>1+log2n.
3. Если Rmin=Rm a x, то R=Rmin, иначе выполнить сравнение: если
Figure 00000072
, то есть значение мантиссы меньше половины максимально возможного значения, то R=Rm a x, если
Figure 00000073
, то есть значение мантиссы больше или равно половине максимально возможного значения, то R=Rmin, где LР/2=LР-2r-h-1,
Figure 00000074
,
Figure 00000075
, r - разрядность интервальной логарифмической характеристики числа
Figure 00000076
.
Пример: необходимо вычислить ранги чисел A=53 и B=57. Используется три основания: р1=11, р2=13, р3=15. Р=р1⋅р2⋅р3=2145 - произведение оснований (верхний предел допустимого диапазона представления модулярных мантисс).
Figure 00000077
,
Figure 00000078
,
Figure 00000079
,
Figure 00000080
,
Figure 00000081
,
Figure 00000082
. Разрядность оснований q=4. Разрядность коэффициентов wi:s=5.
Значения верхних и нижних границ
Figure 00000083
,
Figure 00000084
коэффициентов для значений модулей р1=11, р2=13, р3=15 равны соответственно
Figure 00000085
,
Figure 00000086
,
Figure 00000087
,
Figure 00000088
,
Figure 00000089
,
Figure 00000090
.
Значения мультипликативных инверсий
Figure 00000091
для модулей р1=11, р2=13, р3=15 равны соответственно
Figure 00000092
,
Figure 00000093
,
Figure 00000094
.
Вычислим значение ранга первого числа.
1. Вычислим значение минимальной величины ранга Rmin модулярной мантиссы:
Figure 00000095
2. Вычислим значение максимальной величины ранга Rm a x модулярной мантиссы:
Figure 00000096
3. Так как Rmin=Rm a x, то RA=Rmin=1. Вычислим значение ранга второго числа.
Вычислим значение ранга второго числа.
1. Вычислим значение минимальной величины ранга Rmin модулярной мантиссы:
Figure 00000097
2. Вычислим значение максимальной величины ранга Rm a x модулярной мантиссы:
Figure 00000098
3. Так как Rmin=Rm a x, то RB=Rmin=1.
Алгоритм 2. Деление модулярной мантиссы числа, представленного в модулярно-логарифмическом формате, на число 2x (масштабирование степенью двойки).
Пусть
Figure 00000099
- число, представленное в модулярно-логарифмическом формате с плавающей точкой, где
Figure 00000100
- модулярная мантисса числа А. Для того чтобы найти результат деления модулярного числа
Figure 00000101
на позиционное число 2x, необходимо:
1. Вычислить α. Если x>q-1, то вычислить значение
Figure 00000102
, где
Figure 00000103
- наименьшее целое, не превышающее
Figure 00000104
, α=|х|q-1; если x≤q-1, то α=х.
2. Вычислить значение ранга R для модулярного числа в соответствии с алгоритмом 1.
3. Вычислить остаток от деления модулярного числа на рn+1=2q-1:
Figure 00000105
где
Figure 00000106
,
Figure 00000107
,
Figure 00000108
- мультипликативная инверсия Рi по модулю рi.
Если 0<α<q-1, то
Figure 00000109
, если α=0, то уменьшить j на 1.
4. Вычислить значение
Figure 00000110
, для чего вычесть из каждого значения знакопозиций модулярного числа
Figure 00000111
значение остатка от деления
Figure 00000112
на 2α
Figure 00000113
Figure 00000114
.
5. Вычислить значение
Figure 00000115
, для чего умножить каждое значение знакопозиций модулярного числа
Figure 00000116
на мультипликативные инверсии 2α по соответствующим модулям.
Figure 00000117
,
где
Figure 00000118
- мультипликативная инверсия числа 2α по модулю рi - результат сравнения
Figure 00000119
.
6. Если
Figure 00000120
, то прибавить к
Figure 00000121
величину
Figure 00000122
.
7. Шаги 2-6 выполнить j раз для α=q-1.
Пример. Необходимо разделить числа А=53 и В=57 на число 21. Используется три основания: р1=11, р2=13, р3=15. Р=р1⋅р2⋅р3=2145 - произведение оснований (верхний предел допустимого диапазона представления модулярных мантисс),
Figure 00000123
,
Figure 00000124
. Разрядность оснований q=4.
Значения мультипликативных инверсий
Figure 00000125
для модулей р1=11, р2=13, р3=15 равны соответственно
Figure 00000126
,
Figure 00000127
,
Figure 00000128
.
Значения мультипликативных инверсий
Figure 00000129
по модулям р1=11, р2=13, р3=15 и для значений α=1, 2, 3 равны соответственно
Figure 00000130
;
Figure 00000131
;
Figure 00000132
Figure 00000133
Figure 00000134
;
Figure 00000135
;
Figure 00000136
;
Figure 00000137
;
Figure 00000138
;
Figure 00000139
.
Значения остатков от деления
Figure 00000140
и
Figure 00000141
на 2α для значений модулей р1=11, р2=13, р3=15 и для значений α=1, 2, 3 равны соответственно
Figure 00000142
;
Figure 00000143
;
Figure 00000144
;
Figure 00000145
;
Figure 00000146
;
Figure 00000147
;
Figure 00000148
;
Figure 00000149
;
Figure 00000150
;
Figure 00000151
;
Figure 00000152
;
Figure 00000153
;
Вычисляем значение
Figure 00000154
.
1. α=x=1, так как x=1<q=4-1.
2. Вычисляем ранг числа A=53 соответствии с алгоритмом 1. RA=1.
3. Вычисляем остаток от деления модулярного числа на 24-1=8:
Figure 00000155
.
Вычисляем остаток от деления модулярного числа на р4=21
Figure 00000156
.
4. Вычитаем из модулярного числа
Figure 00000157
модулярное значение остатка от деления на 2
Figure 00000158
:
Figure 00000159
5. Умножаем на мультипликативные инверсии двойки по соответствующим модулям:
Figure 00000160
6. Прибавляем к
Figure 00000161
величину 1=(1, 1, 1), так как
Figure 00000162
:
Figure 00000163
Вычисляем значение
Figure 00000164
1. α=х=1, так как х=1<q=4-1.
2. Вычисляем ранг числа В=57 соответствии с алгоритмом 1. RB=1.
3. Вычисляем остаток от деления модулярного числа на 24-1=8:
Figure 00000165
Вычисляем остаток от деления модулярного числа на р4=21
Figure 00000166
4. Вычитаем из модулярного числа
Figure 00000167
модулярное значение остатка от деления на 2
Figure 00000168
:
Figure 00000169
5. Умножаем на мультипликативные инверсии двойки по соответствующим модулям:
Figure 00000170
.
6. Прибавляем к
Figure 00000171
величину 1=(1, 1, 1), так как
Figure 00000172
:
Figure 00000173
Алгоритм 3. Выполнение операции умножения с плавающей точкой в модулярно-логарифмическом формате. Для того чтобы найти произведение
Figure 00000174
чисел
Figure 00000175
и
Figure 00000176
, представленных в модулярно-логарифмическом формате с плавающей точкой, необходимо:
1. Проверить результат на равенство 0. Если σСА⋅σВ=0, что означает равенство нулю одного из операндов или обоих операндов сразу, то
Figure 00000177
.
Если оба операнда ненулевые, то перейти к следующему шагу.
2. Присвоить знак произведению σСА⋅σВ. Определить верхнюю и нижнюю границы интервальной логарифмической характеристики результата
Figure 00000178
,
Figure 00000179
. Определить порядок результата λСАВ.
3. Проверить выход результата за границы диапазона представления чисел. Если
Figure 00000180
, то
Figure 00000181
. Если
Figure 00000182
,то
Figure 00000183
. Если
Figure 00000184
и
Figure 00000185
, то перейти к следующему шагу.
4. Проверить выход мантиссы результата за границы диапазона представления модулярных мантисс и выполнить умножение модулярных мантисс.
4.1. Если
Figure 00000186
, то выполнить коррекцию операндов следующим образом:
4.1.1. Вычислить значения поправочных коэффициентов L1 и L2:
Figure 00000187
,
Figure 00000188
, где
Figure 00000189
- наибольшее целое, не превышающее
Figure 00000190
,
Figure 00000191
- наибольшее целое, не превышающее
Figure 00000192
Если |L1|≤|L2| и L2≥0, то zА=L1, zВ=0.
Если |L1|≤|L2| и L2<0, то zА=0, zВ=L1.
Если |L1|>|L2|и |L1+L2|2=1, то
Figure 00000193
,
Figure 00000194
.
Если |L1|>|L2|и |L1+L2|2=0, то.
Figure 00000195
,
Figure 00000196
.
4.1.2. Вычислить значения скорректированных мантисс
Figure 00000197
и
Figure 00000198
операндов и скорректировать значение верхней и нижней границы интервальной логарифмической характеристики результата.
Если
Figure 00000199
и
Figure 00000200
I, то
Figure 00000201
,
Figure 00000202
.
Если
Figure 00000203
и
Figure 00000204
, то
Figure 00000205
,
Figure 00000206
, если
Figure 00000207
, то
Figure 00000208
.
Если
Figure 00000209
и
Figure 00000210
, то
Figure 00000211
,
Figure 00000212
, если
Figure 00000213
, то
Figure 00000214
.
Если
Figure 00000215
и
Figure 00000216
, то
Figure 00000217
,
Figure 00000218
если
Figure 00000219
, то
Figure 00000220
.
Если
Figure 00000221
и
Figure 00000222
, то
Figure 00000223
,
Figure 00000224
если
Figure 00000225
, то
Figure 00000226
.
Если
Figure 00000227
и
Figure 00000228
, то
Figure 00000229
,
Figure 00000230
, если
Figure 00000231
, то
Figure 00000232
, иначе
Figure 00000233
.
Если
Figure 00000234
и
Figure 00000235
, то
Figure 00000236
,
Figure 00000237
, если
Figure 00000238
то
Figure 00000239
если
Figure 00000240
, то
Figure 00000241
.
Если
Figure 00000242
и
Figure 00000243
, то
Figure 00000244
,
Figure 00000245
, если
Figure 00000246
, то
Figure 00000247
, если
Figure 00000248
, то
Figure 00000249
.
Если
Figure 00000250
и
Figure 00000251
, то
Figure 00000244
,
Figure 00000252
, если
Figure 00000253
, то
Figure 00000254
, иначе
Figure 00000255
.
4.1.3. Скорректировать значение порядка результата λCC+L1.
4.1.4. Скорректировать значение верхней и нижней границы интервальной логарифмической характеристики результата если
Figure 00000256
, то
Figure 00000257
, иначе
Figure 00000258
;
Figure 00000259
4.2. Выполнить умножение модулярных мантисс
Figure 00000260
путем нахождения значений
Figure 00000261
, где
Figure 00000262
- наибольшее целое, не превышающее
Figure 00000263
4.3. Если
Figure 00000264
и
Figure 00000265
, то выполнить коррекцию результата следующим образом.
4.3.1. Вычислить значение поправочного коэффициента
Figure 00000266
.
4.3.2. Вычислить значение скорректированной мантиссы
Figure 00000267
результата:
Figure 00000268
.
4.3.3. Вычислить значение порядка результата λCC-zC.
4.3.4. Выполнить коррекцию значений верхней и нижней границы интервальной логарифмической характеристики результата
Figure 00000269
,
Figure 00000270
.
4.4. Если
Figure 00000271
и
Figure 00000272
, то выполнить коррекцию результата следующим образом:
4.4.1. Вычислить значение поправочного коэффициента
Figure 00000273
.
4.4.2. Вычислить значение скорректированной мантиссы
Figure 00000274
результата и скорректировать значение верхней и нижней границы интервальной логарифмической характеристики результата.
Если
Figure 00000275
, то
Figure 00000276
.
Если
Figure 00000277
, то
Figure 00000278
, если
Figure 00000279
, то
Figure 00000280
.
Если
Figure 00000281
то
Figure 00000282
если
Figure 00000283
, то
Figure 00000284
Figure 00000285
.
4.4.3. Вычислить значение порядка результата λСС+zС.
4.4.4. Выполнить коррекцию значений верхней и нижней границы интервальной логарифмической характеристики результата
Figure 00000286
;
Figure 00000287
.
В результате выполнения данных операций получается произведение
Figure 00000288
чисел
Figure 00000289
и
Figure 00000290
, представленное в модулярно-логарифмическом формате с плавающей точкой.
Пусть
Figure 00000291
Figure 00000292
- числа, представленные в модулярно-логарифмическом формате с плавающей точкой, где
Figure 00000293
и
Figure 00000294
Figure 00000295
- модулярные мантиссы чисел А и В соответственно. Тогда способ умножения С=А⋅В чисел А и В, представленных в модулярно-логарифмическом формате с плавающей точкой (2), на гибридном многоядерном процессоре, содержащем n q-разрядных модулярных вычислительных ядер, одно k-разрядное и два r-разрядных универсальных целочисленных ядра, два специализированных s-разрядных векторных ядра, одно специализированное q-разрядное векторное ядро, одно специализированное управляющее ядро, определяется следующим образом.
1. Множитель
Figure 00000296
и множимое
Figure 00000297
, представленные в модулярно-логарифмическом формате с плавающей точкой, загружают в гибридный многоядерный процессор, содержащий n q-разрядных модулярных вычислительных ядер, одно k-разрядное и два r-разрядных универсальных целочисленных ядра, два специализированных s-разрядных векторных ядра, одно специализированное q-разрядное векторное ядро, одно специализированное управляющее ядро, следующим образом:
- в первое модулярное ядро гибридного многоядерного процессора загружают разрядные двоичные представления первых знакопозиций
Figure 00000298
и
Figure 00000299
модулярных мантисс
Figure 00000300
и
Figure 00000301
чисел А и В соответственно, а также основание системы остаточных классов р1 и значение мультипликативной инверсии Р1 по модулю р1
Figure 00000302
;
- параллельно с этим во второе модулярное ядро гибридного многоядерного процессора загружают q-разрядные двоичные представления вторых знакопозиций
Figure 00000303
и
Figure 00000304
модулярных мантисс
Figure 00000305
и
Figure 00000306
чисел А и В соответственно, а также основание системы остаточных классов р2 и значение мультипликативной инверсии Р2 по модулю р2
Figure 00000307
;
- и т.д.;
- параллельно с этим в n-ое модулярное ядро гибридного многоядерного процессора загружают q-разрядные двоичные представления n-ых знакопозиций
Figure 00000308
и
Figure 00000309
модулярных мантисс
Figure 00000310
и
Figure 00000311
чисел А и В соответственно, а также основание системы остаточных классов рn и значение мультипликативной инверсии Рn по модулю рn
Figure 00000312
;
- параллельно с этим в первое универсальное вычислительное ядро загружают k-разрядные двоичные порядки λА и λВ, а также знаки σА и σВ чисел А и В соответственно;
- параллельно с этим во второе универсальное вычислительное ядро загружают r-разрядные значения нижних границ интервальных логарифмических характеристик
Figure 00000313
и
Figure 00000314
чисел А и В соответственно;
- параллельно с этим в третье универсальное вычислительное ядро загружают r-разрядные значения верхних границ интервальных логарифмических характеристик
Figure 00000315
и
Figure 00000316
чисел А я В соответственно, а также r-разрядное значение нижней границы интервальной логарифмической характеристики диапазона представления модулярных мантисс Lр;
- параллельно с этим в первое векторное вычислительное ядро загружают вектор s-разрядных констант коэффициентов
Figure 00000317
;
- параллельно с этим во второе векторное вычислительное ядро загружают вектор s-разрядных констант коэффициентов
Figure 00000318
;
- параллельно с этим в третье векторное вычислительное ядро загружают вектор разрядных констант остатков от деления
Figure 00000319
;
- параллельно с этим в управляющее ядро загружают k-разрядные двоичные порядки λА и λВ, r-разрядные значения нижних границ интервальных логарифмических характеристик
Figure 00000320
и
Figure 00000321
и r-разрядные значения верхних границ интервальных логарифмических характеристик
Figure 00000322
и
Figure 00000323
чисел А и В соответственно, а также r-разрядное значение нижней границы интервальной логарифмической характеристики диапазона представления модулярных мантисс Lр.
2. После того, как множитель
Figure 00000324
и множимое
Figure 00000325
представленные в модулярно-логарифмическом формате с плавающей точкой, загружены в гибридный процессор, содержащий n q-разрядных модулярных вычислительных ядер, одно k-разрядное и два r-разрядных универсальных целочисленных ядра, два специализированных s-разрядных векторных ядра, одно специализированное q-разрядное векторное ядро, одно специализированное управляющее ядро, операция их умножения выполняется следующим образом:
- в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000326
по модулю р1 q-разрядных двоичных представлений знакопозиций
Figure 00000327
и
Figure 00000328
модулярных мантисс
Figure 00000329
и
Figure 00000330
чисел А и В соответственно, путем нахождения значения
Figure 00000331
, где
Figure 00000332
- наибольшее целое, не превышающее
Figure 00000333
; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
-параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000334
по модулю р2 q-разрядных двоичных представлений знакопозиций
Figure 00000335
и
Figure 00000336
модулярных мантисс
Figure 00000337
и
Figure 00000338
чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- и т.д.
- параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000339
по модулю рn q-разрядных двоичных представлений знакопозиций
Figure 00000340
и
Figure 00000341
модулярных мантисс
Figure 00000342
и
Figure 00000343
чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим в первом универсальном вычислительном ядре процессора выполняется сложение λCАВ двоичных порядков λА и λВ, а также умножение σСА⋅σВ знаков σА и σВ чисел А и В соответственно;
- параллельно с этим во втором универсальном вычислительном ядре процессора выполняется сложение
Figure 00000344
двоичных значений нижних границ интервальных логарифмических характеристик
Figure 00000345
и
Figure 00000346
чисел А и В соответственно;
- параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется сложение
Figure 00000347
двоичных значений верхних границ интервальных логарифмических характеристик
Figure 00000348
и
Figure 00000349
чисел А и В соответственно;
- параллельно с этим в управляющем ядре вычисляются следующие значения поправочных коэффициентов:
Figure 00000350
,
Figure 00000351
,
Figure 00000352
,
Figure 00000353
,
Figure 00000354
, zА=L1+1, zВ=0, если |L1|≤|L2| и L2≥0, zА=0, zВ=L1+1, если |L1|≤|L2| и L2<0,
Figure 00000355
,
Figure 00000356
, если |L1|>|L2| и |L1+L2|2=1,
Figure 00000357
,
Figure 00000358
, если |L1|>|L2| и |L1+L2|2=0.
3. После того, как получено промежуточное значение произведения
Figure 00000359
чисел
Figure 00000360
и
Figure 00000361
, выполняется коррекция результата следующим образом:
3.1. Если знак
Figure 00000362
промежуточного результата
Figure 00000363
произведения чисел А и Вне равен 0, и порядок
Figure 00000364
промежуточного результата
Figure 00000365
произведения чисел А и В принадлежит интервалу [2-2k-1; 2k-1-2], и значение
Figure 00000366
верхней границы интервальной логарифмической характеристики промежуточного результата
Figure 00000367
произведения чисел А и В меньше значения нижней границы интервальной логарифмической характеристики максимально возможного значения мантиссы, то есть
Figure 00000368
,
Figure 00000369
,
Figure 00000370
, то коррекции результата не требуется.
3.2. Если знак
Figure 00000371
промежуточного результата
Figure 00000372
произведения чисел А и В равен 0, то есть
Figure 00000373
, то:
- в первом универсальном вычислительном ядре процессора выполняется обнуление
Figure 00000374
двоичного порядка
Figure 00000375
промежуточного результата
Figure 00000376
произведения чисел А и В;
- параллельно с этим во втором универсальном вычислительном ядре процессора выполняется обнуление
Figure 00000377
двоичного значения нижней границы интервальной логарифмической характеристики
Figure 00000378
промежуточного результата
Figure 00000376
произведения чисел А и В;
- параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется обнуление
Figure 00000379
двоичного значения верхней границы интервальной логарифмической характеристики
Figure 00000380
промежуточного результата
Figure 00000376
произведения чисел А и В.
3.3. Если знак
Figure 00000381
промежуточного результата
Figure 00000376
произведения чисел А и В не равен 0 и значение
Figure 00000382
, то есть модуль промежуточного результата
Figure 00000376
произведения чисел А и В выходит за границы минимально возможного представления, то:
- в первом универсальном вычислительном ядре процессора выполняется обнуление
Figure 00000383
двоичного порядка
Figure 00000384
и
Figure 00000385
знака
Figure 00000386
промежуточного результата
Figure 00000387
произведения чисел А и В;
- параллельно с этим во втором универсальном вычислительном ядре процессора выполняется обнуление
Figure 00000388
двоичного значения нижней границы интервальной логарифмической характеристики
Figure 00000389
промежуточного результата
Figure 00000376
произведения чисел А и В;
- параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется обнуление
Figure 00000390
двоичного значения верхней границы интервальной логарифмической характеристики
Figure 00000391
промежуточного результата
Figure 00000392
произведения чисел А и В;
- параллельно с этим в первом модулярном вычислительном ядре процессора выполняется обнуление
Figure 00000393
значения первой знакопозиций
Figure 00000394
промежуточного
Figure 00000392
результата произведения чисел А и В;
-параллельно с этим во втором модулярном вычислительном ядре процессора выполняется обнуление
Figure 00000395
значения второй знакопозиций
Figure 00000396
промежуточного результата
Figure 00000392
произведения чисел А и В;
- и т.д.
- параллельно с этим в n-ом модулярном вычислительном ядре процессора выполняется обнуление
Figure 00000397
значения n-ой знакопозиций
Figure 00000398
промежуточного результата
Figure 00000399
произведения чисел А и В.
3.4. Если знак
Figure 00000386
промежуточного результата
Figure 00000399
произведения чисел А и В не равен 0 и значение
Figure 00000400
, то есть модуль промежуточного результата
Figure 00000401
произведения чисел А и В выходит за границы максимального возможного представления, то:
- в первом универсальном вычислительном ядре процессора выполняется присвоение
Figure 00000402
двоичному порядку
Figure 00000403
промежуточного результата
Figure 00000401
произведения числе А и В;
- параллельно с этим во втором универсальном вычислительном ядре процессора выполняется обнуление
Figure 00000404
двоичного значения нижней границы интервальной логарифмической характеристики
Figure 00000405
промежуточного результата
Figure 00000406
произведения чисел А и В;
- параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется обнуление
Figure 00000407
двоичного значения верхней границы интервальной логарифмической характеристики
Figure 00000408
промежуточного результата
Figure 00000409
произведения чисел А и В;
- параллельно с этим в первом модулярном вычислительном ядре процессора выполняется обнуление
Figure 00000410
значения первой знакопозиции
Figure 00000411
промежуточного результата
Figure 00000412
произведения чисел А и В;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется обнуление
Figure 00000413
значения второй знакопозиции
Figure 00000414
промежуточного результата
Figure 00000412
произведения чисел А и В;
- и т.д.
- параллеьно с этим в n-ом модулярном вычислительном ядре процессора выполняется обнуление
Figure 00000415
значения n-ой знакопозиции
Figure 00000416
промежуточного результта
Figure 00000412
произведения чисел А и В.
3.5. Знак
Figure 00000417
промежутоного результата
Figure 00000418
произведения чисел А и В не равен 0, и порядок
Figure 00000419
промежуточного результата
Figure 00000406
умножения чисел А и В принадлежит интервалу
Figure 00000420
, где
Figure 00000421
- наибольшее целое, не превышающее
Figure 00000422
, и значение
Figure 00000423
верхней границы интервальной логарифмической характеристики промежуточного результата
Figure 00000424
произведения чисел А и В меньше значения нижней границы интервальной логарифмической характеристики максимально возможного значения мантиссы
Figure 00000425
, то управляющее ядро передает во все модулярные и все универсальные целочисленные ядра значения поправочных коэффициентов:
Figure 00000426
,
Figure 00000427
, где
Figure 00000428
- наибольшее целое, не превышающее
Figure 00000429
, после чего:
- в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000430
по модулю р1 q-разрядного двоичного представления знакопозиций
Figure 00000431
модулярной мантиссы
Figure 00000432
) промежуточного результата
Figure 00000433
произведения чисел А и В и значения
Figure 00000434
следующим образом: выполняется операция целочисленного умножения
Figure 00000435
по модулю р1 q-разрядного двоичного представления знакопозиций
Figure 00000431
модулярной мантиссы
Figure 00000436
промежуточного результата
Figure 00000437
произведения чисел А и В и значения
Figure 00000438
, полученного сдвигом числа 1 на
Figure 00000439
двоичных разрядов влево, путем нахождения значения
Figure 00000440
, где
Figure 00000441
- наибольшее целое, не превышающее
Figure 00000442
; затем, если
Figure 00000443
, то
Figure 00000444
раз выполняется операция целочисленного умножения
Figure 00000445
по модулю р1 q-разрядного двоичного представления знакопозиций
Figure 00000446
модулярной мантиссы
Figure 00000447
промежуточного результата
Figure 00000448
произведения чисел А и В и значения 2q-1, полученного сдвигом числа 1 на (q-1) двоичных разрядов влево, путем нахождения значения
Figure 00000449
, где
Figure 00000450
- наибольшее целое, не превышающее
Figure 00000451
; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора
выполняется операция целочисленного умножения
Figure 00000452
по модулю р2 q-разрядного двоичного представления знакопозиций
Figure 00000453
модулярной мантиссы
Figure 00000454
промежуточного результата
Figure 00000455
произведения чисел А и В и значения
Figure 00000456
следующим образом: выполняется операция целочисленного умножения
Figure 00000457
по модулю р2; затем, если
Figure 00000458
, то
Figure 00000459
раз выполняется операция целочисленного умножения
Figure 00000460
по модулю р2;
- и т.д.
- параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000461
по модулю рn q-разрядного двоичного представления знакопозиций
Figure 00000462
модулярной мантиссы
Figure 00000463
промежуточного результата
Figure 00000464
произведения чисел А и В и значения
Figure 00000465
следующим образом: выполняется операция целочисленного умножения
Figure 00000466
по модулю рn; затем, если
Figure 00000467
, то
Figure 00000468
раз выполняется операция целочисленного умножения
Figure 00000469
по модулю рn;
- параллельно с этим в первом универсальном вычислительном ядре процессора выполняется коррекция
Figure 00000470
двоичного порядка
Figure 00000471
промежуточного результата
Figure 00000472
произведения чисел А и В;
- параллельно с этим во втором универсальном вычислительном ядре процессора выполняется коррекция
Figure 00000473
двоичного значения нижней границы интервальной логарифмической характеристики
Figure 00000474
промежуточного результата
Figure 00000475
произведения чисел А и В;
- параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется коррекция
Figure 00000476
двоичного значения верхней границы интервальной логарифмической характеристики
Figure 00000477
промежуточного результата
Figure 00000478
произведения чисел А и В.
3.6. Если знак
Figure 00000479
промежуточного результата
Figure 00000480
произведения чисел А и В не равен 0, и порядок
Figure 00000481
промежуточного результата
Figure 00000482
произведения чисел А и В принадлежит интервалу
Figure 00000483
, где
Figure 00000484
- наибольшее целое, не превышающее
Figure 00000485
, и значение
Figure 00000486
верхней границы интервальной логарифмической характеристики промежуточного результата
Figure 00000487
произведения чисел А и В меньше значения нижней границы интервальной логарифмической характеристики максимально возможного значения мантиссы
Figure 00000488
, то управляющее ядро передает во все модулярные и все универсальные целочисленные ядра значение поправочного коэффициента
Figure 00000489
, после чего:
3.6.1. Выполняется загрузка мультипликативных инверсий
Figure 00000490
и 2q-1:
- в первое модулярное ядро загружают ^-разрядные двоичные значения
Figure 00000491
и
Figure 00000492
, мультипликативных инверсий
Figure 00000493
и 2q-1 по модулю р1;
- параллельно с этим во второе модулярное ядро загружают q-разрядные двоичные значения
Figure 00000494
и
Figure 00000495
мультипликативных инверсий
Figure 00000496
и 2q-1 по модулю р2;
- и т.д.;
- параллельно с этим в n-ое модулярное ядро загружают q-разрядные двоичные значения
Figure 00000497
и
Figure 00000498
мультипликативных инверсий
Figure 00000499
и 2q-1 по модулю рn;
- параллельно с этим в первом универсальном вычислительном ядре процессора выполняется коррекция
Figure 00000500
двоичного порядка
Figure 00000501
промежуточного результата
Figure 00000502
произведения чисел А и В;
- параллельно с этим в управляющем ядре вычисляется количество итераций j: j=0, если
Figure 00000503
,
Figure 00000504
, если
Figure 00000505
, где
Figure 00000506
- наибольшее целое, не превышающее
Figure 00000507
.
3.6.2. Если
Figure 00000508
, то действия 3.6.3-3.6.7 выполняются один раз для
Figure 00000509
, затем если количество итераций j≥1, то действия 3.6.3-3.6.7 выполняются j раз для α=q-1.
3.6.3. Вычисляются значения элементов вектора
Figure 00000510
:
- в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000511
по модулю р1 q-разрядного двоичного представления знакопозиций
Figure 00000512
модулярной мантиссы
Figure 00000513
промежуточного результата
Figure 00000514
произведения чисел А и В и значения мультипликативной инверсии Р1 по модулю р1
Figure 00000302
, путем нахождения значения
Figure 00000515
где
Figure 00000516
- наибольшее целое, не превышающее
Figure 00000517
; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000518
по модулю р2 q-разрядного двоичного представления знакопозиций
Figure 00000519
модулярной мантиссы
Figure 00000520
промежуточного результата
Figure 00000521
произведения чисел А и В и значения мультипликативной инверсии Р2 по модулю р2
Figure 00000307
;
- и т.д.
- параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000522
по модулю рn q-разрядного двоичного представления знакопозиций
Figure 00000523
модулярной мантиссы
Figure 00000524
промежуточного результата
Figure 00000525
произведения чисел А и В и значения мультипликативной инверсии Рn по модулю рn
Figure 00000312
.
3.6.4. После того, как получены значения элементов вектора
Figure 00000526
, данный вектор загружается в векторные ядра следующим образом:
- в первое векторное вычислительное ядро загружают вектор q-разрядных элементов
Figure 00000527
, q≤s;
- параллельно с этим во второе векторное вычислительное ядро загружают вектор q-разрядных элементов
Figure 00000528
, q≤s;
- параллельно с этим в третье векторное вычислительное ядро загружают вектор q-разрядных элементов
Figure 00000529
;
3.6.5. После того, как элементы вектора
Figure 00000530
загружены в векторные ядра, производится вычисление ранга и частичного остатка от деления на 2q-1 модулярной мантиссы
Figure 00000531
промежуточного результата
Figure 00000532
произведения чисел А я В:
-в первом векторном вычислительном ядре вычисляют скалярное произведение векторов
Figure 00000533
и
Figure 00000534
, вычисляют значение
Figure 00000535
, где
Figure 00000536
- наибольшее целое, не превышающее
Figure 00000537
значение
Figure 00000538
передается в управляющее ядро;
- параллельно с этим во втором векторном вычислительном ядре вычисляют скалярное произведение векторов
Figure 00000539
и
Figure 00000540
вычисляют значение
Figure 00000541
, где
Figure 00000542
- наибольшее целое, не превышающее
Figure 00000543
, значение
Figure 00000544
передается в управляющее ядро;
- параллельно с этим в третьем векторном вычислительном ядре вычисляют скалярное произведение векторов
Figure 00000545
и
Figure 00000546
, значение
Figure 00000547
передается в управляющее ядро.
3.6.6. После того, как результаты скалярного произведения векторов переданы в управляющее ядро, в управляющем ядре вычисляется значение ранга
Figure 00000548
, если
Figure 00000549
или
Figure 00000550
, R=Rmax, если
Figure 00000551
, и значение остатка от деления модулярной мантиссы
Figure 00000552
промежуточного результата
Figure 00000553
произведения чисел А и В
Figure 00000554
.
3.6.7. После того, как управляющее ядро передаст во все модулярные и все универсальные целочисленные ядра значения
Figure 00000555
и α, выполняется деление модулярной мантиссы
Figure 00000556
промежуточного результата
Figure 00000553
произведения чисел А и В на число 2α:
- в первом модулярном вычислительном ядре процессора выполняется операция вычитания
Figure 00000557
по модулю р1 q-разрядного двоичного представления знакопозиций
Figure 00000558
модулярной мантиссы
Figure 00000559
промежуточного результата
Figure 00000560
произведения чисел А и В и значения
Figure 00000555
следующим образом: если
Figure 00000561
, то
Figure 00000562
, если
Figure 00000563
, то
Figure 00000564
; после чего выполняется операция умножения
Figure 00000565
по модулю р1 q-разрядного двоичного представления знакопозиций
Figure 00000566
модулярной мантиссы
Figure 00000567
промежуточного результата
Figure 00000568
произведения чисел А и В и значения мультипликативной инверсии 2α по модулю р1
Figure 00000569
путем нахождения значения
Figure 00000570
, где
Figure 00000571
- наибольшее целое, не превышающее
Figure 00000572
; после чего если
Figure 00000573
выполняется операция сложения
Figure 00000574
по модулю р1 q-разрядного двоичного представления знакопозиций
Figure 00000575
модулярной мантиссы
Figure 00000576
промежуточного результата
Figure 00000577
произведения чисел А и В следующим образом: если
Figure 00000578
, то
Figure 00000579
если
Figure 00000580
, то
Figure 00000581
; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция вычитания
Figure 00000582
по модулю р2 q-разрядного двоичного представления знакопозиций
Figure 00000583
модулярной мантиссы
Figure 00000584
промежуточного результата
Figure 00000585
произведения чисел А и В и значения
Figure 00000586
, после чего выполняется операция умножения
Figure 00000587
по модулю р2 q-разрядного двоичного представления знакопозиций
Figure 00000588
и значения мультипликативной инверсии 2α по модулю р2
Figure 00000589
; после чего если
Figure 00000590
выполняется операция сложения
Figure 00000591
по модулю р2;
- и т.д.
- параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция вычитания
Figure 00000592
по модулю рn q-разрядного двоичного представления знакопозиций
Figure 00000593
модулярной мантиссы
Figure 00000594
промежуточного результата
Figure 00000595
произведения чисел А и В и значения
Figure 00000596
; после чего выполняется операция умножения
Figure 00000597
по модулю рn q-разрядного двоичного представления знакопозиций
Figure 00000598
и значения мультипликативной инверсии 2α по модулю рn
Figure 00000599
; после чего если
Figure 00000600
выполняется операция сложения
Figure 00000601
Figure 00000602
по модулю р1n;
- параллельно с этим во втором универсальном вычислительном ядре процессора выполняется коррекция
Figure 00000603
если
Figure 00000604
, иначе
Figure 00000605
двоичного значения нижней границы интервальной логарифмической характеристики
Figure 00000606
промежуточного результата
Figure 00000607
произведения чисел А и В;
- параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется коррекция
Figure 00000608
, если
Figure 00000609
иначе
Figure 00000610
двоичного значения верхней границы интервальной логарифмической характеристики
Figure 00000611
промежуточного результата
Figure 00000612
произведения чисел А и В;
3.7. Если знак
Figure 00000613
промежуточного результата
Figure 00000612
произведения чисел А и В не равен 0, и значение
Figure 00000614
верхней границы интервальной логарифмической характеристики промежуточного результата
Figure 00000615
произведения чисел А и В больше или равно значению нижней границы интервальной логарифмической характеристики максимально возможного значения мантиссы
Figure 00000616
, то управляющее ядро передает во все модулярные и все универсальные целочисленные ядра значение поправочных коэффициентов zА, zВ, после чего:
3.7.1. Выполняется загрузка мультипликативных инверсий
Figure 00000617
,
Figure 00000618
и 2q-1:
- в первое модулярное ядро загружают q-разрядные двоичные значения
Figure 00000619
,
Figure 00000620
и
Figure 00000621
мультипликативных инверсий
Figure 00000622
,
Figure 00000623
и 2q-1 по модулю р1;
- параллельно с этим во второе модулярное ядро загружают q-разрядные двоичные значения
Figure 00000624
,
Figure 00000625
и
Figure 00000626
мультипликативных инверсий
Figure 00000627
,
Figure 00000628
и 2q-1 по модулю р2;
- и т.д.;
- параллельно с этим в и-ое модулярное ядро загружают q-разрядные двоичные значения
Figure 00000629
,
Figure 00000630
и
Figure 00000631
мультипликативных инверсий
Figure 00000632
,
Figure 00000628
и 2q-1 по модулю рn;
- параллельно с этим в первом универсальном вычислительном ядре процессора выполняется коррекция
Figure 00000633
двоичного порядка
Figure 00000634
промежуточного результата
Figure 00000635
произведения чисел А и В;
- параллельно с этим в управляющем ядре вычисляется количество итераций jА=0, если zА<q-1,
Figure 00000636
, если zА>q-1 и jВ=0, если zВ<q-1,
Figure 00000637
, если zВ>q-1.
3.7.2. Если |ZA|q-1>0, то действия 3.7.3-3.7.7 выполняются один раз для
Figure 00000638
затем если количество итераций jА≥1, то действия 3.7.3-3.7.7 выполняются jА раз для α=q-1.
3.7.3. Вычисляются значения элементов вектора
Figure 00000639
:
- в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000640
по модулю р1 q-разрядного двоичного представления знакопозиций
Figure 00000641
модулярной мантиссы
Figure 00000642
числа А и значения мультипликативной инверсии Р1 по модулю р1
Figure 00000302
, путем нахождения значения
Figure 00000643
, где
Figure 00000644
- наибольшее целое, не превышающее
Figure 00000645
; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000646
по модулю р2 q-разрядного двоичного представления знакопозиций
Figure 00000647
модулярной мантиссы
Figure 00000648
и значения мультипликативной инверсии Р2 по модулю р2
Figure 00000307
;
- и т.д.
- параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000649
по модулю рn q-разрядного двоичного представления знакопозиций
Figure 00000650
модулярной мантиссы
Figure 00000651
и значения мультипликативной инверсии Рn по модулю рn
Figure 00000312
;
3.7.4. После того, как получены значения элементов вектора
Figure 00000652
, данный вектор загружается в векторные ядра следующим образом:
- в первое векторное вычислительное ядро загружают вектор q-разрядных элементов
Figure 00000653
, q≤s;
- параллельно с этим во второе векторное вычислительное ядро загружают вектор q-разрядных элементов
Figure 00000653
, q≤s;
- параллельно с этим в третье векторное вычислительное ядро загружают вектор q-разрядных элементов
Figure 00000654
.
3.7.5. После того, как элементы вектора
Figure 00000655
загружены в векторные ядра, производится вычисление ранга и частичного остатка от деления на 2q-1 модулярной мантиссы
Figure 00000656
числа А следующим образом:
- в первом векторном вычислительном ядре вычисляют скалярное произведение векторов
Figure 00000657
и
Figure 00000658
, вычисляют значение
Figure 00000659
, где
Figure 00000660
- наибольшее целое, на превышающее
Figure 00000661
, значение
Figure 00000662
передается в управляющее ядро;
- параллельно с этим во втором векторном вычислительном ядре вычисляют скалярное произведение векторов
Figure 00000663
и
Figure 00000664
, вычисляют значение
Figure 00000665
, где
Figure 00000666
- наибольшее целое, не превышающее
Figure 00000667
, значение
Figure 00000668
передается в управляющее ядро;
- параллельно с этим в третьем векторном вычислительном ядре вычисляют скалярное произведение векторов
Figure 00000669
и
Figure 00000670
, значение
Figure 00000671
передается в управляющее ядро.
3.7.6. После того, как результаты скалярного произведения векторов переданы в управляющее ядро, в управляющем ядре вычисляется значение ранга
Figure 00000672
, если
Figure 00000673
или
Figure 00000674
, R=Rm а х, если
Figure 00000675
и значение остатка от деления модулярной мантиссы
Figure 00000676
числа А на 2α:
Figure 00000677
.
3.7.7. После того, как управляющее ядро передаст во все модулярные и все универсальные целочисленные ядра значения
Figure 00000678
и α, выполняется деление модулярной мантиссы
Figure 00000679
числа А на число 2α:
- в первом модулярном вычислительном ядре процессора выполняется операция вычитания
Figure 00000680
по модулю р1 q-разрядного двоичного представления знакопозиций
Figure 00000681
модулярной мантиссы
Figure 00000682
числа А и значения
Figure 00000683
следующим образом: если
Figure 00000684
, то
Figure 00000685
, если
Figure 00000686
, то
Figure 00000687
; после чего выполняется операция умножения
Figure 00000688
по модулю р1 q-разрядного двоичного представления знакопозиций
Figure 00000681
модулярной мантиссы
Figure 00000689
числа А и значения мультипликативной инверсии 2α по модулю р1
Figure 00000569
путем нахождения значения
Figure 00000690
, где
Figure 00000691
- наибольшее целое, не превышающее
Figure 00000692
; после чего если
Figure 00000693
выполняется операция сложения
Figure 00000694
по модулю р1 q-разрядного двоичного представления знакопозиций
Figure 00000695
модулярной мантиссы
Figure 00000682
числа А следующим образом: если
Figure 00000696
, то
Figure 00000697
если
Figure 00000698
, то
Figure 00000699
; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция вычитания
Figure 00000700
по модулю р2 q-разрядного двоичного представления знакопозиций
Figure 00000701
модулярной мантиссы
Figure 00000702
числа А и значения
Figure 00000703
, после чего выполняется операция умножения
Figure 00000704
по модулю р2 q-разрядного двоичного представления знакопозиций
Figure 00000705
и значения мультипликативной инверсии 2α по модулю р2
Figure 00000589
; после чего если
Figure 00000706
выполняется операция сложения
Figure 00000707
по модулю р2;
- и т.д.
- параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция вычитания
Figure 00000708
по модулю рn q-разрядного двоичного представления знакопозиций
Figure 00000709
модулярной мантиссы
Figure 00000710
числа А и значения
Figure 00000711
; после чего выполняется операция умножения
Figure 00000712
по модулю рn q-разрядного двоичного представления знакопозиций
Figure 00000713
и значения мультипликативной инверсии 2α по модулю рn
Figure 00000599
; после чего если
Figure 00000706
выполняется операция сложения
Figure 00000714
по модулю рn;
- параллельно с этим во втором универсальном вычислительном ядре процессора выполняется коррекция
Figure 00000715
, если
Figure 00000716
, иначе
Figure 00000717
двоичного значения нижней границы интервальной логарифмической характеристики
Figure 00000718
промежуточного результата
Figure 00000719
произведения чисел А и В;
- параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется коррекция
Figure 00000720
, если
Figure 00000721
, иначе
Figure 00000722
двоичного значения верхней границы интервальной логарифмической характеристики
Figure 00000723
промежуточного результата
Figure 00000724
произведения чисел А и В;
3.7.8. Если |zB|q-1>0, то действия 3.7.9-3.7.13 выполняются один раз для α=|zB|q-1; затем если количество итераций jВ≥1, то действия 3.7.9-3.7.13 выполняются затем jВ раз для α=q-1.
3.7.9. Вычисляются значения элементов вектора
Figure 00000725
:
- в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000726
по модулю р1 q-разрядного двоичного представления знакопозиций
Figure 00000727
модулярной мантиссы
Figure 00000728
числа В и значения мультипликативной инверсии Р1 по модулю р1
Figure 00000302
, путем нахождения значения
Figure 00000729
, где
Figure 00000730
- наибольшее целое, не превышающее
Figure 00000731
; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000732
по модулю р2 q-разрядного двоичного представления знакопозиций
Figure 00000733
модулярной мантиссы
Figure 00000734
и значения мультипликативной инверсии Р2 по модулю р2
Figure 00000307
;
- и т.д.
- параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000735
по модулю рn q-разрядного двоичного представления знакопозиций
Figure 00000736
модулярной мантиссы
Figure 00000737
и значения мультипликативной инверсии Рn по модулю рn
Figure 00000312
;
3.7.10. После того, как получены значения элементов вектора
Figure 00000738
, данный вектор загружается в векторные ядра следующим образом:
- в первое векторное вычислительное ядро загружают вектор q-разрядных элементов
Figure 00000739
;
- параллельно с этим во второе векторное вычислительное ядро загружают вектор q-разрядных элементов
Figure 00000740
;
- параллельно с этим в третье векторное вычислительное ядро загружают вектор q-разрядных элементов
Figure 00000741
3.7.11. После того, как элементы вектора
Figure 00000742
загружены в векторные ядра, производится вычисление ранга и остатка от деления на 2q-1 следующим образом:
- в первом векторном вычислительном ядре вычисляют скалярное произведение векторов
Figure 00000743
и
Figure 00000744
значение
Figure 00000745
передается в управляющее ядро;
- параллельно с этим во втором векторном вычислительном ядре вычисляют скалярное произведение векторов
Figure 00000746
и
Figure 00000747
, значение
Figure 00000748
передается в управляющее ядро;
- параллельно с этим в третьем векторном вычислительном ядре вычисляют скалярное произведение векторов
Figure 00000749
и
Figure 00000750
, значение
Figure 00000751
передается в управляющее ядро;
3.7.12. После того, как результаты скалярного произведения векторов переданы в управляющее ядро, в управляющем ядре вычисляется значение ранга
Figure 00000752
, если
Figure 00000753
или
Figure 00000754
,
Figure 00000755
, если
Figure 00000756
и значение остатка от деления модулярной мантиссы
Figure 00000757
числа В на 2α:
Figure 00000758
.
3.7.13. После того, как управляющее ядро передаст во все модулярные и все универсальные целочисленные ядра значения
Figure 00000759
и α, выполняется деление модулярной мантиссы
Figure 00000760
числа В на число 2α:
- в первом модулярном вычислительном ядре процессора выполняется операция вычитания
Figure 00000761
по модулю р1 q-разрядного двоичного представления знакопозиций
Figure 00000762
модулярной мантиссы
Figure 00000763
числа В и значения
Figure 00000764
следующим образом: если
Figure 00000765
, то
Figure 00000766
, если
Figure 00000767
, то
Figure 00000768
, после чего выполняется операция умножения
Figure 00000769
по модулю р1 q-разрядного двоичного представления знакопозиций
Figure 00000770
модулярной мантиссы
Figure 00000771
числа В и значения мультипликативной инверсии 2α по модулю р1
Figure 00000569
путем нахождения значения
Figure 00000772
, где
Figure 00000773
- наибольшее целое, не превышающее
Figure 00000774
; после чего если
Figure 00000775
, выполняется операция сложения
Figure 00000776
по модулю р1 q-разрядного двоичного представления знакопозиций
Figure 00000777
модулярной мантиссы
Figure 00000778
числа В следующим образом: если
Figure 00000779
, то
Figure 00000780
, если
Figure 00000781
то
Figure 00000782
; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция вычитания
Figure 00000783
по модулю р2 q-разрядного двоичного представления знакопозиций
Figure 00000784
модулярной мантиссы
Figure 00000785
числа В и значения
Figure 00000786
, после чего выполняется операция умножения
Figure 00000787
по модулю р2 q-разрядного двоичного представления знакопозиций
Figure 00000788
и значения мультипликативной инверсии 2α по модулю p2
Figure 00000789
; после чего, если
Figure 00000790
, выполняется операция сложения
Figure 00000791
по модулю р2;
- и т.д.
-параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция вычитания
Figure 00000792
по модулю рn q-разрядного двоичного представления знакопозиций
Figure 00000793
модулярной мантиссы
Figure 00000794
числа В и значения
Figure 00000795
; после чего выполняется операция умножения
Figure 00000796
по модулю рn q-разрядного двоичного представления знакопозиций
Figure 00000797
и значения мультипликативной инверсии 2α по модулю рn
Figure 00000798
после чего, если
Figure 00000799
выполняется операция сложения
Figure 00000800
по модулю рn;
- параллельно с этим во втором универсальном вычислительном ядре процессора выполняется коррекция
Figure 00000801
, если
Figure 00000802
, иначе
Figure 00000803
двоичного значения нижней границы интервальной логарифмической характеристики
Figure 00000804
промежуточного результата
Figure 00000805
произведения чисел А и В;
- параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется коррекция
Figure 00000806
, если
Figure 00000807
, иначе
Figure 00000808
двоичного значения верхней границы интервальной логарифмической характеристики
Figure 00000809
промежуточного результата
Figure 00000805
произведения чисел А и В;
3.7.14. После того, как выполнена коррекция мантисс
Figure 00000810
и
Figure 00000811
чисел А и В соответственно, выполняется их умножение следующим образом:
- в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000812
по модулю р1 q-разрядных двоичных представлений знакопозиций
Figure 00000813
и
Figure 00000814
модулярных мантисс
Figure 00000815
и
Figure 00000816
чисел А и В соответственно, путем нахождения значения
Figure 00000817
, где
Figure 00000818
- наибольшее целое, не превышающее
Figure 00000819
; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000820
по модулю р2 q-разрядных двоичных представлений знакопозиций
Figure 00000821
и
Figure 00000822
модулярных мантисс
Figure 00000823
и
Figure 00000824
чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- и т.д.
- параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
Figure 00000825
по модулю рn q-разрядных двоичных представлений знакопозиций
Figure 00000826
и
Figure 00000827
модулярных мантисс
Figure 00000828
и
Figure 00000824
чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления.
В результате выполнения данных операций получается произведение
Figure 00000829
чисел
Figure 00000830
и
Figure 00000831
, представленное в модулярно-логарифмическом формате с плавающей точкой.
Для выполнения операции сложения двух целых q-разрядных двоичных чисел требуется устройство, состоящее из q элементарных двоичных устройств, для выполнения операции умножения двух целых q-разрядных двоичных чисел требуется устройство, состоящее из q×q элементарных двоичных устройств, для выполнения операции модулярного умножения двух целых q-разрядных двоичных чисел требуется устройство, состоящее из 2×q×q элементарных двоичных устройств, для хранения одного бита информации требуется устройство, состоящее из одного элементарного двоичного устройства, для сложения двух q-разрядных двоичных чисел в формате с плавающей точкой с направленным округлением требуется устройство, состоящее из 2×q элементарных двоичных устройств. Для выполнения операции умножения способом (A.C. RU №2509345, БИ №7, 10.03.2014) требуется устройство, состоящее из (2×k×k×n+k) элементарных двоичных устройств, где k - разрядность одного ядра универсального многоядерного процессора, n - количество модулей. Для выполнения операции умножения способом (К.С. Исупов, А.Н. Мальцев. «Способ представления чисел с плавающей точкой большой разрядности, ориентированный на параллельную обработку», Вычислительные методы и программирование, 15:4 (2014), с. 631-643.), требуется устройство, состоящее из (2β-l)×n×q+2×q×q×n+k+2×2×γ, где β - шаг масштабирования, n - количество моделей, q - разрядность модулей, k - разрядность порядка, γ - разрядность интервальной позиционной характеристики). Для выполнения операции умножения предложенным способом, требуется устройство, состоящее из 2×q×q×n+k+2×r+2×(n×s×s+(n-1)×(s+log2n))+(n×q×q+(n-1)×q), где n - количество моделей, q - разрядность модулей, k -разрядность порядка, r - разрядность интервальной логарифмической характеристики, s -разрядность весовых коэффициентов. При условии, что k=r=s=q, β=q-1, γ=2⋅q, для выполнения операции умножения способом (A.C. RU №2509345, БИ №7, 10.03.2014) требуется устройство, состоящее из (q⋅(2⋅n⋅q+1)) элементарных двоичных устройств, для выполнения операции умножения способом (К.С. Исупов, А.Н. Мальцев. «Способ представления чисел с плавающей точкой большой разрядности, ориентированный на параллельную обработку», Вычислительные методы и программирование, 15:4 (2014), с. 631-643.), требуется устройство, состоящее из (q⋅((2q-1-1)⋅n+2⋅q+9)), для выполнения операции умножения предложенным способом, требуется устройство, состоящее из (5⋅n⋅q2+3⋅n⋅q+(n-1)⋅log2n).
Предложенный способ полностью описывает процедуру умножения двух чисел в модулярном формате с плавающей точкой, включая контроль переполнения, потери порядка, масштабирования, при этом требует для своего выполнения устройство всего в
Figure 00000832
раза сложнее, чем требуется для выполнения способа (A.C. RU №2509345, БИ №7, 10.03.2014) и в
Figure 00000833
раз проще, чем требуется для способа (Исупов К.С., Мальцев А.Н. Способ представления чисел с плавающей точкой большой разрядности, ориентированный на параллельную обработку // Вычислительные методы и программирование: новые вычислительные технологии. 2014. Т. 15, №4. С. 631-643).

Claims (145)

  1. Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах, заключающийся в том, что:
  2. в гибридном многоядерном вычислителе, содержащем n q-разрядных модулярных вычислительных ядер, одно k-разрядное и два r-разрядных универсальных целочисленных ядра, два специализированных s-разрядных векторных ядра, одно специализированное q-разрядное векторное ядро и одно специализированное управляющее ядро, выполняется система из
    Figure 00000834
    операций, в состав которой входят операции арифметического умножения и арифметического сложения над числами, представленными в позиционных целочисленных форматах данных, операции скалярного произведения векторов n чисел, представленными в позиционных целочисленных форматах данных, операции передачи управления и информации между ядрами;
  3. при организации выполнения операций умножения каждое число, множитель и множимое, представляется в модулярно-логарифмическом формате с плавающей точкой в виде (2+k+2⋅r+q⋅n) -элементного вектора, где:
  4. первые два разряда слева σ являются старшими разрядами в формате числа и отводятся под значение знака числа, причем если σ=+1, то число считается положительным, если σ=-1, то число считается отрицательным, если σ=0, то число равно 0;
  5. следующие за первыми двумя разрядами σ числа k разрядов отводятся под хранение порядка числа, представляющего собой целое двоичное число λ со знаком sλ, изменяющееся для конечных чисел с плавающей точкой в диапазоне λmin≤λ≤λmах и получаемое в результате преобразования числа из позиционного формата с плавающей точкой посредством вычисления выражения λ=е-t+1, где е определяет величину числа в двоичном позиционном формате с плавающей точкой в выражении -1S⋅М⋅2е при 0≤М≤2, являющейся рациональной t-разрядной мантиссой числа в двоичном позиционном формате с плавающей точкой, λmin=2-2k-1, λmax=2k-1-2, при sλ=0, порядок λ считается положительным, а при sλ=1 порядок λ считается отрицательным;
  6. следующие за (k+2) разрядами 2⋅r разрядов отводятся под хранение интервальной логарифмической характеристики числа, представляющей собой пару целых двоичных чисел Lmin, Lmax без знака, изменяющихся в диапазоне 0≤Lmin≤LP, 0≤Lmax≤LP и получаемых в результате преобразования числа из позиционного формата с плавающей точкой -1S⋅М⋅2е посредством вычисления выражений Lmin=
    Figure 00000835
    Lmax=Lmin+1, где М' - целое неотрицательное двоичное число, определяемое выражением М'=М⋅2t-1, М - рациональная t-разрядная мантисса числа в двоичном позиционном формате с плавающей точкой,
    Figure 00000836
    Figure 00000837
    Figure 00000838
    Figure 00000839
    - наибольшее целое, не превышающее log2(M')⋅2r-h-1,
    Figure 00000840
    - наибольшее целое, не превышающее
    Figure 00000841
    ,
    Figure 00000842
    - наибольшее целое, не превышающее
    Figure 00000843
  7. следующие за (2⋅r+k+2) разрядами q⋅n разрядов отводятся для представления мантиссы числа
    Figure 00000844
    в модулярно-логарифмическом формате, причем данная мантисса представляется в системе остаточных классов с n основаниями P1, P2, …, Рn, n - количество знакопозиций мантиссы, q - разрядность каждой знакопозиции; причем каждая i-ая знакопозиция, где 1≤i≤n, представляется целым неотрицательным числом mi в двоичной позиционной системе счисления; значение mi каждой i-ой знакопозиции определяется по выражению mi=
    Figure 00000845
    , где М' - целое неотрицательное двоичное число, определяемое выражением М'=М⋅2t-1, М - рациональная t-разрядная мантисса числа в двоичном позиционном формате с плавающей точкой,
    Figure 00000845
    - операция получения остатка от деления М' на i-ое основание рi;
  8. диапазон изменения модулярной мантиссы
    Figure 00000846
    в позиционной системе счисления определяется интервалом
    Figure 00000847
  9. значения порядка λ, мантиссы
    Figure 00000848
    и верхней и нижней границ интервальной логарифмической характеристики Lmin, Lmax положительных конечных чисел при σ=+1 в модулярно-логарифмическом формате [〈m1, m2, …, mn〉, Lmin, Lmax, λ, σ] находятся соответственно в следующих диапазонах: 2-2k-1≤λ≤2k-1-2,
    Figure 00000849
    0≤Lmin≤LP, 0≤Lmax≤Lp,
  10. значения порядка λ, мантиссы
    Figure 00000850
    и интервальной логарифмической характеристики Lmin, Lmax отрицательных конечных чисел при σ=-1 в модулярно-логарифмическом формате находятся соответственно в следующих диапазонах: 2-2k-1≤λ≤2k-1-2,
    Figure 00000851
    0≤Lmin≤LP, 0≤Lmax≤LP;
  11. значение машинного нуля представляется в модулярно логарифмическом формате следующим образом: σ=0, λ=0,
    Figure 00000852
    Lmin=0, Lmax=0;
  12. значение положительной бесконечности представляется в модулярно-логарифмическом формате следующим образом: σ=+1, λ=λmах+1=2k-1-1,
    Figure 00000853
    Figure 00000854
    Lmin=0, Lmax=0;
  13. значение отрицательной бесконечности представляется в модулярно-логарифмическом формате следующим образом: σ=-1, λ=λmаx+1=2k-1-1,
    Figure 00000855
    Figure 00000856
    Lmin=0, Lmax=0;
  14. для положительных нечисловых величин (NaN) в модулярно-логарифмическом формате при σ=+1 значение позиционного порядка λ определяется выражением λ=λmах+1=2k-1-1, значение мантиссы
    Figure 00000857
    находится в диапазоне 〈11, 12, …, 1n〉≤
    Figure 00000858
    ≤〈р1-1), (р2-1), …, (р2-1)〉, значение верхней и нижней границ интервальной логарифмической характеристики Lmin, Lmax находятся в диапазонах 0≤Lmin≤LP, 0≤Lmax≤LP,
  15. для отрицательных нечисловых величин (NaN) в модулярно-логарифмическом формате при σ=-1 значение позиционного порядка λ определяется выражением λ=λmах+1=2k-1-1, значение мантиссы
    Figure 00000859
    находится в диапазоне 〈11, 12, …, 1n〉≤
    Figure 00000860
    ≤ 〈р1-1), (р2-1), ..., (р2-1)〉, значение верхней и нижней границ интервальной логарифмической характеристики Lmin, Lmax находятся в диапазонах 0≤Lmin≤LP, 0≤Lmax≤LP;
  16. по сигналу процессора множитель
    Figure 00000861
    и множимое
    Figure 00000862
    представленные в модулярно-логарифмическом формате с плавающей точкой, загружают в гибридный многоядерный процессор следующим образом:
  17. в первое модулярное ядро гибридного многоядерного процессора загружают q-разрядные двоичные представления первых знакопозиций
    Figure 00000863
    и
    Figure 00000864
    модулярных мантисс
    Figure 00000865
    и
    Figure 00000866
    чисел А и В соответственно, а также основание системы остаточных классов р1 и значение мультипликативной инверсии Р1 по модулю
    Figure 00000867
  18. параллельно с этим во второе модулярное ядро загружают q-разрядные двоичные представления вторых знакопозиций
    Figure 00000868
    и
    Figure 00000869
    модулярных мантисс
    Figure 00000870
    и
    Figure 00000871
    чисел А и В соответственно, а также основание системы остаточных классов р2 и значение мультипликативной инверсии Р2 по модулю
    Figure 00000872
  19. параллельно с этим в третье ÷ n-ое модулярные ядра загружают q-разрядные двоичные представления третьих ÷ n-ых знакопозиций
    Figure 00000873
    и
    Figure 00000874
    модулярных мантисс
    Figure 00000875
    и
    Figure 00000876
    чисел А и В соответственно, а также основания системы остаточных классов р3÷рn и значения мультипликативных инверсий Р3÷Рn по модулям р3÷рn
  20. Figure 00000877
  21. параллельно с этим в первое универсальное вычислительное ядро загружают k-разрядные двоичные порядки λА и λB, а также знаки σА и σB чисел А и В соответственно;
  22. параллельно с этим во второе универсальное вычислительное ядро загружают r-разрядные значения нижних границ интервальных логарифмических характеристик
    Figure 00000878
    и
    Figure 00000879
    чисел А и В соответственно;
  23. параллельно с этим в третье универсальное вычислительное ядро загружают r-разрядные значения верхних границ интервальных логарифмических характеристик
    Figure 00000880
    и
    Figure 00000881
    чисел А и В соответственно, а также r-разрядное значение нижней границы интервальной логарифмической характеристики диапазона представления модулярных мантисс LP;
  24. параллельно с этим в первое векторное вычислительное ядро загружают вектор s-разрядных коэффициентов
    Figure 00000882
  25. параллельно с этим во второе векторное вычислительное ядро загружают вектор s-разрядных коэффициентов
    Figure 00000883
  26. параллельно с этим в третье векторное вычислительное ядро загружают вектор q-разрядных остатков от деления
    Figure 00000884
  27. после того, как множитель
    Figure 00000885
    и множимое
    Figure 00000886
    загружены в гибридный многоядерный процессор, операция их умножения выполняется следующим образом:
  28. в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00000887
    по модулю р1 q-разрядных двоичных представлений знакопозиций
    Figure 00000888
    и
    Figure 00000889
    модулярных мантисс
    Figure 00000890
    и
    Figure 00000891
    чисел А и В соответственно, путем нахождения значения
    Figure 00000892
    Figure 00000893
    - наибольшее целое, не превышающее
  29. Figure 00000894
    все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
  30. параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00000895
    по модулю р2 q-разрядных двоичных представлений знакопозиций
    Figure 00000896
    и
    Figure 00000897
    модулярных мантисс
    Figure 00000898
    и
    Figure 00000899
    чисел А и В соответственно;
  31. параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00000900
    Figure 00000901
    по модулю р3 ÷ рn q-разрядных двоичных представлений знакопозиций
    Figure 00000902
    модулярных мантисс
    Figure 00000903
    и
    Figure 00000904
    чисел А и В соответственно;
  32. параллельно с этим в первом универсальном вычислительном ядре процессора выполняется сложение λCAB двоичных порядков λА и λB, а также умножение σCА⋅σB знаков σА и σB чисел А и В соответственно;
  33. параллельно с этим во втором универсальном вычислительном ядре процессора выполняется сложение
    Figure 00000905
    двоичных значений нижних границ интервальных логарифмических характеристик
    Figure 00000906
    чисел А и В соответственно;
  34. параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется сложение
    Figure 00000907
    двоичных значений верхних границ интервальных логарифмических характеристик
    Figure 00000908
    чисел А и В соответственно;
  35. параллельно с этим в управляющем ядре вычисляются следующие значения поправочных коэффициентов:
    Figure 00000909
    Figure 00000910
    Figure 00000911
    Figure 00000912
    Figure 00000913
    Figure 00000914
    если
    Figure 00000915
    Figure 00000916
    если
    Figure 00000917
    и L2<0,
    Figure 00000918
    zB=
    Figure 00000919
    если
    Figure 00000920
    и
    Figure 00000921
    Figure 00000922
    Figure 00000923
    если
    Figure 00000924
    и
  36. Figure 00000925
  37. после того, как получено промежуточное значение произведения
    Figure 00000926
    Figure 00000927
    чисел
    Figure 00000928
    и
    Figure 00000929
    Figure 00000930
    выполняется коррекция результата следующим образом:
  38. в случае если знак
    Figure 00000931
    промежуточного результата
    Figure 00000932
    произведения чисел А и В не равен 0, и порядок
    Figure 00000933
    промежуточного результата
    Figure 00000932
    произведения чисел А и В принадлежит интервалу [2-2k-1; 2k-1-2], и значение
    Figure 00000934
    верхней границы интервальной логарифмической характеристики промежуточного результата
    Figure 00000935
    произведения чисел А и В меньше значения нижней границы интервальной логарифмической характеристики максимально возможного значения мантиссы, то есть
  39. Figure 00000936
    то коррекции результата не требуется;
  40. в случае если знак
    Figure 00000937
    промежуточного результата
    Figure 00000938
    произведения чисел А и В равен 0, то есть
    Figure 00000939
    то:
  41. в первом универсальном вычислительном ядре процессора выполняется обнуление
    Figure 00000940
    двоичного порядка
    Figure 00000941
    промежуточного результата
    Figure 00000942
    произведения чисел А и В;
  42. параллельно с этим во втором универсальном вычислительном ядре процессора выполняется обнуление
    Figure 00000943
    двоичного значения нижней границы интервальной логарифмической характеристики
    Figure 00000944
    промежуточного результата
    Figure 00000945
    произведения чисел А и В;
  43. параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется обнуление
    Figure 00000946
    двоичного значения верхней границы интервальной логарифмической характеристики
    Figure 00000947
    промежуточного результата
    Figure 00000948
    произведения чисел А и В;
  44. в случае если знак
    Figure 00000949
    промежуточного результата
    Figure 00000950
    произведения чисел А и В не равен 0 и значение
    Figure 00000951
    то есть модуль промежуточного результата
    Figure 00000948
    произведения чисел А и В выходит за границы минимально возможного представления, то:
  45. в первом универсальном вычислительном ядре процессора выполняется обнуление
    Figure 00000952
    двоичного порядка
    Figure 00000953
    и
    Figure 00000954
    знака
    Figure 00000955
    промежуточного результата
    Figure 00000956
    произведения чисел А и В;
  46. параллельно с этим во втором универсальном вычислительном ядре процессора выполняется обнуление
    Figure 00000957
    двоичного значения нижней границы интервальной логарифмической характеристики
    Figure 00000958
    промежуточного результата
    Figure 00000959
    произведения чисел А и В;
  47. параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется обнуление
    Figure 00000960
    двоичного значения верхней границы интервальной логарифмической характеристики
    Figure 00000961
    промежуточного результата
    Figure 00000962
    произведения чисел А и В;
  48. параллельно с этим в первом модулярном вычислительном ядре процессора выполняется обнуление
    Figure 00000963
    значения первой знакопозиции
    Figure 00000964
    промежуточного результата
    Figure 00000965
    произведения чисел А и В;
  49. параллельно с этим во втором модулярном вычислительном ядре процессора выполняется обнуление
    Figure 00000966
    значения второй знакопозиции
    Figure 00000967
    промежуточного результата
    Figure 00000968
    произведения чисел А и В;
  50. параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется обнуление
    Figure 00000969
    значения третьей ÷ n-ой знакопозиции
    Figure 00000970
    Figure 00000971
    промежуточного результата
    Figure 00000972
    произведения чисел А и В;
  51. в случае если знак
    Figure 00000973
    промежуточного результата С произведения чисел А и В не равен 0 и значение
    Figure 00000974
    то есть модуль промежуточного результата
    Figure 00000975
    произведения чисел А и В выходит за границы максимально возможного представления, то:
  52. в первом универсальном вычислительном ядре процессора выполняется присвоение
    Figure 00000976
    двоичному порядку
    Figure 00000977
    промежуточного результата
    Figure 00000978
    произведения чисел А и В;
  53. параллельно с этим во втором универсальном вычислительном ядре процессора выполняется обнуление
    Figure 00000979
    двоичного значения нижней границы интервальной логарифмической характеристики
    Figure 00000980
    промежуточного результата
    Figure 00000978
    произведения чисел А и В;
  54. параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется обнуление
    Figure 00000960
    двоичного значения верхней границы интервальной логарифмической характеристики
    Figure 00000981
    промежуточного результата
    Figure 00000982
    произведения чисел А и В;
  55. параллельно с этим в первом модулярном вычислительном ядре процессора выполняется обнуление
    Figure 00000983
    значения первой знакопозиции
    Figure 00000984
    промежуточного результата
    Figure 00000950
    произведения чисел А и В;
  56. параллельно с этим во втором модулярном вычислительном ядре процессора выполняется обнуление
    Figure 00000985
    значения второй знакопозиции
    Figure 00000986
    промежуточного результата
    Figure 00000950
    произведения чисел А и В;
  57. параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется обнуление
    Figure 00000987
    значения третьей ÷ n-ой знакопозиции
    Figure 00000988
    Figure 00000989
    промежуточного результата
    Figure 00000990
    произведения чисел А и В;
  58. в случае если знак
    Figure 00000991
    промежуточного результата
    Figure 00000992
    произведения чисел А и В не равен 0, и порядок
    Figure 00000993
    промежуточного результата
    Figure 00000950
    произведения чисел А и В принадлежит интервалу
    Figure 00000994
    и значение
    Figure 00000995
    верхней границы интервальной логарифмической характеристики промежуточного результата
    Figure 00000996
    произведения чисел А и В меньше значения нижней границы интервальной логарифмической характеристики максимально возможного значения мантиссы
    Figure 00000997
    Figure 00000998
    то управляющее ядро передает во все модулярные и все универсальные целочисленные ядра значения поправочных коэффициентов
    Figure 00000999
    Figure 00001000
    после чего:
  59. в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00001001
    по модулю р1 знакопозиции
    Figure 00001002
    модулярной мантиссы
    Figure 00001003
    промежуточного результата
    Figure 00001004
    произведения чисел А и В и значения
    Figure 00001005
    следующим образом: выполняется операция целочисленного умножения
    Figure 00001006
    по модулю р1 знакопозиции
    Figure 00001007
    модулярной мантиссы
    Figure 00001008
    промежуточного результата
    Figure 00001009
    произведения чисел А и В и значения
    Figure 00001010
    полученного сдвигом числа 1 на
    Figure 00001011
    двоичных разрядов влево, путем нахождения значения
    Figure 00001012
    где
    Figure 00001013
    - наибольшее целое, не превышающее
    Figure 00001014
    затем, если jC>0, то jC раз выполняется операция целочисленного умножения
    Figure 00001015
    по модулю р1 знакопозиции
    Figure 00001016
    модулярной мантиссы
    Figure 00001017
    промежуточного результата
    Figure 00001018
    произведения чисел А и В и значения 2q-1, полученного сдвигом числа 1 на (q-1) двоичных разрядов влево, путем нахождения значения
    Figure 00001019
    где
    Figure 00001020
    - наибольшее целое, не превышающее
    Figure 00001021
    все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
  60. параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00001022
    по модулю р2 знакопозиции
    Figure 00001023
    модулярной мантиссы
    Figure 00001024
    промежуточного результата
    Figure 00001025
    произведения чисел А и В и значения
    Figure 00001026
    следующим образом: выполняется операция целочисленного умножения
    Figure 00001027
    по модулю р2; затем, если jC>0, то jC раз выполняется операция целочисленного умножения
    Figure 00001028
    по модулю р2;
  61. параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00001029
    Figure 00001030
    по модулю р3÷рn q-разрядного двоичного представления знакопозиции
    Figure 00001031
    модулярной мантиссы
    Figure 00001032
    промежуточного результата
    Figure 00001033
    произведения чисел А и В и значения
    Figure 00001034
    следующим образом: выполняется операция целочисленного умножения
    Figure 00001035
    по модулю р3÷рn; затем, если jC>0, то jC раз выполняется операция целочисленного умножения
    Figure 00001036
    по модулю р3÷рn;
  62. параллельно с этим в первом универсальном вычислительном ядре процессора выполняется коррекция
    Figure 00001037
    двоичного порядка
    Figure 00001038
    промежуточного результата
    Figure 00001039
    произведения чисел А и В;
  63. параллельно с этим во втором универсальном вычислительном ядре процессора выполняется коррекция
    Figure 00001040
    двоичного значения нижней границы интервальной логарифмической характеристики
    Figure 00001041
    промежуточного результата
    Figure 00001042
    произведения чисел А и В;
  64. параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется коррекция
    Figure 00001043
    двоичного значения верхней границы интервальной логарифмической характеристики
    Figure 00001044
    промежуточного результата
    Figure 00001045
    произведения чисел А и В;
  65. в случае если знак
    Figure 00001046
    промежуточного результата
    Figure 00001047
    произведения чисел А и В не равен 0, и порядок
    Figure 00001048
    промежуточного результата С произведения чисел А и В принадлежит интервалу
    Figure 00001049
    и значение
    Figure 00001050
    верхней границы интервальной логарифмической характеристики промежуточного результата
    Figure 00001047
    произведения чисел А и В меньше значения нижней границы интервальной логарифмической характеристики максимально возможного значения мантиссы
    Figure 00001051
    Figure 00001052
    то управляющее ядро передает во все модулярные и все универсальные целочисленные ядра значение поправочного коэффициента
    Figure 00001053
    после чего:
  66. в первое модулярное ядро загружают q-разрядные двоичные значения
    Figure 00001054
    и
    Figure 00001055
    мультипликативных инверсий
    Figure 00001056
    по модулю р1;
  67. параллельно с этим во второе модулярное ядро загружают q-разрядные двоичные значения
    Figure 00001057
    и
    Figure 00001058
    мультипликативных инверсий
    Figure 00001059
    и 2q-1 по модулю р2;
  68. параллельно с этим в третье ÷ n-ое модулярное ядро загружают q-разрядные двоичные значения
    Figure 00001060
    и
    Figure 00001061
    мультипликативных инверсий
    Figure 00001062
    и 2q-1 по модулю p3÷рn;
  69. параллельно с этим в первом универсальном вычислительном ядре процессора выполняется коррекция
    Figure 00001063
    двоичного порядка
    Figure 00001064
    промежуточного результата
    Figure 00001065
    произведения чисел А и В;
  70. параллельно с этим в управляющем ядре вычисляется количество итераций j=0, если
    Figure 00001066
    если
    Figure 00001067
  71. в случае если
    Figure 00001068
    выполняется один цикл деления на 2α, где
    Figure 00001069
    затем, если количество итераций j≥1, выполняется j циклов деления на 2α, где α=q-1;
  72. цикл деления на 2α состоит в следующем:
  73. в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00001070
    по модулю р1 q-разрядного двоичного представления знакопозиции
    Figure 00001071
    модулярной мантиссы
    Figure 00001072
    промежуточного результата
    Figure 00001073
    произведения чисел А и В и значения мультипликативной инверсии P1 по модулю
    Figure 00001074
    путем нахождения значения
    Figure 00001075
    Figure 00001076
    где
    Figure 00001077
    - наибольшее целое, не превышающее
    Figure 00001078
    все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
  74. параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00001079
    по модулю р2 q-разрядного двоичного представления знакопозиции
    Figure 00001080
    модулярной мантиссы
    Figure 00001081
    промежуточного результата
    Figure 00001082
    произведения чисел А и В и значения мультипликативной инверсии Р2 по модулю
    Figure 00001083
  75. параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00001084
    по модулю рn q-разрядного двоичного представления знакопозиции
    Figure 00001085
    модулярной мантиссы
    Figure 00001086
    промежуточного результата
    Figure 00001087
    произведения чисел А и В и значения мультипликативной инверсии Рn по модулю
    Figure 00001088
  76. после того, как получены значения элементов вектора
    Figure 00001089
    данный вектор загружается в векторные ядра следующим образом:
  77. в первое векторное вычислительное ядро загружают вектор q-разрядных элементов
    Figure 00001090
  78. параллельно с этим во второе векторное вычислительное ядро загружают вектор q-разрядных элементов
    Figure 00001091
  79. параллельно с этим в третье векторное вычислительное ядро загружают вектор q-разрядных элементов
    Figure 00001092
  80. после того, как элементы вектора
    Figure 00001093
    загружены в векторные ядра, производится вычисление ранга и частичного остатка от деления на 2q-1 модулярной мантиссы
    Figure 00001094
    промежуточного результата
    Figure 00001095
    произведения чисел А и В:
  81. - в первом векторном вычислительном ядре вычисляют скалярное произведение векторов
    Figure 00001096
    и
    Figure 00001097
    вычисляют значение
    Figure 00001098
    Figure 00001099
    где
    Figure 00001100
    - наибольшее целое, не превышающее
    Figure 00001101
    значение
    Figure 00001102
    передается в управляющее ядро;
  82. - параллельно с этим во втором векторном вычислительном ядре вычисляют скалярное произведение векторов
    Figure 00001103
    и
    Figure 00001104
    вычисляют значение
    Figure 00001105
    где
    Figure 00001106
    - наибольшее целое, не превышающее
    Figure 00001107
    значение
    Figure 00001108
    передается в управляющее ядро;
  83. - параллельно с этим в третьем векторном вычислительном ядре вычисляют скалярное произведение векторов
    Figure 00001109
    и
    Figure 00001110
    значение
    Figure 00001111
    передается в управляющее ядро;
  84. после того, как результаты скалярного произведения векторов переданы в управляющее ядро, в управляющем ядре вычисляется значение ранга
    Figure 00001112
    если
    Figure 00001113
    или
    Figure 00001114
    R=Rmax, если
    Figure 00001115
    и значение остатка от деления модулярной мантиссы
    Figure 00001116
    промежуточного результата
    Figure 00001117
    произведения чисел
    Figure 00001118
  85. после того, как управляющее ядро передаст во все модулярные и все универсальные целочисленные ядра значения
    Figure 00001119
    и α, выполняется деление модулярной мантиссы
    Figure 00001120
    промежуточного результата
    Figure 00001121
    произведения чисел А и В на число 2α:
  86. в первом модулярном вычислительном ядре процессора выполняется операция вычитания
    Figure 00001122
    по модулю р1 q-разрядного двоичного представления знакопозиции
    Figure 00001123
    модулярной мантиссы
    Figure 00001124
    промежуточного результата
    Figure 00001125
    произведения чисел А и В и значения
    Figure 00001126
    следующим образом: если
    Figure 00001127
    Figure 00001128
    то
    Figure 00001129
    если
    Figure 00001130
    то
    Figure 00001131
    после чего выполняется операция умножения
    Figure 00001132
    по модулю р1 q-разрядного двоичного представления знакопозиции
    Figure 00001133
    модулярной мантиссы
    Figure 00001134
    промежуточного результата
    Figure 00001135
    произведения чисел А и В и значения мультипликативной инверсии 2α по модулю
    Figure 00001136
    путем нахождения значения
    Figure 00001137
  87. Figure 00001138
    - наибольшее целое, не превышающее
    Figure 00001139
    после чего, если
    Figure 00001140
    , выполняется операция сложения
    Figure 00001141
    по модулю р1 q-разрядного двоичного представления знакопозиции
    Figure 00001142
    модулярной мантиссы
    Figure 00001143
    Figure 00001144
    промежуточного результата
    Figure 00001145
    произведения чисел А и В следующим образом: если
    Figure 00001146
    , если
    Figure 00001147
    то
    Figure 00001148
    все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
  88. параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция вычитания
    Figure 00001149
    по модулю р2 q-разрядного двоичного представления знакопозиции
    Figure 00001150
    модулярной мантиссы
    Figure 00001151
    промежуточного результата
    Figure 00001152
    произведения чисел А и В и значения
    Figure 00001153
    после чего выполняется операция умножения
    Figure 00001154
    по модулю р2 q-разрядного двоичного представления знакопозиции
    Figure 00001155
    и значения мультипликативной инверсии 2α по модулю
    Figure 00001156
    после чего, если
    Figure 00001157
    , выполняется операция сложения
    Figure 00001158
    по модулю р2;
  89. параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется операция вычитания
    Figure 00001159
    по модулю р1n q-разрядного двоичного представления знакопозиции
    Figure 00001160
    модулярной мантиссы
    Figure 00001161
    промежуточного результата
    Figure 00001162
    произведения чисел А и В и значения
    Figure 00001163
    после чего выполняется операция умножения
    Figure 00001164
    по модулю рn q-разрядного двоичного представления знакопозиции
    Figure 00001165
    и значения мультипликативной инверсии 2α по модулю
    Figure 00001166
    после чего, если
    Figure 00001167
    , выполняется операция сложения
    Figure 00001168
    по модулю рn;
  90. параллельно с этим во втором универсальном вычислительном ядре процессора выполняется коррекция
    Figure 00001169
    если
    Figure 00001170
    иначе
    Figure 00001171
    двоичного значения нижней границы интервальной логарифмической характеристики
    Figure 00001172
    промежуточного результата
    Figure 00001173
    произведения чисел А и В;
  91. параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется коррекция
    Figure 00001174
    если
    Figure 00001175
    иначе
    Figure 00001176
    Figure 00001177
    двоичного значения верхней границы интервальной логарифмической характеристики
    Figure 00001178
    промежуточного результата
    Figure 00001179
    произведения чисел А и В; цикл деления на 2α заканчивается;
  92. если знак
    Figure 00001180
    промежуточного результата
    Figure 00001181
    произведения чисел А и В не равен 0 и значение
    Figure 00001182
    верхней границы интервальной логарифмической характеристики промежуточного результата
    Figure 00001183
    произведения чисел А и В больше или равно значению нижней границы интервальной логарифмической характеристики максимально возможного значения мантиссы
    Figure 00001184
    то управляющее ядро передает во все модулярные и все универсальные целочисленные ядра значение поправочных коэффициентов zA, zB, после чего:
  93. в первое модулярное ядро загружают q-разрядные двоичные значения
    Figure 00001185
    Figure 00001186
    мультипликативных инверсий
    Figure 00001187
    по модулю р1;
  94. параллельно с этим во второе модулярное ядро загружают q-разрядные двоичные значения
    Figure 00001188
    Figure 00001189
    и
    Figure 00001190
    мультипликативных инверсий
    Figure 00001191
    Figure 00001192
    и 2q-1 по модулю р2;
  95. параллельно с этим в третье ÷ n-ое модулярное ядро загружают q-разрядные двоичные значения
    Figure 00001193
    Figure 00001194
    и
    Figure 00001195
    мультипликативных инверсий
    Figure 00001196
    Figure 00001197
    и 2q-1 по модулю р3÷рn;
  96. параллельно с этим в первом универсальном вычислительном ядре процессора выполняется коррекция
    Figure 00001198
    двоичного порядка
    Figure 00001199
    промежуточного результата
    Figure 00001183
    произведения чисел А и В;
  97. параллельно с этим в управляющем ядре вычисляется количество итераций jA=0, если zA≤q-1,
    Figure 00001200
    если zA>q-1 и jB=0, если zB≤q-1,
    Figure 00001201
    если zB>q-1.
  98. в случае если
    Figure 00001202
    выполняется один цикл деления
    Figure 00001203
    на 2α, где
    Figure 00001204
    Figure 00001205
    затем, если количество итераций jA≥1, выполняется jA циклов деления
    Figure 00001206
    на 2α, где α=q-1;
  99. цикл деления
    Figure 00001206
    на 2α состоит в следующем:
  100. в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00001207
    по модулю р1 q-разрядного двоичного представления знакопозиции
    Figure 00001208
    модулярной мантиссы
    Figure 00001209
    числа А и значения мультипликативной инверсии Р1 по модулю р1
    Figure 00001210
    , путем нахождения значения
    Figure 00001211
    где
    Figure 00001212
    - наибольшее целое, не превышающее
    Figure 00001213
    все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
  101. параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00001214
    по модулю р2 q- разрядного двоичного представления знакопозиции
    Figure 00001215
    модулярной мантиссы
    Figure 00001216
    и значения мультипликативной инверсии Р2 по модулю
    Figure 00001217
  102. параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00001218
    Figure 00001219
    по модулю р3÷рn q-разрядного двоичного представления знакопозиции
    Figure 00001220
    модулярной мантиссы
    Figure 00001221
    и значения мультипликативной инверсии Р3÷Рn по модулю
    Figure 00001222
  103. после того, как получены значения элементов вектора
    Figure 00001223
    данный вектор загружается в векторные ядра следующим образом:
  104. в первое векторное вычислительное ядро загружают вектор q-разрядных элементов
    Figure 00001224
  105. параллельно с этим во второе векторное вычислительное ядро загружают вектор q-разрядных элементов
    Figure 00001225
  106. параллельно с этим в третье векторное вычислительное ядро загружают вектор q-разрядных элементов
    Figure 00001226
  107. после того, как элементы вектора
    Figure 00001227
    загружены в векторные ядра производится вычисление ранга и частичного остатка от деления на 2q-1 модулярной мантиссы
    Figure 00001228
    числа А следующим образом:
  108. - в первом векторном вычислительном ядре вычисляют скалярное произведение векторов
    Figure 00001229
    и
    Figure 00001230
    вычисляют значение
    Figure 00001231
    Figure 00001232
    где
    Figure 00001233
    - наибольшее целое, на превышающее
    Figure 00001234
    значение
    Figure 00001235
    передается в управляющее ядро;
  109. - параллельно с этим во втором векторном вычислительном ядре вычисляют скалярное произведение векторов
    Figure 00001236
    и
    Figure 00001237
    вычисляют значение
    Figure 00001238
    где
    Figure 00001239
    - наибольшее целое, не превышающее
    Figure 00001240
    значение
    Figure 00001241
    передается в управляющее ядро;
  110. - параллельно с этим в третьем векторном вычислительном ядре вычисляют скалярное произведение векторов
    Figure 00001242
    и
    Figure 00001243
    значение
    Figure 00001244
    передается в управляющее ядро;
  111. после того, как результаты скалярного произведения векторов переданы в управляющее ядро, в управляющем ядре вычисляется значение ранга
    Figure 00001245
    , если
    Figure 00001246
    или
    Figure 00001247
    если
    Figure 00001248
    и значение остатка от деления модулярной мантиссы
    Figure 00001249
    числа А
    Figure 00001250
    Figure 00001251
  112. после того, как управляющее ядро передаст во все модулярные и все универсальные целочисленные ядра значения
    Figure 00001252
    и α, выполняется деление модулярной мантиссы
    Figure 00001253
    числа А на число 2α:
  113. в первом модулярном вычислительном ядре процессора выполняется операция вычитания
    Figure 00001254
    по модулю р1 q-разрядного двоичного представления знакопозиции
    Figure 00001255
    модулярной мантиссы
    Figure 00001256
    числа А и значения
    Figure 00001257
    следующим образом: если
    Figure 00001258
    то
    Figure 00001259
    если
    Figure 00001260
    то
    Figure 00001261
    после чего выполняется операция умножения
    Figure 00001262
    по модулю р1 q-разрядного двоичного представления знакопозиции
    Figure 00001263
    модулярной мантиссы
    Figure 00001264
    числа А и значения мультипликативной инверсии 2α по
  114. модулю P1
    Figure 00001265
    путем нахождения значения
    Figure 00001266
    -
    Figure 00001267
    где
    Figure 00001268
    - наибольшее целое, не превышающее
    Figure 00001269
    после чего, если
    Figure 00001270
    , выполняется операция сложения
    Figure 00001271
    по модулю р1 q-разрядного двоичного представления знакопозиции
    Figure 00001272
    модулярной мантиссы
    Figure 00001273
    Figure 00001274
    числа А следующим образом: если
    Figure 00001275
    то
    Figure 00001276
    , если
    Figure 00001277
    то
    Figure 00001278
    все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
  115. параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция вычитания
    Figure 00001279
    по модулю р2 q-разрядного двоичного представления знакопозиции
    Figure 00001280
    модулярной мантиссы
    Figure 00001281
    числа А и значения
    Figure 00001282
    после чего выполняется операция умножения
    Figure 00001283
    по модулю р2 q-разрядного двоичного представления знакопозиции
    Figure 00001284
    и значения мультипликативной инверсии 2α по модулю
    Figure 00001285
    после чего, если
    Figure 00001286
    , выполняется операция сложения
    Figure 00001287
    по модулю р2;
  116. параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется операция вычитания
    Figure 00001288
    по модулю р3÷рn q-разрядного двоичного представления знакопозиции
    Figure 00001289
    модулярной мантиссы
    Figure 00001290
    числа А и значения
    Figure 00001291
    после чего выполняется операция умножения
    Figure 00001292
    по модулю р3÷рn q-разрядного двоичного представления знакопозиции
    Figure 00001293
    и значения мультипликативной инверсии 2α по модулю
    Figure 00001294
    после чего, если
    Figure 00001295
    , выполняется операция сложения
    Figure 00001296
    по модулю р3÷рn;
  117. параллельно с этим во втором универсальном вычислительном ядре процессора выполняется коррекция
    Figure 00001297
    если
    Figure 00001298
    иначе
    Figure 00001299
    двоичного значения нижней границы интервальной логарифмической характеристики
    Figure 00001300
    промежуточного результата
    Figure 00001301
    произведения чисел А и В;
  118. параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется коррекция
    Figure 00001302
    если
    Figure 00001303
    иначе
    Figure 00001304
    Figure 00001305
    двоичного значения верхней границы интервальной логарифмической характеристики
    Figure 00001306
    промежуточного результата
    Figure 00001307
    произведения чисел А и В;
  119. цикл деления
    Figure 00001308
    завершается;
  120. в случае если
    Figure 00001309
    выполняется один цикл деления
    Figure 00001310
    на 2α, где α=
    Figure 00001311
    затем если количество итераций jB≥1, выполняется jB циклов деления
    Figure 00001312
    на 2α, где α=q-1;
  121. цикл деления
    Figure 00001313
    на 2α состоит в следующем:
  122. в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00001314
    по модулю р1 q-разрядного двоичного представления знакопозиции
    Figure 00001315
    модулярной мантиссы
    Figure 00001316
    числа В и значения мультипликативной инверсии Р1 по модулю р1
    Figure 00001317
    путем нахождения значения
    Figure 00001318
    - наибольшее целое, не превышающее
    Figure 00001319
    все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
  123. параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00001320
    по модулю р2 q-разрядного двоичного представления знакопозиции
    Figure 00001321
    модулярной мантиссы
    Figure 00001322
    и значения мультипликативной инверсии Р2 по модулю
    Figure 00001323
  124. параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00001324
    Figure 00001325
    по модулю р3÷рn q-разрядного двоичного представления знакопозиции
    Figure 00001326
    модулярной мантиссы
    Figure 00001327
    и значения мультипликативной инверсии Р3÷Рn по модулю
    Figure 00001328
  125. после того, как получены значения элементов вектора
    Figure 00001329
    данный вектор загружается в векторные ядра следующим образом:
  126. в первое векторное вычислительное ядро загружают вектор q-разрядных элементов
    Figure 00001330
  127. параллельно с этим во второе векторное вычислительное ядро загружают вектор q-разрядных элементов
    Figure 00001331
  128. параллельно с этим в третье векторное вычислительное ядро загружают вектор q-разрядных элементов
    Figure 00001332
  129. после того, как элементы вектора
    Figure 00001333
    загружены в векторные ядра, производится вычисление ранга и остатка от деления на 2q-1 следующим образом:
  130. в первом векторном вычислительном ядре вычисляют скалярное произведение векторов
    Figure 00001334
    и
    Figure 00001335
    значение
    Figure 00001336
    передается в управляющее ядро;
  131. параллельно с этим во втором векторном вычислительном ядре вычисляют скалярное произведение векторов
    Figure 00001337
    и
    Figure 00001338
    значение
    Figure 00001339
    передается в управляющее ядро;
  132. параллельно с этим в третьем векторном вычислительном ядре вычисляют скалярное произведение векторов
    Figure 00001340
    и
    Figure 00001341
    значение
    Figure 00001342
    передается в управляющее ядро;
  133. после того, как результаты скалярного произведения векторов переданы в управляющее ядро, в управляющем ядре вычисляется значение ранга RB=RB min, если
    Figure 00001343
    Figure 00001344
    если
    Figure 00001345
    и значение остатка от деления модулярной мантиссы
    Figure 00001346
    числа В
    Figure 00001347
    Figure 00001348
  134. после того, как управляющее ядро передаст во все модулярные и все универсальные целочисленные ядра значения
    Figure 00001349
    и α, выполняется деление модулярной мантиссы
    Figure 00001350
    числа В на число 2α:
  135. в первом модулярном вычислительном ядре процессора выполняется операция вычитания
    Figure 00001351
    по модулю р1 q-разрядного двоичного представления знакопозиции
    Figure 00001352
    модулярной мантиссы,
    Figure 00001353
    числа В и значения
    Figure 00001354
    следующим образом: если
    Figure 00001355
    то
    Figure 00001356
    если
    Figure 00001357
    то
    Figure 00001358
    после чего выполняется операция умножения
    Figure 00001359
    по модулю р1 q-разрядного двоичного представления знакопозиции
    Figure 00001360
    модулярной мантиссы
    Figure 00001361
    числа В и значения мультипликативной инверсии 2α по модулю p1
    Figure 00001362
    путем нахождения значения
    Figure 00001363
    -
    Figure 00001364
    где
    Figure 00001365
    - наибольшее целое, не превышающее
    Figure 00001366
    после чего, если
    Figure 00001367
    , выполняется операция сложения
    Figure 00001368
    по модулю р1 q-разрядного двоичного представления знакопозиции
    Figure 00001369
    модулярной мантиссы
    Figure 00001370
    Figure 00001371
    числа В следующим образом: если
    Figure 00001372
    то
    Figure 00001373
    , если
    Figure 00001374
    то
    Figure 00001375
    все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
  136. параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция вычитания
    Figure 00001376
    по модулю р2 q-разрядного двоичного представления знакопозиции
    Figure 00001377
    модулярной мантиссы
    Figure 00001378
    числа В и значения
    Figure 00001379
    после чего выполняется операция умножения
    Figure 00001380
    по модулю р2 q-разрядного двоичного представления знакопозиции
    Figure 00001381
    и значения мультипликативной инверсии 2α по модулю
    Figure 00001382
    после чего, если
    Figure 00001383
    , выполняется операция сложения
    Figure 00001384
    по модулю р2;
  137. параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется операция вычитания
    Figure 00001385
    по модулю р3÷рn q-разрядного двоичного представления знакопозиции
    Figure 00001386
    модулярной мантиссы
    Figure 00001387
    числа В и значения
    Figure 00001388
    после чего выполняется операция умножения
    Figure 00001389
    по модулю р3÷рn q-разрядного двоичного представления знакопозиции
    Figure 00001390
    и значения мультипликативной инверсии 2α по модулю
    Figure 00001391
    после чего, если
    Figure 00001392
    , выполняется операция сложения
    Figure 00001393
    по модулю р3÷рn;
  138. параллельно с этим во втором универсальном вычислительном ядре процессора выполняется коррекция
    Figure 00001394
    если
    Figure 00001395
    иначе
    Figure 00001396
    двоичного значения нижней границы интервальной логарифмической характеристики
    Figure 00001397
    промежуточного результата
    Figure 00001398
    произведения чисел А и В;
  139. параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется коррекция
    Figure 00001399
    если
    Figure 00001400
    иначе
    Figure 00001401
    Figure 00001402
    двоичного значения верхней границы интервальной логарифмической характеристики
    Figure 00001403
    промежуточного результата
    Figure 00001404
    произведения чисел А и В;
  140. цикл деления
    Figure 00001405
    на 2α завершается;
  141. после того, как выполнена коррекция мантисс
    Figure 00001406
    и
    Figure 00001407
    Figure 00001408
    чисел А и В соответственно, выполняется их умножение следующим образом:
  142. в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00001409
    по модулю р1 q-разрядных двоичных представлений знакопозиций
    Figure 00001410
    модулярных мантисс
    Figure 00001411
    и
    Figure 00001412
    чисел А и В соответственно, путем нахождения значения
    Figure 00001413
    Figure 00001414
    где
    Figure 00001415
    - наибольшее целое, не превышающее
    Figure 00001416
  143. параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00001417
    по модулю р2 q-разрядных двоичных представлений знакопозиций
    Figure 00001418
    модулярных мантисс
    Figure 00001419
    и
    Figure 00001420
    чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
  144. параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения
    Figure 00001421
    Figure 00001422
    по модулю р3÷рn q-разрядных двоичных представлений знакопозиций
    Figure 00001423
    модулярных мантисс
    Figure 00001424
    и
    Figure 00001425
    чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
  145. в результате выполнения данных операций получается произведение
    Figure 00001426
    Figure 00001427
    чисел
    Figure 00001428
    и
    Figure 00001429
    Figure 00001430
    представленное в модулярно-логарифмическом формате с плавающей точкой.
RU2017135775A 2017-10-06 2017-10-06 Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах RU2666285C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2017135775A RU2666285C1 (ru) 2017-10-06 2017-10-06 Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2017135775A RU2666285C1 (ru) 2017-10-06 2017-10-06 Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах

Publications (1)

Publication Number Publication Date
RU2666285C1 true RU2666285C1 (ru) 2018-09-06

Family

ID=63459765

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2017135775A RU2666285C1 (ru) 2017-10-06 2017-10-06 Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах

Country Status (1)

Country Link
RU (1) RU2666285C1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116501511A (zh) * 2023-06-29 2023-07-28 恒生电子股份有限公司 内存尺寸处理方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4366549A (en) * 1978-05-01 1982-12-28 Aisuke Katayama Multiplier with index transforms modulo a prime or modulo a fermat prime and the fermat prime less one
US5144574A (en) * 1989-01-30 1992-09-01 Nippon Telegraph And Telephone Corporation Modular multiplication method and the system for processing data
US20040010532A1 (en) * 2002-07-09 2004-01-15 Silicon Integrated Systems Corp. Apparatus and method for computing a logarithm of a floating-point number
RU2275677C2 (ru) * 2003-06-30 2006-04-27 Интел Корпорейшн Способ, устройство и команда для выполнения знаковой операции умножения
RU2509345C1 (ru) * 2012-07-27 2014-03-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Вятский государственный университет ФГБОУ ВПО "ВятГУ" Способ организации выполнения операции умножения двух чисел в модулярно-позиционном формате представления с плавающей точкой на универсальных многоядерных процессорах

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4366549A (en) * 1978-05-01 1982-12-28 Aisuke Katayama Multiplier with index transforms modulo a prime or modulo a fermat prime and the fermat prime less one
US5144574A (en) * 1989-01-30 1992-09-01 Nippon Telegraph And Telephone Corporation Modular multiplication method and the system for processing data
US20040010532A1 (en) * 2002-07-09 2004-01-15 Silicon Integrated Systems Corp. Apparatus and method for computing a logarithm of a floating-point number
RU2275677C2 (ru) * 2003-06-30 2006-04-27 Интел Корпорейшн Способ, устройство и команда для выполнения знаковой операции умножения
RU2509345C1 (ru) * 2012-07-27 2014-03-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Вятский государственный университет ФГБОУ ВПО "ВятГУ" Способ организации выполнения операции умножения двух чисел в модулярно-позиционном формате представления с плавающей точкой на универсальных многоядерных процессорах

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116501511A (zh) * 2023-06-29 2023-07-28 恒生电子股份有限公司 内存尺寸处理方法、装置、电子设备及存储介质
CN116501511B (zh) * 2023-06-29 2023-09-15 恒生电子股份有限公司 内存尺寸处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US9519460B1 (en) Universal single instruction multiple data multiplier and wide accumulator unit
US10346133B1 (en) System and method of floating point multiply operation processing
US20120259904A1 (en) Floating point format converter
US20210182026A1 (en) Compressing like-magnitude partial products in multiply accumulation
US20070266072A1 (en) Method and apparatus for decimal number multiplication using hardware for binary number operations
US20120011187A1 (en) Parallel redundant decimal fused-multiply-add circuit
CN112241291A (zh) 用于指数函数实施的浮点单元
RU2666285C1 (ru) Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах
US20200133633A1 (en) Arithmetic processing apparatus and controlling method therefor
Gustafsson et al. Approximate floating-point operations with integer units by processing in the logarithmic domain
US7814138B2 (en) Method and apparatus for decimal number addition using hardware for binary number operations
US11237909B2 (en) Load exploitation and improved pipelineability of hardware instructions
CN106997284B (zh) 实现浮点运算操作的方法和装置
TW200532552A (en) Methods and apparatus for performing mathematical operations using scaled integers
US20240037179A1 (en) Data processing method and apparatus
US20190197084A1 (en) Data compression apparatus and data compression method and storage medium
RU2509345C1 (ru) Способ организации выполнения операции умножения двух чисел в модулярно-позиционном формате представления с плавающей точкой на универсальных многоядерных процессорах
US20220291899A1 (en) Processing unit, method and computer program for multiplication
US20190325311A1 (en) Neural network circuit
RU2652460C1 (ru) Способ организации выполнения операции умножения двух чисел в модулярно-индексном формате представления с плавающей точкой на универсальных многоядерных процессорах
Gonzalez-Navarro et al. A binary integer decimal-based multiplier for decimal floating-point arithmetic
RU2276805C2 (ru) Способ и устройство для выделения целой и дробных компонент из данных с плавающей точкой
Isupov et al. Multiple-precision summation on hybrid CPU-GPU platforms using RNS-based floating-point representation
WO2022204620A2 (en) Systems and methods for efficient accumulate and multiply-accumulate operations of floating-point numbers in a unified register file
US20210334635A1 (en) Neural network accelerator configured to perform operation on logarithm domain