КОНВЕЙЕРНЫЙ УМНОЖИТЕЛЬ ПО МОДУЛЯМ Российский патент 2025 года по МПК G06F7/523 

Описание патента на изобретение RU2838847C1

Область техники, к которой относится изобретение

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

Уровень техники

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

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

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

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

Раскрытие сущности изобретения

Указанный технический результат при осуществлении изобретения достигается тем, что в конвейерном умножителе по модулям содержащем n параллельных регистров, где n - разрядность обрабатываемых чисел, n ключей, (n-1) умножителей на два по модулю, (n-1) сумматоров по модулю, тактовый вход устройства, который соединен со входами подачи тактовых импульсов n параллельных регистров, первые информационные входы устройства, на которые подаётся инверсный код модуля, вторые информационные входы устройства, на которые подаётся код множителя, третьи информационные входы устройства, на которые подаётся код множимого, информационные выходы устройства, с которых снимается код произведения чисел по модулю, выход (n-1)-го сумматора по модулю соединён с информационными выходами устройства, вторые информационные входы устройства соединены с (n+1, …, 2n)-ми разрядами информационных входов первого параллельного регистра, третьи информационные входы устройства соединены с (2n+1, …, 3n)-ми разрядами информационных входов первого параллельного регистра, (3n+1)-й разряд информационных выходов (1, …, n)-го параллельных регистров соединен соответственно с управляющим входом (1, …, n)-го ключей, (3n+2, …, 4n-i+1)-е разряды информационных входов i-х параллельных регистров, i=(3, …, n-1), соединены с (3n+2, …, 4n-i+2)-ми разрядами информационных выходов (i-1)-х параллельных регистров, (3n+1, …, 4n-1)-е разряды информационных входов второго параллельного регистра соединены с (2n+2, …, 3n)-ми разрядами информационных выходов первого параллельного регистра, (n+1, …, 2n)-е разряды информационных входов i-х параллельных регистров, i=(2, …, n), соединены с информационными выходами (i-1)-х умножителей на два по модулю, (2n+1, …, 3n)-е разряды информационных входов второго параллельного регистра соединены с выходами первого ключа, а те же разряды информационных входов (3, …, n)-го параллельных регистров с выходами (1, …, n-2)-го сумматоров по модулю, (n+1, …, 2n)-е разряды информационных выходов n-го параллельного регистра соединены с информационными входами n-го ключа, (2n+1, …, 3n)-е разряды информационных выходов i-х параллельных регистров, i=(2, …, n), соединены с первыми информационными входами (i-1)-х сумматоров по модулю, вторые информационные входы которых соединены с информационными выходами i-х ключей, (n+1, …, 2n)-е разряды, i=(1, …, n-1), информационных выходов i-х параллельных регистров соединены соответственно с информационными входами (1, …, n-1)-х ключей и с первыми входами (1, …, n-1)-х умножителей на два по модулю, дополнительно увеличена на n разрядность параллельных регистров, при этом первые информационные входы устройства соединены с (1, …, n)-ми разрядами информационных входов первого параллельного регистра, те же разряды информационных выходов которого соединены с (1, …, n)-ми разрядами информационных входов второго параллельного регистра и со вторыми информационными входами первого умножителя на два по модулю, (1, …, n)-е разряды информационных выходов (i+1)-х параллельных регистров, i=(1, …, n-2), соединены соответственно со вторыми информационными входами (i+1)-х умножителей на два по модулю, с третьими информационными входами i-х сумматоров по модулю и с (1, …, n)-ми разрядами информационных входов (i+2)-х параллельных регистров, (1, …, n)-е разряды информационных выходов n-го параллельного регистра соединены с третьими информационными входами (n-1)-го сумматора по модулю.

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

C (A·B) mod P, (1)

где A и B - целые положительные числа, 0≤A, B<P, называемые соответственно множимым и множителем;

P - целое положительное число, называемое модулем;

C - целое положительное число, являющееся произведением чисел A и B, приведенным по модулю P.

Причем:

A = an-1·2n-1+an-2·2n-2+…+a1·2+a0, (2)

B = bn-1·2n-1+bn-2·2n-2+…+b1·2+b0, (3)

