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

Классы МПК:H03M7/18 преобразование в коды в остатках или из них
Автор(ы):,
Патентообладатель(и):Петренко Вячеслав Иванович,
Чипига Александр Федорович
Приоритеты:
подача заявки:
1992-03-16
публикация патента:

Изобретение относится к вычислительной технике и может быть использовано в устройствах для формирования элементов конечных полей, в устройствах для формирования кодовых последовательностей, построение которых основывается на теории конечных полей, а также в арифметических устройствах, функционирующих в СОК и в арифметических сопроцессорах. Цель изобретения - расширение функциональных возможностей за счет вычисления цифр неполного частного - достигается введением блока формирования частичных остатков и блока умножения, а также их оригинальным техническим решением. 7 з.п. ф-лы, 8 ил.
Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5, Рисунок 6, Рисунок 7, Рисунок 8

Формула изобретения

1. ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО, содержащий блок дешифраций, отличающееся тем, что в него введены блок формирования частичных остатков и блок умножения, причем вход модуля P в дополнительном коде устройства соединен с входом умножения, вход кода числа A устройства соединен с входом блока формирования частичных остатков, K групп выходов блока умножения Kвычислительное устройство, патент № 2025897 вычислительное устройство, патент № 2025897logmAmax/Pвычислительное устройство, патент № 2025897, (где m - ядро вычислений, Amax - максимальное контролируемое число; Pmin - минимальное используемое значение модуля) соединены с соответствующими группами входов блока формирования остатков, выходы которого соединены с входами блока дешифраций, выход которого является выходом неполного частного устройства, выход остатка которого соединен с выходом блока формирования частичных остатков.

2. Устройство по п.1, отличающееся тем, что блок формирования частичных остатков содержит K формирователей остатка (где K - разрядность неполного частного, образующегося при делении числа A на модуль P), причем первый вход i-го формирователя остатков (i = вычислительное устройство, патент № 2025897) соединен с первым выходом (i + 1)-го формирователя остатков, второй вход j-го формирователя остатков (j = вычислительное устройство, патент № 2025897) является j-й группой входов блока, вход которого соединен с первым входом K-го формирователя остатков, первый выход l-го формирователя остатка (l = 0) соединен с выходом блока, вторые выходы всех формирователей остатка являются группой выходов блока.

3. Устройство по п.1, отличающееся тем, что вариант блока умножения для случая m > 2 содержит матрицу из (m - 1) вычислительное устройство, патент № 2025897 K умножителей, причем входы (i, 1)-х умножителей матрицы (i = вычислительное устройство, патент № 2025897) объединены и являются входом блока, выход (i, j)-го умножителя матрицы (j = вычислительное устройство, патент № 2025897)) соединен с входом (i, j +1)-го умножителя матрицы, выходы i-х умножителей в каждом из K столбцов матрицы являются p-й группой выходов блока умножения (p = вычислительное устройство, патент № 2025897), при этом (i, 1)-й умножитель матрицы имеет коэффициент умножения i, каждый из (i, j + 1)-х умножителей матрицы имеет коэффициент умножения m.

4. Устройство по п.1, отличающееся тем, что блок дешифраций для случая m > 2 содержит K мультиплексоров и сумматор, выход которого является выходом блока, а входы соединены с выходами K мультиплексоров, управляющие входы которого являются входами блока, а на каждом i-м информационном входе (i = вычислительное устройство, патент № 2025897) j-го мультиплексора (j = вычислительное устройство, патент № 2025897) защиты коды чисел mi, 2mi, 3mi .., (m - 1)mi соответственно.

5. Устройство по п.1, отличающееся тем, что блок дешифраций для случая m = 2 содержит K входов, соединенных с K одноименными выходами блока.

