RU2798746C1 - Вычислительное устройство - Google Patents

Вычислительное устройство Download PDF

Info

Publication number
RU2798746C1
RU2798746C1 RU2023104570A RU2023104570A RU2798746C1 RU 2798746 C1 RU2798746 C1 RU 2798746C1 RU 2023104570 A RU2023104570 A RU 2023104570A RU 2023104570 A RU2023104570 A RU 2023104570A RU 2798746 C1 RU2798746 C1 RU 2798746C1
Authority
RU
Russia
Prior art keywords
inputs
information
input
remainder
quotient
Prior art date
Application number
RU2023104570A
Other languages
English (en)
Inventor
Вячеслав Иванович Петренко
Владимир Андреевич Швецов
Алексей Витальевич Вечканов
Original Assignee
федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет"
Filing date
Publication date
Application filed by федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" filed Critical федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет"
Application granted granted Critical
Publication of RU2798746C1 publication Critical patent/RU2798746C1/ru

Links

Images

Abstract

Изобретение относится к области цифровой обработки сигналов. Технический результат заключается в увеличении быстродействия при формировании остатка от числа по модулю и неполного частного. Технический результат достигается за счет того, что устройство содержит два n/2-разрядных регистра сдвига, блок формирования частного и остатка, при этом блок формирования частного и остатка содержит три блока сравнения, мультиплексор, элемент ИЛИ, сумматор, регистр кода остатка, два n/2-разрядных регистра сдвига, мультиплексор содержит два инвертора, два элемента И, три ключа, блок элементов ИЛИ, два элемента ИЛИ, n – количество разрядов в представлении чисел. 3 ил., 2 табл.

Description

