RU2804380C1 - Конвейерный вычислитель - Google Patents

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

Info

Publication number
RU2804380C1
RU2804380C1 RU2023114151A RU2023114151A RU2804380C1 RU 2804380 C1 RU2804380 C1 RU 2804380C1 RU 2023114151 A RU2023114151 A RU 2023114151A RU 2023114151 A RU2023114151 A RU 2023114151A RU 2804380 C1 RU2804380 C1 RU 2804380C1
Authority
RU
Russia
Prior art keywords
information
bits
information inputs
outputs
block
Prior art date
Application number
RU2023114151A
Other languages
English (en)
Inventor
Вячеслав Иванович Петренко
Original Assignee
федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет"
Filing date
Publication date
Application filed by федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" filed Critical федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет"
Application granted granted Critical
Publication of RU2804380C1 publication Critical patent/RU2804380C1/ru

Links

Abstract

Изобретение относится к вычислительной технике. Технический результат заключается в сокращении объема используемого оборудования. Конвейерный вычислитель содержит (n-1) блоков формирования частичных остатков, (n-1) параллельных регистров, первые и вторые информационные входы устройства, первые информационные выходы устройства, тактовый вход устройства и вторые информационные выходы устройства, причём блок формирования частичных остатков содержит (m+1)-разрядный сумматор и m-разрядный мультиплексор. 3 ил.

Description

