KR102118605B1 - Low complexity high order syndrome calculator for block codes and calculating method of high order syndrome - Google Patents

Low complexity high order syndrome calculator for block codes and calculating method of high order syndrome Download PDF

Info

Publication number
KR102118605B1
KR102118605B1 KR1020140089739A KR20140089739A KR102118605B1 KR 102118605 B1 KR102118605 B1 KR 102118605B1 KR 1020140089739 A KR1020140089739 A KR 1020140089739A KR 20140089739 A KR20140089739 A KR 20140089739A KR 102118605 B1 KR102118605 B1 KR 102118605B1
Authority
KR
South Korea
Prior art keywords
bit
zero
syndrome
order syndrome
value
Prior art date
Application number
KR1020140089739A
Other languages
Korean (ko)
Other versions
KR20150107561A (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 US14/500,803 priority Critical patent/US9467174B2/en
Priority to CN201410840383.3A priority patent/CN104917535B/en
Publication of KR20150107561A publication Critical patent/KR20150107561A/en
Application granted granted Critical
Publication of KR102118605B1 publication Critical patent/KR102118605B1/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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • 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/159Remainder calculation, e.g. for encoding and syndrome calculation
    • 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

Abstract

블록 코드에 대하여 저복잡도로 고차 신드롬을 계산하는 고차 신드롬 계산기 및 고차 신드롬 계산 방법이 개시된다. 송신기로부터 수신된 직렬의 비트 시퀀스들을 병렬의 다중 스트림으로 변환하는 직렬-병렬 변환기, 다중 스트림의 각 비트 값에 대하여 XOR 연산을 수행하는 XOR 연산기, XOR 연산이 수행된 각 비트 사이에 제로 값들을 삽입하는 제로 보간부, 및 제로 값들이 삽입된 다중 스트림으로부터 생성되는 다항식을 원시 다항식으로 나눈 나머지의 계수에 의해 고차 신드롬 값을 산출하는 선형 피드백 쉬프트 레지스터를 포함하는 고차 신드롬 계산기를 제공할 수 있다.Disclosed is a high-order syndrome calculator and a high-order syndrome calculation method for calculating a high-order syndrome with low complexity for a block code. A serial-to-parallel converter that converts serial bit sequences received from a transmitter into multiple parallel streams, an XOR operator that performs an XOR operation on each bit value of multiple streams, and inserts zero values between each bit where an XOR operation is performed. It is possible to provide a high-order syndrome calculator including a zero-interpolation unit and a linear feedback shift register for calculating a high-order syndrome value by a coefficient of the remainder obtained by dividing a polynomial generated from multiple streams with zero values divided by a raw polynomial.

Figure R1020140089739
Figure R1020140089739

Description

블록 코드에 대하여 저복잡도로 고차 신드롬을 계산하는 고차 신드롬 계산기 및 고차 신드롬 계산 방법{LOW COMPLEXITY HIGH ORDER SYNDROME CALCULATOR FOR BLOCK CODES AND CALCULATING METHOD OF HIGH ORDER SYNDROME}LOW COMPLEXITY HIGH ORDER SYNDROME CALCULATOR FOR BLOCK CODES AND CALCULATING METHOD OF HIGH ORDER SYNDROME}

아래의 실시예들은 블록 코드에 대하여 저복잡도로 고차 신드롬을 계산하는 고차 신드롬 계산기 및 고차 신드롬 계산 방법에 관한 것이다.The following embodiments relate to a high-order syndrome calculator and a high-order syndrome calculation method for calculating a high-order syndrome with low complexity for a block code.

블록 코드(block code)는 오류 정정 부호(error correcting codes) 중 광범위하게 사용되는 코드이다. 블록 코드는 예를 들어, 한 개의 비트에 대한 오류 정정이 가능한 해밍 코드(Hamming code), 복수 개의 비트들에 대한 오류 정정이 가능한 BCH 코드(Bose-Chadhuri-Hocquenghem code), 복수 개의 비트들을 하나의 심볼로 간주하고 심볼 단위로 오류를 복원하는 RS 코드(Reed-Solomon error correction code) 등을 포함할 수 있다. Block codes are widely used among error correcting codes. The block code includes, for example, a Hamming code capable of error correction for one bit, a BCH code capable of error correction for a plurality of bits (Bose-Chadhuri-Hocquenghem code), and a plurality of bits in one Resid-Solomon error correction code (RS code), which is regarded as a symbol and reconstructs errors in units of symbols, may be included.

블록 코드는 인코딩(encoding) 보다 디코딩(decoding) 시에 복잡도가 증가한다. 또한, 수신 오류 발생 시, 복수 개의 비트들 혹은 심볼 단위의 오류를 복원하는 BCH 코드 또는 RS 코드는 한 개의 비트에 대한 오류 복원 능력을 가진 해밍 코드에 비해 효율은 우수하지만, 계산의 복잡도는 증가한다. The block code increases complexity in decoding rather than encoding. In addition, when a reception error occurs, a BCH code or RS code that restores errors in a plurality of bits or symbols is superior in efficiency to a Hamming code having error recovery capability for one bit, but increases computational complexity. .

저전력 송, 수신기에서는 송신 신호의 전력이 낮기 때문에 송, 수신기 간 통신 신뢰도가 저하될 수 있다. 저전력을 요구하는 통신 시스템에서는 오류 정정 부호의 적용 시에 저복잡도의 계산이 요구된다. 예를 들어, 다양한 무선 센서 네트워크 및 근거리 통신망에서 사용되는 수 많은 소형의 센서들에서는, 오랜 시간 동작하기 위해 기본적으로 저전력, 저복잡도의 계산이 요구된다.In low-power transmitters and receivers, since the transmission signal has low power, communication reliability between the transmitter and the receiver may deteriorate. In a communication system requiring low power, calculation of low complexity is required when applying an error correction code. For example, in many small sensors used in various wireless sensor networks and local area networks, calculation of low power and low complexity is basically required to operate for a long time.

일실시예에 따르면, 고차 신드롬 계산기(high-order syndrome calculator)는, 송신기로부터 수신된 직렬의 비트 시퀀스들을 병렬의 다중 스트림으로 변환하는 직렬-병렬 변환기(serial-to-parallel converter); 상기 다중 스트림의 각 비트 값에 대하여 XOR 연산을 수행하는 XOR 연산기; 상기 XOR 연산이 수행된 상기 각 비트 사이에 제로 값들을 삽입하는 제로 보간부(zero interpolator); 및 상기 제로 값들이 삽입된 상기 다중 스트림으로부터 생성되는 다항식(polynomial)을 원시 다항식(primitive polynomial)으로 나눈 나머지(remainder)의 계수(coefficient)에 의해 고차 신드롬 값을 산출하는 선형 피드백 쉬프트 레지스터(linear feedback shift register)를 포함한다. According to one embodiment, a high-order syndrome calculator includes a serial-to-parallel converter that converts a series of bit sequences received from a transmitter into multiple parallel streams; An XOR operator that performs an XOR operation on each bit value of the multiple streams; A zero interpolator that inserts zero values between each bit in which the XOR operation is performed; And a linear feedback shift register calculating a higher order syndrome value by a coefficient of the remainder obtained by dividing the polynomial generated from the multiple streams in which the zero values are inserted by a primitive polynomial. shift register).

상기 직렬-병렬 변환기는, 상기 송신기로부터 수신된 직렬의 비트 시퀀스들을 아래의 <수학식>을 만족하는 특정 비트 수(D)의 정수 배만큼 지연시켜 L (L ≥1인 자연수) 비트의 다중 스트림으로 변환할 수 있다. The serial-to-parallel converter delays the serial bit sequences received from the transmitter by an integer multiple of a specific number of bits (D) satisfying the following Equation (L), a multiple stream of L (natural numbers with L ≥ 1) bits. Can be converted to

<수학식><Mathematics>

D = n/jD = n/j

(여기서 n은 블록 코드(block code)의 블록 사이즈(block size)이고, j는 구하고자 하는 신드롬(syndrome)의 차수(order)이며, n/j는 정수)(Where n is the block size of the block code, j is the order of the syndrome to obtain, and n/j is an integer)

상기 직렬-병렬 변환기는, L-1 개의 지연 요소들을 포함하고, 상기 다중 스트림의 첫 번째 비트에는 상기 비트 시퀀스를 지연 없이 입력하고, 상기 다중 스트림의 L 번째 비트에는 상기 비트 시퀀스를 (L - 1) x D 개의 비트 수만큼 지연시켜 입력할 수 있다. The serial-to-parallel converter includes L-1 delay elements, inputs the bit sequence without delay to the first bit of the multi-stream, and inputs the bit sequence (L-1 to the L-th bit of the multi-stream). ) x D bits can be delayed for input.

상기 직렬-병렬 변환기는, 상기 n/j 값이 정수(integer)가 아닌 경우, 상기 송신기로부터 수신된 상기 비트 시퀀스들을 지연 없이 상기 제로 보간부로 전달할 수 있다. The serial-to-parallel converter may transmit the bit sequences received from the transmitter to the zero interpolator without delay when the n/j value is not an integer.

상기 제로 보간부는, 상기 n/j 값이 정수가 아닌 경우, 상기 XOR 연산이 수행된 다중 스트림의 각 비트 사이에 N 개(N = j-1)의 제로 값들을 주기적으로(periodically) 삽입할 수 있다.When the n/j value is not an integer, the zero interpolation unit may periodically insert N (N = j-1) zero values between each bit of the multi-stream in which the XOR operation is performed. have.

상기 제로 보간부는, 상기 XOR 연산이 수행된 다중 스트림의 각 비트 사이에 N 개(N = L-1)의 제로 값들을 주기적으로(periodically) 삽입할 수 있다. The zero interpolation unit may periodically insert N (N = L-1) zero values between each bit of the multi-stream in which the XOR operation is performed.

일실시예에 따르면, 고차 신드롬 계산기(high-order syndrome calculator)는, 송신기로부터 수신된 직렬의 비트 시퀀스들을, 심볼 단위 - 상기 심볼 단위는 복수 개의 비트들을 포함함 - 로 구성된 병렬의 다중 스트림으로 변환하는 직렬-병렬 변환기(serial-to-parallel converter); 상기 심볼 단위로 구성된 상기 다중 스트림의 비트 값들에 대하여 상기 심볼 단위로 XOR 연산을 수행하는 XOR 연산기; 상기 XOR 연산이 수행된 상기 다중 스트림의 각 비트 사이에 제로 값들을 삽입하는 제로 보간부(zero interpolator); 및 상기 제로 값들이 삽입된 상기 다중 스트림으로부터 생성되는 다항식(polynomial)을 원시 다항식(primitive polynomial)으로 나눈 나머지(remainder)의 계수(coefficient)에 의해 고차 신드롬 값을 산출하는 선형 피드백 쉬프트 레지스터(linear feedback shift register)를 포함한다. According to one embodiment, a high-order syndrome calculator converts a series of bit sequences received from a transmitter into a parallel multiple stream consisting of symbol units, wherein the symbol units include a plurality of bits. A serial-to-parallel converter; An XOR operator that performs an XOR operation on the bit values of the multiple streams configured in the symbol unit in the symbol unit; A zero interpolator that inserts zero values between each bit of the multi-stream in which the XOR operation is performed; And a linear feedback shift register calculating a higher order syndrome value by a coefficient of the remainder obtained by dividing the polynomial generated from the multiple streams in which the zero values are inserted by a primitive polynomial. shift register).

상기 직렬-병렬 변환기는, 상기 송신기로부터 수신된 직렬의 비트 시퀀스들을 아래의 <수학식>을 만족하는 특정 비트 수(D)의 정수 배만큼 지연시켜 상기 심볼 단위* L(L ≥1인 자연수) 비트의 다중 스트림으로 변환할 수 있다. The serial-to-parallel converter delays the sequence of bit sequences received from the transmitter by an integer multiple of a specific number of bits (D) that satisfies <Equation> below, so that the symbol unit* L (a natural number with L ≥ 1) Can convert to multiple streams of bits.

<수학식><Mathematics>

D = n/jD = n/j

(여기서 n은 상기 심볼 단위를 만족하는 블록 코드(block code)의 블록 사이즈(block size)이고, j는 구하고자 하는 신드롬(syndrome)의 차수(order)이며, n/j 는 정수)(Where n is the block size of the block code that satisfies the symbol unit, j is the order of the syndrome to be obtained, and n/j is an integer)

상기 직렬-병렬 변환기는, 상기 n/j 값이 정수가 아닌 경우, 상기 송신기로부터 수신된 비트 시퀀스들을 지연 없이 상기 제로 보간부로 전달할 수 있다. When the n/j value is not an integer, the serial-to-parallel converter may transmit the bit sequences received from the transmitter to the zero interpolation unit without delay.