P = pn-1·2n-1+pn-2·2n-2+…+p1·2+p0, (4)

C = cn-1·2n-1+ cn-2·2n-2+…+c1·2+c0, (5)

где ai, - коэффициенты, принимающие значение 0 или 1 в зависимости от значения числа A;

bi, - коэффициенты, принимающие значение 0 или 1 в зависимости от значения числа B;

pi, - коэффициенты, принимающие значение 0 или 1 в зависимости от значения модуля P;

ci, - коэффициенты, принимающие значение 0 или 1 в зависимости от значения произведения C;

n - количество разрядов в представлении чисел.

Задача состоит в том, чтобы по известным A и B отыскать произведение C по модулю P. Произведение чисел A и B по модулю P может быть представлено в следующем виде:

(A·B) mod P = (an-1·2n-1 B +an-2·2n-2 B +…+a1·2 B +a0·B) mod P. (6)

Учитывая, что операция приведения по модулю инвариантна к сложению и умножению, выражение (6) можно записать в виде:

(an-1·2n-1·B +an-2·2n-2·B +…+a1·B +a0·B) mod P = ((an-1·2n-1·B) mod P + +(an-2·2n-2·B) mod P +…+(a1·B ) mod P +a0·B) mod P. (7)

Выражение (7) может быть представлено как:

((an-1·2n-1·B) mod P +(an-2·2n-2·B) mod P +…+(a1·B ) mod P +a0·B) mod P=

=(an-1·(2n-1·B) mod P +an-2·(2n-2·B) mod P +…+a1·(2·B) mod P +a0·B) mod P=

=(an-1·(2n-1·B) mod P +(an-2·(2n-2·B) mod P +… +(a1·(2·B) mod P +a0·B) mod P)

…mod P) mod P (8)

Введем следующее обозначение:

= (2i·B) mod P, где i = (0, …, n-1). (9)

Тогда выражение (8) может быть записано в следующем виде:

(an-1· + an-2· +…+a1· +a0·) mod P. (10)

Очевидно, что

. (11)

В результате вычисление выражения (10) в конвейерном режиме может быть сведено к следующим вычислительным действиям.

На 1-й ступени конвейера вычисляют и t0:

= (2·B) mod P, (12)

t 0 = a0·B. (13)

На 2-й ступени конвейера вычисляют , a1· и t1:

= (2·) mod P, (14)

t 1 = (a1· + t0) mod P. (15)

На n-й ступени конвейера вычисляют значение an-1·, а также tn-1:

tn -1 = (an-1·+tn-2) mod P. (16)

Значение tn-1 и будет являться искомым произведением (6).

Вычисление в соответствии с (9) осуществляется последовательным удвоением числа B с одновременным приведением результата по модулю P.

Описанная выше процедура определяет вычисление произведения от одной пары чисел A и B.

Рассмотрим реализацию вычисления произведений для потока чисел Aj и Bj по модулям Pj, поступающего потактово на вход конвейерного умножителя, j=1, 2, 3, …, .

Выражение (1) при этом примет следующий вид

Cj (Aj·Bj) mod Pj. (17)

Обозначим через ti,j значение i-го частичного произведения j-й пары чисел Aj и Bj по j-му модулю Pj на i-й ступени конвейера, где i =1, 2, … , n - номер ступени конвейера, j=1, 2, 3, …, - номер такта работы устройства. Тогда

ti , j = (ai-1,j·ti-1,j) mod Pj, (18)

где ai-1,j - коэффициенты в выражении (2) для Aj числа,

= (2i·Bj) mod Pj, (19)

t 0, j = a0,j·Bj. (20)

Очевидно, что

. (21)

В результате вычисление выражения (10) в конвейерном режиме для пар чисел Aj и Bj по модулю Pj может быть сведено к следующим вычислительным действиям.

На первом такте работы устройства на 1-й ступени конвейера в соответствии с (19), (20) и (21) для пар чисел A1 и B1 и модуля P1 вычисляют и t0,1:

= (2·) mod P1, (22)

t 0,1 = a0,1·. (23)