Область техники, к которой относится изобретение
Изобретение относится к вычислительной технике и может быть использовано в цифровых вычислительных устройствах, устройствах цифровой обработки сигналов, в криптографических приложениях, а также в устройствах для формирования кодовых последовательностей, построение которых основывается на теории конечных полей.
Уровень техники
Известно вычислительное устройство (патент RU 2348965, МПК G06F 7/72, H03M 7/18, опубл. 10.03.2009, бюл. №7), содержащее сумматоры и мультиплексоры, позволяющее формировать остаток от числа по модулю и неполное частное. Недостатком данного устройства является большой объем оборудования.
Наиболее близким по технической сущности к заявляемому изобретению является вычислительное устройство (патент RU 2661797, МПК H03M 7/18, G06F 7/72, опубл. 19.07.2018), содержащее первый n-разрядный регистр и блок формирования частного и остатка, который содержит сумматор, мультиплексор и два регистра с соответствующими связями. Недостатком данного устройства является низкое быстродействие.
Техническим результатом изобретения является увеличение быстродействия формирования остатка от числа по модулю и неполного частного.
Раскрытие сущности изобретения
Для достижения технического результата в вычислительное устройство, содержащее n-разрядный регистр, входы кода числа, входы инверсного кода модуля, выходы кода остатка, выходы кода неполного частного, вход начала вычисления устройства, вход тактовых импульсов устройства, блок формирования частного и остатка, содержащий сумматор, регистр кода неполного частного и регистр кода остатка, вход подачи тактовых импульсов которого соединен со вторым управляющим входом блока формирования частного и остатка, информационные выходы соединены со вторыми информационными выходами блока формирования частного и остатка, информационные входы n-разрядного регистра соединены со входами кода числа устройства, вход обнуления соединён со входом начала вычисления устройства, а вход подачи тактовых импульсов соединен со входом тактовых импульсов устройства и со вторым управляющим входом блока формирования частного и остатка, четвертые информационные входы которого соединены со входами инверсного кода модуля устройства, первые информационные выходы соединены с выходами неполного частного устройства, а вторые информационные выходы соединены с выходами остатка устройства, введены входы кода модуля устройства, входы удвоенного кода модуля устройства, входы утроенного кода модуля устройства, входы инверсного удвоенного кода модуля устройства, входы инверсного утроенного кода модуля устройства, которые соединены соответственно с первыми информационными входами, со вторыми информационными входами, с третьими информационными входами, с пятыми информационными входами, с шестыми информационными входами блока формирования частного и остатка, при этом n-разрядный регистр выполнен в виде первого и второго n/2-разрядных регистров сдвига, причём вход начала вычисления устройства соединён со входами обнуления первого и второго n/2-разрядных регистров сдвига, вход тактовых импульсов устройства соединён со вторым управляющим входом блока формирования частного и остатка и со входами подачи тактовых импульсов первого и второго n/2-разрядных регистров сдвига, старшие разряды информационных выходов первого и второго n/2-разрядных регистров сдвига соединены соответственно с седьмым и восьмым информационными входами блока формирования частного и остатка, который содержит первый, второй и третий блоки сравнения, мультиплексор и первый элемент ИЛИ, причем регистр кода неполного частного выполнен в виде третьего и четвёртого n/2-разрядных регистров сдвига, при этом вторые входы первого, второго и третьего блока сравнения соединены с первыми, вторыми и третьими информационными входами блока формирования частного и остатка соответственно, первые, вторые и третьи информационные входы мультиплексора соединены с четвёртыми, пятыми и шестыми информационными входами блока формирования частного и остатка, два младших разряда первых входов первого, второго и третьего блоков сравнения и также первых информационных входов сумматора соединены с седьмым и восьмым информационными входами блока формирования частного и остатка, а старшие разряды соединены со сдвигом на два разряда с информационными выходами регистра кода остатка, информационные выходы сумматора соединены с информационными входами регистра кода остатка, выходы первого, второго и третьего блока сравнения соединены с первым, вторым и третьим управляющими входами мультиплексора соответственно и с первым, вторым и третьим входами первого элемента ИЛИ, выход которого соединён со входом переноса сумматора, вторые информационные входы которого соединены с первыми информационными выходами мультиплексора, второй информационный выход которого соединён со входом младшего разряда третьего n/2-разрядного регистра сдвига, третий информационный выход соединён со входом младшего разряда четвёртого n/2-разрядного регистра сдвига, информационные выходы которого соединены с нечётными разрядами вторых информационных выходов блока формирования частного и остатка, с чётными разрядами которых соединены информационные выходы третьего n/2-разрядного регистра сдвига, входы обнуления регистра кода остатка, третьего и четвёртого n/2-разрядных регистров сдвига, соединены с первым управляющим входом блока формирования частного и остатка, а входы тактовых импульсов третьего и четвёртого n/2-разрядных регистров сдвига соединены со вторым управляющим входом блоком формирования частного и остатка, причём мультиплексор содержит первый и второй инверторы, первый и второй элементы И, первый, второй и третий ключи, блок элементов ИЛИ, второй и третий элементы ИЛИ, при этом первый управляющий вход мультиплексора соединён с первым входом первого элемента И, второй управляющий вход соединён со входом первого инвертора и с первым входом второго элемента И, третий управляющий вход соединён со входом второго инвертора, первыми входами второго и третьего элементов ИЛИ, а также с управляющим входом третьего ключа, выход первого инвертора соединён со вторым входом первого элемента И, выход второго инвертора соединён с третьим входом первого элемента И, а также со вторым входом второго элемента И, выход первого элемента И соединён с управляющим входом первого ключа, а также со вторым входом второго элемента ИЛИ, выход второго элемента И соединён с управляющим входом второго ключа, а также со вторым входом третьего элемента ИЛИ, первые, вторые и третьи информационные входы мультиплексора соединены соответственно с информационными входами первого, второго и третьего ключей, выходы которых соединены соответственно с первыми, вторыми и третьими входами блока элементов ИЛИ, выходы которого соединены с первыми информационными выходами мультиплексора, выход второго элемента ИЛИ соединён со вторым информационным выходом мультиплексора, выход третьего элемента ИЛИ соединён с третьим информационным выходом мультиплексора.
Сущность изобретения заключается в реализации следующего способа вычисления остатка R и неполного частного Q от числа A по модулю P. Пусть
Figure 00000001
где A – целое положительное число, от которого необходимо вычислить остаток;
P – целое положительное число, называемое модулем;
Q – целое положительное число, являющееся неполным частным от деления A на P;
R – целое положительное число, являющееся остатком от деления A на P.
Причем
Figure 00000002
где a i ,
Figure 00000003
– коэффициенты, принимающие значение 0 или 1 в зависимости от значения числа A;
p i ,
Figure 00000004
– коэффициенты, принимающие значение 0 или 1 в зависимости от значения модуля P;
q i ,
Figure 00000004
– коэффициенты, принимающие значение 0 или 1 в зависимости от значения неполного частного Q;
r i ,
Figure 00000005
– коэффициенты, принимающие значение 0 или 1 в зависимости от значения остатка R;
n – количество разрядов в представлении чисел.
Задача состоит в том, чтобы по известным A и P отыскать остаток R и неполное частное Q. Остаток R является в терминах теории чисел вычетом числа A по модулю P, поэтому говорят, что A сравнимо с R:
Figure 00000006
Значение остатка R может быть вычислено следующим образом:
Figure 00000007
Перепишем выражение (2) в следующем виде, объединив по два соседних слагаемых:
Figure 00000008
Из каждой суммы в скобках в выражении (8) вынесем 2 i за скобки, где
Figure 00000009
, принимает только четные значения:
Figure 00000010
В выражении (9) перед каждой из n/2 образовавшихся сумм вида (a i +1 ·2+a i ), получаем множитель 2 i , где
Figure 00000009
, принимает только четные значения.
Далее вынесем в (9) наименьшую ненулевую степень 2 за скобки:
Figure 00000011
Выполняя последовательно преобразование (10) (n/2)-2 раз получим:
Figure 00000012
где 22 встречается (n/2)−1 раз.
Тогда выражение (7) может быть представлено в следующем виде:
Figure 00000013
Из теории чисел известно, что операция приведения по модулю инвариантна к сложению и умножению, т. е. величина остатка не зависит от того, вычислен ли он от суммы (произведения) или от каждого слагаемого (сомножителя), поэтому соответствующие частичные остатки могут быть просуммированы (перемножены) и от результата вычислен остаток по модулю.
Исходя из вышесказанного, выражение (12) может быть вычислено следующим образом.
Вначале на первом такте вычисляют величины
Figure 00000014
На втором такте вычисляют величины
Figure 00000015
На третьем такте вычисляют величины
Figure 00000016
И на последнем n/2-м такте вычисляют величины
Figure 00000017
Значение t n /2 является искомым остатком R от числа A по модулю P.
Операция приведения по модулю P на каждой ступени преобразования выполняется исходя из следующих соображений.
По определению величина t i −1 лежит в диапазоне 0 ≤ t i −1 P-1, поэтому в соответствии с выражениями (13)-(20) величина
Figure 00000018
до приведения ее по модулю может принимать значения в диапазоне от 0 до 4P-1. Приведение по модулю величины t i осуществляется по следующим правилам
Figure 00000019
Разряды неполного частного Q на каждом этапе вычислений принимают значения в соответствии с таблицей 1.
Таблица 1 – Значения разрядов неполного частного в зависимости от значения t i
старший разряд младший разряд значение 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
где
Figure 00000020
.
Условия попадания значения t i в один из указанных в таблице 1 интервалов определяются значениями сигналов переноса на выходах блоков сравнения в соответствии с таблицей 2.
Таблица 2 – Значения сигналов переноса на выходах блоков сравнения в зависимости от значения t i
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 , т.е. операция вычитания не выполняется, где
Figure 00000020
.
Операция умножения на два в квадрате при вычислении t i во всех случаях осуществляется сдвигом всех разрядов множимого на два в сторону старших, где
Figure 00000020
.
Краткое описание чертежей
На фиг. 1 представлена схема вычислительного устройства.
Вычислительное устройство содержит первый n/2-разрядный регистр сдвига 1.1, второй n/2-разрядный регистр сдвига 1.2, блок формирования частного и остатка 2, входы кода числа устройства 3, входы кода модуля устройства 4, входы удвоенного кода модуля устройства 5, входы утроенного кода модуля устройства 6, входы инверсного кода модуля устройства 7, входы инверсного удвоенного кода модуля устройства 8, входы инверсного утроенного кода модуля устройства 9, выходы кода остатка устройства 10, выходы кода неполного частного устройства 11, вход начала вычисления устройства 12, вход тактовых импульсов устройства 13.
Чётные разряды входов кода числа устройства 3 соединены с информационными входами первого n/2-разрядного регистра сдвига 1.1, нечётные разряды соединены с информационными входами второго n/2-разрядного регистра сдвига 1.2. Входы кода модуля устройства 4, входы удвоенного кода модуля устройства 5, входы утроенного кода модуля устройства 6, входы инверсного кода модуля устройства 7, входы инверсного удвоенного кода модуля устройства 8, входы инверсного утроенного кода модуля устройства 9 соединены соответственно с первыми, вторыми, третьими, четвёртыми, пятыми и шестыми информационными входами блока формирования частного и остатка 2. Вход начала вычисления устройства 12 соединён с первым управляющим входом блока формирования частного и остатка 2 и со входами обнуления первого 1.1 и второго 1.2 n/2-разрядных регистров сдвига. Вход тактовых импульсов 13 устройства соединён со вторым управляющим входом блока формирования частного и остатка 2 и со входами подачи тактовых импульсов первого 1.1 и второго 1.2 n/2-разрядных регистров сдвига. Первые информационные выходы блока формирования частного и остатка 2 соединены с выходами кода неполного частного устройства 11, вторые информационные выходы соединены с выходами кода остатка устройства 10. Старшие разряды информационных выходов первого 1.1 и второго 1.2 n/2-разрядных регистров сдвига соединены соответственно с седьмым и восьмым информационными входами блока формирования частного и остатка 2.
На фиг. 2 представлена схема блока формирования частного и остатка 2.
Блок формирования частного и остатка 2 содержит первый 14.1, второй 14.2 и третий 14.3 блоки сравнения, мультиплексор 15, первый элемент ИЛИ 16, сумматор 17, регистр кода остатка 18, третий 19.1 и четвёртый 19.2 n/2 - разрядные регистры сдвига.
Вторые входы первого 14.1, второго 14.2 и третьего 14.3 блока сравнения соединены с первыми, вторыми и третьими информационными входами блока формирования частного и остатка 2 соответственно, первые, вторые и третьи информационные входы мультиплексора 15 соединены с четвёртыми, пятыми и шестыми информационными входами блока формирования частного и остатка 2. Два младших разряда первых входов первого 14.1, второго 14.2 и третьего 14.3 блоков сравнения и также первых информационных входов сумматора 17 соединены с седьмыми и восьмым информационными входами блока формирования частного и остатка 2, а старшие разряды соединены со сдвигом на два разряда с информационными выходами регистра кода остатка 18 и со вторыми информационными выходами блока формирования частного и остатка 2. Выходы первого 14.1, второго 14.2 и третьего 14.3 блока сравнения соединены с первым, вторым и третьим управляющими входами мультиплексора 15 соответственно и с первым, вторым и третьим входами первого элемента ИЛИ 16, выход которого соединён со входом переноса сумматора 17, информационные выходы которого соединены с информационным входами регистра кода остатка 18, а вторые информационные входы соединены с первыми информационными выходами мультиплексора 15, второй информационный выход которого соединён со входом младшего разряда третьего n/2-разрядного регистра сдвига 19.1, третий информационный выход соединён со входом младшего разряда четвёртого n/2-разрядного регистра сдвига 19.2, информационные выходы которого соединены с нечётными разрядами вторых информационных выходов блока формирования частного и остатка 2, с чётными разрядами которых соединены информационные выходы третьего n/2-разрядного регистра сдвига 19.1. Входы обнуления регистра кода остатка 18, третьего 19.1 и четвёртого 19.2 n/2-разрядного регистра сдвига, соединены с первым управляющим входом блока формирования частного и остатка 2, а входы тактовых импульсов соединены со вторым управляющим входом блоком формирования частного и остатка 2.
На фиг. 3 представлена схема мультиплексора 15.
Мультиплексор содержит первый 20.1 и второй 20.2 инвертор, первый 21 и второй 22 элементы И, первый 23.1, второй 23.2 и третий 23.3 ключи, блок элементов ИЛИ 24, второй 25.1 и третий 25.2 элементы ИЛИ.
Первый управляющий вход мультиплексора 15 соединён с первым входом первого элемента И 21. Второй управляющий вход соединён со входом первого инвертора 20.1 и с первым входом второго элемента И 22. Третий управляющий вход соединён с входом второго инвертора 20.2, первыми входами второго 25.1 и третьего 25.2 элементов ИЛИ, а также с управляющим входом третьего ключа 23.3. Выход первого инвертора 20.1 соединён со вторым входом первого элемента И 21. Выход второго инвертора 20.2 соединён с третьим входом первого элемента И 21, а также со вторым входом второго элемента И 22. Выход первого элемента И 21 соединён с управляющим входом первого ключа 23.1, а также со вторым входом второго элемента ИЛИ 25.1. Выход второго элемента И 22 соединён с управляющим входом второго ключа 23.2, а также со вторым входом третьего элемента ИЛИ 25.2. Первые, вторые и третьи информационные входы мультиплексора 15 соединены соответственно с информационными входами первого 23.1, второго 23.2 и третьего 23.3 ключей, выходы которых соединены соответственно с первыми, вторыми и третьими входами блока элементов ИЛИ 24, выходы которого соединены с первыми информационными выходами мультиплексора 15. Выход второго элемента ИЛИ 25.1 соединён со вторым информационным выходом мультиплексора 15, выход третьего элемента ИЛИ 25.2 соединён с третьим информационным выходом мультиплексора 15.
Осуществление изобретения
Вычислительное устройство работает следующим образом.
В исходном состоянии первый 1.1 и второй 1.2 n/2-разрядные регистры сдвига 1.2, регистр кода остатка 18, третий 19.1 и четвёртый 19.2 n/2-разрядные регистры сдвига вычислительного устройства обнулены.
На входы кода числа 3 устройства подается двоичный код числа A, от которого необходимо сформировать остаток R и неполное частное Q по произвольному модулю P. На входы кода модуля 4 устройства подается код модуля
Figure 00000021
, поступая далее на первые информационные входы блока 2 формирования частного и остатка. На входы удвоенного кода модуля 5 устройства подается удвоенный код модуля
Figure 00000022
, поступая далее на вторые информационные входы блока 2 формирования частного и остатка. На входы утроенного кода модуля 6 устройства подается утроенный код модуля
Figure 00000023
, поступая далее на третьи информационные входы блока 2 формирования частного и остатка. На входы инверсного кода модуля 7 устройства подается инверсный код модуля
Figure 00000024
, поступая далее на четвёртые информационные входы блока 2 формирования частного и остатка. На входы инверсного удвоенного кода модуля 8 устройства подается инверсный удвоенный код модуля
Figure 00000025
, поступая далее на пятые информационные входы блока 2 формирования частного и остатка. На входы инверсного утроенного кода модуля 9 устройства подается инверсный утроенный код модуля
Figure 00000026
, поступая далее на шестые информационные входы блока 2 формирования частного и остатка.
Затем на вход начала вычисления устройства 12 подается сигнал, под воздействием которого в первый n/2-разрядный регистр сдвига 1.1 записываются четные разряды двоичного кода числа A, а во второй n/2-разрядный регистр сдвига 1.2 записываются нечетные разряды двоичного кода числа A. Под воздействием этого же сигнала регистр кода остатка 18, третий 19.1 и четвертый 19.2 n/2-разрядные регистры сдвига блока 2 формирования частного и остатка устанавливаются в нулевое состояние.
Вначале на первом такте работы устройства на седьмой информационный вход блока 2 формирования частного и остатка с выхода старшего разряда первого n/2-разрядного регистра сдвига 1.1 поступает значение (a n −1)-го разряда числа A, а на восьмой информационный вход с выхода старшего разряда второго n/2-разрядного регистра сдвига 1.2 поступает значение (a n −2)-го разряда числа A. В блоке 2 формирования частного и остатка формируется значение t′ 1 = (a n −1 ·2+a n −2) mod P и разряды q n −1 и q n −2 неполного частного, которые записываются в младшие разряды третьего 19.1 и четвертого 19.2 n/2-разрядных регистров сдвига соответственно.
На втором такте работы устройства на седьмой информационный вход блока 2 формирования частного и остатка с выхода старшего разряда первого n/2-разрядного регистра сдвига 1.1 поступает значение (a n −3)-го разряда числа A, а на восьмой информационный вход с выхода старшего разряда второго n/2-разрядного регистра сдвига 1.2 поступает значение (a n −4)-го разряда числа A. В блоке 2 формирования частного и остатка формируется значение t′ 2 = (22 t′ 1+(a n −3 ·2+a n −4)) mod P и разряды q n −3 и q n −4 неполного частного. При этом разряды q n -1 и q n -2 неполного частного сдвигаются на один разряд в сторону старших в третьем 19.1 и четвертом 19.2 n/2-разрядных регистрах сдвига соответственно, а в младшие разряды этих регистров записываются соответственно разряды q n −3 и q n −4 неполного частного.
На последнем n/2-м такте работы устройства на седьмой информационный вход блока 2 формирования частного и остатка с выхода старшего разряда первого n/2-разрядного регистра сдвига 1.1 поступает значение a 1-го разряда числа A, а на восьмой информационный вход с выхода старшего разряда второго n/2-разрядного регистра сдвига 1.2 поступает значение a 0-го разряда числа A. В блоке 2 формирования частного и остатка формируется значение t′ n /2 = (22 t′ n /2−1+(a 1 ·2+a 0)) mod P, которое и является искомым остатком R от числа A по модулю P, а также формируются разряды q 1 и q 0 неполного частного. При этом значение t n /2 будет записано в регистр 18 кода остатка и поступит на выходы 10 кода остатка устройства, четные разряды неполного частного будут записаны в третий 19.1 n/2-разрядный регистр сдвига, а нечетные разряды неполного частного будут записаны в четвертый 19.2 n/2-разрядный регистр сдвига и поступят на выходы 11 кода неполного частного устройства.
Блок 2 формирования частного и остатка работает следующим образом (см. Фиг. 2).
На первые информационные входы мультиплексора 15 в течение всего цикла вычисления остатка R и неполного частного Q от числа A по модулю P с первых, вторых и третьих информационных входов блока 2 формирования частного и остатка подается соответственно инверсный код модуля
Figure 00000024
, удвоенный инверсный код модуля
Figure 00000025
и утроенный инверсный код модуля
Figure 00000026
. На вторые входы блоков сравнения 14.1 – 14.3 в течение всего цикла вычислений с четвёртых, пятых и шестых информационных входов блока 2 формирования частного и остатка подается соответственно код модуля
Figure 00000021
, удвоенный код модуля
Figure 00000022
, утроенный код модуля
Figure 00000023
.
На первом такте работы устройства c седьмого и восьмого информационных входов блока 2 формирования частного и остатка значения (a n −1)-го и (a n −2)-го разряда числа A, поступают на два младших разряда первых информационных входов первого, второго и третьего блоков сравнения 14.1-14.3 и сумматора 17. С первых информационных выходов мультиплексора 15 будет передаваться значение инверсного кода модуля
Figure 00000024
,
Figure 00000025
или
Figure 00000026
в зависимости от соотношения значения (a n −1 ·2+a n −2) и значений
Figure 00000021
,
Figure 00000022
,
Figure 00000023
, а на втором и третьем информационных выходах будут сформированы разряды q n −1 и q n −2 неполного частного, которые под воздействием тактового импульса со второго управляющего входа блока 2 формирования частного и остатка будут записаны в младшие разряды третьего 19.1 и четвертого 19.2 n/2-разрядных регистров сдвига. В сумматоре 17 будет вычисляться значение t′ 1 = (a n −1 ·2+a n −2))mod P, которое под воздействием тактового импульса со второго управляющего входа блока 2 формирования частного и остатка будет записано в регистр кода остатка 18.
На втором такте работы устройства на первых информационных входах сумматора 17 будет сформировано значение 22 t′ 1+(a n −3 ·2+a n −4), причем значение t′ 1 поступит с выхода регистра кода остатка 18 со сдвигом на два разряда в сторону старших, а значения a n −3 и a n −4 поступят на младшие разряды первых информационных входов первого, второго и третьего блоков сравнения 14.1-14.3 и сумматора 17 с седьмого и восьмого информационных входов блока 2 формирования частного и остатка. Сумматор 17 сформирует на своих информационных выходах величину t′ 2 = (22 t′ 1+(2·a n −3+a n −4))mod P, которая под воздействием тактового импульса со второго управляющего входа блока 2 формирования частного и остатка будет записана в регистр кода остатка 18, а на втором и третьем информационных выходах мультиплексора 15 будут сформированы разряды q n −3 и q n −4 неполного частного, которые под воздействием этого же тактового импульса будут записаны в младшие разряды третьего 19.1 и четвертого 19.2 n/2-разрядных регистров сдвига. При этом разряды q n −1 и q n −2 неполного частного в третьем 19.1 и четвертом 19.2 n/2-разрядных регистров сдвига соответственно будут сдвинуты на один в сторону старших.
На последнем n/2-м такте работы устройства на первых информационных входах сумматора 17 будет сформировано значение
22 t′ n /2−1+(a 1 ·2+a 0), причем значение t′ n /2−1 поступит с выхода регистра кода остатка 18 со сдвигом на два разряда в сторону старших, а значения a 1·и a 0 поступят на младшие разряды первых информационных входов первого, второго и третьего блоков сравнения 14.1-14.3 и сумматора 17 с седьмого и восьмого информационных входов блока 2 формирования частного и остатка. Сумматор 17 сформирует на своих информационных выходах величину t′ n /2 = (22 t′ n /2−1+(a 1 ·2+a 0))mod P, которая под воздействием тактового импульса со второго управляющего входа блока 2 формирования частного и остатка будет записана в регистр кода остатка 18, а на втором и третьем информационных выходах мультиплексора будут сформированы разряды q 1 и q 0 неполного частного, которые под воздействием этого же тактового импульса будут записаны в младшие разряды третьего 19.1 и четвертого 19.2 n/2-разрядных регистров сдвига с одновременным сдвигом ранее записанных разрядов на один в сторону старших.
В течение всего цикла работы устройства на выходах блоков сравнения 14.1 – 14.3 будут появляться сигналы, в зависимости от величины t i , которая будет сравниваться с
Figure 00000021
,
Figure 00000022
,
Figure 00000023
, где
Figure 00000020
.
В результате после n/2 – го такта работы на вторых информационных выходах блока 2 формирования частного и остатка будет сформирован код остатка R от числа A по модулю P, а на первых информационных выходах неполное частное Q.
Мультиплексор 15 работает следующим образом (см. Фиг. 3).
На первые, вторые, третьи информационные входы мультиплексора 15 в течение всего цикла будут поступать инверсные коды модуля
Figure 00000024
,
Figure 00000025
,
Figure 00000026
соответственно.
В зависимости от значений сигналов на управляющих входах мультиплексора 15 на выходы будут коммутироваться инверсный код модуля
Figure 00000024
,
Figure 00000025
или
Figure 00000026
.
Управляющие сигналы мультиплексора 15 открывают один из ключей 23.1-23.3.
Если управляющий сигнал появляется на всех трех управляющих входах мультиплексора 15, то окажется открытым третий ключ 23.3. Управляющий сигнал с третьего управляющего входа откроет третий ключ 23.3 и через второй инвертор 20.2 в виде логического нуля поступит на третий вход первого элемента И 21 и на второй вход второго элемента И 22, запрещая прохождение управляющих сигналов с их первых входов на их выходы. В результате первый 23.1 и второй 23.2 ключи окажутся закрытыми, и на выход мультиплексора 15 поступит значение
Figure 00000026
с его третьих информационных входов.
Если управляющий сигнал появляется на первом и втором управляющих входах мультиплексора 15, то аналогичным образом окажется открытым только второй 23.2, а первый 23.1, третий 23.3 ключи окажутся закрытыми. В результате на выход мультиплексора 15 поступит значение
Figure 00000025
с его вторых информационных входов.
Если управляющий сигнал появляется только на первом управляющем входе мультиплексора 15, то аналогичным образом окажется открытым только первый ключ 23.1, а второй 23.2 и третий 23.3 ключи окажутся закрытыми. В результате на выход мультиплексора 15 поступит значение
Figure 00000024
с его первых информационных входов.
Если же на управляющих входах мультиплексора 15 будут только нулевые сигналы, то на выход мультиплексора 15 поступит нулевое значение.
Значение инверсного кода модуля
Figure 00000024
,
Figure 00000025
или
Figure 00000026
с выходов ключей 23.1-23.3 поступают через блок элементов ИЛИ 24 на первые информационные выходы мультиплексора 15.
Разряды неполного частного Q формируются на втором и третьем информационных выходах мультиплексора 15 с помощью первого 25.1 и второго 25.2 элементов ИЛИ в соответствии с логикой таблиц 1 и 2.
Технико-экономическая эффективность изобретения заключается в увеличении быстродействия формирования остатка от числа по модулю и неполного частного. Так устройство прототип осуществляет вычисление остатка от n-разрядного числа по произвольному n-разрядному модулю за n тактов работы. Изобретение аналогичное вычисление осуществляет за n/2 тактов работы за счет параллельной обработки четных и нечетных разрядов входного числа. При этом увеличение быстродействия произойдет в 2 раза.

