Область техники, к которой относится изобретение
Изобретение относится к вычислительной технике и может быть использовано в цифровых вычислительных устройствах конвейерного типа, а также в устройствах цифровой обработки сигналов, в криптографических приложениях и в алгоритмах машинного обучения.
Уровень техники
Из существующего уровня техники известно устройство для умножения чисел по произвольному модулю, содержащее (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·2·B +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. (7)
Выражение (7) может быть представлено как:
((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=
=(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.
название | год | авторы | номер документа |
---|---|---|---|
КОНВЕЙЕРНЫЙ УМНОЖИТЕЛЬ ПО МОДУЛЮ | 2023 |
|
RU2797164C1 |
УМНОЖИТЕЛЬ ЧИСЕЛ ПО ПРОИЗВОЛЬНОМУ МОДУЛЮ | 2024 |
|
RU2840231C1 |
УМНОЖИТЕЛЬ ПО МОДУЛЮ | 2020 |
|
RU2751802C1 |
КОНВЕЙЕРНЫЙ ВЫЧИСЛИТЕЛЬ | 2023 |
|
RU2804380C1 |
УМНОЖИТЕЛЬ ПО МОДУЛЮ | 2024 |
|
RU2829089C1 |
Устройство для умножения чисел по произвольному модулю | 2020 |
|
RU2755734C1 |
КОНВЕЙЕРНЫЙ ФОРМИРОВАТЕЛЬ ОСТАТКОВ ПО ПРОИЗВОЛЬНОМУ МОДУЛЮ | 2022 |
|
RU2791440C1 |
АРИФМЕТИКО-ЛОГИЧЕСКОЕ УСТРОЙСТВО ДЛЯ ФОРМИРОВАНИЯ ОСТАТКА ПО ПРОИЗВОЛЬНОМУ МОДУЛЮ ОТ ЧИСЛА | 2018 |
|
RU2696223C1 |
УМНОЖИТЕЛЬ ЧИСЕЛ ПО ПРОИЗВОЛЬНОМУ МОДУЛЮ | 2024 |
|
RU2839987C1 |
МНОГОРАЗРЯДНЫЙ СУММАТОР ПО МОДУЛЮ | 2023 |
|
RU2804379C1 |
Изобретение относится к вычислительной технике и может быть использовано в цифровых вычислительных устройствах конвейерного типа, а также в устройствах цифровой обработки сигналов, в криптографических приложениях и в алгоритмах машинного обучения. Технический результат заключается в расширении функциональных возможностей за счет обеспечения умножения каждой пары чисел по своему модулю при конвейерной обработке информации. Конвейерный умножитель содержит n параллельных регистров, n ключей, (n-1) умножителей на два по модулю, (n-1) сумматоров по модулю, где n - разрядность обрабатываемых чисел, с соответствующими связями. 2 ил.
Конвейерный умножитель по модулям, содержащий 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)-го сумматора по модулю.
УСТРОЙСТВО ДЛЯ УМНОЖЕНИЯ ЧИСЕЛ ПО ПРОИЗВОЛЬНОМУ МОДУЛЮ | 2006 |
|
RU2316042C1 |
US 4910701 A1, 20.03.1990 | |||
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
JP 2002251137 A, 06.09.2002 | |||
US 6321247 B1, 20.11.2001. |
Авторы
Даты
2025-04-22—Публикация
2024-09-05—Подача