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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/159—Remainder calculation, e.g. for encoding and syndrome calculation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction 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.
Description
아래의 실시예들은 블록 코드에 대하여 저복잡도로 고차 신드롬을 계산하는 고차 신드롬 계산기 및 고차 신드롬 계산 방법에 관한 것이다.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
2 is a block diagram of a
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
도 1을 참조하면, 송신기에서 블록 코드를 인코딩하는 채널 인코더(100)의 구조가 도시된다. Referring to FIG. 1, a structure of a
채널 인코더(100)에서는 원래 비트(original bit) 정보에 해당하는 k개의 메시지 비트들(message bits)에, 잉여 비트(redundant bit)에 해당하는 n-k개의 패리티 비트들(parity bits)을 적절히 추가한 후, 전체 n개의 비트 시퀀스 블록들을 구성하여 수신기에게 송신한다. After the
상술한 방법으로 채널 인코더(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
도 2는 수신기에서 블록 코드를 디코딩하는 채널 디코더(200)의 블록도이다. 2 is a block diagram of a
도 2를 참조하면, 수신기에서 블록 코드를 디코딩하는 채널 디코더(channel decoder) (200)의 구조가 도시된다. Referring to FIG. 2, a structure of a
수신기에서는 복조기(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
채널 디코더(200)는 도 2와 같이, n개의 복조된 비트 시퀀스를 적절히 신호 처리하여 오류를 복원하고, k개의 디코딩된 출력 비트 시퀀스를 얻을 수 있다. 이때, 복조된 비트 시퀀스에서 블록 코드의 오류 복구 능력보다 더 많은 비트들에 오류가 발생했다면, 출력 비트 시퀀스는 송신기에서 원래 전송한 비트 시퀀스와 다를 수 있다. As illustrated in FIG. 2, the
채널 디코더(200)는 신드롬 계산기(syndrome calculator)(210), 오류 위치 산출부(error location calculator)(230) 및 오류 수정(error correction)부(250)를 포함할 수 있다. The
신드롬 계산기(syndrome calculator)(210)는 신드롬(syndrome) 값을 산출할 수 있다. The
'신드롬(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 correction)부(250)는 오류 위치 산출부(230)에서 파악된, 오류가 난 비트의 위치에서 해당 비트의 오류를 수정할 수 있다. 오류 수정부(250)는 예를 들어, 오류가 난 비트를 '1'에서 '0'으로, 또는 '0'에서 '1'로 수정할 수 있다.The
오류 복구 능력이 한 개에 해당하는 해밍 코드의 경우, 신드롬 값은 간단하게 한 개만 구하면 된다. 복수 개의 오류 복구 능력을 가지는 코드를 사용하는 경우, 신드롬 값 또한 복수 개를 구해야 하므로 계산의 복잡도가 증가하게 된다. 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): ∈ GF(q)는 GF(q)에서 primitive (q-1)th root of unity를 만족하는 경우, 유한체 GF(q)의 '원시 요소(primitive element)'라고 불린다. 다시 말해, 유한체 GF(q)의 모든 구성 요소들(0는 제외)은 양의 정수 n에 대해 an 와 같이 표현할 수 있다.Primitive elements: ∈ 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 를 가지는 경우, '원시 다항식(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)} 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) 라고 했을 때, 및 의 등식이 성립함은 이미 알려져 있다.According to the above definition, the primitive element of the Galois field GF(p m ) is called a, and the m-th primitive polynomial When I said, And It is already known that the equation of.
예를 들어, 만약 m=6 이라면 가 되며, 이 된다. 갈루아 필드 연산에서는 1+1 = 0, 과 같은 모듈로(modulo) 덧셈 연산이 수행되며, 이를 이용하면, 를 얻을 수 있다. For example, if m=6 Becomes It becomes. 1+1 = 0 in Galois field operations, Modulo addition operation is performed. Can get
또한 갈루아 필드 연산에서 와 같은 곱셈 연산이 수행됨을 이용하면, 을 얻을 수 있다. 유사한 갈루아 필드 연산 과정을 이용하면 아래의 [표 1]과 같이 m=6일 경우의 GF(pm) 원소들을 구성할 수 있다.Also in Galois field operations Using a multiplication operation such as 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
[표 1]에서 첫 번째 열(column)은 원시 요소인 a의 승수를 나타낸 power representation이고, 두 번째 열은 첫 번째 열의 동일한 원소에 대해 로 표현한 polynomial representation에 해당한다. 여기서 은 '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. Corresponds to the polynomial representation expressed as. here Is a coefficient having a value of '0' or '1'.
세 번째 열은 계수값들을 와 같은 벡터 형태로 나타낸 vector representation에 해당한다. 여기서, 의 승수에 해당하는 정수를 input index로 하고, vector 값을 output으로 하는 look-up table (LUT)를 구성하면 도 3과 같이 표현할 수 있다.The third column is the coefficient Values Corresponds to the vector representation represented in the vector form. here, 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)를 로 표현하면, 그 다항식은 로 표현될 수 있다. 이때, j번째 신드롬에 해당하는 는 다음의 <수학식 1>과 같이 구할 수 있다. The received bit vector of n bits containing errors received by the receiver In terms of, the polynomial Can be expressed as At this time, it corresponds to the jth syndrome Can be obtained as <
여기서, 는 위에서 설명한 GF(pm)의 primitive element에 해당하고, n=2m-1가 된다.
here, 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 <
여기서, 은 m개의 비트들로 구성된 vector인 의 번째 값에 해당하며, 는 아래와 같이 구할 수 있다.
here, Is a vector of m bits of Corresponds to the first value, Can be obtained as follows.
여기서, 는 도 3의 LUT 함수(function)에 해당하며 관계를 만족한다. here, 3 corresponds to the LUT function of FIG. 3, Satisfy the relationship.
보다 쉽게 위 신호 처리를 설명하기 위해, m=6, n=2m-1=63 이고, 인 경우를 가정하면, 가 얻어진다.To more easily illustrate the above signal processing, m=6, n=2 m -1=63, Assuming that Is obtained.
결과적으로 S3에 대한 신드롬을 구하는 과정은 점점 증가하는 승수의 값을 구하여 이를 더하는 과정에 해당한다. 일반적인 신드롬 계산 방법에 의해 S3에 대한 신드롬을 구하는 과정은 도 4와 같이 표현될 수 있다.
As a result, the process of obtaining the syndrome for S 3 is 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를 참조하면, 일반적인 신드롬 방법은 첫 번째 열의 의 승수값을 구할 때, 비트 시퀀스의 인덱스(index)에 신드롬의 차수(syndrome order)에 해당하는 값을 곱하는 과정을 수행한다. Referring to Figure 4, the general syndrome method is the first column 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 연산을 수행한다. 전술한 바와 같이 갈루아 필드에서는 의 성질을 만족하고, 의 승수값에 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 Satisfies the nature of, 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 연산을 수행한 후의 승수값 결과를 입력 값으로 했을 때의 룩업 테이블의 출력 벡터(LUT_output_vector)를 찾아서 구하고, 이를 출력으로 내보내는 과정을 수행할 수 있다. The general syndrome method is after modulo-63 operation. 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 연산을 수행하고, 그 최종값에 해당하는 값들을 계수로 하여 신드롬 를 구할 수 있다. The general syndrome method performs bitwise XOR operation on each output vector obtained in this way, and corresponds to the final value. Syndrome with values as coefficients 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-
직렬-병렬 변환기(510)는 송신기로부터 수신된 직렬의 비트 시퀀스들을 병렬의 다중 스트림으로 변환할 수 있다. The serial-
직렬-병렬 변환기(510)는 송신기로부터 수신된 직렬의 비트 시퀀스들을 D = n/j 를 만족하는 특정 비트 수(D)의 정수 배만큼 지연시켜 L (L ≥1인 자연수) 비트의 다중 스트림으로 변환할 수 있다. 여기서, n은 블록 코드(block code)의 블록 사이즈(block size)이고, j는 구하고자 하는 신드롬(syndrome)의 차수(order)이며, n/j는 정수이다. The serial-to-
XOR 연산기(530)는 직렬-병렬 변환기(510)에서 변환된, 병렬의 다중 스트림의 각 비트 값에 대하여 XOR(exclusive OR) 연산을 수행할 수 있다. XOR 연산기(530)는 예를 들어, 첫 번째 다중 스트림이 이고, 두 번째 다중 스트림이 인 경우, 와 같이 각 비트 값에 대하여 XOR(exclusive OR) 연산을 수행할 수 있다. 여기서, 는 XOR(exclusive OR), 다시 말해 modulo-2 연산을 뜻한다. The
제로 보간부(550)는 XOR 연산기(530)에서 XOR 연산이 수행된 각 비트 사이에 제로 값들을 삽입할 수 있다. 제로 보간부(550)는 XOR 연산이 수행된 다중 스트림의 각 비트 사이에 N 개(N = L-1)의 제로 값들을 주기적으로(periodically) 삽입할 수 있다. The zero
제로 보간부(550)는 직렬-병렬 변환기(510)에서 계산된 특정 비트 수(D), 다시 말해 n/j 값이 정수가 아닌 경우, XOR 연산이 수행된 다중 스트림의 각 비트 사이에 N 개(N = j-1)의 제로 값들을 주기적으로(periodically) 삽입할 수 있다.The zero
선형 피드백 쉬프트 레지스터(570)는 제로 보간부(550)에서 제로 값들이 삽입된 다중 스트림으로부터 생성되는 다항식(polynomial)을 원시 다항식(primitive polynomial)으로 나눈 나머지(remainder)의 계수(coefficient)에 의해 고차 신드롬 값을 산출할 수 있다.
The linear
도 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-
도 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-
직렬-병렬 변환기(610)는 다중 스트림의 첫 번째 비트에는 입력된 비트 시퀀스를 지연없이 입력하고, 다중 스트림의 L 번째 비트에는 비트 시퀀스를 (L-1) X D 개의 비트 수만큼 지연시켜 입력한다.The serial-to-
예를 들어, 직렬-병렬 변환기(610)가 직렬의 비트 시퀀스를 L 비트의 다중 스트림으로 변환한다고 하자. 이때, 직렬-병렬 변환기(610)는 L개의 병렬 경로(parallel path)들로 구성되고, 직렬-병렬 변환기(610)는 수신된 비트 시퀀스를 L개의 병렬 경로들에 대해 특정 비트 수(D)의 정수 배 시간만큼 지연시켜 입력시킬 수 있다. For example, suppose the serial-to-
첫 번째 경로에는 수신된 비트 시퀀스가 지연되지 않고 그대로 입력되고, 두 번째 경로에는 첫 번째 경로 대비 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
제로 보간부(650)는 XOR 연산이 수행된 다중 스트림의 각 비트 사이에 N 개(N = L-1)의 제로 값들을 주기적으로(periodically) 삽입할 수 있다. 여기서, L, D 및 N값의 설정하는 방법을 예를 들어 설명하면 다음과 같다. The zero
만약, 블록 코드(block code)의 블록 사이즈(block size)가 n이고, 구하고자 하는 신드롬의 차수(syndrome order)가 j이면(다시 말해, 를 구하고자 할 때), 고차 신드롬 계산기(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, ), 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-
제로 보간부(650)에서 제로 값들이 삽입된 다중 스트림은 선형 피드백 쉬프트 레지스터(LFSR)(670)의 입력으로 인가될 수 있다. The multiple streams with zero values inserted in the zero
도 6에 도시된 FF(673)는 예를 들어, 플립 플롭(flip-flop) 혹은 단위 지연 요소(unit-delay element)에 해당하는 레지스터(register)일 수 있다. The
선형 피드백 쉬프트 레지스터(LFSR)(670)에서 FF(673)는 n=2m-1의 관계식을 만족하는 m에 해당하는 수만큼 존재할 수 있다. 선형 피드백 쉬프트 레지스터(LFSR)(670)에서 는 '0' 혹은 '1' 값을 가질 수 있다. In the linear feedback shift register (LFSR) 670,
선형 피드백 쉬프트 레지스터(LFSR)(670)에서 만약, 이 '0' 값을 가지는 경우에는 XOR 연산기(671)으로 연결되는 선이 존재하지 않고, 이 '1' 값을 가지는 경우에는 XOR 연산기(671)으로 연결되는 선이 존재한다. In the linear feedback shift register (LFSR) 670, If it has this '0' value, there is no line connected to the
이때, 는 앞서 설명한, 그 차수(degree)가 m인 원시 다항식(primitive polynomial) 의 계수를 뜻하며, 의 관계를 만족한다. At this time, Is the primitive polynomial whose degree is m, as described above. Means the coefficient of Satisfies the relationship.
선형 피드백 쉬프트 레지스터(LFSR)(670)의 입력값들이 모두 입력되고 난 후 마지막에 저장된 번째 FF값을 라고 하면, 고차 신드롬(high-order syndrome) 값은 그 계수들로 구성한 에 의해 구할 수 있다. After the input values of the linear feedback shift register (LFSR) 670 are all input, the last stored value The first FF value Speaking of, the high-order syndrome value is composed of the coefficients. Can be obtained by
선형 피드백 쉬프트 레지스터(LFSR)(670)의 구조는 입력된 다항식(input polynomial)을 원시 다항식(primitive polynomial)로 나눈 나머지(remainder)에 해당하는 결과를 출력할 수 있다. The structure of the linear feedback shift register (LFSR) 670 is an input polynomial to a primitive polynomial. The result corresponding to the remainder divided by (remainder) can be output.
선형 피드백 쉬프트 레지스터(LFSR)(670)가 입력 시퀀스를 모두 받아들인 순간에 FF(673)들에 저장된 값이, 입력된 다항식을 로 나누었을 때의 나머지 다항식의 계수(coefficient)에 해당한다.When the linear feedback shift register (LFSR) 670 accepts all input sequences, the values stored in the
일실시예에 따른 신드롬 계산기(600)의 동작을 보다 자세히 설명하기 위해서 에 대한 신드롬을 구하는 과정을 예를 들어 설명한다. To describe the operation of the syndrome calculator 600 according to an embodiment in more detail 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
여기서, 는 전술한 바와 같이 수신된 다항식(received polynomial)을 뜻하고, 및 각각은 수신된 다항식을 원시 다항식(primitive polynomial)인 로 나누었을 때, 몫(quotient)과 나머지(remainder)에 해당한다.
here, Means the received polynomial as described above, And Each received polynomial is a primitive polynomial. When divided by, it corresponds to quotient and remainder.
갈루아 필드에서는 원시 요소(primitive element)인 에 대해 를 만족하므로 <수학식 2>의 마지막 등호 결과가 유도된다. In the Galois field, it is a primitive element About Is satisfied, the result of the last equal sign in <
보다 쉽게 설명하기 위해, n=63 인 경우에 를 구하는 방법을 일실시예에 따른 고차 신드롬 계산기와 함께 직관적으로 표현하면 도 7과 같다.
For easier explanation, if n=63 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의 수식에서, 예를 들어, 와 같이 3개의 값들이 서로 묶어서 한 항으로 표현된 것을 볼 수 있다. 이와 같은 표현 가능한 이유는 앞서 설명한 바와 같이 갈루아 필드에서는 의 성질을 만족하므로, m=6인 경우,이 만족되고, 이 만족되기 때문이다. In the formula of Figure 7, for example, 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. Since m = 6, Is satisfied, Because it is satisfied.
갈루아 필드에서는 의 성질을 이용하여 최초 S3 수식에서 3개의 값들을 한 항으로 묶어서 701과 같은 두 번째 S3 수식을 유도할 수 있다. In the Galois field 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-
두 번째 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
이를 설명하면 다음과 같다. The explanation is as follows.
먼저, 시간적으로 가장 먼저 수신된 비트가 이고 가장 나중에 수신된 비트가 라고 가정하자. First, the first bit received in time And the last received bit Suppose
이때, 직렬-병렬 변환기(710)는 첫 번째 경로에서 비트 스트림이 순서대로 로 들어오는 것처럼 처리하고, 두 번째 경로에서는 이보다 21 샘플만큼 시간 지연된 스트림이 들어오는 것처럼 처리할 수 있다. 직렬-병렬 변환기(710)는 세 번째 경로에서는 첫 번째 경로보다 42(21 X 2) 샘플만큼 시간 지연된 스트림이 들어오는 것처럼 처리할 수 있다. At this time, the serial-to-
XOR 연산기(730)는 매 순간마다 병렬로 입력되는 스트림의 비트값들은 XOR 연산 처리하여 출력할 수 있다. The
XOR 연산기(730)를 거친 결과는 의 승수값이 3만큼 증가하게 되므로, 제로 보간부(750)는 701의 각 값들 사이에 존재하는 의 항들을 703과 같이 인위적으로 삽입하게 된다. 이때, 삽입된 항들의 계수(coefficient)는 제로(zero)('0')로 설정될 수 있다. 제로 보간부(750)가 계수가 제로인 항들을 삽입하는 이유는 다음과 같다. The result of going through the
갈루아 필드에서 임의의 다항식 을 어떤 다른 다항식 으로 나누었을 때, 나머지(remainder)에 해당하는 다항식 를 구하는 신호 처리는 선형 피드백 쉬프트 레지스터(LFSR)(770)에 의해 쉽게 구할 수 있음이 이미 알려져 있다. Random polynomial in the Galois field Any other polynomial Divided by, polynomial corresponding to the remainder It is already known that signal processing for obtaining can be easily obtained by a linear feedback shift register (LFSR) 770.
이때, 선형 피드백 쉬프트 레지스터(LFSR)(770)의 입력으로 인가되는 시퀀스(다중 스트림)은 다항식 의 항의 계수들로 구성된 시퀀스이다. At this time, the sequence applied to the input of the linear feedback shift register (LFSR) 770 (multi-stream) is a polynomial of This is a sequence of terms coefficients.
선형 피드백 쉬프트 레지스터(LFSR)(770)에서는 승수에 해당하는 가 변화함에 따라 항의 계수에 해당하는 시퀀스가 중간에 빠짐없이 입력되어야 최종적으로 FF에 저장된 값으로 나머지 다항식(R(a))을 구할 수 있다. 일실시예에서는 항의 계수에 해당하는 시퀀스가 중간에 빠짐없이 입력될 수 있도록, 제로 보간부(750)에 의해 703과 같이 인위적으로 제로(zero)를 계수로 설정한 항들을 삽입할 수 있다. The linear feedback shift register (LFSR) 770 corresponds to a multiplier As it changes 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 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. 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)의 입력으로 인가되는 값은 다항식 형태에서 항의 계수에 해당하는 비트 시퀀스이다. 이러한 비트 시퀀스가 모두 입력되고 난 후, 선형 피드백 쉬프트 레지스터(LFSR)(770)에 저장된 번째 FF 값을 라고 하면, 와 같이 구할 수 있다. The value applied to the input of the linear feedback shift register (LFSR) 770 is in the polynomial form. 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. The first FF value Speaking of, Can be obtained as
m=6인 경우에 원시 다항식(primitive polynomial)은 이고, 가 되므로, 선형 피드백 쉬프트 레지스터(LFSR)(770)에서 에 해당하는 라인은 연결되고, 에 해당하는 라인은 연결되지 않는다.
When m=6, the primitive polynomial ego, In the linear feedback shift register (LFSR) 770 The line corresponding to is connected, 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-
심볼 단위로 구성된 비트 시퀀스들에 대한 신드롬 값을 계산하는 고차 신드롬 계산기에 대하여는 도 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
직렬-병렬 변환기(810)는 송신기로부터 수신된 직렬의 비트 시퀀스들을, 심볼 단위로 구성된 병렬의 다중 스트림으로 변환할 수 있다. 여기서, 심볼 단위는 복수 개의 비트들을 포함할 수 있다. The serial-to-
직렬-병렬 변환기(810)는 송신기로부터 수신된 직렬의 비트 시퀀스들을 D = n/j을 만족하는 특정 비트 수(D)의 정수 배만큼 지연시켜 심볼 단위 x L(L ≥1인 자연수) 비트의 다중 스트림으로 변환할 수 있다. 여기서, n은 상기 심볼 단위를 만족하는 블록 코드(block code)의 블록 사이즈(block size)이고, j는 구하고자 하는 신드롬(syndrome)의 차수(order)이며, n/j 은 정수일 수 있다. The serial-to-
직렬-병렬 변환기(810)는 n/j 값이 정수가 아닌 경우, 송신기로부터 수신된 비트 시퀀스들을 지연 없이 제로 보간부(850)로 전달할 수 있다. When the n/j value is not an integer, the serial-to-
XOR 연산기(830)는 심볼 단위로 구성된 병렬의 다중 스트림의 비트 값들에 대하여 심볼 단위로 XOR 연산을 수행할 수 있다. The
제로 보간부(850)는 XOR 연산기(830)에서 XOR 연산이 수행된 다중 스트림의 각 비트 사이에 제로 값들을 삽입할 수 있다. 제로 보간부(850)는 XOR 연산이 수행된 다중 스트림의 각 비트 사이에 심볼 단위의 N 개(N = L-1)의 제로 값들을 주기적으로 삽입할 수 있다. The zero
제로 보간부(850)는 n/j 값이 정수가 아닌 경우, XOR 연산이 수행된 다중 스트림의 각 비트 사이에 심볼 단위의 N 개(N = j-1)의 제로 값들을 주기적으로 삽입할 수 있다.When the n/j value is not an integer, the zero
선형 피드백 쉬프트 레지스터(870)는 제로 보간부(850)에서 제로 값들이 삽입된 다중 스트림으로부터 생성되는 다항식(polynomial)을 원시 다항식(primitive polynomial)으로 나눈 나머지(remainder)의 계수(coefficient)에 의해 고차 신드롬 값을 산출할 수 있다.
The linear
도 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
계산기는 제로 값들이 삽입된 다중 스트림으로부터 생성되는 다항식(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
계산기는 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
일실시예에 따른 고차 신드롬 계산 방법은 룩업 테이블(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)
상기 다중 스트림의 각 비트 값에 대하여 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.
상기 직렬-병렬 변환기는,
상기 송신기로부터 수신된 직렬의 비트 시퀀스들을 아래의 <수학식>을 만족하는 특정 비트 수(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)
상기 직렬-병렬 변환기는,
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.
상기 직렬-병렬 변환기는,
상기 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.
상기 제로 보간부는,
상기 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.
상기 제로 보간부는,
상기 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.
상기 심볼 단위로 구성된 상기 다중 스트림의 비트 값들에 대하여 상기 심볼 단위로 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.
상기 직렬-병렬 변환기는,
상기 송신기로부터 수신된 직렬의 비트 시퀀스들을 아래의 <수학식>을 만족하는 특정 비트 수(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)
상기 직렬-병렬 변환기는,
상기 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.
상기 제로 보간부는,
상기 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.
상기 제로 보간부는,
상기 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.
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)
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 |
-
2014
- 2014-07-16 KR KR1020140089739A patent/KR102118605B1/en active IP Right Grant
Patent Citations (1)
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 |