6. Устройство по п.1, отличающееся тем, что блок умножения для случая m = 2 содержит (l + 1)-разрядный вход (l-максимальный показатель степени представления величины модуля p в дополнительном коде в двоичной позиционной системе счисления) и K групп выходов, каждая из которых содержит (l + j) выходов (j = вычислительное устройство, патент № 2025897), , причем i-й вход блока (i = вычислительное устройство, патент № 2025897) соединен с (i + j)-м выходом j-й группы выходов блока, а первые i выходов каждой j-й группы выходов блока соединены с входом логического нуля.

7. Устройство по п.1, отличающееся тем, что вариант блока умножения для случая m > 2 содержит (m - 1) вычислительное устройство, патент № 2025897 K умножителей, объединенных в K групп по (m - 1) в каждой, причем входы всех умножителей объединены и являются входом блока, выход i-го умножителя (i = вычислительное устройство, патент № 2025897) j-й группы (j = вычислительное устройство, патент № 2025897) является i-м выходом j-й группы блока, при этом i-й умножитель j-й группы является умножителем на i вычислительное устройство, патент № 2025897 mj.

8. Устройство по п.1, отличающееся тем, что формирователь остатков содержит (m - 1) сумматоров и мультиплексор, выход которого соединен с выходом формирователя остатков, первый вход которого соединен с первым информационным входом мультиплексора и объединенными первыми входами всех сумматоров, вторые входы которых соединены с вторым входом формирователя остатков, j-й выход (j = вычислительное устройство, патент № 2025897) группы выходов которого соединен с выходом переноса j-го сумматора и с j-м управляющим входом мультиплексора, (j + 1)-й информационный вход которого соединен с выходом суммы j-го сумматора.

Описание изобретения к патенту

Изобретение относится к вычислительной технике и может быть использовано в устройствах для формирования элементов конечных полей, в устройствах для формирования кодовых последовательностей, построение которых основывается на теории конечных полей, а также в арифметических устройствах, функционирующих в СОК и в арифметических сопроцессорах.

Известно устройство для формирования остатка по произвольному модулю от числа (см. авт.св. СССР N 1520667, кл. H 03 M 7/18, 1988), выбранные в качестве прототипа и содержащее два счетчика, блок определения кратности чисел, группу программируемых логических матриц, элемент И-ИЛИ, дешифратор, регистр, элемент запрета, элемент И, элемент задержки и элемент ИЛИ, соединенные между собой функционально.

Недостатком известного устройства являются его низкие функциональные возможности, так как оно не позволяет определить значение цифр неполного частного.

Цель изобретения - расширение функциональных возможностей за счет вычисления цифр неполного частного.

Сущность изобретения заключается в следующем. Пусть

A = QP + вычислительное устройство, патент № 2025897 , (1) где А - число, от которого необходимо вычислить остаток по модулю Р;

Q - неполное частное, образующееся при делении числа А на модуль Р;

вычислительное устройство, патент № 2025897 - остаток, который необходимо вычислить от числа А по модулю Р, лежащий в интервале от 0 до Р-1.

Неполное частное Q может быть представлено в позиционной системе счисления в виде

Q = qk-1 mk-1 + ... + q1m + qo, (2) где m - основание системы счисления;

qi - коэффициенты системы счисления,

i=вычислительное устройство, патент № 2025897, qi=вычислительное устройство, патент № 2025897;

k - разрядность числа Q.

Согласно выражению (1) остаток вычислительное устройство, патент № 2025897 может быть вычислен как

вычислительное устройство, патент № 2025897 = A - QP. (3)

Подставляя выражение (2) в уравнение, имеют

вычислительное устройство, патент № 2025897 = A - qk-1 mk-1 P - ... - q1mP - qoP (4)

Обозначают Ao = A - qk-1 mk-1 P, а Ai=Ai-1 - qk-1-i mk-1-i,где i = вычислительное устройство, патент № 2025897, тогда выражение (4) может быть записано в виде

вычислительное устройство, патент № 2025897 = Ao - qk-1 mk-1P - ... - q1mP - qoP = ... = Ak-2 - q1mP - qo = Ak-1 qoP = Ak . (5)

