KR101593703B1 - Apparatus for performing Universal Variable-length 8-Parallel Reed-Solomon Encoder, decoder and method therefor - Google Patents

Apparatus for performing Universal Variable-length 8-Parallel Reed-Solomon Encoder, decoder and method therefor Download PDF

Info

Publication number
KR101593703B1
KR101593703B1 KR1020100042244A KR20100042244A KR101593703B1 KR 101593703 B1 KR101593703 B1 KR 101593703B1 KR 1020100042244 A KR1020100042244 A KR 1020100042244A KR 20100042244 A KR20100042244 A KR 20100042244A KR 101593703 B1 KR101593703 B1 KR 101593703B1
Authority
KR
South Korea
Prior art keywords
length
unit
code
reed
variable
Prior art date
Application number
KR1020100042244A
Other languages
Korean (ko)
Other versions
KR20110122910A (en
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 KR1020100042244A priority Critical patent/KR101593703B1/en
Publication of KR20110122910A publication Critical patent/KR20110122910A/en
Application granted granted Critical
Publication of KR101593703B1 publication Critical patent/KR101593703B1/en

Links

Images

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/157Polynomial evaluation, i.e. determination of a polynomial sum at a given value
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields

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)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

본 발명은 리드-솔로몬 복부호 장치 및 방법에 관한 것으로서, 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 부호장치는 코드길이 정보신호에 의해 정해진 사이클 동안 가변길이 8병렬 메시지 심볼을 매 클럭 사이클 마다 입력받는 입력부, 상기 입력된 메시지 심볼을 상기 코드길이 정보신호에 기초하여 가변길이 리드 솔로몬 코드로 재배열하는 재배열 결정부, 상기 재배열된 가변길이 리드 솔로몬 코드를 부분생성 다항식으로 연산하는 부분생성다항식 연산부 상기 부분생성 다항식의 연산 결과 값을 저장하는 패리티 심볼 저장부; 및 상기 재배열 결정부에서 생성된 제어신호에 의해 상기 저장된 연산 결과 값 또는 상기 입력된 가변길이 8병렬 메시지 심볼을 출력하는 출력부를 포함한다.A variable-length 8-parallel Reed-Solomon code apparatus according to an embodiment of the present invention includes a variable length 8-parallel message symbol for each cycle determined by a code length information signal, A rearrangement determination unit for rearranging the input message symbols into variable length Reed-Solomon codes based on the code length information signal, and a rearranged variable-length Reed-Solomon code in a partial generation polynomial A partial generation polynomial operation unit; a parity symbol storage unit for storing operation result values of the partial generation polynomial; And an output unit for outputting the stored operation result value or the input variable length 8 parallel message symbol according to the control signal generated by the reordering unit.

Description

가변길이 8-병렬 리드-솔로몬 부호장치 및 복호장치 및 그 방법{Apparatus for performing Universal Variable-length 8-Parallel Reed-Solomon Encoder, decoder and method therefor}[0001] The present invention relates to a variable-length 8-parallel reed-solomon code device and a decoding method thereof, and more particularly to a variable length 8-parallel reed-

본 발명은 리드-솔로몬 복부호 장치 및 방법에 관한 것으로서, 더욱 상세하게는 가변길이 코드워드에 적용 가능한 리드-솔로몬 복부호 장치 및 그 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a Reed-Solomon multiplexing apparatus and method, and more particularly, to a Reed-Solomon multiplexing apparatus and method applicable to a variable length codeword.

본 명세서에 개시된 발명은 지식경제부 및 산업기술평가관리원의 IT원천기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2009-F-047-01, 과제명: 개방형 mmWave 무선 인터페이스 플랫폼 기술개발].The invention disclosed in this specification is derived from the research carried out as part of the IT original technology development project of the Ministry of Knowledge Economy and Industrial Technology Evaluation and Management. [Project Number: 2009-F-047-01, Title: Open mmWave Wireless Interface Platform Technology development].

WPAN은 개인영역 무선통신에 관한 표준으로써 움직이거나 정지상태에서 통신되는 범위 안에서 디지털 장치의 식별이 가능하고 다양한 응용 서비스를 제공할 수 있도록 하는 무선 네트워크 기술이다. mmWAVE는 일반적으로 30~300GHz대역으로서 밀리미터(mm)단위의 파장을 갖는 전자기파를 의미한다. mmWAVE의 장점은 전파의 특성상 파장이 짧아 안테나 및 기기의 소형, 경량화가 가능하고 대역폭을 넓게 사용할 수 있어 높은 데이터 전송률을 확보 할 수 있으며, 근거리통신에 적합하고 주파수 재 사용률이 높다는 점을 들 수 있다. 반면 mmWAVE는 매우 강한 신호의 직진성과 여러 환경요인에 간섭을 많이 받기 때문에 장거리 무선통신에는 적합하지 않으나, 점대점 무선고정통신 및 100m 이내 근거리의 구내통신으로서의 활용가치가 높다. 이러한 mmWAVE의 특성 때문에 시스템에서는 초고속의 데이터 전송률을 보장하면서 동시에 Bit Error Rate(BER)를 획기적으로 감소시키기 위한 FEC 아키텍처가 필요하며 802.15.3c 에서는 리드-솔로몬 복호기가 Forward Error Correction(FEC)의 표준으로 포함되었다. WPAN is a wireless network technology that enables identification of digital devices and providing various application services within the range of mobile or stationary communication. mmWAVE is generally a band of 30 to 300 GHz and means an electromagnetic wave having a wavelength in millimeters (mm). The advantage of mmWAVE is that the wavelength is short due to the nature of the radio wave, the antenna and the device can be made small and light, and the bandwidth can be widely used, thereby securing a high data transmission rate and being suitable for short distance communication and high frequency reuse rate . On the other hand, mmWAVE is not suitable for long-distance wireless communication because it has strong linearity of signal and interference with various environmental factors. However, it is highly useful as point-to-point wireless fixed communication and near-distance communication within 100m. Due to the characteristics of mmWAVE, the system needs FEC architecture to reduce bit error rate (BER) at a high speed while guaranteeing high data rate. In 802.15.3c, Reed-Solomon decoder is a standard for Forward Error Correction .

다만, 종래 기술은 고정길이의 데이터 코드워드만 리드-솔로몬 부호기/ 복호기를 통하여 처리 가능하였다. 따라서, 가변길이의 데이터 코드워드 심볼을 모두 처리할 수 있는 리드-솔로몬 부호기/ 복호기에 대한 연구가 계속적으로 이루어져야 한다.However, in the prior art, only fixed-length data codewords can be processed through a Reed-Solomon encoder / decoder. Therefore, research on a Reed-Solomon encoder / decoder capable of processing all variable-length data codeword symbols must be continuously performed.

본 발명은 종래의 고정길이의 부호만 처리 가능했던 구조 방식에서 가변길이의 부호를 모두 처리할 수 있는 범용적인 가변길이 8-병렬 구조의 리드-솔로몬 부호기, 복호기 및 그 방법을 제공한다. The present invention provides a general-purpose variable-length 8-parallel-structured Reed-Solomon encoder, decoder and method capable of processing all variable-length codes in a conventional structured system capable of processing only fixed-length codes.

또한, 본 발명은 리드-솔로몬 부호기의 8-병렬 구조를 사용하기 위한 연산방법 및 가변길이의 데이터 심볼을 처리하기 위한 재배열 블록의 구조/연산방법, 리드-솔로몬 복호기의 8-병렬 구조를 사용하기 위한 신드롬 계산블록의 구조 및 가변길이의 데이터 심볼을 처리하기 위한 재배열 블록의 구조/연산방법, 오류 정정블록의 8-병렬 오류 정정구조/연산방법을 제공하는데 있다.In addition, the present invention employs an arithmetic method for using an 8-parallel structure of a Reed-Solomon encoder, a structure / operation method of a rearrangement block for processing variable-length data symbols, and an 8-parallel structure of a Reed- A structure and calculation method of a rearrangement block for processing variable length data symbols, and an 8-parallel error correction structure / calculation method of an error correction block.

본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 부호장치는 코드길이 정보신호에 의해 정해진 사이클 동안 가변길이 8병렬 메시지 심볼을 매 클럭 사이클 마다 입력받는 입력부, 상기 입력된 메시지 심볼을 상기 코드길이 정보신호에 기초하여 가변길이 리드 솔로몬 코드로 재배열하는 재배열 결정부, 상기 재배열된 각 가변길이 리드 솔로몬 코드를 8개의 부분생성 다항식으로 연산하는 부분생성다항식 연산부, 상기 부분생성 다항식의 연산 결과 값을 저장하는 패리티 심볼 저장부 및 상기 재배열 결정부에서 생성된 제어신호에 의해 상기 저장된 연산 결과 값 또는 상기 입력된 가변길이 8병렬 메시지 심볼을 출력하는 출력부를 포함한다.The variable length 8 parallel Reed-Solomon code apparatus according to an embodiment of the present invention includes an input unit for receiving a variable length 8 parallel message symbol every cycle of a cycle determined by a code length information signal, A rearrangement determination unit for rearranging the rearranged variable-length Reed-Solomon codes into variable length Reed-Solomon codes based on the length information signal, a partial generation polynomial calculation unit for calculating the rearranged variable-length Reed-Solomon codes using eight partial generation polynomials, A parity symbol storage unit for storing a result value and an output unit for outputting the stored operation result value or the inputted variable length 8 parallel message symbol according to a control signal generated by the reordering unit.