На втором такте работы устройства на 1-й ступени конвейера в соответствии с (19), (20) и (21) для пар чисел A2 и B2 модуля P2 вычисляют и t0,2:

= (2·) mod P2, (24)

t 0,2 = a0,2·. (25)

На j-м такте работы устройства на 1-й ступени конвейера в соответствии с (19), (20) и (21) для пар чисел Aj и Bj и модуля Pj вычисляют и t0,j:

= (2·) mod Pj, (26)

t 0, j = a0,j·. (27)

На втором такте работы устройства на 2-й ступени конвейера в соответствии с (18) и (19) для пар чисел A1 и B1 и модуля P1 вычисляют a1,1·, и t1,1:

= (2·) mod P1, (28)

t 1,1 = (a1,1· t0,1) mod P1. (29)

На третьем такте работы устройства на 2-й ступени конвейера в соответствии с (18) и (19) для пар чисел A2 и B2 и модуля P2 вычисляют a1,2·, и t1,2:

= (2·) mod P2, (30)

t 1,2 = (a1,2· t0,2) mod P2. (31)

На j-м такте работы устройства на 2-й ступени конвейера в соответствии с (18) и (19) для пар чисел Aj и Bj и модуля Pj вычисляют a1, j·, и t1,j:

= (2·) mod Pj, (32)

t1,j = (a1, j· t0, j) mod Pj. (33)

На n-ом такте работы устройства на n-й ступени конвейера в соответствии с (18) для пар чисел A1 и B1 и модуля P1 вычисляют an-1,1· и t1,1:

tn- 1,1 = (an-1,1· tn-2,1) mod P1. (34)

Значение tn-1,1 и будет являться искомым произведением C1≡(A1·B1) mod P1.

На (n+1)-ом такте работы устройства на n-й ступени конвейера в соответствии с (18) для пар чисел A2 и B2 и модуля P2 вычисляют an-1,2· и t1,2:

tn- 1,2 = (an-1,2· tn-2,2) mod P2. (35)

Значение t n-2,2 и будет являться искомым произведением C2≡(A2·B2) mod P2.

На (n+j)-ом такте работы устройства на n-й ступени конвейера в соответствии с (18) для пар чисел Aj и Bj и модуля Pj вычисляют an-1, j· и t1, j:

tn- 1, j = (an-1, j· tn-2, j) mod Pj. (36)

Значение tn-2, j и будет являться искомым произведением Cj≡(Aj·Bj) mod Pj.

Краткое описание чертежей

Сущность изобретения поясняется чертежами.