상기 제로 보간부는, 상기 n/j 값이 정수가 아닌 경우, 상기 XOR 연산이 수행된 상기 다중 스트림의 상기 각 비트 사이에 심볼 단위의 N 개(N = j-1)의 제로 값들을 주기적으로 삽입할 수 있다.When the n/j value is not an integer, the zero interpolation unit periodically inserts N (N = j-1) zero values in a symbol unit between each bit of the multi-stream in which the XOR operation is performed. can do.

상기 제로 보간부는, 상기 XOR 연산이 수행된 상기 다중 스트림의 상기 각 비트 사이에 심볼 단위의 N 개(N = L-1)의 제로 값들을 주기적으로 삽입할 수 있다. The zero interpolation unit may periodically insert N (N = L-1) zero values in a symbol unit between each bit of the multi-stream in which the XOR operation is performed.

일실시예에 따르면, 고차 신드롬 계산 방법은, 송신기로부터 수신된 직렬의 비트 시퀀스들을 병렬의 다중 스트림으로 변환하는 단계; 상기 다중 스트림의 각 비트 값에 대하여 XOR 연산을 수행하는 단계; 상기 XOR 연산이 수행된 상기 다중 스트림의 상기 각 비트 사이에 제로 값들을 삽입하는 단계; 및 상기 제로 값들이 삽입된 상기 다중 스트림으로부터 생성되는 다항식(polynomial)을 원시 다항식(primitive polynomial)으로 나눈 나머지(remainder)의 계수(coefficient)에 의해 고차 신드롬 값을 산출하는 단계를 포함할 수 있다. According to an embodiment, a method for calculating a higher order syndrome may include converting a series of bit sequences received from a transmitter into multiple streams in parallel; Performing an XOR operation on each bit value of the multiple streams; Inserting zero values between each bit of the multi-stream in which the XOR operation is performed; And calculating a higher-order syndrome value by a coefficient of the remainder obtained by dividing the polynomial generated from the multiple streams into which the zero values are inserted into a primitive polynomial.

일실시예에 따르면, 고차 신드롬 계산 방법은, 송신기로부터 수신된 직렬의 비트 시퀀스들을 심볼 단위 - 상기 심볼 단위는 복수 개의 비트들을 포함함 - 로 구성되는 병렬의 다중 스트림으로 변환하는 단계; 상기 다중 스트림의 비트 값들에 대하여 상기 심볼 단위로 XOR 연산을 수행하는 단계; 상기 XOR 연산이 수행된 상기 다중 스트림의 각 비트 사이에 제로 값들을 삽입하는 단계; 및 상기 제로 값들이 삽입된 상기 다중 스트림으로부터 생성되는 다항식(polynomial)을 원시 다항식(primitive polynomial)으로 나눈 나머지(remainder)의 계수(coefficient)에 의해 고차 신드롬 값을 산출하는 단계를 포함한다.According to an embodiment, a method of calculating a higher order syndrome may include converting a series of bit sequences received from a transmitter into a parallel multiple stream consisting of symbol units, wherein the symbol units include a plurality of bits; Performing an XOR operation in units of the symbols on the bit values of the multiple streams; Inserting zero values between each bit of the multi-stream in which the XOR operation is performed; And calculating a higher order syndrome value by a coefficient of the remainder divided by a polynomial generated from the multiple streams in which the zero values are inserted into a primitive polynomial.

도 1은 송신기에서 블록 코드(block code)를 인코딩하는 채널 인코더(100)의 블록도이다.
도 2는 수신기에서 블록 코드를 디코딩하는 채널 디코더(200)의 블록도이다.
도 3은 일반적인 신드롬 계산 방법에 의해 갈루아 필드(Galois field)에서 원시 다항식(primitive polynomial)의 연산에 이용되는 룩-업 테이블(Look-up table (LUT))의 일 예를 도시한 도면이다.
도 4는 일반적인 신드롬 계산 방법에 의해 m = 6, n = 63인 경우에 S3 을 계산하는 과정을 나타낸 도면이다.
도 5는 일실시예에 따른 고차 신드롬 계산기(high-order syndrome calculator)의 블록도이다.
도 6은 도 5의 고차 신드롬 계산기(high-order syndrome calculator)의 구조를 구체적으로 나타낸 도면이다.
도 7은 m = 6, n = 63인 경우에 S3 을 구하기 위해 일실시예에 따른 고차 신드롬 계산기(high-order syndrome calculator)의 각 부분에서 수행되는 동작을 설명하기 위한 도면이다.
도 8은 다른 실시예에 따른 고차 신드롬 계산기의 블록도이다.
도 9는 일실시예에 따른 고차 신드롬 계산 방법을 나타낸 플로우차트이다.
도 10은 다른 실시예에 따른 고차 신드롬 계산 방법을 나타낸 플로우차트이다.
도 11은 일반적인 신드롬 계산 방법과 일실시예에 따른 고차 신드롬 계산 방법에 따른 계산 복잡도를 비교한 결과를 나타낸 도면이다.
도 12는 m = 6, n = 2m-1 = 63 인 경우, 일반적인 신드롬 계산 방법과 일실시예에 따른 고차 신드롬 계산 방법에 따라 S3 을 산출하는 계산 복잡도를 비교한 결과를 나타낸 도면이다.
1 is a block diagram of a channel encoder 100 that encodes a block code at the transmitter.
2 is a block diagram of a channel decoder 200 for decoding block codes at a receiver.
FIG. 3 is a diagram illustrating an example of a look-up table (LUT) used for calculation of a primitive polynomial in a Galois field by a general syndrome calculation method.
4 is a diagram illustrating a process of calculating S 3 when m = 6 and n = 63 by a general syndrome calculation method.
5 is a block diagram of a high-order syndrome calculator according to an embodiment.
FIG. 6 is a diagram specifically showing the structure of the high-order syndrome calculator of FIG. 5.
7 is a view for explaining the operation performed in each part of the high-order syndrome calculator (high-order syndrome calculator) according to an embodiment to obtain the S 3 in the case of m = 6, n = 63.
8 is a block diagram of a higher-order syndrome calculator according to another embodiment.
9 is a flowchart illustrating a method for calculating a higher order syndrome according to an embodiment.
10 is a flowchart illustrating a high-order syndrome calculation method according to another embodiment.
11 is a view showing a result of comparing the calculation complexity according to a general syndrome calculation method and a high-order syndrome calculation method according to an embodiment.
12 is a view showing a result of comparing the calculation complexity of calculating S 3 according to a general syndrome calculation method and a high-order syndrome calculation method according to an embodiment when m = 6 and n = 2 m -1 = 63.

이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 일실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 기재된 동일한 참조 부호는 동일한 부재를 나타낸다.
Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the present invention is not limited or limited by the embodiments. In addition, the same reference numerals in each drawing denote the same members.

오류 정정 부호(error correcting code)는 디지털 통신 시스템에서 통신 신뢰도를 향상시킬 수 있는 기술 중의 하나이다. 예를 들어, 랜덤 노이즈 등을 비롯한 다양한 비이상적인 통신 채널 환경으로 인해, 수신기에 수신되는 비트 정보에 오류가 발생할 수 있다. 이때, 수신기는 오류 정정 부호에 의해 오류 발생을 검출하고 정정함으로써, 송신기가 원래 송신하고자 했던 비트 정보를 복원하여 통신의 신뢰도를 향상시킬 수 있다. Error correcting code (error correcting code) is one of techniques that can improve communication reliability in a digital communication system. For example, due to various non-ideal communication channel environments including random noise and the like, errors may occur in bit information received by the receiver. At this time, the receiver detects and corrects the occurrence of an error by an error correction code, thereby improving the reliability of communication by restoring the bit information that the transmitter originally intended to transmit.

오류 정정 부호는 크게 블록 코드(block code) 및 컨볼루션 코드(convolutional code)로 나눌 수 있다. 블록 코드는 광범위하게 사용되는 기본적인 코드이며, 일정한 길이의 블록 단위로 부호화가 이루어진다. 블록 코드는 전송하고자 하는 일정한 길이의 메시지 비트 정보에 패리티 비트(parity bit)라고 불리는 잉여 비트(redundant bit)를 추가해서 일정한 길이의 인코딩된 비트 시퀀스를 구성한다. The error correction code can be roughly divided into a block code and a convolutional code. The block code is a basic code that is widely used, and coding is performed in units of blocks having a constant length. The block code constructs a sequence of encoded bits of a certain length by adding a redundant bit called a parity bit to the message bit information of a certain length to be transmitted.

가장 기본적인 블록 코드인 해밍 코드는 오류 정정 능력(error correcting capability)이 한 비트이다. 다시 말해, 해밍 코드는 송신기로부터 수신된 한 블록의 비트 시퀀스에 한 개의 비트 오류가 발생하면 정정이 가능하지만, 두 개 이상 비트에서 오류가 발생하면 제대로 오류를 복원할 수 없다. Hamming code, the most basic block code, has one bit of error correcting capability. In other words, the Hamming code can be corrected when one bit error occurs in a bit sequence of one block received from a transmitter, but cannot be properly restored when an error occurs in two or more bits.

BCH 코드는 다양한 파라미터(parameter)들을 활용하여 두 개 혹은 그 이상의 오류들을 정정할 수 있다. 해밍 코드는 BCH 코드의 한 종류라고 볼 수 있다. The BCH code can correct two or more errors by using various parameters. Hamming code can be considered as a type of BCH code.

RS 코드는 복수 개의 비트들을 하나의 심볼(symbol)로 간주하고, 심볼 단위로 신호 처리를 수행한다. RS 코드는 복수 개의 비트들을 하나의 심볼로 보고, 일정한 개수의 심볼들을 하나의 블록으로 구성한다. The RS code considers a plurality of bits as one symbol, and performs signal processing on a symbol basis. The RS code sees a plurality of bits as one symbol and configures a certain number of symbols into one block.

RS 코드를 이용하는 경우, 인코딩 및 디코딩은 심볼 단위로 수행되고, 오류 복원 또한 일정한 개수의 심볼 단위로 수행된다. RS 코드는 하나의 심볼에 여러 개의 비트들이 존재하고 심볼 단위로 오류가 복구되므로, 비트 간 인접하여 오류가 발생하는 버스트 오류(burst error)에 강인(robust)한 코드이다.
When using the RS code, encoding and decoding are performed on a symbol basis, and error recovery is also performed on a fixed number of symbols basis. The RS code is a robust code to a burst error in which multiple errors exist in a single symbol and errors are recovered in units of symbols, and errors adjacent to each other occur.

도 1은 송신기에서 블록 코드(block code)를 인코딩하는 채널 인코더(100)의 블록도이다. 1 is a block diagram of a channel encoder 100 that encodes a block code at the transmitter.

도 1을 참조하면, 송신기에서 블록 코드를 인코딩하는 채널 인코더(100)의 구조가 도시된다. Referring to FIG. 1, a structure of a channel encoder 100 for encoding block codes at a transmitter is illustrated.

채널 인코더(100)에서는 원래 비트(original bit) 정보에 해당하는 k개의 메시지 비트들(message bits)에, 잉여 비트(redundant bit)에 해당하는 n-k개의 패리티 비트들(parity bits)을 적절히 추가한 후, 전체 n개의 비트 시퀀스 블록들을 구성하여 수신기에게 송신한다. After the channel encoder 100 appropriately adds nk parity bits corresponding to the redundant bit to k message bits corresponding to the original bit information, , Constructs all n bit sequence blocks and transmits them to the receiver.

상술한 방법으로 채널 인코더(100)가 송신하는 n개의 비트 시퀀스 블록들을 보통 (n,k) 블록 코드라고 표현하며, 채널 인코더(100) 출력인 n-bit 시퀀스(sequence)는 '코드워드(codeword)'라고도 부른다. 이때, n-bit 시퀀스(sequence)에서 k개의 메시지 비트들은 변경되지 않고, 패리티 비트들만 추가되는 형태로 송신되므로 n-bit 시퀀스(sequence)를 '조직 부호(systematic code)'라고 한다. 수신기는 채널 인코더(100)에서 인코딩된 비트 시퀀스를 수신하여 디코딩한다. 수신기의 채널 디코더의 구조에 대하여는 도 2를 참조하여 설명한다.
In the above-described method, the n bit sequence blocks transmitted by the channel encoder 100 are usually referred to as (n,k) block codes, and the n-bit sequence output from the channel encoder 100 is a'codeword. )'. At this time, in the n-bit sequence (sequence), the k message bits are not changed, and only the parity bits are transmitted, so the n-bit sequence is called a'systematic code'. The receiver receives and decodes the encoded bit sequence from the channel encoder 100. The structure of the channel decoder of the receiver will be described with reference to FIG. 2.

도 2는 수신기에서 블록 코드를 디코딩하는 채널 디코더(200)의 블록도이다. 2 is a block diagram of a channel decoder 200 for decoding block codes at a receiver.

도 2를 참조하면, 수신기에서 블록 코드를 디코딩하는 채널 디코더(channel decoder) (200)의 구조가 도시된다. Referring to FIG. 2, a structure of a channel decoder 200 for decoding block codes at a receiver is illustrated.