Claims (1)

  1. Вычислительное устройство, содержащее n-разрядный регистр, входы кода числа, входы инверсного кода модуля, выходы кода остатка, выходы кода неполного частного, вход начала вычисления устройства, вход тактовых импульсов устройства, блок формирования частного и остатка, содержащий сумматор, регистр кода неполного частного и регистр кода остатка, вход подачи тактовых импульсов которого соединен со вторым управляющим входом блока формирования частного и остатка, информационные выходы соединены со вторыми информационными выходами блока формирования частного и остатка, информационные входы n-разрядного регистра соединены со входами кода числа устройства, вход обнуления соединён со входом начала вычисления устройства, а вход подачи тактовых импульсов соединен со входом тактовых импульсов устройства и со вторым управляющим входом блока формирования частного и остатка, четвертые информационные входы которого соединены со входами инверсного кода модуля устройства, первые информационные выходы соединены с выходами неполного частного устройства, а вторые информационные выходы соединены с выходами остатка устройства, отличающееся тем, что введены входы кода модуля устройства, входы удвоенного кода модуля устройства, входы утроенного кода модуля устройства, входы инверсного удвоенного кода модуля устройства, входы инверсного утроенного кода модуля устройства, которые соединены соответственно с первыми информационными входами, со вторыми информационными входами, с третьими информационными входами, с пятыми информационными входами, с шестыми информационными входами блока формирования частного и остатка, при этом n-разрядный регистр выполнен в виде первого и второго n/2-разрядных регистров сдвига, причём вход начала вычисления устройства соединён со входами обнуления первого и второго n/2-разрядных регистров сдвига, вход тактовых импульсов устройства соединён со вторым управляющим входом блока формирования частного и остатка и со входами подачи тактовых импульсов первого и второго n/2-разрядных регистров сдвига, старшие разряды информационных выходов первого и второго n/2-разрядных регистров сдвига соединены соответственно с седьмым и восьмым информационными входами блока формирования частного и остатка, который содержит первый, второй и третий блоки сравнения, мультиплексор и первый элемент ИЛИ, причем регистр кода неполного частного выполнен в виде третьего и четвёртого n/2-разрядных регистров сдвига, при этом вторые входы первого, второго и третьего блока сравнения соединены с первыми, вторыми и третьими информационными входами блока формирования частного и остатка соответственно, первые, вторые и третьи информационные входы мультиплексора соединены с четвёртыми, пятыми и шестыми информационными входами блока формирования частного и остатка, два младших разряда первых входов первого, второго и третьего блоков сравнения и также первых информационных входов сумматора соединены с седьмым и восьмым информационными входами блока формирования частного и остатка, а старшие разряды соединены со сдвигом на два разряда с информационными выходами регистра кода остатка, информационные выходы сумматора соединены с информационными входами регистра кода остатка, выходы первого, второго и третьего блока сравнения соединены с первым, вторым и третьим управляющими входами мультиплексора соответственно и с первым, вторым и третьим входами первого элемента ИЛИ, выход которого соединён со входом переноса сумматора, вторые информационные входы которого соединены с первыми информационными выходами мультиплексора, второй информационный выход которого соединён со входом младшего разряда третьего n/2-разрядного регистра сдвига, третий информационный выход соединён со входом младшего разряда четвёртого n/2-разрядного регистра сдвига, информационные выходы которого соединены с нечётными разрядами вторых информационных выходов блока формирования частного и остатка, с чётными разрядами которых соединены информационные выходы третьего n/2-разрядного регистра сдвига, входы обнуления регистра кода остатка, третьего и четвёртого n/2-разрядных регистров сдвига, соединены с первым управляющим входом блока формирования частного и остатка, а входы тактовых импульсов третьего и четвёртого n/2-разрядных регистров сдвига соединены со вторым управляющим входом блоком формирования частного и остатка, причём мультиплексор содержит первый и второй инверторы, первый и второй элементы И, первый, второй и третий ключи, блок элементов ИЛИ, второй и третий элементы ИЛИ, при этом первый управляющий вход мультиплексора соединён с первым входом первого элемента И, второй управляющий вход соединён со входом первого инвертора и с первым входом второго элемента И, третий управляющий вход соединён со входом второго инвертора, первыми входами второго и третьего элементов ИЛИ, а также с управляющим входом третьего ключа, выход первого инвертора соединён со вторым входом первого элемента И, выход второго инвертора соединён с третьим входом первого элемента И, а также со вторым входом второго элемента И, выход первого элемента И соединён с управляющим входом первого ключа, а также со вторым входом второго элемента ИЛИ, выход второго элемента И соединён с управляющим входом второго ключа, а также со вторым входом третьего элемента ИЛИ, первые, вторые и третьи информационные входы мультиплексора соединены соответственно с информационными входами первого, второго и третьего ключей, выходы которых соединены соответственно с первыми, вторыми и третьими входами блока элементов ИЛИ, выходы которого соединены с первыми информационными выходами мультиплексора, выход второго элемента ИЛИ соединён со вторым информационным выходом мультиплексора, выход третьего элемента ИЛИ соединён с третьим информационным выходом мультиплексора.