На фиг. 1 представлена схема конвейерного умножителя по модулю. Конвейерный умножитель по модулям содержит n параллельных регистров 1.1 ÷ 1.n, где n - разрядность обрабатываемых чисел, n ключей 2.1 ÷ 2.n, (n-1) умножителей на два по модулю 3.1 ÷ 3.n-1, (n-1) сумматоров по модулю 4.1 ÷ 4.n-1, первые информационные входы устройства 5, на которые подаётся код инверсный код модуля, вторые информационные входы устройства 6, на которые подаётся код множителя, третьи информационные входы устройства 7, на которые подаётся код множимого, тактовый вход устройства 8, который соединен со входами подачи тактовых импульсов n параллельных регистров 1.1 ÷ 1.n, информационные выходы устройства 9, с которых снимается код произведения чисел по модулю, выход (n-1)-го сумматора по модулю 4.n-1 соединён с информационными выходами устройства 9, первые информационные входы устройства 5 соединены с (1, …, n)-ми разрядами информационных входов первого параллельного регистра 1.1, те же разряды информационных выходов которого соединены с (1, …, n)-ми разрядами информационных входов второго параллельного регистра 1.2 и со вторыми информационными входами первого умножителя на два по модулю 3.1, вторые информационные входы устройства 6 соединены с (n+1, …, 2n)-ми разрядами информационных входов первого параллельного регистра 1.1, третьи информационные входы устройства 7 соединены с (2n+1, …, 3n)-ми разрядами информационных входов первого параллельного регистра 1.1, (3n+1)-й разряд информационных выходов (1, …, n)-х параллельных регистров 1.1 ÷ 1.n соединен соответственно с управляющим входом (1, …, n)-х ключей 2.1 ÷ 2.n, (3n+2, …, 4n-i+1)-е разряды информационных входов i-х параллельных регистров 1.i, i=(3, …, n-1), соединены с (3n+2, …, 4n-i+2)-ми разрядами информационных выходов (i-1)-х параллельных регистров 1.i-1, (3n+1, …, 4n-1)-е разряды информационных входов второго параллельного регистра 1.2 соединены с (2n+2, …, 3n)-ми разрядами информационных выходов первого параллельного регистра 1.1, (n+1, …, 2n)-е разряды информационных входов i-х параллельных регистров 1.i, i=(2, …, n), соединены с информационными выходами (i-1)-х умножителей на два по модулю 3.i-1, (2n+1, …, 3n)-е разряды информационных входов второго параллельного регистра 1.2 соединены с выходами первого ключа 2.1, а те же разряды информационных входов (3, …, n)-го параллельных регистров 1.i с выходами (1, …, n-2)-го сумматоров по модулю 4.i, (n+1, …, 2n)-е разряды информационных выходов n-го параллельного регистра 1.n соединены с информационными входами n-го ключа 2.n, (2n+1, …, 3n)-е разряды информационных выходов i-х параллельных регистров 1.i, i=(2, …, n), соединены с первыми информационными входами (i-1)-х сумматоров по модулю 4.i-1, вторые информационные входы которых соединены с информационными выходами i-х ключей 2.i, (n+1, …, 2n)-е разряды, i=(1, …, n-1), информационных выходов i-х параллельных регистров 1.i соединены соответственно с информационными входами (1, …, n-1)-х ключей 2.i и с первыми входами (1, …, n-1)-х умножителей на два по модулю 3.i, (1, …, n)-е разряды информационных выходов (i+1)-х параллельных регистров 1.i+1, i=(1, …, n-2), соединены соответственно со вторыми информационными входами (i+1)-х умножителей на два по модулю 3.i+1, с третьими информационными входами i-х сумматоров по модулю 4.i и с (1, …, n)-ми разрядами информационных входов (i+2)-х параллельных регистров 1.i+2, (1, …, n)-е разряды информационных выходов n-го параллельного регистра 1.n соединены с третьими информационными входами (n-1)-го сумматора по модулю 4.n-1.

На фиг. 2 представлено распределение разрядности параллельных регистров 1.1 ÷ 1.n устройства. Первый параллельный регистр 1.1 имеет разрядность 3n, равную сумме разрядности входных чисел A, B и P. В разряды с 1-го по n-й первого параллельного регистра 1.1 записываются числа Pj, в разряды с (n+1)-го по 2n-й записываются числа Bj, а в разряды с (2n+1)-го по 3n-й записываются числа Aj. Параллельные регистры 1.i, где i = (2, …, n) - номер ступени конвейера, имеют разрядность равную (4n-i+1). В разряды с 3n+1-го по (4n-i+1)-й i-го параллельного регистра 1.i записываются значения разрядов числа A, причем количество этих разрядов уменьшается на каждой последующей ступени конвейера на один со стороны младших, в разряды с (n+1)-го по 2n-й записываются соответствующие значения разрядов чисел , в разряды с (2n+1)-го по (3n)-й записываются значения разрядов чисел ti-2, а в разряды с 1-го по n-й записываются значения чисел Pj.

Осуществление изобретения

Конвейерный вычислитель работает следующим образом (см. Фиг. 1).

В исходном состоянии параллельные регистры 1.1 ÷ 1.n-1 обнулены. На тактовый вход 9 устройства поступают тактовые импульсы. С каждым тактовым импульсом на первые информационные входы 5 устройства подаются инверсные коды модулей Pj, на вторые информационные входы 6 устройства подаются коды чисел Bj, на третьи информационные входы 7 устройства подаются коды чисел Aj. Коды Cj произведения чисел Aj и Bj по модулю Pj снимаются с информационных выходов 8 устройства.