Из выражения (5) видно, что задача вычисления остатка вычислительное устройство, патент № 2025897 по модулю Р от числа А сводится к отысканию числа Ak. Вначале вычисляется Ao = A - qk-1 mk-1 P. Учитывая, что вычислительное устройство, патент № 2025897- положительное число, Ао не может быть меньше нуля. Это условие обеспечивается соответствующим выбором коэффициента qk = вычислительное устройство, патент № 2025897. Далее последовательно вычисляются числа Ai = Ai-1 - qk-1 mk-1 P, i = вычислительное устройство, патент № 2025897. Условие Ai вычислительное устройство, патент № 2025897 0 выполняется аналогично соответствующим подбором коэффициента qk-1. Последнее число Ak и является остатком числа А по модулю Р.

Итак, задача вычисления остатка вычислительное устройство, патент № 2025897 от числа А по модулю Р сводится к последовательному вычитанию из числа А величин qimiP, i = вычислительное устройство, патент № 2025897, qi = вычислительное устройство, патент № 2025897 вычислительное устройство, патент № 2025897. Выбором величины m можно регулировать быстродействие вычисления остатка. Очевидно, что с увеличением m количество последовательных вычитаний в выражении (4) уменьшается. Кроме того, если m является степенью двойки, то вычисление произведения miР является тривиальным и заключается в сдвиге на i разрядов в сторону старших величины числа Р. Умножение на qi в большинстве практических случаев также тривиально. Количество вычитаний типа Ai-1 - qk-i mk-iP, qk-i=вычислительное устройство, патент № 2025897 с увеличением m увеличивается. Однако эти вычисления могут быть выполнены параллельно, для чего все же требуется m-1 вычитателей, т.е. увеличение быстродействия нахождения остатка приводит к росту аппаратурных затрат. Проверка условий А < 0 также может быть сведена к тривиальной задаче путем использования выходов переноса вычитателей для управления выбором необходимого коэффициента qk-i. Примечательно также, что эти же выходы могут служить в качестве выходной шины, на которой фиксируется в момент окончания формирования остатка значение неполного частного Q в позиционно-импульсном коде, что не представляет трудностей для перевода этого кода в двоичный. Если m = 2, то неполное частное на выходе этих шин сформировано непосредственно в двоичном коде.

На фиг.1 представлена функциональная схема вычислительного устройства; на фиг. 2 - функциональная схема блока формирования частичных остатков; на фиг. 3 - вариант функциональной схемы блока умножения для случая m > 2; на фиг. 4 - функциональная схема блока дешифраций для случая m > 2; на фиг.5 - функциональная схема блока умножения для случая m = 2; на фиг.7 - вариант функциональной схемы блока умножения для случая m > 2; на фиг.8 - функциональная схема формирователя частичных остатков.

Вычислительное устройство содержит (фиг. 1) блок 1 умножения, блок 2 формирования частичных остатков и блок 3 дешифраций. Модуль Р, по которому необходимо формировать остатки, и число А, от которого необходимо сформировать остаток, подаются на входы 4 и 5 устройства соответственно. Остаток вычислительное устройство, патент № 2025897 и неполное частное Q снимаются с выходов 6 и 7 устройства.

Блок 2 формирования частичных остатков (фиг.2) содержит К формирователей 8 частичных остатков, на информационные входы 9 которых подаются коды с блока 1 умножения. Выходы 10 являются информационными выходами блока. Код числа подается на вход 5, а код остатка снимается выхода 6 блока.

Первый вариант выполнения блока 1 умножения для случая m > 2 (фиг.3) содержит матрицу из (m-1) вычислительное устройство, патент № 2025897K умножителей 11. Выходы 12 блока являются информационными и соединяются с соответствующими входами 9 блока 2 формирования частичных остатков.