Область техники, к которой относится изобретение
Изобретение относится к вычислительной технике и может быть использовано в цифровых вычислительных устройствах для формирования кодовых последовательностей, а также в устройствах цифровой обработки сигналов и в криптографических приложениях.
Уровень техники
Из существующего уровня техники известно устройство для формирования остатка по произвольному модулю от числа, содержащее регистр и блок формирования частного и остатка, позволяющее выполнять вычисление остатка и неполного частного от чисел по произвольным модулям [1]. Недостатком данного технического решения является низкое быстродействие при вычислении остатков по модулю для потока чисел, так как вычисление остатка по модулю для очередного числа в потоке не может быть начато до тех пор, пока не завершено вычисление остатка по модулю для предыдущего числа.
Из существующего уровня техники известно вычислительное устройство, содержащее 2n−2 сумматоров и n−1 мультиплексоров, где n –разрядность входного числа, позволяющее выполнять вычисление остатка и неполного частного от чисел по произвольным модулям [2]. Недостатком данного технического решения является низкое быстродействие при вычислении остатков по модулю для потока чисел, так как вычисление остатка по модулю для очередного числа в потоке не может быть начато до тех пор, пока не завершено вычисление остатка по модулю для предыдущего числа.
Из существующего уровня техники известен комбинационный рекуррентный формирователь остатков, содержащий последовательно соединенные комбинационный формирователь частичных остатков, блок ключей и блок сумматоров по модулю, позволяющий выполнять приведение чисел по произвольным модулям [3]. Недостатком данного технического решения является низкое быстродействие при вычислении остатков по модулю для потока чисел, так как вычисление остатка по модулю для очередного числа в потоке не может быть начато до тех пор, пока не завершено вычисление остатка по модулю для предыдущего числа.
Из существующего уровня техники известно устройство для формирования остатка по произвольному модулю от числа, содержащее l=((k/N)−1) блоков формирования частичных остатков (где k – количество разрядов в двоичном представлении числа, от которого формируется остаток, с учетом добавленных для достижения кратности N разрядов), (l+1) блоков умножения по модулю, блока распределения коэффициентов и сумматора по модулю [4]. Недостатком данного технического решения является низкое быстродействие при вычислении остатков по модулю для потока чисел, так как формирование частичного остатка и выполнение операций умножения и сложения по модулю производится заново для каждого из чисел в потоке, кроме того, вычисление остатка по модулю для очередного числа в потоке не может быть начато до тех пор, пока не завершено вычисление остатка по модулю для предыдущего числа.
Наиболее близким к заявленному техническому решению по технической сущности и достигаемому техническому результату, выбранному в качестве прототипа, является устройство для формирования остатка по заданному модулю [5], содержащее блоки формирования частичных остатков, параллельные многоразрядные регистры, мультиплексор, компаратор, блок вычитания, в котором организована конвейеризация процесса вычисления остатков по заданному модулю для потока чисел на базе последовательного выполнения операций сложения (не по модулю) первичных остатков. Недостатками данного технического решения являются большой объем оборудования, обусловленный тем, что в каждом блоке формирования частичных остатков кроме основных параллельных регистров используются дополнительные (по количеству разрядов модуля) параллельные регистры для хранения частичных остатков, а также многовходовый комбинационный сумматор, который при разрядности более 32 фактически окажется сложно реализуемым, а также будет обладать большим временем суммирования. Кроме того, предложенная структура устройства может быть реализована для конкретных разрядностей модуля и при необходимости работы с модулями иной разрядности потребуется изменение структуры устройства, а также не позволяет в потоке формировать результат по различным модулям для различных чисел.
Техническим результатом, обеспечиваемым приведенной совокупностью признаков, является сокращение объема используемого оборудования за счет исключения дополнительных параллельных регистров и заменой многовходовых комбинационных сумматоров на стандартный двухвходовый сумматор и как следствие уменьшение потребления энергии, а также расширение функциональных возможностей за счет дополнительного формирования неполного частного и возможности потокового формирования остатков и неполных частных по различным модулям для различных чисел.
Раскрытие сущности изобретения.
Указанный технический результат при осуществлении изобретения достигается тем, что в конвейерный вычислитель содержащий (n−1) блоков формирования частичных остатков, (n−1) параллельных регистров, где – разрядность входных чисел, первые и вторые информационные входы устройства, первые информационные выходы устройства и тактовый вход устройства, соединенный с тактовым входом (n−1) параллельных регистров добавлены вторые информационные выходы устройства, причем вторые информационные входы устройства соединены с (1, …, m)-ми разрядами информационных входов первого параллельного регистра, где m – разрядность модуля, а (n−1) – разрядность неполного частного, первые информационные входы устройства соединены с (m+1, …, m+n)-ми разрядами информационных входов первого параллельного регистра, (m+1, m+2)-й разряды информационных выходов которого соединены с первыми информационными входами первого блока формирования частичных остатков, первые информационные выходы (n−1)-го блока формирования частичных остатков соединены с первыми информационными выходами устройства, второй информационный выход соединен с самым младшим разрядом вторых информационных выходов устройства, первые информационные выходы i-го блока формирования частичных остатков, i=(1, …, (n−2)), соединены с (m+1, …, 2m)-ми разрядами информационных входов (i+1)-го параллельного регистра, второй информационный выход соединен с (2m+i)-м разрядом информационных входов (i+1)-го параллельного регистра, ((m+1), …, 2m)-ые разрядов информационных выходов которого соединены со (2, ... , (m+1))-ми разрядами первых информационных входов (i+1)-го блока формирования частичных остатков, с первым разрядом первых информационных входов которого соединён (2m+i)-й разряд информационных выходов (i+1)-го параллельного регистра, (1, …, m)-й разряды информационных входов которого соединены с (1, …, m)-ми разрядами информационных выходов i-го параллельного регистра и со вторыми информационными входами i-го блока формирования частичных остатков, (1, …, m)-ые разряды информационных выходов (n−1)-го параллельного регистра соединены со вторыми информационными входами (n−1)-го блока формирования частичных остатков, ((m+3), …, (m+n))-ые разряды информационных выходов первого параллельного регистра соединены с ((2m+2), …, (2m+n−1))-ми разрядами информационных входов второго параллельного регистра, ((2m+i), …, (2m+n−1))-ые разряды, i=(3, …, (n−1)), информационных входов i-го параллельного регистра соединены с ((2m+i), …, (2m+n−1))-ми разрядами информационных выходов (i−1)-го параллельного регистра, ((2m+1), …, (2m+i−2))-ые разряды, информационных входов i-го параллельного регистра соединены с ((2m+1), …, (2m+i−2))-ми разрядами информационных выходов (i−1)-го параллельного регистра, ((2m+1), …, (2m+n−2))-ые разряды, информационных выходов (n−1)-го параллельного регистра соединены с ((n−1), …, 2)-ми разрядами вторых информационных выходов устройства, разрядность первого параллельного регистра равна (n+m), а (2, …,n−1)-го параллельного регистра равна (2m+n−1), причём блок формирования частичных остатков содержит (m+1)-разрядный сумматор и m-разрядный мультиплексор, первые информационные входы (m+1)-разрядного сумматора соединены с первыми информационными входами блока формирования частичных остатков, первые информационные входы мультиплексора соединены с – младшими разрядами первых информационных входов блока формирования частичных остатков,– младших разрядов вторых информационных входов (m+1)-разрядного сумматора соединены со вторыми информационными входами блока формирования частичных остатков, на (m+1)-й разряд вторых информационных входов (m+1)-разрядного сумматора и на вход его переноса подается сигнал логической единицы, – младших разрядов информационных выходов (m+1)-разрядного сумматора соединены со вторыми информационными входами m-разрядного мультиплексора, а выход переноса соединён со вторым информационным выходом блока формирования частичных остатков и с управляющим входом m-разрядного мультиплексора, выходы которого соединены с первыми информационными выходами блока формирования частичных остатков.
Сущность изобретения заключается в реализации следующего способа конвейерного вычисления остатка R от числа A по модулю P. Пусть
A = Q·P +R, (1)
где A – целое положительное число, от которого необходимо вычислить остаток;
P – целое положительное число, называемое модулем;
Q – целое положительное число, являющееся неполным частным от деления A на P;
R — целое положительное число, являющееся остатком от деления A на P.
Причем
A = a n −1 ·2 n −1+a n −2 ·2 n −2+ . . . +a 1 ·21+a 0, (2)
P = p m −1 ·2 m −1+p m −2 ·2 m −2+ . . . +p 1 ·21+p 0, (3)
Q = q n −2 ·2 n −2+ q n −3 ·2 n −3+ . . . +q 1 ·21+q 0, (4)
R = r m −1 ·2 m −1+ r m −2 ·2 m −2+ . . . +r 1 ·21+r 0, (5)
где a i , – коэффициенты, принимающие значение 0 или 1 в зависимости от значения числа A;
p i , – коэффициенты, принимающие значение 0 или 1 в зависимости от значения модуля P;
q i , – коэффициенты, принимающие значение 0 или 1 в зависимости от значения неполного частного Q;
r i , – коэффициенты, принимающие значение 0 или 1 в зависимости от значения остатка R;
n – количество разрядов в представлении числа A, m – количество разрядов в представлении модуля P, .
Задача состоит в том, чтобы по известным A и P отыскать остаток R. Остаток R является в терминах теории чисел вычетом числа A по модулю P, поэтому говорят, что A сравнимо с R:
A R (mod P). (6)
Значение остатка R может быть вычислено следующим образом:
R = A (mod P)=(a n −1 ·2 n −1+a n −2 ·2 n −2+ . . . +a 1 ·21+a 0)mod P. (7)
Перепишем выражение (7) в следующем виде:
R = (2(2(…(2(a n −1 ·2+a n −2)+ a n −3) …) +a 1)+a 0)mod P. (8)
Из теории чисел известно, что операция приведения по модулю инвариантна к сложению и умножению, т. е. величина остатка не зависит от того, вычислен он от суммы (произведения) или от каждого слагаемого (сомножителя), а затем соответствующие частичные остатки просуммированы (перемножены) и от результата вычислен остаток по модулю.
Поэтому выражение (8) может быть представлено в следующем виде
R = (2(2(…(2(a n −1 ·2+a n −2) mod P + a n −3) mod P +…)mod P +a 1) mod P +a 0)mod P. (9)
В таком виде значительно облегчается задача нахождения остатков R i и неполных частных Q j от чисел А j по модулю P j с использованием конвейерного режима, j=1, 2, 3, … .
Вначале на первом такте в первом слое конвейера от первого числа A 1 вычисляют первый частичный остаток t 1,1 по модулю P 1:
t 1,1=(2·t 1,0+a 1, n −2) mod P 1, при этом t 1,0=a 1, n −1, (10)
а также старший разряд неполного частного q 1, n −2:
(11)
где a 1, n −1, a 1, n −2 – старшие коэффициенты числа A 1 при представлении его в виде (2); q 1, n −2 – старший разряд неполного частного (4), образующийся от деления числа A 1 на модуль P 1; – целая часть числа x.
На втором такте во втором слое конвейера от первого числа A 1 вычисляют второй частичный остаток t 1,2 по модулю P 1:
t 1,2=(2·t 1,1+a 1, n −3) mod P 1, (12)
а также (q 1, n −3)-й разряд неполного частного:
(13)
При этом одновременно в первом слое конвейера от второго числа A 2 вычисляют первый частичный остаток t 2,1 по модулю P 2 (в общем случае P 2 ≠P 1):
t 2,1=(2·t 2,0+a 2, n −2) mod P 2, при этом t 2,0=a 2, n −1, (14)
а также старший разряд неполного частного q 2, n −2:
(15)
где a 2, n −1, a 2, n −2 – старшие коэффициенты числа A 2 при представлении его в виде (2); q 2, n −2 – старший разряд неполного частного (4), образующийся от деления числа A 2 на модуль P 2.
На третьем такте в третьем слое конвейера от первого числа A 1 вычисляют третий частичный остаток t 1,3 по модулю P 1:
t 1,3=(2·t 1,2+a 1, n −4) mod P 1, (16)
а также (q 1, n −4)-й разряд неполного частного:
(17)
При этом одновременно во втором слое конвейера от второго числа A 2 вычисляют второй частичный остаток t 2,2 по модулю P 2:
t 2,2=(2·t 2,1+a 2, n −3) mod P 2, (18)
а также (q 2, n −3)-й разряд неполного частного:
(19)
При этом также в первом слое конвейера от третьего числа A 3 вычисляют первый частичный остаток t 3,1 по модулю P 3:
t 3,1=(2·t 3,0+a 3, n −2) mod P 3, при этом t 3,0=a 3, n −1, (20)
а также старший разряд неполного частного q 3, n −2:
(21)
где a 3, n −1, a 3, n −2 – старшие коэффициенты числа A 3 при представлении его в виде (2); q 3, n −2 – старший разряд неполного частного (4), образующийся от деления числа A 3 на модуль P 3.
На (n−1)-м такте в (n−1)-м слое конвейера от первого числа A 1 вычисляют (n−1)-й частичный остаток t 1, n −1 по модулю P 1:
t 1, n −1=(2·t 1, n −2+a 1,0) mod P 1, (22)
который и является искомым остатком R 1 от первого числа A 1 по модулю P 1, поступившего на вход конвейера, а также q 1,0-й разряд неполного частного:
(23)
При этом в (1…(n−2))-м слоях конвейера будут находиться соответствующий частичный остаток, согласно вышеприведенным выражениям, от поступивших на его вход чисел, а также соответствующие разряды неполного частного. Соответственно на каждом следующем такте будем в (n−1)-м слое конвейера получать остатки R j и неполные частные Q j от чисел A j , поступающих на вход по модулям P j , j=1, 2, 3, ….. .
Операция приведения по модулям P j в каждом слое конвейеризации выполняется исходя из следующих соображений.
По определению величина t j , i −1 лежит в диапазоне 0≤t j , i −1P j −1, поэтому величина
t j,i =2 t j,i −1 +a j,n i −1, , j=1, 2, 3, ….. (24)
до приведения ее по модулю может принимать значения в диапазоне от 0 до 2P j −1, так как a j , n i −1 может принимать значение 0 или 1. Приведение по модулю величины t j , i осуществляется по следующим правилам:
t j,i (mod P j )= t j,i , если 0≤ t j,i <P j , (25)
t j,i (mod P j )= t j,i P j , если P j t i <2P j . (26)
Причем, если справедливо выражение (25), то (q j , n i −1)-й разряд неполного частного принимает значение равное 0, если же справедливо выражение (26), то (q j , n i −1)-й разряд неполного частного принимает значение равное 1.
Краткое описание чертежей.
Сущность изобретения поясняется чертежами.
На фиг. 1 представлена схема конвейерного вычислителя. Конвейерный вычислитель содержит (n−1) параллельных регистров 1.1 ÷ 1.n−1, (n−1) блоков формирования частичных остатков 2.1 ÷ 2.n−1, где – разрядность входных чисел, а (n−1) – разрядность неполного частного, первые информационные входы 3 устройства, вторые информационные входы 4 устройства, первые информационные выходы 5 устройства, вторые информационные выходы 6 устройства, тактовый вход 7 устройства. Тактовый вход 7 устройства, соединен с тактовыми входами (n−1) параллельных регистров 1.1 ÷ 1.n−1. Первые информационные входы 3 устройства соединены с (m+1, …, m+n)-ми разрядами информационных входов первого параллельного регистра 1.1, (m+1, m+2)-й разряды информационных выходов которого соединены с первыми информационными входами первого блока формирования частичных остатков 2.1, где m – разрядность модуля. Вторые информационные входы устройства соединены с (1, …, m)-ми разрядами информационных входов первого параллельного регистра. Первые информационные выходы (n−1)-го блока формирования частичных остатков 2.n−1 соединены с первыми информационными выходами 5 устройства, второй информационный выход соединен с самым младшим разрядом вторых информационных выходов 5 устройства. Первые информационные выходы i-го блока формирования частичных остатков 2.i, i=(1, …, (n−2)), соединены с (m+1, …, 2m)-ми разрядами информационных входов (i+1)-го параллельного регистра 1.i+1, второй информационный выход соединен с (2m+i)-м разрядом информационных входов (i+1)-го параллельного регистра 1.i+1, ((m+1), …, 2m)-ые разрядов информационных выходов которого соединены со (2, ... , (m+1))-ми разрядами первых информационных входов (i+1)-го блока формирования частичных остатков 2.i+1, с первым разрядом первых информационных входов которого соединён (2m+i)-й разряд информационных выходов (i+1)-го параллельного регистра 1.i+1, (1, …, m)-й разряды информационных входов которого соединены с (1, …, m)-ми разрядами информационных выходов i-го параллельного регистра 1.i и со вторыми информационными входами i-го блока формирования частичных остатков 2.i, (1, …, m)-ые разряды информационных выходов (n−1)-го параллельного регистра 1.n−1 соединены со вторыми информационными входами (n−1)-го блока формирования частичных остатков 2.n−1, ((m+3), …, (m+n))-ые разряды информационных выходов первого параллельного регистра 1.1 соединены с ((2m+2), …, (2m+n−1))-ми разрядами информационных входов второго параллельного регистра 1.2, ((2m+i), …, (2m+n−1))-ые разряды, i=(3, …, (n−1)), информационных входов i-го параллельного регистра 1.i соединены с ((2m+i), …, (2m+n−1))-ми разрядами информационных выходов (i−1)-го параллельного регистра 1.i−1, ((2m+1), …, (2m+i−2))-ые разряды, информационных входов i-го параллельного регистра 1.i соединены с ((2m+1), …, (2m+i−2))-ми разрядами информационных выходов (i−1)-го параллельного регистра 1.i−1, ((2m+1), …, (2m+n−2))-ые разряды, информационных выходов (n−1)-го параллельного регистра 1.n−1 соединены с ((n−1), …, 2)-ми разрядами вторых информационных выходов устройства, разрядность первого параллельного регистра 1.1 равна (n+m), а (1.2, …,1.n−1)-го параллельного регистра равна (2m+n−1).
На фиг. 2 представлена схема блока формирования частичных остатков 2.i, i=1, …, (n−1). Блок формирования частичных остатков 2.i содержит (m+1)-разрядный сумматор 8 и m-разрядный мультиплексор 9. Первые информационные входы (m+1)-разрядного сумматора 8 соединены с первыми информационными входами блока формирования частичных остатков. Первые информационные входы мультиплексора 9 соединены с m младшими разрядами первых информационных входов блока формирования частичных остатков 2.i, m младших разрядов вторых информационных входов (m+1)-разрядного сумматора 8 соединены со вторыми информационными входами блока формирования частичных остатков 2.i, на (m+1)-й разряд вторых информационных входов (m+1)-разрядного сумматора 8 и на вход его переноса подается сигнал логической единицы, m младших разрядов информационных выходов (m+1)-разрядного сумматора 8 соединены со вторыми информационными входами m-разрядного мультиплексора 9, а выход переноса соединён со вторым информационным выходом блока формирования частичных остатков 2.i и с управляющим входом m-разрядного мультиплексора 9, выходы которого соединены с первыми информационными выходами блока формирования частичных остатков 2.i.
На фиг. 3 представлено распределение разрядности параллельных регистров 1.1 ÷ 1.n−1. Первый параллельный регистр 1.1 имеет разрядность (n+m), где – разрядность входных чисел, а m – разрядность модуля, а параллельные регистры 1.2, …, 1.n−1 имеют разрядность равную (2m+n−1).
Осуществление изобретения.
Конвейерный вычислитель работает следующим образом (см. Фиг. 1).
В исходном состоянии параллельные регистры 1.1÷1.n−1 обнулены. На тактовый вход 7 устройства поступают тактовые импульсы. На первые информационные входы 3 устройства с каждым тактовым импульсом подаются числа А j , от которых необходимо вычислить остаток R j и неполное частное Q j по модулю P j , j=1, 2, 3, …, . На вторые информационные входы 4 устройства с каждым тактовым импульсом подаются инверсные коды модулей P j .
На первом такте первое число A 1 и инверсный код модуля P 1 записываются в параллельный регистр 1.1. Инверсный код модуля P 1 записывается в (1, …, m)-ые разряды, а число A 1 записывается в (m+1, …, m+n)-ые разряды параллельного регистра 1.1. При этом значения двух старших разряда a 1, n −1 и a 1, n −2 первого числа A 1 с выходов (m+1, m+2)-го разрядов параллельного регистра 1.1 поступают на первые информационные входы блока формирования частичных остатков 2.1, на вторые информационные входы которого с (1, …, m)-го разрядов информационных выходов первого параллельного регистра 1.1 поступают значения инверсного кода модуля P 1. Блок формирования частичных остатков 2.1 вычисляет значение первого частичного остатка t 1,1 от первого числа A 1 по модулю P 1 в соответствии с выражением (10), а также значение старшего разряда q 1, n −2 неполного частного в соответствии с (11). С первых информационных выходов блока формирования частичных остатков 2.1 m-разрядное значение первого частичного остатка t 1,1 первого числа A 1 по модулю P 1 поступает на ((m+1), ..., 2m)-ые разряды информационных входов второго параллельного регистра 1.2. Значение старшего разряда q 1, n −2 неполного частного первого числа A 1 по модулю P 1 со второго информационного выхода блока формирования частичных остатков 2.1 поступает на (2m+1)-й разряд информационных входов параллельного регистра 1.2. На (1, …, m)-ые разряды информационных входов параллельного регистра 1.2 поступают значения инверсного кода модуля P 1 с (1, …, m)-го разрядов информационных выходов первого параллельного регистра 1.1 На ((2m+2), …, (2m+n−1))-ые разряды информационных входов этого же параллельного регистра 1.2 поступают значения (1…n−2)-ых разрядов первого входного числа A 1 с ((m+3), …, (m+n))-го разрядов информационных выходов параллельного регистра 1.1.
На втором такте во второй параллельный регистр 1.2 записывается первый частичный остаток t 1,1 от первого числа A 1 по модулю P 1 с первых информационных выходов блока формирования частичных остатков 2.1, значение старшего разряда неполного частного q 1, n −2 неполного частного первого числа по модулю P 1 с его второго информационного выхода, значения (1…(n−2)) разрядов первого числа A 1 и значение инверсного кода модуля P 1 с информационных выходов параллельного регистра 1.1. В первый параллельный регистр 1.1 с первых информационных входов 3 устройства записывается второе число A 2, а со вторых информационных входов 4 устройства записывается инверсный код модуля P 2. В результате на первый разряд первых информационных входов блока формирования частичных остатков 2.2 с информационных выходов второго параллельного регистра 1.2 поступит значение (n−2)-го разряда первого числа, а на остальные разряды поступит значение первого частичного остатка t 1,1 от первого числа A 1 по модулю P 1 с информационных выходов первого блока формирования частичных остатков 2.1. В результате на первых информационных выходах блока формирования частичных остатков 2.1 будет сформирован первый частичной остаток t 2,1 от второго числа A 2 по модулю P 2 в соответствии с (14), на втором информационном выходе блока формирования частичных остатков 2.1 будет сформировано значение старшего разряда q 2, n −2 неполного частного второго числа A 2 по модулю P 2. На первых информационных выходах блока формирования частичных остатков 2.2 будет сформирован второй частичный остаток t 1,2 от первого числа A 1 по модулю P 1 в соответствии с (12), а на втором информационном выходе блока формирования частичных остатков 2.2 будет сформировано значение q 1, n −3 разряда неполного частного первого числа A 1 по модулю P 1 в соответствии с (13).
На (n−1)-ом такте на первых информационных выходах (n−1)-го блока формирования частичных остатков 2.(n−1) будет сформирован (n−1)-й частичный остаток t 1, n −1 от первого числа A 1 по модулю P 1, в соответствии с (22), являющийся остатком R 1 от числа A 1 по модулю P 1, который и поступит на информационные выходы 5 устройства. На втором информационном выходе (n−1)-го блока формирования частичных остатков 2.(n−1) будет сформирован q 1,0 разряд неполного частного первого числа A 1 по модулю P 1, который вместе с (q 1, n −2, …, q 1,1) разрядами неполного частного первого числа A 1 по модулю P 1 с ((2m+1), …, (2m+n−2))-ых разрядов информационных выходов 1.n-1 параллельного регистра поступят на вторые информационные выходы 6 устройства, образуя неполное частное Q 1 первого числа A 1 по модулю P 1, поступившего на первые информационные входы 3 устройства на первом такте.
На последующих тактах на первых информационных выходах 5 устройства будут последовательно сформированы остатки от второго, третьего и последующих чисел, поступивших на первые информационные входы 3 устройства, а на вторых информационных выходах 6 устройства будут последовательно сформированы неполные частные от второго, третьего и последующих чисел, поступивших на первые информационные входы 3 устройства по соответствующим модулям.
Блок формирования частичных остатков 2.i, i=(1, …, (n−1)) реализует выражения (25) и (26) следующим образом (см. Фиг. 2). Так как на вторые информационные входы (m+1)-разрядного сумматора 8 поступает инверсный код модуля P j , а на вход переноса сигнал логической единицы, то (m+1)-разрядный сумматор 8 реализует операцию вычитания t j , i P j . В случае, если t j , i P j , на выходе переноса (m+1)-разрядного сумматора 8 появляется сигнал логической единицы, который, поступая на управляющий вход m-разрядного мультиплексора 9, скоммутирует с его выходами вторые информационные входы, если же t j , i <P j , то на выходе переноса (m+1)-разрядного сумматора 8 будет сигнал логического нуля и на выходы m-разрядного мультиплексора 9 будут скоммутированы его первые информационные входы. В результате на выходах m-разрядного мультиплексора 9 всегда будет значение t j , i mod P, которое поступает на первые информационные выходы блока формирования частичных остатков 2.i. Сигнал с выхода переноса (m+1)-разрядного сумматора 8 также поступает на второй информационный выход блока формирования частичных остатков 2.i и является соответствующим разрядом неполного частного.
Техническим результатом изобретения является сокращение объема используемого оборудования за счет исключения дополнительных параллельных регистров и заменой многовходовых комбинационных сумматоров на стандартный двухвходовый сумматор и как следствие уменьшение потребления энергии, а также расширение функциональных возможностей за счет дополнительного формирования неполного частного и возможности потокового формирования остатков и неполных частных по различным модулям для различных чисел.
Изобретение позволяет в конвейерном режиме осуществлять формирование неполных частных и остатков по модулям от чисел, поступающих на его вход.
Источники информации.
1. Патент на изобретение RU 2012137 C1. Устройство для формирования остатка по произвольному модулю от числа. Опубликован 30.04.1994.
2. Патент на изобретение RU 2348965 C1. Вычислительное устройство. Опубликован 10.03.2009, Бюл. №7.
3. Патент на изобретение RU 2029435 C1. Комбинационный рекуррентный формирователь остатков. Опубликован 20.02.1995.
4. Патент на изобретение RU 2324972 C2. Устройство для формирования остатка по произвольному модулю от числа. Опубликован 20.05.2008. Бюл. №14.
5. Патент на изобретение RU 2421781 C1. Устройство для формирования остатка по заданному модулю. Опубликован 20.06.2011. Бюл. №17.

