RU2666285C1 - Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах - Google Patents
Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 239000013598 vector Substances 0.000 claims description 136
- 229910002056 binary alloy Inorganic materials 0.000 claims description 23
- 230000004992 fission Effects 0.000 claims description 2
- 230000014509 gene expression Effects 0.000 claims 8
- 238000005516 engineering process Methods 0.000 abstract description 4
- 239000000126 substance Substances 0.000 abstract 1
- 238000000205 computational method Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/4833—Logarithmic number system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/722—Modular 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), в котором масштабирование мантиссы осуществляется методом, использующим таблицы поправочных коэффициентов с применением интервально-позиционных характеристик. Недостаток данного способа состоит в том, что необходимо хранить таблицы поправочных коэффициентов большого размера, а также использовать вычислительные устройства с плавающей точкой для вычисления интервальной позиционной характеристики.
Техническим результатом применения способа организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах является оптимизация выполнения операции умножения в раз, где q - разрядность знакопозиций чисел в системе счисления в остаточных классах, за счет использования только целочисленных операций при умножении, проверке выхода за границы диапазона, масштабировании модулярных мантисс степенью двойки, при этом не требуется использования операций с плавающей точкой и подстановочных таблиц. Минимальное время выполнения операции умножения предложенным способом равно минимальному времени выполнения операции умножения способом (A.C. RU №2509345, БИ №7, 10.03.2014), при этом способ может быть применен для умножения любых операндов из заявленного диапазона представления, в чем заключается универсальность предлагаемого способа.
Описание способа организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах: реализация способа осуществляется посредством подачи набора электрических, нейронных либо других сигналов на устройства управления каждого вычислительного ядра многоядерного гибридного процессора, которые, в соответствии с данными сигналами, формируют управляющие команды для операционных устройств соответствующих вычислительных ядер.
В позиционных двоичных форматах с плавающей точкой стандарта IEEE-754 любое вещественное число представляется трехэлементным набором:
где М - рациональная мантисса, е - порядок числа, 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-разрядных оснований системы остаточных классов p1,р2, …, pn, таких, что ∀i1, i2∈{1, 2, …, n), i1≠i2: , q≤k, где - наибольший общий делитель для и , k - размер разрядной сетки процессора.
Целочисленную мантиссу М'=dtdt-1…d2d1 преобразуем в систему остаточных классов с заданными основаниями р1, p2, …, pn, получая тем самым модулярную мантиссу :
где mi∈[0, рi-1], i=1, 2, …, n - q-разрядные цифры (модулярные разряды) модулярной мантиссы , q - разрядность оснований p1, p2, …, pn, - операция получения остатка от деления М' на i-ое основание pi.
Определим ранг модулярной мантиссы как значение R, такое, что выполняется условие:
R∈[0,n-1] и вычисляется по формуле:
При условии, что 2q-1<pi<2q, где q - разрядность оснований р1, р2, …, рn, величина может быть вычислена по формуле , где wi - s-разрядные весовые коэффициенты. Тогда величина ранга может быть вычислена по формуле:
Определим верхнюю и нижнюю границы величины ранга модулярного числа как
где , , при условии, что 2q-1<рi<2q, - наибольшее целое, не превышающее , s - разрядность коэффициентов wi.
Согласно теоретико-числовой теореме Эйлера мультипликативную инверсию , соответствующую сравнению , можно вычислить следующим образом
где ϕ(pi) - функция Эйлера, равная количеству целых чисел в диапазоне [1, рi], взаимно простых с рi.
Пример. Вычислим значения мультипликативных инверсий Pi по модулям рi для системы с основаниями: р1=11, р2=13, р3=15:
Определим логарифмическую характеристику числа как значение двоичного логарифма от этого числа. Тогда логарифмическая характеристика модуля числа, представленного в формате [М, е, S], вычисляется следующим образом:
log2(М'⋅21-t⋅2е)=log2(М')+е-t+1=log2(М')+λ.
Определим интервальную логарифмическую характеристику мантиссы числа как целочисленный интервал [Lmin, Lm а х], нижняя и верхняя границы Lmin, Lm а х которого представлены r-разрядными двоичными числами без знака и вычисляются следующим образом:
Lmin=[log2(М')⋅2r-h-1],
Lm а х=Lmin+1
где , - наибольшее целое, не превышающее , [log2(М')⋅2r-h-1] - наибольшее целое, не превышающее log2(М')⋅2r-h-1.
Диапазон представления нижней и верхней границ Lmin, Lm а х интервальной логарифмической характеристики:
где - значение нижней границы интервальной логарифмической характеристики диапазона представления модулярных мантисс , - наибольшее целое, не превышающее .
Таким образом, число с плавающей точкой вида (1) можно преобразовать к следующему модулярно-логарифмическому формату:
где 〈m1, m2, …, mn〉 - набор знакопозиций (модулярных разрядов) модулярной мантиссы , λ- позиционный перемещенный порядок, представляющий собой целое двоичное число со знаком, Lmin, Lm a x - границы интервальной логарифмической характеристики мантиссы числа, представляющие собой целые двоичные числа без знака, σ - знак числа, причем если σ=-1, то число отрицательное, σ=1 - положительное, σ=0 - машинный ноль.
Диапазон допустимых значений модулярных мантисс в системе остаточных классов с основаниями p1, p2, … , рn определяется интервалом ; таким образом, 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.
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.
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. Вычисление ранга числа, представленного в модулярно-логарифмическом формате.
Пусть - число, представленное в модулярно-логарифмическом формате с плавающей точкой, где - модулярная мантисса числа А. Для того чтобы найти ранг R модулярной мантиссы , необходимо:
1. Вычислить значение минимальной величины ранга Rmin модулярной мантиссы : , где , , мультипликативная инверсия Рi по модулю рi, , - наибольшее целое, не превышающее , - наибольшее целое, не превышающее , s - разрядность , при условии, что 2q-1<рi<2q, s>1+log2n.
2. Вычислить значение максимальной величины ранга Rm a x модулярной мантиссы : где , - мультипликативная инверсия Рi по модулю рi, , - наибольшее целое, не превышающее , - наибольшее целое, не превышающее , s - разрядность , при условии, что 2q-1<рi<2q, s>1+log2n.
3. Если Rmin=Rm a x, то R=Rmin, иначе выполнить сравнение: если , то есть значение мантиссы меньше половины максимально возможного значения, то R=Rm a x, если , то есть значение мантиссы больше или равно половине максимально возможного значения, то R=Rmin, где LР/2=LР-2r-h-1, , , r - разрядность интервальной логарифмической характеристики числа .
Пример: необходимо вычислить ранги чисел A=53 и B=57. Используется три основания: р1=11, р2=13, р3=15. Р=р1⋅р2⋅р3=2145 - произведение оснований (верхний предел допустимого диапазона представления модулярных мантисс). , , , , , . Разрядность оснований q=4. Разрядность коэффициентов wi:s=5.
Значения верхних и нижних границ , коэффициентов для значений модулей р1=11, р2=13, р3=15 равны соответственно , , , , , .
Вычислим значение ранга первого числа.
1. Вычислим значение минимальной величины ранга Rmin модулярной мантиссы:
2. Вычислим значение максимальной величины ранга Rm a x модулярной мантиссы:
3. Так как Rmin=Rm a x, то RA=Rmin=1. Вычислим значение ранга второго числа.
Вычислим значение ранга второго числа.
1. Вычислим значение минимальной величины ранга Rmin модулярной мантиссы:
2. Вычислим значение максимальной величины ранга Rm a x модулярной мантиссы:
3. Так как Rmin=Rm a x, то RB=Rmin=1.
Алгоритм 2. Деление модулярной мантиссы числа, представленного в модулярно-логарифмическом формате, на число 2x (масштабирование степенью двойки).
Пусть - число, представленное в модулярно-логарифмическом формате с плавающей точкой, где - модулярная мантисса числа А. Для того чтобы найти результат деления модулярного числа на позиционное число 2x, необходимо:
1. Вычислить α. Если x>q-1, то вычислить значение , где - наименьшее целое, не превышающее , α=|х|q-1; если x≤q-1, то α=х.
2. Вычислить значение ранга R для модулярного числа в соответствии с алгоритмом 1.
3. Вычислить остаток от деления модулярного числа на рn+1=2q-1:
4. Вычислить значение , для чего вычесть из каждого значения знакопозиций модулярного числа значение остатка от деления на 2α
5. Вычислить значение , для чего умножить каждое значение знакопозиций модулярного числа на мультипликативные инверсии 2α по соответствующим модулям.
7. Шаги 2-6 выполнить j раз для α=q-1.
Пример. Необходимо разделить числа А=53 и В=57 на число 21. Используется три основания: р1=11, р2=13, р3=15. Р=р1⋅р2⋅р3=2145 - произведение оснований (верхний предел допустимого диапазона представления модулярных мантисс), , . Разрядность оснований q=4.
Значения мультипликативных инверсий по модулям р1=11, р2=13, р3=15 и для значений α=1, 2, 3 равны соответственно ; ; ; ; ; ; ; .
Значения остатков от деления и на 2α для значений модулей р1=11, р2=13, р3=15 и для значений α=1, 2, 3 равны соответственно
1. α=x=1, так как x=1<q=4-1.
2. Вычисляем ранг числа A=53 соответствии с алгоритмом 1. RA=1.
3. Вычисляем остаток от деления модулярного числа на 24-1=8:
5. Умножаем на мультипликативные инверсии двойки по соответствующим модулям:
1. α=х=1, так как х=1<q=4-1.
2. Вычисляем ранг числа В=57 соответствии с алгоритмом 1. RB=1.
3. Вычисляем остаток от деления модулярного числа на 24-1=8:
5. Умножаем на мультипликативные инверсии двойки по соответствующим модулям:
Алгоритм 3. Выполнение операции умножения с плавающей точкой в модулярно-логарифмическом формате. Для того чтобы найти произведение чисел и , представленных в модулярно-логарифмическом формате с плавающей точкой, необходимо:
1. Проверить результат на равенство 0. Если σС=σА⋅σВ=0, что означает равенство нулю одного из операндов или обоих операндов сразу, то
Если оба операнда ненулевые, то перейти к следующему шагу.
2. Присвоить знак произведению σС=σА⋅σВ. Определить верхнюю и нижнюю границы интервальной логарифмической характеристики результата , . Определить порядок результата λС=λА+λВ.
4. Проверить выход мантиссы результата за границы диапазона представления модулярных мантисс и выполнить умножение модулярных мантисс.
4.1.1. Вычислить значения поправочных коэффициентов L1 и L2: , , где - наибольшее целое, не превышающее , - наибольшее целое, не превышающее
Если |L1|≤|L2| и L2≥0, то zА=L1, zВ=0.
Если |L1|≤|L2| и L2<0, то zА=0, zВ=L1.
4.1.2. Вычислить значения скорректированных мантисс и операндов и скорректировать значение верхней и нижней границы интервальной логарифмической характеристики результата.
4.1.3. Скорректировать значение порядка результата λC=λC+L1.
4.1.4. Скорректировать значение верхней и нижней границы интервальной логарифмической характеристики результата если , то , иначе ;
4.2. Выполнить умножение модулярных мантисс путем нахождения значений , где - наибольшее целое, не превышающее
4.3.3. Вычислить значение порядка результата λC=λC-zC.
4.3.4. Выполнить коррекцию значений верхней и нижней границы интервальной логарифмической характеристики результата , .
4.4.2. Вычислить значение скорректированной мантиссы результата и скорректировать значение верхней и нижней границы интервальной логарифмической характеристики результата.
4.4.3. Вычислить значение порядка результата λС=λС+zС.
4.4.4. Выполнить коррекцию значений верхней и нижней границы интервальной логарифмической характеристики результата ; .
В результате выполнения данных операций получается произведение чисел и , представленное в модулярно-логарифмическом формате с плавающей точкой.
Пусть - числа, представленные в модулярно-логарифмическом формате с плавающей точкой, где и - модулярные мантиссы чисел А и В соответственно. Тогда способ умножения С=А⋅В чисел А и В, представленных в модулярно-логарифмическом формате с плавающей точкой (2), на гибридном многоядерном процессоре, содержащем n q-разрядных модулярных вычислительных ядер, одно k-разрядное и два r-разрядных универсальных целочисленных ядра, два специализированных s-разрядных векторных ядра, одно специализированное q-разрядное векторное ядро, одно специализированное управляющее ядро, определяется следующим образом.
1. Множитель и множимое , представленные в модулярно-логарифмическом формате с плавающей точкой, загружают в гибридный многоядерный процессор, содержащий n q-разрядных модулярных вычислительных ядер, одно k-разрядное и два r-разрядных универсальных целочисленных ядра, два специализированных s-разрядных векторных ядра, одно специализированное q-разрядное векторное ядро, одно специализированное управляющее ядро, следующим образом:
- в первое модулярное ядро гибридного многоядерного процессора загружают разрядные двоичные представления первых знакопозиций и модулярных мантисс и чисел А и В соответственно, а также основание системы остаточных классов р1 и значение мультипликативной инверсии Р1 по модулю р1 ;
- параллельно с этим во второе модулярное ядро гибридного многоядерного процессора загружают q-разрядные двоичные представления вторых знакопозиций и модулярных мантисс и чисел А и В соответственно, а также основание системы остаточных классов р2 и значение мультипликативной инверсии Р2 по модулю р2 ;
- и т.д.;
- параллельно с этим в n-ое модулярное ядро гибридного многоядерного процессора загружают q-разрядные двоичные представления n-ых знакопозиций и модулярных мантисс и чисел А и В соответственно, а также основание системы остаточных классов рn и значение мультипликативной инверсии Рn по модулю рn ;
- параллельно с этим в первое универсальное вычислительное ядро загружают k-разрядные двоичные порядки λА и λВ, а также знаки σА и σВ чисел А и В соответственно;
- параллельно с этим во второе универсальное вычислительное ядро загружают r-разрядные значения нижних границ интервальных логарифмических характеристик и чисел А и В соответственно;
- параллельно с этим в третье универсальное вычислительное ядро загружают r-разрядные значения верхних границ интервальных логарифмических характеристик и чисел А я В соответственно, а также r-разрядное значение нижней границы интервальной логарифмической характеристики диапазона представления модулярных мантисс Lр;
- параллельно с этим в первое векторное вычислительное ядро загружают вектор s-разрядных констант коэффициентов ;
- параллельно с этим во второе векторное вычислительное ядро загружают вектор s-разрядных констант коэффициентов ;
- параллельно с этим в третье векторное вычислительное ядро загружают вектор разрядных констант остатков от деления ;
- параллельно с этим в управляющее ядро загружают k-разрядные двоичные порядки λА и λВ, r-разрядные значения нижних границ интервальных логарифмических характеристик и и r-разрядные значения верхних границ интервальных логарифмических характеристик и чисел А и В соответственно, а также r-разрядное значение нижней границы интервальной логарифмической характеристики диапазона представления модулярных мантисс Lр.
2. После того, как множитель и множимое представленные в модулярно-логарифмическом формате с плавающей точкой, загружены в гибридный процессор, содержащий n q-разрядных модулярных вычислительных ядер, одно k-разрядное и два r-разрядных универсальных целочисленных ядра, два специализированных s-разрядных векторных ядра, одно специализированное q-разрядное векторное ядро, одно специализированное управляющее ядро, операция их умножения выполняется следующим образом:
- в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р1 q-разрядных двоичных представлений знакопозиций и модулярных мантисс и чисел А и В соответственно, путем нахождения значения , где - наибольшее целое, не превышающее ; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
-параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р2 q-разрядных двоичных представлений знакопозиций и модулярных мантисс и чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- и т.д.
- параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю рn q-разрядных двоичных представлений знакопозиций и модулярных мантисс и чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим в первом универсальном вычислительном ядре процессора выполняется сложение λC=λА+λВ двоичных порядков λА и λВ, а также умножение σС=σА⋅σВ знаков σА и σВ чисел А и В соответственно;
- параллельно с этим во втором универсальном вычислительном ядре процессора выполняется сложение двоичных значений нижних границ интервальных логарифмических характеристик и чисел А и В соответственно;
- параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется сложение двоичных значений верхних границ интервальных логарифмических характеристик и чисел А и В соответственно;
- параллельно с этим в управляющем ядре вычисляются следующие значения поправочных коэффициентов: , , , , , zА=L1+1, zВ=0, если |L1|≤|L2| и L2≥0, zА=0, zВ=L1+1, если |L1|≤|L2| и L2<0, , , если |L1|>|L2| и |L1+L2|2=1, , , если |L1|>|L2| и |L1+L2|2=0.
3. После того, как получено промежуточное значение произведения чисел и , выполняется коррекция результата следующим образом:
3.1. Если знак промежуточного результатапроизведения чисел А и Вне равен 0, и порядок промежуточного результата произведения чисел А и В принадлежит интервалу [2-2k-1; 2k-1-2], и значение верхней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В меньше значения нижней границы интервальной логарифмической характеристики максимально возможного значения мантиссы, то есть , , , то коррекции результата не требуется.
- в первом универсальном вычислительном ядре процессора выполняется обнуление двоичного порядка промежуточного результата произведения чисел А и В;
- параллельно с этим во втором универсальном вычислительном ядре процессора выполняется обнуление двоичного значения нижней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В;
- параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется обнуление двоичного значения верхней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В.
3.3. Если знак промежуточного результата произведения чисел А и В не равен 0 и значение , то есть модуль промежуточного результата произведения чисел А и В выходит за границы минимально возможного представления, то:
- в первом универсальном вычислительном ядре процессора выполняется обнуление двоичного порядка и знака промежуточного результата произведения чисел А и В;
- параллельно с этим во втором универсальном вычислительном ядре процессора выполняется обнуление двоичного значения нижней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В;
- параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется обнуление двоичного значения верхней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В;
- параллельно с этим в первом модулярном вычислительном ядре процессора выполняется обнуление значения первой знакопозиций промежуточного результата произведения чисел А и В;
-параллельно с этим во втором модулярном вычислительном ядре процессора выполняется обнуление значения второй знакопозиций промежуточного результата произведения чисел А и В;
- и т.д.
- параллельно с этим в n-ом модулярном вычислительном ядре процессора выполняется обнуление значения n-ой знакопозиций промежуточного результата произведения чисел А и В.
3.4. Если знак промежуточного результата произведения чисел А и В не равен 0 и значение , то есть модуль промежуточного результата произведения чисел А и В выходит за границы максимального возможного представления, то:
- в первом универсальном вычислительном ядре процессора выполняется присвоение двоичному порядку промежуточного результата произведения числе А и В;
- параллельно с этим во втором универсальном вычислительном ядре процессора выполняется обнуление двоичного значения нижней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В;
- параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется обнуление двоичного значения верхней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В;
- параллельно с этим в первом модулярном вычислительном ядре процессора выполняется обнуление значения первой знакопозиции промежуточного результата произведения чисел А и В;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется обнуление значения второй знакопозиции промежуточного результата произведения чисел А и В;
- и т.д.
- параллеьно с этим в n-ом модулярном вычислительном ядре процессора выполняется обнуление значения n-ой знакопозиции промежуточного результта произведения чисел А и В.
3.5. Знак промежутоного результата произведения чисел А и В не равен 0, и порядок промежуточного результата умножения чисел А и В принадлежит интервалу , где - наибольшее целое, не превышающее , и значение верхней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В меньше значения нижней границы интервальной логарифмической характеристики максимально возможного значения мантиссы , то управляющее ядро передает во все модулярные и все универсальные целочисленные ядра значения поправочных коэффициентов: , , где - наибольшее целое, не превышающее , после чего:
- в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р1 q-разрядного двоичного представления знакопозиций модулярной мантиссы ) промежуточного результата произведения чисел А и В и значения следующим образом: выполняется операция целочисленного умножения по модулю р1 q-разрядного двоичного представления знакопозиций модулярной мантиссы промежуточного результата произведения чисел А и В и значения , полученного сдвигом числа 1 на двоичных разрядов влево, путем нахождения значения , где - наибольшее целое, не превышающее ; затем, если , то раз выполняется операция целочисленного умножения по модулю р1 q-разрядного двоичного представления знакопозиций модулярной мантиссы промежуточного результата произведения чисел А и В и значения 2q-1, полученного сдвигом числа 1 на (q-1) двоичных разрядов влево, путем нахождения значения , где - наибольшее целое, не превышающее ; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора
выполняется операция целочисленного умножения по модулю р2 q-разрядного двоичного представления знакопозиций модулярной мантиссы промежуточного результата произведения чисел А и В и значения следующим образом: выполняется операция целочисленного умножения по модулю р2; затем, если , то раз выполняется операция целочисленного умножения по модулю р2;
- и т.д.
- параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю рn q-разрядного двоичного представления знакопозиций модулярной мантиссы промежуточного результата произведения чисел А и В и значения следующим образом: выполняется операция целочисленного умножения по модулю рn; затем, если , то раз выполняется операция целочисленного умножения по модулю рn;
- параллельно с этим в первом универсальном вычислительном ядре процессора выполняется коррекция двоичного порядка промежуточного результата произведения чисел А и В;
- параллельно с этим во втором универсальном вычислительном ядре процессора выполняется коррекция двоичного значения нижней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В;
- параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется коррекциядвоичного значения верхней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В.
3.6. Если знакпромежуточного результатапроизведения чисел А и В не равен 0, и порядок промежуточного результата произведения чисел А и В принадлежит интервалу , где - наибольшее целое, не превышающее , и значение верхней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В меньше значения нижней границы интервальной логарифмической характеристики максимально возможного значения мантиссы , то управляющее ядро передает во все модулярные и все универсальные целочисленные ядра значение поправочного коэффициента , после чего:
- в первое модулярное ядро загружают ^-разрядные двоичные значенияи , мультипликативных инверсий и 2q-1 по модулю р1;
- параллельно с этим во второе модулярное ядро загружают q-разрядные двоичные значения и мультипликативных инверсий и 2q-1 по модулю р2;
- и т.д.;
- параллельно с этим в n-ое модулярное ядро загружают q-разрядные двоичные значения и мультипликативных инверсий и 2q-1 по модулю рn;
- параллельно с этим в первом универсальном вычислительном ядре процессора выполняется коррекция двоичного порядка промежуточного результата произведения чисел А и В;
- параллельно с этим в управляющем ядре вычисляется количество итераций j: j=0, если , , если , где - наибольшее целое, не превышающее .
3.6.2. Если , то действия 3.6.3-3.6.7 выполняются один раз для , затем если количество итераций j≥1, то действия 3.6.3-3.6.7 выполняются j раз для α=q-1.
- в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р1 q-разрядного двоичного представления знакопозиций модулярной мантиссы промежуточного результатапроизведения чисел А и В и значения мультипликативной инверсии Р1 по модулю р1 , путем нахождения значения где - наибольшее целое, не превышающее ; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р2 q-разрядного двоичного представления знакопозиций модулярной мантиссы промежуточного результата произведения чисел А и В и значения мультипликативной инверсии Р2 по модулю р2 ;
- и т.д.
- параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция целочисленного умноженияпо модулю рn q-разрядного двоичного представления знакопозиций модулярной мантиссы промежуточного результата произведения чисел А и В и значения мультипликативной инверсии Рn по модулю рn .
3.6.4. После того, как получены значения элементов вектора , данный вектор загружается в векторные ядра следующим образом:
- параллельно с этим во второе векторное вычислительное ядро загружают вектор q-разрядных элементов , q≤s;
3.6.5. После того, как элементы вектора загружены в векторные ядра, производится вычисление ранга и частичного остатка от деления на 2q-1 модулярной мантиссы промежуточного результата произведения чисел А я В:
-в первом векторном вычислительном ядре вычисляют скалярное произведение векторов и , вычисляют значение , где - наибольшее целое, не превышающее значение передается в управляющее ядро;
- параллельно с этим во втором векторном вычислительном ядре вычисляют скалярное произведение векторов и вычисляют значение , где - наибольшее целое, не превышающее , значение передается в управляющее ядро;
- параллельно с этим в третьем векторном вычислительном ядре вычисляют скалярное произведение векторов и , значение передается в управляющее ядро.
3.6.6. После того, как результаты скалярного произведения векторов переданы в управляющее ядро, в управляющем ядре вычисляется значение ранга , если или , R=Rmax, если , и значение остатка от деления модулярной мантиссы промежуточного результата произведения чисел А и В .
3.6.7. После того, как управляющее ядро передаст во все модулярные и все универсальные целочисленные ядра значения и α, выполняется деление модулярной мантиссы промежуточного результатапроизведения чисел А и В на число 2α:
- в первом модулярном вычислительном ядре процессора выполняется операция вычитания по модулю р1 q-разрядного двоичного представления знакопозиций модулярной мантиссы промежуточного результата произведения чисел А и В и значения следующим образом: если , то , если, то; после чего выполняется операция умножения по модулю р1 q-разрядного двоичного представления знакопозиций модулярной мантиссы промежуточного результатапроизведения чисел А и В и значения мультипликативной инверсии 2α по модулю р1 путем нахождения значения , где - наибольшее целое, не превышающее ; после чего если выполняется операция сложения по модулю р1 q-разрядного двоичного представления знакопозиций модулярной мантиссы промежуточного результата произведения чисел А и В следующим образом: если , то если , то; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция вычитания по модулю р2 q-разрядного двоичного представления знакопозиций модулярной мантиссы промежуточного результатапроизведения чисел А и В и значения , после чего выполняется операция умножения по модулю р2 q-разрядного двоичного представления знакопозиций и значения мультипликативной инверсии 2α по модулю р2 ; после чего если выполняется операция сложения по модулю р2;
- и т.д.
- параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция вычитания по модулю рn q-разрядного двоичного представления знакопозиций модулярной мантиссы промежуточного результата произведения чисел А и В и значения ; после чего выполняется операция умножения по модулю рn q-разрядного двоичного представления знакопозиций и значения мультипликативной инверсии 2α по модулю рn ; после чего если выполняется операция сложения по модулю р1n;
- параллельно с этим во втором универсальном вычислительном ядре процессора выполняется коррекция если , иначе двоичного значения нижней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В;
- параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется коррекция , если иначе двоичного значения верхней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В;
3.7. Если знак промежуточного результата произведения чисел А и В не равен 0, и значение верхней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В больше или равно значению нижней границы интервальной логарифмической характеристики максимально возможного значения мантиссы , то управляющее ядро передает во все модулярные и все универсальные целочисленные ядра значение поправочных коэффициентов zА, zВ, после чего:
- в первое модулярное ядро загружают q-разрядные двоичные значения , и мультипликативных инверсий , и 2q-1 по модулю р1;
- параллельно с этим во второе модулярное ядро загружают q-разрядные двоичные значения , и мультипликативных инверсий , и 2q-1 по модулю р2;
- и т.д.;
- параллельно с этим в и-ое модулярное ядро загружают q-разрядные двоичные значения,имультипликативных инверсий , и 2q-1 по модулю рn;
- параллельно с этим в первом универсальном вычислительном ядре процессора выполняется коррекция двоичного порядка промежуточного результата произведения чисел А и В;
- параллельно с этим в управляющем ядре вычисляется количество итераций jА=0, если zА<q-1, , если zА>q-1 и jВ=0, если zВ<q-1, , если zВ>q-1.
3.7.2. Если |ZA|q-1>0, то действия 3.7.3-3.7.7 выполняются один раз для затем если количество итераций jА≥1, то действия 3.7.3-3.7.7 выполняются jА раз для α=q-1.
- в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р1 q-разрядного двоичного представления знакопозиций модулярной мантиссы числа А и значения мультипликативной инверсии Р1 по модулю р1 , путем нахождения значения , где - наибольшее целое, не превышающее; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р2 q-разрядного двоичного представления знакопозиций модулярной мантиссы и значения мультипликативной инверсии Р2 по модулю р2 ;
- и т.д.
- параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю рn q-разрядного двоичного представления знакопозиций модулярной мантиссы и значения мультипликативной инверсии Рn по модулю рn ;
3.7.4. После того, как получены значения элементов вектора , данный вектор загружается в векторные ядра следующим образом:
- параллельно с этим во второе векторное вычислительное ядро загружают вектор q-разрядных элементов , q≤s;
- параллельно с этим в третье векторное вычислительное ядро загружают вектор q-разрядных элементов .
3.7.5. После того, как элементы вектора загружены в векторные ядра, производится вычисление ранга и частичного остатка от деления на 2q-1 модулярной мантиссы числа А следующим образом:
- в первом векторном вычислительном ядре вычисляют скалярное произведение векторов и , вычисляют значение , где - наибольшее целое, на превышающее , значение передается в управляющее ядро;
- параллельно с этим во втором векторном вычислительном ядре вычисляют скалярное произведение векторов и , вычисляют значение , где - наибольшее целое, не превышающее, значение передается в управляющее ядро;
- параллельно с этим в третьем векторном вычислительном ядре вычисляют скалярное произведение векторов и , значение передается в управляющее ядро.
3.7.6. После того, как результаты скалярного произведения векторов переданы в управляющее ядро, в управляющем ядре вычисляется значение ранга , если или, R=Rm а х, если и значение остатка от деления модулярной мантиссы числа А на 2α: .
3.7.7. После того, как управляющее ядро передаст во все модулярные и все универсальные целочисленные ядра значения и α, выполняется деление модулярной мантиссы числа А на число 2α:
- в первом модулярном вычислительном ядре процессора выполняется операция вычитания по модулю р1 q-разрядного двоичного представления знакопозиций модулярной мантиссы числа А и значения следующим образом: если , то , если, то ; после чего выполняется операция умножения по модулю р1 q-разрядного двоичного представления знакопозиций модулярной мантиссы числа А и значения мультипликативной инверсии 2α по модулю р1 путем нахождения значения , где - наибольшее целое, не превышающее ; после чего если выполняется операция сложенияпо модулю р1 q-разрядного двоичного представления знакопозиций модулярной мантиссы числа А следующим образом: если , то если , то ; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция вычитания по модулю р2 q-разрядного двоичного представления знакопозиций модулярной мантиссы числа А и значения , после чего выполняется операция умножения по модулю р2 q-разрядного двоичного представления знакопозиций и значения мультипликативной инверсии 2α по модулю р2 ; после чего если выполняется операция сложения по модулю р2;
- и т.д.
- параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция вычитания по модулю рn q-разрядного двоичного представления знакопозиций модулярной мантиссы числа А и значения ; после чего выполняется операция умножения по модулю рn q-разрядного двоичного представления знакопозиций и значения мультипликативной инверсии 2α по модулю рn ; после чего если выполняется операция сложения по модулю рn;
- параллельно с этим во втором универсальном вычислительном ядре процессора выполняется коррекция , если , иначе двоичного значения нижней границы интервальной логарифмической характеристикипромежуточного результатапроизведения чисел А и В;
- параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется коррекция , если , иначе двоичного значения верхней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В;
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.
- в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р1 q-разрядного двоичного представления знакопозиций модулярной мантиссы числа В и значения мультипликативной инверсии Р1 по модулю р1 , путем нахождения значения , где - наибольшее целое, не превышающее ; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р2 q-разрядного двоичного представления знакопозиций модулярной мантиссы и значения мультипликативной инверсии Р2 по модулю р2 ;
- и т.д.
- параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю рn q-разрядного двоичного представления знакопозиций модулярной мантиссы и значения мультипликативной инверсии Рn по модулю рn ;
3.7.10. После того, как получены значения элементов вектора , данный вектор загружается в векторные ядра следующим образом:
- параллельно с этим во второе векторное вычислительное ядро загружают вектор q-разрядных элементов ;
3.7.11. После того, как элементы вектора загружены в векторные ядра, производится вычисление ранга и остатка от деления на 2q-1 следующим образом:
- в первом векторном вычислительном ядре вычисляют скалярное произведение векторов и значение передается в управляющее ядро;
- параллельно с этим во втором векторном вычислительном ядре вычисляют скалярное произведение векторов и , значение передается в управляющее ядро;
- параллельно с этим в третьем векторном вычислительном ядре вычисляют скалярное произведение векторов и , значение передается в управляющее ядро;
3.7.12. После того, как результаты скалярного произведения векторов переданы в управляющее ядро, в управляющем ядре вычисляется значение ранга , если или , , если и значение остатка от деления модулярной мантиссы числа В на 2α: .
3.7.13. После того, как управляющее ядро передаст во все модулярные и все универсальные целочисленные ядра значения и α, выполняется деление модулярной мантиссы числа В на число 2α:
- в первом модулярном вычислительном ядре процессора выполняется операция вычитания по модулю р1 q-разрядного двоичного представления знакопозиций модулярной мантиссы числа В и значения следующим образом: если , то , если , то , после чего выполняется операция умножения по модулю р1 q-разрядного двоичного представления знакопозиций модулярной мантиссы числа В и значения мультипликативной инверсии 2α по модулю р1 путем нахождения значения , где - наибольшее целое, не превышающее; после чего если , выполняется операция сложения по модулю р1 q-разрядного двоичного представления знакопозиций модулярной мантиссы числа В следующим образом: если, то, если то ; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция вычитания по модулю р2 q-разрядного двоичного представления знакопозиций модулярной мантиссы числа В и значения , после чего выполняется операция умножения по модулю р2 q-разрядного двоичного представления знакопозицийи значения мультипликативной инверсии 2α по модулю p2 ; после чего, если, выполняется операция сложения по модулю р2;
- и т.д.
-параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция вычитания по модулю рn q-разрядного двоичного представления знакопозиций модулярной мантиссы числа В и значения ; после чего выполняется операция умножения по модулю рn q-разрядного двоичного представления знакопозиций и значения мультипликативной инверсии 2α по модулю рn после чего, если выполняется операция сложения по модулю рn;
- параллельно с этим во втором универсальном вычислительном ядре процессора выполняется коррекция , если , иначе двоичного значения нижней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В;
- параллельно с этим в третьем универсальном вычислительном ядре процессора выполняется коррекция , если, иначе двоичного значения верхней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В;
3.7.14. После того, как выполнена коррекция мантисс и чисел А и В соответственно, выполняется их умножение следующим образом:
- в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р1 q-разрядных двоичных представлений знакопозиций и модулярных мантисс и чисел А и В соответственно, путем нахождения значения , где - наибольшее целое, не превышающее ; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умноженияпо модулю р2 q-разрядных двоичных представлений знакопозиций и модулярных мантисс и чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- и т.д.
- параллельно с этим в -ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю рn q-разрядных двоичных представлений знакопозиций и модулярных мантисс и чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления.
В результате выполнения данных операций получается произведение чисел и , представленное в модулярно-логарифмическом формате с плавающей точкой.
Для выполнения операции сложения двух целых 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).
Предложенный способ полностью описывает процедуру умножения двух чисел в модулярном формате с плавающей точкой, включая контроль переполнения, потери порядка, масштабирования, при этом требует для своего выполнения устройство всего в раза сложнее, чем требуется для выполнения способа (A.C. RU №2509345, БИ №7, 10.03.2014) и в раз проще, чем требуется для способа (Исупов К.С., Мальцев А.Н. Способ представления чисел с плавающей точкой большой разрядности, ориентированный на параллельную обработку // Вычислительные методы и программирование: новые вычислительные технологии. 2014. Т. 15, №4. С. 631-643).
Claims (145)
- Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах, заключающийся в том, что:
- в гибридном многоядерном вычислителе, содержащем n q-разрядных модулярных вычислительных ядер, одно k-разрядное и два r-разрядных универсальных целочисленных ядра, два специализированных s-разрядных векторных ядра, одно специализированное q-разрядное векторное ядро и одно специализированное управляющее ядро, выполняется система из операций, в состав которой входят операции арифметического умножения и арифметического сложения над числами, представленными в позиционных целочисленных форматах данных, операции скалярного произведения векторов n чисел, представленными в позиционных целочисленных форматах данных, операции передачи управления и информации между ядрами;
- при организации выполнения операций умножения каждое число, множитель и множимое, представляется в модулярно-логарифмическом формате с плавающей точкой в виде (2+k+2⋅r+q⋅n) -элементного вектора, где:
- первые два разряда слева σ являются старшими разрядами в формате числа и отводятся под значение знака числа, причем если σ=+1, то число считается положительным, если σ=-1, то число считается отрицательным, если σ=0, то число равно 0;
- следующие за первыми двумя разрядами σ числа k разрядов отводятся под хранение порядка числа, представляющего собой целое двоичное число λ со знаком sλ, изменяющееся для конечных чисел с плавающей точкой в диапазоне λmin≤λ≤λmах и получаемое в результате преобразования числа из позиционного формата с плавающей точкой посредством вычисления выражения λ=е-t+1, где е определяет величину числа в двоичном позиционном формате с плавающей точкой в выражении -1S⋅М⋅2е при 0≤М≤2, являющейся рациональной t-разрядной мантиссой числа в двоичном позиционном формате с плавающей точкой, λmin=2-2k-1, λmax=2k-1-2, при sλ=0, порядок λ считается положительным, а при sλ=1 порядок λ считается отрицательным;
- следующие за (k+2) разрядами 2⋅r разрядов отводятся под хранение интервальной логарифмической характеристики числа, представляющей собой пару целых двоичных чисел Lmin, Lmax без знака, изменяющихся в диапазоне 0≤Lmin≤LP, 0≤Lmax≤LP и получаемых в результате преобразования числа из позиционного формата с плавающей точкой -1S⋅М⋅2е посредством вычисления выражений Lmin= Lmax=Lmin+1, где М' - целое неотрицательное двоичное число, определяемое выражением М'=М⋅2t-1, М - рациональная t-разрядная мантисса числа в двоичном позиционном формате с плавающей точкой, - наибольшее целое, не превышающее log2(M')⋅2r-h-1, - наибольшее целое, не превышающее , - наибольшее целое, не превышающее
- следующие за (2⋅r+k+2) разрядами q⋅n разрядов отводятся для представления мантиссы числав модулярно-логарифмическом формате, причем данная мантисса представляется в системе остаточных классов с n основаниями P1, P2, …, Рn, n - количество знакопозиций мантиссы, q - разрядность каждой знакопозиции; причем каждая i-ая знакопозиция, где 1≤i≤n, представляется целым неотрицательным числом mi в двоичной позиционной системе счисления; значение mi каждой i-ой знакопозиции определяется по выражению mi= , где М' - целое неотрицательное двоичное число, определяемое выражением М'=М⋅2t-1, М - рациональная t-разрядная мантисса числа в двоичном позиционном формате с плавающей точкой, - операция получения остатка от деления М' на i-ое основание рi;
- значения порядка λ, мантиссы и верхней и нижней границ интервальной логарифмической характеристики Lmin, Lmax положительных конечных чисел при σ=+1 в модулярно-логарифмическом формате [〈m1, m2, …, mn〉, Lmin, Lmax, λ, σ] находятся соответственно в следующих диапазонах: 2-2k-1≤λ≤2k-1-2, 0≤Lmin≤LP, 0≤Lmax≤Lp,
- для положительных нечисловых величин (NaN) в модулярно-логарифмическом формате при σ=+1 значение позиционного порядка λ определяется выражением λ=λmах+1=2k-1-1, значение мантиссынаходится в диапазоне 〈11, 12, …, 1n〉≤≤〈р1-1), (р2-1), …, (р2-1)〉, значение верхней и нижней границ интервальной логарифмической характеристики Lmin, Lmax находятся в диапазонах 0≤Lmin≤LP, 0≤Lmax≤LP,
- для отрицательных нечисловых величин (NaN) в модулярно-логарифмическом формате при σ=-1 значение позиционного порядка λ определяется выражением λ=λmах+1=2k-1-1, значение мантиссынаходится в диапазоне 〈11, 12, …, 1n〉≤≤ 〈р1-1), (р2-1), ..., (р2-1)〉, значение верхней и нижней границ интервальной логарифмической характеристики Lmin, Lmax находятся в диапазонах 0≤Lmin≤LP, 0≤Lmax≤LP;
- параллельно с этим в первое универсальное вычислительное ядро загружают k-разрядные двоичные порядки λА и λB, а также знаки σА и σB чисел А и В соответственно;
- параллельно с этим в третье универсальное вычислительное ядро загружают r-разрядные значения верхних границ интервальных логарифмических характеристик и чисел А и В соответственно, а также r-разрядное значение нижней границы интервальной логарифмической характеристики диапазона представления модулярных мантисс LP;
- параллельно с этим в первом универсальном вычислительном ядре процессора выполняется сложение λC=λA+λB двоичных порядков λА и λB, а также умножение σC=σА⋅σB знаков σА и σB чисел А и В соответственно;
- в случае если знак промежуточного результата произведения чисел А и В не равен 0, и порядок промежуточного результата произведения чисел А и В принадлежит интервалу [2-2k-1; 2k-1-2], и значение верхней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В меньше значения нижней границы интервальной логарифмической характеристики максимально возможного значения мантиссы, то есть
- в случае если знак промежуточного результата произведения чисел А и В не равен 0, и порядок промежуточного результата произведения чисел А и В принадлежит интервалу и значение верхней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В меньше значения нижней границы интервальной логарифмической характеристики максимально возможного значения мантиссы то управляющее ядро передает во все модулярные и все универсальные целочисленные ядра значения поправочных коэффициентов после чего:
- в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р1 знакопозиции модулярной мантиссы промежуточного результата произведения чисел А и В и значения следующим образом: выполняется операция целочисленного умножения по модулю р1 знакопозиции модулярной мантиссы промежуточного результата произведения чисел А и В и значения полученного сдвигом числа 1 на двоичных разрядов влево, путем нахождения значения где - наибольшее целое, не превышающее затем, если jC>0, то jC раз выполняется операция целочисленного умножения по модулю р1 знакопозиции модулярной мантиссы промежуточного результата произведения чисел А и В и значения 2q-1, полученного сдвигом числа 1 на (q-1) двоичных разрядов влево, путем нахождения значения где - наибольшее целое, не превышающее все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р2 знакопозиции модулярной мантиссы промежуточного результата произведения чисел А и В и значения следующим образом: выполняется операция целочисленного умножения по модулю р2; затем, если jC>0, то jC раз выполняется операция целочисленного умножения по модулю р2;
- параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р3÷рn q-разрядного двоичного представления знакопозиции модулярной мантиссы промежуточного результата произведения чисел А и В и значения следующим образом: выполняется операция целочисленного умножения по модулю р3÷рn; затем, если jC>0, то jC раз выполняется операция целочисленного умножения по модулю р3÷рn;
- в случае если знак промежуточного результата произведения чисел А и В не равен 0, и порядок промежуточного результата С произведения чисел А и В принадлежит интервалу и значение верхней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В меньше значения нижней границы интервальной логарифмической характеристики максимально возможного значения мантиссы то управляющее ядро передает во все модулярные и все универсальные целочисленные ядра значение поправочного коэффициента после чего:
- цикл деления на 2α состоит в следующем:
- в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р1 q-разрядного двоичного представления знакопозиции модулярной мантиссы промежуточного результата произведения чисел А и В и значения мультипликативной инверсии P1 по модулю путем нахождения значения где - наибольшее целое, не превышающее все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р2 q-разрядного двоичного представления знакопозиции модулярной мантиссы промежуточного результата произведения чисел А и В и значения мультипликативной инверсии Р2 по модулю
- параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю рn q-разрядного двоичного представления знакопозиции модулярной мантиссы промежуточного результата произведения чисел А и В и значения мультипликативной инверсии Рn по модулю
- в первом модулярном вычислительном ядре процессора выполняется операция вычитания по модулю р1 q-разрядного двоичного представления знакопозиции модулярной мантиссы промежуточного результата произведения чисел А и В и значения следующим образом: если то если то после чего выполняется операция умножения по модулю р1 q-разрядного двоичного представления знакопозиции модулярной мантиссы промежуточного результата произведения чисел А и В и значения мультипликативной инверсии 2α по модулю путем нахождения значения
- - наибольшее целое, не превышающее после чего, если , выполняется операция сложения по модулю р1 q-разрядного двоичного представления знакопозиции модулярной мантиссы промежуточного результата произведения чисел А и В следующим образом: если , если то все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция вычитания по модулю р2 q-разрядного двоичного представления знакопозиции модулярной мантиссы промежуточного результата произведения чисел А и В и значения после чего выполняется операция умножения по модулю р2 q-разрядного двоичного представления знакопозиции и значения мультипликативной инверсии 2α по модулю после чего, если , выполняется операция сложения по модулю р2;
- параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется операция вычитания по модулю р1n q-разрядного двоичного представления знакопозиции модулярной мантиссы промежуточного результата произведения чисел А и В и значения после чего выполняется операция умножения по модулю рn q-разрядного двоичного представления знакопозиции и значения мультипликативной инверсии 2α по модулю после чего, если , выполняется операция сложения по модулю рn;
- если знак промежуточного результата произведения чисел А и В не равен 0 и значение верхней границы интервальной логарифмической характеристики промежуточного результата произведения чисел А и В больше или равно значению нижней границы интервальной логарифмической характеристики максимально возможного значения мантиссы то управляющее ядро передает во все модулярные и все универсальные целочисленные ядра значение поправочных коэффициентов zA, zB, после чего:
- в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р1 q-разрядного двоичного представления знакопозиции модулярной мантиссы числа А и значения мультипликативной инверсии Р1 по модулю р1 , путем нахождения значения где - наибольшее целое, не превышающее все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- в первом модулярном вычислительном ядре процессора выполняется операция вычитания по модулю р1 q-разрядного двоичного представления знакопозиции модулярной мантиссы числа А и значения следующим образом: если то если то после чего выполняется операция умножения по модулю р1 q-разрядного двоичного представления знакопозиции модулярной мантиссы числа А и значения мультипликативной инверсии 2α по
- модулю P1 путем нахождения значения - где - наибольшее целое, не превышающее после чего, если , выполняется операция сложения по модулю р1 q-разрядного двоичного представления знакопозиции модулярной мантиссы числа А следующим образом: если то , если то все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция вычитания по модулю р2 q-разрядного двоичного представления знакопозиции модулярной мантиссы числа А и значения после чего выполняется операция умножения по модулю р2 q-разрядного двоичного представления знакопозиции и значения мультипликативной инверсии 2α по модулю после чего, если , выполняется операция сложения по модулю р2;
- параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется операция вычитания по модулю р3÷рn q-разрядного двоичного представления знакопозиции модулярной мантиссы числа А и значенияпосле чего выполняется операция умножения по модулю р3÷рn q-разрядного двоичного представления знакопозиции и значения мультипликативной инверсии 2α по модулю после чего, если , выполняется операция сложения по модулю р3÷рn;
- в первом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р1 q-разрядного двоичного представления знакопозиции модулярной мантиссы числа В и значения мультипликативной инверсии Р1 по модулю р1 путем нахождения значения - наибольшее целое, не превышающее все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- в первом модулярном вычислительном ядре процессора выполняется операция вычитания по модулю р1 q-разрядного двоичного представления знакопозиции модулярной мантиссы, числа В и значения следующим образом: если то если то после чего выполняется операция умножения по модулю р1 q-разрядного двоичного представления знакопозиции модулярной мантиссы числа В и значения мультипликативной инверсии 2α по модулю p1 путем нахождения значения - где - наибольшее целое, не превышающее после чего, если , выполняется операция сложения по модулю р1 q-разрядного двоичного представления знакопозиции модулярной мантиссы числа В следующим образом: если то , если то все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция вычитания по модулю р2 q-разрядного двоичного представления знакопозиции модулярной мантиссы числа В и значения после чего выполняется операция умножения по модулю р2 q-разрядного двоичного представления знакопозиции и значения мультипликативной инверсии 2α по модулю после чего, если , выполняется операция сложения по модулю р2;
- параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется операция вычитания по модулю р3÷рn q-разрядного двоичного представления знакопозиции модулярной мантиссычисла В и значения после чего выполняется операция умножения по модулю р3÷рn q-разрядного двоичного представления знакопозиции и значения мультипликативной инверсии 2α по модулю после чего, если , выполняется операция сложения по модулю р3÷рn;
- параллельно с этим во втором модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р2 q-разрядных двоичных представлений знакопозиций модулярных мантисс и чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим в третьем ÷ n-ом модулярном вычислительном ядре процессора выполняется операция целочисленного умножения по модулю р3÷рn q-разрядных двоичных представлений знакопозиций модулярных мантисс и чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116501511A (zh) * | 2023-06-29 | 2023-07-28 | 恒生电子股份有限公司 | 内存尺寸处理方法、装置、电子设备及存储介质 |
Citations (5)
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 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Вятский государственный университет ФГБОУ ВПО "ВятГУ" | Способ организации выполнения операции умножения двух чисел в модулярно-позиционном формате представления с плавающей точкой на универсальных многоядерных процессорах |
-
2017
- 2017-10-06 RU RU2017135775A patent/RU2666285C1/ru active
Patent Citations (5)
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)
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 |