Блок 3 дешифраций для случая m > 2 содержит (фиг.4) К мультиплексоров 13 и сумматор 14, причем каждый i-й мультиплексор 13 (i = вычислительное устройство, патент № 2025897) содержит (m-1) входов 15, на которых зашиты коды чисел mi, 2mi, 3mi,...,m (m-1)i (i = вычислительное устройство, патент № 2025897). Выход 7 блока 3 является выходом неполного частного Q устройства.

При m = 2 блок 3 дешифраций (фиг.5) содержит К входов 10, соединенных с К одноименными входами 7 блока.

Для случая m = 2 блок 1 умножения имеет (фиг.6) l+1 входов 4 (l - максимальный показатель степени представления величины модуля Р в дополнительном коде в двоичной позиционной системы счисления) и К групп выходов 12, каждая из которых содержит l+j выходов (j = вычислительное устройство, патент № 2025897), причем i-й вход (i = вычислительное устройство, патент № 2025897) соединен с (i+j)-м выходом j-й группы выходов блока, а первые i выходов каждой j-й группы выходов блока соединены с входом логического "0".

Второй вариант блока 1 умножения (фиг.7) содержит (m-1)K умножителей 16, объединенных в К групп по m-1 в каждой, при этом i-й умножитель j-й группы является умножителем на i x mj.

Формирователь 8 частичных остатков (фиг.8) содержит m-1 сумматоров 17 и мультиплексор 18. Вход 19 К-го формирователя остатков является входом 5 (фиг. 2) подачи кода числа А, а выход 20 первого формирователя является выходом 6 остатка вычислительное устройство, патент № 2025897 .

Вычислительное устройство работает следующим образом.

Рассмотрим работу вычислительного устройства, непосредственно подставляя конкретные числа на его входы.

Пусть ядро вычислений m = 2, величина К = 4. Ввиду того, что структура вычислительного устройства зависит от того, какими выбраны (при разработке принципиальной схемы устройства в зависимости от необходимых параметров) значения m и К, очевидно, что блок 2 формирования частичных остатков содержит пять формирователей частичных остатков, а блок 3 дешифраций и блок 1 умножения выполнены по схемам, представленным на фиг.5 и 6 соответственно. Формирователь 8 частичных остатков состоит из одного сумматора 17 и мультиплексора 18 согласно фиг.8. Пусть значение модуля Р = 6, а значение числа А = 100. Соответственно в двоичном коде Р = 00000110, а А = 01100100. При этом на вход 4 устройства подается дополнительный двоичный код числа Р = 11111010, а на вход 5 - двоичный код числа А = 01100100. Тогда на нулевой группе выходов блока 1 умножения (фиг.6) будет двоичный код 11111010, на первой группе выходов - дополнительный двоичный код числа 6 х 21 = 12 = 111110100, на второй - 6 х 22 = 24 = 1111101000, на третьей - 6 х 23 = 48 = 11111010000 и на четвертой - 6 х 24 = 96 = =111110100000. В результате на первый вход сумматора 17 с входа 19 четвертого формирователя 8 частичных остатков блока 2 поступает двоичный код числа А = 01100100, а на его второй вход - дополнительный двоичный код числа Р = 9610 = 111110100000. На информационном выходе сумматора 17 образуется двоичный код 100, а на его выходе переноса появляется единица (т.е. коэффициент q4 неполного частного Q равен единице), которая коммутирует мультиплексор 18 четвертого формирователя 8 частичных остатков таким образом, что на его выходе оказывается число, поступающее на его вход с выхода сумматора 17. Двоичный код 100 (число 410) поступает на вход третьего формирователя 8 частичных остатков блока 2. В результате на первый вход сумматора 17 с входа 19 третьего формирователя 8 поступает код 100, а на второй вход этого сумматора - код 11111010000. На выходе переноса сумматора 17 третьего формирователя 8 будет ноль, а на информационном выходе - код 11111010100. При этом коэффициент неполного частного Q, определяемый выходом переноса сумматора 17, q3 = 0 и мультиплексор 18 коммутирует со своим выходом вход, который соединен с входом 19 третьего формирователя 8 частичных остатков, т.е. на его выходе образуется код 100. Аналогично рассуждая, видим, что на входах сумматора 17 второго формирователя 8 частичных остатков будут коды 100 и 1111101000, на выходе мультиплексора 18 второго формирователя 8 - код 100, коэффициент q2 = 0. Далее соответственно - 1000 и 111110100, на выходе мультиплексора 17 первого формирователя 8 - 100, коэффициент q1 = 0 и на входах сумматора 17 нулевого формирователя 8 - 100 и 11111010, коэффициент qо = 0, а на выходе мультиплексора 18 нулевого формирователя 8 блока 2, который является выходом остатка устройства, - код 100. Итак, подан на вход 5 устройства двоичный код числа 10010, а на вход 4 дополнительный код модуля Р = 610, получен на выходе 6 устройства двоичный код 100 = 410, являющийся остатком от деления числа 100 на число 6, а на выходе 7 неполное частное Q = =10002 = 1610. Подавая на входы 4 и 5 устройства коды других модулей и других чисел, можно убедиться в правильном функционировании устройства.

