RU2780400C1 - Устройство для вычисления ранга модулярного числа - Google Patents

Устройство для вычисления ранга модулярного числа Download PDF

Info

Publication number
RU2780400C1
RU2780400C1 RU2021131821A RU2021131821A RU2780400C1 RU 2780400 C1 RU2780400 C1 RU 2780400C1 RU 2021131821 A RU2021131821 A RU 2021131821A RU 2021131821 A RU2021131821 A RU 2021131821A RU 2780400 C1 RU2780400 C1 RU 2780400C1
Authority
RU
Russia
Prior art keywords
modulo
rank
output
inputs
stage
Prior art date
Application number
RU2021131821A
Other languages
English (en)
Inventor
Виктор Андреевич Кучуков
Михаил Григорьевич Бабенко
Николай Николаевич Кучеров
Original Assignee
федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет"
Filing date
Publication date
Application filed by федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" filed Critical федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет"
Application granted granted Critical
Publication of RU2780400C1 publication Critical patent/RU2780400C1/ru

Links

Images

Abstract

Изобретение относится к вычислительной технике. Технический результат заключается в сокращении размерности операнд при вычислении ранга числа. Технический результат достигается тем, что в устройство определения знака числа, представленного в системе остаточных классов (СОК), содержащее n входов остатка, где n – количество модулей
Figure 00000172
системы остаточных классов, n регистров хранения разрядов исходного числа, n-1 вычислительную ступень прямого хода, при этом i-я вычислительная ступень прямого хода, где i=1,…,n-1, содержит n-i сумматоров по модулю
Figure 00000173
и n-i блоков умножения на
Figure 00000174
по модулю
Figure 00000173
, где j=i+1,…, n и
Figure 00000174
– мультипликативная инверсия модуля
Figure 00000172
по модулю
Figure 00000173
, дополнительно введены n выходов прямого хода, n блоков перевода в СОК, n блоков хранения предвычисленных рангов, n выходов исходного числа, выход ранга, а также n-1 вычислительная ступень обратного хода, каждая из которых содержит n умножителей по модулю
Figure 00000173
, n сумматоров по модулю
Figure 00000173
, где j=1,…, n, вычислитель ранга суммы, вычислитель ранга произведения. 2 ил., 2 табл.

Description

