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

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

 

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

Известен итерационный способ умножения чисел, представленных в одном из позиционных двоичных форматов с плавающей точкой, определенных стандартом 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 )

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

В позиционных двоичных форматах с плавающей точкой стандарта 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 , p i 2 )=1, q<k, где gcd( p i 1 , p i 2 ) - наибольший общий делитель для p i 1 и p i 2 , k - размер разрядной сетки процессора.

Целочисленную мантиссу М'=dtdt-1…d2d1 преобразуем в систему остаточных

классов с заданными основаниями р12,…,рn, получая тем самым модулярную мантиссу M ˜ =〈m1,m2,…,mn〉:

M ˜ = m 1 , m 2 , m n = | M ' | p 1 , | M ' | p 2 , , | M ' | p n ,

где mi∈[0,pi-1], i=1,2,…,n - q-разрядные цифры (модулярные разряды) модулярной мантиссы M ˜ , q - разрядность оснований р12,…,рn, | M ' | p i - операция получения остатка от деления M' на i-ое основание рi.

Таким образом, число с плавающей точкой вида (1) можно преобразовать к следующему модулярно-позиционному формату:

[ m 1 , m 2 , m n , λ , s | , m i [ 0, p i 1 ] , λ [ λ ' min , λ ' max ] , s { 0,1 } ] .            (2)

где (m1,m2,…,mn) - набор знакопозиций (модулярных разрядов) модулярной мантиссы M ˜ , λ - позиционный перемещенный порядок, представляющий собой целое двоичное число со знаком.

Диапазон допустимых значений модулярных мантисс M ˜ =〈m1,m2,…,mn〉 в системе остаточных классов с основаниями р12,…,рn определяется интервалом [ 0, P = i = 1 n p i ) , таким образом, 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 ˜ =〈m1,m2,m3〉: M ˜ =〈|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 ˜ =〈m1,m2,m3〉: M ˜ =〈|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 〉],λA,SA], B=[〈 m 1 B , m 2 B , m n B 〉],λB,SB] - числа, представленные в модулярно-позиционном формате с плавающей точкой, где M ˜ A =[〈 m 1 A , m 2 A , m n A 〉],λA,SA], M ˜ B =[〈 m 1 B , m 2 B , m n B 〉],λB,SB] - модулярные мантиссы чисел А и В соответственно. Тогда способ умножения С=А·В чисел А и В, представленных в модулярно-позиционном формате с плавающей точкой (2), на универсальном k-разрядном процессоре, содержащем g вычислительных ядер, определяется следующим образом.

1. Множитель A=[〈 m 1 A , m 2 A , m n A 〉],λA,SA] и множимое B=[〈 m 1 B , m 2 B , m n B 〉],λB,SB], представленные в модулярно-позиционном формате с плавающей точкой, загружают в универсальный k-разрядный процессор, содержащий g вычислительных ядер, следующим образом:

1.1. Если число g вычислительных ядер процессора превышает число n оснований р12,…,рn системы остаточных классов, используемых для представления модулярных мантисс M ˜ A =〈 m 1 A , m 2 A , m n A 〉 и M ˜ B =〈 m 1 B , m 2 B , m n B 〉 чисел А и В соответственно, то:

- в первое ядро универсального многоядерного процессора загружают q-разрядные двоичные представления первых знакопозиций m 1 A и m 1 B модулярных мантисс M ˜ A =〈 m 1 A , m 2 A , m n A 〉, и M ˜ B =〈 m 1 B , m 2 B , m n B 〉 чисел А и В соответственно, а также

основание системы остаточных классов pi, разрядность q которого не превышает размер k разрядной сетки процессора;

- параллельно с этим, во второе ядро универсального многоядерного процессора загружают q-разрядные двоичные представления вторых знакопозиций m 2 A и m 2 B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно, а также основание системы остаточных классов р2, разрядность q которого не превышает размер k разрядной сетки процессора; и т.д.;

