RU2318238C1 - Neuron network for transformation of residual code to binary positional code - Google Patents
Neuron network for transformation of residual code to binary positional code Download PDFInfo
- Publication number
- RU2318238C1 RU2318238C1 RU2006124113/09A RU2006124113A RU2318238C1 RU 2318238 C1 RU2318238 C1 RU 2318238C1 RU 2006124113/09 A RU2006124113/09 A RU 2006124113/09A RU 2006124113 A RU2006124113 A RU 2006124113A RU 2318238 C1 RU2318238 C1 RU 2318238C1
- Authority
- RU
- Russia
- Prior art keywords
- code
- binary
- positional
- residual
- opss
- Prior art date
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
Description
Изобретение относится к вычислительной технике и может быть использовано в модулярных нейрокомпьютерах для реализации операции вывода данных.The invention relates to computer technology and can be used in modular neurocomputers to implement the data output operation.
Известно устройство для преобразования числа из системы остаточных классов в позиционный код (а.с. 1005028, G06F 5/02), содержащее сдвиговый регистр, блок синхронизации, блок памяти констант и позиционный накапливающий сумматор. Однако такое устройство характеризуется высокой сложностью.A device is known for converting a number from a system of residual classes into a positional code (AS 1005028, G06F 5/02) comprising a shift register, a synchronization unit, a constant memory unit, and a position accumulating accumulator. However, such a device is characterized by high complexity.
Наиболее близким по технической сущности к заявленному устройству является преобразователь кодов из системы остаточных классов в двоичный позиционный код (а.с. 813408, G06F 5/02), содержащий входной регистр, дешифраторы, преобразователь кодов из системы остаточных классов в полиадический код, группу элементов ИЛИ, элементы задержки и сумматор. Недостатком этого устройства является сложность группы элементов ИЛИ при использовании больших модулей системы остаточных классов и сложность преобразователя остаточного кода в полиадический, который реализует последовательный алгоритм Гарнера.The closest in technical essence to the claimed device is a code converter from the system of residual classes to a binary positional code (AS 813408, G06F 5/02), containing an input register, decoders, a code converter from the system of residual classes to a polyadic code, a group of elements OR, delay elements and adder. The disadvantage of this device is the complexity of the group of OR elements when using large modules of the system of residual classes and the complexity of the converter of the residual code into a polyadic code that implements the Garner sequential algorithm.
Целью настоящего изобретения является сокращение оборудования преобразователя остаточного кода в двоичный позиционный код. Поставленная цель достигается тем, что в преобразователь введены нейронные сети конечного кольца и постоянные запоминающие устройства. Таким образом, нейронная сеть для преобразования остаточного кода в двоичный позиционный код будет состоять из входного слоя нейронных сетей, выполняющих роль регистров, параллельного преобразователя остаточного кода в полиадический код, постоянных запоминающих устройств и параллельного взвешенного сумматора.An object of the present invention is to reduce the equipment of a residual code to binary position code converter. This goal is achieved by the fact that neural networks of the final ring and read-only memory devices are introduced into the converter. Thus, a neural network for converting a residual code into a binary positional code will consist of an input layer of neural networks acting as registers, a parallel converter of the residual code into a polyadic code, read-only memory devices and a parallel weighted adder.
Обратное преобразование числа из модулярного представления в двоичную форму базируется на классической теореме из теории чисел, которая называется Китайской теоремой об остатках (КТО). На основании известного представления чисел в СОК (α1, α2, ..., αn) КТО делает возможным определение числа в ПСС , если наибольший общий делитель любой пары модулей равен 1.The inverse transformation of a number from a modular representation to binary is based on the classical theorem from number theory, which is called the Chinese remainder theorem (CTO). Based on the well-known representation of numbers in RNS (α 1 , α 2 , ..., α n ) CTO makes it possible to determine the number in MSS if the greatest common factor of any pair of modules is 1.
КТО имеет видWHO has the form
где , для (pi,pj)=1 для i≠jWhere , for (p i , p j ) = 1 for i ≠ j
αi - остаток числа x по модулю pi, для i=1, 2, ..., n.α i is the remainder of the number x modulo p i , for i = 1, 2, ..., n.
Используются разные формы китайской теоремы об остатках (КТО). Из (1) видно, что из КТО получаем , а не само X. Если известно, что x находится между 0 и P-1, то можно записатьVarious forms of the Chinese remainder theorem (CTO) are used. From (1) it is clear that from CTO we get , and not X itself. If it is known that x is between 0 and P-1, then we can write
В некоторых случаях желательно иметь вид КТО, где сумма появляется без оператора по модулю Р. Это можно сделать путем определения вспомогательной функции R(x), так чтобыIn some cases, it is desirable to have the form of CTO, where the sum appears without an operator modulo P. This can be done by defining an auxiliary function R (x), so that
где .Where .
R(x) - это функция x, определяемая для любого целого числа x.R (x) is the function x defined for any integer x.
Из КТО видно, что выражениеFrom WHO it is clear that the expression
отличается от x кратным значением P, эта разность равна - P·R(x).differs from x by a multiple of P, this difference is - P · R (x).
Функция R(x) называется рангом числа и широко используется при вычислениях в модулярной арифметике.The function R (x) is called the rank of a number and is widely used in calculations in modular arithmetic.
Ранг числа R(x) показывает сколько раз нужно вычесть величину диапазона P из полученного числа, чтобы вернуть его в диапазон. Таким образом, если найдены Pi, и ранг числа R(x), то для перевода числа достаточно вычислить и ввести эту сумму в диапазон [0,P] вычитанием величины, кратной P. Недостаток рассмотренного метода заключается в том, что приходится иметь дело с большими числами Pi и, кроме того, действия сложения и умножения надо выполнять в позиционной системе счисления, а полученный результат необходимо вводить в диапазон вычитаемой величины, кратной P.The rank of the number R (x) shows how many times you need to subtract the value of the range P from the resulting number in order to return it to the range. Thus, if P i are found, and the rank of the number R (x), then to translate the number it is enough to calculate and enter this sum into the range [0, P] by subtracting a multiple of P. The disadvantage of this method is that you have to deal with large numbers P i and, in addition, the addition and multiplication must be performed in a positional number system, and the result must be entered in the range of the subtracted value, a multiple of P.
Необходимо отметить, что Pi и являются константами выбранной системы и определяются заранее, а ранг числа R(x) - переменная величина и сложность ее вычисления линейно зависит от числа оснований СОК, что приводит к еще более сложной процедуре восстановления числа.It should be noted that P i and are the constants of the selected system and are determined in advance, and the rank of the number R (x) is a variable and the complexity of its calculation linearly depends on the number of bases of the RNS, which leads to an even more complicated procedure for reconstructing the number.
Кроме того, применение КТО для восстановления числа требует сложных вычислений в модулярном нейрокомпьютере, так как элементарные процессоры выполняют операции по модулю pi, где i=1, 2, ..., n, а не по модулю P=p1p2...pn, как это требуется по КТО.In addition, the use of CTO to restore the number requires complex calculations in a modular neurocomputer, since elementary processors perform operations modulo p i , where i = 1, 2, ..., n, and not modulo P = p 1 p 2 . ..p n , as required by WHO.
Из выражения (2) видно, что для его отображения необходимы сумматоры по модулю P. Эту нежелательную особенность можно обойти при помощи отображения СОК на ассоциированное представление со смешанным основанием, а затем и на двоичное представление. Коэффициенты ai могут быть представлены с помощью n цифр со смешанными основаниями. Отображение из СОК в обобщенную позиционную систему счисления (ОПСС) может быть определено рекурсивно с помощью операций по малым модулям pi.It can be seen from expression (2) that adders modulo P are needed to display it. This undesirable feature can be circumvented by mapping the RNS to the associated representation with a mixed base, and then to the binary representation. The coefficients a i can be represented using n digits with mixed bases. The mapping from RNS to the generalized positional number system (OPSS) can be determined recursively using operations on small modules p i .
Для перехода от вычислений по модулю P к вычислению по модулям pi предлагается метод восстановления чисел на основе совместного использования КТО и ОПСС.To move from computations modulo P to computational moduli p i , a method for reconstructing numbers based on the joint use of CTO and OPSS is proposed.
Пусть задана система оснований p1, p2, ...pn, с диапазоном P=p1p2...pn, и ортогональными базисами B1, B2, ..., Bn, которые определяются какLet a base system p 1 , p 2 , ... p n be given , with a range P = p 1 p 2 ... p n , and orthogonal bases B 1 , B 2 , ..., B n , which are defined as
где mi - веса ортогональных базисов.where m i are the weights of orthogonal bases.
Тогда КТО можно представить в видеThen WHO can be represented as
где αi - остатки (вычеты) числа X по mod pi;where α i are the residues (residues) of the number X with respect to mod p i ;
R(x) - ранг числа.R (x) is the rank of the number.
Представим ортогональные базисы Bi в ОПСС, тогдаWe represent the orthogonal bases B i in OPSS, then
где bij - коэффициенты ОПСС, i,j=1, 2,..., n.where b ij are the OPSS coefficients, i, j = 1, 2, ..., n.
На основании (7) запишем XОПСС, выражение (6) в видеBased on (7), we write X OPSS , expression (6) in the form
Так как Bi mod pi=0, ∀j>i, то перед первым значащим разрядом будет i-1 нулей.Since B i mod p i = 0, ∀j> i, then before the first significant digit there will be i-1 zeros.
Для удобства вычислений базисы можно представить в виде матрицыFor convenience of calculations, bases can be represented in the form of a matrix
Тогда XОПСС, запишется какThen X OPSS , will be written as
При этомWherein
где: ai - коэффициенты ОПСС числа x;where: a i - OPSS coefficients of the number x;
αi - вычеты числа x по mod pi;α i are the residues of the number x with respect to mod p i ;
bij - ортогональные базисы, представленные в ОПСС; i,j=1, 2, ..., n.b ij - orthogonal bases presented in the OPSS; i, j = 1, 2, ..., n.
При использовании традиционной вычислительной базы произведения αibij mod рi можно поместить в память, а адресами будут являться остатки αi.When using the traditional computing base, the product α i b ij mod р i can be stored in memory, and the addresses will be the remains of α i .
Если вычислительная база представлена в нейросетевом базисе, тогда в качестве весовых коэффициентов нейронной сети будут выступать bij, а в качестве входных сигналов - остатки αi.If the computing base is presented in a neural network basis, then b ij will act as the weighting coefficients of the neural network, and the remainders α i as input signals.
Последовательность вычислений для первого варианта имеет видThe sequence of calculations for the first option has the form
Для определения всех цифр ОПСС требуется две операции: одна операция для выборки из памяти и одна операция для суммирования. По сравнению с известным последовательным методом Гарнера выигрыш определяется выражением . Для реализации этого метода в нейропроцессоре необходимо иметь средства для выполнения модулярных операций, например нейронные сети конечного кольца по pi основаниям, где i=1, 2, ..., n.Two operations are required to determine all the numbers in the OPSS: one operation for retrieving from memory and one operation for summing. Compared to the well-known sequential Garner method, the gain is determined by the expression . To implement this method in a neuroprocessor, it is necessary to have the means to perform modular operations, for example, neural networks of a finite ring on p i bases, where i = 1, 2, ..., n.
Пример. Пусть основания системы p1=3, p2=5, p3=7, p4=2. Дано число x=(2,3,0,1), представленное в СОК по выбранным модулям. Найти представление этого числа в ОПСС, то есть x=[a1,a2,a3,a4]. На основании выражения (5) определим ортогональные базисы СОК: B1=70, B2=126, B3=120, B4=105. Представим базисы Bi в ОПСС, тогда bij:Example. Let the bases of the system p 1 = 3, p 2 = 5, p 3 = 7, p 4 = 2. Given the number x = (2,3,0,1), presented in the RNC for the selected modules. Find the representation of this number in OPSS, that is, x = [a 1 , a 2 , a 3 , a 4 ]. Based on expression (5), we determine the orthogonal bases of the RNS: B 1 = 70, B 2 = 126, B 3 = 120, B 4 = 105. We represent the bases B i in OPSS, then b ij :
. .
В связи с тем, что константы bij определяются выбором системы модулей СОК, то их с учетом переноса в i-разрядах можно поместить в память, тогда процесс преобразования можно представить в видеDue to the fact that the constants b ij are determined by the choice of the system of SOK modules, then, taking into account the transfer in i-bits, they can be stored in memory, then the conversion process can be represented as
Для определения всех цифр ОПСС требуется две операции: одна операция для выборки из памяти и одна операция для суммирования. По сравнению с последовательным итерационным процессом выигрыш равен n-1, где n - число модулей СОК.Two operations are required to determine all the numbers in the OPSS: one operation for retrieving from memory and one operation for summing. Compared to the sequential iterative process, the gain is n-1, where n is the number of RNS modules.
Полученные значения коэффициентов ОПСС числа x используем для образования двоичного кода.The obtained values of the OPSS coefficients of the number x are used to form a binary code.
Нейронная сеть для преобразования остаточного кода в двоичный позиционный код представлена на чертеже.A neural network for converting a residual code into a binary positional code is shown in the drawing.
Нейронная сеть содержит входной слой нейронов 2, n-нейронных сетей конечного кольца (НСКК) 3, n-постоянных запоминающих устройств (ПЗУ) 4, сумматор 5, вход нейронной сети 1, выход нейронной сети 6 и весовые коэффициенты и w=bij 7.The neural network contains an input layer of neurons 2, n-neural networks of the final ring (NSC) 3, n-read-only memory (ROM) 4, adder 5, the input of neural network 1, the output of neural network 6 and weight coefficients and w = b ij 7 .
Входной слой 2 предназначен для временного хранения входного остаточного кода, то есть он выполняет роль регистра.The input layer 2 is intended for temporary storage of the input residual code, that is, it acts as a register.
НСКК преобразует остаточный код в код ОПСС, при этом число представляется в виде, соответствующем ОПСС, следующим образом X=a1+a2p1+a3p1p2+...+anp1p2...pn-1, где ai - называется коэффициентом ОПСС, причем 0≤ai<pi. Весовой коэффициент, связанный с каждой цифрой ОПСС ai, равен p1p2...pi-1. Такая система имеет тот же диапазон представления, что и система остаточных классов p=p1p2...pn. Коэффициенты кода ОПСС являются адресами памяти, где хранятся значения произведений aip1p2...pi-1. Двоичные эквиваленты значений aip1p2...pi-1, хранящиеся в памяти, поступают на вход сумматора, где по остаткам восстанавливается двоичное число.The NCCC converts the residual code into the OPSS code, and the number is represented in the form corresponding to the OPSS, as follows X = a 1 + a 2 p 1 + a 3 p 1 p 2 + ... + a n p 1 p 2 ... p n-1 , where a i - is called the OPSS coefficient, with 0≤a i <p i . The weighting coefficient associated with each OPSS figure a i is p 1 p 2 ... p i-1 . Such a system has the same range of representation as the system of residual classes p = p 1 p 2 ... p n . The OPSS code coefficients are memory addresses where the values of the products a i p 1 p 2 ... p i-1 are stored. The binary equivalents of the values a i p 1 p 2 ... p i-1 stored in the memory go to the input of the adder, where the binary number is restored from the residuals.
Нейронная сеть для преобразования остаточного кода в двоичный позиционный код работает следующим образом.A neural network for converting the residual code into a binary positional code operates as follows.
Входное число x=(α1, α2, ..., αn), представленное в системе остаточных классов своими остатками αi по модулям pi (i=1, 2,..., n), поступает на входной слой 2. Входной слой связан с n НСКК. При выбранных модулях СОК структура нейронной сети зависит от одного внешнего параметра и адаптируется к нему посредством загрузки весовых коэффициентов w=bij 7, определенных выражением (7) НСКК p1, p2, ..., pn 3 реализуют вычислительную модель (10), на выходах которой формируются коэффициенты ОПСС ai () числа x. Коэффициенты ai являются входными адресами ПЗУi 4, где хранятся двоичные эквиваленты aip1p2...pi-1. Считанные из ПЗУi двоичные коды, соответствующие произведению aip1p2...pi-1, суммируются взвешенным сумматором 5. На выходе 6 формируется двоичный код. Время преобразования кода определяется n-тактами синхронизации. Структура преобразователя, реализованная на СБИС, требует n-НСКК по модулям pi, n-ПЗУi, каждое из которых хранит pi слов разрядностью, эквивалентной числу (pi-1)p1p2...pi-1 и одного параллельного сумматора с ускоренным переносом. Сумматор может быть реализован по типу дерева, тогда время преобразования определяется выражением [log n], где n - число модулей СОК.The input number x = (α 1 , α 2 , ..., α n ), represented in the system of residual classes by its residues α i by the modules p i (i = 1, 2, ..., n), enters the input layer 2. The input layer is associated with n NSCC. With the selected RNS modules, the structure of the neural network depends on one external parameter and adapts to it by loading the weight coefficients w = b ij 7 defined by the expression (7) NSCC p 1 , p 2 , ..., p n 3 implement the computational model (10 ), at the outputs of which the OPSS coefficients a i ( ) of the number x. The coefficients a i are the input addresses of ROM i 4, where the binary equivalents a i p 1 p 2 ... p i-1 are stored. The binary codes read from ROM i corresponding to the product a i p 1 p 2 ... p i-1 are summed by the weighted adder 5. At the output 6, a binary code is generated. Code conversion time is determined by n-clock cycles. The converter structure implemented on the VLSI circuit requires n-NSCC modules p i , n-ROM i , each of which stores p i words with a capacity equivalent to the number (p i -1) p 1 p 2 ... p i-1 and one parallel adder with accelerated transfer. The adder can be implemented by the type of tree, then the conversion time is determined by the expression [log n], where n is the number of RNS modules.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2006124113/09A RU2318238C1 (en) | 2006-07-05 | 2006-07-05 | Neuron network for transformation of residual code to binary positional code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2006124113/09A RU2318238C1 (en) | 2006-07-05 | 2006-07-05 | Neuron network for transformation of residual code to binary positional code |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2318238C1 true RU2318238C1 (en) | 2008-02-27 |
Family
ID=39279068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2006124113/09A RU2318238C1 (en) | 2006-07-05 | 2006-07-05 | Neuron network for transformation of residual code to binary positional code |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2318238C1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013176852A1 (en) * | 2012-05-19 | 2013-11-28 | Eric Olsen | Residue number arithmetic logic unit |
US10387122B1 (en) | 2018-05-04 | 2019-08-20 | Olsen Ip Reserve, Llc | Residue number matrix multiplier |
RU2701064C1 (en) * | 2018-09-20 | 2019-09-24 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Воронежский государственный технический университет" | Finite ring neural network |
US10992314B2 (en) | 2019-01-21 | 2021-04-27 | Olsen Ip Reserve, Llc | Residue number systems and methods for arithmetic error detection and correction |
-
2006
- 2006-07-05 RU RU2006124113/09A patent/RU2318238C1/en not_active IP Right Cessation
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013176852A1 (en) * | 2012-05-19 | 2013-11-28 | Eric Olsen | Residue number arithmetic logic unit |
US9081608B2 (en) | 2012-05-19 | 2015-07-14 | Digital System Research Inc. | Residue number arithmetic logic unit |
US10387122B1 (en) | 2018-05-04 | 2019-08-20 | Olsen Ip Reserve, Llc | Residue number matrix multiplier |
RU2701064C1 (en) * | 2018-09-20 | 2019-09-24 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Воронежский государственный технический университет" | Finite ring neural network |
US10992314B2 (en) | 2019-01-21 | 2021-04-27 | Olsen Ip Reserve, Llc | Residue number systems and methods for arithmetic error detection and correction |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0353223B1 (en) | Two-dimensional discrete cosine transform processor | |
US4949294A (en) | Computation circuit using residual arithmetic | |
EP0152435B1 (en) | Transformation circuit for implementing a collapsed walsh hadamard transform | |
US4281391A (en) | Number theoretic processor | |
US4787057A (en) | Finite element analysis method using multiprocessor for matrix manipulations with special handling of diagonal elements | |
EP1281118B1 (en) | Method and apparatus for performing computations using residue arithmetic | |
EP0736205B1 (en) | Method and apparatus for performing a fast hadamard transform | |
Hiasat | New efficient structure for a modular multiplier for RNS | |
EP0128298B1 (en) | Orthogonal transformer and apparatus operational thereby | |
JPH06103301A (en) | (8x8) discrete cosine transforming circuit and (8x8) discrete cosine inverse transforming circuit | |
RU2318238C1 (en) | Neuron network for transformation of residual code to binary positional code | |
WO2020160608A1 (en) | Highly parallel convolutional neural network | |
Deryabin et al. | High performance parallel computing in residue number system | |
US6003058A (en) | Apparatus and methods for performing arithimetic operations on vectors and/or matrices | |
US4588980A (en) | Residue to analog converter | |
JP2007500388A (en) | Long integer multiplier | |
NL8001559A (en) | METHOD AND APPARATUS FOR CALCULATING THE DISCRETE FOURIER TRANSFORMATION USING TWO CIRCULAR FILTERS | |
Mukkara et al. | A simple novel floating point matrix multiplier VLSI architecture for digital image compression applications | |
Bruguera et al. | 2-D DCT using on-line arithmetic | |
Lipinski et al. | Efficient 1D and 2D Daubechies wavelet transforms with application to signal processing | |
RU2256226C2 (en) | Neuron network for broadening tuple of numeric subtractions system | |
RU2744815C1 (en) | Device for transferring numbers from residue number system and base-radix extensions | |
US20240168715A1 (en) | Multiplier | |
US20230325435A1 (en) | Set of resonator networks for factorizing hypervectors | |
JP3697716B2 (en) | Matrix data multiplier |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20090706 |