수신기에서는 복조기(demodulator)를 통해 먼저 '0' 혹은 '1' 로 복조된 비트 시퀀스가 채널 디코더(200)로 입력된다. 이때, 복조된 비트 시퀀스에는, 예를 들어, 노이즈 등과 같은 여러 가지 비이상적인(non-ideal) 통신 채널 환경으로 인해 오류 비트가 존재할 수 있다. In the receiver, a bit sequence demodulated to '0' or '1' first through a demodulator is input to the channel decoder 200. At this time, an error bit may exist in the demodulated bit sequence due to various non-ideal communication channel environments, such as noise.

채널 디코더(200)는 도 2와 같이, n개의 복조된 비트 시퀀스를 적절히 신호 처리하여 오류를 복원하고, k개의 디코딩된 출력 비트 시퀀스를 얻을 수 있다. 이때, 복조된 비트 시퀀스에서 블록 코드의 오류 복구 능력보다 더 많은 비트들에 오류가 발생했다면, 출력 비트 시퀀스는 송신기에서 원래 전송한 비트 시퀀스와 다를 수 있다. As illustrated in FIG. 2, the channel decoder 200 may appropriately process n demodulated bit sequences to recover an error and obtain k decoded output bit sequences. At this time, if an error occurs in more bits than the error recovery capability of the block code in the demodulated bit sequence, the output bit sequence may be different from the bit sequence originally transmitted by the transmitter.

채널 디코더(200)는 신드롬 계산기(syndrome calculator)(210), 오류 위치 산출부(error location calculator)(230) 및 오류 수정(error correction)부(250)를 포함할 수 있다. The channel decoder 200 may include a syndrome calculator 210, an error location calculator 230, and an error correction unit 250.

신드롬 계산기(syndrome calculator)(210)는 신드롬(syndrome) 값을 산출할 수 있다. The syndrome calculator 210 may calculate a syndrome value.

'신드롬(syndrome)'은 송신기로부터 수신기에게 수신된 비트 시퀀스에 오류(error)가 있는지를 확인할 수 있는 판단 기준이 되는 값이다. 예를 들어, 신드롬 값이 제로(zero)가 아니면 오류가 발생했다는 의미이므로, 수신기는 오류 복구를 위한 신호 처리를 수행할 수 있다. The'syndrome' is a value used as a criterion for determining whether there is an error in a bit sequence received from a transmitter to a receiver. For example, if the syndrome value is not zero, it means that an error has occurred, so that the receiver can perform signal processing for error recovery.

또한, 오류 복원을 위해서는 수신된 전체 비트 시퀀스에서 오류가 난 비트의 위치를 알아야 오류가 난 비트를 정정할 수 있다. 오류 위치 산출부(error location calculator)(230)는 오류가 난 비트의 위치를 산출할 수 있다. 오류가 난 비트의 위치를 산출하는 데에는 앞서 구한 신드롬 값이 이용될 수 있다. In addition, in order to recover the error, it is necessary to know the position of the error bit in the entire received sequence of bits to correct the error bit. The error location calculator 230 may calculate the location of the bit in error. The syndrome value previously obtained can be used to calculate the position of the bit that has an error.

오류 수정(error correction)부(250)는 오류 위치 산출부(230)에서 파악된, 오류가 난 비트의 위치에서 해당 비트의 오류를 수정할 수 있다. 오류 수정부(250)는 예를 들어, 오류가 난 비트를 '1'에서 '0'으로, 또는 '0'에서 '1'로 수정할 수 있다.The error correction unit 250 may correct the error of the corresponding bit at the position of the bit where the error occurred, as determined by the error location calculator 230. The error corrector 250 may correct, for example, an error bit from '1' to '0', or from '0' to '1'.

오류 복구 능력이 한 개에 해당하는 해밍 코드의 경우, 신드롬 값은 간단하게 한 개만 구하면 된다. 복수 개의 오류 복구 능력을 가지는 코드를 사용하는 경우, 신드롬 값 또한 복수 개를 구해야 하므로 계산의 복잡도가 증가하게 된다. In the case of a Hamming code that has one error recovery capability, only one syndrome value needs to be obtained. When a code having a plurality of error recovery capabilities is used, computational complexity increases because a plurality of syndrome values must also be obtained.

복수 개의 신드롬 값들을 구해야 할 경우, 신드롬의 차수(order)를 j라고 하고, j번째 신드롬을 Sj 라고 하자. Sj의 보다 자세한 정의 및 수학적인 내용은 뒤에 설명하기로 한다. 신드롬의 차수인 j 값이 높아질수록, 다시 말해 높은 차수의 신드롬 값을 구할수록 계산의 복잡도는 더 증가할 수 있다. When a plurality of syndrome values are to be obtained, let the order of the syndrome be j, and the jth syndrome is S j . More detailed definition and mathematical content of S j will be described later. The complexity of the calculation may increase as the j value, which is the order of the syndrome, increases, that is, as a higher order syndrome value is obtained.

일실시예에서는 복수 개의 오류 정정 능력을 가진 블록 코드에서 j값이 1보다 큰 고차 신드롬(high-order syndrome)의 계산 복잡도를 감소시키는 방법을 설명한다. In one embodiment, a method of reducing computational complexity of a high-order syndrome in which a j value is greater than 1 in a block code having a plurality of error correction capabilities is described.

이하에서는 신드롬 계산 방법을 설명하기에 앞서, 블록 코드의 근간이 되는 갈루아 필드(Galois field) 및 그 연산에 대해 설명한다. Before explaining the method of calculating the syndrome, the Galois field, which is the basis of the block code, and its operation will be described below.

갈루아 필드(Galois field)는 소수 p와 양의 정수 m에 대해 GF(pm) 와 같이 표현할 수 있으며, 유한한 개수의 원소를 가지므로 '유한체(finite field)'라고도 불릴 수 있다. The Galois field can be expressed as GF(p m ) for the prime number p and the positive integer m, and can also be called a'finite field' because it has a finite number of elements.

갈루아 필드 GF(pm)에는 pm 개의 원소가 존재한다. 갈루아 필드에서 이용되는 원시 요소(primitive element) 및 원시 다항식(primitive polynomial)의 정의는 다음과 같다. There are p m elements in the Galois field GF (p m ). The definitions of primitive elements and primitive polynomials used in the Galois field are as follows.

·원시 요소(primitive element):

Figure 112014066840216-pat00001
∈ GF(q)는 GF(q)에서 primitive (q-1)th root of unity를 만족하는 경우, 유한체 GF(q)의 '원시 요소(primitive element)'라고 불린다. 다시 말해, 유한체 GF(q)의 모든 구성 요소들(0는 제외)은 양의 정수 n에 대해 an 와 같이 표현할 수 있다.Primitive elements:
Figure 112014066840216-pat00001
∈ When GF(q) satisfies the primitive (q-1)th root of unity in GF(q), it is called a'primitive element' of the finite body GF(q). In other words, all the components of the finite field GF(q) (except for 0) can be expressed as a n for a positive integer n.

ㆍ원시 다항식(primitive polynomial): GF(p)에서 계수를 가진 다항식 f(x)은 그 차수(degree)가 m 이고, GF(pm) 에서 {0, 1, a, a2, … , a^(pm-2)}를 만족하는 root

Figure 112014066840216-pat00002
를 가지는 경우, '원시 다항식(primitive polynomial)'이라고 불린다. 기약 다항식(irreducible polynomial) f(x)의 차수 m은 f(x) 나누기 (xn + 1)이 n = 2m - 1을 만족하는 최소 양의 정수 n인 경우, '원시(primitive)'라고 불린다.
ㆍprimitive polynomial: polynomial f(x) with coefficients in GF(p) has a degree m , and {0, 1, a, a 2 ,… in GF(p m ). , root satisfying a^(p m -2)}
Figure 112014066840216-pat00002
In the case of having, it is called a'primitive polynomial'. The degree m of the irreducible polynomial f(x) is called'primitive' if the f(x) division (x n + 1) is the smallest positive integer n satisfying n = 2 m -1 Is called.

위와 같은 정의에 따라 갈루아 필드 GF(pm)의 원시 요소(primitive element)를 a라고 하고, m차의 원시 다항식(primitive polynomial)

Figure 112014066840216-pat00003
라고 했을 때,
Figure 112014066840216-pat00004
Figure 112014066840216-pat00005
의 등식이 성립함은 이미 알려져 있다.According to the above definition, the primitive element of the Galois field GF(p m ) is called a, and the m-th primitive polynomial
Figure 112014066840216-pat00003
When I said,
Figure 112014066840216-pat00004
And
Figure 112014066840216-pat00005
It is already known that the equation of.

예를 들어, 만약 m=6 이라면

Figure 112014066840216-pat00006
가 되며,
Figure 112014066840216-pat00007
이 된다. 갈루아 필드 연산에서는 1+1 = 0,
Figure 112014066840216-pat00008
과 같은 모듈로(modulo) 덧셈 연산이 수행되며, 이를 이용하면,
Figure 112014066840216-pat00009
를 얻을 수 있다. For example, if m=6
Figure 112014066840216-pat00006
Becomes
Figure 112014066840216-pat00007
It becomes. 1+1 = 0 in Galois field operations,
Figure 112014066840216-pat00008
Modulo addition operation is performed.
Figure 112014066840216-pat00009
Can get

또한 갈루아 필드 연산에서

Figure 112014066840216-pat00010
와 같은 곱셈 연산이 수행됨을 이용하면,
Figure 112014066840216-pat00011
을 얻을 수 있다. 유사한 갈루아 필드 연산 과정을 이용하면 아래의 [표 1]과 같이 m=6일 경우의 GF(pm) 원소들을 구성할 수 있다.Also in Galois field operations
Figure 112014066840216-pat00010
Using a multiplication operation such as
Figure 112014066840216-pat00011
Can get Using a similar Galois field operation process, as shown in [Table 1] below, GF(p m ) elements when m=6 can be constructed.

[표 1]은 원시 다항식(primitive polynomial) 1+x+x6 에 의해 생성된 GF(26) 의 구성 요소를 나타낸다. Table 1 shows the components of GF(2 6 ) produced by primitive polynomial 1+x+x 6 .

Figure 112014066840216-pat00012
Figure 112014066840216-pat00012

[표 1]에서 첫 번째 열(column)은 원시 요소인 a의 승수를 나타낸 power representation이고, 두 번째 열은 첫 번째 열의 동일한 원소에 대해

Figure 112014066840216-pat00013
로 표현한 polynomial representation에 해당한다. 여기서
Figure 112014066840216-pat00014
은 '0' 혹은 '1'의 값을 가지는 계수(coefficient)에 해당한다. In [Table 1], the first column (column) is a power representation showing the multiplier of the primitive element a, and the second column is for the same element in the first column.
Figure 112014066840216-pat00013
Corresponds to the polynomial representation expressed as. here
Figure 112014066840216-pat00014
Is a coefficient having a value of '0' or '1'.

세 번째 열은 계수

Figure 112014066840216-pat00015
값들을
Figure 112014066840216-pat00016
와 같은 벡터 형태로 나타낸 vector representation에 해당한다. 여기서,
Figure 112014066840216-pat00017
의 승수에 해당하는 정수를 input index로 하고, vector 값을 output으로 하는 look-up table (LUT)를 구성하면 도 3과 같이 표현할 수 있다.The third column is the coefficient
Figure 112014066840216-pat00015
Values
Figure 112014066840216-pat00016
Corresponds to the vector representation represented in the vector form. here,
Figure 112014066840216-pat00017
When an integer corresponding to the multiplier of is set as an input index and a look-up table (LUT) having a vector value as an output is constructed, it can be expressed as in FIG. 3.

도 3은 일반적인 신드롬 계산 방법에 의해 갈루아 필드(Galois field)에서 원시 다항식(primitive polynomial)의 연산에 이용되는 룩-업 테이블(Look-up table (LUT))의 일 예를 도시한 도면이다.
FIG. 3 is a diagram illustrating an example of a look-up table (LUT) used for calculation of a primitive polynomial in a Galois field by a general syndrome calculation method.

이하에서는 신드롬을 구하는 기본적인 수식을 설명한다. Hereinafter, a basic formula for obtaining a syndrome will be described.

수신기가 수신한, 오류가 포함된 n개의 비트들로 구성된 수신 비트 벡터(bit vector)를

Figure 112014066840216-pat00018
로 표현하면, 그 다항식은
Figure 112014066840216-pat00019
로 표현될 수 있다. 이때, j번째 신드롬에 해당하는
Figure 112014066840216-pat00020
는 다음의 <수학식 1>과 같이 구할 수 있다. The received bit vector of n bits containing errors received by the receiver
Figure 112014066840216-pat00018
In terms of, the polynomial
Figure 112014066840216-pat00019
Can be expressed as At this time, it corresponds to the jth syndrome
Figure 112014066840216-pat00020
Can be obtained as <Equation 1> below.

Figure 112014066840216-pat00021
Figure 112014066840216-pat00021

여기서,

