KR20020082699A - A modulo arithmetic unit and Processing Method to implement Reed-Solomon algorithm on Programmable Processors - Google Patents

A modulo arithmetic unit and Processing Method to implement Reed-Solomon algorithm on Programmable Processors Download PDF

Info

Publication number
KR20020082699A
KR20020082699A KR1020010022427A KR20010022427A KR20020082699A KR 20020082699 A KR20020082699 A KR 20020082699A KR 1020010022427 A KR1020010022427 A KR 1020010022427A KR 20010022427 A KR20010022427 A KR 20010022427A KR 20020082699 A KR20020082699 A KR 20020082699A
Authority
KR
South Korea
Prior art keywords
xor
reed
mul
solomon
modulo
Prior art date
Application number
KR1020010022427A
Other languages
Korean (ko)
Inventor
선우명훈
이재성
Original Assignee
선우명훈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 선우명훈 filed Critical 선우명훈
Priority to KR1020010022427A priority Critical patent/KR20020082699A/en
Publication of KR20020082699A publication Critical patent/KR20020082699A/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1525Determination and particular use of error location polynomials
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

PURPOSE: A modulo arithmetic unit and Processing Method to implement Reed-Solomon algorithm on Programmable Processors are provided to reduce a size of a hardware and power consumption by forming a Reed-Solomon encoder/decoder as the programmable processor. CONSTITUTION: A pre-processing portion receives two input data of 8 bits and performs an operation process for the received data. An operation processing portion receives intermediate data of 15 bits from the pre-processing portion and performs an operation process for converting the intermediate data of 15 bits to data of 8 bits by using a module. A primitive polynomial decoder analyzes necessary primitive polynomial information in the operation process of the operation processing portion and controls the operation processing portion by using the module. The pre-processing portion performs a calculating process by using a predetermined mathematical expression.

Description

리드-솔로몬 부호화 및 복호화를 위한 프로그래머블 프로세서의 유한체 연산기 회로 및 연산방법{A modulo arithmetic unit and Processing Method to implement Reed-Solomon algorithm on Programmable Processors}A modulo arithmetic unit and processing method to implement Reed-Solomon algorithm on programmable processors for Reed-Solomon coding and decoding

본 발명은 디지털 통신 분야에서 채널 에러 검출과 정정을 위해 가장 많이 사용하는 리드-솔로몬 부호화 및 복호화를 프로그래머블 프로세서에서 효율적으로 처리하기 위한 유한체 연산기 회로 및 연산방법에 관한 것으로, 특히 전력소모 및 하드웨어 크기를 줄이고 수정의 용이성을 위해 프로그래머블 디지털 프로세서 칩을 이용하여 리드-솔로몬 디코더를 구현하기 위한 유한체 연산기 회로 및 연산방법에 관한 것이다.The present invention relates to a finite field calculator circuit and a calculation method for efficiently processing a Reed-Solomon encoding and decoding in a programmable processor, which is most commonly used for channel error detection and correction in the field of digital communications. The present invention relates to a finite field operator circuit and a method for implementing a Reed-Solomon decoder using a programmable digital processor chip for ease of modification and ease of modification.

