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

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

Info

Publication number
RU2626654C1
RU2626654C1 RU2016104302A RU2016104302A RU2626654C1 RU 2626654 C1 RU2626654 C1 RU 2626654C1 RU 2016104302 A RU2016104302 A RU 2016104302A RU 2016104302 A RU2016104302 A RU 2016104302A RU 2626654 C1 RU2626654 C1 RU 2626654C1
Authority
RU
Russia
Prior art keywords
input
multiplier
value
output
module
Prior art date
Application number
RU2016104302A
Other languages
English (en)
Inventor
Вячеслав Иванович Петренко
Юрий Владимирович Кузьминов
Заур Хаджи-Муратович Текеев
Original Assignee
федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" filed Critical федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет"
Priority to RU2016104302A priority Critical patent/RU2626654C1/ru
Application granted granted Critical
Publication of RU2626654C1 publication Critical patent/RU2626654C1/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

Изобретение относится к вычислительной технике и может быть использовано в цифровых вычислительных устройствах, а также в устройствах для формирования элементов конечных полей. Технический результат заключается в сокращении объема используемого оборудования умножителя на два по модулю за счет исключения из схемы всех четных умножителей на константу, а также части инверторов. Предлагаемый умножитель по модулю p позволяет достичь данный результат путем исключения из схемы всех четных умножителей на константу, а также части инверторов. Умножение по модулю производится путем параллельного выполнения n-1 операций. В ходе i-й операции значение z=x⋅y, где x и y - значения входных чисел сравнивается со значением i⋅p путем вычисления разности z-i⋅p, где i=1, …, n. Как только при выполнении i-й операции значение полученной разности станет отрицательным, результатом умножения чисел x и у по модулю p будет являться значение разности, полученное в результате (i-1)-й операции. Диапазон значений входных чисел для данного умножителя определяется размером умножителя и находится в пределах [0, …, р-1]. 1 ил.

Description