Figure 112014066840216-pat00022
는 위에서 설명한 GF(pm)의 primitive element에 해당하고, n=2m-1가 된다.
here,
Figure 112014066840216-pat00022
Is the primitive element of GF(p m ) described above, and n=2 m -1.

전술한 바와 같이, 신드롬을 구하는 과정은 블록 코드의 디코딩 시에 첫 번째로 수행되는 신호 처리 과정이다. 신드롬의 값이 '0'이 아니면, 수신된 비트들에 오류가 발생하여 정정이 필요한 상태임을 의미한다.As described above, the process of obtaining a syndrome is a signal processing process that is first performed when decoding a block code. If the syndrome value is not '0', it means that an error has occurred in the received bits and correction is necessary.

아래에서는 S3을 구하는 일반적인 신드롬 계산 방법을 설명한다. The following describes a general syndrome calculation method for obtaining S 3 .

상술한 <수학식 1>을 활용하면 S3는 다음과 같이 표현할 수 있다.Using <Equation 1> described above, S 3 can be expressed as follows.

Figure 112014066840216-pat00023
Figure 112014066840216-pat00023

여기서,

Figure 112014066840216-pat00024
은 m개의 비트들로 구성된 vector인
Figure 112014066840216-pat00025
Figure 112014066840216-pat00026
번째 값에 해당하며,
Figure 112014066840216-pat00027
는 아래와 같이 구할 수 있다.
here,
Figure 112014066840216-pat00024
Is a vector of m bits
Figure 112014066840216-pat00025
of
Figure 112014066840216-pat00026
Corresponds to the first value,
Figure 112014066840216-pat00027
Can be obtained as follows.

여기서,

Figure 112014066840216-pat00028
는 도 3의 LUT 함수(function)에 해당하며
Figure 112014066840216-pat00029
관계를 만족한다. here,
Figure 112014066840216-pat00028
3 corresponds to the LUT function of FIG. 3,
Figure 112014066840216-pat00029
Satisfy the relationship.

보다 쉽게 위 신호 처리를 설명하기 위해, m=6, n=2m-1=63 이고,

Figure 112014066840216-pat00030
인 경우를 가정하면,
Figure 112014066840216-pat00031
가 얻어진다.To more easily illustrate the above signal processing, m=6, n=2 m -1=63,
Figure 112014066840216-pat00030
Assuming that
Figure 112014066840216-pat00031
Is obtained.

결과적으로 S3에 대한 신드롬을 구하는 과정은 점점 증가하는 승수의

Figure 112014066840216-pat00032
값을 구하여 이를 더하는 과정에 해당한다. 일반적인 신드롬 계산 방법에 의해 S3에 대한 신드롬을 구하는 과정은 도 4와 같이 표현될 수 있다.
As a result, the process of obtaining the syndrome for S 3 is
Figure 112014066840216-pat00032
It corresponds to the process of obtaining a value and adding it. The process of obtaining a syndrome for S 3 by a general syndrome calculation method may be expressed as shown in FIG. 4.

도 4는 일반적인 신드롬 방법에 의해 m=6, n=63인 경우에 S3을 계산하는 과정을 나타낸 도면이다. 4 is a diagram illustrating a process of calculating S 3 when m=6 and n=63 by a general syndrome method.

도 4를 참조하면, 일반적인 신드롬 방법은 첫 번째 열의

Figure 112014066840216-pat00033
의 승수값을 구할 때, 비트 시퀀스의 인덱스(index)에 신드롬의 차수(syndrome order)에 해당하는 값을 곱하는 과정을 수행한다. Referring to Figure 4, the general syndrome method is the first column
Figure 112014066840216-pat00033
When obtaining the multiplier value of, the process of multiplying the index of the bit sequence by the value corresponding to the syndrome order.

그리고, 두 번째 열에서 일반적인 신드롬 방법은 앞서 구한 승수에 modulo-(2m-1), 다시 말해 modulo-63 연산을 수행한다. 전술한 바와 같이 갈루아 필드에서는

Figure 112014066840216-pat00034
의 성질을 만족하고,
Figure 112014066840216-pat00035
의 승수값에 modulo-(2m-1)를 취해도 동일한 값을 가지므로 modulo-63 연산을 수행하는 것이다. In addition, in the second column, the general syndrome method performs modulo-(2 m -1), that is, modulo-63 operation on the multiplier obtained above. In the Galois field as mentioned above
Figure 112014066840216-pat00034
Satisfies the nature of,
Figure 112014066840216-pat00035
Even if modulo-(2 m -1) is taken as the multiplier value of, the modulo-63 operation is performed because it has the same value.

일반적인 신드롬 방법은 modulo-63 연산을 수행한 후의

Figure 112014066840216-pat00036
승수값 결과를 입력 값으로 했을 때의 룩업 테이블의 출력 벡터(LUT_output_vector)를 찾아서 구하고, 이를 출력으로 내보내는 과정을 수행할 수 있다. The general syndrome method is after modulo-63 operation.
Figure 112014066840216-pat00036
The process of finding and obtaining the output vector (LUT_output_vector) of the lookup table when the multiplier result is an input value and exporting it to the output may be performed.

일반적인 신드롬 방법은 이렇게 구한 각 출력 벡터들에 대해 bitwise XOR 연산을 수행하고, 그 최종값에 해당하는

Figure 112014066840216-pat00037
값들을 계수로 하여 신드롬
Figure 112014066840216-pat00038
를 구할 수 있다. The general syndrome method performs bitwise XOR operation on each output vector obtained in this way, and corresponds to the final value.
Figure 112014066840216-pat00037
Syndrome with values as coefficients
Figure 112014066840216-pat00038
Can be obtained.

하지만, 상술한 일반적인 신드롬 계산 방법은 곱셈 연산, 모듈로(modulo) 연산 등을 필요로 한다. 또한, 일반적인 신드롬 계산 방법은 룩업 테이블(LUT)을 구성하기 위해 큰 사이즈의 비트 정보를 저장하기 위한 저장 공간을 필요로 한다. However, the above-described general syndrome calculation method requires a multiplication operation, a modulo operation, and the like. In addition, a general syndrome calculation method requires storage space for storing bit information of a large size in order to construct a look-up table (LUT).

이 밖에도, 일반적인 신드롬 계산 방법의 경우, 입력 인덱스(input index)를 가지고 이에 매핑(mapping)된 저장 정보를 찾기 위한 지속적인 탐색 과정이 수행되어야 하므로 빈번한 룩업 테이블 함수 호출(LUT function call)이 이루어진다. 빈번한 룩업 테이블 함수 호출은 동작 복잡도의 증가 및 전력 소모 증가 등을 수반한다.
In addition, in the case of a general syndrome calculation method, a frequent lookup table function call is made because a continuous search process for finding stored information mapped to an input index must be performed. Frequent lookup table function calls entail increased operational complexity and increased power consumption.

도 5는 일실시예에 따른 고차 신드롬 계산기(high-order syndrome calculator)의 블록도이다. 5 is a block diagram of a high-order syndrome calculator according to an embodiment.

도 5를 참조하면, 일실시예에 따른 고차 신드롬 계산기(500)는 직렬-병렬 변환기(serial-to-parallel converter)(510), XOR 연산기(XOR operator)(530), 제로 보간부(zero interpolator)(550), 및 선형 피드백 쉬프트 레지스터(Linear Feedback Shift Register; LFSR)(570)를 포함한다. Referring to FIG. 5, a high-order syndrome calculator 500 according to an embodiment includes a serial-to-parallel converter 510, an XOR operator 530, and a zero interpolator. ) 550, and a Linear Feedback Shift Register (LFSR) 570.

직렬-병렬 변환기(510)는 송신기로부터 수신된 직렬의 비트 시퀀스들을 병렬의 다중 스트림으로 변환할 수 있다. The serial-parallel converter 510 may convert serial bit sequences received from a transmitter into multiple streams in parallel.

직렬-병렬 변환기(510)는 송신기로부터 수신된 직렬의 비트 시퀀스들을 D = n/j 를 만족하는 특정 비트 수(D)의 정수 배만큼 지연시켜 L (L ≥1인 자연수) 비트의 다중 스트림으로 변환할 수 있다. 여기서, n은 블록 코드(block code)의 블록 사이즈(block size)이고, j는 구하고자 하는 신드롬(syndrome)의 차수(order)이며, n/j는 정수이다. The serial-to-parallel converter 510 delays the sequence of bit sequences received from the transmitter by an integer multiple of a specific number of bits (D) satisfying D = n/j into multiple streams of L (natural numbers with L ≥ 1) bits. Can be converted. Here, n is the block size of the block code, j is the order of the syndrome to be obtained, and n/j is an integer.

XOR 연산기(530)는 직렬-병렬 변환기(510)에서 변환된, 병렬의 다중 스트림의 각 비트 값에 대하여 XOR(exclusive OR) 연산을 수행할 수 있다. XOR 연산기(530)는 예를 들어, 첫 번째 다중 스트림이

Figure 112014066840216-pat00039
이고, 두 번째 다중 스트림이
Figure 112014066840216-pat00040
인 경우,
Figure 112014066840216-pat00041
와 같이 각 비트 값에 대하여 XOR(exclusive OR) 연산을 수행할 수 있다. 여기서,
Figure 112014066840216-pat00042
는 XOR(exclusive OR), 다시 말해 modulo-2 연산을 뜻한다. The XOR operator 530 may perform an XOR (exclusive OR) operation on each bit value of multiple streams in parallel, converted by the serial-to-parallel converter 510. XOR operator 530, for example, the first multiple stream
Figure 112014066840216-pat00039
And the second multiple stream
Figure 112014066840216-pat00040
If it is,
Figure 112014066840216-pat00041
As described above, an XOR (exclusive OR) operation can be performed on each bit value. here,
Figure 112014066840216-pat00042
Means XOR (exclusive OR), that is, modulo-2 operation.

제로 보간부(550)는 XOR 연산기(530)에서 XOR 연산이 수행된 각 비트 사이에 제로 값들을 삽입할 수 있다. 제로 보간부(550)는 XOR 연산이 수행된 다중 스트림의 각 비트 사이에 N 개(N = L-1)의 제로 값들을 주기적으로(periodically) 삽입할 수 있다. The zero interpolation unit 550 may insert zero values between each bit in which the XOR operation is performed in the XOR operator 530. The zero interpolation unit 550 may periodically insert N (N = L-1) zero values between each bit of the multi-stream in which the XOR operation is performed.

제로 보간부(550)는 직렬-병렬 변환기(510)에서 계산된 특정 비트 수(D), 다시 말해 n/j 값이 정수가 아닌 경우, XOR 연산이 수행된 다중 스트림의 각 비트 사이에 N 개(N = j-1)의 제로 값들을 주기적으로(periodically) 삽입할 수 있다.The zero interpolation unit 550 is N number between each bit of a multi-stream in which an XOR operation is performed when a specific number of bits D calculated by the serial-to-parallel converter 510, that is, when an n/j value is not an integer Zero values of (N = j-1) can be inserted periodically.

선형 피드백 쉬프트 레지스터(570)는 제로 보간부(550)에서 제로 값들이 삽입된 다중 스트림으로부터 생성되는 다항식(polynomial)을 원시 다항식(primitive polynomial)으로 나눈 나머지(remainder)의 계수(coefficient)에 의해 고차 신드롬 값을 산출할 수 있다.
The linear feedback shift register 570 is higher order by the coefficient of the remainder divided by the polynomial generated from multiple streams in which zero values are inserted in the zero interpolator 550 by the primitive polynomial. The syndrome value can be calculated.

도 6은 도 5의 고차 신드롬 계산기(high-order syndrome calculator)의 구조를 구체적으로 나타낸 도면이다. FIG. 6 is a diagram specifically showing the structure of the high-order syndrome calculator of FIG. 5.

도 6을 참조하면, 일실시예에 따른 고차 신드롬 계산기(600)는 직렬-병렬 변환기(serial-to-parallel converter)(610), XOR 연산기(XOR operator)(630), 제로 보간부(zero interpolator)(650), 및 선형 피드백 쉬프트 레지스터(Linear Feedback Shift Register; LFSR)(670)를 포함한다.Referring to FIG. 6, the high-order syndrome calculator 600 according to an embodiment includes a serial-to-parallel converter 610, an XOR operator 630, and a zero interpolator. ) 650, and Linear Feedback Shift Register (LFSR) 670.

도 6에서 송신기로부터 수신된 직렬의 비트 시퀀스는 먼저 직렬-병렬 변환기(610)를 거치게 된다. 직렬-병렬 변환기(610)는 L-1 개의 지연 요소들을 포함할 수 있다. 여기서, 지연 요소들은 예를 들어, 플립 플롭(flip-flop) 혹은 단위 지연 요소(unit-delay element)에 해당하는 레지스터(register)일 수 있다. The serial bit sequence received from the transmitter in FIG. 6 first passes through the serial-parallel converter 610. The serial-to-parallel converter 610 may include L-1 delay elements. Here, the delay elements may be, for example, a flip-flop or a register corresponding to a unit-delay element.