- параллельно с этим, в n-ое ядро универсального многоядерного процессора загружают q-разрядные двоичные представления n-ых знакопозиций m n A и m n B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно, а также основание системы остаточных классов рn, разрядность q которого не превышает размер k разрядной сетки процессора;

- параллельно с этим, в (n+1)-ое ядро универсального многоядерного процессора загружают k-разрядные двоичные порядки λA и λB, а также знаки sA и sB чисел А и В соответственно.

1.2. Если число n оснований p1, p2,…,pn системы остаточных классов используемых для представления модулярных мантисс M ˜ A =〈 m 1 A , m 2 A , m n A 〉 и M ˜ B =〈 m 1 B , m 2 B , m n B 〉 равно числу g вычислительных ядер универсального вычислителя, либо превышает его, то:

- q-разрядные двоичные представления первых знакопозиций m 1 A и m 1 B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно, а также q-разрядное основание системы остаточных классов р1 загружают в первое ядро универсального многоядерного процессора;

- параллельно с этим, q-разрядные двоичные представления вторых знакопозиций m 2 A и m 2 B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно, а также q-разрядное основание системы остаточных классов p2 загружают во второе ядро универсального многоядерного процессора; и т.д.;

- параллельно с этим, q-разрядные двоичные представления (g-1)-ыx знакопозиций m g 1 A и m g 1 B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно, а также q-разрядное основание системы остаточных классов pg-1 загружают в (g-1)-ое ядро универсального многоядерного процессора;

- q-разрядные двоичные представления g-ых знакопозиций m g A и m g B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно, а также q-разрядное основание системы остаточных классов pg загружают в первое ядро универсального многоядерного процессора;

- q-разрядные двоичные представления (g+1)-ыx знакопозиций m g + 1 A и m g + 1 B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно, а также q-разрядное основание системы остаточных классов pg+1 загружают во второе ядро универсального многоядерного процессора;

- и т.д., пока не будут загружены n-ые знакопозиций m n A и m n B модулярных мантисс M ˜ A =〈 m 1 A , m 2 A , m n A 〉 и M ˜ B =〈 m 1 B , m 2 B , m n B 〉 чисел А и В соответственно;

- параллельно с этим, k-разрядные двоичные порядки λА и λB, а также знаки sA и sB чисел А и В соответственно загружают в g-oe ядро универсального многоядерного процессора.

2. После того как множитель A=[〈 m 1 A , m 2 A , m n A 〉,λA,SA] и множимое B=[〈 m 1 B , m 2 B , m n B 〉,λB,SB], представленные в модулярно-позиционном формате с плавающей точкой, загружены в универсальный k-разрядный процессор, содержащий g вычислительных ядер, операция их умножения выполняется следующим образом:

2.1. Если число g вычислительных ядер процессора превышает число n оснований p1,p2,…;pn системы остаточных классов, используемых для представления модулярных мантисс M ˜ A =〈 m 1 A , m 2 A , m n A 〉 и M ˜ B =〈 m 1 B , m 2 B , m n B 〉 чисел А и В соответственно, то:

- в первом вычислительном ядре процессора выполняется операция целочисленного умножения m 1 C = | m 1 A m 1 B | p 1 по модулю р1 q-разрядных двоичных представлений знакопозиций m 1 A и m 2 B модулярных мантисс M ˜ A =〈 m 1 A , m 2 A , m n A 〉 и M ˜ B =〈 m 1 B , m 2 B , m n B 〉 чисел А и В соответственно, путем нахождения значения

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 , где m 1 A m 1 B p 1 - наибольшее целое, не превышающее m 1 A m 1 B p 1 ; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;

- параллельно с этим, во втором вычислительном ядре процессора выполняется m 2 C = | m 2 A m 2 B | p 2 по модулю р2 q-разрядных двоичных представлений знакопозиций m 2 A и m 2 B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления; и т.д.;

- параллельно с этим, в n-ом вычислительном ядре процессора выполняется операция умножения m n C = | m n A m n B | p n по модулю рn q-разрядных двоичных представлений знакопозиций m n A и m n B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;

