Область техники, к которой относится изобретение
Изобретение относится к вычислительной технике и может быть использовано в цифровых вычислительных устройствах, устройствах цифровой обработки сигналов, в криптографических приложениях, а также в устройствах для формирования кодовых последовательностей, построение которых основывается на теории конечных полей.
Уровень техники
Известно вычислительное устройство (патент RU 2348965, МПК G06F 7/72, H03M 7/18, опубл. 10.03.2009, бюл. №7), содержащее сумматоры и мультиплексоры, позволяющее формировать остаток от числа по модулю и неполное частное. Недостатком данного устройства является большой объем оборудования.
Наиболее близким по технической сущности к заявляемому изобретению является вычислительное устройство (патент RU 2661797, МПК H03M 7/18, G06F 7/72, опубл. 19.07.2018), содержащее первый n-разрядный регистр и блок формирования частного и остатка, который содержит сумматор, мультиплексор и два регистра с соответствующими связями. Недостатком данного устройства является низкое быстродействие.
Техническим результатом изобретения является увеличение быстродействия формирования остатка от числа по модулю и неполного частного.
Раскрытие сущности изобретения
Для достижения технического результата в вычислительное устройство, содержащее n-разрядный регистр, входы кода числа, входы инверсного кода модуля, выходы кода остатка, выходы кода неполного частного, вход начала вычисления устройства, вход тактовых импульсов устройства, блок формирования частного и остатка, содержащий сумматор, регистр кода неполного частного и регистр кода остатка, вход подачи тактовых импульсов которого соединен со вторым управляющим входом блока формирования частного и остатка, информационные выходы соединены со вторыми информационными выходами блока формирования частного и остатка, информационные входы n-разрядного регистра соединены со входами кода числа устройства, вход обнуления соединён со входом начала вычисления устройства, а вход подачи тактовых импульсов соединен со входом тактовых импульсов устройства и со вторым управляющим входом блока формирования частного и остатка, четвертые информационные входы которого соединены со входами инверсного кода модуля устройства, первые информационные выходы соединены с выходами неполного частного устройства, а вторые информационные выходы соединены с выходами остатка устройства, введены входы кода модуля устройства, входы удвоенного кода модуля устройства, входы утроенного кода модуля устройства, входы инверсного удвоенного кода модуля устройства, входы инверсного утроенного кода модуля устройства, которые соединены соответственно с первыми информационными входами, со вторыми информационными входами, с третьими информационными входами, с пятыми информационными входами, с шестыми информационными входами блока формирования частного и остатка, при этом n-разрядный регистр выполнен в виде первого и второго n/2-разрядных регистров сдвига, причём вход начала вычисления устройства соединён со входами обнуления первого и второго n/2-разрядных регистров сдвига, вход тактовых импульсов устройства соединён со вторым управляющим входом блока формирования частного и остатка и со входами подачи тактовых импульсов первого и второго n/2-разрядных регистров сдвига, старшие разряды информационных выходов первого и второго n/2-разрядных регистров сдвига соединены соответственно с седьмым и восьмым информационными входами блока формирования частного и остатка, который содержит первый, второй и третий блоки сравнения, мультиплексор и первый элемент ИЛИ, причем регистр кода неполного частного выполнен в виде третьего и четвёртого n/2-разрядных регистров сдвига, при этом вторые входы первого, второго и третьего блока сравнения соединены с первыми, вторыми и третьими информационными входами блока формирования частного и остатка соответственно, первые, вторые и третьи информационные входы мультиплексора соединены с четвёртыми, пятыми и шестыми информационными входами блока формирования частного и остатка, два младших разряда первых входов первого, второго и третьего блоков сравнения и также первых информационных входов сумматора соединены с седьмым и восьмым информационными входами блока формирования частного и остатка, а старшие разряды соединены со сдвигом на два разряда с информационными выходами регистра кода остатка, информационные выходы сумматора соединены с информационными входами регистра кода остатка, выходы первого, второго и третьего блока сравнения соединены с первым, вторым и третьим управляющими входами мультиплексора соответственно и с первым, вторым и третьим входами первого элемента ИЛИ, выход которого соединён со входом переноса сумматора, вторые информационные входы которого соединены с первыми информационными выходами мультиплексора, второй информационный выход которого соединён со входом младшего разряда третьего n/2-разрядного регистра сдвига, третий информационный выход соединён со входом младшего разряда четвёртого n/2-разрядного регистра сдвига, информационные выходы которого соединены с нечётными разрядами вторых информационных выходов блока формирования частного и остатка, с чётными разрядами которых соединены информационные выходы третьего n/2-разрядного регистра сдвига, входы обнуления регистра кода остатка, третьего и четвёртого n/2-разрядных регистров сдвига, соединены с первым управляющим входом блока формирования частного и остатка, а входы тактовых импульсов третьего и четвёртого n/2-разрядных регистров сдвига соединены со вторым управляющим входом блоком формирования частного и остатка, причём мультиплексор содержит первый и второй инверторы, первый и второй элементы И, первый, второй и третий ключи, блок элементов ИЛИ, второй и третий элементы ИЛИ, при этом первый управляющий вход мультиплексора соединён с первым входом первого элемента И, второй управляющий вход соединён со входом первого инвертора и с первым входом второго элемента И, третий управляющий вход соединён со входом второго инвертора, первыми входами второго и третьего элементов ИЛИ, а также с управляющим входом третьего ключа, выход первого инвертора соединён со вторым входом первого элемента И, выход второго инвертора соединён с третьим входом первого элемента И, а также со вторым входом второго элемента И, выход первого элемента И соединён с управляющим входом первого ключа, а также со вторым входом второго элемента ИЛИ, выход второго элемента И соединён с управляющим входом второго ключа, а также со вторым входом третьего элемента ИЛИ, первые, вторые и третьи информационные входы мультиплексора соединены соответственно с информационными входами первого, второго и третьего ключей, выходы которых соединены соответственно с первыми, вторыми и третьими входами блока элементов ИЛИ, выходы которого соединены с первыми информационными выходами мультиплексора, выход второго элемента ИЛИ соединён со вторым информационным выходом мультиплексора, выход третьего элемента ИЛИ соединён с третьим информационным выходом мультиплексора.
Сущность изобретения заключается в реализации следующего способа вычисления остатка R и неполного частного Q от числа A по модулю P. Пусть
где A – целое положительное число, от которого необходимо вычислить остаток;
P – целое положительное число, называемое модулем;
Q – целое положительное число, являющееся неполным частным от деления A на P;
R – целое положительное число, являющееся остатком от деления A на P.
Причем
где ai, – коэффициенты, принимающие значение 0 или 1 в зависимости от значения числа A;
pi, – коэффициенты, принимающие значение 0 или 1 в зависимости от значения модуля P;
qi, – коэффициенты, принимающие значение 0 или 1 в зависимости от значения неполного частного Q;
ri, – коэффициенты, принимающие значение 0 или 1 в зависимости от значения остатка R;
n – количество разрядов в представлении чисел.
Задача состоит в том, чтобы по известным A и P отыскать остаток R и неполное частное Q. Остаток R является в терминах теории чисел вычетом числа A по модулю P, поэтому говорят, что A сравнимо с R:
Значение остатка R может быть вычислено следующим образом:
Перепишем выражение (2) в следующем виде, объединив по два соседних слагаемых:
Из каждой суммы в скобках в выражении (8) вынесем 2i за скобки, где , принимает только четные значения:
В выражении (9) перед каждой из n/2 образовавшихся сумм вида (ai+1·2+ai), получаем множитель 2i, где , принимает только четные значения.
Далее вынесем в (9) наименьшую ненулевую степень 2 за скобки:
Выполняя последовательно преобразование (10) (n/2)-2 раз получим:
где 22 встречается (n/2)−1 раз.
Тогда выражение (7) может быть представлено в следующем виде:
Из теории чисел известно, что операция приведения по модулю инвариантна к сложению и умножению, т. е. величина остатка не зависит от того, вычислен ли он от суммы (произведения) или от каждого слагаемого (сомножителя), поэтому соответствующие частичные остатки могут быть просуммированы (перемножены) и от результата вычислен остаток по модулю.
Исходя из вышесказанного, выражение (12) может быть вычислено следующим образом.
Вначале на первом такте вычисляют величины
На втором такте вычисляют величины
На третьем такте вычисляют величины
И на последнем n/2-м такте вычисляют величины
Значение t′n/2 является искомым остатком R от числа A по модулю P.
Операция приведения по модулю P на каждой ступени преобразования выполняется исходя из следующих соображений.
По определению величина ti−1 лежит в диапазоне 0 ≤ ti−1 ≤ P-1, поэтому в соответствии с выражениями (13)-(20) величина
до приведения ее по модулю может принимать значения в диапазоне от 0 до 4P-1. Приведение по модулю величины ti осуществляется по следующим правилам
Разряды неполного частного Q на каждом этапе вычислений принимают значения в соответствии с таблицей 1.
Таблица 1 – Значения разрядов неполного частного в зависимости от значения ti
где .
Условия попадания значения ti в один из указанных в таблице 1 интервалов определяются значениями сигналов переноса на выходах блоков сравнения в соответствии с таблицей 2.
Таблица 2 – Значения сигналов переноса на выходах блоков сравнения в зависимости от значения ti
Таким образом, если значение сигналов переноса равно «1» на выходах переноса всех трех блоков сравнения, то ti (mod P)=ti − 3P, если значение сигналов переноса равно «1» на выходах переноса двух блоков сравнения, то
ti (mod P)=ti − 2P, если значение сигнала переноса равно «1» на выходах переноса одного блока сравнения, то ti (mod P)=ti − P. Если значение сигналов переноса равно «0» на выходах переноса всех трех блоков сравнения, то тогда ti (mod P)=ti, т.е. операция вычитания не выполняется, где .
Операция умножения на два в квадрате при вычислении ti во всех случаях осуществляется сдвигом всех разрядов множимого на два в сторону старших, где .
Краткое описание чертежей
На фиг. 1 представлена схема вычислительного устройства.
Вычислительное устройство содержит первый n/2-разрядный регистр сдвига 1.1, второй n/2-разрядный регистр сдвига 1.2, блок формирования частного и остатка 2, входы кода числа устройства 3, входы кода модуля устройства 4, входы удвоенного кода модуля устройства 5, входы утроенного кода модуля устройства 6, входы инверсного кода модуля устройства 7, входы инверсного удвоенного кода модуля устройства 8, входы инверсного утроенного кода модуля устройства 9, выходы кода остатка устройства 10, выходы кода неполного частного устройства 11, вход начала вычисления устройства 12, вход тактовых импульсов устройства 13.
Чётные разряды входов кода числа устройства 3 соединены с информационными входами первого n/2-разрядного регистра сдвига 1.1, нечётные разряды соединены с информационными входами второго n/2-разрядного регистра сдвига 1.2. Входы кода модуля устройства 4, входы удвоенного кода модуля устройства 5, входы утроенного кода модуля устройства 6, входы инверсного кода модуля устройства 7, входы инверсного удвоенного кода модуля устройства 8, входы инверсного утроенного кода модуля устройства 9 соединены соответственно с первыми, вторыми, третьими, четвёртыми, пятыми и шестыми информационными входами блока формирования частного и остатка 2. Вход начала вычисления устройства 12 соединён с первым управляющим входом блока формирования частного и остатка 2 и со входами обнуления первого 1.1 и второго 1.2 n/2-разрядных регистров сдвига. Вход тактовых импульсов 13 устройства соединён со вторым управляющим входом блока формирования частного и остатка 2 и со входами подачи тактовых импульсов первого 1.1 и второго 1.2 n/2-разрядных регистров сдвига. Первые информационные выходы блока формирования частного и остатка 2 соединены с выходами кода неполного частного устройства 11, вторые информационные выходы соединены с выходами кода остатка устройства 10. Старшие разряды информационных выходов первого 1.1 и второго 1.2 n/2-разрядных регистров сдвига соединены соответственно с седьмым и восьмым информационными входами блока формирования частного и остатка 2.
На фиг. 2 представлена схема блока формирования частного и остатка 2.
Блок формирования частного и остатка 2 содержит первый 14.1, второй 14.2 и третий 14.3 блоки сравнения, мультиплексор 15, первый элемент ИЛИ 16, сумматор 17, регистр кода остатка 18, третий 19.1 и четвёртый 19.2 n/2 - разрядные регистры сдвига.
Вторые входы первого 14.1, второго 14.2 и третьего 14.3 блока сравнения соединены с первыми, вторыми и третьими информационными входами блока формирования частного и остатка 2 соответственно, первые, вторые и третьи информационные входы мультиплексора 15 соединены с четвёртыми, пятыми и шестыми информационными входами блока формирования частного и остатка 2. Два младших разряда первых входов первого 14.1, второго 14.2 и третьего 14.3 блоков сравнения и также первых информационных входов сумматора 17 соединены с седьмыми и восьмым информационными входами блока формирования частного и остатка 2, а старшие разряды соединены со сдвигом на два разряда с информационными выходами регистра кода остатка 18 и со вторыми информационными выходами блока формирования частного и остатка 2. Выходы первого 14.1, второго 14.2 и третьего 14.3 блока сравнения соединены с первым, вторым и третьим управляющими входами мультиплексора 15 соответственно и с первым, вторым и третьим входами первого элемента ИЛИ 16, выход которого соединён со входом переноса сумматора 17, информационные выходы которого соединены с информационным входами регистра кода остатка 18, а вторые информационные входы соединены с первыми информационными выходами мультиплексора 15, второй информационный выход которого соединён со входом младшего разряда третьего n/2-разрядного регистра сдвига 19.1, третий информационный выход соединён со входом младшего разряда четвёртого n/2-разрядного регистра сдвига 19.2, информационные выходы которого соединены с нечётными разрядами вторых информационных выходов блока формирования частного и остатка 2, с чётными разрядами которых соединены информационные выходы третьего n/2-разрядного регистра сдвига 19.1. Входы обнуления регистра кода остатка 18, третьего 19.1 и четвёртого 19.2 n/2-разрядного регистра сдвига, соединены с первым управляющим входом блока формирования частного и остатка 2, а входы тактовых импульсов соединены со вторым управляющим входом блоком формирования частного и остатка 2.
На фиг. 3 представлена схема мультиплексора 15.
Мультиплексор содержит первый 20.1 и второй 20.2 инвертор, первый 21 и второй 22 элементы И, первый 23.1, второй 23.2 и третий 23.3 ключи, блок элементов ИЛИ 24, второй 25.1 и третий 25.2 элементы ИЛИ.
Первый управляющий вход мультиплексора 15 соединён с первым входом первого элемента И 21. Второй управляющий вход соединён со входом первого инвертора 20.1 и с первым входом второго элемента И 22. Третий управляющий вход соединён с входом второго инвертора 20.2, первыми входами второго 25.1 и третьего 25.2 элементов ИЛИ, а также с управляющим входом третьего ключа 23.3. Выход первого инвертора 20.1 соединён со вторым входом первого элемента И 21. Выход второго инвертора 20.2 соединён с третьим входом первого элемента И 21, а также со вторым входом второго элемента И 22. Выход первого элемента И 21 соединён с управляющим входом первого ключа 23.1, а также со вторым входом второго элемента ИЛИ 25.1. Выход второго элемента И 22 соединён с управляющим входом второго ключа 23.2, а также со вторым входом третьего элемента ИЛИ 25.2. Первые, вторые и третьи информационные входы мультиплексора 15 соединены соответственно с информационными входами первого 23.1, второго 23.2 и третьего 23.3 ключей, выходы которых соединены соответственно с первыми, вторыми и третьими входами блока элементов ИЛИ 24, выходы которого соединены с первыми информационными выходами мультиплексора 15. Выход второго элемента ИЛИ 25.1 соединён со вторым информационным выходом мультиплексора 15, выход третьего элемента ИЛИ 25.2 соединён с третьим информационным выходом мультиплексора 15.
Осуществление изобретения
Вычислительное устройство работает следующим образом.
В исходном состоянии первый 1.1 и второй 1.2 n/2-разрядные регистры сдвига 1.2, регистр кода остатка 18, третий 19.1 и четвёртый 19.2 n/2-разрядные регистры сдвига вычислительного устройства обнулены.
На входы кода числа 3 устройства подается двоичный код числа A, от которого необходимо сформировать остаток R и неполное частное Q по произвольному модулю P. На входы кода модуля 4 устройства подается код модуля , поступая далее на первые информационные входы блока 2 формирования частного и остатка. На входы удвоенного кода модуля 5 устройства подается удвоенный код модуля , поступая далее на вторые информационные входы блока 2 формирования частного и остатка. На входы утроенного кода модуля 6 устройства подается утроенный код модуля , поступая далее на третьи информационные входы блока 2 формирования частного и остатка. На входы инверсного кода модуля 7 устройства подается инверсный код модуля , поступая далее на четвёртые информационные входы блока 2 формирования частного и остатка. На входы инверсного удвоенного кода модуля 8 устройства подается инверсный удвоенный код модуля , поступая далее на пятые информационные входы блока 2 формирования частного и остатка. На входы инверсного утроенного кода модуля 9 устройства подается инверсный утроенный код модуля , поступая далее на шестые информационные входы блока 2 формирования частного и остатка.
Затем на вход начала вычисления устройства 12 подается сигнал, под воздействием которого в первый n/2-разрядный регистр сдвига 1.1 записываются четные разряды двоичного кода числа A, а во второй n/2-разрядный регистр сдвига 1.2 записываются нечетные разряды двоичного кода числа A. Под воздействием этого же сигнала регистр кода остатка 18, третий 19.1 и четвертый 19.2 n/2-разрядные регистры сдвига блока 2 формирования частного и остатка устанавливаются в нулевое состояние.
Вначале на первом такте работы устройства на седьмой информационный вход блока 2 формирования частного и остатка с выхода старшего разряда первого n/2-разрядного регистра сдвига 1.1 поступает значение (an−1)-го разряда числа A, а на восьмой информационный вход с выхода старшего разряда второго n/2-разрядного регистра сдвига 1.2 поступает значение (an−2)-го разряда числа A. В блоке 2 формирования частного и остатка формируется значение t′1 = (an−1·2+an−2) mod P и разряды qn−1 и qn−2 неполного частного, которые записываются в младшие разряды третьего 19.1 и четвертого 19.2 n/2-разрядных регистров сдвига соответственно.
На втором такте работы устройства на седьмой информационный вход блока 2 формирования частного и остатка с выхода старшего разряда первого n/2-разрядного регистра сдвига 1.1 поступает значение (an−3)-го разряда числа A, а на восьмой информационный вход с выхода старшего разряда второго n/2-разрядного регистра сдвига 1.2 поступает значение (an−4)-го разряда числа A. В блоке 2 формирования частного и остатка формируется значение t′2 = (22t′1+(an−3·2+an−4)) mod P и разряды qn−3 и qn−4 неполного частного. При этом разряды qn-1 и qn-2 неполного частного сдвигаются на один разряд в сторону старших в третьем 19.1 и четвертом 19.2 n/2-разрядных регистрах сдвига соответственно, а в младшие разряды этих регистров записываются соответственно разряды qn−3 и qn−4 неполного частного.
На последнем n/2-м такте работы устройства на седьмой информационный вход блока 2 формирования частного и остатка с выхода старшего разряда первого n/2-разрядного регистра сдвига 1.1 поступает значение a1-го разряда числа A, а на восьмой информационный вход с выхода старшего разряда второго n/2-разрядного регистра сдвига 1.2 поступает значение a0-го разряда числа A. В блоке 2 формирования частного и остатка формируется значение t′n/2 = (22t′n/2−1+(a1·2+a0)) mod P, которое и является искомым остатком R от числа A по модулю P, а также формируются разряды q1 и q0 неполного частного. При этом значение tn/2 будет записано в регистр 18 кода остатка и поступит на выходы 10 кода остатка устройства, четные разряды неполного частного будут записаны в третий 19.1 n/2-разрядный регистр сдвига, а нечетные разряды неполного частного будут записаны в четвертый 19.2 n/2-разрядный регистр сдвига и поступят на выходы 11 кода неполного частного устройства.
Блок 2 формирования частного и остатка работает следующим образом (см. Фиг. 2).
На первые информационные входы мультиплексора 15 в течение всего цикла вычисления остатка R и неполного частного Q от числа A по модулю P с первых, вторых и третьих информационных входов блока 2 формирования частного и остатка подается соответственно инверсный код модуля , удвоенный инверсный код модуля и утроенный инверсный код модуля . На вторые входы блоков сравнения 14.1 – 14.3 в течение всего цикла вычислений с четвёртых, пятых и шестых информационных входов блока 2 формирования частного и остатка подается соответственно код модуля , удвоенный код модуля , утроенный код модуля .
На первом такте работы устройства c седьмого и восьмого информационных входов блока 2 формирования частного и остатка значения (an−1)-го и (an−2)-го разряда числа A, поступают на два младших разряда первых информационных входов первого, второго и третьего блоков сравнения 14.1-14.3 и сумматора 17. С первых информационных выходов мультиплексора 15 будет передаваться значение инверсного кода модуля , или в зависимости от соотношения значения (an−1·2+an−2) и значений , , , а на втором и третьем информационных выходах будут сформированы разряды qn−1 и qn−2 неполного частного, которые под воздействием тактового импульса со второго управляющего входа блока 2 формирования частного и остатка будут записаны в младшие разряды третьего 19.1 и четвертого 19.2 n/2-разрядных регистров сдвига. В сумматоре 17 будет вычисляться значение t′1 = (an−1·2+an−2))mod P, которое под воздействием тактового импульса со второго управляющего входа блока 2 формирования частного и остатка будет записано в регистр кода остатка 18.
На втором такте работы устройства на первых информационных входах сумматора 17 будет сформировано значение 22t′1+(an−3·2+an−4), причем значение t′1 поступит с выхода регистра кода остатка 18 со сдвигом на два разряда в сторону старших, а значения an−3 и an−4 поступят на младшие разряды первых информационных входов первого, второго и третьего блоков сравнения 14.1-14.3 и сумматора 17 с седьмого и восьмого информационных входов блока 2 формирования частного и остатка. Сумматор 17 сформирует на своих информационных выходах величину t′2 = (22t′1+(2·an−3+an−4))mod P, которая под воздействием тактового импульса со второго управляющего входа блока 2 формирования частного и остатка будет записана в регистр кода остатка 18, а на втором и третьем информационных выходах мультиплексора 15 будут сформированы разряды qn−3 и qn−4 неполного частного, которые под воздействием этого же тактового импульса будут записаны в младшие разряды третьего 19.1 и четвертого 19.2 n/2-разрядных регистров сдвига. При этом разряды qn−1 и qn−2 неполного частного в третьем 19.1 и четвертом 19.2 n/2-разрядных регистров сдвига соответственно будут сдвинуты на один в сторону старших.
На последнем n/2-м такте работы устройства на первых информационных входах сумматора 17 будет сформировано значение
22t′n/2−1+(a1·2+a0), причем значение t′n/2−1 поступит с выхода регистра кода остатка 18 со сдвигом на два разряда в сторону старших, а значения a1·и a0 поступят на младшие разряды первых информационных входов первого, второго и третьего блоков сравнения 14.1-14.3 и сумматора 17 с седьмого и восьмого информационных входов блока 2 формирования частного и остатка. Сумматор 17 сформирует на своих информационных выходах величину t′n/2 = (22t′n/2−1+(a1·2+a0))mod P, которая под воздействием тактового импульса со второго управляющего входа блока 2 формирования частного и остатка будет записана в регистр кода остатка 18, а на втором и третьем информационных выходах мультиплексора будут сформированы разряды q1 и q0 неполного частного, которые под воздействием этого же тактового импульса будут записаны в младшие разряды третьего 19.1 и четвертого 19.2 n/2-разрядных регистров сдвига с одновременным сдвигом ранее записанных разрядов на один в сторону старших.
В течение всего цикла работы устройства на выходах блоков сравнения 14.1 – 14.3 будут появляться сигналы, в зависимости от величины ti, которая будет сравниваться с , , , где .
В результате после n/2 – го такта работы на вторых информационных выходах блока 2 формирования частного и остатка будет сформирован код остатка R от числа A по модулю P, а на первых информационных выходах неполное частное Q.
Мультиплексор 15 работает следующим образом (см. Фиг. 3).
На первые, вторые, третьи информационные входы мультиплексора 15 в течение всего цикла будут поступать инверсные коды модуля , , соответственно.
В зависимости от значений сигналов на управляющих входах мультиплексора 15 на выходы будут коммутироваться инверсный код модуля , или .
Управляющие сигналы мультиплексора 15 открывают один из ключей 23.1-23.3.
Если управляющий сигнал появляется на всех трех управляющих входах мультиплексора 15, то окажется открытым третий ключ 23.3. Управляющий сигнал с третьего управляющего входа откроет третий ключ 23.3 и через второй инвертор 20.2 в виде логического нуля поступит на третий вход первого элемента И 21 и на второй вход второго элемента И 22, запрещая прохождение управляющих сигналов с их первых входов на их выходы. В результате первый 23.1 и второй 23.2 ключи окажутся закрытыми, и на выход мультиплексора 15 поступит значение с его третьих информационных входов.
Если управляющий сигнал появляется на первом и втором управляющих входах мультиплексора 15, то аналогичным образом окажется открытым только второй 23.2, а первый 23.1, третий 23.3 ключи окажутся закрытыми. В результате на выход мультиплексора 15 поступит значение с его вторых информационных входов.
Если управляющий сигнал появляется только на первом управляющем входе мультиплексора 15, то аналогичным образом окажется открытым только первый ключ 23.1, а второй 23.2 и третий 23.3 ключи окажутся закрытыми. В результате на выход мультиплексора 15 поступит значение с его первых информационных входов.
Если же на управляющих входах мультиплексора 15 будут только нулевые сигналы, то на выход мультиплексора 15 поступит нулевое значение.
Значение инверсного кода модуля , или с выходов ключей 23.1-23.3 поступают через блок элементов ИЛИ 24 на первые информационные выходы мультиплексора 15.
Разряды неполного частного Q формируются на втором и третьем информационных выходах мультиплексора 15 с помощью первого 25.1 и второго 25.2 элементов ИЛИ в соответствии с логикой таблиц 1 и 2.
Технико-экономическая эффективность изобретения заключается в увеличении быстродействия формирования остатка от числа по модулю и неполного частного. Так устройство прототип осуществляет вычисление остатка от n-разрядного числа по произвольному n-разрядному модулю за n тактов работы. Изобретение аналогичное вычисление осуществляет за n/2 тактов работы за счет параллельной обработки четных и нечетных разрядов входного числа. При этом увеличение быстродействия произойдет в 2 раза.
название | год | авторы | номер документа |
---|---|---|---|
ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО | 2022 |
|
RU2796555C1 |
Конвейерный вычислитель | 2023 |
|
RU2797163C1 |
Вычислительное устройство | 2017 |
|
RU2661797C1 |
КОНВЕЙЕРНЫЙ ФОРМИРОВАТЕЛЬ ОСТАТКОВ ПО ПРОИЗВОЛЬНОМУ МОДУЛЮ | 2022 |
|
RU2791440C1 |
КОНВЕЙЕРНЫЙ ВЫЧИСЛИТЕЛЬ | 2023 |
|
RU2804380C1 |
АРИФМЕТИКО-ЛОГИЧЕСКОЕ УСТРОЙСТВО ДЛЯ ФОРМИРОВАНИЯ ОСТАТКА ПО ПРОИЗВОЛЬНОМУ МОДУЛЮ ОТ ЧИСЛА | 2018 |
|
RU2696223C1 |
ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО | 2020 |
|
RU2739338C1 |
ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО | 2020 |
|
RU2756408C1 |
Устройство для выполнения операций умножения и деления | 1980 |
|
SU955038A1 |
ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО | 2019 |
|
RU2717915C1 |
Изобретение относится к области цифровой обработки сигналов. Технический результат заключается в увеличении быстродействия при формировании остатка от числа по модулю и неполного частного. Технический результат достигается за счет того, что устройство содержит два n/2-разрядных регистра сдвига, блок формирования частного и остатка, при этом блок формирования частного и остатка содержит три блока сравнения, мультиплексор, элемент ИЛИ, сумматор, регистр кода остатка, два n/2-разрядных регистра сдвига, мультиплексор содержит два инвертора, два элемента И, три ключа, блок элементов ИЛИ, два элемента ИЛИ, n – количество разрядов в представлении чисел. 3 ил., 2 табл.
Вычислительное устройство, содержащее n-разрядный регистр, входы кода числа, входы инверсного кода модуля, выходы кода остатка, выходы кода неполного частного, вход начала вычисления устройства, вход тактовых импульсов устройства, блок формирования частного и остатка, содержащий сумматор, регистр кода неполного частного и регистр кода остатка, вход подачи тактовых импульсов которого соединен со вторым управляющим входом блока формирования частного и остатка, информационные выходы соединены со вторыми информационными выходами блока формирования частного и остатка, информационные входы n-разрядного регистра соединены со входами кода числа устройства, вход обнуления соединён со входом начала вычисления устройства, а вход подачи тактовых импульсов соединен со входом тактовых импульсов устройства и со вторым управляющим входом блока формирования частного и остатка, четвертые информационные входы которого соединены со входами инверсного кода модуля устройства, первые информационные выходы соединены с выходами неполного частного устройства, а вторые информационные выходы соединены с выходами остатка устройства, отличающееся тем, что введены входы кода модуля устройства, входы удвоенного кода модуля устройства, входы утроенного кода модуля устройства, входы инверсного удвоенного кода модуля устройства, входы инверсного утроенного кода модуля устройства, которые соединены соответственно с первыми информационными входами, со вторыми информационными входами, с третьими информационными входами, с пятыми информационными входами, с шестыми информационными входами блока формирования частного и остатка, при этом n-разрядный регистр выполнен в виде первого и второго n/2-разрядных регистров сдвига, причём вход начала вычисления устройства соединён со входами обнуления первого и второго n/2-разрядных регистров сдвига, вход тактовых импульсов устройства соединён со вторым управляющим входом блока формирования частного и остатка и со входами подачи тактовых импульсов первого и второго n/2-разрядных регистров сдвига, старшие разряды информационных выходов первого и второго n/2-разрядных регистров сдвига соединены соответственно с седьмым и восьмым информационными входами блока формирования частного и остатка, который содержит первый, второй и третий блоки сравнения, мультиплексор и первый элемент ИЛИ, причем регистр кода неполного частного выполнен в виде третьего и четвёртого n/2-разрядных регистров сдвига, при этом вторые входы первого, второго и третьего блока сравнения соединены с первыми, вторыми и третьими информационными входами блока формирования частного и остатка соответственно, первые, вторые и третьи информационные входы мультиплексора соединены с четвёртыми, пятыми и шестыми информационными входами блока формирования частного и остатка, два младших разряда первых входов первого, второго и третьего блоков сравнения и также первых информационных входов сумматора соединены с седьмым и восьмым информационными входами блока формирования частного и остатка, а старшие разряды соединены со сдвигом на два разряда с информационными выходами регистра кода остатка, информационные выходы сумматора соединены с информационными входами регистра кода остатка, выходы первого, второго и третьего блока сравнения соединены с первым, вторым и третьим управляющими входами мультиплексора соответственно и с первым, вторым и третьим входами первого элемента ИЛИ, выход которого соединён со входом переноса сумматора, вторые информационные входы которого соединены с первыми информационными выходами мультиплексора, второй информационный выход которого соединён со входом младшего разряда третьего n/2-разрядного регистра сдвига, третий информационный выход соединён со входом младшего разряда четвёртого n/2-разрядного регистра сдвига, информационные выходы которого соединены с нечётными разрядами вторых информационных выходов блока формирования частного и остатка, с чётными разрядами которых соединены информационные выходы третьего n/2-разрядного регистра сдвига, входы обнуления регистра кода остатка, третьего и четвёртого n/2-разрядных регистров сдвига, соединены с первым управляющим входом блока формирования частного и остатка, а входы тактовых импульсов третьего и четвёртого n/2-разрядных регистров сдвига соединены со вторым управляющим входом блоком формирования частного и остатка, причём мультиплексор содержит первый и второй инверторы, первый и второй элементы И, первый, второй и третий ключи, блок элементов ИЛИ, второй и третий элементы ИЛИ, при этом первый управляющий вход мультиплексора соединён с первым входом первого элемента И, второй управляющий вход соединён со входом первого инвертора и с первым входом второго элемента И, третий управляющий вход соединён со входом второго инвертора, первыми входами второго и третьего элементов ИЛИ, а также с управляющим входом третьего ключа, выход первого инвертора соединён со вторым входом первого элемента И, выход второго инвертора соединён с третьим входом первого элемента И, а также со вторым входом второго элемента И, выход первого элемента И соединён с управляющим входом первого ключа, а также со вторым входом второго элемента ИЛИ, выход второго элемента И соединён с управляющим входом второго ключа, а также со вторым входом третьего элемента ИЛИ, первые, вторые и третьи информационные входы мультиплексора соединены соответственно с информационными входами первого, второго и третьего ключей, выходы которых соединены соответственно с первыми, вторыми и третьими входами блока элементов ИЛИ, выходы которого соединены с первыми информационными выходами мультиплексора, выход второго элемента ИЛИ соединён со вторым информационным выходом мультиплексора, выход третьего элемента ИЛИ соединён с третьим информационным выходом мультиплексора.
ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО | 2020 |
|
RU2739338C1 |
Вычислительное устройство | 2017 |
|
RU2661797C1 |
УСТРОЙСТВО ДЛЯ ОСНОВНОГО ДЕЛЕНИЯ МОДУЛЯРНЫХ ЧИСЕЛ | 2013 |
|
RU2559771C2 |
US 20070100926 A1, 03.05.2007 | |||
US 20080114820 A1, 15.05.2008. |
Авторы
Даты
2023-06-26—Публикация
2023-03-01—Подача