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

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

Info

Publication number
RU2509345C1
RU2509345C1 RU2012132328/08A RU2012132328A RU2509345C1 RU 2509345 C1 RU2509345 C1 RU 2509345C1 RU 2012132328/08 A RU2012132328/08 A RU 2012132328/08A RU 2012132328 A RU2012132328 A RU 2012132328A RU 2509345 C1 RU2509345 C1 RU 2509345C1
Authority
RU
Russia
Prior art keywords
modular
numbers
mantissa
positional
core
Prior art date
Application number
RU2012132328/08A
Other languages
English (en)
Other versions
RU2012132328A (ru
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 RU2012132328/08A priority Critical patent/RU2509345C1/ru
Publication of RU2012132328A publication Critical patent/RU2012132328A/ru
Application granted granted Critical
Publication of RU2509345C1 publication Critical patent/RU2509345C1/ru

Links

Landscapes

  • Complex Calculations (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Изобретение относится к вычислительной технике и может быть использовано для выполнения операции умножения чисел, представленных в модулярно-позиционном формате с плавающей точкой на универсальных многоядерных процессорах. Техническим результатом является повышение скорости вычисления за счет замены операции умножения t-разрядных позиционных мантисс сомножителей n параллельно выполняемыми операциями умножения q-разрядных знакопозиций чисел в системе счисления в остаточных классах. Способ реализуется на универсальном многоядерном вычислителе, содержащем g k-разрядных вычислительных ядер, каждое из которых обеспечивает выполнение системы из f операций, в состав которых входят операции алгебраического умножения и алгебраического сложения над числами, представленными в позиционных целочисленных форматах данных. При организации выполнения операций умножения каждое число, множитель и множимое, представляется в модулярно-позиционном формате с плавающей точкой в виде (1+k+q·n) - элементного вектора.

Description

Изобретение относится к вычислительной технике и предназначено для выполнения операции умножения чисел, представленных в модулярно-позиционном формате с плавающей точкой на универсальных многоядерных процессорах.
Известен итерационный способ умножения чисел, представленных в одном из позиционных двоичных форматов с плавающей точкой, определенных стандартом IEEE-754. В этом способе умножение состоит из последовательности сложений с накоплением мантисс сомножителей, которые выполняются последовательно, сложения порядков и сложения по модулю два знаков сомножителей. Последовательность сложений с накоплением мантисс сомножителей выполняется следующим образом. При сдвигах мантиссы множителя освободившиеся разряды заполняются нулями. Если первый бит t-разрядной позиционной мантиссы множителя равен единице, то первое слагаемое является мантиссой множимого, иначе первое слагаемое равно нулю. Если второй бит мантиссы множителя равен единице, то второе слагаемое является мантиссой множимого, сдвинутой на один разряд влево, иначе второе слагаемое равно нулю. К сумме первого и второго слагаемого прибавляется мантисса множимого, сдвинутая на два разряда влево, если второй бит мантиссы множителя равен единице, иначе прибавляется нуль. Затем к полученной сумме прибавляется мантисса множимого, сдвинутая на три разряда влево, если третий бит мантиссы множителя равен единице, иначе прибавляется нуль. И так далее до t-го разряда мантиссы множителя, к накопленной сумме прибавляется мантисса множимого, сдвинутая на v разрядов влево, если t-ый бит мантиссы множителя равен единице, иначе прибавляется нуль. В итоге накопленная сумма является искомым произведением мантисс сомножителей. Далее выполняется сложение смещенных позиционных порядков сомножителей, тем самым получается порядок результата. Знак результата определяется сложением по модулю два знаков сомножителей.
Недостаток итерационного способа умножения позиционных двоичных чисел с плавающей точкой состоит в том, что, во-первых, при умножении мантисс выполняется t-1 операций суммирования t-разрядных операндов. Если принять, что операция суммирования t-разрядных операндов выполняется за t тактов процессора, то общее время выполнения операции умножения мантисс позиционных операндов с плавающей точкой составит t·(t-1) тактов. Во-вторых, процесс формирования суммы является последовательным процессом.
Техническим результатом применения способа организации выполнения операции умножения двух чисел в модулярно-позиционном формате представления с плавающей точкой на универсальных многоядерных процессорах является повышение скорости вычисления за счет замены операции умножения t-разрядных позиционных мантисс сомножителей n параллельно выполняемыми операциями умножения q-разрядных знакопозиций чисел в системе счисления в остаточных классах, причем q≈t/n. Если принять за время суммирования пары t-разрядных чисел t тактов работы процессора, а за время суммирования пары q-разрядных чисел q тактов работы процессора, то, при условии, что число вычислительных ядер универсального многоядерного процессора не меньше n, а операция умножения q-разрядных чисел может быть выполнена посредством q-1 операции сложения q-разрядных чисел, то предельное ускорение вычислений S составляет: S t ( t 1 ) q ( q 1 )
Figure 00000001
Описание способа организации выполнения операции умножения двух чисел в модулярно-позиционном формате представления с плавающей точкой на универсальных многоядерных процессорах: реализация способа осуществляется посредством подачи набора электрических, нейронных либо других сигналов на устройства управления каждого вычислительного ядра многоядерного процессора универсального назначения, которые, в соответствии с данными сигналами, формируют управляющие команды для операционных устройств соответствующих вычислительных ядер.
В позиционных двоичных форматах с плавающей точкой стандарта IEEE-754 любое вещественное число представляется трехэлементным набором:
[M,e,S|M∈[0,2),е∈[еmin,emax],S∈{0,1}], (1)
где М- рациональная мантисса, е - порядок числа, еmin=2-2w-1 и еmax=2w-1-1, s - знак числа.
Величина чисел, записанных в таком формате, выражается формулой -1s·М·2е. Машинными представлениями чисел вида (1) являются (w+t+1) - разрядные двоичные векторы 〈srw…r2r1dt…d2d1〉, где разряды c d1 по dt отводятся под представление рациональных двоичных мантисс М=dt·dt-1…d2d1, разряды с r1, по rw отводятся под представление целочисленных двоичных порядков е, записанных в форме с избытком Е=rwrw-1…r2r1=е+еmax, разряд s выражает знак числа.
Определим целочисленную мантиссу М'=dtdt-1…d2d1 как t-разрядное неотрицательное целое двоичное число, такое что М=М'·21-t. Определим перемещенный порядок λ как целое двоичное число со знаком, такое, что λ=е-t+1, где е-w-разрядный порядок числа, представленного в двоичном формате (1).
Зададим n целочисленных положительных q-разрядных оснований системы остаточных классов Р12,…,Рn таких, что ∀i1,i2∈{l,2,…,n},i1≠i2:gcd( p i 1
Figure 00000002
, p i 2
Figure 00000003
)=1, q<k, где gcd( p i 1
Figure 00000004
, p i 2
Figure 00000005
) - наибольший общий делитель для p i 1
Figure 00000004
и p i 2
Figure 00000005
, k - размер разрядной сетки процессора.
Целочисленную мантиссу М'=dtdt-1…d2d1 преобразуем в систему остаточных
классов с заданными основаниями р12,…,рn, получая тем самым модулярную мантиссу M ˜
Figure 00000006
=〈m1,m2,…,mn〉:
M ˜ = m 1 , m 2 , m n = | M ' | p 1 , | M ' | p 2 , , | M ' | p n
Figure 00000007
,
где mi∈[0,pi-1], i=1,2,…,n - q-разрядные цифры (модулярные разряды) модулярной мантиссы M ˜
Figure 00000006
, q - разрядность оснований р12,…,рn, | M ' | p i
Figure 00000008
- операция получения остатка от деления M' на i-ое основание рi.
Таким образом, число с плавающей точкой вида (1) можно преобразовать к следующему модулярно-позиционному формату:
[ m 1 , m 2 , m n , λ , s | , m i [ 0, p i 1 ] , λ [ λ ' min , λ ' max ] , s { 0,1 } ] .            (2)
Figure 00000009
где (m1,m2,…,mn) - набор знакопозиций (модулярных разрядов) модулярной мантиссы M ˜
Figure 00000006
, λ - позиционный перемещенный порядок, представляющий собой целое двоичное число со знаком.
Диапазон допустимых значений модулярных мантисс M ˜
Figure 00000006
=〈m1,m2,…,mn〉 в системе остаточных классов с основаниями р12,…,рn определяется интервалом [ 0, P = i = 1 n p i )
Figure 00000010
, таким образом, t-разрядная позиционная мантисса М=d1.dt-1…d2d1 может быть представлена в системе остаточных классов набором из n взаимно независимых q-разрядных знакопозиций 〈m1,m2,…,mn〉, причем q≈t/n (для случая, если все основания р12,…,рn q-разрядные).
Примеры преобразования позиционных чисел с плавающей точкой в модулярно-позиционный формат: пусть числа представлены в 10-разрядном двоичном формате вида (1), в котором под смещенный порядок Е отводится четыре бита (максимальный порядок еmax=24-1-1=7, соответственно е=Е-7), под дробную часть мантиссы - пять бит (т.е. t=6, причем целая часть d6 рациональной мантиссы М в явном виде не записана) и под знак числа - один бит. Пусть для представления модулярных мантисс в модулярно-позиционном формате [〈m1,m2,…,mn〉,λ,s] используется три основания: p1=3=22-1, p2=7=23-1, p3=31=25-l.
Пример 1: необходимо перевести число Х=[1.5,-1,0]=-1°·1.5·2-1, представленное в двоичном формате [М,е,s], в модулярно-позиционный формат [〈m1,m2,…,mn〉,λ,s].
С учетом принятых характеристик двоичного формата [М,е,s], число Х будет записано в памяти ЭВМ в виде двоичного вектора 〈0011010000〉. Для его преобразования в модулярно-позиционный формат (2) необходимо выполнить следующие действия:
1. Выделить составные части числа X: знак числа s=0, дробная часть рациональной мантиссы d5…d2d1=100002, смещенный (избыточный) порядок Е=01102=6.
2. Восстановить целую часть d6 мантиссы M=d6.d5…d2d1: d6=1, т.к. Е>0, следовательно М=1.100002.
3. Определить порядок е: е=Е-еmax=6-7=-1, т.к. Е>0.
4. Определить перемещенный позиционный порядок λ и целочисленную мантиссу M':λ=e-t+1=-1-6+1=-6,M'=d6d5…d2d1=1100002=48.
5. Найти модулярную мантиссу M ˜
Figure 00000006
=〈m1,m2,m3〉: M ˜
Figure 00000006
=〈|48|3,|48|7,|48|31〉=〈0,6,17〉.
В результате получается число X, представленное в модулярно-позиционном формате с плавающей точкой: X=[〈0,6,17〉,-6,0]=-10·〈0,6,17〉·2-6.
Пример 2: необходимо перевести число X=[0.625-6,1]=-11·0.625·2-6 из двоичного формата [М,е,s] в модулярно-позиционный формат [〈m1,m2,…,mn〉,λ,s].
С учетом принятых характеристик двоичного формата [М,е,s], число Х будет записано в памяти ЭВМ в виде двоичного вектора 〈1000010100〉. Для его преобразования в модулярно-позиционный формат (2) необходимо выполнить следующие действия:
1. Выделить составные части числа X: знак числа s=1, дробная часть d5…d2d1=101002, смещенный порядок Е=00002=0.
2. Восстановить целую часть d6 мантиссы M=d6·d5…d2d1: d6=0, т.к. Е=0, следовательно М=0.101002.
3. Определить порядок е: е=еmin=2-24-1=-6, т.к. Е=0.
4. Определить перемещенный порядок λ и целочисленную мантиссу М': λ=e-t+1=-6-6+1=-11, M'=d6d5…d2d1=0101002=20.
5. Найти модулярную мантиссу M ˜
Figure 00000006
=〈m1,m2,m3〉: M ˜
Figure 00000006
=〈|20|3,|20|7,|20|31〉=(2, 6, 20). В результате получается число X, представленное в модулярно-позиционном формате с плавающей точкой: X=[〈2, 6, 20〉,-11,1]=-11·〈2, 6, 20〉·2-11.
Пусть A=[〈 m 1 A , m 2 A , m n A
Figure 00000011
〉],λA,SA], B=[〈 m 1 B , m 2 B , m n B
Figure 00000012
〉],λB,SB] - числа, представленные в модулярно-позиционном формате с плавающей точкой, где M ˜ A
Figure 00000013
=[〈 m 1 A , m 2 A , m n A
Figure 00000011
〉],λA,SA], M ˜ B
Figure 00000014
=[〈 m 1 B , m 2 B , m n B
Figure 00000015
〉],λB,SB] - модулярные мантиссы чисел А и В соответственно. Тогда способ умножения С=А·В чисел А и В, представленных в модулярно-позиционном формате с плавающей точкой (2), на универсальном k-разрядном процессоре, содержащем g вычислительных ядер, определяется следующим образом.
1. Множитель A=[〈 m 1 A , m 2 A , m n A
Figure 00000011
〉],λA,SA] и множимое B=[〈 m 1 B , m 2 B , m n B
Figure 00000012
〉],λB,SB], представленные в модулярно-позиционном формате с плавающей точкой, загружают в универсальный k-разрядный процессор, содержащий g вычислительных ядер, следующим образом:
1.1. Если число g вычислительных ядер процессора превышает число n оснований р12,…,рn системы остаточных классов, используемых для представления модулярных мантисс M ˜ A
Figure 00000013
=〈 m 1 A , m 2 A , m n A
Figure 00000011
〉 и M ˜ B
Figure 00000014
=〈 m 1 B , m 2 B , m n B
Figure 00000015
〉 чисел А и В соответственно, то:
- в первое ядро универсального многоядерного процессора загружают q-разрядные двоичные представления первых знакопозиций m 1 A
Figure 00000016
и m 1 B
Figure 00000017
модулярных мантисс M ˜ A
Figure 00000013
=〈 m 1 A , m 2 A , m n A
Figure 00000011
〉, и M ˜ B
Figure 00000014
=〈 m 1 B , m 2 B , m n B
Figure 00000015
〉 чисел А и В соответственно, а также
основание системы остаточных классов pi, разрядность q которого не превышает размер k разрядной сетки процессора;
- параллельно с этим, во второе ядро универсального многоядерного процессора загружают q-разрядные двоичные представления вторых знакопозиций m 2 A
Figure 00000018
и m 2 B
Figure 00000019
модулярных мантисс M ˜ A
Figure 00000013
и M ˜ B
Figure 00000014
чисел А и В соответственно, а также основание системы остаточных классов р2, разрядность q которого не превышает размер k разрядной сетки процессора; и т.д.;
- параллельно с этим, в n-ое ядро универсального многоядерного процессора загружают q-разрядные двоичные представления n-ых знакопозиций m n A
Figure 00000020
и m n B
Figure 00000021
модулярных мантисс M ˜ A
Figure 00000013
и M ˜ B
Figure 00000014
чисел А и В соответственно, а также основание системы остаточных классов рn, разрядность q которого не превышает размер k разрядной сетки процессора;
- параллельно с этим, в (n+1)-ое ядро универсального многоядерного процессора загружают k-разрядные двоичные порядки λA и λB, а также знаки sA и sB чисел А и В соответственно.
1.2. Если число n оснований p1, p2,…,pn системы остаточных классов используемых для представления модулярных мантисс M ˜ A
Figure 00000013
=〈 m 1 A , m 2 A , m n A
Figure 00000011
〉 и M ˜ B
Figure 00000014
=〈 m 1 B , m 2 B , m n B
Figure 00000015
〉 равно числу g вычислительных ядер универсального вычислителя, либо превышает его, то:
- q-разрядные двоичные представления первых знакопозиций m 1 A
Figure 00000016
и m 1 B
Figure 00000017
модулярных мантисс M ˜ A
Figure 00000013
и M ˜ B
Figure 00000014
чисел А и В соответственно, а также q-разрядное основание системы остаточных классов р1 загружают в первое ядро универсального многоядерного процессора;
- параллельно с этим, q-разрядные двоичные представления вторых знакопозиций m 2 A
Figure 00000022
и m 2 B
Figure 00000023
модулярных мантисс M ˜ A
Figure 00000013
и M ˜ B
Figure 00000014
чисел А и В соответственно, а также q-разрядное основание системы остаточных классов p2 загружают во второе ядро универсального многоядерного процессора; и т.д.;
- параллельно с этим, q-разрядные двоичные представления (g-1)-ыx знакопозиций m g 1 A
Figure 00000024
и m g 1 B
Figure 00000025
модулярных мантисс M ˜ A
Figure 00000013
и M ˜ B
Figure 00000014
чисел А и В соответственно, а также q-разрядное основание системы остаточных классов pg-1 загружают в (g-1)-ое ядро универсального многоядерного процессора;
- q-разрядные двоичные представления g-ых знакопозиций m g A
Figure 00000026
и m g B
Figure 00000027
модулярных мантисс M ˜ A
Figure 00000013
и M ˜ B
Figure 00000014
чисел А и В соответственно, а также q-разрядное основание системы остаточных классов pg загружают в первое ядро универсального многоядерного процессора;
- q-разрядные двоичные представления (g+1)-ыx знакопозиций m g + 1 A
Figure 00000028
и m g + 1 B
Figure 00000029
модулярных мантисс M ˜ A
Figure 00000013
и M ˜ B
Figure 00000014
чисел А и В соответственно, а также q-разрядное основание системы остаточных классов pg+1 загружают во второе ядро универсального многоядерного процессора;
- и т.д., пока не будут загружены n-ые знакопозиций m n A
Figure 00000020
и m n B
Figure 00000021
модулярных мантисс M ˜ A
Figure 00000013
=〈 m 1 A , m 2 A , m n A
Figure 00000011
〉 и M ˜ B
Figure 00000014
=〈 m 1 B , m 2 B , m n B
Figure 00000015
〉 чисел А и В соответственно;
- параллельно с этим, k-разрядные двоичные порядки λА и λB, а также знаки sA и sB чисел А и В соответственно загружают в g-oe ядро универсального многоядерного процессора.
2. После того как множитель A=[〈 m 1 A , m 2 A , m n A
Figure 00000011
〉,λA,SA] и множимое B=[〈 m 1 B , m 2 B , m n B
Figure 00000012
〉,λB,SB], представленные в модулярно-позиционном формате с плавающей точкой, загружены в универсальный k-разрядный процессор, содержащий g вычислительных ядер, операция их умножения выполняется следующим образом:
2.1. Если число g вычислительных ядер процессора превышает число n оснований p1,p2,…;pn системы остаточных классов, используемых для представления модулярных мантисс M ˜ A
Figure 00000013
=〈 m 1 A , m 2 A , m n A
Figure 00000011
〉 и M ˜ B
Figure 00000014
=〈 m 1 B , m 2 B , m n B
Figure 00000015
〉 чисел А и В соответственно, то:
- в первом вычислительном ядре процессора выполняется операция целочисленного умножения m 1 C = | m 1 A m 1 B | p 1
Figure 00000030
по модулю р1 q-разрядных двоичных представлений знакопозиций m 1 A
Figure 00000031
и m 2 B
Figure 00000032
модулярных мантисс M ˜ A
Figure 00000013
=〈 m 1 A , m 2 A , m n A
Figure 00000011
〉 и M ˜ B
Figure 00000014
=〈 m 1 B , m 2 B , m n B
Figure 00000015
〉 чисел А и В соответственно, путем нахождения значения
m 1 C = | m 1 A m 1 B | p 1 = m 1 A m 1 B m 1 A m 1 B p 1 p 1
Figure 00000033
, где m 1 A m 1 B p 1
Figure 00000034
- наибольшее целое, не превышающее m 1 A m 1 B p 1
Figure 00000035
; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим, во втором вычислительном ядре процессора выполняется m 2 C = | m 2 A m 2 B | p 2
Figure 00000036
по модулю р2 q-разрядных двоичных представлений знакопозиций m 2 A
Figure 00000037
и m 2 B
Figure 00000032
модулярных мантисс M ˜ A
Figure 00000013
и M ˜ B
Figure 00000014
чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления; и т.д.;
- параллельно с этим, в n-ом вычислительном ядре процессора выполняется операция умножения m n C = | m n A m n B | p n
Figure 00000038
по модулю рn q-разрядных двоичных представлений знакопозиций m n A
Figure 00000039
и m n B
Figure 00000040
модулярных мантисс M ˜ A
Figure 00000013
и M ˜ B
Figure 00000014
чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим, в (n+1)-м вычислительном ядре процессора выполняется сложение двоичных порядков λA и λB, а также сложение по модулю два sC=|sA+sB|2 знаков sA и SB чисел А и В соответственно.
2.2. Если число n оснований р1,p2,…,pn системы остаточных классов используемых для представления модулярных мантисс M ˜ A
Figure 00000013
=〈 m 1 A , m 2 A , m n A
Figure 00000011
〉 и M ˜ B
Figure 00000014
=〈 m 1 B , m 2 B , m n B
Figure 00000015
〉 равно числу g вычислительных ядер универсального вычислителя, либо превышает его, и в каждое j-oe вычислительное ядро из первых (g-1) вычислительных ядер процессора загружено wj знакопозиций
m i ( g 1 ) + j A
Figure 00000041
и m i ( g 1 ) + j B
Figure 00000042
, i=0,1,…,w1-1, то:
- в первом вычислительном ядре процессора последовательно выполняются операции умножения m i ( g 1 ) + 1 C = | m i ( g 1 ) + 1 A m i ( g 1 ) + 1 B | p i ( g 1 ) + 1
Figure 00000043
по модулям pi·(g-1)+1, i=0,1,…,w1-1, g-разрядньгх двоичных представлений всех w1 загруженных в него знакопозиций m i ( g 1 ) + 1 A
Figure 00000044
и m i ( g 1 ) + 1 B
Figure 00000045
, i=0,1,…,w1-1 модулярных мантисс M ˜ A
Figure 00000013
=〈 m 1 A , m 2 A , m n A
Figure 00000011
〉 и M ˜ B
Figure 00000014
=〈 m 1 B , m 2 B , m n B
Figure 00000015
〉 чисел А и В соответственно, путем нахождения значений | m i ( g 1 ) + 1 A m i ( g 1 ) + 1 B | p i ( g 1 ) + 1 = m i ( g 1 ) + 1 A m i ( g 1 ) + 1 B m i ( g 1 ) + 1 A m i ( g 1 ) + 1 B p i ( g 1 ) + 1 p i ( g 1 ) + 1 , i = 0,1, , w 1 1,   г д е   m i ( g 1 ) + 1 A m i ( g 1 ) + 1 B p i ( g 1 ) + 1
Figure 00000046
- наибольшее целое, не превышающее m i ( g 1 ) + 1 A m i ( g 1 ) + 1 B p i ( g 1 ) + 1
Figure 00000047
; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим, во втором вычислительном ядре процессора последовательно выполняются операции умножения m i ( g 1 ) + 2 C = | m i ( g 1 ) + 2 A m i ( g 1 ) + 2 B | p i ( g 1 ) + 2
Figure 00000048
по модулям рi·(g-1)+2, i=0,1,…,w2-1, q-разрядных двоичных представлений всех w2 загруженных в него знакопозиций m i ( g 1 ) + 2 A
Figure 00000049
и m i ( g 1 ) + 2 B
Figure 00000050
, i=0,1,…,w2-1, модулярных мантисс M ˜ A
Figure 00000013
и M ˜ B
Figure 00000014
чисел A и B соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления; и т.д.;
- параллельно с этим, в (g-l)-M вычислительном ядре процессора последовательно выполняются операции умножения m ( i + 1 ) ( g 1 ) C = | m ( i + 1 ) ( g 1 ) A m ( i + 1 ) ( g 1 ) B | p ( i + 1 ) ( g 1 )
Figure 00000051
по модулям р(i+1)·(g-1), i=0,1,…, wg-1-1, q-разрядных двоичных представлений всех Wg-1 загруженных в него знакопозиций m ( i + 1 ) ( g 1 ) A  и  m ( i + 1 ) ( g 1 ) B
Figure 00000052
, i=0,1,…,Wg-1-1 модулярных мантисс M ˜ A
Figure 00000013
и M ˜ B
Figure 00000014
чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
- параллельно с этим, в g-м вычислительном ядре процессора выполняется сложение двоичных порядков λA и λB, а также сложение по модулю два sC=|sA+sB|2 знаков sA и sB чисел А и В соответственно.
В результате выполнения данных операций получается произведение
C= [ m 1 C , m 2 C , m n C , λ C , s C ]
Figure 00000053
чисел A= [ m 1 A , m 2 A , m n A , λ A , s A ]
Figure 00000054
и B= [ m 1 B , m 2 B , m n B , λ B , s B ]
Figure 00000055
, представленное в модулярно-позиционном формате с плавающей точкой.
Пример: необходимо выполнить операцию умножения С=А·В в модулярно-позиционном формате с плавающей точкой на универсальном процессоре, содержащем четыре 5-разрядных вычислительных ядра. Для представления мантисс операндов заданы следующие 5-разрядные основания системы остаточных классов: р1=3=22-1, p2=7=23-1, р3,=31=25 -1, P=p1·p2·p3=65l - произведение оснований (верхний предел допустимого диапазона представления модулярных мантисс). Сомножители заданы в модулярно-позиционном формате следующим образом: А=[〈2,4,11〉,-4,1], B=[〈2,3,17〉,2,0].
1. Множитель А=[〈2,4,11〉,-4,1] и множимое В=[〈2,3,17〉,2,0] загружаем в универсальный 5-разрядный процессор, содержащий четыре вычислительных ядра, следующим образом:
- в первое ядро загружаем первые знакопозиции m 1 A = 2  
Figure 00000056
и m 1 B = 2
Figure 00000057
модулярных мантисс M ˜ A
Figure 00000013
=(2, 4, 11) и M ˜ B
Figure 00000014
=(2, 3, 17), а также основание системы остаточных классов p1=3;
- параллельно с этим, во второе ядро загружаем вторые знакопозиции m 2 A = 4
Figure 00000058
и m 2 B = 3
Figure 00000059
модулярных мантисс M ˜ A
Figure 00000013
=(2, 4, 11) и M ˜ B
Figure 00000014
=(2, 3, 17), а также основание системы остаточных классов р2=7;
- параллельно с этим, в третье ядро загружаем третьи знакопозиции m 3 A = 11
Figure 00000060
и m 3 B = 17
Figure 00000061
модулярных мантисс M ˜ A
Figure 00000013
=(2, 4, 11) и M ˜ B
Figure 00000014
=(2, 3, 17), а также основание системы остаточных классов р3=31;
- параллельно с этим, в четвертое ядро универсального многоядерного процессора загружаем 5-разрядные двоичные порядки λA=-4 и λB=2, а также знаки sA=1 и sB =0.
2. Так как число вычислительных ядер процессора превышает число оснований p12,…,pn системы остаточных классов, используемых для представления модулярных
мантисс M ˜ A
Figure 00000013
=(2, 4, 11) и M ˜ B
Figure 00000014
=(2, 3, 17) чисел А и В соответственно, то операцию умножения выполняем следующим образом:
- в первом вычислительном ядре процессора выполняем операцию
целочисленного умножения по модулю p1: m 1 C = | m 1 A m 1 B | p 1 = | 2 2 | 3 = 1
Figure 00000062
;
- параллельно с этим, во втором вычислительном ядре процессора выполняем операцию целочисленного умножения по модулю p2: m 2 C = | m 2 A m 2 B | p 2 = | 4 3 | 7 = 5
Figure 00000063
;
- параллельно с этим, в третьем вычислительном ядре процессора выполняем операцию целочисленного умножения по модулю p3: m 3 C = | m 3 A m 3 B | p 3 = | 11 17 | 31 = 1
Figure 00000064
;
- параллельно с этим, в четвертом вычислительном ядре процессора выполняем сложение двоичных порядков λA и λB, а также сложение по модулю два sC=|sA+sB|2 знаков sA и sB чисел А и В соответственно: λCAB=-4+2=-2, sC=|sA+sB|2=|1+0|2=1.
В результате получен результат С=[〈1,5,1〉, -2,1] в модулярно-позиционном формате с плавающей точкой, соответствующий позиционному числу -11·187·2-2.
Если принять за время сложения пары q-разрядных остатков q тактов работы универсального процессора, содержащего g k-разрядных вычислительных ядер, причем q≤k, то время вычисления произведения t-разрядных мантисс чисел с плавающей точкой А и В, при t≈q·n в предельном случае (когда ( m i A m i B )
Figure 00000065
<pi, i=1,2,…,n) no описанному способу равно q·(q -1) тактов, тогда как время умножения итерационным способом равно t·(t-1)≈q·n·(q·n-1) тактов. Для вычисления порядков и знаков операндов потребуется k тактов (k-1 такт для суммирования порядков, и 1 такт для суммирования знаков), причем их вычисление будет осуществляться параллельно с вычислением знакопозиций модулярных мантисс, поэтому время на вычисление порядков и знаков результата умножения операндов с плавающей точкой не учитывается. Таким образом, время умножения чисел с плавающей точкой на базе описанного способа в
t ( t 1 ) q ( q 1 ) = q n ( q n 1 ) q ( q 1 ) = n ( q n 1 ) ( q 1 )
Figure 00000066
раз выше по сравнению с быстродействием известного итерационного способа умножения позиционных чисел с плавающей точкой.