직렬-병렬 변환기(610)는 다중 스트림의 첫 번째 비트에는 입력된 비트 시퀀스를 지연없이 입력하고, 다중 스트림의 L 번째 비트에는 비트 시퀀스를 (L-1) X D 개의 비트 수만큼 지연시켜 입력한다.The serial-to-parallel converter 610 inputs the bit sequence input to the first bit of the multiple stream without delay, and inputs the bit sequence to the Lth bit of the multiple stream by delaying (L-1) X D bits.

예를 들어, 직렬-병렬 변환기(610)가 직렬의 비트 시퀀스를 L 비트의 다중 스트림으로 변환한다고 하자. 이때, 직렬-병렬 변환기(610)는 L개의 병렬 경로(parallel path)들로 구성되고, 직렬-병렬 변환기(610)는 수신된 비트 시퀀스를 L개의 병렬 경로들에 대해 특정 비트 수(D)의 정수 배 시간만큼 지연시켜 입력시킬 수 있다. For example, suppose the serial-to-parallel converter 610 converts a series of bit sequences into multiple streams of L bits. At this time, the serial-to-parallel converter 610 is composed of L parallel paths (parallel path), the serial-to-parallel converter 610 is the received bit sequence of the specific number of bits (D) for the L parallel paths It can be input by delaying by an integer multiple of time.

첫 번째 경로에는 수신된 비트 시퀀스가 지연되지 않고 그대로 입력되고, 두 번째 경로에는 첫 번째 경로 대비 D개의 비트 수만큼 지연된 비트 시퀀스가 입력되며, 세 번째 경로에는 첫 번째 경로 대비 2 x D개의 비트 수만큼 지연된 비트 시퀀스가 입력될 수 있다. 이러한 방식으로 L번째 경로에는 첫 번째 경로 대비 (L-1) x D개의 비트 수만큼 지연된 비트 시퀀스가 입력될 수 있다. The received bit sequence is input as it is without delay in the first path, the bit sequence delayed by the number of D bits compared to the first path is input in the second path, and the number of 2 x D bits is compared to the first path in the third path. A bit sequence delayed by as much as it can be input. In this way, a bit sequence delayed by (L-1) x D bits compared to the first path may be input to the L-th path.

XOR 연산기(630)는 병렬의 다중 스트림의 각 비트 값에 대하여 상술한 바와 같이 XOR 연산을 수행할 수 있다. The XOR operator 630 may perform an XOR operation as described above for each bit value of multiple streams in parallel.

제로 보간부(650)는 XOR 연산이 수행된 다중 스트림의 각 비트 사이에 N 개(N = L-1)의 제로 값들을 주기적으로(periodically) 삽입할 수 있다. 여기서, L, D 및 N값의 설정하는 방법을 예를 들어 설명하면 다음과 같다. The zero interpolation unit 650 may periodically insert N (N = L-1) zero values between each bit of a multi-stream in which an XOR operation is performed. Here, the method of setting the L, D and N values will be described as an example.

만약, 블록 코드(block code)의 블록 사이즈(block size)가 n이고, 구하고자 하는 신드롬의 차수(syndrome order)가 j이면(다시 말해,

Figure 112014066840216-pat00043
를 구하고자 할 때), 고차 신드롬 계산기(600)는 L = j, D = n/j, N = L-1 과 같은 값을 취할 수 있다. If the block size of the block code is n and the syndrome order to be calculated is j (in other words,
Figure 112014066840216-pat00043
), the higher order syndrome calculator 600 may take values such as L = j, D = n/j, and N = L-1.

만약, n/j 값이 정수값이 되지 않는 경우, 고차 신드롬 계산기(600)는 L = 1, D = 0, N = j-1 로 각 값을 설정할 수도 있다. 이때, 고차 신드롬 계산기(600)에서는 직렬-병렬 변환기(610)의 변환 과정이 수행되지 않고, 수신된 그대로의 비트 시퀀스에 대하여 제로 보간부(650)에 의한 제로 보간(zero interpolation)이 수행될 수 있다. If the n/j value does not become an integer value, the higher order syndrome calculator 600 may set each value as L = 1, D = 0, and N = j-1. At this time, in the high-order syndrome calculator 600, the conversion process of the serial-to-parallel converter 610 is not performed, and zero interpolation by the zero interpolation unit 650 may be performed on the received bit sequence. have.

제로 보간부(650)에서 제로 값들이 삽입된 다중 스트림은 선형 피드백 쉬프트 레지스터(LFSR)(670)의 입력으로 인가될 수 있다. The multiple streams with zero values inserted in the zero interpolation unit 650 may be applied as an input of the linear feedback shift register (LFSR) 670.

도 6에 도시된 FF(673)는 예를 들어, 플립 플롭(flip-flop) 혹은 단위 지연 요소(unit-delay element)에 해당하는 레지스터(register)일 수 있다. The FF 673 illustrated in FIG. 6 may be, for example, a register corresponding to a flip-flop or unit-delay element.

선형 피드백 쉬프트 레지스터(LFSR)(670)에서 FF(673)는 n=2m-1의 관계식을 만족하는 m에 해당하는 수만큼 존재할 수 있다. 선형 피드백 쉬프트 레지스터(LFSR)(670)에서

Figure 112014066840216-pat00044
는 '0' 혹은 '1' 값을 가질 수 있다. In the linear feedback shift register (LFSR) 670, FF 673 may exist as many as m corresponding to a relational expression of n=2 m -1. In Linear Feedback Shift Register (LFSR) 670
Figure 112014066840216-pat00044
May have a value of '0' or '1'.

선형 피드백 쉬프트 레지스터(LFSR)(670)에서 만약,

Figure 112014066840216-pat00045
이 '0' 값을 가지는 경우에는 XOR 연산기(671)으로 연결되는 선이 존재하지 않고,
Figure 112014066840216-pat00046
이 '1' 값을 가지는 경우에는 XOR 연산기(671)으로 연결되는 선이 존재한다. In the linear feedback shift register (LFSR) 670,
Figure 112014066840216-pat00045
If it has this '0' value, there is no line connected to the XOR operator 671,
Figure 112014066840216-pat00046
In the case of having this '1' value, a line connected to the XOR operator 671 exists.

이때,

Figure 112014066840216-pat00047
는 앞서 설명한, 그 차수(degree)가 m인 원시 다항식(primitive polynomial)
Figure 112014066840216-pat00048
의 계수를 뜻하며,
Figure 112014066840216-pat00049
의 관계를 만족한다. At this time,
Figure 112014066840216-pat00047
Is the primitive polynomial whose degree is m, as described above.
Figure 112014066840216-pat00048
Means the coefficient of
Figure 112014066840216-pat00049
Satisfies the relationship.

선형 피드백 쉬프트 레지스터(LFSR)(670)의 입력값들이 모두 입력되고 난 후 마지막에 저장된

Figure 112014066840216-pat00050
번째 FF값을
Figure 112014066840216-pat00051
라고 하면, 고차 신드롬(high-order syndrome) 값은 그 계수들로 구성한
Figure 112014066840216-pat00052
에 의해 구할 수 있다. After the input values of the linear feedback shift register (LFSR) 670 are all input, the last stored value
Figure 112014066840216-pat00050
The first FF value
Figure 112014066840216-pat00051
Speaking of, the high-order syndrome value is composed of the coefficients.
Figure 112014066840216-pat00052
Can be obtained by

선형 피드백 쉬프트 레지스터(LFSR)(670)의 구조는 입력된 다항식(input polynomial)을 원시 다항식(primitive polynomial)

Figure 112014066840216-pat00053
로 나눈 나머지(remainder)에 해당하는 결과를 출력할 수 있다. The structure of the linear feedback shift register (LFSR) 670 is an input polynomial to a primitive polynomial.
Figure 112014066840216-pat00053
The result corresponding to the remainder divided by (remainder) can be output.

선형 피드백 쉬프트 레지스터(LFSR)(670)가 입력 시퀀스를 모두 받아들인 순간에 FF(673)들에 저장된 값이, 입력된 다항식을

Figure 112014066840216-pat00054
로 나누었을 때의 나머지 다항식의 계수(coefficient)에 해당한다.When the linear feedback shift register (LFSR) 670 accepts all input sequences, the values stored in the FFs 673 are input polynomials.
Figure 112014066840216-pat00054
Corresponds to the coefficient of the remainder polynomial when divided by.

일실시예에 따른 신드롬 계산기(600)의 동작을 보다 자세히 설명하기 위해서

Figure 112014066840216-pat00055
에 대한 신드롬을 구하는 과정을 예를 들어 설명한다. To describe the operation of the syndrome calculator 600 according to an embodiment in more detail
Figure 112014066840216-pat00055
The process of obtaining a syndrome for an example is explained.

예를 들어, m=6, n=2m-1=63 인 경우, S3를 구하는 전체 동작을 수식으로 표현하면 다음의 <수학식 2>와 같다. For example, in the case of m=6, n=2 m -1=63, the overall operation for obtaining S 3 is expressed as Equation 2 below.

Figure 112014066840216-pat00056
Figure 112014066840216-pat00056

여기서,

Figure 112014066840216-pat00057
는 전술한 바와 같이 수신된 다항식(received polynomial)을 뜻하고,
Figure 112014066840216-pat00058
Figure 112014066840216-pat00059
각각은 수신된 다항식을 원시 다항식(primitive polynomial)인
Figure 112014066840216-pat00060
로 나누었을 때, 몫(quotient)과 나머지(remainder)에 해당한다.
here,
Figure 112014066840216-pat00057
Means the received polynomial as described above,
Figure 112014066840216-pat00058
And
Figure 112014066840216-pat00059
Each received polynomial is a primitive polynomial.
Figure 112014066840216-pat00060
When divided by, it corresponds to quotient and remainder.

갈루아 필드에서는 원시 요소(primitive element)인

Figure 112014066840216-pat00061
에 대해
Figure 112014066840216-pat00062
를 만족하므로 <수학식 2>의 마지막 등호 결과가 유도된다. In the Galois field, it is a primitive element
Figure 112014066840216-pat00061
About
Figure 112014066840216-pat00062
Is satisfied, the result of the last equal sign in <Equation 2> is derived.

보다 쉽게 설명하기 위해, n=63 인 경우에

Figure 112014066840216-pat00063
를 구하는 방법을 일실시예에 따른 고차 신드롬 계산기와 함께 직관적으로 표현하면 도 7과 같다.
For easier explanation, if n=63
Figure 112014066840216-pat00063
If the method for obtaining is intuitively expressed together with the high-order syndrome calculator according to an embodiment, it is as shown in FIG. 7.

도 7은 m=6, n=63인 경우에 S3을 구하기 위해 일실시예에 따른 고차 신드롬 계산기(high-order syndrome calculator)의 각 부분에서 수행되는 동작을 설명하기 위한 도면이다. 7 is a view for explaining the operation performed in each part of the high-order syndrome calculator (high-order syndrome calculator) according to an embodiment to obtain S 3 in the case of m=6 and n=63.

도 7의 수식에서, 예를 들어,

Figure 112014066840216-pat00064
와 같이 3개의 값들이 서로 묶어서 한 항으로 표현된 것을 볼 수 있다. 이와 같은 표현 가능한 이유는 앞서 설명한 바와 같이 갈루아 필드에서는
Figure 112014066840216-pat00065
의 성질을 만족하므로, m=6인 경우,
Figure 112014066840216-pat00066
이 만족되고,
Figure 112014066840216-pat00067
이 만족되기 때문이다. In the formula of Figure 7, for example,
Figure 112014066840216-pat00064
You can see that the three values are grouped together and expressed as one term. The reason for this can be expressed in the Galois field, as explained earlier.
Figure 112014066840216-pat00065
Since m = 6,
Figure 112014066840216-pat00066
Is satisfied,
Figure 112014066840216-pat00067
Because it is satisfied.

갈루아 필드에서는

Figure 112014066840216-pat00068
의 성질을 이용하여 최초 S3 수식에서 3개의 값들을 한 항으로 묶어서 701과 같은 두 번째 S3 수식을 유도할 수 있다. In the Galois field
Figure 112014066840216-pat00068
By binding by the use of the properties of the three values in the first equation S 3 with one of the preceding may derive a second equation S 3, such as 701.

도 7에서 첫 번째 S3 수식과 같이, 입력된 직렬의 비트 시퀀스들을 특정 비트 수의 정수 배만큼 지연시켜 병렬 경로에 위치시키는 과정은 직렬-병렬 변환기(710)에 의해 수행될 수 있다. As shown in the first S 3 equation in FIG. 7, a process of delaying an input serial bit sequence by an integer multiple of a specific number of bits and placing it in a parallel path may be performed by the serial-parallel converter 710.

두 번째 S3 수식(701)에서 다중 스트림의 각 비트 값에 대한 XOR 연산은 XOR 연산기(730)에 의해 수행될 수 있다. In the second S 3 equation 701, the XOR operation for each bit value of the multiple streams may be performed by the XOR operator 730.

이를 설명하면 다음과 같다. The explanation is as follows.