На первом такте работы устройства коды первых трех чисел A1, B1 и P1 записываются в параллельный регистр 1.1. При этом значение младшего разряда a0,1 первого числа A1 с выходов параллельного регистра 1.1 поступает на управляющий вход первого ключа 2.1, а оставшиеся значения (a1,1, …, an-1,1) разрядов первого числа A1 поступают на (3n+1, …, 4n-1)-е разряды информационных входов второго параллельного регистра 1.2. На информационные входы первого ключа 2.1 и на первые информационные входы первого умножителя на два по модулю 3.1 с (n+1, …, 2n)-х разрядов информационных выходов первого параллельного регистра 1.1 поступает код первого числа B1. На вторые информационные входы первого умножителя на два по модулю 3.1 с (1, …, n)-го разрядов информационных выходов первого параллельного регистра 1.1 поступает инверсный код первого модуля P1. В соответствии с (23) на выходе первого ключа 2.1 образуется произведение t0,1=a0,1·B1, а в соответствии с (22) на выходе первого умножителя на два по модулю 3.1 образуется число = (2·B1) mod P1. Умножители на два по модулю 3.1 ÷ 3.n-1 могут быть реализованы в соответствии с [4].

На втором такте работы устройства в (1, …, n)-е разряды информационных входов второго параллельного регистра 1.2 записывается код инверсного модуля P1, в (n+1, …, 2n)-е разряды записывается значение числа , в (2n+1, …, 3n)-е разряды записывается значение числа t0,1, а в (3n+1, …, 4n-1)-е разряды записываются значения (a1,1, …, an-1,1) разрядов первого числа A1. С выхода (3n+1) разряда второго параллельного регистра 1.2 значение (a1,1)-го разряда первого числа A1, поступает на управляющий вход второго ключа 2.2. Значения (a2,1, …, an-1,1) разрядов первого числа A1 с (3n+2, …, 4n-1)-х разрядов информационных выходов второго параллельного регистра 1.2 поступают на (3n+1, …, 4n-2)-е разряды информационных входов третьего параллельного регистра 1.3. Инверсный код модуля P1 c (1, …, n)-х разрядов информационных выходов второго параллельного регистра 1.2 поступает на третьи информационные входы первого сумматора по модулю 4.1, на вторые информационные входы умножителя на два по модулю 3.2 и на (1, …, n)-й разряды информационных входов третьего параллельного регистра 1.3. Значение числа с (n+1, …, 2n)-х разрядов информационных выходов второго параллельного регистра 1.2 поступает на информационные входы второго ключа 2.2 и на первые информационные входы второго умножителя на два по модулю 3.2. Значение числа t0,1 с (2n+1, …, 3n)-х разрядов информационных выходов второго параллельного регистра 1.2 поступает на первые информационные входы первого сумматора по модулю 4.1, на вторые информационные входы которого поступает значение a1,1·, а на информационных выходах образуется значение числа t1,1 в соответствии с (29), которое поступает на (2n+1, …, 3n)-е разряды информационных входов третьего параллельного регистра 1.3, на (n+1, …, 2n)-е разряды которых поступает значение числа в соответствии с (28). Сумматоры по модулю 4.1 ÷ 4.n-1 могут быть реализованы согласно [5].

Также на втором такте устройства вторая тройка чисел A2, B2 и P2 записываются в параллельный регистр 1.1. При этом значение младшего разряда a0,2 второго числа A2 с выходов параллельного регистра 1.1 поступает на управляющий вход первого ключа 2.1, а оставшиеся значения (a1,2, …, an-1,2) разрядов второго числа A2 поступают на (3n+1, …, 4n-1)-е разряды информационных входов второго параллельного регистра 1.2. На информационные входы первого ключа 2.1 и на первые информационные входы первого умножителя на два по модулю 3.1 с (n+1, …, 2n)-х разрядов информационных выходов первого параллельного регистра 1.1 поступает код второго числа B2. В соответствии с (25) на выходе первого ключа 2.1 образуется произведение t0,2=a0,2·B2, а в соответствии с (24) на выходе первого умножителя на два по модулю 3.1 образуется число = (2·B2) mod P2.

На следующих тактах работа устройства осуществляется аналогичным образом.