Пусть теперь m = 3, К = 3. Тогда блок 2 формирования частичных остатков (фиг. 2) содержит три формирователя 8 частичных остатков, блок 1 умножения (фиг.3) содержит (m-1) = 2 строки умножителей по (К+1) = 4 в каждой. Причем впервой строке коэффициенты умножения умножителей 11 блока 1 равны 1, 3, 3, а во второй строке - 2, 3, 3. Блок 3 дешифраций (фиг.4) содержит (К+1) = =4 двухвходовых (m-1 = 2) мультиплексора и сумматора 14. НА первый информационный вход мультиплексора 13 подается двоичный код единицы, на второй вход - двоичный код двойки, на первый информационный вход первого мультиплексора 13 - двоичный код 3, на второй - 6, на первый информационный вход второго мультиплексора - двоичный код 9, а на второй - 18. Формирователь 8 частичных остатков содержит два сумматора 17 и мультиплексор 18. Пусть на вход 4 модуля устройства подан модуль Р = 5 в дополнительном двоичном коде 111111011, а на вход 5 подан двоичный код 1010011 числа 8310. Тогда на выходах умножителей 11 первой строки блока 1 умножения появляются числа 5, 15, 45, представленные в своих дополнительных двоичных кодах 111111011, 111110001, 111010011 соответственно, а на выходах умножителей 11 второй строки блока 1 - числа 10, 30, 90, представленные в дополнительных кодах 111110110, 111100010, 11110100110 соответственно. Причем на второй вход первого сумматора 17 нулевого формирователя 8 воздействует дополнительный код числа 5,а на второй вход второго сумматора - числа 10, на второй вход первого сумматора 17 первого формирователя 8 - дополнительный код числа 15, а второго сумматора 17 - числа 30, соответственно, для второго формирователя 8 эти числа равны 45 и 90. На выходе первого сумматора 17 второго формирователя 8 частичных остатков образуется код 1111111001, а на его выходе переноса появляется ноль. На выходе второго сумматора 17 второго формирователя 8 образуется код 000100110, а на его выходе переноса появляется единица, которая коммутирует выход мультиплексора 18 с информационным входом, соединенным с выходом одноименного (второго) сумматора 17. Таким образом, на вход первого формирователя 8 частичных остатков поступает код 000100110, а с выхода второго формирователя 8 частичных остатков на вход блока дешифраций поступает код 01. Аналогично рассуждая, видим, что на вход нулевого формирователя 8 остатков поступает с выхода первого формирователя 8 остатков код 1000, а с второго информационного выхода формирователя 8 остатков на вход блока дешифрации поступает комбинация 11. На выходе нулевого формирователя 8 остатков, являющиеся выходом блока 2 формирования частичных остатков, появляется код 112 = 310, который и является остатком от числа 83 по модулю 5, а на вход блока 3 дешифраций поступает с второго выхода нулевого формирователя 8 код 01.