RU2023104570A 2023-03-01 Вычислительное устройство RU2798746C1 (ru)

Publications (1)

Publication Number Publication Date
RU2798746C1 true RU2798746C1 (ru) 2023-06-26

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20080114820A1 (en) * 2006-11-15 2008-05-15 Alaaeldin Amin Apparatus and method for high-speed modulo multiplication and division
RU2559771C2 (ru) * 2013-10-30 2015-08-10 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Северо-Кавказский федеральный университет" Устройство для основного деления модулярных чисел
RU2661797C1 (ru) * 2017-06-13 2018-07-19 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Вычислительное устройство
RU2739338C1 (ru) * 2020-05-15 2020-12-23 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Вычислительное устройство

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20080114820A1 (en) * 2006-11-15 2008-05-15 Alaaeldin Amin Apparatus and method for high-speed modulo multiplication and division
RU2559771C2 (ru) * 2013-10-30 2015-08-10 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Северо-Кавказский федеральный университет" Устройство для основного деления модулярных чисел
RU2661797C1 (ru) * 2017-06-13 2018-07-19 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Вычислительное устройство
RU2739338C1 (ru) * 2020-05-15 2020-12-23 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Вычислительное устройство

Similar Documents

Publication Publication Date Title
Gokhale et al. Design of Vedic-multiplier using area-efficient Carry Select Adder
Gokhale et al. Design of area and delay efficient Vedic multiplier using Carry Select Adder
Nayeem et al. Efficient reversible Montgomery multiplier and its application to hardware cryptography
RU2798746C1 (ru) Вычислительное устройство
Reyhani-Masoleh A new bit-serial architecture for field multiplication using polynomial bases
RU2717915C1 (ru) Вычислительное устройство
Timarchi et al. A novel high-speed low-power binary signed-digit adder
RU2696223C1 (ru) Арифметико-логическое устройство для формирования остатка по произвольному модулю от числа
RU2796555C1 (ru) Вычислительное устройство
RU2348965C1 (ru) Вычислительное устройство
RU2739338C1 (ru) Вычислительное устройство
RU2661797C1 (ru) Вычислительное устройство
RU2804380C1 (ru) Конвейерный вычислитель
RU2791440C1 (ru) Конвейерный формирователь остатков по произвольному модулю
RU2756408C1 (ru) Вычислительное устройство
RU2797163C1 (ru) Конвейерный вычислитель
Mitra et al. A Low Latency and Compact GCD Design using an Intelligent Seed-Selection Scheme of LL-PRNG
Monfared et al. A new multiplicative inverse architecture in normal basis using novel concurrent serial squaring and multiplication
Nadjia et al. High throughput parallel montgomery modular exponentiation on FPGA
Sharma et al. Addition Of redundant binary signed digits using RBSD Adder
RU2755734C1 (ru) Устройство для умножения чисел по произвольному модулю
Jeon et al. Design of Montgomery multiplication architecture based on programmable cellular automata
RU2797164C1 (ru) Конвейерный умножитель по модулю
RU2751802C1 (ru) Умножитель по модулю
Yang et al. The IC design of a high speed RSA processor