Claims (1)

  1. Способ организации выполнения операции умножения двух чисел в модулярно-позиционном формате представления с плавающей точкой на универсальных многоядерных процессорах, заключающийся в том, что:
    универсальный многоядерный вычислитель содержит g k-разрядных вычислительных ядер, каждое из которых обеспечивает выполнение системы из f операций, в состав которых входят операции алгебраического умножения и алгебраического сложения над числами, представленными в позиционных целочисленных форматах данных;
    при организации выполнения операций умножения каждое число, множитель и множимое, представляется в модулярно-позиционном формате с плавающей точкой в виде (1+k+q·n) - элементного вектора, где:
    первый слева разряд s является старшим разрядом в формате числа и отводится под значение знака числа, причем если s=0, то число считается положительным, а если s=1, то число считается отрицательным;
    следующие за первым разрядом s числа k разрядов отводятся под хранение позиционного порядка числа, представляющего собой целое двоичное число λ со знаком sλ, изменяющееся для конечных чисел с плавающей точкой в диапазоне λmin≤λ≤λmax и получаемое в результате преобразования числа из позиционного формата с плавающей точкой посредством вычисления выражения λ=е-t+1, где е определяет величину числа в двоичном позиционном формате с плавающей точкой в выражении (-1s·М·2е) при 0≤М<2, являющейся рациональной t-разрядной мантиссой числа в двоичном позиционном формате с плавающей точкой, λmin=2-2k-1, λmax=2k-1-2, при sλ=0 порядок λ считается положительным, а при sλ=1 порядок λ считается отрицательным;
    следующие за (k+1) разрядами q·n разрядов, причем q≤k, отводятся для представления мантиссы числа M ˜ = m 1 , m 2 , , m n
    Figure 00000067
    в модулярно-позиционном формате, причем данная мантисса представляется в системе остаточных классов с n основаниями р1, р2, …, pn, n - количество знакопозиций мантиссы, q - разрядность каждой знакопозиции; причем, каждая i-ая знакопозиция, где 1≤i≤n, представляется целым неотрицательным числом mi в двоичной позиционной системе счисления; значение mi каждой i-ой знакопозиции определяется по выражению m i = | M ' | p i
    Figure 00000068
    , где М' - целое неотрицательное двоичное число, определяемое выражением М'=М·2t-1, М - рациональная t-разрядная мантисса числа в двоичном позиционном формате с плавающей точкой, | M ' | p i
    Figure 00000008
    - операция получения остатка от деления М' на i-oe основание pi;
    диапазон изменения модулярной мантиссы M ˜ = m 1 , m 2 , , m n
    Figure 00000069
    в позиционной системе счисления определяется интервалом [ 0, P = i = 1 n p i )
    Figure 00000010
    ;
    значения порядка λ и мантиссы M ˜ = m 1 , m 2 , , m n
    Figure 00000069
    положительных конечных чисел при s=0 в модулярно-позиционном формате [λ,s,〈m1,m2,…,mn〉] находятся соответственно в следующих диапазонах: 2-2k-1≤λ≤2k-1-2, 〈01,02,…,0n〉≤ M ˜
    Figure 00000006
    ≤〈(p1-1),(p2-1),…,(pn-1)〉;
    значения порядка λ и мантиссы M ˜ = m 1 , m 2 , , m n
    Figure 00000069
    отрицательных конечных чисел при s=1 в модулярно-позиционном формате находятся соответственно в следующих диапазонах: 2-2k-1≤λ≤2k-1-2, 〈01,02,…,0n〉≤ M ˜
    Figure 00000006
    ≤ 〈(p1-1),(p2-1),…,(pn-1)〉;
    значение положительной бесконечности представляется в модулярно-позиционном формате следующим образом: s=0, λ=λmax+1=2k-1-1, M ˜ = 0 1 ,0 2 , ,0 n
    Figure 00000070
    ;
    значение отрицательной бесконечности представляется в модулярно-позиционном формате следующим образом: s=1, λ=λmax+1=2k-1-1, M ˜ = 0 1 ,0 2 , ,0 n
    Figure 00000070
    ;
    для положительных нечисловых величин (NaN) в модулярно-позиционном формате [s,λ,〈m1,m2,…,mn〉], при s=0, значение позиционного порядка λ определяется выражением λ=λmax+1=2k-1-1, а значения мантиссы M ˜ = m 1 , m 2 , , m n
    Figure 00000069
    находятся в диапазоне 〈11,12,…,1n〉≤ M ˜
    Figure 00000006
    ≤〈(p1-1),(p2-1),…,(pn-1)〉;
    для отрицательных нечисловых величин (NaN) в модулярно-позиционном формате, при s=1, значение позиционного порядка λ определяется выражением λ=λmax+1=2k-1-1, а значения мантиссы M ˜ = m 1 , m 2 , , m n
    Figure 00000069
    находятся в диапазоне 〈11,12,…,1n〉≤ M ˜
    Figure 00000006
    ≤〈(p1-1),(p2-1),…,(pn-1)〉;
    величины в модулярно-позиционном формате, имеющие значение позиционного порядка λ=λmin-1=1-2k-1, при изменении значений модулярной мантиссы в диапазоне 〈11,12,…,1n〉 ≤ M ˜
    Figure 00000006
    ≤ 〈(p1-1),(p2-1),…,(pn-1)〉, служат для расширенного кодирования исключительных ситуаций, которые могут возникнуть в процессе вычислений, а именно: потеря порядка и переполнение порядка;
    по сигналу процессора, множитель A= [ m 1 A , m 2 A , m n A , λ A , s A ]
    Figure 00000054
    и множимое B= [ m 1 B , m 2 B , m n B , λ B , s B ]
    Figure 00000055
    , представленные в модулярно-позиционном формате с плавающей точкой, загружаются в универсальный k-разрядный процессор, содержащий g вычислительных ядер, следующим образом:
    при условии, что g≥n+1, т.е. если число вычислительных ядер процессора превышает число оснований системы остаточных классов, используемых для представления модулярных мантисс M ˜ A
    Figure 00000013
    =〈 m 1 A , m 2 A , m n A
    Figure 00000011
    〉 и M ˜ B
    Figure 00000014
    =〈 m 1 B , m 2 B , m n B
    Figure 00000015
    〉 чисел А и В соответственно, то:
    в первое ядро универсального многоядерного процессора загружают q-разрядные двоичные представления первых знакопозиций m 1 A
    Figure 00000016
    и m 1 B
    Figure 00000017
    модулярных мантисс M ˜ A
    Figure 00000013
    =〈 m 1 A , m 2 A , m n A
    Figure 00000011
    〉 и M ˜ B
    Figure 00000014
    =〈 m 1 B , m 2 B , m n B
    Figure 00000015
    〉 чисел А и В соответственно, а также основание системы остаточных классов p1;
    параллельно с этим, во второе ядро универсального многоядерного процессора загружают q-разрядные двоичные представления вторых знакопозиций m 2 A
    Figure 00000071
    и m 2 B
    Figure 00000072
    модулярных мантисс M ˜ A
    Figure 00000013
    и M ˜ B
    Figure 00000014
    чисел А и В соответственно, а также основание системы остаточных классов p2; параллельно с этим в третье ÷ n-ое ядро универсального многоядерного процессора загружают q-разрядные двоичные представления третьих ÷ n-ых знакопозиций m 3 A
    Figure 00000073
    ÷ m n A
    Figure 00000074
    и m 3 B
    Figure 00000075
    ÷ m n B
    Figure 00000076
    модулярных мантисс M ˜ A
    Figure 00000013
    и M ˜ B
    Figure 00000014
    чисел А и В соответственно, а также основание системы остаточных классов p3÷pn;
    параллельно с этим в (n+1)-ое ядро универсального многоядерного процессора загружают k-разрядные двоичные порядки λA и λB, а также знаки sA и sB чисел А и В соответственно;
    при условии, что g<n+1, т.е. если число оснований системы остаточных классов используемых для представления модулярных мантисс M ˜ A
    Figure 00000013
    =〈 m 1 A , m 2 A , m n A
    Figure 00000011
    〉 и M ˜ B
    Figure 00000014
    =〈 m 1 B , m 2 B , m n B
    Figure 00000015
    〉 чисел А и В соответственно равно числу вычислительных ядер универсального вычислителя, либо превышает его, то:
    q-разрядные двоичные представления первых знакопозиций m 1 A
    Figure 00000016
    и m 1 B
    Figure 00000017
    модулярных мантисс M ˜ A
    Figure 00000013
    и M ˜ B
    Figure 00000014
    чисел А и В соответственно, а также основание системы остаточных классов р1 загружают в первое ядро универсального многоядерного процессора;
    параллельно с этим, q-разрядные двоичные представления вторых знакопозиций m 2 A
    Figure 00000022
    и m 2 B
    Figure 00000023
    модулярных мантисс M ˜ A
    Figure 00000013
    и M ˜ B
    Figure 00000014
    чисел А и В соответственно, а также основание системы остаточных классов р2 загружают во второе ядро универсального многоядерного процессора;
    параллельно с этим аналогичным образом загружают q-разрядные двоичные представления третьих ÷(q-1)-ых знакопозиций m 3 A
    Figure 00000077
    ÷ m g 1 A
    Figure 00000078
    и m 3 B
    Figure 00000079
    ÷ m g 1 B
    Figure 00000025
    модулярных мантисс M ˜ A
    Figure 00000013
    и M ˜ B
    Figure 00000014
    чисел А и В соответственно, а также основание системы остаточных классов p3÷pg-1 в третье ÷(g-1)-ое ядро универсального многоядерного процессора;
    q-разрядные двоичные представления g-ых знакопозиций m g A
    Figure 00000026
    и m g B
    Figure 00000027
    модулярных мантисс M ˜ A
    Figure 00000013
    и M ˜ B
    Figure 00000014
    чисел А и В соответственно, а также основание системы остаточных классов pg загружают в первое ядро универсального многоядерного процессора;
    аналогичным образом q-разрядные двоичные представления (g+1)-ых знакопозиций m g + 1 A
    Figure 00000080
    и m g + 1 B
    Figure 00000081
    модулярных мантисс M ˜ A
    Figure 00000013
    и M ˜ B
    Figure 00000014
    чисел А и В соответственно, а также основание системы остаточных классов pg+1 загружают во второе ядро универсального многоядерного процессора;
    процесс циклической загрузки продолжается пока не будут загружены n-ые знакопозиции m n A
    Figure 00000020
    и m n B
    Figure 00000021
    модулярных мантисс M ˜ A
    Figure 00000013
    =〈 m 1 A , m 2 A , m n A
    Figure 00000011
    〉 и M ˜ B
    Figure 00000014
    =〈 m 1 B , m 2 B , m n B
    Figure 00000015
    〉 чисел A и В соответственно;
    параллельно с этим, k-разрядные двоичные порядки λA и λB, а также знаки sA и sB чисел А и В соответственно загружают в g-oe ядро универсального многоядерного процессора;
    после того как множитель A = [ m 1 A , m 2 A , , m n A , λ A , s A ]
    Figure 00000082
    и множимое B = [ m 1 B , m 2 B , , m n B , λ B , s B ]
    Figure 00000083
    , представленные в модулярно-позиционном формате с
    плавающей точкой, загружены в универсальный k-разрядный процессор, содержащий g-вычислительных ядер, операция их умножения выполняется следующим образом:
    при условии, что g≥n+1, т.е. если число вычислительных ядер процессора превышает число оснований системы остаточных классов, используемых для представления модулярных мантисс M ˜ A = m 1 A , m 2 A , , m n A
    Figure 00000084
    и M ˜ B = m 1 B , m 2 B , , m n B
    Figure 00000085
    чисел А и В соответственно, то:
    в первом вычислительном ядре процессора выполняется операция целочисленного умножения m 1 C = | m 1 A m 1 B | p 1
    Figure 00000030
    по модулю р1 q-разрядных двоичных представлений знакопозиций m 1 A
    Figure 00000031
    и m 2 B
    Figure 00000032
    модулярных мантисс M ˜ A = m 1 A , m 2 A , , m n A
    Figure 00000084
    и M ˜ B = m 1 B , m 2 B , , m n B
    Figure 00000085
    чисел А и В соответственно, путем нахождения значения m 1 C = | m 1 A m 1 B | p 1 = m 1 A m 1 B m 1 A m 1 B p 1 p 1
    Figure 00000033
    , где m 1 A m 1 B p 1
    Figure 00000034
    - наибольшее целое, не превышающее m 1 A m 1 B p 1
    Figure 00000035
    ; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
    параллельно с этим, во втором вычислительном ядре процессора аналогичным образом выполняется операция умножения m 2 C = | m 2 A m 2 B | p 2
    Figure 00000036
    по модулю р2 q-разрядных двоичных представлений знакопозиций m 1 A
    Figure 00000031
    и m 2 B
    Figure 00000032
    модулярных мантисс M ˜ A
    Figure 00000013
    и M ˜ B
    Figure 00000014
    чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
    параллельно с этим, в третьем ÷ n-ом вычислительном ядре процессора аналогичным образом выполняется операция умножения m 3 C = | m 3 A m 3 B | p 3 ÷ m n C = | m n A m n B | p n
    Figure 00000086
    по модулю p3÷pn q-разрядных двоичных представлений знакопозиций m 3 A
    Figure 00000073
    ÷ m n A
    Figure 00000074
    и m 3 B
    Figure 00000075
    ÷ m n B
    Figure 00000076
    модулярных мантисс M ˜ A
    Figure 00000013
    и M ˜ B
    Figure 00000014
    чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
    параллельно с этим, в (n+1)-м вычислительном ядре процессора выполняется сложение двоичных порядков λA и λB, а также сложение по модулю два sC=|sA+sB|2 знаков sA и sB чисел А и В соответственно;
    при условии, что g<n+1, т.е. если число оснований системы остаточных классов используемых для представления модулярных мантисс M ˜ A = m 1 A , m 2 A , , m n A
    Figure 00000084
    и M ˜ B = m 1 B , m 2 B , , m n B
    Figure 00000085
    чисел А и В соответственно равно числу вычислительных ядер универсального вычислителя, либо превышает его, и в каждое j-ое вычислительное ядро из первых (g-1) вычислительных ядер процессора загружено wj знакопозиций m i ( g 1 ) + j A
    Figure 00000041
    и m i ( g 1 ) + j B
    Figure 00000042
    , i=0,1,…,wj-1, то:
    в первом вычислительном ядре процессора для всех i=0,1,…,w1-1 последовательно выполняются операции умножения m i ( g 1 ) + 1 C = | m i ( g 1 ) + 1 A m i ( g 1 ) + 1 B | p i ( g 1 ) + 1
    Figure 00000043
    по модулям pi·(g-1)+1, q-разрядных двоичных представлений всех w1 загруженных в него знакопозиций m i ( g 1 ) + 1 A
    Figure 00000044
    и m i ( g 1 ) + 1 B
    Figure 00000045
    , модулярных мантисс M ˜ A = m 1 A , m 2 A , , m n A
    Figure 00000084
    и M ˜ B = m 1 B , m 2 B , , m n B
    Figure 00000085
    чисел A и B соответственно, путем нахождения значений | m i ( g 1 ) + 1 A m i ( g 1 ) + 1 B | p i ( g 1 ) + 1 = m i ( g 1 ) + 1 A m i ( g 1 ) + 1 B m i ( g 1 ) + 1 A m i ( g 1 ) + 1 B p i ( g 1 ) + 1 p i ( g 1 ) + 1
    Figure 00000087
    , где m i ( g 1 ) + 1 A m i ( g 1 ) + 1 B p i ( g 1 ) + 1
    Figure 00000088
    - наибольшее целое, не превышающее m i ( g 1 ) + 1 A m i ( g 1 ) + 1 B p i ( g 1 ) + 1
    Figure 00000047
    ; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
    параллельно с этим, во втором вычислительном ядре процессора аналогичным образом для всех i=0,1,…,w2-1 последовательно выполняются операции умножения m i ( g 1 ) + 2 C = | m i ( g 1 ) + 2 A m i ( g 1 ) + 2 B | p i ( g 1 ) + 2
    Figure 00000048
    по модулям pi·(g-1)+2, q-разрядных двоичных представлений всех w2 загруженных в него знакопозиций m i ( g 1 ) + 2 A
    Figure 00000049
    и m i ( g 1 ) + 2 B
    Figure 00000050
    , модулярных мантисс M ˜ A
    Figure 00000013
    и M ˜ B
    Figure 00000014
    чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
    параллельно с этим в третьем ÷(g-1)-M вычислительном ядре процессора аналогичным образом последовательно для всех i=0,1,…,w3-1÷i=0,1,…,wg-1-1 выполняются операции умножения m i ( g 1 ) + 3 C = | m i ( g 1 ) + 3 A m i ( g 1 ) + 3 B | p i ( g 1 ) + 3
    Figure 00000089
    ÷ m ( i + 1 ) ( g 1 ) C = | m ( i + 1 ) ( g 1 ) A m ( i + 1 ) ( g 1 ) B | p ( i + 1 ) ( g 1 )
    Figure 00000051
    по модулям pi·(g-1)+3÷p(i+1)·(g-1) q-разрядных двоичных представлений всех w3÷wg-1 загруженных знакопозиций m i ( g 1 ) + 3 A ÷ m ( i + 1 ) ( g 1 ) A
    Figure 00000090
    и m i ( g 1 ) + 3 B ÷ m ( i + 1 ) ( g 1 ) B
    Figure 00000091
    модулярных мантисс M ˜ A
    Figure 00000013
    и M ˜ B
    Figure 00000014
    чисел A и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
    параллельно с этим в g-м вычислительном ядре процессора выполняется сложение двоичных порядков λA и λB, а также сложение по модулю два sC=|sA+sB|2 знаков sA и sB чисел А и В соответственно;
    в результате выполнения данных операций получается произведение C= [ m 1 C , m 2 C , m n C , λ C , s C ]
    Figure 00000053
    чисел A= [ m 1 A , m 2 A , m n A , λ A , s A ]
    Figure 00000054
    и B= [ m 1 B , m 2 B , m n B , λ B , s B ]
    Figure 00000055
    , представленное в модулярно-позиционном формате с плавающей точкой.