Изобретение относится к вычислительной технике и может быть использовано в цифровых вычислительных устройствах, а также в устройствах для формирования элементов конечных полей.
Известно устройство для умножения чисел по модулю, содержащее сумматор и мультиплексор (см. патент РФ №2015537, кл. G06F 7/49, 30.06.1994).
Недостатком данного устройства являются его ограниченные функциональные возможности, а именно ограниченный диапазон значений входных чисел x(0<x≤p-1), где p - значение модуля, по которому производится вычисление), а также отсутствие возможности умножения на число, отличное от двух.
Известно устройство для умножения чисел на два по модулю, содержащее сумматоры, инверторы, умножители и мультиплексор (см. патент РФ №2299460, кл. G06F 7/523, 05.10.2005).
Недостатком данного устройства являются его ограниченные функциональные возможности, а именно ограниченный диапазон значений входных чисел x(0<x≤(n/2)p-1), а также отсутствие возможности умножения на число отличное от двух.
Наиболее близким по технической сущности к заявляемому изобретению является устройство для умножения чисел по модулю, содержащее умножитель, сумматоры, инверторы, умножители на константу, мультиплексор (см. патент РФ №2299461, кл. G06F 7/523, 25.05.2005).
Недостатком данного устройства является большой объем оборудования.
Техническим результатом, достигнутым при осуществлении заявленного изобретения, является сокращение объема оборудования.
Технический результат достигается путем исключения из схемы всех четных умножителей на константу, а также части инверторов следующим образом.
При перемножении значений входных чисел x и y, представленных в двоичной форме, с последующим приведением полученного значения z=x⋅y по модулю p, значение z=x⋅y сравнивается со значением модуля p. Если полученное значение z≥p, то из z вычитается значение модуля p, а полученное в результате значение z1=z-p вновь сравнивается со значением р. Если и в этом случае значение z1≥p, то из z1 вновь вычитается значение p, а полученное в результате значение z2=z1-p сравнивается со значением р. Данные операции проводятся до тех пор, пока значение zi, полученное на n-м шаге вычислений, не станет меньше значения модуля р. В этом случае значение z является результатом умножения числа x на число у по модулю р. Если уже на первом шаге входное значение z<p, значение z остается без изменений и является результатом умножения числа x на число y по модулю p.
Предлагаемый умножитель по модулю осуществляет данный метод путем параллельного выполнения n-1 операций, где n=2N-1, N - разрядность сомножителей и модуля. В ходе i-й операции значение z=x⋅y сравнивается со значением i⋅p путем вычисления разности z-i⋅p, где i=1 , …, n. Как только при выполнении i-й операции значение полученной разности станет отрицательным, результатом умножения числа x на число y по модулю p будет являться значение разности, полученное в результате (i-1)-й операции. Уменьшение объема оборудования достигается за счет исключения части умножителей на константу, осуществляющих умножение модуля p на четные числа. Получение недостающих произведений i⋅p, где i - четное, достигается путем сдвига произведений
Figure 00000001
на один разряд в сторону старшего, что эквивалентно в двоичной системе счисления умножению на 2. Например, произведение 6р может быть получено из произведения 3p путем сдвига разрядов на один в сторону старшего. Таким образом, достаточно иметь лишь умножители на константу для нечетных констант, а умножители на константу для четных констант можно исключить.
На фиг. 1 представлена схема умножителя по модулю.
Умножитель по модулю содержит умножитель 1, (n-1) сумматоров 2, (n-1)/2 инверторов 3, (n-1)/2-1 умножителей на константу 4, и мультиплексор 5, содержащий n информационных и (n-1) управляющих входов. Входы 6 и 7 служат для подачи двоичных кодов умножаемых чисел х и у, вход 8 служит для подачи двоичного кода модуля р. Выход 9 является выходом устройства.
Умножитель по модулю работает следующим образом.
На вход 6 подается двоичный код числа x, на вход 7 - двоичный код числам, причем оба числа принадлежат диапазону [0, …, (р-1)], где p - модуль. Данные коды подаются на входы умножителя 1, который на выходе формирует двоичный код числа z=x⋅y. Код числа z поступает на первые входы сумматоров 2 и на первый информационный вход мультиплексора 5. Со входа 8 устройства двоичный код модуля p подается на вход первого инвертора 3 и на входы умножителей на константу 4. Значение модуля в j-м умножителе на константу 4 умножается на значение i=2 j+1, где j=1, …, (n-1)/2-1 - порядковый номер умножителя на константу. С выхода j-го умножителя на константу 4 код значения i⋅p поступает на вход (j+1)-го инвертора, где j=1, …, (n-1)/2-1. Инверсный код с выходов k-x инверторов 3 подается на вторые входы 2k-1-х сумматоров 2 и дополнительно со сдвигом на вторые входы l⋅2S-х сумматоров 2, где
Figure 00000002
, s=1, 2, 3 … и
Figure 00000003
, при этом сдвиг осуществляется на s разрядов в сторону старшего, а к младшим s разрядам вторых входов соответствующих сумматоров 2 подключен вход записи логической единицы. На вход переноса каждого сумматора 2 поступает код числа «1», служащий для перевода инверсного кода модуля в дополнительный код.
В общем виде сумматор 2 осуществляет операцию, описываемую выражением:
Figure 00000004
, где с - результат суммирования, z=x⋅y - результат умножения входных чисел, i - номер сумматора, p - модуль. Старший разряд сформированного значения с поступает на выход переноса сумматора 2, остальные разряды представляют разность z-i⋅p и поступают на информационный выход сумматора 2.
До тех пор, пока значение z превышает значение i⋅p, на выходе переноса i-го сумматора 2 будет формироваться логическая «1», которая будет поступать на i-й управляющий вход мультиплексора 5. При превышении значением i⋅p значения z на выходе переноса i-го сумматора 2 сформируется логический «0». При поступлении с выхода переноса i-го сумматора 2 на i-й управляющий вход мультиплексора 5 логического «0» мультиплексор 5 переключит на выход 9 информационный вход, на который подается значение с информационного выхода (i-1)-го сумматора 2. Данное значение будет представлять результат умножения числа x на число у по модулю p.
Рассмотрим работу умножителя на примере.
Пусть х=510=0001012, y=310=0000112, z=x⋅y=1510=0011112, p=710=0001112,
Figure 00000005
Как показано выше, i-й сумматор 2 формирует значение
Figure 00000006
, поэтому для второго сумматора i⋅р=2⋅p=1410=0011102,
Figure 00000007
для третьего сумматора i⋅p=3⋅р=2110=0101012,
Figure 00000008
Тогда первый сумматор 2 сформирует значение c1=0011112+1110002+1=10010002, второй - с2=0011112+1100012+1=10000012, третий - с3=00011112+1010102+1=01110102.
Как видно из примера, на выходах переноса первых двух сумматоров 2 сформировано значение «1», на выходе же третьего сумматора 2 сформировано значение «0», поэтому на выход 9 мультиплексора 5 поступит значение с информационного выхода второго сумматора 2, равное 0000012=110. Так как (5⋅3)≡1(mod7), то правильность работы устройства очевидна.
Пусть теперь х=410=001002, y=310=000112, z=x⋅y=12l0=011002, р=1510=011112,
Figure 00000009
В этом случае первый сумматор 2 сформирует значение с1=011002+100002+1=0111012. Так как уже первый сумматор на выходе переноса формирует символ «0», на выход 9 мультиплексора поступит значение с выхода умножителя 1, то есть z=x⋅y=011002=1210=(4⋅3)(mod 15).
Эффективность сокращения затрат на оборудование при использовании данного устройства определяется уменьшением количества умножителей на константу и инверторов. В общем случае количество умножителей на константу в предлагаемом устройстве в (2n-2)/(n-3) раз, а инверторов - в 2 раза меньше, чем в устройстве прототипе.