Рассмотрим работу блока 3 дешифраций (фиг.4). Мультиплексоры 13 осуществляют выбор необходимых коэффициентов qjmi, где qj = 0,2 в зависимости от управляющего кода, поступающего с вторых выходов блока 2, следующим образом. Если управляющий код равен 00, то на выходе мультиплексора 13 ноль, если управляющий код равен 0,1, то на выходе нулевого мультиплексора 13 проходит код, зашитый на его первом входе, т.е. moвычислительное устройство, патент № 2025897 1 = 1, а на выход первого мультиплексора 13 - код числа m oвычислительное устройство, патент № 20258971 = 3. Если управляющий код равен 11 или 10, то на выходе первого мультиплексора 13 код числа moвычислительное устройство, патент № 2025897 2 = 6, т.е. старший разряд на управляющем входе мультиплексора 13 является приоритетным. Соответственно второй мультиплексор 13 в зависимости от управляющего кода 00, 01 или 10 и 11 пропускает на свой выход чисел 0, m2вычислительное устройство, патент № 2025897 1 = 9 или m2 вычислительное устройство, патент № 20258972 = 18. Так как на управляющий вход нулевого мультиплексора 13 поступает код 01, первого мультиплексора 13 - код 11 и второго мультиплексора 13 - код 01, то на их выходах появляются код числа 16, являющегося неполным частным при делении 83 на 5. Мультиплексор 18 формирователей 8 частичных остатков работает аналогично мультиплексору 13 блока 3 дешифраций, т.е. с приоритетом старших разрядов на управляющем входе.

Итак, в результате работы устройства, когда на его вход 5 подан код числа 83, а на вход 4 - дополнительный код модуля Р = 5, на выходе 6 устройства образуется код остатка вычислительное устройство, патент № 2025897= 3, а на выходе 7 - код неполного частного Q = 16, т.е. устройство вычисляет остаток и частное от числа 83.

Непосредственной подстановкой чисел и модулей можно убедиться в правильности работы устройства для любых m и К. При увеличении m быстродействие устройства увеличивается, однако увеличиваются и аппаратурные затраты за счет увеличения количества сумматоров 17 в формирователе 8 и количества коммутируемых входов в мультиплексорах 13 блока 3 и мультиплексорах 18 формирователя 8.

Блок 1 умножения, представленный на фиг. 7, является более быстродействующим, чем тот, который представлен на фиг.3. Однако все умножители в нем выполнены на разные коэффициенты, что может оказаться неудобным при некоторых реализациях.

Таким образом, предложенное устройство обладает более широкими функциональными возможностями, так как позволяет формировать как остаток от числа, так и неполное частное.

Класс H03M7/18 преобразование в коды в остатках или из них

устройство для преобразования из полиномиальной системы классов вычетов в позиционный код -  патент 2513915 (20.04.2014)
устройство для формирования остатка по произвольному модулю от числа -  патент 2445730 (20.03.2012)
устройство для формирования остатка по заданному модулю -  патент 2421781 (20.06.2011)
устройство для преобразования двоичного кода в код системы остаточных классов (сок) -  патент 2413279 (27.02.2011)
устройство для преобразования из полиномиальной системы классов вычетов в позиционный код -  патент 2409840 (20.01.2011)
нейронная сеть для обнаружения ошибок в симметричной системе остаточных классов -  патент 2374678 (27.11.2009)
устройство для формирования остатка по произвольному модулю -  патент 2368942 (27.09.2009)
вычислительное устройство -  патент 2356086 (20.05.2009)
вычислительное устройство -  патент 2348965 (10.03.2009)
устройство для формирования остатка по произвольному модулю от числа -  патент 2324972 (20.05.2008)
Наверх