Claims (1)

  1. Конвейерный вычислитель, содержащий (n−1) блоков формирования частичных остатков, (n−1) параллельных регистров, где – разрядность входных чисел, первые и вторые информационные входы устройства, первые информационные выходы устройства и тактовый вход устройства, соединенный с тактовыми входами (n−1) параллельных регистров, отличающийся тем, что в него добавлены вторые информационные выходы устройства, причем вторые информационные входы устройства соединены с (1, …, m)-ми разрядами информационных входов первого параллельного регистра, где m – разрядность модуля, а (n−1) – разрядность неполного частного, первые информационные входы устройства соединены с (m+1, …, m+n)-ми разрядами информационных входов первого параллельного регистра, (m+1, m+2)-й разряды информационных выходов которого соединены с первыми информационными входами первого блока формирования частичных остатков, первые информационные выходы (n−1)-го блока формирования частичных остатков соединены с первыми информационными выходами устройства, второй информационный выход соединен с самым младшим разрядом вторых информационных выходов устройства, первые информационные выходы i-го блока формирования частичных остатков, i=(1, …, (n−2)), соединены с (m+1, …, 2m)-ми разрядами информационных входов (i+1)-го параллельного регистра, второй информационный выход соединен с (2m+i)-м разрядом информационных входов (i+1)-го параллельного регистра, ((m+1), …, 2m)-е разряды информационных выходов которого соединены со (2, ... , (m+1))-ми разрядами первых информационных входов (i+1)-го блока формирования частичных остатков, с первым разрядом первых информационных входов которого соединён (2m+i)-й разряд информационных выходов (i+1)-го параллельного регистра, (1, …, m)-й разряды информационных входов которого соединены с (1, …, m)-ми разрядами информационных выходов i-го параллельного регистра и со вторыми информационными входами i-го блока формирования частичных остатков, (1, …, m)-е разряды информационных выходов (n−1)-го параллельного регистра соединены со вторыми информационными входами (n−1)-го блока формирования частичных остатков, ((m+3), …, (m+n))-е разряды информационных выходов первого параллельного регистра соединены с ((2m+2), …, (2m+n−1))-ми разрядами информационных входов второго параллельного регистра, ((2m+i), …, (2m+n−1))-е разряды, i=(3, …, (n−1)), информационных входов i-го параллельного регистра соединены с ((2m+i), …, (2m+n−1))-ми разрядами информационных выходов (i−1)-го параллельного регистра, ((2m+1), …, (2m+i−2))-е разряды информационных входов i-го параллельного регистра соединены с ((2m+1), …, (2m+i−2))-ми разрядами информационных выходов (i−1)-го параллельного регистра, ((2m+1), …, (2m+n−2))-е разряды информационных выходов (n−1)-го параллельного регистра соединены с ((n−1), …, 2)-ми разрядами вторых информационных выходов устройства, разрядность первого параллельного регистра равна (n+m), а (2, …,n−1)-го параллельного регистра равна (2m+n−1), причём блок формирования частичных остатков содержит (m+1)-разрядный сумматор и m-разрядный мультиплексор, первые информационные входы (m+1)-разрядного сумматора соединены с первыми информационными входами блока формирования частичных остатков, первые информационные входы мультиплексора соединены с m младшими разрядами первых информационных входов блока формирования частичных остатков, m младших разрядов вторых информационных входов (m+1)-разрядного сумматора соединены со вторыми информационными входами блока формирования частичных остатков, на (m+1)-й разряд вторых информационных входов (m+1)-разрядного сумматора и на вход его переноса подается сигнал логической единицы, m младших разрядов информационных выходов (m+1)-разрядного сумматора соединены со вторыми информационными входами m-разрядного мультиплексора, а выход переноса соединён со вторым информационным выходом блока формирования частичных остатков и с управляющим входом m-разрядного мультиплексора, выходы которого соединены с первыми информационными выходами блока формирования частичных остатков.