또한 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 부호방법은 코드길이 정보신호에 의해 정해진 사이클 동안 가변길이 8병렬 메시지 심볼을 매 클럭 사이클 마다 입력받는 단계, 상기 입력된 메시지 심볼을 상기 코드길이 정보신호에 기초하여 가변길이 리드 솔로몬 코드로 재배열하는 단계, 상기 재배열 된 메시지 값과 레지스터에 저장된 값에 대하여 XOR연산을 수행하는 단계, 상기 연산된 값에 대하여 부분생성다항식을 이용한 연산을 수행하는 단계, 상기 연산결과를 레지스터에 저장하는 단계, 상기 저장된 값에 대하여 상기 코드길이 정보신호만큼 메시지가 수신되었는지 확인하는 단계 및 상기 메시지가 상기 코드길이 정보신호만큼 수신되었다면 패리티 심볼을 출력하는 단계를 포함한다.In addition, the variable-length 8-parallel Reed-Solomon coding method according to an embodiment of the present invention includes the steps of receiving a variable length 8 parallel message symbol every clock cycle during a cycle determined by a code length information signal, Rearranging the variable length Reed-Solomon code based on the code length information signal, performing an XOR operation on the reordered message value and the value stored in the register, calculating an arithmetic operation using the partial generator polynomial Storing a result of the calculation in a register, checking whether a message is received for the code length information signal with respect to the stored value, and outputting a parity symbol if the message is received by the code length information signal .

본 발명은 종래의 고정길이의 부호만 사용 가능했던 방식에서 가변길이의 부호를 사용할 수 있도록 설계함으로써 범용적인 리드-솔로몬 부호기, 복호기를 설계하는 것이 가능하다.In the present invention, it is possible to design a general-purpose Reed-Solomon encoder and a decoder by designing to use a variable length code in a system in which only a conventional fixed length code can be used.

또한, 본 발명은 8-병렬 구조를 사용함으로써 데이터 처리량을 더욱 향상시켜 고속 데이터 처리에 유용하다.The present invention further improves data throughput by using an 8-parallel structure, which is useful for high-speed data processing.

도 1은 종래의 리드-솔로몬 복호기의 구조를 도시한 도면이다.
도 2는 RS(255,239) 코드를 기반으로 하는 Shortened RS(n,k) 코드의 구조를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 부호방법에 대한 흐름도이다.
도 4는 본 발명의 일실시예에 따라 코드길이 정보신호에 따른 8가지 유형의 가변길이 메시지를 재배열하는 과정 및 부호화를 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 부호장치의 구조를 나타낸 도면이다.
도 6은 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 복호장치의 구조를 나타낸 도면이다.
도 7은 본 발명의 일실시예에 따른 8-병렬 신드롬 계산부의 구조를 나타낸 도면이다.
도 8은 본 발명의 일실시예에 따른8-병렬 오류 정정부를 나타낸 도면이다.
도 9는 본 발명의 일실시예에 따른 8-병렬 오류 정정부의 8-병렬 오류 정정 셀 구조를 나타낸 도면이다.
도 10은 본 발명의 일실시예에 따른 FIFO 출력부의 구조를 나타낸 도면이다.
도 11은 본 발명의 일실시예에 따른 수신되는 코드워드에 따라 달라지는 출력 latency와 수신대기시간에 대한 데이터 흐름을 나타낸 도면이다.
1 is a diagram showing a structure of a conventional Reed-Solomon decoder.
2 is a diagram illustrating a structure of a Shortened RS (n, k) code based on RS (255, 239) codes.
FIG. 3 is a flowchart of a variable length 8-parallel Reed-Solomon coding method according to an embodiment of the present invention.
4 is a diagram illustrating a process of rearranging eight types of variable length messages according to a code length information signal and encoding according to an embodiment of the present invention.
FIG. 5 is a diagram illustrating a structure of a variable-length 8-parallel Reed-Solomon code apparatus according to an embodiment of the present invention.
6 is a diagram illustrating a structure of a variable-length 8-parallel RS-Solomon decoding apparatus according to an embodiment of the present invention.
7 is a diagram illustrating a structure of an 8-parallel syndrome calculation unit according to an embodiment of the present invention.
8 is a diagram illustrating an 8-parallel error correction unit according to an embodiment of the present invention.
9 is a diagram illustrating an 8-parallel error correcting cell structure of an 8-parallel error correcting unit according to an embodiment of the present invention.
10 is a diagram illustrating a structure of a FIFO output unit according to an embodiment of the present invention.
11 is a diagram illustrating a data flow for an output latency and a reception wait time depending on a received codeword according to an embodiment of the present invention.

이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

리드-솔로몬 코드는 마그네틱, 광 저장매체, 유선 및 위성 통신 등 다양한 응용분야에 널리 쓰이는 FEC 기술로써 통신로상에서 발생하는 랜덤오류 및 연집오류까지 정정이 가능한 채널부호화방식이다. 리드-솔로몬 부호는 m이 2보다 큰 양의 정수일 때, m비트 열로 만든 심벌로 이루어진 비2진 순환 부호(Non-binary cyclic code)이며 전형적인 형태는 RS(n,k,t)이다. m비트 심벌에 대한 RS(n,k) 부호는 다음 조건을 만족시키는 모든 n과 k 값에 존재한다.Reed-Solomon code is a FEC technology widely used in various applications such as magnetic, optical storage media, wired and satellite communication, and is a channel coding method capable of correcting random errors and burst errors occurring in communication channels. A Reed-Solomon code is a non-binary cyclic code consisting of symbols made up of m bits when m is a positive integer greater than 2, and a typical form is RS (n, k, t). The RS (n, k) code for the m-bit symbol is present at all n and k values satisfying the following conditions.

0 < k < n < 2m+20 < k < n < 2m + 2

여기서 k는 부호화될 데이터 심벌의 수이고, n은 부호화된 블록에 있는 부호 심벌의 수이다. 대부분의 기존 RS(n,k)부호는 다음과 같다.Where k is the number of data symbols to be coded and n is the number of coded symbols in the coded block. Most existing RS (n, k) codes are as follows.

(n,k) = (2(n, k) = (2 m-1m-1 , 2, 2 m-1m-1 -2t)-2t)

여기서 t는 부호의 심벌 오류 정정 능력이고, n-k=2t는 패리티 심벌의 수이다.Where t is the symbol error correction capability of the code, and n-k = 2t is the number of parity symbols.

리드-솔로몬 부호화 알고리즘에서 리드-솔로몬 부호의 생성 다항식은 다음의 형태를 취한다.The generation polynomial of the Reed-Solomon code in the Reed-Solomon coding algorithm takes the following form.

[수학식 1][Equation 1]

Figure 112010029029175-pat00001
Figure 112010029029175-pat00001

생성 다항식의 차수는 패리티 심벌의 수와 같다. 생성다항식(generator-polynomial)의 차수가 2t이므로, 다항식의 근은 정확히 2t개의 연속적인 α의 거듭제곱이어야 한다. 리드-솔로몬 부호는 순환 부호이므로 조직적인(systematic) 형태의 부호화는 메시지 다항식 M(X)에 Xn -k를 곱하고 패리티 다항식 p(X)를 더하는 형태가 된다. 즉, p(X)는 M(X)·Xn -k를 g(X)로 나눈 나머지이다.The order of the generator polynomial is equal to the number of parity symbols. Since the order of the generator-polynomial is 2t, the root of the polynomial must be exactly 2t consecutive powers of a. Since the Reed-Solomon code is a cyclic code, the systematic form of coding multiplies the message polynomial M (X) by X n -k and adds the parity polynomial p (X). That is, p (X) is the remainder obtained by dividing M (X) · X n -k by g (X).

[수학식 2]&Quot; (2) &quot;

Figure 112010029029175-pat00002
Figure 112010029029175-pat00002

부호화된 다항식 U(X)는 수학식 3과 같다.The encoded polynomial U (X) is represented by Equation (3).

[수학식 3]&Quot; (3) &quot;

Figure 112010029029175-pat00003
Figure 112010029029175-pat00003

부호화된 다항식 U(X)는 g(X)의 근을 대입하면 0이 됨을 의미한다.The encoded polynomial U (X) means that the root of g (X) is zero.

부호화를 통해 얻은 부호화된 다항식은 전송하는 동안 잡음에 의해 오염될 수 있으므로 수신된 심벌에 오류가 포함되었다고 가정하면 오류 패턴은 수학식 4로 나타낼 수 있다.Since the encoded polynomial obtained through encoding can be contaminated by noise during transmission, if the received symbol includes an error, the error pattern can be expressed by Equation (4).

[수학식 4]&Quot; (4) &quot;

Figure 112010029029175-pat00004
Figure 112010029029175-pat00004

그리고 오염되어 수신된 부호화 다항식 r(X)는 다음과 같이 송신 부호화 다항식과 오류 패턴 다항식의 합으로 수학식 4와 같이 나타낼 수 있다.Then, the encoded polynomial r (X) received as a contamination can be expressed by Equation (4) as the sum of the transmission encoding polynomial and the error pattern polynomial as follows.