- параллельно с этим, в (n+1)-м вычислительном ядре процессора выполняется сложение двоичных порядков λA и λB, а также сложение по модулю два sC=|sA+sB|2 знаков sA и SB чисел А и В соответственно.

2.2. Если число n оснований р1,p2,…,pn системы остаточных классов используемых для представления модулярных мантисс M ˜ A =〈 m 1 A , m 2 A , m n A 〉 и M ˜ B =〈 m 1 B , m 2 B , m n B 〉 равно числу g вычислительных ядер универсального вычислителя, либо превышает его, и в каждое j-oe вычислительное ядро из первых (g-1) вычислительных ядер процессора загружено wj знакопозиций

m i ( g 1 ) + j A и m i ( g 1 ) + j B , 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 по модулям pi·(g-1)+1, i=0,1,…,w1-1, g-разрядньгх двоичных представлений всех w1 загруженных в него знакопозиций m i ( g 1 ) + 1 A и m i ( g 1 ) + 1 B , i=0,1,…,w1-1 модулярных мантисс M ˜ A =〈 m 1 A , m 2 A , m n A 〉 и M ˜ B =〈 m 1 B , m 2 B , m n 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 , i = 0,1, , w 1 1,   г д е   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 p i ( g 1 ) + 1 ; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;

- параллельно с этим, во втором вычислительном ядре процессора последовательно выполняются операции умножения m i ( g 1 ) + 2 C = | m i ( g 1 ) + 2 A m i ( g 1 ) + 2 B | p i ( g 1 ) + 2

по модулям рi·(g-1)+2, i=0,1,…,w2-1, q-разрядных двоичных представлений всех w2 загруженных в него знакопозиций m i ( g 1 ) + 2 A и m i ( g 1 ) + 2 B , i=0,1,…,w2-1, модулярных мантисс M ˜ A и M ˜ B чисел 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 ) по модулям р(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 , i=0,1,…,Wg-1-1 модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;

- параллельно с этим, в g-м вычислительном ядре процессора выполняется сложение двоичных порядков λA и λB, а также сложение по модулю два sC=|sA+sB|2 знаков sA и sB чисел А и В соответственно.

В результате выполнения данных операций получается произведение

C= [ m 1 C , m 2 C , m n C , λ C , s C ] чисел A= [ m 1 A , m 2 A , m n A , λ A , s A ] и B= [ m 1 B , m 2 B , m n B , λ B , s B ] , представленное в модулярно-позиционном формате с плавающей точкой.

Пример: необходимо выполнить операцию умножения С=А·В в модулярно-позиционном формате с плавающей точкой на универсальном процессоре, содержащем четыре 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   и m 1 B = 2 модулярных мантисс M ˜ A =(2, 4, 11) и M ˜ B =(2, 3, 17), а также основание системы остаточных классов p1=3;

- параллельно с этим, во второе ядро загружаем вторые знакопозиции m 2 A = 4 и m 2 B = 3 модулярных мантисс M ˜ A =(2, 4, 11) и M ˜ B =(2, 3, 17), а также основание системы остаточных классов р2=7;

- параллельно с этим, в третье ядро загружаем третьи знакопозиции m 3 A = 11 и m 3 B = 17 модулярных мантисс M ˜ A =(2, 4, 11) и M ˜ B =(2, 3, 17), а также основание системы остаточных классов р3=31;

- параллельно с этим, в четвертое ядро универсального многоядерного процессора загружаем 5-разрядные двоичные порядки λA=-4 и λB=2, а также знаки sA=1 и sB =0.

2. Так как число вычислительных ядер процессора превышает число оснований p12,…,pn системы остаточных классов, используемых для представления модулярных

мантисс M ˜ A =(2, 4, 11) и M ˜ B =(2, 3, 17) чисел А и В соответственно, то операцию умножения выполняем следующим образом:

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

целочисленного умножения по модулю p1: m 1 C = | m 1 A m 1 B | p 1 = | 2 2 | 3 = 1 ;

- параллельно с этим, во втором вычислительном ядре процессора выполняем операцию целочисленного умножения по модулю p2: m 2 C = | m 2 A m 2 B | p 2 = | 4 3 | 7 = 5 ;

- параллельно с этим, в третьем вычислительном ядре процессора выполняем операцию целочисленного умножения по модулю p3: m 3 C = | m 3 A m 3 B | p 3 = | 11 17 | 31 = 1 ;

- параллельно с этим, в четвертом вычислительном ядре процессора выполняем сложение двоичных порядков λ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 ) <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 ) раз выше по сравнению с быстродействием известного итерационного способа умножения позиционных чисел с плавающей точкой.