먼저, 시간적으로 가장 먼저 수신된 비트가

Figure 112014066840216-pat00069
이고 가장 나중에 수신된 비트가
Figure 112014066840216-pat00070
라고 가정하자. First, the first bit received in time
Figure 112014066840216-pat00069
And the last received bit
Figure 112014066840216-pat00070
Suppose

이때, 직렬-병렬 변환기(710)는 첫 번째 경로에서 비트 스트림이 순서대로

Figure 112014066840216-pat00071
로 들어오는 것처럼 처리하고, 두 번째 경로에서는 이보다 21 샘플만큼 시간 지연된
Figure 112014066840216-pat00072
스트림이 들어오는 것처럼 처리할 수 있다. 직렬-병렬 변환기(710)는 세 번째 경로에서는 첫 번째 경로보다 42(21 X 2) 샘플만큼 시간 지연된
Figure 112014066840216-pat00073
스트림이 들어오는 것처럼 처리할 수 있다. At this time, the serial-to-parallel converter 710, the bit stream in the first path in order
Figure 112014066840216-pat00071
It is treated as if it is coming in, and the second path is delayed by 21 samples.
Figure 112014066840216-pat00072
You can treat the stream as if it came in. The serial-to-parallel converter 710 is time delayed by 42 (21 X 2) samples from the first path in the third path.
Figure 112014066840216-pat00073
You can treat the stream as if it came in.

XOR 연산기(730)는 매 순간마다 병렬로 입력되는 스트림의 비트값들은 XOR 연산 처리하여 출력할 수 있다. The XOR operator 730 may output the bit values of a stream input in parallel at every instant by performing an XOR operation.

XOR 연산기(730)를 거친 결과는

Figure 112014066840216-pat00074
의 승수값이 3만큼 증가하게 되므로, 제로 보간부(750)는 701의 각 값들 사이에 존재하는
Figure 112014066840216-pat00075
의 항들을 703과 같이 인위적으로 삽입하게 된다. 이때, 삽입된
Figure 112014066840216-pat00076
항들의 계수(coefficient)는 제로(zero)('0')로 설정될 수 있다. 제로 보간부(750)가 계수가 제로인 항들을 삽입하는 이유는 다음과 같다. The result of going through the XOR operator 730 is
Figure 112014066840216-pat00074
Since the multiplier value of is increased by 3, the zero interpolation unit 750 exists between each value of 701
Figure 112014066840216-pat00075
The terms of artificially are inserted like 703. At this time, inserted
Figure 112014066840216-pat00076
The coefficient of terms can be set to zero ('0'). The reason why the zero interpolation unit 750 inserts terms with a coefficient of zero is as follows.

갈루아 필드에서 임의의 다항식

Figure 112014066840216-pat00077
을 어떤 다른 다항식
Figure 112014066840216-pat00078
으로 나누었을 때, 나머지(remainder)에 해당하는 다항식
Figure 112014066840216-pat00079
를 구하는 신호 처리는 선형 피드백 쉬프트 레지스터(LFSR)(770)에 의해 쉽게 구할 수 있음이 이미 알려져 있다. Random polynomial in the Galois field
Figure 112014066840216-pat00077
Any other polynomial
Figure 112014066840216-pat00078
Divided by, polynomial corresponding to the remainder
Figure 112014066840216-pat00079
It is already known that signal processing for obtaining can be easily obtained by a linear feedback shift register (LFSR) 770.

이때, 선형 피드백 쉬프트 레지스터(LFSR)(770)의 입력으로 인가되는 시퀀스(다중 스트림)은 다항식

Figure 112014066840216-pat00080
Figure 112014066840216-pat00081
항의 계수들로 구성된 시퀀스이다. At this time, the sequence applied to the input of the linear feedback shift register (LFSR) 770 (multi-stream) is a polynomial
Figure 112014066840216-pat00080
of
Figure 112014066840216-pat00081
This is a sequence of terms coefficients.

선형 피드백 쉬프트 레지스터(LFSR)(770)에서는 승수에 해당하는

Figure 112014066840216-pat00082
가 변화함에 따라
Figure 112014066840216-pat00083
항의 계수에 해당하는 시퀀스가 중간에 빠짐없이 입력되어야 최종적으로 FF에 저장된 값으로 나머지 다항식(R(a))을 구할 수 있다. 일실시예에서는
Figure 112014066840216-pat00084
항의 계수에 해당하는 시퀀스가 중간에 빠짐없이 입력될 수 있도록, 제로 보간부(750)에 의해 703과 같이 인위적으로 제로(zero)를 계수로 설정한
Figure 112014066840216-pat00085
항들을 삽입할 수 있다. The linear feedback shift register (LFSR) 770 corresponds to a multiplier
Figure 112014066840216-pat00082
As it changes
Figure 112014066840216-pat00083
The sequence corresponding to the coefficient of the term must be entered without fail in the middle to finally obtain the remaining polynomial (R(a)) as the value stored in FF. In one embodiment
Figure 112014066840216-pat00084
The zero interpolation unit 750 artificially sets zero as a coefficient, such as 703, so that a sequence corresponding to the coefficient of the term can be inputted without interruption in the middle.
Figure 112014066840216-pat00085
You can insert terms.

제로 값들이 삽입된 다중 스트림으로부터 생성되는 다항식(polynomial)을 입력으로 인가하면, 선형 피드백 쉬프트 레지스터(LFSR)(770)는 FF들에 마지막으로 저장된 값들을 이용하여 S3를 구할 수 있다.When a polynomial generated from multiple streams with zero values inserted is applied as an input, the linear feedback shift register (LFSR) 770 can obtain S 3 using the last values stored in FFs.