[수학식 5]&Quot; (5) &quot;

Figure 112010029029175-pat00005
Figure 112010029029175-pat00005

도 1은 종래의 리드-솔로몬 복호기의 구조를 도시한 도면이다.1 is a diagram showing a structure of a conventional Reed-Solomon decoder.

일반적으로 사용되는 리드-솔로몬 복호기(decoder)는 오류를 감지하고 정정하는 세 개의 주요한 부분으로 구성되어 있다. 신드롬 계산(Syndrome Computation)블록의 결과인 S(x)는 Key Equation Solver(KES)블록에서 사용 되며 그 출력 σ(x)와 ω(x)의 두 다항식은 Chien Search와 Forney 알고리즘을 이용하여 오류의 위치에 대응하는 오류들의 크기 값을 구하기 위하여 사용된다. 수신된 메시지는 리드-솔로몬 복호기를 통하여 오류가 정정된다. 추가로 복호기가 오류를 감지하고 정정하는 과정을 실행하는 동안 FIFO 메모리가 버퍼(buffer)로 사용된다. FIFO 메모리의 깊이(depth)는 복호기의 총 지연성(latency)과 관련이 있다.A commonly used Reed-Solomon decoder consists of three main parts that detect and correct errors. The result of the Syndrome Computation block S (x) is used in the Key Equation Solver (KES) block. The two polynomials of the outputs σ (x) and ω (x) It is used to find the magnitude value of the errors corresponding to the position. The received message is error corrected through the Reed-Solomon decoder. In addition, the FIFO memory is used as a buffer while the decoder performs error detection and correction. The depth of the FIFO memory is related to the total latency of the decoder.

신드롬 계산 값은 수신된 r(X)가 오류에 오염되었는지 아닌지를 판단하고 오류에 의해 오염되었을 때 오류 패턴을 찾을 수 있는 값이 된다. 신드롬 계산은 수신된 다항식 r(X)에 g(X)의 모든 근을 대입하는 형태로 이루어진다. r(X)가 합법적인 부호화된 다항식이라면 r(X)는 U(X)가 되고 U(X)는 g(X)로 나누어지므로 신드롬 계산의 결과는 0이 된다. 신드롬의 계산 결과가 0이 아니면 수신된 다항식이 오류로부터 오염되었음을 나타낸다. 신드롬 S는 n-k개의 심벌 Si,(i=0,…,n-k-1)로 구성되었고 신드롬 심벌의 계산은 다음과 같이 표현할 수 있다. The syndrome calculation value is a value that determines whether or not the received r (X) is contaminated with an error and can find an error pattern when it is contaminated by an error. The syndrome calculation is performed by substituting all the roots of g (X) into the received polynomial r (X). If r (X) is a legitimate encoded polynomial, then the result of syndrome computation is 0 since r (X) is U (X) and U (X) is divided by g (X). If the calculated result of the syndrome is not zero, it indicates that the received polynomial is contaminated from the error. The syndrome S consists of n-k symbols Si (i = 0, ..., n-k-1), and the calculation of the syndrome symbols can be expressed as:

[수학식 6]&Quot; (6) &quot;

Figure 112010029029175-pat00006
Figure 112010029029175-pat00006

U(X)에 대한 신드롬 심벌의 계산 결과는 0이므로 신드롬 심벌은 수학식 7의 형태로 표현할 수 있다.Since the calculation result of the syndrome symbol for U (X) is 0, the syndrome symbol can be expressed in the form of Equation (7).

[수학식 7]&Quot; (7) &quot;

Figure 112010029029175-pat00007
Figure 112010029029175-pat00007

채널에서 v개의 오류가 발생하였다면

Figure 112010029029175-pat00008
는 오류의 위치를 나타내고,
Figure 112010029029175-pat00009
는 오류의 값을 나타낸다고 가정하면
Figure 112010029029175-pat00010
는 다음 수학식 8와 같이 표현할 수 있다.If v errors in the channel
Figure 112010029029175-pat00008
Indicates the location of the error,
Figure 112010029029175-pat00009
Assuming that it represents the value of the error
Figure 112010029029175-pat00010
Can be expressed by the following equation (8).

[수학식 8]&Quot; (8) &quot;

Figure 112010029029175-pat00011
Figure 112010029029175-pat00011

수학식 8에서

Figure 112010029029175-pat00012
이라고 하면
Figure 112010029029175-pat00013
는 다음 수학식 9과 같이 표현할 수 있다.In Equation (8)
Figure 112010029029175-pat00012
If you say
Figure 112010029029175-pat00013
Can be expressed by the following equation (9).

[수학식 9]&Quot; (9) &quot;

Figure 112010029029175-pat00014
Figure 112010029029175-pat00014

이 때

Figure 112010029029175-pat00015
은 오류의 위치를 나타내고
Figure 112010029029175-pat00016
은 오류의 값을 나타낸다.At this time
Figure 112010029029175-pat00015
Indicates the location of the error
Figure 112010029029175-pat00016
Represents the value of the error.

KES(Key equation solver)블록은 유클리드(Euclidean)알고리즘, 수정 유클리드 (modified Euclidean) 또는 벌리캄프-마시 (Berlekamp-Massey) 알고리즘들을 이용하여 구현할 수 있으며, Division-free 유클리드 알고리즘과 고속 유클리드 구조들이 각각 제안되었다. 그 중 수정 유클리드 알고리즘은 고속의 파이프라인구조로 구현하기가 용이하다. 수정 유클리드 알고리즘은 최고차항을 소거하여 반복적으로 차수를 줄이는 방식으로 오류 위치 다항식

Figure 112010029029175-pat00017
와 오류 값 다항식
Figure 112010029029175-pat00018
을 구하기 위해 초기값을 정한다.
Figure 112010029029175-pat00019
는 앞서 언급한 신드롬 다항식이다.The KES (Key Equation Solver) block can be implemented using the Euclidean algorithm, modified Euclidean or Berlekamp-Massey algorithms, and a division-free Euclidean algorithm and fast Euclidean structures are proposed . Among them, the modified Euclidean algorithm is easy to implement with a high-speed pipeline structure. The modified Euclidean algorithm eliminates the best-order term and reduces the order repeatedly.
Figure 112010029029175-pat00017
And error value polynomial
Figure 112010029029175-pat00018
To determine the initial value.
Figure 112010029029175-pat00019
Is the above-mentioned syndrome polynomial.

수정 유클리드 알고리즘의 연산은

Figure 112010029029175-pat00020
의 값을 알아야 어떤 연산을 할지를 결정할 수 있다. 기존의 수정 유클리드 알고리즘 블록은
Figure 112010029029175-pat00021
를 구하는 차수 비교 연산이 포함되었지만, pDCME (pipelined degree computationless modified Euclidean) 알고리즘 블록은 수정 유클리드 알고리즘 블록에서 차수 비교 연산을 제거한 형태이다.The operation of the modified Euclidean algorithm
Figure 112010029029175-pat00020
To determine which operation to perform. The existing modified Euclidean algorithm block
Figure 112010029029175-pat00021
The pipelined degree computationless modified Euclidean (pDCME) algorithm block is a form in which the degree comparison operation is removed from the modified Euclidean algorithm block.

pDCME 알고리즘은 초기 입력이 정해져 있고 입력 다항식을 알 때 연산 결과의 범위를 어느 정도 유추할 수 있기 때문에 직접적인 차수 비교 연산 대신에 입력 패턴과 그 결과에 따른 상대적인 차수 가감을 통해 차수 비교를 할 수 있다. 즉, 차수의 비교 연산 없이 KES 블록의 제어 신호를 생성할 수 있다. 수학식 10은 네 가지 패턴에 따른 pDCME의 연산을 스타트 신호와 동기되어 들어오는 C와 D의 입력 값에 의존하여 선택적으로 수행하였다.Since the pDCME algorithm has an initial input and can estimate the range of the calculation result when knowing the input polynomial, it is possible to perform the order comparison by the input pattern and the relative degree depending on the result instead of the direct order comparison. That is, the control signal of the KES block can be generated without performing the order comparison operation. Equation (10) selectively performs the operation of pDCME according to the four patterns depending on the input values of C and D input in synchronization with the start signal.

[수학식 10]&Quot; (10) &quot;

Figure 112010029029175-pat00022
Figure 112010029029175-pat00022

KES블록에 의해 오류 위치 다항식

Figure 112010029029175-pat00023
와 오류 값 다항식
Figure 112010029029175-pat00024
를 구할 수 있다. 오류 위치 다항식은 오류의 위치를 나타내는
Figure 112010029029175-pat00025
의 역수를 근으로 가지는 다항식이고 수학식 11와 같은 형태가 된다.The error location polynomial
Figure 112010029029175-pat00023
And error value polynomial
Figure 112010029029175-pat00024
Can be obtained. The error location polynomial represents the location of the error.
Figure 112010029029175-pat00025
Is a polynomial having the inverse number of &lt; EMI ID = 11.0 &gt;

[수학식 11]&Quot; (11) &quot;

Figure 112010029029175-pat00026
Figure 112010029029175-pat00026

오류의 값은 오류 추정다항식과 오류 위치 다항식의 미분 다항식으로 얻을 수 있다. 오류 위치 다항식

