RU2739338C1 - Вычислительное устройство - Google Patents
Вычислительное устройство Download PDFInfo
- Publication number
- RU2739338C1 RU2739338C1 RU2020115888A RU2020115888A RU2739338C1 RU 2739338 C1 RU2739338 C1 RU 2739338C1 RU 2020115888 A RU2020115888 A RU 2020115888A RU 2020115888 A RU2020115888 A RU 2020115888A RU 2739338 C1 RU2739338 C1 RU 2739338C1
- Authority
- RU
- Russia
- Prior art keywords
- input
- information
- adders
- multiplexer
- inputs
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/06—Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
- G06F7/10—Selecting, i.e. obtaining data of one kind from those record carriers which are identifiable by data of a second kind from a mass of ordered or randomly- distributed record carriers
- G06F7/12—Selecting, i.e. obtaining data of one kind from those record carriers which are identifiable by data of a second kind from a mass of ordered or randomly- distributed record carriers with provision for printing-out a list of selected items
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/14—Conversion to or from non-weighted codes
- H03M7/18—Conversion to or from residue codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
Изобретение относится к вычислительной технике. Технический результат заключается в повышении быстродействия вычислительного устройства. Вычислительное устройство для вычисления неполного частного и остатка содержит сумматоры и мультиплексоры, причем мультиплексоры содержат элементы ИЛИ, инверторы, элементы И, ключи и блок элементов ИЛИ. 2 ил., 4 табл.
Description
Изобретение относится к вычислительной технике и может быть использовано в цифровых вычислительных устройствах, в криптографических приложениях, а также в устройствах цифровой обработки сигналов и в системах управления.
Известно устройство для формирования остатка по произвольному модулю от числа, содержащее регистры, элементы ИЛИ, вычислитель, схемы сравнения, мультиплексор, элемент задержки, сумматор, группу блоков элементов «И» и блок постоянной памяти со связями (см. АС СССР №1633495, кл. H 03 M 7/18, 1991). Недостатком известного устройства является низкая надежность, так как для его реализации требуется большой объем оборудования.
Известен комбинационный рекуррентный формирователь остатков, содержащий комбинационный формирователь частичных остатков, блок ключей и блок сумматоров по модулю (см. патент РФ №2029435, кл. 6 H 03 M 7/18, 20.02.1995, бюл. №5). Недостатком данного устройства являются его ограниченные функциональные возможности, а именно отсутствие возможности формирования неполного частного.
Известно вычислительное устройство, содержащее сумматоры и мультиплексоры (см. патент РФ № 2348965, МПК G06F 7/72 (2006.01), H03M 7/18 (2006.01), 10.03.2009. Бюл. № 7). Недостатком данного вычислительного устройства является большой объем оборудования.
Наиболее близким по технической сущности к заявляемому изобретению является вычислительное устройство, содержащее сумматоры и мультиплексоры (см. патент РФ № 2717915, МПК G06F 7/72 (2006.01), H03M 7/18 (2006.01), 26.03.2020. Бюл. № 9). Недостатком данного вычислительного устройства является низкое быстродействие.
Техническим результатом изобретения является повышение быстродействия.
Для достижения технического результата в вычислительное устройство, содержащее (n-2) сумматоров и (n/2-1) мультиплексоров, где n-разрядность входного числа, образующих (n/2-1) ступеней преобразования, на первые информационные входы первых сумматоров всех ступеней преобразования подается инверсный двоичный код модуля, информационные выходы первого сумматора i-й ступени преобразования, где i=1,.., n/2-1, соединены с первыми информационными входами мультиплексора этой же ступени преобразования, а выходы переноса соединены с первыми управляющими входами соответствующих мультиплексоров, первый информационный выход мультиплексора (n/2-1)-й ступени преобразования является информационным выходом двоичного кода остатка устройства, дополнительно введены (n/2-1) сумматоров, на первые информационные входы вторых сумматоров всех ступеней преобразования подается инверсный двоичный код удвоенного модуля, на первые информационные входы третьих сумматоров всех ступеней преобразования подается инверсный двоичный код утроенного модуля, информационные выходы вторых и третьих сумматоров всех ступеней преобразования соединены со вторыми и третьими информационными входами соответственно мультиплексоров этих же ступеней преобразования, выходы переноса вторых и третьих сумматоров всех ступеней преобразования соединены со вторыми и третьими управляющими входами соответственно мультиплексоров этих же ступеней преобразования, на входы переноса всех сумматоров подается код логической единицы, j-е разряды вторых информационных входов всех сумматоров и четвертых информационных входов мультиплексоров i-й ступени преобразования, где j=(0;1), соединены с (n-2i-j-1)-ми разрядами двоичного кода входного числа соответственно, второй и третий разряды вторых информационных входов трех сумматоров и четвертых информационных входов мультиплексора первой ступени преобразования соединены с (n-2)-м и (n-1)-м разрядами двоичного кода входного числа соответственно, первые информационные выходы мультиплексоров i-й ступени преобразования, где i=1,.., n/2-2, соединены со сдвигом на два разряда в сторону старших со вторыми информационными входами сумматоров и четвертыми информационными входами мультиплексоров (i+1)-й ступени преобразования, первые информационные выходы мультиплексора (n/2-1)-й ступени преобразования являются выходом двоичного кода остатка, вторые информационные выходы мультиплексоров являются информационными выходами двоичного кода неполного частного устройства, причем мультиплексоры содержат два элемента ИЛИ, три инвертора, два трехвходовых элемента И, двухвходовый элемент И, четыре ключа и блок элементов ИЛИ, информационный выход которого является первым информационным выходом мультиплексора, информационные входы соединены с информационными выходами соответствующих ключей, первые информационные входы которых являются соответствующими информационными входами мультиплексора, управляющий вход четвертого ключа соединен с выходом первого трехвходового элемента И, первый вход которого соединен с выходом первого инвертора, второй вход соединен с выходом второго инвертора и со вторым входом второго трехвходового элемента И, третий вход соединен с выходом третьего инвертора, с третьим входом второго трехвходового элемента И и со вторым входом двухвходового элемента И, вход первого инвертора является первым управляющим входом мультиплексора и соединен с первым входом второго трехвходового элемента И, выход которого соединен с управляющим входом первого ключа и первым входом второго элемента ИЛИ, вход второго инвертора является вторым управляющим входом мультиплексора и соединен с первым входом двухвходового элемента И, выход которого соединен с управляющим входом второго ключа и первым входом первого элемента ИЛИ, вход третьего инвертора является третьим управляющим входом мультиплексора и соединен с управляющим входом третьего ключа и со вторыми входами элементов ИЛИ, выходы которых являются вторыми информационными выходами мультиплексора.
Сущность изобретения заключается в реализации следующего способа вычисления остатка R от числа A по модулю P. Пусть
A = Q⋅P +R, (1)
где A – целое положительное число, от которого необходимо вычислить остаток;
P – целое положительное число, называемое модулем;
Q – целое положительное число, являющееся неполным частным от деления A на P;
R – целое положительное число, являющееся остатком от деления A на P.
Причем
A = a n -1 ·2 n -1+a n -2 ·2 n -2+ a n -3 ·2 n -3+a n -4 ·2 n -4+ . . . +a 3 ·23+a 2 ·22+a 1 ·2+a 0, (2)
P = p n -1 ·2 n -1+p n -2 ·2 n -2+ . . . +p 1 ·21+p 0, (3)
Q = q n -2 ·2 n -2+ . . . +q 1 ·21+q 0, (4)
R = r n -2 ·2 n -2+ . . . +r 1 ·21+r 0, (5)
n – количество разрядов в представлении чисел, n – четное.
Задача состоит в том, чтобы по известным A и P отыскать остаток R и неполное частное Q. Остаток R является в терминах теории чисел вычетом числа A по модулю P, поэтому говорят, что A сравнимо с R по модулю P:
A ≡ R (mod P). (6)
Значение остатка R может быть вычислено следующим образом:
R ≡ A (mod P)= (a n -1 ·2 n -1+a n -2 ·2 n -2+ . . . +a 1 ·2+a 0)mod P. (7)
Перепишем выражение (2) в следующем виде, объединив по два соседних слагаемых:
A = (a n -1 ·2 n -1+a n -2 ·2 n -2)+ (a n -3 ·2 n -3+a n -4 ·2 n -4)+ . . . +(a 3 ·23+a 2 ·22)+(a 1 ·2+a 0), (8)
Из каждой суммы в скобках в выражении (8) вынесем 2 i за скобки, где , принимает только четные значения:
A = 2 n -2(a n -1 ·2+a n -2)+2 n -4(a n -3 ·2+a n -4)+ . . . +22(a 3 ·2+a 2)+(a 1 ·2+a 0), (9)
В выражении (9) перед каждой из n/2 образовавшихся сумм вида (a i +1 ·2+a i ), получаем множитель 2 i , где , принимает только четные значения.
Далее вынесем в (9) наименьшую ненулевую степень 2 за скобки:
A = 22(2 n -4(a n -1 ·2+a n -2)+ 2 n -6 (a n -3 ·2+a n -4)+ . . . + (a 3 ·2+a 2))+(a 1 ·2+a 0), (10)
Выполняя последовательно преобразование (10) (n/2)-2 раз получим:
A = 22(22…(22(a n -1 ·2+a n -2)+(a n -3 ·2+a n -4))+ . . . + (a 3 ·2+a 2))+(a 1 ·2+a 0), (11)
где 22 встречается (n/2)-1 раз.
Тогда выражение (7) может быть представлено в следующем виде:
R = (22(22…(22(a n -1 ·2+a n -2)+(a n -3 ·2+a n -4))+ . . . + (a 3 ·2+a 2))+(a 1 ·2+a 0)) mod P. (12)
Из теории чисел известно, что операция приведения по модулю инвариантна к сложению и умножению, т. е. величина остатка не зависит от того, вычислен ли он от суммы (произведения) или от каждого слагаемого (сомножителя), а затем соответствующие частичные остатки просуммированы (перемножены) и от результата вычислен остаток по модулю.
Исходя из вышесказанного, выражение (12) может быть вычислено следующим образом.
Вначале на первой ступени преобразования вычисляют величину
t 1=(22(a n -1 ·2+a n -2)+(a n -3 ·2+a n -4)) mod P. (13)
На второй ступени преобразования вычисляют величину
t 2=(22 t 1+(a n -5 ·2+a n -6)) mod P. (14)
На последней (n/2-1)-й ступени преобразования вычисляют величину
t n /2-1=(22 t n /2-2+(a 1 ·2+a 0)) mod P, (15)
которая и является искомым остатком R от числа A по модулю P.
Операция приведения по модулю P на каждой ступени преобразования выполняется исходя из следующих соображений.
По определению величина t i -1 лежит в диапазоне 0≤t i -1≤P-1, поэтому в соответствии с выражениями (13)-(15) величина
t i =22 t i -1 +(a n -2 i -1 ·2+a n -2 i -2), (16)
до приведения ее по модулю может принимать значения в диапазоне от 0 до 4P-1. Приведение по модулю величины t i осуществляется по следующим правилам
t i (mod P)=t i , если 0 ≤ t i < P, (17)
t i (mod P)=t i - P, если P≤ t i < 2P,
t i (mod P)=t i - 2P, если 2P ≤ t i < 3P,
t i (mod P)=t i - 3P, если 3P ≤ t i < 4P.
Разряды неполного частного Q на каждом этапе вычислений принимают значения в соответствии с таблицей 1.
Таблица 1.
старший разряд | младший разряд | Значение t i |
0 | 0 | 0 ≤ t i < P |
0 | 1 | P≤ t i < 2P |
1 | 0 | 2P ≤ t i < 3P |
1 | 1 | 3P ≤ t i < 4P |
Условия попадания значения t i в один из указанных в таблице 1 интервалов определяются значениями сигналов переноса на выходах переноса сумматоров, осуществляющих операцию вычитания (t i – kP), где k=1, 2, 3 в соответствии с таблицей 2.
Таблица 2.
t i | t i – P | t i – 2P | t i – 3P |
0 ≤ t i < P | 0 | 0 | 0 |
P≤ t i < 2P | 1 | 0 | 0 |
2P ≤ t i < 3P | 1 | 1 | 0 |
3P ≤ t i < 4P | 1 | 1 | 1 |
Таким образом, если значение сигналов переноса равно «1» на выходах переноса всех трех сумматоров, то t i (mod P)=t i - 3P, если значение сигналов переноса равно «1» на выходах переноса двух сумматоров, то
t i (mod P)=t i - 2P, если значение сигнала переноса равно «1» на выходах переноса одного сумматора, то t i (mod P)=t i – P. Если значение сигналов переноса равно «0» на выходах переноса всех трех сумматоров, то тогда
t i (mod P)=t i , т.е. операция вычитания не выполняется.
t i (mod P)=t i - 2P, если значение сигнала переноса равно «1» на выходах переноса одного сумматора, то t i (mod P)=t i – P. Если значение сигналов переноса равно «0» на выходах переноса всех трех сумматоров, то тогда
t i (mod P)=t i , т.е. операция вычитания не выполняется.
На фиг.1 представлена схема вычислительного устройства.
Вычислительное устройство содержит (3n/2-3) сумматоров 1 и (n/2-1) мультиплексоров 2, где n-разрядность входного числа, образующих (n/2-1) ступеней преобразования, вход 3 подачи двоичного кода числа A, выход 4 двоичного кода неполного частного Q и выход 5 двоичного кода остатка R от числа A. На первые информационные входы первых сумматоров 1 всех ступеней преобразования подается инверсный двоичный код модуля, на первые информационные входы вторых сумматоров 1 всех ступеней преобразования подается инверсный двоичный код удвоенного модуля, на первые информационные входы третьих сумматоров 1 всех ступеней преобразования подается инверсный двоичный код утроенного модуля. На входы переноса всех сумматоров 1 подается код логической единицы. Информационные выходы первого, второго и третьего сумматоров 1 всех ступеней преобразования соединены со первыми, вторыми и третьими информационными входами соответственно мультиплексоров 2 этих же ступеней преобразования. Выходы переноса первых, вторых и третьих сумматоров 1 всех ступеней преобразования соединены с первыми, вторыми и третьими управляющими входами соответственно мультиплексоров 2 этих же ступеней преобразования, j-е разряды вторых информационных входов всех сумматоров 1 и четвертых информационных входов мультиплексоров 2 i-й ступени преобразования, где j=(0;1), соединены с (n-2i-j-1)-ми разрядами входа 3 двоичного кода числа A соответственно. Второй и третий разряды вторых информационных входов трех сумматоров 1 и четвертых информационных входов мультиплексора 2 первой ступени преобразования соединены с (n-2)-м и (n-1)-м разрядами входа 3 двоичного кода числа A соответственно. Первые информационные выходы мультиплексоров 2 i-й ступени преобразования, где i=1,.., n/2-2, соединены со сдвигом на два разряда в сторону старших со вторыми информационными входами сумматоров 1 и четвертыми информационными входами мультиплексоров 2 (i+1)-й ступени преобразования. Первые информационные выходы мультиплексора 2 (n/2-1)-й ступени преобразования являются выходом 5 двоичного кода остатка R от числа A. Вторые информационные выходы мультиплексоров 2 являются информационными выходами 4 двоичного кода неполного частного Q устройства, первый информационный выход мультиплексора (n/2-1)-й ступени преобразования является информационным выходом 5 двоичного кода остатка R.
На фиг.2 представлена схема мультиплексоров 2.
Мультиплексоры 2 содержат два элемента ИЛИ 6, три инвертора 7, два трехвходовых элемента И 8, двухвходовый элемент И 9, четыре ключа 10 и блок элементов ИЛИ 11, информационный выход которого является первым информационным выходом мультиплексора 2, информационные входы соединены с информационными выходами соответствующих ключей 10, первые информационные входы которых являются соответствующими информационными входами мультиплексора 2, управляющий вход четвертого ключа 10 соединен с выходом первого трехвходового элемента И 8, первый вход которого соединен с выходом первого инвертора 7, второй вход соединен с выходом второго инвертора 7 и со вторым входом второго трехвходового элемента И 8, третий вход соединен с выходом третьего инвертора 7, с третьим входом второго трехвходового элемента И 8 и со вторым входом двухвходового элемента И 9, вход первого инвертора 7 является первым управляющим входом мультиплексора 2 и соединен с первым входом второго трехвходового элемента И 8, выход которого соединен с управляющим входом первого ключа 10 и первым входом второго элемента ИЛИ 6, вход второго инвертора 7 является вторым управляющим входом мультиплексора 2 и соединен с первым входом двухвходового элемента И 9, выход которого соединен с управляющим входом второго ключа 10 и первым входом первого элемента ИЛИ 6, вход третьего инвертора является третьим управляющим входом мультиплексора 2 и соединен с управляющим входом третьего ключа 10 и со вторыми входами элементов ИЛИ 6, выходы которых являются вторыми информационными выходами мультиплексора 2.
Вычислительное устройство работает следующим образом.
На вход 3 устройства подается двоичный код числа A от которого необходимо сформировать остаток R и неполное частное Q. Старшие разряды числа A подаются на вход первой ступени преобразования, а младшие – на вход последней.
На первые информационные входы первых сумматоров 1 всех ступеней преобразования подается инверсный код модуля P, вторых сумматоров 1 – удвоенный инверсный код модуля P, а третьих сумматоров 1 – утроенный инверсный код модуля P.
На первой ступени преобразования осуществляется вычисление значения t 1=(22(a n -1 ·2+a n -2)+(a n -3 ·2+a n -4)) mod P. Причем вычисление значения
22(a n -1 ·2+a n -2)+(a n -3 ·2+a n -4) осуществляется путем подачи соответствующих разрядов a n -1 …a n -4 на соответствующие входы первой ступени преобразования. Для приведения этого значения по модулю P с помощью сумматоров 1 осуществляют одновременное вычитание значений P, 2P и 3P. Сигналы переноса в виде логических единиц на выходах сумматоров 1 появятся в зависимости от того в каком диапазоне находится входное значение в соответствии с табл. 2 и далее поступят на соответствующие управляющие входы мультиплексора 2.
22(a n -1 ·2+a n -2)+(a n -3 ·2+a n -4) осуществляется путем подачи соответствующих разрядов a n -1 …a n -4 на соответствующие входы первой ступени преобразования. Для приведения этого значения по модулю P с помощью сумматоров 1 осуществляют одновременное вычитание значений P, 2P и 3P. Сигналы переноса в виде логических единиц на выходах сумматоров 1 появятся в зависимости от того в каком диапазоне находится входное значение в соответствии с табл. 2 и далее поступят на соответствующие управляющие входы мультиплексора 2.
Управляющие сигналы мультиплексора 2 (см. Фиг. 2) открывают один из ключей 10.
Если управляющий сигнал появляется на всех трех управляющих входах, то окажется открытым третий ключ 10. Управляющий сигнал с третьего управляющего входа откроет третий ключ 10 и через третий инвертор 7 в виде логического нуля поступит на третьи входы трехвходовых элементов И 8 и на второй вход двухвходового элемента И 9, запрещая прохождение управляющих сигналов с их первых входов на их выходы. В результате первый, второй и четвертый ключи 10 окажутся закрытыми и на выход мультиплексора поступит значение 22(a n -1 ·2+a n -2)+(a n -3 ·2+a n -4) - 3P с его третьего информационного входа.
Если управляющий сигнал появляется на первом и втором управляющих входах мультиплексора 2, то аналогичным образом окажется открытым только второй ключ 10, а первый, третий и четвертый ключи 10 окажутся закрытыми. В результате на выход мультиплексора 2 поступит значение с его второго информационного входа 22(a n -1 ·2+a n -2)+(a n -3 ·2+a n -4) - 2P.
Если управляющий сигнал появляется только на первом управляющем входе мультиплексора 2, то аналогичным образом окажется открытым только первый ключ 10, а второй, третий и четвертый ключи окажутся закрытыми. В результате на выход мультиплексора 2 поступит значение 22(a n -1 ·2+a n -2)+(a n -3 ·2+a n -4) - P с его первого информационного входа.
Если же на управляющих входах мультиплексора 2 будут только нулевые сигналы, то они, поступая через инверторы 7 и первый трехвходовый элемент И 8, откроют четвертый ключ 10 и на выход мультиплексора 2 поступит значение с его четвертого информационного входа 22(a n -1 ·2+a n -2)+(a n -3 ·2+a n -4).
Сформированное на первой ступени преобразования значение
t 1=(22(a n -1 ·2+a n -2)+(a n -3 ·2+a n -4)) mod P поступает со сдвигом на два разряда в сторону старших (т.е. фактически осуществляя умножение на 22) на вход следующей ступени преобразования. На младшие два разряда подаются сигналы a n -5, a n -6 разрядов входного числа A.
t 1=(22(a n -1 ·2+a n -2)+(a n -3 ·2+a n -4)) mod P поступает со сдвигом на два разряда в сторону старших (т.е. фактически осуществляя умножение на 22) на вход следующей ступени преобразования. На младшие два разряда подаются сигналы a n -5, a n -6 разрядов входного числа A.
На второй ступени преобразования осуществляются аналогичные вычисления. Аналогично происходит работа устройства и на остальных ступенях преобразования.
Так как на каждой ступени преобразования осуществляется обработка одновременно двух разрядов входного числа, то через (n/2-1) преобразований на выходе 5 устройства сформируется двоичный код остатка R от числа A по модулю P, а на выходе 4 устройства сформируется двоичный код неполного частного Q.
Рассмотрим работу вычислительного устройства на примере.
Пусть входное число A=24810=111110002, модуль P=510=000001012, разрядность n=8. Двоичные прямые и инверсные коды значений модуля P, 2P, 3P представлены в табл. 3.
Таблица 3.
Двоичный прямой код | Двоичный инверсный код | |
Модуль P =5 | 00000101 | 11111010 |
Значение 2P = 10 | 00001010 | 11110101 |
Значение 3P = 15 | 00001111 | 11110000 |
Значения сигналов при работе устройства на входах и выходах сумматоров 1 и мультиплексоров 2 представлены в табл. 4.
Таблица 4.
№ ступени | Вход/выход | Сумматор 1 | Сумматор 2 | Сумматор 3 | Мультиплексор |
1 | вход 1 | 11111010 | 11110101 | 11110000 | 00001010 |
вход 2 | 00001111 | 00001111 | 00001111 | 00000101 | |
вход 3 | 1 | 1 | 1 | 00000000 | |
вход 4 | - | - | - | 00001111 | |
выход 1 | 00001010 | 00000101 | 00000000 | 00000000 | |
выход 2 | 1 | 1 | 1 | 11 | |
2 | вход 1 | 11111010 | 11110101 | 11110000 | 11111101 |
вход 2 | 00000010 | 00000010 | 00000010 | 11111000 | |
вход 3 | 1 | 1 | 1 | 11110011 | |
вход 4 | - | - | - | 00000010 | |
выход 1 | 11111101 | 11111000 | 11110011 | 00000010 | |
выход 2 | 0 | 0 | 0 | 00 | |
3 | вход 1 | 11111010 | 11110101 | 11110000 | 00000011 |
вход 2 | 00001000 | 00001000 | 00001000 | 11111110 | |
вход 3 | 1 | 1 | 1 | 11111001 | |
вход 4 | - | - | - | 00001000 | |
выход 1 | 00000011 | 11111110 | 11111001 | 00000011 | |
выход 2 | 1 | 0 | 0 | 01 |
Номер ступени преобразования приведен в первом столбце таблицы 4. «Сумматор 1», «Сумматор 2» и «Сумматор 3» соответственно первый, второй и третий сумматоры 1, «Мультиплексор» - обозначение мультиплексоров 2, «вход 1» и «вход 2», соответственно первый и второй информационные входы сумматоров 1 и мультиплексора 2, «вход 3» - вход переноса сумматоров 1 и третий информационный вход мультиплексора 2 «вход 4» - четвертый информационный вход мультиплексора 2, «выход 1» - информационные выходы сумматоров 1 и мультиплексора 2, «выход 2» - выход переноса сумматоров 1 или второй информационный выход мультиплексора 2.
В результате на информационных выходах 5 мультиплексора 2 третьей ступени преобразования окажется код числа 000000112=310, который и является вычисленным остатком R числа A=248 по модулю P=5, а на выходах 4 устройства образуется двоичный код 1100012=4910, который и является неполным частным Q. Непосредственной проверкой устанавливаем, что 248=49·5 + 3, что доказывает правильность функционирования устройства.
В устройстве прототипе вычисление остатка осуществляется за (n-1) последовательных шагов преобразования, а в предлагаемом устройстве за (n/2-1) шагов. В результате быстродействие предлагаемого технического решения по сравнению с устройством прототипом будет выше не менее чем в два раза.
Claims (1)
- Вычислительное устройство для вычисления неполного частного и остатка, содержащее (n-2) сумматоров и (n/2-1) мультиплексоров, где n - разрядность входного числа, образующих (n/2-1) ступеней преобразования, на первые информационные входы первых сумматоров всех ступеней преобразования подается инверсный двоичный код модуля, информационные выходы первого сумматора i-й ступени преобразования, где i=1,.., n/2-1, соединены с первыми информационными входами мультиплексора этой же ступени преобразования, а выходы переноса соединены с первыми управляющими входами соответствующих мультиплексоров, первый информационный выход мультиплексора (n/2-1)-й ступени преобразования является информационным выходом двоичного кода остатка устройства, отличающееся тем, что в него дополнительно введены (n/2-1) сумматоров, на первые информационные входы вторых сумматоров всех ступеней преобразования подается инверсный двоичный код удвоенного модуля, на первые информационные входы третьих сумматоров всех ступеней преобразования подается инверсный двоичный код утроенного модуля, информационные выходы вторых и третьих сумматоров всех ступеней преобразования соединены со вторыми и третьими информационными входами соответственно мультиплексоров этих же ступеней преобразования, выходы переноса вторых и третьих сумматоров всех ступеней преобразования соединены со вторыми и третьими управляющими входами соответственно мультиплексоров этих же ступеней преобразования, на входы переноса всех сумматоров подается код логической единицы, j-е разряды вторых информационных входов всех сумматоров и четвертых информационных входов мультиплексоров i-й ступени преобразования, где j=(0;1), соединены с (n-2i-j-1)-ми разрядами двоичного кода входного числа соответственно, второй и третий разряды вторых информационных входов трех сумматоров и четвертых информационных входов мультиплексора первой ступени преобразования соединены с (n-2)-м и (n-1)-м разрядами двоичного кода входного числа соответственно, первые информационные выходы мультиплексоров i-й ступени преобразования, где i=1,.., n/2-2, соединены со сдвигом на два разряда в сторону старших со вторыми информационными входами сумматоров и четвертыми информационными входами мультиплексоров (i+1)-й ступени преобразования, первые информационные выходы мультиплексора (n/2-1)-й ступени преобразования являются выходом двоичного кода остатка, вторые информационные выходы мультиплексоров являются информационными выходами двоичного кода неполного частного устройства, причем мультиплексоры содержат два элемента ИЛИ, три инвертора, два трехвходовых элемента И, двухвходовый элемент И, четыре ключа и блок элементов ИЛИ, информационный выход которого является первым информационным выходом мультиплексора, информационные входы соединены с информационными выходами соответствующих ключей, первые информационные входы которых являются соответствующими информационными входами мультиплексора, управляющий вход четвертого ключа соединен с выходом первого трехвходового элемента И, первый вход которого соединен с выходом первого инвертора, второй вход соединен с выходом второго инвертора и со вторым входом второго трехвходового элемента И, третий вход соединен с выходом третьего инвертора, с третьим входом второго трехвходового элемента И и со вторым входом двухвходового элемента И, вход первого инвертора является первым управляющим входом мультиплексора и соединен с первым входом второго трехвходового элемента И, выход которого соединен с управляющим входом первого ключа и первым входом второго элемента ИЛИ, вход второго инвертора является вторым управляющим входом мультиплексора и соединен с первым входом двухвходового элемента И, выход которого соединен с управляющим входом второго ключа и первым входом первого элемента ИЛИ, вход третьего инвертора является третьим управляющим входом мультиплексора и соединен с управляющим входом третьего ключа и со вторыми входами элементов ИЛИ, выходы которых являются вторыми информационными выходами мультиплексора.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2020115888A RU2739338C1 (ru) | 2020-05-15 | 2020-05-15 | Вычислительное устройство |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2020115888A RU2739338C1 (ru) | 2020-05-15 | 2020-05-15 | Вычислительное устройство |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2739338C1 true RU2739338C1 (ru) | 2020-12-23 |
Family
ID=74062960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2020115888A RU2739338C1 (ru) | 2020-05-15 | 2020-05-15 | Вычислительное устройство |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2739338C1 (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2796555C1 (ru) * | 2022-11-30 | 2023-05-25 | федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" | Вычислительное устройство |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040210614A1 (en) * | 2000-12-19 | 2004-10-21 | International Business Machines Corporation | Hardware implementation for modular multiplication using a plurality of almost entirely identical processor elements |
US20070100926A1 (en) * | 2005-10-28 | 2007-05-03 | Infineon Technologies Ag | Device and method for calculating a multiplication addition operation and for calculating a result of a modular multiplication |
RU2348965C1 (ru) * | 2007-05-25 | 2009-03-10 | Государственное образовательное учреждение высшего профессионального образования "Ставропольский государственный университет" | Вычислительное устройство |
RU2661797C1 (ru) * | 2017-06-13 | 2018-07-19 | федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" | Вычислительное устройство |
RU2717915C1 (ru) * | 2019-02-21 | 2020-03-26 | федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" | Вычислительное устройство |
-
2020
- 2020-05-15 RU RU2020115888A patent/RU2739338C1/ru active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040210614A1 (en) * | 2000-12-19 | 2004-10-21 | International Business Machines Corporation | Hardware implementation for modular multiplication using a plurality of almost entirely identical processor elements |
US20070100926A1 (en) * | 2005-10-28 | 2007-05-03 | Infineon Technologies Ag | Device and method for calculating a multiplication addition operation and for calculating a result of a modular multiplication |
RU2348965C1 (ru) * | 2007-05-25 | 2009-03-10 | Государственное образовательное учреждение высшего профессионального образования "Ставропольский государственный университет" | Вычислительное устройство |
RU2661797C1 (ru) * | 2017-06-13 | 2018-07-19 | федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" | Вычислительное устройство |
RU2717915C1 (ru) * | 2019-02-21 | 2020-03-26 | федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" | Вычислительное устройство |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2796555C1 (ru) * | 2022-11-30 | 2023-05-25 | федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" | Вычислительное устройство |
RU2798746C1 (ru) * | 2023-03-01 | 2023-06-26 | федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" | Вычислительное устройство |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | A new RSA cryptosystem hardware design based on Montgomery's algorithm | |
US20040215686A1 (en) | Montgomery modular multiplier and method thereof using carry save addition | |
EP2037357A2 (en) | Montgomery modular multiplier and method thereof using carry save addition | |
Gokhale et al. | Design of area and delay efficient Vedic multiplier using Carry Select Adder | |
RU2316042C1 (ru) | Устройство для умножения чисел по произвольному модулю | |
RU2717915C1 (ru) | Вычислительное устройство | |
RU2739338C1 (ru) | Вычислительное устройство | |
RU2348965C1 (ru) | Вычислительное устройство | |
RU2756408C1 (ru) | Вычислительное устройство | |
Rouhifar et al. | Fast overflow detection in moduli set {2n–1, 2n, 2n+ 1} | |
Piestrak | Design of multi-residue generators using shared logic | |
RU2751802C1 (ru) | Умножитель по модулю | |
Hiasat et al. | Semi-custom VLSI design and implementation of a new efficient RNS division algorithm | |
RU2755734C1 (ru) | Устройство для умножения чисел по произвольному модулю | |
RU2796555C1 (ru) | Вычислительное устройство | |
RU2661797C1 (ru) | Вычислительное устройство | |
RU2559771C2 (ru) | Устройство для основного деления модулярных чисел | |
RU2798746C1 (ru) | Вычислительное устройство | |
RU2791441C1 (ru) | Накапливающий сумматор по модулю | |
RU2797164C1 (ru) | Конвейерный умножитель по модулю | |
RU2804380C1 (ru) | Конвейерный вычислитель | |
RU2799035C1 (ru) | Конвейерный сумматор по модулю | |
RU2791440C1 (ru) | Конвейерный формирователь остатков по произвольному модулю | |
Yang et al. | The IC design of a high speed RSA processor | |
RU2029435C1 (ru) | Комбинационный рекуррентный формирователь остатков |