일반적으로 리드-솔로몬 부호기 및 복호기는 GF()인 유한체 구조를 사용한다. 일례로써 GF(,m=8 )로 정의되는 경우 원시 다항식은 수학식1과 같은 형태로 정의될 수 있으며, 리드-솔로몬 부호화 및 복호화 알고리즘은 이 원시 다항식을기반으로 모든 산술 연산을 수행한다.Generally, Reed-Solomon encoders and decoders use GF ( A finite field structure is used. For example, GF ( , m = 8), a primitive polynomial can be defined as Equation 1, and the Reed-Solomon encoding and decoding algorithm performs all arithmetic operations based on this primitive polynomial.

그러나, 리드-솔로몬 알고리즘이 사용되는 분야의 표준안마다 차수m 및 원시 다항식이 다르므로 사용되는 표준의 사양에 따라 전용 프로세서를 ASIC 칩화하여 주로 사용하여 왔다.However, since the order m and the primitive polynomial are different for each standard in the field in which the Reed-Solomon algorithm is used, a dedicated processor has been mainly used as an ASIC chip according to the specification of the standard used.

일반적으로 유한체 GF()상에서 정의되는 RS(N,K) 부호의 생성 다항식은 수학식2로 표현한다.Generally finite field GF ( The polynomial of generation of the RS ( N , K ) code defined in the above equation is expressed by Equation 2.

메시지 다항식(message polynomial)은 수학식3과 같다.The message polynomial is shown in equation (3).

리드-솔로몬 부호기는 수학식4에 의해 부호어를 만든다.The Reed-Solomon coder makes a codeword by equation (4).

여기서 Q(x)는 몫 다항식(quotient polynomial)이며, R(x)는 잉여 다항식(remainder polynomial)을 나타내고, R(x)의 차수는 g(x)의 차수보다 작다. 따라서, m(x)에 해당하는 부호어 다항식은 수학식5와 같이 표현된다.Where Q (x) is a quotient polynomial, R (x) represents a redundant polynomial, and the order of R (x) is less than the order of g (x). Therefore, the codeword polynomial corresponding to m (x) is expressed as in Equation (5).

즉, 부호어 c(x)는으로 구성된다. 따라서 리드-솔로몬 부호기는 생성 다항식 g(x)에 의한 궤환 연결을 가지는 LFSR로 구성할 수 있다. 각 궤환 연결에 대해서 궤환 심볼은 g(x)의 계수에 의해 곱해진다.That is, the codeword c (x) It consists of. Thus, the Reed-Solomon encoder can be configured as an LFSR with feedback linkage by the generator polynomial g (x). For each feedback link, the feedback symbol is multiplied by the coefficient of g (x).

상기 리드-솔로몬 부호의 복호 과정은 다음과 같다. 우선 오류 패턴의 함수인 신드롬(syndrome)을 계산하고 오류 위치 다항식(error locator polynomial)을 결정하여 오류 위치를 찾는다. 다음으로 오류값(error value)을 결정하여 오류를 정정한다. 이 과정에서 얻어지는 키 방정식을 푸는 것은 복호 문제에서 가장 중요하며 직접 계산 (Direct Method), 버렉캠프-메시(Berlekamp-Messey) 알고리즘, 유클리드 알고리즘, 연속 분할(Continued Fraction) 알고리즘 등과 같은 4가지의 방법들이 사용되고 있다.The decoding process of the Reed-Solomon code is as follows. First, we find the error location by calculating the syndrome, a function of the error pattern, and determining the error locator polynomial. Next, the error value is determined to correct the error. Solving the key equations obtained in this process is the most important in the decoding problem, and there are four methods: Direct Method, Berlekamp-Messey Algorithm, Euclid Algorithm, and Continuous Fraction Algorithm. It is used.

상기 직접 계산 방법은 작은t(잉여 심볼)에 대해서 보통 사용되고, 나머지 방법들은 복잡도가 거의 비슷하기 때문에, 이해하기 쉬운 유클리드 알고리즘이 많이 사용된다. 이러한 유클리드 알고리즘은 두개의 정수나 두개의 다항식 사이의 최대공약수(greatest common divisor, gcd)를 구하는 유클리드 분할 알고리즘을 복호화에 응용한 알고리즘이다.The direct calculation method is usually used for small t (redundant symbols), and since the remaining methods are almost similar in complexity, many Euclid algorithms are easy to understand. The Euclidean algorithm is an algorithm that applies the Euclidean partitioning algorithm for decoding the greatest common divisor (gcd) between two integers or two polynomials.

또한, 리드-솔로몬 복호기는 수신된 코드워드로부터 신드롬을 계산하고, 신드롬으로부터 오류 위치와 오류 값을 찾아내어 수신된 코드워드에 더하게 되면 오류가 정정된 코드워드를 얻게된다. 신드롬은 오류와 직접적인 관련이 있으며, 신드롬을 계산하는 신드롬 계산블록은 수신된 코드워드를 입력으로 받아 모듈로 덧셈과 곱셈을 수행하여 원하는 신드롬을 출력한다.In addition, the Reed-Solomon decoder calculates a syndrome from the received codeword, finds an error location and an error value from the syndrome, and adds the received codeword to the corrected codeword. Syndrome is directly related to error, and the syndrome calculation block that calculates the syndrome receives the received codeword as input and modulates the addition and multiplication to output the desired syndrome.

반복적인 방법(iterative method)으로 오류 위치 다항식의 계수를 계산하면 오류 위치 및 오류 값 블록에서는 오류 위치 다항식으로부터 오류 위치와 값을 찾아내어 수신된 코드워드의 오류를 정정하게 된다. 코드길이와 오류 심볼을 정정할 수 있는 개수가 증가하면 반복적인 방법을 사용하여 오류 위치 다항식의 계수를 계산하는 블록이 복잡해지고 속도도 떨어지게 된다.When calculating the coefficient of the error position polynomial by an iterative method, the error position and error value block finds the error position and value from the error position polynomial and corrects the error of the received codeword. As the length of code and the number of error symbols can be corrected increase, the block that calculates the coefficients of the error position polynomials using an iterative method becomes complicated and slows down.

상술한 바와 같은 리드-솔로몬 부호화 및 복호화 과정에서 필요로 하는 다양한 알고리즘 블록들은 단순히 곱셈과 덧셈을 반복하는 구조를 가지고 있음에도 불구하고 원시 다항식에 따라 전용 유한체 연산기라는 특수 구조를 필요로 하며, 범용의 디지털 신호 처리 프로세서나 마이크로 프로세서에서 구현하기가 어려워 전용 칩화하여 전용 리드-솔로몬 칩으로 사용하였다. 또한, 리드-솔로몬 부호기/복호기가 사용되는 표준 사양(원시 다항식)이 다양해 각 표준안마다 적합한 연산기를 갖도록 재설계하여 사용해야 했다.Although various algorithm blocks required in the Reed-Solomon encoding and decoding process as described above have a structure of simply repeating multiplication and addition, they require a special structure called a dedicated finite field operator according to a primitive polynomial. Because it is difficult to implement in a digital signal processing processor or a microprocessor, a dedicated chip was used as a dedicated Reed-Solomon chip. In addition, the standard specifications (raw polynomials) in which Reed-Solomon encoders / decoders are used vary, so they have to be redesigned and used to have suitable operators for each standard.

종래 장치로는 리드-솔로몬 전용 칩과 저전송률(음성서비스 등)에서 사용할 수 있는 디지털 신호 처리 프로세서 기반의 리드-솔로몬 부호기/복호기가 있다.Conventional devices include Reed-Solomon dedicated chips and Reed-Solomon encoders / decoders based on digital signal processing processors that can be used at low data rates (such as voice services).

먼저 전용 리드-솔로몬 프로세서의 리드-솔로몬 부호기로는 16 개의 심볼을 잉여 심볼(2t)로 첨가하는 구조를 지닌 RS(190, 174)의 부호기를 예로 들어 설명한다. 이를 위한 생성 다항식은 수학식6과 같다.First, the Reed-Solomon encoder of the dedicated Reed-Solomon processor will be described by taking the encoders of the RSs 190 and 174 having a structure in which 16 symbols are added as a surplus symbol 2 t . The generated polynomial for this is shown in Equation 6.

도1은 상기 생성다항식에 따라 구현한 LFSR 구조를 갖는 리드-솔로몬 부호기 블록도를 나타낸다. 우선 각각의 레지스터는 0으로 리셋된 상태에서 시작하여 메시지 다항식m(x)가 들어오고 LFSR구조를 통해 생성 다항식g(x)와 결합하여 연산을 수행하고 메시지 다항식m(x)의 입력이 끝나면 레지스터에 남아있는 값들은 패리티 심볼로 메시지 다항식 m(x)의 뒤에 연결되어 차례로 출력된다.1 is a block diagram of a Reed-Solomon encoder having an LFSR structure implemented according to the above polynomial. First, each register starts with the reset to 0, the message polynomial m (x) comes in, and it is combined with the generated polynomial g (x) through the LFSR structure to perform the operation. The remaining values in s are parity symbols and are output in sequence, after the message polynomial m (x).

다음에 리드-솔로몬 복호기에서 리드-솔로몬 부호의 복호 순서는 오류 패턴의 함수인 신드롬을 계산하고 오류 위치 다항식을 결정하여 오류 위치를 찾는다. 다음으로 오류값을 결정하여 오류를 정정한다. 이 과정에서 얻어지는 키 방정식을 푸는 것은 복호 문제에서 가장 중요하며 버렉캠프-메시, 유클리드, 개선된 유클리드 등의 알고리즘들이 사용되고 있다.Next, the decoding order of the Reed-Solomon code in the Reed-Solomon decoder calculates the syndrome, which is a function of the error pattern, and determines the error location polynomial to find the error location. Next, correct the error by determining the error value. Solving the key equations obtained in this process is most important in the decoding problem, and algorithms such as Berkamp-Mesh, Euclid, and improved Euclid are used.

도2는 전용 RS(190, 174) 복호기의 일반적인 블록도로서, 오류 위치 다항식의 계수인 신드롬 값들을 계산하는 제 3도의 신드롬 계산블록과, 유클리드 알고리즘 등을 이용하여 오류 위치 다항식과 오류 크기 다항식을 얻는 제 4도의 유클리드 알고리즘 블록과, 첸 써치 알고리즘을 이용하여 오류 위치를 구하는 제 5 도의 오류위치 계산블럭과, 포니 알고리즘을 이용하여 에러 크기를 구하는 제 6도 오류크기 계산블럭과, 데이터 처리를 하는 동안 현재 수신 데이터를 저장하는 지연버퍼와, 그리고 오류 지점을 찾아 지연 버퍼에 저장되었던 데이터 오류부분을 수정하는 덧셈기로 구성된다.Figure 2 is a general block diagram of a dedicated RS (190, 174) decoder, the error position polynomial and error magnitude polynomial using the syndrome calculation block of Figure 3 to calculate the syndrome values that are coefficients of the error position polynomial, and Euclid algorithm, etc. The Euclidean algorithm block of FIG. 4 obtained, the error position calculation block of FIG. 5 obtaining the error position using the Chen search algorithm, the error size calculation block of FIG. 6 obtaining the error size using the pony algorithm, and the data processing A delay buffer that stores the current received data, and an adder that finds the error point and corrects the data error portion stored in the delay buffer.

상기 신드롬을 계산하는 블록은 도3에 도시된 바와 같이 부호기에서 사용된 생성 다항식g(x)를 이용한 근으로 신드롬을 계산하게 된다. 신드롬은 수신된 코드 워드의 오류 패턴(pattern)을 나타내 주며, 이를 이용하여 오류정정을 위한 키해독을 하게 된다.As shown in FIG. 3, the block for calculating the syndrome calculates the syndrome using the generated polynomial g (x) used in the encoder. The syndrome indicates an error pattern of the received code word, and uses this to decode the key for error correction.

리드-솔로몬 코드의 오류 수정 능력에 따라 같은 블록의 개수가 정해지게 되는 데, 정정 심볼의 개수에 2배 만큼의 블록이 필요하게 된다. 즉, 생성다항식의 근의 수만큼 개수가 필요하다. 리드-솔로몬 복호화기의 오류 정정 능력(t) = 8 이고 RS(190, 174) 인 경우, 신드롬 블록은 2t= 16개의 같은 모양의 셀이 도3과 같이 형성하고 있다.The same number of blocks is determined according to the error correction capability of the Reed-Solomon code, which requires twice as many blocks as the number of correction symbols. That is, the number of roots of the generated polynomial is required. In the case of the error correction capability t = 8 of the Reed-Solomon decoder and the RSs 190 and 174, 2 t = 16 cells of the same shape are formed as shown in FIG.

신드롬 회로에 의해 계산된 신드롬 값들은 바로 오류 위치 다항식의 계수이며, 이 다항식으로 키 해독을 한 후 오류 위치 및 오류의 크기를 구하게 된다. 오류 위치 다항식의 계산은 리드-솔로몬 디코딩 과정 중 가장 복잡하고, 처리 시간이 많이 소모되는 부분으로서 리드-솔로몬 디코더 칩의 크기 및 동작속도에 가장 많은영향을 준다. 이를 위한 오류 위치 다항식을 계산하기 위한 알고리즘에는 버렉캠프-메시, 유클리드, 개선된 유클리드 등의 알고리즘이 있다.Syndrome values calculated by the syndrome circuit are the coefficients of the error location polynomial, and after the key decryption using this polynomial, the error location and the magnitude of the error are obtained. The calculation of the error location polynomial is the most complex and time-consuming part of the Reed-Solomon decoding process and has the greatest impact on the size and operation speed of the Reed-Solomon decoder chip. Algorithms for calculating error position polynomials for this include Barrekcamp-Mesh, Euclid, and improved Euclid.

일반적으로 버렉캠프-메시 알고리즘 계산 회로는 유클리드 알고리즘 계산회로 보다 하드웨어 크기는 작으나 고속의 구현이 어려운 단점이 있다.In general, the Berekkamp-Mesh algorithm calculation circuit has a smaller hardware size than the Euclidean algorithm calculation circuit, but has a disadvantage in that high-speed implementation is difficult.

도4a 및 4b는 유클리드 알고리즘 계산을 위한 블록도를 나타낸 것으로써, 도4a는 유클리드 셀 블록 2t개, 도4b는 터미널 셀 블록 1개를 직렬로 연결하여 사용한다. 일반적으로 유클리드 알고리즘 계산회로는 버렉캠프-메시 회로 보다 하드웨어 크기는 크지만 고속 구현이 가능하다.4A and 4B show a block diagram for Euclidean algorithm calculation. FIG. 4A uses 2 t Euclidean cell blocks, and FIG. 4B uses one terminal cell block in series. In general, Euclid's algorithm calculation circuit is larger in hardware than the Berek Camp-Mesh circuit, but can be implemented at high speed.

개선된 유클리드 알고리즘은 유클리드 알고리즘이 갖고 있는 몫을 구하는 부분에 대한 구현 어려움의 단점을 해소하고 고속 연산을 수행할 수 있도록 개선된 알고리즘이다. 따라서, 몫을 위한 룩업 테이블(Look Up Table)을 필요로 하지 않고 효율적으로 전용 칩의 면적을 줄일 수 있고 구현이 보다 쉬우며 빠르게 키해독을 하게 된다. 그러나, 개선된 유클리드 알고리즘은 2t개의 모듈로 MAC(Multiply and Accumulate) 셀 과 또 다른 2t개의 곱셈 셀이 필요하다.The improved Euclidean algorithm is an algorithm that can solve the shortcomings of implementation difficulties for the part of the Euclidean algorithm and obtain a high-speed operation. Therefore, it is possible to efficiently reduce the area of the dedicated chip without requiring a look up table for the share and to make key readout easier and easier to implement. However, the improved Euclidean algorithm requires 2 t modulo Multiply and Accumulate (MAC) cells and another 2 t multiplication cells.

유클리드 알고리즘 등을 이용하여 오류 위치 다항식과 오류 크기 다항식을 얻으면, 첸 서치 방법과 포니 알고리즘을 이용하여 오류 위치를 얻어내고, 그에 따르는 오류 크기를 구하게 된다. 첸 서치 방법은 근을 대입하는 데 있어서 하드웨어로 구현이 가능하도록 개선한 방법으로서 도5는 첸 서치 알고리즘을 이용하여 오류 위치 다항식의 근을 구하는 블록도이고, 도6은 포니 알고리즘을 이용하여 에러 크기를 구하는 블록도이다.When the error location polynomial and the error magnitude polynomial are obtained by using the Euclidean algorithm, the error search is obtained by using the Chen search method and the pony algorithm, and the corresponding error magnitude is obtained. The Chen search method is an improved method that can be implemented in hardware in assigning roots. FIG. 5 is a block diagram of roots of an error location polynomial using the Chen search algorithm, and FIG. 6 is an error magnitude using a pony algorithm. This is a block diagram to obtain.

도5에서 오류 위치 다항식의 계수(λi)를 이용하여 오류 위치에 대한 근을 구하고 도6에서 오류 위치 다항식의 계수(λi)와 오류 크기 다항식의 계수(Ri)를 이용하여 오류 위치에 따른 오류 크기를 계산한다. 도5와 도6에서 알 수 있듯이 오류 위치 및 크기를 계산하는 데 각각 모듈로 MAC 셀을t, 2t개 필요로 한다. 지금까지 설명한 리드-솔로몬 전용 칩은 모두 모듈로 곱셈 및 덧셈을 수행하는 유한체 연산기를 필요로 한다. 또한 칩이 사용되는 분야의 표준안이 정하는 원시 다항식에 따라 유한체 연산기의 구조는 개조되어야 하므로 사용 분야마다 칩을 다시 개발하여야 한다.In FIG. 5, the root of the error position is obtained using the coefficient of the error position polynomial λ i , and in FIG. 6, the root of the error position is determined using the coefficient of the error position polynomial λ i and the coefficient of the error magnitude polynomial R i . Calculate the magnitude of the error. As can be seen in Figs. 5 and 6, t and 2 t of modulo MAC cells are required to calculate the error position and size, respectively. All the Reed-Solomon dedicated chips described so far require a finite field operator that modulates and adds modulo. In addition, the structure of the finite field operator must be modified according to the primitive polynomials defined in the standard of the field where the chip is used.

종래의 디지털 신호 처리 프로세서에서는 유한체 연산을 처리하기 위해 많은 수행 싸이클이 걸려 리드-솔로몬 알고리즘을 구현하는 데 많은 어려움이 있었다. 따라서, 음성 서비스(15 Kbps 미만)와 같은 저속의 전송률을 가지는 통신 시스템에서만 부분적으로 사용되었다.In a conventional digital signal processing processor, many execution cycles are required to process a finite field operation, and thus, there are many difficulties in implementing a Reed-Solomon algorithm. Therefore, it was only partially used in communication systems with low data rates, such as voice services (less than 15 Kbps).

그리고 종래 디지털 신호 처리 프로세서에서도 전용 리드-솔로몬 칩 구현을 위한 알고리즘들을 사용하여 처리하였다. 그러나, 유한체 연산 부분을 처리하기 위해 산술 연산 유닛(이하 ALU로 칭함)들을 여러 번 반복 사용하여 처리하였고, 이를 서브루틴 형식으로 프로그래밍한 후 메인 프로그램이 리드-솔로몬 알고리즘을 수행하다가 유한체 연산부분에서 이 서브루틴을 사용하도록 하였다. 수학식7은 m이 8인 경우 모듈로 곱셈식이다. 이 곱셈식은 전용 리드-솔로몬 칩 구조 그림들에서 ?? 기호로 표현되었던 부분들이다. 모듈로 연산에서 덧셈 및 뺄셈은 모두 XOR 논리 연산으로 표현될 수 있어 ALU의 XOR 연산을 사용하면 가능하다. 그러나, 곱셈의 경우는 곱셈결과의 비트 수가 8 비트를 초과하므로 모듈로 연산을 수행하여야 한다.In addition, the conventional digital signal processing processor uses algorithms for implementing a dedicated Reed-Solomon chip. However, in order to process the finite field calculation part, the arithmetic operation unit (hereinafter referred to as ALU) is repeatedly used and processed, and after programming it in the subroutine form, the main program performs the Reed-Solomon algorithm and then the finite field calculation part. This subroutine is used in. Equation 7 is modulo multiplication when m is 8. This multiplication is shown in the dedicated Reed-Solomon chip structure diagrams. The parts that were represented by symbols. In modulo operations, addition and subtraction can all be expressed as XOR logical operations, which can be done using ALU's XOR operation. However, in the case of multiplication, since the number of bits of the multiplication result exceeds 8 bits, modulo operation should be performed.

비트별 곱셈은 AND 논리 연산으로 표현되므로 종래 디지털 신호 처리 프로세서에서 모듈로 곱셈 연산은 도7에 도시된 바와 같이 구현하였다.Since bit-by-bit multiplication is represented by an AND logic operation, the modular multiplication operation is implemented as shown in FIG. 7 in the conventional digital signal processing processor.

도7에서 수학식7을 구현하기 위해 우선 8 비트 데이터(A)의 LSB부터 1 비트 씩 (B)의 8비트와 AND 연산을 각각 수행하고 자리수에 맞추어 쉬프트를 취한다. 그렇게 얻은 8개의 15 비트 데이터들을 비트 별로 XOR 연산을 수행하여 수학식7의 세 번째 수식에 해당하는 15 비트 데이터를 얻는다. 마지막으로 15 비트 데이터를 8비트화 하기 위해 주어진 원시 다항식에 따라 모듈로 연산을 취한다. 모듈로 연산은 XOR로 구현 가능하다. 결과적으로기호의 모듈로 곱셈 연산을 위해 걸리는 디지털 신호 처리 연산 수행 싸이클은 16 비트 디지털 신호 처리 프로세서인 경우 약 115 싸이클이 걸린다. 이러한 일련의 과정은 사용하는 디지털 신호 처리 프로세서가 비트 및 바이트 억세스가 가능하여야 하며 32 비트 디지털 신호 처리 프로세서인 경우 병렬로 2 개의 모듈로 곱셈을 수행할 수 있고, 64 비트 디지털 신호 처리 프로세서라면 4 개까지 가능하다. 또한, 동시 가동할 수 있는 ALU가 여러 개라면 1/N (N은 ALU 개수) 로 싸이클 수를 절감할 수 있다. 그러나, 만약 비트별 억세스가 불가능한 경우 마스킹 등에 사용되는 싸이클이 추가되어 더 많은 싸이클이 걸린다.In order to implement Equation 7 in FIG. 7, first, an 8-bit and AND operation of (B) is performed for each bit from LSB of 8-bit data A, and shifts are performed according to the number of digits. The eight 15 bit data thus obtained is subjected to XOR operation bit by bit to obtain 15 bit data corresponding to the third equation of Equation 7. Finally, modulo operation is performed according to the given raw polynomial to 8-bit 15-bit data. Modulo operations can be implemented with XOR. As a result The digital signal processing operation performing cycle for a symbolic modular multiplication operation takes about 115 cycles for a 16-bit digital signal processing processor. This series of processes requires that the digital signal processing processor used must have bit and byte access, multiplication can be performed in two modules in parallel for 32-bit digital signal processing processors, and four for 64-bit digital signal processing processors. It is possible until. In addition, if there are several ALUs that can operate simultaneously, the number of cycles can be reduced to 1 / N (N is the number of ALUs). However, if bit-by-bit access is not possible, a cycle used for masking or the like is added to take more cycles.

다음에, 룩업 테이블을 사용하는 구현 방법은 모듈로 연산 결과를 미리 롬(ROM) 또는 램(RAM)과 같은 저장 장치에 저장해 놓고 억세스 하는 방법이다. 이 방법은 m이 8인 경우 28× 28= 64K 바이트의 큰 저장 공간이 필요하므로 고집적도의 디지털 신호 처리 프로세서 경우라도 수 K 바이트의 내부 램 또는 롬만으로 구현이 불가능해 외부 메모리를 사용해야 한다. 룩업 테이블을 이용한 방법은 디지털 신호 처리 프로세서의 비트 수에 상관없이 한 번에 한 개의 곱셈 연산만 가능하며 내부 및 외부 메모리의 억세스 속도가 느려 수~수십 싸이클이 걸린다. 텍사스 인스트루먼트(Texas Instrument)사의 TMS320C6201의 경우 내부 메모리 값을 로딩(loading)하는 데만 4 클록 싸이클이 걸린다. 따라서, 대용량의 내부 메모리를 보유하고 고속으로 동작하는 디지털 신호 처리 프로세서가 아니면 거의 사용하지 않는 방법이다.Next, an implementation method using a lookup table is a method of accessing the result of modulo operation stored in a storage device such as ROM or RAM in advance. This method is 2 when m is 88× 28= 64K bytes of large storage space is required, so even a high-density digital signal processing processor cannot use only a few K bytes of internal RAM or ROM, so external memory must be used. With the lookup table, only one multiply operation can be performed at a time, regardless of the number of bits in the digital signal processing processor, and the internal and external memory is slow to access, taking several to tens of cycles. Texas Instruments' TMS320C6201 takes only four clock cycles to load internal memory values. Therefore, it is a method rarely used unless it has a large amount of internal memory and operates at a high speed.

상술한 바와 같이 리드-솔로몬 전용 칩에서 리드-솔로몬 복호화에 사용되는 각각의 알고리즘별로 연산 블록을 하드웨어로 구현하여 병렬로 처리함으로써 저속의 클록 주파수에서도 유무선 통신 표준안이 요구하는 전송률보다 훨씬 빠른 전송률을 낼 수 있다. 그러나, 휴대용 단말기에서 단지 리드-솔로몬 부호화/복호화만을 위해서 사용하기에는 하드웨어 크기 및 전력 소모가 크고, 특히, 원시 다항식의 다양성에 유연하게 대처하지 못하므로 적용되는 표준안마다 전용 칩을 재설계해야 한다. 따라서 칩 개발비용 및 단가가 올라가며 개발기간도 오래 걸리는 문제점들이 있다.As described above, each algorithm used in Reed-Solomon decoding on Reed-Solomon decoding chip implements a computational block in hardware and processes it in parallel to achieve a data rate much faster than that required by the wired / wireless communication standard even at a low clock frequency. Can be. However, in order to use only Reed-Solomon coding / decoding in a portable terminal, hardware size and power consumption are large, and in particular, it is difficult to flexibly cope with the diversity of primitive polynomials. Therefore, there are problems in that the chip development cost and unit price go up and the development period takes a long time.

또한 종래의 디지털 신호 처리 프로세서 칩에서 리드-솔로몬 구현은 상술한 바와 같이 리드-솔로몬 알고리즘이 유한체 연산기를 사용하기 때문에 종래 디지털 신호 처리 프로세서가 보유하고 있는 일반 ALU 구조로 구현하기에는 많은 싸이클이 걸려 고속 리드-솔로몬 알고리즘 연산이 불가능하다. 룩업 테이블을 이용한 방법 역시 많은 저장 공간을 필요로 하여 외부 메모리를 사용하여야 하므로 억세스 지연이 크다. 따라서, 기존 디지털 신호 처리 프로세서 칩에서 리드-솔로몬 구현은 아직까지 어려운 실정이다.In addition, since the Reed-Solomon algorithm in the conventional digital signal processor chip uses the finite field operator as described above, the Reed-Solomon algorithm takes many cycles to implement the general ALU structure possessed by the conventional digital signal processor. Reed-Solomon algorithm operation is impossible. The method using the lookup table also requires a lot of storage space, which requires a large amount of access delay. Therefore, the implementation of Reed-Solomon in the existing digital signal processing processor chip is still difficult.

따라서 본 발명은 전용 리드-솔로몬 칩의 하드웨어 구조에서 일정한 규칙성을 갖는 유한체 곱셈 및 덧셈의 반복 구조를 이용하고 다양한 원시 다항식에 유연한 모듈로 연산기를 보유한다면 리드-솔로몬 알고리즘 연산이 프로그래머블 프로세서 칩으로도 구현 가능하므로, 이러한 리드-솔로몬 부호화/복호화를 위한 프로그래머블 프로세서의 유한체 연산기 회로 및 명령어를 구현하고, 유무선 통신 표준안들이 요구하는 전송률에서 프로그래머블 프로세서 기반의 실시간 리드-솔로몬 구현이 가능하도록 하며, 종래 리드-솔로몬용 전용 칩에 있어 유연성을 제공하는 것을 목적으로 한다.Therefore, the present invention uses a repetitive structure of finite field multiplication and addition with constant regularity in the hardware structure of a dedicated Reed-Solomon chip, and if the Reed-Solomon algorithm operation is a programmable processor chip, In addition, it is possible to implement such a finite field operator circuit and instructions of the programmable processor for the Reed-Solomon encoding / decoding, and to implement a real-time Reed-Solomon based on a programmable processor at a transmission rate required by wired and wireless communication standards. Its purpose is to provide flexibility in a dedicated chip for Reed-Solomon.

상기 목적을 달성하기 위하여 본 발명은, 2개의 8비트 입력 데이터를 입력받아 연산을 수행하는 전처리부와; 상기 전처리부에서 얻어진 15 비트의 중간 데이터를 8 비트화 하기 위하여 모듈로 연산을 수행하는 모듈로 연산 처리부; 상기 모듈로 연산시 필요한 원시 다항식 정보를 해석하여 모듈로 연산 처리부를 제어하는 원시다항식 디코더로 구성되는 리드-솔로몬 부호화 및 복호화를 위한 프로그래머블 프로세서의 유한체 연산기 회로 및 상기 회로를 이용하여 모듈로 곱셈을 한 싸이클에 수행하는 연산방법과 모듈로 곱셈 후 모듈로 덧셈을 한 싸이클에 수행하는 연산방법을 특징으로 한다.In order to achieve the above object, the present invention includes a pre-processing unit for receiving two 8-bit input data to perform the operation; A modulo arithmetic unit configured to perform a modulo operation to 8-bit the 15-bit intermediate data obtained by the preprocessor; Finite multiplier circuit of a programmable processor for Reed-Solomon encoding and decoding, which consists of a primitive polynomial decoder controlling a modulo operation processor by analyzing raw polynomial information required for the modulo operation, and modulating multiplication using the circuit. It is characterized by arithmetic methods that perform one cycle and modulo multiplication after modulo multiplication.

도1은 종래의 LFSR(Linear Feedback Shift Register) 구조를 갖는 리드-솔로몬 부호화기를 나타낸 블록도.1 is a block diagram showing a Reed-Solomon encoder having a conventional linear feedback shift register (LFSR) structure.

도2는 종래의 RS(190, 174) 복호기를 나타낸 블록도.Fig. 2 is a block diagram showing a conventional RS 190, 174 decoder.

도3은 종래의 리드-솔로몬 복호기의 신드롬 계산블록을 나타낸 도면.3 shows a syndrome calculation block of a conventional Reed-Solomon decoder.

도4a는 종래의 유클리드 셀을 나타낸 블록도.Figure 4a is a block diagram showing a conventional Euclidean cell.

도4b는 종래의 터미널 셀을 나타낸 블록도.4B is a block diagram showing a conventional terminal cell.

도5는 종래의 첸 서치(Chien search) 알고리즘을 이용한 오류 위치를 구하기 위한 블록도.5 is a block diagram for obtaining an error position using a conventional Chen search algorithm.

도6은 종래의 포니(Forney) 알고리즘을 이용한 에러 크기를 구하기 위한 블록도.6 is a block diagram for obtaining an error magnitude using a conventional Forney algorithm.

도7은 종래의 디지털 신호 처리 프로세서(DSP)에서 모듈로 곱셈 연산을 구현하기 위한 블록도.7 is a block diagram for implementing a modular multiplication operation in a conventional digital signal processing processor (DSP).

도8은 본 발명에 따른 리드-솔로몬 부호화기 및 복호화기에 반복 사용되는셀 구조를 나타낸 블록도.8 is a block diagram showing a cell structure repeatedly used in a Reed-Solomon encoder and decoder according to the present invention.

도9는 본 발명에 따른 유한체 곱셈기의 블록도.9 is a block diagram of a finite multiplier according to the present invention.

도10은 본 발명에 따른 모듈로(Modulo) 연산 처리부를 나타낸 도면.10 is a view showing a Modulo operation processing unit according to the present invention.

도11은 본 발명에 따른 MADD(Modulo-ADD), MMUL(Modulo-Multiply), MMAC(Modulo-MAC) 연산을 수행하는 도면.11 illustrates Modulo-ADD (MADD), Modulo-Multiply (MMUL), and Modulo-MAC (MMAC) operations according to the present invention.

이하, 첨부된 도면을 참조로 하여 본 발명을 상세히 설명하기로 한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

리드-솔로몬용 알고리즘 블록들의 구현을 위한 하드웨어 구조는 도8에 도시된 바와 같이 곱하고 더하는 단순한 구조를 계속해서 반복하는 구조이다. 전용 리드-솔로몬 칩 구조 설명에 나타나지 않은 개선된 유클리드 알고리즘 등 최근 여러 논문에서 발표되고 있는 다양한 리드-솔로몬용 알고리즘 블록들 역시 도8의 구조를 기본 요소로 가지고 있다. 실제 프로그래머블 프로세서 칩에서 리드-솔로몬 부호화/복호화기를 구현하지 못하는 이유는 바로 이 기본 구조 때문이다. 즉, 도8의기호는 모듈로 연산이므로 일반 산술이나 논리 연산과는 전혀 다른 곱셈과 덧셈 연산을 수행하기 때문이다.The hardware structure for the implementation of the algorithm blocks for Reed-Solomon is a structure that repeats a simple structure that multiplies and adds as shown in FIG. Algorithm blocks for various Reed-Solomons, such as the improved Euclidean algorithm that do not appear in the description of the dedicated Reed-Solomon chip structure, which have been recently published in various papers, also have the structure of FIG. It is this basic structure that makes it impossible to implement Reed-Solomon encoders / decoders in real programmable processor chips. That is, in FIG. Wow Because symbols are modulo operations, they perform multiply and add operations that are completely different from general or logical operations.

하나의 리드-솔로몬 부호화/복호화기에서 사용되는 곱셈기와 덧셈기는 알고리즘 블록에 상관없이 차수m과 원시다항식이 일정한 똑같은 구조이다. 일반적으로 통신 규격에 널리 사용되는 리드-솔로몬 알고리즘은 GF(, m=7,8,9) 인 유한체 구조를 사용하며 원시다항식에 따라 유한체 곱셈기 및 덧셈기의 구조가 변경된다. 또한, 부호화기는 m ×F s (시스템 클럭 주파수) bps의 전송률을 가지므로, 고속 가입자 망(VDSL) 모뎀 52Mbps 전송률을 위해서는 시스템 클럭 주파수가 m=8인 경우F s 가 6.5 ㎒정도의 저속에서 동작하면 되므로, 100 ㎒ 이상의 동작 주파수를 가지는 프로그래머블 프로세서 칩은 유한체 연산을 위한 전용 명령어 및 하드웨어만 갖추고 있다면 충분히 수십 Mbps의 전송률을 유지할 수가 있다.The multipliers and adders used in one Reed-Solomon encoder / decoder are the same structure with constant m and primitive polynomials regardless of algorithm blocks. In general, the Reed-Solomon algorithm, which is widely used in communication standards, uses GF ( , m = 7,8,9), and the structure of the finite multiplier and adder is changed according to the primitive polynomial. In addition, since the encoder has a transmission rate of m × F s (system clock frequency) bps, for a high speed subscriber network (VDSL) modem 52 Mbps, F s operates at a low speed of 6.5 MHz when the system clock frequency is m = 8. Therefore, a programmable processor chip having an operating frequency of 100 MHz or more can sustain a transmission rate of several tens of Mbps if it has dedicated instructions and hardware for finite field operation.

리드-솔로몬용 곱셈기와 덧셈기는 무한체 연산구조와 다르므로 원시 다항식을 근거로 유한체 곱셈기 및 덧셈기를 구현해야 한다. 유한체 연산기는 모듈로 연산기를 말하며, 덧셈 및 뺄셈의 경우 비트 별 XOR 연산만으로 구현 가능하므로 일반 논리 연산 유닛으로 구현 가능하고, 곱셈기의 경우 원시 다항식에 따라 다르나 AND 게이트와 XOR 게이트의 조합으로 구현이 가능하다. 전용 프로세서에서는 모듈로 연산기를 계수값을 포함하는 전용(hardwired) 구조로 구현하나 프로그래머블 프로세서는 여러 가지 통신 표준에 따른 다양한 차수m과 원시 다항식을 지원하는 유연성 있는 구조를 가져야 한다.Since Reed-Solomon's multipliers and adders are different from infinite structures, we need to implement finite field multipliers and adders based on primitive polynomials. A finite field operator is a modulo operator, and in addition and subtraction, it can be implemented as a bitwise XOR operation, so it can be implemented as a general logical operation unit.In the case of a multiplier, it depends on a raw polynomial, but a combination of AND and XOR gates It is possible. Dedicated processors implement modulo operators as hardwired structures containing coefficient values, but programmable processors must have a flexible structure that supports various order m and primitive polynomials according to various communication standards.

결국, MADD, MMUL, MMAC의 명령어 셋이 요구되며, 모두 프로그램 수행 전에구현하고자하는 리드-솔로몬 사양에 맞는 m 과 원시 다항식으로 그 구조가 초기화되어야 한다.Finally, MADD, MMUL, and MMAC instruction sets are required, and the structure must be initialized with m and a primitive polynomial that meets the Reed-Solomon specification you want to implement.

도9는 본 발명에 따른 프로그래머블 유한체 곱셈기로서 특히 GF(, m=8)인 유한체 곱셈을 위한 블록도이며, m = 7, 9 인 경우는 본도를 기준으로 비트 확장만 하면된다. 두 개의 8 비트 입력 데이터인 a와 b의 각각의 비트 별 곱셈(AND) 쌍들을 처리한 뒤 비트별 덧셈(XOR)을 수행하여 중간 곱셈 결과인 15 비트의 중간 데이터 alpha 값을 만든다. 이 15 비트의 alpha 값들을 m과 원시다항식에 따라 모듈로 연산을 취하여 8 비트의 결과값(그림의 mul)을 출력한다. 도9에서 전처리부는 아래의 논리연산식과 같은 역할을 한다.9 is a programmable finite field multiplier according to the invention, in particular GF ( , m = 8) is a block diagram for finite field multiplication, and in the case of m = 7 and 9, only bit extension is needed based on the main diagram. After processing two bit-wise multiplication (AND) pairs of two 8-bit input data a and b and performing bitwise addition (XOR), an intermediate multiplication result of 15-bit intermediate data alpha is generated. These 15-bit alpha values are modulo-operated according to m and the primitive polynomial to output an 8-bit result (mul in the figure). In FIG. 9, the preprocessor plays the same role as the logical operation equation below.

alpha0 <= a(0) and b(0);alpha0 <= a (0) and b (0);

alpha1 <=(a(0) and b(1)) xor (a(1) and b(0));alpha1 <= (a (0) and b (1)) xor (a (1) and b (0));

alpha2 <=(a(0) and b(2)) xor (a(1) and b(1)) xor (a(2) and b(0));alpha2 <= (a (0) and b (2)) xor (a (1) and b (1)) xor (a (2) and b (0));

alpha3 <=(a(0) and b(3)) xor (a(1) and b(2)) xor (a(2) and b(1)) xoralpha3 <= (a (0) and b (3)) xor (a (1) and b (2)) xor (a (2) and b (1)) xor

(a(3) and b(0));(a (3) and b (0));

alpha4 <=(a(0) and b(4)) xor (a(1) and b(3)) xor (a(2) and b(2)) xoralpha4 <= (a (0) and b (4)) xor (a (1) and b (3)) xor (a (2) and b (2)) xor

(a(3) and b(1)) xor (a(4) and b(0));(a (3) and b (1)) xor (a (4) and b (0));

alpha5 <=(a(0) and b(5)) xor (a(1) and b(4)) xor (a(2) and b(3)) xoralpha5 <= (a (0) and b (5)) xor (a (1) and b (4)) xor (a (2) and b (3)) xor

(a(3) and b(2)) xor (a(4) and b(1)) xor (a(5) and b(0));(a (3) and b (2)) xor (a (4) and b (1)) xor (a (5) and b (0));

alpha6 <= (a(0) and b(6)) xor (a(1) and b(5)) xor (a(2) and b(4)) xoralpha6 <= (a (0) and b (6)) xor (a (1) and b (5)) xor (a (2) and b (4)) xor

(a(3) and b(3)) xor (a(4) and b(2)) xor (a(5) and b(1))xor (a(6) and b(0));(a (3) and b (3)) xor (a (4) and b (2)) xor (a (5) and b (1)) xor (a (6) and b (0));

alpha7 <= (a(0) and b(7)) xor (a(1) and b(6)) xor (a(2) and b(5)) xoralpha7 <= (a (0) and b (7)) xor (a (1) and b (6)) xor (a (2) and b (5)) xor

(a(3) and b(4)) xor (a(4) and b(3)) xor (a(5) and b(2)) xor (a(6) and b(1)) xor (a(7) and b(0));(a (3) and b (4)) xor (a (4) and b (3)) xor (a (5) and b (2)) xor (a (6) and b (1)) xor (a (7) and b (0));

alpha8 <= (a(1) and b(7)) xor (a(2) and b(6)) xor (a(3) and b(5)) xoralpha8 <= (a (1) and b (7)) xor (a (2) and b (6)) xor (a (3) and b (5)) xor

(a(4) and b(4)) xor (a(5) and b(3)) xor (a(6) and b(2)) xor (a(7) and b(1));(a (4) and b (4)) xor (a (5) and b (3)) xor (a (6) and b (2)) xor (a (7) and b (1));

alpha9 <= (a(2) and b(7)) xor (a(3) and b(6)) xor (a(4) and b(5)) xoralpha9 <= (a (2) and b (7)) xor (a (3) and b (6)) xor (a (4) and b (5)) xor

(a(5) and b(4)) xor (a(6) and b(3)) xor (a(7) and b(2));(a (5) and b (4)) xor (a (6) and b (3)) xor (a (7) and b (2));

alpha10 <= (a(3) and b(7)) xor (a(4) and b(6)) xor (a(5) and b(5)) xoralpha10 <= (a (3) and b (7)) xor (a (4) and b (6)) xor (a (5) and b (5)) xor

(a(6) and b(4)) xor (a(7) and b(3));(a (6) and b (4)) xor (a (7) and b (3));

alpha11 <= (a(4) and b(7)) xor (a(5) and b(6)) xor (a(6) and b(5)) xoralpha11 <= (a (4) and b (7)) xor (a (5) and b (6)) xor (a (6) and b (5)) xor

(a(7) and b(4));(a (7) and b (4));

alpha12 <= (a(5) and b(7)) xor (a(6) and b(6)) xor (a(7) and b(5));alpha12 <= (a (5) and b (7)) xor (a (6) and b (6)) xor (a (7) and b (5));

alpha13 <= (a(6) and b(7)) xor (a(7) and b(6));alpha13 <= (a (6) and b (7)) xor (a (7) and b (6));

alpha14 <= a(7) and b(7);alpha14 <= a (7) and b (7);

상기 논리 연산식의 and 연산자는 논리곱으로서 and 게이트로 구현될 수 있고, xor 연산자는 xor 게이트로 구현할 수 있다. 상기 구조는 시스톨릭 어레이(systolic array)구조나 룩업 테이블 등 서로 다른 방법으로 구현 가능하나어떠한 구조로 구현되더라도 기능은 본 연산식의 논리 연산을 수행하여야 한다. 모듈로 연산 처리부는 차수m과 원시 다항식 정보를 디코딩하여 얻는 신호들을 입력 받아 모듈로 연산을 취한다. 도10은 본 발명에 따른 모듈로 연산 처리부를 나타낸 것이다.The and operator of the logical expression may be implemented as and gate as a logical product, and the xor operator may be implemented as an xor gate. The above structure can be implemented in different ways such as a systolic array structure or a lookup table, but the function must perform a logical operation of the expression even if implemented in any structure. The modulo operation processor modulates the signals obtained by decoding the order m and the raw polynomial information. 10 shows a modular operation processing unit according to the present invention.

즉, 전처리부의 연산 결과인 15 비트의 alpha 값을 원시 다항식 디코더의 출력 신호를 기반으로 하여 XOR 연산에서 필요하지 않은 alpha 신호의 비트들을 디스에이블(disable)시켜 mul 출력의 각각 비트값을 구하는 것이다. 다음 리스트는 원시 다항식이인 경우 곱셈기의 출력 예이다.That is, the bit value of the mul output is obtained by disabling the bits of the alpha signal that are not necessary in the XOR operation based on the output signal of the primitive polynomial decoder using the 15-bit alpha value that is the operation result of the preprocessor. The following list is a raw polynomial If is an example of the output of the multiplier.

mul(0) <= alpha0 xor alpha8 xor alpha12 xor alpha13 xor alpha14;mul (0) <= alpha0 xor alpha8 xor alpha12 xor alpha13 xor alpha14;

mul(1) <= alpha1 xor alpha9 xor alpha13 xormul (1) <= alpha1 xor alpha9 xor alpha13 xor

mul(2) <= alpha2 xor alpha8 xor alpha10 xor alpha12 xor alpha13;mul (2) <= alpha2 xor alpha8 xor alpha10 xor alpha12 xor alpha13;

mul(3) <= alpha3 xor alpha8 xor alpha9 xor alpha11 xor alpha12;mul (3) <= alpha3 xor alpha8 xor alpha9 xor alpha11 xor alpha12;

mul(4) <= alpha4 xor alpha8 xor alpha9 xor alpha10 xor alpha14;mul (4) <= alpha4 xor alpha8 xor alpha9 xor alpha10 xor alpha14;

mul(5) <= alpha5 xor alpha9 xor alpha10 xor alpha11;mul (5) <= alpha5 xor alpha9 xor alpha10 xor alpha11;

mul(6) <= alpha6 xor alpha10 xor alpha11 xor alpha12;mul (6) <= alpha6 xor alpha10 xor alpha11 xor alpha12;

mul(7) <= alpha7 xor alpha11 xor alpha12 xor alpha13;mul (7) <= alpha7 xor alpha11 xor alpha12 xor alpha13;

즉, 원시 다항식 디코더에서 모듈로 연산 처리부로 입력되는 신호들은 mul(0)의 값을 계산하는 경우 alpha1, alpha2, alpha3, alpha4, alpha5, alpha6, alpha7, alpha9, alpha10, alpha11 비트 신호들을 디스에이블시켜 다른 신호들로 XOR 연산을 수행하도록 한다.That is, the signals input from the raw polynomial decoder to the modulo processing unit disable the alpha1, alpha2, alpha3, alpha4, alpha5, alpha6, alpha7, alpha9, alpha10, and alpha11 bit signals when the mul (0) value is calculated. Allows you to perform an XOR operation with other signals.

원시 다항식 디코더는 단순한 룩업 테이블 구조이며 사용되는 리드-솔로몬 사양(m, 원시 다항식)들에 따른 모듈로 연산 처리부에 alpha 신호의 비트들을 인에이블(enable) 또는 디스에이블 할 것인가에 대한 정보가 들어 있다. 룩업 테이블 구조는 다양한 통신 규격에서 많이 사용되는 m 및 원시 다항식을 선별하면 대략 8 가지 정도면 충분하므로 3 비트(8=23) 입력을 받아 m=8 일 경우 도10에서 처럼 15x8=120 비트의 제어신호를 출력하면 된다. 룩업 테이블은 디지털 신호 처리 프로세서가 사용되는 분야의 통신 규격에 따라 m 및 원시 다항식이 정해지고 제 9 도에 모듈로(28) 연산 처리부로 한번 신호가 가해지면 고정되어 신호의 토글(1 또는 0으로 변화) 없이 리드-솔로몬 알고리즘 전체를 계산 할 때까지 사용되므로 룩업 테이블 자체의 입력(m 및 원시 다항식)에 따른 출력이 나오는 속도는 중요하지 않다.The primitive polynomial decoder is a simple lookup table structure that contains information about whether to enable or disable bits of the alpha signal in the modulo operation according to the Reed-Solomon specification (m, raw polynomial) used. . Since the lookup table structure is about 8 kinds of m and raw polynomials, which are widely used in various communication standards, about 8 types are sufficient, when a 3 bit (8 = 2 3 ) input is received and m = 8, as shown in FIG. The control signal may be output. The look-up table toggle of m and primitive polynomial is set is fixed when one signal is applied to a module of claim 9 to (28), the calculation processing signals according to a communication protocol of the field to be used by a digital signal processor (1 or 0 It is used until the entire Reed-Solomon algorithm is calculated without any change, so the speed with which the output of the lookup table itself (m and raw polynomial) is output is not important.

따라서, 롬, 램, 레지스터, 조합 논리 회로 등으로 다양하게 구성될 수 있으나 전력 소모 및 게이트 소모면에서 조합 논리 회로로 구성하는 방법이 가장 유리하다.Therefore, the ROM, RAM, resistors, combination logic circuits, etc. can be variously configured, but in terms of power consumption and gate consumption, the method of configuring the combination logic circuit is most advantageous.

또한, 상술한 연산회로는 or 게이트와 xor 게으트를 대신 다른 게이트들을 사용하여 구성거나, 룩업 데이블을 사용하여 구성할 수 있고, 원시 다항식 역시 다른 원시 다항식을 사용할 수도 있다.In addition, the above-described operation circuit may be configured using other gates instead of the or gate and the xor gate, or may be configured using a lookup table, and the primitive polynomial may also use another primitive polynomial.

지금까지 설명한 유한체 곱셈기는 모두 조합 논리 게이트로 구현되고 사용되는 게이트 수도 일반 산술 연산기(곱셈기 등) 보다 훨씬 적어 프로그래머블 프로세서 에 부담이 되지 않고 속도 또한 빠르다. 제안한 구조는 8 비트 모듈로 MAC 연산기가 4개인 즉 32비트 특정 목적형(Application-Specific) 디지털 신호 처리 프로세서 구조라고 가정하여 계산한 결과이다. 표1은 종래 디지털 신호 처리 프로세서에서의 리드-솔로몬 구현 성능과의 비교를 나타낸 것이다.All of the finite field multipliers described so far are implemented with combinatorial logic gates and have fewer gates than general arithmetic operators (such as multipliers), which is not burdened by the programmable processor and is fast. The proposed structure is the result of assuming 8-bit module with 4 MAC operators, that is, 32-bit application-specific digital signal processor. Table 1 shows a comparison with the performance of the Reed-Solomon implementation in conventional digital signal processing processors.

디지털 신호 처리 프로세서 상에서의 RS(190,174) 복호기 구현 성능 비교Performance Comparison of RS (190,174) Decoder Implementation on Digital Signal Processing Processor 소요 싸이클수디지털신호처리 프로세서Number of Cycles Required Digital Signal Processing Processor 전체소요 싸이클수Total number of cycles required TMS320C6400 familyTMS320C6400 family 신드롬연산(412)+버렉캠프-메시(246)+첸 서치(263)+포니(148)Syndrome calculation (412) + Berek Camp-Mesh (246) + Chen Search (263) + Pony (148) 10691069 STARCORE (SC140)STARCORE (SC140) ·· 819∼1115819-1115 제안하는 ASDSP용 리드-솔로몬명령어 하드웨어 구조Proposed Reed-Solomon Instruction Hardware Architecture for ASDSP 신드롬연산(4)+유클리드(8)+첸 서치(2) +포니(4)Syndrome Operations (4) + Euclid (8) + Chen Search (2) + Pony (4) 1818

표1에 나타난 바와 같이 전용 모듈로 연산기가 있고 없고의 차이가 결과적으로 매우 큰 성능 차이를 나타낸다. TMS320C6400 의 경우 자사인 Texas Instrument사에서 제공하는 성능 산출 공식에 대입하여 소요 싸이클을 계산했으며, Switching Network을 사용하여 구현한다. STARCORE SC140의 경우도 Motoroloa에서 제공하는 GF(256)의 경우의 리드-솔로몬 복호기 소요 싸이클을 기준으로 산출하였다. 스타코어는 기존 디지털 신호 처리 프로세서에서 리드-솔로몬을 구현하는 방법으로 모듈로 곱셈을 구현하는 경우 싸이클 면에서는 많은 이득이 없지만 동작 주파수를 높임으로서 성능을 약간 높일수 있다. 스타코어의 최대 장점 중에 하나인 두 개의 어드레스 생성 유닛 및 어드레스 계산 유닛을 사용하여 모든 모듈로 연산의 경우를 롬 테이블 형식으로 저장하여 처리할 수가 있다. 이렇게 할 경우 수행 싸이클은 다소 감소시킬 수 있으나, 롬은 64K 바이트나 필요하며, 외부 롬 사용시 억세스 싸이클이 여러 싸이클로 늘어나므로 적당한 방법은 아니다. 표에 나타난 싸이클 계산은 롬 테이블 2.714K 바이트를 사용하고, 6개의 산술 연산 유닛을 사용하여 쉬프트(shift) 연산등을 이용하여 처리 할 때 최선의 경우 819 싸이클, 최악의 경우 1115 싸이클이 걸린다는 내용이다. 표에 나타난 바와 같이 제안하는 리드-솔로몬 용 명령어 및 하드웨어 구조는 매우 큰 성능 향상을 보일 수 있다. 그러나, 모듈로 연산기를 구성하기 위하여 기존 ALU의 XOR 및 AND 연산기들을 활용하여 구현할 수 있는 장점은 있으나 추가로 디코더 및 제어 회로가 부담요소로 작용한다.As shown in Table 1, the difference between with and without a dedicated modulo operator results in a very large performance difference. In the case of the TMS320C6400, the required cycle was calculated using the performance calculation formula provided by Texas Instruments, which is implemented using a switching network. The STARCORE SC140 was also calculated based on the Reed-Solomon decoder required cycle for the GF 256 provided by Motoroloa. StarCore does not gain much in terms of cycles when implementing modular multiplication by implementing Reed-Solomon in existing digital signal processing processors, but can increase performance slightly by increasing the operating frequency. One of the greatest advantages of StarCore is the use of two address generation units and address calculation units to store and process all modulo operations in ROM table format. This can reduce the performance cycle somewhat, but the ROM requires 64K bytes, and the access cycle is extended to several cycles when using an external ROM. The cycle calculation shown in the table takes 8714 cycles in the best case and 1115 cycles in the worst case when using a ROM table of 2.714K bytes and performing a shift operation using six arithmetic units. to be. As shown in the table, the proposed Reed-Solomon instruction and hardware architecture can show a significant performance improvement. However, there is an advantage that can be implemented by utilizing the XOR and AND operators of the existing ALU to configure a modular operator, but additionally, the decoder and the control circuit act as a burden.

본 발명에 따른 회로는 리드-솔로몬 전용 칩에서 사용하는 모듈로 곱셈기의 게이트 수(약 261개)에 비하면 디코더 블록까지 포함하여 약 630개로 큰 편이지만 전용 칩에서는 모듈로 곱셈기를 약 72개를 사용하므로 디지털 신호 처리 프로세서 칩에서 본 발명의 모듈로 곱셈기를 4개 사용하는 것이 훨씬 이득이다. 또한, 일반 디지털 신호 처리 프로세서 산술 연산에 사용되는 8 비트 덧셈기의 게이트수 (Carry- Look-Ahead 덧셈기인 경우 약 500개)와 별로 차이가 나지 않으며, 최근 프로그래머블 프로세서 집적 기술에 비하면 이 정도의 게이트 수는 부담이 되지 않는다. 따라서, 본 발명이 제안하는 모듈로 곱셈기를 프로그래머블 프로세서에 집적시키는 것은 하드웨어 크기 측면에서 문제가 되지 않는다.The circuit according to the present invention is about 630 including the decoder block compared to the number of gates (about 261) of the modular multiplier used in the Reed-Solomon dedicated chip, but about 72 modular multipliers are used in the dedicated chip. Therefore, it is much more advantageous to use four modular multipliers of the present invention in a digital signal processing processor chip. In addition, the gate count of the 8-bit adder used for general digital signal processor arithmetic operation (approximately 500 in the case of the Carry-Look-Ahead adder) is not very different from that of the recent programmable processor integrated technology. Is not a burden. Therefore, integrating the modular multiplier proposed by the present invention into a programmable processor does not matter in terms of hardware size.

상술한 바와 같이 리드-솔로몬용 유한체 연산은 먼저 MADD는 ALU의 XOR 게이트들로 구현 가능하고, MMUL은 앞서 제안한 유한체 곱셈기로 구현 가능하고 MMAC은 이 두 명령어 회로의 조합으로 구현 가능하다. 도11은 각각 명령어의 연산 수행도를 나타내었다. MMAC은 유한체 곱셈기 바로 다음 단에 XOR을 두어서 일반 MAC 연산기처럼 한 싸이클 수행이 가능하다.As described above, in the finite field operation for Reed-Solomon, MADD can be implemented with XOR gates of ALU, MMUL can be implemented with the finite field multiplier proposed above, and MMAC can be implemented with a combination of these two instruction circuits. 11 shows arithmetic performance of each instruction. MMAC puts an XOR right after the finite field multiplier to perform one cycle like a normal MAC operator.

또한, m이 8비트(1 바이트)를 초과하는 경우는 덧셈기에 XOR 게이트를 초과 비트수만큼 추가하여 연산하고, 유한체 곱셈기의 경우도 앞서 설명한 바와 같이 초과 비트를 고려해서 비트 확장만 한다면 쉽게 구현할 수 있다(리드-솔로몬 알고리즘의 적용 분야에서 대개 m을 8 비트로 정의함).In addition, when m exceeds 8 bits (1 byte), the operation is performed by adding the XOR gate to the adder by the number of excess bits, and the finite field multiplier can be easily implemented as long as the bit is extended considering the excess bits as described above. (M is usually defined as 8 bits in the application of the Lead-Solomon algorithm).

본 발명은 프로그래머블 프로세서 기반의 리드-솔로몬 알고리즘 연산 처리를 가능케 함으로써 고속 무선 통신용 단말기에서 에러 정정(Forward Error Control) 전용 칩을 따로 사용하지 않고도 단일 프로그래머블 프로세서에서 리드-솔로몬 알고리즘 처리를 할 수 있도록 한다. 따라서, 단말기의 구조를 단순화하여 휴대가 더욱 용이하고 시스템 개발비용을 대폭 줄일 수 있으며 저전력 효과를 가져올 수 있다.The present invention enables the processing of the Reed-Solomon algorithm based on the programmable processor so that the Reed-Solomon algorithm can be processed in a single programmable processor without using a dedicated chip for error correction in a high-speed wireless communication terminal. Therefore, by simplifying the structure of the terminal, it is easier to carry, can greatly reduce the system development cost and bring a low power effect.

또한, 초고속 전송률을 갖는 광통신, 위성통신의 경우 전용 리드-솔로몬 칩에 본 발명이 제안하는 하드웨어 구조를 사용하면 다양한 통신 표준의 사양에 따라 새로운 리드-솔로몬 칩을 개발할 필요가 없어 하드웨어 개발비용이 절감된다.In addition, in the case of optical communication and satellite communication having a very high data rate, if the hardware structure proposed by the present invention is used in a dedicated Reed-Solomon chip, hardware development cost is reduced because there is no need to develop a new Reed-Solomon chip according to the specifications of various communication standards. do.

Claims (8)

리드-솔로몬 부호화 및 복호화를 위한 프로그래머블 프로세서에 있어서,In the programmable processor for Reed-Solomon encoding and decoding, 두 개의 8 비트 입력 데이터를 입력받아 연산을 수행하는 전처리부와;A preprocessor configured to receive two 8-bit input data and perform an operation; 상기 전처리부에서 얻어진 15 비트의 중간 데이터를 8 비트화하기 위하여 모듈로 연산을 수행하는 모듈로 연산 처리부와:A modulo arithmetic processor for performing a modulo operation to 8-bit the 15-bit intermediate data obtained by the preprocessor; 상기 모듈로 연산시 필요한 원시 다항식 정보를 해석하여 상기 모듈로 연산 처리부를 제어하는 원시다항식 디코더를 포함하는 것을 특징으로 하는 프로그래머블 유한체 연산기 회로.And a primitive polynomial decoder configured to interpret primitive polynomial information required for the modulo operation and to control the modulo operation processing unit. 제 1 항에 있어서,The method of claim 1, 상기 전처리부는 수학식The preprocessing unit is 에 의해 연산을 수행하며, 입력데이터를 a와 b, 중간 데이터를 alpha라 할 때When the input data is a and b and the intermediate data is alpha alpha0 <= a(0) and b(0);alpha0 <= a (0) and b (0); alpha1 <= (a(0) and b(1)) xor (a(1) and b(0));alpha1 <= (a (0) and b (1)) xor (a (1) and b (0)); alpha2 <= (a(0) and b(2)) xor (a(1) and b(1)) xor (a(2) and b(0));alpha2 <= (a (0) and b (2)) xor (a (1) and b (1)) xor (a (2) and b (0)); alpha3 <= (a(0) and b(3)) xor (a(1) and b(2)) xor (a(2) and b(1)) xoralpha3 <= (a (0) and b (3)) xor (a (1) and b (2)) xor (a (2) and b (1)) xor (a(3) and b(0));(a (3) and b (0)); alpha4 <= (a(0) and b(4)) xor (a(1) and b(3)) xor (a(2) and b(2)) xoralpha4 <= (a (0) and b (4)) xor (a (1) and b (3)) xor (a (2) and b (2)) xor (a(3) and b(1)) xor (a(4) and b(0));(a (3) and b (1)) xor (a (4) and b (0)); alpha5 <= (a(0) and b(5)) xor (a(1) and b(4)) xor (a(2) and b(3)) xoralpha5 <= (a (0) and b (5)) xor (a (1) and b (4)) xor (a (2) and b (3)) xor (a(3) and b(2)) xor (a(4) and b(1)) xor (a(5) and b(0));(a (3) and b (2)) xor (a (4) and b (1)) xor (a (5) and b (0)); alpha6 <= (a(0) and b(6)) xor (a(1) and b(5)) xor (a(2) and b(4)) xoralpha6 <= (a (0) and b (6)) xor (a (1) and b (5)) xor (a (2) and b (4)) xor (a(3) and b(3)) xor (a(4) and b(2)) xor (a(5) and b(1)) xor (a(6) and b(0));(a (3) and b (3)) xor (a (4) and b (2)) xor (a (5) and b (1)) xor (a (6) and b (0)); alpha7 <= (a(0) and b(7)) xor (a(1) and b(6)) xor (a(2) and b(5)) xoralpha7 <= (a (0) and b (7)) xor (a (1) and b (6)) xor (a (2) and b (5)) xor (a(3) and b(4)) xor (a(4) and b(3)) xor (a(5) and b(2)) xor (a(6) and b(1)) xor (a(7) and b(0));(a (3) and b (4)) xor (a (4) and b (3)) xor (a (5) and b (2)) xor (a (6) and b (1)) xor (a (7) and b (0)); alpha8 <= (a(1) and b(7)) xor (a(2) and b(6)) xor (a(3) and b(5)) xoralpha8 <= (a (1) and b (7)) xor (a (2) and b (6)) xor (a (3) and b (5)) xor (a(4) and b(4)) xor (a(5) and b(3)) xor (a(6) and b(2)) xor (a(7) and b(1));(a (4) and b (4)) xor (a (5) and b (3)) xor (a (6) and b (2)) xor (a (7) and b (1)); alpha9 <= (a(2) and b(7)) xor (a(3) and b(6)) xor (a(4) and b(5)) xoralpha9 <= (a (2) and b (7)) xor (a (3) and b (6)) xor (a (4) and b (5)) xor (a(5) and b(4)) xor (a(6) and b(3)) xor (a(7) and b(2));(a (5) and b (4)) xor (a (6) and b (3)) xor (a (7) and b (2)); alpha10 <= (a(3) and b(7)) xor (a(4) and b(6)) xor (a(5) and b(5)) xoralpha10 <= (a (3) and b (7)) xor (a (4) and b (6)) xor (a (5) and b (5)) xor (a(6) and b(4)) xor (a(7) and b(3));(a (6) and b (4)) xor (a (7) and b (3)); alpha11 <= (a(4) and b(7)) xor (a(5) and b(6)) xor (a(6) and b(5)) xoralpha11 <= (a (4) and b (7)) xor (a (5) and b (6)) xor (a (6) and b (5)) xor (a(7) and b(4));(a (7) and b (4)); alpha12 <= (a(5) and b(7)) xor (a(6) and b(6)) xor (a(7) and b(5));alpha12 <= (a (5) and b (7)) xor (a (6) and b (6)) xor (a (7) and b (5)); alpha13 <= (a(6) and b(7)) xor (a(7) and b(6));alpha13 <= (a (6) and b (7)) xor (a (7) and b (6)); alpha14 <= a(7) and b(7);alpha14 <= a (7) and b (7); 와 같은 결과값을 출력하는 것을 특징으로 하는 유한체 연산기 회로.A finite field calculator circuit for outputting a result value such as. 제 2 항에 있어서,The method of claim 2, 상기 and 게이트와 xor 게이트를 대신하여 다른 게이트들 또는 룩업 테이블을 사용하는 것을 특징으로 하는 유한체 연산기 회로.And use other gates or look-up tables in place of the and gate and xor gates. 제 1 항에 있어서,The method of claim 1, 상기 모듈로 연산 처리부는 원시 다항식이인 경우The modulo operation processor is a raw polynomial If mul(0) <= alpha0 xor alpha8 xor alpha12 xor alpha13 xor alpha14;mul (0) <= alpha0 xor alpha8 xor alpha12 xor alpha13 xor alpha14; mul(1) <= alpha1 xor alpha9 xor alpha13 xor alpha14;mul (1) <= alpha1 xor alpha9 xor alpha13 xor alpha14; mul(2) <= alpha2 xor alpha8 xor alpha10 xor alpha12 xor alpha13;mul (2) <= alpha2 xor alpha8 xor alpha10 xor alpha12 xor alpha13; mul(3) <= alpha3 xor alpha8 xor alpha9 xor alpha11 xor alpha12;mul (3) <= alpha3 xor alpha8 xor alpha9 xor alpha11 xor alpha12; mul(4) <= alpha4 xor alpha8 xor alpha9 xor alpha10 xor alpha14;mul (4) <= alpha4 xor alpha8 xor alpha9 xor alpha10 xor alpha14; mul(5) <= alpha5 xor alpha9 xor alpha10 xor alpha11;mul (5) <= alpha5 xor alpha9 xor alpha10 xor alpha11; mul(6) <= alpha6 xor alpha10 xor alpha11 xor alpha12;mul (6) <= alpha6 xor alpha10 xor alpha11 xor alpha12; mul(7) <= alpha7 xor alpha11 xor alpha12 xor alpha13;mul (7) <= alpha7 xor alpha11 xor alpha12 xor alpha13; 와 같이 결과값(mul)을 출력하는 것을 특징으로 하는 유한체 연산기 회로.A finite field calculator circuit for outputting a result value (mul) as shown. 제 4 항에 있어서,The method of claim 4, wherein 상기 원시 다항식을 대신하여 다른 원시 다항식과 m값을 사용하고, 사용하고자하는 m값과 원시다항식 정보를 상기 원시다항식 디코더로 입력함으로써 상기모듈로 연산 처리부가 주어진 원시다항식에 적합한 연산 회로를 구성하는 것을 특징으로 하는 유한체 연산기 회로.By using other primitive polynomials and m-values in place of the primitive polynomials, and inputting the m-values and primitive polynomial information to be used into the primitive polynomial decoder, the modulo arithmetic unit constructs arithmetic circuit suitable for a given primitive polynomial. A finite field operator circuit. 제 4 항에 있어서,The method of claim 4, wherein 상기 xor 게이트를 대신하여 다른 게이트들을 사용하는 것을 특징으로 하는 유한체 연산기 회로.And use other gates in place of the xor gate. 제 1 항의 유한체 연산기 회로를 이용하여 프로그래머블 프로세서에서 모듈로 곱셈을 한 싸이클에 수행하는 단계와;Performing modular multiplication in a cycle in the programmable processor using the finite field operator circuit of claim 1; 상기 모듈로 곱셈 후 모듈로 덧셈을 한 싸이클에 수행하는 단계를 포함하는 유한체 연산기를 이용한 리드-솔로몬 부호화 및 복호화 연산방법.Reed-Solomon encoding and decoding operation method using a finite field operator comprising the step of performing a modulo addition after the modulo multiplication. 제 1 항의 유한체 연산기 회로의 전처리부, 모듈로 연산 처리부 그리고 원시 다항식 디코더를 이용하여 데이터 값의 비트 수가 8비트 이상으로 증가할 경우에도 구성할 수 있는 것을 특징으로 하는 유한체 연산기 회로.A finite field operator circuit, which can be configured even when the number of bits of a data value increases to 8 or more bits by using a preprocessor, a modulo operation unit, and a raw polynomial decoder of claim 1.
KR1020010022427A 2001-04-25 2001-04-25 A modulo arithmetic unit and Processing Method to implement Reed-Solomon algorithm on Programmable Processors KR20020082699A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010022427A KR20020082699A (en) 2001-04-25 2001-04-25 A modulo arithmetic unit and Processing Method to implement Reed-Solomon algorithm on Programmable Processors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010022427A KR20020082699A (en) 2001-04-25 2001-04-25 A modulo arithmetic unit and Processing Method to implement Reed-Solomon algorithm on Programmable Processors

Publications (1)

Publication Number Publication Date
KR20020082699A true KR20020082699A (en) 2002-10-31

Family

ID=27702556

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010022427A KR20020082699A (en) 2001-04-25 2001-04-25 A modulo arithmetic unit and Processing Method to implement Reed-Solomon algorithm on Programmable Processors

Country Status (1)

Country Link
KR (1) KR20020082699A (en)

Similar Documents

Publication Publication Date Title
US6912683B2 (en) Method, apparatus, and product for use in generating CRC and other remainder based codes
US4649541A (en) Reed-Solomon decoder
US5428629A (en) Error check code recomputation method time independent of message length
US6263470B1 (en) Efficient look-up table methods for Reed-Solomon decoding
US6209114B1 (en) Efficient hardware implementation of chien search polynomial reduction in reed-solomon decoding
US4873688A (en) High-speed real-time Reed-Solomon decoder
US5170399A (en) Reed-Solomon Euclid algorithm decoder having a process configurable Euclid stack
AU699253B2 (en) Galois field multiplier for reed-solomon decoder
US5951677A (en) Efficient hardware implementation of euclidean array processing in reed-solomon decoding
JP2005512183A (en) Galois field multiplication system
JP2000124813A (en) Device and method for reed solomon encoding and decoding
KR20020047134A (en) Method and apparatus for coding and decoding data
US7162679B2 (en) Methods and apparatus for coding and decoding data using Reed-Solomon codes
Wilhelm A new scalable VLSI architecture for Reed-Solomon decoders
US7089276B2 (en) Modular Galois-field subfield-power integrated inverter-multiplier circuit for Galois-field division over GF(256)
US20120079236A1 (en) Scalable and programmable processor comprising multiple cooperating processor units
US6154869A (en) Combined error position circuit and chien search circuit for reed-solomon decoding
EP1225705A2 (en) Method and apparatus for encoding a product code
US6263471B1 (en) Method and apparatus for decoding an error correction code
Jing et al. The design of a fast inverse module in AES
WO2006120691A1 (en) Galois field arithmetic unit for error detection and correction in processors
KR20020082699A (en) A modulo arithmetic unit and Processing Method to implement Reed-Solomon algorithm on Programmable Processors
US20100031126A1 (en) System and method for using the universal multipole for the implementation of a configurable binary bose-chaudhuri-hocquenghem (BCH) encoder with variable number of errors
Chang et al. A high speed Reed-Solomon CODEC chip using lookforward architecture
RU2115231C1 (en) Data coding-decoding device

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E601 Decision to refuse application