Claims (1)

  1. Умножитель по модулю, состоящий из умножителя, (n-1) сумматоров, где n=2N-1, N - разрядность кода модуля, (n-1)/2-1 умножителей на константу, (n-1)/2 инверторов и мультиплексора, содержащего n информационных и (n-1) управляющих входов, причем вход записи двоичного кода первого из умножаемых чисел подключен к первому входу умножителя, вход записи двоичного кода второго умножаемого числа подключен ко второму входу умножителя, выход которого подключен к первому информационному входу мультиплексора и первым входам всех сумматоров, выход переноса i-го сумматора подключен к i-му управляющему входу мультиплексора, информационный выход i-го сумматора подключен к (i+1)-му информационному входу мультиплексора, где i=1, …, (n-1), ко входу переноса каждого сумматора подключен вход записи логической единицы, вход записи двоичного кода модуля устройства подключен ко входу первого инвертора и ко входу каждого умножителя на константу, выход j-го умножителя на константу соединен со входом (k+1)-го инвертора, где j=1, …, (n-1)/2 -1, а k=1, …,(n-1)/2, выход k-го инвертора соединен со вторым входом соответствующего нечетного i-го сумматора, выход мультиплексора является выходом устройства, отличающийся тем, что выходы k-х инверторов дополнительно подключены ко вторым входам l⋅2S-х сумматоров, где
    Figure 00000010
    , s=1, 2, 3 … и
    Figure 00000011
    со сдвигом на s разрядов в сторону старшего, а к младшим s разрядам соответствующих сумматоров подключен вход записи логической единицы.
RU2016104302A 2016-02-09 2016-02-09 Умножитель по модулю RU2626654C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2016104302A RU2626654C1 (ru) 2016-02-09 2016-02-09 Умножитель по модулю

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2016104302A RU2626654C1 (ru) 2016-02-09 2016-02-09 Умножитель по модулю

Publications (1)

Publication Number Publication Date
RU2626654C1 true RU2626654C1 (ru) 2017-07-31

Family

ID=59632398

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2016104302A RU2626654C1 (ru) 2016-02-09 2016-02-09 Умножитель по модулю

Country Status (1)

Country Link
RU (1) RU2626654C1 (ru)

Cited By (1)

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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4910701A (en) * 1987-09-24 1990-03-20 Advanced Micro Devices Split array binary multiplication
RU2299461C1 (ru) * 2005-10-05 2007-05-20 Вячеслав Иванович Петренко Умножитель по модулю
RU2299460C1 (ru) * 2005-10-05 2007-05-20 Вячеслав Иванович Петренко Умножитель на два по модулю
US20080114820A1 (en) * 2006-11-15 2008-05-15 Alaaeldin Amin Apparatus and method for high-speed modulo multiplication and division

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4910701A (en) * 1987-09-24 1990-03-20 Advanced Micro Devices Split array binary multiplication
RU2299461C1 (ru) * 2005-10-05 2007-05-20 Вячеслав Иванович Петренко Умножитель по модулю
RU2299460C1 (ru) * 2005-10-05 2007-05-20 Вячеслав Иванович Петренко Умножитель на два по модулю
US20080114820A1 (en) * 2006-11-15 2008-05-15 Alaaeldin Amin Apparatus and method for high-speed modulo multiplication and division

Cited By (1)

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

Similar Documents

Publication Publication Date Title
Mohan et al. Residue Number Systems
Kasianchuk et al. Theory and methods of constructing of modules system of the perfect modified form of the system of residual classes
Nykolaychuk et al. Theoretical foundations for the analytical computation of coefficients of basic numbers of Krestenson’s transformation
Jain et al. Binary division algorithm and high speed deconvolution algorithm (Based on Ancient Indian Vedic Mathematics)
RU2299461C1 (ru) Умножитель по модулю
RU2626654C1 (ru) Умножитель по модулю
RU2717915C1 (ru) Вычислительное устройство
US20230086090A1 (en) Methods and Apparatus for Quotient Digit Recoding in a High-Performance Arithmetic Unit
Piestrak Design of squarers modulo A with low-level pipelining
RU2696223C1 (ru) Арифметико-логическое устройство для формирования остатка по произвольному модулю от числа
RU2589361C1 (ru) Умножитель по модулю
RU2348965C1 (ru) Вычислительное устройство
Piestrak Design of multi-residue generators using shared logic
Teja Design of radix-8 booth multiplier using koggestone adder for high speed Arithmetic applications
RU2324972C2 (ru) Устройство для формирования остатка по произвольному модулю от числа
RU2630386C1 (ru) Умножитель по модулю
RU2661797C1 (ru) Вычислительное устройство
RU2559771C2 (ru) Устройство для основного деления модулярных чисел
Efstathiou et al. On the design of configurable modulo 2n±1 residue generators
KR100946256B1 (ko) 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기
RU2804380C1 (ru) Конвейерный вычислитель
RU2797164C1 (ru) Конвейерный умножитель по модулю
Wu et al. Improved RNS Montgomery modular multiplication with residue recovery
Nirmal et al. Novel Delay Efficient Approach for Vedic Multiplier with Generic Adder Module
Sharoun Residue number system (RNS)

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20210210