앞서 설명한 바와 같이, 선형 피드백 쉬프트 레지스터(LFSR)(770)는 입력된 다항식(제로 값들이 삽입된 다항식)을 원시 다항식(primitive polynomial)으로 나누고 난 후, 나머지(remainder)에 해당하는 다항식의 정보(나머지에 해당하는 다항식의 계수(coefficient))를 구할 수 있다. As described above, the linear feedback shift register (LFSR) 770 divides the input polynomial (the polynomial with zero values) into a primitive polynomial, and then the polynomial information corresponding to the remainder (remainder) ( The coefficient of the polynomial corresponding to the rest can be obtained.

선형 피드백 쉬프트 레지스터(LFSR)(770)의 입력으로 인가되는 값은 다항식 형태에서

Figure 112014066840216-pat00086
항의 계수에 해당하는 비트 시퀀스이다. 이러한 비트 시퀀스가 모두 입력되고 난 후, 선형 피드백 쉬프트 레지스터(LFSR)(770)에 저장된
Figure 112014066840216-pat00087
번째 FF 값을
Figure 112014066840216-pat00088
라고 하면,
Figure 112014066840216-pat00089
와 같이 구할 수 있다. The value applied to the input of the linear feedback shift register (LFSR) 770 is in the polynomial form.
Figure 112014066840216-pat00086
A bit sequence corresponding to the coefficient of the term. After all of these bit sequences are input, they are stored in the linear feedback shift register (LFSR) 770.
Figure 112014066840216-pat00087
The first FF value
Figure 112014066840216-pat00088
Speaking of,
Figure 112014066840216-pat00089
Can be obtained as

m=6인 경우에 원시 다항식(primitive polynomial)은

Figure 112014066840216-pat00090
이고,
Figure 112014066840216-pat00091
가 되므로, 선형 피드백 쉬프트 레지스터(LFSR)(770)에서
Figure 112014066840216-pat00092
에 해당하는 라인은 연결되고,
Figure 112014066840216-pat00093
에 해당하는 라인은 연결되지 않는다.
When m=6, the primitive polynomial
Figure 112014066840216-pat00090
ego,
Figure 112014066840216-pat00091
In the linear feedback shift register (LFSR) 770
Figure 112014066840216-pat00092
The line corresponding to is connected,
Figure 112014066840216-pat00093
The line corresponding to is not connected.

지금까지는 이진 블록 코드를 사용하는 경우의 고차 신드롬 계산기의 동작을 가정하여 설명하였으나, 일실시예에 따른 고차 신드롬 계산기는 예를 들어, RS 코드와 같은 비이진 코드(non-binary code)에도 동일하게 활용할 수 있다. 비이진 코드(non-binary code)의 경우, 한 개의 비트 단위 대신 복수(m) 개의 비트로 구성된 심볼 단위로 신호 처리를 수행하게 된다는 점만이 달라진다. So far, the operation of the high-order syndrome calculator in the case of using a binary block code has been described, but the high-order syndrome calculator according to an embodiment is the same for non-binary codes such as, for example, RS codes. Can be utilized. In the case of non-binary code, the only difference is that signal processing is performed in a symbol unit composed of a plurality of (m) bits instead of one bit unit.

예를 들어, 직렬-병렬 변환기(710)에서는 심볼 단위로 신호가 입력되고, 제로 보간부(750) 또한 N개의 제로 심볼들을 삽입할 수 있다. 이때, 하나의 제로 심볼은 m개의 제로 비트들로 구성될 수 있다. 또한, 선형 피드백 쉬프트 레지스터(LFSR)(770)에 포함된 FF들에는 m개의 비트들로 구성된 심볼들이 저장될 수 있다. For example, in the serial-to-parallel converter 710, a signal is input in units of symbols, and the zero interpolation unit 750 may also insert N zero symbols. At this time, one zero symbol may be composed of m zero bits. Also, symbols composed of m bits may be stored in the FFs included in the linear feedback shift register (LFSR) 770.

심볼 단위로 구성된 비트 시퀀스들에 대한 신드롬 값을 계산하는 고차 신드롬 계산기에 대하여는 도 8을 참조하여 설명한다.
A high-order syndrome calculator that calculates syndrome values for bit sequences composed of symbol units will be described with reference to FIG. 8.

도 8은 다른 실시예에 따른 고차 신드롬 계산기의 블록도이다. 8 is a block diagram of a higher-order syndrome calculator according to another embodiment.

도 8을 참조하면, 심볼 단위로 구성된 비트 시퀀스들에 대한 신드롬 값을 계산하는 고차 신드롬 계산기의 구조가 도시된다. Referring to FIG. 8, a structure of a higher-order syndrome calculator for calculating syndrome values for bit sequences composed of symbol units is illustrated.

고차 신드롬 계산기(800)는 직렬-병렬 변환기(serial-to-parallel converter)(810), XOR 연산기(XOR operator)(830), 제로 보간부(zero interpolator)(850), 및 선형 피드백 쉬프트 레지스터(Linear Feedback Shift Register; LFSR)(870)를 포함할 수 있다.The higher order syndrome calculator 800 includes a serial-to-parallel converter 810, an XOR operator 830, a zero interpolator 850, and a linear feedback shift register ( Linear Feedback Shift Register (LFSR) 870.

직렬-병렬 변환기(810)는 송신기로부터 수신된 직렬의 비트 시퀀스들을, 심볼 단위로 구성된 병렬의 다중 스트림으로 변환할 수 있다. 여기서, 심볼 단위는 복수 개의 비트들을 포함할 수 있다. The serial-to-parallel converter 810 may convert serial bit sequences received from a transmitter into multiple parallel streams composed of symbol units. Here, the symbol unit may include a plurality of bits.

직렬-병렬 변환기(810)는 송신기로부터 수신된 직렬의 비트 시퀀스들을 D = n/j을 만족하는 특정 비트 수(D)의 정수 배만큼 지연시켜 심볼 단위 x L(L ≥1인 자연수) 비트의 다중 스트림으로 변환할 수 있다. 여기서, n은 상기 심볼 단위를 만족하는 블록 코드(block code)의 블록 사이즈(block size)이고, j는 구하고자 하는 신드롬(syndrome)의 차수(order)이며, n/j 은 정수일 수 있다. The serial-to-parallel converter 810 delays the sequence of bit sequences received from the transmitter by an integer multiple of a specific number of bits (D) that satisfies D = n/j so that the symbol unit x L (natural number with L ≥ 1) bits. Can be converted to multiple streams. Here, n is a block size of a block code that satisfies the symbol unit, j is an order of a syndrome to be obtained, and n/j may be an integer.

직렬-병렬 변환기(810)는 n/j 값이 정수가 아닌 경우, 송신기로부터 수신된 비트 시퀀스들을 지연 없이 제로 보간부(850)로 전달할 수 있다. When the n/j value is not an integer, the serial-to-parallel converter 810 may transmit the bit sequences received from the transmitter to the zero interpolator 850 without delay.

XOR 연산기(830)는 심볼 단위로 구성된 병렬의 다중 스트림의 비트 값들에 대하여 심볼 단위로 XOR 연산을 수행할 수 있다. The XOR operator 830 may perform an XOR operation on a symbol-by-symbol basis for bit values of a parallel multi-stream composed of symbol units.

제로 보간부(850)는 XOR 연산기(830)에서 XOR 연산이 수행된 다중 스트림의 각 비트 사이에 제로 값들을 삽입할 수 있다. 제로 보간부(850)는 XOR 연산이 수행된 다중 스트림의 각 비트 사이에 심볼 단위의 N 개(N = L-1)의 제로 값들을 주기적으로 삽입할 수 있다. The zero interpolation unit 850 may insert zero values between each bit of the multi-stream in which the XOR operation is performed in the XOR operator 830. The zero interpolation unit 850 may periodically insert N (N = L-1) zero values in symbol units between each bit of the multi-stream in which the XOR operation is performed.

제로 보간부(850)는 n/j 값이 정수가 아닌 경우, XOR 연산이 수행된 다중 스트림의 각 비트 사이에 심볼 단위의 N 개(N = j-1)의 제로 값들을 주기적으로 삽입할 수 있다.When the n/j value is not an integer, the zero interpolation unit 850 may periodically insert N (N = j-1) zero values in symbol units between each bit of the multi-stream in which the XOR operation is performed. have.

선형 피드백 쉬프트 레지스터(870)는 제로 보간부(850)에서 제로 값들이 삽입된 다중 스트림으로부터 생성되는 다항식(polynomial)을 원시 다항식(primitive polynomial)으로 나눈 나머지(remainder)의 계수(coefficient)에 의해 고차 신드롬 값을 산출할 수 있다.
The linear feedback shift register 870 is ordered by the coefficient of the remainder divided by the polynomial generated from multiple streams in which zero values are inserted in the zero interpolator 850 as a primitive polynomial. The syndrome value can be calculated.

도 9는 일실시예에 따른 고차 신드롬 계산 방법을 나타낸 플로우차트이다. 9 is a flowchart illustrating a method for calculating a higher order syndrome according to an embodiment.

도 9를 참조하면, 일실시예에 따른 고차 신드롬 계산기(이하, 계산기)는 송신기로부터 수신된 직렬의 비트 시퀀스들을 병렬의 다중 스트림으로 변환할 수 있다(910).Referring to FIG. 9, a high-order syndrome calculator (hereinafter, a calculator) according to an embodiment may convert serial bit sequences received from a transmitter into multiple parallel streams (910).

계산기는 단계(910)에서 변환된 다중 스트림의 각 비트 값에 대하여 XOR 연산을 수행할 수 있다(920).The calculator may perform an XOR operation on each bit value of the multiple streams converted in step 910 (920).

계산기는 단계(920)에서 XOR 연산이 수행된 다중 스트림의 각 비트 사이에 제로 값들을 삽입할 수 있다(930).In operation 920, the calculator may insert zero values between each bit of the multi-stream in which the XOR operation is performed (930).

계산기는 제로 값들이 삽입된 다중 스트림으로부터 생성되는 다항식(polynomial)을 원시 다항식(primitive polynomial)으로 나눈 나머지(remainder)의 계수(coefficient)에 의해 고차 신드롬 값을 산출할 수 있다(940).
The calculator may calculate a higher order syndrome value by a coefficient of the remainder divided by a polynomial generated from multiple streams with zero values divided into a primitive polynomial (940).

도 10은 다른 실시예에 따른 고차 신드롬 계산 방법을 나타낸 플로우차트이다. 10 is a flowchart illustrating a high-order syndrome calculation method according to another embodiment.

도 10을 참조하면, 일실시예에 따른 계산기는 송신기로부터 수신된 직렬의 비트 시퀀스들을 심볼 단위로 구성된 병렬의 다중 스트림으로 변환할 수 있다. 심볼 단위는 복수 개의 비트들을 포함할 수 있다(1010). Referring to FIG. 10, a calculator according to an embodiment may convert serial bit sequences received from a transmitter into multiple streams in parallel composed of symbol units. The symbol unit may include a plurality of bits (1010).

계산기는 단계(1010)에서 변환된 다중 스트림의 비트 값들에 대하여 심볼 단위로 XOR 연산을 수행할 수 있다(1020). 여기서, 심볼 단위의 XOR 연산 또한 도 5에서 설명한 것과 동일한 방식으로 심볼의 각 비트마다에 대해 수행될 수 있다. The calculator may perform an XOR operation on the bit values of the multiple streams converted in step 1010 on a symbol basis (1020). Here, the symbol-based XOR operation may also be performed for each bit of the symbol in the same manner as described in FIG. 5.

계산기는 XOR 연산이 수행된 다중 스트림의 각 비트 사이에 제로 값들을 삽입할 수 있다(1030).The calculator may insert zero values between each bit of the multi-stream where the XOR operation is performed (1030).

계산기는 제로 값들이 삽입된 다중 스트림으로부터 생성되는 다항식(polynomial)을 원시 다항식(primitive polynomial)으로 나눈 나머지(remainder)의 계수(coefficient)에 의해 고차 신드롬 값을 산출할 수 있다(1040).
The calculator may calculate a higher order syndrome value by a coefficient of the remainder divided by a polynomial generated from multiple streams with zero values divided into a primitive polynomial (1040).

도 11은 일반적인 신드롬 계산 방법과 일실시예에 따른 고차 신드롬 계산 방법에 따른 계산 복잡도를 비교한 결과를 나타낸 도면이다. 11 is a view showing a result of comparing the calculation complexity according to a general syndrome calculation method and a high-order syndrome calculation method according to an embodiment.

도 11을 참조하면, 갈루아 필드 GF(2m)을 기반으로 한 (n,k) 선형 블록 코드에 대하여 일반적인 신드롬 계산 방법과 일실시예에 따른 고차 신드롬 계산 방법에 의해 신드롬을 계산한 결과가 도시된다. 여기서, n=2m-1의 관계식을 만족한다.Referring to FIG. 11, a result of calculating a syndrome by a general syndrome calculation method and a high-order syndrome calculation method according to an embodiment of a (n,k) linear block code based on the Galois field GF(2 m ) is illustrated. do. Here, the relational expression of n = 2 m -1 is satisfied.

도 11에서 일반적인 신드롬 계산 방법으로 신드롬을 계산하는 경우, 곱셈 연산, 모듈로 연산의 횟수가 n이고, 정보를 저장하기 위해 필요한 레지스터의 수 및 XOR 연산의 횟수가 각각 m x n 인 것을 볼 수 있다. 이 밖에도, 일반적인 신드롬 계산 방법은 출력 값을 검색하기 위한 룩업 테이블(LUT) 함수 호출 또한 n 번 호출하는 것을 볼 수 있다. In FIG. 11, when the syndrome is calculated using the general syndrome calculation method, it can be seen that the number of multiplication operations and modulo operations is n, and the number of registers required to store information and the number of XOR operations are m x n, respectively. In addition, you can see that the general syndrome calculation method also calls the lookup table (LUT) function to retrieve the output value n times.

일실시예에 따른 고차 신드롬 계산 방법은 룩업 테이블(LUT) 구성을 위한 레지스터의 저장 공간은 필요 없고, 출력 값을 검색하기 위한 룩업 테이블(LUT) 함수 호출(function call) 또한 필요하지 않다. 일실시예에 따른 고차 신드롬 계산 방법은 단지 선형 피드백 쉬프트 레지스터(LFSR)를 구성하기 위한 m개의 레지스터와 (L-1) x (n/L) + m' x n (m' 는 nonzero coefficients of primitive polynomial f(x)-1) 번의 XOR 연산만을 수행하면 된다.
The high-order syndrome calculation method according to an embodiment does not require a storage space of a register for configuring a lookup table (LUT), and a lookup table (LUT) function call for retrieving an output value is also not required. The high-order syndrome calculation method according to an embodiment only includes m registers for constructing a linear feedback shift register (LFSR) and (L-1) x (n/L) + m'xn (m' is nonzero coefficients of primitive polynomial You only need to perform f(x)-1) XOR operations.

도 12는 m=6, n=2m-1=63 인 경우, 일반적인 신드롬 계산 방법과 일실시예에 따른 고차 신드롬 계산 방법에 의해 S3을 산출하는 계산 복잡도를 비교한 결과를 나타낸 도면이다.12 is a view showing a result of comparing the calculation complexity of calculating S 3 by a general syndrome calculation method and a high-order syndrome calculation method according to an embodiment when m=6 and n=2 m −1=63.

도 12를 참조하면, 일반적인 신드롬 계산 방법으로 신드롬을 계산하는 경우, 곱셈 연산, 모듈로 연산의 횟수가 63회이고, 정보를 저장하기 위해 필요한 레지스터의 수 및 XOR 연산의 횟수가 각각 6 x 63 = 378 인 것을 볼 수 있다. 이 밖에도, 일반적인 신드롬 계산 방법은 출력 값을 검색하기 위한 룩업 테이블(LUT) 함수 호출 또한 63 번 호출하는 것을 볼 수 있다. Referring to FIG. 12, when the syndrome is calculated using the general syndrome calculation method, the number of multiplication operations and modulo operations is 63 times, and the number of registers required to store information and the number of XOR operations are 6 x 63 = You can see that it is 378. In addition, you can see that the general syndrome calculation method also calls the lookup table (LUT) function to retrieve the output value 63 times.

일실시예에 따른 고차 신드롬 계산 방법은 룩업 테이블(LUT) 구성을 위한 레지스터의 저장 공간은 필요 없고, 출력 값을 검색하기 위한 룩업 테이블(LUT) 함수 호출(function call) 또한 필요하지 않다. 일실시예에 따른 고차 신드롬 계산 방법은 단지 선형 피드백 쉬프트 레지스터(LFSR)를 구성하기 위한 6개의 레지스터와 42+126=168 번의 XOR 연산만을 수행하면 된다.
The high-order syndrome calculation method according to an embodiment does not require a storage space of a register for configuring a lookup table (LUT), and a lookup table (LUT) function call for retrieving an output value is also not required. The high-order syndrome calculation method according to an embodiment only needs to perform 6 registers and 42+126=168 XOR operations to construct a linear feedback shift register (LFSR).

이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성 요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented with hardware components, software components, and/or combinations of hardware components and software components. For example, the devices and components described in the embodiments include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor (micro signal processor), a microcomputer, a field programmable array (FPA), It may be implemented using one or more general purpose computers or special purpose computers, such as a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. The processing device may run an operating system (OS) and one or more software applications running on the operating system. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of the software. For convenience of understanding, a processing device may be described as one being used, but a person having ordinary skill in the art, the processing device may include a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that may include. For example, the processing device may include a plurality of processors or a processor and a controller. In addition, other processing configurations, such as parallel processors, are possible.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instruction, or a combination of one or more of these, and configure the processing device to operate as desired, or process independently or collectively You can command the device. Software and/or data may be interpreted by a processing device, or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodied in the transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, or the like alone or in combination. The program instructions recorded in the medium may be specially designed and configured for the embodiments or may be known and usable by those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs, DVDs, and magnetic media such as floptical disks. -Hardware devices specifically configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language code that can be executed by a computer using an interpreter, etc., as well as machine language codes produced by a compiler. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by a limited embodiment and drawings, those skilled in the art can make various modifications and variations from the above description. For example, the described techniques are performed in a different order than the described method, and/or the components of the described system, structure, device, circuit, etc. are combined or combined in a different form from the described method, or other components Alternatively, even if replaced or substituted by equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

500: 고차 신드롬 계산기
510: 직렬-병렬 변환기(serial-to-parallel converter)
530: XOR 연산기(XOR operator)
550: 제로 보간부(zero interpolator)
570: 선형 피드백 쉬프트 레지스터(Linear Feedback Shift Register; LFSR)
500: higher order syndrome calculator
510: serial-to-parallel converter
530: XOR operator
550: zero interpolator
570: Linear Feedback Shift Register (LFSR)

Claims (14)

