RU2299461C1 - Умножитель по модулю - Google Patents

Умножитель по модулю Download PDF

Info

Publication number
RU2299461C1
RU2299461C1 RU2005130895/09A RU2005130895A RU2299461C1 RU 2299461 C1 RU2299461 C1 RU 2299461C1 RU 2005130895/09 A RU2005130895/09 A RU 2005130895/09A RU 2005130895 A RU2005130895 A RU 2005130895A RU 2299461 C1 RU2299461 C1 RU 2299461C1
Authority
RU
Russia
Prior art keywords
input
value
multiplier
adder
output
Prior art date
Application number
RU2005130895/09A
Other languages
English (en)
Other versions
RU2005130895A (ru
Inventor
В чеслав Иванович Петренко (RU)
Вячеслав Иванович Петренко
Юрий Владимирович Кузьминов (RU)
Юрий Владимирович Кузьминов
Original Assignee
Вячеслав Иванович Петренко
Юрий Владимирович Кузьминов
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Вячеслав Иванович Петренко, Юрий Владимирович Кузьминов filed Critical Вячеслав Иванович Петренко
Priority to RU2005130895/09A priority Critical patent/RU2299461C1/ru
Publication of RU2005130895A publication Critical patent/RU2005130895A/ru
Application granted granted Critical
Publication of RU2299461C1 publication Critical patent/RU2299461C1/ru

Links

Abstract

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

Description

Изобретение относится к вычислительной технике и может быть использовано в цифровых вычислительных устройствах, а также в устройствах для формирования элементов конечных полей.
Известно устройство для умножения чисел по модулю, содержащее два входных регистра, два дешифратора, три группы элементов ИЛИ, четыре группы элементов И, табличный вычислитель значений вида α′β′(mod р/2)+р/2, пять элементов ИЛИ, два элемента И и шифратор (см. АС СССР №1187161, кл. G06F 7/49, 23.10.1985 ).
Недостатком данного устройства является низкое быстродействие.
Наиболее близким по технической сущности к заявляемому изобретению является умножитель на два по модулю, содержащий сумматор и мультиплексор (см. патент РФ №2015537, кл. G06F 7/49, 30.06.1994).
Недостатками данного устройства являются его ограниченные функциональные возможности, а именно ограниченный диапазон значений входных чисел х (0<х≤р-1, где р - значение модуля, по которому производится вычисление), а также отсутствие возможности умножения на число, отличное от двух.
Цель изобретения - расширение функциональных возможностей умножителя на два по модулю за счет обеспечения возможности производить вычисление произведения двух чисел, отличных от двух.
Цель достигается путем перемножения значений входных чисел х и y, представленных в двоичной форме, с последующим приведением полученного значения z=x×y по модулю р в соответствии со следующим алгоритмом.
При проведении вычислений по модулю р значение z=x×y сравнивается со значением модуля р. Если полученное значение z≥p, то из z вычитается значение модуля р, а полученное в результате значение z1=z-p вновь сравнивается со значением р. Если и в этом случае значение z1≥p, то из z1 вновь вычитается значение р, а полученное в результате значение z2=z1-p сравнивается со значением р. Данные операции проводятся до тех пор, пока значение zn, полученное на n-м шаге вычислений, не станет меньше значения модуля р. В этом случае значение zn является результатом умножения числа х на число y по модулю р. Если уже на первом шаге входное значение z<p, значение z остается без изменений и является результатом умножения числа х на число y по модулю р.
Предлагаемый умножитель по модулю осуществляет данный метод путем параллельного выполнения n операций (где n - размер умножителя, определяемый количеством входящих в его состав сумматоров), в ходе i-й операции значение z=х×у сравнивается со значением i×p путем вычисления разности z-i×p, где i=1, ..., n. Как только при выполнении i-й операции значение полученной разности станет отрицательным, результатом умножения числа x на число у по модулю р будет являться значение разности, полученное в результате (i-1)-й операции. Диапазон значений входных чисел х и y для данного умножителя определяется размером умножителя и находится в пределах [0, ..., (n/4)p-1].
На чертеже представлена схема умножителя по модулю.
Умножитель по модулю содержит умножитель 1, n сумматоров 2, n инверторов 3, (n-1) умножителей на константу 4 и мультиплексор 5. Входы 6 и 7 служат для подачи двоичных кодов умножаемых чисел х и y, вход 8 служит для подачи двоичного кода модуля р. Выход 9 является выходом устройства.
Умножитель по модулю работает следующим образом.
На вход 6 подается двоичный код числа х, на вход 7 - двоичный код числа y, причем оба числа принадлежат диапазону [0, ..., (n/4)р-1], где р - модуль, n - размер умножителя, определяемый количеством сумматоров 2. Данные коды подаются на вход умножителя 1, который на выходе формирует двоичный код числа z=х×у. Код числа z поступает на первые входы сумматоров 2 и на первый информационный вход мультиплексора 5. Со входа 8 двоичный код модуля р подается на входы умножителей на константу 4 и на вход первого инвертора 3, причем значение модуля в k-м умножителе умножается на значение i=(k+1), где k=1, ..., n-1. С выхода k-го умножителя на константу 4 код значения i×p поступает на вход (k+1)-го инвертора 3. B j-м инверторе 3 поступающий на его вход код переводится в инверсный код, который подается на второй вход j-го сумматора 2, где j=1, ..., n. Таким образом, на второй вход каждого сумматора 2 поступает инверсный код значения i×p, где i - номер сумматора. На третий вход каждого сумматора 2 поступает код числа «1», служащий для перевода инверсного кода модуля в дополнительный код.
В общем виде сумматор 2 осуществляет операцию, описываемую выражением:
Figure 00000002
где с - результат суммирования, z=x×y - результат умножения входных чисел, i - номер сумматора, р - модуль. Старший разряд сформированного значения с поступает на выход переноса сумматора 2, остальные разряды представляют разность z-i×p и поступают на информационный выход сумматора 2.
До тех пор, пока значение z превышает значение i×p, на выходе переноса i-го сумматора 2 будет формироваться «1», которая будет поступать на i-й управляющий вход мультиплексора 5. При превышении значением i×p значения z на выходе переноса i-го сумматора 2 сформируется «0». При поступлении на i-й управляющий вход мультиплексора 5 символа «0» с выхода переноса i-го сумматора 2 мультиплексор 5 проключит на выход 9 информационный вход, на который подается значение с информационного выхода (i-1)-го сумматора 2. Данное значение будет представлять результат умножения числа х на число y по модулю р.
Рассмотрим работу умножителя на примере.
Пусть x=510=001012, y=310=000112, z=x×y=1510=011112, р=410=001002,
Figure 00000003
Как показано выше, i-й сумматор 2 формирует значение
Figure 00000004
поэтому для второго сумматора i×p=2×p=810=010002,
Figure 00000005
для третьего сумматора i×p=3×p=1210=011002,
Figure 00000006
для четвертого сумматора i×p=4×p=1610=100002,
Figure 00000007
Тогда первый сумматор 2 сформирует значение c1=011112+110112+1=1010112, второй - c2=011112+101112+1=1001112, третий - с3=011112+100112+1=1000112, четвертый - c4=011102+011112+1=0111112.
Как видно из примера, на выходах переноса первых трех сумматоров 2 сформировано значение «1», на выходе же четвертого сумматора 2 сформировано значение «0», поэтому на выход 9 мультиплексора 5 поступит значение с информационного выхода третьего сумматора 2, равное 000112=310. Так как (5×3)(mod 4)=3, то правильность работы устройства очевидна.
Пусть теперь x=410=001002, y=310=000112, z=x×y=1210=011002, р=1510=011112,
Figure 00000008
В этом случае первый сумматор 2 сформирует значение c1=011002+100002+1=0111012. Так как уже первый сумматор на выходе переноса формирует символ «0», на выход 9 мультиплексора поступит значение с выхода умножителя 1, то есть z=x×y=011002=1210=(4×3)(mod 15).

Claims (1)

  1. Умножитель по модулю, состоящий из сумматора и мультиплексора, отличающийся тем, что в него введены умножитель, (n-1) сумматоров, (n-1) умножителей на константу, n инверторов, причем вход записи двоичного кода первого из умножаемых чисел подключен к первому входу умножителя, вход записи двоичного кода второго умножаемого числа подключен ко второму входу умножителя, выход умножителя подключен к первому информационному входу мультиплексора и первым входам всех сумматоров, выход переноса i-го сумматора подключен к i-му управляющему входу мультиплексора, информационный выход i-го сумматора подключен к (i+1)-му информационному входу мультиплексора, где i=1, ..., n, вход записи двоичного кода модуля подключен к входу первого инвертора и к входу каждого умножителя на константу, j-й умножитель на константу производит умножение значения на своем входе на величину (j+1), где j=1, ..., n-1, выход j-го умножителя на константу подключен к входу (j+1)-го инвертора, выход i-го инвертора подключен ко второму входу i-го сумматора, к третьему входу каждого сумматора подключен вход записи логической единицы, выход мультиплексора является выходом устройства.
RU2005130895/09A 2005-10-05 2005-10-05 Умножитель по модулю RU2299461C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2005130895/09A RU2299461C1 (ru) 2005-10-05 2005-10-05 Умножитель по модулю

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2005130895/09A RU2299461C1 (ru) 2005-10-05 2005-10-05 Умножитель по модулю

Publications (2)

Publication Number Publication Date
RU2005130895A RU2005130895A (ru) 2007-04-10
RU2299461C1 true RU2299461C1 (ru) 2007-05-20

Family

ID=38000136

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2005130895/09A RU2299461C1 (ru) 2005-10-05 2005-10-05 Умножитель по модулю

Country Status (1)

Country Link
RU (1) RU2299461C1 (ru)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2589361C1 (ru) * 2015-03-10 2016-07-10 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Северо-Кавказский федеральный университет" Умножитель по модулю
RU2626654C1 (ru) * 2016-02-09 2017-07-31 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Умножитель по модулю
RU2630386C1 (ru) * 2016-11-28 2017-09-07 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Умножитель по модулю
RU185670U1 (ru) * 2018-05-24 2018-12-13 Федеральное государственное бюджетное образовательное учреждение высшего образования "МИРЭА - Российский технологический университет" Цифровой умножитель импульсных потоков на константу

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2770801C1 (ru) * 2021-04-02 2022-04-21 федеральное государственное бюджетное образовательное учреждение высшего образования "Ульяновский государственный технический университет" Умножитель по модулю три

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2589361C1 (ru) * 2015-03-10 2016-07-10 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Северо-Кавказский федеральный университет" Умножитель по модулю
RU2626654C1 (ru) * 2016-02-09 2017-07-31 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Умножитель по модулю
RU2630386C1 (ru) * 2016-11-28 2017-09-07 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Умножитель по модулю
RU185670U1 (ru) * 2018-05-24 2018-12-13 Федеральное государственное бюджетное образовательное учреждение высшего образования "МИРЭА - Российский технологический университет" Цифровой умножитель импульсных потоков на константу

Also Published As

Publication number Publication date
RU2005130895A (ru) 2007-04-10

Similar Documents

Publication Publication Date Title
Tenca et al. High-radix design of a scalable modular multiplier
RU2299461C1 (ru) Умножитель по модулю
RU2316042C1 (ru) Устройство для умножения чисел по произвольному модулю
Deryabin et al. High performance parallel computing in residue number system
US6662201B1 (en) Modular arithmetic apparatus and method having high-speed base conversion function
RU2717915C1 (ru) Вычислительное устройство
RU2348965C1 (ru) Вычислительное устройство
RU2324972C2 (ru) Устройство для формирования остатка по произвольному модулю от числа
KR100670780B1 (ko) 유한체 GF(2^m)에서의 하이브리드 곱셈 연산 장치및 연산 방법
RU2299460C1 (ru) Умножитель на два по модулю
CN113672196B (zh) 一种基于单数字信号处理单元的双乘法计算装置和方法
Piestrak Design of multi-residue generators using shared logic
Parhami On equivalences and fair comparisons among residue number systems with special moduli
JP3660075B2 (ja) 除算装置
US20020161810A1 (en) Method and apparatus for multiplication and/or modular reduction processing
Dutta et al. Design of a reconfigurable DSP processor with bit efficient residue number system
RU2626654C1 (ru) Умножитель по модулю
EP1504338A1 (en) &#34;emod&#34; a fast modulus calculation for computer systems
RU2797164C1 (ru) Конвейерный умножитель по модулю
KR100946256B1 (ko) 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기
Wang et al. A novel fast modular multiplier architecture for 8,192-bit RSA cryposystem
KR100392370B1 (ko) 유한체내에서 다단 구조의 역수 계산 장치
RU2804380C1 (ru) Конвейерный вычислитель
Wu et al. Improved RNS Montgomery modular multiplication with residue recovery
RU2797163C1 (ru) Конвейерный вычислитель