Способ организации выполнения операции умножения двух чисел в модулярно-позиционном формате представления с плавающей точкой на универсальных многоядерных процессорах, заключающийся в том, что:
универсальный многоядерный вычислитель содержит 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 в модулярно-позиционном формате, причем данная мантисса представляется в системе остаточных классов с n основаниями р1, р2, …, pn, n - количество знакопозиций мантиссы, q - разрядность каждой знакопозиции; причем, каждая i-ая знакопозиция, где 1≤i≤n, представляется целым неотрицательным числом mi в двоичной позиционной системе счисления; значение mi каждой i-ой знакопозиции определяется по выражению m i = | M ' | p i , где М' - целое неотрицательное двоичное число, определяемое выражением М'=М·2t-1, М - рациональная t-разрядная мантисса числа в двоичном позиционном формате с плавающей точкой, | M ' | p i - операция получения остатка от деления М' на i-oe основание pi;
диапазон изменения модулярной мантиссы M ˜ = m 1 , m 2 , , m n в позиционной системе счисления определяется интервалом [ 0, P = i = 1 n p i ) ;
значения порядка λ и мантиссы M ˜ = m 1 , m 2 , , m n положительных конечных чисел при s=0 в модулярно-позиционном формате [λ,s,〈m1,m2,…,mn〉] находятся соответственно в следующих диапазонах: 2-2k-1≤λ≤2k-1-2, 〈01,02,…,0n〉≤ M ˜ ≤〈(p1-1),(p2-1),…,(pn-1)〉;
значения порядка λ и мантиссы M ˜ = m 1 , m 2 , , m n отрицательных конечных чисел при s=1 в модулярно-позиционном формате находятся соответственно в следующих диапазонах: 2-2k-1≤λ≤2k-1-2, 〈01,02,…,0n〉≤ M ˜ ≤ 〈(p1-1),(p2-1),…,(pn-1)〉;
значение положительной бесконечности представляется в модулярно-позиционном формате следующим образом: s=0, λ=λmax+1=2k-1-1, M ˜ = 0 1 ,0 2 , ,0 n ;
значение отрицательной бесконечности представляется в модулярно-позиционном формате следующим образом: s=1, λ=λmax+1=2k-1-1, M ˜ = 0 1 ,0 2 , ,0 n ;
для положительных нечисловых величин (NaN) в модулярно-позиционном формате [s,λ,〈m1,m2,…,mn〉], при s=0, значение позиционного порядка λ определяется выражением λ=λmax+1=2k-1-1, а значения мантиссы M ˜ = m 1 , m 2 , , m n находятся в диапазоне 〈11,12,…,1n〉≤ M ˜ ≤〈(p1-1),(p2-1),…,(pn-1)〉;
для отрицательных нечисловых величин (NaN) в модулярно-позиционном формате, при s=1, значение позиционного порядка λ определяется выражением λ=λmax+1=2k-1-1, а значения мантиссы M ˜ = m 1 , m 2 , , m n находятся в диапазоне 〈11,12,…,1n〉≤ M ˜ ≤〈(p1-1),(p2-1),…,(pn-1)〉;
величины в модулярно-позиционном формате, имеющие значение позиционного порядка λ=λmin-1=1-2k-1, при изменении значений модулярной мантиссы в диапазоне 〈11,12,…,1n〉 ≤ M ˜ ≤ 〈(p1-1),(p2-1),…,(pn-1)〉, служат для расширенного кодирования исключительных ситуаций, которые могут возникнуть в процессе вычислений, а именно: потеря порядка и переполнение порядка;
по сигналу процессора, множитель A= [ m 1 A , m 2 A , m n A , λ A , s A ] и множимое B= [ m 1 B , m 2 B , m n B , λ B , s B ] , представленные в модулярно-позиционном формате с плавающей точкой, загружаются в универсальный k-разрядный процессор, содержащий g вычислительных ядер, следующим образом:
при условии, что g≥n+1, т.е. если число вычислительных ядер процессора превышает число оснований системы остаточных классов, используемых для представления модулярных мантисс M ˜ A =〈 m 1 A , m 2 A , m n A 〉 и M ˜ B =〈 m 1 B , m 2 B , m n B 〉 чисел А и В соответственно, то:
в первое ядро универсального многоядерного процессора загружают q-разрядные двоичные представления первых знакопозиций m 1 A и m 1 B модулярных мантисс M ˜ A =〈 m 1 A , m 2 A , m n A 〉 и M ˜ B =〈 m 1 B , m 2 B , m n B 〉 чисел А и В соответственно, а также основание системы остаточных классов p1;
параллельно с этим, во второе ядро универсального многоядерного процессора загружают q-разрядные двоичные представления вторых знакопозиций m 2 A и m 2 B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно, а также основание системы остаточных классов p2; параллельно с этим в третье ÷ n-ое ядро универсального многоядерного процессора загружают q-разрядные двоичные представления третьих ÷ n-ых знакопозиций m 3 A ÷ m n A и m 3 B ÷ m n B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно, а также основание системы остаточных классов p3÷pn;
параллельно с этим в (n+1)-ое ядро универсального многоядерного процессора загружают k-разрядные двоичные порядки λA и λB, а также знаки sA и sB чисел А и В соответственно;
при условии, что g<n+1, т.е. если число оснований системы остаточных классов используемых для представления модулярных мантисс M ˜ A =〈 m 1 A , m 2 A , m n A 〉 и M ˜ B =〈 m 1 B , m 2 B , m n B 〉 чисел А и В соответственно равно числу вычислительных ядер универсального вычислителя, либо превышает его, то:
q-разрядные двоичные представления первых знакопозиций m 1 A и m 1 B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно, а также основание системы остаточных классов р1 загружают в первое ядро универсального многоядерного процессора;
параллельно с этим, q-разрядные двоичные представления вторых знакопозиций m 2 A и m 2 B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно, а также основание системы остаточных классов р2 загружают во второе ядро универсального многоядерного процессора;
параллельно с этим аналогичным образом загружают q-разрядные двоичные представления третьих ÷(q-1)-ых знакопозиций m 3 A ÷ m g 1 A и m 3 B ÷ m g 1 B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно, а также основание системы остаточных классов p3÷pg-1 в третье ÷(g-1)-ое ядро универсального многоядерного процессора;
q-разрядные двоичные представления g-ых знакопозиций m g A и m g B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно, а также основание системы остаточных классов pg загружают в первое ядро универсального многоядерного процессора;
аналогичным образом q-разрядные двоичные представления (g+1)-ых знакопозиций m g + 1 A и m g + 1 B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно, а также основание системы остаточных классов pg+1 загружают во второе ядро универсального многоядерного процессора;
процесс циклической загрузки продолжается пока не будут загружены n-ые знакопозиции m n A и m n B модулярных мантисс M ˜ A =〈 m 1 A , m 2 A , m n A 〉 и M ˜ B =〈 m 1 B , m 2 B , m n B 〉 чисел A и В соответственно;
параллельно с этим, k-разрядные двоичные порядки λA и λB, а также знаки sA и sB чисел А и В соответственно загружают в g-oe ядро универсального многоядерного процессора;
после того как множитель A = [ m 1 A , m 2 A , , m n A , λ A , s A ] и множимое B = [ m 1 B , m 2 B , , m n B , λ B , s B ] , представленные в модулярно-позиционном формате с
плавающей точкой, загружены в универсальный k-разрядный процессор, содержащий g-вычислительных ядер, операция их умножения выполняется следующим образом:
при условии, что g≥n+1, т.е. если число вычислительных ядер процессора превышает число оснований системы остаточных классов, используемых для представления модулярных мантисс M ˜ A = m 1 A , m 2 A , , m n A и M ˜ B = m 1 B , m 2 B , , m n B чисел А и В соответственно, то:
в первом вычислительном ядре процессора выполняется операция целочисленного умножения m 1 C = | m 1 A m 1 B | p 1 по модулю р1 q-разрядных двоичных представлений знакопозиций m 1 A и m 2 B модулярных мантисс M ˜ A = m 1 A , m 2 A , , m n A и M ˜ B = m 1 B , m 2 B , , m n B чисел А и В соответственно, путем нахождения значения 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 , где m 1 A m 1 B p 1 - наибольшее целое, не превышающее m 1 A m 1 B p 1 ; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
параллельно с этим, во втором вычислительном ядре процессора аналогичным образом выполняется операция умножения m 2 C = | m 2 A m 2 B | p 2 по модулю р2 q-разрядных двоичных представлений знакопозиций m 1 A и m 2 B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
параллельно с этим, в третьем ÷ n-ом вычислительном ядре процессора аналогичным образом выполняется операция умножения m 3 C = | m 3 A m 3 B | p 3 ÷ m n C = | m n A m n B | p n по модулю p3÷pn q-разрядных двоичных представлений знакопозиций m 3 A ÷ m n A и m 3 B ÷ m n B модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
параллельно с этим, в (n+1)-м вычислительном ядре процессора выполняется сложение двоичных порядков λA и λB, а также сложение по модулю два sC=|sA+sB|2 знаков sA и sB чисел А и В соответственно;
при условии, что g<n+1, т.е. если число оснований системы остаточных классов используемых для представления модулярных мантисс M ˜ A = m 1 A , m 2 A , , m n A и M ˜ B = m 1 B , m 2 B , , m n B чисел А и В соответственно равно числу вычислительных ядер универсального вычислителя, либо превышает его, и в каждое j-ое вычислительное ядро из первых (g-1) вычислительных ядер процессора загружено wj знакопозиций m i ( g 1 ) + j A и m i ( g 1 ) + j B , 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 по модулям pi·(g-1)+1, q-разрядных двоичных представлений всех w1 загруженных в него знакопозиций m i ( g 1 ) + 1 A и m i ( g 1 ) + 1 B , модулярных мантисс M ˜ A = m 1 A , m 2 A , , m n A и M ˜ B = m 1 B , m 2 B , , m n B чисел 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 , где 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 p i ( g 1 ) + 1 ; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
параллельно с этим, во втором вычислительном ядре процессора аналогичным образом для всех 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 по модулям pi·(g-1)+2, q-разрядных двоичных представлений всех w2 загруженных в него знакопозиций m i ( g 1 ) + 2 A и m i ( g 1 ) + 2 B , модулярных мантисс M ˜ A и M ˜ B чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
параллельно с этим в третьем ÷(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 ÷ m ( i + 1 ) ( g 1 ) C = | m ( i + 1 ) ( g 1 ) A m ( i + 1 ) ( g 1 ) B | p ( i + 1 ) ( g 1 ) по модулям 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 и m i ( g 1 ) + 3 B ÷ m ( i + 1 ) ( g 1 ) B модулярных мантисс M ˜ A и M ˜ B чисел A и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
параллельно с этим в g-м вычислительном ядре процессора выполняется сложение двоичных порядков λA и λB, а также сложение по модулю два sC=|sA+sB|2 знаков sA и sB чисел А и В соответственно;
в результате выполнения данных операций получается произведение C= [ m 1 C , m 2 C , m n C , λ C , s C ] чисел A= [ m 1 A , m 2 A , m n A , λ A , s A ] и B= [ m 1 B , m 2 B , m n B , λ B , s B ] , представленное в модулярно-позиционном формате с плавающей точкой.



 

Похожие патенты:

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

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

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

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

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

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

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

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

Изобретение относится к вычислительной технике. .

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

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

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

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

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

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

Изобретение относится к вычислительной технике и, в частности, к непозиционным компьютерным системам, и предназначено для обеспечения требуемой точности при вычислении с использованием модулярного кода. Техническим результатом является снижение аппаратных затрат на выполнение операции расширения оснований в полиномиальном модулярном коде. Устройство расширения оснований модулярного кода характеризуется тем, что вход устройства, на который подается модулярный полиномиальный код A(z)=(α1(z), α2(z), …, αn(z)), где αi(z) - остатки по основанию pi(z), i=1, …, n, используемому в полиномиальном модулярном коде, подключается к первым входам умножителей по модулю pi(z) первого блока умножителей соответственно, а вторые входы этих умножителей соединены с выходами первого блока памяти, выход 2.i-го умножителя по модулю pi(z), первого блока умножителей подсоединен к первому входу 4.i-го умножителя по модулю pn+1(z) второго блока умножителей, при этом второй вход умножителя по модулю pn+1(z) подключен к выходу второго блока памяти, выходы умножителей второго блока умножителей подсоединены к входам сумматора по модулю два, выход которого является выходом устройства. 1 ил.

Изобретение относится к области шифрования сообщений на основе использования точек на эллиптической кривой. Технический результат - повышение надежности криптографического шифрования за счет выполнения аутентификации и идентификации за одно и то же время. Способ выполнения аутентификации пароля или идентификации идентификатора с использованием криптографического преобразования включает этапы, на которых выполняют криптографическое преобразование в электронном компоненте для получения точки Р (Х, Y) на эллиптической кривой исходя из по меньшей мере одного параметра t, связанного с указанным паролем или идентификатором; выполняют аутентификацию пароля или идентификацию идентификатора с использованием значений абсциссы (X) и ординаты (Y) полученной точки Р. 2 н. и 5 з.п. ф-лы, 3 ил.

Изобретение относится к вычислительной технике, в частности к модулярным нейрокомпьютерным средствам, и предназначено для вычисления коэффициентов обобщенной полиадической системы (ОПС), представленных в полях Галуа GF(2v). Техническим результатом является обеспечение возможности исправления ошибок в коэффициентах ОПС, которые были получены из кодовой комбинации, представленной в полиномиальной системе классов вычетов (ПСКВ). Устройство содержит двухслойную нейронную сеть, каждый слой которой содержит 15 нейронов, блок памяти и 7 корректирующих сумматоров по модулю два. 1 ил., 4 табл.

Изобретение относится к вычислительной технике и может быть использовано как специализированный вычислитель - универсальный в классе логических вычислений. Техническим результатом является уменьшение объемов оборудования. Устройство содержит коммутатор, 2k блоков памяти хранения значений коэффициентов полиномов разложения, 2n-k блоков памяти хранения значений вычетов возведения переменной в i-тую степень (i=0, 1, …, 2n-k-1) по модулю Р, многоканальный мультиплексор выделения группы коэффициентов, многоканальный мультиплексор выделения группы вычетов, 2n-k умножителей по модулю Ρ, сумматор по модулю Ρ, n входов подачи булевых переменных устройства, управляющий вход устройства подачи значения количества переменных разложения, управляющий вход устройства подачи значений коэффициентов, управляющий вход устройства подачи значений вычетов возведения переменной в i-тую степень по модулю Р, d выходов устройства выдачи значений булевых функций. 1 ил.

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