송신기로부터 수신된 직렬의 비트 시퀀스들을 병렬의 다중 스트림으로 변환하는 직렬-병렬 변환기(serial-to-parallel converter);
상기 다중 스트림의 각 비트 값에 대하여 XOR 연산을 수행하는 XOR 연산기;
상기 XOR 연산이 수행된 상기 각 비트 사이에 제로 값들을 삽입하는 제로 보간부(zero interpolator); 및
상기 제로 값들이 삽입된 상기 다중 스트림으로부터 생성되는 다항식(polynomial)을 원시 다항식(primitive polynomial)으로 나눈 나머지(remainder)의 계수(coefficient)에 의해 고차 신드롬 값을 산출하는 선형 피드백 쉬프트 레지스터(linear feedback shift register)
를 포함하는, 고차 신드롬 계산기.
A serial-to-parallel converter that converts serial bit sequences received from a transmitter into multiple parallel streams;
An XOR operator that performs an XOR operation on each bit value of the multiple streams;
A zero interpolator that inserts zero values between each bit in which the XOR operation is performed; And
A linear feedback shift register that calculates a higher order syndrome value by a coefficient of the remainder divided by a polynomial generated from the multiple streams in which the zero values are inserted is divided into a primitive polynomial. register)
Higher order syndrome calculator, which includes.
제1항에 있어서,
상기 직렬-병렬 변환기는,
상기 송신기로부터 수신된 직렬의 비트 시퀀스들을 아래의 <수학식>을 만족하는 특정 비트 수(D)의 정수 배만큼 지연시켜 L (L ≥1인 자연수) 비트의 다중 스트림으로 변환하는, 고차 신드롬 계산기.
<수학식>
D = n/j
(여기서 n은 블록 코드(block code)의 블록 사이즈(block size)이고, j는 구하고자 하는 신드롬(syndrome)의 차수(order)이며, n/j는 정수)
According to claim 1,
The serial-to-parallel converter,
A high-order syndrome calculator that converts serial bit sequences received from the transmitter into multiple streams of L (L ≥ 1 natural number) bits by delaying by an integer multiple of a certain number of bits (D) satisfying <Equation> below. .
<Mathematics>
D = n/j
(Where n is the block size of the block code, j is the order of the syndrome to obtain, and n/j is an integer)
제2항에 있어서,
상기 직렬-병렬 변환기는,
L-1 개의 지연 요소들을 포함하고,
상기 다중 스트림의 첫 번째 비트에는 상기 비트 시퀀스를 지연 없이 입력하고, 상기 다중 스트림의 L 번째 비트에는 상기 비트 시퀀스를 (L - 1) x D 개의 비트 수만큼 지연시켜 입력하는, 고차 신드롬 계산기.
According to claim 2,
The serial-to-parallel converter,
L-1 delay elements,
A high-order syndrome calculator that inputs the bit sequence without delay to the first bit of the multi-stream and delays the bit sequence by (L-1) x D bits to the L-th bit of the multi-stream.
제2항에 있어서,
상기 직렬-병렬 변환기는,
상기 n/j 값이 정수(integer)가 아닌 경우,
상기 송신기로부터 수신된 상기 비트 시퀀스들을 지연 없이 상기 제로 보간부로 전달하는, 고차 신드롬 계산기.
According to claim 2,
The serial-to-parallel converter,
When the n/j value is not an integer,
A higher order syndrome calculator that delivers the bit sequences received from the transmitter to the zero interpolator without delay.
제4항에 있어서,
상기 제로 보간부는,
상기 n/j 값이 정수가 아닌 경우,
상기 XOR 연산이 수행된 다중 스트림의 각 비트 사이에 N 개(N = j-1)의 제로 값들을 주기적으로(periodically) 삽입하는, 고차 신드롬 계산기.
The method of claim 4,
The zero interpolation unit,
When the n/j value is not an integer,
A high-order syndrome calculator that periodically inserts N (N = j-1) zero values between each bit of the multi-stream in which the XOR operation is performed.
제2항에 있어서,
상기 제로 보간부는,
상기 XOR 연산이 수행된 다중 스트림의 각 비트 사이에 N 개(N = L-1)의 제로 값들을 주기적으로(periodically) 삽입하는, 고차 신드롬 계산기.
According to claim 2,
The zero interpolation unit,
A high-order syndrome calculator that periodically inserts N (N = L-1) zero values between each bit of the multi-stream in which the XOR operation is performed.
송신기로부터 수신된 직렬의 비트 시퀀스들을, 심볼 단위 - 상기 심볼 단위는 복수 개의 비트들을 포함함 - 로 구성된 병렬의 다중 스트림으로 변환하는 직렬-병렬 변환기(serial-to-parallel converter);
상기 심볼 단위로 구성된 상기 다중 스트림의 비트 값들에 대하여 상기 심볼 단위로 XOR 연산을 수행하는 XOR 연산기;
상기 XOR 연산이 수행된 상기 다중 스트림의 각 비트 사이에 제로 값들을 삽입하는 제로 보간부(zero interpolator); 및
상기 제로 값들이 삽입된 상기 다중 스트림으로부터 생성되는 다항식(polynomial)을 원시 다항식(primitive polynomial)으로 나눈 나머지(remainder)의 계수(coefficient)에 의해 고차 신드롬 값을 산출하는 선형 피드백 쉬프트 레지스터(linear feedback shift register)
를 포함하는, 고차 신드롬 계산기.
A serial-to-parallel converter for converting serial bit sequences received from a transmitter into a parallel multiple stream consisting of symbol units, wherein the symbol units include a plurality of bits;
An XOR operator that performs an XOR operation on the bit values of the multiple streams configured in the symbol unit in the symbol unit;
A zero interpolator that inserts zero values between each bit of the multi-stream in which the XOR operation is performed; And
A linear feedback shift register that calculates a higher order syndrome value by a coefficient of the remainder divided by a polynomial generated from the multiple streams in which the zero values are inserted is divided into a primitive polynomial. register)
Higher order syndrome calculator, which includes.
제7항에 있어서,
상기 직렬-병렬 변환기는,
상기 송신기로부터 수신된 직렬의 비트 시퀀스들을 아래의 <수학식>을 만족하는 특정 비트 수(D)의 정수 배만큼 지연시켜 상기 심볼 단위* L(L ≥1인 자연수) 비트의 다중 스트림으로 변환하는, 고차 신드롬 계산기.
<수학식>
D = n/j
(여기서 n은 상기 심볼 단위를 만족하는 블록 코드(block code)의 블록 사이즈(block size)이고, j는 구하고자 하는 신드롬(syndrome)의 차수(order)이며, n/j는 정수임)
The method of claim 7,
The serial-to-parallel converter,
Delay the serial bit sequences received from the transmitter by an integer multiple of a certain number of bits (D) satisfying the following <Equation> to convert into multiple streams of the symbol unit * L (natural number with L ≥ 1) bits , Higher order syndrome calculator.
<Mathematics>
D = n/j
(Where n is the block size of the block code that satisfies the symbol unit, j is the order of the syndrome to obtain, and n/j is an integer)
제8항에 있어서,
상기 직렬-병렬 변환기는,
상기 n/j 값이 정수가 아닌 경우,
상기 송신기로부터 수신된 비트 시퀀스들을 지연 없이 상기 제로 보간부로 전달하는, 고차 신드롬 계산기.
The method of claim 8,
The serial-to-parallel converter,
When the n/j value is not an integer,
A higher order syndrome calculator that delivers the bit sequences received from the transmitter to the zero interpolator without delay.
제9항에 있어서,
상기 제로 보간부는,
상기 n/j 값이 정수가 아닌 경우,
상기 XOR 연산이 수행된 상기 다중 스트림의 상기 각 비트 사이에 심볼 단위의 N 개(N = j-1)의 제로 값들을 주기적으로 삽입하는, 고차 신드롬 계산기.
The method of claim 9,
The zero interpolation unit,
When the n/j value is not an integer,
A high-order syndrome calculator that periodically inserts N (N = j-1) zero values in a symbol unit between each bit of the multi-stream in which the XOR operation is performed.
제8항에 있어서,
상기 제로 보간부는,
상기 XOR 연산이 수행된 상기 다중 스트림의 상기 각 비트 사이에 심볼 단위의 N 개(N = L-1)의 제로 값들을 주기적으로 삽입하는, 고차 신드롬 계산기.
The method of claim 8,
The zero interpolation unit,
A high-order syndrome calculator that periodically inserts N (N = L-1) zero values in symbol units between each bit of the multi-stream in which the XOR operation is performed.
송신기로부터 수신된 직렬의 비트 시퀀스들을 병렬의 다중 스트림으로 변환하는 단계;
상기 다중 스트림의 각 비트 값에 대하여 XOR 연산을 수행하는 단계;
상기 XOR 연산이 수행된 상기 다중 스트림의 상기 각 비트 사이에 제로 값들을 삽입하는 단계; 및
상기 제로 값들이 삽입된 상기 다중 스트림으로부터 생성되는 다항식(polynomial)을 원시 다항식(primitive polynomial)으로 나눈 나머지(remainder)의 계수(coefficient)에 의해 고차 신드롬 값을 산출하는 단계
를 포함하는, 고차 신드롬 계산 방법.
Converting a series of bit sequences received from a transmitter into multiple streams in parallel;
Performing an XOR operation on each bit value of the multiple streams;
Inserting zero values between each bit of the multi-stream in which the XOR operation is performed; And
Calculating a higher-order syndrome value by a coefficient of the remainder divided by a polynomial generated from the multiple streams in which the zero values are inserted into a primitive polynomial.
A high-order syndrome calculation method comprising a.
송신기로부터 수신된 직렬의 비트 시퀀스들을 심볼 단위 - 상기 심볼 단위는 복수 개의 비트들을 포함함 -로 구성되는 병렬의 다중 스트림으로 변환하는 단계;
상기 다중 스트림의 비트 값들에 대하여 상기 심볼 단위로 XOR 연산을 수행하는 단계;
상기 XOR 연산이 수행된 상기 다중 스트림의 각 비트 사이에 제로 값들을 삽입하는 단계; 및
상기 제로 값들이 삽입된 상기 다중 스트림으로부터 생성되는 다항식(polynomial)을 원시 다항식(primitive polynomial)으로 나눈 나머지(remainder)의 계수(coefficient)에 의해 고차 신드롬 값을 산출하는 단계
를 포함하는, 고차 신드롬 계산 방법.
Converting a series of bit sequences received from a transmitter into a parallel multiple stream consisting of symbol units, wherein the symbol units include a plurality of bits;
Performing an XOR operation in units of the symbols on the bit values of the multiple streams;
Inserting zero values between each bit of the multi-stream in which the XOR operation is performed; And
Calculating a higher-order syndrome value by a coefficient of the remainder divided by a polynomial generated from the multiple streams in which the zero values are inserted into a primitive polynomial.
A high-order syndrome calculation method comprising a.
제12항 내지 제13항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium in which a program for executing the method of any one of claims 12 to 13 is recorded.
KR1020140089739A 2014-03-14 2014-07-16 Low complexity high order syndrome calculator for block codes and calculating method of high order syndrome KR102118605B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/500,803 US9467174B2 (en) 2014-03-14 2014-09-29 Low complexity high-order syndrome calculator for block codes and method of calculating high-order syndrome
CN201410840383.3A CN104917535B (en) 2014-03-14 2014-12-30 The method of high-order syndrome calculator and calculating high-order syndrome for block code

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140030490 2014-03-14
KR20140030490 2014-03-14

Publications (2)

Publication Number Publication Date
KR20150107561A KR20150107561A (en) 2015-09-23
KR102118605B1 true KR102118605B1 (en) 2020-06-04

Family

ID=54246035

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140089739A KR102118605B1 (en) 2014-03-14 2014-07-16 Low complexity high order syndrome calculator for block codes and calculating method of high order syndrome

Country Status (1)

Country Link
KR (1) KR102118605B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020042804A1 (en) 1997-12-26 2002-04-11 Hiroshi Tezuka Parallel processing syndrome calculating circuit and reed-solomon decoding circuit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020042804A1 (en) 1997-12-26 2002-04-11 Hiroshi Tezuka Parallel processing syndrome calculating circuit and reed-solomon decoding circuit

Also Published As

Publication number Publication date
KR20150107561A (en) 2015-09-23

Similar Documents

Publication Publication Date Title
US9450615B2 (en) Multi-bit error correction method and apparatus based on a BCH code and memory system
CA3072857A1 (en) Forward error correction with compression coding
US11018699B2 (en) Method and apparatus for controlling interleaving depth
CN114731166A (en) Space coupling FEC coding method and equipment for component code using GEL code
Das et al. Design of RS (255, 251) Encoder and Decoder in FPGA
US11101925B2 (en) Decomposable forward error correction
EP1102406A2 (en) Apparatus and method for decoding digital data
CN108886369B (en) Method and apparatus for performing Reed-Solomon coding
WO2009146517A1 (en) Method of encoding and/or decoding multidimensional and a system comprising such method
US9356734B2 (en) Transmitter, receiver, and signal processing method thereof
CA2688398A1 (en) A systematic encoder with arbitrary parity positions
JP7314359B2 (en) Apparatus and method for adjusting interleaving depth
KR102118605B1 (en) Low complexity high order syndrome calculator for block codes and calculating method of high order syndrome
Al Azad et al. A compact and fast FPGA based implementation of encoding and decoding algorithm using Reed Solomon codes
KR101432909B1 (en) HIGH-SPEED LOW-COMPELEXITY MODIFIED STEP-BY-STEP DECODING METHOD AND Circuit for parallel bch decoder
Hanumanthakari et al. Design and analysis of high reliable fault tolerance subsystem for micro computer systems
US9467174B2 (en) Low complexity high-order syndrome calculator for block codes and method of calculating high-order syndrome
CN110741562B (en) Pipelined forward error correction for vector signaling code channels
Qamar et al. An efficient encoding algorithm for (n, k) binary cyclic codes
James et al. Multiple error correction using non-binary Redundant Residue Number System
TWI776483B (en) Encoding and decoding method of cyclic code
Lee et al. Decoding of the triple-error-correcting binary quadratic residue codes
KR20080052039A (en) Method for checking correcting errors correcting by cyclic redundancy checking and apparatus thereof
Hurtic et al. Hard-decision staircase decoder in 28-nm fully-depleted silicon-on-insulator
Belean et al. Hardware Architectures for Channel Encoding in Information Transmission Systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right