На n-ом такте работы устройства на информационных выходах 8 устройства в соответствии с (34) для чисел A1, B1 и P1 будет получено значение tn-1,1, которое и будет являться искомым произведением C1(A1·B1) mod P1.

На (n+1)-ом такте работы устройства на информационных выходах 8 устройства для чисел A2, B2 и P2 в соответствии с (35) будет получено значение tn-1,2, которое будет являться искомым произведением C2 (A2·B2) mod P2.

На (n+j)-ом такте работы устройства на информационных выходах 8 устройства для пар чисел Aj, Bj и Pj в соответствии с (36) будет получено значение tn-1,j которое будет являться искомым произведением Cj(Aj·Bj) mod Pj.

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

Источники информации

1. Патент на изобретение RU 2316042 C1. МПК G06F 7/523 (2006.01), G06F 7/72 (2006.01). Устройство для умножения чисел по произвольному модулю. Опубл. 27.01.2008. Бюл. №3.

2. Патент на изобретение RU 2751802 C1. МПК G06F 7/72 (2006.01), G06F 7/523 (2006.01). Умножитель по модулю. Опубл. 19.07.2021. Бюл. №20.

3. Патент на изобретение RU 2797164 C1. G06F 7/523 (2006.01). Конвейерный умножитель по модулю. Опубл. 31.05.2023. Бюл. №16.

4. Патент на изобретение RU 2015537 C1. МПК G06F 7/49. Умножитель на два по модулю. Опубл. 30.06.1994. Бюл. №12.

5. Патент на изобретение RU 2032934 C1. МПК G06F 7/49 (1995.01). Сумматор по модулю. Опубл. 10.04.1995.

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

название год авторы номер документа
КОНВЕЙЕРНЫЙ УМНОЖИТЕЛЬ ПО МОДУЛЮ 2023
  • Петренко Вячеслав Иванович
RU2797164C1
УМНОЖИТЕЛЬ ЧИСЕЛ ПО ПРОИЗВОЛЬНОМУ МОДУЛЮ 2024
  • Петренко Вячеслав Иванович
  • Небесская Мария Валерьевна
RU2840231C1
УМНОЖИТЕЛЬ ПО МОДУЛЮ 2020
  • Петренко Вячеслав Иванович
RU2751802C1
КОНВЕЙЕРНЫЙ ВЫЧИСЛИТЕЛЬ 2023
  • Петренко Вячеслав Иванович
RU2804380C1
УМНОЖИТЕЛЬ ПО МОДУЛЮ 2024
  • Петренко Вячеслав Иванович
  • Небесская Мария Валерьевна
RU2829089C1
Устройство для умножения чисел по произвольному модулю 2020
  • Петренко Вячеслав Иванович
RU2755734C1
КОНВЕЙЕРНЫЙ ФОРМИРОВАТЕЛЬ ОСТАТКОВ ПО ПРОИЗВОЛЬНОМУ МОДУЛЮ 2022
  • Петренко Вячеслав Иванович
RU2791440C1
АРИФМЕТИКО-ЛОГИЧЕСКОЕ УСТРОЙСТВО ДЛЯ ФОРМИРОВАНИЯ ОСТАТКА ПО ПРОИЗВОЛЬНОМУ МОДУЛЮ ОТ ЧИСЛА 2018
  • Петренко Вячеслав Иванович
  • Тебуева Фариза Биляловна
  • Стручков Игорь Владиславович
RU2696223C1
УМНОЖИТЕЛЬ ЧИСЕЛ ПО ПРОИЗВОЛЬНОМУ МОДУЛЮ 2024
  • Петренко Вячеслав Иванович
  • Сутормин Матвей Павлович
RU2839987C1
МНОГОРАЗРЯДНЫЙ СУММАТОР ПО МОДУЛЮ 2023
  • Петренко Вячеслав Иванович
  • Пуйко Денис Дмитриевич
RU2804379C1

Иллюстрации к изобретению RU 2 838 847 C1

Реферат патента 2025 года КОНВЕЙЕРНЫЙ УМНОЖИТЕЛЬ ПО МОДУЛЯМ

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

Формула изобретения RU 2 838 847 C1