RU2023114151A 2023-05-30 Конвейерный вычислитель RU2804380C1 (ru)

Publications (1)

Publication Number Publication Date
RU2804380C1 true RU2804380C1 (ru) 2023-09-28

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2146389C1 (ru) * 1998-07-07 2000-03-10 Научно-исследовательский институт системных исследований РАН Перепрограммируемый вычислитель для систем обработки информации
US20050223262A1 (en) * 2002-01-05 2005-10-06 Yung-Huei Chen Pipeline module circuit structure with reduced power consumption and method of operating the same
RU2421781C1 (ru) * 2009-10-19 2011-06-20 Государственное образовательное учреждение высшего профессионального образования Казанский государственный технический университет им. А.Н. Туполева Устройство для формирования остатка по заданному модулю
RU2756408C1 (ru) * 2020-07-29 2021-09-30 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Вычислительное устройство
US20220156079A1 (en) * 2020-11-18 2022-05-19 Realtek Semiconductor Corporation Pipeline computer system and instruction processing method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2146389C1 (ru) * 1998-07-07 2000-03-10 Научно-исследовательский институт системных исследований РАН Перепрограммируемый вычислитель для систем обработки информации
US20050223262A1 (en) * 2002-01-05 2005-10-06 Yung-Huei Chen Pipeline module circuit structure with reduced power consumption and method of operating the same
RU2421781C1 (ru) * 2009-10-19 2011-06-20 Государственное образовательное учреждение высшего профессионального образования Казанский государственный технический университет им. А.Н. Туполева Устройство для формирования остатка по заданному модулю
RU2756408C1 (ru) * 2020-07-29 2021-09-30 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Вычислительное устройство
US20220156079A1 (en) * 2020-11-18 2022-05-19 Realtek Semiconductor Corporation Pipeline computer system and instruction processing method