Figure 112010029029175-pat00027
의 미분다항식
Figure 112010029029175-pat00028
는 수학식 12과 같이 표현할 수 있다. The value of the error can be obtained by the error polynomial and the differential polynomial of the error location polynomial. Error location polynomial
Figure 112010029029175-pat00027
Differential polynomial of
Figure 112010029029175-pat00028
Can be expressed by Equation (12).

[수학식 12]&Quot; (12) &quot;

Figure 112010029029175-pat00029
Figure 112010029029175-pat00029

Figure 112010029029175-pat00030
Figure 112010029029175-pat00031
를 이용하여 오류 값
Figure 112010029029175-pat00032
을 구할 수 있다.
Figure 112010029029175-pat00030
Wow
Figure 112010029029175-pat00031
Error value
Figure 112010029029175-pat00032
Can be obtained.

[수학식 13] &Quot; (13) &quot;

Figure 112010029029175-pat00033
Figure 112010029029175-pat00033

수학식 13에서 오류 위치 다항식의 근의 역수는 실제 오류가 발생한 위치를 나타내며 그 값이

Figure 112010029029175-pat00034
이면 실제 오류가 발생한 위치는 x255-i이 된다.In Equation (13), the reciprocal of the root of the error locator polynomial represents the location where the actual error occurred,
Figure 112010029029175-pat00034
, The position where the actual error occurred is x 255-i .

오류 위치 다항식에서 해당 위치의 오류가 발생했는지 아닌지 여부를 판단하고 추정한 오류값과 FIFO를 통과하여 출력된 심벌을 XOR연산을 통해서 오류가 정정된 최종 출력을 얻을 수 있다.It is possible to determine whether or not an error has occurred in the corresponding position in the error location polynomial and to obtain the final output whose error is corrected through the XOR operation of the error value and the output symbol passed through the FIFO.

도 2는 RS(255,239) 코드를 기반으로 하는 Shortened RS(n,k) 코드의 구조를 도시한 도면이다.2 is a diagram illustrating a structure of a Shortened RS (n, k) code based on RS (255, 239) codes.

도 2를 참조하면, Shortened 리드-솔로몬 코드는 RS(255,239) 기반의 오류 정정능력 t=8인 코드이며, RS(n,k)코드에서 d개 만큼의 zero 심볼을 코드워드 앞쪽에 추가하여 인코딩을 수행한다. Shortened 리드-솔로몬 코드는 n-k=16 개의 패리티 심볼을 생성하여 RS(255,239)코드와 동일하게 코드워드의 형태를 맞추어 사용할 수 있다.Referring to FIG. 2, the shortened Reed-Solomon code is an RS (255, 239) based error correcting capability t = 8 code. In the RS (n, k) code, d number of zero symbols are added in front of a codeword . The shortened Reed-Solomon code generates n-k = 16 parity symbols and can use the same codeword type as RS (255,239) code.

Shortened RS 코드의 경우 2m-1개보다 부족한 부호심볼은 제로 심볼(Zero Symbol)을 이용하여 2m- 1코드길이를 맞추게 된다. 따라서 Shortened RS 코드에서 오류발생위치는 zero padding 을 제외한 이후의 위치부터 오류위치를 찾게 된다.In case of shortened RS code, the code symbol which is less than 2 m-1 is adjusted to 2 m- 1 code length by using a zero symbol. Therefore, in the shortened RS code, the error location is found from the position after zero padding.

도 3은 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 부호방법에 대한 흐름도이다.FIG. 3 is a flowchart of a variable length 8-parallel Reed-Solomon coding method according to an embodiment of the present invention.

단계310에서 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 부호방법은 코드길이 정보신호에 의해 정해진 사이클 동안 가변길이 8병렬 메시지 심볼을 매 클럭 사이클 마다 입력받는다.In step 310, the variable-length 8-parallel Reed-Solomon coding method according to an embodiment of the present invention receives a variable length 8 parallel message symbol every clock cycle during a cycle determined by the code length information signal.

단계320에서 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 부호방법은 코드길이 정보신호를 입력받는다.In step 320, a variable length 8-parallel Reed-Solomon coding method according to an embodiment of the present invention receives a code length information signal.

단계330 에서 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 부호방법은 입력된 메시지 심볼을 코드길이 정보신호에 기초하여 가변길이 리드 솔로몬 코드로 재배열한다.In step 330, the variable-length 8-parallel Reed-Solomon coding method according to an embodiment of the present invention rearranges the inputted message symbols into variable length Reed-Solomon codes based on the code length information signal.

단계340 에서 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 부호방법은 재배열 된 메시지 값과 레지스터에 저장된 값에 대하여 XOR연산을 수행한다.In step 340, a variable-length 8-parallel Reed-Solomon coding method according to an embodiment of the present invention performs an XOR operation on the reordered message values and the values stored in the registers.

단계350 에서 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 부호방법은 연산된 값에 대하여 부분생성다항식을 이용한 연산을 수행한다.In step 350, a variable length 8-parallel Reed-Solomon coding method according to an embodiment of the present invention performs an operation using a partial generation polynomial for the computed value.

단계360 에서 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 부호방법은 연산결과를 레지스터에 저장한다.In step 360, the variable-length 8-parallel Reed-Solomon coding method according to an embodiment of the present invention stores the operation result in a register.

단계370 에서 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 부호방법은 저장된 값에 대하여 코드길이 정보신호만큼 메시지가 수신되었는지 확인한다.In step 370, the variable length 8 parallel Reed-Solomon coding method according to an embodiment of the present invention checks whether a message is received by a code length information signal with respect to a stored value.

단계380 에서 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 부호방법은 메시지가 코드길이 정보신호만큼 수신되었다면 패리티 심볼을 출력한다.In step 380, the variable length 8 parallel Reed-Solomon coding method according to an embodiment of the present invention outputs a parity symbol if a message is received as much as a code length information signal.

가변길이 리드-솔로몬 코드는 고정길이의 메시지/코드워드만을 처리하는 리드-솔로몬 코드와는 달리 수신되는 메시지/코드워드 심볼의 길이가 가변적이다. 상기 설명된 RS(n,k)에서 n,k 파라미터는 다양한 형태로 변할 수 있지만 n-k=2t는 패리티 심벌의 수는 변하지 않는다. 8-병렬 구조는 한번에 8개의 메시지/코드워드 심볼이 수신되고 처리되어 8개의 오류 정정된 코드워드가 출력되기 때문에 데이터 처리량을 향상시킬 수 있다.Variable-length Reed-Solomon codes are variable in length of received message / codeword symbols, unlike Reed-Solomon codes, which only process fixed length message / codewords. In the above-described RS (n, k), the n, k parameters can be changed into various forms, but the number of parity symbols is not changed for nk = 2t. The 8-parallel architecture can improve data throughput because eight message / codeword symbols are received and processed at a time and eight error corrected codewords are output.

가변길이의 메시지 심볼을 수신하는 경우에는 코드길이 정보신호의 역할이 중요하다. 코드길이 정보신호는 재배열(PERMUTATION) 및 연산수행 시간을 제어하는데 사용되기 때문에 수신되는 메시지 다항식에 잘못된 코드길이 정보신호가 입력되었을 경우에는 잘못된 부호화 과정을 수행하게 된다.When a variable length message symbol is received, the role of the code length information signal is important. Since the code length information signal is used for controlling the PERMUTATION and the operation execution time, if an incorrect code length information signal is input to the received message polynomial, an incorrect encoding process is performed.

8-병렬 리드-솔로몬 부호기는 패리티 다항식 p(x)를 8-병렬 구조에 적용하기 위해 수식을 변형 할 수 있다. 패리티 다항식 p(x)를 구하는 8-병렬 구조는 수학식 14와 같이 표현 할 수 있다.The 8-parallel reed-solomon encoder can modify the equations to apply the parity polynomial p (x) to the 8-parallel structure. The 8-parallel structure for obtaining the parity polynomial p (x) can be expressed by Equation (14).

[수학식 14]&Quot; (14) &quot;

Figure 112010029029175-pat00035
Figure 112010029029175-pat00035

