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

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

Info

Publication number
RU2559772C2
RU2559772C2 RU2013149446/08A RU2013149446A RU2559772C2 RU 2559772 C2 RU2559772 C2 RU 2559772C2 RU 2013149446/08 A RU2013149446/08 A RU 2013149446/08A RU 2013149446 A RU2013149446 A RU 2013149446A RU 2559772 C2 RU2559772 C2 RU 2559772C2
Authority
RU
Russia
Prior art keywords
rns
input
outputs
divider
dividend
Prior art date
Application number
RU2013149446/08A
Other languages
English (en)
Other versions
RU2013149446A (ru
Inventor
Николай Иванович Червяков
Михаил Григорьевич Бабенко
Павел Алексеевич Ляхов
Ирина Николаевна Лавриненко
Антон Викторович Лавриненко
Original Assignee
Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Северо-Кавказский федеральный университет"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Северо-Кавказский федеральный университет" filed Critical Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Северо-Кавказский федеральный университет"
Priority to RU2013149446/08A priority Critical patent/RU2559772C2/ru
Publication of RU2013149446A publication Critical patent/RU2013149446A/ru
Application granted granted Critical
Publication of RU2559772C2 publication Critical patent/RU2559772C2/ru

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

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

Description

Изобретение относится к вычислительным модулярным системам и предназначено для выполнения основного деления чисел, представленных в системе остаточных классов (СОК).
В СОК обычное целое число представляется в виде остатков от деления на набор модулей. Арифметические операции над числами заменяются операциями над остатками. Выполнение операций происходит параллельно и без межразрядных переносов, что позволяет очень быстро реализовать сложение, вычитание и умножение. Однако операция деления представляет определенные трудности, которые исследователи стараются упростить, предлагая новые архитектуры вычислений и аппаратные реализации.
Известно изобретение «Нейронная сеть для деления чисел, представленных в системе остаточных классов» (патент RU 2318239, G06F, опубл. 27.02.2008), содержащее нейронную сеть для расширения кортежа числовой системы вычетов, нейронные сети конечного кольца для суммирования и умножения.
Недостатком устройства является низкая скорость деления чисел и ограниченная функциональная возможность, так как в качестве делителя выбирается один их модулей системы остаточных классов (СОК).
Наиболее близкой к данному изобретению является «Нейронная сеть основного деления модулярных чисел» (патент RU 2400813, G06F 3/02, G06F 7/72, опубл. 27.04.2010). Недостатком устройства является большой объем оборудования. Известная нейронная сеть предназначена для деления модулярных чисел в случае, когда в качестве делителя используется целое положительное число, попарно простое с p1, p2, …, pn, либо целое положительное число, представляющее собой произведение чисел, попарно взаимно простых с pi. Для выполнения этого условия возникает необходимость нахождения приблизительного делителя путем использования обобщенной позиционной системы счисления (ОПСС). При вычислении приблизительного делителя нарушается регулярность структуры устройства деления, так как используются модульные и немодульные операции.
Техническим результатом данного изобретения является упрощение устройства за счет использования регулярной структуры, расширения функциональных возможностей и сокращения оборудования, что позволяет использовать предложенное изобретение в динамике вычислительного процесса. Указанный технический результат достигается тем, что устройство использует только модульные операции, то есть вычисления выполняются параллельно, в формате СОК. Предлагается устройство для основного деления модулярных чисел в формате системы остаточных классов, содержащее входные регистры делимого и делителя, выходы которых коммутируются мультиплексором для поочередного преобразования делимого и делителя, представленных в основной СОК, во вспомогательную СОК, выход мультиплексора соединен со входом блока расширения, расширяющего базу СОК, выход которого соединен со входом демультиплексора, выходы которого соединены с регистрами хранения остатков по расширенным основаниям, выход регистра делимого по расширенным основаниям соединен со входом умножителя, а выходы регистра делителя соединены с LUT-таблицей, преобразующей делитель по расширенным основаниям в мультипликативную инверсию, выходы которой соединены с умножителем, где реализуется вычислительная модель c i ' = a i ' b i ' 1
Figure 00000001
, где a i ' ( a mod p i ) mod p i '
Figure 00000002
, b i ' ( b mod p i ) mod p i '
Figure 00000003
, a - делимое, b - делитель, b i ' 1
Figure 00000004
- мультипликативная инверсия делителя b i '
Figure 00000005
, pi - основные модули СОК, p i '
Figure 00000006
- модули вспомогательной СОК, а выходы умножителя соединены через мультиплексор со входом блока расширения для перехода от вспомогательной СОК к основной СОК, выход которого через демультиплексор соединен с регистрами хранения значений b″-1 и c, где b i " 1 b i ' 1 mod p i
Figure 00000007
и c i c i ' mod p i
Figure 00000008
, представленных в основной СОК, выходы регистра b″-1 соединены с первыми входами умножителей, на вторые входы которого поступают соответственно делимое и делитель, где реализуется вычислительная модель a i b i " 1
Figure 00000009
и b i b i " 1
Figure 00000010
, выходы которых соединены через схемы ключей с входными регистрами делимого и делителя соответственно, а также с первыми входами схем вычитания и умножения, а на вторые входы которых, соответственно, поступают данные регистра с и константа 1, на третьи входы поступает q i 1
Figure 00000011
, где реализуются вычислительные модели ( a i b i " 1 c i ) q i 1
Figure 00000012
и ( b i b i " 1 1 ) q i 1
Figure 00000013
, где q i = ( i = 1 m p i ' ) mod p i
Figure 00000014
, q i 1
Figure 00000015
- мультипликативная инверсия qi, выходы которых подключены, соответственно, к выходному ключу и схеме сравнения с единицей, если результат схемы сравнения равен 1, то подается управляющий сигнал на вход выходного ключа, на выходе которого формируется результат деления (частное), в противном случае, если результат сравнения не равен 1, то формируется управляющий сигнал, который открывает схемы ключей, выходы которых подключены к входным регистрам делимого и делителя, представленных в основной СОК.
Устройство для основного деления модулярных чисел в формате системы остаточных классов содержит: входные шины для подачи делимого, шина 1, входные шины для подачи делителя, шина 2, и выходную шину частного, шина 53; регистр делимого 3 и регистр делителя 4; мультиплексор 5 для коммутации делимого и делителя на вход блока расширения 6, который коммутирует шины 28 и 29 на шину 30, являющуюся входом блока расширения 6, который преобразует делимое и делитель из основной системы оснований во вспомогательную систему оснований; демультиплексор 7 коммутирует выход блока расширения 6, шина 32, на вход 34 регистра делимого 8 и вход 35 регистра делителя 9, которые временно хранят делимое и делитель, представленные во вспомогательной СОК; умножитель 11, который выполняет операцию умножения делимого и мультипликативной инверсии делителя, представленных во вспомогательной СОК, поданных соответственно по шинам 36 и 37, 38 через LUT-таблицу 10, в которой происходит выборка мультипликативной инверсии делителя; шины 38 и 39 подаются на вход мультиплексора 12, который поочередно их коммутирует на выход 40, являющийся входом блока расширения 13, осуществляющего расширение поданных значений, представленных во вспомогательной СОК, в основную СОК; выход блока расширения 13, шина 42, поочередно коммутируется демультиплексором 16 на вход регистра 15, шина 44, и вход регистра 17, шина 45, для временного хранения, соответственно, мультипликативной инверсии и произведения делимого и мультипликативной инверсии, представленных в основной СОК; выход регистра 15, шина 46, подается на первые входы умножителей 18, 19, на вторые входы которых поступает делимое и делитель, представленные в основной СОК, шины 28 и 29; выходы умножителей 18 и 19, шины 48 и 49, произведений, соответственно, делимого и делителя на мультипликативную инверсию, представленных в основной СОК поступают через схемы ключей 24 и 25 на вход, соответственно, регистра делимого 3 и регистра делителя 4 по шинам 26 и 27, и одновременно данные по шинам 48 и 49, соответственно, поступают на первые входы схем вычитания и умножения 20 и 21, а на вторые входы поступает, соответственно, выход регистра 17, шина 47, хранящий произведения делимого и мультипликативной инверсии, преобразованные в основную СОК, и константа «1»; в схемах вычитания и умножения 20 и 21 полученные значения умножаются на константу q i 1
Figure 00000015
, шина 50; выходы схемы вычитания и умножения 20 подаются на выходной ключ 22, а выходы схемы вычитания и умножения 21 - на вход схемы сравнения 23; если результат сравнения равен 1, то подается управляющий сигнал по шине 51 на вход выходного ключа 22, на выходе которого, шина 53, формируется частное, если результат не равен 1, то формируется управляющий сигнал по шине 52, который открывает схемы ключей 24 и 25 и подает на вход регистров делимого 3 и делителя 4 новые значения, необходимые для следующей итерации.
Управление процессом деления осуществляется блоком управления 14, который формирует адресные входы мультиплексоров 5, 12, шины, соответственно, 31 и 41, и адресные входы демультиплексоров 7, 16, шины, соответственно, 33 и 43.
Рассмотрим новый алгоритм основного деления модулярных чисел для случая, когда делимое и делитель представляют собой произвольные целые числа и делитель не приводится к случаю попарно простого с модулями СОК.
В последнее время проявляется значительный интерес к СОК, обладающей высоким уровнем естественного параллелизма при выполнении арифметических операций, высокой точностью, надежностью и стойкостью.
Специализированные процессоры на основе арифметики СОК могут сыграть важную роль в высокоскоростных системах обработки данных в режиме реального времени. Операции сложения, вычитания и умножения, называемые модульными операциями, могут быть реализованы очень быстро, без распространения межразрядных переносов. Немодульные операции деления, сравнения чисел, определения знака и переполнения диапазона остаются сравнительно медленными. Любое улучшение скорости этих медленных алгоритмов значительно улучшает производительность многомодульных арифметико-логических устройств (АЛУ) и расширяет приложения СОК. Обычно при рассмотрении деления в СОК выделяют три категории: деление с нулевым остатком, масштабирование и деление в общем случае. Проблема деления в СОК в общем виде привлекает внимание многих исследователей для разработки высокопроизводительных многомодульных АЛУ. Известные алгоритмы деления в СОК, основанные на масштабировании, округлении, расширении и других операциях, являются медленными и требуют выполнения большого количества арифметических действий. Большинство известных алгоритмов работает путем рекурсивного вычитания числа, кратного делителю, из делимого до тех пор, пока разность не станет меньше, чем делитель. В связи с этим возникает необходимость упростить структуру вычислений при делении. Одно из направлений упрощения структуры устройства деления состоит в том, что делимое, делитель и остаток представлены только в формате СОК.
Рассмотрим параллельный алгоритм деления в СОК, преимущество которого состоит в том, что делимое, делитель и все промежуточные вычисления выполняются в СОК.
Параллельный алгоритм.
1. Пусть p1, p2, …, pm есть набор модулей, (a1, a2, …, am) - делимое и (b1, b2, …, bm) - делитель.
2. Определим вспомогательную систему оснований ( p 1 ' ,   p 2 ' ,   ,   p m ' )
Figure 00000016
, где Н О Д ( p i , p j ' ) = 1
Figure 00000017
для i, j=1, 2, …, m.
3. Вычислим (q1, q2, …, qm), где q i = p 1 ' p 2 ' p m ' mod p i
Figure 00000018
.
4. Переведем (a1, a2, …, am) по основаниям p1, p2, …, pm в ( a 1 ' ,   a 2 ' ,   ,   a m ' )
Figure 00000019
по основаниям p 1 ' , p 2 ' , , p m '
Figure 00000020
методом расширения базы СОК.
5. Переведем (b1, b2, …, bm) по основаниям p1, p2, …, pm в ( b 1 ' , b 2 ' , , b m ' )
Figure 00000021
по основаниям p 1 ' ,   p 2 ' ,   ,   p m '
Figure 00000022
методом расширения базы СОК.
6. Вычисляем ( b 1 1 ,   b 2 1 ,   ,   b m 1 )
Figure 00000023
по основаниям p1, p2, …, pm, ( b 1 ' 1 ,   b 2 ' 1 ,   ,   b m ' 1 )
Figure 00000024
по основаниям p 1 ' ,   p 2 ' ,   ,   p m '
Figure 00000025
и ( q 1 1 ,   q 2 1 ,   ,   q m 1 )
Figure 00000026
по основаниям p1, p2, …, pm.
7. Вычисляем ( c 1 1 ,   c 2 1 ,   ,   c m 1 ) = ( a 1 ' ,   a 2 ' ,   ,   a m ' ) ( b 1 1 ,   b 2 1 ,   ,   b m 1 )
Figure 00000027
.
8. Переведем ( b 1 ' 1 ,   b 2 ' 1 ,   ,   b m ' 1 )
Figure 00000028
по основаниям p 1 ' ,   p 2 ' ,   ,   p m '
Figure 00000029
в ( b 1 " 1 ,   b 2 " 1 ,   ,   b m " 1 )
Figure 00000030
по основаниям p1, p2, …, pm и ( c 1 ' , c 2 ' , , c m ' )
Figure 00000031
по основаниям p 1 ' , p 2 ' , , p m '
Figure 00000032
в (c1, c2, …, cm) по основаниям p1, p2, …, pm методом расширения базы СОК.
9. Вычисляем ( a 1 , a 2 , , a m ) = ( ( a 1 , a 2 , , a m ) ( b 1 " 1 , b 2 " 1 , , b m " 1 ) ( c 1 , c 2 , , c m ) ) ( q 1 1 , q 2 1 , , q m 1 )
Figure 00000033
.
10. Вычисляем ( b 1 , b 2 , b m ) = ( ( b 1 , b 2 , b m ) ( b 1 " 1 , b 2 " 1 , , b m " 1 ) ) ( 1, 1, , 1 ) ) ( q 1 1 , q 2 1 , , q m 1 )
Figure 00000034
.
11. Если (b1, b2, …, bm)=(1, 1, …, 1), то (a 1, a 2, …, a m) есть частное; иначе - перейти к шагу 4.
Пример.
Возьмем исходную систему оснований (p1, p2, p3)=(7, 11, 13) и вспомогательную систему оснований ( p 1 ' , p 2 ' , p 3 ' ) = ( 5, 17, 19 )
Figure 00000035
. Для делимого a=212, равного в СОК (2, 3, 4)(7, 11, 13), и делителя b=16, равного в СОК (2, 5, 3)(7, 11, 13), частное z = 212 16 = 13
Figure 00000036
равно в СОК (6, 2, 0)(7, 11, 13).
Операция деления выполняется следующим образом.
1. Вычисляем ( q 1 , q 2 , q 3 ) ( p 1 , p 2 , p 3 ) = ( 5, 9, 3 ) ( 7, 11, 13 )
Figure 00000037
и ( q 1 1 , q 2 1 , q 3 1 ) ( p 1 , p 2 , p 3 ) = ( 3, 9, 3 ) ( 7, 11, 13 )
Figure 00000038
.
2. Переводим ( a 1 , a 2 , a 3 ) ( p 1 , p 2 , p 3 ) = ( 2, 3, 4 ) ( 7, 11, 13 )
Figure 00000039
в ( a 1 ' , a 2 ' , a 3 ' ) ( p 1 ' , p 2 ' , p 3 ' ) = ( 2, 8, 3 ) ( 5, 7, 19 )
Figure 00000040
.
3. Переводим ( b 1 , b 2 , b 3 ) ( p 1 , p 2 , p 3 ) = ( 2, 5, 3 ) ( 7, 11, 13 )
Figure 00000041
в ( b 1 ' , b 2 ' , b 3 ' ) ( p 1 ' , p 2 ' , p 3 ' ) = ( 1, 16, 16 ) ( 5, 7, 19 )
Figure 00000042
.
4. Переводим ( b 1 ' , b 2 ' , b 3 ' ) ( p 1 ' , p 2 ' , p 3 ' ) = ( 1, 16, 16 ) ( 5, 7, 19 )
Figure 00000043
в ( b 1 ' 1 , b 2 ' 1 , b 3 ' 1 ) ( p 1 ' , p 2 ' , p 3 ' ) = ( 1, 16, 16 ) ( 5, 7, 19 )
Figure 00000044
.
5. Вычисляем ( c 1 ' , c 2 ' , c 3 ' ) ( p 1 ' , p 2 ' , p 3 ' ) = ( a 1 ' , a 2 ' , a 3 ' ) ( p 1 ' , p 2 ' , p 3 ' ) ( b 1 ' 1 , b 2 ' 1 , b 3 ' 1 ) ( p 1 ' , p 2 ' , p 3 ' ) = = ( 2, 8, 3 ) ( 1, 16, 6 ) = ( 2, 9, 18 ) ( 5, 17, 19 ) .
Figure 00000045
6. Переводим ( b 1 ' 1 , b 2 ' 1 , b 3 ' 1 ) ( p 1 ' , p 2 ' , p 3 ' ) = ( 1, 16, 16 ) ( 5, 7, 19 )
Figure 00000046
в ( b 1 " - 1 , b 2 " 1 , b 3 " 1 ) ( p 1 ' , p 2 ' , p 3 ' ) = ( 1, 16, 16 ) ( 5, 7, 19 )
Figure 00000047
.
7. Переводим ( c 1 ' , c 2 ' , c 3 ' ) ( p 1 ' , p 2 ' , p 3 ' ) = ( 2, 9, 18 ) ( 5, 7, 19 )
Figure 00000048
в ( c 1 , c 2 , c 3 ) ( p 1 , p 2 , p 3 ) = ( 4, 10, 1 ) ( 7, 11, 13 )
Figure 00000049
.
8. Вычисляем ( a 1 , a 2 , a 3 ) = ( ( a 1 , a 2 , a 3 ) ( b 1 " - 1 , b 2 " 1 , b 3 " 1 ) ( c 1 , c 2 , c 3 ) ) ( q 1 1 , q 2 1 , q 3 1 ) = = ( | ( 2 3 4 ) 3 | 7 , | ( 3 2 10 ) | 11 , | ( 4 10 1 ) 9 | 13 ) = ( 6, 2, 0 ) .
Figure 00000050
9. Вычисляем ( b 1 , b 2 , b 3 ) = ( ( b 1 , b 2 , b 3 ) ( b 1 " - 1 , b 2 " 1 , b 3 " 1 ) ( 1, 1, 1 ) ) ( q 1 1 , q 2 1 , q 3 1 ) = ( 1, 1, 1 ) .
Figure 00000051
Так как (b1, b2, b3)=(1, 1, 1), то частное вычисляется как (6, 2, 0).
На чертеже (фиг. 1) представлена схема устройства для основного деления модулярных чисел в формате системы остаточных классов. Схема устройства пунктирной линией разделена на левую и правую части. В левой части вычисления ведутся в основной системе СОК, а в правой части во вспомогательной СОК. Принцип работы данного устройства излагается ниже.
Делимое a и делитель b, представленные в основной системе остаточных классов, по шинам 1 и 2 поступают на входные регистры делимого 3 и делителя 4. Выходные данные с регистров делимого 3 и делителя 4 по шинам соответственно 28 и 29 поступают на информационные входы мультиплексора 5. Под действием адресного входа, шина 31, формируемого блоком управления 14, мультиплексор 5 вначале подает делимое по шине 30 на вход блока расширения 6, который представляет собой нейронную сеть для расширения кортежа числовой системы вычетов (патент RU 2256226, Бюл. №19 от 10.07.2005). Блок расширения 6 преобразует делимое ai, представленное в основной СОК, в делимое a i '
Figure 00000052
, представленное во вспомогательной СОК, где i=1, 2, …, m. С выхода блока расширения 6 по шине 32 данные через демультиплексор 7 и шину 34 поступают на регистр делимого 8, который служит для временного хранения делимого, представленного во вспомогательной СОК. Адресные входы демультиплексора 7 подключены к блоку управления 14 посредством шины 33.
После преобразования делимого аналогичным образом осуществляется преобразование делителя b, представленного в основной СОК, в делитель b′, представленный во вспомогательной СОК. При этом демультиплексор 7 через шину 35 помещает данные делителя в регистр делителя 9. С выхода регистра делителя 9 по шине 37 делитель b i '
Figure 00000053
, представленный во вспомогательной СОК, поступает на вход LUT-таблицы 10, где происходит преобразование делителя в мультипликативную инверсию b i ' 1
Figure 00000054
, и далее по шине 38 поступает на информационный вход мультиплексора 12 и первый вход умножителя 11, на вход которого поступают данные делимого a i '
Figure 00000055
, представленные во вспомогательной СОК. Результат умножения в умножителе 11 c i ' = a i ' b i ' 1
Figure 00000056
по шине 39 поступает на информационный вход мультиплексора 12. Под действием адресного входа, поступающего с блока управления 14 по шине 41, мультиплексор 12 поочередно подает на вход блока расширения 13 b i ' 1
Figure 00000057
и c i '
Figure 00000058
. Блок расширения 13 аналогичен блоку расширения 6 и осуществляет расширение b i ' 1
Figure 00000057
и c i '
Figure 00000058
, представленных во вспомогательной СОК, в значения b i " 1
Figure 00000059
и ci, представленные в основной СОК. С выхода блока расширения 13 данные по шине 42 коммутируются демультиплексором 16 на регистры 15 и 17 соответственно, шины 44 и 45, для хранения значений b i " 1
Figure 00000060
и ci. Данные b i " 1
Figure 00000060
с выхода регистра 15 поступают на первые входы умножителей 18, 19, а на вторые входы которых поступают, соответственно, делимое и делитель, представленные в основной СОК, соответственно по шинам 28, 29. Результаты умножения a i b i " 1
Figure 00000061
и b i b i " 1
Figure 00000062
поступают по шинам 48 и 49 на первые входы схем вычитания и умножения 20 и 21, на вторые входы которых поступают с и 1, с умножением результатов вычитания на константу q i 1
Figure 00000063
, поступающих по шине 50, где q i 1
Figure 00000064
- мультипликативная инверсия qi, q i = ( i = 1 m p i ' ) mod p i
Figure 00000014
. Результаты вычитания ( a i b i " 1 c i ) q i 1
Figure 00000065
и ( b i b i " 1 c i ) q i 1
Figure 00000066
, соответственно схемы 20 и 21, поступают на вход ключей 22 по шине 51 и схемы сравнения 23 с единицей, схема 23. Если результат схемы сравнения 23 равен 1, то на выходе выходного ключа 22, шина 53, формируется частное, если результат не равен 1, то сигнал по шине 52 открывает схемы ключей 24 и 25, которые подключают данные a i b i " 1
Figure 00000061
и b i b i " 1
Figure 00000062
с умножителей 18 и 19 к входным регистрам делимого 3 и делителя 4 для следующей итерации.
Итак, основное деление модулярных чисел осуществляется только с помощью модульных схем, что и обеспечивает регулярную структуру устройства.
Анализ сложности устройства базируется на числе модулярных вычислений. Вычислительная сложность определяется вычислениями только по одному остатку, так как применяется параллельный алгоритм обработки. Модульное умножение выполняется по одному разу, а модульное сложение m+1 раз в преобразованиях a, b к a′, b′ и m+1 раз при преобразовании c′, b′-1 к c, b″-1. Вычисление b′-1 составляет O(d), где d - количество цифр в модуле. Сложность устройства представлена в таблице 1.
Figure 00000067
В устройстве все числа имеют остаточное представление, поэтому не возникает необходимость преобразования из остаточного представления в бинарное. Частное после вычисления также представляется в остатках. Таким образом, устройство обладает большой эффективностью при выполнении операции деления модулярных чисел.

Claims (1)

  1. Устройство для основного деления модулярных чисел в формате системы остаточных классов, содержащее входные регистры делимого и делителя, выходы которых коммутируются мультиплексором для поочередного преобразования делимого и делителя, представленных в основной системе остаточных классов (СОК), во вспомогательную СОК, выход мультиплексора соединен со входом блока расширения, расширяющего базу СОК, выход которого соединен со входом демультиплексора, выходы которого соединены с регистрами хранения остатков по расширенным основаниям, выход регистра делимого по расширенным основаниям соединен со входом умножителя, а выходы регистра делителя соединены с LUT-таблицей, преобразующей делитель по расширенным основаниям в мультипликативную инверсию, выходы которой соединены с умножителем, где реализуется вычислительная модель c i ' = a i ' b i ' 1
    Figure 00000068
    , где a i ' ( a mod p i ) mod p i '
    Figure 00000069
    , b i ' ( b mod p i ) mod p i '
    Figure 00000003
    , a - делимое, b - делитель, b i ' 1
    Figure 00000057
    - мультипликативная инверсия делителя b i '
    Figure 00000070
    , pi - основные модули СОК, p i '
    Figure 00000071
    - модули вспомогательной СОК, а выходы умножителя соединены через мультиплексор со входом блока расширения для перехода от вспомогательной СОК к основной СОК, выход которых через демультиплексор соединен с регистрами хранения значений b″-1 и c, где b i " 1 b i ' 1 mod p i
    Figure 00000007
    и c i c i ' mod p i
    Figure 00000008
    , представленных в основной СОК, выходы регистра b″-1 соединены с первыми входами умножителей, на вторые входы которых поступают соответственно делимое и делитель, где реализуется вычислительная модель a i b i " 1
    Figure 00000061
    и b i b i " 1
    Figure 00000062
    , выходы которых соединены через схемы ключей с входными регистрами делимого и делителя соответственно, а также с первыми входами схем вычитания и умножения, а на вторые входы которых соответственно поступают данные регистра с и константа 1, на третьи входы поступает q i 1
    Figure 00000072
    , где реализуются вычислительные модели ( a i b i " 1 c i ) q i 1
    Figure 00000073
    и ( b i b i " 1 1 ) q i 1
    Figure 00000074
    , где q i = ( i = 1 m p i ' ) mod p i
    Figure 00000014
    , q i 1
    Figure 00000072
    - мультипликативная инверсия qi, выходы которых подключены соответственно к выходному ключу и схеме сравнения с единицей, если результат схемы сравнения равен 1, то подается управляющий сигнал на вход выходного ключа, на выходе которого формируется результат деления (частное), в противном случае, если результат сравнения не равен 1, то формируется управляющий сигнал, который открывает схемы ключей, выходы которых подключены к входным регистрам делимого и делителя, представленных в основной СОК.
RU2013149446/08A 2013-11-06 2013-11-06 Устройство для основного деления модулярных чисел в формате системы остаточных классов RU2559772C2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2013149446/08A RU2559772C2 (ru) 2013-11-06 2013-11-06 Устройство для основного деления модулярных чисел в формате системы остаточных классов

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2013149446/08A RU2559772C2 (ru) 2013-11-06 2013-11-06 Устройство для основного деления модулярных чисел в формате системы остаточных классов

Publications (2)

Publication Number Publication Date
RU2013149446A RU2013149446A (ru) 2015-05-20
RU2559772C2 true RU2559772C2 (ru) 2015-08-10

Family

ID=53283589

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2013149446/08A RU2559772C2 (ru) 2013-11-06 2013-11-06 Устройство для основного деления модулярных чисел в формате системы остаточных классов

Country Status (1)

Country Link
RU (1) RU2559772C2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2628179C1 (ru) * 2016-11-28 2017-08-15 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Устройство деления модулярных чисел

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1633400A1 (ru) * 1989-03-22 1991-03-07 Харьковское Высшее Военное Командно-Инженерное Училище Ракетных Войск Им.Маршала Советского Союза Крылова Н.И. Арифметическое устройство по модулю
SU1756887A1 (ru) * 1990-11-02 1992-08-23 Научно-исследовательский институт прикладных физических проблем им.А.Н.Севченко Устройство дл делени чисел в модул рной системе счислени
US6470372B1 (en) * 1998-04-02 2002-10-22 Stmicroelectronics S.A. Method for the performance of an integer division
RU2318239C1 (ru) * 2006-07-05 2008-02-27 Ставропольский военный институт связи ракетных войск Нейронная сеть для деления чисел, представленных в системе остаточных классов
RU2400813C2 (ru) * 2008-12-22 2010-09-27 Государственное образовательное учреждение высшего профессионального образования "Ставропольский военный институт связи ракетных войск" Министерства обороны Российской Федерации Нейронная сеть основного деления модулярных чисел

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1633400A1 (ru) * 1989-03-22 1991-03-07 Харьковское Высшее Военное Командно-Инженерное Училище Ракетных Войск Им.Маршала Советского Союза Крылова Н.И. Арифметическое устройство по модулю
SU1756887A1 (ru) * 1990-11-02 1992-08-23 Научно-исследовательский институт прикладных физических проблем им.А.Н.Севченко Устройство дл делени чисел в модул рной системе счислени
US6470372B1 (en) * 1998-04-02 2002-10-22 Stmicroelectronics S.A. Method for the performance of an integer division
RU2318239C1 (ru) * 2006-07-05 2008-02-27 Ставропольский военный институт связи ракетных войск Нейронная сеть для деления чисел, представленных в системе остаточных классов
RU2400813C2 (ru) * 2008-12-22 2010-09-27 Государственное образовательное учреждение высшего профессионального образования "Ставропольский военный институт связи ракетных войск" Министерства обороны Российской Федерации Нейронная сеть основного деления модулярных чисел

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2628179C1 (ru) * 2016-11-28 2017-08-15 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Устройство деления модулярных чисел

Also Published As

Publication number Publication date
RU2013149446A (ru) 2015-05-20

Similar Documents

Publication Publication Date Title
Tenca et al. High-radix design of a scalable modular multiplier
Chervyakov et al. An approximate method for comparing modular numbers and its application to the division of numbers in residue number systems
Hasnat et al. A fast FPGA based architecture for computation of square root and Inverse Square Root
Azarderakhsh et al. High-performance implementation of point multiplication on Koblitz curves
Kaihara et al. Bipartite modular multiplication method
Sakiyama et al. Tripartite modular multiplication
Nykolaychuk et al. Theoretical foundations for the analytical computation of coefficients of basic numbers of Krestenson’s transformation
Néto et al. A parallel k-partition method to perform Montgomery multiplication
Giorgi et al. Parallel modular multiplication on multi-core processors
Néto et al. A Parallel and Uniform $ k $-Partition Method for Montgomery Multiplication
Jain et al. Binary division algorithm and high speed deconvolution algorithm (Based on Ancient Indian Vedic Mathematics)
Isupov et al. Fast power-of-two RNS scaling algorithm for large dynamic ranges
Fernandes et al. Application of vedic mathematics in computer architecture
RU2559772C2 (ru) Устройство для основного деления модулярных чисел в формате системы остаточных классов
KR100236250B1 (ko) 고속 수치 프로세서
US20230086090A1 (en) Methods and Apparatus for Quotient Digit Recoding in a High-Performance Arithmetic Unit
RU2318239C1 (ru) Нейронная сеть для деления чисел, представленных в системе остаточных классов
Sharma et al. KOM multiplier for ECC implementation in FPGA
Chang et al. A division algorithm for residue numbers
US7607165B2 (en) Method and apparatus for multiplication and/or modular reduction processing
Vestias et al. Parallel decimal multipliers and squarers using Karatsuba-Ofman's algorithm
RU2559771C2 (ru) Устройство для основного деления модулярных чисел
Mi et al. Behavioral Implementation of SVD on FPGA
Mishra et al. Design and Implements of Booth and Robertson’s multipliers algorithm on FPGA
Prema et al. Enhanced high speed modular multiplier using Karatsuba algorithm

Legal Events

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

Effective date: 20181107