Similar Documents

Publication Publication Date Title
Chervyakov et al. An approximate method for comparing modular numbers and its application to the division of numbers in residue number systems
US7805479B2 (en) Scalable, faster method and apparatus for montgomery multiplication
US5023827A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
KR100591761B1 (ko) 몽고메리 모듈러 곱셈기 및 캐리 저장 가산을 이용한몽고메리 모듈러 곱셈 방법
Liu et al. High performance modular multiplication for SIDH
Savas et al. Multiplier architectures for GF (p) and GF (2n)
Kalaiyarasi et al. Design of an efficient high speed radix-4 Booth multiplier for both signed and unsigned numbers
Patronik et al. Design of Reverse Converters for the New RNS Moduli Set $\{2^{n}+ 1, 2^{n}-1, 2^{n}, 2^{n-1}+ 1\} $($ n $ odd)
Asadi et al. CORLD: In-stream correlation manipulation for low-discrepancy stochastic computing
Hong et al. Radix-4 modular multiplication and exponentiation algorithms for the RSA public-key cryptosystem
RU2696223C1 (ru) Арифметико-логическое устройство для формирования остатка по произвольному модулю от числа
RU2717915C1 (ru) Вычислительное устройство
RU2299461C1 (ru) Умножитель по модулю
JP2006172035A (ja) 除算・開平演算器
RU2804380C1 (ru) Конвейерный вычислитель
RU2348965C1 (ru) Вычислительное устройство
RU2791440C1 (ru) Конвейерный формирователь остатков по произвольному модулю
RU2797163C1 (ru) Конвейерный вычислитель
US20020161810A1 (en) Method and apparatus for multiplication and/or modular reduction processing
RU2661797C1 (ru) Вычислительное устройство
KR100836737B1 (ko) 중국인 나머지 정리(crt)와 캐리 저장 가산 기반의모듈러 곱셈 장치 및 방법
Ercegovac et al. Design and FPGA implementation of radix-10 algorithm for square root with limited precision primitives
RU2796555C1 (ru) Вычислительное устройство
RU2797164C1 (ru) Конвейерный умножитель по модулю