Конвейерный умножитель по модулям, содержащий n параллельных регистров, где n - разрядность обрабатываемых чисел, n ключей, (n-1) умножителей на два по модулю, (n-1) сумматоров по модулю, тактовый вход устройства, который соединен со входами подачи тактовых импульсов n параллельных регистров, первые информационные входы устройства, на которые подаётся инверсный код модуля, вторые информационные входы устройства, на которые подаётся код множителя, третьи информационные входы устройства, на которые подаётся код множимого, информационные выходы устройства, с которых снимается код произведения чисел по модулю, выход (n-1)-го сумматора по модулю соединён с информационными выходами устройства, вторые информационные входы устройства соединены с (n+1, …, 2n)-ми разрядами информационных входов первого параллельного регистра, третьи информационные входы устройства соединены с (2n+1, …, 3n)-ми разрядами информационных входов первого параллельного регистра, (3n+1)-й разряд информационных выходов (1, …, n)-го параллельных регистров соединен соответственно с управляющим входом (1, …, n)-го ключей, (3n+2, …, 4n-i+1)-е разряды информационных входов i-х параллельных регистров, i=(3, …, n-1), соединены с (3n+2, …, 4n-i+2)-ми разрядами информационных выходов (i-1)-х параллельных регистров, (3n+1, …, 4n-1)-е разряды информационных входов второго параллельного регистра соединены с (2n+2, …, 3n)-ми разрядами информационных выходов первого параллельного регистра, (n+1, …, 2n)-е разряды информационных входов i-х параллельных регистров, i=(2, …, n), соединены с информационными выходами (i-1)-х умножителей на два по модулю, (2n+1, …, 3n)-е разряды информационных входов второго параллельного регистра соединены с выходами первого ключа, а те же разряды информационных входов (3, …, n)-го параллельных регистров - с выходами (1, …, n-2)-го сумматоров по модулю, (n+1, …, 2n)-е разряды информационных выходов n-го параллельного регистра соединены с информационными входами n-го ключа, (2n+1, …, 3n)-е разряды информационных выходов i-х параллельных регистров, i=(2, …, n), соединены с первыми информационными входами (i-1)-х сумматоров по модулю, вторые информационные входы которых соединены с информационными выходами i-х ключей, (n+1, …, 2n)-е разряды, i=(1, …, n-1), информационных выходов i-х параллельных регистров соединены соответственно с информационными входами (1, …, n-1)-х ключей и с первыми входами (1, …, n-1)-х умножителей на два по модулю, отличающийся тем, что увеличена на n разрядность параллельных регистров, при этом первые информационные входы устройства соединены с (1, …, n)-ми разрядами информационных входов первого параллельного регистра, те же разряды информационных выходов которого соединены с (1, …, n)-ми разрядами информационных входов второго параллельного регистра и со вторыми информационными входами первого умножителя на два по модулю, (1, …, n)-е разряды информационных выходов (i+1)-х параллельных регистров, i=(1, …, n-2), соединены соответственно со вторыми информационными входами (i+1)-х умножителей на два по модулю, с третьими информационными входами i-х сумматоров по модулю и с (1, …, n)-ми разрядами информационных входов (i+2)-х параллельных регистров, (1, …, n)-е разряды информационных выходов n-го параллельного регистра соединены с третьими информационными входами (n-1)-го сумматора по модулю.

Документы, цитированные в отчете о поиске Патент 2025 года RU2838847C1

УСТРОЙСТВО ДЛЯ УМНОЖЕНИЯ ЧИСЕЛ ПО ПРОИЗВОЛЬНОМУ МОДУЛЮ 2006
  • Петренко Вячеслав Иванович
  • Кузьминов Юрий Владимирович
RU2316042C1
US 4910701 A1, 20.03.1990
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок 1923
  • Григорьев П.Н.
SU2008A1
JP 2002251137 A, 06.09.2002
US 6321247 B1, 20.11.2001.

RU 2 838 847 C1

Авторы

Петренко Вячеслав Иванович

Сутормин Матвей Павлович

Пуйко Денис Дмитриевич

Даты

2025-04-22Публикация

2024-09-05Подача