Устройство относится к вычислительной технике и может быть использовано для определения ранга числа, представленного в системе остаточных классов.
Известно устройство для определения ранга числа (авторское свидетельство №1125619, опубл. 23.11.1984), которое содержит блоки умножения на константу, сумматор по наибольшему модулю, две группы элементов ИЛИ, причем входы остатков устройства соединены с входами соответствующих блоков умножения на константу, выходы нечетных и четных блоков умножения на константу соединены соответственно с входами элементов ИЛИ первой и второй групп, выходы которых соединены соответственно с первым и вторым входами сумматора по наибольшему модулю, выход которого является выходом устройства, тактовый вход которого соединен с тактовыми входами блоков умножения на константу.
Недостатком данного изобретения является использование в вычислениях выражения
Figure 00000001
, вычисление которого является ресурсоемкой задачей в реальных модулярных системах.
Известна нейронная сеть для вычисления позиционной характеристики ранга числа, представленного в системе остаточных классов (патент РФ №2271569, опубл. 10.03.2006), содержащая взаимосвязанные между собой входной слой нейронов и нейронную сеть конечного кольца.
Недостатком данного изобретения является использование в вычислениях выражения
Figure 00000001
, вычисление которого является ресурсоемкой задачей в реальных модулярных системах. Также недостатком является некорректность метода, лежащего в основе изобретения, для наборов модулей, отличных от выбранного в качестве примера. Возьмем в качестве СОК набор модулей {3,5,7}, тогда для десятичного числа 17 ранг числа, вычисленный по данному устройству равен 6, в то время как истинное значение ранга равно 2.
Известно устройство сравнения и определения знака чисел, представленных в системе остаточных классов (евразийский патент №038389, опубл. 20.08.2021), содержащее входы первого и второго числа, вход знака, регистры хранения, блоки умножения, сумматоры, блоки определения знака по первому и второму числу, решающий блок, а также выходы рангов, знаков чисел, а также результата сравнения.
Недостатком данного устройство является использование в алгоритме умножения на
Figure 00000002
, что значительно увеличивает размерность обрабатываемых чисел.
Наиболее близким к заявленному изобретению является устройство определения знака числа, представленного в системе остаточных классов (патент РФ №2747371, опубл. 04.05.2021), содержащее n входов остатка, где n - количество модулей
Figure 00000003
системы остаточных классов, n регистров для хранения разрядов исходного числа, n блоков умножения, где входы остатка подключены к входам соответствующих регистров для хранения разрядов исходного числа, при этом в него введены n-1 вычислительная ступень, при этом i-я вычислительная ступень, где i=1,…,n-1, содержит n-i сумматоров по модулю
Figure 00000004
и n-i блоков умножения на веса
Figure 00000005
по модулю
Figure 00000004
, где j=i+1,…, n и
Figure 00000005
- мультипликативная инверсия модуля
Figure 00000003
по модулю
Figure 00000004
и модули упорядочены по возрастанию и
Figure 00000006
является степенью 2, в первой вычислительной ступени первые информационные входы i-х сумматоров по модулю
Figure 00000007
через инверторы подключены к выходу первого регистра для хранения разрядов исходного числа, вторые информационные входы i-х сумматоров по модулю
Figure 00000007
подключены к выходам (i+1)-х регистров для хранения разрядов исходного числа, на входы переносов i-х сумматоров по модулю
Figure 00000007
подается сигнал логической единицы, выходы i-х сумматоров по модулю
Figure 00000007
подключены ко входам соответствующих блоков умножения на веса
Figure 00000008
по модулю
Figure 00000007
, i=1,…,n-1, в i-x вычислительных ступенях, i=2,…,n-1, первые информационные входы j-х сумматоров по модулю
Figure 00000009
через инверторы подключены к выходу первого блока умножения на веса
Figure 00000010
по модулю
Figure 00000003
(i-1)-ой вычислительной ступени, вторые информационные входы j-х сумматоров по модулю
Figure 00000009
подключены к выходам (j+1)-ых блоков умножения на веса
Figure 00000011
по модулю
Figure 00000009
(i-1)-ой вычислительной ступени, на входы переносов j-х сумматоров по модулю
Figure 00000009
подается сигнал логической единицы, выходы j-х сумматоров по модулю
Figure 00000009
подключены к входам j-ых блоков умножения на веса
Figure 00000012
по модулю
Figure 00000009
, j=1,…,n-i, старший бит выхода блока умножения на веса
Figure 00000013
(n-1)-й вычислительной ступени является выходом знака устройства.
Недостатком данного изобретения является ограниченные функциональные возможности, а именно невозможность вычисления ранга числа.
Техническим результатом заявляемого изобретения является расширение функциональных возможностей, а именно вычисление ранга модулярного числа, а также сокращение размерности операнд при вычислении ранга числа.
Технический результат достигается тем, что в устройство определения знака числа, представленного в системе остаточных классов (СОК) содержащее n входов остатка, где n - количество модулей
Figure 00000014
системы остаточных классов, n регистров хранения разрядов исходного числа, n-1 вычислительную ступень прямого хода, при этом i-я вычислительная ступень прямого хода, где i=1,…,n-1, содержит n-i сумматоров по модулю
Figure 00000015
и n-i блоков умножения на
Figure 00000016
по модулю
Figure 00000015
, где j=i+1,…, n и
Figure 00000016
- мультипликативная инверсия модуля
Figure 00000014
по модулю
Figure 00000015
, входы остатка подключены к входам соответствующих регистров хранения разрядов исходного числа, в первой вычислительной ступени прямого хода первые информационные входы i-х сумматоров по модулю
Figure 00000017
через инверторы подключены к выходу первого регистра хранения разрядов исходного числа, вторые информационные входы i-х сумматоров по модулю
Figure 00000017
подключены к выходам (i+1)-х регистров хранения разрядов исходного числа, на входы переносов i-х сумматоров по модулю
Figure 00000017
подается сигнал логической единицы, выходы i-х сумматоров по модулю
Figure 00000017
подключены ко входам соответствующих блоков умножения на
Figure 00000018
по модулю
Figure 00000017
, i=1,…,n-1, в i-x вычислительных ступенях прямого хода, i=2,…,n-1, первые информационные входы j-х сумматоров по модулю
Figure 00000019
через инверторы подключены к выходу первого блока умножения на
Figure 00000020
по модулю
Figure 00000014
(i-1)-ой вычислительной ступени прямого хода, вторые информационные входы j-х сумматоров по модулю
Figure 00000019
подключены к выходам (j+1)-ых блоков умножения на
Figure 00000021
по модулю
Figure 00000019
(i-1)-ой вычислительной ступени прямого хода, на входы переносов j-х сумматоров по модулю
Figure 00000019
подается сигнал логической единицы, выходы j-х сумматоров по модулю
Figure 00000019
подключены к входам j-ых блоков умножения на
Figure 00000022
по модулю
Figure 00000019
,
Figure 00000023
дополнительно введены n выходов прямого хода, n блоков перевода в СОК, n блоков хранения предвычисленных рангов, n выходов исходного числа, выход ранга, а также n-1 вычислительная ступень обратного хода, каждая из которых содержит n умножителей по модулю
Figure 00000015
, n сумматоров по модулю
Figure 00000015
, где j=1,…, n, вычислитель ранга суммы, вычислитель ранга произведения, при этом выход первого регистра хранения разрядов исходного числа является первым выходом прямого хода, выходы первых блоков умножения на
Figure 00000024
по модулю
Figure 00000017
i-x вычислительных ступеней прямого хода, i=1,…,n-1, являются (i+1)-ми выходами прямого хода, i-й выход прямого хода подключен к входу (n+1-i)-го блок перевода в СОК и входу (n+1-i)-го блока хранения предвычисленных рангов, i=1,…,n, i-й выход первого блока перевода в СОК подключен к входу i-го умножителей по модулю
Figure 00000014
первой вычислительной ступени обратного хода и (i+1)-му входу вычислителя ранга произведения первой ступени обратного хода, первый вход которого соединен с выходом первого блока хранения предвычисленных рангов, в i-й вычислительной ступени обратного хода, i=1,…,n-1, j-й выход (i+1)-го блока перевода в СОК, j=1,…,n, соединен с первым входом j-го сумматора по модулю
Figure 00000015
и 2j-м входом вычислителя ранга суммы i-й вычислительной ступени обратного хода, вторые входы j-х сумматора по модулю
Figure 00000015
и (2j+1)-е входы вычислителя ранга суммы i-й вычислительной ступени обратного хода соединены с выходами j-х умножителей по модулю
Figure 00000015
, первый вход вычислителя ранга суммы i-й вычислительной ступени обратного хода соединен с выходом (i+1)-го блока хранения предвычисленных рангов, (2n+2)-й вход вычислителя ранга суммы i-й вычислительной ступени обратного хода соединен с выходом вычислителя ранга произведения i-й вычислительной ступени обратного хода, выходы j-х сумматоров по модулю
Figure 00000015
, j=1,…,n, i-й вычислительной ступени обратного хода, i=1,…,n-2, соединены со входами j-х умножителей по модулю
Figure 00000015
(i+1)-й вычислительной ступени обратного хода и (j+1)-ми входами вычислителя ранга произведения (i+1)-й вычислительной ступени обратного хода, первый вход вычислителя ранга произведения (i+1)-й вычислительной ступени обратного хода соединен с выходом вычислителя ранга суммы i-й вычислительной ступени обратного хода, выходы j-х сумматоров по модулю
Figure 00000015
, j=1,…,n (n-1)-й вычислительной ступени обратного хода являются j-ми выходами исходного числа, выход вычислителя ранга суммы (n-1)-й вычислительной ступени обратного хода является выходом ранга устройства.
Сущность изобретения основана на следующем математическом аппарате. В системе остаточных классов (СОК) любое число X<P однозначно представляется набором остатков
Figure 00000025
от деления числа X на взаимно простые модули СОК
Figure 00000014
, где
Figure 00000026
,
Figure 00000027
- рабочий диапазон СОК, i=1,…,n.
Одним из самых распространенных методов перевода из СОК в позиционную систему является Китайская теорема об остатках, которая задается выражением:
Figure 00000028
)
где
Figure 00000029
- ортогональные базисы СОК,
Figure 00000030
,
Figure 00000031
- мультипликативная инверсия
Figure 00000032
по модулю
Figure 00000014
, а оператором
Figure 00000033
обозначен остаток от деления
Figure 00000034
на
Figure 00000014
, т.е.
Figure 00000035
. При этом ранг числа r показывает, во сколько раз сумма произведений остатков на ортогональные базисы превосходит динамический диапазон СОК.
Для вычисления ранга воспользуемся следующими свойствами:
Figure 00000036
)
Если
Figure 00000037
и
Figure 00000038
, то
Figure 00000039
)
Рассмотрим метод, лежащий в основе устройства, на примере.
Пусть задана СОК с модулями
Figure 00000040
,
Figure 00000041
,
Figure 00000042
. Тогда диапазон СОК равен
Figure 00000043
Константы
Figure 00000032
и
Figure 00000031
равны
Figure 00000044
Figure 00000045
Значения констант
Figure 00000016
:
Figure 00000046
Figure 00000047
Figure 00000048
=3.
Для чисел от 0 до
Figure 00000049
вычисляют ранги чисел:
Figure 00000050
Figure 00000051
Figure 00000052
Figure 00000053
Figure 00000054
Figure 00000055
Figure 00000056
Далее вычисление разбивается на два последовательных этапа: прямой и обратные ходы. Запишем прямой ход в виде таблицы 1.
Из таблицы 1 следует, что
Figure 00000057
. Запишем обратный ход в виде таблицы 2. При вычислении ранга используются формулы (2) и (3).
Из крайнего правого столбца видно, что ранг числа 17 равен 2.
Проверим, воспользовавшись формулой для
Figure 00000058
:
Figure 00000059
Устройство поясняется фигурами 1 и 2, на которых для удобства отображения, устройство для вычисления ранга модулярного числа разбито на две части, прямой ход (фиг.1) и обратный ход (фиг.2).
На фигуре 1 изображена структурная схема блока прямого хода, содержащая n входов остатка 1.1-1.n, где n - количество модулей системы остаточных классов, которые соединены с которые соединены с n регистрами хранения разрядов исходного числа 2.1-2.n. Выход первого регистра хранения разрядов исходного числа 2.1 подключен к первому выходу прямого хода 5.1.
Блок прямого хода содержит n-1 вычислительных ступеней, при этом i-я вычислительная ступень, где i=1,…,n-1, содержит n-i сумматоров по модулю
Figure 00000015
3.i.1 - 3.i.(n-i) и n-i блоков умножения на
Figure 00000016
по модулю
Figure 00000015
4.i.1 - 4.i.(n-i), где j=i+1,…, n.
В первой вычислительной ступени первые информационные входы i-х сумматоров по модулю
Figure 00000017
3.1.1 - 3.1.n-1 через инверторы подключены к выходу первого регистра хранения разрядов исходного числа 2.1, вторые информационные входы i-х сумматоров по модулю
Figure 00000017
3.1.1 - 3.1.n-1 подключены к выходам соответствующих (i+1)-х регистров хранения разрядов исходного числа 2.2-2.n, на входы переносов i-х сумматоров по модулю
Figure 00000017
3.1.1 - 3.1.n-1 подается сигнал логической единицы, выходы i-х сумматоров по модулю
Figure 00000017
3.1.1 - 3.1.n-1 подключены ко входам соответствующих блоков умножения на
Figure 00000018
по модулю
Figure 00000017
4.1.1 - 4.1.n-1, i=1,…,n-1. Выход первого блока умножения на
Figure 00000060
по модулю
Figure 00000061
4.1.1 первой вычислительной ступени подключен ко второму выходу прямого хода 5.2.
Во второй вычислительной ступени первые информационные входы i-х сумматоров по модулю
Figure 00000062
3.2.1 - 3.2.n-2 через инверторы подключены к выходу первого блока умножения на
Figure 00000060
по модулю
Figure 00000061
первой ступени 4.1.1, вторые информационные входы i-х сумматоров по модулю
Figure 00000062
3.2.1 - 3.2.n-2 подключены к выходам соответствующих (i+1)-ых блоков умножения на
Figure 00000063
по модулю
Figure 00000062
первой ступени 4.1.2-4.1.n, на входы переносов i-х сумматоров по модулю
Figure 00000062
3.2.1 - 3.2.n-2 второй ступени подается сигнал логической единицы, выходы i-х сумматоров по модулю
Figure 00000062
3.2.1 - 3.2.n-2 второй ступени подключены ко входам соответствующих i-ых блоков умножения на
Figure 00000064
по модулю
Figure 00000062
4.2.1 - 4.2.n-2, i=1,…,n-2. Выход первого блока умножения на
Figure 00000048
по модулю
Figure 00000065
4.2.1 второй вычислительной ступени подключен ко третьему выходу прямого хода 5.3.
И так далее, на
Figure 00000066
вычислительной ступени первый информационный вход сумматора по модулю
Figure 00000067
3.n-1.1 через инвертор подключен к выходу первого блока умножения на
Figure 00000068
по модулю
Figure 00000069
4.n-2.1 (n-2)-й ступени, второй информационный вход сумматора по модулю
Figure 00000067
3.n-1.1 подключен к выходу второго блока умножения на
Figure 00000070
по модулю
Figure 00000067
4.n-2.2 (n-2)-й ступени, на вход переноса поступает сигнал логической единицы, а выход соединен со входом первого блока умножения на
Figure 00000071
по модулю
Figure 00000067
4.n-1.1 (n-1)-й ступени, выход первого блока умножения на
Figure 00000071
по модулю
Figure 00000067
4.n-1.1 (n-1)-й вычислительной ступени подключен к n-му выходу прямого хода 5.n.
На фигуре 2 изображена структурная схема блока обратного хода, которая содержит n выходов прямого хода 5.1-5.n, при этом i-й выход прямого хода 5.i подключен к входу (n+1-i)-го блок перевода в СОК 6.(n+1-i), и входу (n+1-i)-го блока хранения предвычисленных рангов 7.(n+1-i), i=1,…,n
Figure 00000072
Поскольку значения на входах блоков перевода в СОК 6.1-6.n ограничены
Figure 00000073
, то их реализация возможна как табличных способом, там и прямым вычислением. Блоки хранения предвычисленных рангов 7.1-7.n хранят ранги для чисел до
Figure 00000074
Блок обратного хода содержит n-1 вычислительную ступень, каждая из которых содержит n умножителей по модулю 8, n сумматоров по модулю 10, вычислитель ранга суммы 11, вычислитель ранга произведения 9, и блок хранения предвычисленных рангов 7.
В первой вычислительной ступени блока обратного хода происходит умножение числа, полученного с выхода прямого хода 5.n, представленного в СОК блоком перевода в СОК 6.1, на значение второго модуля СОК
Figure 00000061
. Вход первого умножителя по модулю
Figure 00000075
8.1.1 соединен с первым выходом первого блока перевода в СОК 6.1, который также соединен со вторым входом вычислителя ранга произведения 9.1, который осуществляет вычисления по формуле (3). Вход второго умножителя по модулю
Figure 00000061
8.1.2 соединен с вторым выходом первого блока перевода в СОК 6.1, который также соединен со третьим входом вычислителя ранга произведения 9.1. И так далее, вход n-го умножителя по модулю
Figure 00000067
8.1.n соединен с n-м выходом первого блока перевода в СОК 6.1, который также соединен со (n+1)-м входом вычислителя ранга произведения 9.1. Первый вход вычислителя ранга произведения 9.1 соединен с выходом первого блока хранения предвычисленных рангов 7.1.
Данные с выходов умножителей по модулю
Figure 00000014
8.1.i поступают на вторые входы соответствующих сумматоров по модулю
Figure 00000014
10.1.i, на первые входы которых поступают значения с соответствующих выходов второго блока перевода в СОК 6.2. Первый вход вычислителя ранга суммы 11.1 подключен к выходу второго блока хранения предвычисленных рангов 7.2, четные входы вычислителя ранга суммы 11.1 со 2 по 2n подключены к соответствующим выходам второго блока перевода в СОК 6.2, нечетные входы вычислителя ранга суммы 11.1 с 3 по (2n+1) подключены к выходам соответствующих выходов умножителей по модулю
Figure 00000014
8.1.i, (2n+2)-й вход вычислителя ранга суммы 11.1 подключен к выходу вычислителя ранга произведения 9.1.
Аналогично устроены остальные ступени.
В (n-1)-й вычислительной ступени входы умножителей по модулю
Figure 00000014
8.n-1.i подключены к выходам соответствующих сумматоров по модулю
Figure 00000014
10.n-2.i предыдущей ступени. Первый вход вычислителя ранга произведения 9.n-1 подключен к выходу вычислителя ранга суммы 11.n-2 предыдущей ступени, входы со 2 по (n+1)-й подключены к выходам соответствующих сумматоров по модулю
Figure 00000014
10.n-2.i предыдущей ступени.
Данные с выходов умножителей по модулю
Figure 00000014
8.n-1.i поступают на вторые входы соответствующих сумматоров по модулю
Figure 00000014
10.n-1.i, на первые входы которых поступают значения с соответствующих выходов n-го блока перевода в СОК 6.n. Первый вход вычислителя ранга суммы 11.n-1 подключен к выходу n-го блока хранения предвычисленных рангов 7.n, четные входы вычислителя ранга суммы 11.n-1 со 2 по 2n подключены к соответствующим выходам n-го блока перевода в СОК 6.n, нечетные входы вычислителя ранга суммы 11.n-1 с 3 по (2n+1) подключены к выходам соответствующих выходов умножителей по модулю
Figure 00000014
8.n-1.i, (2n+2)-й вход вычислителя ранга суммы 11.n-1 подключен к выходу вычислителя ранга произведения 9.n-1.
Выходы сумматоров по модулю
Figure 00000014
10.n-1.i (n-1)-й вычислительной ступени являются выходами исходного числа 12.i, а выход вычислителя ранга суммы 11.n-1 является выходом ранга 13 устройства.
Рассмотрим работу устройства на предыдущем примере. Поскольку СОК содержит 3 модуля, то n=3 и устройство содержит 2 вычислительных ступени прямого хода и 2 вычислительных ступени обратного хода. На входы остатка 1.1-1.3 подаются значения 2, 2, 3 соответственно, которые затем поступают на соответствующие регистры хранения разрядов исходного числа 2.1-2.3.
Значение с первого регистра хранения разрядов исходного числа 2.1 поступает на первый выход прямого хода 5.1 и через инверторы на первые информационные входы сумматоров по модулю
Figure 00000061
3.1.1 и по модулю
Figure 00000065
3.1.2 первой вычислительной ступени. На вторые информационные входы сумматоров по модулю
Figure 00000061
3.1.1 и по модулю
Figure 00000065
3.1.2 поступают значения с регистров хранения разрядов исходного числа 2.2 и 2.3 соответственно.
В сумматоре по модулю
Figure 00000061
3.1.1 происходит вычисление
Figure 00000076
. В сумматоре по модулю
Figure 00000065
3.1.2 происходит вычисление
Figure 00000077
.
Значения с выходов сумматоров по модулю
Figure 00000061
3.1.1 и по модулю
Figure 00000065
3.1.2 поступают на входы блоков умножения на
Figure 00000060
по модулю
Figure 00000061
4.1.1 и на
Figure 00000078
по модулю
Figure 00000065
4.1.2 первой вычислительной ступени, в которых происходит соответственно умножение
Figure 00000079
и
Figure 00000080
Значение с выхода блоков умножения на
Figure 00000060
по модулю
Figure 00000061
4.1.1 поступает на второй выход прямого хода 5.2 и через инвертор на первый информационный вход сумматора по модулю
Figure 00000065
3.2.1 второй вычислительной ступени, в котором происходит вычисление (
Figure 00000081
Значение с выхода сумматора по модулю
Figure 00000065
3.2.1 поступает на вход первого блока умножения на
Figure 00000048
по модулю
Figure 00000065
4.2.1, в котором происходит вычисление (
Figure 00000082
. Значение с выхода первого блока умножения на
Figure 00000048
по модулю
Figure 00000065
4.2.1 поступает третий выход прямого хода 5.3.
Таким образом, на выходах прямого хода 5.1-5.3 будут сформированы значения 2, 0, 1.
Значение 1 с выхода прямого хода 5.3 поступает на входы первого блок перевода в СОК 6.1, и входу первого блока хранения предвычисленных рангов 7.1. На первый выход первого блок перевода в СОК 6.1 поступает значение по модулю
Figure 00000075
, т.е.
Figure 00000083
, которое подается на вход первого умножителя по модулю
Figure 00000075
8.1.1, в котором происходит умножение на
Figure 00000061
, т.е.
Figure 00000084
. На второй выход первого блок перевода в СОК 6.1 поступает значение по модулю
Figure 00000061
, т.е.
Figure 00000085
, которое подается на вход второго умножителя по модулю
Figure 00000061
8.1.2, в котором происходит умножение на
Figure 00000061
, т.е.
Figure 00000086
. На третий выход первого блок перевода в СОК 6.1 поступает значение по модулю
Figure 00000065
, т.е.
Figure 00000087
, которое подается на вход третьего умножителя по модулю
Figure 00000061
8.1.3, в котором происходит умножение на
Figure 00000061
, т.е.
Figure 00000088
. Предвычисленное значение 1, хранящееся в памяти, с выхода первого блока хранения предвычисленных рангов 7.1 поступает на первый вход вычислителя ранга произведения 9.1 первой ступени, на входы со 2 по 4 которого поступают значения 1, 1, 1 с первого, второго и третьего выходов первого блок перевода в СОК 6.1. В вычислителе ранга произведения 9.1 происходит вычисление по формуле (3)
Figure 00000089
Figure 00000090
Значение 0 с выхода прямого хода 5.2 поступает на входы второго блок перевода в СОК 6.2, и входу второго блока хранения предвычисленных рангов 7.2. На выходах второго блок перевода в СОК 6.2 и второго блока хранения предвычисленных рангов 7.2 будут 0. Выход второго блока хранения предвычисленных рангов 7.2 соединен с первым входом вычислителя ранга суммы 11.1 первой ступени. Первый выход второго блок перевода в СОК 6.2 подключен ко второму входу вычислителя ранга суммы 11.1 и первому входу сумматора по модулю
Figure 00000075
10.1.1 первой ступени обратного хода, на второй вход которого поступает значение с выхода первого умножителя по модулю
Figure 00000075
8.1.1, который также подключен к третьему входу вычислителя ранга суммы 11.1. В сумматоре по модулю
Figure 00000075
10.1.1 происходит вычисление (
Figure 00000091
. Второй выход второго блок перевода в СОК 6.2 подключен ко четвертому входу вычислителя ранга суммы 11.1 и первому входу сумматора по модулю
Figure 00000061
10.1.2 первой ступени обратного хода, на второй вход которого поступает значение с выхода второго умножителя по модулю
Figure 00000061
8.1.2, который также подключен к пятому входу вычислителя ранга суммы 11.1. В сумматоре по модулю
Figure 00000061
10.1.2 происходит вычисление (
Figure 00000092
. Третий выход второго блок перевода в СОК 6.2 подключен ко шестому входу вычислителя ранга суммы 11.1 и первому входу сумматора по модулю
Figure 00000065
10.1.3 первой ступени обратного хода, на второй вход которого поступает значение с выхода третьего умножителя по модулю
Figure 00000065
8.1.3, который также подключен к седьмому входу вычислителя ранга суммы 11.1. В сумматоре по модулю
Figure 00000065
10.1.3 происходит вычисление (
Figure 00000093
. На восьмой вход вычислителя ранга суммы 11.1 поступает значение с выхода вычислителя ранга произведения 9.1. В вычислителе ранга суммы 11.1 происходит вычисление по формуле (2):
Figure 00000094
Во второй вычислительной ступени обратного хода на входы умножителей по модулю
Figure 00000075
8.2.1, по модулю
Figure 00000061
8.2.2, по модулю
Figure 00000065
8.2.3 второй ступени обратного хода поступают значения 2, 0, 5 с выходов соответствующих сумматоров по модулю
Figure 00000075
10.1.1, по модулю
Figure 00000061
10.1.2, по модулю
Figure 00000065
10.1.3 первой ступени обратного хода. В умножителях 8.2.1-8.2.3 происходит умножение на
Figure 00000075
по соответствующему модулю. На выход первого умножителя по модулю
Figure 00000075
8.2.1 второй ступени поступает значение (
Figure 00000095
. На выход второго умножителя по модулю
Figure 00000061
8.2.3 второй ступени поступает значение (
Figure 00000096
. На выход третьего умножителя по модулю
Figure 00000065
8.2.3 второй ступени поступает значение (
Figure 00000097
.
На первый вход вычислителя ранга произведения 9.2 второй ступени поступает значение 2 с выхода вычислителя ранга суммы 11.1 первой ступени. На входы со второго по четвертый вычислителя ранга произведения 9.2 второй ступени поступают значения 2, 0, 5 с выходов соответствующих сумматоров по модулю
Figure 00000075
10.1.1, по модулю
Figure 00000061
10.1.2, по модулю
Figure 00000065
10.1.3 первой ступени обратного хода. В вычислителе ранга произведения 9.2 второй ступени происходит вычисление по формуле (3)
Figure 00000098
Figure 00000099
Значение 2 с выхода прямого хода 5.1 поступает на входы третьего блок перевода в СОК 6.3, и входу третьего блока хранения предвычисленных рангов 7.3. На выходах третьего блок перевода в СОК 6.3 и третьего блока хранения предвычисленных рангов 7.3 будут 2. Выход третьего блока хранения предвычисленных рангов 7.3 соединен с первым входом вычислителя ранга суммы 11.2 второй ступени. Первый выход третьего блок перевода в СОК 6.3 подключен ко второму входу вычислителя ранга суммы 11.2 и первому входу сумматора по модулю
Figure 00000075
10.2.1 второй ступени обратного хода, на второй вход которого поступает значение с выхода первого умножителя по модулю
Figure 00000075
8.2.1, который также подключен к третьему входу вычислителя ранга суммы 11.2. В сумматоре по модулю
Figure 00000075
10.2.1 происходит вычисление (
Figure 00000100
. Второй выход третьего блок перевода в СОК 6.3 подключен ко четвертому входу вычислителя ранга суммы 11.2 и первому входу сумматора по модулю
Figure 00000061
10.2.2 второй ступени обратного хода, на второй вход которого поступает значение с выхода второго умножителя по модулю
Figure 00000061
8.2.2, который также подключен к пятому входу вычислителя ранга суммы 11.2. В сумматоре по модулю
Figure 00000061
10.2.2 происходит вычисление (
Figure 00000101
. Третий выход третьего блок перевода в СОК 6.3 подключен ко шестому входу вычислителя ранга суммы 11.2 и первому входу сумматора по модулю
Figure 00000065
10.2.3 второй ступени обратного хода, на второй вход которого поступает значение с выхода третьего умножителя по модулю
Figure 00000065
8.2.3, который также подключен к седьмому входу вычислителя ранга суммы 11.2. В сумматоре по модулю
Figure 00000065
10.2.3 происходит вычисление (
Figure 00000102
. На восьмой вход вычислителя ранга суммы 11.2 поступает значение с выхода вычислителя ранга произведения 9.2. В вычислителе ранга суммы 11.2 происходит вычисление по формуле (2):
Figure 00000103
С выходов сумматора по модулю 10.2.1-10.2.3 на выходы исходного числа 12.1-12.3 поступают соответственно 2, 2, 3, что соответствует исходному числу.
С выхода вычислителе ранга суммы 11.2 на выход ранга 13 поступает значение 2, соответствующее ранее вычисленному рангу для числа 17.
Таким образом, устройство позволяет как проверить правильность вычисления за счет проверки выходов исходного числа 12.1-12.n на соответствие входам остатка 1.1-1.n, так и вычислить ранг числа, поступающий на выход ранга 13.
Устройство для вычисления ранга модулярного числа
Таблица 1. Прямой ход нахождения ранга числа
Figure 00000104
Figure 00000105
Figure 00000106
Figure 00000107
Figure 00000108
Figure 00000109
Figure 00000110
Figure 00000111
Figure 00000112
Figure 00000113
Figure 00000113
Figure 00000114
Figure 00000115
Figure 00000116
-
Figure 00000117
Figure 00000118
Figure 00000119
Figure 00000120
-
Figure 00000121
Figure 00000122
Figure 00000123
Figure 00000124
- -
Figure 00000125
Устройство для вычисления ранга модулярного числа
Таблица 2. Обратный нахождения ранга числа
Figure 00000104
Figure 00000105
Figure 00000106
Figure 00000126
Figure 00000127
Figure 00000128
Figure 00000129
Figure 00000130
Figure 00000131
Figure 00000132
Figure 00000133
Figure 00000134
Figure 00000135
Figure 00000136
Figure 00000137

Figure 00000138

Figure 00000139

Figure 00000140
Figure 00000141
Figure 00000142
Figure 00000143
Figure 00000144
Figure 00000145
Figure 00000146

Figure 00000147
Figure 00000148
Figure 00000149
Figure 00000150
Figure 00000151
Figure 00000152
Figure 00000153

Figure 00000154

Figure 00000155
Figure 00000156
Figure 00000157
Figure 00000158
Figure 00000158
Figure 00000159
Figure 00000160

Claims (1)

  1. Устройство для вычисления ранга модулярного числа, содержащее n входов остатка, где n – количество модулей
    Figure 00000161
    системы остаточных классов (СОК), n регистров хранения разрядов исходного числа, n-1 вычислительную ступень прямого хода, при этом i-я вычислительная ступень прямого хода, где i=1,…,n-1, содержит n-i сумматоров по модулю
    Figure 00000162
    и n-i блоков умножения на
    Figure 00000163
    по модулю
    Figure 00000162
    , где j=i+1,…, n и
    Figure 00000163
    – мультипликативная инверсия модуля
    Figure 00000161
    по модулю
    Figure 00000162
    , входы остатка подключены к входам соответствующих регистров хранения разрядов исходного числа, в первой вычислительной ступени прямого хода первые информационные входы i-х сумматоров по модулю
    Figure 00000164
    через инверторы подключены к выходу первого регистра хранения разрядов исходного числа, вторые информационные входы i-х сумматоров по модулю
    Figure 00000164
    подключены к выходам (i+1)-х регистров хранения разрядов исходного числа, на входы переносов i-х сумматоров по модулю
    Figure 00000164
    подается сигнал логической единицы, выходы i-х сумматоров по модулю
    Figure 00000164
    подключены ко входам соответствующих блоков умножения на
    Figure 00000165
    по модулю
    Figure 00000164
    , i=1,…, n-1, в i-x вычислительных ступенях прямого хода, i=2,…, n-1, первые информационные входы j-х сумматоров по модулю
    Figure 00000166
    через инверторы подключены к выходу первого блока умножения на
    Figure 00000167
    по модулю
    Figure 00000161
    (i-1)-ой вычислительной ступени прямого хода, вторые информационные входы j-х сумматоров по модулю
    Figure 00000166
    подключены к выходам (j+1)-ых блоков умножения на
    Figure 00000168
    по модулю
    Figure 00000166
    (i-1)-ой вычислительной ступени прямого хода, на входы переносов j-х сумматоров по модулю
    Figure 00000166
    подается сигнал логической единицы, выходы j-х сумматоров по модулю
    Figure 00000166
    подключены к входам j-ых блоков умножения на
    Figure 00000169
    по модулю
    Figure 00000166
    ,
    Figure 00000170
    отличающееся тем, что в него введены n выходов прямого хода, n блоков перевода в СОК, n блоков хранения предвычисленных рангов, n выходов исходного числа, выход ранга, а также n-1 вычислительная ступень обратного хода, каждая из которых содержит n умножителей по модулю
    Figure 00000162
    , n сумматоров по модулю
    Figure 00000162
    , где j=1,…, n, вычислитель ранга суммы, вычислитель ранга произведения, при этом выход первого регистра хранения разрядов исходного числа является первым выходом прямого хода, выходы первых блоков умножения на
    Figure 00000171
    по модулю
    Figure 00000164
    i-x вычислительных ступеней прямого хода, i=1,…, n-1, являются (i+1)-ми выходами прямого хода, i-й выход прямого хода подключен к входу (n+1-i)-го блока перевода в СОК и входу (n+1-i)-го блока хранения предвычисленных рангов, i=1,…, n, i-й выход первого блока перевода в СОК подключен к входу i-го умножителя по модулю
    Figure 00000161
    первой вычислительной ступени обратного хода и (i+1)-му входу вычислителя ранга произведения первой ступени обратного хода, первый вход которого соединен с выходом первого блока хранения предвычисленных рангов, в i-й вычислительной ступени обратного хода, i=1,…, n-1, j-й выход (i+1)-го блока перевода в СОК, j=1,…, n, соединен с первым входом j-го сумматора по модулю
    Figure 00000162
    и 2j-м входом вычислителя ранга суммы i-й вычислительной ступени обратного хода, вторые входы j-х сумматоров по модулю
    Figure 00000162
    и (2j+1)-е входы вычислителя ранга суммы i-й вычислительной ступени обратного хода соединены с выходами j-х умножителей по модулю
    Figure 00000162
    , первый вход вычислителя ранга суммы i-й вычислительной ступени обратного хода соединен с выходом (i+1)-го блока хранения предвычисленных рангов, (2n+2)-й вход вычислителя ранга суммы i-й вычислительной ступени обратного хода соединен с выходом вычислителя ранга произведения i-й вычислительной ступени обратного хода, выходы j-х сумматоров по модулю
    Figure 00000162
    , j=1,…, n, i-й вычислительной ступени обратного хода, i=1,…, n-2, соединены со входами j-х умножителей по модулю
    Figure 00000162
    (i+1)-й вычислительной ступени обратного хода и (j+1)-ми входами вычислителя ранга произведения (i+1)-й вычислительной ступени обратного хода, первый вход вычислителя ранга произведения (i+1)-й вычислительной ступени обратного хода соединен с выходом вычислителя ранга суммы i-й вычислительной ступени обратного хода, выходы j-х сумматоров по модулю
    Figure 00000162
    , j=1,…, n (n-1)-й вычислительной ступени обратного хода являются j-ми выходами исходного числа, выход вычислителя ранга суммы (n-1)-й вычислительной ступени обратного хода является выходом ранга устройства.
RU2021131821A 2021-10-29 Устройство для вычисления ранга модулярного числа RU2780400C1 (ru)

Publications (1)

Publication Number Publication Date
RU2780400C1 true RU2780400C1 (ru) 2022-09-22

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185596B1 (en) * 1997-05-04 2001-02-06 Fortress U&T Ltd. Apparatus & method for modular multiplication & exponentiation based on Montgomery multiplication
US20050038845A1 (en) * 2002-02-12 2005-02-17 Infineon Technologies Ag Device and method for calculating a result of a division
US20130311531A1 (en) * 2012-05-17 2013-11-21 Samsung Electronics Co., Ltd. Modular arithmatic unit and secure system including the same
RU2747371C1 (ru) * 2020-10-22 2021-05-04 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Устройство определения знака числа, представленного в системе остаточных классов
RU2755734C1 (ru) * 2020-08-25 2021-09-20 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Устройство для умножения чисел по произвольному модулю

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185596B1 (en) * 1997-05-04 2001-02-06 Fortress U&T Ltd. Apparatus & method for modular multiplication & exponentiation based on Montgomery multiplication
US20050038845A1 (en) * 2002-02-12 2005-02-17 Infineon Technologies Ag Device and method for calculating a result of a division
US20130311531A1 (en) * 2012-05-17 2013-11-21 Samsung Electronics Co., Ltd. Modular arithmatic unit and secure system including the same
RU2755734C1 (ru) * 2020-08-25 2021-09-20 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Устройство для умножения чисел по произвольному модулю
RU2747371C1 (ru) * 2020-10-22 2021-05-04 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Устройство определения знака числа, представленного в системе остаточных классов

Similar Documents

Publication Publication Date Title
Kim et al. Efficient Mitchell’s approximate log multipliers for convolutional neural networks
Taylor Residue arithmetic a tutorial with examples
EP0736205B1 (en) Method and apparatus for performing a fast hadamard transform
US11169778B2 (en) Converting floating point numbers to reduce the precision
Hart et al. Irregular primes to two billion
CN111488133A (zh) 高基数近似布斯编码方法和混合基数布斯编码近似乘法器
CN112464296A (zh) 一种用于同态加密技术的大整数乘法器硬件电路
Jia A breakdown-free algorithm for computing the determinants of periodic tridiagonal matrices
US4293922A (en) Device for multiplying binary numbers
RU2780400C1 (ru) Устройство для вычисления ранга модулярного числа
Pathak et al. An efficient Dadda multiplier using approximate adder
US5289399A (en) Multiplier for processing multi-valued data
JPH07210534A (ja) ニューラルネットワーク
US20030154226A1 (en) Method and system for processing complex numbers
CN109388372B (zh) 一种基于最小模块的三值光学处理器msd乘法计算方法
RU2744815C1 (ru) Устройство для перевода чисел из системы остаточных классов и расширения оснований
Bruguera et al. 2-D DCT using on-line arithmetic
US20240152329A1 (en) K-cluster residue number system for edge ai computing
Kandimalla Rajaneesh A Novel High Performance Implementation of 64 Bit MAC Units and Their Delay Comparison
RU2767450C1 (ru) Способ определения знака числа в системе остаточных классов
Singh et al. Energy Efficient Vedic Multiplier
RU2256226C2 (ru) Нейронная сеть для расширения кортежа числовой системы вычетов
US11947960B2 (en) Modulo-space processing in multiply-and-accumulate units
RU2559772C2 (ru) Устройство для основного деления модулярных чисел в формате системы остаточных классов
RU2751992C1 (ru) Устройство сравнения чисел, представленных в системе остаточных классов