RU2012132328/08A 2012-07-27 2012-07-27 Способ организации выполнения операции умножения двух чисел в модулярно-позиционном формате представления с плавающей точкой на универсальных многоядерных процессорах RU2509345C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2012132328/08A RU2509345C1 (ru) 2012-07-27 2012-07-27 Способ организации выполнения операции умножения двух чисел в модулярно-позиционном формате представления с плавающей точкой на универсальных многоядерных процессорах

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2012132328/08A RU2509345C1 (ru) 2012-07-27 2012-07-27 Способ организации выполнения операции умножения двух чисел в модулярно-позиционном формате представления с плавающей точкой на универсальных многоядерных процессорах

Publications (2)

Publication Number Publication Date
RU2012132328A RU2012132328A (ru) 2014-02-10
RU2509345C1 true RU2509345C1 (ru) 2014-03-10

Family

ID=50031752

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2012132328/08A RU2509345C1 (ru) 2012-07-27 2012-07-27 Способ организации выполнения операции умножения двух чисел в модулярно-позиционном формате представления с плавающей точкой на универсальных многоядерных процессорах

Country Status (1)

Country Link
RU (1) RU2509345C1 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2652460C1 (ru) * 2017-06-23 2018-04-26 Федеральное государственное бюджетное образовательное учреждение высшего образования "Вятский государственный университет" Способ организации выполнения операции умножения двух чисел в модулярно-индексном формате представления с плавающей точкой на универсальных многоядерных процессорах
RU2666285C1 (ru) * 2017-10-06 2018-09-06 Федеральное государственное бюджетное образовательное учреждение высшего образования "Вятский государственный университет" (ВятГУ) Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1280624A1 (ru) * 1985-07-01 1986-12-30 Предприятие П/Я А-7638 Устройство дл умножени чисел с плавающей зап той
SU1352483A1 (ru) * 1986-05-26 1987-11-15 Научно-исследовательский институт прикладных физических проблем им.А.Н.Севченко Устройство дл умножени чисел в модул рной системе счислени
RU2006919C1 (ru) * 1991-08-01 1994-01-30 Государственный научно-исследовательский институт точного электронного приборостроения Устройство для умножения s-ичных цифр в позиционно-остаточной системе счисления
US20020120658A1 (en) * 2000-12-19 2002-08-29 International Business Machines Corporation Hardware implementation for modular multiplication using a plurality of almost entirely identical processor elements
US20060184600A1 (en) * 2003-07-31 2006-08-17 Kazuyuki Maruo Residue number system arithmetic operating system, scaling operator, scaling operation method and program and recording medium of the same
US20110231465A1 (en) * 2010-03-09 2011-09-22 Phatak Dhananjay S Residue Number Systems Methods and Apparatuses

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1280624A1 (ru) * 1985-07-01 1986-12-30 Предприятие П/Я А-7638 Устройство дл умножени чисел с плавающей зап той
SU1352483A1 (ru) * 1986-05-26 1987-11-15 Научно-исследовательский институт прикладных физических проблем им.А.Н.Севченко Устройство дл умножени чисел в модул рной системе счислени
RU2006919C1 (ru) * 1991-08-01 1994-01-30 Государственный научно-исследовательский институт точного электронного приборостроения Устройство для умножения s-ичных цифр в позиционно-остаточной системе счисления
US20020120658A1 (en) * 2000-12-19 2002-08-29 International Business Machines Corporation Hardware implementation for modular multiplication using a plurality of almost entirely identical processor elements
US20060184600A1 (en) * 2003-07-31 2006-08-17 Kazuyuki Maruo Residue number system arithmetic operating system, scaling operator, scaling operation method and program and recording medium of the same
US20110231465A1 (en) * 2010-03-09 2011-09-22 Phatak Dhananjay S Residue Number Systems Methods and Apparatuses

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2652460C1 (ru) * 2017-06-23 2018-04-26 Федеральное государственное бюджетное образовательное учреждение высшего образования "Вятский государственный университет" Способ организации выполнения операции умножения двух чисел в модулярно-индексном формате представления с плавающей точкой на универсальных многоядерных процессорах
RU2666285C1 (ru) * 2017-10-06 2018-09-06 Федеральное государственное бюджетное образовательное учреждение высшего образования "Вятский государственный университет" (ВятГУ) Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах

Also Published As

Publication number Publication date
RU2012132328A (ru) 2014-02-10

Similar Documents

Publication Publication Date Title
EP1857925B1 (en) Method and apparatus for decimal number multiplication using hardware for binary number operations
CN106951211B (zh) 一种可重构定浮点通用乘法器
US8812575B2 (en) Decimal floating-point square-root unit using Newton-Raphson iterations
US20140195581A1 (en) Fixed point division circuit utilizing floating point architecture
US11816448B2 (en) Compressing like-magnitude partial products in multiply accumulation
RU2509345C1 (ru) Способ организации выполнения операции умножения двух чисел в модулярно-позиционном формате представления с плавающей точкой на универсальных многоядерных процессорах
EP3200068B1 (en) Parallel computing method and terminal
Nievergelt Scalar fused multiply-add instructions produce floating-point matrix arithmetic provably accurate to the penultimate digit
JP4477959B2 (ja) ブロードキャスト型並列処理のための演算処理装置
TW200532552A (en) Methods and apparatus for performing mathematical operations using scaled integers
US20230086090A1 (en) Methods and Apparatus for Quotient Digit Recoding in a High-Performance Arithmetic Unit
RU2652460C1 (ru) Способ организации выполнения операции умножения двух чисел в модулярно-индексном формате представления с плавающей точкой на универсальных многоядерных процессорах
RU2666285C1 (ru) Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах
US7747669B2 (en) Rounding of binary integers
JPWO2013145276A1 (ja) 演算処理装置及び演算処理装置の制御方法
CN112558918B (zh) 用于神经网络的乘加运算方法和装置
US20050289208A1 (en) Methods and apparatus for determining quotients
US20030154226A1 (en) Method and system for processing complex numbers
CN111538474B (zh) 一种Posit浮点数的除法和开方运算处理器及运算处理系统
RU2510072C1 (ru) Устройство деления и извлечения квадратного корня
Isupov et al. Multiple-precision summation on hybrid CPU-GPU platforms using RNS-based floating-point representation
RU2485574C1 (ru) Способ организации умножения чисел с плавающей запятой, представленных в системе остаточных классов
RU2559772C2 (ru) Устройство для основного деления модулярных чисел в формате системы остаточных классов
CN117908835B (zh) 一种基于浮点数计算能力加速sm2国密算法的方法
US20230147929A1 (en) Exact versus inexact decimal floating-point numbers and computation system