수학식 14는 연속된 16개의 근[α0,α1,α2,…α14,α15]이 적용된 수학식1을 이용하여 수학식 15와 같이 부분 생성다항식 g0(x), g1(x), g2(x), g3(x), g4(x), g5(x), g6(x), g7(x)를 유도해 낼 수 있다.Equation (14) is a set of 16 consecutive roots [? 0,? 1,? 2, ... g2 (x), g2 (x), g3 (x), g4 (x), g5 (x), and g5 (x) are calculated as shown in Equation (15) g6 (x), and g7 (x).

[수학식 15]&Quot; (15) &quot;

Figure 112010029029175-pat00036
Figure 112010029029175-pat00036

Figure 112010029029175-pat00037
Figure 112010029029175-pat00037

Figure 112010029029175-pat00038
Figure 112010029029175-pat00038

부분생성다항식의 유도 및 확장은 병렬처리에 맞게 적용하기 때문에 다른 병렬 구조에서도 상기식을 적용할 수 있다.Since derivation and expansion of partial generation polynomials are applied to parallel processing, the above equations can be applied to other parallel structures.

가변길이 메시지를 수신하는 경우에는 가변길이에 따라 제로 심볼을 삽입하여 메시지 다항식의 순서를 재배열함으로써 올바른 부호화 수식계산이 이루어지도록 해야 한다. 삽입되는 제로 심볼은 메시지 다항식과 함께 수신되는 코드길이 정보신호에 의해 결정된다. 수신되는 가변길이 메시지 다항식은 8가지 유형으로 분류되며 8가지 유형들 중에 8의 배수인 경우와 8의 배수가 아닌 경우로 구분할 수 있다. 8-병렬 부호기 구조에서 8의 배수인 경우는 제로 심볼의 삽입이 필요가 없지만 8의 배수가 아닌 경우에는 8의 배수 길이로 채워줄 수 있는 제로 심볼을 맨 앞에 삽입함으로써 8-병렬 구조에서 올바른 계산이 이루어지도록 재배열이 반드시 이루어져야 한다. 발생 가능한 가변길이 리드-솔로몬 코드는 표 1과 같이 8가지 유형으로 분류할 수 있다.When a variable length message is received, a correct encoding equation must be calculated by rearranging the order of the message polynomial by inserting a zero symbol according to the variable length. The inserted zero symbol is determined by the received code length information signal together with the message polynomial. The received variable-length message polynomials are classified into 8 types, and 8 types can be classified into a case of a multiple of 8 and a case of not a multiple of 8. In the 8-parallel encoder structure, the insertion of a zero symbol is not necessary for a multiples of 8, but if a multiples of 8 are not multiples of 8, a correct calculation in an 8-parallel structure by inserting a zero symbol that can be filled with a multiple of 8 The rearrangement must be made. Possible variable-length Reed-Solomon codes can be classified into eight types as shown in Table 1.

유형type RSRS (n,k)(n, k) 재배열 과정Rearrangement process Yes 1One [8(p+2), 8p][8 (p + 2), 8p] 제로 심볼(Zero Symbol) 필요없음No Zero Symbol Required RS(255,239)RS (255, 239) 22 [8(p+2)-1, 8p-1][8 (p + 2) -1, 8p-1] 1개의 Zero-Symbol 필요1 Zero-Symbol required RS(254,238)RS (254, 238) 33 [8(p+2)-2, 8p-2][8 (p + 2) -2, 8p-2] 2개의 Zero-Symbol 필요Requires 2 Zero-Symbol RS(253,237)RS (253, 237) 44 [8(p+2)-3, 8p-3][8 (p + 2) -3, 8p-3] 3개의 Zero-Symbol 필요Requires 3 Zero-Symbol RS(252,236)RS (252, 236) 55 [8(p+2)-4, 8p-4][8 (p + 2) -4, 8p-4] 4개의 Zero-Symbol 필요Requires 4 Zero-Symbol RS(251,235)RS (251, 235) 66 [8(p+2)-5, 8p-5][8 (p + 2) -5, 8p-5] 5개의 Zero-Symbol 필요Requires 5 Zero-Symbol RS(250,234)RS 250, 77 [8(p+2)-6, 8p-6][8 (p + 2) -6, 8p-6] 6개의 Zero-Symbol 필요Requires 6 Zero-Symbol RS(249,233)RS (249,233) 88 [8(p+2)-7, 8p-7][8 (p + 2) -7, 8p-7] 7개의 Zero-Symbol 필요Requires 7 Zero-Symbol RS(248,232)RS (248,232)

표 1에서 p는 병렬(parallel)을 뜻하며 유형1~8의 가변길이 리드-솔로몬 코드는 수학식 16~23와 같이 표현할 수 있다.In Table 1, p denotes parallel, and variable length Reed-Solomon codes of types 1 to 8 can be expressed by the following equations (16) to (23).

[수학식 16]&Quot; (16) &quot;

Figure 112010029029175-pat00039
Figure 112010029029175-pat00039

[수학식 17]&Quot; (17) &quot;

Figure 112010029029175-pat00040
Figure 112010029029175-pat00040

[수학식 18]&Quot; (18) &quot;

Figure 112010029029175-pat00041
Figure 112010029029175-pat00041

[수학식 19]&Quot; (19) &quot;

Figure 112010029029175-pat00042
Figure 112010029029175-pat00042

[수학식 20]&Quot; (20) &quot;

Figure 112010029029175-pat00043
Figure 112010029029175-pat00043

[수학식 21]&Quot; (21) &quot;

Figure 112010029029175-pat00044
Figure 112010029029175-pat00044

[수학식 22]&Quot; (22) &quot;

Figure 112010029029175-pat00045
Figure 112010029029175-pat00045

[수학식 23]&Quot; (23) &quot;

Figure 112010029029175-pat00046
Figure 112010029029175-pat00046

표 1에서 표현된 8가지 유형의 가변길이 리드-솔로몬 코드는 첫 번째 메시지 다항식과 같이 입력되는 코드길이 정보신호에 의해 유형이 결정된다. 따라서 가변길이 8-병렬 리드-솔로몬 부호장치에서는 코드길이 정보신호가 재배열 과정의 중요한 역할을 한다. The eight types of variable-length Reed-Solomon codes represented in Table 1 are determined by the code length information signal input as the first message polynomial. Therefore, in the variable length 8-parallel Reed-Solomon code device, the code length information signal plays an important role in the rearrangement process.

도 4는 본 발명의 일실시예에 따라 코드길이 정보신호에 따른 8가지 유형의 가변길이 메시지를 재배열하는 과정 및 부호화를 나타낸 도면이다.4 is a diagram illustrating a process of rearranging eight types of variable length messages according to a code length information signal and encoding according to an embodiment of the present invention.

도 5는 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 부호장치의 구조를 나타낸 도면이다.FIG. 5 is a diagram illustrating a structure of a variable-length 8-parallel Reed-Solomon code apparatus according to an embodiment of the present invention.

도 5를 참조하면, 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 부호장치는 입력부(500), 재배열 결정부(510), 부분생성다항식 연산부(520), 출력부(530)를 포함한다. 5, a variable length 8-parallel Reed-Solomon coding apparatus according to an embodiment of the present invention includes an input unit 500, a reordering unit 510, a partial generation polynomial calculation unit 520, an output unit 530, .

입력부(500)는 코드길이 정보신호에 의해 정해진 사이클 동안 가변길이 8병렬 메시지 심볼을 매 클럭 사이클 마다 입력받는다. 입력부(500)는 매 클럭 사이클(clock cycle)마다 8개씩(M0,M1,M2,M3,M4,M5,M6,M7) 입력받으며, 코드길이 정보신호에 의해 정해진 사이클 동안 입력이 된다. The input unit 500 receives the variable-length 8 parallel message symbols every cycle of a cycle determined by the code length information signal. The input unit 500 receives eight inputs (M0, M1, M2, M3, M4, M5, M6, and M7) every clock cycle and inputs the input data for a cycle determined by the code length information signal.

또한, 재배열 결정부(510)는 입력된 메시지 심볼을 상기 코드길이 정보신호에 기초하여 가변길이 리드 솔로몬 코드로 재배열한다. 입력된 메시지 심볼은 코드길이 정보신호를 이용한 재배열 결정부(510)를 거쳐 각각의 부분생성다항식 연산부(520)에 입력된다. The reordering unit 510 rearranges the input message symbols into variable length Reed-Solomon codes based on the code length information signal. The input message symbols are input to the respective partial generator polynomial calculators 520 via the reordering unit 510 using the code length information signal.

또한, 부분생성다항식 연산부(520)는 재배열된 각 가변길이 리드 솔로몬 코드를 8개의 부분생성 다항식으로 연산하여 8병렬 구조로 확장한다. 이때, 부분생성 다항식의 연산 결과 값은 패리티 심볼 저장부(521)에 저장된다. In addition, the partial generation polynomial calculation unit 520 computes each rearranged variable-length Reed-Solomon code with eight partial generation polynomials to expand it into an 8-parallel structure. At this time, the operation result value of the partial generation polynomial is stored in the parity symbol storage unit 521.

또한, 출력부(530)는 재배열 결정부(510)에서 생성된 제어신호에 의해 저장된 연산 결과 값 또는 입력된 가변길이 8병렬 메시지 심볼을 출력한다. 입력된 메시지 심볼은 패리티 심볼과 연속된 출력을 위하여 레지스터부(533)에 저장된 후 출력부(530)를 통과하여 부호기의 출력으로 나오게 된다. 마지막 메시지 심볼까지 입력되어 연산이 끝나게 되면 계산된 패리티 심볼은 출력부(530)를 통과하여 출력된다. 이때, 멀티플렉서의 제어신호는 코드길이 정보신호를 입력받은 제어신호 생성부(511)의 출력으로 제어된다. 부분 생성 다항식의 연산과정에서 각 항의 덧셈연산은 XOR 회로를 거쳐 각각의 패리티 심볼 저장부(521)에 저장된다. 마지막 메시지 심볼 수신후 연산과정이 끝나게 되면 레지스터에 저장된 값은 출력부(530)의 멀티플렉서(531)에 전달되어 출력으로 나오게 된다. 출력부(530)내의 멀티플렉서(531)는 재배열 결정부(510)에서 생성된 제어신호에 의해 지연된 입력 메시지 심볼을 출력할 것인지 패리티 심볼 레지스터에 저장된 값을 출력할 것인지 결정된다.The output unit 530 outputs the operation result value stored by the control signal generated by the reordering unit 510 or the input variable length 8 parallel message symbol. The input message symbols are stored in the register unit 533 for outputting the parity symbols and then output to the output of the encoder after passing through the output unit 530. When the last message symbol is input and the calculation is completed, the calculated parity symbol is output through the output unit 530. At this time, the control signal of the multiplexer is controlled by the output of the control signal generator 511, which receives the code length information signal. In the operation of the partial generation polynomial, the addition operations of the terms are stored in the parity symbol storage unit 521 via the XOR circuit. When the calculation process is completed after receiving the last message symbol, the value stored in the register is transferred to the multiplexer 531 of the output unit 530 and outputted as an output. The multiplexer 531 in the output unit 530 determines whether to output the delayed input message symbol or the value stored in the parity symbol register according to the control signal generated by the reordering unit 510. [

부호화된 코드워드는 채널을 통하여 복호기로 전달된다. 가변길이 코드워드와 함께 수신되는 코드길이 정보신호는 올바른 복호과정을 수행할 수 있도록 하는 중요한 역할을 한다. The encoded codeword is transmitted to the decoder through the channel. The code length information signal received together with the variable length codeword plays an important role in enabling a correct decoding process to be performed.

도 6은 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 복호장치의 구조를 나타낸 도면이다.6 is a diagram illustrating a structure of a variable-length 8-parallel RS-Solomon decoding apparatus according to an embodiment of the present invention.

도 6을 참조하면, 본 발명의 일실시예에 따른 가변길이 8병렬 리드-솔로몬 복호장치는 8병렬 신드롬 계산부(610), KES부(620), 8병렬 오류정정부(630), FIFO 출력부(640)를 포함한다. 6, the variable-length 8-parallel RS-Solomon decoding apparatus includes an 8-parallel syndrome calculation unit 610, a KES unit 620, an 8-parallel error correction unit 630, a FIFO output 640 &lt; / RTI &gt;

8병렬 신드롬 계산부(610)는 수신된 가변길이 8병렬 코드워드의 오류 패턴을 계산하여 신드롬 다항식을 출력한다.The 8-parallel syndrome calculation unit 610 calculates an error pattern of the received variable-length 8-parallel codeword and outputs a syndrome polynomial.

또한, KES부(620)는 출력된 신드롬 다항식에 기초하여 오류 위치 다항식과 오류 값 다항식을 출력한다. Also, the KES unit 620 outputs the error location polynomial and the error value polynomial based on the output syndrome polynomial.

또한, 8병렬 오류정정부(630)는 오류 위치 다항식에 기초하여 오류 위치를 검지하고, 오류 값 다항식에 기초하여 오류 위치에 해당하는 오류 값을 계산하여 수신된 가변길이 8병렬 코드워드의 오류를 정정한다. The 8-parallel error correcting unit 630 detects the error position based on the error location polynomial, calculates an error value corresponding to the error location based on the error value polynomial, and outputs an error of the received variable-length 8 parallel codeword Correct.

또한, FIFO출력부(640)는 오류가 포함된 심볼을 저장하고, 제어신호에 따라 상기 저장된 심볼을 출력한다.The FIFO output unit 640 stores a symbol including an error and outputs the stored symbol according to a control signal.

가변길이 8-병렬 리드-솔로몬 복호장치의 신드롬 계산부(610)는 1클럭 사이클에 8개의 심볼을 동시에 처리해야 하므로 수학식 8은 수학식 24와 같이 표현 할 수 있다.Since the syndrome calculation unit 610 of the variable-length 8-parallel reed-solomon decoding apparatus processes eight symbols simultaneously in one clock cycle, Equation (8) can be expressed as Equation (24).

[수학식 24]&Quot; (24) &quot;

Figure 112010029029175-pat00047
Figure 112010029029175-pat00047

수신되는 코드워드는 가변길이로써 8의 배수인 경우와 8의 배수가 아닌 경우로 구분된다. 가변길이 8-병렬 리드-솔로몬 부호기와 마찬가지로 신드롬 계산 블록에서 8의 배수인 경우에는 제로 심볼의 삽입이 필요가 없지만 8의 배수가 아닌 경우에는 8의 배수 길이로 채워줄 수 있는 제로 심볼을 맨 앞에 삽입해야 한다. 표 1과 같이 8가지 유형의 가변길이 RS 코드는 코드워드와 함께 수신되는 코드길이 정보신호를 이용하여 수학식 25~32과 같이 표현할 수 있다.The received codeword is a variable length and is divided into a case of being a multiple of 8 and a case of not being a multiple of 8. As in the variable length 8-parallel Reed-Solomon encoder, insertion of a zero symbol is not necessary when the syndrome calculation block is a multiple of 8, but when a non-multiple of 8 is inserted, a zero symbol that can be filled with a multiple length of 8 is inserted Should be. As shown in Table 1, eight types of variable length RS codes can be expressed as Equations 25 to 32 using a code length information signal received together with a code word.

[수학식 25]&Quot; (25) &quot;

Figure 112010029029175-pat00048
Figure 112010029029175-pat00048

[수학식 26]&Quot; (26) &quot;

Figure 112010029029175-pat00049
Figure 112010029029175-pat00049

[수학식 27]&Quot; (27) &quot;

Figure 112010029029175-pat00050
Figure 112010029029175-pat00050

[수학식 28]&Quot; (28) &quot;

Figure 112010029029175-pat00051
Figure 112010029029175-pat00051

[수학식 29]&Quot; (29) &quot;

Figure 112010029029175-pat00052
Figure 112010029029175-pat00052

[수학식 30]&Quot; (30) &quot;

Figure 112010029029175-pat00053
Figure 112010029029175-pat00053

[수학식 31]&Quot; (31) &quot;

Figure 112010029029175-pat00054
Figure 112010029029175-pat00054

[수학식 32](32)

Figure 112010029029175-pat00055
Figure 112010029029175-pat00055

수학식 25~32를 기초로 하는 가변길이 8-병렬 신드롬 계산부는 도 7과 같은 구조를 가지게 된다.The variable-length 8-parallel syndrome calculation unit based on equations (25) to (32) has a structure as shown in FIG.

도 7은 본 발명의 일실시예에 따른 8-병렬 신드롬 계산부의 구조를 나타낸 도면이다.7 is a diagram illustrating a structure of an 8-parallel syndrome calculation unit according to an embodiment of the present invention.

도 7을 참조하면, 본 발명의 일실시예에 따른 8-병렬 신드롬 계산부는 재배열 결정부(710), 신드롬 셀부(720)를 포함할 수 있다.Referring to FIG. 7, the 8-parallel syndrome calculation unit according to an embodiment of the present invention may include a reordering unit 710 and a syndrome cell unit 720.

재배열 결정부(710)는 코드길이 정보신호에 기초하여 수신된 가변길이 8병렬 코드워드를 재배열한다.The rearrangement determination unit 710 rearranges the received variable-length 8 parallel code words based on the code length information signal.

또한, 신드롬 셀부(720)는 재배열된 코드워드에 대하여 8개씩 오류패턴을 계산하여 신드롬 다항식을 출력한다. 재배열된 코드워드는 신드롬 셀부(720)에 입력되어 8개씩 오류패턴을 계산하기 위한 연산부(723)로 전달된다. 코드길이 정보신호는 재배열 결정부(710)에서 수신된 코드워드를 재배열하는데 이용되며 신드롬 계산부에 코드워드가 입력되도록 제어한다. In addition, the syndrome cell unit 720 calculates an error pattern for each of the rearranged codewords and outputs a syndrome polynomial. The rearranged codewords are input to the syndrome cell unit 720 and transmitted to the arithmetic unit 723 for calculating the error patterns by eight. The code length information signal is used to rearrange the codewords received by the rearrangement determination unit 710 and controls the codeword to be input to the syndrome calculation unit.

신드롬 계산부내 멀티플렉서(721)의 제어신호는 재배열 결정부(710)내 제어신호 생성부(711)의 출력으로 제어된다. 계산된 신드롬 값은 쉬프트 레지스터에 넘겨져 S0, S1,…,S15가 연속적으로 출력된다. 출력된 신드롬 다항식은 pDCME 알고리즘을 이용한 KES 블록을 통과하여 오류 위치 다항식

Figure 112010029029175-pat00056
와 오류 값 다항식
Figure 112010029029175-pat00057
을 구하고 친서치 부와 포니알고리즘 수행부로 전달된다. 이때 신드롬 계산부에서 KES 부로 전달된 코드길이 정보신호도 오류 위치 다항식
Figure 112010029029175-pat00058
와 오류 값 다항식
Figure 112010029029175-pat00059
과 같이 전달된다. 가변길이 8-병렬 친서치 부와 포니 알고리즘 수행부는 한번에 8개의 심볼을 검사한다.The control signal of the syndrome calculation unit multiplexer 721 is controlled by the output of the control signal generation unit 711 in the reordering unit 710. The computed syndrome values are passed to the shift register, S0, S1, ... , S15 are continuously output. The output syndrome polynomial passes through the KES block using the pDCME algorithm,
Figure 112010029029175-pat00056
And error value polynomial
Figure 112010029029175-pat00057
And transmitted to the parent search unit and the pony algorithm execution unit. At this time, the code length information signal transmitted from the syndrome calculation unit to the KES unit is also an error location polynomial
Figure 112010029029175-pat00058
And error value polynomial
Figure 112010029029175-pat00059
. The variable length 8-parallel search unit and the pony algorithm performing unit check eight symbols at a time.

도 8은 본 발명의 일실시예에 따른8-병렬 오류 정정부를 나타낸 도면이다.8 is a diagram illustrating an 8-parallel error correction unit according to an embodiment of the present invention.

도 8을 참조하면, 본 발명의 일실시예에 따른8-병렬 오류 정정부는 친서치부(810), 포니 알고리즘 수행부(820), 제어신호 생성부(830), FIFO 출력부(840)를 포함할 수 있다.8, the 8-parallel error correcting unit includes a correlator 810, a pony algorithm executing unit 820, a control signal generating unit 830, and a FIFO output unit 840 can do.

친서치부(810)는 오류 위치 다항식에 기초하여 8개씩 오류 위치를 검지한다. The pupil tooth portion 810 detects error positions by eight based on the error location polynomial.

또한, 포니 알고리즘 수행부(820)는 오류 값 다항식에 기초하여 검지된 오류 위치에 해당하는 오류값을 계산한다. 포니 알고리즘 수행부(820)는 친서치 부(810)의 결과값을 이용하여 오류위치에 해당하는 오류값을 계산하여 8개씩 오류를 정정할 수 있다.In addition, the pony algorithm performing unit 820 calculates an error value corresponding to the detected error position based on the error value polynomial. The pony algorithm performing unit 820 may calculate an error value corresponding to the error position using the result of the parent search unit 810 and correct the error by eight.

또한, 제어신호 생성부(830)는 코드길이 정보신호를 입력받아 친서치부, 포니 알고리즘 수행부, FIFO 출력부를 제어하는 신호를 생성한다. 제어신호 생성부(830)는 코드길이 정보신호를 입력받아 FIFO출력부 제어신호와 친서치 부(810)와 포니 알고리즘 수행부(820) 내의 오류정정셀 Ci을 제어하는 신호를 생성한다.In addition, the control signal generator 830 receives the code length information signal and generates a signal for controlling the reader unit, the pony algorithm executing unit, and the FIFO output unit. The control signal generator 830 receives the code length information signal and generates a signal for controlling the FIFO output unit control signal, the error search cell Ci in the Pony search unit 810 and the Pony algorithm execution unit 820.

또한, FIFO 출력부(840)는 오류가 포함된 심볼을 저장하고, 제어신호에 따라 상기 저장된 심볼을 출력한다. In addition, the FIFO output unit 840 stores a symbol including an error, and outputs the stored symbol according to a control signal.

도 9는 본 발명의 일실시예에 따른 8-병렬 오류 정정부의 8-병렬 오류 정정 셀 구조를 나타낸 도면이다.9 is a diagram illustrating an 8-parallel error correcting cell structure of an 8-parallel error correcting unit according to an embodiment of the present invention.

제어신호 생성부(830)에서 전달받은 제어신호는 오류 정정셀 Ci(910)내의 제어블록(911)과 ROM(912)으로 전달된다. ROM(912)은 오류 정정셀 Ci에 처음 대입되는 근을 결정한다. 복호기에 수신되는 코드워드 길이는 가변적이므로 대입되는 근은 코드워드 길이에 따라 달라져야 하기 때문이다. RS(255,239)코드를 복호하는 경우에는 모든 근을 차례로 대입하여 오류정정을 한다. 그러나RS(255,239)코드를 기반으로 하는 Shortened RS(n,k)코드를 복호하는 경우에는 친서치부(810)와 포니 알고리즘 수행부(820)에서 zero-padding이 삽입된 부분을 연산과정에서 제외함으로써 불필요한 계산시간을 줄일 수 있고 처리속도를 향상 시킬 수 있다. 오류 정정셀 Ci내의 제어블록(911) 출력은 8개의 근을 이용하는 연산부(913)의 멀티플렉서를 제어하여 수신된 코드워드만큼 오류정정 연산을 할 수 있도록 한다. 가변길이의 코드워드는 복호 연산시간이 코드워드마다 다르기 때문에 FIFO 출력부(840)를 통하여 전달되는 수신 코드워드의 지연시간 또한 달라져야 한다. The control signal received from the control signal generator 830 is transmitted to the control block 911 and the ROM 912 in the error correction cell Ci 910. The ROM 912 determines the root to be initially substituted in the error correcting cell Ci. The length of the codeword received in the decoder is variable, and thus the substituted root must be changed according to the codeword length. When decoding the RS (255,239) code, all the roots are substituted in order to correct the error. However, in the case of decoding the shortened RS (n, k) code based on the RS (255, 239) code, the part where the zero-padding is inserted by the correlator 810 and the pony algorithm performing unit 820 is excluded The unnecessary calculation time can be reduced and the processing speed can be improved. The output of the control block 911 in the error correction cell Ci controls the multiplexer of the arithmetic unit 913 using eight roots so that error correction can be performed by the received code word. Since the variable length codeword differs from codeword to codeword, the delay time of the received codeword transmitted through the FIFO output unit 840 must be changed.

도 10은 본 발명의 일실시예에 따른 FIFO 출력부의 구조를 나타낸 도면이다.10 is a diagram illustrating a structure of a FIFO output unit according to an embodiment of the present invention.

오류를 감지 및 정정하는 과정을 실행하는 동안 버퍼로 사용되는 FIFO 출력부의 메모리 크기는 RS(255,239) 코드를 기준으로 정해진다. 메모리의 출력은 코드워드의 길이에 따라 달라지기 때문에 제어신호 생성부(830)에서 생성되는 제어신호에 의해 정해진다.The memory size of the FIFO output used as a buffer during the process of detecting and correcting errors is determined based on the RS (255,239) code. Since the output of the memory depends on the length of the code word, it is determined by the control signal generated by the control signal generator 830.

도 11은 본 발명의 일실시예에 따른 수신되는 코드워드에 따라 달라지는 출력 latency와 수신대기시간에 대한 데이터 흐름을 나타낸 도면이다.11 is a diagram illustrating a data flow for an output latency and a reception wait time depending on a received codeword according to an embodiment of the present invention.

복호화 과정은 수신되는 코드워드 길이에 따라 계산시간이 달라진다. 고정길이의 코드워드를 처리하는 복호장치는 연속된 코드워드를 수신하여 오류를 정정 할 수 있지만 가변길이의 코드워드를 처리하는 복호장치는 다음 코드워드가 수신되기 전 일정시간의 수신 대기시간이 필요하다. In the decoding process, the calculation time varies depending on the length of the received codeword. A decoding device that processes a codeword of fixed length can receive a continuous codeword and correct the error, but a decoding device that processes a codeword of variable length needs a waiting time of a certain time before receiving the next codeword Do.

수신 대기시간은 코드워드 길이에 따라 복호장치의 연산방법이 달라지기 때문에 이미 수신되어 복호 과정중인 코드워드에 앞으로 들어올 코드워드가 서로 영향을 미치지 않기 위해 필요하다. 수신 대기시간은 수신 가능한 코드중에서 가장 긴 코드와 가장 짧은 코드가 연속적으로 수신되는 경우를 고려하여 수신 대기시간을 정할 수 있다. The reception wait time is required in order to prevent the codewords, which are already received and are in the process of being decrypted, from coming into the codewords to be received, because the decoding method of the decoding apparatus is changed according to the codeword length. The reception wait time can be determined by considering the case where the longest code and the shortest code among the receivable codes are successively received.

수신 대기시간은 신드롬 계산 블록의 처리시간을 계산하여 정할 수 있다. 가장 긴 코드워드가 수신되고 이후 가장 짧은 코드워드가 수신 되었을 경우 가장 긴 코드워드의

Figure 112010029029175-pat00060
에서 가장 짧은 코드워드의
Figure 112010029029175-pat00061
을 뺀다면 이것이 바로 수신 대기시간이 된다. 예를 들어 수신 가능한 코드 중에서 가장 긴 코드가 RS(239,223)코드이고 가장 짧은 코드가 RS(28,12)코드일 경우 가변길이 8-병렬 리드-솔로몬 복호기는 수신 대기시간이 26 클럭이다.The reception latency can be determined by calculating the processing time of the syndrome calculation block. If the longest codeword is received and then the shortest codeword is received, the longest codeword
Figure 112010029029175-pat00060
Of the shortest codeword
Figure 112010029029175-pat00061
If this is subtracted, this is the waiting time. For example, when the longest code among the receivable codes is the RS (239,223) code and the shortest code is the RS (28,12) code, the variable length 8-parallel reed-solomon decoder has a reception waiting time of 26 clocks.

도 11의 (1)은 가장 긴 코드워드와 가장 짧은 코드워드를 수신하는 경우에의 데이터 흐름도이다. 첫 번째 RS(239,223) 코드워드가 수신된 후 26클럭으로 설정된 수신 대기시간이 지난 다음에 두 번째 RS(28,12) 코드워드가 수신되어야 두 코드워드의 복호화 과정이 서로 영향을 미치지 않는다. 11 (1) is a data flow chart in the case of receiving the longest codeword and the shortest codeword. The second RS (28,12) codeword must be received after the reception wait time set to 26 clocks after the first RS (239,223) codeword is received, so that the decoding processes of the two codewords do not affect each other.

도 11의 (2)는 수신되는 코드워드의 길이가 점점 커지는 경우의 데이터 흐름도이다. 첫 번째 RS(28,12) 코드워드가 수신된 후 수신 대기시간을 거쳐 두 번째 RS(88,80) 코드워드가 수신된 경우 두 번째 코드워드의 복호화 계산시간이 더 길다. 따라서, 두 번째 코드워드의 latency는 연산시간(

Figure 112010029029175-pat00062
Figure 112010029029175-pat00063
)만큼 더 늘어난다. 그래서 첫 번째 코드워드의 출력 latency는 74 클럭이고 두 번째 코드워드의 latency는 100클럭으로 계산된다. FIG. 11 (2) is a data flow chart in the case where the length of a received codeword gradually increases. If the second RS (88,80) codeword is received after the first RS (28,12) codeword has been received and the waiting time has elapsed, the decoding time of the second codeword is longer. Thus, the latency of the second codeword is computed (
Figure 112010029029175-pat00062
Figure 112010029029175-pat00063
). Thus, the output latency of the first codeword is 74 clocks and the latency of the second codeword is calculated to be 100 clocks.

도 11의 (3)은 수신되는 코드워드의 길이가 점점 작아 경우의 데이터 흐름도이다. 첫 번째 RS(239,223) 코드워드가 수신된 후 수신 대기시간을 거쳐 두 번째 RS(136,120) 코드워드가 수신된 경우 두 번째 코드워드의 복호화 계산시간이 더 짧다. 따라서, 두 번째 코드워드의 latency는(

Figure 112010029029175-pat00064
Figure 112010029029175-pat00065
) 계산시간만큼 줄어든다. 그래서 첫 번째 코드워드의 출력 latency는 100클럭이고 두 번째 코드워드의 latency는 87클럭으로 계산된다. 11 (3) is a data flow chart in the case where the length of the received codeword is gradually smaller. If the second RS (136,120) codeword is received after the first RS (239,223) codeword is received and after the waiting time, the decoding time of the second codeword is shorter. Thus, the latency of the second code word is (
Figure 112010029029175-pat00064
Figure 112010029029175-pat00065
) Is reduced by the calculation time. Thus, the output latency of the first codeword is 100 clocks and the latency of the second codeword is calculated to be 87 clocks.

도 11의 (4)는 수신되는 코드워드의 길이가 같은 경우의 데이터 흐름도이다. 수신되는 코드워드의 길이가 같은 경우에는 고정길이에 대한 복호장치와 같은 동작을 하기 때문에 수신 대기시간이 필요 없고 출력 latency는 변하지 않는다. 11 (4) is a data flow chart when the length of the received codeword is the same. When the length of the received codeword is the same, the same operation as that of the decoder for the fixed length is performed. Therefore, the waiting time is not required and the output latency does not change.

본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. The methods according to embodiments of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. This is possible.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.

Claims (1)

코드길이 정보신호에 의해 정해진 사이클 동안 가변길이 8병렬 메시지 심볼을 매 클럭 사이클 마다 입력 받는 입력부;
상기 입력된 메시지 심볼을 상기 코드길이 정보신호에 기초하여 가변길이 리드 솔로몬 코드로 재배열하는 재배열 결정부;
상기 재배열된 각 가변길이 리드 솔로몬 코드를 8개의 부분생성 다항식으로 연산하는 부분생성다항식 연산부;
상기 부분생성 다항식의 연산 결과 값을 저장하는 패리티 심볼 저장부;
상기 재배열 결정부에서 생성된 제어신호에 의해 상기 저장된 연산 결과 값 또는 상기 입력된 가변길이 8병렬 메시지 심볼을 출력하는 출력부;
상기 재배열된 가변길이 리드 솔로몬 코드에 대하여 오류패턴을 계산하여 신드롬 다항식을 출력하는 신드롬 셀부; 및
상기 신드롬 다항식에 기초하여 감지된 오류 위치에 해당하는 오류 값을 계산하고, 제로-페이딩이 삽입된 부분을 연산과정에서 제외하고, 멀티플렉서를 이용하여 상기 코드길이 정보신호에 따른 오류 정정을 수행하는 오류 정정부
를 포함하고,
상기 재배열 결정부는 제어신호 생성부를 포함하고, 상기 제어신호 생성부는,
상기 코드길이 정보신호를 입력받아 출력부 내의 멀티플렉서를 제어하기 위한 제어신호를 출력하고, 출력부 내의 멀티플렉서는 재배열 결정부에서 생성된 제어신호에 의해 지연된 입력 메시지 심볼을 출력할 것인지 출력부 내에 구비된 패리티 심볼 레지스터에 저장된 값을 출력할 것인지 결정하는
가변길이 8병렬 리드-솔로몬 부호장치.
An input unit for receiving variable length 8 parallel message symbols every cycle of a cycle determined by the code length information signal;
A rearrangement determination unit for rearranging the input message symbols into variable length Reed Solomon codes based on the code length information signal;
A partial generator polynomial calculator for calculating each of the rearranged variable-length Reed-Solomon codes using eight partial generator polynomials;
A parity symbol storage unit for storing a result of the operation of the partial generation polynomial;
An output unit for outputting the stored operation result value or the input variable length 8 parallel message symbol according to the control signal generated by the reordering unit;
A syndrome cell unit for calculating an error pattern for the rearranged variable-length Reed-Solomon code and outputting a syndrome polynomial; And
Calculating an error value corresponding to the detected error position based on the syndrome polynomial, excluding the zero-fading inserted portion from the calculation process, and performing error correction based on the code length information signal using the multiplexer [0034]
Lt; / RTI &gt;
Wherein the rearrangement determination unit includes a control signal generation unit,
The multiplexer in the output unit receives the code length information signal and outputs a control signal for controlling the multiplexer in the output unit. The multiplexer in the output unit determines whether to output the input message symbol delayed by the control signal generated in the reordering unit, Determines whether to output the value stored in the parity symbol register
Variable length 8 parallel lead-solomon code device.
KR1020100042244A 2010-05-06 2010-05-06 Apparatus for performing Universal Variable-length 8-Parallel Reed-Solomon Encoder, decoder and method therefor KR101593703B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100042244A KR101593703B1 (en) 2010-05-06 2010-05-06 Apparatus for performing Universal Variable-length 8-Parallel Reed-Solomon Encoder, decoder and method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100042244A KR101593703B1 (en) 2010-05-06 2010-05-06 Apparatus for performing Universal Variable-length 8-Parallel Reed-Solomon Encoder, decoder and method therefor

Publications (2)

Publication Number Publication Date
KR20110122910A KR20110122910A (en) 2011-11-14
KR101593703B1 true KR101593703B1 (en) 2016-02-15

Family

ID=45393216

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100042244A KR101593703B1 (en) 2010-05-06 2010-05-06 Apparatus for performing Universal Variable-length 8-Parallel Reed-Solomon Encoder, decoder and method therefor

Country Status (1)

Country Link
KR (1) KR101593703B1 (en)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
High Throughput Four-Parallel RS Decoder Architecture for 60GHz mmWAVE WPAN Systems, Consumer Electronics (ICCE), (2010년 1월)

Also Published As

Publication number Publication date
KR20110122910A (en) 2011-11-14

Similar Documents

Publication Publication Date Title
JP5300170B2 (en) Reed-Solomon decoder circuit with forward Chien search method
JP5219699B2 (en) Encoding device and decoding device
US8347178B2 (en) Method, device and apparatus for correcting bursts
JP3610329B2 (en) Turbo coding method using large minimum distance and system for realizing the same
US8726137B2 (en) Encoding and decoding methods for expurgated convolutional codes and convolutional turbo codes
US7246294B2 (en) Method for iterative hard-decision forward error correction decoding
CN103380585B (en) Input bit error rate presuming method and device thereof
US7793195B1 (en) Incremental generation of polynomials for decoding reed-solomon codes
US9344117B2 (en) Methods and systems for error-correction decoding
Shrivastava et al. Error detection and correction using Reed Solomon codes
KR101298745B1 (en) Methods and devices for decoding and encoding data
KR20040075954A (en) Dual chien search blocks in an error-correcting decoder
JP2010268114A (en) Error correction-encoding method, error correction-decoding method, error correction encoder, and error correction decoder
US20030188248A1 (en) Apparatus for iterative hard-decision forward error correction decoding
Truong et al. Algebraic decoding of (103, 52, 19) and (113, 57, 15) quadratic residue codes
CN1636324A (en) Chien search cell for an error-correcting decoder
US10826534B2 (en) Encoding method, encoder, and decoder for dynamic power consumption control
US7398456B2 (en) Information encoding by shortened Reed-Solomon codes
KR101593703B1 (en) Apparatus for performing Universal Variable-length 8-Parallel Reed-Solomon Encoder, decoder and method therefor
Lee et al. 100GB/S two-iteration concatenated BCH decoder architecture for optical communications
US8527851B2 (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
KR101636406B1 (en) Preprocessing apparatus and method for low latency of syndrome calculation in bch decoder
Khan et al. Hardware implementation of shortened (48, 38) Reed Solomon forward error correcting code
Barbosa et al. FPGA implementation of a Reed-Solomon CODEC for OTN G. 709 standard with reduced decoder area
Babrekar et al. Review of FPGA Implementation of Reed-Solomon Encoder-Decoder

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20181121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 5